diff --git a/apps/documenteditor/main/app/view/WatermarkSettingsDialog.js b/apps/documenteditor/main/app/view/WatermarkSettingsDialog.js index e0583d77a..037708504 100644 --- a/apps/documenteditor/main/app/view/WatermarkSettingsDialog.js +++ b/apps/documenteditor/main/app/view/WatermarkSettingsDialog.js @@ -49,12 +49,11 @@ define(['text!documenteditor/main/app/template/WatermarkSettings.template', DE.Views.WatermarkText = new(function() { var langs; var _get = function() { - if (langs) - return langs; - + return langs; + }; + var _load = function(callback) { langs = []; - try { - var langJson = Common.Utils.getConfigJson('resources/watermark/wm-text.json'); + Common.Utils.loadConfig('resources/watermark/wm-text.json', function (langJson) { for (var lang in langJson) { var val = Common.util.LanguageInfo.getLocalLanguageCode(lang); if (val) { @@ -66,14 +65,12 @@ define(['text!documenteditor/main/app/template/WatermarkSettings.template', if (a.shortname > b.shortname) return 1; return 0; }); - } - catch (e) { - } - - return langs; + callback && callback(langs); + }); }; return { - get: _get + get: _get, + load: _load }; })(); @@ -115,6 +112,7 @@ define(['text!documenteditor/main/app/template/WatermarkSettings.template', this.imageControls = []; this.fontName = 'Arial'; this.lang = 'en'; + this.text = ''; this.isAutoColor = false; this.isImageLoaded = false; @@ -209,6 +207,7 @@ define(['text!documenteditor/main/app/template/WatermarkSettings.template', scrollAlwaysVisible: true, data : [] }).on('selected', _.bind(this.onSelectLang, this)); + this.cmbLang.setValue(Common.util.LanguageInfo.getLocalLanguageName(9)[1]);//en this.textControls.push(this.cmbLang); this.cmbText = new Common.UI.ComboBox({ @@ -422,18 +421,28 @@ define(['text!documenteditor/main/app/template/WatermarkSettings.template', }, loadLanguages: function() { - this.languages = DE.Views.WatermarkText.get(); - var data = []; - this.languages && this.languages.forEach(function(item) { - data.push({displayValue: item.name, value: item.shortname, wmtext: item.text}); - }); - this.cmbLang.setData(data); - if (data.length) { - var item = this.cmbLang.store.findWhere({value: this.lang}) || this.cmbLang.store.at(0); - this.cmbLang.setValue(this.lang); - this.onSelectLang(this.cmbLang, item.toJSON()); - } else - this.cmbLang.setDisabled(true); + var me = this; + var callback = function(languages) { + var data = []; + me.languages = languages; + me.languages && me.languages.forEach(function(item) { + data.push({displayValue: item.name, value: item.shortname, wmtext: item.text}); + }); + if (data.length) { + me.cmbLang.setData(data); + var item = me.cmbLang.store.findWhere({value: me.lang}) || me.cmbLang.store.at(0); + me.cmbLang.setValue(me.lang); + me.cmbLang.setDisabled(!me.radioText.getValue()); + me.onSelectLang(me.cmbLang, item.toJSON()); + me.text && me.cmbText.setValue(me.text); + } else + me.cmbLang.setDisabled(true); + }; + var languages = DE.Views.WatermarkText.get(); + if (languages) + callback(languages); + else + DE.Views.WatermarkText.load(callback); }, onSelectLang: function(combo, record) { @@ -444,8 +453,10 @@ define(['text!documenteditor/main/app/template/WatermarkSettings.template', data.push({value: item}); }); this.lang = record.value; - this.cmbText.setData(data); - this.cmbText.setValue(data[0].value); + if (data.length>0) { + this.cmbText.setData(data); + this.cmbText.setValue(data[0].value); + } }, loadWMText: function(lang) { @@ -463,8 +474,10 @@ define(['text!documenteditor/main/app/template/WatermarkSettings.template', item && item.get('wmtext').forEach(function(item) { data.push({value: item}); }); - this.cmbText.setData(data); - (data.length>0) && this.cmbText.setValue(data[0].value); + if (data.length>0) { + this.cmbText.setData(data); + this.cmbText.setValue(data[0].value); + } }, insertFromUrl: function() { @@ -555,6 +568,7 @@ define(['text!documenteditor/main/app/template/WatermarkSettings.template', } val = props.get_Text(); val && this.cmbText.setValue(val); + this.text = val || ''; } this.disableControls(type); } @@ -610,7 +624,7 @@ define(['text!documenteditor/main/app/template/WatermarkSettings.template', _.each(this.textControls, function(item) { item.setDisabled(disable); }); - this.cmbLang.setDisabled(disable || this.languages.length<1); + this.cmbLang.setDisabled(disable || !this.languages || this.languages.length<1); this.btnOk.setDisabled(type==Asc.c_oAscWatermarkType.Image && !this.isImageLoaded); },