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

Reply via email to