N°3123 - Refactor Directories

This commit is contained in:
Eric
2020-12-02 13:18:01 +01:00
parent d1b12ee04b
commit 15aa9e508c
259 changed files with 862 additions and 869 deletions

View File

@@ -0,0 +1,4 @@
{% extends 'base/layouts/activity-panel/activity-entry/layout.html.twig' %}
{% block iboActivityEntryExtraClasses %}ibo-caselog-entry ibo-caselog-entry--entry-for-caselog-{{ oUIBlock.GetCaseLogRank() }}{% endblock %}
{% block iboActivityEntryExtraDataAttributes %}data-entry-caselog-attribute-code="{{ oUIBlock.GetAttCode() }}"{% endblock %}

View File

@@ -0,0 +1,19 @@
{% extends 'base/layouts/activity-panel/activity-entry/layout.html.twig' %}
{% block iboActivityEntryExtraClasses %}ibo-edits-entry{% endblock %}
{% block iboActivityEntryMainInformationContent %}
{% if oUIBlock.GetAttributes()|length == 1 %}
<span class="ibo-edits-entry--short-description">{{ oUIBlock.GetShortDescriptionAsHtml()|raw }}</span>
{% else %}
<a href="#" class="ibo-edits-entry--short-description" data-role="ibo-edits-entry--long-description-toggler">
{{ oUIBlock.GetShortDescriptionAsHtml()|raw }}
<span class="ibo-edits-entry--long-description-toggler-icon fa fa-caret-down"></span>
</a>
<ul class="ibo-edits-entry--long-description" data-role="ibo-edits-entry--long-description">
{% for sAttCode, aAttData in oUIBlock.GetAttributes() %}
<li class="ibo-edits-entry--attribute-description" data-attribute-code="{{ sAttCode }}">{{ aAttData.description|raw }}</li>
{% endfor %}
</ul>
{% endif %}
{% endblock %}

View File

