Introduce upload_plugins and upload_themes capabilities to allow blocking of plugin and theme uploads, versus the old hacky (and not secure) ways of just hiding UI tabs. These are simply meta capabilities that map to install_plugins and install_themes.
Also:
* Use the same nice design for the plugin upload screen as the theme upload screen.
* Better compatibility for the old install_themes_tabs filter added in [29002]. see #28578.
* Ensure using the install_plugins_tabs filter to remove the upload tab removes the new button.
* Use 'Add Plugins' instead of 'Install Plugins' to match 'Add Themes'.
fixes#29236.
git-svn-id: https://develop.svn.wordpress.org/trunk@29634 602fd350-edb4-49c9-b593-d223f7449a82
* The WPLANG constant is no longer needed. Remove define('WPLANG', ''); from wp-config-sample.php. Populate WPLANG option based on the WPLANG constant. When get_option('WPLANG') is an empty string it will override WPLANG.
* Introduce translations_api() which is available to communicate with the translation API. Move translation install related functions to a new file.
* Replace mu_dropdown_languages() with wp_dropdown_languages(). wp_dropdown_languages() is now populated by the translation API.
* Remove wp_install_load_language() and allow load_default_textdomain() to switch a core translation.
fixes#13069, #15677, #19760, #28730, #29281.
git-svn-id: https://develop.svn.wordpress.org/trunk@29630 602fd350-edb4-49c9-b593-d223f7449a82
Includes back compat for `views_upload` links. These look a little awkward, but do not appear to be commonly used. Also prevents the view mode links from being dropped on smaller screens so a user doesn't get "stuck" in the list view.
This is different from other list tables, but aligns well with other uploaded content management screens (themes, plugins).
props pento, helen.
fixes#28946.
git-svn-id: https://develop.svn.wordpress.org/trunk@29625 602fd350-edb4-49c9-b593-d223f7449a82
* Prevent horizontal scrollbars in Chrome.
* URL fields should be always LTR.
* Force the plugin details to be LTR for all screens, see #19778.
fixes#29352.
git-svn-id: https://develop.svn.wordpress.org/trunk@29623 602fd350-edb4-49c9-b593-d223f7449a82
* Use a `MutationObserver` to listen to the `body` class of the parent editor frame.
* In `wpview_media_sandbox_styles()`, only return the MEjs stylesheets.
* In `wp_ajax_parse_media_shortcode()` and `wp_ajax_parse_embed()`, return an object instead of an HTML blob to allow passing `body` and `head` separately
Props avryl, azaozz.
Fixes#29048.
git-svn-id: https://develop.svn.wordpress.org/trunk@29615 602fd350-edb4-49c9-b593-d223f7449a82
* Add a setting to `_wpMediaViewsL10n.settings`: `mediaTrash`
* In the attachment edit modal, properly toggle between Trash/Untrash
* In `media.view.Attachment`, add a method for `untrashAttachment`
* When creating the grid toolbar, switch the setting order of subviews so that `media.view.DeleteSelectedButton` can listen to the instance of `media.view.AttachmentFilters.All` to update the text in its UI.
* Add a new filter to `media.view.AttachmentFilters.All`, `trash`, when `settings.mediaTrash` is true
* Allow the cached queries in `Query.get()` to be flushed when race conditions exist and collections need to be refreshed. This is currently only being used when `MEDIA_TRASH` is set, to refresh the filtered/mirrored collections related to `all`, `trash`, and any already queried filter.
* Cleanup the bootstrapping of `media.view.MediaFrame.Manage`
* Allow `wp_ajax_query_attachments()` to return items from the trash when `MEDIA_TRASH` is `true`
* Allow `wp_ajax_save_attachment()` to set `post_status` when `MEDIA_TRASH` is `true`. It allows `wp_delete_post()` to be called, which will trash the attachment instead of deleting when the flag is set.
Props koop for the knowledge sharing and thought partnership.
See #29145.
git-svn-id: https://develop.svn.wordpress.org/trunk@29490 602fd350-edb4-49c9-b593-d223f7449a82
* Scroll all content, rather than the dual-pane scrolling awkwardness.
* Better align the header image and title overlay with the display on WordPress.org, at least at full-width.
* Move the close button outside of the modal itself, rather than overlay on top of colors we can't predict.
props stephdau, tellyworth, helen. fixes#27440.
git-svn-id: https://develop.svn.wordpress.org/trunk@29474 602fd350-edb4-49c9-b593-d223f7449a82
This keeps it weird, but makes sure that `$check_urls` gets passed to the callback.
Props michalzuber, ocean90.
Fixes#28872.
git-svn-id: https://develop.svn.wordpress.org/trunk@29442 602fd350-edb4-49c9-b593-d223f7449a82
* Use a translated 'Continue' string.
* Go back to using a select element.
* Only show a spinner when we're installing a language.
see #28577.
git-svn-id: https://develop.svn.wordpress.org/trunk@29372 602fd350-edb4-49c9-b593-d223f7449a82