[MediaWiki-commits] [Gerrit] Split NewsletterManageTable class into own file - change (mediawiki...Newsletter)

2015-08-27 Thread jenkins-bot (Code Review)
jenkins-bot has submitted this change and it was merged.

Change subject: Split NewsletterManageTable class into own file
..


Split NewsletterManageTable class into own file

Change-Id: Iece70b5e25f59067b5f6a102e83a7f285e77cf4d
---
M extension.json
A includes/NewsletterManageTable.php
M includes/SpecialNewsletterManage.php
3 files changed, 132 insertions(+), 131 deletions(-)

Approvals:
  01tonythomas: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/extension.json b/extension.json
index ccc4698..96fb84f 100644
--- a/extension.json
+++ b/extension.json
@@ -35,7 +35,7 @@
NewsletterTablePager: includes/SpecialNewsletters.php,
ApiNewsletter: includes/ApiNewsletter.php,
ApiNewsletterManage: includes/ApiNewsletterManage.php,
-   NewsletterManageTable: includes/SpecialNewsletterManage.php
+   NewsletterManageTable: includes/NewsletterManageTable.php
},
ResourceModules: {
ext.newsletter: {
diff --git a/includes/NewsletterManageTable.php 
b/includes/NewsletterManageTable.php
new file mode 100644
index 000..05b1607
--- /dev/null
+++ b/includes/NewsletterManageTable.php
@@ -0,0 +1,131 @@
+?php
+
+class NewsletterManageTable extends TablePager {
+
+   public static $newsletterOwners = array();
+
+   public function getFieldNames() {
+   $header = null;
+   if ( is_null( $header ) ) {
+   $header = array();
+   foreach ( SpecialNewsletterManage::$fields as $key = 
$value ) {
+   $header[$key] = $this-msg( 
newsletter-manage-header-$value )-text();
+   }
+   }
+
+   return $header;
+
+   }
+
+   public function getQueryInfo() {
+   $info = array(
+   'tables' = array( 'nl_publishers' ),
+   'fields' = array(
+   'newsletter_id',
+   'publisher_id',
+   ),
+   );
+
+   // get user ids of all newsletter owners
+   $dbr = wfGetDB( DB_SLAVE );
+   $res = $dbr-select(
+   'nl_newsletters',
+   array( 'nl_owner_id', 'nl_id' ),
+   array(),
+   __METHOD__,
+   array( 'DISTINCT' )
+   );
+   foreach ( $res as $row ) {
+   self::$newsletterOwners[$row-nl_id] = 
$row-nl_owner_id;
+   }
+
+   return $info;
+   }
+
+   public function formatValue( $field, $value ) {
+   static $previous;
+
+   switch ( $field ) {
+   case 'newsletter_id':
+   if ( $previous === $value ) {
+
+   return null;
+   } else {
+   $dbr = wfGetDB( DB_SLAVE );
+   $res = $dbr-select(
+   'nl_newsletters',
+   array( 'nl_name' ),
+   array( 'nl_id' = $value ),
+   __METHOD__,
+   array()
+   );
+   $newsletterName = null;
+   foreach ( $res as $row ) {
+   $newsletterName = $row-nl_name;
+   }
+   $previous = $value;
+
+   return $newsletterName;
+   }
+   case 'publisher_id' :
+   $user = User::newFromId( $value );
+
+   return $user-getName();
+   case 'permissions' :
+   $radioOwner = HTML::element(
+   'input',
+   array(
+   'type' = 'checkbox',
+   'disabled' = 'true',
+   'id' = 
'newslettermanage',
+   'checked' = 
self::$newsletterOwners[$this-mCurrentRow-newsletter_id]
+   === 
$this-mCurrentRow-publisher_id ? true : false,
+   )
+   ) . $this-msg( 
'newsletter-owner-radiobutton-label' );
+
+   

[MediaWiki-commits] [Gerrit] Split NewsletterManageTable class into own file - change (mediawiki...Newsletter)

2015-08-26 Thread Addshore (Code Review)
Addshore has uploaded a new change for review.

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

Change subject: Split NewsletterManageTable class into own file
..

Split NewsletterManageTable class into own file

Change-Id: Iece70b5e25f59067b5f6a102e83a7f285e77cf4d
---
M Newsletter.php
A includes/NewsletterManageTable.php
M includes/SpecialNewsletterManage.php
3 files changed, 132 insertions(+), 131 deletions(-)


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

diff --git a/Newsletter.php b/Newsletter.php
index eb45d47..b45db39 100755
--- a/Newsletter.php
+++ b/Newsletter.php
@@ -35,7 +35,7 @@
 $wgAutoloadClasses['NewsletterTablePager'] = __DIR__ . 
'/includes/SpecialNewsletters.php';
 $wgAutoloadClasses['ApiNewsletter'] = __DIR__ . '/includes/ApiNewsletter.php';
 $wgAutoloadClasses['ApiNewsletterManage'] = __DIR__ . 
'/includes/ApiNewsletterManage.php';
-$wgAutoloadClasses['NewsletterManageTable'] = __DIR__ . 
'/includes/SpecialNewsletterManage.php';
+$wgAutoloadClasses['NewsletterManageTable'] = __DIR__ . 
'/includes/NewsletterManageTable.php';
 
 $wgSpecialPages['NewsletterCreate'] = 'SpecialNewsletterCreate';
 $wgSpecialPages['NewsletterManage'] = 'SpecialNewsletterManage';
diff --git a/includes/NewsletterManageTable.php 
b/includes/NewsletterManageTable.php
new file mode 100644
index 000..05b1607
--- /dev/null
+++ b/includes/NewsletterManageTable.php
@@ -0,0 +1,131 @@
+?php
+
+class NewsletterManageTable extends TablePager {
+
+   public static $newsletterOwners = array();
+
+   public function getFieldNames() {
+   $header = null;
+   if ( is_null( $header ) ) {
+   $header = array();
+   foreach ( SpecialNewsletterManage::$fields as $key = 
$value ) {
+   $header[$key] = $this-msg( 
newsletter-manage-header-$value )-text();
+   }
+   }
+
+   return $header;
+
+   }
+
+   public function getQueryInfo() {
+   $info = array(
+   'tables' = array( 'nl_publishers' ),
+   'fields' = array(
+   'newsletter_id',
+   'publisher_id',
+   ),
+   );
+
+   // get user ids of all newsletter owners
+   $dbr = wfGetDB( DB_SLAVE );
+   $res = $dbr-select(
+   'nl_newsletters',
+   array( 'nl_owner_id', 'nl_id' ),
+   array(),
+   __METHOD__,
+   array( 'DISTINCT' )
+   );
+   foreach ( $res as $row ) {
+   self::$newsletterOwners[$row-nl_id] = 
$row-nl_owner_id;
+   }
+
+   return $info;
+   }
+
+   public function formatValue( $field, $value ) {
+   static $previous;
+
+   switch ( $field ) {
+   case 'newsletter_id':
+   if ( $previous === $value ) {
+
+   return null;
+   } else {
+   $dbr = wfGetDB( DB_SLAVE );
+   $res = $dbr-select(
+   'nl_newsletters',
+   array( 'nl_name' ),
+   array( 'nl_id' = $value ),
+   __METHOD__,
+   array()
+   );
+   $newsletterName = null;
+   foreach ( $res as $row ) {
+   $newsletterName = $row-nl_name;
+   }
+   $previous = $value;
+
+   return $newsletterName;
+   }
+   case 'publisher_id' :
+   $user = User::newFromId( $value );
+
+   return $user-getName();
+   case 'permissions' :
+   $radioOwner = HTML::element(
+   'input',
+   array(
+   'type' = 'checkbox',
+   'disabled' = 'true',
+   'id' = 
'newslettermanage',
+   'checked' = 
self::$newsletterOwners[$this-mCurrentRow-newsletter_id]
+