jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/356787 )
Change subject: Provide default publishing namespace configuration at user
group level
......................................................................
Provide default publishing namespace configuration at user group level
Introduces ContentTranslationUserGroupTargetNamespace configuration.
Bug: T166854
Change-Id: I8f43750ab470aeb831b2c495e6732d4ad0cde763
---
M ContentTranslation.hooks.php
M extension.json
M modules/ui/legacy/mw.cx.ui.TranslationView.js
M modules/ui/mw.cx.ui.TranslationView.js
M modules/util/mw.cx.util.js
5 files changed, 45 insertions(+), 6 deletions(-)
Approvals:
jenkins-bot: Verified
Nikerabbit: Looks good to me, approved
diff --git a/ContentTranslation.hooks.php b/ContentTranslation.hooks.php
index 60fec56..ad90917 100644
--- a/ContentTranslation.hooks.php
+++ b/ContentTranslation.hooks.php
@@ -175,6 +175,7 @@
$wgContentTranslationBrowserBlacklist,
$wgContentTranslationDefaultSourceLanguage,
$wgContentTranslationTargetNamespace,
+ $wgContentTranslationUserGroupTargetNamespace,
$wgRecommendToolAPIURL;
$vars['wgContentTranslationTranslateInTarget'] =
$wgContentTranslationTranslateInTarget;
@@ -187,6 +188,8 @@
$vars['wgContentTranslationBrowserBlacklist'] =
$wgContentTranslationBrowserBlacklist;
$vars['wgContentTranslationDefaultSourceLanguage'] =
$wgContentTranslationDefaultSourceLanguage;
$vars['wgContentTranslationTargetNamespace'] =
$wgContentTranslationTargetNamespace;
+ $vars['wgContentTranslationUserGroupTargetNamespace']
+ = $wgContentTranslationUserGroupTargetNamespace;
$vars['wgRecommendToolAPIURL'] = $wgRecommendToolAPIURL;
}
diff --git a/extension.json b/extension.json
index 1bdc30f..3f903aa 100644
--- a/extension.json
+++ b/extension.json
@@ -138,6 +138,8 @@
"ContentTranslationDefaultSourceLanguage": "en",
"@ContentTranslationTargetNamespace": "Target namespace to
publish articles. Values can be valid namespace ids. Example: 0 for Main, 2 for
User namespace",
"ContentTranslationTargetNamespace": 0,
+ "@ContentTranslationUserGroupTargetNamespace": "Default target
namespace to publish articles based on user groups. The value is an associative
array with user group names as keys, and namespace ids as values. If there are
more matches for user groups, first match will be used.",
+ "ContentTranslationUserGroupTargetNamespace": {},
"ContentTranslationCampaigns": {
"cxstats": true,
"specialcx": true,
@@ -1494,12 +1496,13 @@
"cx-publish-button"
],
"dependencies": [
- "mw.cx.ui.Header",
- "mw.cx.ui.Columns.legacy",
"ext.cx.model",
- "ext.cx.util",
"ext.cx.sitemapper",
- "mw.cx.ui.PublishSettingsWidget"
+ "ext.cx.util",
+ "mw.cx.ui.Columns.legacy",
+ "mw.cx.ui.Header",
+ "mw.cx.ui.PublishSettingsWidget",
+ "mw.cx.util"
]
},
"mw.cx.init.legacy": {
diff --git a/modules/ui/legacy/mw.cx.ui.TranslationView.js
b/modules/ui/legacy/mw.cx.ui.TranslationView.js
index 40cca94..57e16f3 100644
--- a/modules/ui/legacy/mw.cx.ui.TranslationView.js
+++ b/modules/ui/legacy/mw.cx.ui.TranslationView.js
@@ -51,7 +51,7 @@
} );
this.publishSettings = new mw.cx.ui.PublishSettingsWidget( {
- destination: mw.config.get(
'wgContentTranslationTargetNamespace' )
+ destination: mw.cx.getDefaultTargetNamespace()
} );
this.publishSettings.connect( this, {
choose: 'onPublishNamespaceChange'
diff --git a/modules/ui/mw.cx.ui.TranslationView.js
b/modules/ui/mw.cx.ui.TranslationView.js
index 375562b..7d75a34 100644
--- a/modules/ui/mw.cx.ui.TranslationView.js
+++ b/modules/ui/mw.cx.ui.TranslationView.js
@@ -163,7 +163,7 @@
label: mw.msg( 'cx-publish-button' )
} );
this.publishSettings = new mw.cx.ui.PublishSettingsWidget( {
- destination: mw.config.get(
'wgContentTranslationTargetNamespace' )
+ destination: mw.cx.getDefaultTargetNamespace()
} );
this.publishSettings.connect( this, {
choose: 'onPublishNamespaceChange'
diff --git a/modules/util/mw.cx.util.js b/modules/util/mw.cx.util.js
index 7ab7f70..ee68002 100644
--- a/modules/util/mw.cx.util.js
+++ b/modules/util/mw.cx.util.js
@@ -68,3 +68,36 @@
}
return mw.Title.newFromText( currentTitle, newNamespaceId ).toText();
};
+
+/**
+ * Get the default publishing target namespace
+ * @return {number} Target namespace id
+ */
+mw.cx.getDefaultTargetNamespace = function () {
+ var userGroups, group, groupTargetNamespaceConfig, validNamespaceIds,
targetNamespace;
+
+ groupTargetNamespaceConfig = mw.config.get(
'wgContentTranslationUserGroupTargetNamespace', {} );
+ userGroups = mw.config.get( 'wgUserGroups', [] );
+
+ for ( group in groupTargetNamespaceConfig ) {
+ if ( userGroups.indexOf( group ) >= 0 ) {
+ targetNamespace = groupTargetNamespaceConfig[ group ];
+ break;
+ }
+ }
+
+ if ( !targetNamespace ) {
+ // No match found in ContentTranslationUserGroupTargetNamespace.
+ // Use wiki level namespace defined in
ContentTranslationTargetNamespace
+ targetNamespace = mw.config.get(
'wgContentTranslationTargetNamespace' );
+ }
+
+ // Validate the configuration.
+ validNamespaceIds = Object.values( mw.config.get( 'wgNamespaceIds', {}
) );
+ if ( validNamespaceIds.indexOf( targetNamespace ) < 0 ) {
+ mw.log.error( '[CX] Invalid publishing namespace configuration.
Namespace does not exist: ' + targetNamespace );
+ targetNamespace = 0;
+ }
+
+ return targetNamespace;
+};
--
To view, visit https://gerrit.wikimedia.org/r/356787
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I8f43750ab470aeb831b2c495e6732d4ad0cde763
Gerrit-PatchSet: 5
Gerrit-Project: mediawiki/extensions/ContentTranslation
Gerrit-Branch: master
Gerrit-Owner: Santhosh <[email protected]>
Gerrit-Reviewer: Nikerabbit <[email protected]>
Gerrit-Reviewer: Santhosh <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits