Wctaiwan has uploaded a new change for review.
https://gerrit.wikimedia.org/r/146705
Change subject: [WIP] Add ability to add pages to spamlist view
......................................................................
[WIP] Add ability to add pages to spamlist view
Also change some Html::rawElement to Html::element
Change-Id: I9c1eb5370f0b7e44bb6b1afebed0922a8641a663
---
M i18n/en.json
M includes/content/MassMessageListContent.php
M modules/ext.MassMessage.content.css
M modules/ext.MassMessage.content.js
M modules/ext.MassMessage.content.noedit.css
M modules/ext.MassMessage.content.nojs.css
6 files changed, 70 insertions(+), 18 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MassMessage
refs/changes/05/146705/1
diff --git a/i18n/en.json b/i18n/en.json
index e6d8a08..3ce5964 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -49,7 +49,11 @@
"massmessage-content-localpages": "Pages on this wiki:",
"massmessage-content-remove": "remove",
"massmessage-content-empty": "There are no pages in this list.",
- "massmessage-content-removeerror": "Removing the page failed with the
following error: $1",
+ "massmessage-content-addheading": "Add pages",
+ "massmessage-content-addtitle": "Title:",
+ "massmessage-content-addsite": "Site:",
+ "massmessage-content-addsubmit": "Add page",
+ "massmessage-content-removeerror": "Removing the page failed with
errror code $1.",
"massmessage-ch-tojsonerror": "The list could not be encoded for
storage.",
"massmessage-ch-apierror": "Editing the list through the API failed
with errror code $1.",
"createmassmessagelist-legend": "Create mass message delivery list",
diff --git a/includes/content/MassMessageListContent.php
b/includes/content/MassMessageListContent.php
index 9f4f409..7fd893b 100644
--- a/includes/content/MassMessageListContent.php
+++ b/includes/content/MassMessageListContent.php
@@ -105,6 +105,13 @@
// Parse the description text.
$output = $wgParser->parse( $this->getDescription(), $title,
$options, true, true, $revId );
+ // Generate output HTML, if needed.
+ if ( $generateHtml ) {
+ $output->setText( $output->getText() .
$this->getTargetsHtml() . self::getAddForm() );
+ } else {
+ $output->setText( '' );
+ }
+
// Update the links table.
$targets = $this->getTargets();
foreach ( $targets as $target ) {
@@ -114,13 +121,6 @@
$output->addExternalLink( '//' .
$target['site'] . $wgScript . '?title='
. Title::newFromText( $target['title']
)->getPrefixedURL() );
}
- }
-
- // Add the list content to the output, if needed.
- if ( $generateHtml ) {
- $output->setText( $output->getText() .
$this->getTargetsHtml() );
- } else {
- $output->setText( '' );
}
}
@@ -132,15 +132,14 @@
protected function getTargetsHtml() {
global $wgScript;
- $html = Html::rawElement( 'h2', array(),
- wfMessage( 'massmessage-content-pages' )->parse() );
+ $html = Html::element( 'h2', array(), wfMessage(
'massmessage-content-pages' )->text() );
$sites = $this->getTargetsBySite();
// If the list is empty
if ( count( $sites ) === 0 ) {
- $html .= Html::rawElement( 'p', array(),
- wfMessage( 'massmessage-content-empty'
)->parse() );
+ $html .= Html::element( 'p', array(),
+ wfMessage( 'massmessage-content-empty'
)->text() );
return $html;
}
@@ -151,11 +150,11 @@
foreach ( $sites as $site => $targets ) {
if ( $printSites ) {
if ( $site === 'local' ) {
- $html .= Html::rawElement( 'p', array(),
- wfMessage(
'massmessage-content-localpages' )->parse() );
+ $html .= Html::element( 'p', array(),
+ wfMessage(
'massmessage-content-localpages' )->text() );
} else {
- $html .= Html::rawElement( 'p', array(),
- wfMessage(
'massmessage-content-pagesonsite', $site )->parse() );
+ $html .= Html::element( 'p', array(),
+ wfMessage(
'massmessage-content-pagesonsite', $site )->text() );
}
}
@@ -174,13 +173,13 @@
}
// Generate the HTML for the remove link.
- $removeLink = Html::rawElement( 'a',
+ $removeLink = Html::element( 'a',
array(
'data-title' =>
$title->getPrefixedText(),
'data-site' => $site,
'href' => '#',
),
- wfMessage( 'massmessage-content-remove'
)->parse()
+ wfMessage( 'massmessage-content-remove'
)->text()
);
$html .= Html::openElement( 'li' );
@@ -213,4 +212,34 @@
}
return $results;
}
+
+ /**
+ * Helper function for fillParserOutput; return HTML for form for
adding pages.
+ * @return string
+ */
+ protected static function getAddForm() {
+ global $wgAllowGlobalMessaging;
+
+ $html = Html::openElement( 'div', array( 'id' =>
'mw-massmessage-addpages' ) );
+ $html .= Html::element( 'h2', array(),
+ wfMessage( 'massmessage-content-addheading' )->text() );
+ $html .= Html::openElement( 'form' );
+
+ $html .= Html::element( 'label', array( 'for' =>
'mw-massmessage-addtitle' ),
+ wfMessage( 'massmessage-content-addtitle' )->text() );
+ $html .= Html::input( 'title', '', 'text', array( 'id' =>
'mw-massmessage-addtitle' ) );
+
+ if ( $wgAllowGlobalMessaging ) {
+ $html .= Html::element( 'label', array( 'for' =>
'mw-massmessage-addsite' ),
+ wfMessage( 'massmessage-content-addsite'
)->text() );
+ $html .= Html::input( 'site', '', 'text', array( 'id'
=> 'mw-massmessage-addsite' ) );
+ }
+
+ $html .= Html::input( 'submit', wfMessage(
'massmessage-content-addsubmit' )->escaped(),
+ 'button', array( 'id' => 'mw-massmessage-addsubmit' ) );
+
+ $html .= Html::closeElement( 'form' );
+ $html .= Html::closeElement( 'div' );
+ return $html;
+ }
}
diff --git a/modules/ext.MassMessage.content.css
b/modules/ext.MassMessage.content.css
index 4f5c013..fc2bc3f 100644
--- a/modules/ext.MassMessage.content.css
+++ b/modules/ext.MassMessage.content.css
@@ -7,3 +7,11 @@
.mw-massmessage-removelink {
margin-left: 20px;
}
+
+#mw-massmessage-addpages label {
+ margin-right: 2px;
+}
+
+#mw-massmessage-addtitle, #mw-massmessage-addsite {
+ margin-right: 10px;
+}
\ No newline at end of file
diff --git a/modules/ext.MassMessage.content.js
b/modules/ext.MassMessage.content.js
index 903d430..15cc981 100644
--- a/modules/ext.MassMessage.content.js
+++ b/modules/ext.MassMessage.content.js
@@ -7,6 +7,9 @@
var param, $link = $( this );
e.preventDefault();
+
+ // TODO: Use jquery.confirmable once it's available.
+
if ( $link.attr( 'data-site' ) === 'local' ) {
param = $link.attr( 'data-title' );
} else {
diff --git a/modules/ext.MassMessage.content.noedit.css
b/modules/ext.MassMessage.content.noedit.css
index 8a138bc..dc85b70 100644
--- a/modules/ext.MassMessage.content.noedit.css
+++ b/modules/ext.MassMessage.content.noedit.css
@@ -1,3 +1,7 @@
.mw-massmessage-removelink {
display: none;
}
+
+#mw-massmessage-addpages {
+ display: none;
+}
diff --git a/modules/ext.MassMessage.content.nojs.css
b/modules/ext.MassMessage.content.nojs.css
index 992e309..9c98d42 100644
--- a/modules/ext.MassMessage.content.nojs.css
+++ b/modules/ext.MassMessage.content.nojs.css
@@ -1,3 +1,7 @@
.client-nojs .mw-massmessage-removelink {
display: none;
}
+
+.client-nojs #mw-massmessage-addpages {
+ display: none;
+}
--
To view, visit https://gerrit.wikimedia.org/r/146705
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I9c1eb5370f0b7e44bb6b1afebed0922a8641a663
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/MassMessage
Gerrit-Branch: contenthandler
Gerrit-Owner: Wctaiwan <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits