diff --git a/apps/common/main/lib/component/ComboBorderSize.js b/apps/common/main/lib/component/ComboBorderSize.js index bd33d9143..2cf1efa2e 100644 --- a/apps/common/main/lib/component/ComboBorderSize.js +++ b/apps/common/main/lib/component/ComboBorderSize.js @@ -292,7 +292,7 @@ define([ '
  • <%= scope.getDisplayValue(item) %>
  • ', '<% } else { %>', '
  • ', - '
    ', + '
    <%= scope.getDisplayValue(item) %>
    ', '
  • ', '<% } %>', '<% }); %>', @@ -321,11 +321,11 @@ define([ formcontrol[0].innerHTML = record.get('displayValue'); if (record.get('value')!=-1) { - formcontrol.css({'background': '#' + record.get('value'), 'margin-top': '0'}); - record.get('displayColor') && formcontrol.css({'color': '#' + record.get('displayColor'), 'text-align': 'center'}); + formcontrol.css({'margin-top': '0'}); + formcontrol.css(record.get('styleObj')); } else { - formcontrol.css({'background': '', 'margin-top': '1px'}); - formcontrol.css({'color': '', 'text-align': ''}); + formcontrol.css({'margin-top': '1px'}); + formcontrol.css(record.get('styleObj')); } }, @@ -340,8 +340,9 @@ define([ $('#' + this._selectedItem.get('id'), $(this.el)).addClass('selected'); } else { var formcontrol = $(this.el).find('.form-control > div'); - formcontrol[0].innerHTML = ''; - formcontrol.css('background', ''); + formcontrol[0].innerHTML = value; + formcontrol.css('margin-top', '1px'); + formcontrol.css({'color': '', 'text-align': '', 'background': '', 'border': ''}); } }, @@ -358,7 +359,7 @@ define([ '
  • <%= scope.getDisplayValue(item) %>
  • ', '<% } else { %>', '
  • ', - '
    ', + '
    <%= scope.getDisplayValue(item) %>
    ', '
  • ', '<% } %>', '<% }); %>' diff --git a/apps/spreadsheeteditor/main/app/view/FormatRulesEditDlg.js b/apps/spreadsheeteditor/main/app/view/FormatRulesEditDlg.js index 59a516221..92ab3cc47 100644 --- a/apps/spreadsheeteditor/main/app/view/FormatRulesEditDlg.js +++ b/apps/spreadsheeteditor/main/app/view/FormatRulesEditDlg.js @@ -508,23 +508,30 @@ define([ }, this)); // Format - var color_data = [ - { value: 'ffeb9c', displayValue: 'absdef', color: '#ffeb9c', displayColor: '9c6500' }, - { value: 'ffc7ce', displayValue: 'absdef', color: '#ffc7ce', displayColor: 'b32e35' }, - { value: 'c6efce', displayValue: 'absdef', color: '#c6efce', displayColor: '2e8230' }, - { value: 'ffcc99', displayValue: 'absdef', color: '#ffcc99', displayColor: '56507b' } - ]; + var presets = this.api.asc_getCFPresets(); + var formatPresets = presets[Asc.c_oAscCFRuleTypeSettings.format]; + var color_data = []; + _.each(formatPresets, function(preset, index){ + color_data.push({ + value: index, + fontColor: preset[0], + fillColor: preset[1], + borderColor: preset[2], + displayValue: preset[0] ? 'absdef' : '', + styleObj: {'background-color': preset[1] ? '#' + preset[1] : 'transparent', color: preset[0] ? '#' + preset[0] : 'transparent', border: preset[2] ? '1px solid #' + preset[2] : '', 'text-align': 'center' }, + styleStr: 'background-color: ' + (preset[1] ? '#' + preset[1] : 'transparent') + ';color:' + (preset[0] ? '#' + preset[0] : 'transparent') + ';' + (preset[2] ? 'border: 1px solid #' + preset[2] + ';' : '' + 'text-align: center;') + }); + }); + this.cmbFormats = new Common.UI.ComboBoxColor({ el : $('#format-rules-format-preset'), editable : false, style : 'width: 150px;', menuStyle : 'min-width: 100%;max-height: 211px;', data : color_data - }).on('selected', function(combo, record) { - // record.color; }); - this.cmbFormats.setValue(color_data[0].value); - // this.cmbFormats.on('selected', _.bind(this.onFormatsSelect, this)); + this.cmbFormats.setValue(this.textCustom); + this.cmbFormats.on('selected', _.bind(this.onFormatsSelect, this)); this.btnBold = new Common.UI.Button({ parentEl: $('#format-rules-bold'), @@ -1080,7 +1087,7 @@ define([ arr = []; var len = this.collectionPresets.length; - var iconsPresets = this.api.asc_getCFPresets()[Asc.c_oAscCFRuleTypeSettings.icons]; + var iconsPresets = presets[Asc.c_oAscCFRuleTypeSettings.icons]; _.each(iconsPresets, function(preset, index){ if (index>=len) return; var values = []; @@ -1242,36 +1249,6 @@ define([ ruleType, subtype = this.subtype; - var setColor = function(color, control, picker) { - picker = control ? control.colorPicker : picker; - if (color) { - if (color.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { - color = {color: Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()), effectValue: color.get_value() }; - } else { - color = Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()); - } - } else { - color = picker.options.transparent ? 'transparent' : '000000'; - } - control && control.setColor(color); - if (_.isObject(color)) { - var isselected = false; - for (var i = 0; i < 10; i++) { - if (Common.Utils.ThemeColor.ThemeValues[i] == color.effectValue) { - picker.select(color, true); - isselected = true; - break; - } - } - if (!isselected) picker.clearSelection(); - } else { - picker.select(color, true); - } - picker && (picker.currentColor = color); - control && (control.currentColor = color); - return color; - }; - if (props) { var value; switch (type) { @@ -1323,7 +1300,7 @@ define([ controls.combo.setValue(scaletype); controls.range.setDisabled(scaletype == Asc.c_oAscCfvoType.Minimum || scaletype == Asc.c_oAscCfvoType.Maximum); controls.range.setValue((scaletype !== Asc.c_oAscCfvoType.Minimum && scaletype !== Asc.c_oAscCfvoType.Maximum && val!==null && val!==undefined) ? val : ''); - setColor(color, controls.color); + this.setColor(color, controls.color); } break; case Asc.c_oAscCFType.dataBar: @@ -1340,16 +1317,16 @@ define([ val!==null && val!==undefined) ? val : ''); } this.cmbFill.setValue(value.asc_getGradient()); - setColor(value.asc_getColor(), this.btnPosFill); - setColor(value.asc_getNegativeColor() || value.asc_getColor(), this.btnNegFill); + this.setColor(value.asc_getColor(), this.btnPosFill); + this.setColor(value.asc_getNegativeColor() || value.asc_getColor(), this.btnNegFill); this.chFill.setValue(value.asc_getNegativeBarColorSameAsPositive()); var color = value.asc_getBorderColor(); this.cmbBorder.setValue(color===null); this.btnPosBorder.setDisabled(color===null); if (color) { - setColor(value.asc_getBorderColor(), this.btnPosBorder); - setColor(value.asc_getNegativeBorderColor() || value.asc_getBorderColor(), this.btnNegBorder); + this.setColor(value.asc_getBorderColor(), this.btnPosBorder); + this.setColor(value.asc_getNegativeBorderColor() || value.asc_getBorderColor(), this.btnNegBorder); } this.chBorder.setValue(value.asc_getNegativeBarBorderColorSameAsPositive()); this.chBorder.setDisabled(color===null); @@ -1358,7 +1335,7 @@ define([ this.cmbBarDirection.setValue(value.asc_getDirection()); this.chShowBar.setValue(!value.asc_getShowValue()); this.cmbAxisPos.setValue(value.asc_getAxisPosition()); - value.asc_getAxisColor() && setColor(value.asc_getAxisColor(), this.btnAxisColor); + value.asc_getAxisColor() && this.setColor(value.asc_getAxisColor(), this.btnAxisColor); this.btnAxisColor.setDisabled(value.asc_getAxisPosition() == Asc.c_oAscDataBarAxisPosition.none); break; case Asc.c_oAscCFType.iconSet: @@ -1368,14 +1345,18 @@ define([ this.fillIconsControls(value.asc_getIconSet(), value.asc_getCFVOs(), value.asc_getIconSets()); break; } + } + if (type === Asc.c_oAscCFType.containsText || type === Asc.c_oAscCFType.notContainsText || type === Asc.c_oAscCFType.beginsWith || + type === Asc.c_oAscCFType.endsWith || type === Asc.c_oAscCFType.containsBlanks || type === Asc.c_oAscCFType.notContainsBlanks || + type === Asc.c_oAscCFType.duplicateValues || type === Asc.c_oAscCFType.uniqueValues || + type === Asc.c_oAscCFType.containsErrors || type === Asc.c_oAscCFType.notContainsErrors || + type === Asc.c_oAscCFType.timePeriod || type === Asc.c_oAscCFType.aboveAverage || + type === Asc.c_oAscCFType.top10 || type === Asc.c_oAscCFType.cellIs || type === Asc.c_oAscCFType.expression) { - if (type == Asc.c_oAscCFType.containsText || type == Asc.c_oAscCFType.notContainsText || type == Asc.c_oAscCFType.beginsWith || - type == Asc.c_oAscCFType.endsWith || type == Asc.c_oAscCFType.containsBlanks || type == Asc.c_oAscCFType.notContainsBlanks || - type == Asc.c_oAscCFType.duplicateValues || type == Asc.c_oAscCFType.uniqueValues || - type == Asc.c_oAscCFType.containsErrors || type == Asc.c_oAscCFType.notContainsErrors || - type == Asc.c_oAscCFType.timePeriod || type == Asc.c_oAscCFType.aboveAverage || - type == Asc.c_oAscCFType.top10 || type == Asc.c_oAscCFType.cellIs || type == Asc.c_oAscCFType.expression) { + if (props) this.xfsFormat = props.asc_getDxf(); + else { + this.cmbFormats.setValue(0); } } @@ -1414,20 +1395,60 @@ define([ this.refreshRules(rec.get('index'), ruleType); } - var xfs = this.xfsFormat ? this.xfsFormat : (new AscCommonExcel.CellXfs()); + rec = this.cmbFormats.getSelectedRecord(); + if (rec && rec.value>=0) { + this.onFormatsSelect(this.cmbFormats, rec); + } else { + var xfs = this.xfsFormat ? this.xfsFormat : (new AscCommonExcel.CellXfs()); + this.fillXfsFormatInfo(xfs); + } + this.previewFormat(); + }, + + setColor: function(color, control, picker) { + picker = control ? control.colorPicker : picker; + if (color) { + if (color.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { + color = {color: Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()), effectValue: color.get_value() }; + } else { + color = Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()); + } + } else { + color = picker.options.transparent ? 'transparent' : '000000'; + } + control && control.setColor(color); + if (_.isObject(color)) { + var isselected = false; + for (var i = 0; i < 10; i++) { + if (Common.Utils.ThemeColor.ThemeValues[i] == color.effectValue) { + picker.select(color, true); + isselected = true; + break; + } + } + if (!isselected) picker.clearSelection(); + } else { + picker.select(color, true); + } + picker && (picker.currentColor = color); + control && (control.currentColor = color); + return color; + }, + + fillXfsFormatInfo: function(xfs) { if (xfs) { this.btnBold.toggle(xfs.asc_getFontBold() === true, true); this.btnItalic.toggle(xfs.asc_getFontItalic() === true, true); this.btnUnderline.toggle(xfs.asc_getFontUnderline() === true, true); this.btnStrikeout.toggle(xfs.asc_getFontStrikeout() === true, true); - var color = setColor(xfs.asc_getFontColor(), null, this.mnuTextColorPicker); + var color = this.setColor(xfs.asc_getFontColor(), null, this.mnuTextColorPicker); this.btnTextColor.currentColor = color; this.mnuTextColorPicker.currentColor = color; color = (typeof(color) == 'object') ? color.color : color; $('.btn-color-value-line', this.btnTextColor.cmpEl).css('background-color', '#' + color); - color = setColor(xfs.asc_getFillColor(), null, this.mnuFillColorPicker); + color = this.setColor(xfs.asc_getFillColor(), null, this.mnuFillColorPicker); this.btnFillColor.currentColor = color; this.mnuFillColorPicker.currentColor = color; color = (typeof(color) == 'object') ? color.color : color; @@ -1436,7 +1457,6 @@ define([ var val = xfs.asc_getNumFormatInfo(); val && this.cmbNumberFormat.setValue(val.asc_getType(), this.textCustom); } - this.previewFormat(); }, getSettings: function() { @@ -1690,26 +1710,51 @@ define([ } }, + onFormatsSelect: function(combo, record) { + var xfs = new AscCommonExcel.CellXfs(); + // this.xfsFormat && xfs.asc_setNumFormatInfo(this.xfsFormat.asc_getNumFormatInfo()); + record.fontColor && xfs.asc_setFontColor(Common.Utils.ThemeColor.getRgbColor(record.fontColor)); + record.fillColor && xfs.asc_setFillColor(Common.Utils.ThemeColor.getRgbColor(record.fillColor)); + if (record.borderColor) { + var new_borders = [], + bordersWidth = Asc.c_oAscBorderStyles.Thin, + bordersColor = Common.Utils.ThemeColor.getRgbColor(record.borderColor); + new_borders[Asc.c_oAscBorderOptions.Left] = new Asc.asc_CBorder(bordersWidth, bordersColor); + new_borders[Asc.c_oAscBorderOptions.Top] = new Asc.asc_CBorder(bordersWidth, bordersColor); + new_borders[Asc.c_oAscBorderOptions.Right] = new Asc.asc_CBorder(bordersWidth, bordersColor); + new_borders[Asc.c_oAscBorderOptions.Bottom] = new Asc.asc_CBorder(bordersWidth, bordersColor); + xfs.asc_setBorder(new_borders); + } + this.xfsFormat = xfs; + this._changedProps && this._changedProps.asc_setDxf(xfs); + this.fillXfsFormatInfo(xfs); + this.previewFormat(); + }, + onBoldClick: function() { !this.xfsFormat && (this.xfsFormat = new AscCommonExcel.CellXfs()); this.xfsFormat.asc_setFontBold(this.btnBold.isActive()); + this.cmbFormats.setValue(this.textCustom); this.previewFormat(); }, onItalicClick: function() { !this.xfsFormat && (this.xfsFormat = new AscCommonExcel.CellXfs()); this.xfsFormat.asc_setFontItalic(this.btnItalic.isActive()); + this.cmbFormats.setValue(this.textCustom); this.previewFormat(); }, onUnderlineClick: function() { !this.xfsFormat && (this.xfsFormat = new AscCommonExcel.CellXfs()); this.xfsFormat.asc_setFontUnderline(this.btnUnderline.isActive()); + this.cmbFormats.setValue(this.textCustom); this.previewFormat(); }, onStrikeoutClick: function() { !this.xfsFormat && (this.xfsFormat = new AscCommonExcel.CellXfs()); this.xfsFormat.asc_setFontStrikeout(this.btnStrikeout.isActive()); + this.cmbFormats.setValue(this.textCustom); this.previewFormat(); }, @@ -1775,6 +1820,7 @@ define([ } !this.xfsFormat && (this.xfsFormat = new AscCommonExcel.CellXfs()); this.xfsFormat.asc_setBorder(new_borders); + this.cmbFormats.setValue(this.textCustom); this.previewFormat(); } }, @@ -1787,6 +1833,7 @@ define([ !this.xfsFormat && (this.xfsFormat = new AscCommonExcel.CellXfs()); this.xfsFormat.asc_setFontColor(Common.Utils.ThemeColor.getRgbColor(this.mnuTextColorPicker.currentColor)); + this.cmbFormats.setValue(this.textCustom); this.previewFormat(); }, @@ -1802,6 +1849,7 @@ define([ !this.xfsFormat && (this.xfsFormat = new AscCommonExcel.CellXfs()); this.xfsFormat.asc_setFillColor(this.mnuFillColorPicker.currentColor == 'transparent' ? null : Common.Utils.ThemeColor.getRgbColor(this.mnuFillColorPicker.currentColor)); + this.cmbFormats.setValue(this.textCustom); this.previewFormat(); }, diff --git a/apps/spreadsheeteditor/main/app/view/SortDialog.js b/apps/spreadsheeteditor/main/app/view/SortDialog.js index 35effc3d9..5fb7bb08d 100644 --- a/apps/spreadsheeteditor/main/app/view/SortDialog.js +++ b/apps/spreadsheeteditor/main/app/view/SortDialog.js @@ -556,7 +556,9 @@ define([ 'text!spreadsheeteditor/main/app/template/SortDialog.template', color_data = { value: value, displayValue: item ? '' : ((level.cmbSort.getValue()==Asc.c_oAscSortOptions.ByColorFill) ? me.textNone : me.textAuto), - color: item + color: item, + styleObj: {'background-color': item ? '#' + value : 'transparent' }, + styleStr: item ? 'background-color: #' + value + ';' : 'background-color:transparent;' }; item ? level.color_data.push(color_data) : level.color_data.unshift(color_data); if (colorValue == color_data.value)