diff --git a/apps/common/main/lib/controller/ReviewChanges.js b/apps/common/main/lib/controller/ReviewChanges.js index c3d813dd7..0f930943d 100644 --- a/apps/common/main/lib/controller/ReviewChanges.js +++ b/apps/common/main/lib/controller/ReviewChanges.js @@ -115,7 +115,7 @@ define([ if (api) { this.api = api; - if (this.appConfig.canReview) { + if (this.appConfig.canReview || this.appConfig.canViewReview) { this.api.asc_registerCallback('asc_onShowRevisionsChange', _.bind(this.onApiShowChange, this)); this.api.asc_registerCallback('asc_onUpdateRevisionsChangesPosition', _.bind(this.onApiUpdateChangePosition, this)); } @@ -157,7 +157,7 @@ define([ this.getPopover().showReview(animate, lock, lockUser); - if (!this.appConfig.isReviewOnly && this._state.lock !== lock) { + if (this.appConfig.canReview && !this.appConfig.isReviewOnly && this._state.lock !== lock) { this.view.btnAccept.setDisabled(lock==true); this.view.btnReject.setDisabled(lock==true); if (this.dlgChanges) { @@ -207,7 +207,7 @@ define([ }, getPopover: function () { - if (this.appConfig.canReview && _.isUndefined(this.popover)) { + if ((this.appConfig.canReview || this.appConfig.canViewReview) && _.isUndefined(this.popover)) { this.popover = Common.Views.ReviewPopover.prototype.getPopover({ reviewStore : this.popoverChanges, renderTo : this.sdkViewName @@ -408,7 +408,8 @@ define([ lockuser : item.get_LockUserId(), type : item.get_Type(), changedata : item, - scope : me.view + scope : me.view, + hint : !me.appConfig.canReview }); arr.push(change); @@ -561,13 +562,16 @@ define([ disableEditing: function(disable) { var app = this.getApplication(); - app.getController('RightMenu').getView('RightMenu').clearSelection(); app.getController('Toolbar').DisableToolbar(disable, false, true); - app.getController('RightMenu').SetDisabled(disable, false); - app.getController('Statusbar').getView('Statusbar').SetDisabled(disable); app.getController('DocumentHolder').getView().SetDisabled(disable); - app.getController('Navigation') && app.getController('Navigation').SetDisabled(disable); - app.getController('Common.Controllers.Plugins').getView('Common.Views.Plugins').disableControls(disable); + + if (this.appConfig.canReview) { + app.getController('RightMenu').getView('RightMenu').clearSelection(); + app.getController('RightMenu').SetDisabled(disable, false); + app.getController('Statusbar').getView('Statusbar').SetDisabled(disable); + app.getController('Navigation') && app.getController('Navigation').SetDisabled(disable); + app.getController('Common.Controllers.Plugins').getView('Common.Views.Plugins').disableControls(disable); + } var leftMenu = app.getController('LeftMenu').leftMenu; leftMenu.btnComments.setDisabled(disable); @@ -626,6 +630,8 @@ define([ me.dlgChanges.show(Math.max(10, offset.left + sdk.width() - 300), Math.max(10, offset.top + sdk.height() - 150)); } }); + } else { + config.canViewReview && (config.canViewReview = me.api.asc_HaveRevisionsChanges()); } if (me.view && me.view.btnChat) { diff --git a/apps/common/main/lib/model/ReviewChange.js b/apps/common/main/lib/model/ReviewChange.js index b9c55ec3f..89ff8aef4 100644 --- a/apps/common/main/lib/model/ReviewChange.js +++ b/apps/common/main/lib/model/ReviewChange.js @@ -62,6 +62,7 @@ define([ lockuser : '', type : 0, changedata : null, + hint : false, id : Common.UI.getId(), // internal scope : null diff --git a/apps/common/main/lib/template/ReviewChangesPopover.template b/apps/common/main/lib/template/ReviewChangesPopover.template index e3b12c32b..7e89743ba 100644 --- a/apps/common/main/lib/template/ReviewChangesPopover.template +++ b/apps/common/main/lib/template/ReviewChangesPopover.template @@ -4,6 +4,7 @@
<%=date%>
<%=changetext%>
+ <% if (!hint) { %>
<% if (scope.appConfig.isReviewOnly) { %>
@@ -12,4 +13,5 @@
<% } %>
+ <% } %> \ No newline at end of file diff --git a/apps/common/main/lib/view/ReviewChanges.js b/apps/common/main/lib/view/ReviewChanges.js index 22a9a62b3..70cb42b9d 100644 --- a/apps/common/main/lib/view/ReviewChanges.js +++ b/apps/common/main/lib/view/ReviewChanges.js @@ -126,11 +126,11 @@ define([ this.btnsTurnReview.forEach(function (button) { button.on('click', _click_turnpreview.bind(me)); }); - + } + if (this.appConfig.canViewReview) this.btnReviewView.menu.on('item:click', function (menu, item, e) { me.fireEvent('reviewchanges:view', [menu, item]); }); - } this.btnsSpelling.forEach(function(button) { button.on('click', function (b, e) { @@ -206,7 +206,8 @@ define([ enableToggle: true }); this.btnsTurnReview = [this.btnTurnOn]; - + } + if (this.appConfig.canViewReview) { this.btnReviewView = new Common.UI.Button({ cls: 'btn-toolbar x-huge icon-top', iconCls: 'btn-ic-reviewview', @@ -223,7 +224,7 @@ define([ }); } - if (!this.appConfig.isOffline && this.appConfig.canCoAuthoring) { + if (this.appConfig.isEdit && !this.appConfig.isOffline && this.appConfig.canCoAuthoring) { this.btnCoAuthMode = new Common.UI.Button({ cls: 'btn-toolbar x-huge icon-top', iconCls: 'btn-ic-coedit', @@ -311,6 +312,10 @@ define([ ); me.btnReject.updateHint([me.tipRejectCurrent, me.txtRejectChanges]); + me.btnAccept.setDisabled(config.isReviewOnly); + me.btnReject.setDisabled(config.isReviewOnly); + } + if (me.appConfig.canViewReview) { me.btnReviewView.setMenu( new Common.UI.Menu({ cls: 'ppm-toolbar', @@ -345,11 +350,7 @@ define([ ] })); me.btnReviewView.updateHint(me.tipReviewView); - - me.btnAccept.setDisabled(config.isReviewOnly); - me.btnReject.setDisabled(config.isReviewOnly); } - me.btnSharing && me.btnSharing.updateHint(me.tipSharing); me.btnHistory && me.btnHistory.updateHint(me.tipHistory); me.btnChat && me.btnChat.updateHint(me.txtChat + Common.Utils.String.platformKey('Alt+Q')); @@ -392,7 +393,7 @@ define([ var separator_sharing = !(me.btnSharing || me.btnCoAuthMode) ? me.$el.find('.separator.sharing') : '.separator.sharing', separator_comments = !(config.canComments && config.canCoAuthoring) ? me.$el.find('.separator.comments') : '.separator.comments', - separator_review = !config.canReview ? me.$el.find('.separator.review') : '.separator.review', + separator_review = !(config.canReview || config.canViewReview) ? me.$el.find('.separator.review') : '.separator.review', separator_chat = !me.btnChat ? me.$el.find('.separator.chat') : '.separator.chat', separator_last; @@ -419,7 +420,7 @@ define([ if (!me.btnHistory && separator_last) me.$el.find(separator_last).hide(); - Common.NotificationCenter.trigger('tab:visible', 'review', true); + Common.NotificationCenter.trigger('tab:visible', 'review', config.isEdit || config.canViewReview); setEvents.call(me); }); @@ -434,8 +435,8 @@ define([ this.btnAccept.render(this.$el.find('#btn-change-accept')); this.btnReject.render(this.$el.find('#btn-change-reject')); this.btnTurnOn.render(this.$el.find('#btn-review-on')); - this.btnReviewView.render(this.$el.find('#btn-review-view')); } + this.btnReviewView && this.btnReviewView.render(this.$el.find('#btn-review-view')); this.btnSharing && this.btnSharing.render(this.$el.find('#slot-btn-sharing')); this.btnCoAuthMode && this.btnCoAuthMode.render(this.$el.find('#slot-btn-coauthmode')); diff --git a/apps/documenteditor/main/app/controller/Main.js b/apps/documenteditor/main/app/controller/Main.js index 97bff0187..bd9399752 100644 --- a/apps/documenteditor/main/app/controller/Main.js +++ b/apps/documenteditor/main/app/controller/Main.js @@ -1105,6 +1105,7 @@ define([ (!this.appOptions.isReviewOnly || this.appOptions.canLicense); // if isReviewOnly==true -> canLicense must be true this.appOptions.isEdit = this.appOptions.canLicense && this.appOptions.canEdit && this.editorConfig.mode !== 'view'; this.appOptions.canReview = this.permissions.review === true && this.appOptions.canLicense && this.appOptions.isEdit; + this.appOptions.canViewReview = true; this.appOptions.canUseHistory = this.appOptions.canLicense && this.editorConfig.canUseHistory && this.appOptions.canCoAuthoring && !this.appOptions.isOffline; this.appOptions.canHistoryClose = this.editorConfig.canHistoryClose; this.appOptions.canHistoryRestore= this.editorConfig.canHistoryRestore && !!this.permissions.changeHistory; @@ -1210,21 +1211,19 @@ define([ this.contComments.setConfig({config: this.editorConfig}, this.api); /** coauthoring end **/ - if (this.appOptions.isEdit) { - var me = this, - application = this.getApplication(), - toolbarController = application.getController('Toolbar'), - rightmenuController = application.getController('RightMenu'), - fontsControllers = application.getController('Common.Controllers.Fonts'), - reviewController = application.getController('Common.Controllers.ReviewChanges'); + var me = this, + application = this.getApplication(), + reviewController = application.getController('Common.Controllers.ReviewChanges'); + reviewController.setMode(me.appOptions).setConfig({config: me.editorConfig}, me.api); + if (this.appOptions.isEdit) { + var toolbarController = application.getController('Toolbar'), + rightmenuController = application.getController('RightMenu'), + fontsControllers = application.getController('Common.Controllers.Fonts'); fontsControllers && fontsControllers.setApi(me.api); toolbarController && toolbarController.setApi(me.api); - rightmenuController && rightmenuController.setApi(me.api); - reviewController.setMode(me.appOptions).setConfig({config: me.editorConfig}, me.api); - if (this.appOptions.canProtect) application.getController('Common.Controllers.Protection').setMode(me.appOptions).setConfig({config: me.editorConfig}, me.api); diff --git a/apps/documenteditor/main/app/controller/Toolbar.js b/apps/documenteditor/main/app/controller/Toolbar.js index 7ff5d36d5..0c47d040b 100644 --- a/apps/documenteditor/main/app/controller/Toolbar.js +++ b/apps/documenteditor/main/app/controller/Toolbar.js @@ -2718,7 +2718,7 @@ define([ toolbar._state.previewmode = reviewmode && disable; if (reviewmode) { - toolbar._state.previewmode && toolbar.btnSave.setDisabled(true); + toolbar._state.previewmode && toolbar.btnSave && toolbar.btnSave.setDisabled(true); if (toolbar.needShowSynchTip) { toolbar.needShowSynchTip = false; @@ -2768,15 +2768,14 @@ define([ me.toolbar.render(_.extend({isCompactView: compactview}, config)); + var tab = {action: 'review', caption: me.toolbar.textTabCollaboration}; + var $panel = this.getApplication().getController('Common.Controllers.ReviewChanges').createToolbarPanel(); + if ( $panel ) + me.toolbar.addTab(tab, $panel, 4); + if ( config.isEdit ) { me.toolbar.setMode(config); - var tab = {action: 'review', caption: me.toolbar.textTabCollaboration}; - var $panel = this.getApplication().getController('Common.Controllers.ReviewChanges').createToolbarPanel(); - - if ( $panel ) - me.toolbar.addTab(tab, $panel, 4); - me.toolbar.btnSave.on('disabled', _.bind(me.onBtnChangeState, me, 'save:disabled')); if ( config.isDesktopApp ) { // hide 'print' and 'save' buttons group and next separator