jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/346500 )

Change subject: CX2: Consolidate the init methods of ui translation units
......................................................................


CX2: Consolidate the init methods of ui translation units

Change-Id: I5f98f2d5eacc85681de754ddea4beed78ef2688f
---
M modules/dm/translationunits/mw.cx.dm.LinkTranslationUnit.js
M modules/dm/translationunits/mw.cx.dm.SentenceTranslationUnit.js
M modules/dm/translationunits/mw.cx.dm.TranslationUnit.js
M modules/ui/mw.cx.ui.TranslationView.js
M modules/ui/translationunits/mw.cx.ui.ImageTranslationUnit.js
M modules/ui/translationunits/mw.cx.ui.LinkTranslationUnit.js
M modules/ui/translationunits/mw.cx.ui.PoemTranslationUnit.js
M modules/ui/translationunits/mw.cx.ui.ReferenceTranslationUnit.js
M modules/ui/translationunits/mw.cx.ui.SectionTranslationUnit.js
M modules/ui/translationunits/mw.cx.ui.SentenceTranslationUnit.js
M modules/ui/translationunits/mw.cx.ui.TranslationUnit.js
11 files changed, 38 insertions(+), 58 deletions(-)

Approvals:
  jenkins-bot: Verified
  Nikerabbit: Looks good to me, approved



diff --git a/modules/dm/translationunits/mw.cx.dm.LinkTranslationUnit.js 
b/modules/dm/translationunits/mw.cx.dm.LinkTranslationUnit.js
index da52490..848e6e2 100644
--- a/modules/dm/translationunits/mw.cx.dm.LinkTranslationUnit.js
+++ b/modules/dm/translationunits/mw.cx.dm.LinkTranslationUnit.js
@@ -73,4 +73,13 @@
                } );
 };
 
+/**
+ * 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.LinkTranslationUnit );
diff --git a/modules/dm/translationunits/mw.cx.dm.SentenceTranslationUnit.js 
b/modules/dm/translationunits/mw.cx.dm.SentenceTranslationUnit.js
index dc3e8be..934542f 100644
--- a/modules/dm/translationunits/mw.cx.dm.SentenceTranslationUnit.js
+++ b/modules/dm/translationunits/mw.cx.dm.SentenceTranslationUnit.js
@@ -34,4 +34,12 @@
        return true;
 };
 
+/**
+ * Get the id of the section
+ * @return {string}
+ */
+mw.cx.dm.SentenceTranslationUnit.prototype.getSectionId = function () {
+       return this.sourceDocument.dataset.segmentid;
+};
+
 mw.cx.dm.modelRegistry.register( mw.cx.dm.SentenceTranslationUnit );
diff --git a/modules/dm/translationunits/mw.cx.dm.TranslationUnit.js 
b/modules/dm/translationunits/mw.cx.dm.TranslationUnit.js
index 7354625..bba522d 100644
--- a/modules/dm/translationunits/mw.cx.dm.TranslationUnit.js
+++ b/modules/dm/translationunits/mw.cx.dm.TranslationUnit.js
@@ -186,10 +186,7 @@
  */
 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.segmentid ||
-               this.sourceDocument.dataset.seqid ||
-               OO.ui.generateElementId();
+       return this.sourceDocument.id || OO.ui.generateElementId();
 };
 
 /**
@@ -197,7 +194,7 @@
  * @return {string}
  */
 mw.cx.dm.TranslationUnit.prototype.getTranslationSectionId = function () {
-       return 'cx' + this.getSectionId().id;
+       return 'cx' + this.getSectionId();
 };
 
 mw.cx.dm.TranslationUnit.prototype.getTranslationSource = function () {
diff --git a/modules/ui/mw.cx.ui.TranslationView.js 
b/modules/ui/mw.cx.ui.TranslationView.js
index 051e4f6..e5868bc 100644
--- a/modules/ui/mw.cx.ui.TranslationView.js
+++ b/modules/ui/mw.cx.ui.TranslationView.js
@@ -97,7 +97,7 @@
                );
 
                // Initialize the translation unit
