diff --git a/.gitignore b/.gitignore index 3f995a7f3..6c2d20941 100644 --- a/.gitignore +++ b/.gitignore @@ -139,3 +139,5 @@ local.properties .cache-main .scala_dependencies .worksheet + +/css/setup.css diff --git a/css/setup.css b/css/setup.css index a6cbbcd12..e69de29bb 100644 --- a/css/setup.css +++ b/css/setup.css @@ -1,268 +0,0 @@ -/*! - * 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 - */ -/* Helpers classes */ -.center { - text-align: center; -} -/* Animations */ -@keyframes progress_bar_color_ongoing { - from { - background-color: #FBD38D; - } - to { - background-color: #FEEBC8; - } -} -@-webkit-keyframes bg-pan-left { - 0% { - background-position: 100% 50%; - } - 100% { - background-position: 0 50%; - } -} -@keyframes bg-pan-left { - 0% { - background-position: 100% 50%; - } - 100% { - background-position: 0 50%; - } -} -/* Theme */ -body { - background-color: #eee; - color: #1A202C; - margin: 0; - padding: 0; - font-size: 10pt; - font-family: Tahoma, Verdana, Arial, Helvetica, serif; - overflow-y: auto; -} -h1 { - color: #555555; - font-size: 16pt; -} -h2 { - color: #1A202C; - font-size: 14pt; - font-weight: normal; -} -h3 { - color: #1C94C4; - font-size: 12pt; - font-weight: bold; -} -a { - color: #1c94c4; - text-decoration: none; -} -a:hover { - color: #EA7D1E; -} -#header { - width: 600px; - margin-left: auto; - margin-right: auto; - margin-top: 50px; - padding: 20px; - background-color: #fff; - height: 54px; - border: 3px solid #CBD2D9; - border-bottom: none; -} -#header img { - border: 0; - vertical-align: middle; - margin-right: 20px; -} -#header h1 { - height: 54px; - margin: 0; -} -#setup { - width: 600px; - margin-left: auto; - margin-right: auto; - padding: 20px; - background-color: #fff; - border: 3px solid #CBD2D9; - border-top: none; -} -.next { - width: 100%; - text-align: right; -} -.v-spacer { - padding-top: 1em; -} -button { - margin-top: 1em; - padding-left: 1em; - padding-right: 1em; -} -p.info { - padding-left: 50px; - background: url(../images/info-mid.png) no-repeat left -5px; - min-height: 48px; -} -p.ok { - padding-left: 50px; - background: url(../images/clean-mid.png) no-repeat left -8px; - min-height: 48px; -} -p.warning { - padding-left: 50px; - background: url(../images/messagebox_warning-mid.png) no-repeat left -5px; - min-height: 48px; -} -p.error { - padding-left: 50px; - background: url(../images/stop-mid.png) no-repeat left -5px; - min-height: 48px; -} -label { - cursor: pointer; -} -td.label { - text-align: left; -} -label.read-only { - color: #666; - cursor: text; -} -td.input { - text-align: left; -} -table.formTable { - border: 0; -} -.wizlabel, .wizinput { - color: #000; - font-size: 10pt; -} -.wizhelp { - color: #333; - font-size: 8pt; -} -#progress { - border: none; - width: 210px; - height: 26px; - line-height: 26px; - text-align: center; - margin: 5px; - box-shadow: inset 0 2px 4px 0 rgba(0, 0, 0, 0.06) !important; - border-radius: 2px; - background-color: #EDF2F7 !important; -} -#progress .progress { - color: #000000 !important; - /* !important to overload jQuery UI style */ - background-image: linear-gradient(270deg, #FBD38D 50%, #FEEBC8 55%, #FBD38D 80%) !important; - /* !important to overload jQuery UI style */ - animation: bg-pan-left 3s infinite both; - background-size: 600% 100%; - border-radius: inherit; -} -#progress .progress.progress-error { - background-image: none !important; - background-color: #F56565 !important; - /* !important to overload jQuery UI style */ - animation: none; -} -h3.clickable { - background: url(../images/plus.gif) no-repeat left; - padding-left: 16px; - cursor: hand; -} -h3.clickable.open { - background: url(../images/minus.gif) no-repeat left; - padding-left: 16px; - cursor: hand; -} -.message { - color: #1A202C; - background-color: #F7FAFC; - border-left: 4px solid #4A5568; - padding: 10px; -} -.message > .message-title { - font-weight: bold; - margin-right: 5px; -} -.message ~ .message { - margin-top: 6px; -} -.message.message-valid { - color: #276749; - background-color: #F0FFF4; - border-color: #48BB78; -} -.message.message-warning { - color: #C05621; - background-color: #FFFAF0; - border-color: #ED8936; -} -.message.message-error { - color: #C53030; - background-color: #FFF5F5; - border-color: #E53E3E; -} -.text-valid { - color: #276749; -} -.text-warning { - color: #C05621; -} -.text-error { - color: #C53030; -} -fieldset { - border: none; - padding: 0; - margin: 30px 0 0 0; -} -fieldset > legend { - margin-top: 25px; - margin-bottom: 7px; - padding-bottom: 7px; - width: 100%; - color: #3C3C3C; - font-size: 11pt; - font-weight: bold; - border-bottom: 1px solid #D2D2D2; -} -.module-selection-banner img { - max-height: 48px; -} -.module-selection-body { - height: 28em; - overflow: auto; - box-shadow: inset 0 2px 4px 0 rgba(0, 0, 0, 0.06) !important; - background-color: #F7FAFC; - padding: 10px; -} -.module-selection-body .wiz-choice:checked ~ .description #itop-ticket-mgmt-simple-ticket-enhanced-portal:not(:checked) ~ .description::after, .module-selection-body .wiz-choice:checked ~ .description #itop-ticket-mgmt-itil-enhanced-portal:not(:checked) ~ .description::after { - content: "Legacy portal is no longer part of iTop, by leaving this option unchecked your portal users won't be able to access iTop anymore."; - display: block; - margin-top: 0.5em; - font-weight: bold; - color: #e60000b8; -} - diff --git a/setup/setuputils.class.inc.php b/setup/setuputils.class.inc.php index 30b95c1bb..917eec87b 100644 --- a/setup/setuputils.class.inc.php +++ b/setup/setuputils.class.inc.php @@ -991,7 +991,7 @@ class SetupUtils $oPage, $bIsItopInstall, $sDBServer, $sDBUser, $sDBPwd, $sDBName, $sDBPrefix, $bTlsEnabled, $sTlsCA, $sNewDBName = '' ) { - $sWikiVersion = '2_7_0'; + $sWikiVersion = utils::GetItopVersionWikiSyntax(); //eg : '2_7_0'; $sMysqlTlsWikiPageUrl = 'https://wiki.openitop.org/doku.php?id='.$sWikiVersion.':install:php_and_mysql_tls'; $oPage->add(''); diff --git a/test/integration/iTopModulesXmlVersionChecklistTest.php b/test/integration/iTopModulesXmlVersionChecklistTest.php index 9fde4b779..056a1d080 100644 --- a/test/integration/iTopModulesXmlVersionChecklistTest.php +++ b/test/integration/iTopModulesXmlVersionChecklistTest.php @@ -32,48 +32,57 @@ use iTopDesignFormat; */ class iTopModulesXmlVersionIntegrationTest extends ItopTestCase { + protected function setUp() + { + parent::setUp(); + + require_once APPROOT.'setup/itopdesignformat.class.inc.php'; + } /** - * Verify if the datamodel.*.xml files refer to the current itop version + * Verify if the datamodel.*.xml files refer to the latest version of the design * This is an integration test * * @group skipPostBuild * * @dataProvider DatamodelItopXmlVersionProvider */ - public function testDatamodelItopXmlVersion($sExpectedXmlVersion, $sXmlFile) + public function testDatamodelItopXmlVersion($sXmlFile) { - $sFileContent = file_get_contents($sXmlFile); + $oOriginalXml = new DOMDocument(); + $oOriginalXml->load($sXmlFile); - preg_match( - '//', - $sFileContent, - $matches - ); + $oTransformedXml = new DOMDocument(); + $oTransformedXml->load($sXmlFile); + $oFormat = new iTopDesignFormat($oTransformedXml); - $this->assertSame($sExpectedXmlVersion, $matches[1], "$sXmlFile file refer does not refer to current itop version ($matches[1] instead of expected $sExpectedXmlVersion)"); + if ($oFormat->Convert()) + { + // Compare the original and new format + $sExpectedXmlVersion = ITOP_DESIGN_LATEST_VERSION; + $this->assertSame($oTransformedXml->saveXML(), $oOriginalXml->saveXML(), "Datamodel file $sXmlFile not in the latest format ($sExpectedXmlVersion)"); + } + else + { + $this->fail("Failed to convert $sXmlFile into the latest format"); + } } public function DatamodelItopXmlVersionProvider() { - parent::setUp(); - - require_once APPROOT.'core/config.class.inc.php'; - require_once APPROOT.'application/utils.inc.php'; + static::setUp(); $sPath = APPROOT.'datamodels/2.x/*/datamodel.*.xml'; $aXmlFiles = glob($sPath); - $sItopVersionShort = \utils::GetItopPatchVersion(); - $aItopVersion = explode('.', $sItopVersionShort); - $sExpectedXmlVersion = ($aItopVersion[0] - 1).'.'.($aItopVersion[1]); // eg: 2.7.0-dev become 1.7 + $aXmlFiles[] = APPROOT.'core/datamodel.core.xml'; + $aXmlFiles[] = APPROOT.'application/datamodel.application.xml'; $aTestCases = array(); foreach ($aXmlFiles as $sXmlFile) { $aTestCases[$sXmlFile] = array( - 'sExpectedXmlVersion' => $sExpectedXmlVersion, 'sXmlFile' => $sXmlFile, ); }