mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
Merge remote-tracking branch 'origin/support/3.2' into develop
This commit is contained in:
@@ -49,10 +49,7 @@ $ibo-input-select--autocomplete-item-image--border: 1px solid $ibo-color-grey-60
|
||||
.ibo-input-select {
|
||||
display: inline-flex;
|
||||
min-width: $ibo-input-select--value--min-midth;
|
||||
|
||||
&:not(.ibo-input-select-autocomplete):not(.ibo-input-selectize) {
|
||||
appearance: none;
|
||||
}
|
||||
appearance: none;
|
||||
|
||||
&.ibo-input-selectize {
|
||||
padding-right: 0;
|
||||
@@ -108,7 +105,7 @@ $ibo-input-select--autocomplete-item-image--border: 1px solid $ibo-color-grey-60
|
||||
outline: none !important; /* Overwrite browsers default focus outline */
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
&.input-active{
|
||||
border: 1px solid $ibo-input--focus--border-color;
|
||||
}
|
||||
@@ -123,15 +120,16 @@ $ibo-input-select--autocomplete-item-image--border: 1px solid $ibo-color-grey-60
|
||||
}
|
||||
.ibo-input-select-wrapper::after{
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
content: "\f0d7";
|
||||
font-family: "Font Awesome 5 Free";
|
||||
font-weight: 600;
|
||||
|
||||
|
||||
height: $ibo-input-select-wrapper--after--height;
|
||||
margin-left: $ibo-input-select-wrapper--after--margin-left;
|
||||
margin-top: $ibo-input-select-wrapper--after--margin-top;
|
||||
padding-top: $ibo-input-select-wrapper--after--padding-top;
|
||||
|
||||
|
||||
background-color: $ibo-input-select-wrapper--after--background-color;
|
||||
color: $ibo-input-select-wrapper--after--color;
|
||||
pointer-events: none;
|
||||
@@ -146,6 +144,7 @@ $ibo-input-select--autocomplete-item-image--border: 1px solid $ibo-color-grey-60
|
||||
|
||||
.ibo-input-select-wrapper--with-buttons:not(.ibo-input-select-autocomplete-wrapper)::after {
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
content: "\f0d7";
|
||||
font-family: "Font Awesome 5 Free";
|
||||
font-weight: 600;
|
||||
@@ -163,6 +162,7 @@ $ibo-input-select--autocomplete-item-image--border: 1px solid $ibo-color-grey-60
|
||||
}
|
||||
.ibo-input-select--action-buttons{
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
display: flex;
|
||||
height: $ibo-input-select--action-button--height;
|
||||
margin-top: $ibo-input-select--action-button--margin-top;
|
||||
|
||||
@@ -8,7 +8,11 @@ $ibo-input--width: 100% !default;
|
||||
|
||||
$ibo-input--color: $ibo-color-grey-900 !default;
|
||||
$ibo-input--background-color: $ibo-color-white-100 !default;
|
||||
|
||||
$ibo-input--border-color: $ibo-color-grey-500 !default;
|
||||
$ibo-input--border-size: 1px !default;
|
||||
$ibo-input--border-style: solid !default;
|
||||
$ibo-input--border: $ibo-input--border-size $ibo-input--border-style $ibo-input--border-color !default;
|
||||
|
||||
$ibo-input--padding-x: 10px !default;
|
||||
$ibo-input--padding-y: $ibo-spacing-0 !default;
|
||||
@@ -34,13 +38,13 @@ $ibo-input--margin-x: $ibo-spacing-200 !default;
|
||||
background-color: $ibo-input--background-color;
|
||||
color: $ibo-input--color;
|
||||
padding: $ibo-input--padding-y $ibo-input--padding-x;
|
||||
border: 1px solid $ibo-input--border-color;
|
||||
border: $ibo-input--border;
|
||||
border-radius: $ibo-input--border-radius;
|
||||
|
||||
@extend %ibo-font-ral-nor-150;
|
||||
|
||||
&:focus{
|
||||
border: 1px solid $ibo-input--focus--border-color;
|
||||
border-color: $ibo-input--focus--border-color;
|
||||
}
|
||||
&:disabled{
|
||||
background-color: $ibo-input--disabled--background-color;
|
||||
@@ -54,8 +58,8 @@ textarea.ibo-input{
|
||||
height:unset;
|
||||
}
|
||||
.ibo-input-wrapper.is-error, .ibo-input-field-wrapper.is-error {
|
||||
.ibo-input, .ibo-input-vanilla, .cke, textarea {
|
||||
border: 1px solid $ibo-input-wrapper--is-error--border-color;
|
||||
.ibo-input, .ibo-input-vanilla, .cke, textarea {
|
||||
border-color: $ibo-input-wrapper--is-error--border-color;
|
||||
}
|
||||
.ibo-input-vanilla input{
|
||||
border: 0;
|
||||
|
||||
109
css/backoffice/vendors/_selectize.scss
vendored
109
css/backoffice/vendors/_selectize.scss
vendored
@@ -21,82 +21,87 @@ $ibo-vendors-selectize--item--ignore-partial--background-color: $ibo-color-grey-
|
||||
|
||||
$ibo-vendors-selectize--input-error--border: 1px solid $ibo-color-red-600 !default;
|
||||
|
||||
.selectize-dropdown-content {
|
||||
max-height: unset; /* Overloaded as it will be handled by the _input-select.scss partial */
|
||||
}
|
||||
.selectize-input input{
|
||||
color: $ibo-vendors-selectize-input--color;
|
||||
.selectize-control.single .selectize-input {
|
||||
box-shadow: unset;
|
||||
background-color: unset;
|
||||
background-image: unset;
|
||||
background-repeat: unset;
|
||||
}
|
||||
|
||||
.selectize-input,
|
||||
.selectize-control.single .selectize-input.input-active {
|
||||
background: unset;
|
||||
cursor: text;
|
||||
display: inline-flex;
|
||||
}
|
||||
|
||||
.selectize-control.plugin-combodo_add_button{
|
||||
display: flex;
|
||||
.selectize-control.single .selectize-input.dropdown-active:after {
|
||||
margin-top: unset;
|
||||
border-width: unset;
|
||||
border-color: unset;
|
||||
}
|
||||
.selectize-control.single .selectize-input:after {
|
||||
content: unset;
|
||||
}
|
||||
.selectize-input::after {
|
||||
content: unset;
|
||||
}
|
||||
|
||||
.selectize-add-option {
|
||||
display: inline-flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
position: absolute;
|
||||
right: $ibo-vendors-selectize-control--plugin-add-button--add-option--right;
|
||||
|
||||
height: $ibo-vendors-selectize-control--plugin-add-button--add-option--height;
|
||||
width: $ibo-vendors-selectize-control--plugin-add-button--add-option--width;
|
||||
z-index: 1;
|
||||
|
||||
color: $ibo-vendors-selectize-control--plugin-add-button--add-option--color;
|
||||
@extend %ibo-font-size-100;
|
||||
.selectize-input>* {
|
||||
display: inline-flex;
|
||||
}
|
||||
|
||||
.selectize-control.single .selectize-input, .selectize-dropdown.single {
|
||||
border-color: $ibo-color-grey-500;
|
||||
}
|
||||
|
||||
.selectize-dropdown {
|
||||
.selected,
|
||||
.active,
|
||||
.active:not(.selected){
|
||||
background: #f5fafd;
|
||||
color: #495c68;
|
||||
}
|
||||
|
||||
[data-selectable],
|
||||
.optgroup-header {
|
||||
padding: 5px 8px;
|
||||
}
|
||||
|
||||
.option {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Simple options renderer
|
||||
|
||||
.simple-option-renderer--container {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.simple-option-renderer--container--icon {
|
||||
width: 25px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.simple-option-renderer--container--label {
|
||||
margin-left: 3px;
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.selectize-input{
|
||||
.attribute-set-item{
|
||||
>* {
|
||||
// Bulk modification: add / remove / partial items states
|
||||
.selectize-input {
|
||||
.attribute-set-item {
|
||||
> * {
|
||||
display: inline;
|
||||
}
|
||||
&.item-add::before,&.item-remove::before{
|
||||
&.item-add::before,&.item-remove::before {
|
||||
@extend %fa-solid-base;
|
||||
margin-right: $ibo-vendors-selectize--item--icon--margin-right;
|
||||
}
|
||||
&.item-add{
|
||||
&.item-add {
|
||||
background-color: $ibo-vendors-selectize--item--add--background-color !important;
|
||||
&::before{
|
||||
&::before {
|
||||
color: $ibo-vendors-selectize--item--add--icon--color;
|
||||
content: '\f067';
|
||||
}
|
||||
}
|
||||
&.item-remove{
|
||||
&.item-remove {
|
||||
background-color: $ibo-vendors-selectize--item--remove--background-color !important;
|
||||
&::before{
|
||||
&::before {
|
||||
color: $ibo-vendors-selectize--item--remove--icon--color;
|
||||
content: '\f1f8';
|
||||
}
|
||||
}
|
||||
&.item-ignore-partial{
|
||||
&.item-ignore-partial {
|
||||
background-color: $ibo-vendors-selectize--item--ignore-partial--background-color !important;
|
||||
}
|
||||
}
|
||||
&.selectize-input-error{
|
||||
&.selectize-input-error {
|
||||
border: $ibo-vendors-selectize--input-error--border;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.2">
|
||||
<branding>
|
||||
<themes>
|
||||
<theme id="fullmoon-high-contrast" _delta="define">
|
||||
<variables>
|
||||
</variables>
|
||||
<imports>
|
||||
<import id="fullmoon-high-contrast-scss-variables" xsi:type="variables">combodo-backoffice-fullmoon-high-contrast-theme/scss/scss-variables.scss</import>
|
||||
</imports>
|
||||
<stylesheets>
|
||||
<stylesheet id="fullmoon">../css/backoffice/main.scss</stylesheet>
|
||||
<stylesheet id="high-contrast-stylesheet">combodo-backoffice-fullmoon-high-contrast-theme/scss/stylesheet.scss</stylesheet>
|
||||
</stylesheets>
|
||||
<precompiled_stylesheet>combodo-backoffice-fullmoon-high-contrast-theme/precompiled-themes/main.css</precompiled_stylesheet>
|
||||
</theme>
|
||||
</themes>
|
||||
</branding>
|
||||
</itop_design>
|
||||
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
/**
|
||||
* Localized data
|
||||
*
|
||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*
|
||||
* This file is part of iTop.
|
||||
*
|
||||
* iTop is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* iTop is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with iTop. If not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', array(
|
||||
'theme:fullmoon-high-contrast' => 'Fullmoon (High contrast)',
|
||||
));
|
||||
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
/**
|
||||
* Localized data
|
||||
*
|
||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*
|
||||
* This file is part of iTop.
|
||||
*
|
||||
* iTop is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* iTop is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with iTop. If not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
Dict::Add('FR FR', 'French', 'Français', array(
|
||||
'theme:fullmoon-high-contrast' => 'Fullmoon (Contraste élevé)',
|
||||
));
|
||||
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
//
|
||||
// iTop module definition file
|
||||
//
|
||||
|
||||
SetupWebPage::AddModule(
|
||||
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
|
||||
'combodo-backoffice-fullmoon-high-contrast-theme/3.2.0',
|
||||
array(
|
||||
// Identification
|
||||
//
|
||||
'label' => 'Backoffice: Fullmoon with high contrast accessibility theme',
|
||||
'category' => 'business',
|
||||
|
||||
// Setup
|
||||
//
|
||||
'dependencies' => array(
|
||||
|
||||
),
|
||||
'mandatory' => true,
|
||||
'visible' => false,
|
||||
|
||||
// Components
|
||||
//
|
||||
'datamodel' => array(
|
||||
),
|
||||
'webservice' => array(
|
||||
|
||||
),
|
||||
'data.struct' => array(
|
||||
// add your 'structure' definition XML files here,
|
||||
),
|
||||
'data.sample' => array(
|
||||
// add your sample data XML files here,
|
||||
),
|
||||
|
||||
// Documentation
|
||||
//
|
||||
'doc.manual_setup' => '', // hyperlink to manual setup documentation, if any
|
||||
'doc.more_information' => '', // hyperlink to more information, if any
|
||||
|
||||
// Default settings
|
||||
//
|
||||
'settings' => array(
|
||||
// Module specific settings go here, if any
|
||||
),
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
?>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,145 @@
|
||||
$ibo-high-contrast--thin-border: solid 1px $ibo-color-grey-900 !default;
|
||||
$ibo-high-contrast--medium-border: solid 2px $ibo-color-grey-900 !default;
|
||||
|
||||
$ibo-alert--icon--font-size: 3rem !default;
|
||||
$ibo-alert--icon--top: calc(50% - #{$ibo-alert--icon--font-size} / 2) !default;
|
||||
$ibo-alert--icon--left: $ibo-spacing-500 !default;
|
||||
$ibo-alert--icon--opacity: 0.8 !default;
|
||||
$ibo-alert--icons: (
|
||||
'success': '\f00c',
|
||||
'information': '\f129',
|
||||
'warning': '\f12a',
|
||||
'danger': '\f071',
|
||||
'failure': '\f071',
|
||||
'error': '\f071',
|
||||
) !default;
|
||||
|
||||
$ibo-toast--icon--font-size: 2rem !default;
|
||||
$ibo-toast--icon--top: calc(50% - #{$ibo-toast--icon--font-size} / 2) !default;
|
||||
$ibo-toast--icon--left: $ibo-spacing-400 !default;
|
||||
|
||||
|
||||
@each $sName, $sIcon in $ibo-alert--icons {
|
||||
%ibo-alert-#{$sName}, .ibo-alert.ibo-is-#{$sName} {
|
||||
&::after {
|
||||
content: $sIcon;
|
||||
@extend %fa-solid-base;
|
||||
position: absolute;
|
||||
top: $ibo-alert--icon--top;
|
||||
left: $ibo-alert--icon--left;
|
||||
opacity: $ibo-alert--icon--opacity;
|
||||
font-size: $ibo-alert--icon--font-size;
|
||||
width: $ibo-alert--icon--font-size;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.ibo-alert--body, .ibo-alert--title {
|
||||
padding-left: calc(#{$ibo-alert--icon--left} + #{$ibo-alert--icon--font-size});
|
||||
}
|
||||
}
|
||||
|
||||
.ibo-toast.ibo-is-#{$sName} {
|
||||
&::after{
|
||||
font-size: $ibo-toast--icon--font-size !important;
|
||||
top: $ibo-toast--icon--top !important;
|
||||
left: $ibo-toast--icon--left !important;
|
||||
width: $ibo-toast--icon--font-size !important;
|
||||
}
|
||||
padding-left: calc(#{$ibo-toast--padding-left} / 2 + #{$ibo-toast--icon--left} + #{$ibo-toast--icon--font-size});
|
||||
}
|
||||
}
|
||||
|
||||
.ibo-navigation-menu--notifications--item--new-message-indicator{
|
||||
border: none !important;
|
||||
background-color: transparent !important;
|
||||
&.ibo-is-priority-1::before{
|
||||
content: "\f12a \f12a \f12a";
|
||||
@extend %fa-solid-base;
|
||||
color: $ibo-color-danger-900;
|
||||
}
|
||||
&.ibo-is-priority-2::before{
|
||||
content: "\f12a \f12a";
|
||||
@extend %fa-solid-base;
|
||||
color: $ibo-color-warning-900;
|
||||
}
|
||||
&.ibo-is-priority-3::before{
|
||||
content: "\f12a";
|
||||
@extend %fa-solid-base;
|
||||
color: $ibo-color-success-900;
|
||||
}
|
||||
&.ibo-is-priority-4::before{
|
||||
content: "\f129";
|
||||
@extend %fa-solid-base;
|
||||
color: $ibo-color-information-900;
|
||||
}
|
||||
}
|
||||
|
||||
.ibo-navigation-menu--menu-nodes ul li > a:hover, .ibo-navigation-menu--menu-node-counter{
|
||||
border: $ibo-high-contrast--thin-border;
|
||||
}
|
||||
|
||||
.ibo-top-bar{
|
||||
box-shadow: none;
|
||||
border-bottom: $ibo-high-contrast--medium-border;
|
||||
}
|
||||
.ibo-breadcrumbs--item-icon > span, .ibo-breadcrumbs--item-icon > img{
|
||||
opacity: 1 !important;
|
||||
}
|
||||
.ibo-tab-container--tabs-list{
|
||||
border-bottom: $ibo-high-contrast--thin-border;
|
||||
}
|
||||
.ibo-tab-container--extra-tabs-list{
|
||||
border: $ibo-high-contrast--thin-border;
|
||||
}
|
||||
.ibo-datatable tbody > tr {
|
||||
border-bottom: $ibo-high-contrast--thin-border;
|
||||
}
|
||||
|
||||
.ibo-activity-panel--tab-toolbar{
|
||||
border-bottom: $ibo-high-contrast--thin-border;
|
||||
border-top: $ibo-high-contrast--thin-border;
|
||||
}
|
||||
.ibo-activity-entry--main-information{
|
||||
border: $ibo-high-contrast--thin-border;
|
||||
}
|
||||
.ibo-activity-entry--medallion.ibo-has-image{
|
||||
box-shadow: none;
|
||||
border: $ibo-high-contrast--thin-border;
|
||||
}
|
||||
.ibo-activity-panel--tab-toggler.ibo-is-active .ibo-activity-panel--tab-title{
|
||||
border-left: $ibo-high-contrast--thin-border;
|
||||
border-right: $ibo-high-contrast--thin-border;
|
||||
font-weight: 800;
|
||||
}
|
||||
.ibo-button{
|
||||
border: $ibo-high-contrast--thin-border;
|
||||
}
|
||||
@each $sColor, $aColorValues in $ibo-alert-colors {
|
||||
$highlight-color: nth($aColorValues, 2);
|
||||
%ibo-alert-#{$sColor}, .ibo-alert.ibo-is-#{$sColor} {
|
||||
border: 1px solid $highlight-color;
|
||||
}
|
||||
}
|
||||
|
||||
.ibo-pill{
|
||||
border: 1px solid var(--ibo-main-color--900);
|
||||
}
|
||||
|
||||
@each $sType, $aColors in $ibo-pill-states-colors {
|
||||
.ibo-pill.ibo-is-#{$sType} {
|
||||
border: 1px solid map-get($aColors, 'secondary-color');
|
||||
}
|
||||
}
|
||||
|
||||
.ibo-quick-create, .ibo-global-search{
|
||||
border-left: $ibo-high-contrast--thin-border;
|
||||
border-right: $ibo-high-contrast--thin-border;
|
||||
}
|
||||
|
||||
.ibo-popover-menu{
|
||||
border: $ibo-high-contrast--thin-border;
|
||||
}
|
||||
|
||||
.ibo-popover-menu--item:not(:last-child){
|
||||
border-bottom: $ibo-high-contrast--thin-border;
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.2">
|
||||
<branding>
|
||||
<themes>
|
||||
<theme id="fullmoon-protanopia-deuteranopia" _delta="define">
|
||||
<variables>
|
||||
</variables>
|
||||
<imports>
|
||||
<import id="fullmoon-prota-deutera-scss-variables" xsi:type="variables">combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/scss/scss-variables.scss</import>
|
||||
</imports>
|
||||
<stylesheets>
|
||||
<stylesheet id="fullmoon">../css/backoffice/main.scss</stylesheet>
|
||||
<stylesheet id="stylesheet">combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/scss/stylesheet.scss</stylesheet>
|
||||
</stylesheets>
|
||||
<precompiled_stylesheet>combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/precompiled-themes/main.css</precompiled_stylesheet>
|
||||
</theme>
|
||||
</themes>
|
||||
</branding>
|
||||
</itop_design>
|
||||
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
/**
|
||||
* Localized data
|
||||
*
|
||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*
|
||||
* This file is part of iTop.
|
||||
*
|
||||
* iTop is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* iTop is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with iTop. If not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', array(
|
||||
'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)'
|
||||
));
|
||||
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
/**
|
||||
* Localized data
|
||||
*
|
||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*
|
||||
* This file is part of iTop.
|
||||
*
|
||||
* iTop is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* iTop is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with iTop. If not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
Dict::Add('FR FR', 'French', 'Français', array(
|
||||
'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopie et Deuteranopie)'
|
||||
));
|
||||
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
//
|
||||
// iTop module definition file
|
||||
//
|
||||
|
||||
SetupWebPage::AddModule(
|
||||
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
|
||||
'combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/3.2.0',
|
||||
array(
|
||||
// Identification
|
||||
//
|
||||
'label' => 'Backoffice: Fullmoon with protonopia & deuteranopia accessibility theme',
|
||||
'category' => 'business',
|
||||
|
||||
// Setup
|
||||
//
|
||||
'dependencies' => array(
|
||||
|
||||
),
|
||||
'mandatory' => true,
|
||||
'visible' => false,
|
||||
|
||||
// Components
|
||||
//
|
||||
'datamodel' => array(
|
||||
),
|
||||
'webservice' => array(
|
||||
|
||||
),
|
||||
'data.struct' => array(
|
||||
// add your 'structure' definition XML files here,
|
||||
),
|
||||
'data.sample' => array(
|
||||
// add your sample data XML files here,
|
||||
),
|
||||
|
||||
// Documentation
|
||||
//
|
||||
'doc.manual_setup' => '', // hyperlink to manual setup documentation, if any
|
||||
'doc.more_information' => '', // hyperlink to more information, if any
|
||||
|
||||
// Default settings
|
||||
//
|
||||
'settings' => array(
|
||||
// Module specific settings go here, if any
|
||||
),
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
?>
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,114 @@
|
||||
$ibo-color-primary-100: $ibo-color-blue-100;
|
||||
$ibo-color-primary-200: $ibo-color-blue-200;
|
||||
$ibo-color-primary-300: $ibo-color-blue-300;
|
||||
$ibo-color-primary-400: $ibo-color-blue-400;
|
||||
$ibo-color-primary-500: $ibo-color-blue-500;
|
||||
$ibo-color-primary-600: $ibo-color-blue-600;
|
||||
$ibo-color-primary-700: $ibo-color-blue-700;
|
||||
$ibo-color-primary-800: $ibo-color-blue-800;
|
||||
$ibo-color-primary-900: $ibo-color-blue-900;
|
||||
$ibo-color-primary-950: $ibo-color-blue-950;
|
||||
|
||||
|
||||
$ibo-color-danger-100: $ibo-color-orange-100;
|
||||
$ibo-color-danger-200: $ibo-color-orange-200;
|
||||
$ibo-color-danger-300: $ibo-color-orange-300;
|
||||
$ibo-color-danger-400: $ibo-color-orange-400;
|
||||
$ibo-color-danger-500: $ibo-color-orange-500;
|
||||
$ibo-color-danger-600: $ibo-color-orange-600;
|
||||
$ibo-color-danger-700: $ibo-color-orange-700;
|
||||
$ibo-color-danger-800: $ibo-color-orange-800;
|
||||
$ibo-color-danger-900: $ibo-color-orange-900;
|
||||
$ibo-color-danger-950: $ibo-color-orange-950;
|
||||
|
||||
|
||||
$ibo-color-yellow-100: #fefce8;
|
||||
$ibo-color-yellow-200: #fef9c3;
|
||||
$ibo-color-yellow-300: #fef08a;
|
||||
$ibo-color-yellow-400: #fde047;
|
||||
$ibo-color-yellow-500: #facc15;
|
||||
$ibo-color-yellow-600: #eab308;
|
||||
$ibo-color-yellow-700: #ca8a04;
|
||||
$ibo-color-yellow-800: #a16207;
|
||||
$ibo-color-yellow-900: #854d0e;
|
||||
$ibo-color-yellow-950: #713f12;
|
||||
|
||||
$ibo-color-warning-100: $ibo-color-yellow-100;
|
||||
$ibo-color-warning-200: $ibo-color-yellow-200;
|
||||
$ibo-color-warning-300: $ibo-color-yellow-300;
|
||||
$ibo-color-warning-400: $ibo-color-yellow-400;
|
||||
$ibo-color-warning-500: $ibo-color-yellow-500;
|
||||
$ibo-color-warning-600: $ibo-color-yellow-600;
|
||||
$ibo-color-warning-700: $ibo-color-yellow-700;
|
||||
$ibo-color-warning-800: $ibo-color-yellow-800;
|
||||
$ibo-color-warning-900: $ibo-color-yellow-900;
|
||||
$ibo-color-warning-950: $ibo-color-yellow-950;
|
||||
|
||||
|
||||
$ibo-color-success-100: $ibo-color-blue-100;
|
||||
$ibo-color-success-200: $ibo-color-blue-200;
|
||||
$ibo-color-success-300: $ibo-color-blue-300;
|
||||
$ibo-color-success-400: $ibo-color-blue-400;
|
||||
$ibo-color-success-500: $ibo-color-blue-500;
|
||||
$ibo-color-success-600: $ibo-color-blue-600;
|
||||
$ibo-color-success-700: $ibo-color-blue-700;
|
||||
$ibo-color-success-800: $ibo-color-blue-800;
|
||||
$ibo-color-success-900: $ibo-color-blue-900;
|
||||
$ibo-color-success-950: $ibo-color-blue-950;
|
||||
|
||||
$ibo-color-information-100: #f1f5f9;
|
||||
$ibo-color-information-200: #e2e8f0;
|
||||
$ibo-color-information-300: #cbd5e1;
|
||||
$ibo-color-information-400: #94a3b8;
|
||||
$ibo-color-information-500: #64748b;
|
||||
$ibo-color-information-600: #475569;
|
||||
$ibo-color-information-700: #334155;
|
||||
$ibo-color-information-800: #1e293b;
|
||||
$ibo-color-information-900: #0f172a;
|
||||
$ibo-color-information-950: #020617;
|
||||
|
||||
|
||||
$ibo-lifecycle-new-state-primary-color: $ibo-color-information-600;
|
||||
$ibo-lifecycle-new-state-secondary-color: $ibo-color-white-100;
|
||||
$ibo-lifecycle-neutral-state-primary-color: $ibo-color-information-600;
|
||||
$ibo-lifecycle-neutral-state-secondary-color: $ibo-color-white-100;
|
||||
$ibo-lifecycle-waiting-state-primary-color: $ibo-color-yellow-700;
|
||||
$ibo-lifecycle-waiting-state-secondary-color: $ibo-color-white-100;
|
||||
$ibo-lifecycle-success-state-primary-color: $ibo-color-blue-700;
|
||||
$ibo-lifecycle-success-state-secondary-color: $ibo-color-white-100;
|
||||
$ibo-lifecycle-failure-state-primary-color: $ibo-color-orange-800;
|
||||
$ibo-lifecycle-failure-state-secondary-color: $ibo-color-white-100;
|
||||
$ibo-lifecycle-frozen-state-primary-color: $ibo-color-information-200;
|
||||
$ibo-lifecycle-frozen-state-secondary-color: $ibo-color-information-700;
|
||||
|
||||
$ibo-lifecycle-active-state-primary-color: $ibo-color-blue-700;
|
||||
$ibo-lifecycle-active-state-secondary-color: $ibo-color-white-100;
|
||||
$ibo-lifecycle-inactive-state-primary-color: $ibo-color-yellow-700;
|
||||
$ibo-lifecycle-inactive-state-secondary-color: $ibo-color-white-100;
|
||||
|
||||
$ibo-caselog-highlight-color-1: $ibo-color-blue-700;
|
||||
$ibo-caselog-highlight-color-2: $ibo-color-yellow-700;
|
||||
$ibo-caselog-highlight-color-3: $ibo-color-information-600;
|
||||
$ibo-caselog-highlight-color-4: $ibo-color-yellow-500;
|
||||
$ibo-caselog-highlight-color-5: $ibo-color-blue-500;
|
||||
$ibo-caselog-highlight-color-6: $ibo-color-yellow-300;
|
||||
$ibo-caselog-highlight-color-7: $ibo-color-blue-300;
|
||||
|
||||
$ibo-input-wrapper--is-error--border-color: $ibo-color-warning-700;
|
||||
$ibo-field-validation: $ibo-color-warning-800;
|
||||
|
||||
$ibo-navigation-menu--visual-hint--background-color: $ibo-color-blue-400;
|
||||
|
||||
$ibo-wizard-container--background-color: $ibo-color-information-200;
|
||||
$ibo-wizard-container--border-color: $ibo-color-information-600;
|
||||
|
||||
$ibo-navigation-menu--notifications--item--new-message-indicator--background-color: $ibo-color-white-100;
|
||||
$ibo-navigation-menu--notifications--item--new-message-indicator--border: solid 2px $ibo-color-grey-500;
|
||||
$ibo-navigation-menu--notifications--item--new-message-indicator--is-priority-1--background-color: $ibo-color-danger-100;
|
||||
$ibo-navigation-menu--notifications--item--new-message-indicator--is-priority-1--border: solid 2px $ibo-color-danger-500;
|
||||
$ibo-navigation-menu--notifications--item--new-message-indicator--is-priority-2--background-color: $ibo-color-warning-100;
|
||||
$ibo-navigation-menu--notifications--item--new-message-indicator--is-priority-2--border: solid 2px $ibo-color-warning-500;
|
||||
$ibo-navigation-menu--notifications--item--new-message-indicator--is-priority-3--background-color: $ibo-color-success-100;
|
||||
$ibo-navigation-menu--notifications--item--new-message-indicator--is-priority-3--border: solid 2px $ibo-color-success-500;
|
||||
|
||||
$ibo-notifications--view-all--item--unread--highlight--background-color: $ibo-color-blue-600;
|
||||
@@ -0,0 +1,73 @@
|
||||
$ibo-alert--icon--font-size: 3rem !default;
|
||||
$ibo-alert--icon--top: calc(50% - #{$ibo-alert--icon--font-size} / 2) !default;
|
||||
$ibo-alert--icon--left: $ibo-spacing-500 !default;
|
||||
$ibo-alert--icon--opacity: 0.3 !default;
|
||||
$ibo-alert--icons: (
|
||||
'success': '\f00c',
|
||||
'information': '\f129',
|
||||
'warning': '\f12a',
|
||||
'danger': '\f071',
|
||||
'failure': '\f071',
|
||||
'error': '\f071',
|
||||
) !default;
|
||||
|
||||
$ibo-toast--icon--font-size: 2rem !default;
|
||||
$ibo-toast--icon--top: calc(50% - #{$ibo-toast--icon--font-size} / 2) !default;
|
||||
$ibo-toast--icon--left: $ibo-spacing-400 !default;
|
||||
|
||||
|
||||
@each $sName, $sIcon in $ibo-alert--icons {
|
||||
%ibo-alert-#{$sName}, .ibo-alert.ibo-is-#{$sName} {
|
||||
&::after {
|
||||
content: $sIcon;
|
||||
@extend %fa-solid-base;
|
||||
position: absolute;
|
||||
top: $ibo-alert--icon--top;
|
||||
left: $ibo-alert--icon--left;
|
||||
opacity: $ibo-alert--icon--opacity;
|
||||
font-size: $ibo-alert--icon--font-size;
|
||||
width: $ibo-alert--icon--font-size;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.ibo-alert--body, .ibo-alert--title {
|
||||
padding-left: calc(#{$ibo-alert--icon--left} + #{$ibo-alert--icon--font-size});
|
||||
}
|
||||
}
|
||||
|
||||
.ibo-toast.ibo-is-#{$sName} {
|
||||
&::after{
|
||||
font-size: $ibo-toast--icon--font-size !important;
|
||||
top: $ibo-toast--icon--top !important;
|
||||
left: $ibo-toast--icon--left !important;
|
||||
width: $ibo-toast--icon--font-size !important;
|
||||
}
|
||||
padding-left: calc(#{$ibo-toast--padding-left} / 2 + #{$ibo-toast--icon--left} + #{$ibo-toast--icon--font-size});
|
||||
}
|
||||
}
|
||||
|
||||
.ibo-navigation-menu--notifications--item--new-message-indicator{
|
||||
border: none !important;
|
||||
background-color: transparent !important;
|
||||
&.ibo-is-priority-1::before{
|
||||
content: "\f12a \f12a \f12a";
|
||||
@extend %fa-solid-base;
|
||||
color: $ibo-color-danger-700;
|
||||
}
|
||||
&.ibo-is-priority-2::before{
|
||||
content: "\f12a \f12a";
|
||||
@extend %fa-solid-base;
|
||||
color: $ibo-color-warning-700;
|
||||
}
|
||||
&.ibo-is-priority-3::before{
|
||||
content: "\f12a";
|
||||
@extend %fa-solid-base;
|
||||
color: $ibo-color-success-700;
|
||||
}
|
||||
&.ibo-is-priority-4::before{
|
||||
content: "\f129";
|
||||
@extend %fa-solid-base;
|
||||
color: $ibo-color-information-700;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.2">
|
||||
<branding>
|
||||
<themes>
|
||||
<theme id="fullmoon-tritanopia" _delta="define">
|
||||
<variables>
|
||||
</variables>
|
||||
<imports>
|
||||
<import id="fullmoon-trita-scss-variables" xsi:type="variables">combodo-backoffice-fullmoon-tritanopia-theme/scss/scss-variables.scss</import>
|
||||
</imports>
|
||||
<stylesheets>
|
||||
<stylesheet id="fullmoon">../css/backoffice/main.scss</stylesheet>
|
||||
<stylesheet id="stylesheet">combodo-backoffice-fullmoon-tritanopia-theme/scss/stylesheet.scss</stylesheet>
|
||||
</stylesheets>
|
||||
<precompiled_stylesheet>combodo-backoffice-fullmoon-tritanopia-theme/precompiled-themes/main.css</precompiled_stylesheet>
|
||||
</theme>
|
||||
</themes>
|
||||
</branding>
|
||||
</itop_design>
|
||||
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
/**
|
||||
* Localized data
|
||||
*
|
||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*
|
||||
* This file is part of iTop.
|
||||
*
|
||||
* iTop is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* iTop is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with iTop. If not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', array(
|
||||
'theme:fullmoon-tritanopia' => 'Fullmoon (Tritanopia)',
|
||||
));
|
||||
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
/**
|
||||
* Localized data
|
||||
*
|
||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*
|
||||
* This file is part of iTop.
|
||||
*
|
||||
* iTop is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* iTop is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with iTop. If not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
Dict::Add('FR FR', 'French', 'Français', array(
|
||||
'theme:fullmoon-tritanopia' => 'Fullmoon (Tritanopie)',
|
||||
));
|
||||
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
//
|
||||
// iTop module definition file
|
||||
//
|
||||
|
||||
SetupWebPage::AddModule(
|
||||
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
|
||||
'combodo-backoffice-fullmoon-tritanopia-theme/3.2.0',
|
||||
array(
|
||||
// Identification
|
||||
//
|
||||
'label' => 'Backoffice: Fullmoon with tritanopia accessibility theme',
|
||||
'category' => 'business',
|
||||
|
||||
// Setup
|
||||
//
|
||||
'dependencies' => array(
|
||||
|
||||
),
|
||||
'mandatory' => true,
|
||||
'visible' => false,
|
||||
|
||||
// Components
|
||||
//
|
||||
'datamodel' => array(
|
||||
),
|
||||
'webservice' => array(
|
||||
|
||||
),
|
||||
'data.struct' => array(
|
||||
// add your 'structure' definition XML files here,
|
||||
),
|
||||
'data.sample' => array(
|
||||
// add your sample data XML files here,
|
||||
),
|
||||
|
||||
// Documentation
|
||||
//
|
||||
'doc.manual_setup' => '', // hyperlink to manual setup documentation, if any
|
||||
'doc.more_information' => '', // hyperlink to more information, if any
|
||||
|
||||
// Default settings
|
||||
//
|
||||
'settings' => array(
|
||||
// Module specific settings go here, if any
|
||||
),
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
?>
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,78 @@
|
||||
$ibo-color-yellow-100: #fefce8;
|
||||
$ibo-color-yellow-200: #fef9c3;
|
||||
$ibo-color-yellow-300: #fef08a;
|
||||
$ibo-color-yellow-400: #fde047;
|
||||
$ibo-color-yellow-500: #facc15;
|
||||
$ibo-color-yellow-600: #eab308;
|
||||
$ibo-color-yellow-700: #ca8a04;
|
||||
$ibo-color-yellow-800: #a16207;
|
||||
$ibo-color-yellow-900: #854d0e;
|
||||
$ibo-color-yellow-950: #713f12;
|
||||
|
||||
$ibo-color-success-100: $ibo-color-blue-100;
|
||||
$ibo-color-success-200: $ibo-color-blue-200;
|
||||
$ibo-color-success-300: $ibo-color-blue-300;
|
||||
$ibo-color-success-400: $ibo-color-blue-400;
|
||||
$ibo-color-success-500: $ibo-color-blue-500;
|
||||
$ibo-color-success-600: $ibo-color-blue-600;
|
||||
$ibo-color-success-700: $ibo-color-blue-700;
|
||||
$ibo-color-success-800: $ibo-color-blue-800;
|
||||
$ibo-color-success-900: $ibo-color-blue-900;
|
||||
$ibo-color-success-950: $ibo-color-blue-950;
|
||||
|
||||
$ibo-color-information-100: #f1f5f9;
|
||||
$ibo-color-information-200: #e2e8f0;
|
||||
$ibo-color-information-300: #cbd5e1;
|
||||
$ibo-color-information-400: #94a3b8;
|
||||
$ibo-color-information-500: #64748b;
|
||||
$ibo-color-information-600: #475569;
|
||||
$ibo-color-information-700: #334155;
|
||||
$ibo-color-information-800: #1e293b;
|
||||
$ibo-color-information-900: #0f172a;
|
||||
$ibo-color-information-950: #020617;
|
||||
|
||||
|
||||
$ibo-lifecycle-new-state-primary-color: $ibo-color-information-600;
|
||||
$ibo-lifecycle-new-state-secondary-color: $ibo-color-white-100;
|
||||
$ibo-lifecycle-neutral-state-primary-color: $ibo-color-information-600;
|
||||
$ibo-lifecycle-neutral-state-secondary-color: $ibo-color-white-100;
|
||||
$ibo-lifecycle-waiting-state-primary-color: $ibo-color-red-200;
|
||||
$ibo-lifecycle-waiting-state-secondary-color: $ibo-color-red-800;
|
||||
$ibo-lifecycle-success-state-primary-color: $ibo-color-blue-700;
|
||||
$ibo-lifecycle-success-state-secondary-color: $ibo-color-white-100;
|
||||
$ibo-lifecycle-failure-state-primary-color: $ibo-color-red-800;
|
||||
$ibo-lifecycle-failure-state-secondary-color: $ibo-color-white-100;
|
||||
$ibo-lifecycle-frozen-state-primary-color: $ibo-color-information-200;
|
||||
$ibo-lifecycle-frozen-state-secondary-color: $ibo-color-information-700;
|
||||
|
||||
$ibo-lifecycle-active-state-primary-color: $ibo-color-blue-700;
|
||||
$ibo-lifecycle-active-state-secondary-color: $ibo-color-white-100;
|
||||
$ibo-lifecycle-inactive-state-primary-color: $ibo-color-red-700;
|
||||
$ibo-lifecycle-inactive-state-secondary-color: $ibo-color-white-100;
|
||||
|
||||
$ibo-caselog-highlight-color-1: $ibo-color-blue-700;
|
||||
$ibo-caselog-highlight-color-2: $ibo-color-red-700;
|
||||
$ibo-caselog-highlight-color-3: $ibo-color-information-600;
|
||||
$ibo-caselog-highlight-color-4: $ibo-color-red-500;
|
||||
$ibo-caselog-highlight-color-5: $ibo-color-blue-500;
|
||||
$ibo-caselog-highlight-color-6: $ibo-color-red-300;
|
||||
$ibo-caselog-highlight-color-7: $ibo-color-blue-300;
|
||||
|
||||
$ibo-input-wrapper--is-error--border-color: $ibo-color-pink-700;
|
||||
$ibo-field-validation: $ibo-color-pink-800;
|
||||
|
||||
$ibo-navigation-menu--visual-hint--background-color: $ibo-color-pink-600;
|
||||
|
||||
$ibo-wizard-container--background-color: $ibo-color-information-200;
|
||||
$ibo-wizard-container--border-color: $ibo-color-information-600;
|
||||
|
||||
$ibo-navigation-menu--notifications--item--new-message-indicator--background-color: $ibo-color-white-100;
|
||||
$ibo-navigation-menu--notifications--item--new-message-indicator--border: solid 2px $ibo-color-grey-500;
|
||||
$ibo-navigation-menu--notifications--item--new-message-indicator--is-priority-1--background-color: $ibo-color-pink-100;
|
||||
$ibo-navigation-menu--notifications--item--new-message-indicator--is-priority-1--border: solid 2px $ibo-color-pink-600;
|
||||
$ibo-navigation-menu--notifications--item--new-message-indicator--is-priority-2--background-color: $ibo-color-warning-100;
|
||||
$ibo-navigation-menu--notifications--item--new-message-indicator--is-priority-2--border: solid 2px $ibo-color-warning-400;
|
||||
$ibo-navigation-menu--notifications--item--new-message-indicator--is-priority-3--background-color: $ibo-color-success-100;
|
||||
$ibo-navigation-menu--notifications--item--new-message-indicator--is-priority-3--border: solid 2px $ibo-color-success-500;
|
||||
|
||||
$ibo-notifications--view-all--item--unread--highlight--background-color: $ibo-color-pink-500;
|
||||
@@ -0,0 +1,73 @@
|
||||
$ibo-alert--icon--font-size: 3rem !default;
|
||||
$ibo-alert--icon--top: calc(50% - #{$ibo-alert--icon--font-size} / 2) !default;
|
||||
$ibo-alert--icon--left: $ibo-spacing-500 !default;
|
||||
$ibo-alert--icon--opacity: 0.3 !default;
|
||||
$ibo-alert--icons: (
|
||||
'success': '\f00c',
|
||||
'information': '\f129',
|
||||
'warning': '\f12a',
|
||||
'danger': '\f071',
|
||||
'failure': '\f071',
|
||||
'error': '\f071',
|
||||
) !default;
|
||||
|
||||
$ibo-toast--icon--font-size: 2rem !default;
|
||||
$ibo-toast--icon--top: calc(50% - #{$ibo-toast--icon--font-size} / 2) !default;
|
||||
$ibo-toast--icon--left: $ibo-spacing-400 !default;
|
||||
|
||||
|
||||
@each $sName, $sIcon in $ibo-alert--icons {
|
||||
%ibo-alert-#{$sName}, .ibo-alert.ibo-is-#{$sName} {
|
||||
&::after {
|
||||
content: $sIcon;
|
||||
@extend %fa-solid-base;
|
||||
position: absolute;
|
||||
top: $ibo-alert--icon--top;
|
||||
left: $ibo-alert--icon--left;
|
||||
opacity: $ibo-alert--icon--opacity;
|
||||
font-size: $ibo-alert--icon--font-size;
|
||||
width: $ibo-alert--icon--font-size;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.ibo-alert--body, .ibo-alert--title {
|
||||
padding-left: calc(#{$ibo-alert--icon--left} + #{$ibo-alert--icon--font-size});
|
||||
}
|
||||
}
|
||||
|
||||
.ibo-toast.ibo-is-#{$sName} {
|
||||
&::after{
|
||||
font-size: $ibo-toast--icon--font-size !important;
|
||||
top: $ibo-toast--icon--top !important;
|
||||
left: $ibo-toast--icon--left !important;
|
||||
width: $ibo-toast--icon--font-size !important;
|
||||
}
|
||||
padding-left: calc(#{$ibo-toast--padding-left} / 2 + #{$ibo-toast--icon--left} + #{$ibo-toast--icon--font-size});
|
||||
}
|
||||
}
|
||||
|
||||
.ibo-navigation-menu--notifications--item--new-message-indicator{
|
||||
border: none !important;
|
||||
background-color: transparent !important;
|
||||
&.ibo-is-priority-1::before{
|
||||
content: "\f12a \f12a \f12a";
|
||||
@extend %fa-solid-base;
|
||||
color: $ibo-color-danger-700;
|
||||
}
|
||||
&.ibo-is-priority-2::before{
|
||||
content: "\f12a \f12a";
|
||||
@extend %fa-solid-base;
|
||||
color: $ibo-color-warning-700;
|
||||
}
|
||||
&.ibo-is-priority-3::before{
|
||||
content: "\f12a";
|
||||
@extend %fa-solid-base;
|
||||
color: $ibo-color-success-700;
|
||||
}
|
||||
&.ibo-is-priority-4::before{
|
||||
content: "\f129";
|
||||
@extend %fa-solid-base;
|
||||
color: $ibo-color-information-700;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,6 +23,9 @@
|
||||
<module>itop-hub-connector</module>
|
||||
<module>itop-oauth-client</module>
|
||||
<module>combodo-backoffice-darkmoon-theme</module>
|
||||
<module>combodo-backoffice-fullmoon-high-contrast-theme</module>
|
||||
<module>combodo-backoffice-fullmoon-protanopia-deuteranopia-theme</module>
|
||||
<module>combodo-backoffice-fullmoon-tritanopia-theme</module>
|
||||
<module>itop-themes-compat</module>
|
||||
</modules>
|
||||
<mandatory>true</mandatory>
|
||||
|
||||
@@ -321,6 +321,11 @@ function ExtKeyWidget(id, sTargetClass, sFilter, sTitle, bSelectMode, oWizHelper
|
||||
* @return {void}
|
||||
*/
|
||||
this.UpdateDropdownPosition = function (oControlElem, oDropdownElem) {
|
||||
// First fix width to ensure it's not too long
|
||||
const fControlWidth = oControlElem.outerWidth();
|
||||
oDropdownElem.css('width', fControlWidth);
|
||||
|
||||
// Then, fix height / position to ensure it's within the viewport
|
||||
const fWindowHeight = window.innerHeight;
|
||||
|
||||
const fControlTopY = oControlElem.offset().top;
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
* ```
|
||||
*/
|
||||
|
||||
// If these constants aren't defined by the main page, define them (global) ourselves
|
||||
// If these constants aren't defined by the main page, define them (global) ourselves
|
||||
if (typeof aLoadedJsFilesRegister === "undefined") {
|
||||
Object.defineProperty(window, "aLoadedJsFilesRegister", {
|
||||
value: new Map(),
|
||||
@@ -186,11 +186,27 @@
|
||||
{% endif %}
|
||||
|
||||
{% block iboPageCssFiles %}
|
||||
{% for aCssFileData in aPage.aCssFiles %}
|
||||
{% if aPage.aCssFiles is not empty %}
|
||||
<script type="text/javascript">
|
||||
if (!$('link[href="{{ aCssFileData.link }}"]').length) $('<link href="{{ aCssFileData.link }}" rel="stylesheet">').appendTo('head');
|
||||
// If this constant isn't defined by the main page, define it (global) ourselves
|
||||
if (typeof aLoadedCssFilesRegister === "undefined") {
|
||||
Object.defineProperty(window, "aLoadedCssFilesRegister", {
|
||||
value: new Map(),
|
||||
writable: false,
|
||||
configurable: false,
|
||||
enumerable: true
|
||||
});
|
||||
}
|
||||
|
||||
{% for aCssFileData in aPage.aCssFiles %}
|
||||
// Only if file is NOT already present in the register (see it declaration in WebPage TWIG template), add it to the page and register
|
||||
if (aLoadedCssFilesRegister.has("{{ aCssFileData['link']|raw }}") === false) {
|
||||
$('<link href="{{ aCssFileData['link'] }}" rel="stylesheet">').appendTo('head');
|
||||
aLoadedCssFilesRegister.set("{{ aCssFileData['link']|raw }}", true);
|
||||
}
|
||||
{% endfor %}
|
||||
</script>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{{ aPage.sCapturedOutput|raw }}
|
||||
|
||||
@@ -24,8 +24,9 @@
|
||||
- jQuery scripts spurious problems (like failing on a 'reload') #}
|
||||
{% block iboPageCssFiles %}
|
||||
{% for aCssFileData in aPage.aCssFiles %}
|
||||
{# Mind that CSS files are registered in a JS variable below (@see aLoadedCssFilesRegister), to ensure that a file isn't loaded twice through an async call #}
|
||||
{% if aCssFileData['condition'] != '' %}<!--[if {{ aCssFileData['condition'] }}]>{% endif %}
|
||||
<link type="text/css" href="{{ aCssFileData['link']|add_itop_version|raw }}" rel="stylesheet">
|
||||
<link type="text/css" href="{{ aCssFileData['link']|add_itop_version|raw }}" rel="stylesheet">
|
||||
{% if aCssFileData['condition'] != '' %}<![endif]-->{% endif %}
|
||||
{% endfor %}
|
||||
{% endblock %}
|
||||
@@ -66,11 +67,26 @@
|
||||
{% block iboPageTemplates %}
|
||||
{% endblock %}
|
||||
|
||||
{# CSS files can either be loaded initially or requested by an XHR response #}
|
||||
{# In order to ensure that a file isn't loaded twice, we register them here so async calls can check if they to load their dependencies or not #}
|
||||
{# Note that unlike for the JS files, we don't need to use promises, as we don't need them to wait for the previous one to be loaded #}
|
||||
{# (Having a CSS loaded again can lead to rule overloads being reverted) #}
|
||||
<script type="text/javascript">
|
||||
/**
|
||||
* @var {Map} aLoadedCssFilesRegister
|
||||
* Register of all CSS files loaded in this page.
|
||||
* A CSS file MUST NOT be loaded more than once as it could compromise rules overloads loaded after the first time.
|
||||
*/
|
||||
const aLoadedCssFilesRegister = new Map();
|
||||
{% for aCssFileData in aPage.aCssFiles %}
|
||||
aLoadedCssFilesRegister.set("{{ aCssFileData['link']|raw }}", true);
|
||||
{% endfor %}
|
||||
</script>
|
||||
|
||||
{# JS files can either be loaded initially or requested by an XHR response #}
|
||||
{# - For the initial page, all files are loaded before running inline snippets #}
|
||||
{# - For XHR responses, we need to ensure that all required files are fully loaded before running inline snippets #}
|
||||
|
||||
<script type="text/javascript">
|
||||
/**
|
||||
* @var {Map} aLoadedJsFilesRegister
|
||||
* Register of all JS files loaded in this page, including the Promise corresponding to the loading state of each file.
|
||||
@@ -83,11 +99,11 @@ const aLoadedJsFilesRegister = new Map();
|
||||
*/
|
||||
const aLoadedJsFilesResolveCallbacks = new Map();
|
||||
{% for sJsFile in aPage.aJsFiles %}
|
||||
aLoadedJsFilesRegister.set("{{ sJsFile|raw }}", new Promise(function(resolve) {
|
||||
aLoadedJsFilesResolveCallbacks.set("{{ sJsFile|raw }}", resolve);
|
||||
// Resolve promise right away as these files are loaded immediately before any inline JS is executed
|
||||
aLoadedJsFilesResolveCallbacks.get("{{ sJsFile|raw }}")();
|
||||
}));
|
||||
aLoadedJsFilesRegister.set("{{ sJsFile|raw }}", new Promise(function(resolve) {
|
||||
aLoadedJsFilesResolveCallbacks.set("{{ sJsFile|raw }}", resolve);
|
||||
// Resolve promise right away as these files are loaded immediately before any inline JS is executed
|
||||
aLoadedJsFilesResolveCallbacks.get("{{ sJsFile|raw }}")();
|
||||
}));
|
||||
{% endfor %}
|
||||
</script>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user