http://www.mediawiki.org/wiki/Special:Code/MediaWiki/76351
Revision: 76351
Author: kaldari
Date: 2010-11-08 23:29:23 +0000 (Mon, 08 Nov 2010)
Log Message:
-----------
more work towards multi-project selection - bug 20229
Modified Paths:
--------------
trunk/extensions/CentralNotice/SpecialCentralNotice.php
trunk/extensions/CentralNotice/centralnotice.js
Modified: trunk/extensions/CentralNotice/SpecialCentralNotice.php
===================================================================
--- trunk/extensions/CentralNotice/SpecialCentralNotice.php 2010-11-08
23:21:04 UTC (rev 76350)
+++ trunk/extensions/CentralNotice/SpecialCentralNotice.php 2010-11-08
23:29:23 UTC (rev 76351)
@@ -760,7 +760,6 @@
'not_end',
'not_enabled',
'not_preferred',
- 'not_project',
'not_locked',
'not_geo'
),
@@ -789,7 +788,7 @@
$isEnabled = $wgRequest->getCheck( 'enabled' );
$isPreferred = $wgRequest->getCheck(
'preferred' );
$isLocked = $wgRequest->getCheck( 'locked' );
- $projectSelected = $wgRequest->getVal(
'project_name' );
+ $noticeProjects = $wgRequest->getArray(
'projects', array() );
$noticeLanguages = $wgRequest->getArray(
'project_languages', array() );
$isGeotargeted = $wgRequest->getCheck(
'geotargeted' );
$countries = $wgRequest->getArray(
'geo_countries', array() );
@@ -799,7 +798,7 @@
$isEnabled = ( $row->not_enabled == '1' );
$isPreferred = ( $row->not_preferred == '1' );
$isLocked = ( $row->not_locked == '1' );
- $projectSelected = $row->not_project;
+ $noticeProjects = $this->getNoticeProjects(
$notice );
$noticeLanguages = $this->getNoticeLanguages(
$notice );
$isGeotargeted = ( $row->not_geo == '1' );
$countries = $this->getNoticeCountries( $notice
);
@@ -833,8 +832,10 @@
$htmlOut .= Xml::closeElement( 'tr' );
// Project
$htmlOut .= Xml::openElement( 'tr' );
- $htmlOut .= Xml::tags( 'td', array(), wfMsgHtml(
'centralnotice-projects' ) );
- $htmlOut .= Xml::tags( 'td', array(),
$this->projectDropDownList( $projectSelected ) );
+ $htmlOut .= Xml::tags( 'td', array( 'valign' => 'top'
),
+ wfMsgHtml( 'centralnotice-projects' ) );
+ $htmlOut .= Xml::tags( 'td', array(),
+ $this->projectMultiSelector( $noticeProjects )
);
$htmlOut .= Xml::closeElement( 'tr' );
// Languages
$htmlOut .= Xml::openElement( 'tr' );
@@ -1256,6 +1257,21 @@
return null;
}
}
+
+ function getNoticeProjects( $noticeName ) {
+ $dbr = wfGetDB( DB_SLAVE );
+ $eNoticeName = htmlspecialchars( $noticeName );
+ $row = $dbr->selectRow( 'cn_notices', 'not_id', array(
'not_name' => $eNoticeName ) );
+ $projects = array();
+ if ( $row ) {
+ $res = $dbr->select( 'cn_notice_projects',
'np_project',
+ array( 'np_notice_id' => $row->not_id ) );
+ foreach ( $res as $projectRow ) {
+ $projects[] = $projectRow->np_project;
+ }
+ }
+ return $projects;
+ }
function getNoticeLanguages( $noticeName ) {
$dbr = wfGetDB( DB_SLAVE );
Modified: trunk/extensions/CentralNotice/centralnotice.js
===================================================================
--- trunk/extensions/CentralNotice/centralnotice.js 2010-11-08 23:21:04 UTC
(rev 76350)
+++ trunk/extensions/CentralNotice/centralnotice.js 2010-11-08 23:29:23 UTC
(rev 76351)
@@ -1,3 +1,10 @@
+function selectProjects( selectAll ) {
+ var selectBox = document.getElementById('projects[]');
+ var firstSelect = selectBox.options.length - 1;
+ for (var i = firstSelect; i >= 0; i--) {
+ selectBox.options[i].selected = selectAll;
+ }
+}
function selectLanguages( selectAll ) {
var selectBox = document.getElementById('project_languages[]');
var firstSelect = selectBox.options.length - 1;
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs