diff --git a/application/themehandler.class.inc.php b/application/themehandler.class.inc.php index de2fb21ca..c300fae0e 100644 --- a/application/themehandler.class.inc.php +++ b/application/themehandler.class.inc.php @@ -116,7 +116,9 @@ class ThemeHandler } /** - * Compile the $sThemeId theme + * Compile the $sThemeId theme, the actual compilation is skipped when either + * 1) The produced CSS file exists and is more recent than any of its components (imports, stylesheets) + * 2) The produced CSS file exists and its signature is equal to the expected signature (imports, stylesheets, variables) * * @param string $sThemeId * @param array|null $aThemeParameters Parameters (variables, imports, stylesheets) for the theme, if not passed, will be retrieved from compiled DM @@ -168,23 +170,130 @@ class ThemeHandler { $sTmpThemeScssContent .= '@import "'.$sImport.'";'."\n"; - $iImportLastModified = @filemtime($sWorkingPath.$sImport); + $sFile = static::FindStylesheetFile($sImport, $aImportsPaths); + $iImportLastModified = @filemtime($sFile); $iStyleLastModified = $iStyleLastModified < $iImportLastModified ? $iImportLastModified : $iStyleLastModified; } foreach ($aThemeParameters['stylesheets'] as $sStylesheet) { $sTmpThemeScssContent .= '@import "'.$sStylesheet.'";'."\n"; - $iStylesheetLastModified = @filemtime($sWorkingPath.$sStylesheet); + $sFile = static::FindStylesheetFile($sStylesheet, $aImportsPaths); + $iStylesheetLastModified = @filemtime($sFile); $iStyleLastModified = $iStyleLastModified < $iStylesheetLastModified ? $iStylesheetLastModified : $iStyleLastModified; } // Checking if our compiled css is outdated - if (!file_exists($sThemeCssPath) || (is_writable($sThemeFolderPath) && (@filemtime($sThemeCssPath) < $iStyleLastModified))) + $iFilemetime = @filemtime($sThemeCssPath); + if (!file_exists($sThemeCssPath) || (is_writable($sThemeFolderPath) && ($iFilemetime < $iStyleLastModified))) { - $sTmpThemeCssContent = utils::CompileCSSFromSASS($sTmpThemeScssContent, $aImportsPaths, $aThemeParameters['variables']); - file_put_contents($sThemeCssPath, $sTmpThemeCssContent); + // Dates don't match. Second chance: check if the already compiled stylesheet exists and is consistent based on its signature + $sActualSignature = static::ComputeSignature($aThemeParameters, $aImportsPaths); + if (file_exists($sThemeCssPath)) + { + $sPrecompiledSignature = static::GetSignature($sThemeCssPath); + if($sActualSignature == $sPrecompiledSignature) + { + touch($sThemeCssPath); // Stylesheet is up to date, mark it as more recent to speedup next time + } + } + else + { + // Alas, we really need to recompile + // Add the signature to the generated CSS file so that the file can be used as a precompiled stylesheet if needed + $sSignatureComment = +<< md5(json_encode($aThemeParameters['variables'])), + 'stylesheets' => array(), + 'imports' => array(), + ); + + foreach ($aThemeParameters['imports'] as $key => $sImport) + { + $sFile = static::FindStylesheetFile($sImport, $aImportsPaths); + $aSignature['stylesheets'][$key] = md5_file($sFile); + } + foreach ($aThemeParameters['stylesheets'] as $key => $sStylesheet) + { + $sFile = static::FindStylesheetFile($sStylesheet, $aImportsPaths); + $aSignature['stylesheets'][$key] = md5_file($sFile); + } + return json_encode($aSignature); + } + + /** + * Extract the signature for a generated CSS file. The signature MUST be alone one line immediately + * followed (on the next line) by the === SIGNATURE END === pattern + * + * Note the signature can be place anywhere in the CSS file (obviously inside a CSS comment !) but the + * function will be faster if the signature is at the beginning of the file (since the file is scanned from the start) + * + * @param string $sFile + * @return string + */ + private static function GetSignature($sFilepath) + { + $sPreviousLine = ''; + $hFile = @fopen($sFilepath, "r"); + if ($hFile !== false) + { + $sLine = ''; + do + { + $sPreviousLine = $sLine; + $sLine = rtrim(fgets($hFile)); // Remove the trailing \n + } + while (($sLine !== false) && ($sLine != '=== SIGNATURE END ===')); + fclose($hFile); + } + return $sPreviousLine; + } + + /** + * Find the given file in the list of ImportsPaths directory + * @param string $sFile + * @param string[] $aImportsPaths + * @throws Exception + * @return string + */ + private static function FindStylesheetFile($sFile, $aImportsPaths) + { + foreach($aImportsPaths as $sPath) + { + $sImportedFile = realpath($sPath.'/'.$sFile); + if (file_exists($sImportedFile)) + { + return $sImportedFile; + } + } + return ''; // Not found, fail silently, maybe the SCSS compiler knowns better... + } } diff --git a/datamodels/2.x/itop-config-mgmt/datamodel.itop-config-mgmt.xml b/datamodels/2.x/itop-config-mgmt/datamodel.itop-config-mgmt.xml index aa7a002ed..bdea5402f 100755 --- a/datamodels/2.x/itop-config-mgmt/datamodel.itop-config-mgmt.xml +++ b/datamodels/2.x/itop-config-mgmt/datamodel.itop-config-mgmt.xml @@ -8529,6 +8529,7 @@ ../css/ui-lightness/jqueryui.scss ../css/light-grey.scss + itop-config-mgmt/precompiled-themes/light-grey/main.css @@ -8544,6 +8545,7 @@ ../css/light-grey.scss ../css/backoffice-environment-banner.scss + itop-config-mgmt/precompiled-themes/test-red/main.css diff --git a/datamodels/2.x/itop-config-mgmt/precompiled-themes/light-grey/main.css b/datamodels/2.x/itop-config-mgmt/precompiled-themes/light-grey/main.css new file mode 100644 index 000000000..eb2e38767 --- /dev/null +++ b/datamodels/2.x/itop-config-mgmt/precompiled-themes/light-grey/main.css @@ -0,0 +1,5217 @@ +/* +=== SIGNATURE BEGIN === +{"variables":"d751713988987e9331980363e24189ce","stylesheets":{"css-variables":"934888ebb4991d4c76555be6b6d1d5cc","jqueryui":"78cfafc3524dac98e61fc2460918d4e5","main":"52d8a7c5530ceb3a4d777364fa4e1eea"},"imports":[]} +=== SIGNATURE END === + */ + /*! + * Copyright (C) 2013-2020 Combodo SARL + * + * 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 + */ +/*! jQuery UI - v1.12.1 - 2018-02-20 + * http://jqueryui.com + * Includes: draggable.css, core.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css + * To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=custom-theme&bgImgOpacityError=18&bgImgOpacityHighlight=75&bgImgOpacityActive=65&bgImgOpacityHover=100&bgImgOpacityDefault=100&bgImgOpacityContent=100&bgImgOpacityHeader=35&cornerRadiusShadow=5px&offsetLeftShadow=-5px&offsetTopShadow=-5px&thicknessShadow=5px&opacityShadow=20&bgImgOpacityShadow=10&bgTextureShadow=flat&bgColorShadow=%23000000&opacityOverlay=50&bgImgOpacityOverlay=20&bgTextureOverlay=diagonals_thick&bgColorOverlay=%23666666&iconColorError=%23ffd27a&fcError=%23ffffff&borderColorError=%23cd0a0a&bgTextureError=diagonals_thick&bgColorError=%23b81900&iconColorHighlight=%231c94c4&fcHighlight=%23363636&borderColorHighlight=%23fed22f&bgTextureHighlight=flat&bgColorHighlight=%23ffe45c&iconColorActive=%23E87C1E&fcActive=%23E87C1E&borderColorActive=%23E87C1E&bgTextureActive=flat&bgColorActive=%23ffffff&iconColorHover=%23E87C1E&fcHover=%23E87C1E&borderColorHover=%23E87C1E&bgTextureHover=flat&bgColorHover=%23fde17c&iconColorDefault=%23F26522&fcDefault=%23555555&borderColorDefault=%23cccccc&bgTextureDefault=flat&bgColorDefault=%23f1f1f1&iconColorContent=%23222222&fcContent=%23333333&borderColorContent=%23dddddd&bgTextureContent=flat&bgColorContent=%23eeeeee&iconColorHeader=%23ffffff&fcHeader=%23ffffff&borderColorHeader=%23F26522&bgTextureHeader=flat&bgColorHeader=%23E87C1E&cornerRadius=0&fwDefault=bold&fsDefault=1.1em&ffDefault=Trebuchet%20MS%2CTahoma%2CVerdana%2CArial%2Csans-serif + * Copyright jQuery Foundation and other contributors; Licensed MIT + * The original css file has been scssized (through www.css2scss.com) + */ +.ui-draggable-handle { + -ms-touch-action: none; + touch-action: none; +} +.ui-helper-hidden { + display: none; +} +.ui-helper-hidden-accessible { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} +.ui-helper-reset { + margin: 0; + padding: 0; + border: 0; + outline: 0; + line-height: 1.3; + text-decoration: none; + font-size: 100%; + list-style: none; +} +.ui-helper-clearfix:before { + content: ""; + display: table; + border-collapse: collapse; +} +.ui-helper-clearfix:after { + content: ""; + display: table; + border-collapse: collapse; + clear: both; +} +.ui-helper-zfix { + width: 100%; + height: 100%; + top: 0; + left: 0; + position: absolute; + opacity: 0; + filter: Alpha(Opacity=0); +} +.ui-front { + z-index: 100; +} +.ui-state-disabled { + cursor: default !important; + pointer-events: none; + opacity: 0.35; + filter: Alpha(Opacity=35); + background-image: none; +} +.ui-state-disabled .ui-icon { + filter: Alpha(Opacity=35); +} +.ui-icon { + display: inline-block; + vertical-align: middle; + margin-top: -0.25em; + position: relative; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; + width: 16px; + height: 16px; + background-image: url("../../../../../css/ui-lightness/images/ui-icons_222222_256x240.png?v=v2.7.0-1"); + filter: hue-rotate(0deg); +} +.ui-widget-icon-block { + left: 50%; + margin-left: -8px; + display: block; +} +.ui-widget-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: #666666 url("../../../../../css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png?v=v2.7.0-1") 50% 50% repeat; + opacity: 0.5; + filter: Alpha(Opacity=50); +} +.ui-resizable { + position: relative; +} +.ui-resizable-handle { + position: absolute; + font-size: 0.1px; + display: block; + -ms-touch-action: none; + touch-action: none; +} +.ui-resizable-disabled .ui-resizable-handle { + display: none; +} +.ui-resizable-autohide .ui-resizable-handle { + display: none; +} +.ui-resizable-n { + cursor: n-resize; + height: 7px; + width: 100%; + top: -5px; + left: 0; +} +.ui-resizable-s { + cursor: s-resize; + height: 7px; + width: 100%; + bottom: -5px; + left: 0; +} +.ui-resizable-e { + cursor: e-resize; + width: 7px; + right: -5px; + top: 0; + height: 100%; +} +.ui-resizable-w { + cursor: w-resize; + width: 7px; + left: -5px; + top: 0; + height: 100%; +} +.ui-resizable-se { + cursor: se-resize; + width: 12px; + height: 12px; + right: 1px; + bottom: 1px; +} +.ui-resizable-sw { + cursor: sw-resize; + width: 9px; + height: 9px; + left: -5px; + bottom: -5px; +} +.ui-resizable-nw { + cursor: nw-resize; + width: 9px; + height: 9px; + left: -5px; + top: -5px; +} +.ui-resizable-ne { + cursor: ne-resize; + width: 9px; + height: 9px; + right: -5px; + top: -5px; +} +.ui-selectable { + -ms-touch-action: none; + touch-action: none; +} +.ui-selectable-helper { + position: absolute; + z-index: 100; + border: 1px dotted black; +} +.ui-sortable-handle { + -ms-touch-action: none; + touch-action: none; +} +.ui-accordion .ui-accordion-header { + display: block; + cursor: pointer; + position: relative; + margin: 2px 0 0 0; + padding: 0.5em 0.5em 0.5em 0.7em; + font-size: 100%; +} +.ui-accordion .ui-accordion-content { + padding: 1em 2.2em; + border-top: 0; + overflow: auto; +} +.ui-autocomplete { + position: absolute; + top: 0; + left: 0; + cursor: default; +} +.ui-menu { + list-style: none; + padding: 0; + margin: 0; + display: block; + outline: 0; +} +.ui-menu .ui-menu { + position: absolute; +} +.ui-menu .ui-menu-item { + margin: 0; + cursor: pointer; + list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7?v=v2.7.0-1"); +} +.ui-menu .ui-menu-item-wrapper { + position: relative; + padding: 3px 1em 3px 0.4em; +} +.ui-menu .ui-menu-divider { + margin: 5px 0; + height: 0; + font-size: 0; + line-height: 0; + border-width: 1px 0 0 0; +} +.ui-menu .ui-state-focus { + margin: -1px; +} +.ui-menu .ui-state-active { + margin: -1px; +} +.ui-menu .ui-icon { + position: absolute; + top: 0; + bottom: 0; + left: 0.2em; + margin: auto 0; +} +.ui-menu .ui-menu-icon { + left: auto; + right: 0; +} +.ui-menu-icons { + position: relative; +} +.ui-menu-icons .ui-menu-item-wrapper { + padding-left: 2em; +} +.ui-button { + padding: 0.4em 1em; + display: inline-block; + position: relative; + line-height: normal; + margin-right: 0.1em; + cursor: pointer; + vertical-align: middle; + text-align: center; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + overflow: visible; + text-decoration: none; + border: 1px solid #cccccc; + background: #f1f1f1; + font-weight: bold; + color: #555555; +} +.ui-button:link { + text-decoration: none; +} +.ui-button:visited { + text-decoration: none; +} +.ui-button:hover { + text-decoration: none; + border: 1px solid #EA7D1E; + background: #fde17c; + font-weight: bold; + color: #EA7D1E; +} +.ui-button:hover .ui-icon { + background-image: url("../../../../../css/ui-lightness/images/ui-icons_E87C1E_256x240.png?v=v2.7.0-1"); +} +.ui-button:active { + text-decoration: none; + border: 1px solid #EA7D1E; + background: #ffffff; + font-weight: bold; + color: #EA7D1E; +} +.ui-button:active .ui-icon { + background-image: url("../../../../../css/ui-lightness/images/ui-icons_E87C1E_256x240.png?v=v2.7.0-1"); +} +.ui-button:focus { + border: 1px solid #EA7D1E; + background: #fde17c; + font-weight: bold; + color: #EA7D1E; +} +.ui-button:focus .ui-icon { + background-image: url("../../../../../css/ui-lightness/images/ui-icons_E87C1E_256x240.png?v=v2.7.0-1"); +} +.ui-button .ui-state-highlight.ui-icon { + background-image: url("../../../../../css/ui-lightness/images/ui-icons_1c94c4_256x240.png?v=v2.7.0-1"); +} +.ui-button .ui-icon { + background-image: url("../../../../../css/ui-lightness/images/ui-icons_F26522_256x240.png?v=v2.7.0-1"); +} +.ui-button-icon-only { + width: 2em; + box-sizing: border-box; + text-indent: -9999px; + white-space: nowrap; +} +.ui-button-icon-only .ui-icon { + position: absolute; + top: 50%; + left: 50%; + margin-top: -8px; + margin-left: -8px; +} +input.ui-button.ui-button-icon-only { + text-indent: 0; +} +.ui-button.ui-icon-notext .ui-icon { + padding: 0; + width: 2.1em; + height: 2.1em; + text-indent: -9999px; + white-space: nowrap; +} +input.ui-button.ui-icon-notext .ui-icon { + width: auto; + height: auto; + text-indent: 0; + white-space: normal; + padding: 0.4em 1em; +} +input.ui-button::-moz-focus-inner { + border: 0; + padding: 0; +} +button.ui-button::-moz-focus-inner { + border: 0; + padding: 0; +} +.ui-controlgroup { + vertical-align: middle; + display: inline-block; +} +.ui-controlgroup > .ui-controlgroup-item { + float: left; + margin-left: 0; + margin-right: 0; +} +.ui-controlgroup > .ui-controlgroup-item:focus { + z-index: 9999; +} +.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus { + z-index: 9999; +} +.ui-controlgroup .ui-controlgroup-label { + padding: 0.4em 1em; +} +.ui-controlgroup .ui-controlgroup-label span { + font-size: 80%; +} +.ui-controlgroup-vertical > .ui-controlgroup-item { + display: block; + float: none; + width: 100%; + margin-top: 0; + margin-bottom: 0; + text-align: left; +} +.ui-controlgroup-vertical .ui-controlgroup-item { + box-sizing: border-box; +} +.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item { + border-top: none; +} +.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content { + border-bottom: none; +} +.ui-controlgroup-vertical .ui-spinner-input { + width: calc(100% - 2.4em); +} +.ui-controlgroup-vertical .ui-spinner .ui-spinner-up { + border-top-style: solid; +} +.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item { + border-left: none; +} +.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content { + border-right: none; +} +.ui-checkboxradio-label .ui-icon-background { + box-shadow: inset 1px 1px 1px #ccc; + border-radius: 0.12em; + border: none; +} +.ui-checkboxradio-radio-label .ui-icon-background { + width: 16px; + height: 16px; + border-radius: 1em; + overflow: visible; + border: none; +} +.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon { + background-image: none; + width: 8px; + height: 8px; + border-width: 4px; + border-style: solid; +} +.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon { + background-image: none; + width: 8px; + height: 8px; + border-width: 4px; + border-style: solid; +} +.ui-checkboxradio-disabled { + pointer-events: none; +} +.ui-datepicker { + width: 17em; + padding: 0.2em 0.2em 0; + display: none; +} +.ui-datepicker .ui-datepicker-header { + position: relative; + padding: 0.2em 0; +} +.ui-datepicker .ui-datepicker-prev { + position: absolute; + top: 2px; + width: 1.8em; + height: 1.8em; + left: 2px; +} +.ui-datepicker .ui-datepicker-prev span { + display: block; + position: absolute; + left: 50%; + margin-left: -8px; + top: 50%; + margin-top: -8px; +} +.ui-datepicker .ui-datepicker-next { + position: absolute; + top: 2px; + width: 1.8em; + height: 1.8em; + right: 2px; +} +.ui-datepicker .ui-datepicker-next span { + display: block; + position: absolute; + left: 50%; + margin-left: -8px; + top: 50%; + margin-top: -8px; +} +.ui-datepicker .ui-datepicker-prev-hover { + top: 1px; + left: 1px; +} +.ui-datepicker .ui-datepicker-next-hover { + top: 1px; + right: 1px; +} +.ui-datepicker .ui-datepicker-title { + margin: 0 2.3em; + line-height: 1.8em; + text-align: center; +} +.ui-datepicker .ui-datepicker-title select { + font-size: 1em; + margin: 1px 0; +} +.ui-datepicker select.ui-datepicker-month { + width: 45%; +} +.ui-datepicker select.ui-datepicker-year { + width: 45%; +} +.ui-datepicker table { + width: 100%; + font-size: 0.9em; + border-collapse: collapse; + margin: 0 0 0.4em; +} +.ui-datepicker th { + padding: 0.7em 0.3em; + text-align: center; + font-weight: bold; + border: 0; +} +.ui-datepicker td { + border: 0; + padding: 1px; +} +.ui-datepicker td span { + display: block; + padding: 0.2em; + text-align: right; + text-decoration: none; +} +.ui-datepicker td a { + display: block; + padding: 0.2em; + text-align: right; + text-decoration: none; +} +.ui-datepicker .ui-datepicker-buttonpane { + background-image: none; + margin: 0.7em 0 0 0; + padding: 0 0.2em; + border-left: 0; + border-right: 0; + border-bottom: 0; +} +.ui-datepicker .ui-datepicker-buttonpane button { + float: right; + margin: 0.5em 0.2em 0.4em; + cursor: pointer; + padding: 0.2em 0.6em 0.3em 0.6em; + width: auto; + overflow: visible; +} +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { + float: left; +} +.ui-datepicker .ui-icon { + display: block; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; + left: 0.5em; + top: 0.3em; +} +.ui-datepicker.ui-datepicker-multi { + width: auto; +} +.ui-datepicker-multi .ui-datepicker-group { + float: left; +} +.ui-datepicker-multi .ui-datepicker-group table { + width: 95%; + margin: 0 auto 0.4em; +} +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { + border-left-width: 0; +} +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { + border-left-width: 0; +} +.ui-datepicker-multi .ui-datepicker-buttonpane { + clear: left; +} +.ui-datepicker-multi-2 .ui-datepicker-group { + width: 50%; +} +.ui-datepicker-multi-3 .ui-datepicker-group { + width: 33.3%; +} +.ui-datepicker-multi-4 .ui-datepicker-group { + width: 25%; +} +.ui-datepicker-row-break { + clear: both; + width: 100%; + font-size: 0; +} +.ui-datepicker-rtl { + direction: rtl; +} +.ui-datepicker-rtl .ui-datepicker-prev { + right: 2px; + left: auto; +} +.ui-datepicker-rtl .ui-datepicker-prev:hover { + right: 1px; + left: auto; +} +.ui-datepicker-rtl .ui-datepicker-next { + left: 2px; + right: auto; +} +.ui-datepicker-rtl .ui-datepicker-next:hover { + left: 1px; + right: auto; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane { + clear: right; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane button { + float: left; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { + float: right; +} +.ui-datepicker-rtl .ui-datepicker-group { + float: right; +} +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { + border-right-width: 0; + border-left-width: 1px; +} +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { + border-right-width: 0; + border-left-width: 1px; +} +.ui-dialog { + position: absolute; + top: 0; + left: 0; + padding: 0.2em; + outline: 0; +} +.ui-dialog .ui-dialog-titlebar { + padding: 0.4em 1em; + position: relative; +} +.ui-dialog .ui-dialog-title { + float: left; + margin: 0.1em 0; + white-space: nowrap; + width: 90%; + overflow: hidden; + text-overflow: ellipsis; +} +.ui-dialog .ui-dialog-titlebar-close { + position: absolute; + right: 0.3em; + top: 50%; + width: 20px; + margin: -10px 0 0 0; + padding: 1px; + height: 20px; +} +.ui-dialog .ui-dialog-content { + position: relative; + border: 0; + padding: 0.5em 1em; + background: none; + overflow: auto; +} +.ui-dialog .ui-dialog-buttonpane { + text-align: left; + border-width: 1px 0 0 0; + background-image: none; + margin-top: 0.5em; + padding: 0.3em 1em 0.5em 0.4em; +} +.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { + float: right; +} +.ui-dialog .ui-dialog-buttonpane button { + margin: 0.5em 0.4em 0.5em 0; + cursor: pointer; +} +.ui-dialog .ui-resizable-n { + height: 2px; + top: 0; +} +.ui-dialog .ui-resizable-e { + width: 2px; + right: 0; +} +.ui-dialog .ui-resizable-s { + height: 2px; + bottom: 0; +} +.ui-dialog .ui-resizable-w { + width: 2px; + left: 0; +} +.ui-dialog .ui-resizable-se { + width: 7px; + height: 7px; + right: 0; + bottom: 0; +} +.ui-dialog .ui-resizable-sw { + width: 7px; + height: 7px; + left: 0; + bottom: 0; +} +.ui-dialog .ui-resizable-ne { + width: 7px; + height: 7px; + right: 0; + top: 0; +} +.ui-dialog .ui-resizable-nw { + width: 7px; + height: 7px; + left: 0; + top: 0; +} +.ui-draggable .ui-dialog-titlebar { + cursor: move; +} +.ui-progressbar { + height: 2em; + text-align: left; + overflow: hidden; +} +.ui-progressbar .ui-progressbar-value { + margin: -1px; + height: 100%; +} +.ui-progressbar .ui-progressbar-overlay { + background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw=="); + height: 100%; + filter: alpha(opacity=25); + opacity: 0.25; +} +.ui-progressbar-indeterminate .ui-progressbar-value { + background-image: none; +} +.ui-selectmenu-menu { + padding: 0; + margin: 0; + position: absolute; + top: 0; + left: 0; + display: none; +} +.ui-selectmenu-menu .ui-menu { + overflow: auto; + overflow-x: hidden; + padding-bottom: 1px; +} +.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup { + font-size: 1em; + font-weight: bold; + line-height: 1.5; + padding: 2px 0.4em; + margin: 0.5em 0 0 0; + height: auto; + border: 0; +} +.ui-selectmenu-open { + display: block; +} +.ui-selectmenu-text { + display: block; + margin-right: 20px; + overflow: hidden; + text-overflow: ellipsis; +} +.ui-selectmenu-button.ui-button { + text-align: left; + white-space: nowrap; + width: 14em; +} +.ui-selectmenu-icon.ui-icon { + float: right; + margin-top: 0; +} +.ui-slider { + position: relative; + text-align: left; +} +.ui-slider .ui-slider-handle { + position: absolute; + z-index: 2; + width: 1.2em; + height: 1.2em; + cursor: default; + -ms-touch-action: none; + touch-action: none; +} +.ui-slider .ui-slider-range { + position: absolute; + z-index: 1; + font-size: 0.7em; + display: block; + border: 0; + background-position: 0 0; +} +.ui-slider.ui-state-disabled .ui-slider-handle { + filter: inherit; +} +.ui-slider.ui-state-disabled .ui-slider-range { + filter: inherit; +} +.ui-slider-horizontal { + height: 0.8em; +} +.ui-slider-horizontal .ui-slider-handle { + top: -0.3em; + margin-left: -0.6em; +} +.ui-slider-horizontal .ui-slider-range { + top: 0; + height: 100%; +} +.ui-slider-horizontal .ui-slider-range-min { + left: 0; +} +.ui-slider-horizontal .ui-slider-range-max { + right: 0; +} +.ui-slider-vertical { + width: 0.8em; + height: 100px; +} +.ui-slider-vertical .ui-slider-handle { + left: -0.3em; + margin-left: 0; + margin-bottom: -0.6em; +} +.ui-slider-vertical .ui-slider-range { + left: 0; + width: 100%; +} +.ui-slider-vertical .ui-slider-range-min { + bottom: 0; +} +.ui-slider-vertical .ui-slider-range-max { + top: 0; +} +.ui-spinner { + position: relative; + display: inline-block; + overflow: hidden; + padding: 0; + vertical-align: middle; +} +.ui-spinner a.ui-spinner-button { + border-top-style: none; + border-bottom-style: none; + border-right-style: none; +} +.ui-spinner-input { + border: none; + background: none; + color: inherit; + padding: 0.222em 0; + margin: 0.2em 0; + vertical-align: middle; + margin-left: 0.4em; + margin-right: 2em; +} +.ui-spinner-button { + width: 1.6em; + height: 50%; + font-size: 0.5em; + padding: 0; + margin: 0; + text-align: center; + position: absolute; + cursor: default; + display: block; + overflow: hidden; + right: 0; +} +.ui-spinner-up { + top: 0; +} +.ui-spinner-down { + bottom: 0; +} +.ui-tabs { + position: relative; + padding: 0.2em; +} +.ui-tabs .ui-tabs-nav { + margin: 0; + padding: 0.2em 0.2em 0; +} +.ui-tabs .ui-tabs-nav li { + list-style: none; + float: left; + position: relative; + top: 0; + margin: 1px 0.2em 0 0; + border-bottom-width: 0; + padding: 0; + white-space: nowrap; +} +.ui-tabs .ui-tabs-nav .ui-tabs-anchor { + float: left; + padding: 0.5em 1em; + text-decoration: none; +} +.ui-tabs .ui-tabs-nav li.ui-tabs-active { + margin-bottom: -1px; + padding-bottom: 1px; +} +.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor { + cursor: text; +} +.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor { + cursor: text; +} +.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor { + cursor: text; +} +.ui-tabs .ui-tabs-panel { + display: block; + border-width: 0; + padding: 1em 1.4em; + background: none; +} +.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor { + cursor: pointer; +} +.ui-tooltip { + padding: 8px; + position: absolute; + z-index: 9999; + max-width: 300px; +} +body .ui-tooltip { + border-width: 2px; +} +.ui-widget { + font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; + font-size: 1.1em; +} +.ui-widget .ui-widget { + font-size: 1em; +} +.ui-widget input { + font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; + font-size: 1em; +} +.ui-widget select { + font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; + font-size: 1em; +} +.ui-widget textarea { + font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; + font-size: 1em; +} +.ui-widget button { + font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; + font-size: 1em; +} +.ui-widget.ui-widget-content { + border: 1px solid #cccccc; +} +.ui-widget-content { + border: 1px solid #dddddd; + background: #eeeeee; + color: #333333; +} +.ui-widget-content a { + color: #333333; +} +.ui-widget-content .ui-state-default { + border: 1px solid #cccccc; + background: #f1f1f1; + font-weight: bold; + color: #555555; +} +.ui-widget-content .ui-state-hover { + border: 1px solid #EA7D1E; + background: #fde17c; + font-weight: bold; + color: #EA7D1E; +} +.ui-widget-content .ui-state-focus { + border: 1px solid #EA7D1E; + background: #fde17c; + font-weight: bold; + color: #EA7D1E; +} +.ui-widget-content .ui-state-active { + border: 1px solid #EA7D1E; + background: #FFFFFF; + font-weight: bold; + color: #EA7D1E; +} +.ui-widget-content .ui-state-highlight { + border: 1px solid #fed22f; + background: #ffe45c; + color: #363636; +} +.ui-widget-content .ui-state-highlight a { + color: #363636; +} +.ui-widget-content .ui-state-error { + border: 1px solid #cd0a0a; + background: #b81900 url("../../../../../css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png?v=v2.7.0-1") 50% 50% repeat; + color: #FFFFFF; +} +.ui-widget-content .ui-state-error a { + color: #FFFFFF; +} +.ui-widget-content .ui-state-error-text { + color: #FFFFFF; +} +.ui-widget-content .ui-priority-primary { + font-weight: bold; +} +.ui-widget-content .ui-priority-secondary { + opacity: 0.7; + filter: Alpha(Opacity=70); + font-weight: normal; +} +.ui-widget-content .ui-state-disabled { + opacity: 0.35; + filter: Alpha(Opacity=35); + background-image: none; +} +.ui-widget-content .ui-icon { + background-image: url("../../../../../css/ui-lightness/images/ui-icons_222222_256x240.png?v=v2.7.0-1"); +} +.ui-widget-header { + border: 1px solid #d56e14; + background: #EA7D1E; + color: #FFFFFF; + font-weight: bold; +} +.ui-widget-header a { + color: #FFFFFF; +} +.ui-widget-header .ui-state-default { + border: 1px solid #cccccc; + background: #f1f1f1; + font-weight: bold; + color: #555555; +} +.ui-widget-header .ui-state-hover { + border: 1px solid #EA7D1E; + background: #fde17c; + font-weight: bold; + color: #EA7D1E; +} +.ui-widget-header .ui-state-focus { + border: 1px solid #EA7D1E; + background: #fde17c; + font-weight: bold; + color: #EA7D1E; +} +.ui-widget-header .ui-state-active { + border: 1px solid #EA7D1E; + background: #FFFFFF; + font-weight: bold; + color: #EA7D1E; +} +.ui-widget-header .ui-state-highlight { + border: 1px solid #fed22f; + background: #ffe45c; + color: #363636; +} +.ui-widget-header .ui-state-highlight a { + color: #363636; +} +.ui-widget-header .ui-state-error { + border: 1px solid #cd0a0a; + background: #b81900 url("../../../../../css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png?v=v2.7.0-1") 50% 50% repeat; + color: #FFFFFF; +} +.ui-widget-header .ui-state-error a { + color: #FFFFFF; +} +.ui-widget-header .ui-state-error-text { + color: #FFFFFF; +} +.ui-widget-header .ui-priority-primary { + font-weight: bold; +} +.ui-widget-header .ui-priority-secondary { + opacity: 0.7; + filter: Alpha(Opacity=70); + font-weight: normal; +} +.ui-widget-header .ui-state-disabled { + opacity: 0.35; + filter: Alpha(Opacity=35); + background-image: none; +} +.ui-widget-header .ui-icon { + background-image: url("../../../../../css/ui-lightness/images/ui-icons_ffffff_256x240.png?v=v2.7.0-1"); +} +.ui-state-default { + border: 1px solid #cccccc; + background: #f1f1f1; + font-weight: bold; + color: #555555; +} +.ui-state-default a { + color: #555555; + text-decoration: none; +} +.ui-state-default a:link { + color: #555555; + text-decoration: none; +} +.ui-state-default a:visited { + color: #555555; + text-decoration: none; +} +.ui-state-default .ui-icon { + background-image: url("../../../../../css/ui-lightness/images/ui-icons_F26522_256x240.png?v=v2.7.0-1"); +} +html .ui-button.ui-state-disabled:hover { + border: 1px solid #cccccc; + background: #f1f1f1; + font-weight: bold; + color: #555555; +} +html .ui-button.ui-state-disabled:active { + border: 1px solid #cccccc; + background: #f1f1f1; + font-weight: bold; + color: #555555; +} +a.ui-button { + color: #555555; + text-decoration: none; +} +a.ui-button:hover { + color: #EA7D1E; + text-decoration: none; +} +a.ui-button:focus { + color: #EA7D1E; + text-decoration: none; +} +a.ui-button:active { + border: 1px solid #EA7D1E; + background: #ffffff; + font-weight: bold; + color: #EA7D1E; +} +a:link.ui-button { + color: #555555; + text-decoration: none; +} +a:visited.ui-button { + color: #555555; + text-decoration: none; +} +.ui-state-hover { + border: 1px solid #EA7D1E; + background: #fde17c; + font-weight: bold; + color: #EA7D1E; +} +.ui-state-hover a { + color: #EA7D1E; + text-decoration: none; +} +.ui-state-hover a:hover { + color: #EA7D1E; + text-decoration: none; +} +.ui-state-hover a:link { + color: #EA7D1E; + text-decoration: none; +} +.ui-state-hover a:visited { + color: #EA7D1E; + text-decoration: none; +} +.ui-state-hover .ui-icon { + background-image: url("../../../../../css/ui-lightness/images/ui-icons_E87C1E_256x240.png?v=v2.7.0-1"); +} +.ui-state-focus { + border: 1px solid #EA7D1E; + background: #fde17c; + font-weight: bold; + color: #EA7D1E; +} +.ui-state-focus a { + color: #EA7D1E; + text-decoration: none; +} +.ui-state-focus a:hover { + color: #EA7D1E; + text-decoration: none; +} +.ui-state-focus a:link { + color: #EA7D1E; + text-decoration: none; +} +.ui-state-focus a:visited { + color: #EA7D1E; + text-decoration: none; +} +.ui-state-focus .ui-icon { + background-image: url("../../../../../css/ui-lightness/images/ui-icons_E87C1E_256x240.png?v=v2.7.0-1"); +} +.ui-visual-focus { + box-shadow: 0 0 3px 1px #5e9ed6; +} +.ui-state-active { + border: 1px solid #EA7D1E; + background: #FFFFFF; + font-weight: bold; + color: #EA7D1E; +} +.ui-state-active .ui-icon-background { + border: #EA7D1E; + background-color: #EA7D1E; +} +.ui-state-active a { + color: #EA7D1E; + text-decoration: none; +} +.ui-state-active a:link { + color: #EA7D1E; + text-decoration: none; +} +.ui-state-active a:visited { + color: #EA7D1E; + text-decoration: none; +} +.ui-state-active .ui-icon { + background-image: url("../../../../../css/ui-lightness/images/ui-icons_E87C1E_256x240.png?v=v2.7.0-1"); +} +.ui-button.ui-state-active:hover { + border: 1px solid #EA7D1E; + background: #ffffff; + font-weight: bold; + color: #EA7D1E; +} +.ui-icon-background { + border: #EA7D1E; + background-color: #EA7D1E; +} +.ui-state-highlight { + border: 1px solid #fed22f; + background: #ffe45c; + color: #363636; +} +.ui-state-highlight a { + color: #363636; +} +.ui-state-highlight .ui-icon { + background-image: url("../../../../../css/ui-lightness/images/ui-icons_1c94c4_256x240.png?v=v2.7.0-1"); +} +.ui-state-checked { + border: 1px solid #fed22f; + background: #ffe45c; +} +.ui-state-error { + border: 1px solid #cd0a0a; + background: #b81900 url("../../../../../css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png?v=v2.7.0-1") 50% 50% repeat; + color: #FFFFFF; +} +.ui-state-error a { + color: #FFFFFF; +} +.ui-state-error .ui-icon { + background-image: url("../../../../../css/ui-lightness/images/ui-icons_ffd27a_256x240.png?v=v2.7.0-1"); +} +.ui-state-error-text { + color: #FFFFFF; +} +.ui-state-error-text .ui-icon { + background-image: url("../../../../../css/ui-lightness/images/ui-icons_ffd27a_256x240.png?v=v2.7.0-1"); +} +.ui-priority-primary { + font-weight: bold; +} +.ui-priority-secondary { + opacity: 0.7; + filter: Alpha(Opacity=70); + font-weight: normal; +} +.ui-icon-blank { + background-position: 16px 16px; +} +.ui-icon-caret-1-n { + background-position: 0 0; +} +.ui-icon-caret-1-ne { + background-position: -16px 0; +} +.ui-icon-caret-1-e { + background-position: -32px 0; +} +.ui-icon-caret-1-se { + background-position: -48px 0; +} +.ui-icon-caret-1-s { + background-position: -65px 0; +} +.ui-icon-caret-1-sw { + background-position: -80px 0; +} +.ui-icon-caret-1-w { + background-position: -96px 0; +} +.ui-icon-caret-1-nw { + background-position: -112px 0; +} +.ui-icon-caret-2-n-s { + background-position: -128px 0; +} +.ui-icon-caret-2-e-w { + background-position: -144px 0; +} +.ui-icon-triangle-1-n { + background-position: 0 -16px; +} +.ui-icon-triangle-1-ne { + background-position: -16px -16px; +} +.ui-icon-triangle-1-e { + background-position: -32px -16px; +} +.ui-icon-triangle-1-se { + background-position: -48px -16px; +} +.ui-icon-triangle-1-s { + background-position: -65px -16px; +} +.ui-icon-triangle-1-sw { + background-position: -80px -16px; +} +.ui-icon-triangle-1-w { + background-position: -96px -16px; +} +.ui-icon-triangle-1-nw { + background-position: -112px -16px; +} +.ui-icon-triangle-2-n-s { + background-position: -128px -16px; +} +.ui-icon-triangle-2-e-w { + background-position: -144px -16px; +} +.ui-icon-arrow-1-n { + background-position: 0 -32px; +} +.ui-icon-arrow-1-ne { + background-position: -16px -32px; +} +.ui-icon-arrow-1-e { + background-position: -32px -32px; +} +.ui-icon-arrow-1-se { + background-position: -48px -32px; +} +.ui-icon-arrow-1-s { + background-position: -65px -32px; +} +.ui-icon-arrow-1-sw { + background-position: -80px -32px; +} +.ui-icon-arrow-1-w { + background-position: -96px -32px; +} +.ui-icon-arrow-1-nw { + background-position: -112px -32px; +} +.ui-icon-arrow-2-n-s { + background-position: -128px -32px; +} +.ui-icon-arrow-2-ne-sw { + background-position: -144px -32px; +} +.ui-icon-arrow-2-e-w { + background-position: -160px -32px; +} +.ui-icon-arrow-2-se-nw { + background-position: -176px -32px; +} +.ui-icon-arrowstop-1-n { + background-position: -192px -32px; +} +.ui-icon-arrowstop-1-e { + background-position: -208px -32px; +} +.ui-icon-arrowstop-1-s { + background-position: -224px -32px; +} +.ui-icon-arrowstop-1-w { + background-position: -240px -32px; +} +.ui-icon-arrowthick-1-n { + background-position: 1px -48px; +} +.ui-icon-arrowthick-1-ne { + background-position: -16px -48px; +} +.ui-icon-arrowthick-1-e { + background-position: -32px -48px; +} +.ui-icon-arrowthick-1-se { + background-position: -48px -48px; +} +.ui-icon-arrowthick-1-s { + background-position: -64px -48px; +} +.ui-icon-arrowthick-1-sw { + background-position: -80px -48px; +} +.ui-icon-arrowthick-1-w { + background-position: -96px -48px; +} +.ui-icon-arrowthick-1-nw { + background-position: -112px -48px; +} +.ui-icon-arrowthick-2-n-s { + background-position: -128px -48px; +} +.ui-icon-arrowthick-2-ne-sw { + background-position: -144px -48px; +} +.ui-icon-arrowthick-2-e-w { + background-position: -160px -48px; +} +.ui-icon-arrowthick-2-se-nw { + background-position: -176px -48px; +} +.ui-icon-arrowthickstop-1-n { + background-position: -192px -48px; +} +.ui-icon-arrowthickstop-1-e { + background-position: -208px -48px; +} +.ui-icon-arrowthickstop-1-s { + background-position: -224px -48px; +} +.ui-icon-arrowthickstop-1-w { + background-position: -240px -48px; +} +.ui-icon-arrowreturnthick-1-w { + background-position: 0 -64px; +} +.ui-icon-arrowreturnthick-1-n { + background-position: -16px -64px; +} +.ui-icon-arrowreturnthick-1-e { + background-position: -32px -64px; +} +.ui-icon-arrowreturnthick-1-s { + background-position: -48px -64px; +} +.ui-icon-arrowreturn-1-w { + background-position: -64px -64px; +} +.ui-icon-arrowreturn-1-n { + background-position: -80px -64px; +} +.ui-icon-arrowreturn-1-e { + background-position: -96px -64px; +} +.ui-icon-arrowreturn-1-s { + background-position: -112px -64px; +} +.ui-icon-arrowrefresh-1-w { + background-position: -128px -64px; +} +.ui-icon-arrowrefresh-1-n { + background-position: -144px -64px; +} +.ui-icon-arrowrefresh-1-e { + background-position: -160px -64px; +} +.ui-icon-arrowrefresh-1-s { + background-position: -176px -64px; +} +.ui-icon-arrow-4 { + background-position: 0 -80px; +} +.ui-icon-arrow-4-diag { + background-position: -16px -80px; +} +.ui-icon-extlink { + background-position: -32px -80px; +} +.ui-icon-newwin { + background-position: -48px -80px; +} +.ui-icon-refresh { + background-position: -64px -80px; +} +.ui-icon-shuffle { + background-position: -80px -80px; +} +.ui-icon-transfer-e-w { + background-position: -96px -80px; +} +.ui-icon-transferthick-e-w { + background-position: -112px -80px; +} +.ui-icon-folder-collapsed { + background-position: 0 -96px; +} +.ui-icon-folder-open { + background-position: -16px -96px; +} +.ui-icon-document { + background-position: -32px -96px; +} +.ui-icon-document-b { + background-position: -48px -96px; +} +.ui-icon-note { + background-position: -64px -96px; +} +.ui-icon-mail-closed { + background-position: -80px -96px; +} +.ui-icon-mail-open { + background-position: -96px -96px; +} +.ui-icon-suitcase { + background-position: -112px -96px; +} +.ui-icon-comment { + background-position: -128px -96px; +} +.ui-icon-person { + background-position: -144px -96px; +} +.ui-icon-print { + background-position: -160px -96px; +} +.ui-icon-trash { + background-position: -176px -96px; +} +.ui-icon-locked { + background-position: -192px -96px; +} +.ui-icon-unlocked { + background-position: -208px -96px; +} +.ui-icon-bookmark { + background-position: -224px -96px; +} +.ui-icon-tag { + background-position: -240px -96px; +} +.ui-icon-home { + background-position: 0 -112px; +} +.ui-icon-flag { + background-position: -16px -112px; +} +.ui-icon-calendar { + background-position: -32px -112px; +} +.ui-icon-cart { + background-position: -48px -112px; +} +.ui-icon-pencil { + background-position: -64px -112px; +} +.ui-icon-clock { + background-position: -80px -112px; +} +.ui-icon-disk { + background-position: -96px -112px; +} +.ui-icon-calculator { + background-position: -112px -112px; +} +.ui-icon-zoomin { + background-position: -128px -112px; +} +.ui-icon-zoomout { + background-position: -144px -112px; +} +.ui-icon-search { + background-position: -160px -112px; +} +.ui-icon-wrench { + background-position: -176px -112px; +} +.ui-icon-gear { + background-position: -192px -112px; +} +.ui-icon-heart { + background-position: -208px -112px; +} +.ui-icon-star { + background-position: -224px -112px; +} +.ui-icon-link { + background-position: -240px -112px; +} +.ui-icon-cancel { + background-position: 0 -128px; +} +.ui-icon-plus { + background-position: -16px -128px; +} +.ui-icon-plusthick { + background-position: -32px -128px; +} +.ui-icon-minus { + background-position: -48px -128px; +} +.ui-icon-minusthick { + background-position: -64px -128px; +} +.ui-icon-close { + background-position: -80px -128px; +} +.ui-icon-closethick { + background-position: -96px -128px; +} +.ui-icon-key { + background-position: -112px -128px; +} +.ui-icon-lightbulb { + background-position: -128px -128px; +} +.ui-icon-scissors { + background-position: -144px -128px; +} +.ui-icon-clipboard { + background-position: -160px -128px; +} +.ui-icon-copy { + background-position: -176px -128px; +} +.ui-icon-contact { + background-position: -192px -128px; +} +.ui-icon-image { + background-position: -208px -128px; +} +.ui-icon-video { + background-position: -224px -128px; +} +.ui-icon-script { + background-position: -240px -128px; +} +.ui-icon-alert { + background-position: 0 -144px; +} +.ui-icon-info { + background-position: -16px -144px; +} +.ui-icon-notice { + background-position: -32px -144px; +} +.ui-icon-help { + background-position: -48px -144px; +} +.ui-icon-check { + background-position: -64px -144px; +} +.ui-icon-bullet { + background-position: -80px -144px; +} +.ui-icon-radio-on { + background-position: -96px -144px; +} +.ui-icon-radio-off { + background-position: -112px -144px; +} +.ui-icon-pin-w { + background-position: -128px -144px; +} +.ui-icon-pin-s { + background-position: -144px -144px; +} +.ui-icon-play { + background-position: 0 -160px; +} +.ui-icon-pause { + background-position: -16px -160px; +} +.ui-icon-seek-next { + background-position: -32px -160px; +} +.ui-icon-seek-prev { + background-position: -48px -160px; +} +.ui-icon-seek-end { + background-position: -64px -160px; +} +.ui-icon-seek-start { + background-position: -80px -160px; +} +.ui-icon-seek-first { + background-position: -80px -160px; +} +.ui-icon-stop { + background-position: -96px -160px; +} +.ui-icon-eject { + background-position: -112px -160px; +} +.ui-icon-volume-off { + background-position: -128px -160px; +} +.ui-icon-volume-on { + background-position: -144px -160px; +} +.ui-icon-power { + background-position: 0 -176px; +} +.ui-icon-signal-diag { + background-position: -16px -176px; +} +.ui-icon-signal { + background-position: -32px -176px; +} +.ui-icon-battery-0 { + background-position: -48px -176px; +} +.ui-icon-battery-1 { + background-position: -64px -176px; +} +.ui-icon-battery-2 { + background-position: -80px -176px; +} +.ui-icon-battery-3 { + background-position: -96px -176px; +} +.ui-icon-circle-plus { + background-position: 0 -192px; +} +.ui-icon-circle-minus { + background-position: -16px -192px; +} +.ui-icon-circle-close { + background-position: -32px -192px; +} +.ui-icon-circle-triangle-e { + background-position: -48px -192px; +} +.ui-icon-circle-triangle-s { + background-position: -64px -192px; +} +.ui-icon-circle-triangle-w { + background-position: -80px -192px; +} +.ui-icon-circle-triangle-n { + background-position: -96px -192px; +} +.ui-icon-circle-arrow-e { + background-position: -112px -192px; +} +.ui-icon-circle-arrow-s { + background-position: -128px -192px; +} +.ui-icon-circle-arrow-w { + background-position: -144px -192px; +} +.ui-icon-circle-arrow-n { + background-position: -160px -192px; +} +.ui-icon-circle-zoomin { + background-position: -176px -192px; +} +.ui-icon-circle-zoomout { + background-position: -192px -192px; +} +.ui-icon-circle-check { + background-position: -208px -192px; +} +.ui-icon-circlesmall-plus { + background-position: 0 -208px; +} +.ui-icon-circlesmall-minus { + background-position: -16px -208px; +} +.ui-icon-circlesmall-close { + background-position: -32px -208px; +} +.ui-icon-squaresmall-plus { + background-position: -48px -208px; +} +.ui-icon-squaresmall-minus { + background-position: -64px -208px; +} +.ui-icon-squaresmall-close { + background-position: -80px -208px; +} +.ui-icon-grip-dotted-vertical { + background-position: 0 -224px; +} +.ui-icon-grip-dotted-horizontal { + background-position: -16px -224px; +} +.ui-icon-grip-solid-vertical { + background-position: -32px -224px; +} +.ui-icon-grip-solid-horizontal { + background-position: -48px -224px; +} +.ui-icon-gripsmall-diagonal-se { + background-position: -64px -224px; +} +.ui-icon-grip-diagonal-se { + background-position: -80px -224px; +} +.ui-corner-all { + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} +.ui-corner-top { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.ui-corner-left { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.ui-corner-tl { + border-top-left-radius: 0; +} +.ui-corner-right { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.ui-corner-tr { + border-top-right-radius: 0; +} +.ui-corner-bottom { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} +.ui-corner-bl { + border-bottom-left-radius: 0; +} +.ui-corner-br { + border-bottom-right-radius: 0; +} +.ui-widget-shadow { + -webkit-box-shadow: -5px -5px 5px #000000; + box-shadow: -5px -5px 5px #000000; +} +/*! + * Copyright (C) 2013-2020 Combodo SARL + * + * 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 + */ +/* CSS Document */ +body { + font-family: Tahoma, Verdana, Arial, Helvetica; + font-size: 10pt; + background-color: #FFFFFF; + color: #000; + margin: 0; + /* Remove body margin/padding */ + padding: 0; + overflow: hidden; + /* Remove scroll bars on browser window */ +} +body.printable-version { + margin: 1.5em; + overflow: auto; +} +/* to prevent flicker, hide the pane's content until it's ready */ +.ui-layout-center, .ui-layout-north, .ui-layout-south { + display: none; +} +.ui-layout-content { + padding-left: 10px; +} +.ui-layout-content .ui-tabs-nav li { + /* Overriding jQuery UI theme to see active tab better */ + margin-bottom: 2px; +} +.ui-layout-content .ui-tabs-nav li.ui-tabs-active { + padding-bottom: 3px; +} +.raw_output { + font-family: Courier-New, Courier, Arial, Helvetica; + font-size: 8pt; + background-color: #eeeeee; + color: #000; + border: 1px dashed #000; + padding: 0.25em; + margin-top: 1em; +} +h1 { + font-family: Tahoma, Verdana, Arial, Helvetica; + color: #000; + font-weight: bold; + font-size: 12pt; +} +h2 { + font-family: Tahoma, Verdana, Arial, Helvetica; + color: #000; + font-weight: normal; + font-size: 12pt; +} +h3 { + font-family: Tahoma, Verdana, Arial, Helvetica; + color: #000; + font-weight: normal; + font-size: 10pt; +} +label { + cursor: pointer; +} +.hilite, .hilite a, .hilite a:visited { + color: #EA7D1E; + text-decoration: none; +} +table.datatable { + width: 100%; + border: 0; + padding: 0; +} +td.menucontainer { + text-align: right; +} +table.listResults { + padding: 0px; + border-top: 3px solid #F1F1F1; + border-left: 3px solid #F1F1F1; + border-bottom: 3px solid #e6e6e1; + border-right: 3px solid #e6e6e1; + width: 100%; + background-color: #FFFFFF; +} +table.listResults td { + padding: 2px; +} +table.listResults td .view-image { + width: inherit !important; + height: inherit !important; +} +table.listResults td .view-image img { + max-width: 48px !important; + max-height: 48px !important; + display: block; + margin-left: auto; + margin-right: auto; +} +table.listResults > tbody > tr > * { + transition: background-color 400ms linear; +} +table.listResults > tbody > tr:hover > * { + cursor: pointer; +} +table.listResults > tbody > tr.selected:hover > * { + /* hover on lines is currently done toggling td.hover, and having a rule for links */ + background-color: #f1a564; + color: #000; +} +table.listResults > tbody > tr:hover > * { + /* hover on lines is currently done toggling td.hover, and having a rule for links */ + background-color: #fdf5d0; + color: #000; +} +.edit-image .view-image { + display: inline-block; +} +.edit-image .view-image img[src=""], .edit-image .view-image img[src="null"] { + visibility: hidden; +} +.edit-image .view-image.dirty.compat { + background-image: url("../../../../../css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png?v=v2.7.0-1"); +} +.edit-image .view-image.dirty.compat img { + opacity: 0.3; +} +.edit-image .edit-buttons { + display: inline-block; + vertical-align: top; + margin-top: 4px; + margin-left: 3px; +} +.edit-image .edit-buttons .button { + cursor: pointer; + margin-bottom: 3px; + padding: 2px; + background-color: #EA7D1E; +} +.edit-image .edit-buttons .button.disabled { + cursor: default; + background-color: #555555; + opacity: 0.3; +} +.edit-image .edit-buttons .button .ui-icon { + background-image: url("../../../../../css/ui-lightness/images/ui-icons_ffffff_256x240.png?v=v2.7.0-1"); +} +.edit-image .file-input { + display: block; +} +/* Center the image both horizontally and vertically, withing a box which size is fixed (depends on the attribute definition) */ +.details .view-image { + text-align: center; + padding: 2px; + border: 2px solid #ddd; + border-radius: 6px; +} +.details .view-image img { + display: inline-block; + vertical-align: middle; + max-width: 90% !important; + max-height: 90% !important; + cursor: zoom-in; +} +.details .view-image .helper-middle { + display: inline-block; + height: 100%; + vertical-align: middle; +} +table.listContainer { + border: 0; + padding: 0; + margin: 0; + width: 100%; + clear: both; +} +tr.containerHeader, tr.containerHeader td { + background: transparent; +} +tr.even td, .wizContainer tr.even td { + background-color: #F1F1F1; +} +tr.red_even td, .wizContainer tr.red_even td { + background-color: #f97e75; + color: #FFFFFF; +} +tr.red td, .wizContainer tr.red td { + background-color: #f9a397; + color: #FFFFFF; +} +tr.orange_even td, .wizContainer tr.orange_even td { + background-color: #f4d07a; +} +tr.orange td, .wizContainer tr.orange td { + background-color: #f4e96c; +} +tr.green_even td, .wizContainer tr.green_even td { + background-color: #bee5a3; +} +tr.green td, .wizContainer tr.green td { + background-color: #b3e5b4; +} +tr td.hover, tr.even td.hover, .hover a, .hover a:visited, .hover a:hover, .wizContainer tr.even td.hover, .wizContainer tr td.hover { + color: #000; +} +th { + font-family: Tahoma, Verdana, Arial, Helvetica; + font-size: 8pt; + color: #1c94c4; + height: 20px; + background: #F1F1F1 bottom repeat-x; +} +th.header { + cursor: pointer; + background-repeat: no-repeat; + background-position: center right; + background-repeat: no-repeat; + padding-right: 16px; +} +th.headerSortUp { + text-decoration: underline; + cursor: pointer; + padding-right: 5px; +} +th.headerSortUp::after { + font-family: "Font Awesome 5 Free"; + text-align: right; + content: '\f0d7'; + color: #1c94c4; + float: right; +} +th.headerSortDown { + text-decoration: underline; + cursor: pointer; + padding-right: 5px; +} +th.headerSortDown::after { + font-family: "Font Awesome 5 Free"; + text-align: right; + content: '\f0d8'; + color: #1c94c4; + float: right; +} +td { + font-family: Tahoma, Verdana, Arial, Helvetica; + font-size: 12px; + color: #696969; + nobackground-color: #ffffff; + padding: 0px; +} +tr.clicked td { + font-family: Tahoma, Verdana, Arial, Helvetica; + font-size: smaller; + background-color: #ffcfe8; +} +td.label { + vertical-align: top; +} +td.label span { + font-family: Tahoma, Verdana, Arial, Helvetica; + font-size: 12px; + color: #000; + padding: 5px; + padding-right: 10px; + font-weight: bold; + vertical-align: top; + text-align: right; + display: block; +} +fieldset td.label span { + padding: 3px; + padding-right: 10px; +} +fieldset { + margin-top: 3px; + -moz-border-radius: 6px; + -webkit-border-radius: 6px; + border-radius: 6px; + border-style: solid; + border-color: #ddd; +} +legend { + font-family: Tahoma, Verdana, Arial, Helvetica; + font-size: 12px; + padding: 8px; + color: #fff; + background-color: #1c94c4; + font-weight: bold; + -moz-border-radius: 6px; + -webkit-border-radius: 6px; + border-radius: 6px; +} +legend.transparent { + background: transparent; + color: #333333; + font-size: 1em; + font-weight: normal; + padding: 0; +} +.ui-widget-content td legend a, .ui-widget-content td legend a:hover, .ui-widget-content td legend a:visited { + color: #fff; +} +.ui-widget-content td a, p a, p a:visited, td a, td a:visited { + text-decoration: none; + color: #1c94c4; +} +.ui-widget-content td a.cke_button, .ui-widget-content td a.cke_toolbox_collapser, .ui-widget-content td a.cke_combo_button, cke_dialog a { + padding-left: 0; + background-image: none; +} +.ui-widget-content td a:hover, p a:hover, td a:hover { + text-decoration: underline; + color: #EA7D1E; +} +.cke_reset_all *:hover { + text-decoration: none; + color: #000; +} +table.cke_dialog_contents a.cke_dialog_ui_button_ok { + color: #000; + border-color: #EA7D1E; + background: #EA7D1E; +} +.cke_notifications_area { + display: none; +} +.hljs { + padding: 0.9em !important; + box-shadow: 0 0px 3px 2px inset rgba(0, 0, 0, 0.4); + border-radius: 3px; +} +td a.no-arrow, td a.no-arrow:visited, .SearchDrawer a.no-arrow, .SearchDrawer a.no-arrow:visited { + text-decoration: none; + color: #000; + padding-left: 0px; + background: inherit; +} +td a.no-arrow:hover { + text-decoration: underline; + color: #d81515; + padding-left: 0px; + background: inherit; +} +td a:hover .text_decoration, td a:visited:hover .text_decoration { + color: #d56e14; +} +td a .text_decoration, td a:visited .text_decoration { + vertical-align: baseline; + text-decoration: none; + color: #EA7D1E; + margin-right: 8px; + transition: color 0.2s ease-in-out; +} +a.small_action { + font-family: Tahoma, Verdana, Arial, Helvetica; + font-size: 8pt; + color: #000; + text-decoration: none; +} +.display_block { + padding: 0.25em; +} +.actions_details { + float: right; + margin-top: 10px; + margin-right: 10px; + padding-left: 5px; + padding-top: 2px; + padding-bottom: 2px; + background: #EA7D1E; +} +.actions_details span { + background: url("../../../../../images/actions_right.png?v=v2.7.0-1") no-repeat right; + color: #fff; + font-weight: bold; + padding-top: 2px; + padding-bottom: 2px; + padding-right: 12px; +} +.actions_details a { + text-decoration: none; +} +.loading { + noborder: 1px dashed #CCC; + background: #b9c1c8; + padding: 0.25em; +} +input.textSearch { + border: 1px solid #000; + font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; + font-size: 12px; + color: #000; +} +.ac_input { + border: 1px solid #7f9db9; + background: #fff url("../../../../../images/ac-background.gif?v=v2.7.0-1") no-repeat right; +} +/* By Rom */ +.csvimport_createobj { + color: #AA0000; + background-color: #EEEEEE; +} +.csvimport_error { + font-weight: bold; + color: #FF0000; + background-color: #EEEEEE; +} +.csvimport_warning { + color: #CC8888; + background-color: #EEEEEE; +} +.csvimport_ok { + color: #000; + background-color: #BBFFBB; +} +.csvimport_reconkey { + font-style: italic; + color: #888888; + background-color: #FFFFFF; +} +.csvimport_extreconkey { + color: #888888; + background-color: #FFFFFF; +} +#accordion { + display: none; +} +#accordion h3 { + padding: 10px; +} +.ui-accordion-content ul { + list-style: none; + list-style-image: none; + padding-left: 16px; + margin-top: 8px; +} +.ui-accordion-content li.submenu { + margin-top: 8px; +} +.ui-accordion-content ul ul { + padding: 8px 0px 8px 8px; + margin: 0; + list-style: none; + list-style-image: none; + border: 0; +} +.nothing { + noborder-top: 1px solid #8b8b8b; + padding: 4px 0px 0px 16px; + font-size: 8pt; + background: url("../../../../../images/green-square.gif?v=v2.7.0-1") no-repeat bottom left; + color: #83b217; + font-weight: bold; + text-decoration: none; +} +div.ui-accordion-content { + padding-top: 10px; + padding-left: 10px; +} +.ui-accordion-content a, ui-accordion-content a:visited { + color: #1c94c4; + text-decoration: none; +} +.ui-accordion-content a:hover { + color: #EA7D1E; + text-decoration: none; +} +.ui-accordion-content ul { + padding-left: 0; + margin-top: 0; +} +.ui-accordion-content li { + color: #555555; + text-decoration: none; + margin: 0; + padding: 0px 0pt 0px 6px; + font-size: 9pt; + font-weight: normal; + border: 0; +} +.ui-accordion-content li::before { + font-family: "Font Awesome 5 Free"; + content: "\f0da"; + color: #EA7D1E; + font-weight: 900; + margin-right: 6px; + font-size: 10px; +} +td a.CollapsibleLabel, a.CollapsibleLabel { + margin: 0; + padding: 0; + font-size: 8pt; + text-decoration: none; + color: #555555; +} +td a.CollapsibleLabel::before, a.CollapsibleLabel::before { + font-family: "Font Awesome 5 Free"; + color: #EA7D1E; + content: "\f0da"; + font-weight: 900; + margin: 0 5px; + font-size: 10px; +} +/* Beware: IE6 does not support multiple selector with multiple classes, only the last class is used */ +td a.CollapsibleLabel.open, a.CollapsibleLabel.open { + margin: 0; + padding: 0px 0pt 0px 16px; + font-size: 8pt; + text-decoration: none; + color: #EA7D1E; +} +td a.CollapsibleLabel.open::before, a.CollapsibleLabel.open::before { + font-family: "Font Awesome 5 Free"; + color: #EA7D1E; + content: '\f0d7'; + margin-right: 6px; + font-size: 10px; +} +.page_header { + background-color: #F1F1F1; + padding: 5px; +} +/* move up a header immediately following a display block (i.e. "actions" menu) */ +.display_block + .page_header { + margin-top: -8px; +} +.notreeview li { + background: url("../../../../../images/tv-item.gif?v=v2.7.0-1") 0 0 no-repeat; +} +.notreeview .collapsable { + background-image: url("../../../../../images/tv-collapsable.gif?v=v2.7.0-1"); +} +.notreeview .expandable { + background-image: url("../../../../../images/tv-expandable.gif?v=v2.7.0-1"); +} +.notreeview .last { + background-image: url("../../../../../images/tv-item-last.gif?v=v2.7.0-1"); +} +.notreeview .lastCollapsable { + background-image: url("../../../../../images/tv-collapsable-last.gif?v=v2.7.0-1"); +} +.notreeview .lastExpandable { + background-image: url("../../../../../images/tv-expandable-last.gif?v=v2.7.0-1"); +} +#OrganizationSelection { + padding: 5px 0px 16px 20px; +} +/* popup menus */ +div.itop_popup { + margin: 0; + padding: 0; + float: right; +} +div.itop_popup > ul > li { + list-style: none; + cursor: pointer; + position: relative; +} +div.actions_menu > ul { + height: 19px; + line-height: 17px; + vertical-align: middle; + display: block; + nowidth: 70px; + padding-left: 5px; + /* Nasty work-around for IE... en attendant mieux */ + background: #EA7D1E; + cursor: pointer; + margin: 0; +} +div.actions_menu > ul > li { + float: left; + list-style: none; + font-size: 11px; + font-family: Tahoma, sans-serif; + height: 17px; + padding-right: 10px; + padding-left: 4px; + font-weight: bold; + color: #fff; + vertical-align: middle; + margin: 0; +} +div.actions_menu > ul > li > i { + margin-left: 5px; +} +#logOffBtn > ul > li { + list-style: none; + vertical-align: middle; + margin: 0; + padding-left: 10px; + padding-right: 10px; + cursor: pointer; +} +#logOffBtn > ul { + list-style: none; + vertical-align: middle; + margin: 0; + padding: 0; + height: 25px; +} +.itop_popup > ul > li > ul, #logOffBtn > ul > li > ul { + box-shadow: 3px 3px 5px 0px rgba(0, 0, 0, 0.5); +} +.itop_popup li a, #logOffBtn li a { + display: block; + padding: 5px 12px; + text-decoration: none; + nowidth: 70px; + color: #000; + font-weight: bold; + white-space: nowrap; + background: #fff; +} +#logOffBtn li span { + display: block; + padding: 5px 12px; + text-decoration: none; + nowidth: 70px; + color: #000; + white-space: nowrap; + background: #fff; +} +.itop_popup ul { + padding-left: 0; +} +.menucontainer div.toolkit_menu { + background: #EA7D1E; + margin-left: 10px; +} +.menucontainer div.toolkit_menu > ul > li { + float: left; + list-style: none; + font-size: 11px; + font-family: Tahoma, sans-serif; + height: 19px; + padding-right: 4px; + padding-left: 6px; + font-weight: bold; + color: #fff; + vertical-align: middle; + line-height: 17px; + margin: 0; +} +.menucontainer div.toolkit_menu > ul > li > i:nth-child(1) { + font-size: 13px; + padding-top: 3px; +} +.menucontainer div.toolkit_menu > ul > li > i:nth-child(2) { + margin-left: 5px; +} +.itop_popup li a:hover, #logOffBtn li a:hover { + background: #1A4473; +} +.itop_popup ul > li > ul, #logOffBtn ul > li > ul { + border: 1px solid black; + background: #fff; +} +.itop_popup li > ul, #logOffBtn li > ul { + margin: 0; + padding: 0; + position: absolute; + display: none; + border-top: 1px solid white; + z-index: 1500; +} +.itop_popup li ul li, #logOffBtn li ul li { + float: none; + display: inline; +} +.itop_popup li ul li a, #logOffBtn li ul li a { + width: auto; + text-align: left; +} +.itop_popup li ul li a:hover, #logOffBtn li ul li a:hover { + background: #EA7D1E; + color: #fff; + font-weight: bold; +} +.itop_popup > ul { + margin: 0; +} +hr.menu-separator { + border: none 0; + border-top: 1px solid #ccc; + color: #ccc; + background-color: transparent; + height: 1px; + margin: 3px; + cursor: default; +} +/************************************/ +.wizHeader { + background: #1c94c4; + padding: 15px; +} +.wizContainer { + border: 5px solid #1c94c4; + background: #d6e8ef; + padding: 5px; +} +.wizContainer table tr td { + background: transparent; +} +.alignRight { + text-align: right; + padding: 3px; +} +.alignLeft { + text-align: left; + padding: 3px; +} +.red { + background-color: #ff6000; + color: #000; +} +th.red { + background: url("../../../../../images/red-header.gif?v=v2.7.0-1") bottom left repeat-x; + color: #000; +} +.green { + background-color: #00cc00; + color: #000; +} +th.green { + background: url("../../../../../images/green-header.gif?v=v2.7.0-1") bottom left repeat-x; + color: #000; +} +.orange { + background-color: #ffde00; + color: #000; +} +th.orange { + background: url("../../../../../images/orange-header.gif?v=v2.7.0-1") bottom left repeat-x; + color: #000; +} +/* For Date Picker: Creates a little calendar icon + * instead of a text link for "Choose date" + */ +td a.dp-choose-date, a.dp-choose-date, td a.dp-choose-date:hover, a.dp-choose-date:hover, td a.dp-choose-date:visited, a.dp-choose-date:visited { + float: left; + width: 16px; + height: 16px; + padding: 0; + margin: 5px 3px 0; + display: block; + text-indent: -2000px; + overflow: hidden; + background: url("../../../../../images/calendar.png?v=v2.7.0-1") no-repeat; +} +td a.dp-choose-date.dp-disabled, a.dp-choose-date.dp-disabled { + background-position: 0 -20px; + cursor: default; +} +/* For Date Picker: makes the input field shorter once the date picker code + * has run (to allow space for the calendar icon) + */ +input.dp-applied { + width: 140px; + float: left; +} +/* For search forms */ +.mini_tabs a { + text-decoration: none; + font-weight: bold; + color: #ccc; + background-color: #333; + padding-left: 1em; + padding-right: 1em; + padding-bottom: 0.25em; +} +.mini_tabs a.selected { + color: #fff; + background-color: #1c94c4; + padding-top: 0.25em; +} +.mini_tabs ul { + margin: -10px; +} +.mini_tabs ul li { + float: right; + list-style: none; + nopadding-left: 1em; + nopadding-right: 1em; + margin-top: 0; +} +/* Search forms v2 */ +.search_box { + box-sizing: border-box; + position: relative; + z-index: 1100; + /* To be over the table block/unblock UI. Not very sure about this. */ + text-align: center; + /* Used when form is closed */ + /* Sizing reset */ +} +.search_box * { + box-sizing: border-box; +} +.search_form_handler { + position: relative; + z-index: 10; + width: 100%; + margin-left: auto; + margin-right: auto; + font-size: 12px; + text-align: left; + /* To compensate .search_box:text-align */ + border: 1px solid #1c94c4; + /* Sizing reset */ +} +.search_form_handler * { + box-sizing: border-box; + /* Hyperlink reset */ +} +.search_form_handler a { + color: inherit; + text-decoration: none; + /* Input reset */ +} +.search_form_handler input[type="text"], .search_form_handler select { + padding: 1px 2px; +} +.search_form_handler:not(.closed) .sf_title .sft_short { + display: none; +} +.search_form_handler:not(.closed) .sf_title .sft_hint, .search_form_handler:not(.closed) .sf_title .sfobs_hint, .search_form_handler:not(.closed) .sf_title .sft_toggler { + margin-top: 4px; +} +.search_form_handler:not(.closed) .sf_title .sft_toggler { + transform: rotateX(180deg); + transition: transform 0.5s linear; +} +.search_form_handler.closed { + margin-bottom: 0.5em; + width: 150px; + overflow: hidden; + border-radius: 4px; + background-color: #1c94c4; +} +.search_form_handler.closed .sf_criterion_area { + height: 0; + opacity: 0; + padding: 0; +} +.search_form_handler.closed .sf_title { + padding: 6px 8px; + text-align: center; + font-size: 12px; +} +.search_form_handler.closed .sf_title .sft_long { + display: none; +} +.search_form_handler.closed .sf_title .sft_hint, .search_form_handler.closed .sf_title .sfobs_hint { + display: none; +} +.search_form_handler:not(.no_auto_submit) .sft_hint { + display: none; +} +.search_form_handler:not(.no_auto_submit) .sfc_fg_apply { + display: none; +} +.search_form_handler.no_auto_submit .sfc_fg_search { + display: none; +} +.search_form_handler.no_auto_submit .sft_hint { + display: inline-block; +} +.search_form_handler:not(.hide_obsolete_data) .sfobs_hint { + display: none; +} +.search_form_handler.hide_obsolete_data .sfobs_hint { + display: inline-block; +} +.search_form_handler.hide_obsolete_data.no_auto_submit .sfobs_hint { + margin-left: 30px; +} +.search_form_handler .sf_title { + transition: opacity 0.3s, background-color 0.3s, color 0.3s linear; + padding: 8px 10px; + margin: 0; + color: #FFFFFF; + background-color: #1c94c4; + cursor: pointer; +} +.search_form_handler .sf_title .sft_hint, .search_form_handler .sf_title .sfobs_hint { + font-size: 8pt; + font-style: italic; +} +.search_form_handler .sf_title .sft_toggler { + margin-left: 0.7em; + transition: color 0.2s ease-in-out, transform 0.4s ease-in-out; +} +.search_form_handler .sf_title .sft_toggler:hover { + color: #F1F1F1; +} +.search_form_handler .sf_message { + display: none; + margin: 8px 8px 0px 8px; + border-radius: 0px; +} +.search_form_handler .sf_criterion_area { + /*display: none;*/ + padding: 8px 8px 3px 8px; + /* padding-bottom must equals to padding-top - .search_form_criteria:margin-bottom */ + background-color: #FFFFFF; +} +.search_form_handler .sf_criterion_area .sf_criterion_row { + position: relative; +} +.search_form_handler .sf_criterion_area .sf_criterion_row:not(:first-child) { + margin-top: 20px; +} +.search_form_handler .sf_criterion_area .sf_criterion_row:not(:first-child)::before { + content: ""; + position: absolute; + top: -12px; + left: 0px; + width: 100%; + border-top: 1px solid #CCCCCC; +} +.search_form_handler .sf_criterion_area .sf_criterion_row:not(:first-child)::after { + content: "or"; + /* TODO: Make this into a dict entry */ + position: absolute; + top: -20px; + left: 8px; + padding-left: 5px; + padding-right: 5px; + color: #808080; + background-color: #FFFFFF; + /* Must match .sf_criterion_area:background-color */ +} +.search_form_handler .sf_criterion_area .sf_criterion_row .sf_criterion_group { + display: inline; + /* Common style between criterion and more criterion */ +} +.search_form_handler .sf_criterion_area .search_form_criteria, .search_form_handler .sf_criterion_area .sf_more_criterion, .search_form_handler .sf_criterion_area .sf_button { + position: relative; + display: inline-block; + margin-right: 10px; + margin-bottom: 5px; + vertical-align: top; +} +.search_form_handler .sf_criterion_area .search_form_criteria.opened, .search_form_handler .sf_criterion_area .sf_more_criterion.opened, .search_form_handler .sf_criterion_area .sf_button.opened { + margin-bottom: 0px; + /* To compensate the .sfc/.sfm_header:padding-bottom: 13px */ +} +.search_form_handler .sf_criterion_area .search_form_criteria.opened .sfc_header, .search_form_handler .sf_criterion_area .sf_more_criterion.opened .sfc_header, .search_form_handler .sf_criterion_area .sf_button.opened .sfc_header, .search_form_handler .sf_criterion_area .search_form_criteria.opened .sfm_header, .search_form_handler .sf_criterion_area .sf_more_criterion.opened .sfm_header, .search_form_handler .sf_criterion_area .sf_button.opened .sfm_header { + border-bottom: none !important; + box-shadow: none !important; + padding-bottom: 13px; + /* Must be equal to .search_form_criteria:margin-bottom + this:padding-bottom */ +} +.search_form_handler .sf_criterion_area .search_form_criteria > *, .search_form_handler .sf_criterion_area .sf_more_criterion > *, .search_form_handler .sf_criterion_area .sf_button > * { + padding: 7px 8px; + vertical-align: top; + border: 1px solid #CCCCCC; + border-radius: 1px; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15); +} +.search_form_handler .sf_criterion_area .search_form_criteria .sfc_form_group, .search_form_handler .sf_criterion_area .sf_more_criterion .sfc_form_group, .search_form_handler .sf_criterion_area .sf_button .sfc_form_group, .search_form_handler .sf_criterion_area .search_form_criteria .sfm_content, .search_form_handler .sf_criterion_area .sf_more_criterion .sfm_content, .search_form_handler .sf_criterion_area .sf_button .sfm_content { + position: absolute; + z-index: -1; + min-width: 100%; + left: 0px; + margin-top: -1px; +} +.search_form_handler .sf_criterion_area .search_form_criteria .sfc_form_group .sfc_fg_buttons, .search_form_handler .sf_criterion_area .sf_more_criterion .sfc_form_group .sfc_fg_buttons, .search_form_handler .sf_criterion_area .sf_button .sfc_form_group .sfc_fg_buttons, .search_form_handler .sf_criterion_area .search_form_criteria .sfm_content .sfc_fg_buttons, .search_form_handler .sf_criterion_area .sf_more_criterion .sfm_content .sfc_fg_buttons, .search_form_handler .sf_criterion_area .sf_button .sfm_content .sfc_fg_buttons { + white-space: nowrap; + /* Criteria tags */ +} +.search_form_handler .sf_criterion_area .search_form_criteria { + /* Non editable criteria */ +} +.search_form_handler .sf_criterion_area .search_form_criteria.locked { + background-color: #F1F1F1; +} +.search_form_handler .sf_criterion_area .search_form_criteria.locked .sfc_title { + user-select: none; + cursor: initial; + /* Draft criteria (modifications not applied) */ +} +.search_form_handler .sf_criterion_area .search_form_criteria.draft .sfc_header, .search_form_handler .sf_criterion_area .search_form_criteria.draft .sfc_form_group { + border-style: dashed; +} +.search_form_handler .sf_criterion_area .search_form_criteria.draft .sfc_title { + font-style: italic; + /* Opened criteria (form group displayed) */ +} +.search_form_handler .sf_criterion_area .search_form_criteria.opened { + z-index: 1; + /* To be over other criterion */ +} +.search_form_handler .sf_criterion_area .search_form_criteria.opened .sfc_toggle { + transform: rotateX(-180deg); +} +.search_form_handler .sf_criterion_area .search_form_criteria.opened .sfc_form_group { + display: block; +} +.search_form_handler .sf_criterion_area .search_form_criteria.opened_left .sfc_form_group { + left: auto; + right: 0px; + /* Add "and" on criterion but the one and submit button */ +} +.search_form_handler .sf_criterion_area .search_form_criteria:not(:last-of-type) { + margin-right: 30px; +} +.search_form_handler .sf_criterion_area .search_form_criteria:not(:last-of-type)::after { + /* TODO: Find an elegant way to do this, without hardcoding the content (could be a