[DE] Watermark: asynchronous loading of languages

This commit is contained in:
Julia Radzhabova 2019-08-09 11:44:02 +03:00
parent 5b068c5d28
commit e79a49ad44

View file

@ -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);
},