diff --git a/css/setup.css b/css/setup.css index 91cb90fc6..8142959aa 100644 --- a/css/setup.css +++ b/css/setup.css @@ -605,7 +605,7 @@ ul.cke_autocomplete_panel, .ibo-quick-create--input.selectize-control.single .se /* NOTE: Those helpers allow to easily use an icon from libs. like FontAwesome or FontCombodo within a CSS rule (eg. ::after) */ /* To use it, simply "@extend %fa-regular-base" in a rule and put the desired icon "content: '\f054'" */ /******************************************************************************************************************************/ -.dataTables_scrollHead thead tr th.sorting::after, .ibo-breadcrumbs--item:not(:last-child)::after, .ibo-prop--apply.ui-state-error:after, .ibo-sort-order::after { +.dataTables_scrollHead thead tr th.sorting::after, .ibo-breadcrumbs--item:not(:last-child)::after, .ibo-prop--apply.ui-state-error:after, .ibo-sort-order::after, .collapsable-options:not(.setup-is-opened)::before, .collapsable-options.setup-is-opened::before, #params_summary div.closed .title::before, #params_summary div:not(.closed) .title::before { font-family: "Font Awesome 5 Free"; font-weight: 900; -webkit-font-smoothing: antialiased; @@ -750,7 +750,7 @@ ul.cke_autocomplete_panel, .ibo-quick-create--input.selectize-control.single .se -moz-font-feature-settings: "lnum"; font-feature-settings: "lnum"; } -.ibo-font-ral-nor-250, .ui-dialog-title, .ibo-navigation-menu--user-info .ibo-navigation-menu--user-welcome-message, .ibo-welcome-popup--text { +.ibo-font-ral-nor-250, .ui-dialog-title, .ibo-navigation-menu--user-info .ibo-navigation-menu--user-welcome-message, .ibo-welcome-popup--text, #ibo_setup_container .ibo-setup--body .setup-content-title, #ibo_setup_container .ibo-setup--body h2, .setup-end-placeholder a { font-size: 1.5rem; font-family: "Raleway", "sans-serif", "system-ui"; font-weight: 400; @@ -1364,6 +1364,9 @@ body.ibo-has-fullscreen-descendant { * A single class to handle WYSIWYG generated content, where only HTML tags are available * See https://bulma.io/documentation/elements/content/ */ +.ibo-is-html-content code { + color: initial; +} /***********************************************************************/ /* Sticky headers */ /* */ @@ -1419,6 +1422,10 @@ body.ibo-has-fullscreen-descendant { * * You should have received a copy of the GNU Affero General Public License */ +/** + * customize Bulma content variables + * See https://bulma.io/documentation/elements/content/ + */ /*! bulma.io v0.9.0 | MIT License | github.com/jgthms/bulma */ @keyframes spinAround { from { @@ -2964,8 +2971,8 @@ a.box:active { width: 100%; } .content table td, .ibo-is-html-content table td, .content table th, .ibo-is-html-content table th { - border: 1px solid #dbdbdb; - border-width: 0 0 1px; + border: 1px solid black; + border-width: 1px; padding: 0.5em 0.75em; vertical-align: top; } @@ -2976,12 +2983,12 @@ a.box:active { text-align: inherit; } .content table thead td, .ibo-is-html-content table thead td, .content table thead th, .ibo-is-html-content table thead th { - border-width: 0 0 2px; + border-width: 1px; color: #363636; } .content table tfoot td, .ibo-is-html-content table tfoot td, .content table tfoot th, .ibo-is-html-content table tfoot th { - border-width: 2px 0 0; - color: #363636; + border-width: 1px; + color: black; } .content table tbody tr:last-child td, .ibo-is-html-content table tbody tr:last-child td, .content table tbody tr:last-child th, .ibo-is-html-content table tbody tr:last-child th { border-bottom-width: 0; @@ -10349,7 +10356,7 @@ a.has-text-danger-dark:hover, .ibo-quick-create--compartment-results--element > padding: 0.9rem !important; box-shadow: 0 0px 3px 2px inset rgba(0, 0, 0, 0.4); border-radius: 3px; - white-space: pre-wrap; + white-space: pre-line; } /* Mentions in caselogs */ /* Note: Mind the "ul", it allows us to have a more precise rule than the original plugin's CSS so we can override it */ @@ -10366,14 +10373,19 @@ ul.cke_autocomplete_panel .ibo-vendors-ckeditor--autocomplete-item { ul.cke_autocomplete_panel .ibo-vendors-ckeditor--autocomplete-item-image { width: 25px; height: 25px; + /* min-xxx are here to avoid medallion to be horizontally compressed when the title is to long */ + min-width: 25px; + min-height: 25px; background-position: center center; background-size: 100%; border-radius: 100%; margin-right: 0.5rem; - background-color: #e1e7ec; + background-color: #ebf8ff; border: 1px solid #929fb1; } ul.cke_autocomplete_panel .ibo-vendors-ckeditor--autocomplete-item-title { + white-space: nowrap; + /* Here we don't want to truncate the text as in an autocomplete we might have similar values and we need the user to see the entire text to be able to differenciate them */ color: #3A3A3A; } /*! @@ -10828,6 +10840,9 @@ ul.cke_autocomplete_panel .ibo-vendors-ckeditor--autocomplete-item-title { cursor: default; z-index: 100; } +.ui-autocomplete .ui-menu-item { + padding: 0; +} .ui-autocomplete-input { width: auto; display: inline; @@ -13772,7 +13787,7 @@ img.ibo-navigation-menu--notifications--item--image:not([src=""]) ~ i.ibo-naviga } .ibo-field:not([data-attribute-type="AttributeBlob"]):not([data-attribute-type="AttributeFile"]):not([data-attribute-type="AttributeImage"]):not([data-attribute-type="AttributeCustomFields"]):not(.ibo-input-file-select--container) .ibo-field--value * { word-break: break-word; - white-space: pre-wrap; + white-space: pre-line; } .ibo-field ~ .ibo-field { margin-top: 16px; @@ -14405,7 +14420,7 @@ img.ibo-navigation-menu--notifications--item--image:not([src=""]) ~ i.ibo-naviga } .search_form_handler .sf_criterion_area .sf_more_criterion > * { background-color: white; - color: #dd6c20; + color: #37474f; } .search_form_handler .sf_criterion_area .sf_more_criterion .sfm_toggler .sfm_tg_title { margin-right: 7px; @@ -16240,7 +16255,7 @@ input:checked + .ibo-dashboard--slider:after { /* Avoid pre (code snippets) to overflow outside the entry */ } .ibo-activity-entry--main-information-content pre { - white-space: pre-wrap; + white-space: pre-line; /* Avoid table to overflow outside the entry (see N°2127) */ } .ibo-activity-entry--main-information-content table { @@ -17139,6 +17154,8 @@ tr.row_added td { */ } #ibo-main-content .ibo-panel.ibo-has-sticky-header { + margin-bottom: 200px; + /* Add a margin below the panel so the dropdown lists can open without problem (N°4039) */ /* Stickable header rules */ } #ibo-main-content .ibo-panel.ibo-has-sticky-header > .ibo-sticky-sentinel-top { @@ -17450,10 +17467,9 @@ h3.clickable.open { fieldset { border: none; padding: 0; - margin: 30px 0 0 0; + margin: 15px 0 0 0; } fieldset > legend { - margin-top: 25px; margin-bottom: 7px; padding-bottom: 7px; width: 100%; @@ -17505,14 +17521,11 @@ body { border-bottom: none; border-radius: 3px 3px 0 0; } -#ibo_setup_container .ibo-setup--header img { +#ibo_setup_container .ibo-setup--header .ibo-title--icon { border: 0; vertical-align: middle; margin-right: 20px; } -#ibo_setup_container .ibo-setup--header h1 { - margin-top: 10px; -} #ibo_setup_container .ibo-setup--body { display: flex; flex-direction: column; @@ -17562,10 +17575,10 @@ body { margin-top: 5px; } #ibo_setup_container .ibo-setup--body .ibo-fieldset, #ibo_setup_container .ibo-setup--body fieldset { - margin-top: 25px; + margin-top: 12px; } #ibo_setup_container .ibo-setup--body .ibo-fieldset ~ .ibo-fieldset, #ibo_setup_container .ibo-setup--body fieldset ~ .ibo-fieldset, #ibo_setup_container .ibo-setup--body .ibo-fieldset ~ fieldset, #ibo_setup_container .ibo-setup--body fieldset ~ fieldset { - margin-top: 25px; + margin-top: 12px; } #ibo_setup_container .ibo-setup--body .ibo-field { margin-top: 5px; @@ -17599,6 +17612,19 @@ body { max-height: 400px; overflow: auto; } +#ibo_setup_container .ibo-setup--body .ibo-input, #ibo_setup_container .ibo-setup--body .ui-autocomplete-input, #ibo_setup_container .ibo-setup--body .ui-multiselect, #ibo_setup_container .ibo-setup--body .dataTables_length select, .dataTables_length #ibo_setup_container .ibo-setup--body select, #ibo_setup_container .ibo-setup--body .ui_tpicker_hour_slider > select, #ibo_setup_container .ibo-setup--body .ui_tpicker_minute_slider > select, #ibo_setup_container .ibo-setup--body .ui_tpicker_second_slider > select, #ibo_setup_container .ibo-setup--body .search_form_handler .sf_criterion_area .search_form_criteria .sfc_form_group .sfc_fg_operators .sfc_fg_operator .sfc_op_content input[type="text"], .search_form_handler .sf_criterion_area .search_form_criteria .sfc_form_group .sfc_fg_operators .sfc_fg_operator .sfc_op_content #ibo_setup_container .ibo-setup--body input[type="text"], #ibo_setup_container .ibo-setup--body .search_form_handler .sf_filter .sff_input_wrapper input[type="text"], .search_form_handler .sf_filter .sff_input_wrapper #ibo_setup_container .ibo-setup--body input[type="text"] { + width: auto; + display: inline-block; +} +#ibo_setup_container .ibo-setup--body table td { + white-space: nowrap; + line-height: 2.5rem; + padding-right: 8px; + padding-bottom: 1rem; +} +#ibo_setup_container .ibo-setup--body .setup-content-title, #ibo_setup_container .ibo-setup--body h2 { + margin-bottom: 18px; +} .ibo-setup--button-bar { margin-top: 16px; } @@ -17611,4 +17637,107 @@ body { .ibo-setup-summary-title { font-size: 1.17rem; } +.setup-prefix-toggler--input--container, .setup-tls--input--container, .setup-disk-location--input--container, .setup-backup--input--container { + display: flex; + line-height: 2.5rem; + margin: 1rem 0; +} +.setup-prefix-toggler--input--container input, .setup-tls--input--container input, .setup-disk-location--input--container input, .setup-backup--input--container input { + margin: 0 8px; +} +.setup-disk-location--input--container input, .setup-backup--input--container input { + flex-grow: 1; +} +.collapsable-options { + margin-bottom: 18px; +} +.collapsable-options:not(.setup-is-opened)::before { + margin-right: 8px; + content: '\f078'; +} +.collapsable-options.setup-is-opened::before { + margin-right: 8px; + content: '\f077'; +} +.setup-input--hint--icon { + color: #6e7a8a; +} +.setup-invalid-field--icon { + color: #c53030; + margin-left: 8px; +} +.setup-accept-licenses { + margin-top: 18px; +} +.setup-accept-licenses input { + margin-right: 8px; +} +.module-selection-banner { + display: flex; +} +.module-selection-banner > img { + margin-right: 12px; +} +.setup-end-placeholder { + display: flex; + flex-direction: row; + align-items: center; +} +.setup-end-placeholder > div { + padding: 0px 15px; +} +.setup-end-placeholder a { + display: flex; + flex-direction: column; + align-items: center; +} +.setup-end-placeholder a svg { + max-height: 150px; + margin-bottom: 15px; + width: auto; +} /* integrityCheck: end (do not remove/edit) */ +/* Legacy inline stuff */ +#params_summary { + overflow: auto; +} +#params_summary div { + width: 100%; + margin-top: 0; + padding-top: 0.5em; + padding-left: 0; +} +#params_summary div ul { + margin-left: 0; + padding-left: 40px; +} +#params_summary div.closed ul { + display: none; +} +#params_summary div li { + list-style: none; + width: 100%; + margin-left: 0; + padding-left: 0em; +} +.title { + padding-left: 20px; + font-weight: bold; + cursor: pointer; +} +#params_summary div.closed .title::before { + margin-right: 5px; + content: '\f078'; +} +#params_summary div:not(.closed) .title::before { + margin-right: 5px; + content: '\f077'; +} +#progress_content { + height: 200px; + overflow: auto; + text-align: center; +} +#installation_progress { + display: none; +} diff --git a/css/setup.scss b/css/setup.scss index 2b2324276..45901d30e 100644 --- a/css/setup.scss +++ b/css/setup.scss @@ -288,10 +288,9 @@ h3.clickable.open { fieldset { border: none; padding: 0; - margin: 30px 0 0 0; + margin: 15px 0 0 0; > legend { - margin-top: 25px; margin-bottom: 7px; padding-bottom: 7px; width: 100%; @@ -367,15 +366,11 @@ body { border-bottom: none; border-radius: $ibo-border-radius-300 $ibo-border-radius-300 0 0; - img { + .ibo-title--icon { border: 0; vertical-align: middle; margin-right: 20px; } - - h1 { - margin-top: 10px; - } } .ibo-setup--body { @@ -433,10 +428,10 @@ body { } .ibo-fieldset { - margin-top: 25px; + margin-top: 12px; & ~ .ibo-fieldset { - margin-top: 25px; + margin-top: 12px; } } @@ -485,6 +480,22 @@ body { overflow: auto; } } + .ibo-input{ + width: auto; + display: inline-block; + } + table { + td{ + white-space: nowrap; + line-height: 2.5rem; + padding-right: 8px; + padding-bottom: 1rem; + } + } + .setup-content-title, h2{ + @extend %ibo-font-ral-nor-250; + margin-bottom: 18px; + } } } @@ -506,4 +517,119 @@ body { font-size: $ibo-font-size-150; } -/* integrityCheck: end (do not remove/edit) */ \ No newline at end of file + +.setup-prefix-toggler--input--container, .setup-tls--input--container, .setup-disk-location--input--container, .setup-backup--input--container { + display: flex; + line-height: 2.5rem; + margin: 1rem 0; + input{ + margin: 0 8px; + } +} +.setup-disk-location--input--container, .setup-backup--input--container{ + input{ + flex-grow: 1; + } +} +.collapsable-options{ + margin-bottom: 18px; + &:not(.setup-is-opened)::before{ + margin-right: 8px; + @extend %fa-solid-base; + content: '\f078'; + } + &.setup-is-opened::before{ + margin-right: 8px; + @extend %fa-solid-base; + content: '\f077'; + } +} +.setup-input--hint--icon{ + color: $ibo-color-grey-700 +} +.setup-invalid-field--icon{ + color: $ibo-color-red-700; + margin-left: 8px; +} +.setup-accept-licenses{ + margin-top: 18px; + input{ + margin-right: 8px; + } +} +.module-selection-banner{ + display: flex; + >img{ + margin-right: 12px; + } +} +.setup-end-placeholder{ + display: flex; + flex-direction: row; + align-items: center; + >div { + padding: 0px 15px; + } + a { + display: flex; + flex-direction: column; + align-items: center; + @extend %ibo-font-ral-nor-250; + svg{ + max-height: 150px; + margin-bottom: 15px; + width: auto; + } + } +} +/* integrityCheck: end (do not remove/edit) */ + +/* Legacy inline stuff */ +#params_summary { + overflow: auto; +} +#params_summary div { + width:100%; + margin-top:0; + padding-top: 0.5em; + padding-left: 0; +} +#params_summary div ul { + margin-left:0; + padding-left: 40px; +} +#params_summary div.closed ul { + display:none; +} +#params_summary div li { + list-style: none; + width: 100%; + margin-left:0; + padding-left: 0em; +} +.title { + padding-left: 20px; + font-weight: bold; + cursor: pointer; +} +#params_summary div { + &.closed .title::before { + margin-right: 5px; + @extend %fa-solid-base; + content: '\f078'; + } + &:not(.closed) .title::before { + margin-right: 5px; + @extend %fa-solid-base; + content: '\f077'; + } +} + + #progress_content { + height: 200px; + overflow: auto; + text-align: center; + } + #installation_progress { + display: none; + } diff --git a/datamodels/2.x/installation.xml b/datamodels/2.x/installation.xml index 7298089c5..ba7afb423 100755 --- a/datamodels/2.x/installation.xml +++ b/datamodels/2.x/installation.xml @@ -4,7 +4,7 @@ Configuration Management options The options below allow you to configure the type of elements that are to be managed inside iTop.]]> - /images/modules.png + /images/icons/icons8-apps-tab.svg itop-config-mgmt-core @@ -65,7 +65,7 @@ Service Management options Select the choice that best describes the relationships between the services and the IT infrastructure in your IT environment.]]> - ./wizard-icons/service.png + /images/icons/icons8-services.svg itop-service-mgmt-enterprise @@ -89,7 +89,7 @@ Tickets Management options Select the type of tickets you want to use in order to respond to user requests and incidents.]]> - ./itop-incident-mgmt-itil/images/incident-escalated.png + /images/icons/icons8-discussion-forum.svg itop-ticket-mgmt-simple-ticket @@ -161,7 +161,7 @@ Change Management options Select the type of tickets you want to use in order to manage changes to the IT infrastructure.]]> - ./itop-change-mgmt/images/change.png + /images/icons/icons8-change.svg itop-change-mgmt-simple @@ -192,7 +192,7 @@ Additional ITIL tickets Pick from the list below the additional ITIL processes that are to be implemented in iTop.]]> - ./itop-knownerror-mgmt/images/known-error.png + /images/icons/icons8-important-book.svg itop-kown-error-mgmt diff --git a/datamodels/2.x/wizard-icons/portal.png b/datamodels/2.x/wizard-icons/portal.png deleted file mode 100755 index c73d6901b..000000000 Binary files a/datamodels/2.x/wizard-icons/portal.png and /dev/null differ diff --git a/datamodels/2.x/wizard-icons/service.png b/datamodels/2.x/wizard-icons/service.png deleted file mode 100644 index b4d0db584..000000000 Binary files a/datamodels/2.x/wizard-icons/service.png and /dev/null differ diff --git a/images/icons/icons8-apps-tab.svg b/images/icons/icons8-apps-tab.svg new file mode 100644 index 000000000..6c3b113ce --- /dev/null +++ b/images/icons/icons8-apps-tab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/icons/icons8-archive-folder.svg b/images/icons/icons8-archive-folder.svg new file mode 100644 index 000000000..5a087f860 --- /dev/null +++ b/images/icons/icons8-archive-folder.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/icons/icons8-discussion-forum.svg b/images/icons/icons8-discussion-forum.svg new file mode 100644 index 000000000..353d4a706 --- /dev/null +++ b/images/icons/icons8-discussion-forum.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/icons/icons8-important-book.svg b/images/icons/icons8-important-book.svg new file mode 100644 index 000000000..bbf86c350 --- /dev/null +++ b/images/icons/icons8-important-book.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/icons/icons8-puzzle.svg b/images/icons/icons8-puzzle.svg new file mode 100644 index 000000000..7f897ff3a --- /dev/null +++ b/images/icons/icons8-puzzle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/illustrations/undraw_active_support.svg b/images/illustrations/undraw_active_support.svg new file mode 100644 index 000000000..1849a8eed --- /dev/null +++ b/images/illustrations/undraw_active_support.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/illustrations/undraw_education.svg b/images/illustrations/undraw_education.svg new file mode 100644 index 000000000..851c6ba31 --- /dev/null +++ b/images/illustrations/undraw_education.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/illustrations/undraw_newsletter.svg b/images/illustrations/undraw_newsletter.svg new file mode 100644 index 000000000..eb45a6207 --- /dev/null +++ b/images/illustrations/undraw_newsletter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/setup/setup.js b/setup/setup.js index b83719322..bdec79eea 100644 --- a/setup/setup.js +++ b/setup/setup.js @@ -51,4 +51,6 @@ function ExecuteStep(sStep) $('#wiz_form').data('installation_status', 'error'); WizardUpdateButtons(); } ); -} \ No newline at end of file +} + +CombodoTooltip.InitAllNonInstantiatedTooltips(); \ No newline at end of file diff --git a/setup/setuppage.class.inc.php b/setup/setuppage.class.inc.php index d990ec7b6..55f62b11c 100644 --- a/setup/setuppage.class.inc.php +++ b/setup/setuppage.class.inc.php @@ -39,9 +39,14 @@ class SetupPage extends NiceWebPage { parent::__construct($sTitle); $this->add_linked_script("../js/jquery.blockUI.js"); + $this->add_linked_script(utils::GetAbsoluteUrlAppRoot().'node_modules/@popperjs/core/dist/umd/popper.js'); + $this->add_linked_script(utils::GetAbsoluteUrlAppRoot().'node_modules/tippy.js/dist/tippy-bundle.umd.js'); $this->add_linked_script("../setup/setup.js"); $this->add_linked_stylesheet(utils::GetAbsoluteUrlAppRoot().'css/font-awesome/css/all.min.css'); $this->add_linked_stylesheet(utils::GetAbsoluteUrlAppRoot().'css/font-combodo/font-combodo.css'); + $this->add_linked_stylesheet(utils::GetAbsoluteUrlAppRoot().'node_modules/tippy.js/dist/tippy.css'); + $this->add_linked_stylesheet(utils::GetAbsoluteUrlAppRoot().'node_modules/tippy.js/animations/shift-away-subtle.css'); + $this->LoadTheme(); $this->add_saas("css/setup.scss"); diff --git a/setup/setuputils.class.inc.php b/setup/setuputils.class.inc.php index 16e9961e1..4b8015450 100644 --- a/setup/setuputils.class.inc.php +++ b/setup/setuputils.class.inc.php @@ -1016,82 +1016,66 @@ class SetupUtils $sWikiVersion = utils::GetItopVersionWikiSyntax(); //eg : '2_7_0'; $sMysqlTlsWikiPageUrl = 'https://www.itophub.io/wiki/page?id='.$sWikiVersion.':install:php_and_mysql_tls'; - $oPage->add(''); $oPage->add('
Database Server Connection'); $oPage->add(''); //-- DB connection params $oPage->add(''); - $oPage->add(''); - $oPage->add(''); + $oPage->add(''); - $oPage->add(''); - $oPage->add(''); + .'" size="15"/>'); + $oPage->add(''); + $oPage->add('
Server Name:E.g. "localhost", "dbserver.mycompany.com" or "192.142.10.23"
Login:
Login:The account must have the following privileges on the database: SELECT, INSERT, UPDATE, DELETE, DROP, CREATE, ALTER, CREATE VIEW, SHOW VIEW, LOCK TABLE, SUPER, TRIGGER
Password:
Password:
'); //-- TLS params (N°1260) $sTlsEnabledChecked = $bTlsEnabled ? ' checked' : ''; $sTlsCaDisabled = $bTlsEnabled ? '' : ' disabled'; - $oPage->add(''); - $oPage->add(''); - $oPage->add('Before configuring MySQL with TLS encryption, read the documentation on Combodo\'s Wiki'); - $oPage->add(''); - $oPage->add('SSL CA:'); - $oPage->add(''); - $oPage->add('Path to certificate authority file for SSL'); - $oPage->add(''); + $oPage->add('
'); + $oPage->add(''); + $oPage->add(''); + $oPage->add(''); + $oPage->add(''); + $oPage->add('
'); - $oPage->add(''); $oPage->add('
'); - $oPage->add(''); - $oPage->add('
'); + $oPage->add('
'); - $oPage->add(''); + $oPage->add(''); $oPage->add('
Database'); $oPage->add(''); if ($bIsItopInstall) { $oPage->add(''); - $oPage->add(''); + $oPage->add(''); $oPage->add(''); - $oPage->add(''); - $oPage->add(''); - $oPage->add(''); - $oPage->add(''); - $oPage->add(''); - $oPage->add(''); + $oPage->add(''); } else { - $oPage->add(''); - $oPage->add(''); - $oPage->add(''); - $oPage->add(''); - $oPage->add(''); - $oPage->add(''); + $oPage->add(''); } $oPage->add('
Use a prefix for the tables:
Database Name:
Use a prefix for the tables:
Database Name:
'); + $oPage->add('
'); + $oPage->add(''); + $oPage->add(''); + $oPage->add('
'); $oPage->add('
'); - $oPage->add(' '); - $oPage->add(''); + $oPage->add(''); // Sub options toggle (TLS, prefix) $oPage->add_script(<<<'JS' function toggleCollapsableOptions($tbody) { - $tbody.find("tr").not("tr:first-child").toggle(); + $tbody.children().not(":first-child").toggle(); updateCollapsableImage($tbody); } function updateCollapsableImage($tbody) { - $collapsableImg = $tbody.find("tr:first-child>th>label>img"); - imgPath = "../images/"; - imgUrl = ($tbody.find("tr:nth-child(2)>td:visible").length > 0) - ? "minus.gif" - : "plus.gif"; - $collapsableImg.attr("src", imgPath+imgUrl); + $tbody.toggleClass('setup-is-opened'); } JS ); @@ -1101,17 +1085,14 @@ JS } $oPage->add_ready_script( <<<'JS' -$("tbody.collapsable-options>tr>th>label").on('click', function() { - var $tbody = $(this).closest("tbody"); +$("[data-role=\"setup-collapsable-options--toggler\"").on('click', function() { + var $tbody = $(this).closest("div"); toggleCollapsableOptions($tbody); }); $("#db_tls_enabled").on('click', function() { var bTlsEnabled = $("#db_tls_enabled").is(":checked"); $("#db_tls_ca").prop("disabled", !bTlsEnabled); }); -$("tbody.collapsable-options").each(function() { - updateCollapsableImage($(this)); -}) JS ); @@ -1206,13 +1187,13 @@ function ValidateField(sFieldId, bUsed) } else { - $("#v_"+sFieldId).html(''); + $("#v_"+sFieldId).html(''); return false; } } else if (bMandatory) { - $("#v_"+sFieldId).html(''); + $("#v_"+sFieldId).html(''); return false; } else @@ -1507,7 +1488,7 @@ JS } else { - $sDBNameInput = ''; foreach ($checks['databases'] as $sDatabaseName) { if ($sDatabaseName != 'information_schema') @@ -1556,7 +1537,7 @@ JS public static function GetLanguageSelect($sSourceDir, $sInputName, $sDefaultLanguageCode) { - $sHtml = ''; $sSourceDir = APPROOT.'dictionaries/'; $aLanguages = SetupUtils::GetAvailableLanguages($sSourceDir); foreach ($aLanguages as $sCode => $aInfo) { @@ -1564,7 +1545,7 @@ JS $sHtml .= ''; } - $sHtml .= ''; + $sHtml .= ''; return $sHtml; } diff --git a/setup/wizardsteps.class.inc.php b/setup/wizardsteps.class.inc.php index 92f18a174..ef21fb802 100644 --- a/setup/wizardsteps.class.inc.php +++ b/setup/wizardsteps.class.inc.php @@ -267,7 +267,7 @@ class WizStepInstallOrUpgrade extends WizardStep { $sUpgradeInfoStyle = ' style="display: none;" '; } - $oPage->add('

What do you want to do?

'); + $oPage->add('
What do you want to do?
'); $sChecked = ($sInstallMode == 'install') ? ' checked ' : ''; $oPage->p(''); $sChecked = ($sInstallMode == 'upgrade') ? ' checked ' : ''; @@ -276,12 +276,9 @@ class WizStepInstallOrUpgrade extends WizardStep $sUpgradeDir = utils::HtmlEntities($sPreviousVersionDir); $oPage->add(<< - - Location on the disk: - - - +
+
Location on the disk: +
HTML ); @@ -307,19 +304,18 @@ HTML } $sChecked = ($bCanBackup && $bDBBackup) ? ' checked ' : ''; $sDisabled = $bCanBackup ? '' : ' disabled '; - $oPage->add(''); - $oPage->add('Save the backup to:add(''); + $oPage->add('
Save the backup to:'); + .htmlentities($sDBBackupPath, ENT_QUOTES, 'UTF-8').'"/>
'); $fFreeSpace = SetupUtils::CheckDiskSpace($sDBBackupPath); $sMessage = ''; if ($fFreeSpace !== false) { $sMessage .= SetupUtils::HumanReadableSize($fFreeSpace).' free in '.dirname($sDBBackupPath); } - $oPage->add(''); - $oPage->add($sMySQLDumpMessage.'
'.$sMessage.''); - $oPage->add(''); + $oPage->add($sMySQLDumpMessage.''.$sMessage.''); + $oPage->add('
'); $sAuthentToken = $this->oWizard->GetParameter('authent', ''); $oPage->add(''); //$oPage->add(''); @@ -708,7 +704,7 @@ class WizStepLicense extends WizardStep $oPage->add_style( <<add('
  • '.$oLicense->product.', © '.$oLicense->author.' is licensed under the '.$oLicense->license_type.' license. (Details)'); - $oPage->add(''); + $oPage->add(''); $oPage->add_ready_script('$(".license_text a").attr("target", "_blank").addClass("no-arrow");'); $oPage->add_ready_script('$("#toggle_'.$index.'").on("click", function() { $("#license_'.$index.'").toggle(); } );'); $index++; @@ -732,7 +728,7 @@ CSS $oPage->add(''); $oPage->add(''); $sChecked = ($this->oWizard->GetParameter('accept_license', 'no') == 'yes') ? ' checked ' : ''; - $oPage->p(''); + $oPage->add('
    '); $oPage->add_ready_script('$("#accept").bind("click change", function() { WizardUpdateButtons(); });'); } @@ -890,9 +886,9 @@ class WizStepAdminAccount extends WizardStep $oPage->add('
    '); $oPage->add('Administrator Account'); $oPage->add(''); - $oPage->add(''); - $oPage->add(''); - $oPage->add(''); + $oPage->add(''); + $oPage->add(''); + $oPage->add(''); $sSourceDir = APPROOT.'dictionaries/'; $aLanguages = SetupUtils::GetAvailableLanguages($sSourceDir); $oPage->add('
    Login:
    Password:
    Confirm password:
    Login:
    Password:
    Confirm password:
    Language: '); @@ -920,7 +916,7 @@ EOF bRet = ($('#admin_user').val() != ''); if (!bRet) { - $("#v_admin_user").html(''); + $("#v_admin_user").html(''); } else { @@ -930,7 +926,7 @@ EOF bPasswordsMatch = ($('#admin_pwd').val() == $('#confirm_pwd').val()); if (!bPasswordsMatch) { - $('#v_admin_pwd').html(''); + $('#v_admin_pwd').html(''); } else { @@ -1022,17 +1018,17 @@ class WizStepInstallMiscParams extends AbstractWizStepMiscParams $oPage->add('
    '); $oPage->add('Application URL'); $oPage->add(''); - $oPage->add(''); - $oPage->add(''); + $oPage->add(''); $oPage->add('
    URL:
    Change the value above if the end-users will be accessing the application by another path due to a specific configuration of the web server.
    URL:
    '); + $oPage->add('
    Change the value above if the end-users will be accessing the application by another path due to a specific configuration of the web server.
    '); $oPage->add('
    '); $oPage->add('
    '); $oPage->add('Path to Graphviz\' dot application'); - $oPage->add(''); - $oPage->add(''); - $oPage->add(''); - $oPage->add(''); + $oPage->add('
    Path:
    Graphviz is required to display the impact analysis graph (i.e. impacts / depends on).
    '); + $oPage->add(''); + $oPage->add(''); $oPage->add('
    Path:
    '); + $oPage->add(''); $oPage->add('
    '); $oPage->add('
    '); $oPage->add('Sample Data'); @@ -1170,17 +1166,17 @@ class WizStepUpgradeMiscParams extends AbstractWizStepMiscParams $oPage->add('
    '); $oPage->add('Application URL'); $oPage->add(''); - $oPage->add(''); - $oPage->add(''); + $oPage->add(''); $oPage->add('
    URL:
    Change the value above if the end-users will be accessing the application by another path due to a specific configuration of the web server.
    URL:
    '); + $oPage->add('
    Change the value above if the end-users will be accessing the application by another path due to a specific configuration of the web server.
    '); $oPage->add('
    '); $oPage->add('
    '); $oPage->add('Path to Graphviz\' dot application'); - $oPage->add(''); - $oPage->add(''); - $oPage->add(''); - $oPage->add(''); + $oPage->add('
    Path:
    Graphviz is required to display the impact analysis graph (i.e. impacts / depends on).
    '); + $oPage->add(''); + $oPage->add(''); $oPage->add('
    Path:
    '); + $oPage->add(''); $oPage->add('
    '); $sAuthentToken = $this->oWizard->GetParameter('authent', ''); $oPage->add(''); @@ -1416,7 +1412,7 @@ class WizStepModulesChoice extends WizardStep $oPage->warning($sManualInstallError); } - $oPage->add(''); + $oPage->add('
    '); $sBannerPath = isset($aStepInfo['banner']) ? $aStepInfo['banner'] : ''; if (!empty($sBannerPath)) { @@ -1432,11 +1428,11 @@ class WizStepModulesChoice extends WizardStep $sRealPath = realpath($sFullPath); $sBannerUrl = utils::GetDefaultUrlAppRoot(true).str_replace(realpath(APPROOT), '', $sRealPath); } - $oPage->add('
    '); + $oPage->add(''); } $sDescription = isset($aStepInfo['description']) ? $aStepInfo['description'] : ''; - $oPage->add(''.$sDescription.''); - $oPage->add('
    '); + $oPage->add(''.$sDescription.''); + $oPage->add(''); // Build the default choices $aDefaults = $this->GetDefaults($aStepInfo, $aModules); @@ -1902,7 +1898,7 @@ EOF $aStepDefinition = array( 'title' => 'Extensions', 'description' => '

    Select additional extensions to install. You can launch the installation again to install new extensions, but you cannot remove already installed extensions.

    ', - 'banner' => '/images/extension.png', + 'banner' => '/images/icons/icons8-puzzle.svg', 'options' => array() ); @@ -1935,7 +1931,7 @@ EOF $aStepDefinition = array( 'title' => 'Modules Selection', 'description' => '

    Select the modules to install. You can launch the installation again to install new modules, but you cannot remove already installed modules.

    ', - 'banner' => '/images/modules.png', + 'banner' => '/images/icons/icons8-apps-tab.svg', 'options' => array() ); foreach($this->oExtensionsMap->GetAllExtensions() as $oExtension) @@ -2192,48 +2188,6 @@ class WizStepSummary extends WizardStep public function Display(WebPage $oPage) { - $oPage->add_style( - <<BuildConfig(); @@ -2272,7 +2226,7 @@ CSS } $oPage->add(''); - $oPage->add('
    Data Model Configuration'); + $oPage->add('
    Data Model Configuration'); $oPage->add($this->oWizard->GetParameter('display_choices')); $oPage->add('
    '); @@ -2593,7 +2547,7 @@ class WizStepDone extends WizardStep { // To mitigate security risks: pass only the filename without the extension, the download will add the extension itself $oPage->p('Your backup is ready'); - $oPage->p(' Download '.basename($sBackupDestination).''); + $oPage->p(' Download '.basename($sBackupDestination).''); } else { @@ -2602,11 +2556,11 @@ class WizStepDone extends WizardStep } // Form goes here.. No back button since the job is done ! - $oPage->add(''); - $oPage->add(""); - $oPage->add(""); - $oPage->add(""); - $oPage->add('
    '); + $oPage->add(''); $oPage->add('
    '); @@ -2711,7 +2665,7 @@ class WizStepDone extends WizardStep } $sImgUrl .= '&m='.urlencode(implode(' ', $aReportedModules)); - $oPage->add(''); + $oPage->add(''); $sForm = addslashes($sForm); $oPage->add_ready_script("$('#wiz_form').after('$sForm');"); SetupUtils::EraseSetupToken();