[MediaWiki-commits] [Gerrit] mediawiki...ContentTranslation[master]: Pass translation unit UI instance alone to translation tools

2017-02-06 Thread Nikerabbit (Code Review)
Nikerabbit has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/335610 )

Change subject: Pass translation unit UI instance alone to translation tools
..


Pass translation unit UI instance alone to translation tools

The data model and all other context can be accessed from it.
No need to pass them as explicit arguments.

Added methods to remove translation section, destroy the translation tool

Need to find a good naming for this dm class instance and ui class
instances.

Change-Id: I6c5c3c69052e163ad0fa156c2b7ae60d3e2fc028
---
M modules/dm/translationunits/mw.cx.dm.SectionTranslationUnit.js
M modules/dm/translationunits/mw.cx.dm.TranslationUnit.js
M modules/tools/mw.cx.tools.DictionaryTool.js
M modules/tools/mw.cx.tools.InstructionsTool.js
M modules/tools/mw.cx.tools.LinkTool.js
M modules/tools/mw.cx.tools.ReferenceTool.js
M modules/tools/mw.cx.tools.SearchTool.js
M modules/tools/mw.cx.tools.TranslationTool.js
M modules/ui/mw.cx.ui.ToolsColumn.js
M modules/ui/translationunits/mw.cx.ui.TranslationUnit.js
10 files changed, 74 insertions(+), 36 deletions(-)

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



