diff --git a/apps/common/main/lib/view/Header.js b/apps/common/main/lib/view/Header.js index 7d594374a..bf8f3305c 100644 --- a/apps/common/main/lib/view/Header.js +++ b/apps/common/main/lib/view/Header.js @@ -54,6 +54,7 @@ define([ var storeUsers, appConfig; var $userList, $panelUsers, $btnUsers; var $saveStatus; + var _readonlyRights = false; var templateUserItem = '
  • " class="<% if (!user.get("online")) { %> offline <% } if (user.get("view")) {%> viewmode <% } %>">' + @@ -165,7 +166,7 @@ define([ .removeClass('dropdown-toggle') .menu = false; - $panelUsers[(appConfig && !appConfig.isReviewOnly && appConfig.sharingSettingsUrl && appConfig.sharingSettingsUrl.length) ? 'show' : 'hide'](); + $panelUsers[(!_readonlyRights && appConfig && !appConfig.isReviewOnly && appConfig.sharingSettingsUrl && appConfig.sharingSettingsUrl.length) ? 'show' : 'hide'](); } $btnUsers.find('.caption') @@ -180,6 +181,12 @@ define([ } } + function onLostEditRights() { + _readonlyRights = true; + $panelUsers.find('#tlb-change-rights').hide(); + $btnUsers && !$btnUsers.menu && $panelUsers.hide(); + } + function onUsersClick(e) { if ( !$btnUsers.menu ) { $panelUsers.removeClass('open'); @@ -390,6 +397,7 @@ define([ Common.NotificationCenter.on('app:face', function(mode) { Common.Utils.asyncCall(onAppShowed, me, mode); }); + Common.NotificationCenter.on('collaboration:sharingdeny', onLostEditRights); }, render: function (el, role) { diff --git a/apps/documenteditor/main/app/controller/Main.js b/apps/documenteditor/main/app/controller/Main.js index df09ddc93..e32795458 100644 --- a/apps/documenteditor/main/app/controller/Main.js +++ b/apps/documenteditor/main/app/controller/Main.js @@ -408,7 +408,7 @@ define([ old_rights = this._state.lostEditingRights; this._state.lostEditingRights = !this._state.lostEditingRights; this.api.asc_coAuthoringDisconnect(); - this.getApplication().getController('LeftMenu').leftMenu.getMenu('file').panels['rights'].onLostEditRights(); + Common.NotificationCenter.trigger('collaboration:sharingdeny'); Common.NotificationCenter.trigger('api:disconnect'); if (!old_rights) Common.UI.warning({ @@ -1407,6 +1407,7 @@ define([ } this._state.lostEditingRights = true; config.msg = this.errorUserDrop; + Common.NotificationCenter.trigger('collaboration:sharingdeny'); break; case Asc.c_oAscError.ID.MailMergeLoadFile: diff --git a/apps/documenteditor/main/app/view/FileMenuPanels.js b/apps/documenteditor/main/app/view/FileMenuPanels.js index 539eaa81b..3154ccfd8 100644 --- a/apps/documenteditor/main/app/view/FileMenuPanels.js +++ b/apps/documenteditor/main/app/view/FileMenuPanels.js @@ -945,6 +945,7 @@ define([ } Common.NotificationCenter.on('collaboration:sharing', _.bind(this.changeAccessRights, this)); + Common.NotificationCenter.on('collaboration:sharingdeny', _.bind(this.onLostEditRights, this)); return this; }, diff --git a/apps/presentationeditor/main/app/controller/Main.js b/apps/presentationeditor/main/app/controller/Main.js index 328aa91e6..c8a32420c 100644 --- a/apps/presentationeditor/main/app/controller/Main.js +++ b/apps/presentationeditor/main/app/controller/Main.js @@ -381,7 +381,7 @@ define([ old_rights = this._state.lostEditingRights; this._state.lostEditingRights = !this._state.lostEditingRights; this.api.asc_coAuthoringDisconnect(); - this.getApplication().getController('LeftMenu').leftMenu.getMenu('file').panels['rights'].onLostEditRights(); + Common.NotificationCenter.trigger('collaboration:sharingdeny'); Common.NotificationCenter.trigger('api:disconnect'); if (!old_rights) Common.UI.warning({ @@ -1140,6 +1140,7 @@ define([ } this._state.lostEditingRights = true; config.msg = this.errorUserDrop; + Common.NotificationCenter.trigger('collaboration:sharingdeny'); break; case Asc.c_oAscError.ID.Warning: diff --git a/apps/presentationeditor/main/app/view/FileMenuPanels.js b/apps/presentationeditor/main/app/view/FileMenuPanels.js index c3d19f6ce..3a7d31bd7 100644 --- a/apps/presentationeditor/main/app/view/FileMenuPanels.js +++ b/apps/presentationeditor/main/app/view/FileMenuPanels.js @@ -762,6 +762,7 @@ define([ } Common.NotificationCenter.on('collaboration:sharing', _.bind(this.changeAccessRights, this)); + Common.NotificationCenter.on('collaboration:sharingdeny', _.bind(this.onLostEditRights, this)); return this; }, diff --git a/apps/spreadsheeteditor/main/app/controller/Main.js b/apps/spreadsheeteditor/main/app/controller/Main.js index 4786254bc..d359cea10 100644 --- a/apps/spreadsheeteditor/main/app/controller/Main.js +++ b/apps/spreadsheeteditor/main/app/controller/Main.js @@ -404,7 +404,7 @@ define([ old_rights = this._state.lostEditingRights; this._state.lostEditingRights = !this._state.lostEditingRights; this.api.asc_coAuthoringDisconnect(); - this.getApplication().getController('LeftMenu').leftMenu.getMenu('file').panels['rights'].onLostEditRights(); + Common.NotificationCenter.trigger('collaboration:sharingdeny'); Common.NotificationCenter.trigger('api:disconnect'); if (!old_rights) Common.UI.warning({ @@ -1276,6 +1276,7 @@ define([ } this._state.lostEditingRights = true; config.msg = this.errorUserDrop; + Common.NotificationCenter.trigger('collaboration:sharingdeny'); break; case Asc.c_oAscError.ID.InvalidReferenceOrName: diff --git a/apps/spreadsheeteditor/main/app/view/FileMenuPanels.js b/apps/spreadsheeteditor/main/app/view/FileMenuPanels.js index 919be95ad..65731d5a8 100644 --- a/apps/spreadsheeteditor/main/app/view/FileMenuPanels.js +++ b/apps/spreadsheeteditor/main/app/view/FileMenuPanels.js @@ -1217,6 +1217,7 @@ define([ } Common.NotificationCenter.on('collaboration:sharing', _.bind(this.changeAccessRights, this)); + Common.NotificationCenter.on('collaboration:sharingdeny', _.bind(this.onLostEditRights, this)); return this; },