• Settings
    • Locale
    • Change the locale of the datepicker, schedule and client side validation messages.

      Language
      English
      English
      English
      French
      German
      German
      German
      Italian
      Korean
      Spanish
      Catalan
      Dutch
      Portuguese
      Portuguese
      Arabic
      Arabic
      Bulgarian
      Bangla
      Bosnian
      Czech
      Greek
      Estonian
      Persian
      Finnish
      Danish
      Hindi
      Indonesian
      Icelandic
      Croatian
      Japanese
      Hungarian
      Hebrew
      Georgian
      Central Kurdish
      Khmer
      Kyrgyz
      Kazakh
      Lithuanian
      Latvian
      Malay
      Norwegian
      Polish
      Romanian
      Russian
      Slovak
      Slovenian
      Serbian
      Serbian
      Swedish
      Thai
      Turkish
      Ukrainian
      Uzbek
      Vietnamese
      Chinese
      Chinese
  • Resources

Chronoline

Chronoline visualizes a series of chained events.

Chronoline Tag Documentation

Chronoline visualizes a series of chained events.

NameTypeRequiredDefaultDescription
id String false generated Unique identifier of the component in a namingContainer.
rendered boolean false true Boolean value to specify the rendering of the component, when set to false component will not be rendered.
binding UIComponent false generated An EL expression referring to a server side UIComponent instance in a backing bean.
align String false left Position of the chronoline bar relative to the content. Valid values are "left", "right" for vertical layout and "top", "bottom" for horizontal layout.
first int false 0 Index of the first data to display.
layout String false vertical Orientation of the chronoline, valid values are "vertical" and "horizontal".
lazy boolean false True, if the value-binding is instance of LazyDataModel. Defines if lazy loading is enabled for the data component.
rowIndexVar String false Name of iterator to refer each row index.
rowStatePreserved boolean false false Keeps state of its children on a per-row basis.
rows int false 0 Number of rows to display per page. Default value is 0 meaning to display all data available.
style String false Inline style of the component.
styleClass String false Style class of the component.
value Object true Value of the data component.
var String true Name of the iterator variable that references each element in the data set.
Loading...
Tag DocumentationNew DocumentationNew Documentation
Right Align
 
Ordered
 
Processing
 
Shipped
 
Delivered
Alternate Align
 
Ordered
 
Processing
 
Shipped
 
Delivered
Opposite Content
15/10/2020 10:30
Ordered
15/10/2020 14:00
Processing
15/10/2020 16:15
Shipped
16/10/2020 10:00
Delivered
Customized
 
Ordered
15/10/2020 10:30
game-controller.jpg

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Inventore sed consequuntur error repudiandae numquam deserunt quisquam repellat libero asperiores earum nam nobis, culpa ratione quam perferendis esse, cupiditate neque quas!

 
Processing
15/10/2020 14:00

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Inventore sed consequuntur error repudiandae numquam deserunt quisquam repellat libero asperiores earum nam nobis, culpa ratione quam perferendis esse, cupiditate neque quas!

 
Shipped
15/10/2020 16:15

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Inventore sed consequuntur error repudiandae numquam deserunt quisquam repellat libero asperiores earum nam nobis, culpa ratione quam perferendis esse, cupiditate neque quas!

 
Delivered
16/10/2020 10:00

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Inventore sed consequuntur error repudiandae numquam deserunt quisquam repellat libero asperiores earum nam nobis, culpa ratione quam perferendis esse, cupiditate neque quas!

Horizontal
Top Align
 
2020
 
2021
 
2022
 
2023
Bottom Align
 
2020
 
2021
 
2022
 
2023
Alternate Align
 
2020
 
2021
 
2022
 
2023

Usage


<style>
    .custom-marker {
        display: flex;
        width: 2rem;
        height: 2rem;
        align-items: center;
        justify-content: center;
        color: #ffffff;
        border-radius: 50%;
        z-index: 1;
    }

    .ui-chronoline-event-content,
    .ui-chronoline-event-opposite {
        line-height: 1;
    }

    @media screen and (max-width: 960px) {
        .customized-chronoline .ui-chronoline-event:nth-child(even) {
            flex-direction: row !important;
        }

        .customized-chronoline .ui-chronoline-event:nth-child(even) .ui-chronoline-event-content {
            text-align: left !important;
        }

        .customized-chronoline .ui-chronoline-event-opposite {
            flex: 0;
        }

        .customized-chronoline .ui-card {
            margin-top: 1rem;
        }
    }
</style>


<div class="card">
    <h:form>
        <p:messages showDetail="true">
            <p:autoUpdate/>
        </p:messages>

        <h5>Left Align</h5>
        <p:chronoline value="#{chronolineView.events}" var="event">
            <p:commandLink action="#{chronolineView.clickOnEvent(event)}" process="@this">
                <h6 class="mb-0">#{event.status}</h6>
            </p:commandLink>
        </p:chronoline>
    </h:form>
</div>

<div class="card">
    <h5>Right Align</h5>
    <p:chronoline value="#{chronolineView.events}" var="event" align="right">
        #{event.status}
    </p:chronoline>
</div>

<div class="card">
    <h5>Alternate Align</h5>
    <p:chronoline value="#{chronolineView.events}" var="event" align="alternate">
        #{event.status}
    </p:chronoline>
</div>

<div class="card">
    <h5>Opposite Content</h5>
    <p:chronoline value="#{chronolineView.events}" var="event">
        #{event.status}

        <f:facet name="opposite">
            <small class="text-secondary">#{event.date}</small>
        </f:facet>
    </p:chronoline>
</div>

<div class="card">
    <h:form>
        <h5>Customized</h5>
        <p:chronoline value="#{chronolineView.events}" var="event" align="alternate" styleClass="customized-chronoline">

            <p:card>
                <f:facet name="title">
                    #{event.status}
                </f:facet>
                <f:facet name="subtitle">
                    #{event.date}
                </f:facet>

                <p:graphicImage rendered="#{not empty event.image}" width="200" styleClass="shadow-1"
                            value="../../resources/demo/images/product/#{event.image}" alt="#{event.image}"/>
                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Inventore sed consequuntur error repudiandae numquam deserunt
                    quisquam repellat libero asperiores earum nam nobis, culpa ratione quam perferendis esse, cupiditate neque quas!</p>
                <p:commandButton value="Read more" styleClass="ui-button-flat"/>
            </p:card>

            <f:facet name="marker">
            <span class="custom-marker shadow-1" style="background-color: #{event.color}"><i class="#{event.icon}"/></span>
            </f:facet>
        </p:chronoline>

    </h:form>
</div>

<div class="card">
    <h5>Horizontal</h5>
    <h6>Top Align</h6>
    <p:chronoline value="#{chronolineView.events2}" var="event" layout="horizontal" align="top">
        #{event}
    </p:chronoline>

    <h6>Bottom Align</h6>
    <p:chronoline value="#{chronolineView.events2}" var="event" layout="horizontal" align="bottom">
        #{event}
    </p:chronoline>

    <h6>Alternate Align</h6>
    <p:chronoline value="#{chronolineView.events2}" var="event" layout="horizontal" align="alternate">
        #{event}
    </p:chronoline>
</div>