https://www.mediawiki.org/wiki/Special:Code/MediaWiki/113797

Revision: 113797
Author:   santhosh
Date:     2012-03-14 05:13:07 +0000 (Wed, 14 Mar 2012)
Log Message:
-----------
Add logging for adding and removing a group t/from an aggregategroup.
Validate the group before adding or removing to aggregategroup

Modified Paths:
--------------
    trunk/extensions/Translate/PageTranslation.i18n.php
    trunk/extensions/Translate/TranslateHooks.php
    trunk/extensions/Translate/api/ApiAggregateGroups.php
    trunk/extensions/Translate/tag/PageTranslationHooks.php

Modified: trunk/extensions/Translate/PageTranslation.i18n.php
===================================================================
--- trunk/extensions/Translate/PageTranslation.i18n.php 2012-03-14 04:00:27 UTC 
(rev 113796)
+++ trunk/extensions/Translate/PageTranslation.i18n.php 2012-03-14 05:13:07 UTC 
(rev 113797)
@@ -145,6 +145,8 @@
        'pt-log-priority-langs-unset' => '{{GENDER:$2|removed}} priority 
languages from translatable page [[:$1]]',
        'pt-log-priority-langs' => '{{GENDER:$2|set}} the priority languages 
for translatable page [[:$1]] to $3. Reason: $4',
        'pt-log-priority-langs-force' => '{{GENDER:$2|limited}} languages for 
translatable page [[:$1]] to $3. Reason: $4',
+       'pt-log-aggregategroup-associate' => '{{GENDER:$2|added}} page [[:$1]] 
to $3.',
+       'pt-log-aggregategroup-dissociate' => '{{GENDER:$2|removed}} page 
[[:$1]] from $3.',
 
        # move page replacement
        'pt-movepage-title' => 'Move translatable page $1',
@@ -299,6 +301,8 @@
        'pt-log-priority-langs-unset' => 
'{{logentry|[[Special:Log/pagetranslation]]}}',
        'pt-log-priority-langs' => 'Used on [[Special:Log/pagetranslation]]. $3 
is comma-separated list of languages.',
        'pt-log-priority-langs-force' => 'Used on 
[[Special:Log/pagetranslation]]. $3 is a comma-separated list of languages.',
+       'pt-log-aggregategroup-associate' =>  
'{{logentry|[[Special:Log/pagetranslation]]}}',
+       'pt-log-aggregategroup-dissociate' => 
'{{logentry|[[Special:Log/pagetranslation]]}}',
        'pt-movepage-block-base-exists' => "'''base page''' refers to the 
untranslated version of the translatable page.",
        'pt-movepage-block-tp-exists' => 'translation page is a translated 
version of a translatable page',
        'pt-movepage-block-section-exists' => 'Section page is a translation of 
one section. Translation page consists of many translation sections.',

Modified: trunk/extensions/Translate/TranslateHooks.php
===================================================================
--- trunk/extensions/Translate/TranslateHooks.php       2012-03-14 04:00:27 UTC 
(rev 113796)
+++ trunk/extensions/Translate/TranslateHooks.php       2012-03-14 05:13:07 UTC 
(rev 113797)
@@ -70,6 +70,8 @@
                        $wgLogActionsHandlers['pagetranslation/encourage'] = 
'PageTranslationHooks::formatLogEntry';
                        $wgLogActionsHandlers['pagetranslation/discourage'] = 
'PageTranslationHooks::formatLogEntry';
                        
$wgLogActionsHandlers['pagetranslation/prioritylanguages'] = 
'PageTranslationHooks::formatLogEntry';
+                       $wgLogActionsHandlers['pagetranslation/associate'] = 
'PageTranslationHooks::formatLogEntry';
+                       $wgLogActionsHandlers['pagetranslation/dissociate'] = 
'PageTranslationHooks::formatLogEntry';
 
                        global $wgJobClasses;
                        $wgJobClasses['RenderJob'] = 'RenderJob';

Modified: trunk/extensions/Translate/api/ApiAggregateGroups.php
===================================================================
--- trunk/extensions/Translate/api/ApiAggregateGroups.php       2012-03-14 
04:00:27 UTC (rev 113796)
+++ trunk/extensions/Translate/api/ApiAggregateGroups.php       2012-03-14 
05:13:07 UTC (rev 113797)
@@ -26,6 +26,7 @@
                        $this->dieUsage( 'Permission denied', 
'permissiondenied' );
                }
 
+               $logger = new LogPage( 'pagetranslation' );
                $params = $this->extractRequestParams();
                $aggregateGroup = $params['aggregategroup'];
                $action = $params['do'];
@@ -37,7 +38,7 @@
                        }
 
                        // Get the list of group ids
-                       $group = $params['group'];
+                       $groupId = $params['group'];
                        $subgroups = TranslateMetadata::get( $aggregateGroup, 
'subgroups' );
                        if ( $subgroups ) {
                                $subgroups = array_map( 'trim', explode( ',', 
$subgroups ) );
@@ -45,22 +46,29 @@
                                // For newly created groups the subgroups value 
might be empty
                                $subgroups = array();
                        }
+                       $group = MessageGroups::getGroup( $groupId );
+                       if ( $group === null || !$group instanceof 
WikiPageMessageGroup ) {
+                               $this->dieUsage( 'Group does not exist or 
invalid', 'invalidgroup' );
+                       }
 
-                       // @FIXME: check that the group id is a translatable 
page
                        // @FIXME: handle pages with a comma in their name
 
                        // Add or remove from the list
-                       // @TODO logging
                        if ( $action === 'associate' ) {
-                               $subgroups[] = $group;
+                               $subgroups[] = $groupId;
                                $subgroups = array_unique( $subgroups );
                        } elseif ( $action === 'dissociate' ) {
                                $subgroups = array_flip( $subgroups ) ;
-                               unset( $subgroups[$group] );
+                               unset( $subgroups[$groupId] );
                                $subgroups = array_flip( $subgroups );
                        }
 
                        TranslateMetadata::set( $aggregateGroup, 'subgroups', 
implode( ',', $subgroups ) ) ;
+                       $logparams = array(
+                               'user' => $wgUser->getName() ,
+                               'aggregategroup' => TranslateMetadata::get( 
$aggregateGroup, 'name' ),
+                       );
+                       $logger->addEntry( $action, $group->getTitle(), null, 
array( serialize( $logparams ) ) );
                } elseif ( $action === 'remove' ) {
                        TranslateMetadata::set( $aggregateGroup, 'subgroups', 
false ) ;
                        TranslateMetadata::set( $aggregateGroup, 'name', false 
) ;

Modified: trunk/extensions/Translate/tag/PageTranslationHooks.php
===================================================================
--- trunk/extensions/Translate/tag/PageTranslationHooks.php     2012-03-14 
04:00:27 UTC (rev 113796)
+++ trunk/extensions/Translate/tag/PageTranslationHooks.php     2012-03-14 
05:13:07 UTC (rev 113797)
@@ -616,6 +616,10 @@
                        } else {
                                return wfMsgExt( 'pt-log-priority-langs', 
$opts, $title->getPrefixedText(), $user , $_['languages'], $_['reason'] );
                        }
+               } elseif ( $action === 'associate' ) {
+                       return wfMsgExt( 'pt-log-aggregategroup-associate', 
$opts, $title->getPrefixedText(), $user, $_['aggregategroup'] );
+               } elseif ( $action === 'dissociate' ) {
+                       return wfMsgExt( 'pt-log-aggregategroup-dissociate', 
$opts, $title->getPrefixedText(), $user, $_['aggregategroup'] );
                }
                return '';
        }


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to