diff --git a/css/backoffice/components/_title.scss b/css/backoffice/components/_title.scss index 42a1864af..8e753c5ff 100644 --- a/css/backoffice/components/_title.scss +++ b/css/backoffice/components/_title.scss @@ -66,4 +66,11 @@ $ibo-title--status-dot--border-radius: $ibo-border-radius-full !default; } .ibo-title--status-dot + .ibo-title--status-label { margin-left: $ibo-title--status-dot--spacing; +} + +@each $sType, $aColors in $ibo-lifecycle-states-colors { + .ibo-title--status-dot.ibo-is-state-#{$sType} { + color: map-get($aColors, 'secondary-color'); + background-color: map-get($aColors, 'primary-color'); + } } \ No newline at end of file diff --git a/css/backoffice/utils/variables/_color.scss b/css/backoffice/utils/variables/_color.scss index 19258903b..f67f75b2c 100644 --- a/css/backoffice/utils/variables/_color.scss +++ b/css/backoffice/utils/variables/_color.scss @@ -252,7 +252,7 @@ $ibo-color-danger-700: $ibo-color-red-700 !default; $ibo-color-danger-800: $ibo-color-red-800 !default; $ibo-color-danger-900: $ibo-color-red-900 !default; -$ibo-caselog-highlight-color-1: $ibo-color-green-700!default; +$ibo-caselog-highlight-color-1: $ibo-color-green-700 !default; $ibo-caselog-highlight-color-2: $ibo-color-pink-700 !default; $ibo-caselog-highlight-color-3: $ibo-color-blue-600 !default; $ibo-caselog-highlight-color-4: $ibo-color-orange-400 !default; @@ -327,4 +327,80 @@ $ibo-caselog-highlight-colors: ($ibo-caselog-highlight-color-1, $ibo-caselog-hig --ibo-caselog-color-highlight-5: #{$ibo-caselog-highlight-color-5}; } -$ibo-colors: ('grey', 'blue-grey', 'blue', 'cyan', 'green', 'orange', 'red', 'pink', 'primary', 'secondary', 'information', 'success', 'warning', 'danger'); \ No newline at end of file +$ibo-colors: ('grey', 'blue-grey', 'blue', 'cyan', 'green', 'orange', 'red', 'pink', 'primary', 'secondary', 'information', 'success', 'warning', 'danger'); + +/* Lifecycle palette */ +/* - For workflow */ +$ibo-lifecycle-new-state-primary-color: $ibo-color-blue-800 !default; +$ibo-lifecycle-new-state-secondary-color: $ibo-color-white-100 !default; +$ibo-lifecycle-neutral-state-primary-color: $ibo-color-blue-800 !default; +$ibo-lifecycle-neutral-state-secondary-color: $ibo-color-white-100 !default; +$ibo-lifecycle-waiting-state-primary-color: $ibo-color-orange-400 !default; +$ibo-lifecycle-waiting-state-secondary-color: $ibo-color-white-100 !default; +$ibo-lifecycle-success-state-primary-color: $ibo-color-green-700 !default; +$ibo-lifecycle-success-state-secondary-color: $ibo-color-white-100 !default; +$ibo-lifecycle-failure-state-primary-color: $ibo-color-pink-700 !default; +$ibo-lifecycle-failure-state-secondary-color: $ibo-color-white-100 !default; +$ibo-lifecycle-frozen-state-primary-color: $ibo-color-grey-200 !default; +$ibo-lifecycle-frozen-state-secondary-color: $ibo-color-grey-700 !default; +/* - For basic lifecycle */ +$ibo-lifecycle-active-state-primary-color: $ibo-color-green-700 !default; +$ibo-lifecycle-active-state-secondary-color: $ibo-color-white-100 !default; +$ibo-lifecycle-inactive-state-primary-color: $ibo-color-orange-400 !default; +$ibo-lifecycle-inactive-state-secondary-color: $ibo-color-white-100 !default; + +:root{ + --ibo-lifecycle-new-state-primary-color: #{$ibo-lifecycle-new-state-primary-color}; + --ibo-lifecycle-new-state-secondary-color: #{$ibo-lifecycle-new-state-secondary-color}; + --ibo-lifecycle-neutral-state-primary-color: #{$ibo-lifecycle-neutral-state-primary-color}; + --ibo-lifecycle-neutral-state-secondary-color: #{$ibo-lifecycle-neutral-state-secondary-color}; + --ibo-lifecycle-waiting-state-primary-color: #{$ibo-lifecycle-waiting-state-primary-color}; + --ibo-lifecycle-waiting-state-secondary-color: #{$ibo-lifecycle-waiting-state-secondary-color}; + --ibo-lifecycle-success-state-primary-color: #{$ibo-lifecycle-success-state-primary-color}; + --ibo-lifecycle-success-state-secondary-color: #{$ibo-lifecycle-success-state-secondary-color}; + --ibo-lifecycle-failure-state-primary-color: #{$ibo-lifecycle-failure-state-primary-color}; + --ibo-lifecycle-failure-state-secondary-color: #{$ibo-lifecycle-failure-state-secondary-color}; + --ibo-lifecycle-frozen-state-primary-color: #{$ibo-lifecycle-frozen-state-primary-color}; + --ibo-lifecycle-frozen-state-secondary-color: #{$ibo-lifecycle-frozen-state-secondary-color}; + + --ibo-lifecycle-active-state-primary-color: #{$ibo-lifecycle-active-state-primary-color}; + --ibo-lifecycle-active-state-secondary-color: #{$ibo-lifecycle-active-state-secondary-color}; + --ibo-lifecycle-inactive-state-primary-color: #{$ibo-lifecycle-inactive-state-primary-color}; + --ibo-lifecycle-inactive-state-secondary-color: #{$ibo-lifecycle-inactive-state-secondary-color}; +} + +$ibo-lifecycle-states-colors: ( + 'new': ( + 'primary-color': $ibo-lifecycle-new-state-primary-color, + 'secondary-color': $ibo-lifecycle-new-state-secondary-color, + ), + 'neutral': ( + 'primary-color': $ibo-lifecycle-neutral-state-primary-color, + 'secondary-color': $ibo-lifecycle-neutral-state-secondary-color, + ), + 'waiting': ( + 'primary-color': $ibo-lifecycle-waiting-state-primary-color, + 'secondary-color': $ibo-lifecycle-waiting-state-secondary-color, + ), + 'success': ( + 'primary-color': $ibo-lifecycle-success-state-primary-color, + 'secondary-color': $ibo-lifecycle-success-state-secondary-color, + ), + 'failure': ( + 'primary-color': $ibo-lifecycle-failure-state-primary-color, + 'secondary-color': $ibo-lifecycle-failure-state-secondary-color, + ), + 'frozen': ( + 'primary-color': $ibo-lifecycle-frozen-state-primary-color, + 'secondary-color': $ibo-lifecycle-frozen-state-secondary-color, + ), + + 'active': ( + 'primary-color': $ibo-lifecycle-active-state-primary-color, + 'secondary-color': $ibo-lifecycle-active-state-secondary-color, + ), + 'inactive': ( + 'primary-color': $ibo-lifecycle-inactive-state-primary-color, + 'secondary-color': $ibo-lifecycle-inactive-state-secondary-color, + ), +); \ No newline at end of file diff --git a/sources/application/UI/Component/Title/TitleFactory.php b/sources/application/UI/Component/Title/TitleFactory.php index 6c660d486..30f29d4fc 100644 --- a/sources/application/UI/Component/Title/TitleFactory.php +++ b/sources/application/UI/Component/Title/TitleFactory.php @@ -33,9 +33,42 @@ class TitleFactory $sStatusAttCode = MetaModel::GetStateAttributeCode($sObjClass); if(!empty($sStatusAttCode)) { + $sStateCode = $oObject->GetState(); $sStatusLabel = $oObject->GetStateLabel(); // TODO 2.8.0 : Dehardcode this - $sStatusColor = 'green'; + switch ($sStateCode) + { + case 'new': + $sStatusColor = 'new'; + break; + + case 'waiting_for_approval': + case 'pending': + $sStatusColor = 'waiting'; + break; + + case 'escalated_tto': + case 'escalated_ttr': + case 'rejected': + $sStatusColor = 'failure'; + break; + + case 'resolved': + $sStatusColor = 'success'; + break; + + case 'closed': + $sStatusColor = 'frozen'; + break; + + case 'approved': + case 'assigned': + case 'dispatched': + case 'redispatched': + default: + $sStatusColor = 'neutral'; + break; + } $oTitle->SetStatus($sStatusAttCode, $sStatusLabel, $sStatusColor); } diff --git a/templates/components/title/titleforobjectdetails.html.twig b/templates/components/title/titleforobjectdetails.html.twig index 9cdb2f743..70003d23d 100644 --- a/templates/components/title/titleforobjectdetails.html.twig +++ b/templates/components/title/titleforobjectdetails.html.twig @@ -5,7 +5,7 @@ {% block iboPageTitleText %}

{{ oUIBlock.GetClassName() }} {{ oUIBlock.GetObjectName()|raw }}

- + {{ oUIBlock.GetStatusLabel() }}
{% endblock %} \ No newline at end of file