diff --git a/apps/common/main/lib/controller/Comments.js b/apps/common/main/lib/controller/Comments.js index 40644084a..57b59d16b 100644 --- a/apps/common/main/lib/controller/Comments.js +++ b/apps/common/main/lib/controller/Comments.js @@ -74,7 +74,7 @@ define([ subEditStrings : {}, filter : undefined, hintmode : false, - previewmode: false, + viewmode: false, isSelectedComment : false, uids : [], oldUids : [], @@ -169,7 +169,7 @@ define([ this.currentUserName = data.config.user.fullname; this.sdkViewName = data['sdkviewname'] || this.sdkViewName; this.hintmode = data['hintmode'] || false; - this.previewmode = data['previewmode'] || false; + this.viewmode = data['viewmode'] || false; } }, setApi: function (api) { @@ -194,10 +194,8 @@ define([ setMode: function(mode) { this.mode = mode; this.isModeChanged = true; // change show-comment mode from/to hint mode using canComments flag - if (!this.mode.canComments) { - this.view.changeLayout(mode); - } - + this.view.viewmode = !this.mode.canComments; + this.view.changeLayout(mode); return this; }, // @@ -283,8 +281,6 @@ define([ return false; }, onShowComment: function (id, selected) { - if (this.previewmode) return; - var comment = this.findComment(id); if (comment) { if (null !== comment.get('quote')) { @@ -818,11 +814,9 @@ define([ } }, onApiShowComment: function (uids, posX, posY, leftX, opts, hint) { - if (this.previewmode) return; - this.isModeChanged = false; var same_uids = (0 === _.difference(this.uids, uids).length) && (0 === _.difference(uids, this.uids).length); - if (hint && this.isSelectedComment && same_uids) { + if (hint && this.isSelectedComment && same_uids && !this.isModeChanged) { // хотим показать тот же коментарий что был и выбран return; } @@ -833,7 +827,7 @@ define([ if (popover) { this.clearDummyComment(); - if (this.isSelectedComment && same_uids) { + if (this.isSelectedComment && same_uids && !this.isModeChanged) { //NOTE: click to sdk view ? if (this.api) { //this.view.txtComment.blur(); @@ -905,6 +899,7 @@ define([ popover.setLeftTop(posX, posY, leftX); popover.showComments(animate, false, true, text); } + this.isModeChanged = false; }, onApiHideComment: function (hint) { var t = this; @@ -940,8 +935,6 @@ define([ } }, onApiUpdateCommentPosition: function (uids, posX, posY, leftX) { - if (this.previewmode) return; - var i, useAnimation = false, comment = null, text = undefined, @@ -1480,9 +1473,16 @@ define([ }, setPreviewMode: function(mode) { - this.previewmode = mode; + if (this.viewmode === mode) return; + this.viewmode = mode; + if (mode) + this.prevcanComments = this.mode.canComments; + this.mode.canComments = (mode) ? false : this.prevcanComments; + this.closeEditing(); + this.setMode(this.mode); + this.updateComments(true); if (this.getPopover()) - this.getPopover().hide(); + this.getPopover().update(true); } }, Common.Controllers.Comments || {})); diff --git a/apps/common/main/lib/controller/ReviewChanges.js b/apps/common/main/lib/controller/ReviewChanges.js index 938252cc1..7d31d22b6 100644 --- a/apps/common/main/lib/controller/ReviewChanges.js +++ b/apps/common/main/lib/controller/ReviewChanges.js @@ -573,13 +573,11 @@ define([ app.getController('Common.Controllers.Plugins').getView('Common.Views.Plugins').disableControls(disable); } - var leftMenu = app.getController('LeftMenu').leftMenu; - leftMenu.btnComments.setDisabled(disable); - if (disable) leftMenu.close(); var comments = app.getController('Common.Controllers.Comments'); if (comments) comments.setPreviewMode(disable); + var leftMenu = app.getController('LeftMenu').leftMenu; leftMenu.getMenu('file').miProtect.setDisabled(disable); if (this.view) { diff --git a/apps/common/main/lib/template/Comments.template b/apps/common/main/lib/template/Comments.template index bd2986c3f..cf458d5e3 100644 --- a/apps/common/main/lib/template/Comments.template +++ b/apps/common/main/lib/template/Comments.template @@ -10,7 +10,7 @@ <% if (quote!==null && quote!=='') { %>
<%=scope.getFixedQuote(quote)%>
<% } %> - <% if (!editText || hint) { %> + <% if (!editText || scope.viewmode) { %>
<%=scope.pickLink(comment)%>
<% } else { %>
@@ -25,14 +25,14 @@ <% if (replys.length) { %>
<% _.each(replys, function (item, index) { %> -
style="padding-bottom: 0;" <% } %>;> +
style="padding-bottom: 0;" <% } %>;>
<%=item.get("usercolor")%><% } else { %> #cfcfcf <% } %>; " >
<%= scope.getUserName(item.get("username")) %>
<%=item.get("date")%>
<% if (!item.get("editText")) { %>
<%=scope.pickLink(item.get("reply"))%>
- <% if (!hint) { %> + <% if (!scope.viewmode) { %>
<% if (item.get("editable")) { %>
">
@@ -53,7 +53,7 @@ - <% if (!showReply && !hint) { %> + <% if (!showReply && !scope.viewmode) { %> <% if (replys.length) { %> <% } else { %> @@ -63,7 +63,7 @@ - <% if (!editText && !lock && !hint) { %> + <% if (!editText && !lock && !scope.viewmode) { %>
<% if (editable) { %>
diff --git a/apps/common/main/lib/view/Comments.js b/apps/common/main/lib/view/Comments.js index df32ed3f0..be9d648ae 100644 --- a/apps/common/main/lib/view/Comments.js +++ b/apps/common/main/lib/view/Comments.js @@ -79,6 +79,7 @@ define([ addCommentHeight: 45, newCommentHeight: 110, textBoxAutoSizeLocked: undefined, // disable autosize textbox + viewmode: false, initialize: function (options) { Common.UI.BaseView.prototype.initialize.call(this, options); @@ -550,13 +551,38 @@ define([ }, changeLayout: function(mode) { + var me = this, + add = $('.new-comment-ct', this.el), + to = $('.add-link-ct', this.el), + msgs = $('.messages-ct', this.el); + msgs.toggleClass('stretch', !mode.canComments); if (!mode.canComments) { - var add = $('.new-comment-ct', this.el), - to = $('.add-link-ct', this.el), - msgs = $('.messages-ct', this.el); add.hide(); to.hide(); - msgs.addClass('stretch'); this.layout.changeLayout([{el: msgs[0], rely: false, stretch: true}]); + } else { + var container = $('#comments-box', this.el), + items = container.find(' > .layout-item'); + to.show(); + this.layout.changeLayout([{el: items[0], rely: true, + resize: { + hidden: false, + autohide: false, + fmin: (function () { + var height = container.height(); + if (add.css('display') !== 'none') { + if (height * 0.5 < me.newCommentHeight) + return height - me.newCommentHeight; + } + return height * 0.5; + }), + fmax: (function () { + if (add.css('display') !== 'none') + return container.height() - me.newCommentHeight; + return container.height() - me.addCommentHeight; + }) + }}, + {el: items[1], stretch: true}, + {el: items[2], stretch: true}]); } }, diff --git a/apps/documenteditor/main/app/view/SignatureSettings.js b/apps/documenteditor/main/app/view/SignatureSettings.js index 9bd94f688..023b914de 100644 --- a/apps/documenteditor/main/app/view/SignatureSettings.js +++ b/apps/documenteditor/main/app/view/SignatureSettings.js @@ -390,8 +390,8 @@ define([ DE.getController('DocumentHolder').getView().SetDisabled(disable, true); DE.getController('Navigation') && DE.getController('Navigation').SetDisabled(disable); - var leftMenu = DE.getController('LeftMenu').leftMenu; - leftMenu.btnComments.setDisabled(disable); + // var leftMenu = DE.getController('LeftMenu').leftMenu; + // leftMenu.btnComments.setDisabled(disable); var comments = DE.getController('Common.Controllers.Comments'); if (comments) comments.setPreviewMode(disable); diff --git a/apps/presentationeditor/main/app/view/SignatureSettings.js b/apps/presentationeditor/main/app/view/SignatureSettings.js index aa7b4db8f..788cc5082 100644 --- a/apps/presentationeditor/main/app/view/SignatureSettings.js +++ b/apps/presentationeditor/main/app/view/SignatureSettings.js @@ -343,8 +343,8 @@ define([ PE.getController('Common.Controllers.ReviewChanges').SetDisabled(disable); PE.getController('DocumentHolder').getView('DocumentHolder').SetDisabled(disable); - var leftMenu = PE.getController('LeftMenu').leftMenu; - leftMenu.btnComments.setDisabled(disable); + // var leftMenu = PE.getController('LeftMenu').leftMenu; + // leftMenu.btnComments.setDisabled(disable); var comments = PE.getController('Common.Controllers.Comments'); if (comments) comments.setPreviewMode(disable); diff --git a/apps/spreadsheeteditor/main/app/view/SignatureSettings.js b/apps/spreadsheeteditor/main/app/view/SignatureSettings.js index 5ba6694ee..52661efa7 100644 --- a/apps/spreadsheeteditor/main/app/view/SignatureSettings.js +++ b/apps/spreadsheeteditor/main/app/view/SignatureSettings.js @@ -389,8 +389,8 @@ define([ SSE.getController('Common.Controllers.ReviewChanges').SetDisabled(disable); SSE.getController('DocumentHolder').SetDisabled(disable, true); - var leftMenu = SSE.getController('LeftMenu').leftMenu; - leftMenu.btnComments.setDisabled(disable); + // var leftMenu = SSE.getController('LeftMenu').leftMenu; + // leftMenu.btnComments.setDisabled(disable); var comments = SSE.getController('Common.Controllers.Comments'); if (comments) comments.setPreviewMode(disable);