diff --git a/apps/spreadsheeteditor/main/app/view/FormatSettingsDialog.js b/apps/spreadsheeteditor/main/app/view/FormatSettingsDialog.js
index d28ab9e5e..169b2bb0c 100644
--- a/apps/spreadsheeteditor/main/app/view/FormatSettingsDialog.js
+++ b/apps/spreadsheeteditor/main/app/view/FormatSettingsDialog.js
@@ -103,7 +103,7 @@ define([
'',
'',
'',
- '
',
+ '
',
'',
' | ',
'
',
@@ -140,7 +140,7 @@ define([
'',
'',
'',
- '',
+ '',
' | ',
'',
'',
@@ -229,16 +229,14 @@ define([
});
this.cmbType.on('selected', _.bind(this.onTypeSelect, this));
- this.cmbCode = new Common.UI.ComboBox({
- el: $('#format-settings-combo-code'),
- cls: 'input-group-nr',
- menuStyle: 'min-width: 310px;max-height:235px;',
- editable: false,
- data: [],
- scrollAlwaysVisible: true,
- takeFocusOnClose: true
+ this.codesList = new Common.UI.ListView({
+ el: $('#format-settings-list-code'),
+ store: new Common.UI.DataViewStore(),
+ tabindex: 1,
+ itemTemplate: _.template('<%= value %>
')
});
- this.cmbCode.on('selected', _.bind(this.onCodeSelect, this));
+ this.codesList.on('item:select', _.bind(this.onCodeSelect, this));
+ this.codesList.on('entervalue', _.bind(this.onPrimary, this));
this.inputCustomFormat = new Common.UI.InputField({
el : $('#format-settings-txt-code'),
@@ -246,7 +244,7 @@ define([
validateOnChange : true,
validation : function () { return true; }
}).on ('changing', function (input, value) {
- (me.cmbCode.getValue() !== me.txtCustom) && me.cmbCode.setValue(me.txtCustom);
+ me.codesList.deselectAll();
me.Format = me.api.asc_convertNumFormatLocal2NumFormat(value);
me.lblExample.text(me.api.asc_getLocaleExample(me.Format));
});
@@ -257,6 +255,7 @@ define([
this._typePanel = this.$window.find('.format-type');
this._symbolsPanel = this.$window.find('.format-symbols');
this._codePanel = this.$window.find('.format-code');
+ this._nocodePanel = this.$window.find('.format-no-code');
this.lblExample = this.$window.find('#format-settings-label-example');
@@ -264,7 +263,7 @@ define([
},
getFocusedComponents: function() {
- return [this.cmbFormat, this.spnDecimal, this.cmbSymbols, this.cmbNegative, this.cmbType, this.cmbCode];
+ return [this.cmbFormat, this.spnDecimal, this.cmbSymbols, this.cmbNegative, this.cmbType, this.inputCustomFormat, {cmp: this.codesList, selector: '.listview'}];
},
getDefaultFocusableComponent: function () {
@@ -418,10 +417,12 @@ define([
this.lblExample.text(this.api.asc_getLocaleExample(this.Format));
},
- onCodeSelect: function(combo, record){
- this.Format = record.value;
+ onCodeSelect: function(listView, itemView, record){
+ if (!record) return;
+
+ this.Format = record.get('format');
this.lblExample.text(this.api.asc_getLocaleExample(this.Format));
- this.inputCustomFormat.setValue(record.displayValue);
+ this.inputCustomFormat.setValue(record.get('value'));
},
onFormatSelect: function(combo, record, e, initFormatInfo) {
@@ -501,17 +502,28 @@ define([
data = [],
isCustom = (this.CustomFormat) ? true : false;
formatsarr.forEach(function(item) {
- data.push({value: item, displayValue: me.api.asc_convertNumFormat2NumFormatLocal(item)});
+ var rec = new Common.UI.DataViewModel();
+ rec.set({
+ value: me.api.asc_convertNumFormat2NumFormatLocal(item),
+ format: item
+ });
+ data.push(rec);
if (me.CustomFormat == item)
isCustom = false;
});
if (isCustom) {
- data.push({value: this.CustomFormat, displayValue: this.CustomFormat});
+ var rec = new Common.UI.DataViewModel();
+ rec.set({
+ value: me.api.asc_convertNumFormat2NumFormatLocal(this.CustomFormat),
+ format: this.CustomFormat
+ });
+ data.push(rec);
}
- this.cmbCode.setData(data);
- var value = me.api.asc_convertNumFormat2NumFormatLocal(this.Format);
- this.cmbCode.setValue(value);
- this.inputCustomFormat.setValue(value);
+ this.codesList.store.reset(data, {silent: false});
+ var rec = this.codesList.store.findWhere({value: this.Format});
+ rec && this.codesList.selectRecord(rec);
+ rec && this.codesList.scrollToRecord(rec);
+ this.inputCustomFormat.setValue(me.api.asc_convertNumFormat2NumFormatLocal(this.Format));
}
this.lblExample.text(this.api.asc_getLocaleExample(this.Format));
@@ -522,6 +534,7 @@ define([
this._typePanel.toggleClass('hidden', !hasType);
this._symbolsPanel.toggleClass('hidden', !hasSymbols);
this._codePanel.toggleClass('hidden', !hasCode);
+ this._nocodePanel.toggleClass('hidden', hasCode);
this._state = { hasDecimal: hasDecimal, hasNegative: hasNegative, hasSeparator: hasSeparator, hasType: hasType, hasSymbols: hasSymbols, hasCode: hasCode};
},