-               translationUnit.render();
+               translationUnit.init();
 
                // Make the sections visible
                this.columns.sourceColumn.add( 
translationUnit.getSourceSection(), i );
diff --git a/modules/ui/translationunits/mw.cx.ui.ImageTranslationUnit.js 
b/modules/ui/translationunits/mw.cx.ui.ImageTranslationUnit.js
index 1693038..9b1dd22 100644
--- a/modules/ui/translationunits/mw.cx.ui.ImageTranslationUnit.js
+++ b/modules/ui/translationunits/mw.cx.ui.ImageTranslationUnit.js
@@ -23,16 +23,6 @@
 mw.cx.ui.ImageTranslationUnit.static.highlightClass = 'cx-image-highlight';
 mw.cx.ui.ImageTranslationUnit.static.tools = {};
 
-mw.cx.ui.ImageTranslationUnit.prototype.init = function () {
-       if ( !this.model.sourceDocument.id ) {
-               throw Error( '[CX] Invalid source document' );
-       }
-       this.$sourceSection = $( this.model.sourceDocument );
-       this.$translationSection = this.getTranslationSection();
-       this.adapt();
-       this.listen();
-};
-
 mw.cx.ui.ImageTranslationUnit.prototype.adapt = function () {
        // Adapt in general will be asynchronous operation
        this.model.adapt();
diff --git a/modules/ui/translationunits/mw.cx.ui.LinkTranslationUnit.js 
b/modules/ui/translationunits/mw.cx.ui.LinkTranslationUnit.js
index f59a425..b54d681 100644
--- a/modules/ui/translationunits/mw.cx.ui.LinkTranslationUnit.js
+++ b/modules/ui/translationunits/mw.cx.ui.LinkTranslationUnit.js
@@ -34,16 +34,6 @@
        return !!node.id;
 };
 
-mw.cx.ui.LinkTranslationUnit.prototype.init = function () {
-       if ( !this.model.sourceDocument.id ) {
-               throw Error( '[CX] Invalid source document' );
-       }
-       this.$sourceSection = this.getSourceSection();
-       this.$translationSection = this.getTranslationSection();
-       this.adapt();
-       this.listen();
-};
-
 mw.cx.ui.LinkTranslationUnit.prototype.getPlaceholderSection = function () {
        return $( '<section>' )
                .addClass( 'cx-link-placeholder' );
diff --git a/modules/ui/translationunits/mw.cx.ui.PoemTranslationUnit.js 
b/modules/ui/translationunits/mw.cx.ui.PoemTranslationUnit.js
index 8c46511..db83b02 100644
--- a/modules/ui/translationunits/mw.cx.ui.PoemTranslationUnit.js
+++ b/modules/ui/translationunits/mw.cx.ui.PoemTranslationUnit.js
@@ -20,15 +20,6 @@
 mw.cx.ui.PoemTranslationUnit.static.highlightClass = 'cx-highlight--lightblue';
 mw.cx.ui.PoemTranslationUnit.static.tools = {};
 
-mw.cx.ui.PoemTranslationUnit.prototype.init = function () {
-       // XXX: Why does this need to be repeated in every subclass?
-       this.$sourceSection = $( this.model.sourceDocument );
-       this.$translationSection = 
this.parentTranslationUnit.$translationSection.find( '#' + 
this.model.sourceDocument.id );
-
-       this.adapt();
-       this.listen();
-};
-
 mw.cx.ui.PoemTranslationUnit.prototype.adapt = function () {
        this.model.adapt();
 };
diff --git a/modules/ui/translationunits/mw.cx.ui.ReferenceTranslationUnit.js 
b/modules/ui/translationunits/mw.cx.ui.ReferenceTranslationUnit.js
index d2278fb..742d3a7 100644
--- a/modules/ui/translationunits/mw.cx.ui.ReferenceTranslationUnit.js
+++ b/modules/ui/translationunits/mw.cx.ui.ReferenceTranslationUnit.js
@@ -23,16 +23,6 @@
        reference: [ 'click' ]
 };
 
-mw.cx.ui.ReferenceTranslationUnit.prototype.init = function () {
-       if ( !this.model.sourceDocument.id ) {
-               throw Error( '[CX] Invalid source document' );
-       }
-       this.$sourceSection = $( this.model.sourceDocument );
-       this.$translationSection = this.getTranslationSection();
-       this.adapt();
-       this.listen();
-};
-
 mw.cx.ui.ReferenceTranslationUnit.prototype.isEditable = function () {
        return true;
 };
