diff --git a/.drone.yml b/.drone.yml index b6a399eea2402..f18730fc4a829 100644 --- a/.drone.yml +++ b/.drone.yml @@ -272,7 +272,7 @@ volumes: services: - name: mysql - image: mysql:8 + image: mysql:8.0 command: ["--default-authentication-plugin=mysql_native_password"] environment: MYSQL_USER: joomla_ut @@ -405,7 +405,6 @@ steps: status: - failure - trigger: event: - cron @@ -415,6 +414,6 @@ trigger: --- kind: signature -hmac: 3e27d8cd2799f97105892b5e08d8283271a4d5c5e21aa1fe2b7ae1c4df3e349b +hmac: d4131ffaa91f4925cae9118af99cf2a7d8bd6fc2dc59fb50259c7ced220c48d5 ... diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 751a1ce63d1a2..d659b92ed8779 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -12,9 +12,9 @@ build/bump.php @rdeutz build/deleted_file_check.php @rdeutz # Core/Extension Install/Update Tools -administrator/components/com_joomlaupdate/* @rdeutz @zero-24 -libraries/src/Installer/* @rdeutz @zero-24 -libraries/src/Updater/* @rdeutz @zero-24 +administrator/components/com_joomlaupdate/* @rdeutz +libraries/src/Installer/* @rdeutz +libraries/src/Updater/* @rdeutz # Automated Testing tests/* @hackwar @fancyFranci @@ -24,9 +24,6 @@ tests/Unit/* @rdeutz @fancyFranci phpunit.xml.dist @rdeutz @hackwar @fancyFranci phpunit-pgsql.xml.dist @rdeutz @hackwar @fancyFranci -# HttpHeaders Plugin -plugins/system/httpheaders/* @zero-24 - # Workflow administrator/components/com_workflow/* @bembelimen @hleithner administrator/language/en-GB/com_workflow.ini @bembelimen @hleithner diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 50b6393e5c76d..eb65c17eb65ff 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -7,19 +7,22 @@ You are welcome to submit a contribution for review and possible inclusion in th 2) Follow the [Joomla! Coding Standards](https://developer.joomla.org/coding-standards.html). 3) When filing an issue or opening a PR, please include a clear title and description. The title should be a short summary of an issue and, if possible, should include a reference to an open issue. For example, `Invalid Query in com_admin (Ref #1234)` would be sufficient. All issues and PRs should include a description with as much detail as possible. -If it is a PR, include what the issue is, what the PR is addressing, testing instructions and environmental information (PHP version, database driver and version, and other data you can retrieve from your site's system information view) in case the issue is specific to certain environments. If additional information is needed, please be prepared to provide it as our community members review your submission. + If it is a PR, include what the issue is, what the PR is addressing, testing instructions and environmental information (PHP version, database driver and version, and other data you can retrieve from your site's system information view) in case the issue is specific to certain environments. If additional information is needed, please be prepared to provide it as our community members review your submission. 4) Report security issues to the Joomla! Security Strike Team (JSST) at security@joomla.org or use the [JSST contact form](https://developer.joomla.org/contact-security-team.html). Please do not use the public tracker for security issues. +5) If you have a feature request, then please open a discussion to define the feature request and discuss possible solutions. Discussions can be converted into issues when the request is defined sufficiently that a developer can start coding the feature. In this process you will get feedback from the maintainers, if the feature is something for the Joomla core distribution or not. + Please be patient as not all items will be tested immediately (remember, all bug testing for the Joomla! CMS is done by volunteers) and be receptive to feedback about your code. #### Branches -PRs should usually be made to the `4.3-dev` branch as this contains the most recent version of the code. -There are other branches available which serve specific purposes. +While 4.4 is in maintenance mode, ie we are still fixing bugs, PRs should be made to the `4.4-dev` branch. Merged bugfixes will be upmerged into the current 5.x branch. If a bug is only in the 5.x series the PR should be made to the current 5.x branch (currently 5.1). + | Branch | Purpose | | ------ | ------- | -| 3.10-dev | Branch for the Joomla 3.x series. The 3.10 series release will now only include security patches. | -| 4.3-dev | Branch for the current minor Joomla version.| -| 4.4-dev | Branch for the next minor Joomla version. Commits to 4.3-dev will be applied to this branch as well. | -| 5.0-dev | Branch for the next major Joomla version. New features go into this branch. | +| 4.4-dev | Branch for the current 4.x Joomla version. Currently in maintenance mode | +| 5.1-dev | Branch for the current 5.x Joomla version. Bugfix only for 5.x go into this branch. | +| 5.2-dev | Branch for the next minor 5.x Joomla version. New features go into this branch. | +| 6.0-dev | Branch for the next major Joomla version. New features that include a b/c break have to go into this branch. | + diff --git a/README.md b/README.md index 1235cf830a13b..6fee16cabf670 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ Overview What is Joomla? --------------------- * [Joomla!](https://www.joomla.org/about-joomla.html) is a **Content Management System** (CMS) which enables you to build websites and powerful online applications. -* It is a simple and powerful web server application which requires a server with PHP and either MySQL or PostgreSQL to run. You can find [full technical requirements here](https://downloads.joomla.org/technical-requirements). +* It is a simple and powerful web server application which requires a server with PHP and either MySQL, MariaDB or PostgreSQL to run. You can find [full technical requirements here](https://downloads.joomla.org/technical-requirements). * Joomla! is **free and Open Source software** distributed under the GNU General Public License version 2 or later. Looking for an installable package? diff --git a/README.txt b/README.txt index 3be3782a4724b..14a462310f20f 100644 --- a/README.txt +++ b/README.txt @@ -12,7 +12,7 @@ The Joomla! 6.0 branch is under heavy development and not all links in this docu 2- What is Joomla? * Joomla! is a Content Management System (CMS) which enables you to build websites and powerful online applications. * It's a free and Open Source software, distributed under the GNU General Public License version 2 or later. - * This is a simple and powerful web server application and it requires a server with PHP and either MySQL, PostgreSQL or SQL Server to run. + * This is a simple and powerful web server application and it requires a server with PHP and either MySQL, MariaDB or PostgreSQL to run. You can find full technical requirements here: https://downloads.joomla.org/technical-requirements. 3- Is Joomla! for you? diff --git a/administrator/components/com_actionlogs/src/Helper/ActionlogsHelper.php b/administrator/components/com_actionlogs/src/Helper/ActionlogsHelper.php index 102e2638c7538..658788a9486c4 100644 --- a/administrator/components/com_actionlogs/src/Helper/ActionlogsHelper.php +++ b/administrator/components/com_actionlogs/src/Helper/ActionlogsHelper.php @@ -177,10 +177,10 @@ public static function getLogContentTypeParams($context) */ public static function getHumanReadableLogMessage($log, $generateLinks = true) { + static::loadActionLogPluginsLanguage(); static $links = []; - - $message = Text::_($log->message_language_key); - $messageData = json_decode($log->message, true); + $message = Text::_($log->message_language_key); + $messageData = json_decode($log->message, true); // Special handling for translation extension name if (isset($messageData['extension_name'])) { diff --git a/administrator/components/com_actionlogs/src/Model/ActionlogsModel.php b/administrator/components/com_actionlogs/src/Model/ActionlogsModel.php index 4ce6d9e0427b0..0dc3ce23761ff 100644 --- a/administrator/components/com_actionlogs/src/Model/ActionlogsModel.php +++ b/administrator/components/com_actionlogs/src/Model/ActionlogsModel.php @@ -18,8 +18,8 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Model\ListModel; use Joomla\Database\DatabaseIterator; -use Joomla\Database\DatabaseQuery; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; use Joomla\Utilities\ArrayHelper; // phpcs:disable PSR1.Files.SideEffects @@ -79,7 +79,7 @@ protected function populateState($ordering = 'a.id', $direction = 'desc') /** * Build an SQL query to load the list data. * - * @return DatabaseQuery + * @return QueryInterface * * @since 3.9.0 * @@ -298,7 +298,7 @@ public function getLogDataAsIterator($pks = null) * * @param integer[]|null $pks An optional array of log record IDs to load * - * @return DatabaseQuery + * @return QueryInterface * * @since 3.9.0 */ diff --git a/administrator/components/com_actionlogs/tmpl/actionlogs/default.php b/administrator/components/com_actionlogs/tmpl/actionlogs/default.php index d0e868c38dc3d..e0f9d0bf806b1 100644 --- a/administrator/components/com_actionlogs/tmpl/actionlogs/default.php +++ b/administrator/components/com_actionlogs/tmpl/actionlogs/default.php @@ -23,7 +23,7 @@ $listDirn = $this->escape($this->state->get('list.direction')); /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('table.columns') ->useScript('multiselect') diff --git a/administrator/components/com_admin/postinstall/htaccessbrotli.php b/administrator/components/com_admin/postinstall/htaccessbrotli.php new file mode 100644 index 0000000000000..58f7bb02b37b9 --- /dev/null +++ b/administrator/components/com_admin/postinstall/htaccessbrotli.php @@ -0,0 +1,36 @@ + + * @license GNU General Public License version 2 or later; see LICENSE.txt + * + * This file contains post-installation message handling for notifying users of a change + * in the default .htaccess file regarding Brotli compression. + */ + +// phpcs:disable PSR1.Files.SideEffects +\defined('_JEXEC') or die; +// phpcs:enable PSR1.Files.SideEffects + +/** + * Notifies users of a change in the default .htaccess file regarding setting for brotli to prevent double compression + * + * This check returns true regardless of condition. + * + * @return boolean + * + * @since 4.4.4 + */ +function admin_postinstall_htaccessbrotli_condition() +{ + $htaccessContent = ''; + + if (is_file(JPATH_ROOT . '/.htaccess') || is_file(JPATH_ROOT . '/htaccess.txt')) { + $htaccessContent = file_get_contents(is_file(JPATH_ROOT . '/.htaccess') ? JPATH_ROOT . '/.htaccess' : JPATH_ROOT . '/htaccess.txt'); + } + + return !str_contains($htaccessContent, 'E=no-brotli:1'); +} diff --git a/administrator/components/com_admin/script.php b/administrator/components/com_admin/script.php index 5b32d2914e5fe..8932fd19a54db 100644 --- a/administrator/components/com_admin/script.php +++ b/administrator/components/com_admin/script.php @@ -2322,7 +2322,17 @@ public function deleteUnexistingFiles($dryRun = false, $suppressOutput = false) '/libraries/vendor/web-token/jwt-signature-algorithm-none/LICENSE', '/libraries/vendor/web-token/jwt-signature-algorithm-rsa/LICENSE', // From 5.1.0-beta2 to 5.1.0-rc1 + '/administrator/components/com_admin/sql/updates/mysql/4.4.4-2024-03-28.sql', + '/administrator/components/com_admin/sql/updates/postgresql/4.4.4-2024-03-28.sql', '/administrator/modules/mod_post_installation_messages/mod_post_installation_messages.php', + '/media/vendor/punycode/LICENSE-MIT.txt', + // From 5.1.0 to 5.1.1 + '/libraries/vendor/cweagans/composer-patches/LICENSE.md', + '/libraries/vendor/cweagans/composer-patches/src/PatchEvent.php', + '/libraries/vendor/cweagans/composer-patches/src/PatchEvents.php', + '/libraries/vendor/cweagans/composer-patches/src/Patches.php', + '/libraries/vendor/cweagans/composer-patches/tests/PatchEventTest.php', + '/libraries/vendor/laminas/laminas-diactoros/PATCHES.txt', ]; $folders = [ @@ -2580,6 +2590,13 @@ public function deleteUnexistingFiles($dryRun = false, $suppressOutput = false) '/libraries/vendor/web-token/jwt-experimental/ContentEncryption', '/libraries/vendor/web-token/jwt-experimental', '/libraries/src/Event/Router', + // From 5.1.0-beta2 to 5.1.0-rc1 + '/media/vendor/punycode', + // From 5.1.0 to 5.1.1 + '/libraries/vendor/cweagans/composer-patches/tests', + '/libraries/vendor/cweagans/composer-patches/src', + '/libraries/vendor/cweagans/composer-patches', + '/libraries/vendor/cweagans', ]; $status['files_checked'] = $files; diff --git a/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-02-24.sql b/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-02-24.sql index a47e63e54505b..3716a866f8d64 100644 --- a/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-02-24.sql +++ b/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-02-24.sql @@ -14,10 +14,17 @@ CREATE TABLE IF NOT EXISTS `#__tuf_metadata` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci COMMENT='Secure TUF Updates'; -- -------------------------------------------------------- +-- The following INSERT statement has been modified to avoid an SQL error +-- when there is more than 1 update site for the Joomla core. +-- See https://github.com/joomla/joomla-cms/pull/43169 for details. +-- INSERT INTO `#__tuf_metadata` (`update_site_id`, `root`) -VALUES ((SELECT ue.`update_site_id` FROM `#__update_sites_extensions` AS ue JOIN `#__extensions` AS e ON (e.`extension_id` = ue.`extension_id`) WHERE e.`type`='file' AND e.`element`='joomla'), '{"signed":{"_type":"root","spec_version":"1.0","version":2,"expires":"2025-03-02T11:22:17Z","keys":{"07eb082f367c034a95878687f6648aa76d93652b6ee73e58817053d89af6c44f":{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha256","sha512"],"keyval":{"public":"9b2af2d9b9727227735253d795bd27ea8f0e294a5f3603e822dc5052b44802b9"}},"1b1b1dd55b2c1c7258714cf1c1ae06f23e4607b28c762d016a9d81c48ffe5669":{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha256","sha512"],"keyval":{"public":"a18e5ebabc19d5d5984b601a292ece61ba3662ab2d071dc520da5bd4f8948799"}},"2dcaf3d0e552f150792f7c636d45429246dcfa34ac35b46a44f5c87cd17d457e":{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha256","sha512"],"keyval":{"public":"cb0a7a131961a20edea051d6dc2b091fb650bd399bd8514adb67b3c60db9f8f9"}},"31dd7c7290d664c9b88c0dead2697175293ea7df81b7f24153a37370fd3901c3":{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha256","sha512"],"keyval":{"public":"589d029a68b470deff1ca16dbf3eea6b5b3fcba0ae7bb52c468abc7fb058b2a2"}},"9e41a9d62d94c6a1c8a304f62c5bd72d84a9f286f27e8327cedeacb09e5156cc":{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha256","sha512"],"keyval":{"public":"6043c8bacc76ac5c9750f45454dd865c6ca1fc57d69e14cc192cfd420f6a66a9"}}},"roles":{"root":{"keyids":["1b1b1dd55b2c1c7258714cf1c1ae06f23e4607b28c762d016a9d81c48ffe5669","2dcaf3d0e552f150792f7c636d45429246dcfa34ac35b46a44f5c87cd17d457e"],"threshold":1},"snapshot":{"keyids":["07eb082f367c034a95878687f6648aa76d93652b6ee73e58817053d89af6c44f","2dcaf3d0e552f150792f7c636d45429246dcfa34ac35b46a44f5c87cd17d457e"],"threshold":1},"targets":{"keyids":["31dd7c7290d664c9b88c0dead2697175293ea7df81b7f24153a37370fd3901c3"],"threshold":1},"timestamp":{"keyids":["9e41a9d62d94c6a1c8a304f62c5bd72d84a9f286f27e8327cedeacb09e5156cc"],"threshold":1}},"consistent_snapshot":true},"signatures":[{"keyid":"2dcaf3d0e552f150792f7c636d45429246dcfa34ac35b46a44f5c87cd17d457e","sig":"2a225a560ec0837b721d4c5e379fedbd3c7c9079a94e6b31e47e0184c8b95421b6036b4286c5d90f29ab4c468d79a712fdb65e96511394ceb3aa8e2b3983a501"},{"keyid":"1b1b1dd55b2c1c7258714cf1c1ae06f23e4607b28c762d016a9d81c48ffe5669","sig":"8ce0b2a7bdc1e6dcba12081f440510df0a593c072dcf591631c2dd0f456844a7da63be8e8ac31ffbddf42641fde84dc733a336031d182c2163b4c1eaf2117005"}]}'); +SELECT ue.`update_site_id`, + '{"signed":{"_type":"root","spec_version":"1.0","version":2,"expires":"2025-03-02T11:22:17Z","keys":{"07eb082f367c034a95878687f6648aa76d93652b6ee73e58817053d89af6c44f":{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha256","sha512"],"keyval":{"public":"9b2af2d9b9727227735253d795bd27ea8f0e294a5f3603e822dc5052b44802b9"}},"1b1b1dd55b2c1c7258714cf1c1ae06f23e4607b28c762d016a9d81c48ffe5669":{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha256","sha512"],"keyval":{"public":"a18e5ebabc19d5d5984b601a292ece61ba3662ab2d071dc520da5bd4f8948799"}},"2dcaf3d0e552f150792f7c636d45429246dcfa34ac35b46a44f5c87cd17d457e":{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha256","sha512"],"keyval":{"public":"cb0a7a131961a20edea051d6dc2b091fb650bd399bd8514adb67b3c60db9f8f9"}},"31dd7c7290d664c9b88c0dead2697175293ea7df81b7f24153a37370fd3901c3":{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha256","sha512"],"keyval":{"public":"589d029a68b470deff1ca16dbf3eea6b5b3fcba0ae7bb52c468abc7fb058b2a2"}},"9e41a9d62d94c6a1c8a304f62c5bd72d84a9f286f27e8327cedeacb09e5156cc":{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha256","sha512"],"keyval":{"public":"6043c8bacc76ac5c9750f45454dd865c6ca1fc57d69e14cc192cfd420f6a66a9"}}},"roles":{"root":{"keyids":["1b1b1dd55b2c1c7258714cf1c1ae06f23e4607b28c762d016a9d81c48ffe5669","2dcaf3d0e552f150792f7c636d45429246dcfa34ac35b46a44f5c87cd17d457e"],"threshold":1},"snapshot":{"keyids":["07eb082f367c034a95878687f6648aa76d93652b6ee73e58817053d89af6c44f","2dcaf3d0e552f150792f7c636d45429246dcfa34ac35b46a44f5c87cd17d457e"],"threshold":1},"targets":{"keyids":["31dd7c7290d664c9b88c0dead2697175293ea7df81b7f24153a37370fd3901c3"],"threshold":1},"timestamp":{"keyids":["9e41a9d62d94c6a1c8a304f62c5bd72d84a9f286f27e8327cedeacb09e5156cc"],"threshold":1}},"consistent_snapshot":true},"signatures":[{"keyid":"2dcaf3d0e552f150792f7c636d45429246dcfa34ac35b46a44f5c87cd17d457e","sig":"2a225a560ec0837b721d4c5e379fedbd3c7c9079a94e6b31e47e0184c8b95421b6036b4286c5d90f29ab4c468d79a712fdb65e96511394ceb3aa8e2b3983a501"},{"keyid":"1b1b1dd55b2c1c7258714cf1c1ae06f23e4607b28c762d016a9d81c48ffe5669","sig":"8ce0b2a7bdc1e6dcba12081f440510df0a593c072dcf591631c2dd0f456844a7da63be8e8ac31ffbddf42641fde84dc733a336031d182c2163b4c1eaf2117005"}]}' + FROM `#__update_sites_extensions` AS ue JOIN `#__extensions` AS e ON (e.`extension_id` = ue.`extension_id`) + WHERE e.`type`='file' AND e.`element`='joomla'; ------------------------------------------------------------ +-- -------------------------------------------------------- -- The following UPDATE statement has been modified to avoid an SQL error -- when there is more than 1 update site for the Joomla core. -- See https://github.com/joomla/joomla-cms/pull/42988 for details. diff --git a/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-03-28.sql b/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-03-28.sql new file mode 100644 index 0000000000000..e76716010f9fd --- /dev/null +++ b/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-03-28.sql @@ -0,0 +1,12 @@ +-- +-- Add post-installation message about Brotli compression in .htaccess +-- +-- This statement had to be modified to prevent duplicate postinstall messages +-- when updating from 4.4. +-- See https://github.com/joomla/joomla-cms/pull/43182 for details. +-- +INSERT INTO `#__postinstall_messages` (`extension_id`, `title_key`, `description_key`, `action_key`, `language_extension`, `language_client_id`, `type`, `action_file`, `action`, `condition_file`, `condition_method`, `version_introduced`, `enabled`) +SELECT `extension_id`, 'COM_ADMIN_POSTINSTALL_MSG_HTACCESS_BROTLI_TITLE', 'COM_ADMIN_POSTINSTALL_MSG_HTACCESS_BROTLI_DESCRIPTION', '', 'com_admin', 1, 'message', '', '', 'admin://components/com_admin/postinstall/htaccessbrotli.php', 'admin_postinstall_htaccessbrotli_condition', '5.1.0', 1 + FROM `#__extensions` + WHERE `name` = 'files_joomla' + AND (SELECT COUNT(a.`postinstall_message_id`) FROM `#__postinstall_messages` a WHERE a.`title_key` = 'COM_ADMIN_POSTINSTALL_MSG_HTACCESS_BROTLI_TITLE') = 0; diff --git a/administrator/components/com_admin/sql/updates/mysql/5.1.1-2024-04-18.sql b/administrator/components/com_admin/sql/updates/mysql/5.1.1-2024-04-18.sql new file mode 100644 index 0000000000000..8e59290ac5607 --- /dev/null +++ b/administrator/components/com_admin/sql/updates/mysql/5.1.1-2024-04-18.sql @@ -0,0 +1,10 @@ +-- +-- Add a default value for the colorScheme in the Atum template on Joomla update +-- only when a value is not already set. +-- New installs will have the default value set in the installation sql. +-- + +UPDATE `#__template_styles` +SET `params` = JSON_SET(`params`, '$.colorScheme', 'os') +WHERE `template` = 'atum' +AND JSON_EXTRACT(`params`, '$.colorScheme') IS NULL; diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-02-24.sql b/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-02-24.sql index 55181c00702bf..36692be7b3278 100644 --- a/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-02-24.sql +++ b/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-02-24.sql @@ -15,10 +15,18 @@ PRIMARY KEY ("id") COMMENT ON TABLE "#__tuf_metadata" IS 'Secure TUF Updates'; +-- -------------------------------------------------------- +-- The following INSERT statement has been modified to avoid an SQL error +-- when there is more than 1 update site for the Joomla core. +-- See https://github.com/joomla/joomla-cms/pull/43169 for details. +-- INSERT INTO "#__tuf_metadata" ("update_site_id", "root") -VALUES ((SELECT ue."update_site_id" FROM "#__update_sites_extensions" AS ue JOIN "#__extensions" AS e ON (e."extension_id" = ue."extension_id") WHERE e."type"='file' AND e."element"='joomla'), '{"signed":{"_type":"root","spec_version":"1.0","version":2,"expires":"2025-03-02T11:22:17Z","keys":{"07eb082f367c034a95878687f6648aa76d93652b6ee73e58817053d89af6c44f":{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha256","sha512"],"keyval":{"public":"9b2af2d9b9727227735253d795bd27ea8f0e294a5f3603e822dc5052b44802b9"}},"1b1b1dd55b2c1c7258714cf1c1ae06f23e4607b28c762d016a9d81c48ffe5669":{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha256","sha512"],"keyval":{"public":"a18e5ebabc19d5d5984b601a292ece61ba3662ab2d071dc520da5bd4f8948799"}},"2dcaf3d0e552f150792f7c636d45429246dcfa34ac35b46a44f5c87cd17d457e":{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha256","sha512"],"keyval":{"public":"cb0a7a131961a20edea051d6dc2b091fb650bd399bd8514adb67b3c60db9f8f9"}},"31dd7c7290d664c9b88c0dead2697175293ea7df81b7f24153a37370fd3901c3":{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha256","sha512"],"keyval":{"public":"589d029a68b470deff1ca16dbf3eea6b5b3fcba0ae7bb52c468abc7fb058b2a2"}},"9e41a9d62d94c6a1c8a304f62c5bd72d84a9f286f27e8327cedeacb09e5156cc":{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha256","sha512"],"keyval":{"public":"6043c8bacc76ac5c9750f45454dd865c6ca1fc57d69e14cc192cfd420f6a66a9"}}},"roles":{"root":{"keyids":["1b1b1dd55b2c1c7258714cf1c1ae06f23e4607b28c762d016a9d81c48ffe5669","2dcaf3d0e552f150792f7c636d45429246dcfa34ac35b46a44f5c87cd17d457e"],"threshold":1},"snapshot":{"keyids":["07eb082f367c034a95878687f6648aa76d93652b6ee73e58817053d89af6c44f","2dcaf3d0e552f150792f7c636d45429246dcfa34ac35b46a44f5c87cd17d457e"],"threshold":1},"targets":{"keyids":["31dd7c7290d664c9b88c0dead2697175293ea7df81b7f24153a37370fd3901c3"],"threshold":1},"timestamp":{"keyids":["9e41a9d62d94c6a1c8a304f62c5bd72d84a9f286f27e8327cedeacb09e5156cc"],"threshold":1}},"consistent_snapshot":true},"signatures":[{"keyid":"2dcaf3d0e552f150792f7c636d45429246dcfa34ac35b46a44f5c87cd17d457e","sig":"2a225a560ec0837b721d4c5e379fedbd3c7c9079a94e6b31e47e0184c8b95421b6036b4286c5d90f29ab4c468d79a712fdb65e96511394ceb3aa8e2b3983a501"},{"keyid":"1b1b1dd55b2c1c7258714cf1c1ae06f23e4607b28c762d016a9d81c48ffe5669","sig":"8ce0b2a7bdc1e6dcba12081f440510df0a593c072dcf591631c2dd0f456844a7da63be8e8ac31ffbddf42641fde84dc733a336031d182c2163b4c1eaf2117005"}]}'); +SELECT ue."update_site_id", + '{"signed":{"_type":"root","spec_version":"1.0","version":2,"expires":"2025-03-02T11:22:17Z","keys":{"07eb082f367c034a95878687f6648aa76d93652b6ee73e58817053d89af6c44f":{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha256","sha512"],"keyval":{"public":"9b2af2d9b9727227735253d795bd27ea8f0e294a5f3603e822dc5052b44802b9"}},"1b1b1dd55b2c1c7258714cf1c1ae06f23e4607b28c762d016a9d81c48ffe5669":{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha256","sha512"],"keyval":{"public":"a18e5ebabc19d5d5984b601a292ece61ba3662ab2d071dc520da5bd4f8948799"}},"2dcaf3d0e552f150792f7c636d45429246dcfa34ac35b46a44f5c87cd17d457e":{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha256","sha512"],"keyval":{"public":"cb0a7a131961a20edea051d6dc2b091fb650bd399bd8514adb67b3c60db9f8f9"}},"31dd7c7290d664c9b88c0dead2697175293ea7df81b7f24153a37370fd3901c3":{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha256","sha512"],"keyval":{"public":"589d029a68b470deff1ca16dbf3eea6b5b3fcba0ae7bb52c468abc7fb058b2a2"}},"9e41a9d62d94c6a1c8a304f62c5bd72d84a9f286f27e8327cedeacb09e5156cc":{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha256","sha512"],"keyval":{"public":"6043c8bacc76ac5c9750f45454dd865c6ca1fc57d69e14cc192cfd420f6a66a9"}}},"roles":{"root":{"keyids":["1b1b1dd55b2c1c7258714cf1c1ae06f23e4607b28c762d016a9d81c48ffe5669","2dcaf3d0e552f150792f7c636d45429246dcfa34ac35b46a44f5c87cd17d457e"],"threshold":1},"snapshot":{"keyids":["07eb082f367c034a95878687f6648aa76d93652b6ee73e58817053d89af6c44f","2dcaf3d0e552f150792f7c636d45429246dcfa34ac35b46a44f5c87cd17d457e"],"threshold":1},"targets":{"keyids":["31dd7c7290d664c9b88c0dead2697175293ea7df81b7f24153a37370fd3901c3"],"threshold":1},"timestamp":{"keyids":["9e41a9d62d94c6a1c8a304f62c5bd72d84a9f286f27e8327cedeacb09e5156cc"],"threshold":1}},"consistent_snapshot":true},"signatures":[{"keyid":"2dcaf3d0e552f150792f7c636d45429246dcfa34ac35b46a44f5c87cd17d457e","sig":"2a225a560ec0837b721d4c5e379fedbd3c7c9079a94e6b31e47e0184c8b95421b6036b4286c5d90f29ab4c468d79a712fdb65e96511394ceb3aa8e2b3983a501"},{"keyid":"1b1b1dd55b2c1c7258714cf1c1ae06f23e4607b28c762d016a9d81c48ffe5669","sig":"8ce0b2a7bdc1e6dcba12081f440510df0a593c072dcf591631c2dd0f456844a7da63be8e8ac31ffbddf42641fde84dc733a336031d182c2163b4c1eaf2117005"}]}' + FROM "#__update_sites_extensions" AS ue JOIN "#__extensions" AS e ON (e."extension_id" = ue."extension_id") + WHERE e."type"='file' AND e."element"='joomla'; ------------------------------------------------------------ +-- -------------------------------------------------------- -- The following UPDATE statement has been modified to avoid an SQL error -- when there is more than 1 update site for the Joomla core. -- See https://github.com/joomla/joomla-cms/pull/42988 for details. diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-03-08.sql b/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-03-08.sql index 03618c5ec72c3..dde57323da713 100644 --- a/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-03-08.sql +++ b/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-03-08.sql @@ -1,4 +1,4 @@ -INSERT IGNORE INTO "#__guidedtour_steps" ("tour_id", "title", "published", "description", "ordering", "position", "target", "type", "interactive_type", "url", "created", "created_by", "modified", "modified_by", "language") VALUES +INSERT INTO "#__guidedtour_steps" ("tour_id", "title", "published", "description", "ordering", "position", "target", "type", "interactive_type", "url", "created", "created_by", "modified", "modified_by", "language") VALUES (0, 'COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_STEP_MENUS_TITLE', 1, 'COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_STEP_MENUS_DESCRIPTION', 1, 'right', '#sidebarmenu', 0, 1, '', CURRENT_TIMESTAMP, 0, CURRENT_TIMESTAMP, 0, '*'), (0, 'COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_STEP_QUICKACCESS_TITLE', 1, 'COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_STEP_QUICKACCESS_DESCRIPTION', 2, 'center', '', 0, 1, '', CURRENT_TIMESTAMP, 0, CURRENT_TIMESTAMP, 0, '*'), (0, 'COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_STEP_NOTIFICATIONS_TITLE', 1, 'COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_STEP_NOTIFICATIONS_DESCRIPTION', 3, 'left', '.quickicons-for-update_quickicon .card', 0, 1, '', CURRENT_TIMESTAMP, 0, CURRENT_TIMESTAMP, 0, '*'), @@ -8,7 +8,7 @@ ON CONFLICT DO NOTHING; ALTER TABLE "#__guidedtours" ADD COLUMN "autostart" int NOT NULL DEFAULT 0 /** CAN FAIL **/; -INSERT IGNORE INTO "#__guidedtours" ("title", "uid", "description", "ordering", "extensions", "url", "created", "created_by", "modified", "modified_by", "published", "language", "access", "autostart") VALUES +INSERT INTO "#__guidedtours" ("title", "uid", "description", "ordering", "extensions", "url", "created", "created_by", "modified", "modified_by", "published", "language", "access", "autostart") VALUES ('COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_TITLE', 'joomla-welcome', 'COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_DESCRIPTION', 1, '["com_cpanel"]', 'administrator/index.php', CURRENT_TIMESTAMP, 0, CURRENT_TIMESTAMP, 0, 1, '*', 1, 0) ON CONFLICT DO NOTHING; diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-03-28.sql b/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-03-28.sql new file mode 100644 index 0000000000000..82bf0d612608c --- /dev/null +++ b/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-03-28.sql @@ -0,0 +1,12 @@ +-- +-- Add post-installation message about Brotli compression in .htaccess +-- +-- This statement had to be modified to prevent duplicate postinstall messages +-- when updating from 4.4. +-- See https://github.com/joomla/joomla-cms/pull/43182 for details. +-- +INSERT INTO "#__postinstall_messages" ("extension_id", "title_key", "description_key", "action_key", "language_extension", "language_client_id", "type", "action_file", "action", "condition_file", "condition_method", "version_introduced", "enabled") +SELECT "extension_id", 'COM_ADMIN_POSTINSTALL_MSG_HTACCESS_BROTLI_TITLE', 'COM_ADMIN_POSTINSTALL_MSG_HTACCESS_BROTLI_DESCRIPTION', '', 'com_admin', 1, 'message', '', '', 'admin://components/com_admin/postinstall/htaccessbrotli.php', 'admin_postinstall_htaccessbrotli_condition', '5.1.0', 1 + FROM "#__extensions" + WHERE "name" = 'files_joomla' + AND (SELECT COUNT(a."postinstall_message_id") FROM "#__postinstall_messages" a WHERE a."title_key" = 'COM_ADMIN_POSTINSTALL_MSG_HTACCESS_BROTLI_TITLE') = 0; diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.1.1-2024-04-18.sql b/administrator/components/com_admin/sql/updates/postgresql/5.1.1-2024-04-18.sql new file mode 100644 index 0000000000000..fc44f25a2a219 --- /dev/null +++ b/administrator/components/com_admin/sql/updates/postgresql/5.1.1-2024-04-18.sql @@ -0,0 +1,10 @@ +-- +-- Add a default value for the colorScheme in the Atum template on Joomla update +-- only when a value is not already set. +-- New installs will have the default value set in the installation sql. +-- + +UPDATE "#__template_styles" +SET "params" = jsonb_set("params"::jsonb, '{colorScheme}', '"os"', true) +WHERE "template" = 'atum' +AND "params"::jsonb->>'colorScheme' IS NULL; diff --git a/administrator/components/com_admin/tmpl/help/default.php b/administrator/components/com_admin/tmpl/help/default.php index 69480f7d90311..14e0a81b9833f 100644 --- a/administrator/components/com_admin/tmpl/help/default.php +++ b/administrator/components/com_admin/tmpl/help/default.php @@ -18,7 +18,7 @@ /** @var \Joomla\Component\Admin\Administrator\View\Help\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('com_admin.admin-help'); ?> diff --git a/administrator/components/com_associations/src/Model/AssociationsModel.php b/administrator/components/com_associations/src/Model/AssociationsModel.php index 1c9756a3aed34..1f22e6130cd30 100644 --- a/administrator/components/com_associations/src/Model/AssociationsModel.php +++ b/administrator/components/com_associations/src/Model/AssociationsModel.php @@ -18,6 +18,7 @@ use Joomla\Component\Associations\Administrator\Helper\AssociationsHelper; use Joomla\Database\Exception\ExecutionFailureException; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -152,7 +153,7 @@ protected function getStoreId($id = '') /** * Build an SQL query to load the list data. * - * @return \Joomla\Database\DatabaseQuery|boolean + * @return QueryInterface|boolean * * @since 3.7.0 */ diff --git a/administrator/components/com_associations/tmpl/association/edit.php b/administrator/components/com_associations/tmpl/association/edit.php index 9928dfcfc4513..efbe432ed63df 100644 --- a/administrator/components/com_associations/tmpl/association/edit.php +++ b/administrator/components/com_associations/tmpl/association/edit.php @@ -18,7 +18,7 @@ /** @var HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate') ->usePreset('com_associations.sidebyside') diff --git a/administrator/components/com_associations/tmpl/associations/default.php b/administrator/components/com_associations/tmpl/associations/default.php index 1c4f69aea404e..01a8f1ad29579 100644 --- a/administrator/components/com_associations/tmpl/associations/default.php +++ b/administrator/components/com_associations/tmpl/associations/default.php @@ -19,7 +19,7 @@ /** @var Joomla\Component\Associations\Administrator\View\Associations\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('com_associations.admin-associations-default') ->useScript('table.columns') ->useScript('multiselect'); diff --git a/administrator/components/com_associations/tmpl/associations/modal.php b/administrator/components/com_associations/tmpl/associations/modal.php index 0a92bc991945f..8db50389fc743 100644 --- a/administrator/components/com_associations/tmpl/associations/modal.php +++ b/administrator/components/com_associations/tmpl/associations/modal.php @@ -27,7 +27,7 @@ } /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('multiselect') ->useScript('com_associations.admin-associations-modal'); @@ -43,7 +43,7 @@ 2 => 'icon-folder', ]; -$this->document->addScriptOptions('associations-modal', ['func' => $function]); +$this->getDocument()->addScriptOptions('associations-modal', ['func' => $function]); ?>
diff --git a/administrator/components/com_banners/src/Model/BannersModel.php b/administrator/components/com_banners/src/Model/BannersModel.php index 4b8dd96ff3572..22e57080999e9 100644 --- a/administrator/components/com_banners/src/Model/BannersModel.php +++ b/administrator/components/com_banners/src/Model/BannersModel.php @@ -14,6 +14,7 @@ use Joomla\CMS\MVC\Model\ListModel; use Joomla\CMS\Table\Table; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -94,7 +95,7 @@ public function &getCategoryOrders() /** * Build an SQL query to load the list data. * - * @return \Joomla\Database\DatabaseQuery + * @return QueryInterface * * @since 1.6 */ diff --git a/administrator/components/com_banners/src/Model/ClientsModel.php b/administrator/components/com_banners/src/Model/ClientsModel.php index b21ed9840cf55..c78f011b5bcd2 100644 --- a/administrator/components/com_banners/src/Model/ClientsModel.php +++ b/administrator/components/com_banners/src/Model/ClientsModel.php @@ -13,6 +13,7 @@ use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\MVC\Model\ListModel; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -94,7 +95,7 @@ protected function getStoreId($id = '') /** * Build an SQL query to load the list data. * - * @return \Joomla\Database\DatabaseQuery + * @return QueryInterface */ protected function getListQuery() { diff --git a/administrator/components/com_banners/src/Model/TracksModel.php b/administrator/components/com_banners/src/Model/TracksModel.php index 074f5eb2fa361..bc820a86e8d7d 100644 --- a/administrator/components/com_banners/src/Model/TracksModel.php +++ b/administrator/components/com_banners/src/Model/TracksModel.php @@ -16,6 +16,7 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Model\ListModel; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; use Joomla\Filesystem\File; use Joomla\Filesystem\Folder; use Joomla\String\StringHelper; @@ -87,7 +88,7 @@ protected function populateState($ordering = 'b.name', $direction = 'asc') /** * Build an SQL query to load the list data. * - * @return \Joomla\Database\DatabaseQuery + * @return QueryInterface * * @since 1.6 */ diff --git a/administrator/components/com_banners/tmpl/banner/edit.php b/administrator/components/com_banners/tmpl/banner/edit.php index bf94c3d9beeca..9ee378083f9c2 100644 --- a/administrator/components/com_banners/tmpl/banner/edit.php +++ b/administrator/components/com_banners/tmpl/banner/edit.php @@ -18,7 +18,7 @@ /** @var \Joomla\Component\Banners\Administrator\View\Banner\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate') ->useScript('com_banners.admin-banner-edit'); diff --git a/administrator/components/com_banners/tmpl/banners/default.php b/administrator/components/com_banners/tmpl/banners/default.php index bda322fb40d58..7b24a58ff792c 100644 --- a/administrator/components/com_banners/tmpl/banners/default.php +++ b/administrator/components/com_banners/tmpl/banners/default.php @@ -20,12 +20,12 @@ /** @var \Joomla\Component\Banners\Administrator\View\Banners\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect'); $user = $this->getCurrentUser(); -$userId = $user->get('id'); +$userId = $user->id; $listOrder = $this->escape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); $saveOrder = $listOrder == 'a.ordering'; diff --git a/administrator/components/com_banners/tmpl/banners/emptystate.php b/administrator/components/com_banners/tmpl/banners/emptystate.php index b52705affbb42..24425a9e9ce4a 100644 --- a/administrator/components/com_banners/tmpl/banners/emptystate.php +++ b/administrator/components/com_banners/tmpl/banners/emptystate.php @@ -17,7 +17,7 @@ $displayData = [ 'textPrefix' => 'COM_BANNERS', 'formURL' => 'index.php?option=com_banners&view=banners', - 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help40:Banners', + 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:Banners', 'icon' => 'icon-bookmark banners', ]; diff --git a/administrator/components/com_banners/tmpl/client/edit.php b/administrator/components/com_banners/tmpl/client/edit.php index 557714e88039f..f7eec3482db98 100644 --- a/administrator/components/com_banners/tmpl/client/edit.php +++ b/administrator/components/com_banners/tmpl/client/edit.php @@ -18,7 +18,7 @@ /** @var \Joomla\Component\Banners\Administrator\View\Client\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate'); diff --git a/administrator/components/com_banners/tmpl/clients/default.php b/administrator/components/com_banners/tmpl/clients/default.php index 7d47f26e5afe4..36e8899c727ad 100644 --- a/administrator/components/com_banners/tmpl/clients/default.php +++ b/administrator/components/com_banners/tmpl/clients/default.php @@ -32,7 +32,7 @@ ]; $user = $this->getCurrentUser(); -$userId = $user->get('id'); +$userId = $user->id; $listOrder = $this->escape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); $params = $this->state->get('params') ?? new Registry(); @@ -107,7 +107,7 @@ items as $i => $item) : $canCreate = $user->authorise('core.create', 'com_banners'); $canEdit = $user->authorise('core.edit', 'com_banners'); - $canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out == $user->get('id') || is_null($item->checked_out); + $canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out == $user->id || is_null($item->checked_out); $canChange = $user->authorise('core.edit.state', 'com_banners') && $canCheckin; ?> diff --git a/administrator/components/com_banners/tmpl/clients/emptystate.php b/administrator/components/com_banners/tmpl/clients/emptystate.php index 5a8403a1bce2b..d97f2d15ffd22 100644 --- a/administrator/components/com_banners/tmpl/clients/emptystate.php +++ b/administrator/components/com_banners/tmpl/clients/emptystate.php @@ -17,7 +17,7 @@ $displayData = [ 'textPrefix' => 'COM_BANNERS_CLIENT', 'formURL' => 'index.php?option=com_banners&view=clients', - 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help40:Banners:_Clients', + 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:Banners:_Clients', 'icon' => 'icon-bookmark banners', ]; diff --git a/administrator/components/com_banners/tmpl/download/default.php b/administrator/components/com_banners/tmpl/download/default.php index 1c39cc0bcef41..f221b5b51c12b 100644 --- a/administrator/components/com_banners/tmpl/download/default.php +++ b/administrator/components/com_banners/tmpl/download/default.php @@ -16,7 +16,7 @@ /** @var \Joomla\Component\Banners\Administrator\View\Download\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('form.validate'); ?> diff --git a/administrator/components/com_banners/tmpl/tracks/default.php b/administrator/components/com_banners/tmpl/tracks/default.php index 06cf0d8950bc0..12c8c26b79dce 100644 --- a/administrator/components/com_banners/tmpl/tracks/default.php +++ b/administrator/components/com_banners/tmpl/tracks/default.php @@ -18,7 +18,7 @@ /** @var \Joomla\Component\Banners\Administrator\View\Tracks\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns'); /** @var \Joomla\Component\Banners\Administrator\View\Tracks\HtmlView $this */ diff --git a/administrator/components/com_banners/tmpl/tracks/emptystate.php b/administrator/components/com_banners/tmpl/tracks/emptystate.php index 0fe1cd2f152d7..13913c3e7c7e8 100644 --- a/administrator/components/com_banners/tmpl/tracks/emptystate.php +++ b/administrator/components/com_banners/tmpl/tracks/emptystate.php @@ -14,7 +14,7 @@ $displayData = [ 'textPrefix' => 'COM_BANNERS_TRACKS', - 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help40:Banners:_Tracks', + 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:Banners:_Tracks', 'icon' => 'icon-bookmark banners', ]; diff --git a/administrator/components/com_cache/tmpl/cache/default.php b/administrator/components/com_cache/tmpl/cache/default.php index 9abca8e95e8ff..77ae9c5836892 100644 --- a/administrator/components/com_cache/tmpl/cache/default.php +++ b/administrator/components/com_cache/tmpl/cache/default.php @@ -21,7 +21,7 @@ $listDirn = $this->escape($this->state->get('list.direction')); /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('table.columns') ->useScript('multiselect') diff --git a/administrator/components/com_categories/src/Field/CategoryeditField.php b/administrator/components/com_categories/src/Field/CategoryeditField.php index 162bfda7580d9..b443379088c5f 100644 --- a/administrator/components/com_categories/src/Field/CategoryeditField.php +++ b/administrator/components/com_categories/src/Field/CategoryeditField.php @@ -61,7 +61,7 @@ class CategoryeditField extends ListField protected $layout = 'joomla.form.field.categoryedit'; /** - * Method to attach a JForm object to the field. + * Method to attach a Form object to the field. * * @param \SimpleXMLElement $element The SimpleXMLElement object representing the tag for the form field object. * @param mixed $value The form field value to validate. diff --git a/administrator/components/com_categories/src/Model/CategoriesModel.php b/administrator/components/com_categories/src/Model/CategoriesModel.php index 0478d443b6ba6..5b9477225a92e 100644 --- a/administrator/components/com_categories/src/Model/CategoriesModel.php +++ b/administrator/components/com_categories/src/Model/CategoriesModel.php @@ -17,8 +17,8 @@ use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; use Joomla\CMS\Table\Table; -use Joomla\Database\DatabaseQuery; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; use Joomla\Utilities\ArrayHelper; // phpcs:disable PSR1.Files.SideEffects @@ -156,7 +156,7 @@ protected function getStoreId($id = '') /** * Method to get a database query to list categories. * - * @return \Joomla\Database\DatabaseQuery + * @return QueryInterface * * @since 1.6 */ @@ -493,7 +493,7 @@ public function countItems(&$items, $extension) /** * Manipulate the query to be used to evaluate if this is an Empty State to provide specific conditions for this extension. * - * @return DatabaseQuery + * @return QueryInterface * * @since 4.0.0 */ diff --git a/administrator/components/com_categories/src/Model/CategoryModel.php b/administrator/components/com_categories/src/Model/CategoryModel.php index f2e9dc31fd1c7..6e586b745332e 100644 --- a/administrator/components/com_categories/src/Model/CategoryModel.php +++ b/administrator/components/com_categories/src/Model/CategoryModel.php @@ -242,7 +242,7 @@ public function getItem($pk = null) * @param array $data Data for the form. * @param boolean $loadData True if the form is to load its own data (default case), false if not. * - * @return Form|boolean A JForm object on success, false on failure + * @return Form|boolean A Form object on success, false on failure * * @since 1.6 */ diff --git a/administrator/components/com_categories/tmpl/categories/default.php b/administrator/components/com_categories/tmpl/categories/default.php index 2be9770945515..0c8d3e62bad27 100644 --- a/administrator/components/com_categories/tmpl/categories/default.php +++ b/administrator/components/com_categories/tmpl/categories/default.php @@ -21,12 +21,12 @@ /** @var \Joomla\Component\Categories\Administrator\View\Categories\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect'); $user = $this->getCurrentUser(); -$userId = $user->get('id'); +$userId = $user->id; $extension = $this->escape($this->state->get('filter.extension')); $listOrder = $this->escape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); diff --git a/administrator/components/com_categories/tmpl/categories/modal.php b/administrator/components/com_categories/tmpl/categories/modal.php index 4da24d598dd45..cc0b2800ceaca 100644 --- a/administrator/components/com_categories/tmpl/categories/modal.php +++ b/administrator/components/com_categories/tmpl/categories/modal.php @@ -28,7 +28,7 @@ } /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('core') ->useScript('modal-content-select'); diff --git a/administrator/components/com_categories/tmpl/category/edit.php b/administrator/components/com_categories/tmpl/category/edit.php index 9f9c3d6aa9103..ba228c05ecad5 100644 --- a/administrator/components/com_categories/tmpl/category/edit.php +++ b/administrator/components/com_categories/tmpl/category/edit.php @@ -21,7 +21,7 @@ /** @var \Joomla\Component\Categories\Administrator\View\Category\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate'); diff --git a/administrator/components/com_categories/tmpl/category/modal.php b/administrator/components/com_categories/tmpl/category/modal.php index 7143183627162..aa7019e45d4df 100644 --- a/administrator/components/com_categories/tmpl/category/modal.php +++ b/administrator/components/com_categories/tmpl/category/modal.php @@ -14,7 +14,7 @@ ?>
- document->getToolbar('toolbar')->render(); ?> + getDocument()->getToolbar('toolbar')->render(); ?>
setLayout('edit'); ?> diff --git a/administrator/components/com_categories/tmpl/category/modalreturn.php b/administrator/components/com_categories/tmpl/category/modalreturn.php index e4f82b4af7870..29b34b1485960 100644 --- a/administrator/components/com_categories/tmpl/category/modalreturn.php +++ b/administrator/components/com_categories/tmpl/category/modalreturn.php @@ -27,11 +27,11 @@ // Add Content select script /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('modal-content-select'); // The data for Content select script -$this->document->addScriptOptions('content-select-on-load', $data, false); +$this->getDocument()->addScriptOptions('content-select-on-load', $data, false); ?> diff --git a/administrator/components/com_checkin/tmpl/checkin/default.php b/administrator/components/com_checkin/tmpl/checkin/default.php index 3a8632af67691..4067943b59336 100644 --- a/administrator/components/com_checkin/tmpl/checkin/default.php +++ b/administrator/components/com_checkin/tmpl/checkin/default.php @@ -18,7 +18,7 @@ /** @var \Joomla\Component\Checkin\Administrator\View\Checkin\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('multiselect'); $listOrder = $this->escape($this->state->get('list.ordering')); diff --git a/administrator/components/com_checkin/tmpl/checkin/emptystate.php b/administrator/components/com_checkin/tmpl/checkin/emptystate.php index 640e87e608e7b..5f8dfdada745f 100644 --- a/administrator/components/com_checkin/tmpl/checkin/emptystate.php +++ b/administrator/components/com_checkin/tmpl/checkin/emptystate.php @@ -15,7 +15,7 @@ $displayData = [ 'textPrefix' => 'COM_CHECKIN', - 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help4.x:Maintenance:_Global_Check-in', + 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:Maintenance:_Global_Check-in', 'icon' => 'icon-check-square', 'title' => Text::_('COM_CHECKIN_GLOBAL_CHECK_IN'), ]; diff --git a/administrator/components/com_config/src/Model/ApplicationModel.php b/administrator/components/com_config/src/Model/ApplicationModel.php index 528205007d615..7f382e0349f9e 100644 --- a/administrator/components/com_config/src/Model/ApplicationModel.php +++ b/administrator/components/com_config/src/Model/ApplicationModel.php @@ -67,7 +67,7 @@ class ApplicationModel extends FormModel implements MailerFactoryAwareInterface * @param array $data Data for the form. * @param boolean $loadData True if the form is to load its own data (default case), false if not. * - * @return mixed A JForm object on success, false on failure + * @return mixed A Form object on success, false on failure * * @since 1.6 */ @@ -374,7 +374,7 @@ public function save($data) // Check that we aren't removing our Super User permission // Need to get groups from database, since they might have changed - $myGroups = Access::getGroupsByUser($this->getCurrentUser()->get('id')); + $myGroups = Access::getGroupsByUser($this->getCurrentUser()->id); $myRules = $rules->getData(); $hasSuperAdmin = $myRules['core.admin']->allow($myGroups); diff --git a/administrator/components/com_config/src/Model/ComponentModel.php b/administrator/components/com_config/src/Model/ComponentModel.php index 80672f1bdfff5..17554c5791631 100644 --- a/administrator/components/com_config/src/Model/ComponentModel.php +++ b/administrator/components/com_config/src/Model/ComponentModel.php @@ -64,7 +64,7 @@ protected function populateState() * @param array $data Data for the form. * @param boolean $loadData True if the form is to load its own data (default case), false if not. * - * @return mixed A JForm object on success, false on failure + * @return mixed A Form object on success, false on failure * * @since 3.2 */ diff --git a/administrator/components/com_config/tmpl/application/default.php b/administrator/components/com_config/tmpl/application/default.php index fac3c715c5618..9ae86ea05fb60 100644 --- a/administrator/components/com_config/tmpl/application/default.php +++ b/administrator/components/com_config/tmpl/application/default.php @@ -17,7 +17,7 @@ /** @var \Joomla\Component\Config\Administrator\View\Application\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate'); diff --git a/administrator/components/com_config/tmpl/application/default_mail.php b/administrator/components/com_config/tmpl/application/default_mail.php index 2612fbe341fda..227afdad44baa 100644 --- a/administrator/components/com_config/tmpl/application/default_mail.php +++ b/administrator/components/com_config/tmpl/application/default_mail.php @@ -18,7 +18,7 @@ /** @var \Joomla\Component\Config\Administrator\View\Application\HtmlView $this */ HTMLHelper::_('form.csrf'); -$this->document->getWebAssetManager() +$this->getDocument()->getWebAssetManager() ->useScript('webcomponent.field-send-test-mail'); // Load JavaScript message titles diff --git a/administrator/components/com_config/tmpl/component/default.php b/administrator/components/com_config/tmpl/component/default.php index ad1e926e2752f..0ffc394ad285b 100644 --- a/administrator/components/com_config/tmpl/component/default.php +++ b/administrator/components/com_config/tmpl/component/default.php @@ -27,7 +27,7 @@ Text::script('MESSAGE'); /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('form.validate') ->useScript('keepalive'); diff --git a/administrator/components/com_contact/src/Model/ContactsModel.php b/administrator/components/com_contact/src/Model/ContactsModel.php index 784614b1803e0..7e21db9143c2f 100644 --- a/administrator/components/com_contact/src/Model/ContactsModel.php +++ b/administrator/components/com_contact/src/Model/ContactsModel.php @@ -15,6 +15,7 @@ use Joomla\CMS\MVC\Model\ListModel; use Joomla\CMS\Table\Table; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; use Joomla\Utilities\ArrayHelper; // phpcs:disable PSR1.Files.SideEffects @@ -135,7 +136,7 @@ protected function getStoreId($id = '') /** * Build an SQL query to load the list data. * - * @return \Joomla\Database\DatabaseQuery + * @return QueryInterface * * @since 1.6 */ diff --git a/administrator/components/com_contact/src/Service/HTML/Icon.php b/administrator/components/com_contact/src/Service/HTML/Icon.php index 7955ec57bf3cb..9073e21a66395 100644 --- a/administrator/components/com_contact/src/Service/HTML/Icon.php +++ b/administrator/components/com_contact/src/Service/HTML/Icon.php @@ -118,7 +118,7 @@ public function edit($contact, $params, $attribs = [], $legacy = false) property_exists($contact, 'checked_out') && property_exists($contact, 'checked_out_time') && !\is_null($contact->checked_out) - && $contact->checked_out !== $user->get('id') + && $contact->checked_out !== $user->id ) { $checkoutUser = $this->getUserFactory()->loadUserById($contact->checked_out); $date = HTMLHelper::_('date', $contact->checked_out_time); diff --git a/administrator/components/com_contact/src/Table/ContactTable.php b/administrator/components/com_contact/src/Table/ContactTable.php index 15d73d0588a11..0746e02a83a5a 100644 --- a/administrator/components/com_contact/src/Table/ContactTable.php +++ b/administrator/components/com_contact/src/Table/ContactTable.php @@ -48,7 +48,7 @@ class ContactTable extends Table implements VersionableTableInterface, TaggableT protected $_supportNullValue = true; /** - * Ensure the params and metadata in json encoded in the bind method + * Ensure the params and metadata are json encoded in the bind method * * @var array * @since 3.3 diff --git a/administrator/components/com_contact/tmpl/contact/edit.php b/administrator/components/com_contact/tmpl/contact/edit.php index 886c4876bdae1..dddda905f7305 100644 --- a/administrator/components/com_contact/tmpl/contact/edit.php +++ b/administrator/components/com_contact/tmpl/contact/edit.php @@ -20,7 +20,7 @@ /** @var \Joomla\Component\Contact\Administrator\View\Contact\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate'); diff --git a/administrator/components/com_contact/tmpl/contact/modal.php b/administrator/components/com_contact/tmpl/contact/modal.php index dc5b2f283a8ea..d4260411e8cac 100644 --- a/administrator/components/com_contact/tmpl/contact/modal.php +++ b/administrator/components/com_contact/tmpl/contact/modal.php @@ -13,7 +13,7 @@ /** @var \Joomla\Component\Contact\Administrator\View\Contact\HtmlView $this */ ?>
- document->getToolbar('toolbar')->render(); ?> + getDocument()->getToolbar('toolbar')->render(); ?>
setLayout('edit'); ?> diff --git a/administrator/components/com_contact/tmpl/contact/modalreturn.php b/administrator/components/com_contact/tmpl/contact/modalreturn.php index ffe791c45772d..007c0bd9d1cd3 100644 --- a/administrator/components/com_contact/tmpl/contact/modalreturn.php +++ b/administrator/components/com_contact/tmpl/contact/modalreturn.php @@ -28,11 +28,11 @@ // Add Content select script /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('modal-content-select'); // The data for Content select script -$this->document->addScriptOptions('content-select-on-load', $data, false); +$this->getDocument()->addScriptOptions('content-select-on-load', $data, false); ?> diff --git a/administrator/components/com_contact/tmpl/contacts/default.php b/administrator/components/com_contact/tmpl/contacts/default.php index 3a5e2c4c3e925..83049cc92f6be 100644 --- a/administrator/components/com_contact/tmpl/contacts/default.php +++ b/administrator/components/com_contact/tmpl/contacts/default.php @@ -21,12 +21,12 @@ /** @var \Joomla\Component\Contact\Administrator\View\Contacts\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect'); $user = $this->getCurrentUser(); -$userId = $user->get('id'); +$userId = $user->id; $listOrder = $this->escape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); $saveOrder = $listOrder == 'a.ordering'; diff --git a/administrator/components/com_contact/tmpl/contacts/emptystate.php b/administrator/components/com_contact/tmpl/contacts/emptystate.php index 4a2443baf4817..c42bdffdf487b 100644 --- a/administrator/components/com_contact/tmpl/contacts/emptystate.php +++ b/administrator/components/com_contact/tmpl/contacts/emptystate.php @@ -17,7 +17,7 @@ $displayData = [ 'textPrefix' => 'COM_CONTACT', 'formURL' => 'index.php?option=com_contact', - 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help4.x:Contacts', + 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:Contacts', 'icon' => 'icon-address-book contact', ]; diff --git a/administrator/components/com_contact/tmpl/contacts/modal.php b/administrator/components/com_contact/tmpl/contacts/modal.php index 294f935e1d631..8d9fe4391c436 100644 --- a/administrator/components/com_contact/tmpl/contacts/modal.php +++ b/administrator/components/com_contact/tmpl/contacts/modal.php @@ -28,7 +28,7 @@ } /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('modal-content-select') ->useScript('com_contact.admin-contacts-modal'); @@ -42,7 +42,7 @@ if (!empty($editor)) { // This view is used also in com_menus. Load the xtd script only if the editor is set! - $this->document->addScriptOptions('xtd-contacts', ['editor' => $editor]); + $this->getDocument()->addScriptOptions('xtd-contacts', ['editor' => $editor]); $onclick = "jSelectContact"; } ?> diff --git a/administrator/components/com_content/src/Event/Model/FeatureEvent.php b/administrator/components/com_content/src/Event/Model/FeatureEvent.php index fa8a194d95f5f..226a56203a3c7 100644 --- a/administrator/components/com_content/src/Event/Model/FeatureEvent.php +++ b/administrator/components/com_content/src/Event/Model/FeatureEvent.php @@ -71,9 +71,9 @@ public function __construct($name, array $arguments = []) } /** - * Set used parameter to true + * Set abort and reason parameters. * - * @param bool $value The value to set + * @param string $reason Abort reason * * @return void * diff --git a/administrator/components/com_content/src/Model/ArticlesModel.php b/administrator/components/com_content/src/Model/ArticlesModel.php index defc1981763b7..3d3f40673d6ab 100644 --- a/administrator/components/com_content/src/Model/ArticlesModel.php +++ b/administrator/components/com_content/src/Model/ArticlesModel.php @@ -19,6 +19,7 @@ use Joomla\CMS\Table\Table; use Joomla\Component\Content\Administrator\Extension\ContentComponent; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; use Joomla\Registry\Registry; use Joomla\Utilities\ArrayHelper; @@ -217,7 +218,7 @@ protected function getStoreId($id = '') /** * Build an SQL query to load the list data. * - * @return \Joomla\Database\DatabaseQuery + * @return QueryInterface * * @since 1.6 */ diff --git a/administrator/components/com_content/src/Model/FeaturedModel.php b/administrator/components/com_content/src/Model/FeaturedModel.php index 8cfece263ac59..2f9893f99a4f1 100644 --- a/administrator/components/com_content/src/Model/FeaturedModel.php +++ b/administrator/components/com_content/src/Model/FeaturedModel.php @@ -11,6 +11,8 @@ namespace Joomla\Component\Content\Administrator\Model; // phpcs:disable PSR1.Files.SideEffects +use Joomla\Database\QueryInterface; + \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects @@ -88,7 +90,7 @@ protected function populateState($ordering = 'a.title', $direction = 'asc') /** * Build an SQL query to load the list data. * - * @return \Joomla\Database\DatabaseQuery + * @return QueryInterface * * @since 4.0.0 */ diff --git a/administrator/components/com_content/src/Service/HTML/Icon.php b/administrator/components/com_content/src/Service/HTML/Icon.php index be1bfc6a4dedd..fe1782260de47 100644 --- a/administrator/components/com_content/src/Service/HTML/Icon.php +++ b/administrator/components/com_content/src/Service/HTML/Icon.php @@ -104,7 +104,7 @@ public function edit($article, $params, $attribs = [], $legacy = false) property_exists($article, 'checked_out') && property_exists($article, 'checked_out_time') && !\is_null($article->checked_out) - && $article->checked_out != $user->get('id') + && $article->checked_out != $user->id ) { $checkoutUser = Factory::getUser($article->checked_out); $date = HTMLHelper::_('date', $article->checked_out_time); diff --git a/administrator/components/com_content/tmpl/article/edit.php b/administrator/components/com_content/tmpl/article/edit.php index 84caa25f31a4f..e794dfd8cc4bc 100644 --- a/administrator/components/com_content/tmpl/article/edit.php +++ b/administrator/components/com_content/tmpl/article/edit.php @@ -21,7 +21,7 @@ use Joomla\Registry\Registry; /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->getRegistry()->addExtensionRegistryFile('com_contenthistory'); $wa->useScript('keepalive') ->useScript('form.validate') diff --git a/administrator/components/com_content/tmpl/article/modal.php b/administrator/components/com_content/tmpl/article/modal.php index a6afdb0dc3cd3..a825d2b35bff9 100644 --- a/administrator/components/com_content/tmpl/article/modal.php +++ b/administrator/components/com_content/tmpl/article/modal.php @@ -13,7 +13,7 @@ /** @var \Joomla\Component\Content\Administrator\View\Article\HtmlView $this */ ?>
- document->getToolbar('toolbar')->render(); ?> + getDocument()->getToolbar('toolbar')->render(); ?>
setLayout('edit'); ?> diff --git a/administrator/components/com_content/tmpl/article/modalreturn.php b/administrator/components/com_content/tmpl/article/modalreturn.php index 6a79ddff8c3ec..10fd2fd24c344 100644 --- a/administrator/components/com_content/tmpl/article/modalreturn.php +++ b/administrator/components/com_content/tmpl/article/modalreturn.php @@ -28,11 +28,11 @@ // Add Content select script /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('modal-content-select'); // The data for Content select script -$this->document->addScriptOptions('content-select-on-load', $data, false); +$this->getDocument()->addScriptOptions('content-select-on-load', $data, false); ?> diff --git a/administrator/components/com_content/tmpl/article/pagebreak.php b/administrator/components/com_content/tmpl/article/pagebreak.php index 1d5914e12bb4c..478f755687237 100644 --- a/administrator/components/com_content/tmpl/article/pagebreak.php +++ b/administrator/components/com_content/tmpl/article/pagebreak.php @@ -16,12 +16,12 @@ /** @var \Joomla\Component\Content\Administrator\View\Article\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('com_content.admin-article-pagebreak'); $this->eName = Factory::getApplication()->getInput()->getCmd('e_name', ''); $this->eName = preg_replace('#[^A-Z0-9\-\_\[\]]#i', '', $this->eName); -$this->document->setTitle(Text::_('COM_CONTENT_PAGEBREAK_DOC_TITLE')); +$this->getDocument()->setTitle(Text::_('COM_CONTENT_PAGEBREAK_DOC_TITLE')); ?>
diff --git a/administrator/components/com_content/tmpl/articles/default.php b/administrator/components/com_content/tmpl/articles/default.php index 83b3e287a6a36..72cb283302965 100644 --- a/administrator/components/com_content/tmpl/articles/default.php +++ b/administrator/components/com_content/tmpl/articles/default.php @@ -28,13 +28,13 @@ /** @var \Joomla\Component\Content\Administrator\View\Articles\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect'); $app = Factory::getApplication(); $user = $this->getCurrentUser(); -$userId = $user->get('id'); +$userId = $user->id; $listOrder = $this->escape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); $saveOrder = $listOrder == 'a.ordering'; diff --git a/administrator/components/com_content/tmpl/articles/modal.php b/administrator/components/com_content/tmpl/articles/modal.php index 63410ea69d668..42dd83cc093a7 100644 --- a/administrator/components/com_content/tmpl/articles/modal.php +++ b/administrator/components/com_content/tmpl/articles/modal.php @@ -28,7 +28,7 @@ } /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('core') ->useScript('multiselect') ->useScript('modal-content-select') @@ -44,7 +44,7 @@ if (!empty($editor)) { // This view is used also in com_menus. Load the xtd script only if the editor is set! - $this->document->addScriptOptions('xtd-articles', ['editor' => $editor]); + $this->getDocument()->addScriptOptions('xtd-articles', ['editor' => $editor]); $onclick = "jSelectArticle"; } ?> diff --git a/administrator/components/com_content/tmpl/featured/default.php b/administrator/components/com_content/tmpl/featured/default.php index e4569f65d687d..048b8640421c0 100644 --- a/administrator/components/com_content/tmpl/featured/default.php +++ b/administrator/components/com_content/tmpl/featured/default.php @@ -28,13 +28,13 @@ /** @var \Joomla\Component\Content\Administrator\View\Featured\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect'); $app = Factory::getApplication(); $user = $this->getCurrentUser(); -$userId = $user->get('id'); +$userId = $user->id; $listOrder = $this->escape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); $saveOrder = $listOrder == 'fp.ordering'; diff --git a/administrator/components/com_content/tmpl/featured/default_stage_footer.php b/administrator/components/com_content/tmpl/featured/default_stage_footer.php index 9afc9b9df8a18..8c6d2bfccdad4 100644 --- a/administrator/components/com_content/tmpl/featured/default_stage_footer.php +++ b/administrator/components/com_content/tmpl/featured/default_stage_footer.php @@ -15,7 +15,7 @@ /** @var \Joomla\Component\Content\Administrator\View\Featured\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('com_content.admin-articles-stage'); ?> diff --git a/administrator/components/com_contenthistory/src/Model/HistoryModel.php b/administrator/components/com_contenthistory/src/Model/HistoryModel.php index 1dea5ec5159fa..0022b9e008705 100644 --- a/administrator/components/com_contenthistory/src/Model/HistoryModel.php +++ b/administrator/components/com_contenthistory/src/Model/HistoryModel.php @@ -22,6 +22,7 @@ use Joomla\CMS\Table\ContentType; use Joomla\CMS\Table\Table; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -317,7 +318,7 @@ protected function populateState($ordering = 'h.save_date', $direction = 'DESC') /** * Build an SQL query to load the list data. * - * @return \Joomla\Database\DatabaseQuery + * @return QueryInterface * * @since 3.2 */ diff --git a/administrator/components/com_contenthistory/tmpl/compare/compare.php b/administrator/components/com_contenthistory/tmpl/compare/compare.php index 7a7933593baae..8f855b92c1ad8 100644 --- a/administrator/components/com_contenthistory/tmpl/compare/compare.php +++ b/administrator/components/com_contenthistory/tmpl/compare/compare.php @@ -23,7 +23,7 @@ $object2 = $version2->data; /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('com_contenthistory.admin-compare-compare'); ?> diff --git a/administrator/components/com_contenthistory/tmpl/history/modal.php b/administrator/components/com_contenthistory/tmpl/history/modal.php index 4884ff52cb457..759607d4cbfd9 100644 --- a/administrator/components/com_contenthistory/tmpl/history/modal.php +++ b/administrator/components/com_contenthistory/tmpl/history/modal.php @@ -34,7 +34,7 @@ JS; /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('multiselect') ->useScript('com_contenthistory.admin-history-modal') ->useScript('list-view') diff --git a/administrator/components/com_cpanel/tmpl/cpanel/default.php b/administrator/components/com_cpanel/tmpl/cpanel/default.php index 4250b7c58e397..c649ae1eb09c5 100644 --- a/administrator/components/com_cpanel/tmpl/cpanel/default.php +++ b/administrator/components/com_cpanel/tmpl/cpanel/default.php @@ -27,7 +27,7 @@ Text::script('COM_CPANEL_UNPUBLISH_MODULE_ERROR'); /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('com_cpanel.admin-cpanel') ->useScript('joomla.dialog-autocreate'); diff --git a/administrator/components/com_fields/forms/field.xml b/administrator/components/com_fields/forms/field.xml index 88157e4abbf3e..c4b1196266fc8 100644 --- a/administrator/components/com_fields/forms/field.xml +++ b/administrator/components/com_fields/forms/field.xml @@ -81,7 +81,6 @@ label="COM_FIELDS_FIELD_ONLY_USE_IN_SUBFORM_LABEL" layout="joomla.form.field.radio.switcher" default="0" - showon="type!:subform" > diff --git a/administrator/components/com_fields/src/Field/SectionField.php b/administrator/components/com_fields/src/Field/SectionField.php index b331e9d18f19b..240e173c746be 100644 --- a/administrator/components/com_fields/src/Field/SectionField.php +++ b/administrator/components/com_fields/src/Field/SectionField.php @@ -32,7 +32,7 @@ class SectionField extends ListField public $type = 'Section'; /** - * Method to attach a JForm object to the field. + * Method to attach a Form object to the field. * * @param \SimpleXMLElement $element The SimpleXMLElement object representing the `` tag for the form field object. * @param mixed $value The form field value to validate. diff --git a/administrator/components/com_fields/src/Field/SubfieldsField.php b/administrator/components/com_fields/src/Field/SubfieldsField.php index 99a1f6aca4d2e..c8dc4cfeba751 100644 --- a/administrator/components/com_fields/src/Field/SubfieldsField.php +++ b/administrator/components/com_fields/src/Field/SubfieldsField.php @@ -75,11 +75,6 @@ protected function getOptions() // Iterate over the custom fields for this context foreach (static::$customFieldsCache[$this->context] as $customField) { - // Skip our own subform type. We won't have subform in subform. - if ($customField->type == 'subform') { - continue; - } - $options[] = HTMLHelper::_( 'select.option', $customField->id, @@ -103,7 +98,7 @@ function ($a, $b) { } /** - * Method to attach a JForm object to the field. + * Method to attach a Form object to the field. * * @param \SimpleXMLElement $element The SimpleXMLElement object representing the `` tag for the form field object. * @param mixed $value The form field value to validate. diff --git a/administrator/components/com_fields/src/Field/TypeField.php b/administrator/components/com_fields/src/Field/TypeField.php index 1e01dd68d63a3..4514da0b584a8 100644 --- a/administrator/components/com_fields/src/Field/TypeField.php +++ b/administrator/components/com_fields/src/Field/TypeField.php @@ -32,7 +32,7 @@ class TypeField extends ListField public $type = 'Type'; /** - * Method to attach a JForm object to the field. + * Method to attach a Form object to the field. * * @param \SimpleXMLElement $element The SimpleXMLElement object representing the `` tag for the form field object. * @param mixed $value The form field value to validate. diff --git a/administrator/components/com_fields/src/Helper/FieldsHelper.php b/administrator/components/com_fields/src/Helper/FieldsHelper.php index 5f83985de0d1a..8e70a96a4312c 100644 --- a/administrator/components/com_fields/src/Helper/FieldsHelper.php +++ b/administrator/components/com_fields/src/Helper/FieldsHelper.php @@ -485,24 +485,14 @@ public static function prepareForm($context, Form $form, $data) // Loading the XML fields string into the form $form->load($xml->saveXML()); - $model = Factory::getApplication()->bootComponent('com_fields') - ->getMVCFactory()->createModel('Field', 'Administrator', ['ignore_request' => true]); - - if ( - (!isset($data->id) || !$data->id) && Factory::getApplication()->getInput()->getCmd('controller') == 'modules' - && Factory::getApplication()->isClient('site') - ) { - // Modules on front end editing don't have data and an id set - $data->id = Factory::getApplication()->getInput()->getInt('id'); - } - // Looping through the fields again to set the value if (!isset($data->id) || !$data->id) { return true; } foreach ($fields as $field) { - $value = $model->getFieldValue($field->id, $data->id); + // Get the value already loaded by static::getFields() + $value = $field->rawvalue; if ($value === null) { continue; diff --git a/administrator/components/com_fields/src/Model/FieldModel.php b/administrator/components/com_fields/src/Model/FieldModel.php index 9b1a84afb4121..c6eff9511df62 100644 --- a/administrator/components/com_fields/src/Model/FieldModel.php +++ b/administrator/components/com_fields/src/Model/FieldModel.php @@ -117,13 +117,17 @@ public function save($data) $field = $this->getItem($data['id']); } - if ( - isset($data['params']['searchindex']) - && ((\is_null($field) && $data['params']['searchindex'] > 0) - || ($field->params['searchindex'] != $data['params']['searchindex']) - || ($data['params']['searchindex'] > 0 && ($field->state != $data['state'] || $field->access != $data['access']))) - ) { - Factory::getApplication()->enqueueMessage(Text::_('COM_FIELDS_SEARCHINDEX_MIGHT_REQUIRE_REINDEXING'), 'notice'); + if (isset($data['params']['searchindex'])) { + if (\is_null($field)) { + if ($data['params']['searchindex'] > 0) { + Factory::getApplication()->enqueueMessage(Text::_('COM_FIELDS_SEARCHINDEX_MIGHT_REQUIRE_REINDEXING'), 'notice'); + } + } elseif ( + $field->params['searchindex'] != $data['params']['searchindex'] + || ($data['params']['searchindex'] > 0 && ($field->state != $data['state'] || $field->access != $data['access'])) + ) { + Factory::getApplication()->enqueueMessage(Text::_('COM_FIELDS_SEARCHINDEX_MIGHT_REQUIRE_REINDEXING'), 'notice'); + } } if (!isset($data['label']) && isset($data['params']['label'])) { @@ -580,17 +584,9 @@ public function getForm($data = [], $loadData = true) $form->setFieldAttribute('created_user_id', 'filter', 'unset'); } - // In case we are editing a field, field type cannot be changed, so some extra handling below is needed + // In case we are editing a field, field type cannot be changed, so remove showon attribute to avoid js errors if ($fieldId) { - $fieldType = $form->getField('type'); - - if ($fieldType->value == 'subform') { - // Only Use In subform should not be available for subform field type, so we remove it - $form->removeField('only_use_in_subform'); - } else { - // Field type could not be changed, so remove showon attribute to avoid js errors - $form->setFieldAttribute('only_use_in_subform', 'showon', ''); - } + $form->setFieldAttribute('only_use_in_subform', 'showon', ''); } return $form; diff --git a/administrator/components/com_fields/src/Model/FieldsModel.php b/administrator/components/com_fields/src/Model/FieldsModel.php index 9059b892bdf43..8d17cc16449d3 100644 --- a/administrator/components/com_fields/src/Model/FieldsModel.php +++ b/administrator/components/com_fields/src/Model/FieldsModel.php @@ -17,6 +17,7 @@ use Joomla\CMS\MVC\Model\ListModel; use Joomla\Component\Fields\Administrator\Helper\FieldsHelper; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; use Joomla\Registry\Registry; use Joomla\Utilities\ArrayHelper; @@ -129,9 +130,9 @@ protected function getStoreId($id = '') } /** - * Method to get a DatabaseQuery object for retrieving the data set from a database. + * Method to get a QueryInterface object for retrieving the data set from a database. * - * @return \Joomla\Database\DatabaseQuery A DatabaseQuery object to retrieve the data set. + * @return QueryInterface An object implementing QueryInterface to retrieve the data set. * * @since 3.7.0 */ diff --git a/administrator/components/com_fields/src/Model/GroupsModel.php b/administrator/components/com_fields/src/Model/GroupsModel.php index 725c0d2252456..55c59aa154cb3 100644 --- a/administrator/components/com_fields/src/Model/GroupsModel.php +++ b/administrator/components/com_fields/src/Model/GroupsModel.php @@ -13,6 +13,7 @@ use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; use Joomla\Registry\Registry; use Joomla\Utilities\ArrayHelper; @@ -117,9 +118,9 @@ protected function getStoreId($id = '') } /** - * Method to get a DatabaseQuery object for retrieving the data set from a database. + * Method to get a QueryInterface object for retrieving the data set from a database. * - * @return \Joomla\Database\DatabaseQuery A DatabaseQuery object to retrieve the data set. + * @return QueryInterface An object implementing QueryInterface to retrieve the data set. * * @since 3.7.0 */ diff --git a/administrator/components/com_fields/src/Table/FieldTable.php b/administrator/components/com_fields/src/Table/FieldTable.php index b40fd9524c8cd..bdc72b9e212d7 100644 --- a/administrator/components/com_fields/src/Table/FieldTable.php +++ b/administrator/components/com_fields/src/Table/FieldTable.php @@ -181,14 +181,14 @@ public function check() if ($this->id) { // Existing item $this->modified_time = $date; - $this->modified_by = $user->get('id'); + $this->modified_by = $user->id; } else { if (!(int) $this->modified_time) { $this->modified_time = $this->created_time; } if (empty($this->created_user_id)) { - $this->created_user_id = $user->get('id'); + $this->created_user_id = $user->id; } if (empty($this->modified_by)) { diff --git a/administrator/components/com_fields/src/Table/GroupTable.php b/administrator/components/com_fields/src/Table/GroupTable.php index e153f289ed0c0..abc0dd9879eee 100644 --- a/administrator/components/com_fields/src/Table/GroupTable.php +++ b/administrator/components/com_fields/src/Table/GroupTable.php @@ -116,14 +116,14 @@ public function check() if ($this->id) { $this->modified = $date; - $this->modified_by = $user->get('id'); + $this->modified_by = $user->id; } else { if (!(int) $this->modified) { $this->modified = $this->created; } if (empty($this->created_by)) { - $this->created_by = $user->get('id'); + $this->created_by = $user->id; } if (empty($this->modified_by)) { diff --git a/administrator/components/com_fields/src/View/Field/HtmlView.php b/administrator/components/com_fields/src/View/Field/HtmlView.php index 25d8167e20a2c..0191220f4f140 100644 --- a/administrator/components/com_fields/src/View/Field/HtmlView.php +++ b/administrator/components/com_fields/src/View/Field/HtmlView.php @@ -93,7 +93,7 @@ protected function addToolbar() { $component = $this->state->get('field.component'); $section = $this->state->get('field.section'); - $userId = $this->getCurrentUser()->get('id'); + $userId = $this->getCurrentUser()->id; $canDo = $this->canDo; $toolbar = Toolbar::getInstance(); diff --git a/administrator/components/com_fields/src/View/Group/HtmlView.php b/administrator/components/com_fields/src/View/Group/HtmlView.php index e540aaa32c0f3..5a3f9a2cc71c6 100644 --- a/administrator/components/com_fields/src/View/Group/HtmlView.php +++ b/administrator/components/com_fields/src/View/Group/HtmlView.php @@ -114,7 +114,7 @@ protected function addToolbar() $component = $parts[0]; } - $userId = $this->getCurrentUser()->get('id'); + $userId = $this->getCurrentUser()->id; $canDo = $this->canDo; $isNew = ($this->item->id == 0); diff --git a/administrator/components/com_fields/tmpl/field/edit.php b/administrator/components/com_fields/tmpl/field/edit.php index 791d85badfb72..d9cb6f1d99b59 100644 --- a/administrator/components/com_fields/tmpl/field/edit.php +++ b/administrator/components/com_fields/tmpl/field/edit.php @@ -24,7 +24,7 @@ $this->useCoreUI = true; /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate') ->useScript('com_fields.admin-field-edit'); diff --git a/administrator/components/com_fields/tmpl/fields/default.php b/administrator/components/com_fields/tmpl/fields/default.php index 89868d2803521..77b27cce1aa81 100644 --- a/administrator/components/com_fields/tmpl/fields/default.php +++ b/administrator/components/com_fields/tmpl/fields/default.php @@ -23,13 +23,13 @@ /** @var \Joomla\Component\Fields\Administrator\View\Fields\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect'); $app = Factory::getApplication(); $user = $this->getCurrentUser(); -$userId = $user->get('id'); +$userId = $user->id; $context = $this->escape($this->state->get('filter.context')); $component = $this->state->get('filter.component'); $section = $this->state->get('filter.section'); diff --git a/administrator/components/com_fields/tmpl/fields/default_batch_body.php b/administrator/components/com_fields/tmpl/fields/default_batch_body.php index 69a6faeda91d4..e4e5446d1b24f 100644 --- a/administrator/components/com_fields/tmpl/fields/default_batch_body.php +++ b/administrator/components/com_fields/tmpl/fields/default_batch_body.php @@ -18,7 +18,7 @@ /** @var \Joomla\Component\Fields\Administrator\View\Fields\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('com_fields.admin-fields-batch'); $wa->useScript('joomla.batch-copymove'); diff --git a/administrator/components/com_fields/tmpl/fields/modal.php b/administrator/components/com_fields/tmpl/fields/modal.php index 47ab74c36d5ea..2319856c991bc 100644 --- a/administrator/components/com_fields/tmpl/fields/modal.php +++ b/administrator/components/com_fields/tmpl/fields/modal.php @@ -24,7 +24,7 @@ } /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('com_fields.admin-fields-modal')->useScript('modal-content-select'); $listOrder = $this->escape($this->state->get('list.ordering')); diff --git a/administrator/components/com_fields/tmpl/group/edit.php b/administrator/components/com_fields/tmpl/group/edit.php index 3b10a192be07a..02c7cb2790512 100644 --- a/administrator/components/com_fields/tmpl/group/edit.php +++ b/administrator/components/com_fields/tmpl/group/edit.php @@ -19,7 +19,7 @@ /** @var \Joomla\Component\Fields\Administrator\View\Group\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate'); diff --git a/administrator/components/com_fields/tmpl/groups/default.php b/administrator/components/com_fields/tmpl/groups/default.php index 4010c80e60ba1..d72ad1d5cb4c9 100644 --- a/administrator/components/com_fields/tmpl/groups/default.php +++ b/administrator/components/com_fields/tmpl/groups/default.php @@ -22,13 +22,13 @@ /** @var \Joomla\Component\Fields\Administrator\View\Groups\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect'); $app = Factory::getApplication(); $user = $this->getCurrentUser(); -$userId = $user->get('id'); +$userId = $user->id; $component = ''; $parts = FieldsHelper::extract($this->state->get('filter.context')); diff --git a/administrator/components/com_finder/src/Model/FiltersModel.php b/administrator/components/com_finder/src/Model/FiltersModel.php index 4c64d31da46d5..0c4f22b18f537 100644 --- a/administrator/components/com_finder/src/Model/FiltersModel.php +++ b/administrator/components/com_finder/src/Model/FiltersModel.php @@ -13,6 +13,7 @@ use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; +use Joomla\Database\QueryInterface; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -53,7 +54,7 @@ public function __construct($config = [], MVCFactoryInterface $factory = null) /** * Build an SQL query to load the list data. * - * @return \Joomla\Database\DatabaseQuery + * @return QueryInterface * * @since 2.5 */ diff --git a/administrator/components/com_finder/src/Model/IndexModel.php b/administrator/components/com_finder/src/Model/IndexModel.php index 75ea94cbcffa7..dabd5e1fb2085 100644 --- a/administrator/components/com_finder/src/Model/IndexModel.php +++ b/administrator/components/com_finder/src/Model/IndexModel.php @@ -16,6 +16,7 @@ use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; use Joomla\CMS\Plugin\PluginHelper; +use Joomla\Database\QueryInterface; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -174,7 +175,7 @@ public function delete(&$pks) /** * Build an SQL query to load the list data. * - * @return \Joomla\Database\DatabaseQuery + * @return QueryInterface * * @since 2.5 */ @@ -441,7 +442,7 @@ public function publish(&$pks, $value = 1) } // Attempt to change the state of the records. - if (!$table->publish($pks, $value, $user->get('id'))) { + if (!$table->publish($pks, $value, $user->id)) { $this->setError($table->getError()); return false; diff --git a/administrator/components/com_finder/src/Model/MapsModel.php b/administrator/components/com_finder/src/Model/MapsModel.php index b256927f00087..3379a906da647 100644 --- a/administrator/components/com_finder/src/Model/MapsModel.php +++ b/administrator/components/com_finder/src/Model/MapsModel.php @@ -17,6 +17,7 @@ use Joomla\CMS\MVC\Model\ListModel; use Joomla\CMS\Plugin\PluginHelper; use Joomla\Database\DatabaseQuery; +use Joomla\Database\QueryInterface; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -155,7 +156,7 @@ public function delete(&$pks) /** * Build an SQL query to load the list data. * - * @return \Joomla\Database\DatabaseQuery + * @return QueryInterface * * @since 2.5 */ @@ -335,7 +336,7 @@ public function publish(&$pks, $value = 1) } // Attempt to change the state of the records. - if (!$table->publish($pks, $value, $user->get('id'))) { + if (!$table->publish($pks, $value, $user->id)) { $this->setError($table->getError()); return false; diff --git a/administrator/components/com_finder/src/Model/SearchesModel.php b/administrator/components/com_finder/src/Model/SearchesModel.php index 69399be23d460..91a80d04311b1 100644 --- a/administrator/components/com_finder/src/Model/SearchesModel.php +++ b/administrator/components/com_finder/src/Model/SearchesModel.php @@ -13,6 +13,7 @@ use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; +use Joomla\Database\QueryInterface; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -96,7 +97,7 @@ protected function getStoreId($id = '') /** * Build an SQL query to load the list data. * - * @return \Joomla\Database\DatabaseQuery + * @return QueryInterface * * @since 4.0.0 */ diff --git a/administrator/components/com_finder/tmpl/filter/edit.php b/administrator/components/com_finder/tmpl/filter/edit.php index e61b5ada457d3..8d0f660cffe46 100644 --- a/administrator/components/com_finder/tmpl/filter/edit.php +++ b/administrator/components/com_finder/tmpl/filter/edit.php @@ -26,7 +26,7 @@ $this->useCoreUI = true; /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate') ->useScript('com_finder.finder-edit'); diff --git a/administrator/components/com_finder/tmpl/filters/default.php b/administrator/components/com_finder/tmpl/filters/default.php index f8fa79d2a71bc..a75c842ed8ec5 100644 --- a/administrator/components/com_finder/tmpl/filters/default.php +++ b/administrator/components/com_finder/tmpl/filters/default.php @@ -18,14 +18,14 @@ /** @var \Joomla\Component\Finder\Administrator\View\Filters\HtmlView $this */ $user = $this->getCurrentUser(); -$userId = $user->get('id'); +$userId = $user->id; $listOrder = $this->escape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); Text::script('COM_FINDER_INDEX_CONFIRM_DELETE_PROMPT'); /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('com_finder.filters') ->useScript('table.columns') ->useScript('multiselect'); diff --git a/administrator/components/com_finder/tmpl/index/default.php b/administrator/components/com_finder/tmpl/index/default.php index 9143f27f49d7c..9c678717dac90 100644 --- a/administrator/components/com_finder/tmpl/index/default.php +++ b/administrator/components/com_finder/tmpl/index/default.php @@ -25,7 +25,7 @@ $lang = $this->getLanguage(); /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('multiselect') ->useScript('table.columns') ->useScript('joomla.dialog-autocreate'); diff --git a/administrator/components/com_finder/tmpl/index/emptystate.php b/administrator/components/com_finder/tmpl/index/emptystate.php index c9c117274da02..9f5d84d0292bf 100644 --- a/administrator/components/com_finder/tmpl/index/emptystate.php +++ b/administrator/components/com_finder/tmpl/index/emptystate.php @@ -33,7 +33,7 @@ // Show warning that the content - finder plugin is disabled if ($this->finderPluginId) { /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ - $wa = $this->document->getWebAssetManager(); + $wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('joomla.dialog-autocreate'); $popupOptions = [ diff --git a/administrator/components/com_finder/tmpl/indexer/debug.php b/administrator/components/com_finder/tmpl/indexer/debug.php index b4247b72025e6..2cfad37dd97ba 100644 --- a/administrator/components/com_finder/tmpl/indexer/debug.php +++ b/administrator/components/com_finder/tmpl/indexer/debug.php @@ -19,7 +19,7 @@ Text::script('COM_FINDER_INDEXER_MESSAGE_COMPLETE', true); /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('com_finder.debug'); diff --git a/administrator/components/com_finder/tmpl/indexer/default.php b/administrator/components/com_finder/tmpl/indexer/default.php index 04f2141318ba6..db3ca5a37d173 100644 --- a/administrator/components/com_finder/tmpl/indexer/default.php +++ b/administrator/components/com_finder/tmpl/indexer/default.php @@ -22,7 +22,7 @@ Text::script('JLIB_JS_AJAX_ERROR_PARSE'); /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useStyle('com_finder.indexer') ->useScript('com_finder.indexer'); diff --git a/administrator/components/com_finder/tmpl/maps/default.php b/administrator/components/com_finder/tmpl/maps/default.php index 978750df7b58d..2b9ca870ffecc 100644 --- a/administrator/components/com_finder/tmpl/maps/default.php +++ b/administrator/components/com_finder/tmpl/maps/default.php @@ -28,7 +28,7 @@ Text::script('COM_FINDER_MAPS_CONFIRM_DELETE_PROMPT'); /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('com_finder.maps') ->useScript('table.columns') ->useScript('multiselect'); diff --git a/administrator/components/com_finder/tmpl/maps/emptystate.php b/administrator/components/com_finder/tmpl/maps/emptystate.php index 301df7df10f8a..00bb16722d867 100644 --- a/administrator/components/com_finder/tmpl/maps/emptystate.php +++ b/administrator/components/com_finder/tmpl/maps/emptystate.php @@ -16,7 +16,7 @@ $displayData = [ 'textPrefix' => 'COM_FINDER', 'formURL' => 'index.php?option=com_finder&view=maps', - 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help4.x:Smart_Search:_Content_Maps', + 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:Smart_Search:_Content_Maps', 'icon' => 'icon-search-plus finder', 'title' => Text::_('COM_FINDER_MAPS_TOOLBAR_TITLE') ]; diff --git a/administrator/components/com_finder/tmpl/searches/default.php b/administrator/components/com_finder/tmpl/searches/default.php index 29244ad7da9f5..e6cf3b29731e4 100644 --- a/administrator/components/com_finder/tmpl/searches/default.php +++ b/administrator/components/com_finder/tmpl/searches/default.php @@ -18,7 +18,7 @@ /** @var \Joomla\Component\Finder\Administrator\View\Searches\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('multiselect'); $listOrder = $this->escape($this->state->get('list.ordering')); diff --git a/administrator/components/com_finder/tmpl/searches/emptystate.php b/administrator/components/com_finder/tmpl/searches/emptystate.php index f43471bc5aede..31d49307f0a37 100644 --- a/administrator/components/com_finder/tmpl/searches/emptystate.php +++ b/administrator/components/com_finder/tmpl/searches/emptystate.php @@ -16,7 +16,7 @@ $displayData = [ 'textPrefix' => 'COM_FINDER', 'formURL' => 'index.php?option=com_finder&view=searches', - 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help4.x:Smart_Search:_Search_Term_Analysis', + 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:Smart_Search:_Search_Term_Analysis', 'icon' => 'icon-search', 'title' => Text::_('COM_FINDER_MANAGER_SEARCHES'), 'content' => Text::_('COM_FINDER_EMPTYSTATE_SEARCHES_CONTENT'), diff --git a/administrator/components/com_guidedtours/src/Model/StepModel.php b/administrator/components/com_guidedtours/src/Model/StepModel.php index 3f784fc389117..62533efa4d150 100644 --- a/administrator/components/com_guidedtours/src/Model/StepModel.php +++ b/administrator/components/com_guidedtours/src/Model/StepModel.php @@ -167,7 +167,7 @@ public function getTable($type = 'Step', $prefix = 'Administrator', $config = [] * @param array $data Data for the form. * @param boolean $loadData True if the form is to load its own data (default case), false if not. * - * @return \JForm|boolean A JForm object on success, false on failure + * @return \JForm|boolean A Form object on success, false on failure * * @since 4.3.0 */ diff --git a/administrator/components/com_guidedtours/src/Model/StepsModel.php b/administrator/components/com_guidedtours/src/Model/StepsModel.php index acf733565fec2..6cdc950933e71 100644 --- a/administrator/components/com_guidedtours/src/Model/StepsModel.php +++ b/administrator/components/com_guidedtours/src/Model/StepsModel.php @@ -14,8 +14,8 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Model\ListModel; use Joomla\Component\Guidedtours\Administrator\Helper\GuidedtoursHelper; -use Joomla\Database\DatabaseQuery; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; use Joomla\Registry\Registry; use Joomla\Utilities\ArrayHelper; @@ -62,7 +62,7 @@ public function __construct($config = []) /** * Provide a query to be used to evaluate if this is an Empty State, can be overridden in the model to provide granular control. * - * @return DatabaseQuery + * @return QueryInterface * * @since 4.3.0 */ @@ -138,7 +138,7 @@ protected function getStoreId($id = '') /** * Build an SQL query to load the list data. * - * @return \Joomla\Database\DatabaseQuery + * @return QueryInterface * * @since 4.3.0 */ diff --git a/administrator/components/com_guidedtours/src/Model/TourModel.php b/administrator/components/com_guidedtours/src/Model/TourModel.php index eda7e1018b4cd..edee94fc6bbbe 100644 --- a/administrator/components/com_guidedtours/src/Model/TourModel.php +++ b/administrator/components/com_guidedtours/src/Model/TourModel.php @@ -125,7 +125,7 @@ protected function prepareTable($table) * @param array $data Data for the form. * @param boolean $loadData True if the form is to load its own data (default case), false if not. * - * @return \JForm|boolean A JForm object on success, false on failure + * @return \JForm|boolean A Form object on success, false on failure * * @since 4.3.0 */ @@ -510,7 +510,7 @@ protected function setStepsLanguage(int $id, string $language = '*'): bool * @param int $id Id of a tour * @param int $autostart The autostart value of a tour * - * @since __DEPLOY_VERSION__ + * @since 5.1.0 */ public function setAutostart($id, $autostart) { @@ -532,7 +532,7 @@ public function setAutostart($id, $autostart) * * @param string $uid the uid of a tour * - * @since __DEPLOY_VERSION__ + * @since 5.1.0 */ public function isAutostart($uid) { diff --git a/administrator/components/com_guidedtours/src/Model/ToursModel.php b/administrator/components/com_guidedtours/src/Model/ToursModel.php index bbadcc0e9fd6a..03a79fce17a1b 100644 --- a/administrator/components/com_guidedtours/src/Model/ToursModel.php +++ b/administrator/components/com_guidedtours/src/Model/ToursModel.php @@ -15,6 +15,7 @@ use Joomla\CMS\MVC\Model\ListModel; use Joomla\Component\Guidedtours\Administrator\Helper\GuidedtoursHelper; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; use Joomla\Registry\Registry; use Joomla\Utilities\ArrayHelper; @@ -108,7 +109,7 @@ public function getFilterForm($data = [], $loadData = true) /** * Method to get the data that should be injected in the form. * - * @return string The query to database. + * @return QueryInterface The query to database. * * @since 4.3.0 */ diff --git a/administrator/components/com_guidedtours/tmpl/step/edit.php b/administrator/components/com_guidedtours/tmpl/step/edit.php index 6b67e6d289fde..c47a6d07209ba 100644 --- a/administrator/components/com_guidedtours/tmpl/step/edit.php +++ b/administrator/components/com_guidedtours/tmpl/step/edit.php @@ -19,7 +19,7 @@ /** @var \Joomla\Component\Guidedtours\Administrator\View\Step\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate') ->useScript('com_guidedtours.tour-edit'); diff --git a/administrator/components/com_guidedtours/tmpl/steps/default.php b/administrator/components/com_guidedtours/tmpl/steps/default.php index e3ea2137f5865..97a0217a49c86 100644 --- a/administrator/components/com_guidedtours/tmpl/steps/default.php +++ b/administrator/components/com_guidedtours/tmpl/steps/default.php @@ -22,12 +22,12 @@ /** @var HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect'); $user = $this->getCurrentUser(); -$userId = $user->get('id'); +$userId = $user->id; $listOrder = $this->escape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); $saveOrder = $listOrder == 'a.ordering'; diff --git a/administrator/components/com_guidedtours/tmpl/steps/emptystate.php b/administrator/components/com_guidedtours/tmpl/steps/emptystate.php index 15474137a05b3..68ae26353b72f 100644 --- a/administrator/components/com_guidedtours/tmpl/steps/emptystate.php +++ b/administrator/components/com_guidedtours/tmpl/steps/emptystate.php @@ -17,7 +17,7 @@ $displayData = [ 'textPrefix' => 'COM_GUIDEDTOURS_STEPS', 'formURL' => 'index.php?option=com_guidedtours&view=steps', - 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help4.x:Guided_Tours:_Steps', + 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:Guided_Tours:_Steps', 'icon' => 'icon-map-signs', ]; diff --git a/administrator/components/com_guidedtours/tmpl/tour/edit.php b/administrator/components/com_guidedtours/tmpl/tour/edit.php index 942dfee5a40ad..e115cab0af1ee 100644 --- a/administrator/components/com_guidedtours/tmpl/tour/edit.php +++ b/administrator/components/com_guidedtours/tmpl/tour/edit.php @@ -24,7 +24,7 @@ $lang = $this->getLanguage()->getTag(); /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate'); ?> diff --git a/administrator/components/com_guidedtours/tmpl/tours/default.php b/administrator/components/com_guidedtours/tmpl/tours/default.php index 1c4f88a3f4a42..6b1f349b562f2 100644 --- a/administrator/components/com_guidedtours/tmpl/tours/default.php +++ b/administrator/components/com_guidedtours/tmpl/tours/default.php @@ -23,7 +23,7 @@ /** @var HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect'); @@ -34,7 +34,7 @@ } $user = $app->getIdentity(); -$userId = $user->get('id'); +$userId = $user->id; $listOrder = $this->escape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); $saveOrder = $listOrder == 'a.ordering'; diff --git a/administrator/components/com_guidedtours/tmpl/tours/emptystate.php b/administrator/components/com_guidedtours/tmpl/tours/emptystate.php index 0462defb278ed..6500a86264413 100644 --- a/administrator/components/com_guidedtours/tmpl/tours/emptystate.php +++ b/administrator/components/com_guidedtours/tmpl/tours/emptystate.php @@ -17,7 +17,7 @@ $displayData = [ 'textPrefix' => 'COM_GUIDEDTOURS_TOURS_LIST', 'formURL' => 'index.php?option=com_guidedtours&view=tours', - 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help4.x:Guided_Tours', + 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:Guided_Tours', 'icon' => 'icon-map-signs', ]; diff --git a/administrator/components/com_installer/src/Model/DatabaseModel.php b/administrator/components/com_installer/src/Model/DatabaseModel.php index d3c7dd63f7d98..ff8168472b4e7 100644 --- a/administrator/components/com_installer/src/Model/DatabaseModel.php +++ b/administrator/components/com_installer/src/Model/DatabaseModel.php @@ -19,9 +19,9 @@ use Joomla\CMS\Table\Extension; use Joomla\CMS\Version; use Joomla\Component\Installer\Administrator\Helper\InstallerHelper; -use Joomla\Database\DatabaseQuery; use Joomla\Database\Exception\ExecutionFailureException; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; use Joomla\Registry\Registry; \JLoader::register('JoomlaInstallerScript', JPATH_ADMINISTRATOR . '/components/com_admin/script.php'); @@ -320,7 +320,7 @@ public function getItems() /** * Method to get the database query * - * @return DatabaseQuery The database query + * @return QueryInterface The database query * * @since 4.0.0 */ diff --git a/administrator/components/com_installer/src/Model/DiscoverModel.php b/administrator/components/com_installer/src/Model/DiscoverModel.php index 26cfc37974906..2f47fad781c6b 100644 --- a/administrator/components/com_installer/src/Model/DiscoverModel.php +++ b/administrator/components/com_installer/src/Model/DiscoverModel.php @@ -14,9 +14,9 @@ use Joomla\CMS\Installer\Installer; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; -use Joomla\Database\DatabaseQuery; use Joomla\Database\Exception\ExecutionFailureException; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; use Joomla\Utilities\ArrayHelper; // phpcs:disable PSR1.Files.SideEffects @@ -89,7 +89,7 @@ protected function populateState($ordering = 'name', $direction = 'asc') /** * Method to get the database query. * - * @return DatabaseQuery The database query + * @return QueryInterface The database query * * @since 3.1 */ @@ -280,7 +280,7 @@ public function purge() /** * Manipulate the query to be used to evaluate if this is an Empty State to provide specific conditions for this extension. * - * @return DatabaseQuery + * @return QueryInterface * * @since 4.0.0 */ diff --git a/administrator/components/com_installer/src/Model/ManageModel.php b/administrator/components/com_installer/src/Model/ManageModel.php index d6c6e954d5d88..c5e1b44a79d46 100644 --- a/administrator/components/com_installer/src/Model/ManageModel.php +++ b/administrator/components/com_installer/src/Model/ManageModel.php @@ -21,8 +21,8 @@ use Joomla\CMS\Plugin\PluginHelper; use Joomla\CMS\Table\Extension; use Joomla\Component\Templates\Administrator\Table\StyleTable; -use Joomla\Database\DatabaseQuery; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -308,7 +308,7 @@ public function remove($eid = []) /** * Method to get the database query * - * @return DatabaseQuery The database query + * @return QueryInterface The database query * * @since 1.6 */ diff --git a/administrator/components/com_installer/src/Model/UpdateModel.php b/administrator/components/com_installer/src/Model/UpdateModel.php index 17431af5ed004..64a81e0284616 100644 --- a/administrator/components/com_installer/src/Model/UpdateModel.php +++ b/administrator/components/com_installer/src/Model/UpdateModel.php @@ -21,9 +21,9 @@ use Joomla\CMS\Plugin\PluginHelper; use Joomla\CMS\Updater\Update; use Joomla\CMS\Updater\Updater; -use Joomla\Database\DatabaseQuery; use Joomla\Database\Exception\ExecutionFailureException; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; use Joomla\Utilities\ArrayHelper; // phpcs:disable PSR1.Files.SideEffects @@ -92,7 +92,7 @@ protected function populateState($ordering = 'u.name', $direction = 'asc') /** * Method to get the database query * - * @return \Joomla\Database\DatabaseQuery The database query + * @return QueryInterface The database query * * @since 1.6 */ @@ -200,9 +200,9 @@ protected function translate(&$items) /** * Returns an object list * - * @param DatabaseQuery $query The query - * @param int $limitstart Offset - * @param int $limit The number of records + * @param QueryInterface $query The query + * @param int $limitstart Offset + * @param int $limit The number of records * * @return object[] * @@ -614,7 +614,7 @@ protected function preparePreUpdate($update, $table) /** * Manipulate the query to be used to evaluate if this is an Empty State to provide specific conditions for this extension. * - * @return DatabaseQuery + * @return QueryInterface * * @since 4.0.0 */ diff --git a/administrator/components/com_installer/src/Model/UpdatesitesModel.php b/administrator/components/com_installer/src/Model/UpdatesitesModel.php index 0ade2440207dd..5ec653751cd48 100644 --- a/administrator/components/com_installer/src/Model/UpdatesitesModel.php +++ b/administrator/components/com_installer/src/Model/UpdatesitesModel.php @@ -21,6 +21,7 @@ use Joomla\CMS\Table\UpdateSite as UpdateSiteTable; use Joomla\Component\Installer\Administrator\Helper\InstallerHelper; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -517,7 +518,7 @@ protected function getStoreId($id = '') /** * Method to get the database query * - * @return \Joomla\Database\DatabaseQuery The database query + * @return QueryInterface The database query * * @since 3.4 */ diff --git a/administrator/components/com_installer/tmpl/database/default.php b/administrator/components/com_installer/tmpl/database/default.php index 4fd6fb026007e..dcbd008ce8c64 100644 --- a/administrator/components/com_installer/tmpl/database/default.php +++ b/administrator/components/com_installer/tmpl/database/default.php @@ -18,7 +18,7 @@ /** @var \Joomla\Component\Installer\Administrator\View\Database\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect'); diff --git a/administrator/components/com_installer/tmpl/discover/default.php b/administrator/components/com_installer/tmpl/discover/default.php index c59ca27aa433c..a42996408b1b9 100644 --- a/administrator/components/com_installer/tmpl/discover/default.php +++ b/administrator/components/com_installer/tmpl/discover/default.php @@ -18,7 +18,7 @@ /** @var \Joomla\Component\Installer\Administrator\View\Discover\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect'); diff --git a/administrator/components/com_installer/tmpl/discover/emptystate.php b/administrator/components/com_installer/tmpl/discover/emptystate.php index fc32b7c0cff23..b895352e42a9d 100644 --- a/administrator/components/com_installer/tmpl/discover/emptystate.php +++ b/administrator/components/com_installer/tmpl/discover/emptystate.php @@ -19,7 +19,7 @@ $displayData = [ 'textPrefix' => 'COM_INSTALLER', 'formURL' => 'index.php?option=com_installer&task=discover.refresh', - 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help4.x:Extensions:_Discover', + 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:Extensions:_Discover', 'icon' => 'icon-puzzle-piece install', 'createURL' => 'index.php?option=com_installer&task=discover.refresh&' . Session::getFormToken() . '=1', 'content' => Text::_('COM_INSTALLER_MSG_DISCOVER_DESCRIPTION'), diff --git a/administrator/components/com_installer/tmpl/install/default.php b/administrator/components/com_installer/tmpl/install/default.php index 61775cf2efc93..5a3dec64c9ab3 100644 --- a/administrator/components/com_installer/tmpl/install/default.php +++ b/administrator/components/com_installer/tmpl/install/default.php @@ -27,7 +27,7 @@ Text::script('COM_INSTALLER_MSG_INSTALL_ENTER_A_URL'); /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('core') ->usePreset('com_installer.installer') ->useScript('webcomponent.core-loader'); diff --git a/administrator/components/com_installer/tmpl/languages/default.php b/administrator/components/com_installer/tmpl/languages/default.php index 714caf960cbae..bc9575f3e1b62 100644 --- a/administrator/components/com_installer/tmpl/languages/default.php +++ b/administrator/components/com_installer/tmpl/languages/default.php @@ -19,7 +19,7 @@ /** @var \Joomla\Component\Installer\Administrator\View\Languages\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect') ->useScript('webcomponent.core-loader'); diff --git a/administrator/components/com_installer/tmpl/manage/default.php b/administrator/components/com_installer/tmpl/manage/default.php index 2429b771c63f0..0c09f458e1d68 100644 --- a/administrator/components/com_installer/tmpl/manage/default.php +++ b/administrator/components/com_installer/tmpl/manage/default.php @@ -18,7 +18,7 @@ /** @var \Joomla\Component\Installer\Administrator\View\Manage\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect') ->useScript('joomla.dialog-autocreate'); diff --git a/administrator/components/com_installer/tmpl/update/default.php b/administrator/components/com_installer/tmpl/update/default.php index 19659ef7bbeaa..9970fef2e6b22 100644 --- a/administrator/components/com_installer/tmpl/update/default.php +++ b/administrator/components/com_installer/tmpl/update/default.php @@ -18,7 +18,7 @@ /** @var \Joomla\Component\Installer\Administrator\View\Update\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('multiselect') ->useScript('table.columns') ->useScript('joomla.dialog-autocreate'); diff --git a/administrator/components/com_installer/tmpl/update/emptystate.php b/administrator/components/com_installer/tmpl/update/emptystate.php index a155e283171cd..6ba4a0d275fe5 100644 --- a/administrator/components/com_installer/tmpl/update/emptystate.php +++ b/administrator/components/com_installer/tmpl/update/emptystate.php @@ -18,7 +18,7 @@ $displayData = [ 'textPrefix' => 'COM_INSTALLER', 'formURL' => 'index.php?option=com_installer&view=update', - 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help4.x:Extensions:_Update', + 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:Extensions:_Update', 'icon' => 'icon-puzzle-piece install', ]; diff --git a/administrator/components/com_installer/tmpl/updatesite/edit.php b/administrator/components/com_installer/tmpl/updatesite/edit.php index be0c2ce5c365a..dc95fcddcd8a8 100644 --- a/administrator/components/com_installer/tmpl/updatesite/edit.php +++ b/administrator/components/com_installer/tmpl/updatesite/edit.php @@ -17,7 +17,7 @@ /** @var \Joomla\Component\Installer\Administrator\View\Updatesite\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('form.validate'); ?> diff --git a/administrator/components/com_installer/tmpl/updatesites/default.php b/administrator/components/com_installer/tmpl/updatesites/default.php index 17e68a5a9e136..be5c1e9f25249 100644 --- a/administrator/components/com_installer/tmpl/updatesites/default.php +++ b/administrator/components/com_installer/tmpl/updatesites/default.php @@ -18,12 +18,12 @@ /** @var \Joomla\Component\Installer\Administrator\View\Updatesites\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect'); $user = $this->getCurrentUser(); -$userId = $user->get('id'); +$userId = $user->id; $listOrder = $this->escape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); ?> diff --git a/administrator/components/com_installer/tmpl/warnings/emptystate.php b/administrator/components/com_installer/tmpl/warnings/emptystate.php index 82397e9b1b6a7..2581f2c78412e 100644 --- a/administrator/components/com_installer/tmpl/warnings/emptystate.php +++ b/administrator/components/com_installer/tmpl/warnings/emptystate.php @@ -14,7 +14,7 @@ use Joomla\CMS\Layout\LayoutHelper; $displayData = [ - 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help4.x:Information:_Warnings', + 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:Information:_Warnings', 'icon' => 'icon-puzzle-piece install', 'title' => Text::_('COM_INSTALLER_MSG_WARNINGS_NONE'), 'content' => '', diff --git a/administrator/components/com_joomlaupdate/extract.php b/administrator/components/com_joomlaupdate/extract.php index 98c33cd1f0197..b6e0f74a3c6ff 100644 --- a/administrator/components/com_joomlaupdate/extract.php +++ b/administrator/components/com_joomlaupdate/extract.php @@ -1400,6 +1400,9 @@ private function processTypeFileUncompressed(): bool if ($this->dataReadLength == 0) { // Before processing file data, ensure permissions are adequate $this->setCorrectPermissions($this->fileHeader->file); + + // This file is changed during the script's operation so we clear the status cache. + clearstatcache($this->fileHeader->file); } // Open the output file @@ -1491,6 +1494,9 @@ private function processTypeFileCompressed(): bool // Before processing file data, ensure permissions are adequate $this->setCorrectPermissions($this->fileHeader->file); + // This file is changed during the script's operation so we clear the status cache. + clearstatcache($this->fileHeader->file); + // Open the output file $outfp = @fopen($this->fileHeader->realFile, 'wb'); diff --git a/administrator/components/com_joomlaupdate/src/Model/UpdateModel.php b/administrator/components/com_joomlaupdate/src/Model/UpdateModel.php index 5b2bc74f08d0a..b28ed81f2c716 100644 --- a/administrator/components/com_joomlaupdate/src/Model/UpdateModel.php +++ b/administrator/components/com_joomlaupdate/src/Model/UpdateModel.php @@ -1632,7 +1632,7 @@ private function checkCompatibility($updateFileUrl, $joomlaTargetVersion) $minimumStability = ComponentHelper::getParams('com_installer')->get('minimum_stability', Updater::STABILITY_STABLE); $update = new Update(); - $update->set('jversion.full', $joomlaTargetVersion); + $update->setTargetVersion($joomlaTargetVersion); $update->loadFromXml($updateFileUrl, $minimumStability); $compatibleVersions = $update->get('compatibleVersions'); diff --git a/administrator/components/com_joomlaupdate/tmpl/joomlaupdate/preupdatecheck.php b/administrator/components/com_joomlaupdate/tmpl/joomlaupdate/preupdatecheck.php index 769bd50bdc9a8..8abd7a5efa2e7 100644 --- a/administrator/components/com_joomlaupdate/tmpl/joomlaupdate/preupdatecheck.php +++ b/administrator/components/com_joomlaupdate/tmpl/joomlaupdate/preupdatecheck.php @@ -21,14 +21,14 @@ /** @var HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('core') ->useScript('com_joomlaupdate.default') ->useScript('bootstrap.popover') ->useScript('bootstrap.tab'); // Text::script doesn't have a sprintf equivalent so work around this -$this->document->addScriptOptions('nonCoreCriticalPlugins', $this->nonCoreCriticalPlugins); +$this->getDocument()->addScriptOptions('nonCoreCriticalPlugins', $this->nonCoreCriticalPlugins); // Push Joomla! Update client-side error messages Text::script('COM_JOOMLAUPDATE_VIEW_DEFAULT_POTENTIALLY_DANGEROUS_PLUGIN_CONFIRM_MESSAGE'); diff --git a/administrator/components/com_joomlaupdate/tmpl/joomlaupdate/reinstall.php b/administrator/components/com_joomlaupdate/tmpl/joomlaupdate/reinstall.php index 5e8e78c3f174f..8e402929e3680 100644 --- a/administrator/components/com_joomlaupdate/tmpl/joomlaupdate/reinstall.php +++ b/administrator/components/com_joomlaupdate/tmpl/joomlaupdate/reinstall.php @@ -17,7 +17,7 @@ /** @var \Joomla\Component\Joomlaupdate\Administrator\View\Joomlaupdate\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('core') ->useScript('com_joomlaupdate.default') ->useScript('bootstrap.popover'); diff --git a/administrator/components/com_joomlaupdate/tmpl/joomlaupdate/update.php b/administrator/components/com_joomlaupdate/tmpl/joomlaupdate/update.php index d644542c4e02d..d316daba2266f 100644 --- a/administrator/components/com_joomlaupdate/tmpl/joomlaupdate/update.php +++ b/administrator/components/com_joomlaupdate/tmpl/joomlaupdate/update.php @@ -17,7 +17,7 @@ /** @var \Joomla\Component\Joomlaupdate\Administrator\View\Joomlaupdate\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('core') ->useScript('com_joomlaupdate.default') ->useScript('bootstrap.popover'); diff --git a/administrator/components/com_joomlaupdate/tmpl/update/default.php b/administrator/components/com_joomlaupdate/tmpl/update/default.php index e741ccdddec68..898a647e62433 100644 --- a/administrator/components/com_joomlaupdate/tmpl/update/default.php +++ b/administrator/components/com_joomlaupdate/tmpl/update/default.php @@ -18,7 +18,7 @@ /** @var \Joomla\Component\Joomlaupdate\Administrator\View\Update\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('core') ->useScript('com_joomlaupdate.admin-update') ->useScript('bootstrap.modal'); @@ -47,7 +47,7 @@ $ajaxUrl = Uri::base() . 'components/com_joomlaupdate/extract.php'; $returnUrl = 'index.php?option=com_joomlaupdate&task=update.finalise&' . Factory::getSession()->getFormToken() . '=1'; -$this->document->addScriptOptions( +$this->getDocument()->addScriptOptions( 'joomlaupdate', [ 'password' => $password, diff --git a/administrator/components/com_joomlaupdate/tmpl/update/finaliseconfirm.php b/administrator/components/com_joomlaupdate/tmpl/update/finaliseconfirm.php index 3c9454ad97bc1..ed13812241f7a 100644 --- a/administrator/components/com_joomlaupdate/tmpl/update/finaliseconfirm.php +++ b/administrator/components/com_joomlaupdate/tmpl/update/finaliseconfirm.php @@ -18,7 +18,7 @@ /** @var \Joomla\Component\Joomlaupdate\Administrator\View\Update\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive'); ?> diff --git a/administrator/components/com_joomlaupdate/tmpl/upload/captive.php b/administrator/components/com_joomlaupdate/tmpl/upload/captive.php index f5d4d61aa21b1..76b10f0c16da6 100644 --- a/administrator/components/com_joomlaupdate/tmpl/upload/captive.php +++ b/administrator/components/com_joomlaupdate/tmpl/upload/captive.php @@ -18,7 +18,7 @@ /** @var \Joomla\Component\Joomlaupdate\Administrator\View\Upload\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('core') ->useScript('jquery') ->useScript('form.validate') diff --git a/administrator/components/com_joomlaupdate/tmpl/upload/default.php b/administrator/components/com_joomlaupdate/tmpl/upload/default.php index a329b73a13acc..1626462d8d430 100644 --- a/administrator/components/com_joomlaupdate/tmpl/upload/default.php +++ b/administrator/components/com_joomlaupdate/tmpl/upload/default.php @@ -19,7 +19,7 @@ /** @var HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('core') ->useScript('com_joomlaupdate.default') ->useScript('bootstrap.popover'); diff --git a/administrator/components/com_languages/src/Model/LanguagesModel.php b/administrator/components/com_languages/src/Model/LanguagesModel.php index 43949a3d2f2da..ea494ed7d5a20 100644 --- a/administrator/components/com_languages/src/Model/LanguagesModel.php +++ b/administrator/components/com_languages/src/Model/LanguagesModel.php @@ -14,8 +14,8 @@ use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; use Joomla\CMS\Table\Table; -use Joomla\Database\DatabaseQuery; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -105,7 +105,7 @@ protected function getStoreId($id = '') /** * Method to build an SQL query to load the list data. * - * @return DatabaseQuery An SQL query + * @return QueryInterface An SQL query * * @since 1.6 */ diff --git a/administrator/components/com_languages/tmpl/installed/default.php b/administrator/components/com_languages/tmpl/installed/default.php index 48186ea75f35c..02e4a83886341 100644 --- a/administrator/components/com_languages/tmpl/installed/default.php +++ b/administrator/components/com_languages/tmpl/installed/default.php @@ -20,7 +20,7 @@ /** @var \Joomla\Component\Languages\Administrator\View\Installed\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns'); $user = $this->getCurrentUser(); diff --git a/administrator/components/com_languages/tmpl/language/edit.php b/administrator/components/com_languages/tmpl/language/edit.php index 0c0e5661d2502..3288093d4fb89 100644 --- a/administrator/components/com_languages/tmpl/language/edit.php +++ b/administrator/components/com_languages/tmpl/language/edit.php @@ -17,7 +17,7 @@ /** @var \Joomla\Component\Languages\Administrator\View\Language\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate') ->useScript('com_languages.admin-language-edit-change-flag'); diff --git a/administrator/components/com_languages/tmpl/languages/default.php b/administrator/components/com_languages/tmpl/languages/default.php index f095c30cee57f..b9930320a5626 100644 --- a/administrator/components/com_languages/tmpl/languages/default.php +++ b/administrator/components/com_languages/tmpl/languages/default.php @@ -19,7 +19,7 @@ /** @var \Joomla\Component\Languages\Administrator\View\Languages\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect'); diff --git a/administrator/components/com_languages/tmpl/override/edit.php b/administrator/components/com_languages/tmpl/override/edit.php index cea4d169c51e5..6df1ece2e9778 100644 --- a/administrator/components/com_languages/tmpl/override/edit.php +++ b/administrator/components/com_languages/tmpl/override/edit.php @@ -19,7 +19,7 @@ $expired = ($this->state->get('cache_expired') == 1 ) ? '1' : ''; /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate') ->usePreset('com_languages.overrider') diff --git a/administrator/components/com_languages/tmpl/overrides/default.php b/administrator/components/com_languages/tmpl/overrides/default.php index cfba4e38e1d64..66b295bd8c4c3 100644 --- a/administrator/components/com_languages/tmpl/overrides/default.php +++ b/administrator/components/com_languages/tmpl/overrides/default.php @@ -19,7 +19,7 @@ /** @var \Joomla\Component\Languages\Administrator\View\Overrides\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect'); diff --git a/administrator/components/com_mails/src/Model/TemplateModel.php b/administrator/components/com_mails/src/Model/TemplateModel.php index 3009be1f6c000..512edd3829f53 100644 --- a/administrator/components/com_mails/src/Model/TemplateModel.php +++ b/administrator/components/com_mails/src/Model/TemplateModel.php @@ -69,7 +69,7 @@ protected function canDelete($record) * @param array $data An optional array of data for the form to interrogate. * @param boolean $loadData True if the form is to load its own data (default case), false if not. * - * @return \Joomla\CMS\Form\Form|bool A JForm object on success, false on failure + * @return \Joomla\CMS\Form\Form|bool A Form object on success, false on failure * * @since 4.0.0 */ diff --git a/administrator/components/com_mails/src/Model/TemplatesModel.php b/administrator/components/com_mails/src/Model/TemplatesModel.php index 45173e78fbd85..eda12f4de957f 100644 --- a/administrator/components/com_mails/src/Model/TemplatesModel.php +++ b/administrator/components/com_mails/src/Model/TemplatesModel.php @@ -13,7 +13,7 @@ use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Language\LanguageHelper; use Joomla\CMS\MVC\Model\ListModel; -use Joomla\Database\DatabaseQuery; +use Joomla\Database\QueryInterface; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -109,7 +109,7 @@ public function getItems() /** * Build an SQL query to load the list data. * - * @return DatabaseQuery + * @return QueryInterface * * @since 4.0.0 */ diff --git a/administrator/components/com_mails/tmpl/template/edit.php b/administrator/components/com_mails/tmpl/template/edit.php index 5693ef8e66ad3..5cd1385fb84a5 100644 --- a/administrator/components/com_mails/tmpl/template/edit.php +++ b/administrator/components/com_mails/tmpl/template/edit.php @@ -23,7 +23,7 @@ $app = Factory::getApplication(); /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate') ->useScript('com_mails.admin-email-template-edit'); @@ -34,7 +34,7 @@ list($component, $sub_id) = explode('.', $this->master->template_id, 2); $sub_id = str_replace('.', '_', $sub_id); -$this->document->addScriptOptions('com_mails', ['templateData' => $this->templateData]); +$this->getDocument()->addScriptOptions('com_mails', ['templateData' => $this->templateData]); ?> diff --git a/administrator/components/com_mails/tmpl/templates/default.php b/administrator/components/com_mails/tmpl/templates/default.php index daa96aa87bf08..86690895985b8 100644 --- a/administrator/components/com_mails/tmpl/templates/default.php +++ b/administrator/components/com_mails/tmpl/templates/default.php @@ -20,7 +20,7 @@ HTMLHelper::_('bootstrap.dropdown', '.dropdown-toggle'); /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns'); $listOrder = $this->escape($this->state->get('list.ordering')); diff --git a/administrator/components/com_media/resources/scripts/components/browser/actionItems/actionItemsContainer.vue b/administrator/components/com_media/resources/scripts/components/browser/actionItems/actionItemsContainer.vue index 50cff7ab76558..1f46514e6cef5 100644 --- a/administrator/components/com_media/resources/scripts/components/browser/actionItems/actionItemsContainer.vue +++ b/administrator/components/com_media/resources/scripts/components/browser/actionItems/actionItemsContainer.vue @@ -188,6 +188,7 @@ export default { return api.canDelete && (typeof this.item.canDelete !== 'undefined' ? this.item.canDelete : true); }, canOpenEditView() { + // @TODO pass the array of allowed to edit files from PHP return ['jpg', 'jpeg', 'png'].includes(this.item.extension.toLowerCase()); }, }, diff --git a/administrator/components/com_media/resources/scripts/components/browser/table/row.vue b/administrator/components/com_media/resources/scripts/components/browser/table/row.vue index f8b38a6c4421b..32d1c68157f0c 100644 --- a/administrator/components/com_media/resources/scripts/components/browser/table/row.vue +++ b/administrator/components/com_media/resources/scripts/components/browser/table/row.vue @@ -113,7 +113,7 @@ export default { } // @todo remove the hardcoded extensions here - const extensionWithPreview = ['jpg', 'jpeg', 'png', 'gif', 'webp', 'mp4', 'mp3', 'pdf']; + const extensionWithPreview = ['jpg', 'jpeg', 'png', 'gif', 'webp', 'avif', 'mp4', 'mp3', 'pdf']; // Show preview if (this.item.extension diff --git a/administrator/components/com_media/src/Model/ApiModel.php b/administrator/components/com_media/src/Model/ApiModel.php index 6d4eef3ee3f35..0adea37276b5d 100644 --- a/administrator/components/com_media/src/Model/ApiModel.php +++ b/administrator/components/com_media/src/Model/ApiModel.php @@ -489,7 +489,7 @@ function ($mediaType) use (&$types) { ',', ComponentHelper::getParams('com_media')->get( 'image_extensions', - 'bmp,gif,jpg,jpeg,png,webp' + 'bmp,gif,jpg,jpeg,png,webp,avif' ) ) ); diff --git a/administrator/components/com_media/tmpl/file/default.php b/administrator/components/com_media/tmpl/file/default.php index fd3dc6accd914..a1807a44fc4d6 100644 --- a/administrator/components/com_media/tmpl/file/default.php +++ b/administrator/components/com_media/tmpl/file/default.php @@ -20,7 +20,7 @@ /** @var \Joomla\Component\Media\Administrator\View\File\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate') ->useStyle('com_media.mediamanager'); @@ -45,7 +45,7 @@ 'csrfToken' => Session::getFormToken(), 'uploadPath' => $this->file->path, 'editViewUrl' => Uri::base() . 'index.php?option=com_media&view=file' . ($tmpl ? '&tmpl=' . $tmpl : '') . '&mediatypes=' . $mediaTypes, - 'imagesExtensions' => array_map('trim', explode(',', $params->get('image_extensions', 'bmp,gif,jpg,jpeg,png,webp'))), + 'imagesExtensions' => array_map('trim', explode(',', $params->get('image_extensions', 'bmp,gif,jpg,jpeg,png,webp,avif'))), 'audioExtensions' => array_map('trim', explode(',', $params->get('audio_extensions', 'mp3,m4a,mp4a,ogg'))), 'videoExtensions' => array_map('trim', explode(',', $params->get('video_extensions', 'mp4,mp4v,mpeg,mov,webm'))), 'documentExtensions' => array_map('trim', explode(',', $params->get('doc_extensions', 'doc,odg,odp,ods,odt,pdf,ppt,txt,xcf,xls,csv'))), @@ -53,13 +53,13 @@ 'contents' => $this->file->content, ]; -$this->document->addScriptOptions('com_media', $config); +$this->getDocument()->addScriptOptions('com_media', $config); $this->useCoreUI = true; ?>
- document->getToolbar('toolbar')->render(); ?> + getDocument()->getToolbar('toolbar')->render(); ?>
@@ -72,4 +72,4 @@
- + diff --git a/administrator/components/com_media/tmpl/media/default.php b/administrator/components/com_media/tmpl/media/default.php index 1fbfb41333e94..b1785db7fac56 100644 --- a/administrator/components/com_media/tmpl/media/default.php +++ b/administrator/components/com_media/tmpl/media/default.php @@ -23,7 +23,7 @@ $user = $app->getIdentity(); /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useStyle('com_media.mediamanager') ->useScript('com_media.mediamanager'); @@ -43,7 +43,7 @@ 'fileBaseUrl' => Uri::root() . $params->get('file_path', 'images'), 'fileBaseRelativeUrl' => $params->get('file_path', 'images'), 'editViewUrl' => Uri::base() . 'index.php?option=com_media&view=file' . ($tmpl ? '&tmpl=' . $tmpl : '') . $mediaTypes, - 'imagesExtensions' => array_map('trim', explode(',', $params->get('image_extensions', 'bmp,gif,jpg,jpeg,png,webp'))), + 'imagesExtensions' => array_map('trim', explode(',', $params->get('image_extensions', 'bmp,gif,jpg,jpeg,png,webp,avif'))), 'audioExtensions' => array_map('trim', explode(',', $params->get('audio_extensions', 'mp3,m4a,mp4a,ogg'))), 'videoExtensions' => array_map('trim', explode(',', $params->get('video_extensions', 'mp4,mp4v,mpeg,mov,webm'))), 'documentExtensions' => array_map('trim', explode(',', $params->get('doc_extensions', 'doc,odg,odp,ods,odt,pdf,ppt,txt,xcf,xls,csv'))), @@ -55,11 +55,11 @@ 'canEdit' => $user->authorise('core.edit', 'com_media'), 'canDelete' => $user->authorise('core.delete', 'com_media'), ]; -$this->document->addScriptOptions('com_media', $config); +$this->getDocument()->addScriptOptions('com_media', $config); ?>
- document->getToolbar('toolbar')->render(); ?> + getDocument()->getToolbar('toolbar')->render(); ?>
diff --git a/administrator/components/com_menus/src/Field/MenuItemByTypeField.php b/administrator/components/com_menus/src/Field/MenuItemByTypeField.php index 0c85416cacd4b..573b2829e16a8 100644 --- a/administrator/components/com_menus/src/Field/MenuItemByTypeField.php +++ b/administrator/components/com_menus/src/Field/MenuItemByTypeField.php @@ -132,7 +132,7 @@ public function __set($name, $value) } /** - * Method to attach a JForm object to the field. + * Method to attach a Form object to the field. * * @param \SimpleXMLElement $element The SimpleXMLElement object representing the `` tag for the form field object. * @param mixed $value The form field value to validate. diff --git a/administrator/components/com_menus/src/Field/Modal/MenuField.php b/administrator/components/com_menus/src/Field/Modal/MenuField.php index d383bbf90727e..fe90c5e32dad7 100644 --- a/administrator/components/com_menus/src/Field/Modal/MenuField.php +++ b/administrator/components/com_menus/src/Field/Modal/MenuField.php @@ -130,7 +130,7 @@ public function __set($name, $value) } /** - * Method to attach a JForm object to the field. + * Method to attach a Form object to the field. * * @param \SimpleXMLElement $element The SimpleXMLElement object representing the `` tag for the form field object. * @param mixed $value The form field value to validate. diff --git a/administrator/components/com_menus/src/Helper/MenusHelper.php b/administrator/components/com_menus/src/Helper/MenusHelper.php index 5accb07200ac1..e84e4f1ea9654 100644 --- a/administrator/components/com_menus/src/Helper/MenusHelper.php +++ b/administrator/components/com_menus/src/Helper/MenusHelper.php @@ -891,6 +891,14 @@ protected static function parseXmlNode($node, $replace = []) $params->set('menu-quicktask-permission', (string) $node['quicktask-permission']); } + if ($item->ajaxbadge) { + $params->set('ajax-badge', $item->ajaxbadge); + } + + if ($item->dashboard) { + $params->set('dashboard', $item->dashboard); + } + // Translate attributes for iterator values foreach ($replace as $var => $val) { $item->title = str_replace("{sql:$var}", $val, $item->title); diff --git a/administrator/components/com_menus/src/Model/ItemsModel.php b/administrator/components/com_menus/src/Model/ItemsModel.php index b55ee807863ac..172fb75729d25 100644 --- a/administrator/components/com_menus/src/Model/ItemsModel.php +++ b/administrator/components/com_menus/src/Model/ItemsModel.php @@ -19,6 +19,7 @@ use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -231,7 +232,7 @@ protected function getStoreId($id = '') /** * Builds an SQL query to load the list data. * - * @return \Joomla\Database\DatabaseQuery A query object. + * @return QueryInterface A query object. * * @since 1.6 */ diff --git a/administrator/components/com_menus/src/Model/MenusModel.php b/administrator/components/com_menus/src/Model/MenusModel.php index 16a538a34bcdc..41d9098d37af8 100644 --- a/administrator/components/com_menus/src/Model/MenusModel.php +++ b/administrator/components/com_menus/src/Model/MenusModel.php @@ -14,8 +14,8 @@ use Joomla\CMS\Language\LanguageHelper; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; -use Joomla\Database\DatabaseQuery; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -145,7 +145,7 @@ public function getItems() /** * Method to build an SQL query to load the list data. * - * @return DatabaseQuery An SQL query + * @return QueryInterface An SQL query * * @since 1.6 */ diff --git a/administrator/components/com_menus/src/View/Item/HtmlView.php b/administrator/components/com_menus/src/View/Item/HtmlView.php index 028f73b052b1f..21208cab7ab81 100644 --- a/administrator/components/com_menus/src/View/Item/HtmlView.php +++ b/administrator/components/com_menus/src/View/Item/HtmlView.php @@ -141,7 +141,7 @@ protected function addToolbar() $user = $this->getCurrentUser(); $isNew = ($this->item->id == 0); - $checkedOut = !(\is_null($this->item->checked_out) || $this->item->checked_out == $user->get('id')); + $checkedOut = !(\is_null($this->item->checked_out) || $this->item->checked_out == $user->id); $canDo = $this->canDo; $clientId = $this->state->get('item.client_id', 0); $toolbar = Toolbar::getInstance(); @@ -229,7 +229,7 @@ protected function addModalToolbar() { $user = $this->getCurrentUser(); $isNew = ($this->item->id == 0); - $checkedOut = !(\is_null($this->item->checked_out) || $this->item->checked_out == $user->get('id')); + $checkedOut = !(\is_null($this->item->checked_out) || $this->item->checked_out == $user->id); $canDo = $this->canDo; $toolbar = Toolbar::getInstance(); diff --git a/administrator/components/com_menus/src/View/Menu/XmlView.php b/administrator/components/com_menus/src/View/Menu/XmlView.php index 833330cd36868..147531c41657d 100644 --- a/administrator/components/com_menus/src/View/Menu/XmlView.php +++ b/administrator/components/com_menus/src/View/Menu/XmlView.php @@ -69,7 +69,7 @@ public function display($tpl = null) return; } - $this->items = $root->getChildren(true); + $this->items = $root->getChildren(); $xml = new \SimpleXMLElement('addChild('params', htmlentities((string) $item->getParams(), ENT_XML1)); } - if (isset($item->submenu)) { - foreach ($item->submenu as $sub) { + if ($item->hasChildren()) { + foreach ($item->getChildren() as $sub) { $this->addXmlChild($node, $sub); } } diff --git a/administrator/components/com_menus/tmpl/item/edit.php b/administrator/components/com_menus/tmpl/item/edit.php index 353b212586e84..b37dbe9f0787e 100644 --- a/administrator/components/com_menus/tmpl/item/edit.php +++ b/administrator/components/com_menus/tmpl/item/edit.php @@ -25,10 +25,10 @@ Text::script('JGLOBAL_VALIDATION_FORM_FAILED'); Text::script('JGLOBAL_ROOT_PARENT'); -$this->document->addScriptOptions('menu-item', ['itemId' => (int) $this->item->id]); +$this->getDocument()->addScriptOptions('menu-item', ['itemId' => (int) $this->item->id]); /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate') ->useScript('com_menus.admin-item-edit'); diff --git a/administrator/components/com_menus/tmpl/item/edit_container.php b/administrator/components/com_menus/tmpl/item/edit_container.php index 0d54be3df71b7..05ed03830327c 100644 --- a/administrator/components/com_menus/tmpl/item/edit_container.php +++ b/administrator/components/com_menus/tmpl/item/edit_container.php @@ -20,7 +20,7 @@ $menuLinks = MenusHelper::getMenuLinks('main'); /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('joomla.treeselectmenu') ->useStyle('com_menus.admin-item-edit-container') ->useScript('com_menus.admin-item-edit-container'); diff --git a/administrator/components/com_menus/tmpl/item/edit_modules.php b/administrator/components/com_menus/tmpl/item/edit_modules.php index aff598b16a0eb..d854a11b122c7 100644 --- a/administrator/components/com_menus/tmpl/item/edit_modules.php +++ b/administrator/components/com_menus/tmpl/item/edit_modules.php @@ -13,17 +13,17 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\Layout\LayoutHelper; use Joomla\CMS\Router\Route; +use Joomla\Component\Menus\Administrator\View\Item\HtmlView; -/** @var \Joomla\Component\Menus\Administrator\View\Item\HtmlView $this */ - +/** @var HtmlView $this */ foreach ($this->levels as $key => $value) { $allLevels[$value->id] = $value->title; } -$this->document->addScriptOptions('menus-edit-modules', ['viewLevels' => $allLevels, 'itemId' => (int) $this->item->id]); +$this->getDocument()->addScriptOptions('menus-edit-modules', ['viewLevels' => $allLevels, 'itemId' => (int) $this->item->id]); /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('com_menus.admin-item-edit-modules') ->useScript('joomla.dialog-autocreate'); diff --git a/administrator/components/com_menus/tmpl/item/modal.php b/administrator/components/com_menus/tmpl/item/modal.php index 91a77916d4071..224a84177345a 100644 --- a/administrator/components/com_menus/tmpl/item/modal.php +++ b/administrator/components/com_menus/tmpl/item/modal.php @@ -13,7 +13,7 @@ /** @var \Joomla\Component\Menus\Administrator\View\Item\HtmlView $this */ ?>
- document->getToolbar('toolbar')->render(); ?> + getDocument()->getToolbar('toolbar')->render(); ?>
setLayout('edit'); ?> diff --git a/administrator/components/com_menus/tmpl/item/modalreturn.php b/administrator/components/com_menus/tmpl/item/modalreturn.php index b3cbe7817dd2b..187305cb02d71 100644 --- a/administrator/components/com_menus/tmpl/item/modalreturn.php +++ b/administrator/components/com_menus/tmpl/item/modalreturn.php @@ -25,11 +25,11 @@ // Add Content select script /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('modal-content-select'); // The data for Content select script -$this->document->addScriptOptions('content-select-on-load', $data, false); +$this->getDocument()->addScriptOptions('content-select-on-load', $data, false); ?> diff --git a/administrator/components/com_menus/tmpl/items/default.php b/administrator/components/com_menus/tmpl/items/default.php index bb7a075f2f6ae..f2b5971bd021c 100644 --- a/administrator/components/com_menus/tmpl/items/default.php +++ b/administrator/components/com_menus/tmpl/items/default.php @@ -22,13 +22,13 @@ /** @var \Joomla\Component\Menus\Administrator\View\Items\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect'); $user = $this->getCurrentUser(); $app = Factory::getApplication(); -$userId = $user->get('id'); +$userId = $user->id; $listOrder = $this->escape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); $ordering = ($listOrder == 'a.lft'); @@ -109,7 +109,7 @@ $orderkey = array_search($item->id, $this->ordering[$item->parent_id]); $canCreate = $user->authorise('core.create', 'com_menus.menu.' . $item->menutype_id); $canEdit = $user->authorise('core.edit', 'com_menus.menu.' . $item->menutype_id); - $canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out == $user->get('id') || is_null($item->checked_out); + $canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out == $user->id || is_null($item->checked_out); $canChange = $user->authorise('core.edit.state', 'com_menus.menu.' . $item->menutype_id) && $canCheckin; // Get the parents of item for sorting diff --git a/administrator/components/com_menus/tmpl/items/default_batch_body.php b/administrator/components/com_menus/tmpl/items/default_batch_body.php index 229931615f9d3..71f9df278611b 100644 --- a/administrator/components/com_menus/tmpl/items/default_batch_body.php +++ b/administrator/components/com_menus/tmpl/items/default_batch_body.php @@ -28,7 +28,7 @@ if ($clientId == 1) { /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ - $wa = $this->document->getWebAssetManager(); + $wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('com_menus.batch-body'); $wa->useScript('joomla.batch-copymove'); } diff --git a/administrator/components/com_menus/tmpl/items/modal.php b/administrator/components/com_menus/tmpl/items/modal.php index 70cae7c6e3228..62ade8a302d58 100644 --- a/administrator/components/com_menus/tmpl/items/modal.php +++ b/administrator/components/com_menus/tmpl/items/modal.php @@ -27,7 +27,7 @@ } /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('com_menus.admin-items-modal')->useScript('modal-content-select'); // @todo: Use of Function and Editor is deprecated and should be removed in 6.0. It stays only for backward compatibility. @@ -40,7 +40,7 @@ if (!empty($editor)) { // This view is used also in com_menus. Load the xtd script only if the editor is set! - $this->document->addScriptOptions('xtd-menus', ['editor' => $editor]); + $this->getDocument()->addScriptOptions('xtd-menus', ['editor' => $editor]); $onclick = "jSelectMenuItem"; $link = 'index.php?option=com_menus&view=items&layout=modal&tmpl=component&editor=' . $editor . '&' . Session::getFormToken() . '=1&function=' . $function; } diff --git a/administrator/components/com_menus/tmpl/menu/edit.php b/administrator/components/com_menus/tmpl/menu/edit.php index 85cc6ddaad905..c689ed4451801 100644 --- a/administrator/components/com_menus/tmpl/menu/edit.php +++ b/administrator/components/com_menus/tmpl/menu/edit.php @@ -18,7 +18,7 @@ /** @var \Joomla\Component\Menus\Administrator\View\Menu\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('core') ->useScript('keepalive') ->useScript('form.validate'); diff --git a/administrator/components/com_menus/tmpl/menus/default.php b/administrator/components/com_menus/tmpl/menus/default.php index de22ecbcff54a..e39ba67c3d4c5 100644 --- a/administrator/components/com_menus/tmpl/menus/default.php +++ b/administrator/components/com_menus/tmpl/menus/default.php @@ -20,7 +20,7 @@ /** @var \Joomla\Component\Menus\Administrator\View\Menus\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect') ->useScript('com_menus.admin-menus') @@ -47,7 +47,7 @@ HTMLHelper::_('draggablelist.draggable'); } -$this->document->addScriptOptions('menus-default', ['items' => $itemIds]); +$this->getDocument()->addScriptOptions('menus-default', ['items' => $itemIds]); // Set up the modal options that will be used for module editor $popupOptionsEdit = [ diff --git a/administrator/components/com_menus/tmpl/menutypes/default.php b/administrator/components/com_menus/tmpl/menutypes/default.php index 525ede44dec0a..20802be4fee77 100644 --- a/administrator/components/com_menus/tmpl/menutypes/default.php +++ b/administrator/components/com_menus/tmpl/menutypes/default.php @@ -23,7 +23,7 @@ $tmpl = $input->getCmd('tmpl') ? '1' : ''; /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('com_menus.admin-item-modal'); if ($tmpl) { diff --git a/administrator/components/com_messages/src/Model/ConfigModel.php b/administrator/components/com_messages/src/Model/ConfigModel.php index 4b0d3ae9ebc66..692299e83bceb 100644 --- a/administrator/components/com_messages/src/Model/ConfigModel.php +++ b/administrator/components/com_messages/src/Model/ConfigModel.php @@ -43,7 +43,7 @@ protected function populateState() { $user = $this->getCurrentUser(); - $this->setState('user.id', $user->get('id')); + $this->setState('user.id', $user->id); // Load the parameters. $params = ComponentHelper::getParams('com_messages'); diff --git a/administrator/components/com_messages/src/Model/MessageModel.php b/administrator/components/com_messages/src/Model/MessageModel.php index 534a353cf4c8a..b4547ca06250e 100644 --- a/administrator/components/com_messages/src/Model/MessageModel.php +++ b/administrator/components/com_messages/src/Model/MessageModel.php @@ -69,7 +69,7 @@ protected function populateState() $input = Factory::getApplication()->getInput(); $user = $this->getCurrentUser(); - $this->setState('user.id', $user->get('id')); + $this->setState('user.id', $user->id); $messageId = (int) $input->getInt('message_id'); $this->setState('message.id', $messageId); @@ -300,7 +300,7 @@ public function save($data) // Assign empty values. if (empty($table->user_id_from)) { - $table->user_id_from = $this->getCurrentUser()->get('id'); + $table->user_id_from = $this->getCurrentUser()->id; } if ((int) $table->date_time == 0) { @@ -366,7 +366,7 @@ public function save($data) $app = Factory::getApplication(); $linkMode = $app->get('force_ssl', 0) >= 1 ? Route::TLS_FORCE : Route::TLS_IGNORE; $sitename = $app->get('sitename'); - $fromName = $fromUser->get('name'); + $fromName = $fromUser->name; $siteURL = Route::link( 'administrator', 'index.php?option=com_messages&view=message&message_id=' . $table->message_id, diff --git a/administrator/components/com_messages/src/Model/MessagesModel.php b/administrator/components/com_messages/src/Model/MessagesModel.php index 0d2494ce3ead9..7c214c82f9dec 100644 --- a/administrator/components/com_messages/src/Model/MessagesModel.php +++ b/administrator/components/com_messages/src/Model/MessagesModel.php @@ -14,6 +14,7 @@ use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -99,7 +100,7 @@ protected function getStoreId($id = '') /** * Build an SQL query to load the list data. * - * @return \Joomla\Database\DatabaseQuery + * @return QueryInterface * * @since 1.6 */ @@ -109,7 +110,7 @@ protected function getListQuery() $db = $this->getDatabase(); $query = $db->getQuery(true); $user = $this->getCurrentUser(); - $id = (int) $user->get('id'); + $id = (int) $user->id; // Select the required fields from the table. $query->select( diff --git a/administrator/components/com_messages/tmpl/config/default.php b/administrator/components/com_messages/tmpl/config/default.php index 350bd8fea815b..a366045716225 100644 --- a/administrator/components/com_messages/tmpl/config/default.php +++ b/administrator/components/com_messages/tmpl/config/default.php @@ -17,7 +17,7 @@ /** @var \Joomla\Component\Messages\Administrator\View\Config\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate'); ?> diff --git a/administrator/components/com_messages/tmpl/message/default.php b/administrator/components/com_messages/tmpl/message/default.php index 0bd7249090f09..9dd62b281b627 100644 --- a/administrator/components/com_messages/tmpl/message/default.php +++ b/administrator/components/com_messages/tmpl/message/default.php @@ -17,7 +17,7 @@ /** @var \Joomla\Component\Messages\Administrator\View\Message\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('core'); ?> diff --git a/administrator/components/com_messages/tmpl/message/edit.php b/administrator/components/com_messages/tmpl/message/edit.php index 33b0335f4ec32..ac0fe33e81b54 100644 --- a/administrator/components/com_messages/tmpl/message/edit.php +++ b/administrator/components/com_messages/tmpl/message/edit.php @@ -17,7 +17,7 @@ /** @var \Joomla\Component\Messages\Administrator\View\Message\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate'); diff --git a/administrator/components/com_messages/tmpl/messages/default.php b/administrator/components/com_messages/tmpl/messages/default.php index 3dd9fc1c5b449..f79eb7488bdd7 100644 --- a/administrator/components/com_messages/tmpl/messages/default.php +++ b/administrator/components/com_messages/tmpl/messages/default.php @@ -18,7 +18,7 @@ /** @var \Joomla\Component\Messages\Administrator\View\Messages\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('multiselect'); $user = $this->getCurrentUser(); diff --git a/administrator/components/com_messages/tmpl/messages/emptystate.php b/administrator/components/com_messages/tmpl/messages/emptystate.php index 1a81bdd7d8279..5b4eb77cbdf61 100644 --- a/administrator/components/com_messages/tmpl/messages/emptystate.php +++ b/administrator/components/com_messages/tmpl/messages/emptystate.php @@ -17,7 +17,7 @@ $displayData = [ 'textPrefix' => 'COM_MESSAGES', 'formURL' => 'index.php?option=com_messages&view=messages', - 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help40:Private_Messages', + 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:Private_Messages', 'icon' => 'icon-envelope inbox', ]; diff --git a/administrator/components/com_modules/src/Model/ModulesModel.php b/administrator/components/com_modules/src/Model/ModulesModel.php index 2e8751991f9fa..2eabe05b6d4c7 100644 --- a/administrator/components/com_modules/src/Model/ModulesModel.php +++ b/administrator/components/com_modules/src/Model/ModulesModel.php @@ -14,8 +14,8 @@ use Joomla\CMS\Factory; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Model\ListModel; -use Joomla\Database\DatabaseQuery; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; use Joomla\String\StringHelper; use Joomla\Utilities\ArrayHelper; @@ -161,9 +161,9 @@ protected function getStoreId($id = '') /** * Returns an object list * - * @param DatabaseQuery $query The query - * @param int $limitstart Offset - * @param int $limit The number of records + * @param QueryInterface $query The query + * @param int $limitstart Offset + * @param int $limit The number of records * * @return array */ @@ -252,7 +252,7 @@ protected function translate(&$items) /** * Build an SQL query to load the list data. * - * @return DatabaseQuery + * @return QueryInterface */ protected function getListQuery() { @@ -425,7 +425,7 @@ protected function getListQuery() /** * Manipulate the query to be used to evaluate if this is an Empty State to provide specific conditions for this extension. * - * @return DatabaseQuery + * @return QueryInterface * * @since 4.0.0 */ diff --git a/administrator/components/com_modules/src/Model/SelectModel.php b/administrator/components/com_modules/src/Model/SelectModel.php index 12f4ad72e3e9f..643ca24503046 100644 --- a/administrator/components/com_modules/src/Model/SelectModel.php +++ b/administrator/components/com_modules/src/Model/SelectModel.php @@ -16,6 +16,7 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Model\ListModel; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; use Joomla\Filesystem\Path; use Joomla\Utilities\ArrayHelper; @@ -83,7 +84,7 @@ protected function getStoreId($id = '') /** * Build an SQL query to load the list data. * - * @return \Joomla\Database\DatabaseQuery + * @return QueryInterface */ protected function getListQuery() { diff --git a/administrator/components/com_modules/src/View/Module/HtmlView.php b/administrator/components/com_modules/src/View/Module/HtmlView.php index 52c22cbe56b08..3b1c84d9924de 100644 --- a/administrator/components/com_modules/src/View/Module/HtmlView.php +++ b/administrator/components/com_modules/src/View/Module/HtmlView.php @@ -114,7 +114,7 @@ protected function addToolbar() $user = $this->getCurrentUser(); $isNew = ($this->item->id == 0); - $checkedOut = !(\is_null($this->item->checked_out) || $this->item->checked_out == $user->get('id')); + $checkedOut = !(\is_null($this->item->checked_out) || $this->item->checked_out == $user->id); $canDo = $this->canDo; $toolbar = Toolbar::getInstance(); diff --git a/administrator/components/com_modules/tmpl/module/edit.php b/administrator/components/com_modules/tmpl/module/edit.php index a51a1f02bd9de..45a819a54cfa9 100644 --- a/administrator/components/com_modules/tmpl/module/edit.php +++ b/administrator/components/com_modules/tmpl/module/edit.php @@ -37,10 +37,10 @@ Text::script('JALL'); Text::script('JTRASHED'); -$this->document->addScriptOptions('module-edit', ['itemId' => $this->item->id, 'state' => (int) $this->item->id == 0 ? 'Add' : 'Edit']); +$this->getDocument()->addScriptOptions('module-edit', ['itemId' => $this->item->id, 'state' => (int) $this->item->id == 0 ? 'Add' : 'Edit']); /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate'); diff --git a/administrator/components/com_modules/tmpl/module/edit_assignment.php b/administrator/components/com_modules/tmpl/module/edit_assignment.php index 072844cd50d28..9306590dde5d3 100644 --- a/administrator/components/com_modules/tmpl/module/edit_assignment.php +++ b/administrator/components/com_modules/tmpl/module/edit_assignment.php @@ -21,7 +21,7 @@ // Initialise related data. $menuTypes = MenusHelper::getMenuLinks(); -$this->document->getWebAssetManager() +$this->getDocument()->getWebAssetManager() ->useScript('joomla.treeselectmenu') ->useScript('com_modules.admin-module-edit-assignment'); diff --git a/administrator/components/com_modules/tmpl/module/modal.php b/administrator/components/com_modules/tmpl/module/modal.php index 64f53f778a725..4d9cad46253cf 100644 --- a/administrator/components/com_modules/tmpl/module/modal.php +++ b/administrator/components/com_modules/tmpl/module/modal.php @@ -11,9 +11,22 @@ defined('_JEXEC') or die; /** @var \Joomla\Component\Modules\Administrator\View\Module\HtmlView $this */ + +// A backward compatibility for bootstrap modals: hide toolbar +// @TODO: Remove in 6.0 +$this->getDocument()->getWebAssetManager()->addInlineScript(' +if (window.parent.Joomla.Modal) { + const modal = window.parent.Joomla.Modal.getCurrent(); + const toolbar = document.querySelector(".component .subhead") + if (modal && modal.nodeName !== "JOOMLA-DIALOG" && toolbar) { + toolbar.style.display = "none"; + console.warn("Update your modal for Module editing to use Joomla Dialog"); + } +} +', ['name' => 'inline.module-modal-fix'], ['type' => 'module']); ?>
- document->getToolbar('toolbar')->render(); ?> + getDocument()->getToolbar('toolbar')->render(); ?>
setLayout('edit'); ?> diff --git a/administrator/components/com_modules/tmpl/module/modalreturn.php b/administrator/components/com_modules/tmpl/module/modalreturn.php index 59c712c62d733..d7c2228aceb63 100644 --- a/administrator/components/com_modules/tmpl/module/modalreturn.php +++ b/administrator/components/com_modules/tmpl/module/modalreturn.php @@ -32,11 +32,11 @@ // Add Content select script /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('modal-content-select'); // The data for Content select script -$this->document->addScriptOptions('content-select-on-load', $data, false); +$this->getDocument()->addScriptOptions('content-select-on-load', $data, false); ?> diff --git a/administrator/components/com_modules/tmpl/modules/default.php b/administrator/components/com_modules/tmpl/modules/default.php index eb1ace44a31de..5928d7c24d6e3 100644 --- a/administrator/components/com_modules/tmpl/modules/default.php +++ b/administrator/components/com_modules/tmpl/modules/default.php @@ -21,7 +21,7 @@ /** @var \Joomla\Component\Modules\Administrator\View\Modules\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect'); @@ -95,7 +95,7 @@ $ordering = ($listOrder == 'a.ordering'); $canCreate = $user->authorise('core.create', 'com_modules'); $canEdit = $user->authorise('core.edit', 'com_modules.module.' . $item->id); - $canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out == $user->get('id') || is_null($item->checked_out); + $canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out == $user->id || is_null($item->checked_out); $canChange = $user->authorise('core.edit.state', 'com_modules.module.' . $item->id) && $canCheckin; ?> diff --git a/administrator/components/com_modules/tmpl/modules/default_batch_body.php b/administrator/components/com_modules/tmpl/modules/default_batch_body.php index bf9d34ba810a8..9174e50228baa 100644 --- a/administrator/components/com_modules/tmpl/modules/default_batch_body.php +++ b/administrator/components/com_modules/tmpl/modules/default_batch_body.php @@ -34,7 +34,7 @@ Text::script('JGLOBAL_SELECT_NO_RESULTS_MATCH'); Text::script('JGLOBAL_SELECT_PRESS_TO_SELECT'); -$this->document->getWebAssetManager() +$this->getDocument()->getWebAssetManager() ->usePreset('choicesjs') ->useScript('webcomponent.field-fancy-select') ->useScript('joomla.batch-copymove'); diff --git a/administrator/components/com_modules/tmpl/modules/modal.php b/administrator/components/com_modules/tmpl/modules/modal.php index 7b42fc5088d83..ec94112651a3e 100644 --- a/administrator/components/com_modules/tmpl/modules/modal.php +++ b/administrator/components/com_modules/tmpl/modules/modal.php @@ -24,7 +24,7 @@ } /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('com_modules.admin-modules-modal')->useScript('modal-content-select'); $listOrder = $this->escape($this->state->get('list.ordering')); diff --git a/administrator/components/com_modules/tmpl/select/default.php b/administrator/components/com_modules/tmpl/select/default.php index e668e7bdf5b30..8125ab6a06402 100644 --- a/administrator/components/com_modules/tmpl/select/default.php +++ b/administrator/components/com_modules/tmpl/select/default.php @@ -22,7 +22,7 @@ $function = $app->getInput()->getCmd('function'); /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('com_modules.admin-module-search'); if ($function) : diff --git a/administrator/components/com_newsfeeds/src/Model/NewsfeedModel.php b/administrator/components/com_newsfeeds/src/Model/NewsfeedModel.php index 5fccfccf5154c..b165d3134b4b2 100644 --- a/administrator/components/com_newsfeeds/src/Model/NewsfeedModel.php +++ b/administrator/components/com_newsfeeds/src/Model/NewsfeedModel.php @@ -320,7 +320,7 @@ protected function prepareTable($table) } else { // Set the values $table->modified = $date->toSql(); - $table->modified_by = $user->get('id'); + $table->modified_by = $user->id; } // Increment the content version number. diff --git a/administrator/components/com_newsfeeds/src/Model/NewsfeedsModel.php b/administrator/components/com_newsfeeds/src/Model/NewsfeedsModel.php index 255df9768b804..cee290f6ac3c9 100644 --- a/administrator/components/com_newsfeeds/src/Model/NewsfeedsModel.php +++ b/administrator/components/com_newsfeeds/src/Model/NewsfeedsModel.php @@ -16,6 +16,7 @@ use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; use Joomla\Utilities\ArrayHelper; // phpcs:disable PSR1.Files.SideEffects @@ -140,7 +141,7 @@ protected function getStoreId($id = '') /** * Build an SQL query to load the list data. * - * @return \Joomla\Database\DatabaseQuery + * @return QueryInterface */ protected function getListQuery() { diff --git a/administrator/components/com_newsfeeds/src/Table/NewsfeedTable.php b/administrator/components/com_newsfeeds/src/Table/NewsfeedTable.php index 327afc27bbd08..6207b270a5efa 100644 --- a/administrator/components/com_newsfeeds/src/Table/NewsfeedTable.php +++ b/administrator/components/com_newsfeeds/src/Table/NewsfeedTable.php @@ -150,12 +150,12 @@ public function store($updateNulls = true) if ($this->id) { // Existing item - $this->modified_by = $user->get('id'); + $this->modified_by = $user->id; $this->modified = $date->toSql(); } else { // Field created_by can be set by the user, so we don't touch it if it's set. if (empty($this->created_by)) { - $this->created_by = $user->get('id'); + $this->created_by = $user->id; } if (!(int) $this->modified) { diff --git a/administrator/components/com_newsfeeds/src/View/Newsfeed/HtmlView.php b/administrator/components/com_newsfeeds/src/View/Newsfeed/HtmlView.php index 8f35fe1752b2b..f1d19c7e52389 100644 --- a/administrator/components/com_newsfeeds/src/View/Newsfeed/HtmlView.php +++ b/administrator/components/com_newsfeeds/src/View/Newsfeed/HtmlView.php @@ -119,7 +119,7 @@ protected function addToolbar() $user = $this->getCurrentUser(); $isNew = ($this->item->id == 0); - $checkedOut = !(\is_null($this->item->checked_out) || $this->item->checked_out == $user->get('id')); + $checkedOut = !(\is_null($this->item->checked_out) || $this->item->checked_out == $user->id); $toolbar = Toolbar::getInstance(); // Since we don't track these assets at the item level, use the category id. diff --git a/administrator/components/com_newsfeeds/tmpl/newsfeed/edit.php b/administrator/components/com_newsfeeds/tmpl/newsfeed/edit.php index a6e3252c6084d..0122427456644 100644 --- a/administrator/components/com_newsfeeds/tmpl/newsfeed/edit.php +++ b/administrator/components/com_newsfeeds/tmpl/newsfeed/edit.php @@ -20,7 +20,7 @@ /** @var \Joomla\Component\Newsfeeds\Administrator\View\Newsfeed\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate'); diff --git a/administrator/components/com_newsfeeds/tmpl/newsfeed/modal.php b/administrator/components/com_newsfeeds/tmpl/newsfeed/modal.php index 9af43ab5542db..497af62fed381 100644 --- a/administrator/components/com_newsfeeds/tmpl/newsfeed/modal.php +++ b/administrator/components/com_newsfeeds/tmpl/newsfeed/modal.php @@ -13,7 +13,7 @@ /** @var \Joomla\Component\Newsfeeds\Administrator\View\Newsfeed\HtmlView $this */ ?>
- document->getToolbar('toolbar')->render(); ?> + getDocument()->getToolbar('toolbar')->render(); ?>
setLayout('edit'); ?> diff --git a/administrator/components/com_newsfeeds/tmpl/newsfeed/modalreturn.php b/administrator/components/com_newsfeeds/tmpl/newsfeed/modalreturn.php index 0f853a5991921..0a032dfd605b3 100644 --- a/administrator/components/com_newsfeeds/tmpl/newsfeed/modalreturn.php +++ b/administrator/components/com_newsfeeds/tmpl/newsfeed/modalreturn.php @@ -28,11 +28,11 @@ // Add Content select script /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('modal-content-select'); // The data for Content select script -$this->document->addScriptOptions('content-select-on-load', $data, false); +$this->getDocument()->addScriptOptions('content-select-on-load', $data, false); ?> diff --git a/administrator/components/com_newsfeeds/tmpl/newsfeeds/default.php b/administrator/components/com_newsfeeds/tmpl/newsfeeds/default.php index da436aca31c8d..5b1cf424eb896 100644 --- a/administrator/components/com_newsfeeds/tmpl/newsfeeds/default.php +++ b/administrator/components/com_newsfeeds/tmpl/newsfeeds/default.php @@ -21,7 +21,7 @@ /** @var \Joomla\Component\Newsfeeds\Administrator\View\Newsfeeds\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect'); @@ -98,7 +98,7 @@ $ordering = ($listOrder == 'a.ordering'); $canCreate = $user->authorise('core.create', 'com_newsfeeds.category.' . $item->catid); $canEdit = $user->authorise('core.edit', 'com_newsfeeds.category.' . $item->catid); - $canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out == $user->get('id') || is_null($item->checked_out); + $canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out == $user->id || is_null($item->checked_out); $canEditOwn = $user->authorise('core.edit.own', 'com_newsfeeds.category.' . $item->catid) && $item->created_by == $user->id; $canChange = $user->authorise('core.edit.state', 'com_newsfeeds.category.' . $item->catid) && $canCheckin; ?> diff --git a/administrator/components/com_newsfeeds/tmpl/newsfeeds/emptystate.php b/administrator/components/com_newsfeeds/tmpl/newsfeeds/emptystate.php index 473e37eebabf7..d9df032a63371 100644 --- a/administrator/components/com_newsfeeds/tmpl/newsfeeds/emptystate.php +++ b/administrator/components/com_newsfeeds/tmpl/newsfeeds/emptystate.php @@ -17,7 +17,7 @@ $displayData = [ 'textPrefix' => 'COM_NEWSFEEDS', 'formURL' => 'index.php?option=com_newsfeeds&view=newsfeeds', - 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help4.x:News_Feeds', + 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:News_Feeds', 'icon' => 'icon-rss newsfeeds', ]; diff --git a/administrator/components/com_newsfeeds/tmpl/newsfeeds/modal.php b/administrator/components/com_newsfeeds/tmpl/newsfeeds/modal.php index a375f0ab651bf..e053cab87129b 100644 --- a/administrator/components/com_newsfeeds/tmpl/newsfeeds/modal.php +++ b/administrator/components/com_newsfeeds/tmpl/newsfeeds/modal.php @@ -21,7 +21,7 @@ /** @var \Joomla\Component\Newsfeeds\Administrator\View\Newsfeeds\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('core') ->useScript('modal-content-select'); diff --git a/administrator/components/com_plugins/src/Model/PluginsModel.php b/administrator/components/com_plugins/src/Model/PluginsModel.php index 6631da01185c4..6e631b7f02080 100644 --- a/administrator/components/com_plugins/src/Model/PluginsModel.php +++ b/administrator/components/com_plugins/src/Model/PluginsModel.php @@ -15,8 +15,8 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; -use Joomla\Database\DatabaseQuery; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; use Joomla\Utilities\ArrayHelper; // phpcs:disable PSR1.Files.SideEffects @@ -108,9 +108,9 @@ protected function getStoreId($id = '') /** * Returns an object list. * - * @param DatabaseQuery|string $query A database query object. - * @param integer $limitstart Offset. - * @param integer $limit The number of records. + * @param QueryInterface|string $query A database query object. + * @param integer $limitstart Offset. + * @param integer $limit The number of records. * * @return object[] */ @@ -197,7 +197,7 @@ protected function translate(&$items) /** * Build an SQL query to load the list data. * - * @return DatabaseQuery + * @return QueryInterface */ protected function getListQuery() { diff --git a/administrator/components/com_plugins/src/View/Plugin/HtmlView.php b/administrator/components/com_plugins/src/View/Plugin/HtmlView.php index ccaf0fffc49f2..82daf7da25947 100644 --- a/administrator/components/com_plugins/src/View/Plugin/HtmlView.php +++ b/administrator/components/com_plugins/src/View/Plugin/HtmlView.php @@ -150,5 +150,7 @@ protected function addModalToolbar() } $toolbar->cancel('plugin.cancel'); + + $toolbar->inlinehelp(); } } diff --git a/administrator/components/com_plugins/tmpl/plugin/edit.php b/administrator/components/com_plugins/tmpl/plugin/edit.php index 5e0e8a39f560e..1939185cd5f6d 100644 --- a/administrator/components/com_plugins/tmpl/plugin/edit.php +++ b/administrator/components/com_plugins/tmpl/plugin/edit.php @@ -19,7 +19,7 @@ /** @var \Joomla\Component\Plugins\Administrator\View\Plugin\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate'); diff --git a/administrator/components/com_plugins/tmpl/plugin/modal.php b/administrator/components/com_plugins/tmpl/plugin/modal.php index 4b8c6695218a2..d44de9e1a8a77 100644 --- a/administrator/components/com_plugins/tmpl/plugin/modal.php +++ b/administrator/components/com_plugins/tmpl/plugin/modal.php @@ -11,9 +11,23 @@ defined('_JEXEC') or die; /** @var \Joomla\Component\Plugins\Administrator\View\Plugin\HtmlView $this */ + +// A backward compatibility for bootstrap modals: hide toolbar +// @TODO: Remove in 6.0 +$this->getDocument()->getWebAssetManager()->addInlineScript(' +if (window.parent.Joomla.Modal) { + const modal = window.parent.Joomla.Modal.getCurrent(); + const toolbar = document.querySelector(".component .subhead") + if (modal && modal.nodeName !== "JOOMLA-DIALOG" && toolbar) { + toolbar.style.display = "none"; + console.warn("Update your modal for Plugin editing to use Joomla Dialog"); + } +} +', ['name' => 'inline.plugin-modal-fix'], ['type' => 'module']); + ?>
- document->getToolbar('toolbar')->render(); ?> + getDocument()->getToolbar('toolbar')->render(); ?>
setLayout('edit'); ?> diff --git a/administrator/components/com_plugins/tmpl/plugin/modalreturn.php b/administrator/components/com_plugins/tmpl/plugin/modalreturn.php index 8d0cf224810a8..3a26b2943584b 100644 --- a/administrator/components/com_plugins/tmpl/plugin/modalreturn.php +++ b/administrator/components/com_plugins/tmpl/plugin/modalreturn.php @@ -28,11 +28,11 @@ // Add Content select script /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('modal-content-select'); // The data for Content select script -$this->document->addScriptOptions('content-select-on-load', $data, false); +$this->getDocument()->addScriptOptions('content-select-on-load', $data, false); ?> diff --git a/administrator/components/com_plugins/tmpl/plugins/default.php b/administrator/components/com_plugins/tmpl/plugins/default.php index a61cc2ac08e92..f56129c5dacd5 100644 --- a/administrator/components/com_plugins/tmpl/plugins/default.php +++ b/administrator/components/com_plugins/tmpl/plugins/default.php @@ -19,7 +19,7 @@ /** @var \Joomla\Component\Plugins\Administrator\View\Plugins\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect'); @@ -82,7 +82,7 @@ items as $i => $item) : $ordering = ($listOrder == 'ordering'); $canEdit = $user->authorise('core.edit', 'com_plugins'); - $canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out == $user->get('id') || is_null($item->checked_out); + $canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out == $user->id || is_null($item->checked_out); $canChange = $user->authorise('core.edit.state', 'com_plugins') && $canCheckin; ?> diff --git a/administrator/components/com_privacy/src/Model/ConsentsModel.php b/administrator/components/com_privacy/src/Model/ConsentsModel.php index 172124a7cc5fa..ce6bfd07469cf 100644 --- a/administrator/components/com_privacy/src/Model/ConsentsModel.php +++ b/administrator/components/com_privacy/src/Model/ConsentsModel.php @@ -12,9 +12,9 @@ use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\MVC\Model\ListModel; -use Joomla\Database\DatabaseQuery; use Joomla\Database\Exception\ExecutionFailureException; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; use Joomla\Utilities\ArrayHelper; // phpcs:disable PSR1.Files.SideEffects @@ -53,9 +53,9 @@ public function __construct($config = []) } /** - * Method to get a DatabaseQuery object for retrieving the data set from a database. + * Method to get a QueryInterface object for retrieving the data set from a database. * - * @return DatabaseQuery + * @return QueryInterface * * @since 3.9.0 */ diff --git a/administrator/components/com_privacy/src/Model/RequestsModel.php b/administrator/components/com_privacy/src/Model/RequestsModel.php index 25e5042ae66c0..3be25115c3a21 100644 --- a/administrator/components/com_privacy/src/Model/RequestsModel.php +++ b/administrator/components/com_privacy/src/Model/RequestsModel.php @@ -13,8 +13,8 @@ use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Factory; use Joomla\CMS\MVC\Model\ListModel; -use Joomla\Database\DatabaseQuery; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -50,9 +50,9 @@ public function __construct($config = []) } /** - * Method to get a DatabaseQuery object for retrieving the data set from a database. + * Method to get a QueryInterface object for retrieving the data set from a database. * - * @return DatabaseQuery + * @return QueryInterface * * @since 3.9.0 */ diff --git a/administrator/components/com_privacy/tmpl/consents/default.php b/administrator/components/com_privacy/tmpl/consents/default.php index 6a6c6f0adec21..723d7ccb15c18 100644 --- a/administrator/components/com_privacy/tmpl/consents/default.php +++ b/administrator/components/com_privacy/tmpl/consents/default.php @@ -20,7 +20,7 @@ /** @var \Joomla\Component\Privacy\Administrator\View\Consents\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect'); diff --git a/administrator/components/com_privacy/tmpl/consents/emptystate.php b/administrator/components/com_privacy/tmpl/consents/emptystate.php index a76086b554fc5..c9f60e961f396 100644 --- a/administrator/components/com_privacy/tmpl/consents/emptystate.php +++ b/administrator/components/com_privacy/tmpl/consents/emptystate.php @@ -15,7 +15,7 @@ $displayData = [ 'textPrefix' => 'COM_PRIVACY_CONSENTS', 'formURL' => 'index.php?option=com_privacy&view=consents', - 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help40:Privacy:_Consents', + 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:Privacy:_Consents', 'icon' => 'icon-lock', ]; diff --git a/administrator/components/com_privacy/tmpl/request/default.php b/administrator/components/com_privacy/tmpl/request/default.php index 92fd5d14939d0..b457b6cb125a1 100644 --- a/administrator/components/com_privacy/tmpl/request/default.php +++ b/administrator/components/com_privacy/tmpl/request/default.php @@ -18,7 +18,7 @@ /** @var \Joomla\Component\Privacy\Administrator\View\Request\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate'); ?> diff --git a/administrator/components/com_privacy/tmpl/request/edit.php b/administrator/components/com_privacy/tmpl/request/edit.php index 682e79313dd4d..c29e4134b394e 100644 --- a/administrator/components/com_privacy/tmpl/request/edit.php +++ b/administrator/components/com_privacy/tmpl/request/edit.php @@ -17,7 +17,7 @@ /** @var \Joomla\Component\Privacy\Administrator\View\Request\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate'); diff --git a/administrator/components/com_privacy/tmpl/requests/default.php b/administrator/components/com_privacy/tmpl/requests/default.php index 58b9fd357d035..08bd03afc9224 100644 --- a/administrator/components/com_privacy/tmpl/requests/default.php +++ b/administrator/components/com_privacy/tmpl/requests/default.php @@ -21,7 +21,7 @@ /** @var \Joomla\Component\Privacy\Administrator\View\Request\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect'); diff --git a/administrator/components/com_privacy/tmpl/requests/emptystate.php b/administrator/components/com_privacy/tmpl/requests/emptystate.php index 14eb521edf0ca..804dd09f628ef 100644 --- a/administrator/components/com_privacy/tmpl/requests/emptystate.php +++ b/administrator/components/com_privacy/tmpl/requests/emptystate.php @@ -16,7 +16,7 @@ $displayData = [ 'textPrefix' => 'COM_PRIVACY_REQUESTS', 'formURL' => 'index.php?option=com_privacy&view=requests', - 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help40:Privacy:_Information_Requests', + 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:Privacy:_Information_Requests', 'icon' => 'icon-lock', ]; diff --git a/administrator/components/com_redirect/config.xml b/administrator/components/com_redirect/config.xml index c8f3d2f638805..ef52d451120e5 100644 --- a/administrator/components/com_redirect/config.xml +++ b/administrator/components/com_redirect/config.xml @@ -10,6 +10,7 @@ name="mode" type="radio" label="COM_REDIRECT_MODE_LABEL" + description="COM_REDIRECT_MODE_DESC" layout="joomla.form.field.radio.switcher" default="0" > diff --git a/administrator/components/com_redirect/src/Model/LinkModel.php b/administrator/components/com_redirect/src/Model/LinkModel.php index d47f2b44e358f..c982c0bf1c462 100644 --- a/administrator/components/com_redirect/src/Model/LinkModel.php +++ b/administrator/components/com_redirect/src/Model/LinkModel.php @@ -58,7 +58,7 @@ protected function canDelete($record) * @param array $data Data for the form. * @param boolean $loadData True if the form is to load its own data (default case), false if not. * - * @return \Joomla\CMS\Form\Form A JForm object on success, false on failure + * @return \Joomla\CMS\Form\Form A Form object on success, false on failure * * @since 1.6 */ diff --git a/administrator/components/com_redirect/src/Model/LinksModel.php b/administrator/components/com_redirect/src/Model/LinksModel.php index 042e4314d84df..f54531c9c5eb0 100644 --- a/administrator/components/com_redirect/src/Model/LinksModel.php +++ b/administrator/components/com_redirect/src/Model/LinksModel.php @@ -15,6 +15,7 @@ use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -127,7 +128,7 @@ protected function getStoreId($id = '') /** * Build an SQL query to load the list data. * - * @return \Joomla\Database\DatabaseQuery + * @return QueryInterface * * @since 1.6 */ diff --git a/administrator/components/com_redirect/src/View/Links/HtmlView.php b/administrator/components/com_redirect/src/View/Links/HtmlView.php index 1ec882441f11c..9451397e18b12 100644 --- a/administrator/components/com_redirect/src/View/Links/HtmlView.php +++ b/administrator/components/com_redirect/src/View/Links/HtmlView.php @@ -136,7 +136,7 @@ public function display($tpl = null) throw new GenericDataException(implode("\n", $errors), 500); } - if (!(PluginHelper::isEnabled('system', 'redirect') && RedirectHelper::collectUrlsEnabled())) { + if (!PluginHelper::isEnabled('system', 'redirect') || !RedirectHelper::collectUrlsEnabled()) { $this->redirectPluginId = RedirectHelper::getRedirectPluginId(); } diff --git a/administrator/components/com_redirect/tmpl/link/edit.php b/administrator/components/com_redirect/tmpl/link/edit.php index d41c724590ddf..6cc9b7d0cb9f0 100644 --- a/administrator/components/com_redirect/tmpl/link/edit.php +++ b/administrator/components/com_redirect/tmpl/link/edit.php @@ -18,7 +18,7 @@ /** @var \Joomla\Component\Redirect\Administrator\View\Link\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate'); diff --git a/administrator/components/com_redirect/tmpl/links/default.php b/administrator/components/com_redirect/tmpl/links/default.php index e81aad36e1587..e88ba83285a09 100644 --- a/administrator/components/com_redirect/tmpl/links/default.php +++ b/administrator/components/com_redirect/tmpl/links/default.php @@ -14,6 +14,7 @@ use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Layout\LayoutHelper; +use Joomla\CMS\Plugin\PluginHelper; use Joomla\CMS\Router\Route; use Joomla\CMS\Uri\Uri; use Joomla\Component\Redirect\Administrator\Helper\RedirectHelper; @@ -21,7 +22,7 @@ /** @var \Joomla\Component\Redirect\Administrator\View\Link\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect') ->useScript('joomla.dialog-autocreate'); @@ -32,11 +33,12 @@ $listDirn = $this->escape($this->state->get('list.direction')); $collectUrlsEnabled = RedirectHelper::collectUrlsEnabled(); +$pluginEnabled = PluginHelper::isEnabled('system', 'redirect'); $redirectPluginId = $this->redirectPluginId; // Show messages about the enabled plugin and if the plugin should collect URLs -if (!$redirectPluginId && $collectUrlsEnabled) { - $app->enqueueMessage(Text::sprintf('COM_REDIRECT_COLLECT_URLS_ENABLED', Text::_('COM_REDIRECT_PLUGIN_ENABLED')), 'warning'); +if ($pluginEnabled && $collectUrlsEnabled) { + $app->enqueueMessage(Text::sprintf('COM_REDIRECT_COLLECT_URLS_ENABLED', Text::_('COM_REDIRECT_PLUGIN_ENABLED')), 'notice'); } else { $popupOptions = [ 'popupType' => 'iframe', @@ -56,10 +58,10 @@ ], ); - if (!$redirectPluginId && !$collectUrlsEnabled) { + if ($pluginEnabled && !$collectUrlsEnabled) { $app->enqueueMessage( Text::sprintf('COM_REDIRECT_COLLECT_MODAL_URLS_DISABLED', Text::_('COM_REDIRECT_PLUGIN_ENABLED'), $link), - 'warning' + 'notice' ); } else { $app->enqueueMessage(Text::sprintf('COM_REDIRECT_PLUGIN_MODAL_DISABLED', $link), 'error'); diff --git a/administrator/components/com_redirect/tmpl/links/emptystate.php b/administrator/components/com_redirect/tmpl/links/emptystate.php index f2e7ec1b4ace9..1a7016491b5e4 100644 --- a/administrator/components/com_redirect/tmpl/links/emptystate.php +++ b/administrator/components/com_redirect/tmpl/links/emptystate.php @@ -14,6 +14,7 @@ use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Layout\LayoutHelper; +use Joomla\CMS\Plugin\PluginHelper; use Joomla\CMS\Router\Route; use Joomla\Component\Redirect\Administrator\Helper\RedirectHelper; @@ -22,7 +23,7 @@ $displayData = [ 'textPrefix' => 'COM_REDIRECT', 'formURL' => 'index.php?option=com_redirect&view=links', - 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help4.x:Redirects:_Links', + 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:Redirects:_Links', 'icon' => 'icon-map-signs redirect', ]; @@ -42,14 +43,15 @@ } $collectUrlsEnabled = RedirectHelper::collectUrlsEnabled(); +$pluginEnabled = PluginHelper::isEnabled('system', 'redirect'); $redirectPluginId = $this->redirectPluginId; // Show messages about the enabled plugin and if the plugin should collect URLs -if (!$redirectPluginId && $collectUrlsEnabled) { - $app->enqueueMessage(Text::sprintf('COM_REDIRECT_COLLECT_URLS_ENABLED', Text::_('COM_REDIRECT_PLUGIN_ENABLED')), 'warning'); +if ($pluginEnabled && $collectUrlsEnabled) { + $app->enqueueMessage(Text::sprintf('COM_REDIRECT_COLLECT_URLS_ENABLED', Text::_('COM_REDIRECT_PLUGIN_ENABLED')), 'notice'); } else { /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ - $wa = $this->document->getWebAssetManager(); + $wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('joomla.dialog-autocreate'); $popupOptions = [ @@ -70,10 +72,10 @@ ], ); - if (!$redirectPluginId && !$collectUrlsEnabled) { + if ($pluginEnabled && !$collectUrlsEnabled) { $app->enqueueMessage( Text::sprintf('COM_REDIRECT_COLLECT_MODAL_URLS_DISABLED', Text::_('COM_REDIRECT_PLUGIN_ENABLED'), $link), - 'warning' + 'notice' ); } else { $app->enqueueMessage(Text::sprintf('COM_REDIRECT_PLUGIN_MODAL_DISABLED', $link), 'error'); diff --git a/administrator/components/com_scheduler/src/Helper/ExecRuleHelper.php b/administrator/components/com_scheduler/src/Helper/ExecRuleHelper.php index a163df8666576..8e67ed3804a75 100644 --- a/administrator/components/com_scheduler/src/Helper/ExecRuleHelper.php +++ b/administrator/components/com_scheduler/src/Helper/ExecRuleHelper.php @@ -104,7 +104,8 @@ public function nextExec(bool $string = true, bool $basisNow = false) case 'cron-expression': // @todo: testing $cExp = new CronExpression((string) $this->rule->exp); - $nextExec = $cExp->getNextRunDate('now', 0, false, 'UTC'); + $nextExec = $cExp->getNextRunDate('now', 0, false, Factory::getApplication()->get('offset', 'UTC')); + $nextExec->setTimezone(new \DateTimeZone('UTC')); $nextExec = $string ? $this->dateTimeToSql($nextExec) : $nextExec; break; default: diff --git a/administrator/components/com_scheduler/src/Model/TaskModel.php b/administrator/components/com_scheduler/src/Model/TaskModel.php index 5d89544d83c95..a48d5844c2963 100644 --- a/administrator/components/com_scheduler/src/Model/TaskModel.php +++ b/administrator/components/com_scheduler/src/Model/TaskModel.php @@ -153,7 +153,7 @@ public function __construct($config = [], MVCFactoryInterface $factory = null, F * @param array $data Data that needs to go into the form * @param bool $loadData Should the form load its data from the DB? * - * @return Form|boolean A JForm object on success, false on failure. + * @return Form|boolean A Form object on success, false on failure. * * @since 4.1.0 * @throws \Exception @@ -283,6 +283,18 @@ protected function loadFormData() $data->execution_rules['exec-day'] = gmdate('d'); $data->execution_rules['exec-time'] = gmdate('H:i'); } + + if ($data->next_execution) { + $data->next_execution = Factory::getDate($data->next_execution); + $data->next_execution->setTimezone(new \DateTimeZone($this->app->get('offset', 'UTC'))); + $data->next_execution = $data->next_execution->toSql(true); + } + + if ($data->last_execution) { + $data->last_execution = Factory::getDate($data->last_execution); + $data->last_execution->setTimezone(new \DateTimeZone($this->app->get('offset', 'UTC'))); + $data->last_execution = $data->last_execution->toSql(true); + } } // Let plugins manipulate the data diff --git a/administrator/components/com_scheduler/src/Model/TasksModel.php b/administrator/components/com_scheduler/src/Model/TasksModel.php index 2e80dc4b92e29..15d41bb5764ab 100644 --- a/administrator/components/com_scheduler/src/Model/TasksModel.php +++ b/administrator/components/com_scheduler/src/Model/TasksModel.php @@ -19,7 +19,6 @@ use Joomla\CMS\Object\CMSObject; use Joomla\Component\Scheduler\Administrator\Helper\SchedulerHelper; use Joomla\Component\Scheduler\Administrator\Task\TaskOption; -use Joomla\Database\DatabaseQuery; use Joomla\Database\ParameterType; use Joomla\Database\QueryInterface; use Joomla\Utilities\ArrayHelper; @@ -103,7 +102,7 @@ protected function getStoreId($id = ''): string /** * Method to create a query for a list of items. * - * @return DatabaseQuery + * @return QueryInterface * * @since 4.1.0 * @throws \Exception @@ -354,9 +353,9 @@ static function (TaskOption $taskOption): string { * Overloads the parent _getList() method. * Takes care of attaching TaskOption objects and sorting by type titles. * - * @param DatabaseQuery $query The database query to get the list with - * @param int $limitstart The list offset - * @param int $limit Number of list items to fetch + * @param QueryInterface $query The database query to get the list with + * @param int $limitstart The list offset + * @param int $limit Number of list items to fetch * * @return object[] * diff --git a/administrator/components/com_scheduler/src/Table/TaskTable.php b/administrator/components/com_scheduler/src/Table/TaskTable.php index 5a778142d7e22..65eb96cefc23c 100644 --- a/administrator/components/com_scheduler/src/Table/TaskTable.php +++ b/administrator/components/com_scheduler/src/Table/TaskTable.php @@ -45,7 +45,7 @@ class TaskTable extends Table implements CurrentUserInterface protected $_supportNullValue = true; /** - * Ensure params are json encoded by the bind method. + * Ensure params are json encoded in the bind method. * * @var string[] * @since 4.1.0 diff --git a/administrator/components/com_scheduler/tmpl/select/default.php b/administrator/components/com_scheduler/tmpl/select/default.php index 4705b91a6c6a2..10d4939f39a50 100644 --- a/administrator/components/com_scheduler/tmpl/select/default.php +++ b/administrator/components/com_scheduler/tmpl/select/default.php @@ -22,7 +22,7 @@ $app = $this->app; -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('com_scheduler.admin-view-select-task-search'); ?> diff --git a/administrator/components/com_scheduler/tmpl/task/edit.php b/administrator/components/com_scheduler/tmpl/task/edit.php index 2573261ce460c..8240b1996cb4e 100644 --- a/administrator/components/com_scheduler/tmpl/task/edit.php +++ b/administrator/components/com_scheduler/tmpl/task/edit.php @@ -21,7 +21,7 @@ /** @var HtmlView $this */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive'); $wa->useScript('form.validate'); diff --git a/administrator/components/com_scheduler/tmpl/tasks/default.php b/administrator/components/com_scheduler/tmpl/tasks/default.php index e2ecc581c7736..93d538ff17dfc 100644 --- a/administrator/components/com_scheduler/tmpl/tasks/default.php +++ b/administrator/components/com_scheduler/tmpl/tasks/default.php @@ -52,7 +52,7 @@ } $user = $app->getIdentity(); -$userId = $user->get('id'); +$userId = $user->id; $listOrder = $this->escape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); $saveOrder = $listOrder == 'a.ordering'; diff --git a/administrator/components/com_tags/src/Controller/TagController.php b/administrator/components/com_tags/src/Controller/TagController.php index 80a723fd79be0..741bc70a86b49 100644 --- a/administrator/components/com_tags/src/Controller/TagController.php +++ b/administrator/components/com_tags/src/Controller/TagController.php @@ -40,22 +40,6 @@ protected function allowAdd($data = []) return $this->app->getIdentity()->authorise('core.create', 'com_tags'); } - /** - * Method to check if you can edit a record. - * - * @param array $data An array of input data. - * @param string $key The name of the key for the primary key. - * - * @return boolean - * - * @since 3.1 - */ - protected function allowEdit($data = [], $key = 'id') - { - // Since there is no asset tracking and no categories, revert to the component permissions. - return parent::allowEdit($data, $key); - } - /** * Method to run batch operations. * diff --git a/administrator/components/com_tags/src/Model/TagsModel.php b/administrator/components/com_tags/src/Model/TagsModel.php index 409308621cf9e..0bf1de2f35521 100644 --- a/administrator/components/com_tags/src/Model/TagsModel.php +++ b/administrator/components/com_tags/src/Model/TagsModel.php @@ -15,8 +15,8 @@ use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; use Joomla\CMS\Tag\TagServiceInterface; -use Joomla\Database\DatabaseQuery; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -140,7 +140,7 @@ protected function getStoreId($id = '') /** * Method to create a query for a list of items. * - * @return DatabaseQuery + * @return QueryInterface * * @since 3.1 */ @@ -313,7 +313,7 @@ public function countItems(&$items, $extension) /** * Manipulate the query to be used to evaluate if this is an Empty State to provide specific conditions for this extension. * - * @return DatabaseQuery + * @return QueryInterface * * @since 4.0.0 */ diff --git a/administrator/components/com_tags/src/Table/TagTable.php b/administrator/components/com_tags/src/Table/TagTable.php index 76eaad2d792f9..8c45f4a957a51 100644 --- a/administrator/components/com_tags/src/Table/TagTable.php +++ b/administrator/components/com_tags/src/Table/TagTable.php @@ -174,7 +174,7 @@ public function store($updateNulls = true) if ($this->id) { // Existing item - $this->modified_user_id = $user->get('id'); + $this->modified_user_id = $user->id; $this->modified_time = $date->toSql(); } else { // New tag. A tag created and created_by field can be set by the user, @@ -184,7 +184,7 @@ public function store($updateNulls = true) } if (empty($this->created_user_id)) { - $this->created_user_id = $user->get('id'); + $this->created_user_id = $user->id; } if (!(int) $this->modified_time) { diff --git a/administrator/components/com_tags/src/View/Tag/HtmlView.php b/administrator/components/com_tags/src/View/Tag/HtmlView.php index 0db1c2d0ed746..40eedb510832c 100644 --- a/administrator/components/com_tags/src/View/Tag/HtmlView.php +++ b/administrator/components/com_tags/src/View/Tag/HtmlView.php @@ -102,7 +102,7 @@ protected function addToolbar() Factory::getApplication()->getInput()->set('hidemainmenu', true); $user = $this->getCurrentUser(); - $userId = $user->get('id'); + $userId = $user->id; $isNew = ($this->item->id == 0); $checkedOut = !(\is_null($this->item->checked_out) || $this->item->checked_out == $userId); $toolbar = Toolbar::getInstance(); diff --git a/administrator/components/com_tags/tmpl/tag/edit.php b/administrator/components/com_tags/tmpl/tag/edit.php index dcf272796b024..9b23c6acec63c 100644 --- a/administrator/components/com_tags/tmpl/tag/edit.php +++ b/administrator/components/com_tags/tmpl/tag/edit.php @@ -18,7 +18,7 @@ /** @var \Joomla\Component\Tags\Administrator\View\Tag\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate'); diff --git a/administrator/components/com_tags/tmpl/tags/default.php b/administrator/components/com_tags/tmpl/tags/default.php index 96610ee9def3d..a3b20bea037f1 100644 --- a/administrator/components/com_tags/tmpl/tags/default.php +++ b/administrator/components/com_tags/tmpl/tags/default.php @@ -22,13 +22,13 @@ /** @var \Joomla\Component\Tags\Administrator\View\Tags\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect'); $app = Factory::getApplication(); $user = $this->getCurrentUser(); -$userId = $user->get('id'); +$userId = $user->id; $listOrder = $this->escape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); $saveOrder = ($listOrder == 'a.lft' && strtolower($listDirn) == 'asc'); @@ -136,7 +136,7 @@ $orderkey = array_search($item->id, $this->ordering[$item->parent_id]); $canCreate = $user->authorise('core.create', 'com_tags'); $canEdit = $user->authorise('core.edit', 'com_tags'); - $canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out == $user->get('id') || is_null($item->checked_out); + $canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out == $user->id || is_null($item->checked_out); $canChange = $user->authorise('core.edit.state', 'com_tags') && $canCheckin; // Get the parents of item for sorting diff --git a/administrator/components/com_templates/src/Model/StylesModel.php b/administrator/components/com_templates/src/Model/StylesModel.php index 9073547198cca..ad89ad3a11b71 100644 --- a/administrator/components/com_templates/src/Model/StylesModel.php +++ b/administrator/components/com_templates/src/Model/StylesModel.php @@ -15,6 +15,7 @@ use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; use Joomla\String\StringHelper; // phpcs:disable PSR1.Files.SideEffects @@ -113,7 +114,7 @@ protected function getStoreId($id = '') /** * Build an SQL query to load the list data. * - * @return \Joomla\Database\DatabaseQuery + * @return QueryInterface */ protected function getListQuery() { diff --git a/administrator/components/com_templates/src/Model/TemplateModel.php b/administrator/components/com_templates/src/Model/TemplateModel.php index 91a505c25bd65..3f2fe024925a1 100644 --- a/administrator/components/com_templates/src/Model/TemplateModel.php +++ b/administrator/components/com_templates/src/Model/TemplateModel.php @@ -409,27 +409,53 @@ public function getDirectoryTree($dir) { $result = []; + $prefix = JPATH_ROOT . DIRECTORY_SEPARATOR . 'administrator' . DIRECTORY_SEPARATOR . 'templates' . DIRECTORY_SEPARATOR . $this->template->element; + $mediaPrefix = JPATH_ROOT . DIRECTORY_SEPARATOR . 'media' . DIRECTORY_SEPARATOR . 'templates' . DIRECTORY_SEPARATOR . 'administrator' . DIRECTORY_SEPARATOR . $this->template->element; + + if ($this->template->client_id === 0) { + $prefix = JPATH_ROOT . DIRECTORY_SEPARATOR . 'templates' . DIRECTORY_SEPARATOR . $this->template->element; + $mediaPrefix = JPATH_ROOT . DIRECTORY_SEPARATOR . 'media' . DIRECTORY_SEPARATOR . 'templates' . DIRECTORY_SEPARATOR . 'site' . DIRECTORY_SEPARATOR . $this->template->element; + } + $dirFiles = scandir($dir); - foreach ($dirFiles as $key => $value) { - if (!\in_array($value, ['.', '..', 'node_modules'])) { - if (is_dir($dir . $value)) { - $relativePath = str_replace(JPATH_ROOT . DIRECTORY_SEPARATOR . 'media' . DIRECTORY_SEPARATOR . 'templates' . DIRECTORY_SEPARATOR . ($this->template->client_id === 0 ? 'site' : 'administrator') . DIRECTORY_SEPARATOR . $this->template->element, '', $dir . $value); - $relativePath = str_replace(JPATH_ROOT . DIRECTORY_SEPARATOR . ($this->template->client_id === 0 ? '' : 'administrator' . DIRECTORY_SEPARATOR) . 'templates' . DIRECTORY_SEPARATOR . $this->template->element, '', $relativePath); - $result[str_replace('\\', '//', $relativePath)] = $this->getDirectoryTree($dir . $value . '/'); - } else { - $ext = pathinfo($dir . $value, PATHINFO_EXTENSION); - $allowedFormat = $this->checkFormat($ext); + foreach ($dirFiles as $value) { + if (\in_array($value, ['.', '..', 'node_modules'])) { + continue; + } - if ($allowedFormat == true) { - $relativePath = str_replace(JPATH_ROOT . DIRECTORY_SEPARATOR . 'media' . DIRECTORY_SEPARATOR . 'templates' . DIRECTORY_SEPARATOR . ($this->template->client_id === 0 ? 'site' : 'administrator') . DIRECTORY_SEPARATOR . $this->template->element, '', $dir . $value); - $relativePath = str_replace(JPATH_ROOT . DIRECTORY_SEPARATOR . ($this->template->client_id === 0 ? '' : 'administrator' . DIRECTORY_SEPARATOR) . 'templates' . DIRECTORY_SEPARATOR . $this->template->element, '', $relativePath); - $result[] = $this->getFile($relativePath, $value); - } - } + $relativePath = str_replace([$prefix, $mediaPrefix], '', $dir . $value); + + if (is_dir($dir . $value)) { + $result[str_replace('\\', '//', $relativePath)] = $this->getDirectoryTree($dir . $value . '/'); + + continue; + } + + $ext = pathinfo($dir . $value, PATHINFO_EXTENSION); + + if ($this->checkFormat($ext)) { + $result[] = $this->getFile($relativePath, $value); } } + // Sort directories first, then files alphabetically. + uksort($result, function ($a, $b) use ($result) { + if (\is_string($a)) { + if (\is_string($b)) { + return strnatcmp($a, $b); + } + + return -1; + } + + if (\is_string($b)) { + return 1; + } + + return strnatcmp($result[$a]->name, $result[$b]->name); + }); + return !empty($result) ? $result : ['.']; } diff --git a/administrator/components/com_templates/src/Model/TemplatesModel.php b/administrator/components/com_templates/src/Model/TemplatesModel.php index f801a9a9d4a5b..1d9fc937d7425 100644 --- a/administrator/components/com_templates/src/Model/TemplatesModel.php +++ b/administrator/components/com_templates/src/Model/TemplatesModel.php @@ -16,6 +16,7 @@ use Joomla\CMS\MVC\Model\ListModel; use Joomla\Component\Templates\Administrator\Helper\TemplatesHelper; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; use Joomla\String\StringHelper; // phpcs:disable PSR1.Files.SideEffects @@ -118,7 +119,7 @@ public function updated($exid) /** * Build an SQL query to load the list data. * - * @return \Joomla\Database\DatabaseQuery + * @return QueryInterface * * @since 1.6 */ diff --git a/administrator/components/com_templates/tmpl/style/edit.php b/administrator/components/com_templates/tmpl/style/edit.php index 557c70d56a2d7..56b4fb41d92f7 100644 --- a/administrator/components/com_templates/tmpl/style/edit.php +++ b/administrator/components/com_templates/tmpl/style/edit.php @@ -18,7 +18,7 @@ /** @var \Joomla\Component\Templates\Administrator\View\Style\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate'); diff --git a/administrator/components/com_templates/tmpl/style/edit_assignment.php b/administrator/components/com_templates/tmpl/style/edit_assignment.php index 0408cd0bf4a7f..1c38e47ac2c7e 100644 --- a/administrator/components/com_templates/tmpl/style/edit_assignment.php +++ b/administrator/components/com_templates/tmpl/style/edit_assignment.php @@ -21,7 +21,7 @@ $user = $this->getCurrentUser(); /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('com_templates.admin-template-toggle-assignment'); ?> diff --git a/administrator/components/com_templates/tmpl/styles/default.php b/administrator/components/com_templates/tmpl/styles/default.php index eca91de695938..c708fdd97315d 100644 --- a/administrator/components/com_templates/tmpl/styles/default.php +++ b/administrator/components/com_templates/tmpl/styles/default.php @@ -19,7 +19,7 @@ /** @var \Joomla\Component\Templates\Administrator\View\Styles\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect'); diff --git a/administrator/components/com_templates/tmpl/template/default.php b/administrator/components/com_templates/tmpl/template/default.php index a2f9fb95223f6..99833432dd2ee 100644 --- a/administrator/components/com_templates/tmpl/template/default.php +++ b/administrator/components/com_templates/tmpl/template/default.php @@ -25,7 +25,7 @@ HTMLHelper::_('bootstrap.modal'); /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $input = Factory::getApplication()->getInput(); // Enable assets diff --git a/administrator/components/com_templates/tmpl/template/default_tree.php b/administrator/components/com_templates/tmpl/template/default_tree.php index dd59a25b6803f..17a923b4fcc72 100644 --- a/administrator/components/com_templates/tmpl/template/default_tree.php +++ b/administrator/components/com_templates/tmpl/template/default_tree.php @@ -13,8 +13,6 @@ use Joomla\CMS\Router\Route; /** @var \Joomla\Component\Templates\Administrator\View\Template\HtmlView $this */ - -ksort($this->files, SORT_NATURAL); ?>
    diff --git a/administrator/components/com_templates/tmpl/template/default_tree_media.php b/administrator/components/com_templates/tmpl/template/default_tree_media.php index 0701c7c0fcff1..66b5d0d9890a6 100644 --- a/administrator/components/com_templates/tmpl/template/default_tree_media.php +++ b/administrator/components/com_templates/tmpl/template/default_tree_media.php @@ -19,7 +19,6 @@ return; } -ksort($this->mediaFiles, SORT_STRING); ?>
      diff --git a/administrator/components/com_templates/tmpl/template/default_updated_files.php b/administrator/components/com_templates/tmpl/template/default_updated_files.php index 1838d858b567f..978eb67ebf3bd 100644 --- a/administrator/components/com_templates/tmpl/template/default_updated_files.php +++ b/administrator/components/com_templates/tmpl/template/default_updated_files.php @@ -20,7 +20,7 @@ HTMLHelper::_('bootstrap.dropdown', '.dropdown-toggle'); /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns'); $input = Factory::getApplication()->getInput(); diff --git a/administrator/components/com_templates/tmpl/templates/default.php b/administrator/components/com_templates/tmpl/templates/default.php index bb5c62d95eb0a..a15338f9455f5 100644 --- a/administrator/components/com_templates/tmpl/templates/default.php +++ b/administrator/components/com_templates/tmpl/templates/default.php @@ -18,7 +18,7 @@ /** @var \Joomla\Component\Templates\Administrator\View\Templates\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect'); diff --git a/administrator/components/com_users/src/Helper/Mfa.php b/administrator/components/com_users/src/Helper/Mfa.php index 64499ce5efe5a..b417fecbcd28b 100644 --- a/administrator/components/com_users/src/Helper/Mfa.php +++ b/administrator/components/com_users/src/Helper/Mfa.php @@ -109,7 +109,7 @@ public static function getConfigurationInterface(User $user): ?string $view->setModel($methodsModel, true); /** @noinspection PhpParamsInspection */ $view->setModel($backupCodesModel); - $view->document = $app->getDocument(); + $view->setDocument($app->getDocument()); $view->returnURL = base64_encode(Uri::getInstance()->toString()); $view->user = $user; $view->set('forHMVC', true); diff --git a/administrator/components/com_users/src/Model/DebuggroupModel.php b/administrator/components/com_users/src/Model/DebuggroupModel.php index 8859a5fead773..afb2e28d2b386 100644 --- a/administrator/components/com_users/src/Model/DebuggroupModel.php +++ b/administrator/components/com_users/src/Model/DebuggroupModel.php @@ -16,8 +16,8 @@ use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; use Joomla\Component\Users\Administrator\Helper\DebugHelper; -use Joomla\Database\DatabaseQuery; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -200,7 +200,7 @@ public function getGroup() /** * Build an SQL query to load the list data. * - * @return DatabaseQuery + * @return QueryInterface * * @since 1.6 */ diff --git a/administrator/components/com_users/src/Model/DebuguserModel.php b/administrator/components/com_users/src/Model/DebuguserModel.php index bbc3664ea981d..c953fd28c20a5 100644 --- a/administrator/components/com_users/src/Model/DebuguserModel.php +++ b/administrator/components/com_users/src/Model/DebuguserModel.php @@ -18,8 +18,8 @@ use Joomla\CMS\User\UserFactoryAwareInterface; use Joomla\CMS\User\UserFactoryAwareTrait; use Joomla\Component\Users\Administrator\Helper\DebugHelper; -use Joomla\Database\DatabaseQuery; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -189,7 +189,7 @@ public function getUser() /** * Build an SQL query to load the list data. * - * @return DatabaseQuery + * @return QueryInterface * * @since 1.6 */ diff --git a/administrator/components/com_users/src/Model/GroupModel.php b/administrator/components/com_users/src/Model/GroupModel.php index 6c90f55193572..57d0cfa73538c 100644 --- a/administrator/components/com_users/src/Model/GroupModel.php +++ b/administrator/components/com_users/src/Model/GroupModel.php @@ -197,7 +197,7 @@ public function save($data) */ if ($iAmSuperAdmin) { // Next, are we a member of the current group? - $myGroups = Access::getGroupsByUser($this->getCurrentUser()->get('id'), false); + $myGroups = Access::getGroupsByUser($this->getCurrentUser()->id, false); if (\in_array($data['id'], $myGroups)) { // Now, would we have super admin permissions without the current group? @@ -243,7 +243,7 @@ public function delete(&$pks) // Typecast variable. $pks = (array) $pks; $user = $this->getCurrentUser(); - $groups = Access::getGroupsByUser($user->get('id')); + $groups = Access::getGroupsByUser($user->id); $context = $this->option . '.' . $this->name; $dispatcher = $this->getDispatcher(); diff --git a/administrator/components/com_users/src/Model/GroupsModel.php b/administrator/components/com_users/src/Model/GroupsModel.php index a724186f98636..454a1121dab5c 100644 --- a/administrator/components/com_users/src/Model/GroupsModel.php +++ b/administrator/components/com_users/src/Model/GroupsModel.php @@ -14,8 +14,8 @@ use Joomla\CMS\Helper\UserGroupsHelper; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; -use Joomla\Database\DatabaseQuery; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -134,7 +134,7 @@ public function getItems() /** * Build an SQL query to load the list data. * - * @return DatabaseQuery + * @return QueryInterface */ protected function getListQuery() { diff --git a/administrator/components/com_users/src/Model/LevelsModel.php b/administrator/components/com_users/src/Model/LevelsModel.php index e586665311302..9397659334061 100644 --- a/administrator/components/com_users/src/Model/LevelsModel.php +++ b/administrator/components/com_users/src/Model/LevelsModel.php @@ -16,8 +16,8 @@ use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; use Joomla\CMS\Table\Table; -use Joomla\Database\DatabaseQuery; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -96,7 +96,7 @@ protected function getStoreId($id = '') /** * Build an SQL query to load the list data. * - * @return DatabaseQuery + * @return QueryInterface */ protected function getListQuery() { diff --git a/administrator/components/com_users/src/Model/MethodsModel.php b/administrator/components/com_users/src/Model/MethodsModel.php index c3f3e508bf60c..31a2be2a74e2a 100644 --- a/administrator/components/com_users/src/Model/MethodsModel.php +++ b/administrator/components/com_users/src/Model/MethodsModel.php @@ -127,6 +127,7 @@ public function formatRelative(?string $dateTimeText): string $utcTimeZone = new \DateTimeZone('UTC'); $jDate = new Date($dateTimeText, $utcTimeZone); $unixStamp = $jDate->toUnix(); + $app = Factory::getApplication(); // I'm pretty sure we didn't have MFA in Joomla back in 1970 ;) if ($unixStamp < 0) { @@ -135,7 +136,7 @@ public function formatRelative(?string $dateTimeText): string // I need to display the date in the user's local timezone. That's how you do it. $user = $this->getCurrentUser(); - $userTZ = $user->getParam('timezone', 'UTC'); + $userTZ = $user->getParam('timezone', $app->get('offset', 'UTC')); $tz = new \DateTimeZone($userTZ); $jDate->setTimezone($tz); diff --git a/administrator/components/com_users/src/Model/NotesModel.php b/administrator/components/com_users/src/Model/NotesModel.php index 252fda8478212..7578e7460900a 100644 --- a/administrator/components/com_users/src/Model/NotesModel.php +++ b/administrator/components/com_users/src/Model/NotesModel.php @@ -14,8 +14,8 @@ use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; use Joomla\CMS\User\User; -use Joomla\Database\DatabaseQuery; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -62,7 +62,7 @@ public function __construct($config = [], MVCFactoryInterface $factory = null) /** * Build an SQL query to load the list data. * - * @return DatabaseQuery A DatabaseQuery object to retrieve the data set. + * @return QueryInterface An object implementing QueryInterface to retrieve the data set. * * @since 2.5 */ diff --git a/administrator/components/com_users/src/Model/UserModel.php b/administrator/components/com_users/src/Model/UserModel.php index cdbbd8ed9baef..324e3220335f8 100644 --- a/administrator/components/com_users/src/Model/UserModel.php +++ b/administrator/components/com_users/src/Model/UserModel.php @@ -252,7 +252,7 @@ public function save($data) } // Make sure that we are not removing ourself from Super Admin group - if ($iAmSuperAdmin && $my->get('id') == $pk) { + if ($iAmSuperAdmin && $my->id == $pk) { // Check that at least one of our new groups is Super Admin $stillSuperAdmin = false; $myNewGroups = $data['groups']; @@ -388,7 +388,7 @@ public function block(&$pks, $value = 1) // Access checks. foreach ($pks as $i => $pk) { - if ($value == 1 && $pk == $user->get('id')) { + if ($value == 1 && $pk == $user->id) { // Cannot block yourself. unset($pks[$i]); Factory::getApplication()->enqueueMessage(Text::_('COM_USERS_USERS_ERROR_CANNOT_BLOCK_SELF'), 'error'); diff --git a/administrator/components/com_users/src/Model/UsersModel.php b/administrator/components/com_users/src/Model/UsersModel.php index b5c7f3ceaac50..f02123187f2b8 100644 --- a/administrator/components/com_users/src/Model/UsersModel.php +++ b/administrator/components/com_users/src/Model/UsersModel.php @@ -17,8 +17,8 @@ use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; use Joomla\CMS\Plugin\PluginHelper; -use Joomla\Database\DatabaseQuery; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; use Joomla\Utilities\ArrayHelper; // phpcs:disable PSR1.Files.SideEffects @@ -281,7 +281,7 @@ public function getFilterForm($data = [], $loadData = true) /** * Build an SQL query to load the list data. * - * @return DatabaseQuery + * @return QueryInterface * * @since 1.6 */ diff --git a/administrator/components/com_users/src/Table/NoteTable.php b/administrator/components/com_users/src/Table/NoteTable.php index 8a6c393a99a42..acd6bddb652da 100644 --- a/administrator/components/com_users/src/Table/NoteTable.php +++ b/administrator/components/com_users/src/Table/NoteTable.php @@ -67,7 +67,7 @@ public function __construct(DatabaseDriver $db, DispatcherInterface $dispatcher public function store($updateNulls = true) { $date = Factory::getDate()->toSql(); - $userId = $this->getCurrentUser()->get('id'); + $userId = $this->getCurrentUser()->id; if (!((int) $this->review_time)) { $this->review_time = null; diff --git a/administrator/components/com_users/src/View/Note/HtmlView.php b/administrator/components/com_users/src/View/Note/HtmlView.php index be207e6fdee66..526557ca36926 100644 --- a/administrator/components/com_users/src/View/Note/HtmlView.php +++ b/administrator/components/com_users/src/View/Note/HtmlView.php @@ -96,7 +96,7 @@ protected function addToolbar() $user = $this->getCurrentUser(); $isNew = ($this->item->id == 0); - $checkedOut = !(\is_null($this->item->checked_out) || $this->item->checked_out == $user->get('id')); + $checkedOut = !(\is_null($this->item->checked_out) || $this->item->checked_out == $user->id); $toolbar = Toolbar::getInstance(); // Since we don't track these assets at the item level, use the category id. diff --git a/administrator/components/com_users/tmpl/captive/default.php b/administrator/components/com_users/tmpl/captive/default.php index 2c736e15ca8d7..56ccc18ea80d2 100644 --- a/administrator/components/com_users/tmpl/captive/default.php +++ b/administrator/components/com_users/tmpl/captive/default.php @@ -22,7 +22,7 @@ */ $model = $this->getModel(); -$this->document->getWebAssetManager() +$this->getDocument()->getWebAssetManager() ->useScript('com_users.two-factor-focus'); ?> diff --git a/administrator/components/com_users/tmpl/debuggroup/default.php b/administrator/components/com_users/tmpl/debuggroup/default.php index c7aa9914d5598..0b053e3a33f39 100644 --- a/administrator/components/com_users/tmpl/debuggroup/default.php +++ b/administrator/components/com_users/tmpl/debuggroup/default.php @@ -21,7 +21,7 @@ $listDirn = $this->escape($this->state->get('list.direction')); /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns'); ?> diff --git a/administrator/components/com_users/tmpl/debuguser/default.php b/administrator/components/com_users/tmpl/debuguser/default.php index 1666ff52c9859..d24c9d25a497d 100644 --- a/administrator/components/com_users/tmpl/debuguser/default.php +++ b/administrator/components/com_users/tmpl/debuguser/default.php @@ -24,7 +24,7 @@ $actions = []; /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns'); ?> diff --git a/administrator/components/com_users/tmpl/group/edit.php b/administrator/components/com_users/tmpl/group/edit.php index 91c1b43304ea7..77af501d105ec 100644 --- a/administrator/components/com_users/tmpl/group/edit.php +++ b/administrator/components/com_users/tmpl/group/edit.php @@ -18,7 +18,7 @@ /** @var \Joomla\Component\Users\Administrator\View\Group\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate'); diff --git a/administrator/components/com_users/tmpl/groups/default.php b/administrator/components/com_users/tmpl/groups/default.php index bbdef6670f873..d016623675712 100644 --- a/administrator/components/com_users/tmpl/groups/default.php +++ b/administrator/components/com_users/tmpl/groups/default.php @@ -25,7 +25,7 @@ Text::script('COM_USERS_GROUPS_CONFIRM_DELETE', true); /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('com_users.admin-users-groups') ->useScript('multiselect') ->useScript('table.columns'); diff --git a/administrator/components/com_users/tmpl/level/edit.php b/administrator/components/com_users/tmpl/level/edit.php index 51cf77f9be316..60f15b12bcfb6 100644 --- a/administrator/components/com_users/tmpl/level/edit.php +++ b/administrator/components/com_users/tmpl/level/edit.php @@ -17,7 +17,7 @@ /** @var \Joomla\Component\Users\Administrator\View\Level\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate'); diff --git a/administrator/components/com_users/tmpl/levels/default.php b/administrator/components/com_users/tmpl/levels/default.php index a1e93d98f4785..baf162c273f81 100644 --- a/administrator/components/com_users/tmpl/levels/default.php +++ b/administrator/components/com_users/tmpl/levels/default.php @@ -21,7 +21,7 @@ /** @var \Joomla\Component\Users\Administrator\View\Levels\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect'); diff --git a/administrator/components/com_users/tmpl/mail/default.php b/administrator/components/com_users/tmpl/mail/default.php index 5d1cf0a7d1b77..212e57bc93e32 100644 --- a/administrator/components/com_users/tmpl/mail/default.php +++ b/administrator/components/com_users/tmpl/mail/default.php @@ -18,7 +18,7 @@ /** @var Joomla\Component\Users\Administrator\View\Mail\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate'); diff --git a/administrator/components/com_users/tmpl/methods/list.php b/administrator/components/com_users/tmpl/methods/list.php index ab5fce0908fe9..889209626334b 100644 --- a/administrator/components/com_users/tmpl/methods/list.php +++ b/administrator/components/com_users/tmpl/methods/list.php @@ -27,7 +27,7 @@ /** @var MethodsModel $model */ $model = $this->getModel(); -$this->document->getWebAssetManager()->useScript('com_users.two-factor-list'); +$this->getDocument()->getWebAssetManager()->useScript('com_users.two-factor-list'); $canAddEdit = MfaHelper::canAddEditMethod($this->user); $canDelete = MfaHelper::canDeleteMethod($this->user); @@ -69,12 +69,10 @@ class="img-fluid"
      - - -
      - id . ($this->returnURL ? '&returnurl=' . $this->escape(urlencode($this->returnURL)) : '') . '&user_id=' . $this->user->id)) ?> -
      - + +
      + id . ($this->returnURL ? '&returnurl=' . $this->escape(urlencode($this->returnURL)) : '') . '&user_id=' . $this->user->id), 'text-decoration-underline') ?> +

      default) : ?> diff --git a/administrator/components/com_users/tmpl/note/edit.php b/administrator/components/com_users/tmpl/note/edit.php index fd82b6009ecdd..9387a31e49929 100644 --- a/administrator/components/com_users/tmpl/note/edit.php +++ b/administrator/components/com_users/tmpl/note/edit.php @@ -17,7 +17,7 @@ /** @var \Joomla\Component\Users\Administrator\View\Note\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate'); diff --git a/administrator/components/com_users/tmpl/notes/default.php b/administrator/components/com_users/tmpl/notes/default.php index f2d3f32b6d4be..fa64f4e57220f 100644 --- a/administrator/components/com_users/tmpl/notes/default.php +++ b/administrator/components/com_users/tmpl/notes/default.php @@ -18,7 +18,7 @@ /** @var \Joomla\Component\Users\Administrator\View\Notes\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect'); @@ -70,7 +70,7 @@ items as $i => $item) : $canEdit = $user->authorise('core.edit', 'com_users.category.' . $item->catid); - $canCheckin = $user->authorise('core.admin', 'com_checkin') || $item->checked_out == $user->get('id') || is_null($item->checked_out); + $canCheckin = $user->authorise('core.admin', 'com_checkin') || $item->checked_out == $user->id || is_null($item->checked_out); $canChange = $user->authorise('core.edit.state', 'com_users.category.' . $item->catid) && $canCheckin; $subject = $item->subject ?: Text::_('COM_USERS_EMPTY_SUBJECT'); ?> diff --git a/administrator/components/com_users/tmpl/notes/emptystate.php b/administrator/components/com_users/tmpl/notes/emptystate.php index a7db347d7b243..87792bafa261d 100644 --- a/administrator/components/com_users/tmpl/notes/emptystate.php +++ b/administrator/components/com_users/tmpl/notes/emptystate.php @@ -17,7 +17,7 @@ $displayData = [ 'textPrefix' => 'COM_USERS_NOTES', 'formURL' => 'index.php?option=com_users&view=notes', - 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help40:User_Notes', + 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:User_Notes', 'icon' => 'icon-users user', ]; diff --git a/administrator/components/com_users/tmpl/user/edit.php b/administrator/components/com_users/tmpl/user/edit.php index ec5b1c743f15d..69f400e57cf8e 100644 --- a/administrator/components/com_users/tmpl/user/edit.php +++ b/administrator/components/com_users/tmpl/user/edit.php @@ -19,7 +19,7 @@ /** @var Joomla\Component\Users\Administrator\View\User\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate'); diff --git a/administrator/components/com_users/tmpl/user/edit_groups.php b/administrator/components/com_users/tmpl/user/edit_groups.php index 2500469ec0418..4525c00d0dd08 100644 --- a/administrator/components/com_users/tmpl/user/edit_groups.php +++ b/administrator/components/com_users/tmpl/user/edit_groups.php @@ -11,5 +11,8 @@ defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; +use Joomla\Component\Users\Administrator\View\User\HtmlView; + +/** @var HtmlView $this */ echo HTMLHelper::_('access.usergroups', 'jform[groups]', $this->groups, true); diff --git a/administrator/components/com_users/tmpl/users/default.php b/administrator/components/com_users/tmpl/users/default.php index 79b5219779506..b02e1b66fe5ee 100644 --- a/administrator/components/com_users/tmpl/users/default.php +++ b/administrator/components/com_users/tmpl/users/default.php @@ -22,7 +22,7 @@ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect'); diff --git a/administrator/components/com_users/tmpl/users/default_batch_body.php b/administrator/components/com_users/tmpl/users/default_batch_body.php index cf02010b6d591..09de7fa0145a7 100644 --- a/administrator/components/com_users/tmpl/users/default_batch_body.php +++ b/administrator/components/com_users/tmpl/users/default_batch_body.php @@ -30,7 +30,7 @@ ]; /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('joomla.batch-copymove'); ?> diff --git a/administrator/components/com_users/tmpl/users/modal.php b/administrator/components/com_users/tmpl/users/modal.php index 7073bc7b03444..ee6773a60ebd1 100644 --- a/administrator/components/com_users/tmpl/users/modal.php +++ b/administrator/components/com_users/tmpl/users/modal.php @@ -19,7 +19,7 @@ /** @var \Joomla\Component\Users\Administrator\View\Users\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('multiselect')->useScript('modal-content-select'); $input = Factory::getApplication()->getInput(); diff --git a/administrator/components/com_workflow/src/Model/StagesModel.php b/administrator/components/com_workflow/src/Model/StagesModel.php index 49e54f08f5a08..67510eb88c102 100644 --- a/administrator/components/com_workflow/src/Model/StagesModel.php +++ b/administrator/components/com_workflow/src/Model/StagesModel.php @@ -13,8 +13,8 @@ use Joomla\CMS\Factory; use Joomla\CMS\MVC\Model\ListModel; -use Joomla\Database\DatabaseQuery; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -121,7 +121,7 @@ public function getTable($type = 'Stage', $prefix = 'Administrator', $config = [ /** * Method to get the data that should be injected in the form. * - * @return DatabaseQuery The query to database. + * @return QueryInterface The query to database. * * @since 4.0.0 */ diff --git a/administrator/components/com_workflow/src/Model/TransitionsModel.php b/administrator/components/com_workflow/src/Model/TransitionsModel.php index 1ab727dc54a09..eaba5e839bbe8 100644 --- a/administrator/components/com_workflow/src/Model/TransitionsModel.php +++ b/administrator/components/com_workflow/src/Model/TransitionsModel.php @@ -13,8 +13,8 @@ use Joomla\CMS\Factory; use Joomla\CMS\MVC\Model\ListModel; -use Joomla\Database\DatabaseQuery; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -122,7 +122,7 @@ protected function getReorderConditions($table) /** * Method to get the data that should be injected in the form. * - * @return DatabaseQuery The query to database. + * @return QueryInterface The query to database. * * @since 4.0.0 */ diff --git a/administrator/components/com_workflow/src/Model/WorkflowsModel.php b/administrator/components/com_workflow/src/Model/WorkflowsModel.php index be244ffb1fe8a..ec1b91a547e26 100644 --- a/administrator/components/com_workflow/src/Model/WorkflowsModel.php +++ b/administrator/components/com_workflow/src/Model/WorkflowsModel.php @@ -13,8 +13,8 @@ use Joomla\CMS\Factory; use Joomla\CMS\MVC\Model\ListModel; -use Joomla\Database\DatabaseQuery; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -207,7 +207,7 @@ protected function countItems($items) /** * Method to get the data that should be injected in the form. * - * @return DatabaseQuery The query to database. + * @return QueryInterface The query to database. * * @since 4.0.0 */ diff --git a/administrator/components/com_workflow/tmpl/stage/edit.php b/administrator/components/com_workflow/tmpl/stage/edit.php index 0dc43595f1655..37aaaf22b4dac 100644 --- a/administrator/components/com_workflow/tmpl/stage/edit.php +++ b/administrator/components/com_workflow/tmpl/stage/edit.php @@ -19,7 +19,7 @@ /** @var \Joomla\Component\Workflow\Administrator\View\Stage\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate'); diff --git a/administrator/components/com_workflow/tmpl/stages/default.php b/administrator/components/com_workflow/tmpl/stages/default.php index 922502cc65848..c9a053226c9b1 100644 --- a/administrator/components/com_workflow/tmpl/stages/default.php +++ b/administrator/components/com_workflow/tmpl/stages/default.php @@ -20,7 +20,7 @@ /** @var \Joomla\Component\Workflow\Administrator\View\Stages\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect'); diff --git a/administrator/components/com_workflow/tmpl/transition/edit.php b/administrator/components/com_workflow/tmpl/transition/edit.php index a5f84ee79fd9f..27e39dfb63392 100644 --- a/administrator/components/com_workflow/tmpl/transition/edit.php +++ b/administrator/components/com_workflow/tmpl/transition/edit.php @@ -19,7 +19,7 @@ /** @var \Joomla\Component\Workflow\Administrator\View\Transition\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate'); diff --git a/administrator/components/com_workflow/tmpl/transitions/default.php b/administrator/components/com_workflow/tmpl/transitions/default.php index 1a3d6d8eef1e7..4f5967a2e040a 100644 --- a/administrator/components/com_workflow/tmpl/transitions/default.php +++ b/administrator/components/com_workflow/tmpl/transitions/default.php @@ -20,7 +20,7 @@ /** @var \Joomla\Component\Workflow\Administrator\View\Transitions\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect'); diff --git a/administrator/components/com_workflow/tmpl/workflow/edit.php b/administrator/components/com_workflow/tmpl/workflow/edit.php index 9472803db9b66..5ba15fef7dd43 100644 --- a/administrator/components/com_workflow/tmpl/workflow/edit.php +++ b/administrator/components/com_workflow/tmpl/workflow/edit.php @@ -19,7 +19,7 @@ /** @var \Joomla\Component\Workflow\Administrator\View\Workflow\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate'); diff --git a/administrator/components/com_workflow/tmpl/workflows/default.php b/administrator/components/com_workflow/tmpl/workflows/default.php index 6c7e18d89595c..6409e3e6e1e5e 100644 --- a/administrator/components/com_workflow/tmpl/workflows/default.php +++ b/administrator/components/com_workflow/tmpl/workflows/default.php @@ -20,7 +20,7 @@ /** @var \Joomla\Component\Workflow\Administrator\View\Workflows\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('table.columns') ->useScript('multiselect'); diff --git a/administrator/help/en-GB/toc.json b/administrator/help/en-GB/toc.json index d9376ef3d2cec..630ec1846c336 100644 --- a/administrator/help/en-GB/toc.json +++ b/administrator/help/en-GB/toc.json @@ -1 +1 @@ -{"Articles":"ARTICLES","Articles:_Categories":"ARTICLES:_CATEGORIES","Articles:_Edit":"ARTICLES:_EDIT","Articles:_Edit_Category":"ARTICLES:_EDIT_CATEGORY","Articles:_Featured":"ARTICLES:_FEATURED","Banners":"BANNERS","Banners:_Categories":"BANNERS:_CATEGORIES","Banners:_Clients":"BANNERS:_CLIENTS","Banners:_Edit":"BANNERS:_EDIT","Banners:_New_or_Edit_Category":"BANNERS:_NEW_OR_EDIT_CATEGORY","Banners:_New_or_Edit_Client":"BANNERS:_NEW_OR_EDIT_CLIENT","Banners:_Tracks":"BANNERS:_TRACKS","Contacts":"CONTACTS","Contacts:_Categories":"CONTACTS:_CATEGORIES","Contacts:_Edit":"CONTACTS:_EDIT","Contacts:_Edit_Category":"CONTACTS:_EDIT_CATEGORY","Extensions:_Discover":"EXTENSIONS:_DISCOVER","Extensions:_Install":"EXTENSIONS:_INSTALL","Extensions:_Languages":"EXTENSIONS:_LANGUAGES","Extensions:_Manage":"EXTENSIONS:_MANAGE","Extensions:_Update":"EXTENSIONS:_UPDATE","Field_Groups":"FIELD_GROUPS","Field_Groups:_Edit":"FIELD_GROUPS:_EDIT","Fields":"FIELDS","Fields:_Edit":"FIELDS:_EDIT","Guided_Tours":"GUIDED_TOURS","Guided_Tours:_New_or_Edit_Step":"GUIDED_TOURS:_NEW_OR_EDIT_STEP","Guided_Tours:_New_or_Edit_Tour":"GUIDED_TOURS:_NEW_OR_EDIT_TOUR","Guided_Tours:_Steps":"GUIDED_TOURS:_STEPS","Information:_Database":"INFORMATION:_DATABASE","Information:_Warnings":"INFORMATION:_WARNINGS","Joomla_Update":"JOOMLA_UPDATE","Languages:_Content":"LANGUAGES:_CONTENT","Languages:_Edit_Content_Language":"LANGUAGES:_EDIT_CONTENT_LANGUAGE","Languages:_Edit_Override":"LANGUAGES:_EDIT_OVERRIDE","Languages:_Installed":"LANGUAGES:_INSTALLED","Languages:_Overrides":"LANGUAGES:_OVERRIDES","Mail_Template:_Edit":"MAIL_TEMPLATE:_EDIT","Mail_Templates":"MAIL_TEMPLATES","Maintenance:_Clear_Cache":"MAINTENANCE:_CLEAR_CACHE","Maintenance:_Global_Check-in":"MAINTENANCE:_GLOBAL_CHECK-IN","Mass_Mail_Users":"MASS_MAIL_USERS","Media":"MEDIA","Menu_Item:_New_Item":"MENU_ITEM:_NEW_ITEM","Menus":"MENUS","Menus:_Edit":"MENUS:_EDIT","Menus:_Items":"MENUS:_ITEMS","Modules":"MODULES","Multilingual_Associations":"MULTILINGUAL_ASSOCIATIONS","Multilingual_Associations:_Edit":"MULTILINGUAL_ASSOCIATIONS:_EDIT","News_Feeds":"NEWS_FEEDS","News_Feeds:_Categories":"NEWS_FEEDS:_CATEGORIES","News_Feeds:_Edit":"NEWS_FEEDS:_EDIT","News_Feeds:_Edit_Category":"NEWS_FEEDS:_EDIT_CATEGORY","Permissions_for_User":"PERMISSIONS_FOR_USER","Plugins":"PLUGINS","Plugins:_Name_of_Plugin":"PLUGINS:_NAME_OF_PLUGIN","Post-installation_Messages_for_Joomla_CMS":"POST-INSTALLATION_MESSAGES_FOR_JOOMLA_CMS","Privacy_Dashboard":"PRIVACY_DASHBOARD","Privacy:_Consents":"PRIVACY:_CONSENTS","Privacy:_Extension_Capabilities":"PRIVACY:_EXTENSION_CAPABILITIES","Privacy:_Information_Requests":"PRIVACY:_INFORMATION_REQUESTS","Privacy:_New_Information_Request":"PRIVACY:_NEW_INFORMATION_REQUEST","Privacy:_Review_Information_Request":"PRIVACY:_REVIEW_INFORMATION_REQUEST","Private_Messages":"PRIVATE_MESSAGES","Private_Messages:_Read":"PRIVATE_MESSAGES:_READ","Private_Messages:_Write":"PRIVATE_MESSAGES:_WRITE","Redirects:_Links":"REDIRECTS:_LINKS","Redirects:_New_or_Edit":"REDIRECTS:_NEW_OR_EDIT","Scheduled_Tasks":"SCHEDULED_TASKS","Scheduled_Tasks:_Edit":"SCHEDULED_TASKS:_EDIT","Site_Global_Configuration":"SITE_GLOBAL_CONFIGURATION","Site_System_Information":"SITE_SYSTEM_INFORMATION","Smart_Search:_Content_Maps":"SMART_SEARCH:_CONTENT_MAPS","Smart_Search:_Indexed_Content":"SMART_SEARCH:_INDEXED_CONTENT","Smart_Search:_New_or_Edit_Filter":"SMART_SEARCH:_NEW_OR_EDIT_FILTER","Smart_Search:_Search_Filters":"SMART_SEARCH:_SEARCH_FILTERS","Start_Here":"START_HERE","Tags":"TAGS","Tags:_New_or_Edit":"TAGS:_NEW_OR_EDIT","Templates:_Customise":"TEMPLATES:_CUSTOMISE","Templates:_Customise_Source":"TEMPLATES:_CUSTOMISE_SOURCE","Templates:_Edit_Style":"TEMPLATES:_EDIT_STYLE","Templates:_Styles":"TEMPLATES:_STYLES","Templates:_Templates":"TEMPLATES:_TEMPLATES","User_Actions_Log":"USER_ACTIONS_LOG","User_Notes":"USER_NOTES","User_Notes:_New_or_Edit":"USER_NOTES:_NEW_OR_EDIT","Users":"USERS","Users:_Edit_Profile":"USERS:_EDIT_PROFILE","Users:_Edit_Viewing_Access_Level":"USERS:_EDIT_VIEWING_ACCESS_LEVEL","Users:_Groups":"USERS:_GROUPS","Users:_New_or_Edit_Group":"USERS:_NEW_OR_EDIT_GROUP","Users:_Viewing_Access_Levels":"USERS:_VIEWING_ACCESS_LEVELS"} \ No newline at end of file +{"Articles":"ARTICLES","Articles:_Categories":"ARTICLES:_CATEGORIES","Articles:_Edit":"ARTICLES:_EDIT","Articles:_Edit_Category":"ARTICLES:_EDIT_CATEGORY","Articles:_Featured":"ARTICLES:_FEATURED","Banners":"BANNERS","Banners:_Categories":"BANNERS:_CATEGORIES","Banners:_Clients":"BANNERS:_CLIENTS","Banners:_Edit":"BANNERS:_EDIT","Banners:_New_or_Edit_Category":"BANNERS:_NEW_OR_EDIT_CATEGORY","Banners:_New_or_Edit_Client":"BANNERS:_NEW_OR_EDIT_CLIENT","Banners:_Tracks":"BANNERS:_TRACKS","Contacts":"CONTACTS","Contacts:_Categories":"CONTACTS:_CATEGORIES","Contacts:_Edit":"CONTACTS:_EDIT","Contacts:_Edit_Category":"CONTACTS:_EDIT_CATEGORY","Admin_Modules:_Action_Logs_-_Latest":"ADMIN_MODULES:_ACTION_LOGS_-_LATEST","Admin_Modules:_Administrator_Dashboard_Menu":"ADMIN_MODULES:_ADMINISTRATOR_DASHBOARD_MENU","Admin_Modules:_Administrator_Menu":"ADMIN_MODULES:_ADMINISTRATOR_MENU","Admin_Modules:_Articles_-_Latest":"ADMIN_MODULES:_ARTICLES_-_LATEST","Admin_Modules:_Custom":"ADMIN_MODULES:_CUSTOM","Admin_Modules:_Feed_Display":"ADMIN_MODULES:_FEED_DISPLAY","Admin_Modules:_Frontend_Link":"ADMIN_MODULES:_FRONTEND_LINK","Admin_Modules:_Guided_Tours":"ADMIN_MODULES:_GUIDED_TOURS","Admin_Modules:_Joomla_Version_Information":"ADMIN_MODULES:_JOOMLA_VERSION_INFORMATION","Admin_Modules:_Login_Form":"ADMIN_MODULES:_LOGIN_FORM","Admin_Modules:_Login_Support_Information":"ADMIN_MODULES:_LOGIN_SUPPORT_INFORMATION","Admin_Modules:_Messages":"ADMIN_MODULES:_MESSAGES","Admin_Modules:_Multilingual_Status":"ADMIN_MODULES:_MULTILINGUAL_STATUS","Admin_Modules:_Popular_Articles":"ADMIN_MODULES:_POPULAR_ARTICLES","Admin_Modules:_Post_Installation_Messages":"ADMIN_MODULES:_POST_INSTALLATION_MESSAGES","Admin_Modules:_Privacy_Dashboard":"ADMIN_MODULES:_PRIVACY_DASHBOARD","Admin_Modules:_Privacy_Status_Check":"ADMIN_MODULES:_PRIVACY_STATUS_CHECK","Admin_Modules:_Quick_Icons":"ADMIN_MODULES:_QUICK_ICONS","Admin_Modules:_Sample_Data":"ADMIN_MODULES:_SAMPLE_DATA","Admin_Modules:_Title":"ADMIN_MODULES:_TITLE","Admin_Modules:_Toolbar":"ADMIN_MODULES:_TOOLBAR","Articles:_Options":"ARTICLES:_OPTIONS","Banners:_Options":"BANNERS:_OPTIONS","Cache:_Options":"CACHE:_OPTIONS","Check-in:_Options":"CHECK-IN:_OPTIONS","Contacts:_Options":"CONTACTS:_OPTIONS","Edit_Update_Site":"EDIT_UPDATE_SITE","Editors":"EDITORS","Extensions:_Discover":"EXTENSIONS:_DISCOVER","Extensions:_Install":"EXTENSIONS:_INSTALL","Extensions:_Languages":"EXTENSIONS:_LANGUAGES","Extensions:_Manage":"EXTENSIONS:_MANAGE","Extensions:_Update":"EXTENSIONS:_UPDATE","Extensions:_Update_Sites":"EXTENSIONS:_UPDATE_SITES","Field_Groups":"FIELD_GROUPS","Field_Groups:_Edit":"FIELD_GROUPS:_EDIT","Fields":"FIELDS","Fields:_Edit":"FIELDS:_EDIT","Guided_Tours":"GUIDED_TOURS","Guided_Tours:_New_or_Edit_Step":"GUIDED_TOURS:_NEW_OR_EDIT_STEP","Guided_Tours:_New_or_Edit_Tour":"GUIDED_TOURS:_NEW_OR_EDIT_TOUR","Guided_Tours:_Options":"GUIDED_TOURS:_OPTIONS","Guided_Tours:_Steps":"GUIDED_TOURS:_STEPS","Home_Dashboard":"HOME_DASHBOARD","Information:_Database":"INFORMATION:_DATABASE","Information:_Warnings":"INFORMATION:_WARNINGS","Installer:_Options":"INSTALLER:_OPTIONS","Joomla_Update":"JOOMLA_UPDATE","Joomla_Update:_Options":"JOOMLA_UPDATE:_OPTIONS","Languages:_Content":"LANGUAGES:_CONTENT","Languages:_Edit_Content_Language":"LANGUAGES:_EDIT_CONTENT_LANGUAGE","Languages:_Edit_Override":"LANGUAGES:_EDIT_OVERRIDE","Languages:_Installed":"LANGUAGES:_INSTALLED","Languages:_Options":"LANGUAGES:_OPTIONS","Languages:_Overrides":"LANGUAGES:_OVERRIDES","Mail_Template:_Edit":"MAIL_TEMPLATE:_EDIT","Mail_Templates":"MAIL_TEMPLATES","Mail_Templates:_Options":"MAIL_TEMPLATES:_OPTIONS","Maintenance:_Clear_Cache":"MAINTENANCE:_CLEAR_CACHE","Maintenance:_Global_Check-in":"MAINTENANCE:_GLOBAL_CHECK-IN","Mass_Mail_Users":"MASS_MAIL_USERS","Media":"MEDIA","Media:_Options":"MEDIA:_OPTIONS","Menu_Item:_Alias":"MENU_ITEM:_ALIAS","Menu_Item:_Article_Archived":"MENU_ITEM:_ARTICLE_ARCHIVED","Menu_Item:_Compact_List_of_Tagged_Items":"MENU_ITEM:_COMPACT_LIST_OF_TAGGED_ITEMS","Menu_Item:_Components_Menu_Container":"MENU_ITEM:_COMPONENTS_MENU_CONTAINER","Menu_Item:_Confirm_Request":"MENU_ITEM:_CONFIRM_REQUEST","Menu_Item:_Create_Article":"MENU_ITEM:_CREATE_ARTICLE","Menu_Item:_Create_Contact":"MENU_ITEM:_CREATE_CONTACT","Menu_Item:_Create_Request":"MENU_ITEM:_CREATE_REQUEST","Menu_Item:_Display_Template_Options":"MENU_ITEM:_DISPLAY_TEMPLATE_OPTIONS","Menu_Item:_Extend_Consent":"MENU_ITEM:_EXTEND_CONSENT","Menu_Item:_Featured_Articles":"MENU_ITEM:_FEATURED_ARTICLES","Menu_Item:_Featured_Contacts":"MENU_ITEM:_FEATURED_CONTACTS","Menu_Item:_Heading":"MENU_ITEM:_HEADING","Menu_Item:_Iframe_Wrapper":"MENU_ITEM:_IFRAME_WRAPPER","Menu_Item:_List_All_Tags":"MENU_ITEM:_LIST_ALL_TAGS","Menu_Item:_Login_Form":"MENU_ITEM:_LOGIN_FORM","Menu_Item:_Logout":"MENU_ITEM:_LOGOUT","Menu_Item:_New_Item":"MENU_ITEM:_NEW_ITEM","Menu_Item:_Password_Reset":"MENU_ITEM:_PASSWORD_RESET","Menu_Item:_Registration_Form":"MENU_ITEM:_REGISTRATION_FORM","Menu_Item:_Search":"MENU_ITEM:_SEARCH","Menu_Item:_Separator":"MENU_ITEM:_SEPARATOR","Menu_Item:_Single_Article":"MENU_ITEM:_SINGLE_ARTICLE","Menu_Item:_Single_Contact":"MENU_ITEM:_SINGLE_CONTACT","Menu_Item:_Single_News_Feed":"MENU_ITEM:_SINGLE_NEWS_FEED","Menu_Item:_Site_Configuration_Options":"MENU_ITEM:_SITE_CONFIGURATION_OPTIONS","Menu_Item:_Tagged_Items":"MENU_ITEM:_TAGGED_ITEMS","Menu_Item:_URL":"MENU_ITEM:_URL","Menus":"MENUS","Menus:_Edit":"MENUS:_EDIT","Menus:_Items":"MENUS:_ITEMS","Menus:_Options":"MENUS:_OPTIONS","Messages:_Options":"MESSAGES:_OPTIONS","Modules":"MODULES","Modules:_Options":"MODULES:_OPTIONS","Multilingual_Associations":"MULTILINGUAL_ASSOCIATIONS","Multilingual_Associations:_Edit":"MULTILINGUAL_ASSOCIATIONS:_EDIT","Multilingual_Associations:_Options":"MULTILINGUAL_ASSOCIATIONS:_OPTIONS","My_Profile":"MY_PROFILE","News_Feed:_Options":"NEWS_FEED:_OPTIONS","News_Feeds":"NEWS_FEEDS","News_Feeds:_Categories":"NEWS_FEEDS:_CATEGORIES","News_Feeds:_Edit":"NEWS_FEEDS:_EDIT","News_Feeds:_Edit_Category":"NEWS_FEEDS:_EDIT_CATEGORY","Permissions_for_Group":"PERMISSIONS_FOR_GROUP","Permissions_for_User":"PERMISSIONS_FOR_USER","Plugin:_Options":"PLUGIN:_OPTIONS","Plugins":"PLUGINS","Plugins:_Name_of_Plugin":"PLUGINS:_NAME_OF_PLUGIN","Post-installation_Messages_for_Joomla_CMS":"POST-INSTALLATION_MESSAGES_FOR_JOOMLA_CMS","Post-installation_Messages:_Options":"POST-INSTALLATION_MESSAGES:_OPTIONS","Privacy_Dashboard":"PRIVACY_DASHBOARD","Privacy:_Consents":"PRIVACY:_CONSENTS","Privacy:_Extension_Capabilities":"PRIVACY:_EXTENSION_CAPABILITIES","Privacy:_Information_Requests":"PRIVACY:_INFORMATION_REQUESTS","Privacy:_New_Information_Request":"PRIVACY:_NEW_INFORMATION_REQUEST","Privacy:_Options":"PRIVACY:_OPTIONS","Privacy:_Review_Information_Request":"PRIVACY:_REVIEW_INFORMATION_REQUEST","Private_Messages":"PRIVATE_MESSAGES","Private_Messages:_Read":"PRIVATE_MESSAGES:_READ","Private_Messages:_Write":"PRIVATE_MESSAGES:_WRITE","Redirect:_Options":"REDIRECT:_OPTIONS","Redirects:_Links":"REDIRECTS:_LINKS","Redirects:_New_or_Edit":"REDIRECTS:_NEW_OR_EDIT","Scheduled_Tasks":"SCHEDULED_TASKS","Scheduled_Tasks:_Edit":"SCHEDULED_TASKS:_EDIT","Scheduled_Tasks:_Options":"SCHEDULED_TASKS:_OPTIONS","Site_Global_Configuration":"SITE_GLOBAL_CONFIGURATION","Site_Modules:_Articles_-_Archived":"SITE_MODULES:_ARTICLES_-_ARCHIVED","Site_Modules:_Articles_-_Latest":"SITE_MODULES:_ARTICLES_-_LATEST","Site_Modules:_Articles_-_Most_Read":"SITE_MODULES:_ARTICLES_-_MOST_READ","Site_Modules:_Articles_-_Newsflash":"SITE_MODULES:_ARTICLES_-_NEWSFLASH","Site_Modules:_Articles_-_Related":"SITE_MODULES:_ARTICLES_-_RELATED","Site_Modules:_Banners":"SITE_MODULES:_BANNERS","Site_Modules:_Breadcrumbs":"SITE_MODULES:_BREADCRUMBS","Site_Modules:_Custom":"SITE_MODULES:_CUSTOM","Site_Modules:_Feed_Display":"SITE_MODULES:_FEED_DISPLAY","Site_Modules:_Footer":"SITE_MODULES:_FOOTER","Site_Modules:_Language_Switcher":"SITE_MODULES:_LANGUAGE_SWITCHER","Site_Modules:_Login":"SITE_MODULES:_LOGIN","Site_Modules:_Menu":"SITE_MODULES:_MENU","Site_Modules:_Random_Image":"SITE_MODULES:_RANDOM_IMAGE","Site_Modules:_Smart_Search":"SITE_MODULES:_SMART_SEARCH","Site_Modules:_Statistics":"SITE_MODULES:_STATISTICS","Site_Modules:_Syndication_Feeds":"SITE_MODULES:_SYNDICATION_FEEDS","Site_Modules:_Tags_-_Popular":"SITE_MODULES:_TAGS_-_POPULAR","Site_Modules:_Tags_-_Similar":"SITE_MODULES:_TAGS_-_SIMILAR","Site_Modules:_Wrapper":"SITE_MODULES:_WRAPPER","Site_System_Information":"SITE_SYSTEM_INFORMATION","Smart_Search:_Content_Maps":"SMART_SEARCH:_CONTENT_MAPS","Smart_Search:_Indexed_Content":"SMART_SEARCH:_INDEXED_CONTENT","Smart_Search:_New_or_Edit_Filter":"SMART_SEARCH:_NEW_OR_EDIT_FILTER","Smart_Search:_Options":"SMART_SEARCH:_OPTIONS","Smart_Search:_Search_Filters":"SMART_SEARCH:_SEARCH_FILTERS","Smart_Search:_Search_Term_Analysis":"SMART_SEARCH:_SEARCH_TERM_ANALYSIS","Stages_List:_Basic_Workflow":"STAGES_LIST:_BASIC_WORKFLOW","Start_Here":"START_HERE","Tags":"TAGS","Tags:_New_or_Edit":"TAGS:_NEW_OR_EDIT","Tags:_Options":"TAGS:_OPTIONS","Template:_Options":"TEMPLATE:_OPTIONS","Templates:_Customise":"TEMPLATES:_CUSTOMISE","Templates:_Customise_Source":"TEMPLATES:_CUSTOMISE_SOURCE","Templates:_Edit_Style":"TEMPLATES:_EDIT_STYLE","Templates:_Styles":"TEMPLATES:_STYLES","Templates:_Templates":"TEMPLATES:_TEMPLATES","Transitions_List:_Basic_Workflow":"TRANSITIONS_LIST:_BASIC_WORKFLOW","User_Actions_Log":"USER_ACTIONS_LOG","User_Actions_Log:_Options":"USER_ACTIONS_LOG:_OPTIONS","User_Notes":"USER_NOTES","User_Notes:_New_or_Edit":"USER_NOTES:_NEW_OR_EDIT","Users":"USERS","Users:_Edit_Profile":"USERS:_EDIT_PROFILE","Users:_Edit_Viewing_Access_Level":"USERS:_EDIT_VIEWING_ACCESS_LEVEL","Users:_Groups":"USERS:_GROUPS","Users:_New_or_Edit_Group":"USERS:_NEW_OR_EDIT_GROUP","Users:_Options":"USERS:_OPTIONS","Users:_Viewing_Access_Levels":"USERS:_VIEWING_ACCESS_LEVELS","Workflows_List":"WORKFLOWS_LIST"} \ No newline at end of file diff --git a/administrator/language/en-GB/com_admin.ini b/administrator/language/en-GB/com_admin.ini index ce7445a14db71..bf0c056969878 100644 --- a/administrator/language/en-GB/com_admin.ini +++ b/administrator/language/en-GB/com_admin.ini @@ -24,27 +24,56 @@ COM_ADMIN_EXTENSIONS="Extensions" COM_ADMIN_FILE_UPLOADS="File Uploads" COM_ADMIN_GLOSSARY="Glossary" COM_ADMIN_HELP="Joomla! Help" +COM_ADMIN_HELP_ADMIN_MODULES:_ACTION_LOGS_-_LATEST="Admin Modules: Action Logs - Latest" +COM_ADMIN_HELP_ADMIN_MODULES:_ADMINISTRATOR_DASHBOARD_MENU="Admin Modules: Administrator Dashboard Menu" +COM_ADMIN_HELP_ADMIN_MODULES:_ADMINISTRATOR_MENU="Admin Modules: Administrator Menu" +COM_ADMIN_HELP_ADMIN_MODULES:_ARTICLES_-_LATEST="Admin Modules: Articles - Latest" +COM_ADMIN_HELP_ADMIN_MODULES:_CUSTOM="Admin Modules: Custom" +COM_ADMIN_HELP_ADMIN_MODULES:_FEED_DISPLAY="Admin Modules: Feed Display" +COM_ADMIN_HELP_ADMIN_MODULES:_FRONTEND_LINK="Admin Modules: Frontend Link" +COM_ADMIN_HELP_ADMIN_MODULES:_GUIDED_TOURS="Admin Modules: Guided Tours" +COM_ADMIN_HELP_ADMIN_MODULES:_JOOMLA_VERSION_INFORMATION="Admin Modules: Joomla Version Information" +COM_ADMIN_HELP_ADMIN_MODULES:_LOGIN_FORM="Admin Modules: Login Form" +COM_ADMIN_HELP_ADMIN_MODULES:_LOGIN_SUPPORT_INFORMATION="Admin Modules: Login Support Information" +COM_ADMIN_HELP_ADMIN_MODULES:_MESSAGES="Admin Modules: Messages" +COM_ADMIN_HELP_ADMIN_MODULES:_MULTILINGUAL_STATUS="Admin Modules: Multilingual Status" +COM_ADMIN_HELP_ADMIN_MODULES:_POPULAR_ARTICLES="Admin Modules: Popular Articles" +COM_ADMIN_HELP_ADMIN_MODULES:_POST_INSTALLATION_MESSAGES="Admin Modules: Post Installation Messages" +COM_ADMIN_HELP_ADMIN_MODULES:_PRIVACY_DASHBOARD="Admin Modules: Privacy Dashboard" +COM_ADMIN_HELP_ADMIN_MODULES:_PRIVACY_STATUS_CHECK="Admin Modules: Privacy Status Check" +COM_ADMIN_HELP_ADMIN_MODULES:_QUICK_ICONS="Admin Modules: Quick Icons" +COM_ADMIN_HELP_ADMIN_MODULES:_SAMPLE_DATA="Admin Modules: Sample Data" +COM_ADMIN_HELP_ADMIN_MODULES:_TITLE="Admin Modules: Title" +COM_ADMIN_HELP_ADMIN_MODULES:_TOOLBAR="Admin Modules: Toolbar" COM_ADMIN_HELP_ARTICLES:_CATEGORIES="Articles: Categories" COM_ADMIN_HELP_ARTICLES:_EDIT_CATEGORY="Articles: Categories - New/Edit" COM_ADMIN_HELP_ARTICLES:_EDIT="Articles: New/Edit" COM_ADMIN_HELP_ARTICLES:_FEATURED="Articles: Featured" +COM_ADMIN_HELP_ARTICLES:_OPTIONS="Articles: Options" COM_ADMIN_HELP_ARTICLES="Articles" COM_ADMIN_HELP_BANNERS:_CATEGORIES="Banners: Categories" COM_ADMIN_HELP_BANNERS:_CLIENTS="Banners: Clients" COM_ADMIN_HELP_BANNERS:_EDIT="Banners: New/Edit" COM_ADMIN_HELP_BANNERS:_NEW_OR_EDIT_CATEGORY="Banners: Categories - New/Edit" COM_ADMIN_HELP_BANNERS:_NEW_OR_EDIT_CLIENT="Banners: Clients - New/Edit" +COM_ADMIN_HELP_BANNERS:_OPTIONS="Banners: Options" COM_ADMIN_HELP_BANNERS:_TRACKS="Banners: Tracks" COM_ADMIN_HELP_BANNERS="Banners" +COM_ADMIN_HELP_CACHE:_OPTIONS="Cache: Options" +COM_ADMIN_HELP_CHECK-IN:_OPTIONS="Check-in: Options" COM_ADMIN_HELP_CONTACTS:_CATEGORIES="Contacts: Categories" COM_ADMIN_HELP_CONTACTS:_EDIT_CATEGORY="Contacts: Categories - New/Edit" COM_ADMIN_HELP_CONTACTS:_EDIT="Contacts: New/Edit" +COM_ADMIN_HELP_CONTACTS:_OPTIONS="Contacts: Options" COM_ADMIN_HELP_CONTACTS="Contacts" +COM_ADMIN_HELP_EDIT_UPDATE_SITE="Edit Update Site" +COM_ADMIN_HELP_EDITORS="Editors" COM_ADMIN_HELP_EXTENSIONS:_DISCOVER="Extensions: Discover" COM_ADMIN_HELP_EXTENSIONS:_INSTALL="Extensions: Install" COM_ADMIN_HELP_EXTENSIONS:_LANGUAGES="Extensions: Install Languages" COM_ADMIN_HELP_EXTENSIONS:_MANAGE="Extensions: Manage" COM_ADMIN_HELP_EXTENSIONS:_UPDATE="Extensions: Update" +COM_ADMIN_HELP_EXTENSIONS:_UPDATE_SITES="Extensions: Update Sites" COM_ADMIN_HELP_FIELD_GROUPS:_EDIT="Field Groups: New/Edit" COM_ADMIN_HELP_FIELD_GROUPS="Field Groups" COM_ADMIN_HELP_FIELDS:_EDIT="Fields: New/Edit" @@ -52,41 +81,85 @@ COM_ADMIN_HELP_FIELDS="Fields" COM_ADMIN_HELP_GLOSSARY="Glossary" COM_ADMIN_HELP_GUIDED_TOURS:_NEW_OR_EDIT_STEP="Guided Tours: New/Edit Step" COM_ADMIN_HELP_GUIDED_TOURS:_NEW_OR_EDIT_TOUR="Guided Tours: New/Edit Tour" +COM_ADMIN_HELP_GUIDED_TOURS:_OPTIONS="Guided Tours: Options" COM_ADMIN_HELP_GUIDED_TOURS:_STEPS="Guided Tours: Steps" COM_ADMIN_HELP_GUIDED_TOURS="Guided Tours" +COM_ADMIN_HELP_HOME_DASHBOARD="Home Dashboard" COM_ADMIN_HELP_INFORMATION:_DATABASE="Extensions: Check Database" COM_ADMIN_HELP_INFORMATION:_WARNINGS="Extensions: Warnings" +COM_ADMIN_HELP_INSTALLER:_OPTIONS="Installer: Options" +COM_ADMIN_HELP_JOOMLA_UPDATE:_OPTIONS="Joomla Update: Options" COM_ADMIN_HELP_JOOMLA_UPDATE="Joomla Update" COM_ADMIN_HELP_LANGUAGES:_CONTENT="Languages: Content" COM_ADMIN_HELP_LANGUAGES:_EDIT_CONTENT_LANGUAGE="Languages: New/Edit" COM_ADMIN_HELP_LANGUAGES:_EDIT_OVERRIDE="Languages: Overrides - New/Edit" COM_ADMIN_HELP_LANGUAGES:_INSTALLED="Languages: Installed" +COM_ADMIN_HELP_LANGUAGES:_OPTIONS="Languages: Options" COM_ADMIN_HELP_LANGUAGES:_OVERRIDES="Languages: Overrides" COM_ADMIN_HELP_MAIL_TEMPLATE:_EDIT="Mail Templates: Edit" +COM_ADMIN_HELP_MAIL_TEMPLATES:_OPTIONS="Mail Templates: Options" COM_ADMIN_HELP_MAIL_TEMPLATES="Mail Templates" COM_ADMIN_HELP_MAINTENANCE:_CLEAR_CACHE="Cache: Clear Cache" COM_ADMIN_HELP_MAINTENANCE:_GLOBAL_CHECK-IN="Global Check-in" COM_ADMIN_HELP_MASS_MAIL_USERS="Mass Mail Users" +COM_ADMIN_HELP_MEDIA:_OPTIONS="Media: Options" COM_ADMIN_HELP_MEDIA="Media" +COM_ADMIN_HELP_MENU_ITEM:_ALIAS="Menu Item: Alias" +COM_ADMIN_HELP_MENU_ITEM:_ARTICLE_ARCHIVED="Menu Item: Article Archived" +COM_ADMIN_HELP_MENU_ITEM:_COMPACT_LIST_OF_TAGGED_ITEMS="Menu Item: Compact List of Tagged Items" +COM_ADMIN_HELP_MENU_ITEM:_COMPONENTS_MENU_CONTAINER="Menu Item: Components Menu Container" +COM_ADMIN_HELP_MENU_ITEM:_CONFIRM_REQUEST="Menu Item: Confirm Request" +COM_ADMIN_HELP_MENU_ITEM:_CREATE_ARTICLE="Menu Item: Create Article" +COM_ADMIN_HELP_MENU_ITEM:_CREATE_CONTACT="Menu Item: Create Contact" +COM_ADMIN_HELP_MENU_ITEM:_CREATE_REQUEST="Menu Item: Create Request" +COM_ADMIN_HELP_MENU_ITEM:_DISPLAY_TEMPLATE_OPTIONS="Menu Item: Display Template Options" +COM_ADMIN_HELP_MENU_ITEM:_EXTEND_CONSENT="Menu Item: Extend Consent" +COM_ADMIN_HELP_MENU_ITEM:_FEATURED_ARTICLES="Menu Item: Featured Articles" +COM_ADMIN_HELP_MENU_ITEM:_FEATURED_CONTACTS="Menu Item: Featured Contacts" +COM_ADMIN_HELP_MENU_ITEM:_HEADING="Menu Item: Heading" +COM_ADMIN_HELP_MENU_ITEM:_IFRAME_WRAPPER="Menu Item: Iframe Wrapper" +COM_ADMIN_HELP_MENU_ITEM:_LIST_ALL_TAGS="Menu Item: List All Tags" +COM_ADMIN_HELP_MENU_ITEM:_LOGIN_FORM="Menu Item: Login Form" +COM_ADMIN_HELP_MENU_ITEM:_LOGOUT="Menu Item: Logout" COM_ADMIN_HELP_MENU_ITEM:_NEW_ITEM="Menu: Items New/Edit" +COM_ADMIN_HELP_MENU_ITEM:_PASSWORD_RESET="Menu Item: Password Reset" +COM_ADMIN_HELP_MENU_ITEM:_REGISTRATION_FORM="Menu Item: Registration Form" +COM_ADMIN_HELP_MENU_ITEM:_SEARCH="Menu Item: Search" +COM_ADMIN_HELP_MENU_ITEM:_SEPARATOR="Menu Item: Separator" +COM_ADMIN_HELP_MENU_ITEM:_SINGLE_ARTICLE="Menu Item: Single Article" +COM_ADMIN_HELP_MENU_ITEM:_SINGLE_CONTACT="Menu Item: Single Contact" +COM_ADMIN_HELP_MENU_ITEM:_SINGLE_NEWS_FEED="Menu Item: Single News Feed" +COM_ADMIN_HELP_MENU_ITEM:_SITE_CONFIGURATION_OPTIONS="Menu Item: Site Configuration Options" +COM_ADMIN_HELP_MENU_ITEM:_TAGGED_ITEMS="Menu Item: Tagged Items" +COM_ADMIN_HELP_MENU_ITEM:_URL="Menu Item: URL" COM_ADMIN_HELP_MENUS:_EDIT="Menus: New/Edit" COM_ADMIN_HELP_MENUS:_ITEMS="Menu: Items" +COM_ADMIN_HELP_MENUS:_OPTIONS="Menus: Options" COM_ADMIN_HELP_MENUS="Menus" +COM_ADMIN_HELP_MESSAGES:_OPTIONS="Messages: Options" +COM_ADMIN_HELP_MODULES:_OPTIONS="Modules: Options" COM_ADMIN_HELP_MODULES="Modules" COM_ADMIN_HELP_MULTILINGUAL_ASSOCIATIONS:_EDIT="Multilingual Associations: Select" +COM_ADMIN_HELP_MULTILINGUAL_ASSOCIATIONS:_OPTIONS="Multilingual Associations: Options" COM_ADMIN_HELP_MULTILINGUAL_ASSOCIATIONS="Multilingual Associations" +COM_ADMIN_HELP_MY_PROFILE="My Profile" COM_ADMIN_HELP_NEWS_FEEDS:_CATEGORIES="News Feeds: Categories" COM_ADMIN_HELP_NEWS_FEEDS:_EDIT_CATEGORY="News Feeds: Categories - New/Edit" COM_ADMIN_HELP_NEWS_FEEDS:_EDIT="News Feeds: New/Edit" +COM_ADMIN_HELP_NEWS_FEED:_OPTIONS="News Feed: Options" COM_ADMIN_HELP_NEWS_FEEDS="News Feeds" +COM_ADMIN_HELP_PERMISSIONS_FOR_GROUP="Permissions for Group" COM_ADMIN_HELP_PERMISSIONS_FOR_USER="Users: Debug Users Permissions" COM_ADMIN_HELP_PLUGINS:_NAME_OF_PLUGIN="Plugins: New/Edit" +COM_ADMIN_HELP_PLUGIN:_OPTIONS="Plugin: Options" COM_ADMIN_HELP_PLUGINS="Plugins" +COM_ADMIN_HELP_POST-INSTALLATION_MESSAGES:_OPTIONS="Post-installation Messages: Options" COM_ADMIN_HELP_POST-INSTALLATION_MESSAGES_FOR_JOOMLA_CMS="Post-Installation Messages" COM_ADMIN_HELP_PRIVACY:_CONSENTS="Privacy: Consents" COM_ADMIN_HELP_PRIVACY:_EXTENSION_CAPABILITIES="Privacy: Extension Capabilities" COM_ADMIN_HELP_PRIVACY:_INFORMATION_REQUESTS="Privacy: Information Requests" COM_ADMIN_HELP_PRIVACY:_NEW_INFORMATION_REQUEST="Privacy: New Information Request" +COM_ADMIN_HELP_PRIVACY:_OPTIONS="Privacy: Options" COM_ADMIN_HELP_PRIVACY:_REVIEW_INFORMATION_REQUEST="Privacy: Review Information Request" COM_ADMIN_HELP_PRIVACY_DASHBOARD="Privacy: Dashboard" COM_ADMIN_HELP_PRIVATE_MESSAGES:_READ="Private Messages: Read" @@ -94,22 +167,52 @@ COM_ADMIN_HELP_PRIVATE_MESSAGES:_WRITE="Private Messages: Write" COM_ADMIN_HELP_PRIVATE_MESSAGES="Private Messages: Inbox" COM_ADMIN_HELP_REDIRECTS:_LINKS="Redirect: Links" COM_ADMIN_HELP_REDIRECTS:_NEW_OR_EDIT="Redirect: Links - New/Edit" +COM_ADMIN_HELP_REDIRECT:_OPTIONS="Redirect: Options" COM_ADMIN_HELP_SCHEDULED_TASKS="Scheduled Tasks" COM_ADMIN_HELP_SCHEDULED_TASKS:_EDIT="Scheduled Tasks: New/Edit" +COM_ADMIN_HELP_SCHEDULED_TASKS:_OPTIONS="Scheduled Tasks: Options" COM_ADMIN_HELP_SITE_GLOBAL_CONFIGURATION="Global Configuration" +COM_ADMIN_HELP_SITE_MODULES:_ARTICLES_-_ARCHIVED="Site Modules: Articles - Archived" +COM_ADMIN_HELP_SITE_MODULES:_ARTICLES_-_LATEST="Site Modules: Articles - Latest" +COM_ADMIN_HELP_SITE_MODULES:_ARTICLES_-_MOST_READ="Site Modules: Articles - Most Read" +COM_ADMIN_HELP_SITE_MODULES:_ARTICLES_-_NEWSFLASH="Site Modules: Articles - Newsflash" +COM_ADMIN_HELP_SITE_MODULES:_ARTICLES_-_RELATED="Site Modules: Articles - Related" +COM_ADMIN_HELP_SITE_MODULES:_BANNERS="Site Modules: Banners" +COM_ADMIN_HELP_SITE_MODULES:_BREADCRUMBS="Site Modules: Breadcrumbs" +COM_ADMIN_HELP_SITE_MODULES:_CUSTOM="Site Modules: Custom" +COM_ADMIN_HELP_SITE_MODULES:_FEED_DISPLAY="Site Modules: Feed Display" +COM_ADMIN_HELP_SITE_MODULES:_FOOTER="Site Modules: Footer" +COM_ADMIN_HELP_SITE_MODULES:_LANGUAGE_SWITCHER="Site Modules: Language Switcher" +COM_ADMIN_HELP_SITE_MODULES:_LOGIN="Site Modules: Login" +COM_ADMIN_HELP_SITE_MODULES:_MENU="Site Modules: Menu" +COM_ADMIN_HELP_SITE_MODULES:_RANDOM_IMAGE="Site Modules: Random Image" +COM_ADMIN_HELP_SITE_MODULES:_SMART_SEARCH="Site Modules: Smart Search" +COM_ADMIN_HELP_SITE_MODULES:_STATISTICS="Site Modules: Statistics" +COM_ADMIN_HELP_SITE_MODULES:_SYNDICATION_FEEDS="Site Modules: Syndication Feeds" +COM_ADMIN_HELP_SITE_MODULES:_TAGS_-_POPULAR="Site Modules: Tags - Popular" +COM_ADMIN_HELP_SITE_MODULES:_TAGS_-_SIMILAR="Site Modules: Tags - Similar" +COM_ADMIN_HELP_SITE_MODULES:_WHO_IS_ONLINE="Site Modules: Who's Online" +COM_ADMIN_HELP_SITE_MODULES:_WRAPPER="Site Modules: Wrapper" COM_ADMIN_HELP_SITE_SYSTEM_INFORMATION="System Information" COM_ADMIN_HELP_SMART_SEARCH:_CONTENT_MAPS="Smart Search: Content Maps" COM_ADMIN_HELP_SMART_SEARCH:_INDEXED_CONTENT="Smart Search: Indexed Content" COM_ADMIN_HELP_SMART_SEARCH:_NEW_OR_EDIT_FILTER="Smart Search: Filters - New/Edit" COM_ADMIN_HELP_SMART_SEARCH:_SEARCH_FILTERS="Smart Search: Search Filters" +COM_ADMIN_HELP_SMART_SEARCH:_OPTIONS="Smart Search: Options" +COM_ADMIN_HELP_SMART_SEARCH:_SEARCH_TERM_ANALYSIS="Smart Search: Search Term Analysis" +COM_ADMIN_HELP_STAGES_LIST:_BASIC_WORKFLOW="Stages List: Basic Workflow" COM_ADMIN_HELP_START_HERE="Start Here" COM_ADMIN_HELP_TAGS:_NEW_OR_EDIT="Tags: New/Edit" +COM_ADMIN_HELP_TAGS:_OPTIONS="Tags: Options" COM_ADMIN_HELP_TAGS="Tags" +COM_ADMIN_HELP_TEMPLATE:_OPTIONS="Template: Options" COM_ADMIN_HELP_TEMPLATES:_CUSTOMISE_SOURCE="Templates: Source - Edit" COM_ADMIN_HELP_TEMPLATES:_CUSTOMISE="Templates: Edit" COM_ADMIN_HELP_TEMPLATES:_EDIT_STYLE="Templates: Styles - Edit" COM_ADMIN_HELP_TEMPLATES:_STYLES="Templates: Styles" COM_ADMIN_HELP_TEMPLATES:_TEMPLATES="Templates" +COM_ADMIN_HELP_TRANSITIONS_LIST:_BASIC_WORKFLOW="Transitions List: Basic Workflow" +COM_ADMIN_HELP_USER_ACTIONS_LOG:_OPTIONS="User Actions Log: Options" COM_ADMIN_HELP_USER_ACTIONS_LOG="Action Logs" COM_ADMIN_HELP_USER_NOTES:_NEW_OR_EDIT="Users: User Notes - New/Edit" COM_ADMIN_HELP_USER_NOTES="Users: User Notes" @@ -117,8 +220,10 @@ COM_ADMIN_HELP_USERS:_EDIT_PROFILE="Users: New/Edit" COM_ADMIN_HELP_USERS:_EDIT_VIEWING_ACCESS_LEVEL="Users: Access Levels - New/Edit" COM_ADMIN_HELP_USERS:_GROUPS="Users: Groups" COM_ADMIN_HELP_USERS:_NEW_OR_EDIT_GROUP="Users: Groups - New/Edit" +COM_ADMIN_HELP_USERS:_OPTIONS="Users: Options" COM_ADMIN_HELP_USERS:_VIEWING_ACCESS_LEVELS="Users: Access Levels" COM_ADMIN_HELP_USERS="Users" +COM_ADMIN_HELP_WORKFLOWS_LIST="Workflows List" COM_ADMIN_JOOMLA_COMPAT_PLUGIN="Joomla Backward Compatibility Plugin" COM_ADMIN_JOOMLA_VERSION="Joomla! Version" COM_ADMIN_LICENSE="License" @@ -141,6 +246,8 @@ COM_ADMIN_POSTINSTALL_MSG_BEHIND_LOAD_BALANCER_DESCRIPTION="

      For Joomla sites COM_ADMIN_POSTINSTALL_MSG_BEHIND_LOAD_BALANCER_TITLE="New Server Setting \"Behind Load Balancer\"" COM_ADMIN_POSTINSTALL_MSG_HTACCESS_AUTOINDEX_DESCRIPTION="

      Before 3.9.22 the default htaccess.txt file contained erroneous code meant for disabling directory listings. The security team recommends to manually apply the necessary changes to any existing .htaccess file, as this file can not be updated automatically.

      The old code:

      <IfModule autoindex>\n  IndexIgnore *\n</IfModule>

      The new code:

      <IfModule mod_autoindex.c>\n  IndexIgnore *\n</IfModule>
      " COM_ADMIN_POSTINSTALL_MSG_HTACCESS_AUTOINDEX_TITLE=".htaccess Update Concerning Directory Listings" +COM_ADMIN_POSTINSTALL_MSG_HTACCESS_BROTLI_DESCRIPTION="

      Before 5.1.0 the default htaccess.txt did not support Brotli compression. This could result in double compression errors when Joomla is installed on a server that uses Brotli compression. You should manually apply the necessary changes to any existing .htaccess file, as this file can not be updated automatically.

      The old code:

      RewriteRule \"\.css\.gz$\" \"-\" [T=text/css,E=no-gzip:1]
      RewriteRule \"\.js\.gz$\" \"-\" [T=text/javascript,E=no-gzip:1]

      The new code:

      RewriteRule \"\.css\.gz$\" \"-\" [T=text/css,E=no-gzip:1,E=no-brotli:1]
      RewriteRule \"\.js\.gz$\" \"-\" [T=text/javascript,E=no-gzip:1,E=no-brotli:1]
      " +COM_ADMIN_POSTINSTALL_MSG_HTACCESS_BROTLI_TITLE=".htaccess Update Brotli Compression" COM_ADMIN_POSTINSTALL_MSG_HTACCESS_SETCE_DESCRIPTION="

      Before 4.2.9 the default htaccess.txt file contained erroneous code for appending the \"Content-Encoding\" HTTP header. This could result in double encoding errors when Joomla is installed in a subdirectory and both this directory and its parent directory contain an .htaccess file with this code. You should manually apply the necessary changes to any existing .htaccess file, as this file can not be updated automatically.

      The old code:

      Header append Content-Encoding gzip

      The new code:

      Header set Content-Encoding gzip
      " COM_ADMIN_POSTINSTALL_MSG_HTACCESS_SETCE_TITLE=".htaccess Update Concerning Setting the Content-Encoding Header" COM_ADMIN_SAVE_SUCCESS="Profile saved." diff --git a/administrator/language/en-GB/com_cpanel.ini b/administrator/language/en-GB/com_cpanel.ini index ec907be8fdba3..819dc30fd0f70 100644 --- a/administrator/language/en-GB/com_cpanel.ini +++ b/administrator/language/en-GB/com_cpanel.ini @@ -30,6 +30,6 @@ COM_CPANEL_MSG_TEXTFILTER3919_TITLE="Updated Text Filter Recommendations" COM_CPANEL_TITLE_SYSTEM_PANEL="System Panel" COM_CPANEL_UNPUBLISH_MODULE_ERROR="Error unpublishing the module" COM_CPANEL_UNPUBLISH_MODULE_SUCCESS="Module unpublished" -COM_CPANEL_WELCOME_BEGINNERS_MESSAGE="

      Community resources are available for new users.

      " +COM_CPANEL_WELCOME_BEGINNERS_MESSAGE="

      Community resources are available for new users.

      " COM_CPANEL_WELCOME_BEGINNERS_TITLE="Welcome to Joomla!" COM_CPANEL_XML_DESCRIPTION="Home Dashboard component" diff --git a/administrator/language/en-GB/com_redirect.ini b/administrator/language/en-GB/com_redirect.ini index 7fb4e39ed45e6..76501a2367e29 100644 --- a/administrator/language/en-GB/com_redirect.ini +++ b/administrator/language/en-GB/com_redirect.ini @@ -66,6 +66,7 @@ COM_REDIRECT_HEADING_STATUS_CODE_DESC="Status Code descending" COM_REDIRECT_MANAGER_LINK_EDIT="Redirects: Edit" COM_REDIRECT_MANAGER_LINK_NEW="Redirects: New" COM_REDIRECT_MANAGER_LINKS="Redirects: Links" +COM_REDIRECT_MODE_DESC="The Advanced Mode allows the use of HTTP 1.1 status codes other than the default '301 Permanently Moved'." COM_REDIRECT_MODE_LABEL="Activate Advanced Mode" COM_REDIRECT_N_ITEMS_ARCHIVED="%d links archived." COM_REDIRECT_N_ITEMS_ARCHIVED_1="Link archived." diff --git a/administrator/language/en-GB/com_users.ini b/administrator/language/en-GB/com_users.ini index 16f622a8c5871..bc40ad27db639 100644 --- a/administrator/language/en-GB/com_users.ini +++ b/administrator/language/en-GB/com_users.ini @@ -253,7 +253,7 @@ COM_USERS_MFA_ACTIVE="Uses Multi-factor Authentication" COM_USERS_MFA_ADD_AUTHENTICATOR_OF_TYPE="Add a new %s" COM_USERS_MFA_ADD_PAGE_HEAD="Add a Multi-factor Authentication Method" COM_USERS_MFA_BACKUPCODES_PRINT_PROMPT="Backup Codes let you log into the site if your regular Multi-factor Authentication method does not work or you no longer have access to it. Each code can be used only once." -COM_USERS_MFA_BACKUPCODES_PRINT_PROMPT_HEAD="Print these codes and keep them in your wallet." +COM_USERS_MFA_BACKUPCODES_PRINT_PROMPT_HEAD="Print these codes and keep them in your wallet." COM_USERS_MFA_BACKUPCODES_RESET="Regenerate Backup Codes" COM_USERS_MFA_BACKUPCODES_RESET_INFO="Use the \"Regenerate Backup Codes\" button on the toolbar to generate a new set of Backup Codes. We recommend that you do this if you think your Backup Codes are compromised, e.g. someone got hold of a printout with them, or if you are running low on available Backup Codes." COM_USERS_MFA_EDIT_FIELD_DEFAULT="Make this the default Multi-factor Authentication method" diff --git a/administrator/language/en-GB/install.xml b/administrator/language/en-GB/install.xml index 33b6f2c6245de..33e5241384b82 100644 --- a/administrator/language/en-GB/install.xml +++ b/administrator/language/en-GB/install.xml @@ -2,8 +2,8 @@ English (en-GB) en-GB - 5.1.0 - 2024-03 + 5.2.0 + 2024-05 Joomla! Project admin@joomla.org www.joomla.org diff --git a/administrator/language/en-GB/langmetadata.xml b/administrator/language/en-GB/langmetadata.xml index 232a1673a443c..ba5dc208257e2 100644 --- a/administrator/language/en-GB/langmetadata.xml +++ b/administrator/language/en-GB/langmetadata.xml @@ -1,8 +1,8 @@ English (en-GB) - 5.1.0 - 2024-03 + 5.2.0 + 2024-05 Joomla! Project admin@joomla.org www.joomla.org diff --git a/administrator/language/en-GB/lib_joomla.ini b/administrator/language/en-GB/lib_joomla.ini index 787e15029f846..637d26c4feafe 100644 --- a/administrator/language/en-GB/lib_joomla.ini +++ b/administrator/language/en-GB/lib_joomla.ini @@ -46,7 +46,7 @@ JLIB_APPLICATION_ERROR_MENU_LOAD="Error loading menu: %s" JLIB_APPLICATION_ERROR_MODEL_CREATE="Failed to create model." JLIB_APPLICATION_ERROR_MODELCLASS_NOT_FOUND="Model class %s not found in file." JLIB_APPLICATION_ERROR_MODULE_LOAD="Error loading module %s" -JLIB_APPLICATION_ERROR_NOT_EXIST="That item is no longer available. It may have existed before, but has since been trashed permanently" +JLIB_APPLICATION_ERROR_NOT_EXIST="That item is no longer available. It may have existed before, but has since been trashed permanently." JLIB_APPLICATION_ERROR_PATHWAY_LOAD="Unable to load pathway: %s" JLIB_APPLICATION_ERROR_RECORD="Record does not exist." JLIB_APPLICATION_ERROR_REORDER_FAILED="Reorder failed. Error: %s" @@ -663,6 +663,7 @@ JLIB_INSTALLER_SQL_END="End of SQL updates." JLIB_INSTALLER_SQL_END_NOT_COMPLETE="End of SQL updates - INCOMPLETE." JLIB_INSTALLER_TUF_DEBUG_MESSAGE="TUF Debug Message: %s" JLIB_INSTALLER_TUF_DOWNLOAD_SIZE="The size of the update downloaded did not match the expected size." +JLIB_INSTALLER_TUF_ERROR_GENERIC="Could not fetch update information, enable system debug mode for further information." JLIB_INSTALLER_TUF_FREEZE_ATTACK="Update not possible because the offered update has expired." JLIB_INSTALLER_TUF_INVALID_METADATA="The saved TUF update information is invalid." JLIB_INSTALLER_TUF_NOT_AVAILABLE="TUF is not available for extensions yet." diff --git a/administrator/language/en-GB/localise.php b/administrator/language/en-GB/localise.php index 4da06e5bb84e2..e38f4aaeac8bb 100644 --- a/administrator/language/en-GB/localise.php +++ b/administrator/language/en-GB/localise.php @@ -50,6 +50,8 @@ public static function getPluralSuffixes($count) * @return array An array of ignored search words. * * @since 1.6 + * + * @deprecated 5.1 will be removed in 7.0 without replacement */ public static function getIgnoredSearchWords() { @@ -62,6 +64,8 @@ public static function getIgnoredSearchWords() * @return integer The lower length limit of search words. * * @since 1.6 + * + * @deprecated 5.1 will be removed in 7.0 without replacement */ public static function getLowerLimitSearchWord() { @@ -74,6 +78,8 @@ public static function getLowerLimitSearchWord() * @return integer The upper length limit of search words. * * @since 1.6 + * + * @deprecated 5.1 will be removed in 7.0 without replacement */ public static function getUpperLimitSearchWord() { @@ -86,6 +92,8 @@ public static function getUpperLimitSearchWord() * @return integer The number of chars to display when searching. * * @since 1.6 + * + * @deprecated 5.1 will be removed in 7.0 without replacement */ public static function getSearchDisplayedCharactersNumber() { diff --git a/administrator/language/en-GB/mod_latest.ini b/administrator/language/en-GB/mod_latest.ini index 4ed7b52f030c0..20bb62ff8cd67 100644 --- a/administrator/language/en-GB/mod_latest.ini +++ b/administrator/language/en-GB/mod_latest.ini @@ -14,6 +14,8 @@ MOD_LATEST_FIELD_VALUE_AUTHORS_BY_ME="Added or modified by me" MOD_LATEST_FIELD_VALUE_AUTHORS_NOT_BY_ME="Not added or modified by me" MOD_LATEST_FIELD_VALUE_ORDERING_ADDED="Recently Added First" MOD_LATEST_FIELD_VALUE_ORDERING_MODIFIED="Recently Modified First" +MOD_LATEST_HEADING_DATE_CREATED="Date Created" +MOD_LATEST_HEADING_DATE_MODIFIED="Date Modified" MOD_LATEST_LATEST_ITEMS="Latest Items" MOD_LATEST_NO_MATCHING_RESULTS="No Matching Results" MOD_LATEST_TITLE="Recently Created Articles" diff --git a/administrator/language/en-GB/mod_user.ini b/administrator/language/en-GB/mod_user.ini index c30a0744b3882..adbe9df8f39c7 100644 --- a/administrator/language/en-GB/mod_user.ini +++ b/administrator/language/en-GB/mod_user.ini @@ -5,9 +5,12 @@ MOD_USER="User Menu" MOD_USER_ACCESSIBILITY_SETTINGS="Accessibility Settings" -MOD_USER_DARK_MODE="Dark Mode" MOD_USER_EDIT_ACCOUNT="Edit Account" -MOD_USER_LIGHT_MODE="Light Mode" +MOD_USER_LIGHTDARK_MODE="Light/Dark Mode" MOD_USER_MENU="User Menu" MOD_USER_TITLE="Signed in as %s" MOD_USER_XML_DESCRIPTION="This module shows the User Menu and is intended to be displayed in the 'status' position." + +; Deprecated, will be removed with 6.0 +MOD_USER_LIGHT_MODE="Light Mode" +MOD_USER_DARK_MODE="Dark Mode" diff --git a/administrator/language/en-GB/plg_editors_tinymce.ini b/administrator/language/en-GB/plg_editors_tinymce.ini index 7359a2b846992..162458329c143 100644 --- a/administrator/language/en-GB/plg_editors_tinymce.ini +++ b/administrator/language/en-GB/plg_editors_tinymce.ini @@ -44,6 +44,11 @@ PLG_TINY_FIELD_HTMLWIDTH_LABEL="HTML Width" PLG_TINY_FIELD_LABEL_ADVANCEDPARAMS="Advanced" PLG_TINY_FIELD_LANGCODE_LABEL="Language Code" PLG_TINY_FIELD_LANGSELECT_LABEL="Automatic Language Selection" +PLG_TINY_FIELD_LINK_CLASS_LIST_LABEL="Class List" +PLG_TINY_FIELD_LINK_CLASS_NAME_LABEL="Name" +PLG_TINY_FIELD_LINK_CLASS_NONE="None" +PLG_TINY_FIELD_LINK_CLASSES_LIST_DESC="Add default classes to the class dropdown in the create link dialog." +PLG_TINY_FIELD_LINK_CLASSES_LIST_LABEL="Link Classes List" PLG_TINY_FIELD_NEWLINES_LABEL="New Lines" PLG_TINY_FIELD_NUMBER_OF_SETS_LABEL="Number of Sets" PLG_TINY_FIELD_PASTE_AS_TEXT_LABEL="Paste As Text" diff --git a/administrator/language/en-GB/plg_sampledata_blog.ini b/administrator/language/en-GB/plg_sampledata_blog.ini index 78e84a78f9782..477711d46a127 100644 --- a/administrator/language/en-GB/plg_sampledata_blog.ini +++ b/administrator/language/en-GB/plg_sampledata_blog.ini @@ -42,7 +42,7 @@ PLG_SAMPLEDATA_BLOG_SAMPLEDATA_CONTENT_ARTICLE_8_TITLE="Joomla" PLG_SAMPLEDATA_BLOG_SAMPLEDATA_CONTENT_ARTICLE_9_FIELD_0="Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua." PLG_SAMPLEDATA_BLOG_SAMPLEDATA_CONTENT_ARTICLE_9_FULLTEXT="" PLG_SAMPLEDATA_BLOG_SAMPLEDATA_CONTENT_ARTICLE_9_INTROTEXT="

      Workflows manage the stages your articles must go through until they are published.

      The component to manage workflows is not enabled by default.

      To see the workflow that we have provided with the sample data, you first need to enable this functionality.

      1. Access the administration area
      2. From 'Content' > 'Articles' > 'Options' > 'Integration' tab set 'Enable workflow' to 'Yes'
      3. Save changes

      Now when you access 'Content' again you will see the section 'Workflows'.

      When you edit an article you will also see the new transitions for articles related to workflows.

      " -PLG_SAMPLEDATA_BLOG_SAMPLEDATA_CONTENT_ARTICLE_9_TITLE="New feature: Workflows" +PLG_SAMPLEDATA_BLOG_SAMPLEDATA_CONTENT_ARTICLE_9_TITLE="Workflows" PLG_SAMPLEDATA_BLOG_SAMPLEDATA_CONTENT_CATEGORY_0_TITLE="Blog" PLG_SAMPLEDATA_BLOG_SAMPLEDATA_CONTENT_CATEGORY_1_TITLE="Help" PLG_SAMPLEDATA_BLOG_SAMPLEDATA_CONTENT_CATEGORY_2_TITLE="Joomla" diff --git a/administrator/language/en-GB/plg_system_cache.ini b/administrator/language/en-GB/plg_system_cache.ini index a88193c3fb297..51fff51d03fb5 100644 --- a/administrator/language/en-GB/plg_system_cache.ini +++ b/administrator/language/en-GB/plg_system_cache.ini @@ -7,5 +7,5 @@ PLG_CACHE_FIELD_BROWSERCACHE_LABEL="Use Browser Caching" PLG_CACHE_FIELD_EXCLUDE_DESC="Specify which URLs you want to exclude from caching, each on a separate line. Regular expressions are supported, eg.
      about\-[a-z]+ - will exclude all URLs that have 'about-', for example 'about-us', 'about-me', 'about-joomla' etc.
      /component/users/ - will exclude all URLs that have /component/users/.
      com_users - will exclude all Users component pages." PLG_CACHE_FIELD_EXCLUDE_LABEL="Exclude URLs" PLG_CACHE_FIELD_EXCLUDE_MENU_ITEMS_LABEL="Exclude Menu Items" -PLG_CACHE_XML_DESCRIPTION="Provides page caching." +PLG_CACHE_XML_DESCRIPTION="Provides page caching. This is only suitable for sites that have static content or content that does not change frequently." PLG_SYSTEM_CACHE="System - Page Cache" diff --git a/administrator/language/en-GB/plg_system_cache.sys.ini b/administrator/language/en-GB/plg_system_cache.sys.ini index ad7b7a3f0d73d..89b27dbec6df8 100644 --- a/administrator/language/en-GB/plg_system_cache.sys.ini +++ b/administrator/language/en-GB/plg_system_cache.sys.ini @@ -3,5 +3,5 @@ ; License GNU General Public License version 2 or later; see LICENSE.txt ; Note : All ini files need to be saved as UTF-8 -PLG_CACHE_XML_DESCRIPTION="Provides page caching." +PLG_CACHE_XML_DESCRIPTION="Provides page caching. This is only suitable for sites that have static content or content that does not change frequently." PLG_SYSTEM_CACHE="System - Page Cache" diff --git a/administrator/language/en-GB/plg_system_languagefilter.ini b/administrator/language/en-GB/plg_system_languagefilter.ini index e23fed35d4ec6..1ef0ade87b738 100644 --- a/administrator/language/en-GB/plg_system_languagefilter.ini +++ b/administrator/language/en-GB/plg_system_languagefilter.ini @@ -5,6 +5,7 @@ PLG_SYSTEM_LANGUAGEFILTER="System - Language Filter" PLG_SYSTEM_LANGUAGEFILTER_BROWSER_SETTINGS="Browser Settings" +PLG_SYSTEM_LANGUAGEFILTER_ERROR_NO_CONTENT_LANGUAGE="You have no content language published, but have enabled the Language Filter plugin. This will result in numerous errors!" PLG_SYSTEM_LANGUAGEFILTER_FIELD_ALTERNATE_META_LABEL="Add Alternate Meta Tags" PLG_SYSTEM_LANGUAGEFILTER_FIELD_AUTOMATIC_CHANGE_LABEL="Automatic Language Change" PLG_SYSTEM_LANGUAGEFILTER_FIELD_COOKIE_LABEL="Cookie Lifetime" diff --git a/administrator/manifests/files/joomla.xml b/administrator/manifests/files/joomla.xml index d7e233965700c..a40693afda572 100644 --- a/administrator/manifests/files/joomla.xml +++ b/administrator/manifests/files/joomla.xml @@ -6,8 +6,8 @@ www.joomla.org (C) 2019 Open Source Matters, Inc. GNU General Public License version 2 or later; see LICENSE.txt - 5.1.0-beta3-dev - 2024-03 + 5.2.0-alpha1-dev + 2024-05 FILES_JOOMLA_XML_DESCRIPTION administrator/components/com_admin/script.php diff --git a/administrator/manifests/packages/pkg_en-GB.xml b/administrator/manifests/packages/pkg_en-GB.xml index 0a4dd943808d1..3724a56b68096 100644 --- a/administrator/manifests/packages/pkg_en-GB.xml +++ b/administrator/manifests/packages/pkg_en-GB.xml @@ -2,8 +2,8 @@ English (en-GB) Language Pack en-GB - 5.1.0.1 - 2024-03 + 5.2.0.1 + 2024-05 Joomla! Project admin@joomla.org www.joomla.org diff --git a/administrator/modules/mod_latest/src/Helper/LatestHelper.php b/administrator/modules/mod_latest/src/Helper/LatestHelper.php index f0db28fd79eaa..afab1bb8a8a20 100644 --- a/administrator/modules/mod_latest/src/Helper/LatestHelper.php +++ b/administrator/modules/mod_latest/src/Helper/LatestHelper.php @@ -41,7 +41,7 @@ public static function getList(Registry $params, ArticlesModel $model) $user = Factory::getUser(); // Set List SELECT - $model->setState('list.select', 'a.id, a.title, a.checked_out, a.checked_out_time, ' . + $model->setState('list.select', 'a.id, a.title, a.checked_out, a.checked_out_time, a.modified,' . ' a.access, a.created, a.created_by, a.created_by_alias, a.featured, a.state, a.publish_up, a.publish_down'); // Set Ordering filter @@ -66,7 +66,7 @@ public static function getList(Registry $params, ArticlesModel $model) } // Set User Filter. - $userId = $user->get('id'); + $userId = $user->id; switch ($params->get('user_id', '0')) { case 'by_me': diff --git a/administrator/modules/mod_latest/tmpl/default.php b/administrator/modules/mod_latest/tmpl/default.php index f77973ade2cd1..572dd93e4a9c6 100644 --- a/administrator/modules/mod_latest/tmpl/default.php +++ b/administrator/modules/mod_latest/tmpl/default.php @@ -25,7 +25,9 @@ - + + get('ordering', 'c_dsc') == 'm_dsc') ? Text::_('MOD_LATEST_HEADING_DATE_MODIFIED') : Text::_('MOD_LATEST_HEADING_DATE_CREATED'); ?> + @@ -53,7 +55,7 @@ author_name; ?> - created, Text::_('DATE_FORMAT_LC4')); ?> + get('ordering', 'c_dsc') == 'm_dsc') ? HTMLHelper::_('date', $item->modified, Text::_('DATE_FORMAT_LC4')) : HTMLHelper::_('date', $item->created, Text::_('DATE_FORMAT_LC4')); ?> diff --git a/administrator/modules/mod_popular/src/Helper/PopularHelper.php b/administrator/modules/mod_popular/src/Helper/PopularHelper.php index ec089cdb54ae9..926196117773e 100644 --- a/administrator/modules/mod_popular/src/Helper/PopularHelper.php +++ b/administrator/modules/mod_popular/src/Helper/PopularHelper.php @@ -58,7 +58,7 @@ public static function getList(Registry $params, ArticlesModel $model) } // Set User Filter. - $userId = $user->get('id'); + $userId = $user->id; switch ($params->get('user_id', '0')) { case 'by_me': diff --git a/administrator/modules/mod_title/src/Dispatcher/Dispatcher.php b/administrator/modules/mod_title/src/Dispatcher/Dispatcher.php index 227b00e525d62..9beaf2a43295d 100644 --- a/administrator/modules/mod_title/src/Dispatcher/Dispatcher.php +++ b/administrator/modules/mod_title/src/Dispatcher/Dispatcher.php @@ -35,6 +35,7 @@ protected function getLayoutData() $data = parent::getLayoutData(); // Get the component title div + // @deprecated 5.2.0 will be removed in 7.0 as this property is not used anymore see WebApplication if (isset($this->getApplication()->JComponentTitle)) { $data['title'] = $this->getApplication()->JComponentTitle; } diff --git a/administrator/modules/mod_user/tmpl/default.php b/administrator/modules/mod_user/tmpl/default.php index 2d0298a8bbb07..e855c4b2f2d92 100644 --- a/administrator/modules/mod_user/tmpl/default.php +++ b/administrator/modules/mod_user/tmpl/default.php @@ -54,10 +54,10 @@ diff --git a/api/language/en-GB/install.xml b/api/language/en-GB/install.xml index 2ff4da9c4a04a..1faf0713db7cc 100644 --- a/api/language/en-GB/install.xml +++ b/api/language/en-GB/install.xml @@ -2,8 +2,8 @@ English (en-GB) en-GB - 5.1.0 - 2024-03 + 5.2.0 + 2024-05 Joomla! Project admin@joomla.org www.joomla.org diff --git a/api/language/en-GB/langmetadata.xml b/api/language/en-GB/langmetadata.xml index d3664586e9bc2..3ef719594d045 100644 --- a/api/language/en-GB/langmetadata.xml +++ b/api/language/en-GB/langmetadata.xml @@ -1,8 +1,8 @@ English (en-GB) - 5.1.0 - 2024-03 + 5.2.0 + 2024-05 Joomla! Project admin@joomla.org www.joomla.org diff --git a/build.xml b/build.xml index d6741b8b7f2fc..63057d9d0afb6 100644 --- a/build.xml +++ b/build.xml @@ -85,7 +85,7 @@ - + diff --git a/build/build-modules-js/css-versioning.es6.js b/build/build-modules-js/css-versioning.es6.js index 9377ca485fed4..e9775325ce019 100644 --- a/build/build-modules-js/css-versioning.es6.js +++ b/build/build-modules-js/css-versioning.es6.js @@ -1,10 +1,11 @@ const { createHash } = require('node:crypto'); -const { readdir, readFile, writeFile } = require('fs/promises'); +const { readdir, readFile, writeFile } = require('node:fs/promises'); const { existsSync, readFileSync } = require('node:fs'); const { dirname, extname, resolve } = require('node:path'); const { transform, composeVisitors } = require('lightningcss'); const { Timer } = require('./utils/timer.es6.js'); +const RootPath = process.cwd(); const skipExternal = true; const variable = 'v'; @@ -56,13 +57,15 @@ function urlVersioning(fromFile) { */ const fixVersion = async (file) => { try { - const cssString = await readFile(file); const { code } = transform({ - code: cssString, - minify: false, + code: await readFile(file), + minify: file.endsWith('.min.css'), visitor: composeVisitors([urlVersioning(file)]), }); - await writeFile(file, code, { encoding: 'utf8', mode: 0o644 }); + await writeFile(file, `@charset "UTF-8";${file.endsWith('.min.css') ? '' : '\n'}${code}`, { + encoding: 'utf8', + mode: 0o644, + }); } catch (error) { throw new Error(error); } @@ -76,7 +79,7 @@ const fixVersion = async (file) => { module.exports.cssVersioning = async () => { const bench = new Timer('Versioning'); - const cssFiles = (await readdir('media', { withFileTypes: true, recursive: true })) + const cssFiles = (await readdir(`${RootPath}/media`, { withFileTypes: true, recursive: true })) .filter((file) => (!file.isDirectory() && extname(file.name) === '.css')) .map((file) => `${file.path}/${file.name}`); diff --git a/build/build-modules-js/settings.json b/build/build-modules-js/settings.json index a4b51b7ea7765..9c0058ef2d1c4 100644 --- a/build/build-modules-js/settings.json +++ b/build/build-modules-js/settings.json @@ -843,7 +843,7 @@ "title": "Joomla: Environment Setup Incomplete", "header": "Environment Setup Incomplete", "text": "It looks like you are trying to run Joomla! from our git repository. To do so requires you complete a couple of extra steps first.", - "link": "J4.x:Setting_Up_Your_Local_Environment", + "link": "J5.x:Setting_Up_Your_Local_Environment", "linkText": "More Details", "destFile": [ "/templates/system/build_incomplete.html" diff --git a/build/github_rebase.php b/build/github_rebase.php index 721d2cd7e8cb3..8016fbc1ae2b8 100644 --- a/build/github_rebase.php +++ b/build/github_rebase.php @@ -64,16 +64,16 @@ $baseBranches = $argi[1]; break; case '--target': - $targetBranch = $argi[1]; + $targetBranch = $argi[1]; break; case '--pr': - $prNumber = $argi[1]; + $prNumber = $argi[1]; break; case '--label': - $label = $argi[1]; + $label = $argi[1]; break; case '--reason': - $additionalReason = $argi[1]; + $additionalReason = $argi[1]; break; default: die('Unknown option: ' . $argi[0]); @@ -160,7 +160,7 @@ $list = json_decode($json, true); -echo "\nFound " . count($list) . " pull request(s).\n"; +echo "\nFound " . \count($list) . " pull request(s).\n"; foreach ($list as $pr) { echo "Rebase #" . $pr['number'] . "\n"; diff --git a/build/github_update_title.php b/build/github_update_title.php new file mode 100644 index 0000000000000..de220ab77837a --- /dev/null +++ b/build/github_update_title.php @@ -0,0 +1,183 @@ + + * @license GNU General Public License version 2 or later; see LICENSE.txt + */ + +// Set defaults +$scriptRoot = __DIR__; +$prNumber = false; +$php = 'php'; +$git = 'git'; +$gh = 'gh'; +$checkPath = false; +$ghRepo = 'joomla/joomla-cms'; +$baseBranches = '4.1-dev'; +$label = ''; +$additionalReason = ''; +$tryRun = false; + +$script = array_shift($argv); + +if (empty($argv)) { + echo <<] + + Description: + Rebase all open pull requests on github to the target branch. + + --try-run: + Just list the PRs which would be rebased. + + --base: + The base branch of the pull request. Multiple branches can be separated by comma. + + --label: + The tag of the pull request must have to be rebased. + + --pr: + Rebase only the given PR. + + TEXT; + die(1); +} + +foreach ($argv as $arg) { + if (substr($arg, 0, 2) === '--') { + $argi = explode('=', $arg, 2); + switch ($argi[0]) { + case '--try-run': + $tryRun = true; + break; + case '--base': + $baseBranches = $argi[1]; + break; + case '--pr': + $prNumber = $argi[1]; + break; + case '--label': + $label = $argi[1]; + break; + case '--reason': + $additionalReason = $argi[1]; + break; + default: + die('Unknown option: ' . $argi[0]); + } + } else { + $checkPath = $arg; + break; + } +} + +$cmd = $git . ' -C "' . $scriptRoot . '" rev-parse --show-toplevel'; +$output = []; +$repoScript = ''; +exec($cmd, $output, $result); +if ($result !== 0) { + $repoScript = $output[0]; + die($script . ' must be located inside of the git repository'); +} + +echo "Validate gh client...\n"; +$cmd = $gh; +$output = []; +exec($cmd, $output, $result); +if ($result !== 0) { + die('Github cli client not found. Please install the client first (https://cli.github.com)'); +} + +echo "Validate gh authentication...\n"; +$cmd = $gh . ' auth status'; +passthru($cmd, $result); +if ($result !== 0) { + die('Please login with the github cli client first. (gh auth login)'); +} + +$fieldList = [ + "number", + "author", + "baseRefName", + "headRefName", + "headRepository", + "headRepositoryOwner", + "isCrossRepository", + "maintainerCanModify", + "mergeStateStatus", + "mergeable", + "state", + "title", + "url", + "labels", +]; + +$branches = 'base:' . implode(' base:', explode(',', $baseBranches)); + +if (!empty($label)) { + $branches .= ' label:' . $label; +} + +if (!empty($prNumber)) { + echo "Retrieving Pull Request " . $prNumber . "...\n"; + $cmd = $gh . ' pr view ' . $prNumber . ' --json ' . implode(',', $fieldList); +} else { + echo "Retrieving Pull Request list...\n"; + $cmd = $gh . ' pr list --limit 1000 --json ' . implode(',', $fieldList) . ' --search "is:pr is:open ' . $branches . '"'; +} + +$output = []; +exec($cmd, $output, $result); +if ($result !== 0) { + var_dump([$cmd, $output, $result]); + die('Unable to retrieve PR list.'); +} + +$json = $output[0]; + +if (!empty($prNumber)) { + $json = '[' . $json . ']'; +} + +$list = json_decode($json, true); + +echo "\nFound " . \count($list) . " pull request(s).\n"; + +foreach ($list as $pr) { + echo "Change Title for PR #" . $pr['number'] . "\n"; + + $branch = substr($pr['baseRefName'], 0, strpos($pr['baseRefName'], '-')); + + $title = $pr['title']; + + if (str_contains($title, ']') && strpos($title, ']') < 10) { + $title = substr($title, strpos($title, ']') + 1); + } + + $newTitle = '[' . $branch . '] ' . trim($title); + + if ($newTitle === $pr['title']) { + continue; + } + + echo 'OLD: ' . trim($pr['title']) ."\n"; + echo 'NEW: ' . $newTitle ."\n"; + + $cmd = $gh . ' pr edit ' . $pr['url'] . ' --title "' . str_replace('"', '\"', $newTitle) . '"'; + $output = []; + if (!$tryRun) { + exec($cmd, $output, $result); + if ($result !== 0) { + var_dump([$cmd, $output, $result]); + die('Unable to set target branch for pr #' . $pr['number']); + } + } else { + echo "TRY RUN: " . $cmd . "\n"; + } +} diff --git a/build/helpTOC.php b/build/helpTOC.php index 53488957f8046..70a6f2d35e55c 100644 --- a/build/helpTOC.php +++ b/build/helpTOC.php @@ -87,49 +87,59 @@ protected function doExecute(InputInterface $input, OutputInterface $output): in $io->comment('Fetching data from docs wiki'); - // Get the category members (local hack) - $categoryMembers = $mediawiki->categories->getCategoryMembers( - sprintf('Category:Help_screen_%s.%s', Version::MAJOR_VERSION, Version::MINOR_VERSION), - null, - 'max' - ); - - $members = []; - - // Loop through the result objects to get every document - foreach ($categoryMembers->query->categorymembers as $catmembers) { - foreach ($catmembers as $member) { - $members[] = (string) $member['title']; - } - } + $cleanMembers = []; - // Get the language object - $language = Factory::getLanguage(); + $io->comment(sprintf('Loop through docs wiki categories since Joomla Version %d.0 - Takes a while ...', Version::MAJOR_VERSION)); - /* - * Now we start fancy processing so we can get the language key for the titles - */ + // Loop through the Versions since 5.0 to get all HelpTocs - Temporary fix + for ($helpScreenMinor=Version::MINOR_VERSION; $helpScreenMinor >= 0; $helpScreenMinor--) { - $cleanMembers = []; + // Get the category members (local hack) + $categoryMembers = $mediawiki->categories->getCategoryMembers( + sprintf('Category:Help_screen_%s.%s', Version::MAJOR_VERSION, $helpScreenMinor), + null, + 'max' + ); - // Strip the namespace prefix off the titles and replace spaces with underscores - $namespace = sprintf('Help%d.x:', Version::MAJOR_VERSION); + $members = []; - foreach ($members as $member) { - $cleanMembers[] = str_replace([$namespace, ' '], ['', '_'], $member); + // Loop through the result objects to get every document + foreach ($categoryMembers->query->categorymembers as $catmembers) { + foreach ($catmembers as $member) { + $members[] = (string) $member['title']; + } + } + + /* + * Now we start fancy processing so we can get the language key for the titles + */ + + // Strip the namespace prefix off the titles and replace spaces with underscores + $namespace = sprintf('Help%d.x:', Version::MAJOR_VERSION); + + foreach ($members as $member) { + $cleanMembers[str_replace([$namespace, ' '], ['', '_'], $member)] = trim(str_replace($namespace, ' ', $member)); + } } // Make sure we only have an array of unique values before continuing $cleanMembers = array_unique($cleanMembers); + // Get the language object + $language = Factory::getLanguage(); + // Load the admin com_admin language file $language->load('com_admin', JPATH_ADMINISTRATOR); - $toc = []; + $toc = []; + $missing = []; + + // filter for translated Media-Wiki articles + $translationLanguages = ['/de', '/en', '/fr', '/nl', '/pt-br', '/es', '/pt', '/it']; foreach ($cleanMembers as $key => $value) { - $string = strtoupper($value); + $string = strtoupper($key); // Validate the key exists $io->comment(sprintf('Validating key COM_ADMIN_HELP_%s', $string)); @@ -137,11 +147,13 @@ protected function doExecute(InputInterface $input, OutputInterface $output): in if ($language->hasKey('COM_ADMIN_HELP_' . $string)) { $io->comment(sprintf('Adding %s', $string)); - $toc[$value] = $string; + $toc[$key] = $string; } else { // We check the string for words in singular/plural form and check again $io->comment(sprintf('Inflecting %s', $string)); + $inflected = ''; + if (strpos($string, '_CATEGORIES') !== false) { $inflected = str_replace('_CATEGORIES', '_CATEGORY', $string); } elseif (strpos($string, '_USERS') !== false) { @@ -150,8 +162,10 @@ protected function doExecute(InputInterface $input, OutputInterface $output): in $inflected = str_replace('_CATEGORY', '_CATEGORIES', $string); } elseif (strpos($string, '_USER') !== false) { $inflected = str_replace('_USER', '_USERS', $string); - } else { - $inflected = ''; + } + + if ($inflected === '' && !\in_array(substr($value, strrpos($value, '/')), $translationLanguages)) { + $missing[$string] = $value; } // Now try to validate the key @@ -161,7 +175,7 @@ protected function doExecute(InputInterface $input, OutputInterface $output): in if ($language->hasKey('COM_ADMIN_HELP_' . $inflected)) { $io->comment(sprintf('Adding %s', $inflected)); - $toc[$value] = $inflected; + $toc[$key] = $inflected; } } } @@ -172,6 +186,25 @@ protected function doExecute(InputInterface $input, OutputInterface $output): in // JSON encode the file and write it to JPATH_ADMINISTRATOR/help/en-GB/toc.json file_put_contents(JPATH_ADMINISTRATOR . '/help/en-GB/toc.json', json_encode($toc)); + if (\count($missing)) { + + $str_missing = ''; + + foreach ($missing as $string => $value) { + $str_missing .= 'COM_ADMIN_HELP_' . $string . '="' . $value . '"'. PHP_EOL; + } + + // write missing strings to JPATH_BASE/tmp/missing-helptoc.txt + file_put_contents(JPATH_BASE . '/tmp/missing-helptoc.txt', $str_missing); + + $io->caution(sprintf('Number of media-wiki articles without string: %d', \count($missing))); + + $io->note(sprintf('Missing strings are saved in: %s and should be revised and added to %s', 'tmp/missing-helptoc.txt', 'administrator/language/en-GB/com_admin.ini')); + + $io->caution('TODO: For a complete TOC, please run this script again after adding the missing language strings!'); + + } + $io->success('Help Screen TOC written'); return 0; diff --git a/build/media_source/com_media/js/edit-images.es6.js b/build/media_source/com_media/js/edit-images.es6.js index 55fc50d651af2..f621b53db64e1 100644 --- a/build/media_source/com_media/js/edit-images.es6.js +++ b/build/media_source/com_media/js/edit-images.es6.js @@ -172,7 +172,7 @@ class Edit { * Public */ upload(url, stateChangeCallback) { - let format = Joomla.MediaManager.Edit.original.extension === 'jpg' ? 'jpeg' : Joomla.MediaManager.Edit.original.extension; + let format = Joomla.MediaManager.Edit.original.extension.toLowerCase() === 'jpg' ? 'jpeg' : Joomla.MediaManager.Edit.original.extension.toLowerCase(); if (!format) { // eslint-disable-next-line prefer-destructuring diff --git a/build/media_source/mod_menu/js/admin-menu.es6.js b/build/media_source/mod_menu/js/admin-menu.es6.js index 5d068c3a452e3..1d1cfff59fde3 100644 --- a/build/media_source/mod_menu/js/admin-menu.es6.js +++ b/build/media_source/mod_menu/js/admin-menu.es6.js @@ -112,13 +112,13 @@ if (sidebar && !sidebar.getAttribute('data-hidden')) { })); }; - mainNav.querySelectorAll('li.parent > a').forEach((parent) => { + document.querySelectorAll('ul.main-nav li.parent > a').forEach((parent) => { parent.addEventListener('click', openToggle); parent.addEventListener('keyup', openToggle); }); // Menu close - mainNav.querySelectorAll('li.parent .close').forEach((subMenu) => { + document.querySelectorAll('ul.main-nav li.parent .close').forEach((subMenu) => { subMenu.addEventListener('click', () => { mainNav.querySelectorAll('.open').forEach((menuChild) => menuChild.classList.remove('open')); mainNav.classList.remove('child-open'); diff --git a/build/media_source/plg_captcha_recaptcha/js/recaptcha.es6.js b/build/media_source/plg_captcha_recaptcha/js/recaptcha.es6.js index 938274ad7570d..9b5b2cd18747f 100644 --- a/build/media_source/plg_captcha_recaptcha/js/recaptcha.es6.js +++ b/build/media_source/plg_captcha_recaptcha/js/recaptcha.es6.js @@ -8,10 +8,9 @@ 'use strict'; window.JoomlainitReCaptcha2 = () => { - const elements = [].slice.call(document.getElementsByClassName('g-recaptcha')); const optionKeys = ['sitekey', 'theme', 'size', 'tabindex', 'callback', 'expired-callback', 'error-callback']; - elements.forEach((element) => { + document.querySelectorAll('.g-recaptcha').forEach((element) => { let options = {}; if (element.dataset) { diff --git a/build/media_source/plg_captcha_recaptcha_invisible/js/recaptcha.es6.js b/build/media_source/plg_captcha_recaptcha_invisible/js/recaptcha.es6.js index 83e828df72861..a66792e323779 100644 --- a/build/media_source/plg_captcha_recaptcha_invisible/js/recaptcha.es6.js +++ b/build/media_source/plg_captcha_recaptcha_invisible/js/recaptcha.es6.js @@ -8,10 +8,9 @@ 'use strict'; window.JoomlainitReCaptchaInvisible = () => { - const elements = [].slice.call(document.getElementsByClassName('g-recaptcha')); const optionKeys = ['sitekey', 'badge', 'size', 'tabindex', 'callback', 'expired-callback', 'error-callback']; - elements.forEach((element) => { + document.getElementsByClassName('g-recaptcha').forEach((element) => { let options = {}; if (element.dataset) { diff --git a/build/media_source/plg_editors_codemirror/js/codemirror.es6.js b/build/media_source/plg_editors_codemirror/js/codemirror.es6.js index 2fb8b5a8f4c26..ef896352d6f20 100644 --- a/build/media_source/plg_editors_codemirror/js/codemirror.es6.js +++ b/build/media_source/plg_editors_codemirror/js/codemirror.es6.js @@ -125,9 +125,7 @@ const optionsToExtensions = async (options) => { const [module, methods] = extInfo; q.push(import(module).then((modObject) => { // Call each method - methods.forEach((method) => { - extensions.push(modObject[method]()); - }); + methods.forEach((method) => extensions.push(modObject[method]())); })); }); } diff --git a/build/media_source/plg_editors_codemirror/js/joomla-editor-codemirror.w-c.es6.js b/build/media_source/plg_editors_codemirror/js/joomla-editor-codemirror.w-c.es6.js index 6d0cc79db52c4..c09bc4f288955 100644 --- a/build/media_source/plg_editors_codemirror/js/joomla-editor-codemirror.w-c.es6.js +++ b/build/media_source/plg_editors_codemirror/js/joomla-editor-codemirror.w-c.es6.js @@ -103,9 +103,7 @@ class CodemirrorEditor extends HTMLElement { // Relocate BS modals, to resolve z-index issue in full screen this.bsModals = this.querySelectorAll('.joomla-modal.modal'); - this.bsModals.forEach((modal) => { - document.body.appendChild(modal); - }); + this.bsModals.forEach((modal) => document.body.appendChild(modal)); } // Create and register the Editor @@ -129,9 +127,7 @@ class CodemirrorEditor extends HTMLElement { // Restore modals if (this.bsModals && this.bsModals.length) { - this.bsModals.forEach((modal) => { - this.appendChild(modal); - }); + this.bsModals.forEach((modal) => this.appendChild(modal)); } } } diff --git a/build/media_source/plg_editors_tinymce/js/plugins/jtemplate/plugin.es5.js b/build/media_source/plg_editors_tinymce/js/plugins/jtemplate/plugin.es5.js index 62673f656498a..23aa288eba416 100644 --- a/build/media_source/plg_editors_tinymce/js/plugins/jtemplate/plugin.es5.js +++ b/build/media_source/plg_editors_tinymce/js/plugins/jtemplate/plugin.es5.js @@ -449,7 +449,7 @@ { type: 'submit', name: 'save', - text: 'Save', + text: 'Insert', primary: true } ], diff --git a/build/media_source/plg_editors_tinymce/js/tinymce-builder.es6.js b/build/media_source/plg_editors_tinymce/js/tinymce-builder.es6.js index 7345066947363..7b68d7d2574a5 100644 --- a/build/media_source/plg_editors_tinymce/js/tinymce-builder.es6.js +++ b/build/media_source/plg_editors_tinymce/js/tinymce-builder.es6.js @@ -464,8 +464,4 @@ const toggleAvailableOption = () => { window.addEventListener('load', () => toggleAvailableOption()); // Allow to select the group only once per the set -selects.forEach((select) => { - select.addEventListener('change', () => { - toggleAvailableOption(); - }); -}); +selects.forEach((select) => select.addEventListener('change', () => toggleAvailableOption())); diff --git a/build/media_source/plg_installer_packageinstaller/js/packageinstaller.es6.js b/build/media_source/plg_installer_packageinstaller/js/packageinstaller.es6.js index 178be5dc981de..64c5fec32cafc 100644 --- a/build/media_source/plg_installer_packageinstaller/js/packageinstaller.es6.js +++ b/build/media_source/plg_installer_packageinstaller/js/packageinstaller.es6.js @@ -63,9 +63,7 @@ Joomla = window.Joomla || {}; uploadUrl += `&return=${returnUrl}`; } - button.addEventListener('click', () => { - fileInput.click(); - }); + button.addEventListener('click', () => fileInput.click()); fileInput.addEventListener('change', () => { if (uploading) { diff --git a/build/media_source/plg_installer_webinstaller/js/client.es6.js b/build/media_source/plg_installer_webinstaller/js/client.es6.js index 17f30b55db7c0..4f4b8e23cc9b2 100644 --- a/build/media_source/plg_installer_webinstaller/js/client.es6.js +++ b/build/media_source/plg_installer_webinstaller/js/client.es6.js @@ -184,7 +184,7 @@ class WebInstaller { WebInstaller.clicker(); if (webInstallerOptions.view !== 'extension') { - [].slice.call(document.querySelectorAll('div.load-extension')).forEach((element) => { + document.querySelectorAll('div.load-extension').forEach((element) => { element.addEventListener('click', (event) => { event.preventDefault(); this.processLinkClick(element.getAttribute('data-url')); @@ -237,7 +237,7 @@ class WebInstaller { } clickforlinks() { - [].slice.call(document.querySelectorAll('a.transcode')).forEach((element) => { + document.querySelectorAll('a.transcode').forEach((element) => { const ajaxurl = element.getAttribute('href'); element.addEventListener('click', (event) => { diff --git a/build/media_source/plg_media-action_crop/js/crop.es6.js b/build/media_source/plg_media-action_crop/js/crop.es6.js index 80b49e2dc70e1..ba3ae3c804a16 100644 --- a/build/media_source/plg_media-action_crop/js/crop.es6.js +++ b/build/media_source/plg_media-action_crop/js/crop.es6.js @@ -51,7 +51,7 @@ const init = (image) => { formElements.cropY.value = Math.round(e.detail.y); formElements.cropWidth.value = Math.round(e.detail.width); formElements.cropHeight.value = Math.round(e.detail.height); - const format = Joomla.MediaManager.Edit.original.extension === 'jpg' ? 'jpeg' : Joomla.MediaManager.Edit.original.extension; + const format = Joomla.MediaManager.Edit.original.extension.toLowerCase() === 'jpg' ? 'jpeg' : Joomla.MediaManager.Edit.original.extension.toLowerCase(); const quality = formElements.cropQuality.value; // Update the store diff --git a/build/media_source/plg_media-action_resize/js/resize.es6.js b/build/media_source/plg_media-action_resize/js/resize.es6.js index b41a0b98212c5..fc538b02362dc 100644 --- a/build/media_source/plg_media-action_resize/js/resize.es6.js +++ b/build/media_source/plg_media-action_resize/js/resize.es6.js @@ -14,7 +14,7 @@ const resize = (width, height, image) => { canvas.getContext('2d').drawImage(image, 0, 0, width, height); // The format - const format = Joomla.MediaManager.Edit.original.extension === 'jpg' ? 'jpeg' : Joomla.MediaManager.Edit.original.extension; + const format = Joomla.MediaManager.Edit.original.extension.toLowerCase() === 'jpg' ? 'jpeg' : Joomla.MediaManager.Edit.original.extension.toLowerCase(); // The quality const quality = formElements.resizeQuality.value; diff --git a/build/media_source/plg_media-action_rotate/js/rotate.es6.js b/build/media_source/plg_media-action_rotate/js/rotate.es6.js index 05e6257884c88..f5a2871c69c63 100644 --- a/build/media_source/plg_media-action_rotate/js/rotate.es6.js +++ b/build/media_source/plg_media-action_rotate/js/rotate.es6.js @@ -28,7 +28,7 @@ const rotate = (angle, image) => { ctx.drawImage(image, -image.naturalWidth / 2, -image.naturalHeight / 2); // The format - const format = Joomla.MediaManager.Edit.original.extension === 'jpg' ? 'jpeg' : 'jpg'; + const format = Joomla.MediaManager.Edit.original.extension.toLowerCase() === 'jpg' ? 'jpeg' : Joomla.MediaManager.Edit.original.extension.toLowerCase(); // The quality const quality = document.getElementById('jform_rotate_quality').value; @@ -62,27 +62,18 @@ const initRotate = (image) => { target.value = 0; // Deselect all buttons - [].slice.call(document.querySelectorAll('#jform_rotate_distinct label')) - .forEach((element) => { - element.classList.remove('active'); - element.classList.remove('focus'); - }); + document.querySelectorAll('#jform_rotate_distinct label').forEach((element) => element.classList.remove('active', 'focus')); }); // The 90 degree rotate buttons listeners - [].slice.call(document.querySelectorAll('#jform_rotate_distinct [type=radio]')) - .forEach((element) => { - element.addEventListener('click', ({ target }) => { - rotate(parseInt(target.value, 10), image); + document.querySelectorAll('#jform_rotate_distinct [type=radio]').forEach((element) => { + element.addEventListener('click', ({ target }) => { + rotate(parseInt(target.value, 10), image); - // Deselect all buttons - [].slice.call(document.querySelectorAll('#jform_rotate_distinct label')) - .forEach((el) => { - el.classList.remove('active'); - el.classList.remove('focus'); - }); - }); + // Deselect all buttons + document.querySelectorAll('#jform_rotate_distinct label').forEach((el) => el.classList.remove('active', 'focus')); }); + }); activated = true; } diff --git a/build/media_source/plg_multifactorauth_webauthn/js/webauthn.es6.js b/build/media_source/plg_multifactorauth_webauthn/js/webauthn.es6.js index fb13fac24c7f5..3e5c8050c7636 100644 --- a/build/media_source/plg_multifactorauth_webauthn/js/webauthn.es6.js +++ b/build/media_source/plg_multifactorauth_webauthn/js/webauthn.es6.js @@ -188,9 +188,7 @@ document.getElementById('users-mfa-captive-button-submit') .addEventListener('click', onValidateClick); } else { - document.querySelectorAll('.multifactorauth_webauthn_setup').forEach((btn) => { - btn.addEventListener('click', setUp); - }); + document.querySelectorAll('.multifactorauth_webauthn_setup').forEach((btn) => btn.addEventListener('click', setUp)); } }); })(Joomla, document); diff --git a/build/media_source/plg_quickicon_extensionupdate/js/extensionupdatecheck.es6.js b/build/media_source/plg_quickicon_extensionupdate/js/extensionupdatecheck.es6.js index 813688ded259a..c7dc64c1a4d79 100644 --- a/build/media_source/plg_quickicon_extensionupdate/js/extensionupdatecheck.es6.js +++ b/build/media_source/plg_quickicon_extensionupdate/js/extensionupdatecheck.es6.js @@ -13,16 +13,13 @@ const update = (type, text) => { const link = document.getElementById('plg_quickicon_extensionupdate'); - const linkSpans = [].slice.call(link.querySelectorAll('span.j-links-link')); if (link) { link.classList.add(type); } - if (linkSpans.length) { - linkSpans.forEach((span) => { - span.innerHTML = Joomla.sanitizeHtml(text); - }); - } + link.querySelectorAll('span.j-links-link').forEach((span) => { + span.innerHTML = Joomla.sanitizeHtml(text); + }); }; /** @@ -57,7 +54,5 @@ }; // Give some times to the layout and other scripts to settle their stuff - window.addEventListener('load', () => { - setTimeout(fetchUpdate, 330); - }); + window.addEventListener('load', () => setTimeout(fetchUpdate, 330)); })(); diff --git a/build/media_source/plg_quickicon_joomlaupdate/js/jupdatecheck.es6.js b/build/media_source/plg_quickicon_joomlaupdate/js/jupdatecheck.es6.js index eb27ea84aea54..27d2fd12985f1 100644 --- a/build/media_source/plg_quickicon_joomlaupdate/js/jupdatecheck.es6.js +++ b/build/media_source/plg_quickicon_joomlaupdate/js/jupdatecheck.es6.js @@ -6,16 +6,13 @@ if (Joomla && Joomla.getOptions('js-extensions-update')) { const update = (type, text) => { const link = document.getElementById('plg_quickicon_joomlaupdate'); - const linkSpans = [].slice.call(link.querySelectorAll('span.j-links-link')); if (link) { link.classList.add(type); } - if (linkSpans.length) { - linkSpans.forEach((span) => { - span.innerHTML = Joomla.sanitizeHtml(text); - }); - } + link.querySelectorAll('span.j-links-link').forEach((span) => { + span.innerHTML = Joomla.sanitizeHtml(text); + }); }; const fetchUpdate = () => { @@ -58,7 +55,5 @@ if (Joomla && Joomla.getOptions('js-extensions-update')) { }; // Give some times to the layout and other scripts to settle their stuff - window.addEventListener('load', () => { - setTimeout(fetchUpdate, 300); - }); + window.addEventListener('load', () => setTimeout(fetchUpdate, 300)); } diff --git a/build/media_source/plg_quickicon_overridecheck/js/overridecheck.es6.js b/build/media_source/plg_quickicon_overridecheck/js/overridecheck.es6.js index ca587dbe617e1..faed2462eb013 100644 --- a/build/media_source/plg_quickicon_overridecheck/js/overridecheck.es6.js +++ b/build/media_source/plg_quickicon_overridecheck/js/overridecheck.es6.js @@ -12,7 +12,6 @@ const options = Joomla.getOptions('js-override-check'); const update = (type, text, linkHref) => { const link = document.getElementById('plg_quickicon_overridecheck'); - const linkSpans = link.querySelectorAll('span.j-links-link'); if (link) { link.classList.add(type); @@ -21,11 +20,9 @@ } } - if (linkSpans.length) { - linkSpans.forEach((span) => { - span.innerHTML = Joomla.sanitizeHtml(text); - }); - } + link.querySelectorAll('span.j-links-link').forEach((span) => { + span.innerHTML = Joomla.sanitizeHtml(text); + }); }; /** @@ -66,7 +63,5 @@ }; // Give some times to the layout and other scripts to settle their stuff - window.addEventListener('load', () => { - setTimeout(checkOverride, 390); - }); + window.addEventListener('load', () => setTimeout(checkOverride, 390)); })(); diff --git a/build/media_source/plg_quickicon_privacycheck/js/privacycheck.es6.js b/build/media_source/plg_quickicon_privacycheck/js/privacycheck.es6.js index 20879fe4a7c13..a6de7485027cc 100644 --- a/build/media_source/plg_quickicon_privacycheck/js/privacycheck.es6.js +++ b/build/media_source/plg_quickicon_privacycheck/js/privacycheck.es6.js @@ -68,7 +68,5 @@ }; // Give some times to the layout and other scripts to settle their stuff - window.addEventListener('load', () => { - setTimeout(checkPrivacy, 360); - }); + window.addEventListener('load', () => setTimeout(checkPrivacy, 360)); })(document); diff --git a/build/media_source/plg_system_debug/js/debug.es6.js b/build/media_source/plg_system_debug/js/debug.es6.js index 2b690177f6c85..fa5570402b30d 100644 --- a/build/media_source/plg_system_debug/js/debug.es6.js +++ b/build/media_source/plg_system_debug/js/debug.es6.js @@ -22,8 +22,7 @@ * Register events */ const registerEvents = () => { - const sectionTogglers = [].slice.call(document.querySelectorAll(debugSectionTogglerSelector)); - sectionTogglers.forEach((toggler) => { + document.querySelectorAll(debugSectionTogglerSelector).forEach((toggler) => { toggler.addEventListener('click', (event) => { event.preventDefault(); toggle(toggler.getAttribute(toggleTargetAttribute)); @@ -31,7 +30,5 @@ }); }; - document.addEventListener('DOMContentLoaded', () => { - registerEvents(); - }); + document.addEventListener('DOMContentLoaded', registerEvents); })(document); diff --git a/build/media_source/plg_system_guidedtours/js/guidedtours.es6.js b/build/media_source/plg_system_guidedtours/js/guidedtours.es6.js index 18d9d38a8896a..5b24ff27bfa93 100644 --- a/build/media_source/plg_system_guidedtours/js/guidedtours.es6.js +++ b/build/media_source/plg_system_guidedtours/js/guidedtours.es6.js @@ -577,23 +577,23 @@ function loadTour(tourId) { } // Opt-in Start buttons -document.querySelector('body').addEventListener('click', (event) => { +document.querySelector('body').addEventListener('click', ({ target }) => { // Click somewhere else - if (!event.target || !event.target.classList.contains('button-start-guidedtour')) { + if (!target || !target.classList.contains('button-start-guidedtour')) { return; } // Click button but missing data-id if ( - (!event.target.hasAttribute('data-id') || event.target.getAttribute('data-id') <= 0) - && (!event.target.hasAttribute('data-gt-uid') || event.target.getAttribute('data-gt-uid') === '') + (!target.hasAttribute('data-id') || target.getAttribute('data-id') <= 0) + && (!target.hasAttribute('data-gt-uid') || target.getAttribute('data-gt-uid') === '') ) { Joomla.renderMessages({ error: [Joomla.Text._('PLG_SYSTEM_GUIDEDTOURS_COULD_NOT_LOAD_THE_TOUR')] }); return; } sessionStorage.setItem('tourToken', String(Joomla.getOptions('com_guidedtours.token'))); - loadTour(event.target.getAttribute('data-id') || event.target.getAttribute('data-gt-uid')); + loadTour(target.getAttribute('data-id') || target.getAttribute('data-gt-uid')); }); // Start a given tour diff --git a/build/media_source/plg_system_schedulerunner/js/run-schedule.es6.js b/build/media_source/plg_system_schedulerunner/js/run-schedule.es6.js index 1932cd064dcef..a2d943b62798e 100644 --- a/build/media_source/plg_system_schedulerunner/js/run-schedule.es6.js +++ b/build/media_source/plg_system_schedulerunner/js/run-schedule.es6.js @@ -30,7 +30,5 @@ const initScheduler = () => { }; ((document) => { - document.addEventListener('DOMContentLoaded', () => { - initScheduler(); - }); + document.addEventListener('DOMContentLoaded', initScheduler); })(document); diff --git a/build/media_source/plg_system_webauthn/js/login.es6.js b/build/media_source/plg_system_webauthn/js/login.es6.js index ee98feee2409c..6110a3e820ffc 100644 --- a/build/media_source/plg_system_webauthn/js/login.es6.js +++ b/build/media_source/plg_system_webauthn/js/login.es6.js @@ -256,12 +256,7 @@ window.Joomla = window.Joomla || {}; }; // Initialization. Runs on DOM content loaded since this script is always loaded deferred. - const loginButtons = [].slice.call(document.querySelectorAll('.plg_system_webauthn_login_button')); - if (loginButtons.length) { - loginButtons.forEach((button) => { - button.addEventListener('click', ({ currentTarget }) => { - Joomla.plgSystemWebauthnLogin(currentTarget.getAttribute('data-webauthn-form')); - }); - }); - } + document.querySelectorAll('.plg_system_webauthn_login_button').forEach((button) => { + button.addEventListener('click', ({ currentTarget }) => Joomla.plgSystemWebauthnLogin(currentTarget.getAttribute('data-webauthn-form'))); + }); })(Joomla, document); diff --git a/build/media_source/plg_system_webauthn/js/management.es6.js b/build/media_source/plg_system_webauthn/js/management.es6.js index d4abb618bcdea..afeac297b702d 100644 --- a/build/media_source/plg_system_webauthn/js/management.es6.js +++ b/build/media_source/plg_system_webauthn/js/management.es6.js @@ -469,19 +469,8 @@ window.Joomla = window.Joomla || {}; addButton.addEventListener('click', Joomla.plgSystemWebauthnAddOnClick); } - const editLabelButtons = [].slice.call(document.querySelectorAll('.plg_system_webauthn-manage-edit')); - if (editLabelButtons.length) { - editLabelButtons.forEach((button) => { - button.addEventListener('click', Joomla.plgSystemWebauthnEditOnClick); - }); - } - - const deleteButtons = [].slice.call(document.querySelectorAll('.plg_system_webauthn-manage-delete')); - if (deleteButtons.length) { - deleteButtons.forEach((button) => { - button.addEventListener('click', Joomla.plgSystemWebauthnDeleteOnClick); - }); - } + document.querySelectorAll('.plg_system_webauthn-manage-edit').forEach((button) => button.addEventListener('click', Joomla.plgSystemWebauthnEditOnClick)); + document.querySelectorAll('.plg_system_webauthn-manage-delete').forEach((button) => button.addEventListener('click', Joomla.plgSystemWebauthnDeleteOnClick)); }; // Initialization. Runs on DOM content loaded since this script is always loaded deferred. diff --git a/build/media_source/system/js/core.es6.js b/build/media_source/system/js/core.es6.js index 9707f1a0a9d8d..445bf492ee422 100644 --- a/build/media_source/system/js/core.es6.js +++ b/build/media_source/system/js/core.es6.js @@ -109,7 +109,7 @@ window.Joomla.Modal = window.Joomla.Modal || { newDestination = {}; } - [].slice.call(Object.keys(source)).forEach((key) => { + Object.keys(source).forEach((key) => { newDestination[key] = source[key]; }); @@ -155,10 +155,9 @@ window.Joomla.Modal = window.Joomla.Modal || { Joomla.loadOptions = (options) => { // Load form the script container if (!options) { - const elements = [].slice.call(document.querySelectorAll('.joomla-script-options.new')); let counter = 0; - elements.forEach((element) => { + document.querySelectorAll('.joomla-script-options.new').forEach((element) => { const str = element.text || element.textContent; const option = JSON.parse(str); @@ -180,7 +179,7 @@ window.Joomla.Modal = window.Joomla.Modal || { Joomla.optionsStorage = options || {}; } else if (options) { // Merge with existing - [].slice.call(Object.keys(options)).forEach((key) => { + Object.keys(options).forEach((key) => { /** * If both existing and new options are objects, merge them with Joomla.extend(). * But test for new option being null, as null is an object, but we want to allow @@ -241,7 +240,7 @@ window.Joomla.Modal = window.Joomla.Modal || { * @returns {Joomla.Text} */ load: (object) => { - [].slice.call(Object.keys(object)).forEach((key) => { + Object.keys(object).forEach((key) => { Joomla.Text.strings[key.toUpperCase()] = object[key]; }); @@ -513,10 +512,8 @@ window.Joomla.Modal = window.Joomla.Modal || { return; } - const elements = [].slice.call(document.getElementsByTagName('input')); - - elements.forEach((element) => { - if (element.type === 'hidden' && element.value === '1' && element.name.length === 32) { + document.querySelectorAll('input[type="hidden"]').forEach((element) => { + if (element.value === '1' && element.name.length === 32) { element.name = newToken; } }); @@ -596,7 +593,7 @@ window.Joomla.Modal = window.Joomla.Modal || { // Custom headers if (newOptions.headers) { - [].slice.call(Object.keys(newOptions.headers)).forEach((key) => { + Object.keys(newOptions.headers).forEach((key) => { // Allow request without Content-Type // eslint-disable-next-line no-empty if (key === 'Content-Type' && newOptions.headers['Content-Type'] === 'false') { diff --git a/build/media_source/system/js/fields/joomla-field-permissions.w-c.es6.js b/build/media_source/system/js/fields/joomla-field-permissions.w-c.es6.js index 4a65e499b1c3c..ed881acd8aae5 100644 --- a/build/media_source/system/js/fields/joomla-field-permissions.w-c.es6.js +++ b/build/media_source/system/js/fields/joomla-field-permissions.w-c.es6.js @@ -32,7 +32,7 @@ window.customElements.define('joomla-field-permissions', class extends HTMLEleme * Lifecycle */ connectedCallback() { - this.buttons = [].slice.call(document.querySelectorAll(`[${this.buttonDataSelector}]`)); + this.buttons = document.querySelectorAll(`[${this.buttonDataSelector}]`); if (this.buttons) { this.buttons.forEach((button) => { button.addEventListener('change', this.onDropdownChange); diff --git a/build/media_source/system/js/fields/joomla-field-simple-color.w-c.es6.js b/build/media_source/system/js/fields/joomla-field-simple-color.w-c.es6.js index ddf06fa06a643..1bc6b5e96cb08 100644 --- a/build/media_source/system/js/fields/joomla-field-simple-color.w-c.es6.js +++ b/build/media_source/system/js/fields/joomla-field-simple-color.w-c.es6.js @@ -215,7 +215,7 @@ throw new Error('Simple color field requires a select element'); } - this.options = [].slice.call(this.select.querySelectorAll('option')); + this.options = this.select.querySelectorAll('option'); this.select.classList.add('hidden'); diff --git a/build/media_source/system/js/fields/joomla-media-select.w-c.es6.js b/build/media_source/system/js/fields/joomla-media-select.w-c.es6.js index eb88ffad84864..8e8864d80f811 100644 --- a/build/media_source/system/js/fields/joomla-media-select.w-c.es6.js +++ b/build/media_source/system/js/fields/joomla-media-select.w-c.es6.js @@ -240,8 +240,8 @@ const insertAsOther = (media, editor, fieldClass, type) => { `; } - } else if (Joomla.editors.instances[editor].getSelection() !== '') { - outputText = `${Joomla.editors.instances[editor].getSelection()}`; + } else if (editorInst.getSelection() !== '') { + outputText = `${editorInst.getSelection()}`; } else { const name = /([\w-]+)\./.exec(Joomla.selectedMediaFile.url); outputText = `${Joomla.Text._('JFIELD_MEDIA_DOWNLOAD_FILE').replace('{file}', name[1])}`; diff --git a/build/media_source/system/js/fields/passwordstrength.es6.js b/build/media_source/system/js/fields/passwordstrength.es6.js index 1ca7f259f6bec..eaf00d14401fc 100644 --- a/build/media_source/system/js/fields/passwordstrength.es6.js +++ b/build/media_source/system/js/fields/passwordstrength.es6.js @@ -7,6 +7,8 @@ * * Copyright (c) 2014 Thomas Kjærgaard * + * ADAPTED BY: Joomla for use in the Joomla! CMS + * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights @@ -50,7 +52,7 @@ class PasswordStrength { // eslint-disable-next-line no-useless-escape score += this.constructor.calc( value, - /[@$!#?=;:*\-_€%&()`´]/g, + /[@$!#?=;:*\-_€%&()`´+[\]{}'"\\|,.<>/~^]/g, this.special, mods, ); @@ -121,7 +123,7 @@ class PasswordStrength { }; document.addEventListener('DOMContentLoaded', () => { - const fields = [].slice.call(document.querySelectorAll('.js-password-strength')); + const fields = document.querySelectorAll('.js-password-strength'); // Loop through the fields fields.forEach((field, index) => { @@ -155,9 +157,7 @@ class PasswordStrength { } // Add a listener for input data change - field.addEventListener('keyup', ({ target }) => { - getMeter(target); - }); + field.addEventListener('keyup', ({ target }) => getMeter(target)); }); // Set a handler for the validation script diff --git a/build/media_source/system/js/fields/select-colour.es6.js b/build/media_source/system/js/fields/select-colour.es6.js index c44d100454c5c..22174b2094d0e 100644 --- a/build/media_source/system/js/fields/select-colour.es6.js +++ b/build/media_source/system/js/fields/select-colour.es6.js @@ -19,9 +19,7 @@ }; const updateSelectboxColour = () => { - const colourSelects = [].slice.call(document.querySelectorAll('.form-select-color-state')); - - colourSelects.forEach((colourSelect) => { + document.querySelectorAll('.form-select-color-state').forEach((colourSelect) => { const value = parseInt(colourSelect.value, 10); // Add class on page load diff --git a/build/media_source/system/js/fields/validate.es6.js b/build/media_source/system/js/fields/validate.es6.js index 5412dc52bd15f..13b47cbdbab3d 100644 --- a/build/media_source/system/js/fields/validate.es6.js +++ b/build/media_source/system/js/fields/validate.es6.js @@ -37,9 +37,7 @@ class JFormValidator { }); // Attach all forms with a class 'form-validate' - const forms = [].slice.call(document.querySelectorAll('form')); - - forms.forEach((form) => { + document.querySelectorAll('form').forEach((form) => { if (form.classList.contains('form-validate')) { this.attachToForm(form); } @@ -74,8 +72,7 @@ class JFormValidator { } } - element.classList.remove('form-control-danger'); - element.classList.remove('invalid'); + element.classList.remove('form-control-danger', 'invalid'); element.classList.add('form-control-success'); element.parentNode.classList.remove('has-danger'); element.parentNode.classList.add('has-success'); @@ -97,10 +94,8 @@ class JFormValidator { // Get a label const label = element.form.querySelector(`label[for="${element.id}"]`); - element.classList.remove('form-control-success'); - element.classList.remove('valid'); - element.classList.add('form-control-danger'); - element.classList.add('invalid'); + element.classList.remove('form-control-success', 'valid'); + element.classList.add('form-control-danger', 'invalid'); element.parentNode.classList.remove('has-success'); element.parentNode.classList.add('has-danger'); element.setAttribute('aria-invalid', 'true'); @@ -145,18 +140,13 @@ class JFormValidator { message = label.querySelector('span.form-control-feedback'); } - element.classList.remove('form-control-danger'); - element.classList.remove('form-control-success'); - element.classList.remove('invalid'); + element.classList.remove('form-control-danger', 'form-control-success', 'remove'); element.classList.add('valid'); - element.parentNode.classList.remove('has-danger'); - element.parentNode.classList.remove('has-success'); + element.parentNode.classList.remove('has-danger', 'has-success'); // Remove message - if (message) { - if (label) { - label.removeChild(message); - } + if (message && label) { + label.removeChild(message); } // Restore Label @@ -256,7 +246,7 @@ class JFormValidator { if (form.nodeName === 'FORM') { fields = [].slice.call(form.elements); } else { - fields = [].slice.call(form.querySelectorAll('input, textarea, select, button, fieldset')); + fields = form.querySelectorAll('input, textarea, select, button, fieldset'); } fields.forEach((field) => { if (this.validate(field) === false) { @@ -294,7 +284,7 @@ class JFormValidator { if (form.nodeName === 'FORM') { elements = [].slice.call(form.elements); } else { - elements = [].slice.call(form.querySelectorAll('input, textarea, select, button, fieldset')); + elements = form.querySelectorAll('input, textarea, select, button, fieldset'); } // Iterate through the form object and attach the validate method to all input fields. diff --git a/build/media_source/system/js/highlight.es6.js b/build/media_source/system/js/highlight.es6.js index 24ea4f61f55f5..65e6ec77b8e34 100644 --- a/build/media_source/system/js/highlight.es6.js +++ b/build/media_source/system/js/highlight.es6.js @@ -29,9 +29,7 @@ if (Joomla.getOptions && typeof Joomla.getOptions === 'function' && Joomla.getOp const instance = new Mark(element); // Loop through the terms - options.highLight.forEach((term) => { - instance.mark(term, options); - }); + options.highLight.forEach((term) => instance.mark(term, options)); } } else { const start = document.querySelector(`#${options.start}`); diff --git a/build/media_source/system/js/inlinehelp.es6.js b/build/media_source/system/js/inlinehelp.es6.js index e9387b36fae65..4579a427baa07 100644 --- a/build/media_source/system/js/inlinehelp.es6.js +++ b/build/media_source/system/js/inlinehelp.es6.js @@ -9,49 +9,47 @@ * @param {String} toggleClass The class name of the DIVs to toggle display for */ Joomla.toggleInlineHelp = (toggleClass) => { - [].slice.call(document.querySelectorAll(`div.${toggleClass}`)) - .forEach((elDiv) => { - // Toggle the visibility of the node by toggling the 'd-none' Bootstrap class. - elDiv.classList.toggle('d-none'); - // The ID of the description whose visibility is toggled. - const myId = elDiv.id; - // The ID of the control described by this node (same ID, minus the '-desc' suffix). - const controlId = myId ? myId.substring(0, myId.length - 5) : null; - // Get the control described by this node. - const elControl = controlId ? document.getElementById(controlId) : null; - // Is this node hidden? - const isHidden = elDiv.classList.contains('d-none'); + document.querySelectorAll(`div.${toggleClass}`).forEach((elDiv) => { + // Toggle the visibility of the node by toggling the 'd-none' Bootstrap class. + elDiv.classList.toggle('d-none'); + // The ID of the description whose visibility is toggled. + const myId = elDiv.id; + // The ID of the control described by this node (same ID, minus the '-desc' suffix). + const controlId = myId ? myId.substring(0, myId.length - 5) : null; + // Get the control described by this node. + const elControl = controlId ? document.getElementById(controlId) : null; + // Is this node hidden? + const isHidden = elDiv.classList.contains('d-none'); - // If we do not have a control we will exit early - if (!controlId || !elControl) { - return; - } + // If we do not have a control we will exit early + if (!controlId || !elControl) { + return; + } - // Unset the aria-describedby attribute in the control when the description is hidden and vice–versa. - if (isHidden && elControl.hasAttribute('aria-describedby')) { - elControl.removeAttribute('aria-describedby'); - } else if (!isHidden) { - elControl.setAttribute('aria-describedby', myId); - } - }); + // Unset the aria-describedby attribute in the control when the description is hidden and vice–versa. + if (isHidden && elControl.hasAttribute('aria-describedby')) { + elControl.removeAttribute('aria-describedby'); + } else if (!isHidden) { + elControl.setAttribute('aria-describedby', myId); + } + }); }; // Initialisation. Clicking on anything with the button-inlinehelp class will toggle the inline help. -[].slice.call(document.querySelectorAll('.button-inlinehelp')) - .forEach((elToggler) => { - // The class of the DIVs to toggle visibility on is defined by the data-class attribute of the click target. - const toggleClass = elToggler.dataset.class ?? 'hide-aware-inline-help'; - const collection = document.getElementsByClassName(toggleClass); +document.querySelectorAll('.button-inlinehelp').forEach((elToggler) => { + // The class of the DIVs to toggle visibility on is defined by the data-class attribute of the click target. + const toggleClass = elToggler.dataset.class ?? 'hide-aware-inline-help'; + const collection = document.getElementsByClassName(toggleClass); - // no description => hide inlinehelp button - if (collection.length === 0) { - elToggler.classList.add('d-none'); - return; - } + // no description => hide inlinehelp button + if (collection.length === 0) { + elToggler.classList.add('d-none'); + return; + } - // Add the click handler. - elToggler.addEventListener('click', (event) => { - event.preventDefault(); - Joomla.toggleInlineHelp(toggleClass); - }); + // Add the click handler. + elToggler.addEventListener('click', (event) => { + event.preventDefault(); + Joomla.toggleInlineHelp(toggleClass); }); +}); diff --git a/build/media_source/system/js/messages.es6.js b/build/media_source/system/js/messages.es6.js index 40c80a533789c..9a6545940882d 100644 --- a/build/media_source/system/js/messages.es6.js +++ b/build/media_source/system/js/messages.es6.js @@ -53,7 +53,7 @@ Joomla.renderMessages = (messages, selector, keepOld, timeout) => { Joomla.removeMessages(messageContainer); } - [].slice.call(Object.keys(messages)).forEach((type) => { + Object.keys(messages).forEach((type) => { let alertClass = type; // Array of messages of this type @@ -107,12 +107,7 @@ Joomla.renderMessages = (messages, selector, keepOld, timeout) => { */ Joomla.removeMessages = (container) => { const messageContainer = getMessageContainer(container); - const alerts = [].slice.call(messageContainer.querySelectorAll('joomla-alert')); - if (alerts.length) { - alerts.forEach((alert) => { - alert.close(); - }); - } + messageContainer.querySelectorAll('joomla-alert').forEach((alert) => alert.close()); }; document.addEventListener('DOMContentLoaded', () => { diff --git a/build/media_source/system/js/searchtools.es6.js b/build/media_source/system/js/searchtools.es6.js index ab5ad08a52c0b..0bbf7e90b1103 100644 --- a/build/media_source/system/js/searchtools.es6.js +++ b/build/media_source/system/js/searchtools.es6.js @@ -110,7 +110,7 @@ Joomla = window.Joomla || {}; this.clearButton = document.querySelector(this.options.clearBtnSelector); // Ordering - this.orderCols = Array.prototype.slice.call(document.querySelectorAll(`${this.options.formSelector} ${this.options.orderColumnSelector}`)); + this.orderCols = document.querySelectorAll(`${this.options.formSelector} ${this.options.orderColumnSelector}`); this.orderField = document.querySelector(`${this.options.formSelector} ${this.options.orderFieldSelector}`); // Limit @@ -375,17 +375,17 @@ Joomla = window.Joomla || {}; // eslint-disable-next-line consistent-return getFilterFields() { if (this.mainContainer) { - return Array.prototype.slice.call(this.mainContainer.querySelectorAll('select,input')); + return this.mainContainer.querySelectorAll('select,input'); } if (this.filterContainer) { - return Array.prototype.slice.call(this.filterContainer.querySelectorAll('select,input')); + return this.filterContainer.querySelectorAll('select,input'); } return []; } getListFields() { - return Array.prototype.slice.call(this.listContainer.querySelectorAll('select')); + return this.listContainer.querySelectorAll('select'); } // Common container functions diff --git a/build/media_source/system/js/showon.es6.js b/build/media_source/system/js/showon.es6.js index d675c60e6ac9f..03035eb381a2c 100644 --- a/build/media_source/system/js/showon.es6.js +++ b/build/media_source/system/js/showon.es6.js @@ -22,7 +22,7 @@ class Showon { // } }; - this.showonFields = [].slice.call(this.container.querySelectorAll('[data-showon]')); + this.showonFields = this.container.querySelectorAll('[data-showon]'); // Populate the fields data if (this.showonFields.length) { // @todo refactor this, dry @@ -38,7 +38,7 @@ class Showon { let localFields; if (showonData.length) { - localFields = [].slice.call(self.container.querySelectorAll(`[name="${showonData[0].field}"], [name="${showonData[0].field}[]"]`)); + localFields = self.container.querySelectorAll(`[name="${showonData[0].field}"], [name="${showonData[0].field}[]"]`); if (!this.fields[showonData[0].field]) { this.fields[showonData[0].field] = { @@ -64,7 +64,7 @@ class Showon { return; } - localFields = [].slice.call(self.container.querySelectorAll(`[name="${value.field}"], [name="${value.field}[]"]`)); + localFields = self.container.querySelectorAll(`[name="${value.field}"], [name="${value.field}[]"]`); if (!this.fields[showonData[0].field]) { this.fields[showonData[0].field] = { @@ -260,7 +260,7 @@ const getMatchedParents = ($child, selector) => { document.addEventListener('joomla:updated', ({ target }) => { // Check is it subform, then wee need to fix some "showon" config if (target.classList.contains('subform-repeatable-group')) { - const elements = [].slice.call(target.querySelectorAll('[data-showon]')); + const elements = target.querySelectorAll('[data-showon]'); if (elements.length) { const search = []; diff --git a/build/media_source/system/js/table-columns.es6.js b/build/media_source/system/js/table-columns.es6.js index d6e72c2efa6b0..023e149381cb4 100644 --- a/build/media_source/system/js/table-columns.es6.js +++ b/build/media_source/system/js/table-columns.es6.js @@ -8,7 +8,7 @@ class TableColumns { this.storageKey = `joomla-tablecolumns-${this.tableName}`; this.$headers = [].slice.call($table.querySelector('thead tr').children); - this.$rows = [].slice.call($table.querySelectorAll('tbody tr')); + this.$rows = $table.querySelectorAll('tbody tr'); this.listOfHidden = []; // Load previous state diff --git a/build/media_source/templates/administrator/atum/scss/_variables-dark.scss b/build/media_source/templates/administrator/atum/scss/_variables-dark.scss index 8a14cef38b56b..7058ff86af0df 100644 --- a/build/media_source/templates/administrator/atum/scss/_variables-dark.scss +++ b/build/media_source/templates/administrator/atum/scss/_variables-dark.scss @@ -1,463 +1,463 @@ - -// Color definitions for the dark theme - don't use it with the light theme -$btn-primary-dark: #007db0; // contrast ratio: 4.6 with #fff text -$link-color-dark: #6fbfdb; // contrast ratio: 8.87 on backgrounds like #0F151D -$success-dark: #3d854d; // contrast ratio: 4.51 with #fff test -$warning: #f0ad4e; // contrast ratio: 4.51 with #fff text -$featured-dark: #f0ad4e; // contrast ratio: 9.42 on dark backgrounds (icons,etc.) -$danger-dark: #c62a25; // contrast ratio: 5.59 with #fff text -$error-dark: $danger-dark; // contrast ratio: 5.59 with #fff text -$info-dark: #33383f; // contrast ratio: 8.59 with #fff text - -$template-bg-dark: #0c1a2b; - -// Form select -$form-select-indicator-dark: url("../images/select-bg-dark.svg"); -$form-select-indicator-rtl-dark: url("../images/select-bg-rtl-dark.svg"); -$form-select-bg-dark: $btn-primary-dark; - -$atum-colors-dark: ( - - body-bg: #0f151d, - body-color: rgba(255,255,255,.85), - template-bg-dark: $template-bg-dark, - main-bg: #171c24, - - admin-background: var(--body-bg), - - button-and-icon-color: $btn-primary-dark, - template-quickicon-color: var(--template-bg-dark-5), // fix this - focus-shadow: var(--gray-800), - - media-manager-bg: var(--body-bg), - media-manager-content-bg: var(--body-bg), - media-manager-overlay-bg: var(--template-bg-dark-90), // fix this - media-manager-infobar-dt-color: rgba(255, 255, 255, .54), - media-manager-content-color: lighten($btn-primary-dark, 20%), - media-manager-overlay-header-bg: var(--template-bg-dark-80), - media-manager-disk-name-color: var(--template-text-light), - media-manager-border: 1px solid var(--gray-800), - media-manager-file-icon-color: $btn-primary-dark, - media-manager-tree-item-hover-bg: var(--gray-600), - media-manager-toolbar-icon-color: lighten($btn-primary-dark, 20%), - media-manager-breadcrumb-item-bg: var(--gray-700), - - media-tree-item-color: $btn-primary-dark, - media-tree-active-icon-color: darken($btn-primary-dark, 10%), - - media-browser-file-bg: var(--media-manager-bg), - media-drive-bg: var(--media-manager-bg), - - media-toolbar-bg: var(--media-manager-bg), - media-toolbar-icon-bg: var(--media-manager-bg), - media-toolbar-icon-color: lighten($btn-primary-dark, 10%), - media-toolbar-icon-bg-hvr: var(--gray-800), - - image-bg: #000, - image-bg-image: (linear-gradient(45deg, var(--body-bg) 25%, transparent 25%, transparent 75%, #111 75%, var(--body-bg) 100%), linear-gradient(45deg, #111 25%, transparent 25%, transparent 75%, var(--body-bg) 75%, var(--body-bg) 100%)), - - success-text: #418d52, - success: $success-dark, - successhvr: darken($success-dark, 15%), - - danger-text: #e0615c, - danger: $danger-dark, - dangerhvr: darken($danger-dark, 15%), - - darkdanger: #941f1c, - darkdangerhvr: darken(#941f1c, 15%), - - error: #941f1c, - errorhvr: #be2824, - - warning-text: #000, - warning: #f0ad4e, - warninghvr: darken($warning, 15%), - - dark-mode-text-light: rgba(255,255,255,.85), - - template-link-color: $link-color-dark, - link-color-rgb: (36,158,200), - link-color: $link-color-dark, - template-link-hover-color: lighten($link-color-dark, 10%), - link-color-rgb-hvr: var(--template-link-hover-color), - - template-quickicon-bg: rgba(255, 255, 255, .1), - template-quickicon-bg-hvr: rgba(255, 255, 255, .15), - - // Admin section - options-form-color: var(--template-text-light), - options-form-bg: transparent, //#484b51, //#52565b, - options-form-border: 1px solid rgba(255, 255, 255, .05), - options-form-legend-color: var(--template-text-light), - options-form-legend-bg: var(--admin-background), - form-control-bg: var(--template-sidebar-bg), - form-control-bg-disabled: var(--gray-800), - form-control-border: 1px solid rgba(255, 255, 255, .2), - form-control-border-disabled: 1px solid rgba(255, 255, 255, .1), - - form-check-input-checked-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23eee' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e"), - form-check-input-checked-bg-color: $btn-primary-dark, - form-check-input-border: 1px solid rgba(255, 255, 255, .2), //rgba(255, 255, 255, .05), - - form-select-background: $form-select-bg-dark $form-select-indicator-dark no-repeat right center / $form-select-bg-size, // Used so we can have multiple background elements (e.g., arrow and feedback icon) - form-select-background-rtl: $form-select-bg-dark $form-select-indicator-rtl-dark no-repeat left center / $form-select-bg-size, // Used so we can have multiple background elements (e.g. arrow and feedback icon) - - form-select-border: var(--form-control-border), - form-select-success-bg: var(--template-sidebar-bg), - form-select-danger-bg: var(--template-sidebar-bg), - form-select-disabled-bg: var(--template-sidebar-bg), - form-select-option: var(--template-text-light), - form-select-option-disabled-bg: var(--template-bg-dark-90), - file-selector-btn-bg: $btn-primary-dark, - file-selector-btn-bg-hvr: darken($btn-primary-dark, 10%), - - // Background styles - bg-normal: var(--template-bg-dark), - bg-reverted: var(--template-bg-dark-20), - - // Text styles - text-normal: var(--template-text-light), - text-reverted: black, //var(--template-text-dark), - text-muted-color: var(--template-text-light) !important, - text-muted-hvr-color: var(--template-text-dark) !important, - - // Quickicons styles - quickicon-bg: transparent, - quickicon-border: none, - quickicon-border-radius: 4px, - quickicon-link-hvr: #fff, - quickicon-linkadd-bg: rgba(255, 255, 255, .04), - quickicon-linkadd-bg-hvr: var(--btn-primary-bg-hvr), - quickicon-linkadd-color: #fff, - quickicon-amount-bg: #6b6f77, - quickicon-color-hvr: var(--quickicon-link-hvr), - - // Modules - new-modules-color: var(--template-quickicon-color), - new-modules-bg: var(--template-bg-dark-65), - new-modules-bg-hvr: var(--btn-primary-bg-hvr), - new-modules-icon-color: var(--template-bg-dark-80), - new-modules-icon-color-hvr: var(--template-quickicon-color), - new-module-color: var(--dark-mode-text-light), - new-module-bg: var(--template-quickicon-bg), - new-module-border: none, - new-module-link-bg: rgba(255, 255, 255, .05), - new-module-link-span: var(--quickicon-linkadd-color), - new-module-link-hvr: var(--new-modules-bg-hvr), - new-module-link-span-hvr: var(--icon-color-hvr), - - // Sidebar - sidebarwrapper-bg: var(--template-sidebar-bg), - sidebar-item-color: $white, - sidebar-item-color-hvr: var(--template-text-light), - sidebar-item-bg-hvr: $btn-primary-dark, - sidebar-toggle-bg: #20262d, - sidebar-toggle-link: $white, - main-nav-ul-bg: #20262d, - main-nav-divider-bg: #495057, - main-nav-item-title: var(--template-bg-dark-30), - main-nav-mm-active-bg: $btn-primary-dark, - main-nav-mm-active-quicktask-bg: darken($btn-primary-dark, 10%), - main-nav-badge: var(--template-bg-dark-60), - main-nav-item-title-hvr-bg: $btn-primary-dark, - mobile-menu-collapse-bg: var(--template-bg-dark-50), - sidebar-bg: #0f151d, - template-sidebar-bg: #0f151d, - sidebar-accent-bg: #2667bb, - - // Header content - header-bg: #0a0e13, - header-item-content-bg: $btn-primary-dark, - header-item-content-bg-hvr: darken($btn-primary-dark, 10%), - header-item-content-border-radius: 22px, - header-item-content-jversion-color: var(--dark-mode-text-light), - header-item-content-jversion-bg: transparent, - header-logo-bg: var(--header-bg), - - // Alerts - alert-accent-color: #479a59, // ?? - alert-bg-color: #f2f8f4, - alert-link-text-color: $link-color-dark, - - // Table - table-color: rgba(255,255,255,.9), - table-border-top-nfc: 1px solid #969696, - table-link-color: $link-color-dark, - table-link-font-weight: $normal-weight, - table-link-font-weight-sorted: $normal-weight, - badge-bg-info: rgba(255, 255, 255, .2) !important, - info: rgba(255, 255, 255, .2) !important, - - // Card - card-bg-dark: var(--template-sidebar-bg), - card-header-color: var(--dark-mode-text-light), - card-header-bg: var(--template-sidebar-bg), - card-bg: var(--template-sidebar-bg), - card-body-bg: var(--template-sidebar-bg), - main-card-bg: var(--template-sidebar-bg), - main-card-col-border-left: 1px solid var(--gray-800), - - // Cpanel - module-actions-color: var(--body-color), - - // Lists - atum-list-group-border-color: rgba(255, 255, 255, .1), - border-color: rgba(255, 255, 255, .1), - - // Turn off shadow in dark mode - atum-box-shadow: none, - dropdown-box-shadow: none, - quickicon-box-shadow-success: none, - quickicon-box-shadow-danger: none, - quickicon-box-shadow-warning: none, - login-box-shadow: none, - login-focus-box-shadow: none, - modal-btn-box-shadow: none, - modal-joomla-dialog-box-shadow: none, - form-aria-grabbed-box-shadow: none, - choices__button_joomla-focus-box-shadow: none, - - joomla-tab-accordion-box-shadow: none, - joomla-tab-btn-hvr: var(--template-text-light), - joomla-tab-btn-aria-exp-bg: var(--atum-btn-bg), - joomla-tab-btn-region-border: var(--atum-btn-bg), - - joomla-tablist-btn-aria-exp: var(--template-text-light), - joomla-tablist-btn-aria-exp-bg: darken($btn-primary-dark, 10%), - joomla-tablist-btn-aria-exp-aft-bg: $btn-primary-dark, - joomla-tablist-border-bottom: 1px solid var(--gray-800), - - joomla-tab-tablist-border: 1px solid var(--gray-800), - joomla-tab-vert-border-bottom: 1px solid var(--gray-800), - - // Details - details-bg: rgba(0,0,0,.4), - details-border: 1px solid var(--details-bg), - - // Nav - nav-header-color: var(--body-color), - - // Choices - choices-input-border-color: var(--btn-primary-bg), - choices-input-bg: var(--body-bg), - choices-input-placeholder: var(--gray-200), - choices-list-multiple-item-bg: var(--btn-primary-bg), - choices-list-multiple-item: var(--template-text-light), - - // Switches - switcher-toggle-inside-bg: var(--body-bg), - switcher-toggle-outside-off-bg: var(--gray-700), - switcher-toggle-outside-on-bg: var(--success), - - // Input - input-border-color: #495057, - - // icons - featured-icon-color: $featured-dark, - - // Users - users-method-image: var(--light), - users-methods-reset-cont-bg: var(--body-bg), - users-method-header-inact-bg: var(--body-bg), - - // Login - login-label-color: var(--white), - - // Icons - icon-success: #418d52, - icon-success-border: #418d52, - icon-checkedout-color: var(--gray-400), - - // Buttons - btn-primary-color: var(--text-normal), - btn-primary-bg: $btn-primary-dark, - primary: $btn-primary-dark, - btn-primary-border: 1px solid lighten($btn-primary-dark, 10%), - btn-primary-bg-hvr: darken($btn-primary-dark, 10%), - btn-primary-border-hvr: 1px solid lighten($btn-primary-dark, 10%), - btn-primary-toggle-bg: var(--template-bg-dark), - btn-primary-toggle-border: var(--template-bg-dark), - - btn-secondary-color: var(--template-text-light), - btn-secondary-bg: $info-dark, - btn-secondary-border: 1px solid lighten($info-dark, 10%), - btn-secondary-bg-hvr: darken($info-dark, 10%), - btn-secondary-border-hvr: 1px solid lighten($info-dark, 10%), - - btn-dark-border: 1px solid rgba(0,0,0,.85), - btn-dark-bg: rgba(0,0,0,.9), - btn-dark-bg-hvr: #000, - btn-dark-color: #fff, - btn-dark-color-hvr: #fff, - - btn-light-bg: $btn-primary-dark, - btn-light-border: 1px solid lighten($btn-primary-dark, 10%), - btn-light-bg-hvr: $btn-primary-bg-hvr, - - - btn-outline-secondary-color: var(--template-text-light), - btn-outline-secondary-bg: #64676c, - btn-outline-secondary-border: 1px solid lighten(#64676c, 10%), - - btn-info-color: var(--template-text-light), - btn-info-bg: $info-dark, - btn-info-border: 1px solid lighten($info-dark, 10%), - btn-info-bg-hvr: darken($info-dark, 10%), - btn-info-border-hvr: 1px solid darken($info-dark, 10%), - - // Dropdown - dropdown-header-bg: darken($btn-primary-dark, 10%), - dropdown-divider-bg: 1px solid #fff, - dropdown-item-bg: $btn-primary-dark, - dropdown-item-bg-hvr: darken($btn-primary-dark, 10%), - dropdown-item-border-bottom: 1px solid rgba(255, 255, 255, .1), - atum-dropdown-link-hover-bg: var(--gray-700), - - // Input Group - input-group-text-bg: var(--btn-primary-bg), - input-group-text-border: 1px solid var(--btn-primary-border), - input-group-text-color: var(--btn-primary-color), - - // Search - js-stools-btn-clear-bg: var(--body-bg), - js-stools-btn-clear-disabled-bg: var(--body-bg), - js-stools-btn-clear-disabled-border: var(--form-select-border), - - // Alerts - states-link-color: #fff, - states-btn-primary-bg: rgba(0,0,0,.5), - states-btn-primary-bg-hover: rgba(0,0,0,.7), - states-btn-primary-color: var(--template-text-light), - states-btn-primary-border: rgba(0,0,0,.8), - - - state-success-text: var(--text-normal), - state-success-text-hvr: var(--text-normal), - state-success-bg: $success-dark, - state-success-bg-hvr: darken($success-dark, 15%), - state-success-border: var(--state-success-bg), - state-success-btn-border: var(--state-success-bg), - state-success-icon: var(--text-normal), - state-success-icon-hvr: var(--text-normal), - state-success-heading-bg: $success-dark, - - state-info-text: var(--text-normal), - state-info-text-hvr: var(--text-normal), - state-info-bg: darken($btn-primary-dark, 15%), - state-info-bg-hvr: darken($btn-primary-dark, 25%), - state-info-border: transparent, - state-info-icon: var(--state-info-text), - state-info-heading-bg: darken($btn-primary-dark, 5%), - - state-warning-text: #000, - state-warning-text-hvr: #000, - state-warning-bg: $warning, - state-warning-bg-hvr: darken($warning, 15%), - state-warning-border: darken($warning, 15%), - state-warning-icon: #000, - state-warning-heading-bg: darken($warning, 15%), - - state-danger-text: var(--text-normal), - state-danger-text-hvr: var(--text-normal), - state-danger-bg: $danger-dark, - state-danger-bg-hvr: darken($danger-dark, 15%), - state-danger-border: var(--dangerhvr), - state-danger-icon: var(--text-normal), - state-danger-heading-bg: var(--dangerhvr), - - state-error-text: var(--text-normal), - state-error-bg: var(--error), - state-error-border: var(--error), - state-error-icon: var(--text-normal), - state-error-heading-bg: var(--errorlight), - - alert-info-color: var(--text-normal), - alert-info-bg: var(--body-bg), - alert-info-border: var(--body-bg), - - // Subhead - atum-subhead-color: var(--template-text-dark), - atum-subhead-bg: var(--body-bg), - atum-subhead-bg-img: (linear-gradient(var(--body-bg), var(--dark-bg))), - - // Toolbar Buttons - atum-btn: var(--template-text-light), - atum-btn-icon: var(--template-text-light), - atum-btn-icon-hvr: $atum-text-dark, - atum-btn-bg: $btn-primary-dark, - atum-btn-bg-hvr: darken($btn-primary-dark, 15%), - atum-btn-border: 1px solid hsl(var(--hue),20%,80%), - atum-btn-hvr: var(--template-text-light), - - atum-btn-success: var(--atum-btn-success-hvr), - atum-btn-success-icon: var(--template-text-light), - atum-btn-success-icon-hvr: var(--atum-btn-success-hvr), - atum-btn-success-bg: $success-dark, - atum-btn-success-bg-hvr: darken($success-dark, 15%), - atum-btn-success-border: 1px solid lighten($success-dark, 10%), - atum-btn-success-hvr: var(--template-text-light), - - atum-btn-danger: var(--dangerhvr), - atum-btn-danger-color: var(--template-text-light), - atum-btn-danger-icon: var(--template-text-light), - atum-btn-danger-icon-hvr: var(--atum-btn-danger-hvr), - atum-btn-danger-bg: $danger, - atum-btn-danger-bg-hvr: darken($danger, 15%), - atum-btn-danger-border: 1px solid lighten($danger, 10%), - atum-btn-danger-hvr: var(--template-text-light), - - atum-btn-info: lighten($info-dark, 50%), - atum-btn-info-icon: var(--template-text-light), - atum-btn-info-icon-hvr: var(--template-text-dark), - atum-btn-info-bg: $info-dark, - atum-btn-info-bg-hvr: darken($info-dark, 15%), - atum-btn-info-border: 1px solid lighten($info-dark, 10%), - atum-btn-info-hvr: var(--template-text-dark), - - atum-btn-primary: lighten($btn-primary-dark, 25%), - atum-btn-primary-icon: var(--template-text-light), - atum-btn-primary-icon-hvr: var(--template-text-dark), - atum-btn-primary-bg: $btn-primary-dark, //var(--template-bg-dark), - atum-btn-primary-bg-hvr: darken($btn-primary-dark, 15%), - atum-btn-primary-border: 1px solid lighten($btn-primary-dark, 10%), - atum-btn-primary-hvr: var(--template-text-light), - - atum-btn-secondary: #f0f4fb, - - atum-btn-action: darken($info-dark, 10%), - atum-btn-action-icon: var(--template-text-light), - atum-btn-action-icon-hvr: var(--atum-btn-action-hvr), - atum-btn-action-bg: $info-dark, - atum-btn-action-bg-hvr: darken($info-dark, 15%), - atum-btn-action-border: 1px solid lighten($info-dark, 10%), - - atum-list-group-bg: var(--template-sidebar-bg), - - atum-calendar-week-bg: #4b4b4b, - atum-calendar-bg: var(--body-bg), - atum-calendar-buttons-color: var(--btn-primary-bg), - atum-calendar-disabled-color: #4b4b4b, - atum-calendar-disabled-bg: rgba(0,0,0,.5), - atum-calendar-select-bg: $form-select-bg-dark, - atum-calendar-select-bg-url: url("../../images/select-bg-dark.svg"), - atum-calendar-select-bg-url-rtl: url("../../images/select-bg-dark-rtl.svg"), - - // Permissions - permissions-sliders-oddCol-bg: var(--template-bg-dark), - respTable-border-bottom: 1em solid $btn-primary-dark, - - // Treeselect - treeselect-line-color: rgba(255,255,255,.4), - treeselect-dropdown-toggle: var(--template-text-light), - icon-check-square-bg: $btn-primary-dark, - icon-square-bg: $btn-primary-dark, - icon-check-square-color: radial-gradient(white 50%, transparent 50%), - icon-square-color: radial-gradient(white 50%, transparent 50%), - - - // Table Row Dragging - drag-color: #151515, - drag-background-color: #c2d049, - -); + +// Color definitions for the dark theme - don't use it with the light theme +$btn-primary-dark: #007db0; // contrast ratio: 4.6 with #fff text +$link-color-dark: #6fbfdb; // contrast ratio: 8.87 on backgrounds like #0F151D +$success-dark: #3d854d; // contrast ratio: 4.51 with #fff test +$warning: #f0ad4e; // contrast ratio: 4.51 with #fff text +$featured-dark: #f0ad4e; // contrast ratio: 9.42 on dark backgrounds (icons,etc.) +$danger-dark: #c62a25; // contrast ratio: 5.59 with #fff text +$error-dark: $danger-dark; // contrast ratio: 5.59 with #fff text +$info-dark: #33383f; // contrast ratio: 8.59 with #fff text + +$template-bg-dark: #0c1a2b; + +// Form select +$form-select-indicator-dark: url("../images/select-bg-dark.svg"); +$form-select-indicator-rtl-dark: url("../images/select-bg-rtl-dark.svg"); +$form-select-bg-dark: $btn-primary-dark; + +$atum-colors-dark: ( + + body-bg: #0f151d, + body-color: rgba(255,255,255,.85), + template-bg-dark: $template-bg-dark, + main-bg: #171c24, + + admin-background: var(--body-bg), + + button-and-icon-color: $btn-primary-dark, + template-quickicon-color: var(--template-bg-dark-5), // fix this + focus-shadow: var(--gray-800), + + media-manager-bg: var(--body-bg), + media-manager-content-bg: var(--body-bg), + media-manager-overlay-bg: var(--template-bg-dark-90), // fix this + media-manager-infobar-dt-color: rgba(255, 255, 255, .54), + media-manager-content-color: lighten($btn-primary-dark, 20%), + media-manager-overlay-header-bg: var(--template-bg-dark-80), + media-manager-disk-name-color: var(--template-text-light), + media-manager-border: 1px solid var(--gray-800), + media-manager-file-icon-color: $btn-primary-dark, + media-manager-tree-item-hover-bg: var(--gray-600), + media-manager-toolbar-icon-color: lighten($btn-primary-dark, 20%), + media-manager-breadcrumb-item-bg: var(--gray-700), + + media-tree-item-color: $btn-primary-dark, + media-tree-active-icon-color: darken($btn-primary-dark, 10%), + + media-browser-file-bg: var(--media-manager-bg), + media-drive-bg: var(--media-manager-bg), + + media-toolbar-bg: var(--media-manager-bg), + media-toolbar-icon-bg: var(--media-manager-bg), + media-toolbar-icon-color: lighten($btn-primary-dark, 10%), + media-toolbar-icon-bg-hvr: var(--gray-800), + + image-bg: #000, + image-bg-image: (linear-gradient(45deg, var(--body-bg) 25%, transparent 25%, transparent 75%, #111 75%, var(--body-bg) 100%), linear-gradient(45deg, #111 25%, transparent 25%, transparent 75%, var(--body-bg) 75%, var(--body-bg) 100%)), + + success-text: #418d52, + success: $success-dark, + successhvr: darken($success-dark, 15%), + + danger-text: #e0615c, + danger: $danger-dark, + dangerhvr: darken($danger-dark, 15%), + + darkdanger: #941f1c, + darkdangerhvr: darken(#941f1c, 15%), + + error: #941f1c, + errorhvr: #be2824, + + warning-text: #000, + warning: #f0ad4e, + warninghvr: darken($warning, 15%), + + dark-mode-text-light: rgba(255,255,255,.85), + + template-link-color: $link-color-dark, + link-color-rgb: (36,158,200), + link-color: $link-color-dark, + template-link-hover-color: lighten($link-color-dark, 10%), + link-color-rgb-hvr: var(--template-link-hover-color), + + template-quickicon-bg: rgba(255, 255, 255, .1), + template-quickicon-bg-hvr: rgba(255, 255, 255, .15), + + // Admin section + options-form-color: var(--template-text-light), + options-form-bg: transparent, // #484b51, // #52565b, + options-form-border: 1px solid rgba(255, 255, 255, .05), + options-form-legend-color: var(--template-text-light), + options-form-legend-bg: var(--admin-background), + form-control-bg: var(--template-sidebar-bg), + form-control-bg-disabled: var(--gray-800), + form-control-border: 1px solid rgba(255, 255, 255, .2), + form-control-border-disabled: 1px solid rgba(255, 255, 255, .1), + + form-check-input-checked-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23eee' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e"), + form-check-input-checked-bg-color: $btn-primary-dark, + form-check-input-border: 1px solid rgba(255, 255, 255, .2), // rgba(255, 255, 255, .05), + + form-select-background: $form-select-bg-dark $form-select-indicator-dark no-repeat right center / $form-select-bg-size, // Used so we can have multiple background elements (e.g., arrow and feedback icon) + form-select-background-rtl: $form-select-bg-dark $form-select-indicator-rtl-dark no-repeat left center / $form-select-bg-size, // Used so we can have multiple background elements (e.g. arrow and feedback icon) + + form-select-border: var(--form-control-border), + form-select-success-bg: var(--template-sidebar-bg), + form-select-danger-bg: var(--template-sidebar-bg), + form-select-disabled-bg: var(--template-sidebar-bg), + form-select-option: var(--template-text-light), + form-select-option-disabled-bg: var(--template-bg-dark-90), + file-selector-btn-bg: $btn-primary-dark, + file-selector-btn-bg-hvr: darken($btn-primary-dark, 10%), + + // Background styles + bg-normal: var(--template-bg-dark), + bg-reverted: var(--template-bg-dark-20), + + // Text styles + text-normal: var(--template-text-light), + text-reverted: black, // var(--template-text-dark), + text-muted-color: var(--template-text-light) !important, + text-muted-hvr-color: var(--template-text-dark) !important, + + // Quickicons styles + quickicon-bg: transparent, + quickicon-border: none, + quickicon-border-radius: 4px, + quickicon-link-hvr: #fff, + quickicon-linkadd-bg: rgba(255, 255, 255, .04), + quickicon-linkadd-bg-hvr: var(--btn-primary-bg-hvr), + quickicon-linkadd-color: #fff, + quickicon-amount-bg: #6b6f77, + quickicon-color-hvr: var(--quickicon-link-hvr), + + // Modules + new-modules-color: var(--template-quickicon-color), + new-modules-bg: var(--template-bg-dark-65), + new-modules-bg-hvr: var(--btn-primary-bg-hvr), + new-modules-icon-color: var(--template-bg-dark-80), + new-modules-icon-color-hvr: var(--template-quickicon-color), + new-module-color: var(--dark-mode-text-light), + new-module-bg: var(--template-quickicon-bg), + new-module-border: none, + new-module-link-bg: rgba(255, 255, 255, .05), + new-module-link-span: var(--quickicon-linkadd-color), + new-module-link-hvr: var(--new-modules-bg-hvr), + new-module-link-span-hvr: var(--icon-color-hvr), + + // Sidebar + sidebarwrapper-bg: var(--template-sidebar-bg), + sidebar-item-color: $white, + sidebar-item-color-hvr: var(--template-text-light), + sidebar-item-bg-hvr: $btn-primary-dark, + sidebar-toggle-bg: #20262d, + sidebar-toggle-link: $white, + main-nav-ul-bg: #20262d, + main-nav-divider-bg: #495057, + main-nav-item-title: var(--template-bg-dark-30), + main-nav-mm-active-bg: $btn-primary-dark, + main-nav-mm-active-quicktask-bg: darken($btn-primary-dark, 10%), + main-nav-badge: var(--template-bg-dark-60), + main-nav-item-title-hvr-bg: $btn-primary-dark, + mobile-menu-collapse-bg: var(--template-bg-dark-50), + sidebar-bg: #0f151d, + template-sidebar-bg: #0f151d, + sidebar-accent-bg: #2667bb, + + // Header content + header-bg: #0a0e13, + header-item-content-bg: $btn-primary-dark, + header-item-content-bg-hvr: darken($btn-primary-dark, 10%), + header-item-content-border-radius: 22px, + header-item-content-jversion-color: var(--dark-mode-text-light), + header-item-content-jversion-bg: transparent, + header-logo-bg: var(--header-bg), + + // Alerts + alert-accent-color: #479a59, // ?? + alert-bg-color: #f2f8f4, + alert-link-text-color: $link-color-dark, + + // Table + table-color: rgba(255,255,255,.9), + table-border-top-nfc: 1px solid #969696, + table-link-color: $link-color-dark, + table-link-font-weight: $normal-weight, + table-link-font-weight-sorted: $normal-weight, + badge-bg-info: rgba(255, 255, 255, .2) !important, + info: rgba(255, 255, 255, .2) !important, + + // Card + card-bg-dark: var(--template-sidebar-bg), + card-header-color: var(--dark-mode-text-light), + card-header-bg: var(--template-sidebar-bg), + card-bg: var(--template-sidebar-bg), + card-body-bg: var(--template-sidebar-bg), + main-card-bg: var(--template-sidebar-bg), + main-card-col-border-left: 1px solid var(--gray-800), + + // Cpanel + module-actions-color: var(--body-color), + + // Lists + atum-list-group-border-color: rgba(255, 255, 255, .1), + border-color: rgba(255, 255, 255, .1), + + // Turn off shadow in dark mode + atum-box-shadow: none, + dropdown-box-shadow: none, + quickicon-box-shadow-success: none, + quickicon-box-shadow-danger: none, + quickicon-box-shadow-warning: none, + login-box-shadow: none, + login-focus-box-shadow: none, + modal-btn-box-shadow: none, + modal-joomla-dialog-box-shadow: none, + form-aria-grabbed-box-shadow: none, + choices__button_joomla-focus-box-shadow: none, + + joomla-tab-accordion-box-shadow: none, + joomla-tab-btn-hvr: var(--template-text-light), + joomla-tab-btn-aria-exp-bg: var(--atum-btn-bg), + joomla-tab-btn-region-border: var(--atum-btn-bg), + + joomla-tablist-btn-aria-exp: var(--template-text-light), + joomla-tablist-btn-aria-exp-bg: darken($btn-primary-dark, 10%), + joomla-tablist-btn-aria-exp-aft-bg: $btn-primary-dark, + joomla-tablist-border-bottom: 1px solid var(--gray-800), + + joomla-tab-tablist-border: 1px solid var(--gray-800), + joomla-tab-vert-border-bottom: 1px solid var(--gray-800), + + // Details + details-bg: rgba(0,0,0,.4), + details-border: 1px solid var(--details-bg), + + // Nav + nav-header-color: var(--body-color), + + // Choices + choices-input-border-color: var(--btn-primary-bg), + choices-input-bg: var(--body-bg), + choices-input-placeholder: var(--gray-200), + choices-list-multiple-item-bg: var(--btn-primary-bg), + choices-list-multiple-item: var(--template-text-light), + + // Switches + switcher-toggle-inside-bg: var(--body-bg), + switcher-toggle-outside-off-bg: var(--gray-700), + switcher-toggle-outside-on-bg: var(--success), + + // Input + input-border-color: #495057, + + // icons + featured-icon-color: $featured-dark, + + // Users + users-method-image: var(--light), + users-methods-reset-cont-bg: var(--body-bg), + users-method-header-inact-bg: var(--body-bg), + + // Login + login-label-color: var(--white), + + // Icons + icon-success: #418d52, + icon-success-border: #418d52, + icon-checkedout-color: var(--gray-400), + + // Buttons + btn-primary-color: var(--text-normal), + btn-primary-bg: $btn-primary-dark, + primary: $btn-primary-dark, + btn-primary-border: 1px solid lighten($btn-primary-dark, 10%), + btn-primary-bg-hvr: darken($btn-primary-dark, 10%), + btn-primary-border-hvr: 1px solid lighten($btn-primary-dark, 10%), + btn-primary-toggle-bg: var(--template-bg-dark), + btn-primary-toggle-border: var(--template-bg-dark), + + btn-secondary-color: var(--template-text-light), + btn-secondary-bg: $info-dark, + btn-secondary-border: 1px solid lighten($info-dark, 10%), + btn-secondary-bg-hvr: darken($info-dark, 10%), + btn-secondary-border-hvr: 1px solid lighten($info-dark, 10%), + + btn-dark-border: 1px solid rgba(0,0,0,.85), + btn-dark-bg: rgba(0,0,0,.9), + btn-dark-bg-hvr: #000, + btn-dark-color: #fff, + btn-dark-color-hvr: #fff, + + btn-light-bg: $btn-primary-dark, + btn-light-border: 1px solid lighten($btn-primary-dark, 10%), + btn-light-bg-hvr: $btn-primary-bg-hvr, + + + btn-outline-secondary-color: var(--template-text-light), + btn-outline-secondary-bg: #64676c, + btn-outline-secondary-border: 1px solid lighten(#64676c, 10%), + + btn-info-color: var(--template-text-light), + btn-info-bg: $info-dark, + btn-info-border: 1px solid lighten($info-dark, 10%), + btn-info-bg-hvr: darken($info-dark, 10%), + btn-info-border-hvr: 1px solid darken($info-dark, 10%), + + // Dropdown + dropdown-header-bg: darken($btn-primary-dark, 10%), + dropdown-divider-bg: 1px solid #fff, + dropdown-item-bg: $btn-primary-dark, + dropdown-item-bg-hvr: darken($btn-primary-dark, 10%), + dropdown-item-border-bottom: 1px solid rgba(255, 255, 255, .1), + atum-dropdown-link-hover-bg: var(--gray-700), + + // Input Group + input-group-text-bg: var(--btn-primary-bg), + input-group-text-border: 1px solid var(--btn-primary-border), + input-group-text-color: var(--btn-primary-color), + + // Search + js-stools-btn-clear-bg: var(--body-bg), + js-stools-btn-clear-disabled-bg: var(--body-bg), + js-stools-btn-clear-disabled-border: var(--form-select-border), + + // Alerts + states-link-color: #fff, + states-btn-primary-bg: rgba(0,0,0,.5), + states-btn-primary-bg-hover: rgba(0,0,0,.7), + states-btn-primary-color: var(--template-text-light), + states-btn-primary-border: rgba(0,0,0,.8), + + + state-success-text: var(--text-normal), + state-success-text-hvr: var(--text-normal), + state-success-bg: $success-dark, + state-success-bg-hvr: darken($success-dark, 15%), + state-success-border: var(--state-success-bg), + state-success-btn-border: var(--state-success-bg), + state-success-icon: var(--text-normal), + state-success-icon-hvr: var(--text-normal), + state-success-heading-bg: $success-dark, + + state-info-text: var(--text-normal), + state-info-text-hvr: var(--text-normal), + state-info-bg: darken($btn-primary-dark, 15%), + state-info-bg-hvr: darken($btn-primary-dark, 25%), + state-info-border: transparent, + state-info-icon: var(--state-info-text), + state-info-heading-bg: darken($btn-primary-dark, 5%), + + state-warning-text: #000, + state-warning-text-hvr: #000, + state-warning-bg: $warning, + state-warning-bg-hvr: darken($warning, 15%), + state-warning-border: darken($warning, 15%), + state-warning-icon: #000, + state-warning-heading-bg: darken($warning, 15%), + + state-danger-text: var(--text-normal), + state-danger-text-hvr: var(--text-normal), + state-danger-bg: $danger-dark, + state-danger-bg-hvr: darken($danger-dark, 15%), + state-danger-border: var(--dangerhvr), + state-danger-icon: var(--text-normal), + state-danger-heading-bg: var(--dangerhvr), + + state-error-text: var(--text-normal), + state-error-bg: var(--error), + state-error-border: var(--error), + state-error-icon: var(--text-normal), + state-error-heading-bg: var(--errorlight), + + alert-info-color: var(--text-normal), + alert-info-bg: var(--body-bg), + alert-info-border: var(--body-bg), + + // Subhead + atum-subhead-color: var(--template-text-dark), + atum-subhead-bg: var(--body-bg), + atum-subhead-bg-img: (linear-gradient(var(--body-bg), var(--dark-bg))), + + // Toolbar Buttons + atum-btn: var(--template-text-light), + atum-btn-icon: var(--template-text-light), + atum-btn-icon-hvr: $atum-text-dark, + atum-btn-bg: $btn-primary-dark, + atum-btn-bg-hvr: darken($btn-primary-dark, 15%), + atum-btn-border: 1px solid hsl(var(--hue),20%,80%), + atum-btn-hvr: var(--template-text-light), + + atum-btn-success: var(--atum-btn-success-hvr), + atum-btn-success-icon: var(--template-text-light), + atum-btn-success-icon-hvr: var(--atum-btn-success-hvr), + atum-btn-success-bg: $success-dark, + atum-btn-success-bg-hvr: darken($success-dark, 15%), + atum-btn-success-border: 1px solid lighten($success-dark, 10%), + atum-btn-success-hvr: var(--template-text-light), + + atum-btn-danger: var(--dangerhvr), + atum-btn-danger-color: var(--template-text-light), + atum-btn-danger-icon: var(--template-text-light), + atum-btn-danger-icon-hvr: var(--atum-btn-danger-hvr), + atum-btn-danger-bg: $danger, + atum-btn-danger-bg-hvr: darken($danger, 15%), + atum-btn-danger-border: 1px solid lighten($danger, 10%), + atum-btn-danger-hvr: var(--template-text-light), + + atum-btn-info: lighten($info-dark, 50%), + atum-btn-info-icon: var(--template-text-light), + atum-btn-info-icon-hvr: var(--template-text-dark), + atum-btn-info-bg: $info-dark, + atum-btn-info-bg-hvr: darken($info-dark, 15%), + atum-btn-info-border: 1px solid lighten($info-dark, 10%), + atum-btn-info-hvr: var(--template-text-dark), + + atum-btn-primary: lighten($btn-primary-dark, 25%), + atum-btn-primary-icon: var(--template-text-light), + atum-btn-primary-icon-hvr: var(--template-text-dark), + atum-btn-primary-bg: $btn-primary-dark, // var(--template-bg-dark), + atum-btn-primary-bg-hvr: darken($btn-primary-dark, 15%), + atum-btn-primary-border: 1px solid lighten($btn-primary-dark, 10%), + atum-btn-primary-hvr: var(--template-text-light), + + atum-btn-secondary: #f0f4fb, + + atum-btn-action: darken($info-dark, 10%), + atum-btn-action-icon: var(--template-text-light), + atum-btn-action-icon-hvr: var(--atum-btn-action-hvr), + atum-btn-action-bg: $info-dark, + atum-btn-action-bg-hvr: darken($info-dark, 15%), + atum-btn-action-border: 1px solid lighten($info-dark, 10%), + + atum-list-group-bg: var(--template-sidebar-bg), + + atum-calendar-week-bg: #4b4b4b, + atum-calendar-bg: var(--body-bg), + atum-calendar-buttons-color: var(--btn-primary-bg), + atum-calendar-disabled-color: #4b4b4b, + atum-calendar-disabled-bg: rgba(0,0,0,.5), + atum-calendar-select-bg: $form-select-bg-dark, + atum-calendar-select-bg-url: url("../../images/select-bg-dark.svg"), + atum-calendar-select-bg-url-rtl: url("../../images/select-bg-dark-rtl.svg"), + + // Permissions + permissions-sliders-oddCol-bg: var(--template-bg-dark), + respTable-border-bottom: 1em solid $btn-primary-dark, + + // Treeselect + treeselect-line-color: rgba(255,255,255,.4), + treeselect-dropdown-toggle: var(--template-text-light), + icon-check-square-bg: $btn-primary-dark, + icon-square-bg: $btn-primary-dark, + icon-check-square-color: radial-gradient(white 50%, transparent 50%), + icon-square-color: radial-gradient(white 50%, transparent 50%), + + + // Table Row Dragging + drag-color: #151515, + drag-background-color: #c2d049, + +); diff --git a/build/media_source/templates/administrator/atum/scss/_variables.scss b/build/media_source/templates/administrator/atum/scss/_variables.scss index 4e547cf18a1a5..9b333c7ccfae8 100644 --- a/build/media_source/templates/administrator/atum/scss/_variables.scss +++ b/build/media_source/templates/administrator/atum/scss/_variables.scss @@ -1,1032 +1,1033 @@ -// Remove prefix added in BS5 for compat with Joomla beta's shipped with Betas -$prefix: ""; - -// Use dark mode conditionally based on data-bs-theme attribute -$color-mode-type: data; - -// Enable dark mode in J5.0 -$enable-dark-mode: true; - -// Variables -$white: #fff; -$whiteoffset: #fefefe; -$gray-100: #f8f9fa; -$gray-200: #e8e8e8; -$gray-300: #dee2e6; //used for toolbar and badges -$gray-400: #cdcdcd; //used for border-bottom sidebar-nav and toolbar normal border -$gray-500: #adb5bd; //used in toolbar and buttons for border -$gray-600: #666e76; //used for atum-text-dark and $secondary -$gray-700: #495057; //used for atum-text-dark, secondary -$gray-800: #343a40; -$gray-900: #212529; //used for tree header -$bluegray: #b2bfcd; // used for borders -$black: #000; //used for shadows -$dark-blue: #001b4c; //is the atum-special-color -$light-blue: #2a69b8; //is the template-link-color - -// BS Colours -$blue: #2a69b7; // Same as hsl(213, 63%, 44%); // base color for calculation, Primary-color -$indigo: #0377be; //used in bootstrap -$purple: #6f42c1; //used in bootstrap -$pink: #971250; //used in bootstrap -$red: #c52827; //used in bootstrap -$red-dark: #3b0d0c; //used for alerts error -$yellow: #ffb514; //used in bootstrap -$green: #457d54; //used in bootstrap -$green-dark: #0f2f21; //used for alert success -$teal: #20c997; //used in bootstrap -$cyan: #107d8e; //used in bootstrap -$darkblue: #132f53; -$base-color: $darkblue; - -// Atum colours defined as scss variables for use in scss functions -$atum-text-dark: $gray-700; -$success: $green; -$danger: $red; -$info: $light-blue; -$warning: #ffb514; -$featured: #c78800; - -$theme-colors: ( - "primary": $darkblue, - "secondary": $gray-700, - "success": $success, - "info": $light-blue, - "warning": $warning, - "danger": $danger, - "light": $gray-100, - "dark": $gray-900, - "action": $base-color, - "error": $red-dark -) !default; - - -$template-background-light: #f0f4fb; //light background color, frontend dashboard background and installer body background - -// Font weights -$thin-weight: 100; -$extralight-weight: 200; -$light-weight: 300; -$normal-weight: 400; -$medium-weight: 500; -$semibold-weight: 600; -$bold-weight: 700; -$extrabold-weight: 800; -$black-weight: 900; - -$form-select-indicator: url("../images/select-bg.svg"); -$form-select-indicator-rtl: url("../images/select-bg-rtl.svg"); -$form-select-indicator-active: url("../../../images/select-bg.svg"); -$form-select-indicator-active-rtl: url("../../../images/select-bg-rtl.svg"); -$form-select-bg: var(--template-bg-light); -$form-select-bg-size: calc(max(100%, 116rem)); -$form-select-bg-size-sm: 75rem; - -// links -$template-link-color: var(--template-link-color); -$template-link-hover-color: var(--template-link-hover-color); - -//$form-select-background: $form-select-bg $form-select-indicator no-repeat right center / $form-select-bg-size; // Used so we can have multiple background elements (e.g., arrow and feedback icon) -//$form-select-background-rtl: $form-select-bg $form-select-indicator-rtl no-repeat left center / $form-select-bg-size; // Used so we can have multiple background elements (e.g., arrow and feedback icon) - -$atum-colors: ( - template-sidebar-bg: var(--template-bg-dark-80), - template-sidebar-font-color: $white, - template-sidebar-link-color: $white, - template-bg-light: $template-background-light, - template-link-color: var(--link-color), - template-link-hover-color: var(--link-hover-color), - template-text-light: $white, - template-text-dark: $atum-text-dark, - template-special-color: $dark-blue, - template-contrast: $light-blue, - template-quickicon-color: hsl(var(--hue), 30%, 40%), - template-bg-dark: hsl(var(--hue), 40%, 20%), - template-bg-dark-3: hsl(var(--hue), 40%, 97%), - template-bg-dark-5: hsl(var(--hue), 40%, 95%), - template-bg-dark-7: hsl(var(--hue), 40%, 93%), - template-bg-dark-10: hsl(var(--hue), 40%, 90%), - template-bg-dark-15: hsl(var(--hue), 40%, 85%), - template-bg-dark-20: hsl(var(--hue), 40%, 80%), - template-bg-dark-30: hsl(var(--hue), 40%, 70%), - template-bg-dark-40: hsl(var(--hue), 40%, 60%), - template-bg-dark-50: hsl(var(--hue), 40%, 50%), - template-bg-dark-60: hsl(var(--hue), 40%, 40%), - template-bg-dark-65: hsl(var(--hue), 40%, 35%), - template-bg-dark-70: hsl(var(--hue), 40%, 30%), - template-bg-dark-75: hsl(var(--hue), 40%, 25%), - template-bg-dark-80: hsl(var(--hue), 40%, 20%), - template-bg-dark-90: hsl(var(--hue), 40%, 10%), - - media-manager-overlay-header-bg: var(--template-bg-dark-5), - media-manager-infobar-dt-color: rgba(0, 0, 0, .54), - media-manager-content-bg: var(--body-bg), - media-manager-file-icon-color: hsl(var(--hue), 20%, 60%), - - media-manager-content-color: $light-blue, - media-manager-overlay-bg: var(--template-bg-dark-3), - media-manager-disk-name-color: var(--template-text-dark), - media-manager-tree-item-hover-bg: #e1e1e1, - media-manager-toolbar-icon-color: var(--template-bg-dark-60), - media-manager-border: 1px solid var(--template-bg-dark-7), - media-browser-file-bg: hsl(var(--hue), 20%, 97%), - // media-browser-file-border: 1px solid hsl(var(--hue), 35%, 95%), - // media-browser-item-preview-border: 1px solid hsl(var(--hue, 35%, 95%)), - media-drive-bg: var(--com-media-manager-content-bg,#fff), - media-toolbar-bg: var(--com-media-manager-content-bg,#fff), - media-toolbar-icon-bg: transparent, - media-toolbar-icon-color: var(--com-media-manager-toolbar-icon-color, var(--template-bg-dark-60)), - media-toolbar-icon-bg-hvr: #f0f0f0, - media-tree-item-color: var(--template-bg-dark-60), - - media-manager-breadcrumb-item-bg: var(--com-media-manager-overlay-bg, var(--template-bg-dark-3)), - media-tree-active-icon-color: $light-blue, - - image-bg: #fff, - image-bg-image: (linear-gradient(45deg,hsl(var(--hue),20%,97%) 25%,transparent 25%,transparent 75%,#eee 75%,hsl(var(--hue),20%,97%) 100%),linear-gradient(45deg,#eee 25%,transparent 25%,transparent 75%,hsl(var(--hue),20%,97%) 75%,hsl(var(--hue),20%,97%) 100%)), - - template-quickicon-bg: hsl(var(--hue), 60%, 97%), - template-quickicon-bg-hvr: var(--template-bg-dark), - form-control-bg: var(--template-text-light), - form-control-bg-disabled: var(--gray-200), - form-control-border: var(--border-width) solid var(--template-bg-dark-20), - - form-check-input-checked-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e"), - form-check-input-checked-bg-color: $blue, - form-check-input-border: var(--border-width) solid var(--template-bg-dark-20), - - form-select-background: $form-select-bg $form-select-indicator no-repeat right center / $form-select-bg-size, // Used so we can have multiple background elements (e.g., arrow and feedback icon) - form-select-background-rtl: $form-select-bg $form-select-indicator-rtl no-repeat left center / $form-select-bg-size, // Used so we can have multiple background elements (e.g., arrow and feedback icon) - - form-select-border: var(--form-control-border), - - form-select-success-bg: var(--white-offset), - form-select-danger-bg: var(--white-offset), - form-select-disabled-bg: var(--gray-200), - form-select-option: var(--template-text-dark), - form-select-option-disabled-bg: var(--template-bg-dark-5), - - file-selector-btn-bg: var(--template-bg-dark-70), - file-selector-btn-bg-hvr: var(--template-bg-dark-50), - - // background: - bg-normal: var(--template-bg-light), - bg-reverted: var(--template-bg-dark-60), - - // text - text-normal: var(--template-text-dark), - text-reverted: var(--template-text-light), - text-muted-color: var(--template-text-dark) !important, - text-muted-hvr-color: var(--template-text-light) !important, - - // quickicons - quickicon-bg: var(--white), - quickicon-color: var(--template-quickicon-color), - quickicon-color-hvr: var(--template-quickicon-color), - quickicon-border: 1px solid hsl(var(--hue), 50%, 93%), - quickicon-border-radius: 4px, - quickicon-link-hvr: $white, - quickicon-linkadd-bg: hsl(var(--hue), 50%, 93%), - quickicon-linkadd-bg-hvr: var(--template-bg-dark), - quickicon-linkadd-color: var(--template-quickicon-color), - quickicon-amount-bg: hsl(var(--hue), 50%, 93%), - - // modules - new-modules-color: var(--template-quickicon-color), - new-modules-bg: hsl(var(--hue), 60%, 97%), - new-modules-bg-hvr: var(--template-bg-dark), - new-modules-icon-color: var(--template-quickicon-color), - new-modules-icon-color-hvr: hsl(var(--hue), 50%, 93%), - new-module-color: var(--text-color), - new-module-bg: var(--template-quickicon-bg), - new-module-border: 1px solid hsl(var(--hue), 50%, 93%), - new-module-link-bg: hsl(var(--hue), 50%, 93%), - new-module-link-span: var(--quickicon-color), - new-module-link-hvr: var(--new-modules-bg-hvr), - new-module-link-span-hvr: var(--new-modules-icon-color-hvr), - - // sidebar incl. main-nav - sidebarwrapper-bg: var(--template-sidebar-bg), - sidebar-item-color: $white, - sidebar-item-color-hvr: var(--template-text-light), - sidebar-item-bg-hvr: var(--template-bg-dark-65), - sidebar-toggle-bg: var(--template-bg-dark-60), - sidebar-toggle-link: $white, - main-nav-ul-bg: var(--template-bg-dark-75), - main-nav-divider-bg: var(--template-bg-dark-60), - main-nav-item-title: var(--template-bg-dark-30), - main-nav-mm-active-bg: var(--template-bg-dark-70), - main-nav-mm-active-quicktask-bg: var(--template-bg-dark-60), - main-nav-badge: var(--template-bg-dark-60), - mobile-menu-collapse-bg: var(--template-bg-dark-50), - - // header-content - header-bg: var(--template-bg-dark), - header-item-content-bg: var(--template-bg-dark-60), - header-item-content-bg-hvr: var(--template-bg-dark-50), - header-item-content-border-radius: 22px, - header-item-content-jversion-color: var(--bluegray), - header-item-content-jversion-bg: transparent, - header-logo-bg: var(--template-bg-dark-70), - - // table - table-color: var(--body-color), - table-border-top-nfc: 2px solid #dee2e6, - table-link-color: var(--template-link-color), - table-link-font-weight: $medium-weight, - table-link-font-weight-sorted: $medium-weight, - badge-bg-info: var(--info) !important, - - // card - card-header-color: var(--template-bg-dark), - card-bg: hsla(0, 0%, 100%, .7), - card-header-bg: var(--card-bg), - card-body-bg: var(--card-bg), - main-card-bg: var(--body-bg), - main-card-col-border-left: 1px solid var(--template-bg-dark-10), - - //cpanel - module-actions-color: var(--body-color), - - //lists - atum-list-group-border-color: var(--template-bg-dark-15), - - // box-shadow: - atum-box-shadow: 0 2px 10px -8px var(--template-bg-dark-50), - dropdown-box-shadow: 0 1px 1px rgba($black, .15), - quickicon-box-shadow-success: 0 0 3px 0 var(--success), - quickicon-box-shadow-danger: 0 0 3px 0 var(--danger), - quickicon-box-shadow-warning: 0 0 3px 0 var(--warning), - - login-box-shadow: 0 4px 20px -10px var(--template-bg-dark-50), - login-focus-box-shadow: inset 0 0 1px 1px var(--template-contrast), - - modal-btn-box-shadow: 1px 1px 1px 0 rgba(0, 0, 0, .25), - modal-joomla-dialog-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15), - - form-aria-grabbed-box-shadow: 0 0 2px 1px var(--template-bg-dark), - - choices__button_joomla-focus-box-shadow: 0 0 0 2px #00bcd4, - - joomla-tab-accordion-box-shadow: (0 1px $white inset, 0 0 3px rgba(0, 0, 0, .04)), - joomla-tab-btn-hvr: var(--template-bg-dark-60), - joomla-tab-btn-aria-exp-bg: var(--template-bg-dark-3), - joomla-tab-btn-region-border: 1px solid var(--template-bg-dark-3), - joomla-tablist-btn-aria-exp: var(--template-text-light), - joomla-tablist-btn-aria-exp-bg: var(--template-bg-dark-60), - joomla-tablist-btn-aria-exp-aft-bg: var(--template-bg-dark), - joomla-tablist-border-bottom: 1px solid var(--template-bg-dark-10), - joomla-tab-tablist-border: 1px solid $gray-300, - joomla-tab-vert-border-bottom: 1px solid $gray-300, - - admin-background: var(--template-bg-light), - options-form-color: var(--template-text-dark), - options-form-bg: unset, - options-form-border: 1px solid var(--template-bg-dark-20), - options-form-legend-color: var(--template-text-dark), - options-form-legend-bg: inherit, - - // details - details-bg: var(--template-bg-dark-3), - details-border: 1px solid var(--template-bg-dark-10), - - // nav - nav-header-color: var(--template-bg-dark), - - // choices - choices-input-border-color: var(--body-bg), //TODO - choices-input-bg: var(--body-bg), - choices-input-placeholder: $gray-700, - choices-list-multiple-item-bg: var(--template-bg-dark), - choices-list-multiple-item: $white, - - // switcher - switcher-toggle-inside-bg: #fff, - switcher-toggle-outside-off-bg: #d3d3d3, - switcher-toggle-outside-on-bg: #2f7d32, - - // input - input-border-color: var(--template-bg-dark-20), - - // icons - featured-icon-color: $featured, - - // users - users-method-image: var(--light), - users-methods-reset-cont-bg: var(--light), - users-method-header-inact-bg: var(--light), - - // Login - login-label-color: $dark-blue, - - // Icons - icon-success: var(--success), - icon-success-border: var(--success), - icon-checkedout-color: var(--template-text-dark), - - // Buttons - btn-primary-color: var(--template-text-light), - btn-primary-bg: var(--template-bg-dark-60), - btn-primary-border: 1px solid var(--template-bg-dark-60), - btn-primary-bg-hvr: var(--template-bg-dark-70), - btn-primary-border-hvr: 1px solid var(--template-bg-dark-90), - btn-primary-toggle-bg: var(--template-bg-dark), - btn-primary-toggle-border: var(--template-bg-dark), - - btn-secondary-bg: var(--template-bg-dark-60), - btn-secondary-border: 1px solid var(--template-bg-dark-60), - btn-secondary-color: var(--template-text-light), - - btn-info-color: var(--template-text-light), - btn-info-bg: $info, - btn-info-border: 1px solid $info, - btn-info-bg-hvr: darken($info, 10%), - btn-info-border-hvr: 1px solid darken($info, 10%), - - btn-outline-secondary-color: gray-700, - btn-outline-secondary-bg: transparent, - btn-outline-secondary-border: var(--btn-secondary-border), - - btn-dark-border: 1px solid rgba(0,0,0,.85), - btn-dark-bg: rgba(0,0,0,.9), - btn-dark-bg-hvr: #000, - btn-dark-color: #fff, - btn-dark-color-hvr: #fff, - - btn-light-bg: #f8f9fa, - btn-light-border: 1px solid #f8f9fa, - btn-light-bg-hvr: #d3d4d5, - - input-group-text-bg: var(--template-bg-dark), - input-group-text-border: 1px solid var(--template-bg-dark), - - //search - js-stools-btn-clear-bg: var(--template-bg-dark), - js-stools-btn-clear-disabled-bg: var(--btn-disabled-bg), - js-stools-btn-clear-disabled-border: rgba($gray-300, .8), - - // cpanel - cpanel-addmodule-hover: var(--template-bg-dark), - - // Dropdown - dropdown-header-bg: var(--template-bg-dark), - dropdown-item-bg: var(--template-bg-dark-70), - dropdown-item-bg-hvr: var(--template-bg-dark), - dropdown-item-border-bottom: 1px solid rgba(0, 0, 0, .1), - atum-dropdown-link-hover-bg: var(--tertiary-bg), - atum-dropdown-link-hover-color: var(--body-color), - - // Alerts - // TODO change this color block to better suitable colors in a future PR - states-link-color: var(--template-link-color), - states-btn-primary-bg: var(--btn-primary-bg), - states-btn-primary-bg-hover: var(--btn-primary-bg-hvr), - states-btn-primary-color: var(--btn-primary-color), - states-btn-primary-border: var(--btn-primary-bg), - - state-success-text: $success, - state-success-text-hvr: lighten($success, 58%), - state-success-bg: #f2f8f4, - state-success-bg-hvr: $success, - state-success-border: hsl(var(--hue), 50%, 93%), - state-success-btn-border: 1px solid $success, - state-success-icon: #55a258, - state-success-icon-hvr: var(--state-success-icon), - state-success-heading-bg: $success, - state-success-link-color: $success, - - state-info-text: var(--template-bg-dark-70), - state-info-text-hvr: var(--body-bg), - state-info-bg: #dbe4f0, - state-info-bg-hvr: var(--template-bg-dark-70), - state-info-border: var(--template-bg-dark-70), - state-info-icon: var(--template-bg-dark-70), - state-info-heading-bg: var(--template-bg-dark-70), - state-info-link-color: var(--template-bg-dark-70), - - - state-warning-text: #996901, - state-warning-text-hvr: lighten($warning, 44%), - state-warning-bg: #fffcf4, - state-warning-bg-hvr: #996900, - state-warning-border: #ffb512, - state-warning-icon: $warning, - state-warning-heading-bg: #ffb512, - state-warning-link-color: var(--warning-text-emphasis), - - state-danger-text: var(--danger-text-emphasis), - state-danger-text-hvr: lighten($danger, 52%), - state-danger-bg: #f3d4d4, - state-danger-bg-hvr: $danger, - state-danger-border: var(--danger-border-subtle), - state-danger-icon: #ce8484, - state-danger-heading-bg: $danger, - state-danger-link-color: var(--danger-text-emphasis), - - state-error-text: $danger, - state-error-text-hvr: $danger, - state-error-bg: lighten($danger, 52%), - state-error-bg-hvr: lighten($danger, 52%), - state-error-border: 1px solid $danger, - state-error-icon: lighten($danger, 20%), - state-error-heading-bg: $danger, - - alert-info-color: var(--template-bg-dark), - alert-info-bg: var(--template-bg-dark-10), - alert-info-border: 1px solid var(--template-bg-dark-20), - alert-link-text-color: var(--info-text-emphasis), - alert-accent-color: #fff, - - // Subhead - atum-subhead-color: var(--template-text-dark), - atum-subhead-bg: $white, - atum-subhead-bg-img: (linear-gradient(var(--toolbar-bg), var(--template-bg-dark-3))), - - atum-btn: $atum-text-dark, - atum-btn-icon: $atum-text-dark, - atum-btn-icon-hvr: var(--template-text-light), - atum-btn-bg: var(--body-bg), - atum-btn-bg-hvr: $atum-text-dark, - atum-btn-border: 1px solid hsl(var(--hue),20%,80%), - atum-btn-hvr: var(--body-bg), - - /* - btn-success: var(--success), - btn-success-icon: var(--atum-btn-success-bg-hvr), - btn-success-icon-hvr: var(--template-text-light), - btn-success-bg: var(--body-bg), - btn-success-bg-hvr: var(--success), - btn-success-border: 1px solid hsl(var(--hue),20%,80%), - btn-success-hvr: var(--body-bg), - */ - - atum-btn-success: var(--success), - atum-btn-success-icon: var(--atum-btn-success-bg-hvr), - atum-btn-success-icon-hvr: var(--template-text-light), - atum-btn-success-bg: var(--body-bg), - atum-btn-success-bg-hvr: var(--success), - atum-btn-success-border: 1px solid hsl(var(--hue),20%,80%), - atum-btn-success-hvr: var(--body-bg), - - atum-btn-danger: $danger, - atum-btn-danger-icon: $danger, - atum-btn-danger-icon-hvr: var(--template-text-light), - atum-btn-danger-bg: var(--body-bg), - atum-btn-danger-bg-hvr: $danger, - atum-btn-danger-border: 1px solid hsl(var(--hue),20%,80%), - atum-btn-danger-hvr: var(--body-bg), - - atum-btn-info: $atum-text-dark, - atum-btn-info-color-hvr: var(--template-text-light), - atum-btn-info-icon: $info, - atum-btn-info-icon-hvr: var(--atum-btn-hvr), - atum-btn-info-bg: var(--body-bg), - atum-btn-info-bg-hvr: $info, - atum-btn-info-border: 1px solid hsl(var(--hue),20%,80%), - atum-btn-info-hvr: var(--body-bg), - - atum-btn-primary: var(--template-link-color), - atum-btn-primary-icon: var(--template-link-color), - atum-btn-primary-icon-hvr: var(--template-text-light), - atum-btn-primary-bg: var(--body-bg), - atum-btn-primary-bg-hvr: var(--template-link-color), - atum-btn-primary-border: 1px solid hsl(var(--hue),20%,80%), - atum-btn-primary-hvr: var(--body-bg), - - - atum-btn-action: var(--template-text-light), - atum-btn-action-icon: var(--template-bg-dark), - atum-btn-action-icon-hvr: var(--template-text-light), - atum-btn-action-bg: var(--body-bg), - atum-btn-action-bg-hvr: var(--template-bg-dark), - atum-btn-action-border: 1px solid hsl(var(--hue),20%,80%), - atum-btn-action-hvr: var(--body-bg), - - - atum-list-group-bg: var(--body-bg), //rgba(255, 255, 255, .05), - - // Calendar - atum-calendar-week-bg: #f4f4f4, - atum-calendar-bg: var(--body-bg), - atum-calendar-buttons-color: #495057, //var(--btn-primary-bg); - atum-calendar-disabled-color: #999, //#4b4b4b, - atum-calendar-disabled-bg: #fff, //rgba(0,0,0,.5), - atum-calendar-select-bg: $form-select-bg, - atum-calendar-select-bg-url: url("../../images/select-bg.svg"), - atum-calendar-select-bg-url-rtl: url("../../images/select-bg-rtl.svg"), - - // Permissions - permissions-sliders-oddCol-bg: var(--template-bg-light), - respTable-border-bottom: 1em solid var(--template-bg-dark-80), - - // Treeselect - treeselect-line-color: hsl(var(--hue), 40%, 93%), - treeselect-dropdown-toggle: var(--template-text-dark), - - icon-check-square-bg: rgb(33,37,41), - icon-square-bg: rgb(33,37,41), - icon-check-square-color: var(--template-text-light), - icon-square-color: var(--template-text-light), - - // Table Row Dragging - drag-color: #151515, - drag-background-color: $teal, - - success-text: $success, - success: $success, - successhvr: darken($success, 15%), - - danger-text: $danger, - danger: $danger, - dangerhvr: darken($danger, 15%), - - darkdanger: $danger, - darkdangerhvr: darken($danger, 15%), - - warning-text: #000, - warning: $warning, - warninghvr: darken($warning, 15%), - -); - -$colors: ( - card-bg: rgba(255, 255, 255, .7), - card-color: var(--template-bg-dark-60), - bluegray: $bluegray, - lightbluegray: #f6f9fc, - toolbar-bg: $white, - success-border: var(--success), - info-border: var(--info), - warning-border: var(--warning), - danger-border: var(--danger), - login-main-bg: darken($base-color, 8%), //used on login - border: $gray-400, - "white": $white, // the key here must be in quotes to avoid scss compilation warnings. - white-offset: $whiteoffset, - focus: #39f, - focus-shadow: #eaeaea, - toggle-color: $white, //used in sidebar - -); - -// Alerts -$alert-border-level: 0; -$alert-color-level: 0; - -// Global -$btn-disabled-opacity: .4; -$admin-background: var(--admin-background); -$bg-normal: var(--bg-normal); -$bg-reverted: var(--bg-reverted); - -// Login -$login-box-shadow: var(--login-box-shadow); -$login-focus-box-shadow: var(--login-focus-box-shadow); - -// Toolbar -$atum-toolbar-line-height: 2.45rem; - -// Sidebar -$sidebar-width: 18rem; -$sidebar-width-login: 28.75rem; -$sidebar-width-closed: 3rem; -$main-brand-height: 3rem; -$sidebarwrapper-bg: var(--sidebarwrapper-bg); -$sidebar-item-color: var(--sidebar-item-color); -$sidebar-item-color-hvr: var(--sidebar-item-color-hvr); -$sidebar-item-bg-hvr: var(--sidebar-item-bg-hvr); -$sidebar-toggle-bg: var(--sidebar-toggle-bg); -$sidebar-toggle-link: var(--sidebar-toggle-link); -$main-nav-ul-bg: var(--main-nav-ul-bg); -$main-nav-divider-bg: var(--main-nav-divider-bg); -$main-nav-item-title: var(--main-nav-item-title); -$main-nav-mm-active-bg: var(--main-nav-mm-active-bg); -$main-nav-mm-active-quicktask-bg: var(--main-nav-mm-active-quicktask-bg); -$main-nav-badge: var(--main-nav-badge); -$main-nav-item-title-hvr-bg: var(--main-nav-item-title-hvr-bg); -$mobile-menu-collapse-bg: var(--mobile-menu-collapse-bg); - -// Fonts -$font-family-sans-serif: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default; -$h1-font-size: 1.65rem; -$h2-font-size: 1.5rem; -$h3-font-size: 1.25rem; -$h4-font-size: 1rem; -$h5-font-size: .9286rem; -$h6-font-size: .8571rem; -$headings-color: var(--template-bg-dark); -$font-size-sm: .8rem; -$font-size-vsm: .6rem; -$display1-size: 1rem; -$display2-size: .875rem; -$content-font-size: .875rem; -$label-font-size: 1rem; -$danger-bg: #900; -$badge-font-size: .75rem; -$jicon-css-prefix: icon !default; -$fa-css-prefix: fa !default; -$fa-font-path: "../../../../media/vendor/fontawesome-free/webfonts"; -$roboto-font-path: "../../../../../media/vendor/roboto-fontface/fonts"; - -// Tables -$table-cell-padding-y: .75rem; -$table-cell-padding-x: 1rem; -$table-cell-padding-y-sm: .3rem; -$table-cell-padding-x-sm: .3rem; -$table-group-separator-color: $gray-300; -$table-border-top-nfc: var(--table-border-top-nfc); -$table-link-color: var(--table-link-color); -$table-link-font-weight: var(--table-link-font-weight); -$table-link-font-weight-sorted: var(--table-link-font-weight-sorted); -$badge-bg-info: var(--badge-bg-info); - -// card -$card-header-color: var(--card-header-color); -$card-header-bg: var(--card-header-bg); -$card-bg: var(--card-bg); -$main-card-bg: var(--main-card-bg); -$main-card-col-border-left: var(--main-card-col-border-left); -$card-body-bg: var(--card-body-bg); - -// cpanel -$module-actions-color: var(--module-actions-color); - -// Dropdowns -$dropdown-padding-y: 0; -$dropdown-box-shadow: var(--dropdown-box-shadow); -$dropdown-link-hover-color: var(--template-text-dark); -$dropdown-border-width: 1px; -$dropdown-item-padding-y: .5rem; -$dropdown-item-padding-x: .75rem; -$dropdown-spacer: 0; - -// Cards -$card-border-width: 0; -$card-border-color: transparent; - -// Details -$details-bg: var(--details-bg); -$details-border: var(--details-border); - -// nav -$nav-header-color: var(--nav-header-color); - -// users -$users-method-image: var(--users-method-image); -$users-methods-reset-cont-bg: var(--users-methods-reset-cont-bg); -$users-method-header-inact-bg: var(--users-method-header-inact-bg); - -// Icons -$icon-success: var(--icon-success); -$icon-success-border: var(--icon-success-border); -$icon-checkedout-color: var(--icon-checkedout-color); - -// Buttons -$btn-primary-color: var(--btn-primary-color); -$btn-primary-bg: var(--btn-primary-bg); -$btn-primary-border: var(--btn-primary-border); -$btn-primary-bg-hvr: var(--btn-primary-bg-hvr); -$btn-primary-border-hvr: var(--btn-primary-border-hvr); -$btn-primary-toggle-bg: var(--btn-primary-toggle-bg); -$btn-primary-toggle-border: var(--btn-primary-toggle-border); - -$btn-secondary-bg: var(--btn-secondary-bg); -$btn-secondary-border: var(--btn-secondary-border); - -$btn-outline-secondary-color: var(--btn-outline-secondary-color); -$btn-outline-secondary-bg: var(--btn-outline-secondary-bg); -$btn-outline-secondary-border: var(--btn-outline-secondary-border); -$input-group-text-bg: var(--input-group-text-bg); -$input-group-text-border: var(--input-group-text-border); - -// Search -$js-stools-btn-clear-bg: var(--template-bg-dark); -$js-stools-btn-clear-disabled-bg: var(--btn-disabled-bg); -$js-stools-btn-clear-disabled-border: var(--js-stools-btn-clear-disabled-border); - -// Dropdown -$dropdown-header-bg: var(--dropdown-header-bg); -$dropdown-item-bg: var(--dropdown-item-bg); -$dropdown-item-bg-hvr: var(--dropdown-item-bg-hvr); - -// Alerts -$state-success-text: $success; -$state-success-text-hvr: $success; -$state-success-bg: lighten($success, 58%); -$state-success-bg-hvr: lighten($success, 58%); -$state-success-border: var(--state-success-border); -$state-success-btn-border: var(--state-success-btn-border); -$state-success-icon: var(--state-success-icon); -$state-success-icon-hvr: var(--state-success-icon-hvr); -$state-success-heading-bg: var(--state-success-heading-bg); - -$state-info-text: var(--state-info-text); -$state-info-text-hvr: var(--state-info-text); -$state-info-bg: lighten($info, 90%); -$state-info-bg-hvr: var(--state-info-bg); -$state-info-border: var(--state-info-border); -$state-info-icon: var(--state-info-icon); -$state-info-heading-bg: var(--state-info-heading-bg); - -$state-warning-text: var(--state-warning-text); -$state-warning-text-hvr: var(--state-warning-text); -$state-warning-bg: var(--state-warning-bg); -$state-warning-bg-hvr: var(--state-warning-bg); -$state-warning-border: var(--state-warning-border); -$state-warning-icon: var(--state-warning-icon); -$state-warning-heading-bg: var(--state-warning-heading-bg); - -$state-danger-text: var(--state-danger-text); -$state-danger-text-hvr: var(--state-danger-text); -$state-danger-bg: var(--state-danger-bg); -$state-danger-bg-hvr: var(--state-danger-bg); -$state-danger-border: var(--state-danger-border); -$state-danger-icon: var(--state-danger-icon); -$state-danger-heading-bg: var(--state-danger-heading-bg); - -$state-error-text: var(--state-error-text); -$state-error-text-hvr: var(--state-error-text); -$state-error-bg: var(--state-error-bg); -$state-error-bg-hvr: var(--state-error-bg); -$state-error-border: var(--state-error-border); -$state-error-icon: var(--state-error-icon); -$state-error-heading-bg: var(--state-error-heading-bg); - -$alert-border: var(--alert-border); - -// Badges -$badge-padding-x: .2rem; -$badge-padding-y: .3rem; -$badge-border-radius: .2rem; - -$success-bg: $green; -$success-txt: $white; - -$warning-bg: #996808; -$warning-txt: #fff; - -$danger-bg: #900; -$danger-txt: #fff; - -$info-bg: $gray-300; -$info-txt: $white; - -// Input Group -$input-group-addon-color: var(--white); -$input-group-addon-bg: $base-color; -$input-group-addon-border-color: var(--template-bg-dark); - -// Treeselect -$treeselect-line-height: 2.2rem; -$treeselect-indent: 40px; - -// List -$atum-list-group-border-color: var(--atum-list-group-border-color); -$list-group-item-padding-y: .75rem; - -// Login -$login-label-color: var(--login-label-color); - -// Subhead -$atum-subhead-bg: var(--atum-subhead-bg); -$atum-subhead-bg-img: var(--atum-subhead-bg-img); -$atum-btn-color: var(--atum-btn-color); -$atum-btn-bg: var(--atum-btn-bg); -$atum-btn-border: var(--atum-btn-border); -$atum-btn-hvr: var(--atum-btn-hvr); - -$atum-btn-success: var(--atum-btn-success); -$atum-btn-success-bg: var(--atum-btn-success-bg); -$atum-btn-success-border: var(--atum-btn-success-border); -$atum-btn-success-hvr: var(--atum-btn-success-hvr); - -$atum-btn-danger: var(--atum-btn-danger); -$atum-btn-danger-bg: var(--atum-btn-danger-bg); -$atum-btn-danger-border: var(--atum-btn-danger-border); -$atum-btn-danger-hvr: var(--atum-btn-danger-hvr); - -$atum-btn-info: var(--atum-btn-info); -$atum-btn-info-bg: var(--atum-btn-info-bg); -$atum-btn-info-border: var(--atum-btn-info-border); -$atum-btn-info-hvr: var(--atum-btn-info-hvr); - -$atum-btn-primary: var(--atum-btn-primary); -$atum-btn-primary-bg: var(--atum-btn-primary-bg); -$atum-btn-primary-border: var(--atum-btn-primary-border); -$atum-btn-primary-hvr: var(--atum-btn-primary-hvr); - - -$atum-btn-secondary: var(--atum-btn-secondary); -$atum-btn-action: var(--atum-btn-action); -$atum-btn-action-bg: var(--atum-btn-action-bg); - -$atum-list-group-bg: var(--atum-list-group-bg); - -// Calendar -$atum-calendar-week-bg: var(--atum-calendar-week-bg); -$atum-calendar-bg: var(--atum-calendar-bg); -$atum-calendar-buttons-color: var(--atum-calendar-buttons-color); -$atum-calendar-disabled-color: var(--atum-calendar-disabled-color); -$atum-calendar-disabled-bg: var(--atum-calendar-disabled-bg); -$atum-calendar-select-bg: var(--atum-calendar-select-bg); -$atum-calendar-select-bg-url: var(--atum-calendar-select-bg-url); -$atum-calendar-select-bg-url-rtl: var(--atum-calendar-select-bg-url-rtl); - -// Permissions -$permissions-sliders-oddCol-bg: var(--permissions-sliders-oddCol); -$respTable-border-bottom: var(--respTable-border-bottom); - -// Media Manager -$media-manager-overlay-header-bg: var(--media-manager-overlay-header-bg); -$media-manager-infobar-dt-color: var(--media-manager-infobar-dt-color); -$media-manager-content-bg: var(--media-manager-content-bg); -$media-manager-content-color: var(--media-manager-content-color); -$media-manager-file-icon-color: var(--media-manager-file-icon-color); //?? inherit - -$media-manager-overlay-bg: var(--media-manager-overlay-bg); -$media-manager-disk-name-color: var(--media-manager-disk-name-color); -$media-manager-tree-item-hover-bg: var(--media-manager-tree-item-hover-bg); -$media-manager-toolbar-icon-color: var(--media-manager-toolbar-icon-color); - -$media-manager-border: var(--media-manager-border); -$media-browser-file-bg: var(--media-browser-file-bg); -//$media-browser-item-preview-border: var(--media-browser-item-preview-border); -$media-drive-bg: var(--media-drive-bg); -//$media-drive-border: var(--media-drive-border); -$media-toolbar-bg: var(--media-toolbar-bg); -//$media-toolbar-border-bottom: var(--media-toolbar-border-bottom); -//$media-toolbar-border-inline-start: var(--media-toolbar-border-inline-start); - -$media-toolbar-icon-bg: var(--media-toolbar-icon-bg); -//$media-toolbar-icon-border-start: var(--media-toolbar-icon-border-start); -$media-toolbar-icon-color: var(--media-toolbar-icon-color); -$media-toolbar-icon-bg-hvr: var(--media-toolbar-icon-bg-hvr); -$media-tree-item-color: var(--media-tree-item-color); //var(--template-bg-dark-60); -$media-manager-breadcrumb-item-bg: var(--media-manager-breadcrumb-item-bg); -$media-tree-active-icon-color: var(--media-tree-active-icon-color); - -$image-bg: var(--image-bg); // #fff; -$image-bg-image: var(--image-bg-image); //linear-gradient(45deg,hsl(var(--hue),20%,97%) 25%,transparent 25%,transparent 75%,#eee 75%,hsl(var(--hue),20%,97%) 100%),linear-gradient(45deg,#eee 25%,transparent 25%,transparent 75%,hsl(var(--hue),20%,97%) 75%,hsl(var(--hue),20%,97%) 100%); - - -// Buttons -$input-btn-padding-y-sm-submenu: 0; -$input-btn-padding-x-sm-submenu: 1.625rem; -$input-btn-submenu-icon-distance: 1rem; - -// Custom form -$form-select-indicator-padding: 3rem; -$form-select-background: var(--form-select-background); -$form-select-background-rtl: var(--form-select-background-rtl); -$form-select-border: var(--form-select-border); -$form-select-border-radius: 4px; -$form-select-box-shadow: var(--atum-box-shadow); -$form-select-multiple-padding-y: .3rem; -$form-select-success-bg: var(--form-select-success-bg); -$form-select-danger-bg: var(--form-select-danger-bg); -$form-select-disabled-bg: var(--form-select-disabled-bg); -$form-select-option: var(--form-select-option); -$form-select-option-disabled-bg: var(--form-select-option-disabled-bg); - -$form-file-button-color: var(--white); - -$file-selector-btn-bg: var(--file-selector-btn-bg); -$file-selector-btn-bg-hvr: var(--file-selector-btn-bg-hvr); - -//Forms -$form-aria-grabbed-box-shadow: var(--form-aria-grabbed-box-shadow); -$options-form-color: var(--options-form-color); -$options-form-bg: var(--options-form-bg); -$options-form-border: var(--options-form-border); -$options-form-legend-color: var(--options-form-legend-color); -$options-form-legend-bg: var(--options-form-legend-bg); -$form-control-bg: var(--form-control-bg); -$form-control-bg-disabled: var(--form-control-bg-disabled); -$form-control-border: var(--form-control-border); - -$form-check-input-checked-bg-image: var(--form-check-input-checked-bg-image); -$form-check-input-checked-bg-color: var(--form-check-input-checked-bg-color); -$form-check-input-border: var(--form-check-input-border); - -// Input -$input-padding: .5rem 1rem; -$input-border-color: var(--input-border-color); -$input-focus-border-color: var(--focus); -$input-box-shadow: var(--atum-box-shadow); -$input-max-width: 100%; -$input-btn-focus-width: .2rem; -$input-btn-focus-color: var(--focus-shadow); -$input-btn-padding-y: .5rem; -$input-btn-padding-x: 1rem; - -// Modals -$modal-header-height: 2.875rem; -$modal-btn-box-shadow: var(--modal-btn-box-shadow); -$modal-joomla-dialog-box-shadow: var(--modal-joomla-dialog-box-shadow); - -// Choices -$choices__button_joomla-focus-box-shadow: var(--choices__button_joomla-focus-box-shadow); -$choices-input-border-color: var(--choices-input-border-color); -$choices-input-bg: var(--choices-input-bg); -$choices-input-placeholder: var(--choices-input-placeholder); -$choices-list-multiple-item-bg: var(--choices-list-multiple-item-bg); -$choices-list-multiple-item: var(--choices-list-multiple-item); - -// Switcher -$switcher-toggle-inside-bg: var(--switcher-toggle-inside-bg); -$switcher-toggle-outside-off-bg: var(--switcher-toggle-outside-off-bg); -$switcher-toggle-outside-on-bg: var(--switcher-toggle-outside-on-bg); - -// Joomla-Tab -$joomla-tab-accordion-box-shadow: var(--joomla-tab-accordion-box-shadow); -$joomla-tab-btn-hvr: var(--joomla-tab-btn-hvr); -$joomla-tab-btn-aria-exp-bg: var(--joomla-tab-btn-aria-exp-bg); -$joomla-tab-btn-region-border: var(--joomla-tab-btn-region-border); -$joomla-tablist-btn-aria-exp: var(--joomla-tablist-btn-aria-exp); -$joomla-tablist-btn-aria-exp-bg: var(--joomla-tablist-btn-aria-exp-bg); -$joomla-tablist-btn-aria-exp-aft-bg: var(--joomla-tablist-btn-aria-exp-aft-bg); -$joomla-tablist-border-bottom: var(--joomla-tablist-border-bottom); -$joomla-tab-tablist-border: var(--joomla-tab-tablist-border); -$joomla-tab-vert-border-bottom: var(--joomla-tab-vert-border-bottom); - -// Quickicons -$quickicon-bg: var(--quickicon-bg); -$quickicon-box-shadow-success: var(--quickicon-box-shadow-success); -$quickicon-box-shadow-danger: var(--quickicon-box-shadow-danger); -$quickicon-box-shadow-warning: var(--quickicon-box-shadow-warning); -$quickicon-icon-size: 2rem; -$quickicon-icon-size-sm: 1.3rem; -$quickicon-border: var(--quickicon-border); -$quickicon-border-radius: var(--quickicon-border-radius); -$quickicon-color: var(--quickicon-color); -$quickicon-color-hvr: var(--quickicon-color-hvr); -$quickicon-link-hvr: var(--quickicon-link-hvr); -$quickicon-linkadd-color: var(--quickicon-linkadd-color); -$quickicon-linkadd-bg: var(--quickicon-linkadd-bg); -$quickicon-amount-bg: var(--quickicon-amount-bg); - -// Text -$text-normal: var(--text-normal); -$text-reverted: var(--text-reverted); -$text-muted-color: var(--text-muted-color); -$text-muted-hvr-color: var(--text-muted-hvr-color); - -// Modules -$new-modules-color: var(--new-modules-color); -$new-modules-bg: var(--new-modules-bg); -$new-modules-bg-hvr: var(--new-modules-bg-hvr); -$new-modules-icon-color: var(--new-modules-icon-color); -$new-modules-icon-color-hvr: var(--new-modules-icon-color-hvr); -$new-module-color: var(--new-module-color); -$new-module-bg: var(--new-module-bg); -$new-module-border: var(--new-module-border); -$new-module-link-bg: var(--new-module-link-bg); -$new-module-link-span: var(--new-module-link-span); -$new-module-link-hvr: var(--new-module-link-hvr); -$new-module-link-span-hvr: var(--new-module-link-span-hvr); - -// header-content -$header-bg: var(--header-bg); -$header-item-content-bg: var(--header-item-content-bg); -$header-item-content-bg-hvr: var(--header-item-content-bg-hvr); -$header-item-content-border-radius: var(--header-item-content-border-radius); -$header-item-content-jversion-color: var(--header-item-content-jversion-color); -$header-item-content-jversion-bg: var(--header-item-content-jversion-bg); -$header-logo-bg: var(--header-logo-bg); - - -// Gutter -$grid-gutter-width: 2rem; -$grid-gutter-width-s: 15px; - -// Breadcrumbs -$breadcrumb-bg: var(--white); - -// Links -$link-color: $light-blue; -$link-hover-color: darken($light-blue, 20%); -$link-decoration: none; - -// Z-Index list -$zindex-negative: -1; -$zindex-actions: auto; -$zindex-toolbar: 1000; -$zindex-sidebar: 1010; -$zindex-header: 1020; -$zindex-alerts: 1030; -$zindex-modal-backdrop: 1040; -$zindex-modal: 1050; -$zindex-popover: 1060; -$zindex-tooltip: 1070; -$zindex-mobile-bottom: 8000; -$zindex-mobile-toggle: 9999; -$zindex-mobile-menu: 9000; - -// scss-docs-start border-radius-variables -$btn-border-radius: .25rem !default; -$border-radius: .25rem !default; -$border-radius-sm: .2rem !default; -$border-radius-lg: .3rem !default; -$border-radius-xl: .3rem !default; -$border-radius-2xl: .3rem !default; -// scss-docs-end border-radius-variables +// Remove prefix added in BS5 for compat with Joomla beta's shipped with Betas +$prefix: ""; + +// Use dark mode conditionally based on data-bs-theme attribute +$color-mode-type: data; + +// Enable dark mode in J5.0 +$enable-dark-mode: true; + +// Variables +$white: #fff; +$whiteoffset: #fefefe; +$gray-100: #f8f9fa; +$gray-200: #e8e8e8; +$gray-300: #dee2e6; // used for toolbar and badges +$gray-400: #cdcdcd; // used for border-bottom sidebar-nav and toolbar normal border +$gray-500: #adb5bd; // used in toolbar and buttons for border +$gray-600: #666e76; // used for atum-text-dark and $secondary +$gray-700: #495057; // used for atum-text-dark, secondary +$gray-800: #343a40; +$gray-900: #212529; // used for tree header +$bluegray: #b2bfcd; // used for borders +$black: #000; // used for shadows +$dark-blue: #001b4c; // is the atum-special-color +$light-blue: #2a69b8; // is the template-link-color + +// BS Colours +$blue: #2a69b7; // Same as hsl(213, 63%, 44%); // base color for calculation, Primary-color +$indigo: #0377be; // used in bootstrap +$purple: #6f42c1; // used in bootstrap +$pink: #971250; // used in bootstrap +$red: #c52827; // used in bootstrap +$red-dark: #3b0d0c; // used for alerts error +$yellow: #ffb514; // used in bootstrap +$green: #457d54; // used in bootstrap +$green-dark: #0f2f21; // used for alert success +$teal: #20c997; // used in bootstrap +$cyan: #107d8e; // used in bootstrap +$darkblue: #132f53; +$base-color: $darkblue; + +// Atum colours defined as scss variables for use in scss functions +$atum-text-dark: $gray-700; +$success: $green; +$danger: $red; +$info: $light-blue; +$warning: #ffb514; +$featured: #c78800; + +$theme-colors: ( + "primary": $darkblue, + "secondary": $gray-700, + "success": $success, + "info": $light-blue, + "warning": $warning, + "danger": $danger, + "light": $gray-100, + "dark": $gray-900, + "action": $base-color, + "error": $red-dark +) !default; + + +$template-background-light: #f0f4fb; // light background color, frontend dashboard background and installer body background + +// Font weights +$thin-weight: 100; +$extralight-weight: 200; +$light-weight: 300; +$normal-weight: 400; +$medium-weight: 500; +$semibold-weight: 600; +$bold-weight: 700; +$extrabold-weight: 800; +$black-weight: 900; + +$form-select-indicator: url("../images/select-bg.svg"); +$form-select-indicator-rtl: url("../images/select-bg-rtl.svg"); +$form-select-indicator-active: url("../../../images/select-bg.svg"); +$form-select-indicator-active-rtl: url("../../../images/select-bg-rtl.svg"); +$form-select-bg: var(--template-bg-light); +$form-select-bg-size: calc(max(100%, 116rem)); +$form-select-bg-size-sm: 75rem; + +// links +$template-link-color: var(--template-link-color); +$template-link-hover-color: var(--template-link-hover-color); + +//$form-select-background: $form-select-bg $form-select-indicator no-repeat right center / $form-select-bg-size; // Used so we can have multiple background elements (e.g., arrow and feedback icon) +//$form-select-background-rtl: $form-select-bg $form-select-indicator-rtl no-repeat left center / $form-select-bg-size; // Used so we can have multiple background elements (e.g., arrow and feedback icon) + +$atum-colors: ( + template-sidebar-bg: var(--template-bg-dark-80), + template-sidebar-font-color: $white, + template-sidebar-link-color: $white, + template-bg-light: $template-background-light, + template-link-color: var(--link-color), + template-link-hover-color: var(--link-hover-color), + template-text-light: $white, + template-text-dark: $atum-text-dark, + template-special-color: $dark-blue, + template-contrast: $light-blue, + template-quickicon-color: hsl(var(--hue), 30%, 40%), + template-bg-dark: hsl(var(--hue), 40%, 20%), + template-bg-dark-3: hsl(var(--hue), 40%, 97%), + template-bg-dark-5: hsl(var(--hue), 40%, 95%), + template-bg-dark-7: hsl(var(--hue), 40%, 93%), + template-bg-dark-10: hsl(var(--hue), 40%, 90%), + template-bg-dark-15: hsl(var(--hue), 40%, 85%), + template-bg-dark-20: hsl(var(--hue), 40%, 80%), + template-bg-dark-30: hsl(var(--hue), 40%, 70%), + template-bg-dark-40: hsl(var(--hue), 40%, 60%), + template-bg-dark-50: hsl(var(--hue), 40%, 50%), + template-bg-dark-60: hsl(var(--hue), 40%, 40%), + template-bg-dark-65: hsl(var(--hue), 40%, 35%), + template-bg-dark-70: hsl(var(--hue), 40%, 30%), + template-bg-dark-75: hsl(var(--hue), 40%, 25%), + template-bg-dark-80: hsl(var(--hue), 40%, 20%), + template-bg-dark-90: hsl(var(--hue), 40%, 10%), + + media-manager-overlay-header-bg: var(--template-bg-dark-5), + media-manager-infobar-dt-color: rgba(0, 0, 0, .54), + media-manager-content-bg: var(--body-bg), + media-manager-file-icon-color: hsl(var(--hue), 20%, 60%), + + media-manager-content-color: $light-blue, + media-manager-overlay-bg: var(--template-bg-dark-3), + media-manager-disk-name-color: var(--template-text-dark), + media-manager-tree-item-hover-bg: #e1e1e1, + media-manager-toolbar-icon-color: var(--template-bg-dark-60), + media-manager-border: 1px solid var(--template-bg-dark-7), + media-browser-file-bg: hsl(var(--hue), 20%, 97%), + // media-browser-file-border: 1px solid hsl(var(--hue), 35%, 95%), + // media-browser-item-preview-border: 1px solid hsl(var(--hue, 35%, 95%)), + media-drive-bg: var(--com-media-manager-content-bg,#fff), + media-toolbar-bg: var(--com-media-manager-content-bg,#fff), + media-toolbar-icon-bg: transparent, + media-toolbar-icon-color: var(--com-media-manager-toolbar-icon-color, var(--template-bg-dark-60)), + media-toolbar-icon-bg-hvr: #f0f0f0, + media-tree-item-color: var(--template-bg-dark-60), + + media-manager-breadcrumb-item-bg: var(--com-media-manager-overlay-bg, var(--template-bg-dark-3)), + media-tree-active-icon-color: $light-blue, + + image-bg: #fff, + image-bg-image: (linear-gradient(45deg,hsl(var(--hue),20%,97%) 25%,transparent 25%,transparent 75%,#eee 75%,hsl(var(--hue),20%,97%) 100%),linear-gradient(45deg,#eee 25%,transparent 25%,transparent 75%,hsl(var(--hue),20%,97%) 75%,hsl(var(--hue),20%,97%) 100%)), + + template-quickicon-bg: hsl(var(--hue), 60%, 97%), + template-quickicon-bg-hvr: var(--template-bg-dark), + form-control-bg: var(--template-text-light), + form-control-bg-disabled: var(--gray-200), + form-control-border: var(--border-width) solid var(--template-bg-dark-20), + + form-check-input-checked-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e"), + form-check-input-checked-bg-color: $blue, + form-check-input-border: var(--border-width) solid var(--template-bg-dark-20), + + form-select-background: $form-select-bg $form-select-indicator no-repeat right center / $form-select-bg-size, // Used so we can have multiple background elements (e.g., arrow and feedback icon) + form-select-background-rtl: $form-select-bg $form-select-indicator-rtl no-repeat left center / $form-select-bg-size, // Used so we can have multiple background elements (e.g., arrow and feedback icon) + + form-select-border: var(--form-control-border), + + form-select-success-bg: var(--white-offset), + form-select-danger-bg: var(--white-offset), + form-select-disabled-bg: var(--gray-200), + form-select-option: var(--template-text-dark), + form-select-option-disabled-bg: var(--template-bg-dark-5), + + file-selector-btn-bg: var(--template-bg-dark-70), + file-selector-btn-bg-hvr: var(--template-bg-dark-50), + + // background: + bg-normal: var(--template-bg-light), + bg-reverted: var(--template-bg-dark-60), + + // text + text-normal: var(--template-text-dark), + text-reverted: var(--template-text-light), + text-muted-color: var(--template-text-dark) !important, + text-muted-hvr-color: var(--template-text-light) !important, + + // quickicons + quickicon-bg: var(--white), + quickicon-color: var(--template-quickicon-color), + quickicon-color-hvr: var(--template-quickicon-color), + quickicon-border: 1px solid hsl(var(--hue), 50%, 93%), + quickicon-border-radius: 4px, + quickicon-link-hvr: $white, + quickicon-linkadd-bg: hsl(var(--hue), 50%, 93%), + quickicon-linkadd-bg-hvr: var(--template-bg-dark), + quickicon-linkadd-color: var(--template-quickicon-color), + quickicon-amount-bg: hsl(var(--hue), 50%, 93%), + + // modules + new-modules-color: var(--template-quickicon-color), + new-modules-bg: hsl(var(--hue), 60%, 97%), + new-modules-bg-hvr: var(--template-bg-dark), + new-modules-icon-color: var(--template-quickicon-color), + new-modules-icon-color-hvr: hsl(var(--hue), 50%, 93%), + new-module-color: var(--text-color), + new-module-bg: var(--template-quickicon-bg), + new-module-border: 1px solid hsl(var(--hue), 50%, 93%), + new-module-link-bg: hsl(var(--hue), 50%, 93%), + new-module-link-span: var(--quickicon-color), + new-module-link-hvr: var(--new-modules-bg-hvr), + new-module-link-span-hvr: var(--new-modules-icon-color-hvr), + + // sidebar incl. main-nav + sidebarwrapper-bg: var(--template-sidebar-bg), + sidebar-item-color: $white, + sidebar-item-color-hvr: var(--template-text-light), + sidebar-item-bg-hvr: var(--template-bg-dark-65), + sidebar-toggle-bg: var(--template-bg-dark-60), + sidebar-toggle-link: $white, + main-nav-ul-bg: var(--template-bg-dark-75), + main-nav-divider-bg: var(--template-bg-dark-60), + main-nav-item-title: var(--template-bg-dark-30), + main-nav-item-title-hvr-bg: var(--template-bg-dark-60), + main-nav-mm-active-bg: var(--template-bg-dark-70), + main-nav-mm-active-quicktask-bg: var(--template-bg-dark-60), + main-nav-badge: var(--template-bg-dark-60), + mobile-menu-collapse-bg: var(--template-bg-dark-50), + + // header-content + header-bg: var(--template-bg-dark), + header-item-content-bg: var(--template-bg-dark-60), + header-item-content-bg-hvr: var(--template-bg-dark-50), + header-item-content-border-radius: 22px, + header-item-content-jversion-color: var(--bluegray), + header-item-content-jversion-bg: transparent, + header-logo-bg: var(--template-bg-dark-70), + + // table + table-color: var(--body-color), + table-border-top-nfc: 2px solid #dee2e6, + table-link-color: var(--template-link-color), + table-link-font-weight: $medium-weight, + table-link-font-weight-sorted: $medium-weight, + badge-bg-info: var(--info) !important, + + // card + card-header-color: var(--template-bg-dark), + card-bg: hsla(0, 0%, 100%, .7), + card-header-bg: var(--card-bg), + card-body-bg: var(--card-bg), + main-card-bg: var(--body-bg), + main-card-col-border-left: 1px solid var(--template-bg-dark-10), + + // cpanel + module-actions-color: var(--body-color), + + // lists + atum-list-group-border-color: var(--template-bg-dark-15), + + // box-shadow: + atum-box-shadow: 0 2px 10px -8px var(--template-bg-dark-50), + dropdown-box-shadow: 0 1px 1px rgba($black, .15), + quickicon-box-shadow-success: 0 0 3px 0 var(--success), + quickicon-box-shadow-danger: 0 0 3px 0 var(--danger), + quickicon-box-shadow-warning: 0 0 3px 0 var(--warning), + + login-box-shadow: 0 4px 20px -10px var(--template-bg-dark-50), + login-focus-box-shadow: inset 0 0 1px 1px var(--template-contrast), + + modal-btn-box-shadow: 1px 1px 1px 0 rgba(0, 0, 0, .25), + modal-joomla-dialog-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15), + + form-aria-grabbed-box-shadow: 0 0 2px 1px var(--template-bg-dark), + + choices__button_joomla-focus-box-shadow: 0 0 0 2px #00bcd4, + + joomla-tab-accordion-box-shadow: (0 1px $white inset, 0 0 3px rgba(0, 0, 0, .04)), + joomla-tab-btn-hvr: var(--template-bg-dark-60), + joomla-tab-btn-aria-exp-bg: var(--template-bg-dark-3), + joomla-tab-btn-region-border: 1px solid var(--template-bg-dark-3), + joomla-tablist-btn-aria-exp: var(--template-text-light), + joomla-tablist-btn-aria-exp-bg: var(--template-bg-dark-60), + joomla-tablist-btn-aria-exp-aft-bg: var(--template-bg-dark), + joomla-tablist-border-bottom: 1px solid var(--template-bg-dark-10), + joomla-tab-tablist-border: 1px solid $gray-300, + joomla-tab-vert-border-bottom: 1px solid $gray-300, + + admin-background: var(--template-bg-light), + options-form-color: var(--template-text-dark), + options-form-bg: unset, + options-form-border: 1px solid var(--template-bg-dark-20), + options-form-legend-color: var(--template-text-dark), + options-form-legend-bg: inherit, + + // details + details-bg: var(--template-bg-dark-3), + details-border: 1px solid var(--template-bg-dark-10), + + // nav + nav-header-color: var(--template-bg-dark), + + // choices + choices-input-border-color: var(--body-bg), // TODO + choices-input-bg: var(--body-bg), + choices-input-placeholder: $gray-700, + choices-list-multiple-item-bg: var(--template-bg-dark), + choices-list-multiple-item: $white, + + // switcher + switcher-toggle-inside-bg: #fff, + switcher-toggle-outside-off-bg: #d3d3d3, + switcher-toggle-outside-on-bg: #2f7d32, + + // input + input-border-color: var(--template-bg-dark-20), + + // icons + featured-icon-color: $featured, + + // users + users-method-image: var(--light), + users-methods-reset-cont-bg: var(--light), + users-method-header-inact-bg: var(--light), + + // Login + login-label-color: $dark-blue, + + // Icons + icon-success: var(--success), + icon-success-border: var(--success), + icon-checkedout-color: var(--template-text-dark), + + // Buttons + btn-primary-color: var(--template-text-light), + btn-primary-bg: var(--template-bg-dark-60), + btn-primary-border: 1px solid var(--template-bg-dark-60), + btn-primary-bg-hvr: var(--template-bg-dark-70), + btn-primary-border-hvr: 1px solid var(--template-bg-dark-90), + btn-primary-toggle-bg: var(--template-bg-dark), + btn-primary-toggle-border: var(--template-bg-dark), + + btn-secondary-bg: var(--template-bg-dark-60), + btn-secondary-border: 1px solid var(--template-bg-dark-60), + btn-secondary-color: var(--template-text-light), + + btn-info-color: var(--template-text-light), + btn-info-bg: $info, + btn-info-border: 1px solid $info, + btn-info-bg-hvr: darken($info, 10%), + btn-info-border-hvr: 1px solid darken($info, 10%), + + btn-outline-secondary-color: gray-700, + btn-outline-secondary-bg: transparent, + btn-outline-secondary-border: var(--btn-secondary-border), + + btn-dark-border: 1px solid rgba(0,0,0,.85), + btn-dark-bg: rgba(0,0,0,.9), + btn-dark-bg-hvr: #000, + btn-dark-color: #fff, + btn-dark-color-hvr: #fff, + + btn-light-bg: #f8f9fa, + btn-light-border: 1px solid #f8f9fa, + btn-light-bg-hvr: #d3d4d5, + + input-group-text-bg: var(--template-bg-dark), + input-group-text-border: 1px solid var(--template-bg-dark), + + // search + js-stools-btn-clear-bg: var(--template-bg-dark), + js-stools-btn-clear-disabled-bg: var(--btn-disabled-bg), + js-stools-btn-clear-disabled-border: rgba($gray-300, .8), + + // cpanel + cpanel-addmodule-hover: var(--template-bg-dark), + + // Dropdown + dropdown-header-bg: var(--template-bg-dark), + dropdown-item-bg: var(--template-bg-dark-70), + dropdown-item-bg-hvr: var(--template-bg-dark), + dropdown-item-border-bottom: 1px solid rgba(0, 0, 0, .1), + atum-dropdown-link-hover-bg: var(--tertiary-bg), + atum-dropdown-link-hover-color: var(--body-color), + + // Alerts + // TODO change this color block to better suitable colors in a future PR + states-link-color: var(--template-link-color), + states-btn-primary-bg: var(--btn-primary-bg), + states-btn-primary-bg-hover: var(--btn-primary-bg-hvr), + states-btn-primary-color: var(--btn-primary-color), + states-btn-primary-border: var(--btn-primary-bg), + + state-success-text: $success, + state-success-text-hvr: lighten($success, 58%), + state-success-bg: #f2f8f4, + state-success-bg-hvr: $success, + state-success-border: hsl(var(--hue), 50%, 93%), + state-success-btn-border: 1px solid $success, + state-success-icon: #55a258, + state-success-icon-hvr: var(--state-success-icon), + state-success-heading-bg: $success, + state-success-link-color: $success, + + state-info-text: var(--template-bg-dark-70), + state-info-text-hvr: var(--body-bg), + state-info-bg: #dbe4f0, + state-info-bg-hvr: var(--template-bg-dark-70), + state-info-border: var(--template-bg-dark-70), + state-info-icon: var(--template-bg-dark-70), + state-info-heading-bg: var(--template-bg-dark-70), + state-info-link-color: var(--template-bg-dark-70), + + + state-warning-text: #996901, + state-warning-text-hvr: lighten($warning, 44%), + state-warning-bg: #fffcf4, + state-warning-bg-hvr: #996900, + state-warning-border: #ffb512, + state-warning-icon: $warning, + state-warning-heading-bg: #ffb512, + state-warning-link-color: var(--warning-text-emphasis), + + state-danger-text: var(--danger-text-emphasis), + state-danger-text-hvr: lighten($danger, 52%), + state-danger-bg: #f3d4d4, + state-danger-bg-hvr: $danger, + state-danger-border: var(--danger-border-subtle), + state-danger-icon: #ce8484, + state-danger-heading-bg: $danger, + state-danger-link-color: var(--danger-text-emphasis), + + state-error-text: $danger, + state-error-text-hvr: $danger, + state-error-bg: lighten($danger, 52%), + state-error-bg-hvr: lighten($danger, 52%), + state-error-border: 1px solid $danger, + state-error-icon: lighten($danger, 20%), + state-error-heading-bg: $danger, + + alert-info-color: var(--template-bg-dark), + alert-info-bg: var(--template-bg-dark-10), + alert-info-border: 1px solid var(--template-bg-dark-20), + alert-link-text-color: var(--info-text-emphasis), + alert-accent-color: #fff, + + // Subhead + atum-subhead-color: var(--template-text-dark), + atum-subhead-bg: $white, + atum-subhead-bg-img: (linear-gradient(var(--toolbar-bg), var(--template-bg-dark-3))), + + atum-btn: $atum-text-dark, + atum-btn-icon: $atum-text-dark, + atum-btn-icon-hvr: var(--template-text-light), + atum-btn-bg: var(--body-bg), + atum-btn-bg-hvr: $atum-text-dark, + atum-btn-border: 1px solid hsl(var(--hue),20%,80%), + atum-btn-hvr: var(--body-bg), + + /* + btn-success: var(--success), + btn-success-icon: var(--atum-btn-success-bg-hvr), + btn-success-icon-hvr: var(--template-text-light), + btn-success-bg: var(--body-bg), + btn-success-bg-hvr: var(--success), + btn-success-border: 1px solid hsl(var(--hue),20%,80%), + btn-success-hvr: var(--body-bg), + */ + + atum-btn-success: var(--success), + atum-btn-success-icon: var(--atum-btn-success-bg-hvr), + atum-btn-success-icon-hvr: var(--template-text-light), + atum-btn-success-bg: var(--body-bg), + atum-btn-success-bg-hvr: var(--success), + atum-btn-success-border: 1px solid hsl(var(--hue),20%,80%), + atum-btn-success-hvr: var(--body-bg), + + atum-btn-danger: $danger, + atum-btn-danger-icon: $danger, + atum-btn-danger-icon-hvr: var(--template-text-light), + atum-btn-danger-bg: var(--body-bg), + atum-btn-danger-bg-hvr: $danger, + atum-btn-danger-border: 1px solid hsl(var(--hue),20%,80%), + atum-btn-danger-hvr: var(--body-bg), + + atum-btn-info: $atum-text-dark, + atum-btn-info-color-hvr: var(--template-text-light), + atum-btn-info-icon: $info, + atum-btn-info-icon-hvr: var(--atum-btn-hvr), + atum-btn-info-bg: var(--body-bg), + atum-btn-info-bg-hvr: $info, + atum-btn-info-border: 1px solid hsl(var(--hue),20%,80%), + atum-btn-info-hvr: var(--body-bg), + + atum-btn-primary: var(--template-link-color), + atum-btn-primary-icon: var(--template-link-color), + atum-btn-primary-icon-hvr: var(--template-text-light), + atum-btn-primary-bg: var(--body-bg), + atum-btn-primary-bg-hvr: var(--template-link-color), + atum-btn-primary-border: 1px solid hsl(var(--hue),20%,80%), + atum-btn-primary-hvr: var(--body-bg), + + + atum-btn-action: var(--template-text-light), + atum-btn-action-icon: var(--template-bg-dark), + atum-btn-action-icon-hvr: var(--template-text-light), + atum-btn-action-bg: var(--body-bg), + atum-btn-action-bg-hvr: var(--template-bg-dark), + atum-btn-action-border: 1px solid hsl(var(--hue),20%,80%), + atum-btn-action-hvr: var(--body-bg), + + + atum-list-group-bg: var(--body-bg), // rgba(255, 255, 255, .05), + + // Calendar + atum-calendar-week-bg: #f4f4f4, + atum-calendar-bg: var(--body-bg), + atum-calendar-buttons-color: #495057, // var(--btn-primary-bg); + atum-calendar-disabled-color: #999, // #4b4b4b, + atum-calendar-disabled-bg: #fff, // rgba(0,0,0,.5), + atum-calendar-select-bg: $form-select-bg, + atum-calendar-select-bg-url: url("../../images/select-bg.svg"), + atum-calendar-select-bg-url-rtl: url("../../images/select-bg-rtl.svg"), + + // Permissions + permissions-sliders-oddCol-bg: var(--template-bg-light), + respTable-border-bottom: 1em solid var(--template-bg-dark-80), + + // Treeselect + treeselect-line-color: hsl(var(--hue), 40%, 93%), + treeselect-dropdown-toggle: var(--template-text-dark), + + icon-check-square-bg: rgb(33,37,41), + icon-square-bg: rgb(33,37,41), + icon-check-square-color: var(--template-text-light), + icon-square-color: var(--template-text-light), + + // Table Row Dragging + drag-color: #151515, + drag-background-color: $teal, + + success-text: $success, + success: $success, + successhvr: darken($success, 15%), + + danger-text: $danger, + danger: $danger, + dangerhvr: darken($danger, 15%), + + darkdanger: $danger, + darkdangerhvr: darken($danger, 15%), + + warning-text: #000, + warning: $warning, + warninghvr: darken($warning, 15%), + +); + +$colors: ( + card-bg: rgba(255, 255, 255, .7), + card-color: var(--template-bg-dark-60), + bluegray: $bluegray, + lightbluegray: #f6f9fc, + toolbar-bg: $white, + success-border: var(--success), + info-border: var(--info), + warning-border: var(--warning), + danger-border: var(--danger), + login-main-bg: darken($base-color, 8%), // used on login + border: $gray-400, + "white": $white, // the key here must be in quotes to avoid scss compilation warnings. + white-offset: $whiteoffset, + focus: #39f, + focus-shadow: #eaeaea, + toggle-color: $white, // used in sidebar + +); + +// Alerts +$alert-border-level: 0; +$alert-color-level: 0; + +// Global +$btn-disabled-opacity: .4; +$admin-background: var(--admin-background); +$bg-normal: var(--bg-normal); +$bg-reverted: var(--bg-reverted); + +// Login +$login-box-shadow: var(--login-box-shadow); +$login-focus-box-shadow: var(--login-focus-box-shadow); + +// Toolbar +$atum-toolbar-line-height: 2.45rem; + +// Sidebar +$sidebar-width: 18rem; +$sidebar-width-login: 28.75rem; +$sidebar-width-closed: 3rem; +$main-brand-height: 3rem; +$sidebarwrapper-bg: var(--sidebarwrapper-bg); +$sidebar-item-color: var(--sidebar-item-color); +$sidebar-item-color-hvr: var(--sidebar-item-color-hvr); +$sidebar-item-bg-hvr: var(--sidebar-item-bg-hvr); +$sidebar-toggle-bg: var(--sidebar-toggle-bg); +$sidebar-toggle-link: var(--sidebar-toggle-link); +$main-nav-ul-bg: var(--main-nav-ul-bg); +$main-nav-divider-bg: var(--main-nav-divider-bg); +$main-nav-item-title: var(--main-nav-item-title); +$main-nav-mm-active-bg: var(--main-nav-mm-active-bg); +$main-nav-mm-active-quicktask-bg: var(--main-nav-mm-active-quicktask-bg); +$main-nav-badge: var(--main-nav-badge); +$main-nav-item-title-hvr-bg: var(--main-nav-item-title-hvr-bg); +$mobile-menu-collapse-bg: var(--mobile-menu-collapse-bg); + +// Fonts +$font-family-sans-serif: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default; +$h1-font-size: 1.65rem; +$h2-font-size: 1.5rem; +$h3-font-size: 1.25rem; +$h4-font-size: 1rem; +$h5-font-size: .9286rem; +$h6-font-size: .8571rem; +$headings-color: var(--template-bg-dark); +$font-size-sm: .8rem; +$font-size-vsm: .6rem; +$display1-size: 1rem; +$display2-size: .875rem; +$content-font-size: .875rem; +$label-font-size: 1rem; +$danger-bg: #900; +$badge-font-size: .75rem; +$jicon-css-prefix: icon !default; +$fa-css-prefix: fa !default; +$fa-font-path: "../../../../media/vendor/fontawesome-free/webfonts"; +$roboto-font-path: "../../../../../media/vendor/roboto-fontface/fonts"; + +// Tables +$table-cell-padding-y: .75rem; +$table-cell-padding-x: 1rem; +$table-cell-padding-y-sm: .3rem; +$table-cell-padding-x-sm: .3rem; +$table-group-separator-color: $gray-300; +$table-border-top-nfc: var(--table-border-top-nfc); +$table-link-color: var(--table-link-color); +$table-link-font-weight: var(--table-link-font-weight); +$table-link-font-weight-sorted: var(--table-link-font-weight-sorted); +$badge-bg-info: var(--badge-bg-info); + +// card +$card-header-color: var(--card-header-color); +$card-header-bg: var(--card-header-bg); +$card-bg: var(--card-bg); +$main-card-bg: var(--main-card-bg); +$main-card-col-border-left: var(--main-card-col-border-left); +$card-body-bg: var(--card-body-bg); + +// cpanel +$module-actions-color: var(--module-actions-color); + +// Dropdowns +$dropdown-padding-y: 0; +$dropdown-box-shadow: var(--dropdown-box-shadow); +$dropdown-link-hover-color: var(--template-text-dark); +$dropdown-border-width: 1px; +$dropdown-item-padding-y: .5rem; +$dropdown-item-padding-x: .75rem; +$dropdown-spacer: 0; + +// Cards +$card-border-width: 0; +$card-border-color: transparent; + +// Details +$details-bg: var(--details-bg); +$details-border: var(--details-border); + +// nav +$nav-header-color: var(--nav-header-color); + +// users +$users-method-image: var(--users-method-image); +$users-methods-reset-cont-bg: var(--users-methods-reset-cont-bg); +$users-method-header-inact-bg: var(--users-method-header-inact-bg); + +// Icons +$icon-success: var(--icon-success); +$icon-success-border: var(--icon-success-border); +$icon-checkedout-color: var(--icon-checkedout-color); + +// Buttons +$btn-primary-color: var(--btn-primary-color); +$btn-primary-bg: var(--btn-primary-bg); +$btn-primary-border: var(--btn-primary-border); +$btn-primary-bg-hvr: var(--btn-primary-bg-hvr); +$btn-primary-border-hvr: var(--btn-primary-border-hvr); +$btn-primary-toggle-bg: var(--btn-primary-toggle-bg); +$btn-primary-toggle-border: var(--btn-primary-toggle-border); + +$btn-secondary-bg: var(--btn-secondary-bg); +$btn-secondary-border: var(--btn-secondary-border); + +$btn-outline-secondary-color: var(--btn-outline-secondary-color); +$btn-outline-secondary-bg: var(--btn-outline-secondary-bg); +$btn-outline-secondary-border: var(--btn-outline-secondary-border); +$input-group-text-bg: var(--input-group-text-bg); +$input-group-text-border: var(--input-group-text-border); + +// Search +$js-stools-btn-clear-bg: var(--template-bg-dark); +$js-stools-btn-clear-disabled-bg: var(--btn-disabled-bg); +$js-stools-btn-clear-disabled-border: var(--js-stools-btn-clear-disabled-border); + +// Dropdown +$dropdown-header-bg: var(--dropdown-header-bg); +$dropdown-item-bg: var(--dropdown-item-bg); +$dropdown-item-bg-hvr: var(--dropdown-item-bg-hvr); + +// Alerts +$state-success-text: $success; +$state-success-text-hvr: $success; +$state-success-bg: lighten($success, 58%); +$state-success-bg-hvr: lighten($success, 58%); +$state-success-border: var(--state-success-border); +$state-success-btn-border: var(--state-success-btn-border); +$state-success-icon: var(--state-success-icon); +$state-success-icon-hvr: var(--state-success-icon-hvr); +$state-success-heading-bg: var(--state-success-heading-bg); + +$state-info-text: var(--state-info-text); +$state-info-text-hvr: var(--state-info-text); +$state-info-bg: lighten($info, 90%); +$state-info-bg-hvr: var(--state-info-bg); +$state-info-border: var(--state-info-border); +$state-info-icon: var(--state-info-icon); +$state-info-heading-bg: var(--state-info-heading-bg); + +$state-warning-text: var(--state-warning-text); +$state-warning-text-hvr: var(--state-warning-text); +$state-warning-bg: var(--state-warning-bg); +$state-warning-bg-hvr: var(--state-warning-bg); +$state-warning-border: var(--state-warning-border); +$state-warning-icon: var(--state-warning-icon); +$state-warning-heading-bg: var(--state-warning-heading-bg); + +$state-danger-text: var(--state-danger-text); +$state-danger-text-hvr: var(--state-danger-text); +$state-danger-bg: var(--state-danger-bg); +$state-danger-bg-hvr: var(--state-danger-bg); +$state-danger-border: var(--state-danger-border); +$state-danger-icon: var(--state-danger-icon); +$state-danger-heading-bg: var(--state-danger-heading-bg); + +$state-error-text: var(--state-error-text); +$state-error-text-hvr: var(--state-error-text); +$state-error-bg: var(--state-error-bg); +$state-error-bg-hvr: var(--state-error-bg); +$state-error-border: var(--state-error-border); +$state-error-icon: var(--state-error-icon); +$state-error-heading-bg: var(--state-error-heading-bg); + +$alert-border: var(--alert-border); + +// Badges +$badge-padding-x: .2rem; +$badge-padding-y: .3rem; +$badge-border-radius: .2rem; + +$success-bg: $green; +$success-txt: $white; + +$warning-bg: #996808; +$warning-txt: #fff; + +$danger-bg: #900; +$danger-txt: #fff; + +$info-bg: $gray-300; +$info-txt: $white; + +// Input Group +$input-group-addon-color: var(--white); +$input-group-addon-bg: $base-color; +$input-group-addon-border-color: var(--template-bg-dark); + +// Treeselect +$treeselect-line-height: 2.2rem; +$treeselect-indent: 40px; + +// List +$atum-list-group-border-color: var(--atum-list-group-border-color); +$list-group-item-padding-y: .75rem; + +// Login +$login-label-color: var(--login-label-color); + +// Subhead +$atum-subhead-bg: var(--atum-subhead-bg); +$atum-subhead-bg-img: var(--atum-subhead-bg-img); +$atum-btn-color: var(--atum-btn-color); +$atum-btn-bg: var(--atum-btn-bg); +$atum-btn-border: var(--atum-btn-border); +$atum-btn-hvr: var(--atum-btn-hvr); + +$atum-btn-success: var(--atum-btn-success); +$atum-btn-success-bg: var(--atum-btn-success-bg); +$atum-btn-success-border: var(--atum-btn-success-border); +$atum-btn-success-hvr: var(--atum-btn-success-hvr); + +$atum-btn-danger: var(--atum-btn-danger); +$atum-btn-danger-bg: var(--atum-btn-danger-bg); +$atum-btn-danger-border: var(--atum-btn-danger-border); +$atum-btn-danger-hvr: var(--atum-btn-danger-hvr); + +$atum-btn-info: var(--atum-btn-info); +$atum-btn-info-bg: var(--atum-btn-info-bg); +$atum-btn-info-border: var(--atum-btn-info-border); +$atum-btn-info-hvr: var(--atum-btn-info-hvr); + +$atum-btn-primary: var(--atum-btn-primary); +$atum-btn-primary-bg: var(--atum-btn-primary-bg); +$atum-btn-primary-border: var(--atum-btn-primary-border); +$atum-btn-primary-hvr: var(--atum-btn-primary-hvr); + + +$atum-btn-secondary: var(--atum-btn-secondary); +$atum-btn-action: var(--atum-btn-action); +$atum-btn-action-bg: var(--atum-btn-action-bg); + +$atum-list-group-bg: var(--atum-list-group-bg); + +// Calendar +$atum-calendar-week-bg: var(--atum-calendar-week-bg); +$atum-calendar-bg: var(--atum-calendar-bg); +$atum-calendar-buttons-color: var(--atum-calendar-buttons-color); +$atum-calendar-disabled-color: var(--atum-calendar-disabled-color); +$atum-calendar-disabled-bg: var(--atum-calendar-disabled-bg); +$atum-calendar-select-bg: var(--atum-calendar-select-bg); +$atum-calendar-select-bg-url: var(--atum-calendar-select-bg-url); +$atum-calendar-select-bg-url-rtl: var(--atum-calendar-select-bg-url-rtl); + +// Permissions +$permissions-sliders-oddCol-bg: var(--permissions-sliders-oddCol); +$respTable-border-bottom: var(--respTable-border-bottom); + +// Media Manager +$media-manager-overlay-header-bg: var(--media-manager-overlay-header-bg); +$media-manager-infobar-dt-color: var(--media-manager-infobar-dt-color); +$media-manager-content-bg: var(--media-manager-content-bg); +$media-manager-content-color: var(--media-manager-content-color); +$media-manager-file-icon-color: var(--media-manager-file-icon-color); //?? inherit + +$media-manager-overlay-bg: var(--media-manager-overlay-bg); +$media-manager-disk-name-color: var(--media-manager-disk-name-color); +$media-manager-tree-item-hover-bg: var(--media-manager-tree-item-hover-bg); +$media-manager-toolbar-icon-color: var(--media-manager-toolbar-icon-color); + +$media-manager-border: var(--media-manager-border); +$media-browser-file-bg: var(--media-browser-file-bg); +//$media-browser-item-preview-border: var(--media-browser-item-preview-border); +$media-drive-bg: var(--media-drive-bg); +//$media-drive-border: var(--media-drive-border); +$media-toolbar-bg: var(--media-toolbar-bg); +//$media-toolbar-border-bottom: var(--media-toolbar-border-bottom); +//$media-toolbar-border-inline-start: var(--media-toolbar-border-inline-start); + +$media-toolbar-icon-bg: var(--media-toolbar-icon-bg); +//$media-toolbar-icon-border-start: var(--media-toolbar-icon-border-start); +$media-toolbar-icon-color: var(--media-toolbar-icon-color); +$media-toolbar-icon-bg-hvr: var(--media-toolbar-icon-bg-hvr); +$media-tree-item-color: var(--media-tree-item-color); // var(--template-bg-dark-60); +$media-manager-breadcrumb-item-bg: var(--media-manager-breadcrumb-item-bg); +$media-tree-active-icon-color: var(--media-tree-active-icon-color); + +$image-bg: var(--image-bg); // #fff; +$image-bg-image: var(--image-bg-image); // linear-gradient(45deg,hsl(var(--hue),20%,97%) 25%,transparent 25%,transparent 75%,#eee 75%,hsl(var(--hue),20%,97%) 100%),linear-gradient(45deg,#eee 25%,transparent 25%,transparent 75%,hsl(var(--hue),20%,97%) 75%,hsl(var(--hue),20%,97%) 100%); + + +// Buttons +$input-btn-padding-y-sm-submenu: 0; +$input-btn-padding-x-sm-submenu: 1.625rem; +$input-btn-submenu-icon-distance: 1rem; + +// Custom form +$form-select-indicator-padding: 3rem; +$form-select-background: var(--form-select-background); +$form-select-background-rtl: var(--form-select-background-rtl); +$form-select-border: var(--form-select-border); +$form-select-border-radius: 4px; +$form-select-box-shadow: var(--atum-box-shadow); +$form-select-multiple-padding-y: .3rem; +$form-select-success-bg: var(--form-select-success-bg); +$form-select-danger-bg: var(--form-select-danger-bg); +$form-select-disabled-bg: var(--form-select-disabled-bg); +$form-select-option: var(--form-select-option); +$form-select-option-disabled-bg: var(--form-select-option-disabled-bg); + +$form-file-button-color: var(--white); + +$file-selector-btn-bg: var(--file-selector-btn-bg); +$file-selector-btn-bg-hvr: var(--file-selector-btn-bg-hvr); + +// Forms +$form-aria-grabbed-box-shadow: var(--form-aria-grabbed-box-shadow); +$options-form-color: var(--options-form-color); +$options-form-bg: var(--options-form-bg); +$options-form-border: var(--options-form-border); +$options-form-legend-color: var(--options-form-legend-color); +$options-form-legend-bg: var(--options-form-legend-bg); +$form-control-bg: var(--form-control-bg); +$form-control-bg-disabled: var(--form-control-bg-disabled); +$form-control-border: var(--form-control-border); + +$form-check-input-checked-bg-image: var(--form-check-input-checked-bg-image); +$form-check-input-checked-bg-color: var(--form-check-input-checked-bg-color); +$form-check-input-border: var(--form-check-input-border); + +// Input +$input-padding: .5rem 1rem; +$input-border-color: var(--input-border-color); +$input-focus-border-color: var(--focus); +$input-box-shadow: var(--atum-box-shadow); +$input-max-width: 100%; +$input-btn-focus-width: .2rem; +$input-btn-focus-color: var(--focus-shadow); +$input-btn-padding-y: .5rem; +$input-btn-padding-x: 1rem; + +// Modals +$modal-header-height: 2.875rem; +$modal-btn-box-shadow: var(--modal-btn-box-shadow); +$modal-joomla-dialog-box-shadow: var(--modal-joomla-dialog-box-shadow); + +// Choices +$choices__button_joomla-focus-box-shadow: var(--choices__button_joomla-focus-box-shadow); +$choices-input-border-color: var(--choices-input-border-color); +$choices-input-bg: var(--choices-input-bg); +$choices-input-placeholder: var(--choices-input-placeholder); +$choices-list-multiple-item-bg: var(--choices-list-multiple-item-bg); +$choices-list-multiple-item: var(--choices-list-multiple-item); + +// Switcher +$switcher-toggle-inside-bg: var(--switcher-toggle-inside-bg); +$switcher-toggle-outside-off-bg: var(--switcher-toggle-outside-off-bg); +$switcher-toggle-outside-on-bg: var(--switcher-toggle-outside-on-bg); + +// Joomla-Tab +$joomla-tab-accordion-box-shadow: var(--joomla-tab-accordion-box-shadow); +$joomla-tab-btn-hvr: var(--joomla-tab-btn-hvr); +$joomla-tab-btn-aria-exp-bg: var(--joomla-tab-btn-aria-exp-bg); +$joomla-tab-btn-region-border: var(--joomla-tab-btn-region-border); +$joomla-tablist-btn-aria-exp: var(--joomla-tablist-btn-aria-exp); +$joomla-tablist-btn-aria-exp-bg: var(--joomla-tablist-btn-aria-exp-bg); +$joomla-tablist-btn-aria-exp-aft-bg: var(--joomla-tablist-btn-aria-exp-aft-bg); +$joomla-tablist-border-bottom: var(--joomla-tablist-border-bottom); +$joomla-tab-tablist-border: var(--joomla-tab-tablist-border); +$joomla-tab-vert-border-bottom: var(--joomla-tab-vert-border-bottom); + +// Quickicons +$quickicon-bg: var(--quickicon-bg); +$quickicon-box-shadow-success: var(--quickicon-box-shadow-success); +$quickicon-box-shadow-danger: var(--quickicon-box-shadow-danger); +$quickicon-box-shadow-warning: var(--quickicon-box-shadow-warning); +$quickicon-icon-size: 2rem; +$quickicon-icon-size-sm: 1.3rem; +$quickicon-border: var(--quickicon-border); +$quickicon-border-radius: var(--quickicon-border-radius); +$quickicon-color: var(--quickicon-color); +$quickicon-color-hvr: var(--quickicon-color-hvr); +$quickicon-link-hvr: var(--quickicon-link-hvr); +$quickicon-linkadd-color: var(--quickicon-linkadd-color); +$quickicon-linkadd-bg: var(--quickicon-linkadd-bg); +$quickicon-amount-bg: var(--quickicon-amount-bg); + +// Text +$text-normal: var(--text-normal); +$text-reverted: var(--text-reverted); +$text-muted-color: var(--text-muted-color); +$text-muted-hvr-color: var(--text-muted-hvr-color); + +// Modules +$new-modules-color: var(--new-modules-color); +$new-modules-bg: var(--new-modules-bg); +$new-modules-bg-hvr: var(--new-modules-bg-hvr); +$new-modules-icon-color: var(--new-modules-icon-color); +$new-modules-icon-color-hvr: var(--new-modules-icon-color-hvr); +$new-module-color: var(--new-module-color); +$new-module-bg: var(--new-module-bg); +$new-module-border: var(--new-module-border); +$new-module-link-bg: var(--new-module-link-bg); +$new-module-link-span: var(--new-module-link-span); +$new-module-link-hvr: var(--new-module-link-hvr); +$new-module-link-span-hvr: var(--new-module-link-span-hvr); + +// header-content +$header-bg: var(--header-bg); +$header-item-content-bg: var(--header-item-content-bg); +$header-item-content-bg-hvr: var(--header-item-content-bg-hvr); +$header-item-content-border-radius: var(--header-item-content-border-radius); +$header-item-content-jversion-color: var(--header-item-content-jversion-color); +$header-item-content-jversion-bg: var(--header-item-content-jversion-bg); +$header-logo-bg: var(--header-logo-bg); + + +// Gutter +$grid-gutter-width: 2rem; +$grid-gutter-width-s: 15px; + +// Breadcrumbs +$breadcrumb-bg: var(--white); + +// Links +$link-color: $light-blue; +$link-hover-color: darken($light-blue, 20%); +$link-decoration: none; + +// Z-Index list +$zindex-negative: -1; +$zindex-actions: auto; +$zindex-toolbar: 1000; +$zindex-sidebar: 1010; +$zindex-header: 1020; +$zindex-alerts: 1030; +$zindex-modal-backdrop: 1040; +$zindex-modal: 1050; +$zindex-popover: 1060; +$zindex-tooltip: 1070; +$zindex-mobile-bottom: 8000; +$zindex-mobile-toggle: 9999; +$zindex-mobile-menu: 9000; + +// scss-docs-start border-radius-variables +$btn-border-radius: .25rem !default; +$border-radius: .25rem !default; +$border-radius-sm: .2rem !default; +$border-radius-lg: .3rem !default; +$border-radius-xl: .3rem !default; +$border-radius-2xl: .3rem !default; +// scss-docs-end border-radius-variables diff --git a/build/media_source/templates/administrator/atum/scss/blocks/_calendar.scss b/build/media_source/templates/administrator/atum/scss/blocks/_calendar.scss index 5cee56b7c4b95..c6a85a8323063 100644 --- a/build/media_source/templates/administrator/atum/scss/blocks/_calendar.scss +++ b/build/media_source/templates/administrator/atum/scss/blocks/_calendar.scss @@ -4,13 +4,13 @@ --calendar-week-bg: #{$atum-calendar-week-bg}; // #f4f4f4; rgba(255,255,255,.1); --calendar-bg: #{$atum-calendar-bg}; - --calendar-buttons-color: #{$atum-calendar-buttons-color}; //#495057; var(--btn-primary-bg); + --calendar-buttons-color: #{$atum-calendar-buttons-color}; // #495057; var(--btn-primary-bg); --calendar-select-bg-color: #{$atum-calendar-select-bg}; //$form-select-bg --calendar-select-color: var(--body-color); - --calendar-disabled-color: #{$atum-calendar-disabled-color}; //#999; #4b4b4b; - --calendar-disabled-bg: #{$atum-calendar-disabled-bg}; //#fff; rgba(0,0,0,.5); + --calendar-disabled-color: #{$atum-calendar-disabled-color}; // #999; #4b4b4b; + --calendar-disabled-bg: #{$atum-calendar-disabled-bg}; // #fff; rgba(0,0,0,.5); --calendar-select-bg-url: #{$atum-calendar-select-bg-url} #{"/* rtl:"}$atum-calendar-select-bg-url-rtl#{"*/"}; diff --git a/build/media_source/templates/administrator/atum/scss/blocks/_header.scss b/build/media_source/templates/administrator/atum/scss/blocks/_header.scss index aafdf4ceaf7d3..29846e364b3c8 100644 --- a/build/media_source/templates/administrator/atum/scss/blocks/_header.scss +++ b/build/media_source/templates/administrator/atum/scss/blocks/_header.scss @@ -86,21 +86,21 @@ .dropdown-item { padding: .82rem .75rem; color: $white; - background-color: $dropdown-item-bg; //var(--template-bg-dark-70); + background-color: $dropdown-item-bg; // var(--template-bg-dark-70); > span { margin-inline-end: .5rem; } &:hover { - background-color: $dropdown-item-bg-hvr; //var(--template-bg-dark); + background-color: $dropdown-item-bg-hvr; // var(--template-bg-dark); } } .dropdown-header { padding: .75rem; font-size: inherit; - background-color: $dropdown-header-bg; //var(--template-bg-dark); + background-color: $dropdown-header-bg; // var(--template-bg-dark); } } diff --git a/build/media_source/templates/administrator/atum/scss/blocks/_icons.scss b/build/media_source/templates/administrator/atum/scss/blocks/_icons.scss index aad2821b6ad01..93895de77afff 100644 --- a/build/media_source/templates/administrator/atum/scss/blocks/_icons.scss +++ b/build/media_source/templates/administrator/atum/scss/blocks/_icons.scss @@ -51,7 +51,7 @@ height: auto; font-size: 1.2rem; line-height: 1rem; - color: $icon-checkedout-color; //var(--template-text-dark); + color: $icon-checkedout-color; // var(--template-text-dark); border: 0; } diff --git a/build/media_source/templates/administrator/atum/scss/blocks/_sidebar.scss b/build/media_source/templates/administrator/atum/scss/blocks/_sidebar.scss index da48a517cf9f4..bf5f6d3375bd6 100644 --- a/build/media_source/templates/administrator/atum/scss/blocks/_sidebar.scss +++ b/build/media_source/templates/administrator/atum/scss/blocks/_sidebar.scss @@ -291,7 +291,6 @@ @if $enable-dark-mode { @include color-mode(dark) { .sidebar-wrapper { - overflow: hidden; border: 1px solid rgba(255, 255, 255, .05); box-shadow: none; .main-nav { diff --git a/build/media_source/templates/administrator/atum/scss/pages/_com_cpanel.scss b/build/media_source/templates/administrator/atum/scss/pages/_com_cpanel.scss index d1fe5016ced97..e2f34e5846f8c 100644 --- a/build/media_source/templates/administrator/atum/scss/pages/_com_cpanel.scss +++ b/build/media_source/templates/administrator/atum/scss/pages/_com_cpanel.scss @@ -160,6 +160,12 @@ .mod-custom { padding: 1rem; } + + .btn:first-child:focus-visible { + color: var(--btn-active-color); + background-color: var(--btn-active-bg); + border-color: var(--btn-active-border-color); + } } .sample-data { diff --git a/build/media_source/templates/administrator/atum/scss/pages/_com_media.scss b/build/media_source/templates/administrator/atum/scss/pages/_com_media.scss index 7c33e62cc5ff0..ff3a748686d33 100644 --- a/build/media_source/templates/administrator/atum/scss/pages/_com_media.scss +++ b/build/media_source/templates/administrator/atum/scss/pages/_com_media.scss @@ -11,40 +11,40 @@ .file-background, .folder-background { padding-bottom: 100%; background-color: $media-browser-file-bg; //hsl(var(--hue), 20%, 97%); - border: $media-manager-border; //1px solid hsl(var(--hue), 35%, 95%); + border: $media-manager-border; // 1px solid hsl(var(--hue), 35%, 95%); } .file-icon, .folder-icon, .media-dragoutline { color: $media-manager-file-icon-color; //?? inherit } .media-browser-item-preview { - border: $media-manager-border; //1px solid hsl(var(--hue), 35%, 95%); + border: $media-manager-border; // 1px solid hsl(var(--hue), 35%, 95%); } .media-drive { background: $media-drive-bg; border: $media-manager-border; } .media-toolbar { - background-color: $media-toolbar-bg; //var(--com-media-manager-content-bg,#fff); - border-bottom: $media-manager-border; //1px solid var(--template-bg-dark-7); - border-inline-start: $media-manager-border; //1px solid var(--template-bg-dark-7) - box-shadow: 0 -1px 0 0 $media-manager-border; //var(--template-bg-dark-7); + background-color: $media-toolbar-bg; // var(--com-media-manager-content-bg,#fff); + border-bottom: $media-manager-border; // 1px solid var(--template-bg-dark-7); + border-inline-start: $media-manager-border; // 1px solid var(--template-bg-dark-7) + box-shadow: 0 -1px 0 0 $media-manager-border; // var(--template-bg-dark-7); } .media-toolbar-icon { - -webkit-border-start: $media-manager-border; //1px solid var(--template-bg-dark-7); - color: $media-toolbar-icon-color; //var(--com-media-manager-toolbar-icon-color,var(--template-bg-dark-60)); - background-color: $media-toolbar-icon-bg; //transparent; - border-inline-start: $media-manager-border; //1px solid var(--template-bg-dark-7); + -webkit-border-start: $media-manager-border; // 1px solid var(--template-bg-dark-7); + color: $media-toolbar-icon-color; // var(--com-media-manager-toolbar-icon-color,var(--template-bg-dark-60)); + background-color: $media-toolbar-icon-bg; // transparent; + border-inline-start: $media-manager-border; // 1px solid var(--template-bg-dark-7); } .media-toolbar-icon:hover { - background-color: $media-toolbar-icon-bg-hvr; //#f0f0f0; + background-color: $media-toolbar-icon-bg-hvr; // #f0f0f0; } .media-breadcrumb { - -webkit-border-start: $media-manager-border; //1px solid var(--template-bg-dark-7) - border-inline-start: $media-manager-border; //1px solid var(--template-bg-dark-7) + -webkit-border-start: $media-manager-border; // 1px solid var(--template-bg-dark-7) + border-inline-start: $media-manager-border; // 1px solid var(--template-bg-dark-7) } .media-breadcrumb-item a { - color: $media-manager-content-color; //var(--com-media-manager-content-color,var(--link-color)); + color: $media-manager-content-color; // var(--com-media-manager-content-color,var(--link-color)); } .media-breadcrumb-item { color: var(--btn-primary-color); @@ -54,12 +54,12 @@ } } .media-breadcrumb-item::after { - border-inline-start-color: var(--btn-primary-bg); //var(--com-media-manager-overlay-bg,var(--template-bg-dark-3)); + border-inline-start-color: var(--btn-primary-bg); // var(--com-media-manager-overlay-bg,var(--template-bg-dark-3)); } .image-background { background-color: $image-bg; // #fff; - background-image: $image-bg-image; //linear-gradient(45deg,hsl(var(--hue),20%,97%) 25%,transparent 25%,transparent 75%,#eee 75%,hsl(var(--hue),20%,97%) 100%),linear-gradient(45deg,#eee 25%,transparent 25%,transparent 75%,hsl(var(--hue),20%,97%) 75%,hsl(var(--hue),20%,97%) 100%); + background-image: $image-bg-image; // linear-gradient(45deg,hsl(var(--hue),20%,97%) 25%,transparent 25%,transparent 75%,#eee 75%,hsl(var(--hue),20%,97%) 100%),linear-gradient(45deg,#eee 25%,transparent 25%,transparent 75%,hsl(var(--hue),20%,97%) 75%,hsl(var(--hue),20%,97%) 100%); } .media-tree-item .item-icon { color: var(--template-link-color); @@ -74,7 +74,7 @@ } .media-infobar { - border-inline-start: $media-manager-border; //1px solid $border-color; + border-inline-start: $media-manager-border; // 1px solid $border-color; h2 { border-bottom: $media-manager-border; } diff --git a/build/media_source/templates/administrator/atum/scss/system/fields/_switcher.scss b/build/media_source/templates/administrator/atum/scss/system/fields/_switcher.scss index d4a46c1b543b2..5e5e41a599d41 100644 --- a/build/media_source/templates/administrator/atum/scss/system/fields/_switcher.scss +++ b/build/media_source/templates/administrator/atum/scss/system/fields/_switcher.scss @@ -1,11 +1,11 @@ .switcher .toggle-inside { - background: $switcher-toggle-inside-bg; //#fff; + background: $switcher-toggle-inside-bg; // #fff; } .switcher .toggle-outside { - background: $switcher-toggle-outside-off-bg; //#d3d3d3; + background: $switcher-toggle-outside-off-bg; // #d3d3d3; } .switcher input ~ input:checked ~ .toggle-outside { - background: $switcher-toggle-outside-on-bg; //#2f7d32; + background: $switcher-toggle-outside-on-bg; // #2f7d32; } diff --git a/build/media_source/templates/administrator/atum/scss/vendor/bootstrap/_buttons.scss b/build/media_source/templates/administrator/atum/scss/vendor/bootstrap/_buttons.scss index c2ff1b5449d19..da8a62118f2e1 100644 --- a/build/media_source/templates/administrator/atum/scss/vendor/bootstrap/_buttons.scss +++ b/build/media_source/templates/administrator/atum/scss/vendor/bootstrap/_buttons.scss @@ -60,8 +60,8 @@ } .btn-light { - background: var(--btn-light-bg); //#f8f9fa (light) - border: var(--btn-light-bg); //#f8f9fa (light) + background: var(--btn-light-bg); // #f8f9fa (light) + border: var(--btn-light-bg); // #f8f9fa (light) &:hover, &:focus, &:active { diff --git a/build/media_source/templates/administrator/atum/scss/vendor/choicesjs/choices.scss b/build/media_source/templates/administrator/atum/scss/vendor/choicesjs/choices.scss index 1be99bed9668e..95935cfa55bf6 100644 --- a/build/media_source/templates/administrator/atum/scss/vendor/choicesjs/choices.scss +++ b/build/media_source/templates/administrator/atum/scss/vendor/choicesjs/choices.scss @@ -43,7 +43,7 @@ background-color: transparent; &::placeholder { - color: $choices-input-placeholder; //$gray-700; //var(--gray-200); + color: $choices-input-placeholder; // $gray-700; // var(--gray-200); opacity: 1; } } @@ -60,7 +60,7 @@ position: relative; margin: 2px; color: $choices-list-multiple-item; //$white; - background-color: $choices-list-multiple-item-bg; //var(--template-bg-dark); + background-color: $choices-list-multiple-item-bg; // var(--template-bg-dark); margin-inline-end: 2px; border: 0; border-radius: $border-radius; @@ -186,7 +186,7 @@ .choices[data-type*="select-one"] { .choices__input { - background-color: $choices-input-bg; //var(--body-bg)/var(--gray-600) + background-color: $choices-input-bg; // var(--body-bg)/var(--gray-600) } .choices__item { diff --git a/build/media_source/templates/administrator/atum/scss/vendor/joomla-custom-elements/joomla-alert.scss b/build/media_source/templates/administrator/atum/scss/vendor/joomla-custom-elements/joomla-alert.scss index 11741d7ff0be4..efda977d3c75f 100644 --- a/build/media_source/templates/administrator/atum/scss/vendor/joomla-custom-elements/joomla-alert.scss +++ b/build/media_source/templates/administrator/atum/scss/vendor/joomla-custom-elements/joomla-alert.scss @@ -61,8 +61,8 @@ --alert-accent-color: var(--state-warning-text); --alert-bg-color: var(--state-warning-bg); - --alert-border: var(--state-warning-border); //TODO Change to --state-warning-heading-bg in another PR - --alert-heading-bg: var(--state-warning-heading-bg); //TODO Change to --state-warning-heading-bg in another PR + --alert-border: var(--state-warning-border); // TODO Change to --state-warning-heading-bg in another PR + --alert-heading-bg: var(--state-warning-heading-bg); // TODO Change to --state-warning-heading-bg in another PR --alert-link-color: var(--state-success-link-color, var(--states-link-color)); a { color: var(--state-warning-text); diff --git a/build/media_source/templates/administrator/atum/scss/vendor/joomla-custom-elements/joomla-tab.scss b/build/media_source/templates/administrator/atum/scss/vendor/joomla-custom-elements/joomla-tab.scss index 8cab5931dacba..ec752f7dfe668 100644 --- a/build/media_source/templates/administrator/atum/scss/vendor/joomla-custom-elements/joomla-tab.scss +++ b/build/media_source/templates/administrator/atum/scss/vendor/joomla-custom-elements/joomla-tab.scss @@ -31,7 +31,7 @@ joomla-tab { padding: 0; white-space: nowrap; list-style: outside none none; - border-bottom: $joomla-tablist-border-bottom; //1px solid var(--template-bg-dark-10); + border-bottom: $joomla-tablist-border-bottom; // 1px solid var(--template-bg-dark-10); > button[role=tab] { position: relative; @@ -124,7 +124,7 @@ joomla-tab { .main-card-columns > * > & { height: 100%; - border-left: $main-card-col-border-left; //1px solid var(--template-bg-dark-10); + border-left: $main-card-col-border-left; // 1px solid var(--template-bg-dark-10); } } @@ -142,7 +142,7 @@ joomla-tab[orientation=vertical] { height: auto; padding: 0; overflow: hidden; - border: $joomla-tab-tablist-border; //1px solid $gray-300; + border: $joomla-tab-tablist-border; // 1px solid $gray-300; border-radius: 0; box-shadow: none; @@ -155,8 +155,8 @@ joomla-tab[orientation=vertical] { text-align: start; &[aria-expanded=true] { - color: $joomla-tablist-btn-aria-exp; //var(--template-text-light); - background-color: $joomla-tablist-btn-aria-exp-bg; //var(--template-bg-dark-60); + color: $joomla-tablist-btn-aria-exp; // var(--template-text-light); + background-color: $joomla-tablist-btn-aria-exp-bg; // var(--template-bg-dark-60); } } @@ -171,14 +171,14 @@ joomla-tab[orientation=vertical] { margin: -1px 0; text-decoration: none; border-top: 1px solid transparent; - border-bottom: $joomla-tab-vert-border-bottom; //1px solid $gray-300; + border-bottom: $joomla-tab-vert-border-bottom; // 1px solid $gray-300; box-shadow: none; &[aria-expanded=true], &:focus, &:hover { color: var(--template-text-light); - background-color: $joomla-tablist-btn-aria-exp-bg; //var(--template-bg-dark-60); + background-color: $joomla-tablist-btn-aria-exp-bg; // var(--template-bg-dark-60); background-image: none; border-right: 0; box-shadow: none; @@ -189,7 +189,7 @@ joomla-tab[orientation=vertical] { left: -1px; width: 5px; height: auto; - background-color: $joomla-tablist-btn-aria-exp-aft-bg; //var(--template-bg-dark); + background-color: $joomla-tablist-btn-aria-exp-aft-bg; // var(--template-bg-dark); } .text-muted { @@ -228,7 +228,7 @@ joomla-tab[view=accordion] { text-align: start; text-decoration: none; border: 0; - border-bottom: $joomla-tab-vert-border-bottom; //1px solid $gray-300; + border-bottom: $joomla-tab-vert-border-bottom; // 1px solid $gray-300; box-shadow: none; &[aria-expanded=true]::after, @@ -256,7 +256,7 @@ joomla-tab[view=accordion] { display: block; width: 100%; max-width: 100%; - border-bottom: $joomla-tab-vert-border-bottom; //1px solid $gray-300; + border-bottom: $joomla-tab-vert-border-bottom; // 1px solid $gray-300; } } @@ -315,11 +315,11 @@ joomla-tab[view=accordion] { } .respTable td:last-child { - border-bottom: $respTable-border-bottom; //1em var(--template-bg-dark-80) solid; + border-bottom: $respTable-border-bottom; // 1em var(--template-bg-dark-80) solid; } .oddCol { - background: $permissions-sliders-oddCol-bg; //var(--template-bg-light); + background: $permissions-sliders-oddCol-bg; // var(--template-bg-light); } } } diff --git a/build/media_source/templates/site/cassiopeia/js/mod_menu/menu-metismenu.es6.js b/build/media_source/templates/site/cassiopeia/js/mod_menu/menu-metismenu.es6.js index ede6c6096b70a..1122a96994316 100644 --- a/build/media_source/templates/site/cassiopeia/js/mod_menu/menu-metismenu.es6.js +++ b/build/media_source/templates/site/cassiopeia/js/mod_menu/menu-metismenu.es6.js @@ -7,9 +7,7 @@ */ document.addEventListener('DOMContentLoaded', () => { - const allMenus = document.querySelectorAll('ul.mod-menu_dropdown-metismenu'); - - allMenus.forEach((menu) => { + document.querySelectorAll('ul.mod-menu_dropdown-metismenu').forEach((menu) => { // eslint-disable-next-line no-new, no-undef const mm = new MetisMenu(menu, { triggerElement: 'button.mm-toggler', diff --git a/build/media_source/templates/site/cassiopeia/js/template.es5.js b/build/media_source/templates/site/cassiopeia/js/template.es5.js deleted file mode 100644 index fa6a218e3a6a2..0000000000000 --- a/build/media_source/templates/site/cassiopeia/js/template.es5.js +++ /dev/null @@ -1,74 +0,0 @@ -/** - * @package Joomla.Site - * @subpackage Templates.Cassiopeia - * @copyright (C) 2017 Open Source Matters, Inc. - * @license GNU General Public License version 2 or later; see LICENSE.txt - * @since 4.0.0 - */ - -Joomla = window.Joomla || {}; - -(function(Joomla, document) { - 'use strict'; - - function initTemplate(event) { - var target = event && event.target ? event.target : document; - - /** - * Prevent clicks on buttons within a disabled fieldset - */ - var fieldsets = target.querySelectorAll('fieldset.btn-group'); - for (var i = 0; i < fieldsets.length; i++) { - var self = fieldsets[i]; - if (self.getAttribute('disabled') === true) { - self.style.pointerEvents = 'none'; - var btns = self.querySelectorAll('.btn'); - for (var ib = 0; ib < btns.length; ib++) { - btns[ib].classList.add('disabled'); - } - } - } - } - - document.addEventListener('DOMContentLoaded', function (event) { - initTemplate(event); - - /** - * Back to top - */ - var backToTop = document.getElementById('back-top'); - - if (backToTop) { - - function checkScrollPos() { - if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) { - backToTop.classList.add('visible'); - } else { - backToTop.classList.remove('visible') - } - } - - checkScrollPos(); - - window.onscroll = function() { - checkScrollPos(); - }; - - backToTop.addEventListener('click', function(event) { - event.preventDefault(); - window.scrollTo(0, 0); - }); - } - - [].slice.call(document.head.querySelectorAll('link[rel="lazy-stylesheet"]')) - .forEach(function($link){ - $link.rel = "stylesheet"; - }); - }); - - /** - * Initialize when a part of the page was updated - */ - document.addEventListener('joomla:updated', initTemplate); - -})(Joomla, document); diff --git a/build/media_source/templates/site/cassiopeia/js/template.es6.js b/build/media_source/templates/site/cassiopeia/js/template.es6.js new file mode 100644 index 0000000000000..bbdbbd6d2269d --- /dev/null +++ b/build/media_source/templates/site/cassiopeia/js/template.es6.js @@ -0,0 +1,64 @@ +/** + * @package Joomla.Site + * @subpackage Templates.Cassiopeia + * @copyright (C) 2017 Open Source Matters, Inc. + * @license GNU General Public License version 2 or later; see LICENSE.txt + * @since 4.0.0 + */ + +Joomla = window.Joomla || {}; + +((Joomla, document) => { + 'use strict'; + + function initTemplate(event) { + const target = event && event.target ? event.target : document; + + /** + * Prevent clicks on buttons within a disabled fieldset + */ + target.querySelectorAll('fieldset.btn-group').forEach((fieldset) => { + if (fieldset.getAttribute('disabled') === true) { + fieldset.style.pointerEvents = 'none'; + fieldset.querySelectorAll('.btn').forEach((btn) => btn.classList.add('disabled')); + } + }); + } + + document.addEventListener('DOMContentLoaded', (event) => { + initTemplate(event); + + /** + * Back to top + */ + const backToTop = document.getElementById('back-top'); + + function checkScrollPos() { + if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) { + backToTop.classList.add('visible'); + } else { + backToTop.classList.remove('visible'); + } + } + + if (backToTop) { + checkScrollPos(); + + window.addEventListener('scroll', checkScrollPos); + + backToTop.addEventListener('click', (ev) => { + ev.preventDefault(); + window.scrollTo(0, 0); + }); + } + + document.head.querySelectorAll('link[rel="lazy-stylesheet"]').forEach(($link) => { + $link.rel = 'stylesheet'; + }); + }); + + /** + * Initialize when a part of the page was updated + */ + document.addEventListener('joomla:updated', initTemplate); +})(Joomla, document); diff --git a/build/media_source/templates/site/cassiopeia/scss/blocks/_toolbar.scss b/build/media_source/templates/site/cassiopeia/scss/blocks/_toolbar.scss index 9ce695bdda44c..ffc7857901cbe 100644 --- a/build/media_source/templates/site/cassiopeia/scss/blocks/_toolbar.scss +++ b/build/media_source/templates/site/cassiopeia/scss/blocks/_toolbar.scss @@ -7,7 +7,7 @@ width: auto; min-height: 43px; padding: .25rem; - color: #495057; //#0c192e; + color: #495057; // #0c192e; background: $white; box-shadow: -3px -2px 22px #ddd; diff --git a/build/media_source/templates/site/cassiopeia/scss/tools/variables/_variables.scss b/build/media_source/templates/site/cassiopeia/scss/tools/variables/_variables.scss index cce1f6ecd103f..86b91d1093cdb 100644 --- a/build/media_source/templates/site/cassiopeia/scss/tools/variables/_variables.scss +++ b/build/media_source/templates/site/cassiopeia/scss/tools/variables/_variables.scss @@ -110,14 +110,14 @@ $colors: ( white-offset: #fefefe, focus: #39f, focus-shadow: 0 0 0 .2rem #eaeaea, - toggle-color: $white, //used in sidebar + toggle-color: $white, // used in sidebar ) !default; $cassiopeia-colors: ( template-sidebar-bg: var(--template-bg-dark-80), template-sidebar-font-color: $white, template-sidebar-link-color: $white, - template-bg-light: #f0f4fb, //light background color, frontend dashboard background + template-bg-light: #f0f4fb, // light background color, frontend dashboard background template-text-light: $white, template-special-color: #132f53, template-link-color: #2a69b8, diff --git a/build/media_source/templates/site/cassiopeia/scss/vendor/bootstrap/_buttons.scss b/build/media_source/templates/site/cassiopeia/scss/vendor/bootstrap/_buttons.scss index c885daf3b2eca..53ae765b0255c 100644 --- a/build/media_source/templates/site/cassiopeia/scss/vendor/bootstrap/_buttons.scss +++ b/build/media_source/templates/site/cassiopeia/scss/vendor/bootstrap/_buttons.scss @@ -14,36 +14,29 @@ } .btn-secondary { - color: $gray-800; - background-color: $white; - border-color: $gray-400; - - &:hover, - &:focus { - color: $gray-800; - background-color: $gray-100; - } + --btn-color: var(--gray-800); + --btn-bg: var(--white); + --btn-border-color: var(--gray-400); + --btn-hover-color: var(--gray-800); + --btn-hover-bg: var(--gray-100); } .article-info .association, .cat-list-association { .btn-secondary { - font-weight: 700; - color: $white; - background-color: $gray-600; - border-color: $gray-400; - - &:hover, - &:focus { - color: $white; - background-color: $gray-800; - } + --btn-font-weight: 700; + --btn-color: var(--white); + --btn-bg: var(--gray-600); + --btn-border-color: var(--gray-400); + --btn-hover-color: var(--white); + --btn-hover-bg: var(--gray-800); } .btn-sm { - padding: 0 .25rem; - font-size: .8rem; - border-radius: .2rem; + --btn-padding-y: 0; + --btn-padding-x: .25rem; + --btn-font-size: .8rem; + --btn-border-radius: var(--border-radius-sm); } } diff --git a/build/media_source/vendor/bootstrap/js/alert.es6.js b/build/media_source/vendor/bootstrap/js/alert.es6.js index 131f87a63cbe7..a5b9aae1d6793 100644 --- a/build/media_source/vendor/bootstrap/js/alert.es6.js +++ b/build/media_source/vendor/bootstrap/js/alert.es6.js @@ -9,8 +9,7 @@ if (Joomla && Joomla.getOptions) { // Initialise the elements if (alerts && alerts.length) { alerts.forEach((selector) => { - Array.from(document.querySelectorAll(selector)) - .map((el) => new window.bootstrap.Alert(el)); + document.querySelectorAll(selector).forEach((el) => new window.bootstrap.Alert(el)); }); } } diff --git a/build/media_source/vendor/bootstrap/js/button.es6.js b/build/media_source/vendor/bootstrap/js/button.es6.js index d75088aace4cc..3d94067277404 100644 --- a/build/media_source/vendor/bootstrap/js/button.es6.js +++ b/build/media_source/vendor/bootstrap/js/button.es6.js @@ -9,8 +9,7 @@ if (Joomla && Joomla.getOptions) { // Initialise the elements if (buttons && buttons.length) { buttons.forEach((selector) => { - Array.from(document.querySelectorAll(selector)) - .map((el) => new window.bootstrap.Button(el)); + document.querySelectorAll(selector).forEach((el) => new window.bootstrap.Button(el)); }); } } diff --git a/build/media_source/vendor/bootstrap/js/modal.es6.js b/build/media_source/vendor/bootstrap/js/modal.es6.js index 1fbf524dff9f4..74d86868ad1ad 100644 --- a/build/media_source/vendor/bootstrap/js/modal.es6.js +++ b/build/media_source/vendor/bootstrap/js/modal.es6.js @@ -128,9 +128,17 @@ Joomla.iframeButtonClick = (options) => { throw new Error('Selector is missing'); } + // Backward compatibility for older buttons + const old2newBtn = { + '#closeBtn': '#closeBtn, #toolbar-cancel>button', + '#saveBtn': '#saveBtn, #toolbar-save>button', + '#applyBtn': '#applyBtn, #toolbar-apply>button', + }; + const iframe = document.querySelector(`${options.iframeSelector} iframe`); if (iframe) { - const button = iframe.contentWindow.document.querySelector(options.buttonSelector); + const selector = old2newBtn[options.buttonSelector] ? old2newBtn[options.buttonSelector] : options.buttonSelector; + const button = iframe.contentWindow.document.querySelector(selector); if (button) { button.click(); } @@ -150,8 +158,7 @@ if (Joomla && Joomla.getOptions) { focus: opt.focus ? opt.focus : true, }; - Array.from(document.querySelectorAll(modal)) - .map((modalEl) => Joomla.initialiseModal(modalEl, options)); + document.querySelectorAll(modal).forEach((modalEl) => Joomla.initialiseModal(modalEl, options)); }); } } diff --git a/build/media_source/vendor/bootstrap/js/tab.es6.js b/build/media_source/vendor/bootstrap/js/tab.es6.js index 4b93724a0c499..fc0be169e1c26 100644 --- a/build/media_source/vendor/bootstrap/js/tab.es6.js +++ b/build/media_source/vendor/bootstrap/js/tab.es6.js @@ -54,8 +54,7 @@ Joomla.initialiseTabs = (el, options) => { } } } else { - Array.from(document.querySelectorAll(`${el} a`)) - .map((tab) => new window.bootstrap.Tab(tab, options)); + document.querySelectorAll(`${el} a`).forEach((tab) => new window.bootstrap.Tab(tab, options)); } }; diff --git a/cli/joomla.php b/cli/joomla.php index 44870d75c072e..dc3f1f9b9c762 100755 --- a/cli/joomla.php +++ b/cli/joomla.php @@ -38,7 +38,7 @@ if (!file_exists(JPATH_LIBRARIES . '/vendor/autoload.php') || !is_dir(JPATH_ROOT . '/media/vendor')) { echo 'It looks like you are trying to run Joomla! from our git repository.' . PHP_EOL; echo 'To do so requires you complete a couple of extra steps first.' . PHP_EOL; - echo 'Please see https://docs.joomla.org/Special:MyLanguage/J4.x:Setting_Up_Your_Local_Environment for further details.' . PHP_EOL; + echo 'Please see https://docs.joomla.org/Special:MyLanguage/J5.x:Setting_Up_Your_Local_Environment for further details.' . PHP_EOL; exit; } diff --git a/components/com_banners/src/Model/BannersModel.php b/components/com_banners/src/Model/BannersModel.php index a7af743bde551..3de66123cfd89 100644 --- a/components/com_banners/src/Model/BannersModel.php +++ b/components/com_banners/src/Model/BannersModel.php @@ -13,9 +13,9 @@ use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Factory; use Joomla\CMS\MVC\Model\ListModel; -use Joomla\Database\DatabaseQuery; use Joomla\Database\Exception\ExecutionFailureException; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; use Joomla\Registry\Registry; use Joomla\Utilities\ArrayHelper; @@ -56,9 +56,9 @@ protected function getStoreId($id = '') } /** - * Method to get a DatabaseQuery object for retrieving the data set from a database. + * Method to get a QueryInterface object for retrieving the data set from a database. * - * @return DatabaseQuery A DatabaseQuery object to retrieve the data set. + * @return QueryInterface An object implementing QueryInterface to retrieve the data set. * * @since 1.6 */ diff --git a/components/com_config/src/Model/ConfigModel.php b/components/com_config/src/Model/ConfigModel.php index 14f3c5326269c..c934cbce16cd8 100644 --- a/components/com_config/src/Model/ConfigModel.php +++ b/components/com_config/src/Model/ConfigModel.php @@ -27,7 +27,7 @@ class ConfigModel extends FormModel * @param array $data Data for the form. * @param boolean $loadData True if the form is to load its own data (default case), false if not. * - * @return mixed A JForm object on success, false on failure + * @return mixed A Form object on success, false on failure * * @since 3.2 */ diff --git a/components/com_config/src/Model/FormModel.php b/components/com_config/src/Model/FormModel.php index fa0ec9fd8de62..cf96ceeb35614 100644 --- a/components/com_config/src/Model/FormModel.php +++ b/components/com_config/src/Model/FormModel.php @@ -63,7 +63,7 @@ public function checkin($pk = null) } // Check if this is the user has previously checked out the row. - if (!\is_null($table->checked_out) && $table->checked_out != $user->get('id') && !$user->authorise('core.admin', 'com_checkin')) { + if (!\is_null($table->checked_out) && $table->checked_out != $user->id && !$user->authorise('core.admin', 'com_checkin')) { throw new \RuntimeException($table->getError()); } @@ -99,12 +99,12 @@ public function checkout($pk = null) } // Check if this is the user having previously checked out the row. - if (!\is_null($table->checked_out) && $table->checked_out != $user->get('id')) { + if (!\is_null($table->checked_out) && $table->checked_out != $user->id) { throw new \RuntimeException(Text::_('JLIB_APPLICATION_ERROR_CHECKOUT_USER_MISMATCH')); } // Attempt to check the row out. - if (!$table->checkOut($user->get('id'), $pk)) { + if (!$table->checkOut($user->id, $pk)) { throw new \RuntimeException($table->getError()); } } diff --git a/components/com_config/src/Model/TemplatesModel.php b/components/com_config/src/Model/TemplatesModel.php index e7d7b0ef84673..04fa54ff037c2 100644 --- a/components/com_config/src/Model/TemplatesModel.php +++ b/components/com_config/src/Model/TemplatesModel.php @@ -49,7 +49,7 @@ protected function populateState() * @param array $data An optional array of data for the form to interrogate. * @param boolean $loadData True if the form is to load its own data (default case), false if not. * - * @return Form|bool A JForm object on success, false on failure + * @return Form|bool A Form object on success, false on failure * * @since 3.2 */ diff --git a/components/com_config/tmpl/config/default.php b/components/com_config/tmpl/config/default.php index f7f88c3e1e1c0..6ea6c118ff0e0 100644 --- a/components/com_config/tmpl/config/default.php +++ b/components/com_config/tmpl/config/default.php @@ -14,8 +14,9 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; +/** @var \Joomla\Component\Config\Site\View\Config\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate') ->useScript('com_config.config') diff --git a/components/com_config/tmpl/config/default_metadata.php b/components/com_config/tmpl/config/default_metadata.php index f361d59281319..a0234db57401a 100644 --- a/components/com_config/tmpl/config/default_metadata.php +++ b/components/com_config/tmpl/config/default_metadata.php @@ -12,6 +12,7 @@ use Joomla\CMS\Language\Text; +/** @var \Joomla\Component\Config\Site\View\Config\HtmlView $this */ ?>
      diff --git a/components/com_config/tmpl/config/default_seo.php b/components/com_config/tmpl/config/default_seo.php index 911390985f711..42703e36c7b62 100644 --- a/components/com_config/tmpl/config/default_seo.php +++ b/components/com_config/tmpl/config/default_seo.php @@ -12,6 +12,7 @@ use Joomla\CMS\Language\Text; +/** @var \Joomla\Component\Config\Site\View\Config\HtmlView $this */ ?>
      diff --git a/components/com_config/tmpl/config/default_site.php b/components/com_config/tmpl/config/default_site.php index 571b7de73cb3b..ec46569d11935 100644 --- a/components/com_config/tmpl/config/default_site.php +++ b/components/com_config/tmpl/config/default_site.php @@ -12,6 +12,7 @@ use Joomla\CMS\Language\Text; +/** @var \Joomla\Component\Config\Site\View\Config\HtmlView $this */ ?>
      diff --git a/components/com_config/tmpl/modules/default.php b/components/com_config/tmpl/modules/default.php index d4473f59c51b0..3a1966460b3db 100644 --- a/components/com_config/tmpl/modules/default.php +++ b/components/com_config/tmpl/modules/default.php @@ -18,8 +18,9 @@ HTMLHelper::_('behavior.combobox'); +/** @var \Joomla\Component\Config\Site\View\Modules\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate') ->useScript('com_config.modules'); diff --git a/components/com_config/tmpl/modules/default_options.php b/components/com_config/tmpl/modules/default_options.php index e22325152df33..184fd90e12aed 100644 --- a/components/com_config/tmpl/modules/default_options.php +++ b/components/com_config/tmpl/modules/default_options.php @@ -14,6 +14,7 @@ use Joomla\CMS\Language\Multilanguage; use Joomla\CMS\Language\Text; +/** @var \Joomla\Component\Config\Site\View\Modules\HtmlView $this */ $fieldSets = $this->form->getFieldsets('params'); echo HTMLHelper::_('bootstrap.startAccordion', 'collapseTypes'); diff --git a/components/com_config/tmpl/templates/default.php b/components/com_config/tmpl/templates/default.php index 921625d252e6e..a09919ac8b3ff 100644 --- a/components/com_config/tmpl/templates/default.php +++ b/components/com_config/tmpl/templates/default.php @@ -14,10 +14,11 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; +/** @var \Joomla\Component\Config\Site\View\Templates\HtmlView $this */ $user = $this->getCurrentUser(); /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate') ->useScript('com_config.templates'); diff --git a/components/com_config/tmpl/templates/default_options.php b/components/com_config/tmpl/templates/default_options.php index a8c8be624b923..febcf7937e4bf 100644 --- a/components/com_config/tmpl/templates/default_options.php +++ b/components/com_config/tmpl/templates/default_options.php @@ -12,6 +12,7 @@ use Joomla\CMS\Language\Text; +/** @var \Joomla\Component\Config\Site\View\Templates\HtmlView $this */ $fieldSets = $this->form->getFieldsets('params'); ?> diff --git a/components/com_contact/src/Controller/ContactController.php b/components/com_contact/src/Controller/ContactController.php index 9c2bb4cdcaa22..bbf476d0ada65 100644 --- a/components/com_contact/src/Controller/ContactController.php +++ b/components/com_contact/src/Controller/ContactController.php @@ -247,7 +247,7 @@ private function _sendEmail($data, $contact, $emailCopyToSender) if ($contact->email_to == '' && $contact->user_id != 0) { $contact_user = $this->getUserFactory()->loadUserById($contact->user_id); - $contact->email_to = $contact_user->get('email'); + $contact->email_to = $contact_user->email; } $templateData = [ diff --git a/components/com_contact/src/Model/CategoryModel.php b/components/com_contact/src/Model/CategoryModel.php index 49db203cd8c5d..978de360f81d8 100644 --- a/components/com_contact/src/Model/CategoryModel.php +++ b/components/com_contact/src/Model/CategoryModel.php @@ -18,6 +18,7 @@ use Joomla\CMS\MVC\Model\ListModel; use Joomla\CMS\Table\Table; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; use Joomla\Registry\Registry; // phpcs:disable PSR1.Files.SideEffects @@ -149,7 +150,7 @@ public function getItems() /** * Method to build an SQL query to load the list data. * - * @return \Joomla\Database\DatabaseQuery An SQL query + * @return QueryInterface An SQL query * * @since 1.6 */ diff --git a/components/com_contact/src/Model/FeaturedModel.php b/components/com_contact/src/Model/FeaturedModel.php index 3211e27e0f5e9..990340740df2c 100644 --- a/components/com_contact/src/Model/FeaturedModel.php +++ b/components/com_contact/src/Model/FeaturedModel.php @@ -14,8 +14,8 @@ use Joomla\CMS\Factory; use Joomla\CMS\Language\Multilanguage; use Joomla\CMS\MVC\Model\ListModel; -use Joomla\Database\DatabaseQuery; use Joomla\Database\ParameterType; +use Joomla\Database\QueryInterface; use Joomla\Registry\Registry; // phpcs:disable PSR1.Files.SideEffects @@ -78,7 +78,7 @@ public function getItems() /** * Method to build an SQL query to load the list data. * - * @return DatabaseQuery An SQL query + * @return QueryInterface An SQL query * * @since 1.6 */ diff --git a/components/com_contact/src/View/Contact/VcfView.php b/components/com_contact/src/View/Contact/VcfView.php index 3c09c7299e292..5ea19616a397d 100644 --- a/components/com_contact/src/View/Contact/VcfView.php +++ b/components/com_contact/src/View/Contact/VcfView.php @@ -88,21 +88,21 @@ public function display($tpl = null) Factory::getApplication()->setHeader('Content-disposition', 'attachment; filename="' . $card_name . '.vcf"', true); - $vcard = []; - $vcard[] .= 'BEGIN:VCARD'; - $vcard[] .= 'VERSION:3.0'; - $vcard[] = 'N:' . $lastname . ';' . $firstname . ';' . $middlename; - $vcard[] = 'FN:' . $item->name; - $vcard[] = 'TITLE:' . $item->con_position; - $vcard[] = 'TEL;TYPE=WORK,VOICE:' . $item->telephone; - $vcard[] = 'TEL;TYPE=WORK,FAX:' . $item->fax; - $vcard[] = 'TEL;TYPE=WORK,MOBILE:' . $item->mobile; - $vcard[] = 'ADR;TYPE=WORK:;;' . $item->address . ';' . $item->suburb . ';' . $item->state . ';' . $item->postcode . ';' . $item->country; - $vcard[] = 'LABEL;TYPE=WORK:' . $item->address . "\n" . $item->suburb . "\n" . $item->state . "\n" . $item->postcode . "\n" . $item->country; - $vcard[] = 'EMAIL;TYPE=PREF,INTERNET:' . $item->email_to; - $vcard[] = 'URL:' . $item->webpage; - $vcard[] = 'REV:' . $rev . 'Z'; - $vcard[] = 'END:VCARD'; + $vcard = []; + $vcard[] = 'BEGIN:VCARD'; + $vcard[] = 'VERSION:3.0'; + $vcard[] = 'N:' . $lastname . ';' . $firstname . ';' . $middlename; + $vcard[] = 'FN:' . $item->name; + $vcard[] = 'TITLE:' . $item->con_position; + $vcard[] = 'TEL;TYPE=WORK,VOICE:' . $item->telephone; + $vcard[] = 'TEL;TYPE=WORK,FAX:' . $item->fax; + $vcard[] = 'TEL;TYPE=WORK,MOBILE:' . $item->mobile; + $vcard[] = 'ADR;TYPE=WORK:;;' . $item->address . ';' . $item->suburb . ';' . $item->state . ';' . $item->postcode . ';' . $item->country; + $vcard[] = 'LABEL;TYPE=WORK:' . $item->address . "\n" . $item->suburb . "\n" . $item->state . "\n" . $item->postcode . "\n" . $item->country; + $vcard[] = 'EMAIL;TYPE=PREF,INTERNET:' . $item->email_to; + $vcard[] = 'URL:' . $item->webpage; + $vcard[] = 'REV:' . $rev . 'Z'; + $vcard[] = 'END:VCARD'; echo implode("\n", $vcard); } diff --git a/components/com_contact/tmpl/categories/default.php b/components/com_contact/tmpl/categories/default.php index 2e23579be8a5b..14ff55b12b55a 100644 --- a/components/com_contact/tmpl/categories/default.php +++ b/components/com_contact/tmpl/categories/default.php @@ -17,8 +17,9 @@ Text::script('JGLOBAL_EXPAND_CATEGORIES'); Text::script('JGLOBAL_COLLAPSE_CATEGORIES'); +/** @var \Joomla\Component\Contact\Site\View\Categories\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->getRegistry()->addExtensionRegistryFile('com_categories'); $wa->useScript('com_categories.shared-categories-accordion'); diff --git a/components/com_contact/tmpl/categories/default_items.php b/components/com_contact/tmpl/categories/default_items.php index 5f8a812d86663..782c6213b526c 100644 --- a/components/com_contact/tmpl/categories/default_items.php +++ b/components/com_contact/tmpl/categories/default_items.php @@ -15,6 +15,7 @@ use Joomla\CMS\Router\Route; use Joomla\Component\Contact\Site\Helper\RouteHelper; +/** @var \Joomla\Component\Contact\Site\View\Categories\HtmlView $this */ if ($this->maxLevelcat != 0 && count($this->items[$this->parent->id]) > 0) : ?> items[$this->parent->id] as $id => $item) : ?> diff --git a/components/com_contact/tmpl/category/default.php b/components/com_contact/tmpl/category/default.php index b25d7830b1637..aaeda43266dea 100644 --- a/components/com_contact/tmpl/category/default.php +++ b/components/com_contact/tmpl/category/default.php @@ -12,6 +12,7 @@ use Joomla\CMS\Layout\LayoutHelper; +/** @var \Joomla\Component\Contact\Site\View\Category\HtmlView $this */ ?>
      diff --git a/components/com_contact/tmpl/category/default_children.php b/components/com_contact/tmpl/category/default_children.php index 0febb97df8dc8..6bae13ad281e6 100644 --- a/components/com_contact/tmpl/category/default_children.php +++ b/components/com_contact/tmpl/category/default_children.php @@ -15,6 +15,7 @@ use Joomla\CMS\Router\Route; use Joomla\Component\Contact\Site\Helper\RouteHelper; +/** @var \Joomla\Component\Contact\Site\View\Category\HtmlView $this */ if ($this->maxLevel != 0 && count($this->children[$this->category->id]) > 0) : ?>
        diff --git a/components/com_contact/tmpl/category/default_items.php b/components/com_contact/tmpl/category/default_items.php index 131bac771f415..e029e5a40a6b1 100644 --- a/components/com_contact/tmpl/category/default_items.php +++ b/components/com_contact/tmpl/category/default_items.php @@ -19,8 +19,9 @@ use Joomla\Component\Contact\Administrator\Helper\ContactHelper; use Joomla\Component\Contact\Site\Helper\RouteHelper; +/** @var \Joomla\Component\Contact\Site\View\Category\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('com_contact.contacts-list') ->useScript('core'); diff --git a/components/com_contact/tmpl/contact/default.php b/components/com_contact/tmpl/contact/default.php index 0f7645d5d1106..a67aeaa16de2b 100644 --- a/components/com_contact/tmpl/contact/default.php +++ b/components/com_contact/tmpl/contact/default.php @@ -19,6 +19,7 @@ use Joomla\CMS\Router\Route; use Joomla\Component\Contact\Site\Helper\RouteHelper; +/** @var \Joomla\Component\Contact\Site\View\Contact\HtmlView $this */ $tparams = $this->item->params; $canDo = ContentHelper::getActions('com_contact', 'category', $this->item->catid); $canEdit = $canDo->get('core.edit') || ($canDo->get('core.edit.own') && $this->item->created_by === $this->getCurrentUser()->id); diff --git a/components/com_contact/tmpl/contact/default_address.php b/components/com_contact/tmpl/contact/default_address.php index f90fee3ecfb28..fecc4dae7bef4 100644 --- a/components/com_contact/tmpl/contact/default_address.php +++ b/components/com_contact/tmpl/contact/default_address.php @@ -13,6 +13,7 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\String\PunycodeHelper; +/** @var \Joomla\Component\Contact\Site\View\Contact\HtmlView $this */ $icon = $this->params->get('contact_icons') == 0; /** diff --git a/components/com_contact/tmpl/contact/default_articles.php b/components/com_contact/tmpl/contact/default_articles.php index c17d00c54ddc0..f291d2dadb3a6 100644 --- a/components/com_contact/tmpl/contact/default_articles.php +++ b/components/com_contact/tmpl/contact/default_articles.php @@ -14,6 +14,7 @@ use Joomla\CMS\Router\Route; use Joomla\Component\Content\Site\Helper\RouteHelper; +/** @var \Joomla\Component\Contact\Site\View\Contact\HtmlView $this */ ?> params->get('show_articles')) : ?>
        diff --git a/components/com_contact/tmpl/contact/default_form.php b/components/com_contact/tmpl/contact/default_form.php index 324bc4dba83a9..72dfd4d3b794e 100644 --- a/components/com_contact/tmpl/contact/default_form.php +++ b/components/com_contact/tmpl/contact/default_form.php @@ -14,8 +14,9 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; +/** @var \Joomla\Component\Contact\Site\View\Contact\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->document->getWebAssetManager(); +$wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate'); diff --git a/components/com_contact/tmpl/contact/default_links.php b/components/com_contact/tmpl/contact/default_links.php index 845307f0cd65d..32492e69c0cca 100644 --- a/components/com_contact/tmpl/contact/default_links.php +++ b/components/com_contact/tmpl/contact/default_links.php @@ -10,6 +10,7 @@ defined('_JEXEC') or die; +/** @var \Joomla\Component\Contact\Site\View\Contact\HtmlView $this */ ?>
      diff --git a/plugins/system/sef/src/Extension/Sef.php b/plugins/system/sef/src/Extension/Sef.php index 967320d4980f2..cd2c7d242354a 100644 --- a/plugins/system/sef/src/Extension/Sef.php +++ b/plugins/system/sef/src/Extension/Sef.php @@ -68,12 +68,12 @@ public function onAfterInitialise() if ( $app->get('sef') && !$app->get('sef_suffix') - && $this->params->get('trailingslash') + && $this->params->get('trailingslash', -1) != -1 ) { - if ($this->params->get('trailingslash') == 1) { + if ($this->params->get('trailingslash') == 0) { // Remove trailingslash $router->attachBuildRule([$this, 'removeTrailingSlash'], SiteRouter::PROCESS_AFTER); - } elseif ($this->params->get('trailingslash') == 2) { + } elseif ($this->params->get('trailingslash') == 1) { // Add trailingslash $router->attachBuildRule([$this, 'addTrailingSlash'], SiteRouter::PROCESS_AFTER); } @@ -106,7 +106,7 @@ public function onAfterRoute() } // Check for trailing slash - if ($app->get('sef') && !$app->get('sef_suffix') && $this->params->get('trailingslash')) { + if ($app->get('sef') && !$app->get('sef_suffix') && $this->params->get('trailingslash', '-1') != '-1') { $this->enforceTrailingSlash(); } } @@ -348,14 +348,14 @@ protected function enforceTrailingSlash() $originalUri = Uri::getInstance(); if ( - (int)$this->params->get('trailingslash') === 1 + (int)$this->params->get('trailingslash') === 0 && str_ends_with($originalUri->getPath(), '/') && $originalUri->toString(['scheme', 'host', 'port', 'path']) !== Uri::root() ) { // Remove trailingslash $originalUri->setPath(substr($originalUri->getPath(), 0, -1)); $this->getApplication()->redirect($originalUri->toString(), 301); - } elseif ((int)$this->params->get('trailingslash') === 2 && !str_ends_with($originalUri->getPath(), '/')) { + } elseif ((int)$this->params->get('trailingslash') === 1 && !str_ends_with($originalUri->getPath(), '/')) { // Add trailingslash $originalUri->setPath($originalUri->getPath() . '/'); $this->getApplication()->redirect($originalUri->toString(), 301); diff --git a/templates/cassiopeia/templateDetails.xml b/templates/cassiopeia/templateDetails.xml index 4e6f696e95175..4bfcbbb9cf91b 100644 --- a/templates/cassiopeia/templateDetails.xml +++ b/templates/cassiopeia/templateDetails.xml @@ -57,7 +57,7 @@ label="TPL_CASSIOPEIA_BRAND_LABEL" default="1" layout="joomla.form.field.radio.switcher" - filter="boolean" + filter="options" > diff --git a/templates/system/build_incomplete.html b/templates/system/build_incomplete.html index 7abe09953f0fd..86a197f896aa8 100644 --- a/templates/system/build_incomplete.html +++ b/templates/system/build_incomplete.html @@ -6,7 +6,7 @@ Joomla: Environment Setup Incomplete - +
      @@ -14,7 +14,7 @@

      Environment Setup Incomplete

      It looks like you are trying to run Joomla! from our git repository. To do so requires you complete a couple of extra steps first.

      -

      More Details

      +

      More Details

      diff --git a/templates/system/fatal-error.html b/templates/system/fatal-error.html index 6e0917c9d21cc..ee385a633a31f 100644 --- a/templates/system/fatal-error.html +++ b/templates/system/fatal-error.html @@ -6,7 +6,7 @@ An Error Occurred: {{statusText}} - +
      diff --git a/templates/system/incompatible.html b/templates/system/incompatible.html index da952e88d1dc4..9f06ec3a51b87 100644 --- a/templates/system/incompatible.html +++ b/templates/system/incompatible.html @@ -6,7 +6,7 @@ Joomla: unsupported PHP version - +
      diff --git a/tests/System/integration/administrator/components/com_privacy/Consent.cy.js b/tests/System/integration/administrator/components/com_privacy/Consent.cy.js index 2538c99f61e44..772cc5092c2eb 100644 --- a/tests/System/integration/administrator/components/com_privacy/Consent.cy.js +++ b/tests/System/integration/administrator/components/com_privacy/Consent.cy.js @@ -204,6 +204,8 @@ describe('Test in backend that privacy consent component', () => { cy.get('tbody > tr > :nth-child(4)').should('contain', 'test user'); cy.get('table').find('tr').should('have.length', 4); cy.get('#list_fullordering').select('Status ascending'); + // wait for the table to be updated with the new sort order + cy.wait(10); cy.get('tbody > :nth-child(1) > :nth-child(7)').should('contain', 'invalidated consent user'); cy.get('tbody > :nth-child(2) > :nth-child(7)').should('contain', 'obsolete consent user'); cy.get('tbody > :nth-child(3) > :nth-child(7)').should('contain', 'valid consent user'); @@ -221,6 +223,8 @@ describe('Test in backend that privacy consent component', () => { cy.get('tbody > tr > :nth-child(4)').should('contain', 'test user'); cy.get('table').find('tr').should('have.length', 4); cy.get('#list_fullordering').select('Status descending'); + // wait for the table to be updated with the new sort order + cy.wait(10); cy.get('tbody > :nth-child(1) > :nth-child(7)').should('contain', 'valid consent user'); cy.get('tbody > :nth-child(2) > :nth-child(7)').should('contain', 'obsolete consent user'); cy.get('tbody > :nth-child(3) > :nth-child(7)').should('contain', 'invalidated consent user'); @@ -241,6 +245,8 @@ describe('Test in backend that privacy consent component', () => { cy.visit('/administrator/index.php?option=com_privacy&view=consents'); cy.get('table').find('tr').should('have.length', 4); cy.get('#list_fullordering').select('Username ascending'); + // wait for the table to be updated with the new sort order + cy.wait(10); cy.get('tbody > :nth-child(1) > :nth-child(4)').should('contain', 'a test user'); cy.get('tbody > :nth-child(2) > :nth-child(4)').should('contain', 'b test user'); cy.get('tbody > :nth-child(3) > :nth-child(4)').should('contain', 'c test user'); @@ -261,6 +267,8 @@ describe('Test in backend that privacy consent component', () => { cy.visit('/administrator/index.php?option=com_privacy&view=consents'); cy.get('table').find('tr').should('have.length', 4); cy.get('#list_fullordering').select('Username descending'); + // wait for the table to be updated with the new sort order + cy.wait(10); cy.get('tbody > :nth-child(1) > :nth-child(4)').should('contain', 'c test user'); cy.get('tbody > :nth-child(2) > :nth-child(4)').should('contain', 'b test user'); cy.get('tbody > :nth-child(3) > :nth-child(4)').should('contain', 'a test user'); @@ -281,6 +289,8 @@ describe('Test in backend that privacy consent component', () => { cy.visit('/administrator/index.php?option=com_privacy&view=consents'); cy.get('table').find('tr').should('have.length', 4); cy.get('#list_fullordering').select('Name descending'); + // wait for the table to be updated with the new sort order + cy.wait(10); cy.get('tbody > :nth-child(1) > th').should('contain', 'c test user'); cy.get('tbody > :nth-child(2) > th').should('contain', 'b test user'); cy.get('tbody > :nth-child(3) > th').should('contain', 'a test user'); @@ -301,6 +311,8 @@ describe('Test in backend that privacy consent component', () => { cy.visit('/administrator/index.php?option=com_privacy&view=consents'); cy.get('table').find('tr').should('have.length', 4); cy.get('#list_fullordering').select('Name ascending'); + // wait for the table to be updated with the new sort order + cy.wait(10); cy.get('tbody > :nth-child(1) > th').should('contain', 'a test user'); cy.get('tbody > :nth-child(2) > th').should('contain', 'b test user'); cy.get('tbody > :nth-child(3) > th').should('contain', 'c test user'); @@ -322,6 +334,8 @@ describe('Test in backend that privacy consent component', () => { cy.get('table').find('tr').should('have.length', 4); cy.get('#list_fullordering').select('User ID ascending'); + // wait for the table to be updated with the new sort order + cy.wait(10); const cellData = []; @@ -363,6 +377,8 @@ describe('Test in backend that privacy consent component', () => { cy.visit('/administrator/index.php?option=com_privacy&view=consents'); cy.get('table').find('tr').should('have.length', 4); cy.get('#list_fullordering').select('User ID descending'); + // wait for the table to be updated with the new sort order + cy.wait(10); const cellData = []; @@ -397,6 +413,8 @@ describe('Test in backend that privacy consent component', () => { cy.visit('/administrator/index.php?option=com_privacy&view=consents'); cy.get('table').find('tr').should('have.length', 4); cy.get('#list_fullordering').select('Subject ascending'); + // wait for the table to be updated with the new sort order + cy.wait(10); cy.get('tbody > :nth-child(1) > :nth-child(6)').should('contain', 'a test subject'); cy.get('tbody > :nth-child(2) > :nth-child(6)').should('contain', 'b test subject'); cy.get('tbody > :nth-child(3) > :nth-child(6)').should('contain', 'c test subject'); @@ -413,6 +431,8 @@ describe('Test in backend that privacy consent component', () => { cy.visit('/administrator/index.php?option=com_privacy&view=consents'); cy.get('table').find('tr').should('have.length', 4); cy.get('#list_fullordering').select('Subject descending'); + // wait for the table to be updated with the new sort order + cy.wait(10); cy.get('tbody > :nth-child(1) > :nth-child(6)').should('contain', 'c test subject'); cy.get('tbody > :nth-child(2) > :nth-child(6)').should('contain', 'b test subject'); cy.get('tbody > :nth-child(3) > :nth-child(6)').should('contain', 'a test subject'); @@ -430,6 +450,8 @@ describe('Test in backend that privacy consent component', () => { cy.get('table').find('tr').should('have.length', 4); cy.get('#list_fullordering').select('Consented descending'); + // wait for the table to be updated with the new sort order + cy.wait(10); const cellData = []; @@ -466,6 +488,8 @@ describe('Test in backend that privacy consent component', () => { cy.get('table').find('tr').should('have.length', 4); cy.get('#list_fullordering').select('Consented ascending'); + // wait for the table to be updated with the new sort order + cy.wait(10); const cellData = []; @@ -503,6 +527,8 @@ describe('Test in backend that privacy consent component', () => { cy.get('tbody > tr > :nth-child(4)').should('contain', 'test user'); cy.get('table').find('tr').should('have.length', 4); cy.get('#list_fullordering').select('ID descending'); + // wait for the table to be updated with the new sort order + cy.wait(10); const cellData = []; @@ -540,6 +566,8 @@ describe('Test in backend that privacy consent component', () => { cy.get('table').find('tr').should('have.length', 4); cy.get('#list_fullordering').select('ID ascending'); + // wait for the table to be updated with the new sort order + cy.wait(10); const cellData = []; for (let i = 1; i < 4; i += 1) { cy.get(`tbody > :nth-child(${i}) > :nth-child(9)`) diff --git a/tests/Unit/Libraries/Cms/Session/SessionManagerTest.php b/tests/Unit/Libraries/Cms/Session/SessionManagerTest.php index 84bfceafbf0b6..b883aa24d2f20 100644 --- a/tests/Unit/Libraries/Cms/Session/SessionManagerTest.php +++ b/tests/Unit/Libraries/Cms/Session/SessionManagerTest.php @@ -106,15 +106,9 @@ public function testDestroySessionsWithFailure() 'a2b3c4', ]; - $this->sessionHandler->expects($this->at(0)) - ->method('destroy') - ->with($sessionIds[0]) - ->willReturn(true); - - $this->sessionHandler->expects($this->at(1)) + $this->sessionHandler->expects($this->exactly(2)) ->method('destroy') - ->with($sessionIds[1]) - ->willReturn(false); + ->will($this->onConsecutiveCalls(true, false)); $this->assertFalse($this->manager->destroySessions($sessionIds)); } diff --git a/tests/Unit/Libraries/Cms/Updater/ConstraintCheckerTest.php b/tests/Unit/Libraries/Cms/Updater/ConstraintCheckerTest.php index f6ba79cb5f4f7..b536aa14d6712 100644 --- a/tests/Unit/Libraries/Cms/Updater/ConstraintCheckerTest.php +++ b/tests/Unit/Libraries/Cms/Updater/ConstraintCheckerTest.php @@ -12,6 +12,7 @@ use Joomla\CMS\Factory; use Joomla\CMS\Updater\ConstraintChecker; +use Joomla\CMS\Version; use Joomla\Database\DatabaseDriver; use Joomla\Tests\Unit\UnitTestCase; @@ -40,7 +41,7 @@ class ConstraintCheckerTest extends UnitTestCase */ protected function setUp(): void { - $this->checker = new ConstraintChecker(); + $this->checker = new ConstraintChecker(Version::MAJOR_VERSION . '.x'); } /**