diff --git a/administrator/components/com_users/src/Controller/UserController.php b/administrator/components/com_users/src/Controller/UserController.php index c4a884ddc068..c319bf693dbf 100644 --- a/administrator/components/com_users/src/Controller/UserController.php +++ b/administrator/components/com_users/src/Controller/UserController.php @@ -117,6 +117,11 @@ public function save($key = null, $urlVar = null) $this->setRedirect($return); } + // If a user has to renew a password but has no permission for users + if (!$this->app->getIdentity()->authorise('core.admin', 'com_users')) { + $this->setRedirect('index.php'); + } + return $result; } diff --git a/administrator/language/en-GB/com_templates.ini b/administrator/language/en-GB/com_templates.ini index e2c54ab1754c..dcb919cc3e1d 100644 --- a/administrator/language/en-GB/com_templates.ini +++ b/administrator/language/en-GB/com_templates.ini @@ -32,18 +32,24 @@ COM_TEMPLATES_CHILD_SUCCESS="Child template created." COM_TEMPLATES_CLICK_TO_ENLARGE="Select to enlarge." COM_TEMPLATES_COMPILE_ERROR="An error occurred. Failed to compile." COM_TEMPLATES_COMPILE_LESS="You should compile %s to generate a CSS file." +COM_TEMPLATES_CONFIGURATION="Template: Options" COM_TEMPLATES_CONFIG_FIELDSET_DESC="Global configuration for templates." COM_TEMPLATES_CONFIG_FONT_LABEL="Valid Font Formats" COM_TEMPLATES_CONFIG_IMAGE_LABEL="Valid Image Formats" COM_TEMPLATES_CONFIG_POSITIONS_LABEL="Preview Module Positions" COM_TEMPLATES_CONFIG_SOURCE_LABEL="Valid Source Formats" COM_TEMPLATES_CONFIG_UPLOAD_LABEL="Max. Upload Size (MB)" -COM_TEMPLATES_CONFIGURATION="Template: Options" COM_TEMPLATES_COPY_CHILD_TEMPLATE_STYLES="%s, copy of %s" COM_TEMPLATES_COPY_SUCCESS="New template called %s was installed." COM_TEMPLATES_CROP_AREA_ERROR="Crop area not selected." +COM_TEMPLATES_DIFF_CORE="Original" +COM_TEMPLATES_DIFF_DIFFERENCES="Differences" +COM_TEMPLATES_DIFF_IDENTICAL="The two files are identical." +COM_TEMPLATES_DIFF_OPTIONS="File Diff Display" +COM_TEMPLATES_DIFF_OPTIONS_INLINE="Inline" +COM_TEMPLATES_DIFF_OPTIONS_SIDE="Side-by-Side" +COM_TEMPLATES_DIFF_OVERRIDE="Override" COM_TEMPLATES_DIRECTORY_NOT_WRITABLE="The template folder is not writable. Some features may not work." -COM_TEMPLATES_ERR_XML="Template XML data not available" COM_TEMPLATES_ERROR_ASSET_FILE_DELETE="The file joomla.asset.json can't be deleted. Make changes in the editor if you want to change the file." COM_TEMPLATES_ERROR_ASSET_FILE_INVALID_JSON="The joomla.asset.json file doesn't contain valid JSON, aborting save." COM_TEMPLATES_ERROR_CANNOT_DELETE_LAST_STYLE="Can't delete the last style of a template." @@ -69,8 +75,8 @@ COM_TEMPLATES_ERROR_INDEX_DELETE="The file index.php can't be deleted. Make chan COM_TEMPLATES_ERROR_INVALID_FROM_NAME="Template to copy from can't be found." COM_TEMPLATES_ERROR_INVALID_TEMPLATE_NAME="Invalid template name. Please use only letters, numbers and underscores." COM_TEMPLATES_ERROR_NO_FILE_SELECTED="No file selected." -COM_TEMPLATES_ERROR_RENAME_INDEX="The file index.php can't be renamed." COM_TEMPLATES_ERROR_RENAME_ASSET_FILE="The file joomla.asset.json can't be renamed." +COM_TEMPLATES_ERROR_RENAME_INDEX="The file index.php can't be renamed." COM_TEMPLATES_ERROR_ROOT_DELETE="The root folder can't be deleted." COM_TEMPLATES_ERROR_SAVE_DISABLED_TEMPLATE="Unable to save a style associated to a disabled template." COM_TEMPLATES_ERROR_SOURCE_FILE_NOT_FOUND="Source file not found." @@ -85,6 +91,7 @@ COM_TEMPLATES_ERROR_WARNFILENAME="Invalid file name. Please correct the name of COM_TEMPLATES_ERROR_WARNFILETOOLARGE="This file is too large to upload." COM_TEMPLATES_ERROR_WARNFILETYPE="File format not supported." COM_TEMPLATES_ERROR_WARNIEXSS="Can't be uploaded. Has XSS." +COM_TEMPLATES_ERR_XML="Template XML data not available" COM_TEMPLATES_FIELD_CLIENT_LABEL="Location" COM_TEMPLATES_FIELD_HOME_LABEL="Default" COM_TEMPLATES_FIELD_SOURCE_LABEL="Source Code" @@ -153,7 +160,6 @@ COM_TEMPLATES_INVALID_FILE_TYPE="File type not selected." COM_TEMPLATES_INVALID_FOLDER_NAME="Invalid folder name. Please choose a folder name with a-z, A-Z, 0-9, - and _." COM_TEMPLATES_LAYOUTS_DIFFVIEW_CORE="Show Original File" COM_TEMPLATES_LAYOUTS_DIFFVIEW_DIFF="Show Differences" -COM_TEMPLATES_MANAGE_FOLDERS="Manage Folders" COM_TEMPLATES_MANAGER_ADD_STYLE="Templates: Add Style" COM_TEMPLATES_MANAGER_EDIT_STYLE="Templates: Edit Style" COM_TEMPLATES_MANAGER_STYLES="Templates: Styles" @@ -164,12 +170,18 @@ COM_TEMPLATES_MANAGER_TEMPLATES="Templates" COM_TEMPLATES_MANAGER_TEMPLATES_ADMIN="Templates: Templates (Administrator)" COM_TEMPLATES_MANAGER_TEMPLATES_SITE="Templates: Templates (Site)" COM_TEMPLATES_MANAGER_VIEW_TEMPLATE="Templates: Customise (%s)" +COM_TEMPLATES_MANAGE_FOLDERS="Manage Folders" +COM_TEMPLATES_MENUS_ASSIGNMENT="Menu Assignment" COM_TEMPLATES_MENU_CHANGED_1="One menu item has been assigned or unassigned to this style." COM_TEMPLATES_MENU_CHANGED_MORE="%d menu items have been assigned or unassigned to this style." -COM_TEMPLATES_MENUS_ASSIGNMENT="Menu Assignment" COM_TEMPLATES_MODAL_FILE_DELETE="The file %s will be deleted." COM_TEMPLATES_MSG_MANAGE_NO_STYLES="There are no styles installed matching your query." COM_TEMPLATES_MSG_MANAGE_NO_TEMPLATES="There are no templates installed matching your query." +COM_TEMPLATES_NEW_FILE_HEADER="Create or Upload a new file." +COM_TEMPLATES_NEW_FILE_NAME="New File Name" +COM_TEMPLATES_NEW_FILE_SELECT="Select a file type" +COM_TEMPLATES_NEW_FILE_TYPE="File Type" +COM_TEMPLATES_NO_TEMPLATE_SELECTED="No template selected." COM_TEMPLATES_N_CONFLICT="%d Changes found" COM_TEMPLATES_N_CONFLICT_1="Change found" COM_TEMPLATES_N_ITEMS_DELETED="%d template styles deleted." @@ -180,13 +192,13 @@ COM_TEMPLATES_N_OVERRIDE_DELETED="%d records removed." COM_TEMPLATES_N_OVERRIDE_DELETED_1="Record removed." COM_TEMPLATES_N_OVERRIDE_UNCHECKED="%d records unchecked." COM_TEMPLATES_N_OVERRIDE_UNCHECKED_1="Record unchecked." -COM_TEMPLATES_NEW_FILE_HEADER="Create or Upload a new file." -COM_TEMPLATES_NEW_FILE_NAME="New File Name" -COM_TEMPLATES_NEW_FILE_SELECT="Select a file type" -COM_TEMPLATES_NEW_FILE_TYPE="File Type" -COM_TEMPLATES_NO_TEMPLATE_SELECTED="No template selected." COM_TEMPLATES_OPTION_NONE=":: None ::" COM_TEMPLATES_OPTION_SELECT_MENU_ITEM="- Select Menu Item -" +COM_TEMPLATES_OVERRIDES="Override Files" +COM_TEMPLATES_OVERRIDES_COMPONENTS="Components" +COM_TEMPLATES_OVERRIDES_LAYOUTS="Layouts" +COM_TEMPLATES_OVERRIDES_MODULES="Modules" +COM_TEMPLATES_OVERRIDES_PLUGINS="Plugins" COM_TEMPLATES_OVERRIDE_CHECKED="Checked" COM_TEMPLATES_OVERRIDE_CORE_REMOVED="Original file removed" COM_TEMPLATES_OVERRIDE_CREATED="Override created in " @@ -197,25 +209,20 @@ COM_TEMPLATES_OVERRIDE_NOT_UPTODATE="The originals of the template override file COM_TEMPLATES_OVERRIDE_SOURCE="Update Source" COM_TEMPLATES_OVERRIDE_TEMPLATE_FILE="Template File" COM_TEMPLATES_OVERRIDE_UPTODATE="Override files are up to date. Nothing has been changed in the last extension or Joomla update." -COM_TEMPLATES_OVERRIDES="Override Files" -COM_TEMPLATES_OVERRIDES_COMPONENTS="Components" -COM_TEMPLATES_OVERRIDES_LAYOUTS="Layouts" -COM_TEMPLATES_OVERRIDES_MODULES="Modules" -COM_TEMPLATES_OVERRIDES_PLUGINS="Plugins" COM_TEMPLATES_PREVIEW="Preview" COM_TEMPLATES_RENAME_FILE="Rename file %s" COM_TEMPLATES_RESIZE_IMAGE="Resize Image" COM_TEMPLATES_SCREENSHOT="%s Screenshot" COM_TEMPLATES_SOURCE_CODE="Source" -COM_TEMPLATES_STYLE_CANNOT_DELETE_DEFAULT_STYLE="Can't delete default style." -COM_TEMPLATES_STYLE_FORM_EDIT="Edit Style" -COM_TEMPLATES_STYLE_SAVE_SUCCESS="Style saved." COM_TEMPLATES_STYLES_FILTER_SEARCH_DESC="Search in style description." COM_TEMPLATES_STYLES_PAGES_ALL="Default for all pages" COM_TEMPLATES_STYLES_PAGES_ALL_LANGUAGE="Default for %s pages" COM_TEMPLATES_STYLES_PAGES_NONE="Not assigned" COM_TEMPLATES_STYLES_PAGES_SELECTED="Assigned on %s pages" COM_TEMPLATES_STYLES_TABLE_CAPTION="Template Styles" +COM_TEMPLATES_STYLE_CANNOT_DELETE_DEFAULT_STYLE="Can't delete default style." +COM_TEMPLATES_STYLE_FORM_EDIT="Edit Style" +COM_TEMPLATES_STYLE_SAVE_SUCCESS="Style saved." COM_TEMPLATES_SUBMENU_TEMPLATES="Templates" COM_TEMPLATES_SUCCESS_DUPLICATED="Style duplicated." COM_TEMPLATES_SUCCESS_HOME_SET="Default style set." @@ -224,10 +231,11 @@ COM_TEMPLATES_TAB_DESCRIPTION="Template Description" COM_TEMPLATES_TAB_EDITOR="Editor" COM_TEMPLATES_TAB_OVERRIDES="Create Overrides" COM_TEMPLATES_TAB_UPDATED_FILES="Updated Files" +COM_TEMPLATES_TEMPLATES_FILTER_SEARCH_DESC="Search in template name or folder name." +COM_TEMPLATES_TEMPLATES_TABLE_CAPTION="Templates" COM_TEMPLATES_TEMPLATE_CHILD="Child Template" COM_TEMPLATES_TEMPLATE_CHILD_NAME_LABEL="Child Template Name" COM_TEMPLATES_TEMPLATE_CHILD_STYLE_LABEL="Additional Template Styles" -COM_TEMPLATES_TEMPLATE_NEW_STYLE_DESC="Duplicate existing styles for the new child template." COM_TEMPLATES_TEMPLATE_CLOSE="Close" COM_TEMPLATES_TEMPLATE_COPY="Copy Template" COM_TEMPLATES_TEMPLATE_CORE_FILENAME="Original file "%s"." @@ -243,11 +251,10 @@ COM_TEMPLATES_TEMPLATE_MEDIA_FOLDER="Media Folder" COM_TEMPLATES_TEMPLATE_NEW_NAME_DESC="Letters, numbers and underscore only." COM_TEMPLATES_TEMPLATE_NEW_NAME_LABEL="New Template Name" COM_TEMPLATES_TEMPLATE_NEW_PREVIEW="Preview %s in new window." -COM_TEMPLATES_TEMPLATE_NO_PREVIEW="No preview available. You can enable preview in the options." +COM_TEMPLATES_TEMPLATE_NEW_STYLE_DESC="Duplicate existing styles for the new child template." COM_TEMPLATES_TEMPLATE_NOT_SPECIFIED="Template not specified." +COM_TEMPLATES_TEMPLATE_NO_PREVIEW="No preview available. You can enable preview in the options." COM_TEMPLATES_TEMPLATE_PREVIEW="Preview" -COM_TEMPLATES_TEMPLATES_FILTER_SEARCH_DESC="Search in template name or folder name." -COM_TEMPLATES_TEMPLATES_TABLE_CAPTION="Templates" COM_TEMPLATES_TOOLBAR_SET_HOME="Default" COM_TEMPLATES_UPTODATE="Up to date" COM_TEMPLATES_WARNING_FORMAT_WILL_NOT_BE_VISIBLE="You have created a new file with the extension '%s'. This is supported but as you did not have that file extension in the list of supported formats this can't be displayed. Please double check the options for Templates and add the format if needed." diff --git a/build/media_source/system/js/fields/joomla-field-media.w-c.es6.js b/build/media_source/system/js/fields/joomla-field-media.w-c.es6.js index 0374f3273b53..aff9cae4f8bc 100644 --- a/build/media_source/system/js/fields/joomla-field-media.w-c.es6.js +++ b/build/media_source/system/js/fields/joomla-field-media.w-c.es6.js @@ -135,12 +135,7 @@ class JoomlaFieldMedia extends HTMLElement { this.inputElement.removeAttribute('readonly'); this.inputElement.addEventListener('change', this.validateValue); - - // Force input revalidation - (async () => { - await this.validateValue({ target: this.inputElement }); - this.updatePreview(); - })(); + this.updatePreview(); } disconnectedCallback() { diff --git a/language/en-GB/com_contact.ini b/language/en-GB/com_contact.ini index 5c5a66bdb76c..aca7f2a7bf86 100644 --- a/language/en-GB/com_contact.ini +++ b/language/en-GB/com_contact.ini @@ -31,7 +31,8 @@ COM_CONTACT_EMAIL_THANKS="Thank you for your email." COM_CONTACT_ENQUIRY_SUBJECT="{SITENAME}: {SUBJECT}" COM_CONTACT_ENQUIRY_TEXT="This is an enquiry email via {URL} from:\n{NAME} <{EMAIL}>\n\n{BODY}\n\n{CUSTOMFIELDS}" COM_CONTACT_ERROR_CONTACT_NOT_FOUND="Contact not found" -COM_CONTACT_ERROR_UNIQUE_ALIAS="Another Contact from this category has the same alias (remember it may be a trashed item)." +COM_CONTACT_ERROR_UNIQUE_ALIAS="Another Contact in this category has the same alias." +COM_CONTACT_ERROR_UNIQUE_ALIAS_TRASHED="A trashed Contact in this category has the same alias." COM_CONTACT_FAX="Fax" COM_CONTACT_FAX_NUMBER="Fax: %s" COM_CONTACT_FIELD_CREATED_BY_ALIAS_LABEL="Created By Alias" diff --git a/language/en-GB/com_content.ini b/language/en-GB/com_content.ini index 96d833e3b952..d1a9f8e1a9f7 100644 --- a/language/en-GB/com_content.ini +++ b/language/en-GB/com_content.ini @@ -26,6 +26,8 @@ COM_CONTENT_ERROR_ARTICLE_NOT_FOUND="Article not found" COM_CONTENT_ERROR_LOGIN_TO_VIEW_ARTICLE="Please login to view the article" COM_CONTENT_ERROR_PARENT_CATEGORY_NOT_FOUND="Parent category not found" COM_CONTENT_ERROR_PRINT_POPUP="Sorry, Joomla 4 no longer supports print_popup" +COM_CONTENT_ERROR_UNIQUE_ALIAS="Another Article in this category has the same alias." +COM_CONTENT_ERROR_UNIQUE_ALIAS_TRASHED="A trashed Article in this category has the same alias." COM_CONTENT_FEED_READMORE="Read More …" COM_CONTENT_FIELD_ARTICLETEXT_LABEL="Article Text" COM_CONTENT_FIELD_FEATURED_DOWN_LABEL="Finish Featured" diff --git a/language/en-GB/lib_joomla.ini b/language/en-GB/lib_joomla.ini index d08b985c5781..9d4e6434a179 100644 --- a/language/en-GB/lib_joomla.ini +++ b/language/en-GB/lib_joomla.ini @@ -110,7 +110,8 @@ JLIB_DATABASE_ERROR_ADAPTER_MYSQLI="The MySQL adapter 'mysqli' is not available. JLIB_DATABASE_ERROR_ARTICLE_UNIQUE_ALIAS="Another article from this category has the same alias (remember it may be a trashed item)." JLIB_DATABASE_ERROR_BIND_FAILED_INVALID_SOURCE_ARGUMENT="%s: :bind failed. Invalid source argument." JLIB_DATABASE_ERROR_CATEGORY_REQUIRED="Category is required." -JLIB_DATABASE_ERROR_CATEGORY_UNIQUE_ALIAS="Another category with the same parent category has the same alias (remember it may be a trashed item)." +JLIB_DATABASE_ERROR_CATEGORY_UNIQUE_ALIAS="Another category with the same parent category has the same alias." +JLIB_DATABASE_ERROR_CATEGORY_UNIQUE_ALIAS_TRASHED="A trashed category with the same parent category has the same alias." JLIB_DATABASE_ERROR_CHECK_FAILED="%s: :check Failed - %s" JLIB_DATABASE_ERROR_CHECKIN_FAILED="%s: :check-in failed - %s" JLIB_DATABASE_ERROR_CHECKOUT_FAILED="%s: :check-out failed - %s" @@ -148,8 +149,9 @@ JLIB_DATABASE_ERROR_MENU_HOME_NOT_COMPONENT="The home menu item must be a compon JLIB_DATABASE_ERROR_MENU_HOME_NOT_UNIQUE_IN_MENU="A menu should have only one Default home." JLIB_DATABASE_ERROR_MENU_ROOT_ALIAS_COMPONENT="A first level menu item alias can't be 'component'." JLIB_DATABASE_ERROR_MENU_ROOT_ALIAS_FOLDER="A first level menu item alias can't be '%s' because '%s' is a sub-folder of your Joomla installation folder." -JLIB_DATABASE_ERROR_MENU_UNIQUE_ALIAS="The alias %1$s is already being used by %2$s menu item in the %3$s menu (remember it may be a trashed item)." +JLIB_DATABASE_ERROR_MENU_UNIQUE_ALIAS="The alias %1$s is already being used by the %2$s menu item in the %3$s menu." JLIB_DATABASE_ERROR_MENU_UNIQUE_ALIAS_ROOT="Another menu item has the same alias in Root (remember it may be a trashed item). Root is the top level parent." +JLIB_DATABASE_ERROR_MENU_UNIQUE_ALIAS_TRASHED="The alias %1$s is already being used by the trashed %2$s menu item in the %3$s menu." JLIB_DATABASE_ERROR_MENU_UNPUBLISH_DEFAULT_HOME="Can't unpublish default home." JLIB_DATABASE_ERROR_MENUTYPE="Some menu items or some menu modules related to this menutype are checked out by another user or the default menu item is in this menu." JLIB_DATABASE_ERROR_MENUTYPE_CHECKOUT="The user checking out does not match the user who checked out this menu and/or its linked menu module." diff --git a/libraries/src/MVC/Model/ListModel.php b/libraries/src/MVC/Model/ListModel.php index 98f3be1df018..37cf9df2b797 100644 --- a/libraries/src/MVC/Model/ListModel.php +++ b/libraries/src/MVC/Model/ListModel.php @@ -540,7 +540,7 @@ protected function populateState($ordering = null, $direction = null) break; case 'direction': - if (!\in_array(strtoupper($value), array('ASC', 'DESC', ''))) { + if ($value && (!\in_array(strtoupper($value), array('ASC', 'DESC', '')))) { $value = $direction; } break;