@@ -0,0 +1,40 @@
<div class="ibo-activity-entry {% if oUIBlock.IsFromCurrentUser() %}ibo-is-current-user{% endif %} {% block iboActivityEntryExtraClasses %}{% endblock %}"
data-role="ibo-activity-entry"
data-entry-type="{% block iboActivityEntryType %}{{ oUIBlock.GetType() }}{% endblock %}"
data-entry-datetime-raw="{{ oUIBlock.GetRawDateTime() }}"
data-entry-author-login="{{ oUIBlock.GetAuthorLogin() }}"
{% block iboActivityEntryExtraDataAttributes %}{% endblock %}>
<div class="ibo-activity-entry--medallion {% if oUIBlock.GetAuthorPictureAbsUrl() is not empty %}ibo-has-image{% endif %}" data-role="ibo-activity-entry--medallion" data-tooltip-content="{{ oUIBlock.GetAuthorFriendlyname() }}">
{% block iboActivityEntryMedallion %}
{% if oUIBlock.GetAuthorPictureAbsUrl() is not empty %}
<img class="ibo-activity-entry--author-picture" src="{{ oUIBlock.GetAuthorPictureAbsUrl() }}" alt="{{ oUIBlock.GetAuthorInitials() }}" />
{% else %}
<div class="ibo-activity-entry--author-initials">{{ oUIBlock.GetAuthorInitials() }}</div>
{% endif %}
{% endblock %}
</div>
<div class="ibo-activity-entry--information" data-role="ibo-activity-entry--information">
{% block iboActivityEntryInformation %}
<div class="ibo-activity-entry--main-information" data-role="ibo-activity-entry--main-information">
<div class="ibo-activity-entry--main-information-icon" data-role="ibo-activity-entry--main-information-icon">
{% block iboActivityEntryMainInformationIcon %}
{% if oUIBlock.GetDecorationClasses() is not empty %}
<span class="{{ oUIBlock.GetDecorationClasses() }}"></span>
{% endif %}
{% endblock %}
</div>
<div class="ibo-activity-entry--main-information-content" data-role="ibo-activity-entry--main-information-content">
{% block iboActivityEntryMainInformationContent %}
{# Content is printed as raw because it is stored as HTML in the database and should have been sanitized before storage, so we can assume it is safe #}
{{ oUIBlock.GetContent()|raw }}
{% endblock %}
</div>
</div>
<div class="ibo-activity-entry--sub-information" data-role="ibo-activity-entry--sub-information">
{% block iboActivityEntrySubInformation %}
<span class="ibo-activity-entry--datetime" data-role="ibo-activity-entry--datetime" data-tooltip-content="{{ oUIBlock.GetFormattedDateTime() }}">{{ oUIBlock.GetFormattedDateTime() }}</span>
{% endblock %}
</div>
{% endblock %}
</div>
</div>

View File

@@ -0,0 +1,10 @@
{% extends 'base/layouts/activity-panel/activity-entry/layout.html.twig' %}
{% block iboActivityEntryExtraClasses %}ibo-transition-entry{% endblock %}
{% block iboActivityEntryExtraDataAttributes %}data-original-state-code="{{ oUIBlock.GetOriginalStateCode() }}" data-target-state-code="{{ oUIBlock.GetTargetStateCode() }}"{% endblock %}
{% block iboActivityEntryMainInformationContent %}
{% set sOriginalStateLabelAsHtml = '<span class="ibo-transition-entry--original-state-label">' ~ oUIBlock.GetOriginalStateLabel() ~ '</span>' %}
{% set sTargetStateLabelAsHtml = '<span class="ibo-transition-entry--target-state-label">' ~ oUIBlock.GetTargetStateLabel() ~ '</span>' %}
{{ 'Change:State_Changed_NewValue_OldValue'|dict_format(sTargetStateLabelAsHtml, sOriginalStateLabelAsHtml)|raw }}
{% endblock %}

View File

@@ -0,0 +1,23 @@
<form id="{{ oUIBlock.GetId() }}"
class="ibo-caselog-entry-form {% if oUIBlock.IsSubmitAutonomous %}ibo-is-closed{% endif %}"
data-role="ibo-caselog-entry-form"
data-submit-mode="{{ oUIBlock.GetSubmitMode() }}"
data-container-tab-type="{{ oUIBlock.GetContainerTabType() }}"
method="post">
<div class="ibo-caselog-entry-form--text-input" data-role="ibo-caselog-entry-form--text-input">
{{ render_block(oUIBlock.GetTextInput(), {aPage: aPage}) }}
</div>
<div class="ibo-caselog-entry-form--actions">
<div class="ibo-caselog-entry-form--action-buttons--extra-actions" data-role="ibo-caselog-entry-form--action-buttons--extra-actions">
{% for TextInputActionButton in oUIBlock.GetExtraActionButtons() %}
{{ render_block(TextInputActionButton, {aPage: aPage}) }}
{% endfor %}
</div>
<div class="ibo-caselog-entry-form--action-buttons--main-actions" data-role="ibo-caselog-entry-form--action-buttons--main-actions">
{% for FormActionButton in oUIBlock.GetMainActionButtons() %}
{{ render_block(FormActionButton, {aPage: aPage}) }}
{% endfor %}
{{ render_block(oUIBlock.GetSendButtonPopoverMenu(), {aPage: aPage}) }}
</div>
</div>
</form>

View File

@@ -0,0 +1,5 @@
$('#{{ oUIBlock.GetId() }}').caselog_entry_form({
submit_mode: '{{ oUIBlock.GetSubmitMode() }}',
target_tab: '{{ oUIBlocl.GetContainerTabType() }}',
text_input_id: '{{ oUIBlock.GetTextInput().GetId()}}'
});

View File

@@ -0,0 +1,9 @@
{% set oFirstEntry = aEntryGroup.entries|first %}
<div class="ibo-activity-panel--entry-group {% if oFirstEntry.IsFromCurrentUser() %}ibo-is-current-user{% endif %}"
data-role="ibo-activity-panel--entry-group"
data-entry-group-author-login="{{ oFirstEntry.GetAuthorLogin() }}"
data-entry-group-origin="{{ oFirstEntry.GetOrigin() }}">
{% for oEntry in aEntryGroup.entries %}
{{ render_block(oEntry) }}
{% endfor %}
</div>

View File

@@ -0,0 +1,111 @@
<div id="{{ oUIBlock.GetId() }}" class="ibo-activity-panel" data-role="ibo-activity-panel" data-object-class="{{ oUIBlock.GetObjectClass() }}" data-object-id="{{ oUIBlock.GetObjectId() }}" data-object-mode="{{ oUIBlock.GetObjectMode() }}">
<div class="ibo-activity-panel--header">
<div class="ibo-activity-panel--tabs-togglers">
{% for sCaseLogAttCode, aCaseLogData in oUIBlock.GetCaseLogTabs() %}
<div class="ibo-activity-panel--tab-toggler ibo-activity-panel--tab-toggler-for-caselog ibo-activity-panel--tab-toggler-for-caselog-{{ loop.index }}" data-role="ibo-activity-panel--tab-toggler" data-tab-type="caselog" data-caselog-attribute-code="{{ sCaseLogAttCode }}" data-caselog-rank="{{ loop.index }}">
<a href="#" class="ibo-activity-panel--tab-title" data-role="ibo-activity-panel--tab-title">
<span class="ibo-activity-panel--tab-title-decoration"></span>
<span class="ibo-activity-panel--tab-title-text" title="{{ aCaseLogData.title }}">{{ aCaseLogData.title }}</span>
</a>
</div>
{% endfor %}
<div class="ibo-activity-panel--tab-toggler ibo-activity-panel--tab-toggler-for-activity ibo-is-active" data-role="ibo-activity-panel--tab-toggler" data-tab-type="activity">
<a href="#" class="ibo-activity-panel--tab-title" data-role="ibo-activity-panel--tab-title">
<span class="ibo-activity-panel--tab-title-text" title="{{ 'UI:Layout:ActivityPanel:Tab:Activity:Title'|dict_s }}">{{ 'UI:Layout:ActivityPanel:Tab:Activity:Title'|dict_s }}</span>
</a>
</div>
<div class="ibo-activity-panel--size-toggler" data-role="ibo-activity-panel--size-toggler">
<a href="#" class="ibo-activity-panel--expand-icon"
data-role="ibo-activity-panel--expand-icon"
data-tooltip-content="{{ 'UI:Layout:ActivityPanel:SizeToggler:Expand:Tooltip'|dict_s }}">
<span class="fas fa-fw fa-expand-alt"></span>
</a>
<a href="#" class="ibo-activity-panel--collapse-icon"
data-role="ibo-activity-panel--collapse-icon"
data-tooltip-content="{{ 'UI:Layout:ActivityPanel:SizeToggler:Collapse:Tooltip'|dict_s }}">
<span class="fas fa-fw fa-compress-alt"></span>
</a>
</div>
</div>
<div class="ibo-activity-panel--tabs-toolbars">
{% for sCaseLogAttCode, aCaseLogData in oUIBlock.GetCaseLogTabs() %}
<div class="ibo-activity-panel--tab-toolbar ibo-activity-panel--tab-toolbar-for-caselog ibo-activity-panel--tab-toolbar-for-caselog-{{ loop.index }}" data-role="ibo-activity-panel--tab-toolbar" data-tab-type="caselog" data-caselog-attribute-code="{{ sCaseLogAttCode }}" data-caselog-rank="{{ loop.index }}">
<div class="ibo-activity-panel--tab-toolbar-actions">
<div class="ibo-activity-panel--tab-toolbar-left-actions">
<a href="#" class="ibo-activity-panel--tab-toolbar-action ibo-activity-panel--tab-toolbar-action-open-all" data-role="ibo-activity-panel--caselog-open-all" data-tooltip-content="{{ 'UI:Layout:ActivityPanel:Tab:Caselog:Toolbar:OpenAll:Tooltip'|dict_s }}">
<span class="fas fa-book-open"></span>
</a>
<a href="#" class="ibo-activity-panel--tab-toolbar-action ibo-activity-panel--tab-toolbar-action-close-all" data-role="ibo-activity-panel--caselog-close-all" data-tooltip-content="{{ 'UI:Layout:ActivityPanel:Tab:Caselog:Toolbar:CloseAll:Tooltip'|dict_s }}">
<span class="fas fa-book"></span>
</a>
</div>
<div class="ibo-activity-panel--tab-toolbar-right-actions">
<span class="ibo-activity-panel--tab-toolbar-info ibo-activity-panel--tab-toolbar-info-authors-count" data-tooltip-content="{{ 'UI:Layout:ActivityPanel:Tab:Caselog:Toolbar:AuthorsCount:Tooltip'|dict_s }}">
<span class="ibo-activity-panel--tab-toolbar-info-text">{{ aCaseLogData.authors|length }}</span>
<span class="ibo-activity-panel--tab-toolbar-info-icon fas fa-users"></span>
</span>
<span class="ibo-activity-panel--tab-toolbar-info ibo-activity-panel--tab-toolbar-info-messages-count" data-tooltip-content="{{ 'UI:Layout:ActivityPanel:Tab:Caselog:Toolbar:MessagesCount:Tooltip'|dict_s }}">
<span class="ibo-activity-panel--tab-toolbar-info-text">{{ aCaseLogData.total_messages_count }}</span>
<span class="ibo-activity-panel--tab-toolbar-info-icon fas fa-comment-alt"></span>
</span>
</div>
</div>
{% if oUIBlock.HasCaseLogTabEntryForm(sCaseLogAttCode) %}
<div class="ibo-activity-panel--tab-toggler-entry-form" data-role="ibo-activity-panel--tab-toggler-entry-form">
{{ render_block(oUIBlock.GetCaseLogTabEntryForm(sCaseLogAttCode)) }}
</div>
{% endif %}
</div>
{% endfor %}
<div class="ibo-activity-panel--tab-toolbar ibo-activity-panel--tab-toolbar-for-activity ibo-is-active" data-role="ibo-activity-panel--tab-toolbar" data-tab-type="activity">
<div class="ibo-activity-panel--tab-toolbar-actions">
<div class="ibo-activity-panel--tab-toolbar-middle-actions">
{% if oUIBlock.HasCaseLogTabs() %}
<label class="ibo-activity-panel--tab-toolbar-action"
data-tooltip-content="{{ 'UI:Layout:ActivityPanel:Tab:Activity:Toolbar:CaselogsFilter:Tooltip'|dict_s }}">
<input type="checkbox" name="caselogs" data-role="ibo-activity-panel--activity-filter" data-target-entry-types="caselog" checked />
{{ 'UI:Layout:ActivityPanel:Tab:Activity:Toolbar:CaselogsFilter:Title'|dict_s }}
</label>
{% endif %}
{% if oUIBlock.HasLifecycle() %}
<label class="ibo-activity-panel--tab-toolbar-action"
data-tooltip-content="{{ 'UI:Layout:ActivityPanel:Tab:Activity:Toolbar:TransitionsFilter:Tooltip'|dict_s }}">
<input type="checkbox" name="transitions" data-role="ibo-activity-panel--activity-filter" data-target-entry-types="transition" checked />
{{ 'UI:Layout:ActivityPanel:Tab:Activity:Toolbar:TransitionsFilter:Title'|dict_s }}
</label>
{% endif %}
<label class="ibo-activity-panel--tab-toolbar-action"
data-tooltip-content="{{ 'UI:Layout:ActivityPanel:Tab:Activity:Toolbar:EditsFilter:Tooltip'|dict_s }}">
<input type="checkbox" name="edits" data-role="ibo-activity-panel--activity-filter" data-target-entry-types="edits" checked />
{{ 'UI:Layout:ActivityPanel:Tab:Activity:Toolbar:EditsFilter:Title'|dict_s }}
</label>
</div>
</div>
{% if oUIBlock.HasActivityTabEntryForm() %}
<div class="ibo-activity-panel--tab-toggler-entry-form" data-role="ibo-activity-panel--tab-toggler-entry-form">
{{ render_block(oUIBlock.GetActivityTabEntryForm()) }}
</div>
{% endif %}
</div>
</div>
</div>
{% if oUIBlock.HasActivityTabEntryForm() %}
{% if oUIBlock.GetActivityTabEntryForm().IsSubmitAutonomous() %}
<a href="#" class="ibo-activity-panel--body--add-caselog-entry--toggler" data-role="ibo-activity-panel--body--add-caselog-entry--toggler"><i class="fas fa-feather"></i></a>
{% endif %}
{% endif %}
<div class="ibo-activity-panel--body">
{% if oUIBlock.GetGroupedEntries()|length > 0 %}
{% for aEntryGroup in oUIBlock.GetGroupedEntries() %}
{{ include('base/layouts/activity-panel/entry-group.html.twig', {aEntryGroup: aEntryGroup}) }}
{% endfor %}
{% else %}
<div class="ibo-activity-panel--body--placeholder">
<div class="ibo-activity-panel--body--placeholder-image ibo-svg-illustration--container">
{{ source("illustrations/undraw_reading_time.svg") }}
</div>
<div class="ibo-activity-panel--body--placeholder-hint">{{ 'UI:Layout:ActivityPanel:NoEntry:Placeholder:Hint'|dict_s }}</div>
</div>
{% endif %}
</div>
</div>

View File

@@ -0,0 +1,3 @@
$('#{{ oUIBlock.GetId() }}').activity_panel({
datetime_format: {{ oUIBlock.GetDateTimeFormatForJSWidget()|json_encode|raw }}
});