From 9f309508f831891314d6fa9a9c1c199b46381ed6 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Thu, 16 Jul 2020 18:04:34 +0300 Subject: [PATCH] [SSE] Show icon and tooltip for the active sheet view --- apps/common/main/lib/component/Tab.js | 20 +++++++++++++-- .../main/app/controller/Statusbar.js | 20 +++++++++++++++ .../main/app/view/Statusbar.js | 10 +++++--- .../main/resources/less/statusbar.less | 25 ++++++++++++++++++- 4 files changed, 69 insertions(+), 6 deletions(-) diff --git a/apps/common/main/lib/component/Tab.js b/apps/common/main/lib/component/Tab.js index 5d61c243a..e7c644aaa 100644 --- a/apps/common/main/lib/component/Tab.js +++ b/apps/common/main/lib/component/Tab.js @@ -51,9 +51,15 @@ define([ this.active = false; this.label = 'Tab'; this.cls = ''; + this.iconCls = ''; + this.iconVisible = false; + this.iconTitle = ''; this.index = -1; - this.template = _.template(['
  • ', - '<%- label %>', + this.template = _.template(['
  • ', + '', + '
    ', + '<%- label %>', + '
    ', '
  • '].join('')); this.initialize.call(this, opts); @@ -126,6 +132,16 @@ define([ setCaption: function(text) { this.$el.find('> span').text(text); + }, + + changeIconState: function(visible, title) { + if (this.iconCls.length) { + this.iconVisible = visible; + this.iconTitle = title || ''; + this[visible ? 'addClass' : 'removeClass']('icon-visible'); + if (title) + this.$el.find('.' + this.iconCls).attr('title', title); + } } }); diff --git a/apps/spreadsheeteditor/main/app/controller/Statusbar.js b/apps/spreadsheeteditor/main/app/controller/Statusbar.js index 467c902b8..d93061354 100644 --- a/apps/spreadsheeteditor/main/app/controller/Statusbar.js +++ b/apps/spreadsheeteditor/main/app/controller/Statusbar.js @@ -104,6 +104,8 @@ define([ this.api.asc_registerCallback('asc_onError', _.bind(this.onError, this)); this.api.asc_registerCallback('asc_onFilterInfo', _.bind(this.onApiFilterInfo , this)); this.api.asc_registerCallback('asc_onActiveSheetChanged', _.bind(this.onApiActiveSheetChanged, this)); + this.api.asc_registerCallback('asc_onActiveSheetChanged', _.bind(this.onApiActiveSheetChanged, this)); + this.api.asc_registerCallback('asc_onRefreshNamedSheetViewList', _.bind(this.onRefreshNamedSheetViewList, this)); this.statusbar.setApi(api); }, @@ -710,6 +712,24 @@ define([ this.statusbar.tabMenu.hide(); }, + onRefreshNamedSheetViewList: function() { + var views = this.api.asc_getNamedSheetViews(), + active = false, + name=""; + for (var i=0; i 0 - || $(e.target).parent().hasClass('list-item') + || $(e.target).closest('.statusbar .list-item').length>0 || $('#status-tabs-scroll').find(el).length > 0 || $('#status-addtabs-box').find(el).length > 0) return; this.customizeStatusBarMenu.hide(); diff --git a/apps/spreadsheeteditor/main/resources/less/statusbar.less b/apps/spreadsheeteditor/main/resources/less/statusbar.less index f1afb8293..a3b21dc9b 100644 --- a/apps/spreadsheeteditor/main/resources/less/statusbar.less +++ b/apps/spreadsheeteditor/main/resources/less/statusbar.less @@ -229,6 +229,20 @@ } } + &.icon-visible { + > span { + padding-left: 25px; + > .toolbar__icon { + width: 20px; + height: 20px; + position: absolute; + top: 0; + left: 0; + margin: 3px; + } + } + } + &.disabled { opacity: 0.5; @@ -244,7 +258,6 @@ } &.mousemove { - > span { border-left: 2px solid @gray-deep; padding-left: 9px; @@ -257,6 +270,16 @@ padding-left: 10px; } } + &.icon-visible { + > span { + padding-left: 24px; + } + &.right { + > span { + padding-left: 25px; + } + } + } } } }