jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/346727 )
Change subject: CX2: Define translation unit for external links
......................................................................
CX2: Define translation unit for external links
Do not mix up them with internal links as we did in CX1
Also remove some unused methods from LinkTranslationUnit
Bug: T106525
Change-Id: I8cf8e155144297073c1f067e408fe6faf4cf05c7
---
M extension.json
A modules/dm/translationunits/mw.cx.dm.ExternalLinkTranslationUnit.js
M modules/dm/translationunits/mw.cx.dm.LinkTranslationUnit.js
A modules/tools/mw.cx.tools.ExternalLinkTool.js
A modules/tools/styles/mw.cx.tools.ExternalLinkTool.less
A modules/ui/translationunits/mw.cx.ui.ExternalLinkTranslationUnit.js
M modules/ui/translationunits/mw.cx.ui.LinkTranslationUnit.js
7 files changed, 147 insertions(+), 13 deletions(-)
Approvals:
jenkins-bot: Verified
Nikerabbit: Looks good to me, approved
diff --git a/extension.json b/extension.json
index d64de02..aca5ea6 100644
--- a/extension.json
+++ b/extension.json
@@ -1249,6 +1249,7 @@
"mw.cx.dm.ImageTranslationUnit",
"mw.cx.dm.SentenceTranslationUnit",
"mw.cx.dm.LinkTranslationUnit",
+ "mw.cx.dm.ExternalLinkTranslationUnit",
"mw.cx.dm.PoemTranslationUnit",
"mw.cx.dm.ReferenceTranslationUnit",
"mw.cx.dm.TemplateTranslationUnit",
@@ -1270,6 +1271,14 @@
],
"dependencies": [
"mw.cx.dm.SectionTranslationUnit"
+ ]
+ },
+ "mw.cx.dm.ExternalLinkTranslationUnit": {
+ "scripts": [
+
"dm/translationunits/mw.cx.dm.ExternalLinkTranslationUnit.js"
+ ],
+ "dependencies": [
+ "mw.cx.dm.TranslationUnit"
]
},
"mw.cx.dm.SentenceTranslationUnit": {
@@ -1689,6 +1698,7 @@
"mw.cx.ui.PoemTranslationUnit",
"mw.cx.ui.ReferenceTranslationUnit",
"mw.cx.ui.LinkTranslationUnit",
+ "mw.cx.ui.ExternalLinkTranslationUnit",
"mw.cx.ui.TemplateTranslationUnit",
"mw.cx.ui.SentenceTranslationUnit"
]
@@ -1717,6 +1727,14 @@
],
"styles":[
"ui/styles/translationunits/mw.cx.ui.LinkTranslationUnit.less"
+ ],
+ "dependencies": [
+ "mw.cx.ui.TranslationUnit"
+ ]
+ },
+ "mw.cx.ui.ExternalLinkTranslationUnit": {
+ "scripts": [
+
"ui/translationunits/mw.cx.ui.ExternalLinkTranslationUnit.js"
],
"dependencies": [
"mw.cx.ui.TranslationUnit"
@@ -1783,6 +1801,7 @@
"mw.cx.tools": {
"dependencies": [
"mw.cx.tools.DictionaryTool",
+ "mw.cx.tools.ExternalLinkTool",
"mw.cx.tools.FormatterTool",
"mw.cx.tools.InstructionsTool",
"mw.cx.tools.LinkTool",
@@ -1875,6 +1894,20 @@
"mw.cx.tools.TranslationTool"
]
},
+ "mw.cx.tools.ExternalLinkTool": {
+ "scripts": [
+ "tools/mw.cx.tools.ExternalLinkTool.js"
+ ],
+ "styles": [
+ "tools/styles/mw.cx.tools.ExternalLinkTool.less"
+ ],
+ "dependencies": [
+ "mw.cx.tools.TranslationTool"
+ ],
+ "messages":[
+ "cx-tools-link-hover-tooltip"
+ ]
+ },
"mw.cx.tools.FormatterTool": {
"scripts": [
"tools/mw.cx.tools.FormatterTool.js"
diff --git
a/modules/dm/translationunits/mw.cx.dm.ExternalLinkTranslationUnit.js
b/modules/dm/translationunits/mw.cx.dm.ExternalLinkTranslationUnit.js
new file mode 100644
index 0000000..1ab985e
--- /dev/null
+++ b/modules/dm/translationunits/mw.cx.dm.ExternalLinkTranslationUnit.js
@@ -0,0 +1,37 @@
+'use strict';
+
+/**
+ * CX External Link TranslationUnit Data model class
+ *
+ * @constructor
+ * @param {Object} config
+ * @param {mw.cx.dm.Translation} translation The translation context
+ * @param {Element} sourceDocument
+ * @param {Element} targetDocument
+ */
+mw.cx.dm.ExternalLinkTranslationUnit = function ExternalLinkTranslationUnit(
config, translation, sourceDocument, targetDocument ) {
+ mw.cx.dm.ExternalLinkTranslationUnit.super.call( this, config,
translation, sourceDocument, targetDocument );
+};
+
+/* Inheritance */
+
+OO.inheritClass( mw.cx.dm.ExternalLinkTranslationUnit,
mw.cx.dm.TranslationUnit );
+
+mw.cx.dm.ExternalLinkTranslationUnit.static.name = 'extlink';
+mw.cx.dm.ExternalLinkTranslationUnit.static.matchTagNames = [ 'a' ];
+mw.cx.dm.ExternalLinkTranslationUnit.static.matchRdfaTypes = [ 'mw:ExtLink' ];
+
+mw.cx.dm.ExternalLinkTranslationUnit.prototype.getTargetURL = function () {
+ return this.sourceDocument.href;
+};
+
+/**
+ * Get the id of the section
+ * @return {string}
+ */
+mw.cx.dm.TranslationUnit.prototype.getSectionId = function () {
+ // Make sure that there is an id for the unit even if id attribute is
not present.
+ return this.sourceDocument.id || this.sourceDocument.dataset.linkid ||
OO.ui.generateElementId();
+};
+
+mw.cx.dm.modelRegistry.register( mw.cx.dm.ExternalLinkTranslationUnit );
diff --git a/modules/dm/translationunits/mw.cx.dm.LinkTranslationUnit.js
b/modules/dm/translationunits/mw.cx.dm.LinkTranslationUnit.js
index 848e6e2..c914383 100644
--- a/modules/dm/translationunits/mw.cx.dm.LinkTranslationUnit.js
+++ b/modules/dm/translationunits/mw.cx.dm.LinkTranslationUnit.js
@@ -39,10 +39,6 @@
// We are not fetching any data before the parent translation unit's
translation started.
};
-mw.cx.dm.LinkTranslationUnit.prototype.isInternalLink = function () {
- return true;
-};
-
mw.cx.dm.LinkTranslationUnit.prototype.getTargetTitle = function () {
return this.targetDocument.title;
};
diff --git a/modules/tools/mw.cx.tools.ExternalLinkTool.js
b/modules/tools/mw.cx.tools.ExternalLinkTool.js
new file mode 100644
index 0000000..13af29c
--- /dev/null
+++ b/modules/tools/mw.cx.tools.ExternalLinkTool.js
@@ -0,0 +1,45 @@
+/**
+ * External link tool
+ *
+ * @class
+ * @extends mw.cx.tools.TranslationTool
+ * @constructor
+ * @param {mw.cx.dm.TranslationUnit} model
+ * @param {Object} config
+ */
+mw.cx.tools.ExternalLinkTool = function CXExternalLinkTool( model, config ) {
+ config.order = 50;
+ config.title = 'External link';
+ mw.cx.tools.ExternalLinkTool.super.call( this, model, config );
+};
+
+/* Inheritance */
+OO.inheritClass( mw.cx.tools.ExternalLinkTool, mw.cx.tools.TranslationTool );
+
+mw.cx.tools.ExternalLinkTool.static.name = 'extlink';
+
+/**
+ * @inheritDoc
+ */
+mw.cx.tools.ExternalLinkTool.prototype.getActions = function () {
+ return [];
+};
+
+mw.cx.tools.ExternalLinkTool.prototype.getContent = function () {
+ var $linkTitle, url;
+
+ url = this.model.getTargetURL();
+ $linkTitle = $( '<a>' )
+ .text( url )
+ .addClass( 'cx-tools-extlink' )
+ .prop( {
+ target: '_blank',
+ rel: 'mw:ExtLink',
+ title: mw.msg( 'cx-tools-link-hover-tooltip' ),
+ href: url
+ } );
+ return $linkTitle;
+};
+
+/* Register */
+mw.cx.tools.translationToolFactory.register( mw.cx.tools.ExternalLinkTool );
diff --git a/modules/tools/styles/mw.cx.tools.ExternalLinkTool.less
b/modules/tools/styles/mw.cx.tools.ExternalLinkTool.less
new file mode 100644
index 0000000..c06d287
--- /dev/null
+++ b/modules/tools/styles/mw.cx.tools.ExternalLinkTool.less
@@ -0,0 +1,5 @@
+.cx-card-extlink {
+ .cx-tools-extlink {
+ word-wrap: break-word;
+ }
+}
diff --git
a/modules/ui/translationunits/mw.cx.ui.ExternalLinkTranslationUnit.js
b/modules/ui/translationunits/mw.cx.ui.ExternalLinkTranslationUnit.js
new file mode 100644
index 0000000..05e0397
--- /dev/null
+++ b/modules/ui/translationunits/mw.cx.ui.ExternalLinkTranslationUnit.js
@@ -0,0 +1,27 @@
+'use strict';
+
+/**
+ * External Link translation unit
+ *
+ * @class
+ * @param {mw.cx.dm.TranslationUnit} model
+ * @param {mw.cx.tools.TranslationToolFactory} toolFactory
+ * @param {Object} config
+ */
+mw.cx.ui.ExternalLinkTranslationUnit = function
MwCxUiExternalLinkTranslationUnit( model, toolFactory, config ) {
+ mw.cx.ui.ExternalLinkTranslationUnit.super.call( this, model,
toolFactory, config );
+};
+
+/* Setup */
+OO.inheritClass( mw.cx.ui.ExternalLinkTranslationUnit,
mw.cx.ui.TranslationUnit );
+
+mw.cx.ui.ExternalLinkTranslationUnit.static.name = 'extlink';
+mw.cx.ui.ExternalLinkTranslationUnit.static.matchTagNames = [ 'a' ];
+mw.cx.ui.ExternalLinkTranslationUnit.static.matchRdfaTypes = [ 'mw:ExtLink' ];
+mw.cx.ui.ExternalLinkTranslationUnit.static.highlightClass =
'cx-highlight--lightblue';
+mw.cx.ui.ExternalLinkTranslationUnit.static.tools = {
+ extlink: [ 'click', 'focus' ]
+};
+
+/* Register */
+mw.cx.ui.translationUnitFactory.register( mw.cx.ui.ExternalLinkTranslationUnit
);
diff --git a/modules/ui/translationunits/mw.cx.ui.LinkTranslationUnit.js
b/modules/ui/translationunits/mw.cx.ui.LinkTranslationUnit.js
index b54d681..8d134c1 100644
--- a/modules/ui/translationunits/mw.cx.ui.LinkTranslationUnit.js
+++ b/modules/ui/translationunits/mw.cx.ui.LinkTranslationUnit.js
@@ -34,11 +34,6 @@
return !!node.id;
};
-mw.cx.ui.LinkTranslationUnit.prototype.getPlaceholderSection = function () {
- return $( '<section>' )
- .addClass( 'cx-link-placeholder' );
-};
-
mw.cx.ui.LinkTranslationUnit.prototype.adapt = function () {
var self = this;
// Adapt in general will be asynchronous operation
@@ -72,10 +67,6 @@
// Re attach event handlers
this.listen();
this.emit( 'change' );
-};
-
-mw.cx.ui.LinkTranslationUnit.prototype.removePlaceholder = function () {
- this.$translationSection.removeClass( 'cx-link-placeholder' );
};
/**
--
To view, visit https://gerrit.wikimedia.org/r/346727
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I8cf8e155144297073c1f067e408fe6faf4cf05c7
Gerrit-PatchSet: 4
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