[MediaWiki-commits] [Gerrit] mediawiki...ContentTranslation[master]: Pass translation unit UI instance alone to translation tools
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
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