[MediaWiki-commits] [Gerrit] Split NewsletterManageTable class into own file - change (mediawiki...Newsletter)
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)
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] +