Tinaj1234 has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/230383

Change subject: Improve UI for handling Newsletter permissions
......................................................................

Improve UI for handling Newsletter permissions

Included a table in Special: NewsletterManage to improve the UI.

Bug: T108456
Change-Id: I2e5ef9046c59692c933c31018bb4b408fda39825
---
M Newsletter.php
M i18n/en.json
M includes/SpecialNewsletterManage.php
3 files changed, 70 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Newsletter 
refs/changes/83/230383/1

diff --git a/Newsletter.php b/Newsletter.php
index 56b9a6f..669bf46 100755
--- a/Newsletter.php
+++ b/Newsletter.php
@@ -32,6 +32,7 @@
 $wgAutoloadClasses['EchoNewsletterFormatter'] = __DIR__ . 
'/includes/EchoNewsletterFormatter.php';
 $wgAutoloadClasses['NewsletterTablePager'] = __DIR__ . 
'/includes/SpecialNewsletters.php';
 $wgAutoloadClasses['ApiNewsletter'] = __DIR__ . '/includes/ApiNewsletter.php';
+$wgAutoloadClasses['NewsletterManageTable'] = __DIR__ . 
'/includes/SpecialNewsletterManage.php';
 
 $wgSpecialPages['NewsletterCreate'] = 'SpecialNewsletterCreate';
 $wgSpecialPages['NewsletterManage'] = 'SpecialNewsletterManage';
diff --git a/i18n/en.json b/i18n/en.json
index d8914df..d951633 100755
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -32,5 +32,8 @@
        "newsletter-header-action": "Subscribed ?",
        "newsletter-header-subscriber_count": "Subscriber count",
        "new-publisher-confirmation": "A new publisher has just been added to 
your newsletter !",
-       "remove-publisher-confirmation": "A publisher was removed from your 
newsletter."
+       "remove-publisher-confirmation": "A publisher was removed from your 
newsletter.",
+       "newslettermanage-header-name": "Newsletter",
+       "newslettermanage-header-publisher": "Contributors",
+       "newslettermanage-header-permissions": "Permissions"
 }
diff --git a/includes/SpecialNewsletterManage.php 
b/includes/SpecialNewsletterManage.php
index 5e50f9b..1d3c1b7 100644
--- a/includes/SpecialNewsletterManage.php
+++ b/includes/SpecialNewsletterManage.php
@@ -4,6 +4,11 @@
  *
  */
 class SpecialNewsletterManage extends SpecialPage {
+       static $fields = array(
+               'nl_name' => 'name',
+               'publisher_id' => 'publisher',
+               //'permissions' => 'permissions',
+       );
        function __construct() {
                parent::__construct( 'NewsletterManage' );
        }
@@ -18,6 +23,14 @@
                $announceIssueForm = new HTMLForm( $announceIssueArray, 
$this->getContext(), 'announceissueform' );
                $announceIssueForm->setSubmitCallback( array( 
'SpecialNewsletterManage', 'onSubmitIssue' ) );
 
+               $table = new NewsletterManageTable();
+               if ( $table->getNumRows() > 0 ) {
+                       $output->addHTML(
+                               $table->getNavigationBar() .
+                               $table->getBody() .
+                               $table->getNavigationBar()
+                       );
+               }
                # Show HTML forms
                $announceIssueForm->show();
                $output->returnToMain();
@@ -252,4 +265,56 @@
                return "Required fields are empty.";
 
        }
+}
+
+class NewsletterManageTable extends TablePager {
+       function getFieldNames() {
+               $header = null;
+               if ( is_null( $header ) ) {
+                       $header = array();
+                       foreach ( SpecialNewsletterManage::$fields as $key => 
$value ) {
+                               $header[$key]= $this->msg( 
"newslettermanage-header-$value" )->text();
+                       }
+               }
+
+               return $header;
+
+       }
+
+       function getQueryInfo() {
+               $info = array(
+                       'tables' => array( 'nl_newsletters', 'nl_publishers' ),
+                       'fields' => array(
+                               'nl_name',
+                               'publisher_id'
+                       )
+               );
+
+               return $info;
+       }
+
+       function formatValue( $field, $value ) {
+               static $previous;
+               switch( $field ) {
+                       case 'nl_name': if( $previous === $value ){
+                               return null;
+                       } else {
+                               $previous = $value;
+
+                               return $value;
+                       }
+                       case 'publisher_id' :
+                               $user = User::newFromId( $value );
+                               return $user->getName();
+               }
+       }
+
+       function getDefaultSort() {
+               return 'nl_name';
+       }
+
+       function isFieldSortable( $field ) {
+               return false;
+       }
+
 }
\ No newline at end of file

-- 
To view, visit https://gerrit.wikimedia.org/r/230383
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I2e5ef9046c59692c933c31018bb4b408fda39825
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Newsletter
Gerrit-Branch: master
Gerrit-Owner: Tinaj1234 <tinajohnson.1...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to