diff --git a/application/cmdbabstract.class.inc.php b/application/cmdbabstract.class.inc.php
index 0bd790f12..dc180e360 100644
--- a/application/cmdbabstract.class.inc.php
+++ b/application/cmdbabstract.class.inc.php
@@ -19,8 +19,12 @@ use Combodo\iTop\Application\UI\Base\Component\FieldSet\FieldSetUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\Form\Form;
use Combodo\iTop\Application\UI\Base\Component\Form\FormUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\Html\Html;
+use Combodo\iTop\Application\UI\Base\Component\Html\HtmlFactory;
use Combodo\iTop\Application\UI\Base\Component\Input\InputUIBlockFactory;
+use Combodo\iTop\Application\UI\Base\Component\Input\Select\SelectOptionUIBlockFactory;
+use Combodo\iTop\Application\UI\Base\Component\Input\SelectUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\MedallionIcon\MedallionIcon;
+use Combodo\iTop\Application\UI\Base\Component\Panel\Panel;
use Combodo\iTop\Application\UI\Base\Component\Panel\PanelUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\Title\Title;
use Combodo\iTop\Application\UI\Base\Component\Title\TitleUIBlockFactory;
@@ -2948,6 +2952,93 @@ EOF
}
}
+ /**
+ * Select the derived class to create
+ * @param string $sClass
+ * @param \WebPage $oP
+ * @param \ApplicationContext $oAppContext
+ * @param array $aPossibleClasses
+ * @param array $aHiddenFields
+ *
+ * @return void
+ * @throws \CoreException
+ * @throws \DictExceptionMissingString
+ *
+ * @since 3.0.0
+ */
+ public static function DisplaySelectClassToCreate(string $sClass, WebPage $oP, ApplicationContext $oAppContext, array $aPossibleClasses, array $aHiddenFields)
+ {
+ $sClassLabel = MetaModel::GetName($sClass);
+ $sTitle = Dict::Format('UI:CreationTitle_Class', $sClassLabel);
+
+ $oP->set_title($sTitle);
+ $sClassIconUrl = MetaModel::GetClassIcon($sClass, false);
+ $oPanel = PanelUIBlockFactory::MakeForClass($sClass, $sTitle)
+ ->SetIcon($sClassIconUrl);
+
+
+ $oClassForm = FormUIBlockFactory::MakeStandard();
+ $oPanel->AddMainBlock($oClassForm);
+
+ $oClassForm->AddHtml($oAppContext->GetForForm())
+ ->AddSubBlock(InputUIBlockFactory::MakeForHidden('checkSubclass', '0'))
+ ->AddSubBlock(InputUIBlockFactory::MakeForHidden('operation', 'new'));
+
+ foreach ($aHiddenFields as $sKey => $sValue) {
+ if (is_scalar($sValue)) {
+ $oClassForm->AddSubBlock(InputUIBlockFactory::MakeForHidden($sKey, $sValue));
+ }
+ }
+
+ $aDefaults = utils::ReadParam('default', array(), false, 'raw_data');
+ foreach ($aDefaults as $key => $value) {
+ if (is_array($value)) {
+ foreach ($value as $key2 => $value2) {
+ if (is_array($value2)) {
+ foreach ($value2 as $key3 => $value3) {
+ $sValue = utils::EscapeHtml($value3);
+ $oClassForm->AddSubBlock(InputUIBlockFactory::MakeForHidden("default[$key][$key2][$key3]", $sValue));
+ }
+ } else {
+ $sValue = utils::EscapeHtml($value2);
+ $oClassForm->AddSubBlock(InputUIBlockFactory::MakeForHidden("default[$key][$key2]", $sValue));
+ }
+ }
+ } else {
+ $sValue = utils::EscapeHtml($value);
+ $oClassForm->AddSubBlock(InputUIBlockFactory::MakeForHidden("default[$key]", $sValue));
+ }
+ }
+
+ $oClassForm->AddSubBlock(self::DisplayBlockSelectClassToCreate($sClass, $sClassLabel, $aPossibleClasses));
+
+ $oP->AddSubBlock($oPanel);
+ }
+
+ /**
+ * @param string $sClassLabel
+ * @param array $aPossibleClasses
+ * @param string $sClass
+ *
+ * @return UIContentBlock
+ * @throws \CoreException
+ */
+ public static function DisplayBlockSelectClassToCreate( string $sClass, string $sClassLabel,array $aPossibleClasses): UIContentBlock
+ {
+ $oBlock= UIContentBlockUIBlockFactory::MakeStandard();
+ $oBlock->AddSubBlock(HtmlFactory::MakeRaw(Dict::Format('UI:SelectTheTypeOf_Class_ToCreate', $sClassLabel)));
+ $oSelect = SelectUIBlockFactory::MakeForSelect('class');
+ $oBlock->AddSubBlock($oSelect);
+ asort($aPossibleClasses);
+ foreach ($aPossibleClasses as $sClassName => $sClassLabel) {
+ $oSelect->AddOption(SelectOptionUIBlockFactory::MakeForSelectOption($sClassName, $sClassLabel, ($sClassName == $sClass)));
+ }
+
+ $oToolbar = ToolbarUIBlockFactory::MakeForAction();
+ $oBlock->AddSubBlock($oToolbar);
+ $oToolbar->AddSubBlock(ButtonUIBlockFactory::MakeForPrimaryAction(Dict::S('UI:Button:Apply'), null, null, true));
+ return $oBlock;
+ }
/**
* @param \WebPage $oPage
* @param string $sClass
diff --git a/application/dashboard.class.inc.php b/application/dashboard.class.inc.php
index 637162b5e..700bce0e9 100644
--- a/application/dashboard.class.inc.php
+++ b/application/dashboard.class.inc.php
@@ -543,7 +543,7 @@ EOF
if ($bFromDasboardPage) {
$sTitleForHTML = utils::HtmlEntities(Dict::S($this->sTitle));
- $sHtml = "
{$sTitleForHTML}
";
+ $sHtml = "{$sTitleForHTML}
";
if ($oPage instanceof iTopWebPage) {
$oTopBar = $oPage->GetTopBarLayout();
$oToolbar = ToolbarUIBlockFactory::MakeStandard();
diff --git a/application/ui.extkeywidget.class.inc.php b/application/ui.extkeywidget.class.inc.php
index 493ba7bce..78995e29a 100644
--- a/application/ui.extkeywidget.class.inc.php
+++ b/application/ui.extkeywidget.class.inc.php
@@ -4,6 +4,8 @@
* @license http://opensource.org/licenses/AGPL-3.0
*/
+use Combodo\iTop\Application\UI\Base\Component\Form\FormUIBlockFactory;
+use Combodo\iTop\Application\UI\Base\Layout\UIContentBlockUIBlockFactory;
use Combodo\iTop\Core\MetaModel\FriendlyNameType;
require_once(APPROOT.'/application/displayblock.class.inc.php');
@@ -220,6 +222,7 @@ class UIExtKeyWidget
$bAddingValue = true;
}
$sObjectImageAttCode = MetaModel::GetImageAttributeCode($sClassAllowed);
+ $bInitValue = false;
while ($oObj = $oAllowedValues->Fetch()) {
$aOption = [];
$aOption['value'] = $oObj->GetKey();
@@ -229,6 +232,7 @@ class UIExtKeyWidget
// When there is only once choice, select it by default
if ($value != $oObj->GetKey()) {
$value = $oObj->GetKey();
+ $bInitValue = true;
}
}
if ($oObj->IsObsolete()) {
@@ -263,10 +267,12 @@ class UIExtKeyWidget
oACWidget_{$this->iId}.emptyHtml = "";
oACWidget_{$this->iId}.AddSelectize('$sJsonOptions','$value');
$('#$this->iId').on('update', function() { oACWidget_{$this->iId}.Update(); } );
- $('#$this->iId').on('change', function() { $(this).trigger('extkeychange') } );
-
+ $('#$this->iId').on('change', function() { $(this).trigger('extkeychange'); } );
EOF
);
+ if ($bInitValue) {
+ $oPage->add_ready_script("$('#$this->iId').one('validate', function() { $(this).trigger('change'); } );");
+ }
$sHTMLValue .= "";
}
else
@@ -899,26 +905,17 @@ JS
}
}
- $sDialogTitle = '';
- $oPage->add('
');
- $oPage->add('
');
- $oPage->add('
');
- $oPage->add_ready_script("\$('#ac_create_$this->iId').dialog({ width: 'auto', height: 'auto', maxHeight: $(window).height() - 50, autoOpen: false, modal: true, title: '$sDialogTitle'});\n");
- $oPage->add_ready_script("$('#dcr_{$this->iId} form').removeAttr('onsubmit');");
- $oPage->add_ready_script("$('#dcr_{$this->iId} form').on('submit.uilinksWizard', oACWidget_{$this->iId}.DoSelectObjectClass);");
+ $oPage->add_ready_script("$('#ac_create_$this->iId').dialog({ width: 'auto', height: 'auto', maxHeight: $(window).height() - 50, autoOpen: false, modal: true, title: '$sDialogTitle'});\n");
+ $oPage->add_ready_script("$('#ac_create_{$this->iId} form').removeAttr('onsubmit');");
+ $oPage->add_ready_script("$('#ac_create_{$this->iId} form').on('submit.uilinksWizard', oACWidget_{$this->iId}.DoSelectObjectClass);");
}
/**
diff --git a/core/log.class.inc.php b/core/log.class.inc.php
index be8bde80c..dbdd7168c 100644
--- a/core/log.class.inc.php
+++ b/core/log.class.inc.php
@@ -911,9 +911,21 @@ class DeprecatedCallsLog extends LogAPI
$iStackCallerMethodLevel = $iStackDeprecatedMethodLevel + 1; // level 3 = caller of the deprecated method
if (array_key_exists($iStackCallerMethodLevel, $aStack)) {
- $sCallerObject = $aStack[3]['class'];
- $sCallerMethod = $aStack[3]['function'];
- $sMessage .= " ({$sCallerObject}::{$sCallerMethod})";
+ $sCallerObject = $aStack[$iStackCallerMethodLevel]['class'] ?? null;
+ $sCallerMethod = $aStack[$iStackCallerMethodLevel]['function'] ?? null;
+ $sMessage .= ' (';
+ if (!is_null($sCallerObject)) {
+ $sMessage .= "{$sCallerObject}::{$sCallerMethod}";
+ } else {
+ $sCallerMethodFile = $aStack[$iStackCallerMethodLevel]['file'];
+ $sCallerMethodLine = $aStack[$iStackCallerMethodLevel]['line'];
+ if (!is_null($sCallerMethod)) {
+ $sMessage .= "call to {$sCallerMethod}() in {$sCallerMethodFile}#L{$sCallerMethodLine}";
+ } else {
+ $sMessage .= "{$sCallerMethodFile}#L{$sCallerMethodLine}";
+ }
+ }
+ $sMessage .= ')';
}
if (!empty($errstr)) {
diff --git a/core/ormcaselog.class.inc.php b/core/ormcaselog.class.inc.php
index ab0ff03fa..11b58bc0c 100644
--- a/core/ormcaselog.class.inc.php
+++ b/core/ormcaselog.class.inc.php
@@ -168,7 +168,6 @@ class ormCaseLog {
return $aEntries;
}
-
/**
* Returns a "plain text" version of the log (equivalent to $this->m_sLog) where all the HTML markup from the 'html' entries have been removed
* @return string
@@ -201,6 +200,15 @@ class ormCaseLog {
{
return ($this->m_sLog === null);
}
+
+ /**
+ * @return int The number of entries in this log
+ * @since 3.0.0
+ */
+ public function GetEntryCount(): int
+ {
+ return count($this->m_aIndex);
+ }
public function ClearModifiedFlag()
{
@@ -570,7 +578,6 @@ class ormCaseLog {
$this->m_bModified = true;
}
-
public function AddLogEntryFromJSON($oJson, $bCheckUserId = true)
{
if (isset($oJson->user_id))
@@ -647,7 +654,6 @@ class ormCaseLog {
$this->m_bModified = true;
}
-
public function GetModifiedEntry($sFormat = 'text')
{
$sModifiedEntry = '';
@@ -726,4 +732,3 @@ class ormCaseLog {
return $sText;
}
}
-?>
\ No newline at end of file
diff --git a/css/backoffice/components/_breadcrumbs.scss b/css/backoffice/components/_breadcrumbs.scss
index b2ac2f193..321a2154b 100644
--- a/css/backoffice/components/_breadcrumbs.scss
+++ b/css/backoffice/components/_breadcrumbs.scss
@@ -16,6 +16,8 @@
* You should have received a copy of the GNU Affero General Public License
*/
+$ibo-breadcrumbs--margin-right: 16px !default;
+
$ibo-breadcrumbs--item--text-color: $ibo-color-grey-800 !default;
$ibo-breadcrumbs--item-icon--margin-x: 8px !default;
@@ -27,9 +29,27 @@ $ibo-breadcrumbs--item-label--max-width: 100px !default;
$ibo-breadcrumbs--item-separator--margin-x: 12px !default;
$ibo-breadcrumbs--item-separator--text-color: $ibo-color-grey-500 !default;
+$ibo-breadcrumbs--previous-items-list-toggler--text-color: $ibo-color-grey-700 !default;
+$ibo-breadcrumbs--previous-items-list-toggler--margin-right: 2 * $ibo-breadcrumbs--item-separator--margin-x !default;
+
+$ibo-breadcrumbs--previous-items-list--top: 37px !default;
+$ibo-breadcrumbs--previous-items-list--padding-y: 8px !default;
+$ibo-breadcrumbs--previous-items-list--background-color: $ibo-color-white-100 !default;
+
+$ibo-breadcrumbs--previous-item--text-color: $ibo-breadcrumbs--item--text-color !default;
+$ibo-breadcrumbs--previous-item--padding-x: 12px !default;
+$ibo-breadcrumbs--previous-item--padding-y: 12px !default;
+$ibo-breadcrumbs--previous-item-label--max-width: 200px !default;
+
.ibo-breadcrumbs{
+ position: relative;
+ margin-right: $ibo-breadcrumbs--margin-right;
@extend %ibo-full-height-content;
+ &.ibo-is-overflowing {
+ justify-content: right;
+ }
+
* {
display: flex;
align-items: center;
@@ -40,13 +60,6 @@ $ibo-breadcrumbs--item-separator--text-color: $ibo-color-grey-500 !default;
@extend %ibo-font-ral-med-100;
&:not(:last-child){
- &::after{
- content: '\f054';
- margin: 0 $ibo-breadcrumbs--item-separator--margin-x;
- color: $ibo-breadcrumbs--item-separator--text-color;
- @extend %fa-solid-base;
- }
-
&:hover{
.ibo-breadcrumbs--item-icon{
> *{
@@ -78,3 +91,50 @@ $ibo-breadcrumbs--item-separator--text-color: $ibo-color-grey-500 !default;
max-width: $ibo-breadcrumbs--item-label--max-width;
@extend %ibo-text-truncated-with-ellipsis;
}
+
+.ibo-breadcrumbs--item,
+.ibo-breadcrumbs--previous-items-list-toggler {
+ &:not(:last-child){
+ &::after{
+ content: '\f054';
+ margin: 0 $ibo-breadcrumbs--item-separator--margin-x;
+ color: $ibo-breadcrumbs--item-separator--text-color;
+ @extend %fa-solid-base;
+ }
+ }
+}
+
+.ibo-breadcrumbs--previous-items-list-toggler {
+ margin-right: $ibo-breadcrumbs--previous-items-list-toggler--margin-right;
+ color: $ibo-breadcrumbs--previous-items-list-toggler--text-color !important;
+ @extend %ibo-font-ral-med-100;
+
+ &:not(:last-child) {
+ &::after {
+ position: absolute; /* To be outside of the button */
+ right: -1 * $ibo-breadcrumbs--previous-items-list-toggler--margin-right;
+ }
+ }
+}
+.ibo-breadcrumbs--previous-items-list {
+ display: flex;
+ flex-direction: column;
+ align-items: stretch; /* For the items to occupy the full width */
+
+ position: fixed;
+ top: $ibo-breadcrumbs--previous-items-list--top;
+ padding: $ibo-breadcrumbs--previous-items-list--padding-y 0;
+
+ background-color: $ibo-breadcrumbs--previous-items-list--background-color;
+ @extend %ibo-elevation-300;
+}
+
+.ibo-breadcrumbs--previous-item {
+ color: $ibo-breadcrumbs--previous-item--text-color;
+ @extend %ibo-font-ral-med-100;
+ padding: $ibo-breadcrumbs--previous-item--padding-y $ibo-breadcrumbs--previous-item--padding-x;
+
+ .ibo-breadcrumbs--item-label {
+ max-width: 200px;
+ }
+}
\ No newline at end of file
diff --git a/css/backoffice/components/_button.scss b/css/backoffice/components/_button.scss
index e027bde37..86b1b45a8 100644
--- a/css/backoffice/components/_button.scss
+++ b/css/backoffice/components/_button.scss
@@ -461,6 +461,7 @@ $ibo-button-colors: (
}
.ibo-button {
+ position: relative;
display: inline-block; /* Used to allow truncated text on .ibo-button--label */
padding: $ibo-button--padding-y $ibo-button--padding-x;
border: $ibo-button--border;
diff --git a/css/backoffice/components/_field.scss b/css/backoffice/components/_field.scss
index ae209b0de..fdadcb01a 100644
--- a/css/backoffice/components/_field.scss
+++ b/css/backoffice/components/_field.scss
@@ -36,11 +36,18 @@ $ibo-field--value-decoration--spacing-x: 0.5rem !default;
/* Avoid value to overflow from its container with very long strings (typically URLs) */
/* Note: Some types of attribute must be excluding as it can alter their rendering */
&:not([data-attribute-type="AttributeBlob"]):not([data-attribute-type="AttributeFile"]):not([data-attribute-type="AttributeImage"]):not([data-attribute-type="AttributeCustomFields"]):not(.ibo-input-file-select--container) {
- /* We need the rule to apply for the class and all its descendants */
+ /* We need the rule to apply for the class and all its descendants, hence the "&, & *" */
.ibo-field--value {
- * {
+ &, & * {
word-break: break-word;
- white-space: pre-line;
+ white-space: inherit; /* Here we don't put break-spaces as it would put ".ibo-field-small .ibo-field-value" on a new line due to the spaces/indentation of the HTML templates. For now we rather have this rule than diminish the templates readability/maintenability */
+ }
+ }
+ &.ibo-field-large {
+ .ibo-field--value {
+ &, & * {
+ white-space: break-spaces; /* For large fields we don't have the issue stated above */
+ }
}
}
}
@@ -57,7 +64,6 @@ $ibo-field--value-decoration--spacing-x: 0.5rem !default;
.ibo-field--label {
position: relative; /* Necessary for fullscreen toggler */
display: flex;
- justify-content: space-between;
align-items: center;
max-width: initial;
width: 100%;
@@ -113,7 +119,7 @@ $ibo-field--value-decoration--spacing-x: 0.5rem !default;
@extend %ibo-hyperlink-inherited-colors;
@extend %ibo-fully-centered-content;
- @extend %ibo-font-size-100;
+ @extend %ibo-font-size-50;
&:hover {
background-color: $ibo-field--fullscreen-toggler--background-color--on-hover;
@@ -138,6 +144,9 @@ $ibo-field--value-decoration--spacing-x: 0.5rem !default;
}
}
}
+.ibo-field--label-small .ibo-field--label{
+ width: 145px;
+}
.ibo-field--value {
display: table;
width: 100%;
diff --git a/css/backoffice/layout/_top-bar.scss b/css/backoffice/layout/_top-bar.scss
index e51033137..3f29967ed 100644
--- a/css/backoffice/layout/_top-bar.scss
+++ b/css/backoffice/layout/_top-bar.scss
@@ -26,6 +26,8 @@ $ibo-top-bar--elements-spacing: 32px !default;
$ibo-top-bar--quick-actions--margin-right: $ibo-top-bar--elements-spacing !default;
+$ibo-top-bar--toolbar-dashboard-title--max-width: 350px !default;
+
/* CSS variables (can be changed directly from the browser) */
:root{
--ibo-top-bar--height: #{$ibo-top-bar--height};
@@ -65,6 +67,8 @@ $ibo-top-bar--quick-actions--margin-right: $ibo-top-bar--elements-spacing !defau
.ibo-top-bar--toolbar-dashboard-title {
@extend %ibo-font-size-250;
+ @extend %ibo-text-truncated-with-ellipsis;
+ max-width: $ibo-top-bar--toolbar-dashboard-title--max-width;
}
.ibo-top-bar--toolbar-dashboard-menu-toggler {
diff --git a/css/backoffice/layout/activity-panel/_activity-entry.scss b/css/backoffice/layout/activity-panel/_activity-entry.scss
index 78a34e32f..f0d821faa 100644
--- a/css/backoffice/layout/activity-panel/_activity-entry.scss
+++ b/css/backoffice/layout/activity-panel/_activity-entry.scss
@@ -202,17 +202,6 @@ $ibo-activity-panel--load-all-entries--is-hover--margin-left: ($ibo-activity-pan
flex-grow: 1; /* So it occupies all the remaining width, which is easier for the user to click */
word-break: break-word; /* To avoid content to overflow its container (typically very long URLs) */
- /* Avoid pre (code snippets) to overflow outside the entry */
- pre {
- white-space: pre-line;
- }
-
- /* Avoid table to overflow outside the entry (see N°2127) */
- table {
- table-layout: fixed;
- width: 100%;
- }
-
/* Specific hyperlink color */
a {
color: $ibo-activity-entry--main-information-hyperlink--text-color;
diff --git a/css/backoffice/layout/activity-panel/_activity-panel.scss b/css/backoffice/layout/activity-panel/_activity-panel.scss
index 852252b13..c05e42a64 100644
--- a/css/backoffice/layout/activity-panel/_activity-panel.scss
+++ b/css/backoffice/layout/activity-panel/_activity-panel.scss
@@ -96,9 +96,12 @@ $ibo-activity-panel--add-caselog-entry-button--right: 12px !default;
$ibo-activity-panel--add-caselog-entry-button--top: 76px + $ibo-activity-panel--add-caselog-entry-button--right !default;
$ibo-activity-panel--add-caselog-entry-button--diameter: 36px !default;
$ibo-activity-panel--add-caselog-entry-button--background-color: $ibo-color-primary-600 !default;
+$ibo-activity-panel--add-caselog-entry-button--background-color--on-hover: $ibo-color-primary-500 !default;
+$ibo-activity-panel--add-caselog-entry-button--background-color--is-active: $ibo-color-primary-700 !default;
$ibo-activity-panel--add-caselog-entry-button--color: $ibo-color-white-100 !default;
$ibo-activity-panel--add-caselog-entry-button--border-radius: $ibo-border-radius-full !default;
$ibo-activity-panel--add-caselog-entry-button--box-shadow: $ibo-elevation-100 !default;
+$ibo-activity-panel--add-caselog-entry-button--hover--box-shadow: $ibo-elevation-200 !default;
$ibo-activity-panel--add-caselog-entry-button--icon--height: 100% !default;
$ibo-activity-panel--add-caselog-entry-button--icon--width: $ibo-activity-panel--add-caselog-entry-button--icon--height !default;
@@ -379,6 +382,7 @@ $ibo-activity-panel--open-icon--margin-left: 0.75rem !default;
border-radius: $ibo-activity-panel--add-caselog-entry-button--border-radius;
box-shadow: $ibo-activity-panel--add-caselog-entry-button--box-shadow;
+
> i{
text-align: center;
height: $ibo-activity-panel--add-caselog-entry-button--icon--height;
@@ -388,7 +392,13 @@ $ibo-activity-panel--open-icon--margin-left: 0.75rem !default;
}
&:hover {
color: $ibo-activity-panel--add-caselog-entry-button--color;
- }
+ background-color: $ibo-activity-panel--add-caselog-entry-button--background-color--on-hover;
+ box-shadow: $ibo-activity-panel--add-caselog-entry-button--hover--box-shadow;
+ }
+ &:active {
+ color: $ibo-activity-panel--add-caselog-entry-button--color;
+ background-color: $ibo-activity-panel--add-caselog-entry-button--background-color--is-active;
+ }
&.ibo-is-hidden{
display: none;
}
diff --git a/css/backoffice/layout/tab-container/_tab-container.scss b/css/backoffice/layout/tab-container/_tab-container.scss
index 9e9d8744e..05ad75588 100644
--- a/css/backoffice/layout/tab-container/_tab-container.scss
+++ b/css/backoffice/layout/tab-container/_tab-container.scss
@@ -137,6 +137,7 @@ $ibo-tab--temporary-remote-content--button--hover--color: $ibo-color-grey-200 !d
.ibo-tab-container--tab-container {
padding: $ibo-tab-container--tab-container--padding-y $ibo-tab-container--tab-container--padding-x;
+ overflow-x: auto;
}
.ibo-is-scrollable .ibo-tab-container--tab-container--label {
diff --git a/css/backoffice/utils/helpers/_class-icon.scss b/css/backoffice/utils/helpers/_class-icon.scss
index d2eb0175c..fbacf05c5 100644
--- a/css/backoffice/utils/helpers/_class-icon.scss
+++ b/css/backoffice/utils/helpers/_class-icon.scss
@@ -1,17 +1,21 @@
+$ibo-class-icon--small--size: 32px !default;
+$ibo-class-icon--medium--size: 48px !default;
+$ibo-class-icon--large--size: 64px !default;
+
.ibo-class-icon{
&.ibo-is-small{
- width: 32px;
- min-width: 32px;
- max-height: 32px;
+ width: $ibo-class-icon--small--size;
+ min-width: $ibo-class-icon--small--size;
+ max-height: $ibo-class-icon--small--size;
}
&.ibo-is-medium{
- width: 48px;
- min-width: 48px;
- max-height: 48px;
+ width: $ibo-class-icon--medium--size;
+ min-width: $ibo-class-icon--medium--size;
+ max-height: $ibo-class-icon--medium--size;
}
&.ibo-is-large{
- width: 64px;
- min-width: 64px;
- max-height: 64px;
+ width: $ibo-class-icon--large--size;
+ min-width: $ibo-class-icon--large--size;
+ max-height: $ibo-class-icon--large--size;
}
}
\ No newline at end of file
diff --git a/css/backoffice/utils/helpers/_misc.scss b/css/backoffice/utils/helpers/_misc.scss
index 8b8b0e286..7e0952cd6 100644
--- a/css/backoffice/utils/helpers/_misc.scss
+++ b/css/backoffice/utils/helpers/_misc.scss
@@ -97,7 +97,7 @@ body.ibo-has-fullscreen-descendant {
.ibo-has-fullscreen-descendant {
position: static !important;
overflow: visible !important;
- z-index: 9000 !important;
+ z-index: 1050 !important;
}
/* Used on a fullscreen element (see .ibo-has-fullscreen-descendant) */
@@ -110,7 +110,7 @@ body.ibo-has-fullscreen-descendant {
width: 100vw;
height: 100vh;
overflow: auto;
- z-index: 9000;
+ z-index: 1050;
}
/****************/
@@ -159,8 +159,11 @@ body.ibo-has-fullscreen-descendant {
width: unset !important;
max-width: max-content;
}
- code {
- color: initial;
+
+ /* Preserve original text color in code blocks, except for the Highlight.js blocks which have their own colors */
+ & > code,
+ :not(pre.hljs) code {
+ color: inherit;
}
}
diff --git a/css/backoffice/vendors/_all.scss b/css/backoffice/vendors/_all.scss
index bd855ea84..154151bdd 100644
--- a/css/backoffice/vendors/_all.scss
+++ b/css/backoffice/vendors/_all.scss
@@ -24,4 +24,5 @@
@import "jquery-multiselect";
@import "datatables";
@import "jquery-treeview";
-@import "jquery-blockui";
\ No newline at end of file
+@import "jquery-blockui";
+@import "magnific-popup";
\ No newline at end of file
diff --git a/css/backoffice/vendors/_datatables.scss b/css/backoffice/vendors/_datatables.scss
index 729b637b1..482451752 100644
--- a/css/backoffice/vendors/_datatables.scss
+++ b/css/backoffice/vendors/_datatables.scss
@@ -23,9 +23,12 @@ $ibo-vendors-datatables--page-length-selector--border-color: $ibo-color-grey-500
$ibo-vendors-datatables--page-length-selector--border-radius: $ibo-border-radius-300 !default;
$ibo-vendors-datatables--page-length-selector--border-color--on-focus: $ibo-color-primary-600 !default;
+$ibo-vendors-datatables--cell--padding-x: 12px !default;
+$ibo-vendors-datatables--cell--padding-y: 10px !default;
+
$ibo-vendors-datatables--column-sorting-icon--opacity: 0.3 !default;
$ibo-vendors-datatables--column-sorting-icon--opacity--is-sorted: 1 !default;
-$ibo-vendors-datatables--column-sorting-icon--right: 1em !default;
+$ibo-vendors-datatables--column-sorting-icon--right: calc((#{$ibo-vendors-datatables--cell--padding-x} - 8px) / 2) !default;
$ibo-vendors-datatables--column-sorting-icon--content: "\f0dc" !default;
$ibo-vendors-datatables--column-sorting-icon--content--is-sorted-asc: "\f0d8" !default;
$ibo-vendors-datatables--column-sorting-icon--content--is-sorted-desc: "\f0d7" !default;
@@ -137,7 +140,7 @@ $ibo-vendors-datatables--row-highlight--colors:(
.dataTable {
th, td {
position: relative;
- padding: 10px 12px;
+ padding: $ibo-vendors-datatables--cell--padding-y $ibo-vendors-datatables--cell--padding-x;
@extend %ibo-font-ral-med-100; /* Necessary to set the font-size as its container can have a different one */
}
diff --git a/css/backoffice/vendors/_magnific-popup.scss b/css/backoffice/vendors/_magnific-popup.scss
new file mode 100644
index 000000000..08d2d241f
--- /dev/null
+++ b/css/backoffice/vendors/_magnific-popup.scss
@@ -0,0 +1,6 @@
+.mfp-bg{
+ z-index: 1100;
+}
+.mfp-wrap{
+ z-index: 1101;
+}
\ No newline at end of file
diff --git a/css/login.css b/css/login.css
index 94737dba7..d755d1650 100644
--- a/css/login.css
+++ b/css/login.css
@@ -179,7 +179,9 @@ a:hover {
.v-spacer {
padding-top: 1em;
}
-
+#login-sso-buttons{
+ padding: 0 10px;
+}
.sso-button {
margin: 5px 0px;
position: relative;
diff --git a/datamodels/2.x/itop-backup/ajax.backup.php b/datamodels/2.x/itop-backup/ajax.backup.php
index f94b3d703..a43094a78 100644
--- a/datamodels/2.x/itop-backup/ajax.backup.php
+++ b/datamodels/2.x/itop-backup/ajax.backup.php
@@ -170,10 +170,6 @@ JS
require_once(dirname(__FILE__).'/dbrestore.class.inc.php');
$sEnvironment = utils::ReadParam('environment', 'production', false, 'raw_data');
- $oRestoreMutex = new iTopMutex('restore.'.$sEnvironment);
- IssueLog::Info("Backup Restore - Acquiring the LOCK 'restore.$sEnvironment'");
- $oRestoreMutex->Lock();
- IssueLog::Info('Backup Restore - LOCK acquired, executing...');
try
{
set_time_limit(0);
@@ -203,7 +199,6 @@ JS
finally
{
unlink($tokenRealPath);
- $oRestoreMutex->Unlock();
}
$oPage->output();
diff --git a/datamodels/2.x/itop-backup/backup.php b/datamodels/2.x/itop-backup/backup.php
index edf7e4331..9861bd0c8 100644
--- a/datamodels/2.x/itop-backup/backup.php
+++ b/datamodels/2.x/itop-backup/backup.php
@@ -30,9 +30,6 @@ if (!defined('APPROOT'))
}
}
require_once(APPROOT.'application/application.inc.php');
-require_once(APPROOT.'application/webpage.class.inc.php');
-require_once(APPROOT.'application/csvpage.class.inc.php');
-require_once(APPROOT.'application/clipage.class.inc.php');
require_once(APPROOT.'application/ajaxwebpage.class.inc.php');
require_once(APPROOT.'core/log.class.inc.php');
diff --git a/datamodels/2.x/itop-backup/dbrestore.class.inc.php b/datamodels/2.x/itop-backup/dbrestore.class.inc.php
index c591412a4..88a40e25e 100644
--- a/datamodels/2.x/itop-backup/dbrestore.class.inc.php
+++ b/datamodels/2.x/itop-backup/dbrestore.class.inc.php
@@ -28,8 +28,8 @@ class DBRestore extends DBBackup
{
parent::__construct($oConfig);
- $this->sDBUser = $oConfig->Get('db_user');
- $this->sDBPwd = $oConfig->Get('db_pwd');
+ $this->sDBUser = $this->oConfig->Get('db_user');
+ $this->sDBPwd = $this->oConfig->Get('db_pwd');
}
protected function LogInfo($sMsg)
@@ -127,79 +127,88 @@ class DBRestore extends DBBackup
*/
public function RestoreFromCompressedBackup($sFile, $sEnvironment = 'production')
{
- $this->LogInfo("Starting restore of ".basename($sFile));
+ $oRestoreMutex = new iTopMutex('restore.'.$sEnvironment);
+ IssueLog::Info("Backup Restore - Acquiring the LOCK 'restore.$sEnvironment'");
+ $oRestoreMutex->Lock();
- $sNormalizedFile = strtolower(basename($sFile));
- if (substr($sNormalizedFile, -4) == '.zip')
- {
- $this->LogInfo('zip file detected');
- $oArchive = new ZipArchiveEx();
- $oArchive->open($sFile);
- }
- elseif (substr($sNormalizedFile, -7) == '.tar.gz')
- {
- $this->LogInfo('tar.gz file detected');
- $oArchive = new TarGzArchive($sFile);
- }
- else
- {
- throw new BackupException('Unsupported format for a backup file: '.$sFile);
- }
+ try {
+ IssueLog::Info('Backup Restore - LOCK acquired, executing...');
+ $bReadonlyBefore = SetupUtils::EnterReadOnlyMode(MetaModel::GetConfig());
- // Load the database
- //
- $sDataDir = APPROOT.'data/tmp-backup-'.rand(10000, getrandmax());
+ try {
+ //safe zone for db backup => cron is stopped/ itop in readonly
+ $this->LogInfo("Starting restore of ".basename($sFile));
- SetupUtils::builddir($sDataDir); // Here is the directory
- $oArchive->extractTo($sDataDir);
- $sDataFile = $sDataDir.'/itop-dump.sql';
- $this->LoadDatabase($sDataFile);
+ $sNormalizedFile = strtolower(basename($sFile));
+ if (substr($sNormalizedFile, -4) == '.zip') {
+ $this->LogInfo('zip file detected');
+ $oArchive = new ZipArchiveEx();
+ $oArchive->open($sFile);
+ } elseif (substr($sNormalizedFile, -7) == '.tar.gz') {
+ $this->LogInfo('tar.gz file detected');
+ $oArchive = new TarGzArchive($sFile);
+ } else {
+ throw new BackupException('Unsupported format for a backup file: '.$sFile);
+ }
- // Update the code
- //
- $sDeltaFile = APPROOT.'data/'.$sEnvironment.'.delta.xml';
+ // Load the database
+ //
+ $sDataDir = APPROOT.'data/tmp-backup-'.rand(10000, getrandmax());
- if (is_file($sDataDir.'/delta.xml'))
- {
- // Extract and rename delta.xml =>
.delta.xml;
- rename($sDataDir.'/delta.xml', $sDeltaFile);
- }
- else
- {
- @unlink($sDeltaFile);
- }
- if (is_dir(APPROOT.'data/production-modules/'))
- {
- try
- {
- SetupUtils::rrmdir(APPROOT.'data/production-modules/');
- }
- catch (Exception $e)
- {
- throw new BackupException("Can't remove production-modules dir", 0, $e);
+ SetupUtils::builddir($sDataDir); // Here is the directory
+ $oArchive->extractTo($sDataDir);
+
+ $sDataFile = $sDataDir.'/itop-dump.sql';
+ $this->LoadDatabase($sDataFile);
+
+ // Update the code
+ //
+ $sDeltaFile = APPROOT.'data/'.$sEnvironment.'.delta.xml';
+
+ if (is_file($sDataDir.'/delta.xml')) {
+ // Extract and rename delta.xml => .delta.xml;
+ rename($sDataDir.'/delta.xml', $sDeltaFile);
+ } else {
+ @unlink($sDeltaFile);
+ }
+ if (is_dir(APPROOT.'data/production-modules/')) {
+ try {
+ SetupUtils::rrmdir(APPROOT.'data/production-modules/');
+ } catch (Exception $e) {
+ throw new BackupException("Can't remove production-modules dir", 0, $e);
+ }
+ }
+ if (is_dir($sDataDir.'/production-modules')) {
+ rename($sDataDir.'/production-modules', APPROOT.'data/production-modules/');
+ }
+
+ $sConfigFile = APPROOT.'conf/'.$sEnvironment.'/config-itop.php';
+ @chmod($sConfigFile, 0770); // Allow overwriting the file
+ rename($sDataDir.'/config-itop.php', $sConfigFile);
+ @chmod($sConfigFile, 0440); // Read-only
+
+ try {
+ SetupUtils::rrmdir($sDataDir);
+ } catch (Exception $e) {
+ throw new BackupException("Can't remove data dir", 0, $e);
+ }
+
+ $oEnvironment = new RunTimeEnvironment($sEnvironment);
+ $oEnvironment->CompileFrom($sEnvironment);
+ } finally {
+ if (! $bReadonlyBefore) {
+ SetupUtils::ExitReadOnlyMode();
+ } else {
+ //we are in the scope of main process that needs to handle/keep readonly mode.
+ $this->LogInfo("Keep readonly mode after restore");
+ }
}
}
- if (is_dir($sDataDir.'/production-modules'))
+ finally
{
- rename($sDataDir.'/production-modules', APPROOT.'data/production-modules/');
+ IssueLog::Info('Backup Restore - LOCK released.');
+ $oRestoreMutex->Unlock();
}
-
- $sConfigFile = APPROOT.'conf/'.$sEnvironment.'/config-itop.php';
- @chmod($sConfigFile, 0770); // Allow overwriting the file
- rename($sDataDir.'/config-itop.php', $sConfigFile);
- @chmod($sConfigFile, 0440); // Read-only
-
- try
- {
- SetupUtils::rrmdir($sDataDir);
- }
- catch (Exception $e)
- {
- throw new BackupException("Can't remove data dir", 0, $e);
- }
-
- $oEnvironment = new RunTimeEnvironment($sEnvironment);
- $oEnvironment->CompileFrom($sEnvironment);
}
}
diff --git a/datamodels/2.x/itop-config-mgmt/data.sample.dbschema.xml b/datamodels/2.x/itop-config-mgmt/data.sample.dbschema.xml
index 1ab626c77..60df78762 100755
--- a/datamodels/2.x/itop-config-mgmt/data.sample.dbschema.xml
+++ b/datamodels/2.x/itop-config-mgmt/data.sample.dbschema.xml
@@ -1,7 +1,7 @@
-openerpprod
+odooprod
2
low
diff --git a/datamodels/2.x/itop-config-mgmt/data.sample.osversion.xml b/datamodels/2.x/itop-config-mgmt/data.sample.osversion.xml
index 37e851d37..02198119d 100755
--- a/datamodels/2.x/itop-config-mgmt/data.sample.osversion.xml
+++ b/datamodels/2.x/itop-config-mgmt/data.sample.osversion.xml
@@ -1,11 +1,11 @@
-Unbuntu 11.10
+Ubuntu 20.04
7
-Windows 2008 Server
+Windows 2019 Server
3
diff --git a/datamodels/2.x/itop-config-mgmt/data.sample.servers.xml b/datamodels/2.x/itop-config-mgmt/data.sample.servers.xml
index afb7a443f..6210deafd 100755
--- a/datamodels/2.x/itop-config-mgmt/data.sample.servers.xml
+++ b/datamodels/2.x/itop-config-mgmt/data.sample.servers.xml
@@ -90,8 +90,8 @@
1
4
-2011-05-22
-2013-05-21
+2021-07-30
+2025-07-29
0
0
diff --git a/datamodels/2.x/itop-config-mgmt/data.sample.software.xml b/datamodels/2.x/itop-config-mgmt/data.sample.software.xml
index 9dc808217..ef62f8bab 100755
--- a/datamodels/2.x/itop-config-mgmt/data.sample.software.xml
+++ b/datamodels/2.x/itop-config-mgmt/data.sample.software.xml
@@ -3,13 +3,13 @@
MySql
Oracle
-5.3
+8
DBServer
Oracle DB engine
Oracle
-11i
+19c
DBServer
diff --git a/datamodels/2.x/itop-structure/precompiled-themes/fullmoon/main.css b/datamodels/2.x/itop-structure/precompiled-themes/fullmoon/main.css
index c33502997..1e3ac5fc3 100644
--- a/datamodels/2.x/itop-structure/precompiled-themes/fullmoon/main.css
+++ b/datamodels/2.x/itop-structure/precompiled-themes/fullmoon/main.css
@@ -1,6 +1,6 @@
/*
=== SIGNATURE BEGIN ===
-{"variables":"d751713988987e9331980363e24189ce","stylesheets":{"fullmoon":"eac0b1faa59815a653e2d703d2d1a60b"},"variable_imports":[],"images":{"images\/full-screen.png":"b541fadd3f1563856a4b44aeebd9d563","images\/tv-item.gif":"719fe2d4566108e73162fb8868d3778c","images\/tv-collapsable.gif":"63a3351ea0d580797c9b8c386aa4f48b","images\/tv-expandable.gif":"a2d1af4128e4a798a7f3390b12a28574","images\/tv-item-last.gif":"2ae7e1d9972ce71e5caa65a086bc5b7e","images\/tv-collapsable-last.gif":"71acaa9d7c2616e9e8b7131a75ca65da","images\/tv-expandable-last.gif":"9d51036b3a8102742709da66789fd0f7","images\/tv-folder.gif":"9f41e1454905fd7416f89aa4380a65e1","images\/tv-file.gif":"9ab0e28d85d8ab5eb954fc28f6ac1e80"},"utility_imports":{"..\/css\/backoffice\/utils\/_all.scss":"fd24aa07b40c91fdee1bbef15d8eacdd","..\/css\/backoffice\/utils\/variables\/_all.scss":"99c8ea993a9911a989c476405b5107e4","..\/css\/backoffice\/utils\/variables\/colors\/_all.scss":"0c9222dc5e4c46d897ba28e95946ad1b","..\/css\/backoffice\/utils\/variables\/colors\/_base-palette.scss":"2fbf92439664a9606ab84ae6c3a766f0","..\/css\/backoffice\/utils\/variables\/colors\/_semantic-palette.scss":"b0f9d89847d2ee9807fe143bdea5a6cd","..\/css\/backoffice\/utils\/variables\/colors\/_lifecycle-palette.scss":"ea06e857c5d9d442d0b3bdd66db10a7f","..\/css\/backoffice\/utils\/variables\/_border-radius.scss":"334102609a32eb78af0be65efddbe644","..\/css\/backoffice\/utils\/variables\/_depression.scss":"8870a4b14e08d8dbbc98ce833cc92faa","..\/css\/backoffice\/utils\/variables\/_elevation.scss":"09b58442b46fd3722ae9f9b9941504fb","..\/css\/backoffice\/utils\/variables\/_path.scss":"5127683357ba3375fadd33b0e5722908","..\/css\/backoffice\/utils\/variables\/_typography.scss":"15ff60a5e63801662c1e9312110efbc0","..\/css\/backoffice\/utils\/variables\/_base.scss":"16ec20f6e2b58426d269c339abd79779","..\/css\/backoffice\/utils\/mixins\/_all.scss":"afefab135bcf21daffa3022ce4529a08","..\/css\/backoffice\/utils\/helpers\/_all.scss":"5fa76756e8051e5e831f93465ea17e3a","..\/css\/backoffice\/utils\/helpers\/_border-radius.scss":"4e39edeb6ee7c4ea71f3abdda49256f3","..\/css\/backoffice\/utils\/helpers\/_color.scss":"36008fe20050d3cbb0c7d4502efa9c9b","..\/css\/backoffice\/utils\/helpers\/_depression.scss":"c2a55de471513d368b9ff1c1ca6a1f62","..\/css\/backoffice\/utils\/helpers\/_elevation.scss":"797cdb5c457e83f8e4109f69bda71626","..\/css\/backoffice\/utils\/helpers\/_font-icon.scss":"139adb6b6c29d5532891665adeec5de0","..\/css\/backoffice\/utils\/helpers\/_typography.scss":"a787c5027e4bda7c290807fc34ff117f","..\/css\/backoffice\/utils\/helpers\/_misc.scss":"5677fb2c128e1cec6d3b71d8ea4fa27b","..\/css\/backoffice\/utils\/helpers\/_class-icon.scss":"23ccce72157d44501c60c043c68bb685","..\/css\/backoffice\/vendors\/_all.scss":"914896e9ca0533bc8f3eec62b609fdac","..\/css\/backoffice\/vendors\/_bulma-variables-overload.scss":"8cdef4877d533f62c907ca0e19b95697","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/bulma.scss":"ac6337c71901f71b197a6628404a70fa","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/utilities\/_all.scss":"e374bc4ffb043b458d29e319b37fec03","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/utilities\/_initial-variables.scss":"527552844220a961a10b9af7b75add8b","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/utilities\/_functions.scss":"b39215085d7b424be74e05ae0c9a096b","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/utilities\/_animations.scss":"9eeec504cab94a45a597592020b7f0e7","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/utilities\/_mixins.scss":"6201fa9f37198a13291708785bed8c9c","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/utilities\/_controls.scss":"d2fd10c6dc0750b99b1f40952e8a4562","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/base\/_all.scss":"22cda0b152315361269f768c4a0e08d0","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/base\/_minireset.scss":"53ee547c0bff77ba3e6353def2f8729b","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/base\/_generic.scss":"c6a82d37120ed7d2dc7a64dccac78efd","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_all.scss":"c97722cd26e014967f6bff6133d43b44","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_box.scss":"d951bc383ad44b7497e9e9b1ab0dbe9c","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_button.scss":"7ab91729f48c3e49d0f6efafda6cbf6f","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_container.scss":"e4cbd75d93c57a919fd4c183ef80e4ba","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_content.scss":"4123c3d4d782cfbaaa8d4726f3a0425a","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_icon.scss":"b9900e2949eaa5a81a56ec382120cf39","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_image.scss":"4a1e324a1b4accad3e777f1bf0117089","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_notification.scss":"5573e46f01e45b1943a574ec1bdbe83c","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_progress.scss":"3700aa5f4e7b0f58b932e242b3bca415","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_table.scss":"4926ed56e8c53fd01543a66c009e0812","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_tag.scss":"b09d520b88f166e2847aed34f1f391e9","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_title.scss":"ecf774ebb3ddaa9097ea7fc66f416a0c","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_other.scss":"0e3571082a9629565dddb46712695756","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/form\/_all.scss":"414c51848e9f554070f97df2fe347a78","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/form\/_shared.scss":"73134a972f286fb24dc44e01ef0cf679","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/form\/_input-textarea.scss":"73e1d5c1673fdcd4c70d4a3125a3cdb5","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/form\/_checkbox-radio.scss":"c7430dbb855100ff193641bf31904ccb","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/form\/_select.scss":"c16a527986de7020f25e263943729937","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/form\/_file.scss":"c7a1351cfd94269350029a92dc7db83e","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/form\/_tools.scss":"c2bf0379d43ef365c981b38ef6bfff6c","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_all.scss":"398290ce7b00255b62e0b0c3ad6e6001","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_breadcrumb.scss":"7d90b4a6fae954f3e0c5e42e8c0c452d","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_card.scss":"16ea78a5288bd6ef6f665f1617b56702","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_dropdown.scss":"1a104de77315d37b7bdbd63eb3713be3","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_level.scss":"ce9549ec67ec27e93525de339d5bca87","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_media.scss":"ce5a90fcd100550bb754911ded93b055","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_menu.scss":"95b9cf3ffaec3122b790d86b0e27d299","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_message.scss":"0eff66899482f72804bf97b54e2a1e43","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_modal.scss":"b028228728cd5d50024ec4df9a8ecad3","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_navbar.scss":"8fb55c78c7bceee235db0ce27b344ada","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_pagination.scss":"6f4118ee0348e59cb1e4352d07a913bb","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_panel.scss":"c02cac8901cd7355b3e17ff832fcc59e","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_tabs.scss":"7b1d3b07dad7d06c9845bf244bceb985","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/grid\/_all.scss":"dff17fcb0a743bc82e2f130ae638baaa","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/grid\/_columns.scss":"52a2c66125f03f8dd707837b2ae67be5","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/grid\/_tiles.scss":"c3cbb200243be1702bf3f20fc003a133","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_all.scss":"cc385355f8f6ac3947c46ac83ffb9621","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_color.scss":"acbcbb2198ae9d0ee36a471d18b6d003","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_float.scss":"1e1656cbd9628e4889ed0c669ff8d552","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_other.scss":"8ea9052a4dff7ce651cb480ae76c3537","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_overflow.scss":"724297f6af3b8ca69fd8532d36992b1f","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_position.scss":"41d70d52c4d9078622e374f96f2266c5","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_spacing.scss":"d54ad9ee813ef6a96aeb2b6b39295909","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_typography.scss":"017c280d5e0d4fe90aa54067d483c965","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_visibility.scss":"4fa33c151d85b0dd99ed1bab93185461","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/layout\/_all.scss":"cd3a2d35edc7b6d00bc65585b2b35961","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/layout\/_hero.scss":"44f9f81a58020b964b856c914c327430","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/layout\/_section.scss":"eacc632700c2257f51bdcabe7dc13d04","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/layout\/_footer.scss":"fb4c389411fcff6aacabf5e4de0c403e","..\/css\/backoffice\/vendors\/_ckeditor.scss":"15d8aa07faaab9a7264ecaea4ce5ef9b","..\/css\/backoffice\/vendors\/_tippy.scss":"2863b585a42218efb785358d64a18a87","..\/css\/backoffice\/vendors\/_jqueryui.scss":"430cf2860a3177e3120524197c73ec13","..\/css\/backoffice\/vendors\/_jquery-multiselect.scss":"6bd5ada0bee44149af5cc79d7691bced","..\/css\/backoffice\/vendors\/_datatables.scss":"fb07288f9f7b2c0f9722332520a96ee9","..\/css\/backoffice\/vendors\/_jquery-treeview.scss":"d962e8db308512292d1ea04d777d3761","..\/css\/backoffice\/vendors\/_jquery-blockui.scss":"7fe1b1960c47c047b5c2d1d7b14432cf","..\/css\/backoffice\/base\/_all.scss":"5a90fbde32f512506f5822ae9f5e05df","..\/css\/backoffice\/base\/_base.scss":"4c10d3288d47df2b3240697bd430bd4d","..\/css\/backoffice\/base\/_typography.scss":"6eb47d257105bd09af2c4ef2355c6dda","..\/css\/backoffice\/components\/_all.scss":"9da643f1a527c85bdcdfdbd4f2c59bd2","..\/css\/backoffice\/components\/_alert.scss":"7fc9f0828154856191568b2a6ce6be68","..\/css\/backoffice\/components\/_button.scss":"3c40a0ce008cebaf48b2946f7d6b62a7","..\/css\/backoffice\/components\/_button-group.scss":"358f1096ffeb30e1d86a2df6c9cca347","..\/css\/backoffice\/components\/_breadcrumbs.scss":"5c09da570e7e95e581bbf6259136bc1b","..\/css\/backoffice\/components\/_quick-create.scss":"4bf080f5a61c47eaa267a135df3ad3b7","..\/css\/backoffice\/components\/_global-search.scss":"2ab70baf1bfa91865f3f0237d43095ae","..\/css\/backoffice\/components\/popover-menu\/_popover-menu.scss":"7bf9c17f1879407cb89fd618fece15ab","..\/css\/backoffice\/components\/popover-menu\/_popover-menu-item.scss":"600dc940298af35514f08a580e2f4b1b","..\/css\/backoffice\/components\/_newsroom-menu.scss":"13572143d252f851a0f353ad4bef2e50","..\/css\/backoffice\/components\/_panel.scss":"2b50ed7e4d0a4ccc363a6b2933a299d6","..\/css\/backoffice\/components\/_collapsible-section.scss":"f7257e1ef336c9742457fc079ad2ca01","..\/css\/backoffice\/components\/_modal.scss":"d41d8cd98f00b204e9800998ecf8427e","..\/css\/backoffice\/components\/dashlet\/_all.scss":"c9dd70be9f33b53701c6afc7a4749190","..\/css\/backoffice\/components\/dashlet\/_dashlet.scss":"5ab24fb841936a545b0859a4637508ec","..\/css\/backoffice\/components\/dashlet\/_dashlet-badge.scss":"d0ab5c7d780e33cc0678ec6b62397da9","..\/css\/backoffice\/components\/dashlet\/_dashlet-header-static.scss":"746ebb209bcf98ff745d2a2844399b48","..\/css\/backoffice\/components\/dashlet\/_dashlet-header-dynamic.scss":"460760cb90b5dad96de59b7c28249637","..\/css\/backoffice\/components\/input\/_all.scss":"c8bceeb98cc73d95740ae86aaf504fcb","..\/css\/backoffice\/components\/input\/_input.scss":"489f58e58ebf24722a312fae9cc4e592","..\/css\/backoffice\/components\/input\/_input-checkbox.scss":"ad1644e915cffbee9b94012a8a17949c","..\/css\/backoffice\/components\/input\/_input-date.scss":"9322d73459bd5e9ddc9e830eb92a6c1b","..\/css\/backoffice\/components\/input\/_input-datetime.scss":"0ae49bbefa821b2ef300fa79bbe2eb1e","..\/css\/backoffice\/components\/input\/_input-duration.scss":"6d12508069ff3ca94bfa142c4228f2cb","..\/css\/backoffice\/components\/input\/_input-image.scss":"fae0b98d530e4929f22e16bd5c7adaf1","..\/css\/backoffice\/components\/input\/_input-select.scss":"3ab8ee0ebe86d9ccb0ba7031a6205641","..\/css\/backoffice\/components\/input\/_input-select-icon.scss":"7356bd623ae91ac9c3df1bc2c52061ef","..\/css\/backoffice\/components\/input\/_input-string.scss":"d41d8cd98f00b204e9800998ecf8427e","..\/css\/backoffice\/components\/input\/_input-set.scss":"1b17f6ca73bf1ebaa0e0d8c7ddc7e270","..\/css\/backoffice\/components\/input\/_input-text.scss":"4c9a105fdc075fe5e554374f59b7ce5d","..\/css\/backoffice\/components\/_pill.scss":"53c3964c01406435002eafe4fd282d16","..\/css\/backoffice\/components\/_prop.scss":"0966577061f5baec0e18005a6312d0d6","..\/css\/backoffice\/components\/_title.scss":"9c14ded80108baa16103656d83c0ed86","..\/css\/backoffice\/components\/_datatable.scss":"f9cd9a6c4584b11d99cf24d60856aa72","..\/css\/backoffice\/components\/_form.scss":"d5d39f9c0545b33c8055d62ef6fb5e3c","..\/css\/backoffice\/components\/_fieldset.scss":"c7ea22d096b2d42c0c7771d40ca8a2f8","..\/css\/backoffice\/components\/_field.scss":"353e92834b1d6a67c35e805d7cfccadb","..\/css\/backoffice\/components\/toolbar\/_all.scss":"12e9e9094b4f7d0ccbb4428383b6e728","..\/css\/backoffice\/components\/toolbar\/_toolbar.scss":"e7078bb37ef355ba217c1a8a9f587e1a","..\/css\/backoffice\/components\/toolbar\/_toolbar-spacer.scss":"1fcdd603b20e5848235e930014887d73","..\/css\/backoffice\/components\/toolbar\/_separator.scss":"8ca10dcc3f1d469623d0538748acd4d5","..\/css\/backoffice\/components\/_richtext.scss":"361c5ded07c8e835619bf45e10f7a602","..\/css\/backoffice\/components\/_formtable.scss":"94dc266452aeb26f6525a24f84e5e383","..\/css\/backoffice\/components\/_formtablerow.scss":"94dc266452aeb26f6525a24f84e5e383","..\/css\/backoffice\/components\/_search-form.scss":"d362d579f17c4164b6cc3ebe0c3f2859","..\/css\/backoffice\/components\/_field-badge.scss":"6b17d29444a892aa1ca6b044abd8d7a4","..\/css\/backoffice\/components\/_file-select.scss":"5684f09d237002f6342ca1013b3a0344","..\/css\/backoffice\/components\/_medallion-icon.scss":"ccff061880095b8f9f40412293ac9f76","..\/css\/backoffice\/layout\/_all.scss":"0740142302cd8e2e19139b2eaf6142e9","..\/css\/backoffice\/layout\/_navigation-menu.scss":"75a57f14a17eadc4e65ffb0976dfe114","..\/css\/backoffice\/layout\/_top-bar.scss":"6b5b96df40001d1bbb14d391a0d984ef","..\/css\/backoffice\/layout\/_content.scss":"86a5f6b2f2d1a7a9b088ef59c66e03c7","..\/css\/backoffice\/layout\/tab-container\/_tab-container.scss":"5ec9f1a4eb3df35a787b127d41d44021","..\/css\/backoffice\/layout\/tab-container\/_tab.scss":"742392bfd94a5a115bc144ea9aa4ff3f","..\/css\/backoffice\/layout\/multi-column\/_multi-column.scss":"e99d4afb40886d6d942c5020b288b1b8","..\/css\/backoffice\/layout\/multi-column\/_column.scss":"699fdf1bd2b84325cc27792e60463ad7","..\/css\/backoffice\/layout\/dashboard\/_all.scss":"0caa6d19d2a52396cbe3752d5bfcd6da","..\/css\/backoffice\/layout\/dashboard\/_dashboard.scss":"7c4368998b0a2b670913df7c56118edf","..\/css\/backoffice\/layout\/dashboard\/_dashboard-editor.scss":"1eb860fd891ae8b78c956cf64286725f","..\/css\/backoffice\/layout\/wizard-container\/_wizard-container.scss":"6397850c8975248830a1abf177e13023","..\/css\/backoffice\/layout\/object\/_object-details.scss":"9000dd0ea72345d8ee89b3a3fe8a5ee2","..\/css\/backoffice\/layout\/activity-panel\/_all.scss":"e9a1eae6d8be777f838919d22e5e3e45","..\/css\/backoffice\/layout\/activity-panel\/_activity-panel.scss":"045fa456e0b2731dd378c503678ce1ef","..\/css\/backoffice\/layout\/activity-panel\/_caselog-entry-form.scss":"bb6d49f017e9cf73b3e4ec3f7e5f1637","..\/css\/backoffice\/layout\/activity-panel\/_activity-entry.scss":"2480704fa561c8ecd22b914c2defefcf","..\/css\/backoffice\/layout\/activity-panel\/_caselog-entry.scss":"8b6fb224c4a598bd8987e5f8e32e6405","..\/css\/backoffice\/layout\/activity-panel\/_transition-entry.scss":"054a4415337e48a907cd9682e2f1ca05","..\/css\/backoffice\/layout\/activity-panel\/_edits-entry.scss":"9463d0a303d9be3a28b5feacca662b9c","..\/css\/backoffice\/layout\/activity-panel\/_notification-entry.scss":"76b7431c8953ff7db5c1a2c4218e00d1","..\/css\/backoffice\/application\/_all.scss":"c195d8a4e036571ec39869febd886bab","..\/css\/backoffice\/application\/display-block\/_all.scss":"c04b4c8f9a4f8f6ce0a7397083abc501","..\/css\/backoffice\/application\/display-block\/_block-csv.scss":"535330e4684ddacf9c67357fb21cf70d","..\/css\/backoffice\/application\/display-block\/_block-list.scss":"1af6f750ec7c9e4ff9bb02e7be63cb25","..\/css\/backoffice\/application\/tabular-fields\/_all.scss":"4f6a05c7f41b0bfd60dd91b442ff95a9","..\/css\/backoffice\/application\/tabular-fields\/_tabular-fields-selector.scss":"7bd19292fd0a4801612b9889ba7480e4","..\/css\/backoffice\/pages\/_all.scss":"84b5f499283c2d0ad35999d77d2d24ac","..\/css\/backoffice\/pages\/_base.scss":"0ddd68ed0a5c8e3a1d979f7b763785cc","..\/css\/backoffice\/pages\/_preferences.scss":"4b94210a910e9c1df1fcd93c02916f36","..\/css\/backoffice\/pages\/_attachments.scss":"3c1a03b53ed9edbdd1bf94b215536d3a","..\/css\/backoffice\/pages\/_impact-analysis.scss":"4d4af96d84104680ebd0112d2d5eb92d","..\/css\/backoffice\/pages\/_audit.scss":"100f725cb6f0b801fda8243cf9342f26","..\/css\/backoffice\/pages\/_data-synchro.scss":"0c0cc941c901d5ffa4dc0845e6f11d6c","..\/css\/backoffice\/pages\/_datamodel-viewer.scss":"e11bb77c712cbbaa22a11ed24949b239","..\/css\/backoffice\/pages\/_csv-import.scss":"c32a07561c1a90ff754b7da2181b7020","..\/css\/backoffice\/pages\/_global-search.scss":"da4695e624d3a95e3b1c9035b4529a20","..\/css\/backoffice\/pages\/_welcome-popup.scss":"bd2b7cb8e148fc5e469e553e596001e4","..\/css\/backoffice\/blocks-integrations\/_all.scss":"dab5c6553d9933024df8bac361321b6d","..\/css\/backoffice\/blocks-integrations\/_dashlet-within-dashboard.scss":"b9c1693a941732c66a9fb92e51609fc7","..\/css\/backoffice\/blocks-integrations\/_add-to-dashboard.scss":"3ecdea8473b6014dd4e73f98e6eaa5b1","..\/css\/backoffice\/blocks-integrations\/_caselog-entry-form-within-activity-panel.scss":"0ad42544e79da33693facb23eae57b9e","..\/css\/backoffice\/blocks-integrations\/_panel-with-datatable.scss":"a96f57fa925f87f0c17eacec6ba98fb9","..\/css\/backoffice\/blocks-integrations\/_panel-with-tab-container.scss":"76cc2f643ccb2f328c36bd335b39987e","..\/css\/backoffice\/blocks-integrations\/_panel-within-main-content.scss":"485a56a9cee1e7b5f9c5b32fae358cfe","..\/css\/backoffice\/blocks-integrations\/_panel-within-modal.scss":"19322d657236c17402a057298aa6e9e9","..\/css\/backoffice\/blocks-integrations\/_object-details-with-tab-container.scss":"e75862e46d156fbedc074ac7055813de","..\/css\/backoffice\/blocks-integrations\/_medallion-with-blocklist.scss":"4ebaef03be8ce96e18b98c6339f3b2e1","..\/css\/backoffice\/blocks-integrations\/_input-within-datatable.scss":"80678af7854753f4e4248bd26c72ecef","..\/css\/backoffice\/blocks-integrations\/_jquery-blockui-within-dialog.scss":"5544331904527d068b1bbb2ea340b679","..\/css\/backoffice\/blocks-integrations\/_jquery-blockui-within-datatable.scss":"b7c6739bc263a91779a636a6d188d511","..\/css\/backoffice\/themes\/_all.scss":"afefab135bcf21daffa3022ce4529a08","..\/css\/backoffice\/_fallback.scss":"26fa12345b0cbb992c8dfd08b5969cad","..\/css\/backoffice\/_shame.scss":"4ca49acf53df3f6f176a680172808a08"}}
+{"variables":"d751713988987e9331980363e24189ce","stylesheets":{"fullmoon":"eac0b1faa59815a653e2d703d2d1a60b"},"variable_imports":[],"images":{"images\/full-screen.png":"b541fadd3f1563856a4b44aeebd9d563","images\/tv-item.gif":"719fe2d4566108e73162fb8868d3778c","images\/tv-collapsable.gif":"63a3351ea0d580797c9b8c386aa4f48b","images\/tv-expandable.gif":"a2d1af4128e4a798a7f3390b12a28574","images\/tv-item-last.gif":"2ae7e1d9972ce71e5caa65a086bc5b7e","images\/tv-collapsable-last.gif":"71acaa9d7c2616e9e8b7131a75ca65da","images\/tv-expandable-last.gif":"9d51036b3a8102742709da66789fd0f7","images\/tv-folder.gif":"9f41e1454905fd7416f89aa4380a65e1","images\/tv-file.gif":"9ab0e28d85d8ab5eb954fc28f6ac1e80"},"utility_imports":{"..\/css\/backoffice\/utils\/_all.scss":"fd24aa07b40c91fdee1bbef15d8eacdd","..\/css\/backoffice\/utils\/variables\/_all.scss":"99c8ea993a9911a989c476405b5107e4","..\/css\/backoffice\/utils\/variables\/colors\/_all.scss":"0c9222dc5e4c46d897ba28e95946ad1b","..\/css\/backoffice\/utils\/variables\/colors\/_base-palette.scss":"2fbf92439664a9606ab84ae6c3a766f0","..\/css\/backoffice\/utils\/variables\/colors\/_semantic-palette.scss":"b0f9d89847d2ee9807fe143bdea5a6cd","..\/css\/backoffice\/utils\/variables\/colors\/_lifecycle-palette.scss":"ea06e857c5d9d442d0b3bdd66db10a7f","..\/css\/backoffice\/utils\/variables\/_border-radius.scss":"334102609a32eb78af0be65efddbe644","..\/css\/backoffice\/utils\/variables\/_depression.scss":"8870a4b14e08d8dbbc98ce833cc92faa","..\/css\/backoffice\/utils\/variables\/_elevation.scss":"09b58442b46fd3722ae9f9b9941504fb","..\/css\/backoffice\/utils\/variables\/_path.scss":"5127683357ba3375fadd33b0e5722908","..\/css\/backoffice\/utils\/variables\/_typography.scss":"15ff60a5e63801662c1e9312110efbc0","..\/css\/backoffice\/utils\/variables\/_base.scss":"16ec20f6e2b58426d269c339abd79779","..\/css\/backoffice\/utils\/mixins\/_all.scss":"afefab135bcf21daffa3022ce4529a08","..\/css\/backoffice\/utils\/helpers\/_all.scss":"5fa76756e8051e5e831f93465ea17e3a","..\/css\/backoffice\/utils\/helpers\/_border-radius.scss":"4e39edeb6ee7c4ea71f3abdda49256f3","..\/css\/backoffice\/utils\/helpers\/_color.scss":"36008fe20050d3cbb0c7d4502efa9c9b","..\/css\/backoffice\/utils\/helpers\/_depression.scss":"c2a55de471513d368b9ff1c1ca6a1f62","..\/css\/backoffice\/utils\/helpers\/_elevation.scss":"797cdb5c457e83f8e4109f69bda71626","..\/css\/backoffice\/utils\/helpers\/_font-icon.scss":"139adb6b6c29d5532891665adeec5de0","..\/css\/backoffice\/utils\/helpers\/_typography.scss":"a787c5027e4bda7c290807fc34ff117f","..\/css\/backoffice\/utils\/helpers\/_misc.scss":"71722d10f864f650f492521fa4702e65","..\/css\/backoffice\/utils\/helpers\/_class-icon.scss":"39b50a92777a3894e6775424dc961ff7","..\/css\/backoffice\/vendors\/_all.scss":"8eca342189ea854da343443206d5d936","..\/css\/backoffice\/vendors\/_bulma-variables-overload.scss":"8cdef4877d533f62c907ca0e19b95697","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/bulma.scss":"ac6337c71901f71b197a6628404a70fa","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/utilities\/_all.scss":"e374bc4ffb043b458d29e319b37fec03","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/utilities\/_initial-variables.scss":"527552844220a961a10b9af7b75add8b","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/utilities\/_functions.scss":"b39215085d7b424be74e05ae0c9a096b","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/utilities\/_animations.scss":"9eeec504cab94a45a597592020b7f0e7","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/utilities\/_mixins.scss":"6201fa9f37198a13291708785bed8c9c","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/utilities\/_controls.scss":"d2fd10c6dc0750b99b1f40952e8a4562","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/base\/_all.scss":"22cda0b152315361269f768c4a0e08d0","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/base\/_minireset.scss":"53ee547c0bff77ba3e6353def2f8729b","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/base\/_generic.scss":"c6a82d37120ed7d2dc7a64dccac78efd","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_all.scss":"c97722cd26e014967f6bff6133d43b44","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_box.scss":"d951bc383ad44b7497e9e9b1ab0dbe9c","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_button.scss":"7ab91729f48c3e49d0f6efafda6cbf6f","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_container.scss":"e4cbd75d93c57a919fd4c183ef80e4ba","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_content.scss":"4123c3d4d782cfbaaa8d4726f3a0425a","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_icon.scss":"b9900e2949eaa5a81a56ec382120cf39","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_image.scss":"4a1e324a1b4accad3e777f1bf0117089","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_notification.scss":"5573e46f01e45b1943a574ec1bdbe83c","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_progress.scss":"3700aa5f4e7b0f58b932e242b3bca415","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_table.scss":"4926ed56e8c53fd01543a66c009e0812","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_tag.scss":"b09d520b88f166e2847aed34f1f391e9","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_title.scss":"ecf774ebb3ddaa9097ea7fc66f416a0c","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_other.scss":"0e3571082a9629565dddb46712695756","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/form\/_all.scss":"414c51848e9f554070f97df2fe347a78","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/form\/_shared.scss":"73134a972f286fb24dc44e01ef0cf679","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/form\/_input-textarea.scss":"73e1d5c1673fdcd4c70d4a3125a3cdb5","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/form\/_checkbox-radio.scss":"c7430dbb855100ff193641bf31904ccb","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/form\/_select.scss":"c16a527986de7020f25e263943729937","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/form\/_file.scss":"c7a1351cfd94269350029a92dc7db83e","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/form\/_tools.scss":"c2bf0379d43ef365c981b38ef6bfff6c","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_all.scss":"398290ce7b00255b62e0b0c3ad6e6001","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_breadcrumb.scss":"7d90b4a6fae954f3e0c5e42e8c0c452d","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_card.scss":"16ea78a5288bd6ef6f665f1617b56702","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_dropdown.scss":"1a104de77315d37b7bdbd63eb3713be3","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_level.scss":"ce9549ec67ec27e93525de339d5bca87","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_media.scss":"ce5a90fcd100550bb754911ded93b055","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_menu.scss":"95b9cf3ffaec3122b790d86b0e27d299","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_message.scss":"0eff66899482f72804bf97b54e2a1e43","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_modal.scss":"b028228728cd5d50024ec4df9a8ecad3","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_navbar.scss":"8fb55c78c7bceee235db0ce27b344ada","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_pagination.scss":"6f4118ee0348e59cb1e4352d07a913bb","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_panel.scss":"c02cac8901cd7355b3e17ff832fcc59e","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_tabs.scss":"7b1d3b07dad7d06c9845bf244bceb985","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/grid\/_all.scss":"dff17fcb0a743bc82e2f130ae638baaa","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/grid\/_columns.scss":"52a2c66125f03f8dd707837b2ae67be5","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/grid\/_tiles.scss":"c3cbb200243be1702bf3f20fc003a133","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_all.scss":"cc385355f8f6ac3947c46ac83ffb9621","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_color.scss":"acbcbb2198ae9d0ee36a471d18b6d003","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_float.scss":"1e1656cbd9628e4889ed0c669ff8d552","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_other.scss":"8ea9052a4dff7ce651cb480ae76c3537","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_overflow.scss":"724297f6af3b8ca69fd8532d36992b1f","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_position.scss":"41d70d52c4d9078622e374f96f2266c5","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_spacing.scss":"d54ad9ee813ef6a96aeb2b6b39295909","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_typography.scss":"017c280d5e0d4fe90aa54067d483c965","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_visibility.scss":"4fa33c151d85b0dd99ed1bab93185461","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/layout\/_all.scss":"cd3a2d35edc7b6d00bc65585b2b35961","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/layout\/_hero.scss":"44f9f81a58020b964b856c914c327430","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/layout\/_section.scss":"eacc632700c2257f51bdcabe7dc13d04","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/layout\/_footer.scss":"fb4c389411fcff6aacabf5e4de0c403e","..\/css\/backoffice\/vendors\/_ckeditor.scss":"15d8aa07faaab9a7264ecaea4ce5ef9b","..\/css\/backoffice\/vendors\/_tippy.scss":"2863b585a42218efb785358d64a18a87","..\/css\/backoffice\/vendors\/_jqueryui.scss":"430cf2860a3177e3120524197c73ec13","..\/css\/backoffice\/vendors\/_jquery-multiselect.scss":"6bd5ada0bee44149af5cc79d7691bced","..\/css\/backoffice\/vendors\/_datatables.scss":"bd40d11aa57d12e5bf982f79c7149bc2","..\/css\/backoffice\/vendors\/_jquery-treeview.scss":"d962e8db308512292d1ea04d777d3761","..\/css\/backoffice\/vendors\/_jquery-blockui.scss":"7fe1b1960c47c047b5c2d1d7b14432cf","..\/css\/backoffice\/vendors\/_magnific-popup.scss":"a951b22a2b246a06fa7c1a0db77aa575","..\/css\/backoffice\/base\/_all.scss":"5a90fbde32f512506f5822ae9f5e05df","..\/css\/backoffice\/base\/_base.scss":"4c10d3288d47df2b3240697bd430bd4d","..\/css\/backoffice\/base\/_typography.scss":"6eb47d257105bd09af2c4ef2355c6dda","..\/css\/backoffice\/components\/_all.scss":"9da643f1a527c85bdcdfdbd4f2c59bd2","..\/css\/backoffice\/components\/_alert.scss":"7fc9f0828154856191568b2a6ce6be68","..\/css\/backoffice\/components\/_button.scss":"426b3262d602eede858dd2b332579714","..\/css\/backoffice\/components\/_button-group.scss":"358f1096ffeb30e1d86a2df6c9cca347","..\/css\/backoffice\/components\/_breadcrumbs.scss":"fd8588cfa2049dc079ab55c3d2a4c59a","..\/css\/backoffice\/components\/_quick-create.scss":"4bf080f5a61c47eaa267a135df3ad3b7","..\/css\/backoffice\/components\/_global-search.scss":"2ab70baf1bfa91865f3f0237d43095ae","..\/css\/backoffice\/components\/popover-menu\/_popover-menu.scss":"7bf9c17f1879407cb89fd618fece15ab","..\/css\/backoffice\/components\/popover-menu\/_popover-menu-item.scss":"600dc940298af35514f08a580e2f4b1b","..\/css\/backoffice\/components\/_newsroom-menu.scss":"13572143d252f851a0f353ad4bef2e50","..\/css\/backoffice\/components\/_panel.scss":"2b50ed7e4d0a4ccc363a6b2933a299d6","..\/css\/backoffice\/components\/_collapsible-section.scss":"f7257e1ef336c9742457fc079ad2ca01","..\/css\/backoffice\/components\/_modal.scss":"d41d8cd98f00b204e9800998ecf8427e","..\/css\/backoffice\/components\/dashlet\/_all.scss":"c9dd70be9f33b53701c6afc7a4749190","..\/css\/backoffice\/components\/dashlet\/_dashlet.scss":"5ab24fb841936a545b0859a4637508ec","..\/css\/backoffice\/components\/dashlet\/_dashlet-badge.scss":"d0ab5c7d780e33cc0678ec6b62397da9","..\/css\/backoffice\/components\/dashlet\/_dashlet-header-static.scss":"746ebb209bcf98ff745d2a2844399b48","..\/css\/backoffice\/components\/dashlet\/_dashlet-header-dynamic.scss":"460760cb90b5dad96de59b7c28249637","..\/css\/backoffice\/components\/input\/_all.scss":"c8bceeb98cc73d95740ae86aaf504fcb","..\/css\/backoffice\/components\/input\/_input.scss":"489f58e58ebf24722a312fae9cc4e592","..\/css\/backoffice\/components\/input\/_input-checkbox.scss":"ad1644e915cffbee9b94012a8a17949c","..\/css\/backoffice\/components\/input\/_input-date.scss":"9322d73459bd5e9ddc9e830eb92a6c1b","..\/css\/backoffice\/components\/input\/_input-datetime.scss":"0ae49bbefa821b2ef300fa79bbe2eb1e","..\/css\/backoffice\/components\/input\/_input-duration.scss":"6d12508069ff3ca94bfa142c4228f2cb","..\/css\/backoffice\/components\/input\/_input-image.scss":"fae0b98d530e4929f22e16bd5c7adaf1","..\/css\/backoffice\/components\/input\/_input-select.scss":"3ab8ee0ebe86d9ccb0ba7031a6205641","..\/css\/backoffice\/components\/input\/_input-select-icon.scss":"7356bd623ae91ac9c3df1bc2c52061ef","..\/css\/backoffice\/components\/input\/_input-string.scss":"d41d8cd98f00b204e9800998ecf8427e","..\/css\/backoffice\/components\/input\/_input-set.scss":"1b17f6ca73bf1ebaa0e0d8c7ddc7e270","..\/css\/backoffice\/components\/input\/_input-text.scss":"4c9a105fdc075fe5e554374f59b7ce5d","..\/css\/backoffice\/components\/_pill.scss":"53c3964c01406435002eafe4fd282d16","..\/css\/backoffice\/components\/_prop.scss":"0966577061f5baec0e18005a6312d0d6","..\/css\/backoffice\/components\/_title.scss":"9c14ded80108baa16103656d83c0ed86","..\/css\/backoffice\/components\/_datatable.scss":"f9cd9a6c4584b11d99cf24d60856aa72","..\/css\/backoffice\/components\/_form.scss":"d5d39f9c0545b33c8055d62ef6fb5e3c","..\/css\/backoffice\/components\/_fieldset.scss":"c7ea22d096b2d42c0c7771d40ca8a2f8","..\/css\/backoffice\/components\/_field.scss":"9191ce06fafa4a4696b418f6d5d75d6c","..\/css\/backoffice\/components\/toolbar\/_all.scss":"12e9e9094b4f7d0ccbb4428383b6e728","..\/css\/backoffice\/components\/toolbar\/_toolbar.scss":"e7078bb37ef355ba217c1a8a9f587e1a","..\/css\/backoffice\/components\/toolbar\/_toolbar-spacer.scss":"1fcdd603b20e5848235e930014887d73","..\/css\/backoffice\/components\/toolbar\/_separator.scss":"8ca10dcc3f1d469623d0538748acd4d5","..\/css\/backoffice\/components\/_richtext.scss":"361c5ded07c8e835619bf45e10f7a602","..\/css\/backoffice\/components\/_formtable.scss":"94dc266452aeb26f6525a24f84e5e383","..\/css\/backoffice\/components\/_formtablerow.scss":"94dc266452aeb26f6525a24f84e5e383","..\/css\/backoffice\/components\/_search-form.scss":"d362d579f17c4164b6cc3ebe0c3f2859","..\/css\/backoffice\/components\/_field-badge.scss":"6b17d29444a892aa1ca6b044abd8d7a4","..\/css\/backoffice\/components\/_file-select.scss":"5684f09d237002f6342ca1013b3a0344","..\/css\/backoffice\/components\/_medallion-icon.scss":"ccff061880095b8f9f40412293ac9f76","..\/css\/backoffice\/layout\/_all.scss":"0740142302cd8e2e19139b2eaf6142e9","..\/css\/backoffice\/layout\/_navigation-menu.scss":"75a57f14a17eadc4e65ffb0976dfe114","..\/css\/backoffice\/layout\/_top-bar.scss":"e7a56c70f001d99f84014bd8ef856890","..\/css\/backoffice\/layout\/_content.scss":"86a5f6b2f2d1a7a9b088ef59c66e03c7","..\/css\/backoffice\/layout\/tab-container\/_tab-container.scss":"3b8e12485f37dcef7e8bbad994c93a48","..\/css\/backoffice\/layout\/tab-container\/_tab.scss":"742392bfd94a5a115bc144ea9aa4ff3f","..\/css\/backoffice\/layout\/multi-column\/_multi-column.scss":"e99d4afb40886d6d942c5020b288b1b8","..\/css\/backoffice\/layout\/multi-column\/_column.scss":"699fdf1bd2b84325cc27792e60463ad7","..\/css\/backoffice\/layout\/dashboard\/_all.scss":"0caa6d19d2a52396cbe3752d5bfcd6da","..\/css\/backoffice\/layout\/dashboard\/_dashboard.scss":"7c4368998b0a2b670913df7c56118edf","..\/css\/backoffice\/layout\/dashboard\/_dashboard-editor.scss":"1eb860fd891ae8b78c956cf64286725f","..\/css\/backoffice\/layout\/wizard-container\/_wizard-container.scss":"6397850c8975248830a1abf177e13023","..\/css\/backoffice\/layout\/object\/_object-details.scss":"9000dd0ea72345d8ee89b3a3fe8a5ee2","..\/css\/backoffice\/layout\/activity-panel\/_all.scss":"e9a1eae6d8be777f838919d22e5e3e45","..\/css\/backoffice\/layout\/activity-panel\/_activity-panel.scss":"c0a994067cb0b90cac4b74d628747cf5","..\/css\/backoffice\/layout\/activity-panel\/_caselog-entry-form.scss":"bb6d49f017e9cf73b3e4ec3f7e5f1637","..\/css\/backoffice\/layout\/activity-panel\/_activity-entry.scss":"933a22f7c6b3fb1605ef1afbeb06c232","..\/css\/backoffice\/layout\/activity-panel\/_caselog-entry.scss":"8b6fb224c4a598bd8987e5f8e32e6405","..\/css\/backoffice\/layout\/activity-panel\/_transition-entry.scss":"054a4415337e48a907cd9682e2f1ca05","..\/css\/backoffice\/layout\/activity-panel\/_edits-entry.scss":"9463d0a303d9be3a28b5feacca662b9c","..\/css\/backoffice\/layout\/activity-panel\/_notification-entry.scss":"76b7431c8953ff7db5c1a2c4218e00d1","..\/css\/backoffice\/application\/_all.scss":"c195d8a4e036571ec39869febd886bab","..\/css\/backoffice\/application\/display-block\/_all.scss":"c04b4c8f9a4f8f6ce0a7397083abc501","..\/css\/backoffice\/application\/display-block\/_block-csv.scss":"535330e4684ddacf9c67357fb21cf70d","..\/css\/backoffice\/application\/display-block\/_block-list.scss":"1af6f750ec7c9e4ff9bb02e7be63cb25","..\/css\/backoffice\/application\/tabular-fields\/_all.scss":"4f6a05c7f41b0bfd60dd91b442ff95a9","..\/css\/backoffice\/application\/tabular-fields\/_tabular-fields-selector.scss":"7bd19292fd0a4801612b9889ba7480e4","..\/css\/backoffice\/pages\/_all.scss":"84b5f499283c2d0ad35999d77d2d24ac","..\/css\/backoffice\/pages\/_base.scss":"0ddd68ed0a5c8e3a1d979f7b763785cc","..\/css\/backoffice\/pages\/_preferences.scss":"4b94210a910e9c1df1fcd93c02916f36","..\/css\/backoffice\/pages\/_attachments.scss":"3c1a03b53ed9edbdd1bf94b215536d3a","..\/css\/backoffice\/pages\/_impact-analysis.scss":"4d4af96d84104680ebd0112d2d5eb92d","..\/css\/backoffice\/pages\/_audit.scss":"100f725cb6f0b801fda8243cf9342f26","..\/css\/backoffice\/pages\/_data-synchro.scss":"0c0cc941c901d5ffa4dc0845e6f11d6c","..\/css\/backoffice\/pages\/_datamodel-viewer.scss":"e11bb77c712cbbaa22a11ed24949b239","..\/css\/backoffice\/pages\/_csv-import.scss":"c32a07561c1a90ff754b7da2181b7020","..\/css\/backoffice\/pages\/_global-search.scss":"da4695e624d3a95e3b1c9035b4529a20","..\/css\/backoffice\/pages\/_welcome-popup.scss":"bd2b7cb8e148fc5e469e553e596001e4","..\/css\/backoffice\/blocks-integrations\/_all.scss":"dab5c6553d9933024df8bac361321b6d","..\/css\/backoffice\/blocks-integrations\/_dashlet-within-dashboard.scss":"b9c1693a941732c66a9fb92e51609fc7","..\/css\/backoffice\/blocks-integrations\/_add-to-dashboard.scss":"3ecdea8473b6014dd4e73f98e6eaa5b1","..\/css\/backoffice\/blocks-integrations\/_caselog-entry-form-within-activity-panel.scss":"0ad42544e79da33693facb23eae57b9e","..\/css\/backoffice\/blocks-integrations\/_panel-with-datatable.scss":"a96f57fa925f87f0c17eacec6ba98fb9","..\/css\/backoffice\/blocks-integrations\/_panel-with-tab-container.scss":"76cc2f643ccb2f328c36bd335b39987e","..\/css\/backoffice\/blocks-integrations\/_panel-within-main-content.scss":"485a56a9cee1e7b5f9c5b32fae358cfe","..\/css\/backoffice\/blocks-integrations\/_panel-within-modal.scss":"19322d657236c17402a057298aa6e9e9","..\/css\/backoffice\/blocks-integrations\/_object-details-with-tab-container.scss":"e75862e46d156fbedc074ac7055813de","..\/css\/backoffice\/blocks-integrations\/_medallion-with-blocklist.scss":"4ebaef03be8ce96e18b98c6339f3b2e1","..\/css\/backoffice\/blocks-integrations\/_input-within-datatable.scss":"80678af7854753f4e4248bd26c72ecef","..\/css\/backoffice\/blocks-integrations\/_jquery-blockui-within-dialog.scss":"5544331904527d068b1bbb2ea340b679","..\/css\/backoffice\/blocks-integrations\/_jquery-blockui-within-datatable.scss":"b7c6739bc263a91779a636a6d188d511","..\/css\/backoffice\/themes\/_all.scss":"afefab135bcf21daffa3022ce4529a08","..\/css\/backoffice\/_fallback.scss":"26fa12345b0cbb992c8dfd08b5969cad","..\/css\/backoffice\/_shame.scss":"4ca49acf53df3f6f176a680172808a08"}}
=== SIGNATURE END ===
*/
/*!
@@ -568,7 +568,7 @@
.ibo-top-bar, .ibo-tab-container--extra-tabs-list {
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25), 0 1px 3px rgba(0, 0, 0, 0.12);
}
-ul.cke_autocomplete_panel, .ibo-quick-create--input.selectize-control.single .selectize-dropdown, .ibo-popover-menu, .ui-menu, .ui-multiselect-menu, .ibo-input-select-icon--menu, .graph_config .toolkit_menu.graph > ul > li ul, .ibo-activity-panel--filter-options {
+ul.cke_autocomplete_panel, .ibo-breadcrumbs--previous-items-list, .ibo-quick-create--input.selectize-control.single .selectize-dropdown, .ibo-popover-menu, .ui-menu, .ui-multiselect-menu, .ibo-input-select-icon--menu, .graph_config .toolkit_menu.graph > ul > li ul, .ibo-activity-panel--filter-options {
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1), 0 10px 20px rgba(0, 0, 0, 0.15);
}
/*!
@@ -592,7 +592,7 @@ ul.cke_autocomplete_panel, .ibo-quick-create--input.selectize-control.single .se
/* NOTE: Those helpers allow to easily use an icon from libs. like FontAwesome or FontCombodo within a CSS rule (eg. ::after) */
/* To use it, simply "@extend %fa-regular-base" in a rule and put the desired icon "content: '\f054'" */
/******************************************************************************************************************************/
-.dataTables_scrollHead thead tr th.sorting::after, .ibo-breadcrumbs--item:not(:last-child)::after, .ibo-prop--apply.ui-state-error:after, .ibo-sort-order::after {
+.dataTables_scrollHead thead tr th.sorting::after, .ibo-breadcrumbs--item:not(:last-child)::after, .ibo-breadcrumbs--previous-items-list-toggler:not(:last-child)::after, .ibo-prop--apply.ui-state-error:after, .ibo-sort-order::after {
font-family: "Font Awesome 5 Free";
font-weight: 900;
-webkit-font-smoothing: antialiased;
@@ -627,10 +627,10 @@ ul.cke_autocomplete_panel, .ibo-quick-create--input.selectize-control.single .se
*
* Usage: @extend %ibo-font-size-XXX;
*/
-.ibo-font-size-50, .ibo-activity-panel--tab-title-draft-indicator, .ibo-activity-entry--sub-information {
+.ibo-font-size-50, .ibo-field--fullscreen-toggler, .ibo-activity-panel--tab-title-draft-indicator, .ibo-activity-entry--sub-information {
font-size: 0.83rem;
}
-.ibo-font-size-100, .dataTables_paginate a.paginate_button, .ibo-quick-create--drawer, .ibo-global-search--drawer, .ibo-dashlet-header-dynamic--label, .ibo-datatable--toolbar, .ibo-field--fullscreen-toggler, .object-ref-icon.text_decoration, .object-ref-icon-disabled.text_decoration, .ibo-criterion-area, .ibo-dashboard-editor--properties table td .ibo-field, .ibo-dashboard--available-dashlets table td .ibo-field, .ibo-dashlet--properties table td .ibo-field, .ibo-dashboard-editor--properties table th .ibo-field, .ibo-dashboard--available-dashlets table th .ibo-field, .ibo-dashlet--properties table th .ibo-field {
+.ibo-font-size-100, .dataTables_paginate a.paginate_button, .ibo-quick-create--drawer, .ibo-global-search--drawer, .ibo-dashlet-header-dynamic--label, .ibo-datatable--toolbar, .object-ref-icon.text_decoration, .object-ref-icon-disabled.text_decoration, .ibo-criterion-area, .ibo-dashboard-editor--properties table td .ibo-field, .ibo-dashboard--available-dashlets table td .ibo-field, .ibo-dashlet--properties table td .ibo-field, .ibo-dashboard-editor--properties table th .ibo-field, .ibo-dashboard--available-dashlets table th .ibo-field, .ibo-dashlet--properties table th .ibo-field {
font-size: 1rem;
}
.ibo-font-size-150, .ibo-alert, .ibo-breadcrumbs--item-icon, .ibo-panel--subtitle, .ibo-panel--body, .ibo-dashlet-badge--action-create, .ibo-prop-header, .ibo-field, .sf_results_placeholder, .ibo-input-file-select--container .ibo-input-file-select .ibo-input-file-select--file-name, .ibo-tab-container--tabs-list, .ibo-dashboard-editor--properties-subtitle, .ibo-dashboard--available-dashlet--title, .ibo-dashlet--properties--title, .ibo-activity-entry--medallion {
@@ -801,7 +801,7 @@ ul.cke_autocomplete_panel, .ibo-quick-create--input.selectize-control.single .se
-moz-font-feature-settings: "lnum";
font-feature-settings: "lnum";
}
-.ibo-font-ral-med-100, .dataTable th, .dataTable td, .ibo-breadcrumbs--item, body {
+.ibo-font-ral-med-100, .dataTable th, .dataTable td, .ibo-breadcrumbs--item, .ibo-breadcrumbs--previous-items-list-toggler, .ibo-breadcrumbs--previous-item, body {
font-size: 1rem;
font-family: "Raleway", "sans-serif", "system-ui";
font-weight: 500;
@@ -1314,7 +1314,7 @@ body.ibo-has-fullscreen-descendant {
.ibo-has-fullscreen-descendant {
position: static !important;
overflow: visible !important;
- z-index: 9000 !important;
+ z-index: 1050 !important;
}
/* Used on a fullscreen element (see .ibo-has-fullscreen-descendant) */
.ibo-is-fullscreen {
@@ -1326,12 +1326,12 @@ body.ibo-has-fullscreen-descendant {
width: 100vw;
height: 100vh;
overflow: auto;
- z-index: 9000;
+ z-index: 1050;
}
/****************/
/* Text helpers */
/****************/
-.ibo-text-truncated-with-ellipsis, .ui-dialog .ui-dialog-title, .ibo-button--label, .ibo-breadcrumbs--item-label, .ibo-quick-create--compartment-element, .ibo-quick-create--compartment-results--element > .option, .ibo-global-search--compartment-element, .ibo-dashlet-badge--action-list-label, .attribute-set .attribute-set-item, .selectize-control.multi .selectize-input.ibo-input-set .attribute-set-item, .selectize-control.multi .ibo-quick-create--input.selectize-control.single .ibo-input-set.selectize-input.input-active .attribute-set-item, .ibo-quick-create--input.selectize-control.single .selectize-control.multi .ibo-input-set.selectize-input.input-active .attribute-set-item, .ibo-navigation-menu--menu-group-title, .ibo-navigation-menu--menu-nodes-title, .ibo-tab-container--tab-toggler, .ibo-tab-container--extra-tabs-list-toggler, .ibo-tab-container--tab-toggler-label, .ibo-tab-container--extra-tab-toggler, .ibo-activity-panel--tab-title-text, .ibo-activity-panel--filter-option {
+.ibo-text-truncated-with-ellipsis, .ui-dialog .ui-dialog-title, .ibo-button--label, .ibo-breadcrumbs--item-label, .ibo-quick-create--compartment-element, .ibo-quick-create--compartment-results--element > .option, .ibo-global-search--compartment-element, .ibo-dashlet-badge--action-list-label, .attribute-set .attribute-set-item, .selectize-control.multi .selectize-input.ibo-input-set .attribute-set-item, .selectize-control.multi .ibo-quick-create--input.selectize-control.single .ibo-input-set.selectize-input.input-active .attribute-set-item, .ibo-quick-create--input.selectize-control.single .selectize-control.multi .ibo-input-set.selectize-input.input-active .attribute-set-item, .ibo-navigation-menu--menu-group-title, .ibo-navigation-menu--menu-nodes-title, .ibo-top-bar--toolbar-dashboard-title, .ibo-tab-container--tab-toggler, .ibo-tab-container--extra-tabs-list-toggler, .ibo-tab-container--tab-toggler-label, .ibo-tab-container--extra-tab-toggler, .ibo-activity-panel--tab-title-text, .ibo-activity-panel--filter-option {
white-space: nowrap;
overflow-x: hidden;
text-overflow: ellipsis;
@@ -1361,9 +1361,10 @@ body.ibo-has-fullscreen-descendant {
.ibo-is-html-content table {
width: unset !important;
max-width: max-content;
+ /* Preserve original text color in code blocks, except for the Highlight.js blocks which have their own colors */
}
-.ibo-is-html-content code {
- color: initial;
+.ibo-is-html-content > code, .ibo-is-html-content :not(pre.hljs) code {
+ color: inherit;
}
/***********************************************************************/
/* Sticky headers */
@@ -11021,7 +11022,7 @@ button.ui-multiselect .fas {
}
.dataTables_scrollHead thead tr th.sorting::after {
position: absolute;
- right: 1em;
+ right: calc((12px - 8px) / 2);
content: "\f0dc";
opacity: 0.3;
line-height: inherit;
@@ -11142,6 +11143,12 @@ button.ui-multiselect .fas {
border: none;
background-color: transparent;
}
+.mfp-bg {
+ z-index: 1100;
+}
+.mfp-wrap {
+ z-index: 1101;
+}
/*!
* Copyright (C) 2013-2021 Combodo SARL
*
@@ -11884,6 +11891,7 @@ a:active {
box-shadow: inset 0px 2px 0px transparent;
}
.ibo-button, .ui-dialog .ui-button, .ui-datepicker-current, .ui-datepicker-close {
+ position: relative;
display: inline-block;
/* Used to allow truncated text on .ibo-button--label */
padding: 6px 9px;
@@ -12152,6 +12160,13 @@ a:active {
*
* You should have received a copy of the GNU Affero General Public License
*/
+.ibo-breadcrumbs {
+ position: relative;
+ margin-right: 16px;
+}
+.ibo-breadcrumbs.ibo-is-overflowing {
+ justify-content: right;
+}
.ibo-breadcrumbs * {
display: flex;
align-items: center;
@@ -12159,11 +12174,6 @@ a:active {
.ibo-breadcrumbs--item {
color: #404b5a;
}
-.ibo-breadcrumbs--item:not(:last-child)::after {
- content: '\f054';
- margin: 0 12px;
- color: #aebecd;
-}
.ibo-breadcrumbs--item:not(:last-child):hover .ibo-breadcrumbs--item-icon > * {
opacity: 1;
filter: none;
@@ -12187,6 +12197,37 @@ a:active {
/* Otherwise the "truncate" doesn't work with th default display: flex */
max-width: 100px;
}
+.ibo-breadcrumbs--item:not(:last-child)::after, .ibo-breadcrumbs--previous-items-list-toggler:not(:last-child)::after {
+ content: '\f054';
+ margin: 0 12px;
+ color: #aebecd;
+}
+.ibo-breadcrumbs--previous-items-list-toggler {
+ margin-right: 24px;
+ color: #6e7a8a !important;
+}
+.ibo-breadcrumbs--previous-items-list-toggler:not(:last-child)::after {
+ position: absolute;
+ /* To be outside of the button */
+ right: -24px;
+}
+.ibo-breadcrumbs--previous-items-list {
+ display: flex;
+ flex-direction: column;
+ align-items: stretch;
+ /* For the items to occupy the full width */
+ position: fixed;
+ top: 37px;
+ padding: 8px 0;
+ background-color: white;
+}
+.ibo-breadcrumbs--previous-item {
+ color: #404b5a;
+ padding: 12px 12px;
+}
+.ibo-breadcrumbs--previous-item .ibo-breadcrumbs--item-label {
+ max-width: 200px;
+}
/*!
* Copyright (C) 2013-2021 Combodo SARL
*
@@ -13820,11 +13861,16 @@ img.ibo-navigation-menu--notifications--item--image:not([src=""]) ~ i.ibo-naviga
/* Note: Some types of attribute must be excluding as it can alter their rendering */
}
.ibo-field:not([data-attribute-type="AttributeBlob"]):not([data-attribute-type="AttributeFile"]):not([data-attribute-type="AttributeImage"]):not([data-attribute-type="AttributeCustomFields"]):not(.ibo-input-file-select--container) {
- /* We need the rule to apply for the class and all its descendants */
+ /* We need the rule to apply for the class and all its descendants, hence the "&, & *" */
}
-.ibo-field:not([data-attribute-type="AttributeBlob"]):not([data-attribute-type="AttributeFile"]):not([data-attribute-type="AttributeImage"]):not([data-attribute-type="AttributeCustomFields"]):not(.ibo-input-file-select--container) .ibo-field--value * {
+.ibo-field:not([data-attribute-type="AttributeBlob"]):not([data-attribute-type="AttributeFile"]):not([data-attribute-type="AttributeImage"]):not([data-attribute-type="AttributeCustomFields"]):not(.ibo-input-file-select--container) .ibo-field--value, .ibo-field:not([data-attribute-type="AttributeBlob"]):not([data-attribute-type="AttributeFile"]):not([data-attribute-type="AttributeImage"]):not([data-attribute-type="AttributeCustomFields"]):not(.ibo-input-file-select--container) .ibo-field--value * {
word-break: break-word;
- white-space: pre-line;
+ white-space: inherit;
+ /* Here we don't put break-spaces as it would put ".ibo-field-small .ibo-field-value" on a new line due to the spaces/indentation of the HTML templates. For now we rather have this rule than diminish the templates readability/maintenability */
+}
+.ibo-field:not([data-attribute-type="AttributeBlob"]):not([data-attribute-type="AttributeFile"]):not([data-attribute-type="AttributeImage"]):not([data-attribute-type="AttributeCustomFields"]):not(.ibo-input-file-select--container).ibo-field-large .ibo-field--value, .ibo-field:not([data-attribute-type="AttributeBlob"]):not([data-attribute-type="AttributeFile"]):not([data-attribute-type="AttributeImage"]):not([data-attribute-type="AttributeCustomFields"]):not(.ibo-input-file-select--container).ibo-field-large .ibo-field--value * {
+ white-space: break-spaces;
+ /* For large fields we don't have the issue stated above */
}
.ibo-field ~ .ibo-field {
margin-top: 16px;
@@ -13837,7 +13883,6 @@ img.ibo-navigation-menu--notifications--item--image:not([src=""]) ~ i.ibo-naviga
position: relative;
/* Necessary for fullscreen toggler */
display: flex;
- justify-content: space-between;
align-items: center;
max-width: initial;
width: 100%;
@@ -13898,6 +13943,9 @@ img.ibo-navigation-menu--notifications--item--image:not([src=""]) ~ i.ibo-naviga
cursor: pointer;
color: #929fb1;
}
+.ibo-field--label-small .ibo-field--label {
+ width: 145px;
+}
.ibo-field--value {
display: table;
width: 100%;
@@ -15267,6 +15315,9 @@ img.ibo-navigation-menu--notifications--item--image:not([src=""]) ~ i.ibo-naviga
.ibo-top-bar--quick-actions {
margin-right: var(--ibo-top-bar--quick-actions--margin-right);
}
+.ibo-top-bar--toolbar-dashboard-title {
+ max-width: 350px;
+}
.ibo-top-bar--toolbar-dashboard-menu-toggler {
display: flex;
align-items: center;
@@ -15411,6 +15462,7 @@ input:checked + .slider:before {
}
.ibo-tab-container--tab-container {
padding: 32px 32px;
+ overflow-x: auto;
}
.ibo-is-scrollable .ibo-tab-container--tab-container--label {
display: block;
@@ -16090,6 +16142,12 @@ input:checked + .ibo-dashboard--slider:after {
}
.ibo-activity-panel--add-caselog-entry-button:hover {
color: white;
+ background-color: #ea7d1e;
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 3px 6px rgba(0, 0, 0, 0.15);
+}
+.ibo-activity-panel--add-caselog-entry-button:active {
+ color: white;
+ background-color: #c05621;
}
.ibo-activity-panel--add-caselog-entry-button.ibo-is-hidden {
display: none;
@@ -16290,15 +16348,6 @@ input:checked + .ibo-dashboard--slider:after {
/* So it occupies all the remaining width, which is easier for the user to click */
word-break: break-word;
/* To avoid content to overflow its container (typically very long URLs) */
- /* Avoid pre (code snippets) to overflow outside the entry */
-}
-.ibo-activity-entry--main-information-content pre {
- white-space: pre-line;
- /* Avoid table to overflow outside the entry (see N°2127) */
-}
-.ibo-activity-entry--main-information-content table {
- table-layout: fixed;
- width: 100%;
/* Specific hyperlink color */
}
.ibo-activity-entry--main-information-content a {
diff --git a/datamodels/2.x/itop-structure/precompiled-themes/test-red/main.css b/datamodels/2.x/itop-structure/precompiled-themes/test-red/main.css
index 6068aafc3..690d7436c 100644
--- a/datamodels/2.x/itop-structure/precompiled-themes/test-red/main.css
+++ b/datamodels/2.x/itop-structure/precompiled-themes/test-red/main.css
@@ -1,6 +1,6 @@
/*
=== SIGNATURE BEGIN ===
-{"variables":"2a94bae92147ed399031bbb5adccb219","stylesheets":{"fullmoon":"eac0b1faa59815a653e2d703d2d1a60b","environment-banner":"40e55ac55b4810827a8f500f428a982c"},"variable_imports":[],"images":{"images\/full-screen.png":"b541fadd3f1563856a4b44aeebd9d563","images\/tv-item.gif":"719fe2d4566108e73162fb8868d3778c","images\/tv-collapsable.gif":"63a3351ea0d580797c9b8c386aa4f48b","images\/tv-expandable.gif":"a2d1af4128e4a798a7f3390b12a28574","images\/tv-item-last.gif":"2ae7e1d9972ce71e5caa65a086bc5b7e","images\/tv-collapsable-last.gif":"71acaa9d7c2616e9e8b7131a75ca65da","images\/tv-expandable-last.gif":"9d51036b3a8102742709da66789fd0f7","images\/tv-folder.gif":"9f41e1454905fd7416f89aa4380a65e1","images\/tv-file.gif":"9ab0e28d85d8ab5eb954fc28f6ac1e80"},"utility_imports":{"..\/css\/backoffice\/utils\/_all.scss":"fd24aa07b40c91fdee1bbef15d8eacdd","..\/css\/backoffice\/utils\/variables\/_all.scss":"99c8ea993a9911a989c476405b5107e4","..\/css\/backoffice\/utils\/variables\/colors\/_all.scss":"0c9222dc5e4c46d897ba28e95946ad1b","..\/css\/backoffice\/utils\/variables\/colors\/_base-palette.scss":"2fbf92439664a9606ab84ae6c3a766f0","..\/css\/backoffice\/utils\/variables\/colors\/_semantic-palette.scss":"b0f9d89847d2ee9807fe143bdea5a6cd","..\/css\/backoffice\/utils\/variables\/colors\/_lifecycle-palette.scss":"ea06e857c5d9d442d0b3bdd66db10a7f","..\/css\/backoffice\/utils\/variables\/_border-radius.scss":"334102609a32eb78af0be65efddbe644","..\/css\/backoffice\/utils\/variables\/_depression.scss":"8870a4b14e08d8dbbc98ce833cc92faa","..\/css\/backoffice\/utils\/variables\/_elevation.scss":"09b58442b46fd3722ae9f9b9941504fb","..\/css\/backoffice\/utils\/variables\/_path.scss":"5127683357ba3375fadd33b0e5722908","..\/css\/backoffice\/utils\/variables\/_typography.scss":"15ff60a5e63801662c1e9312110efbc0","..\/css\/backoffice\/utils\/variables\/_base.scss":"16ec20f6e2b58426d269c339abd79779","..\/css\/backoffice\/utils\/mixins\/_all.scss":"afefab135bcf21daffa3022ce4529a08","..\/css\/backoffice\/utils\/helpers\/_all.scss":"5fa76756e8051e5e831f93465ea17e3a","..\/css\/backoffice\/utils\/helpers\/_border-radius.scss":"4e39edeb6ee7c4ea71f3abdda49256f3","..\/css\/backoffice\/utils\/helpers\/_color.scss":"36008fe20050d3cbb0c7d4502efa9c9b","..\/css\/backoffice\/utils\/helpers\/_depression.scss":"c2a55de471513d368b9ff1c1ca6a1f62","..\/css\/backoffice\/utils\/helpers\/_elevation.scss":"797cdb5c457e83f8e4109f69bda71626","..\/css\/backoffice\/utils\/helpers\/_font-icon.scss":"139adb6b6c29d5532891665adeec5de0","..\/css\/backoffice\/utils\/helpers\/_typography.scss":"a787c5027e4bda7c290807fc34ff117f","..\/css\/backoffice\/utils\/helpers\/_misc.scss":"5677fb2c128e1cec6d3b71d8ea4fa27b","..\/css\/backoffice\/utils\/helpers\/_class-icon.scss":"23ccce72157d44501c60c043c68bb685","..\/css\/backoffice\/vendors\/_all.scss":"914896e9ca0533bc8f3eec62b609fdac","..\/css\/backoffice\/vendors\/_bulma-variables-overload.scss":"8cdef4877d533f62c907ca0e19b95697","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/bulma.scss":"ac6337c71901f71b197a6628404a70fa","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/utilities\/_all.scss":"e374bc4ffb043b458d29e319b37fec03","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/utilities\/_initial-variables.scss":"527552844220a961a10b9af7b75add8b","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/utilities\/_functions.scss":"b39215085d7b424be74e05ae0c9a096b","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/utilities\/_animations.scss":"9eeec504cab94a45a597592020b7f0e7","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/utilities\/_mixins.scss":"6201fa9f37198a13291708785bed8c9c","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/utilities\/_controls.scss":"d2fd10c6dc0750b99b1f40952e8a4562","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/base\/_all.scss":"22cda0b152315361269f768c4a0e08d0","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/base\/_minireset.scss":"53ee547c0bff77ba3e6353def2f8729b","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/base\/_generic.scss":"c6a82d37120ed7d2dc7a64dccac78efd","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_all.scss":"c97722cd26e014967f6bff6133d43b44","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_box.scss":"d951bc383ad44b7497e9e9b1ab0dbe9c","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_button.scss":"7ab91729f48c3e49d0f6efafda6cbf6f","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_container.scss":"e4cbd75d93c57a919fd4c183ef80e4ba","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_content.scss":"4123c3d4d782cfbaaa8d4726f3a0425a","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_icon.scss":"b9900e2949eaa5a81a56ec382120cf39","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_image.scss":"4a1e324a1b4accad3e777f1bf0117089","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_notification.scss":"5573e46f01e45b1943a574ec1bdbe83c","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_progress.scss":"3700aa5f4e7b0f58b932e242b3bca415","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_table.scss":"4926ed56e8c53fd01543a66c009e0812","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_tag.scss":"b09d520b88f166e2847aed34f1f391e9","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_title.scss":"ecf774ebb3ddaa9097ea7fc66f416a0c","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_other.scss":"0e3571082a9629565dddb46712695756","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/form\/_all.scss":"414c51848e9f554070f97df2fe347a78","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/form\/_shared.scss":"73134a972f286fb24dc44e01ef0cf679","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/form\/_input-textarea.scss":"73e1d5c1673fdcd4c70d4a3125a3cdb5","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/form\/_checkbox-radio.scss":"c7430dbb855100ff193641bf31904ccb","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/form\/_select.scss":"c16a527986de7020f25e263943729937","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/form\/_file.scss":"c7a1351cfd94269350029a92dc7db83e","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/form\/_tools.scss":"c2bf0379d43ef365c981b38ef6bfff6c","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_all.scss":"398290ce7b00255b62e0b0c3ad6e6001","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_breadcrumb.scss":"7d90b4a6fae954f3e0c5e42e8c0c452d","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_card.scss":"16ea78a5288bd6ef6f665f1617b56702","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_dropdown.scss":"1a104de77315d37b7bdbd63eb3713be3","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_level.scss":"ce9549ec67ec27e93525de339d5bca87","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_media.scss":"ce5a90fcd100550bb754911ded93b055","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_menu.scss":"95b9cf3ffaec3122b790d86b0e27d299","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_message.scss":"0eff66899482f72804bf97b54e2a1e43","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_modal.scss":"b028228728cd5d50024ec4df9a8ecad3","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_navbar.scss":"8fb55c78c7bceee235db0ce27b344ada","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_pagination.scss":"6f4118ee0348e59cb1e4352d07a913bb","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_panel.scss":"c02cac8901cd7355b3e17ff832fcc59e","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_tabs.scss":"7b1d3b07dad7d06c9845bf244bceb985","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/grid\/_all.scss":"dff17fcb0a743bc82e2f130ae638baaa","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/grid\/_columns.scss":"52a2c66125f03f8dd707837b2ae67be5","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/grid\/_tiles.scss":"c3cbb200243be1702bf3f20fc003a133","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_all.scss":"cc385355f8f6ac3947c46ac83ffb9621","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_color.scss":"acbcbb2198ae9d0ee36a471d18b6d003","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_float.scss":"1e1656cbd9628e4889ed0c669ff8d552","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_other.scss":"8ea9052a4dff7ce651cb480ae76c3537","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_overflow.scss":"724297f6af3b8ca69fd8532d36992b1f","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_position.scss":"41d70d52c4d9078622e374f96f2266c5","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_spacing.scss":"d54ad9ee813ef6a96aeb2b6b39295909","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_typography.scss":"017c280d5e0d4fe90aa54067d483c965","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_visibility.scss":"4fa33c151d85b0dd99ed1bab93185461","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/layout\/_all.scss":"cd3a2d35edc7b6d00bc65585b2b35961","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/layout\/_hero.scss":"44f9f81a58020b964b856c914c327430","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/layout\/_section.scss":"eacc632700c2257f51bdcabe7dc13d04","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/layout\/_footer.scss":"fb4c389411fcff6aacabf5e4de0c403e","..\/css\/backoffice\/vendors\/_ckeditor.scss":"15d8aa07faaab9a7264ecaea4ce5ef9b","..\/css\/backoffice\/vendors\/_tippy.scss":"2863b585a42218efb785358d64a18a87","..\/css\/backoffice\/vendors\/_jqueryui.scss":"430cf2860a3177e3120524197c73ec13","..\/css\/backoffice\/vendors\/_jquery-multiselect.scss":"6bd5ada0bee44149af5cc79d7691bced","..\/css\/backoffice\/vendors\/_datatables.scss":"fb07288f9f7b2c0f9722332520a96ee9","..\/css\/backoffice\/vendors\/_jquery-treeview.scss":"d962e8db308512292d1ea04d777d3761","..\/css\/backoffice\/vendors\/_jquery-blockui.scss":"7fe1b1960c47c047b5c2d1d7b14432cf","..\/css\/backoffice\/base\/_all.scss":"5a90fbde32f512506f5822ae9f5e05df","..\/css\/backoffice\/base\/_base.scss":"4c10d3288d47df2b3240697bd430bd4d","..\/css\/backoffice\/base\/_typography.scss":"6eb47d257105bd09af2c4ef2355c6dda","..\/css\/backoffice\/components\/_all.scss":"9da643f1a527c85bdcdfdbd4f2c59bd2","..\/css\/backoffice\/components\/_alert.scss":"7fc9f0828154856191568b2a6ce6be68","..\/css\/backoffice\/components\/_button.scss":"3c40a0ce008cebaf48b2946f7d6b62a7","..\/css\/backoffice\/components\/_button-group.scss":"358f1096ffeb30e1d86a2df6c9cca347","..\/css\/backoffice\/components\/_breadcrumbs.scss":"5c09da570e7e95e581bbf6259136bc1b","..\/css\/backoffice\/components\/_quick-create.scss":"4bf080f5a61c47eaa267a135df3ad3b7","..\/css\/backoffice\/components\/_global-search.scss":"2ab70baf1bfa91865f3f0237d43095ae","..\/css\/backoffice\/components\/popover-menu\/_popover-menu.scss":"7bf9c17f1879407cb89fd618fece15ab","..\/css\/backoffice\/components\/popover-menu\/_popover-menu-item.scss":"600dc940298af35514f08a580e2f4b1b","..\/css\/backoffice\/components\/_newsroom-menu.scss":"13572143d252f851a0f353ad4bef2e50","..\/css\/backoffice\/components\/_panel.scss":"2b50ed7e4d0a4ccc363a6b2933a299d6","..\/css\/backoffice\/components\/_collapsible-section.scss":"f7257e1ef336c9742457fc079ad2ca01","..\/css\/backoffice\/components\/_modal.scss":"d41d8cd98f00b204e9800998ecf8427e","..\/css\/backoffice\/components\/dashlet\/_all.scss":"c9dd70be9f33b53701c6afc7a4749190","..\/css\/backoffice\/components\/dashlet\/_dashlet.scss":"5ab24fb841936a545b0859a4637508ec","..\/css\/backoffice\/components\/dashlet\/_dashlet-badge.scss":"d0ab5c7d780e33cc0678ec6b62397da9","..\/css\/backoffice\/components\/dashlet\/_dashlet-header-static.scss":"746ebb209bcf98ff745d2a2844399b48","..\/css\/backoffice\/components\/dashlet\/_dashlet-header-dynamic.scss":"460760cb90b5dad96de59b7c28249637","..\/css\/backoffice\/components\/input\/_all.scss":"c8bceeb98cc73d95740ae86aaf504fcb","..\/css\/backoffice\/components\/input\/_input.scss":"489f58e58ebf24722a312fae9cc4e592","..\/css\/backoffice\/components\/input\/_input-checkbox.scss":"ad1644e915cffbee9b94012a8a17949c","..\/css\/backoffice\/components\/input\/_input-date.scss":"9322d73459bd5e9ddc9e830eb92a6c1b","..\/css\/backoffice\/components\/input\/_input-datetime.scss":"0ae49bbefa821b2ef300fa79bbe2eb1e","..\/css\/backoffice\/components\/input\/_input-duration.scss":"6d12508069ff3ca94bfa142c4228f2cb","..\/css\/backoffice\/components\/input\/_input-image.scss":"fae0b98d530e4929f22e16bd5c7adaf1","..\/css\/backoffice\/components\/input\/_input-select.scss":"3ab8ee0ebe86d9ccb0ba7031a6205641","..\/css\/backoffice\/components\/input\/_input-select-icon.scss":"7356bd623ae91ac9c3df1bc2c52061ef","..\/css\/backoffice\/components\/input\/_input-string.scss":"d41d8cd98f00b204e9800998ecf8427e","..\/css\/backoffice\/components\/input\/_input-set.scss":"1b17f6ca73bf1ebaa0e0d8c7ddc7e270","..\/css\/backoffice\/components\/input\/_input-text.scss":"4c9a105fdc075fe5e554374f59b7ce5d","..\/css\/backoffice\/components\/_pill.scss":"53c3964c01406435002eafe4fd282d16","..\/css\/backoffice\/components\/_prop.scss":"0966577061f5baec0e18005a6312d0d6","..\/css\/backoffice\/components\/_title.scss":"9c14ded80108baa16103656d83c0ed86","..\/css\/backoffice\/components\/_datatable.scss":"f9cd9a6c4584b11d99cf24d60856aa72","..\/css\/backoffice\/components\/_form.scss":"d5d39f9c0545b33c8055d62ef6fb5e3c","..\/css\/backoffice\/components\/_fieldset.scss":"c7ea22d096b2d42c0c7771d40ca8a2f8","..\/css\/backoffice\/components\/_field.scss":"353e92834b1d6a67c35e805d7cfccadb","..\/css\/backoffice\/components\/toolbar\/_all.scss":"12e9e9094b4f7d0ccbb4428383b6e728","..\/css\/backoffice\/components\/toolbar\/_toolbar.scss":"e7078bb37ef355ba217c1a8a9f587e1a","..\/css\/backoffice\/components\/toolbar\/_toolbar-spacer.scss":"1fcdd603b20e5848235e930014887d73","..\/css\/backoffice\/components\/toolbar\/_separator.scss":"8ca10dcc3f1d469623d0538748acd4d5","..\/css\/backoffice\/components\/_richtext.scss":"361c5ded07c8e835619bf45e10f7a602","..\/css\/backoffice\/components\/_formtable.scss":"94dc266452aeb26f6525a24f84e5e383","..\/css\/backoffice\/components\/_formtablerow.scss":"94dc266452aeb26f6525a24f84e5e383","..\/css\/backoffice\/components\/_search-form.scss":"d362d579f17c4164b6cc3ebe0c3f2859","..\/css\/backoffice\/components\/_field-badge.scss":"6b17d29444a892aa1ca6b044abd8d7a4","..\/css\/backoffice\/components\/_file-select.scss":"5684f09d237002f6342ca1013b3a0344","..\/css\/backoffice\/components\/_medallion-icon.scss":"ccff061880095b8f9f40412293ac9f76","..\/css\/backoffice\/layout\/_all.scss":"0740142302cd8e2e19139b2eaf6142e9","..\/css\/backoffice\/layout\/_navigation-menu.scss":"75a57f14a17eadc4e65ffb0976dfe114","..\/css\/backoffice\/layout\/_top-bar.scss":"6b5b96df40001d1bbb14d391a0d984ef","..\/css\/backoffice\/layout\/_content.scss":"86a5f6b2f2d1a7a9b088ef59c66e03c7","..\/css\/backoffice\/layout\/tab-container\/_tab-container.scss":"5ec9f1a4eb3df35a787b127d41d44021","..\/css\/backoffice\/layout\/tab-container\/_tab.scss":"742392bfd94a5a115bc144ea9aa4ff3f","..\/css\/backoffice\/layout\/multi-column\/_multi-column.scss":"e99d4afb40886d6d942c5020b288b1b8","..\/css\/backoffice\/layout\/multi-column\/_column.scss":"699fdf1bd2b84325cc27792e60463ad7","..\/css\/backoffice\/layout\/dashboard\/_all.scss":"0caa6d19d2a52396cbe3752d5bfcd6da","..\/css\/backoffice\/layout\/dashboard\/_dashboard.scss":"7c4368998b0a2b670913df7c56118edf","..\/css\/backoffice\/layout\/dashboard\/_dashboard-editor.scss":"1eb860fd891ae8b78c956cf64286725f","..\/css\/backoffice\/layout\/wizard-container\/_wizard-container.scss":"6397850c8975248830a1abf177e13023","..\/css\/backoffice\/layout\/object\/_object-details.scss":"9000dd0ea72345d8ee89b3a3fe8a5ee2","..\/css\/backoffice\/layout\/activity-panel\/_all.scss":"e9a1eae6d8be777f838919d22e5e3e45","..\/css\/backoffice\/layout\/activity-panel\/_activity-panel.scss":"045fa456e0b2731dd378c503678ce1ef","..\/css\/backoffice\/layout\/activity-panel\/_caselog-entry-form.scss":"bb6d49f017e9cf73b3e4ec3f7e5f1637","..\/css\/backoffice\/layout\/activity-panel\/_activity-entry.scss":"2480704fa561c8ecd22b914c2defefcf","..\/css\/backoffice\/layout\/activity-panel\/_caselog-entry.scss":"8b6fb224c4a598bd8987e5f8e32e6405","..\/css\/backoffice\/layout\/activity-panel\/_transition-entry.scss":"054a4415337e48a907cd9682e2f1ca05","..\/css\/backoffice\/layout\/activity-panel\/_edits-entry.scss":"9463d0a303d9be3a28b5feacca662b9c","..\/css\/backoffice\/layout\/activity-panel\/_notification-entry.scss":"76b7431c8953ff7db5c1a2c4218e00d1","..\/css\/backoffice\/application\/_all.scss":"c195d8a4e036571ec39869febd886bab","..\/css\/backoffice\/application\/display-block\/_all.scss":"c04b4c8f9a4f8f6ce0a7397083abc501","..\/css\/backoffice\/application\/display-block\/_block-csv.scss":"535330e4684ddacf9c67357fb21cf70d","..\/css\/backoffice\/application\/display-block\/_block-list.scss":"1af6f750ec7c9e4ff9bb02e7be63cb25","..\/css\/backoffice\/application\/tabular-fields\/_all.scss":"4f6a05c7f41b0bfd60dd91b442ff95a9","..\/css\/backoffice\/application\/tabular-fields\/_tabular-fields-selector.scss":"7bd19292fd0a4801612b9889ba7480e4","..\/css\/backoffice\/pages\/_all.scss":"84b5f499283c2d0ad35999d77d2d24ac","..\/css\/backoffice\/pages\/_base.scss":"0ddd68ed0a5c8e3a1d979f7b763785cc","..\/css\/backoffice\/pages\/_preferences.scss":"4b94210a910e9c1df1fcd93c02916f36","..\/css\/backoffice\/pages\/_attachments.scss":"3c1a03b53ed9edbdd1bf94b215536d3a","..\/css\/backoffice\/pages\/_impact-analysis.scss":"4d4af96d84104680ebd0112d2d5eb92d","..\/css\/backoffice\/pages\/_audit.scss":"100f725cb6f0b801fda8243cf9342f26","..\/css\/backoffice\/pages\/_data-synchro.scss":"0c0cc941c901d5ffa4dc0845e6f11d6c","..\/css\/backoffice\/pages\/_datamodel-viewer.scss":"e11bb77c712cbbaa22a11ed24949b239","..\/css\/backoffice\/pages\/_csv-import.scss":"c32a07561c1a90ff754b7da2181b7020","..\/css\/backoffice\/pages\/_global-search.scss":"da4695e624d3a95e3b1c9035b4529a20","..\/css\/backoffice\/pages\/_welcome-popup.scss":"bd2b7cb8e148fc5e469e553e596001e4","..\/css\/backoffice\/blocks-integrations\/_all.scss":"dab5c6553d9933024df8bac361321b6d","..\/css\/backoffice\/blocks-integrations\/_dashlet-within-dashboard.scss":"b9c1693a941732c66a9fb92e51609fc7","..\/css\/backoffice\/blocks-integrations\/_add-to-dashboard.scss":"3ecdea8473b6014dd4e73f98e6eaa5b1","..\/css\/backoffice\/blocks-integrations\/_caselog-entry-form-within-activity-panel.scss":"0ad42544e79da33693facb23eae57b9e","..\/css\/backoffice\/blocks-integrations\/_panel-with-datatable.scss":"a96f57fa925f87f0c17eacec6ba98fb9","..\/css\/backoffice\/blocks-integrations\/_panel-with-tab-container.scss":"76cc2f643ccb2f328c36bd335b39987e","..\/css\/backoffice\/blocks-integrations\/_panel-within-main-content.scss":"485a56a9cee1e7b5f9c5b32fae358cfe","..\/css\/backoffice\/blocks-integrations\/_panel-within-modal.scss":"19322d657236c17402a057298aa6e9e9","..\/css\/backoffice\/blocks-integrations\/_object-details-with-tab-container.scss":"e75862e46d156fbedc074ac7055813de","..\/css\/backoffice\/blocks-integrations\/_medallion-with-blocklist.scss":"4ebaef03be8ce96e18b98c6339f3b2e1","..\/css\/backoffice\/blocks-integrations\/_input-within-datatable.scss":"80678af7854753f4e4248bd26c72ecef","..\/css\/backoffice\/blocks-integrations\/_jquery-blockui-within-dialog.scss":"5544331904527d068b1bbb2ea340b679","..\/css\/backoffice\/blocks-integrations\/_jquery-blockui-within-datatable.scss":"b7c6739bc263a91779a636a6d188d511","..\/css\/backoffice\/themes\/_all.scss":"afefab135bcf21daffa3022ce4529a08","..\/css\/backoffice\/_fallback.scss":"26fa12345b0cbb992c8dfd08b5969cad","..\/css\/backoffice\/_shame.scss":"4ca49acf53df3f6f176a680172808a08"}}
+{"variables":"2a94bae92147ed399031bbb5adccb219","stylesheets":{"fullmoon":"eac0b1faa59815a653e2d703d2d1a60b","environment-banner":"40e55ac55b4810827a8f500f428a982c"},"variable_imports":[],"images":{"images\/full-screen.png":"b541fadd3f1563856a4b44aeebd9d563","images\/tv-item.gif":"719fe2d4566108e73162fb8868d3778c","images\/tv-collapsable.gif":"63a3351ea0d580797c9b8c386aa4f48b","images\/tv-expandable.gif":"a2d1af4128e4a798a7f3390b12a28574","images\/tv-item-last.gif":"2ae7e1d9972ce71e5caa65a086bc5b7e","images\/tv-collapsable-last.gif":"71acaa9d7c2616e9e8b7131a75ca65da","images\/tv-expandable-last.gif":"9d51036b3a8102742709da66789fd0f7","images\/tv-folder.gif":"9f41e1454905fd7416f89aa4380a65e1","images\/tv-file.gif":"9ab0e28d85d8ab5eb954fc28f6ac1e80"},"utility_imports":{"..\/css\/backoffice\/utils\/_all.scss":"fd24aa07b40c91fdee1bbef15d8eacdd","..\/css\/backoffice\/utils\/variables\/_all.scss":"99c8ea993a9911a989c476405b5107e4","..\/css\/backoffice\/utils\/variables\/colors\/_all.scss":"0c9222dc5e4c46d897ba28e95946ad1b","..\/css\/backoffice\/utils\/variables\/colors\/_base-palette.scss":"2fbf92439664a9606ab84ae6c3a766f0","..\/css\/backoffice\/utils\/variables\/colors\/_semantic-palette.scss":"b0f9d89847d2ee9807fe143bdea5a6cd","..\/css\/backoffice\/utils\/variables\/colors\/_lifecycle-palette.scss":"ea06e857c5d9d442d0b3bdd66db10a7f","..\/css\/backoffice\/utils\/variables\/_border-radius.scss":"334102609a32eb78af0be65efddbe644","..\/css\/backoffice\/utils\/variables\/_depression.scss":"8870a4b14e08d8dbbc98ce833cc92faa","..\/css\/backoffice\/utils\/variables\/_elevation.scss":"09b58442b46fd3722ae9f9b9941504fb","..\/css\/backoffice\/utils\/variables\/_path.scss":"5127683357ba3375fadd33b0e5722908","..\/css\/backoffice\/utils\/variables\/_typography.scss":"15ff60a5e63801662c1e9312110efbc0","..\/css\/backoffice\/utils\/variables\/_base.scss":"16ec20f6e2b58426d269c339abd79779","..\/css\/backoffice\/utils\/mixins\/_all.scss":"afefab135bcf21daffa3022ce4529a08","..\/css\/backoffice\/utils\/helpers\/_all.scss":"5fa76756e8051e5e831f93465ea17e3a","..\/css\/backoffice\/utils\/helpers\/_border-radius.scss":"4e39edeb6ee7c4ea71f3abdda49256f3","..\/css\/backoffice\/utils\/helpers\/_color.scss":"36008fe20050d3cbb0c7d4502efa9c9b","..\/css\/backoffice\/utils\/helpers\/_depression.scss":"c2a55de471513d368b9ff1c1ca6a1f62","..\/css\/backoffice\/utils\/helpers\/_elevation.scss":"797cdb5c457e83f8e4109f69bda71626","..\/css\/backoffice\/utils\/helpers\/_font-icon.scss":"139adb6b6c29d5532891665adeec5de0","..\/css\/backoffice\/utils\/helpers\/_typography.scss":"a787c5027e4bda7c290807fc34ff117f","..\/css\/backoffice\/utils\/helpers\/_misc.scss":"71722d10f864f650f492521fa4702e65","..\/css\/backoffice\/utils\/helpers\/_class-icon.scss":"39b50a92777a3894e6775424dc961ff7","..\/css\/backoffice\/vendors\/_all.scss":"8eca342189ea854da343443206d5d936","..\/css\/backoffice\/vendors\/_bulma-variables-overload.scss":"8cdef4877d533f62c907ca0e19b95697","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/bulma.scss":"ac6337c71901f71b197a6628404a70fa","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/utilities\/_all.scss":"e374bc4ffb043b458d29e319b37fec03","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/utilities\/_initial-variables.scss":"527552844220a961a10b9af7b75add8b","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/utilities\/_functions.scss":"b39215085d7b424be74e05ae0c9a096b","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/utilities\/_animations.scss":"9eeec504cab94a45a597592020b7f0e7","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/utilities\/_mixins.scss":"6201fa9f37198a13291708785bed8c9c","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/utilities\/_controls.scss":"d2fd10c6dc0750b99b1f40952e8a4562","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/base\/_all.scss":"22cda0b152315361269f768c4a0e08d0","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/base\/_minireset.scss":"53ee547c0bff77ba3e6353def2f8729b","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/base\/_generic.scss":"c6a82d37120ed7d2dc7a64dccac78efd","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_all.scss":"c97722cd26e014967f6bff6133d43b44","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_box.scss":"d951bc383ad44b7497e9e9b1ab0dbe9c","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_button.scss":"7ab91729f48c3e49d0f6efafda6cbf6f","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_container.scss":"e4cbd75d93c57a919fd4c183ef80e4ba","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_content.scss":"4123c3d4d782cfbaaa8d4726f3a0425a","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_icon.scss":"b9900e2949eaa5a81a56ec382120cf39","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_image.scss":"4a1e324a1b4accad3e777f1bf0117089","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_notification.scss":"5573e46f01e45b1943a574ec1bdbe83c","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_progress.scss":"3700aa5f4e7b0f58b932e242b3bca415","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_table.scss":"4926ed56e8c53fd01543a66c009e0812","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_tag.scss":"b09d520b88f166e2847aed34f1f391e9","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_title.scss":"ecf774ebb3ddaa9097ea7fc66f416a0c","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/elements\/_other.scss":"0e3571082a9629565dddb46712695756","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/form\/_all.scss":"414c51848e9f554070f97df2fe347a78","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/form\/_shared.scss":"73134a972f286fb24dc44e01ef0cf679","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/form\/_input-textarea.scss":"73e1d5c1673fdcd4c70d4a3125a3cdb5","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/form\/_checkbox-radio.scss":"c7430dbb855100ff193641bf31904ccb","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/form\/_select.scss":"c16a527986de7020f25e263943729937","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/form\/_file.scss":"c7a1351cfd94269350029a92dc7db83e","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/form\/_tools.scss":"c2bf0379d43ef365c981b38ef6bfff6c","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_all.scss":"398290ce7b00255b62e0b0c3ad6e6001","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_breadcrumb.scss":"7d90b4a6fae954f3e0c5e42e8c0c452d","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_card.scss":"16ea78a5288bd6ef6f665f1617b56702","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_dropdown.scss":"1a104de77315d37b7bdbd63eb3713be3","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_level.scss":"ce9549ec67ec27e93525de339d5bca87","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_media.scss":"ce5a90fcd100550bb754911ded93b055","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_menu.scss":"95b9cf3ffaec3122b790d86b0e27d299","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_message.scss":"0eff66899482f72804bf97b54e2a1e43","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_modal.scss":"b028228728cd5d50024ec4df9a8ecad3","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_navbar.scss":"8fb55c78c7bceee235db0ce27b344ada","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_pagination.scss":"6f4118ee0348e59cb1e4352d07a913bb","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_panel.scss":"c02cac8901cd7355b3e17ff832fcc59e","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/components\/_tabs.scss":"7b1d3b07dad7d06c9845bf244bceb985","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/grid\/_all.scss":"dff17fcb0a743bc82e2f130ae638baaa","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/grid\/_columns.scss":"52a2c66125f03f8dd707837b2ae67be5","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/grid\/_tiles.scss":"c3cbb200243be1702bf3f20fc003a133","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_all.scss":"cc385355f8f6ac3947c46ac83ffb9621","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_color.scss":"acbcbb2198ae9d0ee36a471d18b6d003","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_float.scss":"1e1656cbd9628e4889ed0c669ff8d552","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_other.scss":"8ea9052a4dff7ce651cb480ae76c3537","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_overflow.scss":"724297f6af3b8ca69fd8532d36992b1f","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_position.scss":"41d70d52c4d9078622e374f96f2266c5","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_spacing.scss":"d54ad9ee813ef6a96aeb2b6b39295909","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_typography.scss":"017c280d5e0d4fe90aa54067d483c965","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/helpers\/_visibility.scss":"4fa33c151d85b0dd99ed1bab93185461","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/layout\/_all.scss":"cd3a2d35edc7b6d00bc65585b2b35961","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/layout\/_hero.scss":"44f9f81a58020b964b856c914c327430","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/layout\/_section.scss":"eacc632700c2257f51bdcabe7dc13d04","..\/css\/backoffice\/vendors\/..\/..\/..\/node_modules\/bulma-scss\/layout\/_footer.scss":"fb4c389411fcff6aacabf5e4de0c403e","..\/css\/backoffice\/vendors\/_ckeditor.scss":"15d8aa07faaab9a7264ecaea4ce5ef9b","..\/css\/backoffice\/vendors\/_tippy.scss":"2863b585a42218efb785358d64a18a87","..\/css\/backoffice\/vendors\/_jqueryui.scss":"430cf2860a3177e3120524197c73ec13","..\/css\/backoffice\/vendors\/_jquery-multiselect.scss":"6bd5ada0bee44149af5cc79d7691bced","..\/css\/backoffice\/vendors\/_datatables.scss":"bd40d11aa57d12e5bf982f79c7149bc2","..\/css\/backoffice\/vendors\/_jquery-treeview.scss":"d962e8db308512292d1ea04d777d3761","..\/css\/backoffice\/vendors\/_jquery-blockui.scss":"7fe1b1960c47c047b5c2d1d7b14432cf","..\/css\/backoffice\/vendors\/_magnific-popup.scss":"a951b22a2b246a06fa7c1a0db77aa575","..\/css\/backoffice\/base\/_all.scss":"5a90fbde32f512506f5822ae9f5e05df","..\/css\/backoffice\/base\/_base.scss":"4c10d3288d47df2b3240697bd430bd4d","..\/css\/backoffice\/base\/_typography.scss":"6eb47d257105bd09af2c4ef2355c6dda","..\/css\/backoffice\/components\/_all.scss":"9da643f1a527c85bdcdfdbd4f2c59bd2","..\/css\/backoffice\/components\/_alert.scss":"7fc9f0828154856191568b2a6ce6be68","..\/css\/backoffice\/components\/_button.scss":"426b3262d602eede858dd2b332579714","..\/css\/backoffice\/components\/_button-group.scss":"358f1096ffeb30e1d86a2df6c9cca347","..\/css\/backoffice\/components\/_breadcrumbs.scss":"fd8588cfa2049dc079ab55c3d2a4c59a","..\/css\/backoffice\/components\/_quick-create.scss":"4bf080f5a61c47eaa267a135df3ad3b7","..\/css\/backoffice\/components\/_global-search.scss":"2ab70baf1bfa91865f3f0237d43095ae","..\/css\/backoffice\/components\/popover-menu\/_popover-menu.scss":"7bf9c17f1879407cb89fd618fece15ab","..\/css\/backoffice\/components\/popover-menu\/_popover-menu-item.scss":"600dc940298af35514f08a580e2f4b1b","..\/css\/backoffice\/components\/_newsroom-menu.scss":"13572143d252f851a0f353ad4bef2e50","..\/css\/backoffice\/components\/_panel.scss":"2b50ed7e4d0a4ccc363a6b2933a299d6","..\/css\/backoffice\/components\/_collapsible-section.scss":"f7257e1ef336c9742457fc079ad2ca01","..\/css\/backoffice\/components\/_modal.scss":"d41d8cd98f00b204e9800998ecf8427e","..\/css\/backoffice\/components\/dashlet\/_all.scss":"c9dd70be9f33b53701c6afc7a4749190","..\/css\/backoffice\/components\/dashlet\/_dashlet.scss":"5ab24fb841936a545b0859a4637508ec","..\/css\/backoffice\/components\/dashlet\/_dashlet-badge.scss":"d0ab5c7d780e33cc0678ec6b62397da9","..\/css\/backoffice\/components\/dashlet\/_dashlet-header-static.scss":"746ebb209bcf98ff745d2a2844399b48","..\/css\/backoffice\/components\/dashlet\/_dashlet-header-dynamic.scss":"460760cb90b5dad96de59b7c28249637","..\/css\/backoffice\/components\/input\/_all.scss":"c8bceeb98cc73d95740ae86aaf504fcb","..\/css\/backoffice\/components\/input\/_input.scss":"489f58e58ebf24722a312fae9cc4e592","..\/css\/backoffice\/components\/input\/_input-checkbox.scss":"ad1644e915cffbee9b94012a8a17949c","..\/css\/backoffice\/components\/input\/_input-date.scss":"9322d73459bd5e9ddc9e830eb92a6c1b","..\/css\/backoffice\/components\/input\/_input-datetime.scss":"0ae49bbefa821b2ef300fa79bbe2eb1e","..\/css\/backoffice\/components\/input\/_input-duration.scss":"6d12508069ff3ca94bfa142c4228f2cb","..\/css\/backoffice\/components\/input\/_input-image.scss":"fae0b98d530e4929f22e16bd5c7adaf1","..\/css\/backoffice\/components\/input\/_input-select.scss":"3ab8ee0ebe86d9ccb0ba7031a6205641","..\/css\/backoffice\/components\/input\/_input-select-icon.scss":"7356bd623ae91ac9c3df1bc2c52061ef","..\/css\/backoffice\/components\/input\/_input-string.scss":"d41d8cd98f00b204e9800998ecf8427e","..\/css\/backoffice\/components\/input\/_input-set.scss":"1b17f6ca73bf1ebaa0e0d8c7ddc7e270","..\/css\/backoffice\/components\/input\/_input-text.scss":"4c9a105fdc075fe5e554374f59b7ce5d","..\/css\/backoffice\/components\/_pill.scss":"53c3964c01406435002eafe4fd282d16","..\/css\/backoffice\/components\/_prop.scss":"0966577061f5baec0e18005a6312d0d6","..\/css\/backoffice\/components\/_title.scss":"9c14ded80108baa16103656d83c0ed86","..\/css\/backoffice\/components\/_datatable.scss":"f9cd9a6c4584b11d99cf24d60856aa72","..\/css\/backoffice\/components\/_form.scss":"d5d39f9c0545b33c8055d62ef6fb5e3c","..\/css\/backoffice\/components\/_fieldset.scss":"c7ea22d096b2d42c0c7771d40ca8a2f8","..\/css\/backoffice\/components\/_field.scss":"9191ce06fafa4a4696b418f6d5d75d6c","..\/css\/backoffice\/components\/toolbar\/_all.scss":"12e9e9094b4f7d0ccbb4428383b6e728","..\/css\/backoffice\/components\/toolbar\/_toolbar.scss":"e7078bb37ef355ba217c1a8a9f587e1a","..\/css\/backoffice\/components\/toolbar\/_toolbar-spacer.scss":"1fcdd603b20e5848235e930014887d73","..\/css\/backoffice\/components\/toolbar\/_separator.scss":"8ca10dcc3f1d469623d0538748acd4d5","..\/css\/backoffice\/components\/_richtext.scss":"361c5ded07c8e835619bf45e10f7a602","..\/css\/backoffice\/components\/_formtable.scss":"94dc266452aeb26f6525a24f84e5e383","..\/css\/backoffice\/components\/_formtablerow.scss":"94dc266452aeb26f6525a24f84e5e383","..\/css\/backoffice\/components\/_search-form.scss":"d362d579f17c4164b6cc3ebe0c3f2859","..\/css\/backoffice\/components\/_field-badge.scss":"6b17d29444a892aa1ca6b044abd8d7a4","..\/css\/backoffice\/components\/_file-select.scss":"5684f09d237002f6342ca1013b3a0344","..\/css\/backoffice\/components\/_medallion-icon.scss":"ccff061880095b8f9f40412293ac9f76","..\/css\/backoffice\/layout\/_all.scss":"0740142302cd8e2e19139b2eaf6142e9","..\/css\/backoffice\/layout\/_navigation-menu.scss":"75a57f14a17eadc4e65ffb0976dfe114","..\/css\/backoffice\/layout\/_top-bar.scss":"e7a56c70f001d99f84014bd8ef856890","..\/css\/backoffice\/layout\/_content.scss":"86a5f6b2f2d1a7a9b088ef59c66e03c7","..\/css\/backoffice\/layout\/tab-container\/_tab-container.scss":"3b8e12485f37dcef7e8bbad994c93a48","..\/css\/backoffice\/layout\/tab-container\/_tab.scss":"742392bfd94a5a115bc144ea9aa4ff3f","..\/css\/backoffice\/layout\/multi-column\/_multi-column.scss":"e99d4afb40886d6d942c5020b288b1b8","..\/css\/backoffice\/layout\/multi-column\/_column.scss":"699fdf1bd2b84325cc27792e60463ad7","..\/css\/backoffice\/layout\/dashboard\/_all.scss":"0caa6d19d2a52396cbe3752d5bfcd6da","..\/css\/backoffice\/layout\/dashboard\/_dashboard.scss":"7c4368998b0a2b670913df7c56118edf","..\/css\/backoffice\/layout\/dashboard\/_dashboard-editor.scss":"1eb860fd891ae8b78c956cf64286725f","..\/css\/backoffice\/layout\/wizard-container\/_wizard-container.scss":"6397850c8975248830a1abf177e13023","..\/css\/backoffice\/layout\/object\/_object-details.scss":"9000dd0ea72345d8ee89b3a3fe8a5ee2","..\/css\/backoffice\/layout\/activity-panel\/_all.scss":"e9a1eae6d8be777f838919d22e5e3e45","..\/css\/backoffice\/layout\/activity-panel\/_activity-panel.scss":"c0a994067cb0b90cac4b74d628747cf5","..\/css\/backoffice\/layout\/activity-panel\/_caselog-entry-form.scss":"bb6d49f017e9cf73b3e4ec3f7e5f1637","..\/css\/backoffice\/layout\/activity-panel\/_activity-entry.scss":"933a22f7c6b3fb1605ef1afbeb06c232","..\/css\/backoffice\/layout\/activity-panel\/_caselog-entry.scss":"8b6fb224c4a598bd8987e5f8e32e6405","..\/css\/backoffice\/layout\/activity-panel\/_transition-entry.scss":"054a4415337e48a907cd9682e2f1ca05","..\/css\/backoffice\/layout\/activity-panel\/_edits-entry.scss":"9463d0a303d9be3a28b5feacca662b9c","..\/css\/backoffice\/layout\/activity-panel\/_notification-entry.scss":"76b7431c8953ff7db5c1a2c4218e00d1","..\/css\/backoffice\/application\/_all.scss":"c195d8a4e036571ec39869febd886bab","..\/css\/backoffice\/application\/display-block\/_all.scss":"c04b4c8f9a4f8f6ce0a7397083abc501","..\/css\/backoffice\/application\/display-block\/_block-csv.scss":"535330e4684ddacf9c67357fb21cf70d","..\/css\/backoffice\/application\/display-block\/_block-list.scss":"1af6f750ec7c9e4ff9bb02e7be63cb25","..\/css\/backoffice\/application\/tabular-fields\/_all.scss":"4f6a05c7f41b0bfd60dd91b442ff95a9","..\/css\/backoffice\/application\/tabular-fields\/_tabular-fields-selector.scss":"7bd19292fd0a4801612b9889ba7480e4","..\/css\/backoffice\/pages\/_all.scss":"84b5f499283c2d0ad35999d77d2d24ac","..\/css\/backoffice\/pages\/_base.scss":"0ddd68ed0a5c8e3a1d979f7b763785cc","..\/css\/backoffice\/pages\/_preferences.scss":"4b94210a910e9c1df1fcd93c02916f36","..\/css\/backoffice\/pages\/_attachments.scss":"3c1a03b53ed9edbdd1bf94b215536d3a","..\/css\/backoffice\/pages\/_impact-analysis.scss":"4d4af96d84104680ebd0112d2d5eb92d","..\/css\/backoffice\/pages\/_audit.scss":"100f725cb6f0b801fda8243cf9342f26","..\/css\/backoffice\/pages\/_data-synchro.scss":"0c0cc941c901d5ffa4dc0845e6f11d6c","..\/css\/backoffice\/pages\/_datamodel-viewer.scss":"e11bb77c712cbbaa22a11ed24949b239","..\/css\/backoffice\/pages\/_csv-import.scss":"c32a07561c1a90ff754b7da2181b7020","..\/css\/backoffice\/pages\/_global-search.scss":"da4695e624d3a95e3b1c9035b4529a20","..\/css\/backoffice\/pages\/_welcome-popup.scss":"bd2b7cb8e148fc5e469e553e596001e4","..\/css\/backoffice\/blocks-integrations\/_all.scss":"dab5c6553d9933024df8bac361321b6d","..\/css\/backoffice\/blocks-integrations\/_dashlet-within-dashboard.scss":"b9c1693a941732c66a9fb92e51609fc7","..\/css\/backoffice\/blocks-integrations\/_add-to-dashboard.scss":"3ecdea8473b6014dd4e73f98e6eaa5b1","..\/css\/backoffice\/blocks-integrations\/_caselog-entry-form-within-activity-panel.scss":"0ad42544e79da33693facb23eae57b9e","..\/css\/backoffice\/blocks-integrations\/_panel-with-datatable.scss":"a96f57fa925f87f0c17eacec6ba98fb9","..\/css\/backoffice\/blocks-integrations\/_panel-with-tab-container.scss":"76cc2f643ccb2f328c36bd335b39987e","..\/css\/backoffice\/blocks-integrations\/_panel-within-main-content.scss":"485a56a9cee1e7b5f9c5b32fae358cfe","..\/css\/backoffice\/blocks-integrations\/_panel-within-modal.scss":"19322d657236c17402a057298aa6e9e9","..\/css\/backoffice\/blocks-integrations\/_object-details-with-tab-container.scss":"e75862e46d156fbedc074ac7055813de","..\/css\/backoffice\/blocks-integrations\/_medallion-with-blocklist.scss":"4ebaef03be8ce96e18b98c6339f3b2e1","..\/css\/backoffice\/blocks-integrations\/_input-within-datatable.scss":"80678af7854753f4e4248bd26c72ecef","..\/css\/backoffice\/blocks-integrations\/_jquery-blockui-within-dialog.scss":"5544331904527d068b1bbb2ea340b679","..\/css\/backoffice\/blocks-integrations\/_jquery-blockui-within-datatable.scss":"b7c6739bc263a91779a636a6d188d511","..\/css\/backoffice\/themes\/_all.scss":"afefab135bcf21daffa3022ce4529a08","..\/css\/backoffice\/_fallback.scss":"26fa12345b0cbb992c8dfd08b5969cad","..\/css\/backoffice\/_shame.scss":"4ca49acf53df3f6f176a680172808a08"}}
=== SIGNATURE END ===
*/
/*!
@@ -568,7 +568,7 @@
.ibo-top-bar, .ibo-tab-container--extra-tabs-list {
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25), 0 1px 3px rgba(0, 0, 0, 0.12);
}
-ul.cke_autocomplete_panel, .ibo-quick-create--input.selectize-control.single .selectize-dropdown, .ibo-popover-menu, .ui-menu, .ui-multiselect-menu, .ibo-input-select-icon--menu, .graph_config .toolkit_menu.graph > ul > li ul, .ibo-activity-panel--filter-options {
+ul.cke_autocomplete_panel, .ibo-breadcrumbs--previous-items-list, .ibo-quick-create--input.selectize-control.single .selectize-dropdown, .ibo-popover-menu, .ui-menu, .ui-multiselect-menu, .ibo-input-select-icon--menu, .graph_config .toolkit_menu.graph > ul > li ul, .ibo-activity-panel--filter-options {
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1), 0 10px 20px rgba(0, 0, 0, 0.15);
}
/*!
@@ -592,7 +592,7 @@ ul.cke_autocomplete_panel, .ibo-quick-create--input.selectize-control.single .se
/* NOTE: Those helpers allow to easily use an icon from libs. like FontAwesome or FontCombodo within a CSS rule (eg. ::after) */
/* To use it, simply "@extend %fa-regular-base" in a rule and put the desired icon "content: '\f054'" */
/******************************************************************************************************************************/
-.dataTables_scrollHead thead tr th.sorting::after, .ibo-breadcrumbs--item:not(:last-child)::after, .ibo-prop--apply.ui-state-error:after, .ibo-sort-order::after {
+.dataTables_scrollHead thead tr th.sorting::after, .ibo-breadcrumbs--item:not(:last-child)::after, .ibo-breadcrumbs--previous-items-list-toggler:not(:last-child)::after, .ibo-prop--apply.ui-state-error:after, .ibo-sort-order::after {
font-family: "Font Awesome 5 Free";
font-weight: 900;
-webkit-font-smoothing: antialiased;
@@ -627,10 +627,10 @@ ul.cke_autocomplete_panel, .ibo-quick-create--input.selectize-control.single .se
*
* Usage: @extend %ibo-font-size-XXX;
*/
-.ibo-font-size-50, .ibo-activity-panel--tab-title-draft-indicator, .ibo-activity-entry--sub-information {
+.ibo-font-size-50, .ibo-field--fullscreen-toggler, .ibo-activity-panel--tab-title-draft-indicator, .ibo-activity-entry--sub-information {
font-size: 0.83rem;
}
-.ibo-font-size-100, .dataTables_paginate a.paginate_button, .ibo-quick-create--drawer, .ibo-global-search--drawer, .ibo-dashlet-header-dynamic--label, .ibo-datatable--toolbar, .ibo-field--fullscreen-toggler, .object-ref-icon.text_decoration, .object-ref-icon-disabled.text_decoration, .ibo-criterion-area, .ibo-dashboard-editor--properties table td .ibo-field, .ibo-dashboard--available-dashlets table td .ibo-field, .ibo-dashlet--properties table td .ibo-field, .ibo-dashboard-editor--properties table th .ibo-field, .ibo-dashboard--available-dashlets table th .ibo-field, .ibo-dashlet--properties table th .ibo-field {
+.ibo-font-size-100, .dataTables_paginate a.paginate_button, .ibo-quick-create--drawer, .ibo-global-search--drawer, .ibo-dashlet-header-dynamic--label, .ibo-datatable--toolbar, .object-ref-icon.text_decoration, .object-ref-icon-disabled.text_decoration, .ibo-criterion-area, .ibo-dashboard-editor--properties table td .ibo-field, .ibo-dashboard--available-dashlets table td .ibo-field, .ibo-dashlet--properties table td .ibo-field, .ibo-dashboard-editor--properties table th .ibo-field, .ibo-dashboard--available-dashlets table th .ibo-field, .ibo-dashlet--properties table th .ibo-field {
font-size: 1rem;
}
.ibo-font-size-150, .ibo-alert, .ibo-breadcrumbs--item-icon, .ibo-panel--subtitle, .ibo-panel--body, .ibo-dashlet-badge--action-create, .ibo-prop-header, .ibo-field, .sf_results_placeholder, .ibo-input-file-select--container .ibo-input-file-select .ibo-input-file-select--file-name, .ibo-tab-container--tabs-list, .ibo-dashboard-editor--properties-subtitle, .ibo-dashboard--available-dashlet--title, .ibo-dashlet--properties--title, .ibo-activity-entry--medallion {
@@ -801,7 +801,7 @@ ul.cke_autocomplete_panel, .ibo-quick-create--input.selectize-control.single .se
-moz-font-feature-settings: "lnum";
font-feature-settings: "lnum";
}
-.ibo-font-ral-med-100, .dataTable th, .dataTable td, .ibo-breadcrumbs--item, body {
+.ibo-font-ral-med-100, .dataTable th, .dataTable td, .ibo-breadcrumbs--item, .ibo-breadcrumbs--previous-items-list-toggler, .ibo-breadcrumbs--previous-item, body {
font-size: 1rem;
font-family: "Raleway", "sans-serif", "system-ui";
font-weight: 500;
@@ -1314,7 +1314,7 @@ body.ibo-has-fullscreen-descendant {
.ibo-has-fullscreen-descendant {
position: static !important;
overflow: visible !important;
- z-index: 9000 !important;
+ z-index: 1050 !important;
}
/* Used on a fullscreen element (see .ibo-has-fullscreen-descendant) */
.ibo-is-fullscreen {
@@ -1326,12 +1326,12 @@ body.ibo-has-fullscreen-descendant {
width: 100vw;
height: 100vh;
overflow: auto;
- z-index: 9000;
+ z-index: 1050;
}
/****************/
/* Text helpers */
/****************/
-.ibo-text-truncated-with-ellipsis, .ui-dialog .ui-dialog-title, .ibo-button--label, .ibo-breadcrumbs--item-label, .ibo-quick-create--compartment-element, .ibo-quick-create--compartment-results--element > .option, .ibo-global-search--compartment-element, .ibo-dashlet-badge--action-list-label, .attribute-set .attribute-set-item, .selectize-control.multi .selectize-input.ibo-input-set .attribute-set-item, .selectize-control.multi .ibo-quick-create--input.selectize-control.single .ibo-input-set.selectize-input.input-active .attribute-set-item, .ibo-quick-create--input.selectize-control.single .selectize-control.multi .ibo-input-set.selectize-input.input-active .attribute-set-item, .ibo-navigation-menu--menu-group-title, .ibo-navigation-menu--menu-nodes-title, .ibo-tab-container--tab-toggler, .ibo-tab-container--extra-tabs-list-toggler, .ibo-tab-container--tab-toggler-label, .ibo-tab-container--extra-tab-toggler, .ibo-activity-panel--tab-title-text, .ibo-activity-panel--filter-option {
+.ibo-text-truncated-with-ellipsis, .ui-dialog .ui-dialog-title, .ibo-button--label, .ibo-breadcrumbs--item-label, .ibo-quick-create--compartment-element, .ibo-quick-create--compartment-results--element > .option, .ibo-global-search--compartment-element, .ibo-dashlet-badge--action-list-label, .attribute-set .attribute-set-item, .selectize-control.multi .selectize-input.ibo-input-set .attribute-set-item, .selectize-control.multi .ibo-quick-create--input.selectize-control.single .ibo-input-set.selectize-input.input-active .attribute-set-item, .ibo-quick-create--input.selectize-control.single .selectize-control.multi .ibo-input-set.selectize-input.input-active .attribute-set-item, .ibo-navigation-menu--menu-group-title, .ibo-navigation-menu--menu-nodes-title, .ibo-top-bar--toolbar-dashboard-title, .ibo-tab-container--tab-toggler, .ibo-tab-container--extra-tabs-list-toggler, .ibo-tab-container--tab-toggler-label, .ibo-tab-container--extra-tab-toggler, .ibo-activity-panel--tab-title-text, .ibo-activity-panel--filter-option {
white-space: nowrap;
overflow-x: hidden;
text-overflow: ellipsis;
@@ -1361,9 +1361,10 @@ body.ibo-has-fullscreen-descendant {
.ibo-is-html-content table {
width: unset !important;
max-width: max-content;
+ /* Preserve original text color in code blocks, except for the Highlight.js blocks which have their own colors */
}
-.ibo-is-html-content code {
- color: initial;
+.ibo-is-html-content > code, .ibo-is-html-content :not(pre.hljs) code {
+ color: inherit;
}
/***********************************************************************/
/* Sticky headers */
@@ -11021,7 +11022,7 @@ button.ui-multiselect .fas {
}
.dataTables_scrollHead thead tr th.sorting::after {
position: absolute;
- right: 1em;
+ right: calc((12px - 8px) / 2);
content: "\f0dc";
opacity: 0.3;
line-height: inherit;
@@ -11142,6 +11143,12 @@ button.ui-multiselect .fas {
border: none;
background-color: transparent;
}
+.mfp-bg {
+ z-index: 1100;
+}
+.mfp-wrap {
+ z-index: 1101;
+}
/*!
* Copyright (C) 2013-2021 Combodo SARL
*
@@ -11884,6 +11891,7 @@ a:active {
box-shadow: inset 0px 2px 0px transparent;
}
.ibo-button, .ui-dialog .ui-button, .ui-datepicker-current, .ui-datepicker-close {
+ position: relative;
display: inline-block;
/* Used to allow truncated text on .ibo-button--label */
padding: 6px 9px;
@@ -12152,6 +12160,13 @@ a:active {
*
* You should have received a copy of the GNU Affero General Public License
*/
+.ibo-breadcrumbs {
+ position: relative;
+ margin-right: 16px;
+}
+.ibo-breadcrumbs.ibo-is-overflowing {
+ justify-content: right;
+}
.ibo-breadcrumbs * {
display: flex;
align-items: center;
@@ -12159,11 +12174,6 @@ a:active {
.ibo-breadcrumbs--item {
color: #404b5a;
}
-.ibo-breadcrumbs--item:not(:last-child)::after {
- content: '\f054';
- margin: 0 12px;
- color: #aebecd;
-}
.ibo-breadcrumbs--item:not(:last-child):hover .ibo-breadcrumbs--item-icon > * {
opacity: 1;
filter: none;
@@ -12187,6 +12197,37 @@ a:active {
/* Otherwise the "truncate" doesn't work with th default display: flex */
max-width: 100px;
}
+.ibo-breadcrumbs--item:not(:last-child)::after, .ibo-breadcrumbs--previous-items-list-toggler:not(:last-child)::after {
+ content: '\f054';
+ margin: 0 12px;
+ color: #aebecd;
+}
+.ibo-breadcrumbs--previous-items-list-toggler {
+ margin-right: 24px;
+ color: #6e7a8a !important;
+}
+.ibo-breadcrumbs--previous-items-list-toggler:not(:last-child)::after {
+ position: absolute;
+ /* To be outside of the button */
+ right: -24px;
+}
+.ibo-breadcrumbs--previous-items-list {
+ display: flex;
+ flex-direction: column;
+ align-items: stretch;
+ /* For the items to occupy the full width */
+ position: fixed;
+ top: 37px;
+ padding: 8px 0;
+ background-color: white;
+}
+.ibo-breadcrumbs--previous-item {
+ color: #404b5a;
+ padding: 12px 12px;
+}
+.ibo-breadcrumbs--previous-item .ibo-breadcrumbs--item-label {
+ max-width: 200px;
+}
/*!
* Copyright (C) 2013-2021 Combodo SARL
*
@@ -13820,11 +13861,16 @@ img.ibo-navigation-menu--notifications--item--image:not([src=""]) ~ i.ibo-naviga
/* Note: Some types of attribute must be excluding as it can alter their rendering */
}
.ibo-field:not([data-attribute-type="AttributeBlob"]):not([data-attribute-type="AttributeFile"]):not([data-attribute-type="AttributeImage"]):not([data-attribute-type="AttributeCustomFields"]):not(.ibo-input-file-select--container) {
- /* We need the rule to apply for the class and all its descendants */
+ /* We need the rule to apply for the class and all its descendants, hence the "&, & *" */
}
-.ibo-field:not([data-attribute-type="AttributeBlob"]):not([data-attribute-type="AttributeFile"]):not([data-attribute-type="AttributeImage"]):not([data-attribute-type="AttributeCustomFields"]):not(.ibo-input-file-select--container) .ibo-field--value * {
+.ibo-field:not([data-attribute-type="AttributeBlob"]):not([data-attribute-type="AttributeFile"]):not([data-attribute-type="AttributeImage"]):not([data-attribute-type="AttributeCustomFields"]):not(.ibo-input-file-select--container) .ibo-field--value, .ibo-field:not([data-attribute-type="AttributeBlob"]):not([data-attribute-type="AttributeFile"]):not([data-attribute-type="AttributeImage"]):not([data-attribute-type="AttributeCustomFields"]):not(.ibo-input-file-select--container) .ibo-field--value * {
word-break: break-word;
- white-space: pre-line;
+ white-space: inherit;
+ /* Here we don't put break-spaces as it would put ".ibo-field-small .ibo-field-value" on a new line due to the spaces/indentation of the HTML templates. For now we rather have this rule than diminish the templates readability/maintenability */
+}
+.ibo-field:not([data-attribute-type="AttributeBlob"]):not([data-attribute-type="AttributeFile"]):not([data-attribute-type="AttributeImage"]):not([data-attribute-type="AttributeCustomFields"]):not(.ibo-input-file-select--container).ibo-field-large .ibo-field--value, .ibo-field:not([data-attribute-type="AttributeBlob"]):not([data-attribute-type="AttributeFile"]):not([data-attribute-type="AttributeImage"]):not([data-attribute-type="AttributeCustomFields"]):not(.ibo-input-file-select--container).ibo-field-large .ibo-field--value * {
+ white-space: break-spaces;
+ /* For large fields we don't have the issue stated above */
}
.ibo-field ~ .ibo-field {
margin-top: 16px;
@@ -13837,7 +13883,6 @@ img.ibo-navigation-menu--notifications--item--image:not([src=""]) ~ i.ibo-naviga
position: relative;
/* Necessary for fullscreen toggler */
display: flex;
- justify-content: space-between;
align-items: center;
max-width: initial;
width: 100%;
@@ -13898,6 +13943,9 @@ img.ibo-navigation-menu--notifications--item--image:not([src=""]) ~ i.ibo-naviga
cursor: pointer;
color: #929fb1;
}
+.ibo-field--label-small .ibo-field--label {
+ width: 145px;
+}
.ibo-field--value {
display: table;
width: 100%;
@@ -15267,6 +15315,9 @@ img.ibo-navigation-menu--notifications--item--image:not([src=""]) ~ i.ibo-naviga
.ibo-top-bar--quick-actions {
margin-right: var(--ibo-top-bar--quick-actions--margin-right);
}
+.ibo-top-bar--toolbar-dashboard-title {
+ max-width: 350px;
+}
.ibo-top-bar--toolbar-dashboard-menu-toggler {
display: flex;
align-items: center;
@@ -15411,6 +15462,7 @@ input:checked + .slider:before {
}
.ibo-tab-container--tab-container {
padding: 32px 32px;
+ overflow-x: auto;
}
.ibo-is-scrollable .ibo-tab-container--tab-container--label {
display: block;
@@ -16090,6 +16142,12 @@ input:checked + .ibo-dashboard--slider:after {
}
.ibo-activity-panel--add-caselog-entry-button:hover {
color: white;
+ background-color: #ea7d1e;
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 3px 6px rgba(0, 0, 0, 0.15);
+}
+.ibo-activity-panel--add-caselog-entry-button:active {
+ color: white;
+ background-color: #c05621;
}
.ibo-activity-panel--add-caselog-entry-button.ibo-is-hidden {
display: none;
@@ -16290,15 +16348,6 @@ input:checked + .ibo-dashboard--slider:after {
/* So it occupies all the remaining width, which is easier for the user to click */
word-break: break-word;
/* To avoid content to overflow its container (typically very long URLs) */
- /* Avoid pre (code snippets) to overflow outside the entry */
-}
-.ibo-activity-entry--main-information-content pre {
- white-space: pre-line;
- /* Avoid table to overflow outside the entry (see N°2127) */
-}
-.ibo-activity-entry--main-information-content table {
- table-layout: fixed;
- width: 100%;
/* Specific hyperlink color */
}
.ibo-activity-entry--main-information-content a {
diff --git a/datamodels/2.x/itop-virtualization-mgmt/data.sample.webapp.xml b/datamodels/2.x/itop-virtualization-mgmt/data.sample.webapp.xml
index b601910a2..6cdca3e06 100755
--- a/datamodels/2.x/itop-virtualization-mgmt/data.sample.webapp.xml
+++ b/datamodels/2.x/itop-virtualization-mgmt/data.sample.webapp.xml
@@ -1,7 +1,7 @@
-Open ERP
+Odoo
2
low
diff --git a/dictionaries/cs.dictionary.itop.ui.php b/dictionaries/cs.dictionary.itop.ui.php
index f63c863cd..7d9cec41d 100755
--- a/dictionaries/cs.dictionary.itop.ui.php
+++ b/dictionaries/cs.dictionary.itop.ui.php
@@ -703,6 +703,7 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array(
'UI:RunQuery:HeaderOQLExpression' => 'OQL dotaz',
'UI:RunQuery:HeaderOQLExpression+' => 'Dotaz v OQL syntaxi',
'UI:RunQuery:ExpressionToEvaluate' => 'Dotaz k vyhodnocení: ',
+ 'UI:RunQuery:QueryArguments' => 'Query Arguments~~',
'UI:RunQuery:MoreInfo' => 'Více informací o dotazu: ',
'UI:RunQuery:DevelopedQuery' => 'Rekonstruovaný dotaz: ',
'UI:RunQuery:SerializedFilter' => 'Serializovaný filtr: ',
diff --git a/dictionaries/da.dictionary.itop.ui.php b/dictionaries/da.dictionary.itop.ui.php
index 61c045298..92c4ffb9a 100644
--- a/dictionaries/da.dictionary.itop.ui.php
+++ b/dictionaries/da.dictionary.itop.ui.php
@@ -692,6 +692,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'UI:RunQuery:HeaderOQLExpression' => 'OQL Udtryk',
'UI:RunQuery:HeaderOQLExpression+' => 'Forespørgslen i OQL syntaks',
'UI:RunQuery:ExpressionToEvaluate' => 'Udtryk der skal evalueres: ',
+ 'UI:RunQuery:QueryArguments' => 'Query Arguments~~',
'UI:RunQuery:MoreInfo' => 'Mere information om forespørgslen: ',
'UI:RunQuery:DevelopedQuery' => 'Videreudviklet forespørgselsudtryk: ',
'UI:RunQuery:SerializedFilter' => 'Serielt filter: ',
diff --git a/dictionaries/de.dictionary.itop.ui.php b/dictionaries/de.dictionary.itop.ui.php
index 7c1bd075c..a76af6e18 100644
--- a/dictionaries/de.dictionary.itop.ui.php
+++ b/dictionaries/de.dictionary.itop.ui.php
@@ -692,6 +692,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'UI:RunQuery:HeaderOQLExpression' => 'OQL-Ausdruck',
'UI:RunQuery:HeaderOQLExpression+' => 'Die Abfrage in OQL-Syntax',
'UI:RunQuery:ExpressionToEvaluate' => 'Auszuwertender Ausdruck: ',
+ 'UI:RunQuery:QueryArguments' => 'Query Arguments~~',
'UI:RunQuery:MoreInfo' => 'Mehr Informationen zur Abfrage: ',
'UI:RunQuery:DevelopedQuery' => 'Überarbeiteter Abfrageausdruck: ',
'UI:RunQuery:SerializedFilter' => 'Serieller Filter: ',
diff --git a/dictionaries/en.dictionary.itop.ui.php b/dictionaries/en.dictionary.itop.ui.php
index 9f62c888d..bb860ecb9 100644
--- a/dictionaries/en.dictionary.itop.ui.php
+++ b/dictionaries/en.dictionary.itop.ui.php
@@ -720,6 +720,7 @@ We hope you’ll enjoy this version as much as we enjoyed imagining and creating
'UI:RunQuery:HeaderOQLExpression' => 'OQL Expression',
'UI:RunQuery:HeaderOQLExpression+' => 'The query in OQL syntax',
'UI:RunQuery:ExpressionToEvaluate' => 'Expression to evaluate: ',
+ 'UI:RunQuery:QueryArguments' => 'Query Arguments',
'UI:RunQuery:MoreInfo' => 'More information about the query: ',
'UI:RunQuery:DevelopedQuery' => 'Redevelopped query expression: ',
'UI:RunQuery:SerializedFilter' => 'Serialized filter: ',
diff --git a/dictionaries/es_cr.dictionary.itop.ui.php b/dictionaries/es_cr.dictionary.itop.ui.php
index c012d836f..fd395be04 100644
--- a/dictionaries/es_cr.dictionary.itop.ui.php
+++ b/dictionaries/es_cr.dictionary.itop.ui.php
@@ -703,6 +703,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array(
'UI:RunQuery:HeaderOQLExpression' => 'Expresión OQL',
'UI:RunQuery:HeaderOQLExpression+' => 'La consulta en sintáxis OQL',
'UI:RunQuery:ExpressionToEvaluate' => 'Expresión a evaluar: ',
+ 'UI:RunQuery:QueryArguments' => 'Query Arguments~~',
'UI:RunQuery:MoreInfo' => 'Más información acerca de la consulta: ',
'UI:RunQuery:DevelopedQuery' => 'Expresión de consulta rediseñada: ',
'UI:RunQuery:SerializedFilter' => 'Filtro de serialización: ',
diff --git a/dictionaries/fr.dictionary.itop.ui.php b/dictionaries/fr.dictionary.itop.ui.php
index c120d5194..c37cb3fde 100644
--- a/dictionaries/fr.dictionary.itop.ui.php
+++ b/dictionaries/fr.dictionary.itop.ui.php
@@ -703,6 +703,7 @@ Nous espérons que vous aimerez cette version autant que nous avons eu du plaisi
'UI:RunQuery:HeaderOQLExpression' => 'Requête OQL',
'UI:RunQuery:HeaderOQLExpression+' => 'La requête en OQL',
'UI:RunQuery:ExpressionToEvaluate' => 'Requête à exécuter : ',
+ 'UI:RunQuery:QueryArguments' => 'Arguments de la requête',
'UI:RunQuery:MoreInfo' => 'Plus d\'information sur la requête : ',
'UI:RunQuery:DevelopedQuery' => 'Requête OQL décompilée : ',
'UI:RunQuery:SerializedFilter' => 'Version sérialisée : ',
diff --git a/dictionaries/hu.dictionary.itop.ui.php b/dictionaries/hu.dictionary.itop.ui.php
index c7495034d..01ceb05ed 100755
--- a/dictionaries/hu.dictionary.itop.ui.php
+++ b/dictionaries/hu.dictionary.itop.ui.php
@@ -692,6 +692,7 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array(
'UI:RunQuery:HeaderOQLExpression' => 'OQL kifejezés',
'UI:RunQuery:HeaderOQLExpression+' => '',
'UI:RunQuery:ExpressionToEvaluate' => 'Értékelendő kifejezés: ',
+ 'UI:RunQuery:QueryArguments' => 'Query Arguments~~',
'UI:RunQuery:MoreInfo' => 'Több információ a lekérdezésről: ',
'UI:RunQuery:DevelopedQuery' => 'Újraírt lekérdező értékelés: ',
'UI:RunQuery:SerializedFilter' => 'Szerializált szűrő: ',
diff --git a/dictionaries/it.dictionary.itop.ui.php b/dictionaries/it.dictionary.itop.ui.php
index cfca801cb..b84ba83a2 100644
--- a/dictionaries/it.dictionary.itop.ui.php
+++ b/dictionaries/it.dictionary.itop.ui.php
@@ -703,6 +703,7 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array(
'UI:RunQuery:HeaderOQLExpression' => 'Espressioni OQL',
'UI:RunQuery:HeaderOQLExpression+' => '',
'UI:RunQuery:ExpressionToEvaluate' => 'Espressione da valutare: ',
+ 'UI:RunQuery:QueryArguments' => 'Query Arguments~~',
'UI:RunQuery:MoreInfo' => 'Maggiori informazioni sulla query: ',
'UI:RunQuery:DevelopedQuery' => 'Espressione della query riqualificata:',
'UI:RunQuery:SerializedFilter' => 'Filtro pubblicato: ',
diff --git a/dictionaries/ja.dictionary.itop.ui.php b/dictionaries/ja.dictionary.itop.ui.php
index 624046fa1..fdad48091 100644
--- a/dictionaries/ja.dictionary.itop.ui.php
+++ b/dictionaries/ja.dictionary.itop.ui.php
@@ -692,6 +692,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'UI:RunQuery:HeaderOQLExpression' => 'OQL式',
'UI:RunQuery:HeaderOQLExpression+' => 'OQL文法によるクエリ',
'UI:RunQuery:ExpressionToEvaluate' => '評価式',
+ 'UI:RunQuery:QueryArguments' => 'Query Arguments~~',
'UI:RunQuery:MoreInfo' => 'クエリに関する追加情報',
'UI:RunQuery:DevelopedQuery' => 'クエリ式の再開発',
'UI:RunQuery:SerializedFilter' => 'シリアライズされたフィルタ:',
diff --git a/dictionaries/nl.dictionary.itop.ui.php b/dictionaries/nl.dictionary.itop.ui.php
index afabbcc86..4bc0b1409 100644
--- a/dictionaries/nl.dictionary.itop.ui.php
+++ b/dictionaries/nl.dictionary.itop.ui.php
@@ -703,6 +703,7 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'UI:RunQuery:HeaderOQLExpression' => 'OQL-expressie',
'UI:RunQuery:HeaderOQLExpression+' => 'De query in OQL syntax',
'UI:RunQuery:ExpressionToEvaluate' => 'Expressie om te evalueren: ',
+ 'UI:RunQuery:QueryArguments' => 'Query Arguments~~',
'UI:RunQuery:MoreInfo' => 'Meer informatie over de query: ',
'UI:RunQuery:DevelopedQuery' => 'Herschreven query-expressie: ',
'UI:RunQuery:SerializedFilter' => 'Geserialiseerde filter: ',
diff --git a/dictionaries/pl.dictionary.itop.ui.php b/dictionaries/pl.dictionary.itop.ui.php
index 6369d1474..3d5f2be0c 100644
--- a/dictionaries/pl.dictionary.itop.ui.php
+++ b/dictionaries/pl.dictionary.itop.ui.php
@@ -705,6 +705,7 @@ Dict::Add('PL PL', 'Polish', 'Polski', array(
'UI:RunQuery:HeaderOQLExpression' => 'Wyrażenie OQL',
'UI:RunQuery:HeaderOQLExpression+' => 'Zapytanie w składni OQL',
'UI:RunQuery:ExpressionToEvaluate' => 'Wyrażenie do wykonania: ',
+ 'UI:RunQuery:QueryArguments' => 'Query Arguments~~',
'UI:RunQuery:MoreInfo' => 'Więcej informacji o zapytaniu: ',
'UI:RunQuery:DevelopedQuery' => 'Rozwinięte wyrażenie zapytania: ',
'UI:RunQuery:SerializedFilter' => 'Filtr serializowany: ',
diff --git a/dictionaries/pt_br.dictionary.itop.ui.php b/dictionaries/pt_br.dictionary.itop.ui.php
index 147fb2c6a..35171d665 100644
--- a/dictionaries/pt_br.dictionary.itop.ui.php
+++ b/dictionaries/pt_br.dictionary.itop.ui.php
@@ -703,6 +703,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
'UI:RunQuery:HeaderOQLExpression' => 'A consulta na sintaxe OQL',
'UI:RunQuery:HeaderOQLExpression+' => 'A consulta na sintaxe OQL',
'UI:RunQuery:ExpressionToEvaluate' => 'Expressão para avaliar: ',
+ 'UI:RunQuery:QueryArguments' => 'Query Arguments~~',
'UI:RunQuery:MoreInfo' => 'Mais informações sobre a consulta: ',
'UI:RunQuery:DevelopedQuery' => 'Redevelopped query expression: ',
'UI:RunQuery:SerializedFilter' => 'Filtro serializado: ',
diff --git a/dictionaries/ru.dictionary.itop.ui.php b/dictionaries/ru.dictionary.itop.ui.php
index 8d4178eb9..2dc362a12 100644
--- a/dictionaries/ru.dictionary.itop.ui.php
+++ b/dictionaries/ru.dictionary.itop.ui.php
@@ -704,6 +704,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', array(
'UI:RunQuery:HeaderOQLExpression' => 'Выражение OQL',
'UI:RunQuery:HeaderOQLExpression+' => 'Запрос в синтаксисе OQL',
'UI:RunQuery:ExpressionToEvaluate' => 'Оценка выражения: ',
+ 'UI:RunQuery:QueryArguments' => 'Query Arguments~~',
'UI:RunQuery:MoreInfo' => 'Подробная информация о запросе: ',
'UI:RunQuery:DevelopedQuery' => 'Декомпилированный запрос OQL: ',
'UI:RunQuery:SerializedFilter' => 'Сериализованная версия: ',
diff --git a/dictionaries/sk.dictionary.itop.ui.php b/dictionaries/sk.dictionary.itop.ui.php
index 00a966a10..39cde3827 100644
--- a/dictionaries/sk.dictionary.itop.ui.php
+++ b/dictionaries/sk.dictionary.itop.ui.php
@@ -693,6 +693,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'UI:RunQuery:HeaderOQLExpression' => 'OQL Výraz',
'UI:RunQuery:HeaderOQLExpression+' => '',
'UI:RunQuery:ExpressionToEvaluate' => 'Výraz k určeniu: ',
+ 'UI:RunQuery:QueryArguments' => 'Query Arguments~~',
'UI:RunQuery:MoreInfo' => 'Viac informácií o dopyte: ',
'UI:RunQuery:DevelopedQuery' => 'Dopyt rozvinutého výrazu: ',
'UI:RunQuery:SerializedFilter' => 'Serializovaný filter: ',
diff --git a/dictionaries/tr.dictionary.itop.ui.php b/dictionaries/tr.dictionary.itop.ui.php
index b39ab6ea8..de523d28d 100644
--- a/dictionaries/tr.dictionary.itop.ui.php
+++ b/dictionaries/tr.dictionary.itop.ui.php
@@ -703,6 +703,7 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array(
'UI:RunQuery:HeaderOQLExpression' => 'OQL ifadesi',
'UI:RunQuery:HeaderOQLExpression+' => 'OQL yapısında sorgu',
'UI:RunQuery:ExpressionToEvaluate' => 'Değerlendirilecek ifade: ',
+ 'UI:RunQuery:QueryArguments' => 'Query Arguments~~',
'UI:RunQuery:MoreInfo' => 'Sorgu hakkında detaylı bilgi: ',
'UI:RunQuery:DevelopedQuery' => 'Yeniden düzenlenen sorgu: ',
'UI:RunQuery:SerializedFilter' => 'Özel filtre: ',
diff --git a/dictionaries/ui/components/breadcrumbs/en.dictionary.itop.breadcrumbs.php b/dictionaries/ui/components/breadcrumbs/en.dictionary.itop.breadcrumbs.php
new file mode 100644
index 000000000..65a77eadf
--- /dev/null
+++ b/dictionaries/ui/components/breadcrumbs/en.dictionary.itop.breadcrumbs.php
@@ -0,0 +1,23 @@
+ 'Previous pages',
+));
\ No newline at end of file
diff --git a/dictionaries/ui/components/breadcrumbs/fr.dictionary.itop.breadcrumbs.php b/dictionaries/ui/components/breadcrumbs/fr.dictionary.itop.breadcrumbs.php
new file mode 100644
index 000000000..6ca4f71f5
--- /dev/null
+++ b/dictionaries/ui/components/breadcrumbs/fr.dictionary.itop.breadcrumbs.php
@@ -0,0 +1,23 @@
+ 'Pages précédentes',
+));
\ No newline at end of file
diff --git a/dictionaries/zh_cn.dictionary.itop.ui.php b/dictionaries/zh_cn.dictionary.itop.ui.php
index 664f1bb76..229c739f9 100644
--- a/dictionaries/zh_cn.dictionary.itop.ui.php
+++ b/dictionaries/zh_cn.dictionary.itop.ui.php
@@ -703,6 +703,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'UI:RunQuery:HeaderOQLExpression' => 'OQL 表达式',
'UI:RunQuery:HeaderOQLExpression+' => 'OQL 语法表示的查询',
'UI:RunQuery:ExpressionToEvaluate' => '请输入表达式: ',
+ 'UI:RunQuery:QueryArguments' => 'Query Arguments~~',
'UI:RunQuery:MoreInfo' => '该查询的更多信息: ',
'UI:RunQuery:DevelopedQuery' => '重新开发的查询表达式: ',
'UI:RunQuery:SerializedFilter' => '序列化的过滤器: ',
diff --git a/js/components/breadcrumbs.js b/js/components/breadcrumbs.js
index 6255a74f8..a463e0bc2 100644
--- a/js/components/breadcrumbs.js
+++ b/js/components/breadcrumbs.js
@@ -30,6 +30,26 @@ $(function()
new_entry: null,
max_count: 8
},
+ css_classes:
+ {
+ is_hidden: 'ibo-is-hidden',
+ is_transparent: 'ibo-is-transparent',
+ is_opaque: 'ibo-is-opaque',
+ is_overflowing: 'ibo-is-overflowing',
+ breadcrumbs_item: 'ibo-breadcrumbs--item',
+ breadcrumbs_previous_item: 'ibo-breadcrumbs--previous-item',
+ },
+ js_selectors:
+ {
+ breadcrumbs: '[data-role="ibo-breadcrumbs"]',
+ item: '[data-role="ibo-breadcrumbs--item"]',
+ previous_items_container: '[data-role="ibo-breadcrumbs--previous-items-container"]',
+ previous_items_list_toggler: '[data-role="ibo-breadcrumbs--previous-items-list-toggler"]',
+ previous_items_list: '[data-role="ibo-breadcrumbs--previous-items-list"]',
+ previous_item: '[data-role="ibo-breadcrumbs--previous-item"]',
+ },
+
+ items_observer: null,
// the constructor
_create: function()
@@ -41,7 +61,7 @@ $(function()
// Check that storage API is available
if(typeof(Storage) !== 'undefined')
{
- $(window).bind('hashchange', function(e)
+ $(window).on('hashchange', function(e)
{
me.RefreshLatestEntry();
});
@@ -50,7 +70,7 @@ $(function()
if (this.options.new_entry !== null) {
var sUrl = this.options.new_entry.url;
- if (sUrl.length == 0) {
+ if (sUrl.length === 0) {
sUrl = window.location.href;
}
// Eliminate items having the same id, before appending the new item
@@ -71,6 +91,8 @@ $(function()
}
this._writeDataToStorage(aBreadCrumb);
+ // Build markup
+ // - Add entries to the markup
for (iEntry in aBreadCrumb)
{
var sBreadcrumbsItemHtml = '';
@@ -90,30 +112,131 @@ $(function()
var sTitle = oEntry['description'],
sLabel = oEntry['label'];
- if (sTitle.length == 0) {
+ if (sTitle.length === 0) {
sTitle = sLabel;
}
sTitle = EncodeHtml(sTitle, false);
sLabel = EncodeHtml(sLabel, false);
- if ((this.options.new_entry !== null) && (iEntry == aBreadCrumb.length - 1)) {
+ if ((this.options.new_entry !== null) && (iEntry === aBreadCrumb.length - 1)) {
// Last entry is the current page
- sBreadcrumbsItemHtml += ''+sIconSpec+''+sLabel+'';
+ sBreadcrumbsItemHtml += ''+sIconSpec+''+sLabel+'';
} else {
var sSanitizedUrl = StripArchiveArgument(oEntry['url']);
- sBreadcrumbsItemHtml += ''+sIconSpec+''+sLabel+'';
+ sBreadcrumbsItemHtml += ''+sIconSpec+''+sLabel+'';
}
}
- this.element.append(sBreadcrumbsItemHtml);
+
+ const oNormalItemElem = $(sBreadcrumbsItemHtml)
+ .addClass(this.css_classes.breadcrumbs_item)
+ .attr('data-role', 'ibo-breadcrumbs--item');
+ this.element.append(oNormalItemElem);
+
+ const oPreviousItemElem = $(sBreadcrumbsItemHtml)
+ .addClass(this.css_classes.breadcrumbs_previous_item)
+ .attr('data-role', 'ibo-breadcrumbs--previous-item')
+ // Note: We prepend items as we want the oldest to be at the bottom of the list, like in a browser
+ this.element.find(this.js_selectors.previous_items_list).prepend(oPreviousItemElem);
}
}
+
+ this._updateOverflowingState();
+ this._bindEvents();
},
// events bound via _bind are removed automatically
// revert other modifications here
_destroy: function()
{
+ // Remove listeners
+ this.element.find(this.js_selectors.previous_items_list_toggler).off('click');
+
+ // Remove observers
+ this.items_observer.disconnect();
+
+ // Clear any existing entries in the markup
+ this.element.find(this.js_selectors.item).remove();
+ this.element.find(this.js_selectors.previous_item).remove();
+
this.element.removeClass('ibo-breadcrumbs');
},
+ _bindEvents: function ()
+ {
+ const me = this;
+
+ // Enable responsiveness if more than 1 item
+ if(window.IntersectionObserver && (this.element.find(this.js_selectors.item).length > 1)) {
+ // Set an observer on the items
+ this.items_observer = new IntersectionObserver(function(aItems, oIntersectObs){
+ aItems.forEach(oItem => {
+ let oItemElem = $(oItem.target);
+ let bIsVisible = oItem.isIntersecting;
+
+ // Important: We toggle "visibility" instead of "display" otherwise once they are hidden, they never trigger back the intersection.
+ if(bIsVisible) {
+ oItemElem.css('visibility', '');
+ }
+ else {
+ // Here we also check if the item has an invisible left sibbling before hiding it.
+ // There reason is that on initialization, the last item might be overflowing on the right BEFORE the breadcrumbs is flagged as overflowing, making it disappear
+ let oLeftSiblingElem = oItemElem.prev(me.js_selectors.item);
+ if (oLeftSiblingElem.length > 0 && oLeftSiblingElem.css('visibility') !== 'hidden') {
+ bIsVisible = true;
+ } else {
+ oItemElem.css('visibility', 'hidden');
+ }
+ }
+ me._updateItemDisplay(oItemElem, bIsVisible);
+ });
+
+ let bShouldShowPreviousItemsList = false;
+ me.element.find(me.js_selectors.item).each(function() {
+ if ($(this).css('visibility') === 'hidden') {
+ bShouldShowPreviousItemsList = true;
+
+ // Note: Can break a .each function loop, must return false
+ return false;
+ }
+ });
+
+ // Move previous items toggler before first visible item for a better UX
+ if (bShouldShowPreviousItemsList) {
+ let oFirstVisibleItem = me.element.find(me.js_selectors.item).first();
+ me.element.find(me.js_selectors.item).each(function() {
+ if ($(this).css('visibility') !== 'hidden') {
+ oFirstVisibleItem = $(this);
+
+ // Note: Can break a .each function loop, must return false
+ return false;
+ }
+ });
+ me.element.find(me.js_selectors.previous_items_container).insertBefore(oFirstVisibleItem);
+ }
+
+ me._updateOverflowingState();
+ me._updatePreviousItemsList();
+ }, {
+ root: $(this.js_selectors.breadcrumbs)[0],
+ threshold: [1] // Must be completely visible
+ });
+ this.element.find(this.js_selectors.item).each(function(){
+ me.items_observer.observe(this);
+ });
+
+ this.element.find(this.js_selectors.previous_items_list_toggler).on('click', function (oEvent) {
+ oEvent.preventDefault();
+ me.element.find(me.js_selectors.previous_items_list).toggleClass(me.css_classes.is_hidden);
+ });
+ $('body').on('click', function (oEvent) {
+ if (true === me.element.find(me.js_selectors.previous_items_list).hasClass(me.css_classes.is_hidden)) {
+ return;
+ }
+
+ if ($(oEvent.target.closest(me.js_selectors.previous_items_container)).length === 0) {
+ me.element.find(me.js_selectors.previous_items_list).addClass(me.css_classes.is_hidden);
+ }
+ });
+ }
+ },
_readDataFromStorage: function()
{
var sBreadCrumbStorageKey = this.options.itop_instance_id + 'breadcrumb-v1';
@@ -131,6 +254,7 @@ $(function()
sBreadCrumbData = JSON.stringify(aBreadCrumb);
sessionStorage.setItem(sBreadCrumbStorageKey, sBreadCrumbData);
},
+
// Refresh the latest entry (navigating to a tab)
RefreshLatestEntry: function(sRefreshHrefTo)
{
@@ -149,5 +273,68 @@ $(function()
}
this._writeDataToStorage(aBreadCrumb);
},
+
+ // Helpers
+ /**
+ * Update item display based on its visibility to the user
+ *
+ * @param oItemElem {Object} jQuery element
+ * @param bIsVisible {boolean|null} If null, visibility will be computed automatically. Not that performance might not be great so it's preferable to pass the value when known
+ * @return {void}
+ * @private
+ */
+ _updateItemDisplay(oItemElem, bIsVisible = null)
+ {
+ const iEntryNumber = parseInt(oItemElem.attr('data-breadcrumb-entry-number'));
+ const oMatchingExtraItemElem = this.element.find(this.js_selectors.previous_items_list+' [data-breadcrumb-entry-number="'+iEntryNumber+'"]');
+
+ // Manually check if the item is visible if the info isn't passed
+ if (bIsVisible === null) {
+ bIsVisible = CombodoGlobalToolbox.IsElementVisibleToTheUser(oItemElem[0], true, 2);
+ }
+
+ // Hide/show the corresponding extra item element
+ if (bIsVisible) {
+ oMatchingExtraItemElem.addClass(this.css_classes.is_hidden);
+ } else {
+ oMatchingExtraItemElem.removeClass(this.css_classes.is_hidden);
+ }
+ },
+ /**
+ * Update previous items list
+ *
+ * @return {void}
+ * @private
+ */
+ _updatePreviousItemsList: function () {
+ const iVisiblePreviousItemsCount = this.element.find(this.js_selectors.previous_item+':not(.'+this.css_classes.is_hidden+')').length;
+ const oPreviousItemsContainerElem = this.element.find(this.js_selectors.previous_items_container);
+
+ if (iVisiblePreviousItemsCount > 0) {
+ oPreviousItemsContainerElem.removeClass(this.css_classes.is_hidden);
+ } else {
+ oPreviousItemsContainerElem.addClass(this.css_classes.is_hidden);
+ }
+ },
+ /**
+ * Update the overflowing state of the breadcrumbs by checking if the items cumulated width is greater than the breadcrumbs visible space
+ *
+ * @return {void}
+ * @private
+ */
+ _updateOverflowingState: function () {
+ const fBreadcrumbsWidth = this.element.outerWidth();
+ let fItemsTotalWidth = 0;
+
+ this.element.find(this.js_selectors.item).each(function () {
+ fItemsTotalWidth += $(this).outerWidth();
+ });
+
+ if (fItemsTotalWidth > fBreadcrumbsWidth) {
+ this.element.addClass(this.css_classes.is_overflowing);
+ } else {
+ this.element.removeClass(this.css_classes.is_overflowing);
+ }
+ }
});
});
diff --git a/js/field_sorter.js b/js/field_sorter.js
index cf40a019b..be1c98944 100644
--- a/js/field_sorter.js
+++ b/js/field_sorter.js
@@ -27,7 +27,7 @@ $(function()
this.moveup_btn = $('');
this.movedown_btn = $('');
columnWithButtons = $('');
- this.element.parent().parent().append(columnWithButtons.append(this.moveup_btn).append('
').append(this.movedown_btn));
+ this.element.parent().parent().append(columnWithButtons.append(this.moveup_btn).append(this.movedown_btn));
this.moveup_btn.on('click', function () {
me._moveUp();
});
@@ -93,9 +93,10 @@ $(function()
{
this.element
.removeClass('itop-fieldsorter');
-
+ let oButtonsColumn = this.moveup_btn.parent('.ibo-mini-column');
this.moveup_btn.remove();
this.movedown_btn.remove();
+ oButtonsColumn.remove();
this.element.sortable('destroy').html('');
},
// _setOptions is called with a hash of all options that are changing
diff --git a/js/layouts/activity-panel/activity-panel.js b/js/layouts/activity-panel/activity-panel.js
index 07f39bbeb..6e7d77b52 100644
--- a/js/layouts/activity-panel/activity-panel.js
+++ b/js/layouts/activity-panel/activity-panel.js
@@ -787,6 +787,22 @@ $(function()
return oEntries;
},
+ /**
+ * @returns {Object} The case logs having a new entry and their values, format is {: , : }
+ * @private
+ */
+ _GetExtraInputsFromAllForms: function () {
+ const me = this;
+
+ let oExtraInputs = {};
+ this.element.find(this.js_selectors.caselog_entry_form).each(function () {
+ const oEntryFormElem = $(this);
+ oExtraInputs = $.extend(oExtraInputs, oEntryFormElem.triggerHandler('get_extra_inputs.caselog_entry_form.itop'));
+ });
+
+ return oExtraInputs;
+ },
+
/**
* @return {boolean} True if at least 1 of the entry form is draft (has some text in it)
* @private
@@ -863,6 +879,7 @@ $(function()
_SendEntriesToServer: function (sStimulusCode = null) {
const me = this;
const oEntries = this._GetEntriesFromAllForms();
+ const oExtraInputs = this._GetExtraInputsFromAllForms();
// Proceed only if entries to send
if (Object.keys(oEntries).length === 0) {
@@ -870,13 +887,13 @@ $(function()
}
// Prepare parameters
- let oParams = {
+ let oParams = $.extend(oExtraInputs, {
operation: 'activity_panel_add_caselog_entries',
object_class: this._GetHostObjectClass(),
object_id: this._GetHostObjectID(),
transaction_id: this.options.transaction_id,
entries: oEntries,
- };
+ });
// Freeze case logs
this._FreezeCaseLogsEntryForms();
diff --git a/js/layouts/activity-panel/caselog-entry-form.js b/js/layouts/activity-panel/caselog-entry-form.js
index b01763ea3..dd524838d 100644
--- a/js/layouts/activity-panel/caselog-entry-form.js
+++ b/js/layouts/activity-panel/caselog-entry-form.js
@@ -157,6 +157,9 @@ $(function() {
this.element.on('get_entry.caselog_entry_form.itop', function () {
return me._GetInputData();
});
+ this.element.on('get_extra_inputs.caselog_entry_form.itop', function () {
+ return me._GetExtraInputs();
+ });
// Clear the entry value
this.element.on('clear_entry.caselog_entry_form.itop', function () {
me._EmptyInput();
@@ -281,6 +284,27 @@ $(function() {
_GetInputData: function() {
return (this._GetCKEditorInstance() === undefined) ? '' : this._GetCKEditorInstance().getData();
},
+ _GetExtraInputs: function() {
+ let aExtraInputs = {};
+ const aFormInputs = this.element.serializeArray();
+ // Iterate across all values that would be sent if we submit current form
+ for (const aExtraInput of aFormInputs) {
+ // If we don't already have a value with the same name, add it
+ // Otherwise we'll consider that we need to return this value as an array of values
+ if(aExtraInputs[aExtraInput.name] === undefined) {
+ aExtraInputs[aExtraInput.name] = aExtraInput.value;
+ }
+ else {
+ if(Array.isArray(aExtraInputs[aExtraInput.name])){
+ aExtraInputs[aExtraInput.name].push(aExtraInput.value);
+ }
+ else{
+ aExtraInputs[aExtraInput.name] = [aExtraInputs[aExtraInput.name], aExtraInput.value];
+ }
+ }
+ };
+ return aExtraInputs;
+ },
// - Main actions
_ShowMainActions: function() {
this.element.find(this.js_selectors.main_actions).removeClass(this.css_classes.is_hidden);
diff --git a/js/search/search_form_handler.js b/js/search/search_form_handler.js
index 460271caa..b908e1c52 100644
--- a/js/search/search_form_handler.js
+++ b/js/search/search_form_handler.js
@@ -224,7 +224,6 @@ $(function()
$('#ibo-breadcrumbs')
.breadcrumbs('destroy')
- .html('')
.breadcrumbs({
itop_instance_id: oData['breadcrumb_instance_id'],
max_count: oData['breadcrumb_max_count'],
diff --git a/pages/UI.php b/pages/UI.php
index e014a6670..218f72734 100644
--- a/pages/UI.php
+++ b/pages/UI.php
@@ -8,12 +8,8 @@ use Combodo\iTop\Application\Helper\Session;
use Combodo\iTop\Application\TwigBase\Twig\TwigHelper;
use Combodo\iTop\Application\UI\Base\Component\Button\ButtonUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\Form\Form;
-use Combodo\iTop\Application\UI\Base\Component\Form\FormUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\GlobalSearch\GlobalSearchHelper;
-use Combodo\iTop\Application\UI\Base\Component\Html\HtmlFactory;
use Combodo\iTop\Application\UI\Base\Component\Input\InputUIBlockFactory;
-use Combodo\iTop\Application\UI\Base\Component\Input\Select\SelectOptionUIBlockFactory;
-use Combodo\iTop\Application\UI\Base\Component\Input\SelectUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\Panel\PanelUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\QuickCreate\QuickCreateHelper;
use Combodo\iTop\Application\UI\Base\Component\Title\Title;
@@ -753,54 +749,7 @@ EOF
cmdbAbstractObject::DisplayCreationForm($oP, $sRealClass, $oObjToClone, array(), array('wizard_container' => 1, 'keep_source_object' => true)); // wizard_container: Display the title above the form
} else {
// Select the derived class to create
- $sClassLabel = MetaModel::GetName($sClass);
- $sClassIconUrl = MetaModel::GetClassIcon($sClass, false);
- $sTitle = Dict::Format('UI:CreationTitle_Class', $sClassLabel);
-
- $oP->set_title($sTitle);
- $oPanel = PanelUIBlockFactory::MakeForClass($sClass, $sTitle)
- ->SetIcon($sClassIconUrl);
- $oP->AddUiBlock($oPanel);
-
- $oClassForm = FormUIBlockFactory::MakeStandard();
- $oPanel->AddMainBlock($oClassForm);
-
- $oClassForm->AddSubBlock(HtmlFactory::MakeParagraph(Dict::Format('UI:SelectTheTypeOf_Class_ToCreate', $sClassLabel)))
- ->AddHtml($oAppContext->GetForForm())
- ->AddSubBlock(InputUIBlockFactory::MakeForHidden('checkSubclass', '0'))
- ->AddSubBlock(InputUIBlockFactory::MakeForHidden('state', $sStateCode))
- ->AddSubBlock(InputUIBlockFactory::MakeForHidden('operation', 'new'));
-
- $aDefaults = utils::ReadParam('default', array(), false, 'raw_data');
- foreach ($aDefaults as $key => $value) {
- if (is_array($value)) {
- foreach ($value as $key2 => $value2) {
- if (is_array($value2)) {
- foreach ($value2 as $key3 => $value3) {
- $sValue = utils::EscapeHtml($value3);
- $oClassForm->AddSubBlock(InputUIBlockFactory::MakeForHidden("default[$key][$key2][$key3]", $sValue));
- }
- } else {
- $sValue = utils::EscapeHtml($value2);
- $oClassForm->AddSubBlock(InputUIBlockFactory::MakeForHidden("default[$key][$key2]", $sValue));
- }
- }
- } else {
- $sValue = utils::EscapeHtml($value);
- $oClassForm->AddSubBlock(InputUIBlockFactory::MakeForHidden("default[$key]", $sValue));
- }
- }
-
- $oSelect = SelectUIBlockFactory::MakeForSelect('class');
- $oClassForm->AddSubBlock($oSelect);
- asort($aPossibleClasses);
- foreach ($aPossibleClasses as $sClassName => $sClassLabel) {
- $oSelect->AddOption(SelectOptionUIBlockFactory::MakeForSelectOption($sClassName, $sClassLabel, ($sClassName == $sClass)));
- }
-
- $oToolbar = ToolbarUIBlockFactory::MakeForAction();
- $oClassForm->AddSubBlock($oToolbar);
- $oToolbar->AddSubBlock(ButtonUIBlockFactory::MakeForPrimaryAction(Dict::S('UI:Button:Apply'), null, null, true));
+ cmdbAbstractObject::DisplaySelectClassToCreate($sClass, $oP, $oAppContext, $aPossibleClasses,['state' => $sStateCode]);
}
break;
diff --git a/pages/ajax.render.php b/pages/ajax.render.php
index ef32146f9..d5571ce75 100644
--- a/pages/ajax.render.php
+++ b/pages/ajax.render.php
@@ -1369,7 +1369,7 @@ EOF
foreach($aLicenses as $oLicense)
{
$oPage->add(''.$oLicense->product.', © '.$oLicense->author.' is licensed under the '.$oLicense->license_type.' license. (Details)');
- $oPage->add(''.$oLicense->text.'
');
+ $oPage->add(''.$oLicense->text.'
');
$oPage->add_ready_script(<< 1) && (sRefValue != ':none:'))
{
diff --git a/pages/run_query.php b/pages/run_query.php
index 0433a566f..4f34bcf73 100644
--- a/pages/run_query.php
+++ b/pages/run_query.php
@@ -8,6 +8,7 @@ use Combodo\iTop\Application\UI\Base\Component\Alert\AlertUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\Button\ButtonUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\CollapsibleSection\CollapsibleSection;
use Combodo\iTop\Application\UI\Base\Component\DataTable\DataTableUIBlockFactory;
+use Combodo\iTop\Application\UI\Base\Component\Field\Field;
use Combodo\iTop\Application\UI\Base\Component\FieldSet\FieldSet;
use Combodo\iTop\Application\UI\Base\Component\Form\Form;
use Combodo\iTop\Application\UI\Base\Component\Form\FormUIBlockFactory;
@@ -163,14 +164,15 @@ try
}
}
+ $oPanelQuery = PanelUIBlockFactory::MakeWithBrandingPrimaryColor(Dict::S('UI:RunQuery:ExpressionToEvaluate'));
+ $oP->AddSubBlock($oPanelQuery);
$oQueryForm = new Form();
- $oP->AddUiBlock($oQueryForm);
+ $oPanelQuery->AddSubBlock($oQueryForm);
$oHiddenParams = new Html($oAppContext->GetForForm());
$oQueryForm->AddSubBlock($oHiddenParams);
//--- Query textarea
- $oQueryForm->AddSubBlock(TitleUIBlockFactory::MakeNeutral(Dict::S('UI:RunQuery:ExpressionToEvaluate'), 2));
$oQueryTextArea = new TextArea('expression', utils::EscapeHtml($sExpression), 'expression', 120, 8);
$oQueryTextArea->AddCSSClass('ibo-queryoql');
$oQueryForm->AddSubBlock($oQueryTextArea);
@@ -186,15 +188,14 @@ EOF
if (count($aArgs) > 0) {
//--- Query arguments
- $oQueryArgsContainer = PanelUIBlockFactory::MakeForInformation('Query arguments')
- ->SetCSSClasses(['wizContainer']);
+ $oQueryForm->AddSubBlock(TitleUIBlockFactory::MakeNeutral(Dict::S('UI:RunQuery:QueryArguments'),2)->AddCSSClass("ibo-collapsible-section--title"));
+ $oQueryArgsContainer = UIContentBlockUIBlockFactory::MakeStandard(null,['wizContainer']);
$oQueryForm->AddSubBlock($oQueryArgsContainer);
foreach ($aArgs as $sParam => $sValue) {
- $oArgInput = InputUIBlockFactory::MakeForInputWithLabel(
- $sParam,
- 'arg_'.$sParam,
- $sValue
- );
+ $oInput = InputUIBlockFactory::MakeStandard("text",'arg_'.$sParam, $sValue);
+ $oArgInput = \Combodo\iTop\Application\UI\Base\Component\Field\FieldUIBlockFactory::MakeFromObject($sParam,$oInput,Field::ENUM_FIELD_LAYOUT_SMALL);
+ $oArgInput->AddCSSClass("ibo-field--label-small");
+ //$oArgInput = InputUIBlockFactory::MakeForInputWithLabel( $sParam, 'arg_'.$sParam, $sValue );
$oQueryArgsContainer->AddSubBlock($oArgInput);
}
}
@@ -214,10 +215,10 @@ EOF
if ($oFilter) {
//--- Query filter
- $oP->AddSubBlock(TitleUIBlockFactory::MakeNeutral(Dict::S('UI:RunQuery:QueryResults'), 2));
-
+ $oPanelResult= PanelUIBlockFactory::MakeWithBrandingSecondaryColor(Dict::S('UI:RunQuery:QueryResults'));
+ $oP->AddSubBlock($oPanelResult);
$oResultBlock = new DisplayBlock($oFilter, 'list', false);
- $oP->AddSubBlock($oResultBlock->GetDisplay($oP, 'runquery'));
+ $oPanelResult->AddSubBlock($oResultBlock->GetDisplay($oP, 'runquery'));
// Breadcrumb
//$iCount = $oResultBlock->GetDisplayedCount();
diff --git a/setup/backup.class.inc.php b/setup/backup.class.inc.php
index a491247b1..060847d1d 100644
--- a/setup/backup.class.inc.php
+++ b/setup/backup.class.inc.php
@@ -172,33 +172,42 @@ class DBBackup
*/
public function CreateCompressedBackup($sTargetFile, $sSourceConfigFile = null)
{
- $bIsCmdbSourceInitialized = CMDBSource::GetMysqli() instanceof mysqli;
- if (!$bIsCmdbSourceInitialized)
- {
- $sErrorMsg = 'Cannot backup : CMDBSource not initialized !';
- $this->LogError($sErrorMsg);
- throw new CoreException($sErrorMsg);
+ $bReadonlyBefore = SetupUtils::EnterReadOnlyMode(MetaModel::GetConfig());
+ try {
+ //safe zone for db backup => cron is stopped/ itop in readonly
+ $bIsCmdbSourceInitialized = CMDBSource::GetMysqli() instanceof mysqli;
+ if (!$bIsCmdbSourceInitialized) {
+ $sErrorMsg = 'Cannot backup : CMDBSource not initialized !';
+ $this->LogError($sErrorMsg);
+ throw new CoreException($sErrorMsg);
+ }
+
+ $this->LogInfo("Creating backup: '$sTargetFile.tar.gz'");
+
+ $oArchive = new ITopArchiveTar($sTargetFile.'.tar.gz');
+
+ $sTmpFolder = APPROOT.'data/tmp-backup-'.rand(10000, getrandmax());
+ $aFiles = $this->PrepareFilesToBackup($sSourceConfigFile, $sTmpFolder);
+
+ $sFilesList = var_export($aFiles, true);
+ $this->LogInfo("backup: adding to archive files '$sFilesList'");
+ $bArchiveCreationResult = $oArchive->createModify($aFiles, '', $sTmpFolder);
+ if (!$bArchiveCreationResult) {
+ $sErrorMsg = 'Cannot backup : unable to create archive';
+ $this->LogError($sErrorMsg);
+ throw new BackupException($sErrorMsg);
+ }
+
+ $this->LogInfo("backup: removing tmp folder '$sTmpFolder'");
+ SetupUtils::rrmdir($sTmpFolder);
+ } finally {
+ if (! $bReadonlyBefore) {
+ SetupUtils::ExitReadOnlyMode();
+ } else {
+ //we are in the scope of main process that needs to handle/keep readonly mode (setup for example).
+ $this->LogInfo("Keep readonly mode after backup");
+ }
}
-
- $this->LogInfo("Creating backup: '$sTargetFile.tar.gz'");
-
- $oArchive = new ITopArchiveTar($sTargetFile.'.tar.gz');
-
- $sTmpFolder = APPROOT.'data/tmp-backup-'.rand(10000, getrandmax());
- $aFiles = $this->PrepareFilesToBackup($sSourceConfigFile, $sTmpFolder);
-
- $sFilesList = var_export($aFiles, true);
- $this->LogInfo("backup: adding to archive files '$sFilesList'");
- $bArchiveCreationResult = $oArchive->createModify($aFiles, '', $sTmpFolder);
- if (!$bArchiveCreationResult)
- {
- $sErrorMsg = 'Cannot backup : unable to create archive';
- $this->LogError($sErrorMsg);
- throw new BackupException($sErrorMsg);
- }
-
- $this->LogInfo("backup: removing tmp folder '$sTmpFolder'");
- SetupUtils::rrmdir($sTmpFolder);
}
/**
diff --git a/setup/modelfactory.class.inc.php b/setup/modelfactory.class.inc.php
index 97e5ff36c..d4b93d7f5 100644
--- a/setup/modelfactory.class.inc.php
+++ b/setup/modelfactory.class.inc.php
@@ -2581,6 +2581,10 @@ class MFDocument extends \Combodo\iTop\DesignDocument
public function GetNodes($sXPath, $oContextNode = null, $bSafe = true)
{
$oXPath = new DOMXPath($this);
+ // For Designer audit
+ $oXPath->registerNamespace("php", "http://php.net/xpath");
+ $oXPath->registerPhpFunctions();
+
if ($bSafe)
{
$sXPath .= "[not(@_alteration) or @_alteration!='removed']";
diff --git a/setup/setuputils.class.inc.php b/setup/setuputils.class.inc.php
index 770c2ade4..579b36450 100644
--- a/setup/setuputils.class.inc.php
+++ b/setup/setuputils.class.inc.php
@@ -1966,11 +1966,13 @@ JS
return APPROOT.'log/setup-queries-'.strftime('%Y-%m-%d_%H_%M').'.sql';
}
- public static function EnterMaintenanceMode($oConfig)
+ public static function EnterMaintenanceMode($oConfig): bool
{
+ $bPreviousMode = self::IsInMaintenanceMode();
@touch(MAINTENANCE_MODE_FILE);
self::Log("----> Entering maintenance mode");
self::WaitCronTermination($oConfig, "maintenance");
+ return $bPreviousMode;
}
public static function ExitMaintenanceMode($bLog = true)
@@ -1987,11 +1989,14 @@ JS
return file_exists(MAINTENANCE_MODE_FILE);
}
- public static function EnterReadOnlyMode($oConfig)
+ public static function EnterReadOnlyMode($oConfig): bool
{
+ $bPreviousMode = self::IsInReadOnlyMode();
@touch(READONLY_MODE_FILE);
self::Log("----> Entering read only mode");
self::WaitCronTermination($oConfig, "read only");
+
+ return $bPreviousMode;
}
public static function ExitReadOnlyMode($bLog = true)
@@ -2017,8 +2022,7 @@ JS
try
{
// Wait for cron to stop
- if (is_null($oConfig))
- {
+ if (is_null($oConfig) || ContextTag::Check(ContextTag::TAG_CRON)) {
return;
}
// Use mutex to check if cron is running
diff --git a/setup/wizardsteps.class.inc.php b/setup/wizardsteps.class.inc.php
index aafb9b3b5..027ded57d 100644
--- a/setup/wizardsteps.class.inc.php
+++ b/setup/wizardsteps.class.inc.php
@@ -720,7 +720,7 @@ CSS
foreach ($aLicenses as $oLicense)
{
$oPage->add(''.$oLicense->product.', © '.$oLicense->author.' is licensed under the '.$oLicense->license_type.' license. (Details)');
- $oPage->add('');
+ $oPage->add('');
$oPage->add_ready_script('$(".license_text a").attr("target", "_blank").addClass("no-arrow");');
$oPage->add_ready_script('$("#toggle_'.$index.'").on("click", function() { $("#license_'.$index.'").toggle(); } );');
$index++;
diff --git a/sources/Controller/AjaxRenderController.php b/sources/Controller/AjaxRenderController.php
index c91a26924..05532ae82 100644
--- a/sources/Controller/AjaxRenderController.php
+++ b/sources/Controller/AjaxRenderController.php
@@ -62,7 +62,7 @@ class AjaxRenderController
$oSet->SetShowObsoleteData($bShowObsoleteData);
$aResult["draw"] = $iDrawNumber;
$aResult["recordsTotal"] = $oSet->Count();
- $aResult["recordsFiltered"] = $oSet->Count();
+ $aResult["recordsFiltered"] = $aResult["recordsTotal"] ;
$aResult["data"] = [];
while ($aObject = $oSet->FetchAssoc()) {
$aObj = [];
@@ -79,7 +79,7 @@ class AjaxRenderController
}
}
}
- if (isset($aObj)) {
+ if (!empty($aObj)) {
if ($sIdName != "") {
if (isset($aObj[$sIdName])) {
$aObj["id"] = $aObj[$sIdName];
diff --git a/sources/Controller/Base/Layout/ActivityPanelController.php b/sources/Controller/Base/Layout/ActivityPanelController.php
index f9537d4dc..f0cda3f5d 100644
--- a/sources/Controller/Base/Layout/ActivityPanelController.php
+++ b/sources/Controller/Base/Layout/ActivityPanelController.php
@@ -116,6 +116,14 @@ class ActivityPanelController
'html_rendering' => $sEntryAsHtml,
];
}
+
+ // Invoke extensions after the update of the object from the activity form
+ /** @var \iApplicationUIExtension $oExtensionInstance */
+ foreach(MetaModel::EnumPlugins('iApplicationUIExtension') as $oExtensionInstance)
+ {
+ $oExtensionInstance->OnFormSubmit($oObject);
+ }
+
$oObject->DBWrite();
// Finalize inline images
diff --git a/sources/application/TwigBase/Controller/Controller.php b/sources/application/TwigBase/Controller/Controller.php
index 979e873b7..6389132a7 100644
--- a/sources/application/TwigBase/Controller/Controller.php
+++ b/sources/application/TwigBase/Controller/Controller.php
@@ -379,10 +379,17 @@ abstract class Controller
}
$aParams = array_merge($this->GetDefaultParameters(), $aParams);
$this->CreatePage($sPageType);
- $this->AddToPage($this->RenderTemplate($aParams, $sTemplateName, 'html'));
- $this->AddScriptToPage($this->RenderTemplate($aParams, $sTemplateName, 'js'));
- $this->AddReadyScriptToPage($this->RenderTemplate($aParams, $sTemplateName, 'ready.js'));
- $this->AddStyleToPage($this->RenderTemplate($aParams, $sTemplateName, 'css'));
+ $sHTMLContent = $this->RenderTemplate($aParams, $sTemplateName, 'html');
+ $this->AddToPage($sHTMLContent);
+ $sJSScript = $this->RenderTemplate($aParams, $sTemplateName, 'js');
+ $this->AddScriptToPage($sJSScript);
+ $sReadyScript = $this->RenderTemplate($aParams, $sTemplateName, 'ready.js');
+ $this->AddReadyScriptToPage($sReadyScript);
+ $sStyle = $this->RenderTemplate($aParams, $sTemplateName, 'css');
+ $this->AddStyleToPage($sStyle);
+ if (strlen($sHTMLContent) == 0 && strlen($sJSScript) == 0 && strlen($sReadyScript) == 0 && strlen($sStyle) == 0) {
+ IssueLog::Error("Missing TWIG template for $sTemplateName");
+ }
if (!empty($this->m_aAjaxTabs)) {
$this->m_oPage->AddTabContainer('TwigBaseTabContainer');
$this->m_oPage->SetCurrentTabContainer('TwigBaseTabContainer');
diff --git a/sources/application/UI/Base/Component/Alert/Alert.php b/sources/application/UI/Base/Component/Alert/Alert.php
index d7947d7ce..e25985cda 100644
--- a/sources/application/UI/Base/Component/Alert/Alert.php
+++ b/sources/application/UI/Base/Component/Alert/Alert.php
@@ -228,6 +228,10 @@ class Alert extends UIContentBlock
*/
public function IsCollapsible(): bool
{
+ if (empty($this->sTitle)) {
+ return false;
+ }
+
return $this->bIsCollapsible;
}
diff --git a/sources/application/UI/Base/Component/DataTable/DataTable.php b/sources/application/UI/Base/Component/DataTable/DataTable.php
index 201564677..5f6d3ef16 100644
--- a/sources/application/UI/Base/Component/DataTable/DataTable.php
+++ b/sources/application/UI/Base/Component/DataTable/DataTable.php
@@ -44,7 +44,10 @@ class DataTable extends UIContentBlock
protected $aAjaxData;
protected $aDisplayColumns;
protected $aResultColumns;
- protected $sJsonData;
+ /*
+ * array of data to display the first page
+ */
+ protected $aInitDisplayData;
/**
* Panel constructor.
@@ -101,6 +104,7 @@ class DataTable extends UIContentBlock
}
/**
+ * Get $aAjaxData as a JSON
* @return mixed
*/
public function GetJsonAjaxData(): string
@@ -179,11 +183,21 @@ class DataTable extends UIContentBlock
}
/**
+ * Get $aInitDisplayData as a JSON This is data of first page
* @return string
*/
- public function GetJsonData(): string
+ public function GetJsonInitDisplayData(): string
{
- return $this->sJsonData;
+ return json_encode($this->aInitDisplayData);
+ }
+
+ /**
+ * Get $aInitDisplayData
+ * @return array
+ */
+ public function GetInitDisplayData(): array
+ {
+ return $this->aInitDisplayData;
}
/**
@@ -191,9 +205,9 @@ class DataTable extends UIContentBlock
*
* @return $this
*/
- public function SetJsonData(string $sJSON)
+ public function SetInitDisplayData(array $aData)
{
- $this->sJsonData = $sJSON;
+ $this->aInitDisplayData = $aData;
return $this;
}
diff --git a/sources/application/UI/Base/Component/DataTable/DataTableUIBlockFactory.php b/sources/application/UI/Base/Component/DataTable/DataTableUIBlockFactory.php
index ac01b458e..8b155a7aa 100644
--- a/sources/application/UI/Base/Component/DataTable/DataTableUIBlockFactory.php
+++ b/sources/application/UI/Base/Component/DataTable/DataTableUIBlockFactory.php
@@ -131,7 +131,11 @@ class DataTableUIBlockFactory extends AbstractUIBlockFactory
}
if (!isset($aExtraParams['surround_with_panel']) || $aExtraParams['surround_with_panel']) {
- $iCount = $oSet->Count();
+ if(!empty($oDataTable->GetInitDisplayData()) && isset($oDataTable->GetInitDisplayData()['recordsTotal'])){
+ $iCount = $oDataTable->GetInitDisplayData()['recordsTotal'];
+ } else {
+ $iCount = $oSet->Count();
+ }
$sTitle = (isset($aExtraParams['panel_title'])) ? $aExtraParams['panel_title'] : "";
$oContainer = PanelUIBlockFactory::MakeForClass($oSet->GetClass(), $sTitle)->AddCSSClass('ibo-datatable-panel');
$oContainer->SetSubTitle(Dict::Format("UI:Pagination:HeaderNoSelection", $iCount));
@@ -438,7 +442,7 @@ class DataTableUIBlockFactory extends AbstractUIBlockFactory
]);
$oDataTable->SetDisplayColumns($aColumnDefinition);
$oDataTable->SetResultColumns($oCustomSettings->aColumns);
- $oDataTable->SetJsonData(json_encode(AjaxRenderController::GetDataForTable($oSet, $aClassAliases, $aColumnsToLoad, $sIdName, $aExtraParams)));
+ $oDataTable->SetInitDisplayData(AjaxRenderController::GetDataForTable($oSet, $aClassAliases, $aColumnsToLoad, $sIdName, $aExtraParams));
return $oDataTable;
}
@@ -670,7 +674,7 @@ class DataTableUIBlockFactory extends AbstractUIBlockFactory
]);
$oDataTable->SetDisplayColumns($aColumnDefinition);
$oDataTable->SetResultColumns($oCustomSettings->aColumns);
- $oDataTable->SetJsonData(json_encode(AjaxRenderController::GetDataForTable($oSet, $aClassAliases, $aColumnsToLoad, $sIdName, $aExtraParams)));
+ $oDataTable->SetInitDisplayData(AjaxRenderController::GetDataForTable($oSet, $aClassAliases, $aColumnsToLoad, $sIdName, $aExtraParams));
return $oDataTable;
}
@@ -713,10 +717,10 @@ class DataTableUIBlockFactory extends AbstractUIBlockFactory
$aColumnDefinition["data"] = "";
$aColumnDefinition["render"]["display"] = "";
if ($sSelectMode != "single") {
- $aColumnDefinition["render"]["display"] = $aColumnDefinition["render"]["display"] . " var oCheckboxElem = $('');";
+ $aColumnDefinition["render"]["display"] = $aColumnDefinition["render"]["display"] . " var oCheckboxElem = $('');";
}
else {
- $aColumnDefinition["render"]["display"] = $aColumnDefinition["render"]["display"] . " var oCheckboxElem = $('');";
+ $aColumnDefinition["render"]["display"] = $aColumnDefinition["render"]["display"] . " var oCheckboxElem = $('');";
}
$aColumnDefinition["render"]["display"] = $aColumnDefinition["render"]["display"] . " if (row.limited_access) { oCheckboxElem.html('-'); } else { oCheckboxElem.find(':input').attr('data-object-id', row.id).attr('data-target-object-id', row.target_id); }";
$aColumnDefinition["render"]["display"] = $aColumnDefinition["render"]["display"]. " return oCheckboxElem.prop('outerHTML'); ";
@@ -743,11 +747,6 @@ class DataTableUIBlockFactory extends AbstractUIBlockFactory
'attribute_label' => $aData['alias'],
];
$aColumnDefinition["data"] = $sClassAlias."/".$sAttCode;
- if (MetaModel::IsValidAttCode($sClassName, 'obsolescence_flag')) {
- $sDisplay = "let displayField = ''+row['".$sClassAlias."/friendlyname']+''; if (row['".$sClassAlias."/obsolescence_flag'].indexOf('no') == -1){displayField = ''+row['".$sClassAlias."/friendlyname']+'';} return displayField;";
- } else {
- $sDisplay = "let displayField = ''+row['".$sClassAlias."/friendlyname']+''; return displayField;";
- }
$aColumnDefinition["render"] = [
"display" => "return row['".$sClassAlias."/hyperlink'];",
"_" => $sClassAlias."/".$sAttCode,
diff --git a/sources/application/UI/Base/Component/Panel/Panel.php b/sources/application/UI/Base/Component/Panel/Panel.php
index ea3859f14..77db1bf2b 100644
--- a/sources/application/UI/Base/Component/Panel/Panel.php
+++ b/sources/application/UI/Base/Component/Panel/Panel.php
@@ -47,7 +47,7 @@ class Panel extends UIContentBlock
/** @inheritDoc */
public const REQUIRES_ANCESTORS_DEFAULT_CSS_FILES = true;
public const DEFAULT_HTML_TEMPLATE_REL_PATH = 'base/components/panel/layout';
- public const DEFAULT_JS_TEMPLATE_REL_PATH = 'base/components/panel/layout';
+ public const DEFAULT_JS_ON_READY_TEMPLATE_REL_PATH = 'base/components/panel/layout';
public const DEFAULT_JS_FILES_REL_PATH = [
'js/components/panel.js',
];
diff --git a/sources/application/UI/Base/Layout/ActivityPanel/ActivityPanelFactory.php b/sources/application/UI/Base/Layout/ActivityPanel/ActivityPanelFactory.php
index fde455a9d..2e7a17904 100644
--- a/sources/application/UI/Base/Layout/ActivityPanel/ActivityPanelFactory.php
+++ b/sources/application/UI/Base/Layout/ActivityPanel/ActivityPanelFactory.php
@@ -78,12 +78,42 @@ class ActivityPanelFactory
$oActivityPanel->SetCaseLogTabEntryForm($sCaseLogAttCode, CaseLogEntryFormFactory::MakeForCaselogTab($oObject, $sCaseLogAttCode, $sMode));
}
- // Retrieve case logs entries
+ // Retrieve CMDBChange of the log entries to find their origins
+ //
+ // IMPORTANT: We don't have an easy way to find a log entry's origin, so we have to cross it with the corresponding CMDBChange
+ // The following code is an attempt to do so, but it might not be bulletproof against missing CMDBChanges or future code evolutions
+ $oCaseLogEntriesOriginsSearch = DBObjectSearch::FromOQL('SELECT C, CO FROM CMDBChange AS C JOIN CMDBChangeOpSetAttributeCaseLog AS CO ON CO.change = C.id WHERE CO.objclass = :objclass AND CO.objkey = :objkey AND CO.attcode = :attcode');
+ $oCaseLogEntriesOriginsSearch->SetInternalParams([
+ 'objclass' => $sObjClass,
+ 'objkey' => $sObjId,
+ 'attcode' => $sCaseLogAttCode,
+ ]);
+
+ // - Results must be in the same order as the entries in the ormCaseLog (otherwise we would need to loop over the set to find the matching index, which would not be efficient)
+ $oCaseLogEntriesOriginsSet = new DBObjectSet($oCaseLogEntriesOriginsSearch, ['date' => false]);
+ $oCaseLogEntriesOriginsSet->OptimizeColumnLoad(['C' => ['origin'], 'CO' => ['lastentry']]);
+
+ // Retrieve log entries
/** @var \ormCaseLog $oCaseLog */
$oCaseLog = $oObject->Get($sCaseLogAttCode);
+
+ // Debug message to help understand why there could be anomalies on the log entries origins
+ if ($oCaseLog->GetEntryCount() !== $oCaseLogEntriesOriginsSet->Count()) {
+ IssueLog::Debug(static::class.": Number of log entries ({$oCaseLog->GetEntryCount()}) don't match number of corresponding CMDBChanges ({$oCaseLogEntriesOriginsSet->Count()}) for object {$sObjClass}::{$sObjId} / attribute {$sCaseLogAttCode}");
+ }
+
+ $iCurrentEntryIndex = $oCaseLog->GetLatestEntryIndex();
foreach ($oCaseLog->GetAsArray() as $aOrmEntry) {
$oCaseLogEntry = ActivityEntryFactory::MakeFromCaseLogEntryArray($sCaseLogAttCode, $aOrmEntry);
+
+ // Try to set the origin, only if we have the corresponding data
+ $aChangeRow = $oCaseLogEntriesOriginsSet->FetchAssoc();
+ if (($aChangeRow !== null) && ($aChangeRow['CO']->Get('lastentry') === $iCurrentEntryIndex)) {
+ $oCaseLogEntry->SetOrigin($aChangeRow['C']->Get('origin'));
+ }
+
$oActivityPanel->AddEntry($oCaseLogEntry);
+ $iCurrentEntryIndex--;
}
}
diff --git a/sources/application/WebPage/UnauthenticatedWebPage.php b/sources/application/WebPage/UnauthenticatedWebPage.php
index d828a9d77..4f8541a30 100644
--- a/sources/application/WebPage/UnauthenticatedWebPage.php
+++ b/sources/application/WebPage/UnauthenticatedWebPage.php
@@ -60,8 +60,6 @@ class UnauthenticatedWebPage extends NiceWebPage
// TODO 3.0 Find a clever way to allow theme customization for unauthenticated webpages
private $sCustomThemeUrl;
- /** @var array $aReadyScripts */
- protected $aReadyScripts;
/**
* @inheritDoc
@@ -71,7 +69,6 @@ class UnauthenticatedWebPage extends NiceWebPage
{
parent::__construct($s_title, $bPrintable);
- $this->aReadyScripts = array();
$this->sContent = '';
$this->sPanelTitle = '';
$this->sPanelIcon = utils::GetAbsoluteUrlAppRoot().'images/itop-logo.png';
@@ -109,14 +106,6 @@ class UnauthenticatedWebPage extends NiceWebPage
$this->sContent .= $sHtml;
}
- /**
- * @inheritdoc
- */
- public function add_ready_script($sScript)
- {
- $this->aReadyScripts[] = $sScript;
- }
-
/**
* @inheritdoc
*/
diff --git a/templates/base/components/breadcrumbs/layout.html.twig b/templates/base/components/breadcrumbs/layout.html.twig
index ea2de4ed9..665952d42 100644
--- a/templates/base/components/breadcrumbs/layout.html.twig
+++ b/templates/base/components/breadcrumbs/layout.html.twig
@@ -1 +1,11 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/templates/base/components/datatable/layout.ready.js.twig b/templates/base/components/datatable/layout.ready.js.twig
index 6da80ab43..2db027192 100644
--- a/templates/base/components/datatable/layout.ready.js.twig
+++ b/templates/base/components/datatable/layout.ready.js.twig
@@ -342,7 +342,7 @@ var aOptions{{ sListIDForVarSuffix }} = {
sSelectMode: "{{ oUIBlock.GetOption("select_mode") }}",
sSelectedItemsName: "oSelectedItems{{ sListId }}",
sViewLink: '{{ oUIBlock.GetOption("bViewLink") }}',
- iPageSize: '{{ oUIBlock.GetOption("iPageSize") }}',
+ iPageSize: ' {{ iPageSize }}',
oClassAliases: JSON.parse('{{ oUIBlock.GetOption("oClassAliases") |raw }}'),
sTableId: '{{ oUIBlock.GetOption("sTableId") }}',
sRenderUrl: "{{ oUIBlock.GetAjaxUrl() }}",
@@ -351,7 +351,8 @@ var aOptions{{ sListIDForVarSuffix }} = {
oLabels: {moveup: "{{ 'UI:Button:MoveUp'|dict_s }}", movedown: "{{ 'UI:Button:MoveDown'|dict_s }}"},
};
-if ($('#datatable_dlg_{{ oUIBlock.GetId() }}').hasClass('itop-datatable')) {
+if ($('#datatable_dlg_{{ oUIBlock.GetId() }}').hasClass('itop-datatable'))
+{
$('#datatable_dlg_{{ oUIBlock.GetId() }}').DataTableSettings('destroy');
}
$('#datatable_dlg_{{ oUIBlock.GetId() }}').DataTableSettings(aOptions{{ sListIDForVarSuffix }});
diff --git a/templates/base/components/panel/layout.js.twig b/templates/base/components/panel/layout.ready.js.twig
similarity index 100%
rename from templates/base/components/panel/layout.js.twig
rename to templates/base/components/panel/layout.ready.js.twig
diff --git a/templates/base/layouts/activity-panel/caselog-entry-form/layout.html.twig b/templates/base/layouts/activity-panel/caselog-entry-form/layout.html.twig
index 715e534a7..c91cfe114 100644
--- a/templates/base/layouts/activity-panel/caselog-entry-form/layout.html.twig
+++ b/templates/base/layouts/activity-panel/caselog-entry-form/layout.html.twig
@@ -24,6 +24,8 @@
{{ render_block(oUIBlock.GetTextInput(), {aPage: aPage}) }}
+
diff --git a/templates/base/layouts/tab-container/layout.html.twig b/templates/base/layouts/tab-container/layout.html.twig
index 84cb726e6..12f074318 100644
--- a/templates/base/layouts/tab-container/layout.html.twig
+++ b/templates/base/layouts/tab-container/layout.html.twig
@@ -31,7 +31,7 @@
{% endif %}
{% endblock %}
{% endfor %}
-