diff --git a/apps/spreadsheeteditor/main/app/view/SortDialog.js b/apps/spreadsheeteditor/main/app/view/SortDialog.js index 368946aaf..66f17f8a3 100644 --- a/apps/spreadsheeteditor/main/app/view/SortDialog.js +++ b/apps/spreadsheeteditor/main/app/view/SortDialog.js @@ -97,9 +97,14 @@ define([ 'text!spreadsheeteditor/main/app/template/SortDialog.template', template: _.template(['
'].join('')), itemTemplate: _.template([ '
', - '
', - '
', - '
', + '
', + '
', + '<% if (sort==Asc.c_oAscSortOptions.ByColorFill || sort==Asc.c_oAscSortOptions.ByColorFont) { %>', + '
', + '
', + '<% } else { %>', + '
', + '<% } %>', '
' ].join('')) }); @@ -257,6 +262,21 @@ define([ 'text!spreadsheeteditor/main/app/template/SortDialog.template', (val!==null) && combo.setValue(val); level.cmbSort = combo; + var sort = item.get('sort'); + if (sort==Asc.c_oAscSortOptions.ByColorFill || sort==Asc.c_oAscSortOptions.ByColorFont) { + combo = new Common.UI.ComboBoxColor({ + el : cmpEl.find('#sort-dialog-btn-color-' + i), + editable : false, + menuCls : 'menu-absolute', + data : level.color_data + }).on('selected', function(combo, record) { + item.set('color', record.value); + }); + val = item.get('color'); + (val!==null) && combo.setValue(val); + level.cmbColor = combo; + } + el = cmpEl.find('#sort-dialog-cmb-order-' + i); combo = new Common.UI.ComboBox({ el : el, @@ -304,10 +324,10 @@ define([ 'text!spreadsheeteditor/main/app/template/SortDialog.template', levelIndex = item.get('levelIndex'); item.set('columnIndex', columnIndex, {silent: true} ); item.set('order', Asc.c_oAscSortOptions.Ascending, {silent: true} ); + item.set('color', -1, {silent: true} ); me.levels[levelIndex].levelProps = (columnIndex!==null) ? me.props.asc_getLevelProps(columnIndex) : undefined; me.addControls(null, null, item); me.updateOrderList(levelIndex); - }); }, @@ -386,6 +406,28 @@ define([ 'text!spreadsheeteditor/main/app/template/SortDialog.template', ]; level.cmbOrder.setData(level.order_data); level.cmbOrder.setValue(order); + + if (iscolor) { + level.color_data = [{ value: -1, displayValue: (level.cmbSort.getValue()==Asc.c_oAscSortOptions.ByColorFill) ? this.textNone : this.textAuto , color: null}]; + if (level.levelProps) { + var levelColors = (level.cmbSort.getValue()==Asc.c_oAscSortOptions.ByColorFill) ? level.levelProps.asc_getColorsFill() : level.levelProps.asc_getColorsFont(); + levelColors.forEach(function(item, index) { + item && level.color_data.push({ + value: Common.Utils.ThemeColor.getHexColor(item.get_r(), item.get_g(), item.get_b()).toLocaleUpperCase(), + displayValue: Common.Utils.ThemeColor.getHexColor(item.get_r(), item.get_g(), item.get_b()).toLocaleUpperCase(), + color: item + }); + }); + } + level.cmbColor.setData(level.color_data); + level.cmbColor.setDisabled(level.color_data.length<1); + (level.color_data.length>0) && level.cmbColor.setValue(level.color_data[0].value); + + var item = this.sortList.store.at(levelIndex); + if (item) { + item.set('color', -1); + } + } }, getSettings: function() { @@ -404,7 +446,12 @@ define([ 'text!spreadsheeteditor/main/app/template/SortDialog.template', level.asc_setIndex(columnIndex); level.asc_setSortBy(levelProp.cmbSort.getValue()); level.asc_setDescending(levelProp.cmbOrder.getValue()); - // level.asc_setColor(level.color); + if (levelProp.cmbSort.getValue() == Asc.c_oAscSortOptions.ByColorFill || levelProp.cmbSort.getValue()==Asc.c_oAscSortOptions.ByColorFont) { + var rec = levelProp.cmbColor.getSelectedRecord(); + if (rec) { + level.asc_setColor(rec.color); + } + } arr.push(level); } }); @@ -466,7 +513,9 @@ define([ 'text!spreadsheeteditor/main/app/template/SortDialog.template', textBelow: 'Below', textLeft: 'Left', textRight: 'Right', - errorEmpty: 'All sort criteria must have a column or row specified.' + errorEmpty: 'All sort criteria must have a column or row specified.', + textAuto: 'Automatic', + textNone: 'None' }, SSE.Views.SortDialog || {})); }); \ No newline at end of file