jenkins-bot has submitted this change and it was merged.
Change subject: Add links to toggle checkbox selections in Special:Log
......................................................................
Add links to toggle checkbox selections in Special:Log
This implements a new JavaScript module, mediawiki.checkboxtoggle.
The module is suitable to be reused in any other list of checkboxes.
Bug: T92230
Change-Id: I92141a7079fc7fcd7152ef418d82f4f7969b163b
---
M includes/specials/SpecialLog.php
M languages/i18n/en.json
M languages/i18n/qqq.json
M resources/Resources.php
A resources/src/mediawiki/mediawiki.checkboxtoggle.css
A resources/src/mediawiki/mediawiki.checkboxtoggle.js
6 files changed, 83 insertions(+), 0 deletions(-)
Approvals:
Legoktm: Looks good to me, approved
jenkins-bot: Verified
diff --git a/includes/specials/SpecialLog.php b/includes/specials/SpecialLog.php
index e44ce5f..28ff1c7 100644
--- a/includes/specials/SpecialLog.php
+++ b/includes/specials/SpecialLog.php
@@ -258,6 +258,33 @@
$this->msg( 'log-edit-tags' )->text()
) . "\n";
}
+
+ // Select: All, None, Invert
+ $links = array();
+ $links[] = Html::element(
+ 'a', array( 'href' => '#', 'id' => 'checkbox-all' ),
+ $this->msg( 'checkbox-all' )->text()
+ );
+ $links[] = Html::element(
+ 'a', array( 'href' => '#', 'id' => 'checkbox-none' ),
+ $this->msg( 'checkbox-none' )->text()
+ );
+ $links[] = Html::element(
+ 'a', array( 'href' => '#', 'id' => 'checkbox-invert' ),
+ $this->msg( 'checkbox-invert' )->text()
+ );
+
+ $buttons .= Html::rawElement( 'p',
+ array(
+ 'class' => "mw-checkbox-toggle-controls"
+ ),
+ $this->msg( 'checkbox-select' )
+ ->rawParams( $this->getLanguage()->commaList(
$links ) )->escaped()
+ );
+
+ $this->getOutput()->addModules( 'mediawiki.checkboxtoggle' );
+ $this->getOutput()->addModuleStyles(
'mediawiki.checkboxtoggle.styles' );
+
$s .= $buttons . $formcontents . $buttons;
$s .= Html::closeElement( 'form' );
diff --git a/languages/i18n/en.json b/languages/i18n/en.json
index f1c354a..545fc34 100644
--- a/languages/i18n/en.json
+++ b/languages/i18n/en.json
@@ -1883,6 +1883,10 @@
"log-title-wildcard": "Search titles starting with this text",
"showhideselectedlogentries": "Change visibility of selected log
entries",
"log-edit-tags": "Edit tags of selected log entries",
+ "checkbox-select": "Select: $1",
+ "checkbox-all": "All",
+ "checkbox-none": "None",
+ "checkbox-invert": "Invert",
"allpages": "All pages",
"allpages-summary": "",
"nextpage": "Next page ($1)",
diff --git a/languages/i18n/qqq.json b/languages/i18n/qqq.json
index 06f4fe6..406efb3 100644
--- a/languages/i18n/qqq.json
+++ b/languages/i18n/qqq.json
@@ -2058,6 +2058,10 @@
"log-title-wildcard": "* Appears in: [[Special:Log]]\n* Description: A
check box to enable prefix search option",
"showhideselectedlogentries": "Text of the button which brings up the
[[mw:RevisionDelete|RevisionDelete]] menu on [[Special:Log]].",
"log-edit-tags": "Text of button used to access change tagging
interface. For more information on tags see [[mw:Manual:Tags]].",
+ "checkbox-select": "Parameters:\n* $1 - three links:
{{msg-mw|checkbox-all}}, {{msg-mw|checkbox-none}}, and
{{msg-mw|checkbox-invert}} which respectively selects all pages, de-selects
all, and inverts the current selection state\npages\n{{Identical|Select}}",
+ "checkbox-all": "Text of button used to mark all revisions or log
entries as selected in a list.",
+ "checkbox-none": "Text of button used to mark all revisions or log
entries as unselected in a list.",
+ "checkbox-invert": "Text of button used to invert the
currently-selected-state of all revisions or log entries in a list.",
"allpages": "{{doc-special|AllPages}}\nFirst part of the navigation bar
for the special page [[Special:AllPages]] and [[Special:PrefixIndex]].\nThe
other parts are {{msg-mw|Prevpage}} and {{msg-mw|Nextpage}}.\n{{Identical|All
pages}}",
"allpages-summary": "{{doc-specialpagesummary|allpages}}",
"nextpage": "Third part of the navigation bar for the special page
[[Special:AllPages]] and [[Special:PrefixIndex]]. $1 is a page title. The other
parts are {{msg-mw|Allpages}} and {{msg-mw|Prevpage}}.\n\n{{Identical|Next
page}}",
diff --git a/resources/Resources.php b/resources/Resources.php
index 52a9564..cd9810c 100644
--- a/resources/Resources.php
+++ b/resources/Resources.php
@@ -1342,6 +1342,14 @@
'position' => 'top', // For $wgPreloadJavaScriptMwUtil
'targets' => array( 'desktop', 'mobile' ),
),
+ 'mediawiki.checkboxtoggle' => array(
+ 'scripts' =>
'resources/src/mediawiki/mediawiki.checkboxtoggle.js',
+ 'position' => 'top',
+ ),
+ 'mediawiki.checkboxtoggle.styles' => array(
+ 'styles' =>
'resources/src/mediawiki/mediawiki.checkboxtoggle.css',
+ 'position' => 'top',
+ ),
'mediawiki.cookie' => array(
'scripts' => 'resources/src/mediawiki/mediawiki.cookie.js',
'dependencies' => 'jquery.cookie',
diff --git a/resources/src/mediawiki/mediawiki.checkboxtoggle.css
b/resources/src/mediawiki/mediawiki.checkboxtoggle.css
new file mode 100644
index 0000000..3da0d43
--- /dev/null
+++ b/resources/src/mediawiki/mediawiki.checkboxtoggle.css
@@ -0,0 +1,3 @@
+.client-nojs .mw-checkbox-toggle-controls {
+ display: none;
+}
diff --git a/resources/src/mediawiki/mediawiki.checkboxtoggle.js
b/resources/src/mediawiki/mediawiki.checkboxtoggle.js
new file mode 100644
index 0000000..4be4a8d
--- /dev/null
+++ b/resources/src/mediawiki/mediawiki.checkboxtoggle.js
@@ -0,0 +1,37 @@
+/*!
+ * Allows users to perform all / none / invert operations on a list of
+ * checkboxes on the page.
+ *
+ * @licence GNU GPL v2+
+ * @author Luke Faraone <luke at faraone dot cc>
+ *
+ * Based on ext.nuke.js from https://www.mediawiki.org/wiki/Extension:Nuke by
+ * Jeroen De Dauw <jeroendedauw at gmail dot com>
+ */
+
+( function ( mw, $ ) {
+ 'use strict';
+
+ var $checkboxes = $( 'li input[type=checkbox]' );
+
+ function selectAll( check ) {
+ $checkboxes.prop( 'checked', check );
+ }
+
+ $( '#checkbox-all' ).click( function ( e ) {
+ selectAll( true );
+ e.preventDefault();
+ } );
+ $( '#checkbox-none' ).click( function ( e ) {
+ selectAll( false );
+ e.preventDefault();
+ } );
+ $( '#checkbox-invert' ).click( function ( e ) {
+ $checkboxes.each( function () {
+ $( this ).prop( 'checked', !$( this ).is( ':checked' )
);
+ } );
+ e.preventDefault();
+ } );
+
+}( mediaWiki, jQuery ) );
+
--
To view, visit https://gerrit.wikimedia.org/r/264127
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I92141a7079fc7fcd7152ef418d82f4f7969b163b
Gerrit-PatchSet: 8
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: LFaraone <[email protected]>
Gerrit-Reviewer: Alex Monk <[email protected]>
Gerrit-Reviewer: Catrope <[email protected]>
Gerrit-Reviewer: Edokter <[email protected]>
Gerrit-Reviewer: Florianschmidtwelzow <[email protected]>
Gerrit-Reviewer: Jack Phoenix <[email protected]>
Gerrit-Reviewer: Jforrester <[email protected]>
Gerrit-Reviewer: Krinkle <[email protected]>
Gerrit-Reviewer: LFaraone <[email protected]>
Gerrit-Reviewer: Legoktm <[email protected]>
Gerrit-Reviewer: Matthias Mullie <[email protected]>
Gerrit-Reviewer: Mooeypoo <[email protected]>
Gerrit-Reviewer: Siebrand <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits