UI Elements

CampaignDetailsTab, CampaignExecutionsTab, CampaignHistoryTab

In TimveroOS, tabs (EntityTabController) are used to display additional information about an entity on its detail page. For campaigns, three tabs are used:


📋 CampaignDetailsTab

Example:

@RequestMapping("/details")
@Controller
@Order(1000)
public class CampaignDetailsTab extends EntityTabController<Long, Campaign> {
    @Override
    public boolean isVisible(Campaign entity) {
        return true; // logic for tab visibility
    }
}

🧩 Template: /campaign/tab/details.html

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:th="http://www.thymeleaf.org">
<th:block th:object="${entity}">
    <div class="card-body card-info-wrapper d-flex">
        <div class="card-info d-flex">
            <ul class="card-info__body d-flex">
                <li class="card-info__item d-flex">
                    <span class="card-info__property" th:text="#{campaign.name}"
                          th:title="#{campaign.name}"></span>
                    <span class="card-info__value" th:text="*{name}"></span>
                </li>
                <li class="card-info__item d-flex">
                    <span class="card-info__property" th:text="#{campaign.executionType}"
                          th:title="#{campaign.executionType}"></span>
                    <span class="card-info__value" th:text="*{#enums.name(executionType)}"></span>
                </li>
                <!-- Display additional campaign details -->
            </ul>
        </div>
    </div>
</th:block>
</html>

Purpose: Displays basic information about the campaign:

  • name

  • executionType

  • and more


📈 CampaignExecutionsTab

Example:

🧩 Template: /campaign/tab/executions.html

Purpose: Displays all executions (CampaignExecutionarrow-up-right) across all versions of the campaign, sorted from newest to oldest.


🕓 CampaignHistoryTab

Example:

🧩 Template: /campaign/tab/history.html

Purpose: Displays the change history of the campaign. Each version appears as a separate block showing the expression, creation date, and author. Uses lineageId to track the version lineage.

Last updated

Was this helpful?