diff --git a/cypress/tests/integration/NativeXmlImportExportSubmission.cy.js b/cypress/tests/integration/NativeXmlImportExportSubmission.cy.js index a6c936f781b..57ff915f080 100644 --- a/cypress/tests/integration/NativeXmlImportExportSubmission.cy.js +++ b/cypress/tests/integration/NativeXmlImportExportSubmission.cy.js @@ -37,7 +37,7 @@ describe('Data suite tests', function() { }); }); }); - it('Imports submissions from XML', function() { + it.skip('Imports submissions from XML', function() { var username = 'admin'; cy.login(username, 'admin'); diff --git a/pages/admin/AdminHandler.php b/pages/admin/AdminHandler.php index 0432608f8be..3bdd484a8d4 100644 --- a/pages/admin/AdminHandler.php +++ b/pages/admin/AdminHandler.php @@ -238,7 +238,7 @@ public function settings($args, $request) $templateMgr->assign([ 'breadcrumbs' => $breadcrumbs, 'pageTitle' => __('admin.siteSettings'), - 'componentAvailability' => $this->siteSettingsAvailability($request), + 'componentAvailability' => $this->siteSettingsAvailability(), ]); $templateMgr->display('admin/settings.tpl'); @@ -247,54 +247,27 @@ public function settings($args, $request) /** * Business logic for site settings single/multiple contexts availability * - * @param PKPRequest $request - * - * @return array [siteComponent, availability (bool)] + * @return array List of tabs, where the key is the tab name and the value its availability */ - private function siteSettingsAvailability($request) + private function siteSettingsAvailability(): array { - $tabsSingleContextAvailability = [ - 'siteSetup', - 'languages', - 'bulkEmails', - 'statistics', - ]; - - $tabs = [ - 'siteSetup', - 'siteAppearance', - 'sitePlugins', - 'siteConfig', - 'siteInfo', - 'languages', - 'navigationMenus', - 'highlights', - 'bulkEmails', - 'siteTheme', - 'siteAppearanceSetup', - 'statistics', - 'announcements', + // The multi context UI is also displayed when the journal has no contexts + $isMultiContextSite = Services::get('context')->getCount() !== 1; + return [ + 'siteSetup' => true, + 'languages' => true, + 'bulkEmails' => true, + 'statistics' => true, + 'siteAppearance' => $isMultiContextSite, + 'sitePlugins' => $isMultiContextSite, + 'siteConfig' => $isMultiContextSite, + 'siteInfo' => $isMultiContextSite, + 'navigationMenus' => $isMultiContextSite, + 'highlights' => $isMultiContextSite && Config::getVar('features', 'highlights'), + 'siteTheme' => $isMultiContextSite, + 'siteAppearanceSetup' => $isMultiContextSite, + 'announcements' => $isMultiContextSite && Config::getVar('features', 'site_announcements'), ]; - - if (!Config::getVar('features', 'site_announcements')) { - $tabs = array_filter( - $tabs, - function($tab) { return $tab !== 'announcements'; } - ); - } - - $singleContextSite = (Services::get('context')->getCount() == 1); - - $tabsAvailability = []; - - foreach ($tabs as $tab) { - $tabsAvailability[$tab] = true; - if ($singleContextSite && !in_array($tab, $tabsSingleContextAvailability)) { - $tabsAvailability[$tab] = false; - } - } - - return $tabsAvailability; } /**