From 785105cde2f7748f68cd1484e484c79357e5886f Mon Sep 17 00:00:00 2001 From: miker Date: Fri, 18 Apr 2008 05:14:48 +0000 Subject: [PATCH 1/1] refactoring the translation widget some more -- happier with grids now, only slightly painful git-svn-id: svn://svn.open-ils.org/ILS/trunk@9376 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/web/js/dojo/openils/I18N.js | 55 ++++++++++++++-------------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/Open-ILS/web/js/dojo/openils/I18N.js b/Open-ILS/web/js/dojo/openils/I18N.js index a35995aace..a99fa41692 100644 --- a/Open-ILS/web/js/dojo/openils/I18N.js +++ b/Open-ILS/web/js/dojo/openils/I18N.js @@ -73,16 +73,17 @@ if(!dojo._hasResource["openils.I18N"]) { [dijit._Widget, dijit._Templated], { - templateString : "
Translate
", + templateString : "
Translate
", widgetsInTemplate: true, field : "", - targetObject : "" + targetObject : "", + unique : "" } ); - openils.I18N.translationWidget.renderTranslationPopup = function (obj, field) { - var node = dojo.byId(field + '_translation'); + openils.I18N.translationWidget.renderTranslationPopup = function (obj, field, num) { + var node = dojo.byId(field + '_translation_' + num); var trans_list = openils.I18N.getTranslations( obj, field ); @@ -132,7 +133,7 @@ if(!dojo._hasResource["openils.I18N"]) { dijit.form.Button, { onClick : (function (trans_id, obj, field) { - return function () { openils.I18N.translationWidget.updateTranslation(trans_id, obj, field) } + return function () { openils.I18N.translationWidget.updateTranslation(trans_id, obj, field, num) } })(trans_id, obj, field) } ); @@ -141,7 +142,7 @@ if(!dojo._hasResource["openils.I18N"]) { dijit.form.Button, { onClick : (function (trans_id, obj, field) { - return function () { openils.I18N.translationWidget.removeTranslation(trans_id, obj, field) } + return function () { openils.I18N.translationWidget.removeTranslation(trans_id, obj, field, num) } })(trans_id, obj, field) } ); @@ -149,10 +150,10 @@ if(!dojo._hasResource["openils.I18N"]) { trans_tbody.appendChild( trans_row ); } - old_dijit = dijit.byId('i18n_new_locale_' + obj.classname + '.' + field); + old_dijit = dijit.byId('i18n_new_locale_' + obj.classname + '.' + field + num); if (old_dijit) old_dijit.destroy(); - old_dijit = dijit.byId('i18n_new_translation_' + obj.classname + '.' + field); + old_dijit = dijit.byId('i18n_new_translation_' + obj.classname + '.' + field + num); if (old_dijit) old_dijit.destroy(); trans_row = dojo.query('tr',trans_template)[0].cloneNode(true); @@ -161,7 +162,7 @@ if(!dojo._hasResource["openils.I18N"]) { dijit.form.ComboBox, { store:openils.I18N.localeStore, searchAttr:'locale', - id:'i18n_new_locale_' + obj.classname + '.' + field, + id:'i18n_new_locale_' + obj.classname + '.' + field + num, lowercase:true, required:true, invalidMessage:'Specify locale as {languageCode}_{countryCode}, like en_us', @@ -172,27 +173,27 @@ if(!dojo._hasResource["openils.I18N"]) { dojo.query('.translation_textbox',trans_row).addClass('new_translation').instantiate( dijit.form.TextBox, { required : true, - id:'i18n_new_translation_' + obj.classname + '.' + field + id:'i18n_new_translation_' + obj.classname + '.' + field + num } ); dojo.query('.create_button',trans_row).style({ visibility : 'visible', display : 'inline'}).instantiate( dijit.form.Button, - { onClick : function () { openils.I18N.translationWidget.createTranslation( obj, field) } } + { onClick : function () { openils.I18N.translationWidget.createTranslation( obj, field, num) } } ); trans_tbody.appendChild( trans_row ); } - openils.I18N.translationWidget.updateTranslation = function (trans_id, obj, field) { - return openils.I18N.translationWidget.changeTranslation('update', trans_id, obj, field); + openils.I18N.translationWidget.updateTranslation = function (trans_id, obj, field, num) { + return openils.I18N.translationWidget.changeTranslation('update', trans_id, obj, field, num); } - openils.I18N.translationWidget.removeTranslation = function (trans_id, obj, field) { - return openils.I18N.translationWidget.changeTranslation('delete', trans_id, obj, field); + openils.I18N.translationWidget.removeTranslation = function (trans_id, obj, field, num) { + return openils.I18N.translationWidget.changeTranslation('delete', trans_id, obj, field, num); } - openils.I18N.translationWidget.changeTranslation = function (method, trans_id, obj, field) { + openils.I18N.translationWidget.changeTranslation = function (method, trans_id, obj, field, num) { var trans_obj = new i18n().fromHash({ ischanged : method == 'update' ? 1 : 0, @@ -204,24 +205,24 @@ if(!dojo._hasResource["openils.I18N"]) { string : dijit.byId('translation_' + trans_id).getValue() }); - openils.I18N.translationWidget.writeTranslation(method, trans_obj, obj, field); + openils.I18N.translationWidget.writeTranslation(method, trans_obj, obj, field, num); } - openils.I18N.translationWidget.createTranslation = function (obj, field) { - var node = dojo.byId(field + '_translation'); + openils.I18N.translationWidget.createTranslation = function (obj, field, num) { + var node = dojo.byId(field + '_translation_' + num); var trans_obj = new i18n().fromHash({ isnew : 1, fq_field : obj.classname + '.' + field, identity_value : obj.id(), - translation : dijit.byId('i18n_new_locale_' + obj.classname + '.' + field).getValue(), - string : dijit.byId('i18n_new_translation_' + obj.classname + '.' + field).getValue() + translation : dijit.byId('i18n_new_locale_' + obj.classname + '.' + field + num).getValue(), + string : dijit.byId('i18n_new_translation_' + obj.classname + '.' + field + num).getValue() }); - openils.I18N.translationWidget.writeTranslation('create', trans_obj, obj, field); + openils.I18N.translationWidget.writeTranslation('create', trans_obj, obj, field, num); } - openils.I18N.translationWidget.writeTranslation = function (method, trans_obj, obj, field) { + openils.I18N.translationWidget.writeTranslation = function (method, trans_obj, obj, field, num) { OpenSRF.CachedClientSession('open-ils.permacrud').request({ method : 'open-ils.permacrud.' + method + '.i18n', @@ -240,10 +241,10 @@ if(!dojo._hasResource["openils.I18N"]) { if (method == 'delete') { dojo.NodeList(dojo.byId('translation_row_' + trans_obj.id())).orphan(); } else if (method == 'create') { - var node = dojo.byId(field + '_translation'); - dijit.byId('i18n_new_locale_' + obj.classname + '.' + field).setValue(null); - dijit.byId('i18n_new_translation_' + obj.classname + '.' + field).setValue(null); - openils.I18N.translationWidget.renderTranslationPopup(obj, field); + var node = dojo.byId(field + '_translation_' + num); + dijit.byId('i18n_new_locale_' + obj.classname + '.' + field + num).setValue(null); + dijit.byId('i18n_new_translation_' + obj.classname + '.' + field + num).setValue(null); + openils.I18N.translationWidget.renderTranslationPopup(obj, field, num); } } else { -- 2.43.2