diff --git a/modules/dm/translationunits/mw.cx.dm.SectionTranslationUnit.js 
b/modules/dm/translationunits/mw.cx.dm.SectionTranslationUnit.js
index d802442..6a79e1b 100644
--- a/modules/dm/translationunits/mw.cx.dm.SectionTranslationUnit.js
+++ b/modules/dm/translationunits/mw.cx.dm.SectionTranslationUnit.js
@@ -46,6 +46,7 @@
// Keep a map of DOM ids and translation units
this.subTranslationUnitModels[ children[ i ].id ] = 
subTranslationUnit;
this.translationUnits.push( subTranslationUnit );
+   subTranslationUnit.setParentTranslationUnit( this );
}
// Recursively search for sub translation units.
this.buildSubTranslationUnits( children[ i ] );
diff --git a/modules/dm/translationunits/mw.cx.dm.TranslationUnit.js 
b/modules/dm/translationunits/mw.cx.dm.TranslationUnit.js
index 9aafe05..393b7ea 100644
--- a/modules/dm/translationunits/mw.cx.dm.TranslationUnit.js
+++ b/modules/dm/translationunits/mw.cx.dm.TranslationUnit.js
@@ -37,7 +37,7 @@
this.requestManager = config.requestManager;
this.sourceLanguage = config.sourceLanguage;
this.targetLanguage = config.targetLanguage;
-
+   this.parentTranslationUnit = null;
// Parent constructor
mw.cx.dm.TranslationUnit.super.call( this );
this.connect( this, {
@@ -92,6 +92,14 @@
return this.translationUnits;
 };
 
+mw.cx.dm.TranslationUnit.prototype.getParentTranslationUnit = function () {
+   return this.parentTranslationUnit;
+};
+
+mw.cx.dm.TranslationUnit.prototype.setParentTranslationUnit = function ( 
translationUnit ) {
+   this.parentTranslationUnit = translationUnit;
+};
+
 /**
  * Whether the translation unit is editable
  * @return {boolean}
@@ -101,6 +109,17 @@
 };
 
 /**
+ * Remove the translation unit.
+ */
+mw.cx.dm.TranslationUnit.prototype.remove = function () {
+   if ( this.targetDocument ) {
+   this.targetDocument.remove();
+   this.emit( 'change' );
+   this.emit( 'remove' );
+   }
+};
+
+/**
  * String representation of the translation unit instance. Useful for 
debugging.
  *
  * @return {string} String identified for the instance
diff --git a/modules/tools/mw.cx.tools.DictionaryTool.js 
b/modules/tools/mw.cx.tools.DictionaryTool.js
index bd59780..4403286 100644
--- a/modules/tools/mw.cx.tools.DictionaryTool.js
+++ b/modules/tools/mw.cx.tools.DictionaryTool.js
@@ -4,18 +4,15 @@
  * @class
  * @extends mw.cx.tools.TranslationTool
  * @constructor
- * @param {mw.cx.dm.TranslationUnit} translationUnit
- * @param {mw.cx.ui.TranslationView} translationView
+ * @param {mw.cx.ui.TranslationUnit} translationUnit
  * @param {Object} config
  */
-
-mw.cx.tools.DictionaryTool = function CXDictionaryTool( translationUnit, 
translationView, config ) {
+mw.cx.tools.DictionaryTool = function CXDictionaryTool( translationUnit, 
config ) {
config.order = 3;
config.title = 'Dictionary';
this.translationUnit = translationUnit;
-   this.translationView = translationView;
// Parent constructor
-   mw.cx.tools.DictionaryTool.super.call( this, translationUnit, 
translationView, config );
+   mw.cx.tools.DictionaryTool.super.call( this, translationUnit, config );
 };
 
 /* Inheritance */
diff --git a/modules/tools/mw.cx.tools.InstructionsTool.js 
b/modules/tools/mw.cx.tools.InstructionsTool.js
index 49abfe4..84aa11b 100644
--- a/modules/tools/mw.cx.tools.InstructionsTool.js
+++ b/modules/tools/mw.cx.tools.InstructionsTool.js
@@ -37,14 +37,13 @@
  * @class
  * @extends mw.cx.tools.TranslationTool
  * @constructor
- * @param {mw.cx.dm.TranslationUnit} tra

[MediaWiki-commits] [Gerrit] mediawiki...ContentTranslation[master]: Pass translation unit UI instance alone to translation tools

2017-02-01 Thread Santhosh (Code Review)
Santhosh has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/335610 )

Change subject: Pass translation unit UI instance alone to translation tools
..

Pass translation unit UI instance alone to translation tools

The data model and all other context can be accessed from it.
No need to pass them as explicit arguments.

Added methods to remove translation section, destroy the translation tool

Need to find a good naming for this dm class instance and ui class
instances.

Change-Id: I6c5c3c69052e163ad0fa156c2b7ae60d3e2fc028
---
M modules/dm/translationunits/mw.cx.dm.SectionTranslationUnit.js
M modules/dm/translationunits/mw.cx.dm.TranslationUnit.js
M modules/tools/mw.cx.tools.DictionaryTool.js
M modules/tools/mw.cx.tools.InstructionsTool.js
M modules/tools/mw.cx.tools.LinkTool.js
M modules/tools/mw.cx.tools.ReferenceTool.js
M modules/tools/mw.cx.tools.SearchTool.js
M modules/tools/mw.cx.tools.TranslationTool.js
M modules/ui/mw.cx.ui.ToolsColumn.js
M modules/ui/translationunits/mw.cx.ui.TranslationUnit.js
10 files changed, 74 insertions(+), 36 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/ContentTranslation 
refs/changes/10/335610/1

diff --git a/modules/dm/translationunits/mw.cx.dm.SectionTranslationUnit.js 
b/modules/dm/translationunits/mw.cx.dm.SectionTranslationUnit.js
index 6f01604..5db688d 100644
--- a/modules/dm/translationunits/mw.cx.dm.SectionTranslationUnit.js
+++ b/modules/dm/translationunits/mw.cx.dm.SectionTranslationUnit.js
@@ -50,6 +50,7 @@
// Keep a map of DOM ids and translation units
this.subTranslationUnitModels[ children[ i ].id ] = 
subTranslationUnit;
this.translationUnits.push( subTranslationUnit );
+   subTranslationUnit.setParentTranslationUnit( this );
}
// Recursively search for sub translation units.
this.buildSubTranslationUnits( children[ i ] );
diff --git a/modules/dm/translationunits/mw.cx.dm.TranslationUnit.js 
b/modules/dm/translationunits/mw.cx.dm.TranslationUnit.js
index 9aafe05..393b7ea 100644
--- a/modules/dm/translationunits/mw.cx.dm.TranslationUnit.js
+++ b/modules/dm/translationunits/mw.cx.dm.TranslationUnit.js
@@ -37,7 +37,7 @@
this.requestManager = config.requestManager;
this.sourceLanguage = config.sourceLanguage;
this.targetLanguage = config.targetLanguage;
-
+   this.parentTranslationUnit = null;
// Parent constructor
mw.cx.dm.TranslationUnit.super.call( this );
this.connect( this, {
@@ -92,6 +92,14 @@
return this.translationUnits;
 };
 
+mw.cx.dm.TranslationUnit.prototype.getParentTranslationUnit = function () {
+   return this.parentTranslationUnit;
+};
+
+mw.cx.dm.TranslationUnit.prototype.setParentTranslationUnit = function ( 
translationUnit ) {
+   this.parentTranslationUnit = translationUnit;
+};
+
 /**
  * Whether the translation unit is editable
  * @return {boolean}
@@ -101,6 +109,17 @@
 };
 
 /**
+ * Remove the translation unit.
+ */
+mw.cx.dm.TranslationUnit.prototype.remove = function () {
+   if ( this.targetDocument ) {
+   this.targetDocument.remove();
+   this.emit( 'change' );
+   this.emit( 'remove' );
+   }
+};
+
+/**
  * String representation of the translation unit instance. Useful for 
debugging.
  *
  * @return {string} String identified for the instance
diff --git a/modules/tools/mw.cx.tools.DictionaryTool.js 
b/modules/tools/mw.cx.tools.DictionaryTool.js
index bd59780..4403286 100644
--- a/modules/tools/mw.cx.tools.DictionaryTool.js
+++ b/modules/tools/mw.cx.tools.DictionaryTool.js
@@ -4,18 +4,15 @@
  * @class
  * @extends mw.cx.tools.TranslationTool
  * @constructor
- * @param {mw.cx.dm.TranslationUnit} translationUnit
- * @param {mw.cx.ui.TranslationView} translationView
+ * @param {mw.cx.ui.TranslationUnit} translationUnit
  * @param {Object} config
  */
-
-mw.cx.tools.DictionaryTool = function CXDictionaryTool( translationUnit, 
translationView, config ) {
+mw.cx.tools.DictionaryTool = function CXDictionaryTool( translationUnit, 
config ) {
config.order = 3;
config.title = 'Dictionary';
this.translationUnit = translationUnit;
-   this.translationView = translationView;
// Parent constructor
-   mw.cx.tools.DictionaryTool.super.call( this, translationUnit, 
translationView, config );
+   mw.cx.tools.DictionaryTool.super.call( this, translationUnit, config );
 };
 
 /* Inheritance */
diff --git a/modules/tools/mw.cx.tools.InstructionsTool.js 
b/modules/tools/mw.cx.tools.InstructionsTool.js
index 49abfe4..84aa11b 100644
--- a/modules/tools/mw.cx.tools.InstructionsTool.js
+++ b/modules/tools/mw.cx.tools.InstructionsTool.js
@@ -37,14 +37,13 @@
  * @class
  * @extends mw.cx.tools.TranslationTool
  * @constructor
- * @param {mw.cx