diff --git a/modules/ui/translationunits/mw.cx.ui.SectionTranslationUnit.js 
b/modules/ui/translationunits/mw.cx.ui.SectionTranslationUnit.js
index 83ddd8d..d69cd22 100644
--- a/modules/ui/translationunits/mw.cx.ui.SectionTranslationUnit.js
+++ b/modules/ui/translationunits/mw.cx.ui.SectionTranslationUnit.js
@@ -31,7 +31,10 @@
        dictionary: [ 'select' ]
 };
 
-mw.cx.ui.SectionTranslationUnit.prototype.render = function () {
+/**
+ *  @inheritDoc
+ */
+mw.cx.ui.SectionTranslationUnit.prototype.init = function () {
        // XXX: The model is not yet ready when the constructor is called
        this.$sourceSection = this.createSourceSection( this.model );
        this.$translationSection = this.createTranslationSection( this.model );
diff --git a/modules/ui/translationunits/mw.cx.ui.SentenceTranslationUnit.js 
b/modules/ui/translationunits/mw.cx.ui.SentenceTranslationUnit.js
index e7b0087..9da1863 100644
--- a/modules/ui/translationunits/mw.cx.ui.SentenceTranslationUnit.js
+++ b/modules/ui/translationunits/mw.cx.ui.SentenceTranslationUnit.js
@@ -27,14 +27,4 @@
        return node.className === 'cx-segment';
 };
 
-mw.cx.ui.SentenceTranslationUnit.prototype.init = function () {
-       var segmentId;
-
-       this.$sourceSection = $( this.model.sourceDocument );
-       segmentId = this.$sourceSection.data( 'segmentid' );
-       this.$translationSection = 
this.parentTranslationUnit.$translationSection
-               .find( '[data-segmentid="' + segmentId + '"]' );
-       this.listen();
-};
-
 mw.cx.ui.translationUnitFactory.register( mw.cx.ui.SentenceTranslationUnit );
diff --git a/modules/ui/translationunits/mw.cx.ui.TranslationUnit.js 
b/modules/ui/translationunits/mw.cx.ui.TranslationUnit.js
index a31e7d9..4392e88 100644
--- a/modules/ui/translationunits/mw.cx.ui.TranslationUnit.js
+++ b/modules/ui/translationunits/mw.cx.ui.TranslationUnit.js
@@ -39,7 +39,19 @@
  * this method will be called. All initialization code can go here.
  */
 mw.cx.ui.TranslationUnit.prototype.init = function () {
+       if ( !this.model.getSectionId() ) {
+               throw Error( '[CX] Invalid source document' );
+       }
+       this.$sourceSection = this.getSourceSection();
+       this.$translationSection = this.getTranslationSection();
+       this.adapt();
+       this.listen();
 };
+
+/**
+ * Adapt this translation unit to target langauge
+ */
+mw.cx.ui.TranslationUnit.prototype.adapt = function () {};
 
 mw.cx.ui.TranslationUnit.prototype.getPlaceholderSection = function () {
        return $( '<section>' )
@@ -204,10 +216,10 @@
  */
 mw.cx.ui.TranslationUnit.prototype.getTranslationSection = function () {
        if ( this.model.targetDocument ) {
-               return this.parentTranslationUnit.$translationSection.find( 
'[id="' + this.model.targetDocument.id + '"]' );
+               return this.parentTranslationUnit.$translationSection.find( 
'[id="' + this.model.getTranslationSectionId() + '"]' );
        }
        // Fallback to copy of source section
-       return this.parentTranslationUnit.$translationSection.find( '[id="' + 
this.model.sourceDocument.id + '"]' );
+       return this.parentTranslationUnit.$translationSection.find( '[id="' + 
this.model.getSectionId() + '"]' );
 };
 
 /**

-- 
To view, visit https://gerrit.wikimedia.org/r/346500
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I5f98f2d5eacc85681de754ddea4beed78ef2688f
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/ContentTranslation
Gerrit-Branch: master
Gerrit-Owner: Santhosh <[email protected]>
Gerrit-Reviewer: Nikerabbit <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to