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:
nameexecutionTypeand more
📈 CampaignExecutionsTab
Example:
🧩 Template: /campaign/tab/executions.html
Purpose:
Displays all executions (CampaignExecution) 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?