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 <santhosh.thottin...@gmail.com>
Gerrit-Reviewer: Nikerabbit <niklas.laxst...@gmail.com>
Gerrit-Reviewer: Santhosh <santhosh.thottin...@gmail.com>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to