r100101 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r100100‎ | r100101 | r100102 >
Date:00:00, 18 October 2011
Author:awjrichards
Status:ok
Tags:
Comment:
CentralNoticeLogPager.php deleted in r95822 of trunk
Modified paths:
  • /branches/wmf/1.18wmf1/extensions/CentralNotice/CentralNoticeLogPager.php (deleted) (history)

Diff [purge]

Index: branches/wmf/1.18wmf1/extensions/CentralNotice/CentralNoticeLogPager.php
@@ -1,356 +0,0 @@
2 -<?php
3 -
4 -class CentralNoticeLogPager extends ReverseChronologicalPager {
5 - var $viewPage, $special;
6 -
7 - function __construct( $special ) {
8 - global $wgRequest;
9 - $this->special = $special;
10 - parent::__construct();
11 -
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' );
17 - }
18 -
19 - /**
20 - * Sort the log list by timestamp
21 - */
22 - function getIndexField() {
23 - return 'notlog_timestamp';
24 - }
25 -
26 - /**
27 - * Pull log entries from the database
28 - */
29 - function getQueryInfo() {
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' ),
59 - 'fields' => '*',
60 - 'conds' => array()
61 - );
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;
83 - }
84 -
85 - /**
86 - * Generate the content of each table row (1 row = 1 log entry)
87 - */
88 - function formatRow( $row ) {
89 - global $wgLang, $wgExtensionAssetsPath;
90 -
91 - // Create a user object so we can pull the name, user page, etc.
92 - $loggedUser = User::newFromId( $row->notlog_user_id );
93 - // Create the user page link
94 - $userLink = $this->getSkin()->makeLinkObj( $loggedUser->getUserPage(),
95 - $loggedUser->getName() );
96 - $userTalkLink = $this->getSkin()->makeLinkObj( $loggedUser->getTalkPage(),
97 - wfMsg ( 'centralnotice-talk-link' ) );
98 -
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 ) );
103 -
104 - // Begin log entry primary row
105 - $htmlOut = Xml::openElement( 'tr' );
106 -
107 - $htmlOut .= Xml::openElement( 'td', array( 'valign' => 'top' ) );
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;"/>'.
112 - '</a>';
113 - }
114 - $htmlOut .= Xml::closeElement( 'td' );
115 - $htmlOut .= Xml::tags( 'td', array( 'valign' => 'top', 'class' => 'primary' ),
116 - $wgLang->date( $row->notlog_timestamp ) . ' ' . $wgLang->time( $row->notlog_timestamp )
117 - );
118 - $htmlOut .= Xml::tags( 'td', array( 'valign' => 'top', 'class' => 'primary' ),
119 - wfMsg ( 'centralnotice-user-links', $userLink, $userTalkLink )
120 - );
121 - $htmlOut .= Xml::tags( 'td', array( 'valign' => 'top', 'class' => 'primary' ),
122 - $row->notlog_action
123 - );
124 - $htmlOut .= Xml::tags( 'td', array( 'valign' => 'top', 'class' => 'primary' ),
125 - $campaignLink
126 - );
127 - $htmlOut .= Xml::tags( 'td', array(),
128 - '&nbsp;'
129 - );
130 -
131 - // End log entry primary row
132 - $htmlOut .= Xml::closeElement( 'tr' );
133 -
134 - if ( $row->notlog_action !== 'removed' ) {
135 - // Begin log entry secondary row
136 - $htmlOut .= Xml::openElement( 'tr', array( 'id' => 'cn-log-details-'.$row->notlog_id, 'style' => 'display:none;' ) );
137 -
138 - $htmlOut .= Xml::tags( 'td', array( 'valign' => 'top' ),
139 - '&nbsp;' // force a table cell in older browsers
140 - );
141 - $htmlOut .= Xml::openElement( 'td', array( 'valign' => 'top', 'colspan' => '5' ) );
142 - if ( $row->notlog_action == 'created' ) {
143 - $htmlOut .= $this->showInitialSettings( $row );
144 - } else if ( $row->notlog_action == 'modified' ) {
145 - $htmlOut .= $this->showChanges( $row );
146 - }
147 - $htmlOut .= Xml::closeElement( 'td' );
148 -
149 - // End log entry primary row
150 - $htmlOut .= Xml::closeElement( 'tr' );
151 - }
152 -
153 - return $htmlOut;
154 - }
155 -
156 - function showInitialSettings( $row ) {
157 - global $wgLang;
158 - $details = '';
159 - $details .= wfMsg (
160 - 'centralnotice-log-label',
161 - wfMsg ( 'centralnotice-start-date' ),
162 - $wgLang->date( $row->notlog_end_start ).' '.$wgLang->time( $row->notlog_end_start )
163 - )."<br/>";
164 - $details .= wfMsg (
165 - 'centralnotice-log-label',
166 - wfMsg ( 'centralnotice-end-date' ),
167 - $wgLang->date( $row->notlog_end_end ).' '.$wgLang->time( $row->notlog_end_end )
168 - )."<br/>";
169 - $details .= wfMsg (
170 - 'centralnotice-log-label',
171 - wfMsg ( 'centralnotice-projects' ),
172 - $row->notlog_end_projects
173 - )."<br/>";
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 - }
199 - $details .= wfMsg (
200 - 'centralnotice-log-label',
201 - wfMsg ( 'centralnotice-countries' ),
202 - $countryList
203 - )."<br/>";
204 - }
205 - return $details;
206 - }
207 -
208 - function showChanges( $row ) {
209 - global $wgLang;
210 - $details = '';
211 - if ( $row->notlog_begin_start !== $row->notlog_end_start ) {
212 - $details .= wfMsg (
213 - 'centralnotice-log-label',
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 - )
220 - )."<br/>";
221 - }
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 - }
268 - return $details;
269 - }
270 -
271 - private function testBooleanChange( $param, $row ) {
272 - $result = '';
273 - $beginField = 'notlog_begin_'.$param;
274 - $endField = 'notlog_end_'.$param;
275 - if ( $row->$beginField !== $row->$endField ) {
276 - $result .= wfMsg (
277 - 'centralnotice-log-label',
278 - wfMsg ( 'centralnotice-'.$param ),
279 - wfMsg (
280 - 'centralnotice-changed',
281 - ( $row->$beginField ? wfMsg ( 'centralnotice-on' ) : wfMsg ( 'centralnotice-off' ) ),
282 - ( $row->$endField ? wfMsg ( 'centralnotice-on' ) : wfMsg ( 'centralnotice-off' ) )
283 - )
284 - )."<br/>";
285 - }
286 - return $result;
287 - }
288 -
289 - private function testSetChange( $param, $row ) {
290 - $result = '';
291 - $beginField = 'notlog_begin_'.$param;
292 - $endField = 'notlog_end_'.$param;
293 - 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 - }
312 - $result .= wfMsg (
313 - 'centralnotice-log-label',
314 - wfMsg ( 'centralnotice-'.$param ),
315 - $differences
316 - )."<br/>";
317 - }
318 - return $result;
319 - }
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 -
357 -}

Past revisions this follows-up on

RevisionCommit summaryAuthorDate
r95822adding banner content and banner message logging to CentralNoticekaldari00:06, 31 August 2011

Status & tagging log