https://www.mediawiki.org/wiki/Special:Code/MediaWiki/113612
Revision: 113612
Author: santhosh
Date: 2012-03-12 05:28:15 +0000 (Mon, 12 Mar 2012)
Log Message:
-----------
Remove the restriction of 'page can reside in only one agregategroup'
Now one page can belong to multiple aggregrate groups.
Modified Paths:
--------------
trunk/extensions/Translate/resources/ext.translate.special.aggregategroups.js
trunk/extensions/Translate/specials/SpecialAggregateGroups.php
Modified:
trunk/extensions/Translate/resources/ext.translate.special.aggregategroups.js
===================================================================
---
trunk/extensions/Translate/resources/ext.translate.special.aggregategroups.js
2012-03-12 05:24:54 UTC (rev 113611)
+++
trunk/extensions/Translate/resources/ext.translate.special.aggregategroups.js
2012-03-12 05:28:15 UTC (rev 113612)
@@ -4,17 +4,20 @@
function associate( event ){
var aggregategroup = event.target.id;
- var selected = $( '#tp-aggregate-groups-select-'+
aggregategroup + ' option:selected' ).text();
- var group = $( '#tp-aggregate-groups-select-'+
aggregategroup + ' option:selected' ).val();
+ var $selected = $( '#tp-aggregate-groups-select-'+
aggregategroup + ' option:selected' );
+ var groupName = $selected.text();
+ var groupId = $selected.val();
var $select= $( 'select.tp-aggregate-group-chooser' ) ;
var successFunction = function( data, textStatus ) {
if ( data.error ) {
alert( data.error.info );
}else{
- $( '#tp-aggregate-groups-ol-'+
aggregategroup ).append( '<li><a id='+group+'
href='+selected+'>'+selected+'</a><span class=\'tp-aggregate-remove-button\'
id='+group+'></span></li>' );
- $( 'option#'+ group ).remove();
- $( 'span#'+group ).on ( "click",
function(event){ dissociate(event); } );
+ $( '#tp-aggregate-groups-ol-'+
aggregategroup ).append( '<li><a id='+groupId+'
href='+groupName+'>'+groupName+'</a><span class=\'tp-aggregate-remove-button\'
id='+groupId+'></span></li>' );
+ // remove this group from the select.
+ $selected.remove();
+ // bind click event to the
dissociate(remove) button.
+ $( 'span#'+groupId ).on ( "click",
function(event){ dissociate(event); } );
}
};
@@ -22,7 +25,7 @@
action: "aggregategroups",
'do' : 'associate',
token: $( "#token" ).val(),
- group: group,
+ group: groupId,
aggregategroup: aggregategroup,
format: "json"
};
@@ -30,19 +33,16 @@
}
function dissociate(event){
- var group = event.target.id;
- var selected = $( 'a#'+group ).text();
- var $select= $( 'select.tp-aggregate-group-chooser' ) ;
- var aggregategroup = $( 'a#'+group ).closest( 'div'
).find( 'h2' ).attr( 'id' );
-
+ var groupId = event.target.id;
+ var groupName = $( 'a#'+groupId ).text();
+ var aggregategroup = $( 'a#'+groupId ).closest( 'div'
).find( 'h2' ).attr( 'id' );
+ var $select = $( '#tp-aggregate-groups-select-'+
aggregategroup );
var successFunction = function( data, textStatus ) {
if ( data.error ) {
alert( data.error.info );
}else{
- $select.each( function(){
- $( this ).append( '<option
value="'+group+'">'+selected+'</option>' );
- } );
- $( 'span#'+ group ).closest( 'li'
).remove();
+ $select .append( '<option
value="'+groupId+'">'+groupName+'</option>' );
+ $( 'span#'+ groupId ).closest( 'li'
).remove();
}
};
@@ -50,7 +50,7 @@
action: "aggregategroups",
'do' : 'dissociate',
token: $( "#token" ).val(),
- group: group,
+ group: groupId,
aggregategroup: aggregategroup,
format: "json"
};
@@ -59,19 +59,10 @@
function removeGroup(event){
var aggregategroup = event.target.id;
- var $select= $( 'select.tp-aggregate-group-chooser') ;
-
var successFunction = function( data, textStatus ) {
if ( data.error ) {
alert( data.error.info );
}else{
- $( 'span#'+ aggregategroup
).parent().parent().find('li a').each(function(){
- $groupId = $( this ).attr('id');
- $groupName = $( this ).text();
- $select.each( function(){
- $ (this
).append('<option value="'+$groupId+'">'+$groupName+'</option>');
- } );
- });
$( 'span#'+ aggregategroup
).closest('div#tpt-aggregate-group').remove();
}
};
Modified: trunk/extensions/Translate/specials/SpecialAggregateGroups.php
===================================================================
--- trunk/extensions/Translate/specials/SpecialAggregateGroups.php
2012-03-12 05:24:54 UTC (rev 113611)
+++ trunk/extensions/Translate/specials/SpecialAggregateGroups.php
2012-03-12 05:28:15 UTC (rev 113612)
@@ -84,7 +84,6 @@
$aggregategroups = ApiAggregateGroups::getAggregateGroups( );
$res = $this->loadPagesFromDB();
$pages = $this->buildPageArray( $res );
- $pages = $this->filterUnGroupedPages( $pages, $aggregategroups
);
foreach ( $aggregategroups as $id => $group ) {
$wgOut->addHtml( "<div id='tpt-aggregate-group'>" );
@@ -112,7 +111,7 @@
}
$wgOut->addHtml( "</ol>" );
- $this->groupSelector ( $pages, $id );
+ $this->groupSelector ( $pages, $group );
$addButton = Html::element( 'input',
array( 'type' => 'button',
'value' => wfMsg(
'tpt-aggregategroup-add' ),
@@ -148,7 +147,7 @@
$wgOut->addHtml( $newGroupDiv );
}
- protected function groupSelector( $pages, $id ) {
+ protected function groupSelector( $pages, $group ) {
global $wgOut;
$out = $wgOut;
if ( !count( $pages ) ) {
@@ -156,16 +155,19 @@
return;
}
$options = "\n";
+ $subgroups = $group['subgroups'];
if ( count( $pages ) ) {
foreach ( $pages as $pageId => $page ) {
$title = $page['title']->getText();
$pageid =
TranslatablePage::getMessageGroupIdFromTitle( $page['title'] ) ;
- $options .= Xml::option( $title , $pageid,
false , array( 'id' => $pageid ) ) . "\n";
+ if ( ! isset( $subgroups[$pageid] ) ) {
+ $options .= Xml::option( $title ,
$pageid, false , array( 'id' => $pageid ) ) . "\n";
+ }
}
}
$selector = Xml::tags( 'select',
array(
- 'id' => 'tp-aggregate-groups-select-' .
$id,
+ 'id' => 'tp-aggregate-groups-select-' .
$group['id'],
'name' => 'group',
'class' => 'tp-aggregate-group-chooser',
),
@@ -174,17 +176,4 @@
$out->addHtml( $selector );
}
- protected function filterUnGroupedPages( $pages, $aggregategroups ) {
- foreach ( $aggregategroups as $aggregategroup ) {
- $subgroups = $aggregategroup['subgroups'];
- foreach ( $pages as $id => $page ) {
- $pageid =
TranslatablePage::getMessageGroupIdFromTitle( $page['title'] ) ;
- if ( isset( $subgroups[$pageid] ) ) {
- unset( $pages[$id] );
- }
- }
- }
- return $pages;
- }
-
}
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs