Revert "N°8579 - remove "spaceless" in twig files"

This reverts commit ee993ef80a.
This commit is contained in:
Anne-Cath
2025-09-03 10:37:26 +02:00
parent 0f39106b56
commit f5cce23bb4
45 changed files with 635 additions and 480 deletions

View File

@@ -1,6 +1,9 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
{% apply spaceless %}
{% UIContentBlock Standard {'aContainerClasses': ['ibo-update-core', 'ibo-setup--wizard']} %}
{% if bSuccess %}
{% UIContentBlock Standard {'aContainerClasses': ['ibo-setup--wizard--content']} %}
{% UIFieldSet Standard {'sLegend':'iTopUpdate:UI:Status'|dict_s, 'sId':'update_progress'} %}
@@ -8,7 +11,9 @@
{% set sVersion = 'UI:iTopVersion:Long'|dict_format(constant('ITOP_APPLICATION'), constant('ITOP_VERSION'), constant('ITOP_REVISION'), constant('ITOP_BUILD_DATE')) %}
{% UIField Large {'sLabel':'iTopUpdate:UI:CurrentVersion'|dict_s, 'sValueHtml':sVersion} %}{% EndUIField %}
{% EndUIFieldSet %}
{% UIFieldSet Standard {'sLegend':'iTopUpdate:UI:Backup'|dict_s} %}
{% if bDoBackup or bDoFilesArchive %}
{% if bDoBackup %}
{% UIField Large {'sLabel':'iTopUpdate:UI:WithDBBackup'|dict_s, 'sValueHtml':sBackupFile} %}{% EndUIField %}
@@ -19,11 +24,14 @@
{% else %}
{% UIAlert ForWarning {'sContent':'iTopUpdate:UI:WithoutBackup'|dict_s, 'IsCollapsible':false, 'IsClosable':false} %}{% EndUIAlert %}
{% endif %}
{% EndUIFieldSet %}
{% UIFieldSet Standard {'sLegend':'iTopUpdate:UI:Action'|dict_s} %}
{% UIAlert ForWarning {'sContent':'iTopUpdate:UI:WarningReadOnlyDuringUpdate'|dict_s, 'IsCollapsible':false, 'IsClosable':false} %}{% EndUIAlert %}
{% EndUIFieldSet %}
{% EndUIContentBlock %}
{% UIToolbar ForButton {'AddCSSClass':'ibo-setup--wizard--buttons-container'} %}
{% UIForm Standard {'CSSClasses':['form-inline']} %}
{% UIButton ForCancel {'sId':'cancel-update', 'sLabel':'iTopUpdate:UI:Cancel'|dict_s, 'bIsSubmit':true} %}
@@ -38,12 +46,17 @@
{% UIInput ForHidden {'sName':'doFilesArchive', 'sValue':bDoFilesArchive} %}
{% EndUIForm %}
{% EndUIToolbar %}
{% else %}
{% UIFieldSet Standard {'sLegend':''} %}
{% UIAlert ForFailure {'sContent':sError, 'IsCollapsible':false, 'IsClosable':false} %}{% EndUIAlert %}
{% UIForm Standard {} %}
{% UIButton ForPrimaryAction {'sLabel':'iTopUpdate:UI:Back'|dict_s, 'bIsSubmit':true} %}
{% EndUIForm %}
{% EndUIFieldSet %}
{% endif %}
{% EndUIContentBlock %}
{% endapply %}

View File

@@ -1,7 +1,11 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
{% apply spaceless %}
{% UIContentBlock Standard {'aContainerClasses':['ibo-update-core']} %}
{% UIPanel Neutral {sTitle:'iTopUpdate:UI:PageTitle'|dict_s} %}
{% UIContentBlock Standard {'aContainerClasses': ['display_block', 'display-files']} %}
{% UIFieldSet Standard {'sLegend':'iTopUpdate:UI:Status'|dict_s} %}
{% UIAlert ForInformation {'sId':'header-requirements', 'IsCollapsible':false, 'IsClosable':false} %}
@@ -14,26 +18,34 @@
{% EndUIContentBlock %}
{% EndUICollapsibleSection %}
{% EndUIAlert %}
{% UIField Standard {'sLabel':'iTopUpdate:UI:CurrentVersion'|dict_s} %}
{{ 'UI:iTopVersion:Long'|dict_format(constant('ITOP_APPLICATION'), constant('ITOP_VERSION'), constant('ITOP_REVISION'), constant('ITOP_BUILD_DATE')) }}
{% EndUIField %}
{% UIField Standard {'sLabel':'iTopUpdate:UI:DiskFreeSpace'|dict_s} %}
{{ sDiskFreeSpace }}
{% EndUIField %}
{% UIField Standard {'sLabel':'iTopUpdate:UI:ItopDiskSpace'|dict_s, 'ValueId':'itop-disk-space'} %}
{% UISpinner Standard {} %}
{% EndUIField %}
{% UIField Standard {'sLabel':'iTopUpdate:UI:DBDiskSpace'|dict_s, 'ValueId':'db-disk-space'} %}
{% UISpinner Standard {} %}
{% EndUIField %}
{% UIField Standard {'sLabel':'iTopUpdate:UI:FileUploadMaxSize'|dict_s} %}
{{ sFileUploadMaxSize }}
{% EndUIField %}
{% EndUIFieldSet %}
{% UIFieldSet Standard {'sLegend':'iTopUpdate:UI:SelectUpdateFile'|dict_s, 'sId':'form-update-outer'} %}
{% UIForm Standard {} %}
{% UIInput ForHidden {'sName':'route', 'sValue':'core_update.confirm_update'} %}
{% UIInput ForHidden {'sName':'transaction_id', 'sValue':sTransactionId} %}
{% UIAlert ForFailure {'sId':'header-file-size', 'IsHidden':true} %}
{% UIContentBlock Standard {'aContainerClasses':['ibo-file-size-error']} %}
{{ 'iTopUpdate:Error:FileUploadMaxSizeTooSmall'|dict_s }}
@@ -45,25 +57,34 @@
{{ 'iTopUpdate:UI:UploadMaxFileSize'|dict_format(sUploadMaxSize) }}
{% EndUIContentBlock %}
{% EndUIAlert %}
{% UIAlert ForInformation {'sId':'check-in-progress', 'IsHidden':false} %}
{{ 'iTopUpdate:UI:CheckInProgress'|dict_s }}
{% EndUIAlert %}
{% UIFileSelect Standard {sName: 'file', sId: 'file','AddCSSClass':'ibo-is-hidden'} %}
{% UIAlert ForWarning {'sId':'dobackup-warning', 'IsHidden':true} %}
{{ 'iTopUpdate:UI:DoBackup:Warning'|dict_s }}
{% EndUIAlert %}
{% UIContentBlock Standard {'aContainerClasses':['ibo-font-ral-nor-150']} %}
{% UIInput Standard {'sType':'checkbox', 'sId':'doBackup', 'sName':'doBackup', 'sValue':'1', 'IsChecked':true, 'CSSClasses':['ibo-input-checkbox', 'ibo-input--label-left'], 'Label':'iTopUpdate:UI:DoBackup:Label'|dict_s} %}
{% EndUIContentBlock %}
{% UIContentBlock Standard {'aContainerClasses':['ibo-font-ral-nor-150']} %}
{% UIInput Standard {'sType':'checkbox', 'sId':'doFilesArchive', 'sName':'doFilesArchive', 'sValue':'1', 'IsChecked':true, 'CSSClasses':['ibo-input-checkbox', 'ibo-input--label-left'], 'Label':'iTopUpdate:UI:DoFilesArchive'|dict_s} %}
{% EndUIContentBlock %}
{% UIContentBlock Standard {'aContainerClasses':['ibo_check_update_submit']} %}
{% UIButton ForPrimaryAction {'sLabel':'iTopUpdate:UI:CheckUpdate'|dict_s, 'sId':'check-update', 'bIsSubmit':true, 'IsDisabled':true} %}
{% UISpinner Standard {'sId':'submit-wait', 'IsHidden':true} %}
{% EndUIContentBlock %}
{% EndUIForm %}
{% EndUIFieldSet %}
{% if bIsSetupLaunchButtonEnabled %}
{% UIFieldSet Standard {'sLegend':'iTopUpdate:UI:Setup'|dict_s} %}
{% UIForm Standard {'sId':'launch-setup-form', Action:sLaunchSetupUrl} %}
@@ -78,9 +99,14 @@
{% UISpinner Standard {sId:'fast-setup-wait', IsHidden:true} %}
{% EndUIFieldSet %}
{% endif %}
{% UIFieldSet Standard {'sLegend':'iTopUpdate:UI:History'|dict_s} %}
{% UIDataTable ForRendering {'sListId':'iboupdatehistory', 'oSet':oSet} %}{% EndUIDataTable %}
{% EndUIFieldSet %}
{% EndUIContentBlock %}
{% EndUIPanel %}
{% EndUIContentBlock %}
{% endapply %}

View File

@@ -1,6 +1,9 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
{% UIContentBlock Standard {aContainerClasses: ['ibo-update-core', 'ibo-setup--wizard']} %}
{% apply spaceless %}
{% UIContentBlock Standard {aContainerClasses: ['ibo-update-core', 'ibo-setup--wizard']} %}
{% UIContentBlock Standard {'aContainerClasses': ['ibo-setup--wizard--content']} %}
{% UIFieldSet Standard {sLegend:'iTopUpdate:UI:Progress'|dict_s, sId:'installation_progress'} %}
@@ -61,4 +64,5 @@
{% EndUIForm %}
{% EndUIToolbar %}
{% EndUIContentBlock %}
{% EndUIContentBlock %}
{% endapply %}

View File

@@ -1,7 +1,9 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
<div style="height:250px;width:100%" class="dashboard_chart" id="my_chart_{{ oUIBlock.sChartId }}{{ oUIBlock.iChartCounter }}">
{% apply spaceless %}
<div style="height:250px;width:100%" class="dashboard_chart" id="my_chart_{{ oUIBlock.sChartId }}{{ oUIBlock.iChartCounter }}">
<div style="height:200px;line-height:200px;vertical-align:center;text-align:center;width:100%">
<img src="{{ get_absolute_url_app_root() }}images/indicator.gif">
</div>
</div>
</div>
{% endapply %}

View File

@@ -1,5 +1,7 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
{% apply spaceless %}
$.post('{{ oUIBlock.sUrl|escape('js') }}', {}, function (data) {
$('body').append(data);
});
{% endapply %}

View File

