[dijit._Widget, dijit._Templated],
{
- templateString : "<span dojoAttachPoint='node'><div id='${field}_translation_button_${unique}' dojoAttachPoint='translateLabelNode' dojoType='dijit.form.DropDownButton'><span>Translate</span><div id='${field}_translation_${unique}' dojoAttachPoint='tooltipDialog' dojoType='dijit.TooltipDialog'><div dojoType='dijit.layout.ContentPane'><table><tbody class='translation_tbody_template' style='display:none; visibility:hidden;'><tr><th dojoAttachPoint='localeLabelNode'/><td class='locale'><div class='locale_combobox'></div></td><th dojoAttachPoint='translationLabelNode'/><td class='translation'><div class='translation_textbox'></div></td><td><button class='create_button' style='display:none; visibility:hidden;'><span dojoAttachPoint='createButtonNode'/></button><button class='update_button' style='display:none; visibility:hidden;'><span dojoAttachPoint='updateButtonNode'/></button><button class='delete_button' style='display:none; visibility:hidden;'><span dojoAttachPoint='removeButtonNode'/></button></td></tr></tbody><tbody class='translation_tbody'></tbody></table></div></div></div></span>",
+ templateString : "<span id='${field}_translation_${unique}' dojoAttachPoint='containerNode'><div id='${field}_translation_button_${unique}' dojoAttachPoint='translateLabelNode' dojoType='dijit.form.DropDownButton'><span>Translate</span><div id='${field}_translation_tooltip_${unique}' dojoAttachPoint='tooltipDialog' dojoType='dijit.TooltipDialog'><div dojoType='dijit.layout.ContentPane'><table><tbody class='translation_tbody_template' style='display:none; visibility:hidden;'><tr><th dojoAttachPoint='localeLabelNode'/><td class='locale'><div class='locale_combobox'></div></td><th dojoAttachPoint='translationLabelNode'/><td class='translation'><div class='translation_textbox'></div></td><td><button class='create_button' style='display:none; visibility:hidden;'><span dojoAttachPoint='createButtonNode'/></button><button class='update_button' style='display:none; visibility:hidden;'><span dojoAttachPoint='updateButtonNode'/></button><button class='delete_button' style='display:none; visibility:hidden;'><span dojoAttachPoint='removeButtonNode'/></button></td></tr></tbody><tbody class='translation_tbody'></tbody></table></div></div></div></span>",
widgetsInTemplate: true,
field : "",
targetObject : "",
unique : "",
+ postMixInProperties : function () {
+ if (!this.unique) this.unique = openils.widget.TranslatorPopup._unique++;
+ },
+
postCreate : function () {
- dojo.connect(this.tooltipDialog, 'onOpen', this, 'renderTranslatorPopup');
+ dojo.connect(this.tooltipDialog, 'onFocus', this, 'renderTranslatorPopup');
this.nls = dojo.i18n.getLocalization("openils.widget", "TranslatorPopup");
renderTranslatorPopup : function () {
+ var _trans_dijit = this;
+
this._targetObject = dojox.jsonPath.query(window, '$.' + this.targetObject, {evalType:"RESULT"});
- var node = dojo.byId(this.field + '_translation_' + this.unique);
+ var node = dojo.byId(this.field + '_translation_tooltip_' + this.unique);
var trans_list = openils.I18N.getTranslations( this._targetObject, this.field );
dojo.query('.update_button',trans_row).style({ visibility : 'visible', display : 'inline'}).instantiate(
dijit.form.Button,
- { onClick : dojo.hitch( this, 'updateTranslation') }
+ { onClick : dojo.hitch( _trans_dijit, 'updateTranslation', trans_id) }
);
dojo.query('.delete_button',trans_row).style({ visibility : 'visible', display : 'inline'}).instantiate(
dijit.form.Button,
- { onClick : dojo.hitch( this, 'removeTranslation') }
+ { onClick : dojo.hitch( _trans_dijit, 'removeTranslation', trans_id) }
);
trans_tbody.appendChild( trans_row );
dojo.query('.create_button',trans_row).style({ visibility : 'visible', display : 'inline'}).instantiate(
dijit.form.Button,
- { onClick : dojo.hitch( this, 'createTranslation') }
+ { onClick : dojo.hitch( _trans_dijit, 'createTranslation') }
);
trans_tbody.appendChild( trans_row );
},
createTranslation : function () {
- var node = dojo.byId(this.field + '_translation_' + this.unique);
+ var node = dojo.byId(this.field + '_translation_tooltip_' + this.unique);
var trans_obj = new i18n().fromHash({
isnew : 1,
writeTranslation : function (method, trans_obj) {
+ var _trans_dijit = this;
+
OpenSRF.CachedClientSession('open-ils.permacrud').request({
method : 'open-ils.permacrud.' + method + '.i18n',
timeout: 10,
params : [ ses, trans_obj ],
onerror: function (r) {
//highlighter.editor_pane.red.play();
- if (status_update) status_update( 'Problem saving translation for ' + this._targetObject[this.field]() );
+ if (status_update) status_update( 'Problem saving translation for ' + _trans_dijit._targetObject[_trans_dijit.field]() );
},
oncomplete : function (r) {
var res = r.recv();
if ( res && res.content() ) {
//highlighter.editor_pane.green.play();
- if (status_update) status_update( 'Saved changes to translation for ' + this._targetObject[this.field]() );
+ if (status_update) status_update( 'Saved changes to translation for ' + _trans_dijit._targetObject[_trans_dijit.field]() );
if (method == 'delete') {
dojo.NodeList(dojo.byId('translation_row_' + trans_obj.id())).orphan();
} else if (method == 'create') {
- var node = dojo.byId(this.field + '_translation_' + this.unique);
- dijit.byId('i18n_new_locale_' + this._targetObject.classname + '.' + this.field + this.unique).setValue(null);
- dijit.byId('i18n_new_translation_' + this._targetObject.classname + '.' + this.field + this.unique).setValue(null);
- this.renderTranslatorPopup();
+ var node = dojo.byId(_trans_dijit.field + '_translation_tooltip_' + _trans_dijit.unique);
+ dijit.byId('i18n_new_locale_' + _trans_dijit._targetObject.classname + '.' + _trans_dijit.field + _trans_dijit.unique).setValue(null);
+ dijit.byId('i18n_new_translation_' + _trans_dijit._targetObject.classname + '.' + _trans_dijit.field + _trans_dijit.unique).setValue(null);
+ _trans_dijit.renderTranslatorPopup();
}
} else {
//highlighter.editor_pane.red.play();
- if (status_update) status_update( 'Problem saving translation for ' + this._targetObject[this.field]() );
+ if (status_update) status_update( 'Problem saving translation for ' + _trans_dijit._targetObject[_trans_dijit.field]() );
}
},
}).send();