r95538 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r95537‎ | r95538 | r95539 >
Date:22:20, 25 August 2011
Author:awjrichards
Status:ok
Tags:
Comment:
Revert r95536, botched merge
Modified paths:
  • /branches/wmf/1.17wmf1/extensions/CentralNotice/CentralNoticeLogPager.php (modified) (history)

Diff [purge]

Index: branches/wmf/1.17wmf1/extensions/CentralNotice/CentralNoticeLogPager.php
@@ -1,73 +1,127 @@
22 <?php
33
4 -class CentralNoticeBannerLogPager extends CentralNoticeLogPager {
 4+class CentralNoticeLogPager extends ReverseChronologicalPager {
55 var $viewPage, $special;
66
77 function __construct( $special ) {
 8+ global $wgRequest;
89 $this->special = $special;
9 - parent::__construct($special);
 10+ parent::__construct();
1011
11 - $this->viewPage = SpecialPage::getTitleFor( 'NoticeTemplate', 'view' );
 12+ // Override paging defaults
 13+ list( $this->mLimit, /* $offset */ ) = $this->mRequest->getLimitOffset( 20, '' );
 14+ $this->mLimitsShown = array( 20, 50, 100 );
 15+
 16+ $this->viewPage = SpecialPage::getTitleFor( 'CentralNotice' );
1217 }
1318
1419 /**
1520 * Sort the log list by timestamp
1621 */
1722 function getIndexField() {
18 - return 'tmplog_timestamp';
 23+ return 'notlog_timestamp';
1924 }
2025
2126 /**
2227 * Pull log entries from the database
2328 */
2429 function getQueryInfo() {
25 - return array(
26 - 'tables' => array( 'cn_template_log' ),
 30+ global $wgRequest;
 31+
 32+ $filterStartDate = 0;
 33+ $filterEndDate = 0;
 34+ $startYear = $wgRequest->getVal( 'start_year' );
 35+ if ( $startYear === 'other' ) $startYear = null;
 36+ $startMonth = $wgRequest->getVal( 'start_month' );
 37+ if ( $startMonth === 'other' ) $startMonth = null;
 38+ $startDay = $wgRequest->getVal( 'start_day' );
 39+ if ( $startDay === 'other' ) $startDay = null;
 40+ $endYear = $wgRequest->getVal( 'end_year' );
 41+ if ( $endYear === 'other' ) $endYear = null;
 42+ $endMonth = $wgRequest->getVal( 'end_month' );
 43+ if ( $endMonth === 'other' ) $endMonth = null;
 44+ $endDay = $wgRequest->getVal( 'end_day' );
 45+ if ( $endDay === 'other' ) $endDay = null;
 46+
 47+ if ( $startYear && $startMonth && $startDay ) {
 48+ $filterStartDate = $startYear . $startMonth . $startDay;
 49+ }
 50+ if ( $endYear && $endMonth && $endDay ) {
 51+ $filterEndDate = $endYear . $endMonth . $endDay;
 52+ }
 53+ $filterCampaign = $wgRequest->getVal( 'campaign' );
 54+ $filterUser = $wgRequest->getVal( 'user' );
 55+ $reset = $wgRequest->getVal( 'centralnoticelogreset' );
 56+
 57+ $info = array(
 58+ 'tables' => array( 'cn_notice_log' ),
2759 'fields' => '*',
 60+ 'conds' => array()
2861 );
 62+
 63+ if ( !$reset ) {
 64+ if ( $filterStartDate > 0 ) {
 65+ $filterStartDate = intval( $filterStartDate.'000000' );
 66+ $info['conds'][] = "notlog_timestamp >= $filterStartDate";
 67+ }
 68+ if ( $filterEndDate > 0 ) {
 69+ $filterEndDate = intval( $filterEndDate.'000000' );
 70+ $info['conds'][] = "notlog_timestamp < $filterEndDate";
 71+ }
 72+ if ( $filterCampaign ) {
 73+ $info['conds'][] = "notlog_not_name LIKE '$filterCampaign'";
 74+ }
 75+ if ( $filterUser ) {
 76+ $user = User::newFromName( $filterUser );
 77+ $userId = $user->getId();
 78+ $info['conds'][] = "notlog_user_id = $userId";
 79+ }
 80+ }
 81+
 82+ return $info;
2983 }
3084
31 - /**
 85+ /**
3286 * Generate the content of each table row (1 row = 1 log entry)
3387 */
3488 function formatRow( $row ) {
3589 global $wgLang, $wgExtensionAssetsPath;
3690
3791 // Create a user object so we can pull the name, user page, etc.
38 - $loggedUser = User::newFromId( $row->tmplog_user_id );
 92+ $loggedUser = User::newFromId( $row->notlog_user_id );
3993 // Create the user page link
4094 $userLink = $this->getSkin()->makeLinkObj( $loggedUser->getUserPage(),
4195 $loggedUser->getName() );
4296 $userTalkLink = $this->getSkin()->makeLinkObj( $loggedUser->getTalkPage(),
4397 wfMsg ( 'centralnotice-talk-link' ) );
4498
45 - // Create the banner link
46 - $bannerLink = $this->getSkin()->makeLinkObj( $this->viewPage,
47 - htmlspecialchars( $row->tmplog_template_name ),
48 - 'template=' . urlencode( $row->tmplog_template_name ) );
 99+ // Create the campaign link
 100+ $campaignLink = $this->getSkin()->makeLinkObj( $this->viewPage,
 101+ htmlspecialchars( $row->notlog_not_name ),
 102+ 'method=listNoticeDetail&notice=' . urlencode( $row->notlog_not_name ) );
49103
50104 // Begin log entry primary row
51105 $htmlOut = Xml::openElement( 'tr' );
52106
53107 $htmlOut .= Xml::openElement( 'td', array( 'valign' => 'top' ) );
54 - if ( $row->tmplog_action !== 'removed' ) {
55 - $htmlOut .= '<a href="javascript:toggleLogDisplay(\''.$row->tmplog_id.'\')">'.
56 - '<img src="'.$wgExtensionAssetsPath.'/CentralNotice/collapsed.png" id="cn-collapsed-'.$row->tmplog_id.'" style="display:block;vertical-align:baseline;"/>'.
57 - '<img src="'.$wgExtensionAssetsPath.'/CentralNotice/uncollapsed.png" id="cn-uncollapsed-'.$row->tmplog_id.'" style="display:none;vertical-align:baseline;"/>'.
 108+ if ( $row->notlog_action !== 'removed' ) {
 109+ $htmlOut .= '<a href="javascript:toggleLogDisplay(\''.$row->notlog_id.'\')">'.
 110+ '<img src="'.$wgExtensionAssetsPath.'/CentralNotice/collapsed.png" id="cn-collapsed-'.$row->notlog_id.'" style="display:block;"/>'.
 111+ '<img src="'.$wgExtensionAssetsPath.'/CentralNotice/uncollapsed.png" id="cn-uncollapsed-'.$row->notlog_id.'" style="display:none;"/>'.
58112 '</a>';
59113 }
60114 $htmlOut .= Xml::closeElement( 'td' );
61115 $htmlOut .= Xml::tags( 'td', array( 'valign' => 'top', 'class' => 'primary' ),
62 - $wgLang->date( $row->tmplog_timestamp ) . ' ' . $wgLang->time( $row->tmplog_timestamp )
 116+ $wgLang->date( $row->notlog_timestamp ) . ' ' . $wgLang->time( $row->notlog_timestamp )
63117 );
64118 $htmlOut .= Xml::tags( 'td', array( 'valign' => 'top', 'class' => 'primary' ),
65119 wfMsg ( 'centralnotice-user-links', $userLink, $userTalkLink )
66120 );
67121 $htmlOut .= Xml::tags( 'td', array( 'valign' => 'top', 'class' => 'primary' ),
68 - $row->tmplog_action
 122+ $row->notlog_action
69123 );
70124 $htmlOut .= Xml::tags( 'td', array( 'valign' => 'top', 'class' => 'primary' ),
71 - $bannerLink
 125+ $campaignLink
72126 );
73127 $htmlOut .= Xml::tags( 'td', array(),
74128 '&nbsp;'
@@ -76,17 +130,17 @@
77131 // End log entry primary row
78132 $htmlOut .= Xml::closeElement( 'tr' );
79133
80 - if ( $row->tmplog_action !== 'removed' ) {
 134+ if ( $row->notlog_action !== 'removed' ) {
81135 // Begin log entry secondary row
82 - $htmlOut .= Xml::openElement( 'tr', array( 'id' => 'cn-log-details-'.$row->tmplog_id, 'style' => 'display:none;' ) );
 136+ $htmlOut .= Xml::openElement( 'tr', array( 'id' => 'cn-log-details-'.$row->notlog_id, 'style' => 'display:none;' ) );
83137
84138 $htmlOut .= Xml::tags( 'td', array( 'valign' => 'top' ),
85139 '&nbsp;' // force a table cell in older browsers
86140 );
87141 $htmlOut .= Xml::openElement( 'td', array( 'valign' => 'top', 'colspan' => '5' ) );
88 - if ( $row->tmplog_action == 'created' ) {
 142+ if ( $row->notlog_action == 'created' ) {
89143 $htmlOut .= $this->showInitialSettings( $row );
90 - } else if ( $row->tmplog_action == 'modified' ) {
 144+ } else if ( $row->notlog_action == 'modified' ) {
91145 $htmlOut .= $this->showChanges( $row );
92146 }
93147 $htmlOut .= Xml::closeElement( 'td' );
@@ -98,62 +152,53 @@
99153 return $htmlOut;
100154 }
101155
102 - function getStartBody() {
103 - $htmlOut = '';
104 - $htmlOut .= Xml::openElement( 'table', array( 'id' => 'cn-campaign-logs', 'cellpadding' => 3 ) );
105 - $htmlOut .= Xml::openElement( 'tr' );
106 - $htmlOut .= Xml::element( 'th', array( 'style' => 'width: 20px;' ) );
107 - $htmlOut .= Xml::element( 'th', array( 'align' => 'left', 'style' => 'width: 130px;' ),
108 - wfMsg ( 'centralnotice-timestamp' )
109 - );
110 - $htmlOut .= Xml::element( 'th', array( 'align' => 'left', 'style' => 'width: 160px;' ),
111 - wfMsg ( 'centralnotice-user' )
112 - );
113 - $htmlOut .= Xml::element( 'th', array( 'align' => 'left', 'style' => 'width: 100px;' ),
114 - wfMsg ( 'centralnotice-action' )
115 - );
116 - $htmlOut .= Xml::element( 'th', array( 'align' => 'left', 'style' => 'width: 160px;' ),
117 - wfMsg ( 'centralnotice-banner' )
118 - );
119 - $htmlOut .= Xml::tags( 'td', array(),
120 - '&nbsp;'
121 - );
122 - $htmlOut .= Xml::closeElement( 'tr' );
123 - return $htmlOut;
124 - }
125 -
126 - /**
127 - * Close table
128 - */
129 - function getEndBody() {
130 - $htmlOut = '';
131 - $htmlOut .= Xml::closeElement( 'table' );
132 - return $htmlOut;
133 - }
134 -
135156 function showInitialSettings( $row ) {
136157 global $wgLang;
137158 $details = '';
138159 $details .= wfMsg (
139160 'centralnotice-log-label',
140 - wfMsg ( 'centralnotice-anon' ),
141 - ($row->tmplog_end_anon ? 'on' : 'off')
 161+ wfMsg ( 'centralnotice-start-date' ),
 162+ $wgLang->date( $row->notlog_end_start ).' '.$wgLang->time( $row->notlog_end_start )
142163 )."<br/>";
143164 $details .= wfMsg (
144165 'centralnotice-log-label',
145 - wfMsg ( 'centralnotice-account' ),
146 - ($row->tmplog_end_account ? 'on' : 'off')
 166+ wfMsg ( 'centralnotice-end-date' ),
 167+ $wgLang->date( $row->notlog_end_end ).' '.$wgLang->time( $row->notlog_end_end )
147168 )."<br/>";
148169 $details .= wfMsg (
149170 'centralnotice-log-label',
150 - wfMsg ( 'centralnotice-fundraising' ),
151 - ($row->tmplog_end_fundraising ? 'on' : 'off')
 171+ wfMsg ( 'centralnotice-projects' ),
 172+ $row->notlog_end_projects
152173 )."<br/>";
153 - if ( $row->tmplog_end_landingpages ) {
 174+ $language_count = count( explode ( ', ', $row->notlog_end_languages ) );
 175+ $languageList = '';
 176+ if ( $language_count > 15 ) {
 177+ $languageList = wfMsg ( 'centralnotice-multiple-languages', $language_count );
 178+ } elseif ( $language_count > 0 ) {
 179+ $languageList = $row->notlog_end_languages;
 180+ }
 181+ $details .= wfMsg (
 182+ 'centralnotice-log-label',
 183+ wfMsg ( 'centralnotice-languages' ),
 184+ $languageList
 185+ )."<br/>";
 186+ $details .= wfMsg (
 187+ 'centralnotice-log-label',
 188+ wfMsg ( 'centralnotice-geo' ),
 189+ ($row->notlog_end_geo ? 'on' : 'off')
 190+ )."<br/>";
 191+ if ( $row->notlog_end_geo ) {
 192+ $country_count = count( explode ( ', ', $row->notlog_end_countries ) );
 193+ $countryList = '';
 194+ if ( $country_count > 20 ) {
 195+ $countryList = wfMsg ( 'centralnotice-multiple-countries', $country_count );
 196+ } elseif ( $country_count > 0 ) {
 197+ $countryList = $row->notlog_end_countries;
 198+ }
154199 $details .= wfMsg (
155200 'centralnotice-log-label',
156 - wfMsg ( 'centralnotice-landingpages' ),
157 - $row->tmplog_end_landingpages
 201+ wfMsg ( 'centralnotice-countries' ),
 202+ $countryList
158203 )."<br/>";
159204 }
160205 return $details;
@@ -162,25 +207,70 @@
163208 function showChanges( $row ) {
164209 global $wgLang;
165210 $details = '';
166 - $details .= $this->testBooleanChange( 'anon', $row );
167 - $details .= $this->testBooleanChange( 'account', $row );
168 - $details .= $this->testBooleanChange( 'fundraising', $row );
169 - $details .= $this->testTextChange( 'landingpages', $row );
170 - if ( $row->tmplog_content_change ) {
171 - // Show changes to banner content
 211+ if ( $row->notlog_begin_start !== $row->notlog_end_start ) {
172212 $details .= wfMsg (
173213 'centralnotice-log-label',
174 - wfMsg ( 'centralnotice-banner-content' ),
175 - wfMsg ( 'centralnotice-banner-content-changed' )
 214+ wfMsg ( 'centralnotice-start-date' ),
 215+ wfMsg (
 216+ 'centralnotice-changed',
 217+ $wgLang->date( $row->notlog_begin_start ).' '.$wgLang->time( $row->notlog_begin_start ),
 218+ $wgLang->date( $row->notlog_end_start ).' '.$wgLang->time( $row->notlog_end_start )
 219+ )
176220 )."<br/>";
177221 }
 222+ if ( $row->notlog_begin_end !== $row->notlog_end_end ) {
 223+ $details .= wfMsg (
 224+ 'centralnotice-log-label',
 225+ wfMsg ( 'centralnotice-end-date' ),
 226+ wfMsg (
 227+ 'centralnotice-changed',
 228+ $wgLang->date( $row->notlog_begin_end ).' '.$wgLang->time( $row->notlog_begin_end ),
 229+ $wgLang->date( $row->notlog_end_end ).' '.$wgLang->time( $row->notlog_end_end )
 230+ )
 231+ )."<br/>";
 232+ }
 233+ $details .= $this->testBooleanChange( 'enabled', $row );
 234+ $details .= $this->testBooleanChange( 'preferred', $row );
 235+ $details .= $this->testBooleanChange( 'locked', $row );
 236+ $details .= $this->testBooleanChange( 'geo', $row );
 237+ $details .= $this->testSetChange( 'projects', $row );
 238+ $details .= $this->testSetChange( 'languages', $row );
 239+ $details .= $this->testSetChange( 'countries', $row );
 240+ if ( $row->notlog_begin_banners !== $row->notlog_end_banners ) {
 241+ // Show changes to banner weights and assignment
 242+ $beginBannersObject = json_decode( $row->notlog_begin_banners );
 243+ $endBannersObject = json_decode( $row->notlog_end_banners );
 244+ $beginBanners = array();
 245+ $endBanners = array();
 246+ foreach( $beginBannersObject as $key => $weight ) {
 247+ $beginBanners[$key] = $key.' ('.$weight.')';
 248+ }
 249+ foreach( $endBannersObject as $key => $weight ) {
 250+ $endBanners[$key] = $key.' ('.$weight.')';
 251+ }
 252+ if ( $beginBanners ) {
 253+ $before = implode( ', ', $beginBanners );
 254+ } else {
 255+ $before = wfMsg ( 'centralnotice-no-assignments' );
 256+ }
 257+ if ( $endBanners ) {
 258+ $after = implode( ', ', $endBanners );
 259+ } else {
 260+ $after = wfMsg ( 'centralnotice-no-assignments' );
 261+ }
 262+ $details .= wfMsg (
 263+ 'centralnotice-log-label',
 264+ wfMsg ( 'centralnotice-templates' ),
 265+ wfMsg ( 'centralnotice-changed', $before, $after)
 266+ )."<br/>";
 267+ }
178268 return $details;
179269 }
180270
181271 private function testBooleanChange( $param, $row ) {
182272 $result = '';
183 - $beginField = 'tmplog_begin_'.$param;
184 - $endField = 'tmplog_end_'.$param;
 273+ $beginField = 'notlog_begin_'.$param;
 274+ $endField = 'notlog_end_'.$param;
185275 if ( $row->$beginField !== $row->$endField ) {
186276 $result .= wfMsg (
187277 'centralnotice-log-label',
@@ -194,22 +284,73 @@
195285 }
196286 return $result;
197287 }
198 -
199 - private function testTextChange( $param, $row ) {
 288+
 289+ private function testSetChange( $param, $row ) {
200290 $result = '';
201 - $beginField = 'tmplog_begin_'.$param;
202 - $endField = 'tmplog_end_'.$param;
 291+ $beginField = 'notlog_begin_'.$param;
 292+ $endField = 'notlog_end_'.$param;
203293 if ( $row->$beginField !== $row->$endField ) {
 294+ $beginSet = array();
 295+ $endSet = array();
 296+ if ( $row->$beginField ) {
 297+ $beginSet = explode( ', ', $row->$beginField );
 298+ }
 299+ if ( $row->$endField ) {
 300+ $endSet = explode( ', ', $row->$endField );
 301+ }
 302+ $added = array_diff( $endSet, $beginSet );
 303+ $removed = array_diff( $beginSet, $endSet );
 304+ $differences = '';
 305+ if ( $added ) {
 306+ $differences .= wfMsg ( 'centralnotice-added', implode( ', ', $added ) );
 307+ if ( $removed ) $differences .= '; ';
 308+ }
 309+ if ( $removed ) {
 310+ $differences .= wfMsg ( 'centralnotice-removed', implode( ', ', $removed ) );
 311+ }
204312 $result .= wfMsg (
205313 'centralnotice-log-label',
206314 wfMsg ( 'centralnotice-'.$param ),
207 - wfMsg (
208 - 'centralnotice-changed',
209 - $row->$beginField,
210 - $row->$endField
211 - )
 315+ $differences
212316 )."<br/>";
213317 }
214318 return $result;
215319 }
 320+
 321+ /**
 322+ * Specify table headers
 323+ */
 324+ function getStartBody() {
 325+ $htmlOut = '';
 326+ $htmlOut .= Xml::openElement( 'table', array( 'id' => 'cn-campaign-logs', 'cellpadding' => 3 ) );
 327+ $htmlOut .= Xml::openElement( 'tr' );
 328+ $htmlOut .= Xml::element( 'th', array( 'style' => 'width: 20px;' ) );
 329+ $htmlOut .= Xml::element( 'th', array( 'align' => 'left', 'style' => 'width: 130px;' ),
 330+ wfMsg ( 'centralnotice-timestamp' )
 331+ );
 332+ $htmlOut .= Xml::element( 'th', array( 'align' => 'left', 'style' => 'width: 160px;' ),
 333+ wfMsg ( 'centralnotice-user' )
 334+ );
 335+ $htmlOut .= Xml::element( 'th', array( 'align' => 'left', 'style' => 'width: 100px;' ),
 336+ wfMsg ( 'centralnotice-action' )
 337+ );
 338+ $htmlOut .= Xml::element( 'th', array( 'align' => 'left', 'style' => 'width: 160px;' ),
 339+ wfMsg ( 'centralnotice-notice' )
 340+ );
 341+ $htmlOut .= Xml::tags( 'td', array(),
 342+ '&nbsp;'
 343+ );
 344+ $htmlOut .= Xml::closeElement( 'tr' );
 345+ return $htmlOut;
 346+ }
 347+
 348+ /**
 349+ * Close table
 350+ */
 351+ function getEndBody() {
 352+ $htmlOut = '';
 353+ $htmlOut .= Xml::closeElement( 'table' );
 354+ return $htmlOut;
 355+ }
 356+
216357 }
Property changes on: branches/wmf/1.17wmf1/extensions/CentralNotice/CentralNoticeLogPager.php
___________________________________________________________________
Deleted: svn:mergeinfo
217358 Reverse-merged /trunk/phase3/extensions/CentralNotice/CentralNoticeLogPager.php:r63545-63546,63549,63643,63764,63897-63901,64113,64509,65387,65391,65555,65590,65650,65816,77555,77558-77560,77563-77565,77573
218359 Reverse-merged /trunk/extensions/CentralNotice/CentralNoticeBannerLogPager.php:r95524-95535
219360 Reverse-merged /branches/wmf-deployment/extensions/CentralNotice/CentralNoticeLogPager.php:r60970
220361 Reverse-merged /branches/wmf/1.16wmf4/extensions/CentralNotice/CentralNoticeLogPager.php:r67177,69199,76243,77266
221362 Reverse-merged /trunk/extensions/CentralNotice/CentralNoticeLogPager.php:r62820-67552,67557,67559-71720,71725-71731,71734-71739,71748-71753,71774-71997,72058-72131,72136-73830,73847,73850,73852,73855,73959,73963,73973,73980,73983,73991,73994-73995,74000-74321,74325-74406,75376-75470,75567,75643,75646,75674,75680,75726,75849,75889,75908,75973,76141,76145,76333,76347,76351,76356-76358,76361,76363,76462,76543,76763,77622-79761,79780,79783-80145,80147-80148,80150,80152-80602,81461-83563,83565-91117,91146,91368-92408,92767

Past revisions this follows-up on

RevisionCommit summaryAuthorDate
r95536MFT r95535awjrichards22:07, 25 August 2011

Status & tagging log