From bcbe4ae4ecc9e1904cedf38af2db154a652d665a Mon Sep 17 00:00:00 2001 From: "Julia.Radzhabova" Date: Tue, 7 Oct 2025 15:13:21 +0300 Subject: [PATCH 1/2] [SSE] Fix selection in spreadsheet (select table/pivot, then chart/image) --- .../main/app/controller/Toolbar.js | 152 +++++++++--------- 1 file changed, 77 insertions(+), 75 deletions(-) diff --git a/apps/spreadsheeteditor/main/app/controller/Toolbar.js b/apps/spreadsheeteditor/main/app/controller/Toolbar.js index b930166127..29edc2b136 100644 --- a/apps/spreadsheeteditor/main/app/controller/Toolbar.js +++ b/apps/spreadsheeteditor/main/app/controller/Toolbar.js @@ -2958,10 +2958,10 @@ define([ toolbar.lockToolbar(Common.enumLock.pageBreakLock, this.api.asc_GetPageBreaksDisableType(this.api.asc_getActiveWorksheetIndex())===Asc.c_oAscPageBreaksDisableType.all, {array: [toolbar.btnPageBreak]}); - if (editOptionsDisabled) return; + // if (editOptionsDisabled) return; /* read font params */ - if (!toolbar.mode.isEditMailMerge && !toolbar.mode.isEditDiagram && !toolbar.mode.isEditOle) { + if (!editOptionsDisabled && !toolbar.mode.isEditMailMerge && !toolbar.mode.isEditDiagram && !toolbar.mode.isEditOle) { val = xfs.asc_getFontBold(); if (this._state.bold !== val) { toolbar.btnBold.toggle(val === true, true); @@ -3013,7 +3013,7 @@ define([ fontColorPicker = this.toolbar.mnuTextColorPicker, paragraphColorPicker = this.toolbar.mnuBackColorPicker; - if (!fontColorPicker.isDummy) { + if (!editOptionsDisabled && !fontColorPicker.isDummy) { color = xfs.asc_getFontColor(); if (color) { if (color.get_auto()) { @@ -3044,7 +3044,7 @@ define([ } /* read cell background color */ - if (!paragraphColorPicker.isDummy) { + if (!editOptionsDisabled && !paragraphColorPicker.isDummy) { color = xfs.asc_getFillColor(); if (color && !color.get_auto()) { if (color.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) { @@ -3073,7 +3073,7 @@ define([ toolbar.btnInsertChart.updateHint(in_chart ? toolbar.tipChangeChart : toolbar.tipInsertChart); this._state.in_chart = in_chart; } - if (in_chart) return; + // if (in_chart) return; if (!toolbar.mode.isEditDiagram) { @@ -3082,7 +3082,7 @@ define([ var filterInfo = info.asc_getAutoFilterInfo(), formatTableInfo = info.asc_getFormatTableInfo(); - if (!toolbar.mode.isEditMailMerge) { + if (!editOptionsDisabled && !in_chart && !toolbar.mode.isEditMailMerge) { /* read cell horizontal align */ var fontparam = xfs.asc_getHorAlign(); if (this._state.pralign !== fontparam) { @@ -3222,90 +3222,92 @@ define([ toolbar.btnClearStyle.menu.items[0], toolbar.btnClearStyle.menu.items[2], toolbar.btnInsertTable, toolbar.btnDataValidation).concat(toolbar.btnsRemoveDuplicates).concat(toolbar.btnsTableDesign)}); } - val = xfs.asc_getNumFormatInfo(); - if (val) { - this._state.numformat = xfs.asc_getNumFormat(); - this._state.numformatinfo = val; - val = val.asc_getType(); - if (this._state.numformattype !== val) { - toolbar.cmbNumberFormat.setValue(val, toolbar.txtCustom); - this._state.numformattype = val; - } - } - - val = xfs.asc_getAngle(); - if (this._state.angle !== val) { - toolbar.btnTextOrient.menu.clearAll(true); - switch(val) { - case 45: toolbar.btnTextOrient.menu.items[1].setChecked(true, true); break; - case -45: toolbar.btnTextOrient.menu.items[2].setChecked(true, true); break; - case 255: toolbar.btnTextOrient.menu.items[3].setChecked(true, true); break; - case 90: toolbar.btnTextOrient.menu.items[4].setChecked(true, true); break; - case -90: toolbar.btnTextOrient.menu.items[5].setChecked(true, true); break; - case 0: toolbar.btnTextOrient.menu.items[0].setChecked(true, true); break; + if (!editOptionsDisabled && !in_chart ) { + val = xfs.asc_getNumFormatInfo(); + if (val) { + this._state.numformat = xfs.asc_getNumFormat(); + this._state.numformatinfo = val; + val = val.asc_getType(); + if (this._state.numformattype !== val) { + toolbar.cmbNumberFormat.setValue(val, toolbar.txtCustom); + this._state.numformattype = val; + } } - this._state.angle = val; - } - val = info.asc_getStyleName(); - if (this._state.prstyle != val && !this.toolbar.listStyles.isDisabled()) { - var listStyle = this.toolbar.listStyles, - listStylesVisible = (listStyle.rendered); - - if (listStylesVisible) { - listStyle.suspendEvents(); - var styleRec = listStyle.menuPicker.store.findWhere({ - name: val - }); - this._state.prstyle = (listStyle.menuPicker.store.length>0) ? val : undefined; - - listStyle.menuPicker.selectRecord(styleRec); - listStyle.resumeEvents(); + val = xfs.asc_getAngle(); + if (this._state.angle !== val) { + toolbar.btnTextOrient.menu.clearAll(true); + switch(val) { + case 45: toolbar.btnTextOrient.menu.items[1].setChecked(true, true); break; + case -45: toolbar.btnTextOrient.menu.items[2].setChecked(true, true); break; + case 255: toolbar.btnTextOrient.menu.items[3].setChecked(true, true); break; + case 90: toolbar.btnTextOrient.menu.items[4].setChecked(true, true); break; + case -90: toolbar.btnTextOrient.menu.items[5].setChecked(true, true); break; + case 0: toolbar.btnTextOrient.menu.items[0].setChecked(true, true); break; + } + this._state.angle = val; } - } - var selCol = selectionType==Asc.c_oAscSelectionType.RangeCol, - selRow = selectionType==Asc.c_oAscSelectionType.RangeRow, - selMax = selectionType==Asc.c_oAscSelectionType.RangeMax; + val = info.asc_getStyleName(); + if (this._state.prstyle != val && !this.toolbar.listStyles.isDisabled()) { + var listStyle = this.toolbar.listStyles, + listStylesVisible = (listStyle.rendered); - need_disable = selRow || selMax && this._state.wsLock || this._state.wsProps['InsertColumns']; - toolbar.btnAddCell.menu.items[3].setDisabled(need_disable); + if (listStylesVisible) { + listStyle.suspendEvents(); + var styleRec = listStyle.menuPicker.store.findWhere({ + name: val + }); + this._state.prstyle = (listStyle.menuPicker.store.length>0) ? val : undefined; - need_disable = selRow || selMax && this._state.wsLock || !selCol && this._state.wsLock || this._state.wsProps['DeleteColumns']; - toolbar.btnDeleteCell.menu.items[3].setDisabled(need_disable); + listStyle.menuPicker.selectRecord(styleRec); + listStyle.resumeEvents(); + } + } - need_disable = selCol || selMax && this._state.wsLock || this._state.wsProps['InsertRows']; - toolbar.btnAddCell.menu.items[2].setDisabled(need_disable); + var selCol = selectionType==Asc.c_oAscSelectionType.RangeCol, + selRow = selectionType==Asc.c_oAscSelectionType.RangeRow, + selMax = selectionType==Asc.c_oAscSelectionType.RangeMax; - need_disable = selCol || selMax && this._state.wsLock || !selRow && this._state.wsLock || this._state.wsProps['DeleteRows']; - toolbar.btnDeleteCell.menu.items[2].setDisabled(need_disable); + need_disable = selRow || selMax && this._state.wsLock || this._state.wsProps['InsertColumns']; + toolbar.btnAddCell.menu.items[3].setDisabled(need_disable); - val = filterInfo && filterInfo.asc_getIsApplyAutoFilter(); - need_disable = selRow || val || !(selCol || selMax) && this._state.wsLock || selCol && this._state.wsProps['InsertColumns'] || selMax && this._state.wsProps['InsertColumns'] && this._state.wsProps['InsertRows']; - toolbar.btnAddCell.menu.items[0].setDisabled(need_disable); + need_disable = selRow || selMax && this._state.wsLock || !selCol && this._state.wsLock || this._state.wsProps['DeleteColumns']; + toolbar.btnDeleteCell.menu.items[3].setDisabled(need_disable); - need_disable = selRow || val || !(selCol || selMax) && this._state.wsLock || selCol && this._state.wsProps['DeleteColumns'] || selMax && this._state.wsProps['DeleteColumns'] && this._state.wsProps['DeleteRows']; - toolbar.btnDeleteCell.menu.items[0].setDisabled(need_disable); + need_disable = selCol || selMax && this._state.wsLock || this._state.wsProps['InsertRows']; + toolbar.btnAddCell.menu.items[2].setDisabled(need_disable); - need_disable = selCol || val || !(selRow || selMax) && this._state.wsLock || selRow && this._state.wsProps['InsertRows'] || selMax && this._state.wsProps['InsertColumns'] && this._state.wsProps['InsertRows']; - toolbar.btnAddCell.menu.items[1].setDisabled(need_disable); + need_disable = selCol || selMax && this._state.wsLock || !selRow && this._state.wsLock || this._state.wsProps['DeleteRows']; + toolbar.btnDeleteCell.menu.items[2].setDisabled(need_disable); - need_disable = selCol || val || !(selRow || selMax) && this._state.wsLock || selRow && this._state.wsProps['DeleteRows'] || selMax && this._state.wsProps['DeleteColumns'] && this._state.wsProps['DeleteRows']; - toolbar.btnDeleteCell.menu.items[1].setDisabled(need_disable); + val = filterInfo && filterInfo.asc_getIsApplyAutoFilter(); + need_disable = selRow || val || !(selCol || selMax) && this._state.wsLock || selCol && this._state.wsProps['InsertColumns'] || selMax && this._state.wsProps['InsertColumns'] && this._state.wsProps['InsertRows']; + toolbar.btnAddCell.menu.items[0].setDisabled(need_disable); - var items = toolbar.btnAddCell.menu.getItems(true), + need_disable = selRow || val || !(selCol || selMax) && this._state.wsLock || selCol && this._state.wsProps['DeleteColumns'] || selMax && this._state.wsProps['DeleteColumns'] && this._state.wsProps['DeleteRows']; + toolbar.btnDeleteCell.menu.items[0].setDisabled(need_disable); + + need_disable = selCol || val || !(selRow || selMax) && this._state.wsLock || selRow && this._state.wsProps['InsertRows'] || selMax && this._state.wsProps['InsertColumns'] && this._state.wsProps['InsertRows']; + toolbar.btnAddCell.menu.items[1].setDisabled(need_disable); + + need_disable = selCol || val || !(selRow || selMax) && this._state.wsLock || selRow && this._state.wsProps['DeleteRows'] || selMax && this._state.wsProps['DeleteColumns'] && this._state.wsProps['DeleteRows']; + toolbar.btnDeleteCell.menu.items[1].setDisabled(need_disable); + + var items = toolbar.btnAddCell.menu.getItems(true), + enabled = false; + for (var i=0; i<4; i++) { + !items[i].isDisabled() && (enabled = true); + } + toolbar.lockToolbar(Common.enumLock.itemsDisabled, !enabled, {array: [toolbar.btnAddCell]}); + + items = me.toolbar.btnDeleteCell.menu.getItems(true); enabled = false; - for (var i=0; i<4; i++) { - !items[i].isDisabled() && (enabled = true); + for (var i=0; i<4; i++) { + !items[i].isDisabled() && (enabled = true); + } + toolbar.lockToolbar(Common.enumLock.itemsDisabled, !enabled, {array: [toolbar.btnDeleteCell]}); } - toolbar.lockToolbar(Common.enumLock.itemsDisabled, !enabled, {array: [toolbar.btnAddCell]}); - - items = me.toolbar.btnDeleteCell.menu.getItems(true); - enabled = false; - for (var i=0; i<4; i++) { - !items[i].isDisabled() && (enabled = true); - } - toolbar.lockToolbar(Common.enumLock.itemsDisabled, !enabled, {array: [toolbar.btnDeleteCell]}); toolbar.lockToolbar(Common.enumLock.headerLock, info.asc_getLockedHeaderFooter(), {array: this.toolbar.btnsEditHeader}); From 80ac5760e30f2ce07c714c5e68a62033f82af1d2 Mon Sep 17 00:00:00 2001 From: "Julia.Radzhabova" Date: Tue, 7 Oct 2025 20:03:18 +0300 Subject: [PATCH 2/2] Fix hover state for anonymouse user button --- apps/common/main/resources/less/colors-table-night.less | 4 ++-- apps/common/main/resources/less/colors-table-white.less | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/common/main/resources/less/colors-table-night.less b/apps/common/main/resources/less/colors-table-night.less index ddbb3c3972..e7e1b887b6 100644 --- a/apps/common/main/resources/less/colors-table-night.less +++ b/apps/common/main/resources/less/colors-table-night.less @@ -323,8 +323,8 @@ --header-component-height: var(--x-small-btn-size); --header-component-width: var(--x-small-btn-size); --header-component-line-height: var(--x-small-btn-size); - --header-component-padding-x: 0px; - --header-component-padding-y: 0px; + --header-component-padding-x: ~"0px"; + --header-component-padding-y: ~"0px"; --header-component-margin: 0 6px; --header-component-align: center; diff --git a/apps/common/main/resources/less/colors-table-white.less b/apps/common/main/resources/less/colors-table-white.less index dd7ae7efe3..9ef1f04faa 100644 --- a/apps/common/main/resources/less/colors-table-white.less +++ b/apps/common/main/resources/less/colors-table-white.less @@ -325,8 +325,8 @@ --header-component-height: var(--x-small-btn-size); --header-component-width: var(--x-small-btn-size); --header-component-line-height: var(--x-small-btn-size); - --header-component-padding-x: 0px; - --header-component-padding-y: 0px; + --header-component-padding-x: ~"0px"; + --header-component-padding-y: ~"0px"; --header-component-margin: 0 6px; --header-component-align: center;