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