@@ -1,6 +1,7 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
<div id="{{ oUIBlock.GetId() }}" class="{{ oUIBlock.GetBlockCode() }}">
{% apply spaceless %}
<div id="{{ oUIBlock.GetId() }}" class="{{ oUIBlock.GetBlockCode() }}">
<div>
<table style="width:100%" class="transparent">
<tr>
@@ -24,4 +25,5 @@
</div>
</div>
<textarea id="csv_content" style="display:none;"></textarea>
</div>
</div>
{% endapply %}

View File

@@ -1,5 +1,6 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
{% apply spaceless %}
$.post(
'{{ oUIBlock.sAjaxLink|escape('js') }}',
{{ oUIBlock.sJsonParams|raw }},
@@ -8,3 +9,4 @@ $.post(
$('#csv_content_loading').hide();
$('#csv_content').show();
});
{% endapply %}

View File

@@ -1,11 +1,13 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
{% if oUIBlock.bEmptySet or oUIBlock.bNotAuthorized %}
<div class="ibo-block-list--empty-text">{{ 'UI:NoObjectToDisplay'|dict_s }}</div>
{% endif %}
{% apply spaceless %}
{# TODO 3.1: This section should be removed if BlockList is no longer used as is, but always with a table #}
{% if oUIBlock.bCreateNew %}
{% if oUIBlock.bEmptySet or oUIBlock.bNotAuthorized %}
<div class="ibo-block-list--empty-text">{{ 'UI:NoObjectToDisplay'|dict_s }}</div>
{% endif %}
{# TODO 3.1: This section should be removed if BlockList is no longer used as is, but always with a table #}
{% if oUIBlock.bCreateNew %}
<div class="ibo-block-list--create-action">
<a{{ oUIBlock.sLinkTarget }} href="{{ oUIBlock.sAbsoluteUrlAppRoot }}pages/UI.php?operation=new&class={{ oUIBlock.sClass }}&{{ oUIBlock.sParams }}{{ oUIBlock.sDefault }}">
<span class="ibo-block-list--create-icon">
@@ -14,8 +16,10 @@
<span class="ibo-block-list--create-label">{{ 'UI:ClickToCreateNew'|dict_format(oUIBlock.sClassLabel) }}</span>
</a>
</div>
{% endif %}
{% endif %}
{% for oSubBlock in oUIBlock.GetSubBlocks() %}
{{- render_block(oSubBlock, {aPage: aPage}) -}}
{% endfor %}
{% for oSubBlock in oUIBlock.GetSubBlocks() %}
{{ render_block(oSubBlock, {aPage: aPage}) }}
{% endfor %}
{% endapply %}

View File

@@ -1,5 +1,7 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
{% if oUIBlock.sEventAttachedData is not empty %}
{% apply spaceless %}
{% if oUIBlock.sEventAttachedData is not empty %}
$('body').trigger('update_history.itop', [{{ oUIBlock.sEventAttachedData|raw }}]);
{% endif %}
{% endif %}
{% endapply %}

View File

@@ -1,5 +1,6 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
{% apply spaceless %}
oWidget{{ oUIBlock.oUILinksDirectWidget.GetInputId() }} = $('#{{ oUIBlock.oUILinksDirectWidget.GetInputId() }}').directlinks({
class_name: '{{ oUIBlock.oUILinksDirectWidget.GetClass() }}',
att_code: '{{ oUIBlock.oUILinksDirectWidget.GetAttCode() }}',
@@ -8,3 +9,4 @@ oWidget{{ oUIBlock.oUILinksDirectWidget.GetInputId() }} = $('#{{ oUIBlock.oUILin
oWizardHelper: {{ oUIBlock.sWizHelper }},
do_search: '{{ oUIBlock.sJSDoSearch }}'
});
{% endapply %}

View File

@@ -1,5 +1,6 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
{% apply spaceless %}
oWidget{{ oUIBlock.oUILinksWidget.GetInputId() }} = new LinksWidget(
'{{ oUIBlock.oUILinksWidget.GetLinkedSetId() }}',
'{{ oUIBlock.oUILinksWidget.GetClass() }}',
@@ -14,3 +15,4 @@ oWidget{{ oUIBlock.oUILinksWidget.GetInputId() }} = new LinksWidget(
{{ oUIBlock.aRemoved | json_encode | raw }}
);
oWidget{{ oUIBlock.oUILinksWidget.GetInputId() }}.Init();
{% endapply %}

View File

@@ -1,3 +1,5 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
{% apply spaceless %}
oWidget{{ oUIBlock.oUILinksWidget.GetInputId() }}.RegisterChange();
{% endapply %}

View File

@@ -1,5 +1,7 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
{% apply spaceless %}
$('#dlg_{{ oUIBlock.oUILinksWidget.GetLinkedSetId() }}').dialog({
width: $(window).width()*0.8,
height: $(window).height()*0.8,
@@ -29,3 +31,5 @@ $('#dlg_{{ oUIBlock.oUILinksWidget.GetLinkedSetId() }}').dialog({
$('#SearchFormToAdd_{{ oUIBlock.oUILinksWidget.GetLinkedSetId() }} form').on('submit.uilinksWizard', oWidget{{ oUIBlock.oUILinksWidget.GetInputId() }}.SearchObjectsToAdd);
$('#SearchFormToAdd_{{ oUIBlock.oUILinksWidget.GetLinkedSetId() }}').on('resize', oWidget{{ oUIBlock.oUILinksWidget.GetInputId() }}.UpdateSizes);
{% endapply %}

View File

@@ -1,6 +1,8 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
{% apply spaceless %}
{{ oUIBlock.GetWidgetName() }} = $('#{{ oUIBlock.GetId() }}').links_view_table({
link_class: '{{ oUIBlock.GetLinkedClass() }}',
external_key_to_me: '{{ oUIBlock.GetExternalKeyToMe() }}'
});
{% endapply %}

View File

@@ -1,5 +1,7 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
{% apply spaceless %}
var selectionCount{{ oUIBlock.sIdShortcuts }} = $('#{{ oUIBlock.sIdShortcuts }} [name="selectionCount"]');
selectionCount{{ oUIBlock.sIdShortcuts }}.on('change',function()
{
@@ -46,3 +48,5 @@ $('#shortcut_btn_delete').on('click', function() {
}
return false;
});
{% endapply %}

View File

@@ -1,6 +1,8 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
<div class="explain-printable not-printable">
{% apply spaceless %}
<div class="explain-printable not-printable">
<p>{{'UI:ExplainPrintable'| dict_format('<i class="fas fa-eye"></i>')| raw}}</p>
<div id="hiddeable_chapters"></div>
<button class="ibo-button ibo-is-regular ibo-is-primary action" onclick="window.print()">{{'UI:Button:GoPrint'| dict_s}}</button>&#160;&#160;
@@ -14,4 +16,6 @@
<option value='25.9cm'>{{ 'UI:PrintResolution:LetterLandscape'|dict_s }}</option>
</select>
</div>
</div>
{% endapply %}

View File

@@ -1,3 +1,7 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
{% apply spaceless %}
var oHiddeableChapters = {};
{% endapply %}

View File

@@ -1,5 +1,7 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
{% apply spaceless %}
var sHiddeableChapters = '<ul role="tablist" class="ibo-block-print--tablist">';
for (sId in oHiddeableChapters)
{
@@ -26,3 +28,5 @@ $('fieldset').each(function() {
$('legend').css('cursor', 'pointer').on('click', function(){
$(this).parent('fieldset').toggleClass('not-printable strikethrough');
});
{% endapply %}

View File

@@ -1,5 +1,5 @@
<span id="{{ oUIBlock.GetId() }}"
{% apply spaceless %}
<span id="{{ oUIBlock.GetId() }}"
class="{{ oUIBlock.GetBlocksInheritanceCSSClassesAsString() }} {{ oUIBlock.GetAdditionalCSSClassesAsString() }}{% if oUIBlock.IsHidden() %} ibo-is-hidden{% endif %}"
data-role="ibo-button-group"
{% if oUIBlock.GetDataAttributes() %}
@@ -9,9 +9,10 @@
{% endif %}
>
{% for oButton in oUIBlock.GetButtons() %}
{{- render_block(oButton) -}}
{{ render_block(oButton) }}
{% endfor %}
</span>
{% for oExtraBlock in oUIBlock.GetExtraBlocks() %}
{{- render_block(oExtraBlock) -}}
{% endfor %}
{% for oExtraBlock in oUIBlock.GetExtraBlocks() %}
{{ render_block(oExtraBlock) }}
{% endfor %}
{% endapply %}

View File

@@ -1,6 +1,7 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
<div class="ibo-dashlet-badge--body{% if oUIBlock.IsHidden() %} ibo-is-hidden{% endif %}" id="{{ oUIBlock.GetId() }}"
{% apply spaceless %}
<div class="ibo-dashlet-badge--body{% if oUIBlock.IsHidden() %} ibo-is-hidden{% endif %}" id="{{ oUIBlock.GetId() }}"
data-role="ibo-dashlet-badge--body"
{% if oUIBlock.HasClassDescription() %}
{# Display both class name and description as the name could be truncated if too long #}
@@ -28,4 +29,5 @@
</a>
{% endif %}
</div>
</div>
</div>
{% endapply %}

View File

@@ -1,6 +1,7 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
<div id="{{ oUIBlock.GetId() }}" class="ibo-dashlet-header-static {% if oUIBlock.IsHidden() %}ibo-is-hidden{% endif %}" data-role="ibo-dashlet-header-static">
{% apply spaceless %}
<div id="{{ oUIBlock.GetId() }}" class="ibo-dashlet-header-static {% if oUIBlock.IsHidden() %}ibo-is-hidden{% endif %}" data-role="ibo-dashlet-header-static">
<div class="ibo-dashlet-header-static--body">
{% if oUIBlock.GetIconUrl() is not empty %}
<div class="ibo-dashlet-header-static--icon-container">
@@ -12,4 +13,5 @@
<div class="ibo-dashlet-header-static--title">{{ oUIBlock.GetTitle() }}</div>
{% endif %}
</div>
</div>
</div>
{% endapply %}

View File

@@ -1,6 +1,8 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
<div id="{{ oUIBlock.GetId() }}" class="ibo-dashlet-text {% if oUIBlock.IsHidden() %}ibo-is-hidden{% endif %}" data-role="ibo-dashlet-text">
{% apply spaceless %}
<div id="{{ oUIBlock.GetId() }}" class="ibo-dashlet-text {% if oUIBlock.IsHidden() %}ibo-is-hidden{% endif %}" data-role="ibo-dashlet-text">
{# |raw filter is ok here as the escaping is already done by the \DashletPlainText class itself #}
{{- oUIBlock.GetText()|raw -}}
</div>
{{ oUIBlock.GetText()|raw }}
</div>
{% endapply %}

View File

@@ -1,2 +1,5 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
{% apply spaceless %}
{% endapply %}

View File

@@ -13,9 +13,11 @@
{% endfor %}
{% endif %}
>
{% apply spaceless %}
{% block iboContentBlockContainer %}
{% for oSubBlock in oUIBlock.GetSubBlocks() %}
{{- render_block(oSubBlock, {aPage: aPage}) -}}
{{ render_block(oSubBlock, {aPage: aPage}) }}
{% endfor %}
{% endblock %}
{% endapply %}
</form>

View File

@@ -1,6 +1,7 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
<div id="{{ oUIBlock.GetId() }}-container"
{% apply spaceless %}
<div id="{{ oUIBlock.GetId() }}-container"
class="ibo-input-file-select--container {% if oUIBlock.GetAdditionalCSSClassesAsString() %}{{ oUIBlock.GetAdditionalCSSClassesAsString() }}{% endif %}
{% if oUIBlock.IsHidden() %} ibo-is-hidden{% endif %}">
<label class="ibo-input-file-select">
@@ -10,4 +11,5 @@
<span id="{{ oUIBlock.GetId() }}-file-name" class="ibo-input-file-select--file-name">{{ oUIBlock.GetFileName() }}</span>
{% endif %}
</label>
</div>
</div>
{% endapply %}

View File

@@ -1,5 +1,6 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
{% apply spaceless %}
<div id="{{ oUIBlock.GetId() }}" class="{{ oUIBlock.GetBlocksInheritanceCSSClassesAsString() }} {{ oUIBlock.GetAdditionalCSSClassesAsString() }}" data-role="ibo-medallion-icon">
{% if oUIBlock.GetImageUrl() != '' %}
<img class="ibo-medallion-icon--image" src="{{ oUIBlock.GetImageUrl() }}" />
@@ -11,3 +12,4 @@
<div class="ibo-medallion-icon--description">{{ oUIBlock.GetDescription() }}</div>
{% endif %}
</div>
{% endapply %}

View File

@@ -1,12 +1,14 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
<div id="{{ oUIBlock.GetId() }}" class="ibo-spinner ibo-is-{{ oUIBlock.GetSize() }}
{% if oUIBlock.IsHidden() %}ibo-is-hidden{% endif %}
{{ oUIBlock.GetBlocksInheritanceCSSClassesAsString() }}
{{ oUIBlock.GetAdditionalCSSClassesAsString() }}"
{% apply spaceless %}
<div id="{{ oUIBlock.GetId() }}" class="ibo-spinner ibo-is-{{ oUIBlock.GetSize() }}
{% if oUIBlock.IsHidden() %}ibo-is-hidden{% endif %}
{{ oUIBlock.GetBlocksInheritanceCSSClassesAsString() }}
{{ oUIBlock.GetAdditionalCSSClassesAsString() }}"
data-role="ibo-spinner">
<i class="ibo-spinner--icon fas fa-sync-alt fa-spin" aria-hidden="true"></i>
{% if oUIBlock.HasDescription() %}
<div class="ibo-spinner--description"> {{ oUIBlock.GetDescription() }} </div>
{% endif %}
</div>
</div>
{% endapply %}

View File

@@ -1,7 +1,9 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
<template id="{{ oUIBlock.GetId() }}" data-role="ibo-template">
{% apply spaceless %}
<template id="{{ oUIBlock.GetId() }}" data-role="ibo-template">
{% for oSubBlock in oUIBlock.GetSubBlocks() %}
{{- render_block(oSubBlock, {aPage: aPage}) -}}
{{ render_block(oSubBlock, {aPage: aPage}) }}
{% endfor %}
</template>
</template>
{% endapply %}

View File

@@ -1,3 +1,5 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
{{ oUIBlock.GetText() }}
{% apply spaceless %}
{{ oUIBlock.GetText() }}
{% endapply %}

View File

@@ -1,4 +1,5 @@
<div id="{{ oUIBlock.GetId() }}" class="{{ oUIBlock.GetBlocksInheritanceCSSClassesAsString() }} {{ oUIBlock.GetAdditionalCSSClassesAsString() }} {% if oUIBlock.HasIcon() %}ibo-has-icon{% endif %}{% if oUIBlock.IsHidden() %} ibo-is-hidden{% endif %}" data-role="ibo-title">
{% apply spaceless %}
<div id="{{ oUIBlock.GetId() }}" class="{{ oUIBlock.GetBlocksInheritanceCSSClassesAsString() }} {{ oUIBlock.GetAdditionalCSSClassesAsString() }} {% if oUIBlock.HasIcon() %}ibo-has-icon{% endif %}{% if oUIBlock.IsHidden() %} ibo-is-hidden{% endif %}" data-role="ibo-title">
{% if oUIBlock.HasIcon() %}
<div class="ibo-title--icon">
<div class="ibo-title--icon-background ibo-title--icon-background--must-{{ oUIBlock.GetIconCoverMethod() }} ibo-title--icon-level-{{ oUIBlock.GetLevel() }}" style="background-image: url('{{ oUIBlock.GetIconUrl()|raw }}');"></div>
@@ -8,9 +9,10 @@
{% block iboPageTitleText %}
<h{{ oUIBlock.GetLevel() }} class="ibo-title--text is-size-{{ oUIBlock.GetLevel() + 2 }}">
{% for oSubBlock in oUIBlock.GetSubBlocks() %}
{{- render_block(oSubBlock, {aPage: aPage}) -}}
{{ render_block(oSubBlock, {aPage: aPage}) }}
{% endfor %}
</h{{ oUIBlock.GetLevel() }}>
{% endblock %}
</div>
</div>
</div>
{% endapply %}

View File

@@ -1,10 +1,14 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
{# Toolbar #}
<div id="{{ oUIBlock.GetId() }}"
{% apply spaceless %}
<div id="{{ oUIBlock.GetId() }}"
class="{{ oUIBlock.GetBlocksInheritanceCSSClassesAsString() }} {{ oUIBlock.GetAdditionalCSSClassesAsString() }} {% if oUIBlock.IsHidden() %}ibo-is-hidden{% endif %}"
data-role="ibo-toolbar">
data-role="ibo-toolbar"
>
{% for oSubBlock in oUIBlock.GetSubBlocks() %}
{{- render_block(oSubBlock, {aPage: aPage}) -}}
{{ render_block(oSubBlock, {aPage: aPage}) }}
{% endfor %}
</div>
</div>
{% endapply %}

View File

@@ -1,8 +1,9 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
<span id="{{ oUIBlock.GetId() }}" class="{{ oUIBlock.GetBlocksInheritanceCSSClassesAsString() }}
{% apply spaceless %}
<span id="{{ oUIBlock.GetId() }}" class="{{ oUIBlock.GetBlocksInheritanceCSSClassesAsString() }}
{% if oUIBlock.GetAdditionalCSSClassesAsString() %}{{ oUIBlock.GetAdditionalCSSClassesAsString() }}{% endif %}
{% if oUIBlock.IsHidden() %}ibo-is-hidden{% endif %}"
data-role="ibo-toolbar-vertical-separator">
</span>
</span>
{% endapply %}

View File

@@ -1,4 +1,6 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
<div id="{{ oUIBlock.GetId() }}" class="{{ oUIBlock.GetBlocksInheritanceCSSClassesAsString() }} {{ oUIBlock.GetAdditionalCSSClassesAsString() }} {% if oUIBlock.IsHidden() %}ibo-is-hidden{% endif %}">
</div>
{% apply spaceless %}
<div id="{{ oUIBlock.GetId() }}" class="{{ oUIBlock.GetBlocksInheritanceCSSClassesAsString() }} {{ oUIBlock.GetAdditionalCSSClassesAsString() }} {% if oUIBlock.IsHidden() %}ibo-is-hidden{% endif %}">
</div>
{% endapply %}

View File

@@ -32,6 +32,7 @@
</div>
</div>
<div class="ibo-activity-entry--sub-information" data-role="ibo-activity-entry--sub-information">
{% apply spaceless %}
{% block iboActivityEntrySubInformation %}
{% if oUIBlock.GetOrigin() is not null and oUIBlock.GetOrigin != constant('Combodo\\iTop\\Core\\CMDBChange\\CMDBChangeOrigin::INTERACTIVE') %}
<span class="ibo-activity-entry--origin" data-role="ibo-activity-entry--origin" data-tooltip-content="{{ ('Class:CMDBChange/Attribute:origin/Value:' ~ oUIBlock.GetOrigin())|dict_s }}" data-tooltip-placement="bottom">
@@ -47,6 +48,7 @@
data-raw-datetime="{{ oUIBlock.GetRawDateTime() }}"
data-formatted-datetime="{{ oUIBlock.GetFormattedDateTime() }}">{{ oUIBlock.GetFormattedDateTime() }}</span>
{% endblock %}
{% endapply %}
</div>
{% endblock %}
</div>

View File

@@ -1,3 +1,4 @@
{% apply spaceless %}
<form id="{{ oUIBlock.GetId() }}"
class="{{ oUIBlock.GetBlocksInheritanceCSSClassesAsString() }} {{ oUIBlock.GetAdditionalCSSClassesAsString() }} {% if oUIBlock.IsSubmitAutonomous() and (bInitOpened == false) %}ibo-is-closed{% endif %}"
data-role="ibo-caselog-entry-form"
@@ -14,17 +15,17 @@
<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}) -}}
{{ 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}) -}}
{{ render_block(FormActionButton, {aPage: aPage}) }}
{% endfor %}
</div>
</div>
<div class="ibo-caselog-entry-form--text-input" data-role="ibo-caselog-entry-form--text-input">
{{- render_block(oUIBlock.GetTextInput(), {aPage: aPage}) -}}
{{ render_block(oUIBlock.GetTextInput(), {aPage: aPage}) }}
</div>
<div class="ibo-caselog-entry-form--extra-inputs" data-role="ibo-caselog-entry-form--extra-inputs">
</div>
@@ -35,3 +36,4 @@
<span class="ibo-caselog-entry-form--lock-message" data-role="ibo-caselog-entry-form--lock-message"></span>
</div>
</form>
{% endapply %}

View File

@@ -1,9 +1,12 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
{# Content Block #}
{# Important: We don't want the UIContentBlock have a div node based on the inherited CSS classes, otherwise the node would always be present, which is not what we want #}
{% set bHasDiv = (oUIBlock.GetAdditionalCSSClassesAsString() or oUIBlock.GetDataAttributes() or oUIBlock.IsHidden() or oUIBlock.HasForcedDiv()) %}
{% block iboContentBlockContainer %}
{% apply spaceless %}
{# Important: We don't want the UIContentBlock have a div node based on the inherited CSS classes, otherwise the node would always be present, which is not what we want #}
{% set bHasDiv = (oUIBlock.GetAdditionalCSSClassesAsString() or oUIBlock.GetDataAttributes() or oUIBlock.IsHidden() or oUIBlock.HasForcedDiv()) %}
{% block iboContentBlockContainer %}
{% if bHasDiv %}
<div id="{{ oUIBlock.GetId() }}"
class="{{ oUIBlock.GetBlocksInheritanceCSSClassesAsString() }} {{ oUIBlock.GetAdditionalCSSClassesAsString() }} {% if oUIBlock.IsHidden() %}ibo-is-hidden{% endif %}"
@@ -15,4 +18,6 @@
> {% endif %}
{% for oSubBlock in oUIBlock.GetSubBlocks() %} {{ render_block(oSubBlock, {aPage: aPage}) }} {% endfor %}
{% if bHasDiv %} </div> {% endif %}
{% endblock %}
{% endblock %}
{% endapply %}

View File

@@ -1,20 +1,22 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
{# Dashboard Column #}
{% if oUIBlock.IsEditMode() %}
{% apply spaceless %}
{% if oUIBlock.IsEditMode() %}
{% if oUIBlock.IsLastRow() %}
{% set sCellClass = "layout_cell edit_mode layout_extension" %}
{% else %}
{% set sCellClass = "layout_cell edit_mode" %}
{% endif %}
{% else %}
{% else %}
{% set sCellClass = "dashboard" %}
{% endif %}
<div class="ibo-dashboard--grid-column ibo-dashboard--grid-cell {{ sCellClass }}"
{% endif %}
<div class="ibo-dashboard--grid-column ibo-dashboard--grid-cell {{ sCellClass }}"
data-role="ibo-dashboard--grid-cell"
data-dashboard-grid-column-index="{{ oUIBlock.GetColumnIndex() }}"
data-dashboard-grid-cell-index="{{ oUIBlock.GetCellIndex() }}">
{% for oSubBlock in oUIBlock.GetSubBlocks() %}
{{- render_block(oSubBlock, {aPage: aPage}) -}}
{{ render_block(oSubBlock, {aPage: aPage}) }}
{% endfor %}
</div>
</div>
{% endapply %}

View File

@@ -1,14 +1,16 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
{# Dashboard Layout #}
{% if oUIBlock.HasTitle() or oUIBlock.HasToolbar() %}
{% apply spaceless %}
{% if oUIBlock.HasTitle() or oUIBlock.HasToolbar() %}
<div class="ibo-dashboard--top-bar" data-role="ibo-dashboard--top-bar">
<div class="ibo-dashboard--top-bar-title" data-role="ibo-dashboard--top-bar-title">{{ oUIBlock.GetTitle() }}</div>
{{ render_block(oUIBlock.GetToolbar(), {aPage: aPage}) }}
</div>
{% endif %}
<div class="ibo-dashboard--grid" data-role="ibo-dashboard--grid">
{% endif %}
<div class="ibo-dashboard--grid" data-role="ibo-dashboard--grid">
{% for oSubBlock in oUIBlock.GetDashboardRows() %}
{{ render_block(oSubBlock, {aPage: aPage}) }}
{% endfor %}
</div>
</div>
{% endapply %}

View File

@@ -1,8 +1,10 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
{# Dashboard Row #}
<div class="ibo-dashboard--grid-row" data-role="ibo-dashboard--grid-row" data-dashboard-grid-row-index="{{ oUIBlock.GetRowIndex() }}">
{% apply spaceless %}
<div class="ibo-dashboard--grid-row" data-role="ibo-dashboard--grid-row" data-dashboard-grid-row-index="{{ oUIBlock.GetRowIndex() }}">
{% for oSubBlock in oUIBlock.GetSubBlocks() %}
{{- render_block(oSubBlock, {aPage: aPage}) -}}
{{ render_block(oSubBlock, {aPage: aPage}) }}
{% endfor %}
</div>
</div>
{% endapply %}

View File

@@ -1,3 +1,4 @@
{% apply spaceless %}
{% UIAlert ForWarning{sTitle:'', sContent: '', sId: null} %}
<div id="branding-error-alert-content">
<div style="display:flex;flex-align: stretch;">
@@ -9,3 +10,4 @@
<div style="display:flex;align-items:stretch;height:50rem;margin-top:0.5rem;">
<iframe width="100%" sandbox srcdoc="{{ iframe_content }}"></iframe>
</div>
{% endapply %}

View File

@@ -1,29 +1,33 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
{% set sId = oLayout.GetId() | sanitize(constant('utils::ENUM_SANITIZATION_FILTER_VARIABLE_NAME')) %}
{% set bHasOnInitOrOnDomReadyScripts = aPage.aJsInlineOnInit is not empty or aPage.aJsInlineOnDomReady is not empty %}
{% if bEscapeContent %}
{{- render_block(oLayout, {aPage: aPage})|escape -}}
{% else %}
{{- render_block(oLayout, {aPage: aPage}) -}}
{% endif %}
{% block iboPageJsInlineEarly %}
{% apply spaceless %}
{% set sId = oLayout.GetId() | sanitize(constant('utils::ENUM_SANITIZATION_FILTER_VARIABLE_NAME')) %}
{% set bHasOnInitOrOnDomReadyScripts = aPage.aJsInlineOnInit is not empty or aPage.aJsInlineOnDomReady is not empty %}
{% if bEscapeContent %}
{{ render_block(oLayout, {aPage: aPage})|escape }}
{% else %}
{{ render_block(oLayout, {aPage: aPage}) }}
{% endif %}
{% block iboPageJsInlineEarly %}
{% for sJsInline in aPage.aJsInlineEarly %}
{# We put each scripts in a dedicated script tag to prevent massive failure if 1 script is broken (eg. missing semi-colon or non closed multi-line comment) #}
<script type="text/javascript">
{{ sJsInline|raw }}
</script>
{% endfor %}
{% endblock %}
{% block iboPageJsInlineLive %}
{% endblock %}
{% block iboPageJsInlineLive %}
{% for sJsInline in aPage.aJsInlineLive %}
{# We put each scripts in a dedicated script tag to prevent massive failure if 1 script is broken (eg. missing semi-colon or non closed multi-line comment) #}
<script type="text/javascript">
{{ sJsInline|raw }}
</script>
{% endfor %}
{% endblock %}
{% if bHasOnInitOrOnDomReadyScripts %}
{% endblock %}
{% if bHasOnInitOrOnDomReadyScripts %}
<script type="text/javascript">
let fOnJsFilesLoaded{{ sId }} = function (fResolve) {
{% for sJsInline in aPage.aJsInlineOnInit %}
@@ -36,9 +40,10 @@
fResolve();
}
</script>
{% endif %}
{% set sPromiseId = aPage.sPromiseId %}
{% if aPage.aJsFiles is not empty %}
{% endif %}
{% set sPromiseId = aPage.sPromiseId %}
{% if aPage.aJsFiles is not empty %}
{% block iboPageJsFiles %}
<script type="text/javascript">
{% if bHasOnInitOrOnDomReadyScripts == false %}
@@ -156,7 +161,7 @@
});
</script>
{% endblock %}
{% else %}
{% else %}
{% if bHasOnInitOrOnDomReadyScripts %}
{% block iboPageJsInlineOnDomReady %}
<script type="text/javascript">
@@ -166,18 +171,21 @@
</script>
{% endblock %}
{% endif %}
{% endif %}
{% if aDeferredBlocks is not empty %}
{% endif %}
{% if aDeferredBlocks is not empty %}
{% for oBlock in aDeferredBlocks %}
{{- render_block(oBlock, {aPage: aPage})|raw -}}
{{ render_block(oBlock, {aPage: aPage})|raw }}
{% endfor %}
{% endif %}
{% if sDeferredContent %}
{% endif %}
{% if sDeferredContent %}
<script type="text/javascript">
$('body').append('{{ sDeferredContent|raw }}');
</script>
{% endif %}
{% block iboPageCssFiles %}
{% endif %}
{% block iboPageCssFiles %}
{% if aPage.aCssFiles is not empty %}
<script type="text/javascript">
// If this constant isn't defined by the main page, define it (global) ourselves
@@ -189,6 +197,7 @@
enumerable: true
});
}
{% for aCssFileData in aPage.aCssFiles %}
// Only if file is NOT already present in the register (see it declaration in WebPage TWIG template), add it to the page and register
if (aLoadedCssFilesRegister.has("{{ aCssFileData['link']|raw }}") === false) {
@@ -198,5 +207,8 @@
{% endfor %}
</script>
{% endif %}
{% endblock %}
{{- aPage.sCapturedOutput|raw -}}
{% endblock %}
{{ aPage.sCapturedOutput|raw }}
{% endapply %}

View File

@@ -1,3 +1,5 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
{{ render_block(oLayout, {aPage: aPage}) }}
{% apply spaceless %}
{{ render_block(oLayout, {aPage: aPage}) }}
{% endapply %}

View File

@@ -1,5 +1,7 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
<div id="ibo-page-banner" data-role="ibo-page-banner">
{{- render_block(aLayouts.oBanner, {aPage: aPage}) -}}
</div>
{% apply spaceless %}
<div id="ibo-page-banner" data-role="ibo-page-banner">
{{ render_block(aLayouts.oBanner, {aPage: aPage}) }}
</div>
{% endapply %}

View File

@@ -1,5 +1,9 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
<div id="ibo-page-Footer" data-role="ibo-page-Footer">
{{- render_block(aLayouts.oFooter, {aPage: aPage}) -}}
</div>
{% apply spaceless %}
<div id="ibo-page-Footer" data-role="ibo-page-Footer">
{{ render_block(aLayouts.oFooter, {aPage: aPage}) }}
</div>
{% endapply %}

View File

@@ -1,5 +1,7 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
{% apply spaceless %}
<div id="ibo-page-header" data-role="ibo-page-header">
{{- render_block(aLayouts.oHeader, {aPage: aPage}) -}}
{{ render_block(aLayouts.oHeader, {aPage: aPage}) }}
</div>
{% endapply %}