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