diff --git a/apps/common/mobile/lib/controller/Collaboration.js b/apps/common/mobile/lib/controller/Collaboration.js index c5d3afc1d0..22841217ba 100644 --- a/apps/common/mobile/lib/controller/Collaboration.js +++ b/apps/common/mobile/lib/controller/Collaboration.js @@ -79,12 +79,17 @@ define([ 'page:show' : me.onPageShow } }); + Common.NotificationCenter.on('comments:filterchange', _.bind(this.onFilterChange, this)); }, setApi: function(api) { this.api = api; this.api.asc_registerCallback('asc_onAuthParticipantsChanged', _.bind(this.onChangeEditUsers, this)); this.api.asc_registerCallback('asc_onParticipantsChanged', _.bind(this.onChangeEditUsers, this)); + this.api.asc_registerCallback('asc_onAddComment', _.bind(this.onApiAddComment, this)); + this.api.asc_registerCallback('asc_onAddComments', _.bind(this.onApiAddComments, this)); + this.api.asc_registerCallback('asc_onChangeCommentData', _.bind(this.onApiChangeCommentData, this)); + this.api.asc_registerCallback('asc_onRemoveComment', _.bind(this.onApiRemoveComment, this)); if (editor === 'DE') { this.api.asc_registerCallback('asc_onShowRevisionsChange', _.bind(this.changeReview, this)); } @@ -644,6 +649,216 @@ define([ } }, + //Comments + + groupCollectionComments: [], + collectionComments: [], + groupCollectionFilter: [], + filter: [], + + initComments: function() { + this.getView('Common.Views.Collaboration').renderComments((this.groupCollectionFilter.length !== 0) ? this.groupCollectionFilter : (this.collectionComments.length !== 0) ? this.collectionComments : false); + $('.comment-quote').single('click', _.bind(this.onSelectComment, this)); + }, + + readSDKReplies: function (data) { + var i = 0, + replies = [], + date = null; + var repliesCount = data.asc_getRepliesCount(); + if (repliesCount) { + for (i = 0; i < repliesCount; ++i) { + date = (data.asc_getReply(i).asc_getOnlyOfficeTime()) ? new Date(this.stringOOToLocalDate(data.asc_getReply(i).asc_getOnlyOfficeTime())) : + ((data.asc_getReply(i).asc_getTime() == '') ? new Date() : new Date(this.stringUtcToLocalDate(data.asc_getReply(i).asc_getTime()))); + + var user = _.findWhere(editUsers, {idOriginal: data.asc_getReply(i).asc_getUserId()}); + replies.push({ + userid : data.asc_getReply(i).asc_getUserId(), + username : data.asc_getReply(i).asc_getUserName(), + usercolor : (user) ? user.asc_getColor() : null, + date : this.dateToLocaleTimeString(date), + reply : data.asc_getReply(i).asc_getText(), + time : date.getTime() + }); + } + } + return replies; + }, + + readSDKComment: function(id, data) { + var date = (data.asc_getOnlyOfficeTime()) ? new Date(this.stringOOToLocalDate(data.asc_getOnlyOfficeTime())) : + ((data.asc_getTime() == '') ? new Date() : new Date(this.stringUtcToLocalDate(data.asc_getTime()))); + var user = _.findWhere(editUsers, {idOriginal: data.asc_getUserId()}), + groupname = id.substr(0, id.lastIndexOf('_')+1).match(/^(doc|sheet[0-9_]+)_/); + var comment = { + uid : id, + userid : data.asc_getUserId(), + username : data.asc_getUserName(), + usercolor : (user) ? user.asc_getColor() : null, + date : this.dateToLocaleTimeString(date), + quote : data.asc_getQuoteText(), + comment : data.asc_getText(), + resolved : data.asc_getSolved(), + unattached : !_.isUndefined(data.asc_getDocumentFlag) ? data.asc_getDocumentFlag() : false, + time : date.getTime(), + replys : [], + groupName : (groupname && groupname.length>1) ? groupname[1] : null + } + if (comment) { + var replies = this.readSDKReplies(data); + if (replies.length) { + comment.replys = replies; + } + } + return comment; + }, + + onApiChangeCommentData: function(id, data) { + var me = this, + i = 0, + date = null, + replies = null, + repliesCount = 0, + dateReply = null, + comment = _.findWhere(me.collectionComments, {uid: id}) || this.findCommentInGroup(id); + + if (comment) { + + date = (data.asc_getOnlyOfficeTime()) ? new Date(this.stringOOToLocalDate(data.asc_getOnlyOfficeTime())) : + ((data.asc_getTime() == '') ? new Date() : new Date(this.stringUtcToLocalDate(data.asc_getTime()))); + + var user = _.findWhere(editUsers, {idOriginal: data.asc_getUserId()}); + comment.comment = data.asc_getText(); + comment.userid = data.asc_getUserId(); + comment.username = data.asc_getUserName(); + comment.usercolor = (user) ? user.asc_getColor() : null; + comment.resolved = data.asc_getSolved(); + comment.quote = data.asc_getQuoteText(); + comment.time = date.getTime(); + comment.date = me.dateToLocaleTimeString(date); + + replies = _.clone(comment.replys); + + replies.length = 0; + + repliesCount = data.asc_getRepliesCount(); + for (i = 0; i < repliesCount; ++i) { + + dateReply = (data.asc_getReply(i).asc_getOnlyOfficeTime()) ? new Date(this.stringOOToLocalDate(data.asc_getReply(i).asc_getOnlyOfficeTime())) : + ((data.asc_getReply(i).asc_getTime() == '') ? new Date() : new Date(this.stringUtcToLocalDate(data.asc_getReply(i).asc_getTime()))); + + user = _.findWhere(editUsers, {idOriginal: data.asc_getReply(i).asc_getUserId()}); + replies.push({ + userid : data.asc_getReply(i).asc_getUserId(), + username : data.asc_getReply(i).asc_getUserName(), + usercolor : (user) ? user.asc_getColor() : null, + date : me.dateToLocaleTimeString(dateReply), + reply : data.asc_getReply(i).asc_getText(), + time : dateReply.getTime() + }); + } + comment.replys = replies; + if($('.page-comments').length > 0) { + this.initComments(); + } + } + }, + + onApiAddComment: function (id, data) { + var comment = this.readSDKComment(id, data); + if (comment) { + comment.groupName ? this.addCommentToGroupCollection(comment) : this.collectionComments.push(comment); + } + if($('.page-comments').length > 0) { + this.initComments(); + } + }, + + onApiAddComments: function (data) { + for (var i = 0; i < data.length; ++i) { + var comment = this.readSDKComment(data[i].asc_getId(), data[i]); + comment.groupName ? this.addCommentToGroupCollection(comment) : this.collectionComments.push(comment); + } + if($('.page-comments').length > 0) { + this.initComments(); + } + }, + + stringOOToLocalDate: function (date) { + if (typeof date === 'string') + return parseInt(date); + return 0; + }, + + addCommentToGroupCollection: function (comment) { + var groupname = comment.groupName; + if (!this.groupCollectionComments[groupname]) + this.groupCollectionComments[groupname] = []; + this.groupCollectionComments[groupname].push(comment); + if (this.filter.indexOf(groupname) != -1) { + this.groupCollectionFilter.push(comment); + } + }, + + findCommentInGroup: function (id) { + for (var name in this.groupCollectionComments) { + var store = this.groupCollectionComments[name], + model = _.findWhere(store, {uid: id}); + if (model) return model; + } + }, + + onApiRemoveComment: function (id) { + function remove (collection, key) { + if(collection instanceof Array) { + var index = collection.indexOf(key); + if(index != -1) { + collection.splice(index, 1); + } + } + } + if (this.groupCollectionComments) { + for (var name in this.groupCollectionComments) { + var store = this.groupCollectionComments[name], + comment = _.findWhere(store, {uid: id}); + if (comment) { + remove(this.groupCollectionComments[name], comment); + if (this.filter.indexOf(name) != -1) { + remove(this.groupCollectionFilter, comment); + } + } + } + } + if (this.collectionComments.length > 0) { + var comment = _.findWhere(this.collectionComments, {uid: id}); + if (comment) { + remove(this.collectionComments, comment); + } + } + if($('.page-comments').length > 0) { + this.initComments(); + } + }, + + onFilterChange: function (filter) { + if (filter) { + var me = this, + comments = []; + this.filter = filter; + filter.forEach(function(item){ + if (!me.groupCollectionComments[item]) + me.groupCollectionComments[item] = []; + comments = comments.concat(me.groupCollectionComments[item]); + }); + this.groupCollectionFilter = comments; + } + }, + + onSelectComment: function (e) { + var id = $(e.currentTarget).data('id'); + this.api.asc_selectComment(id); + }, + textInserted: 'Inserted:', textDeleted: 'Deleted:', diff --git a/apps/common/mobile/lib/template/Collaboration.template b/apps/common/mobile/lib/template/Collaboration.template index 6256a860aa..39e076ded3 100644 --- a/apps/common/mobile/lib/template/Collaboration.template +++ b/apps/common/mobile/lib/template/Collaboration.template @@ -20,6 +20,15 @@ +
  • + +
    +
    +
    <%= scope.textСomments %>
    +
    +
    +
    +
  • <% if (editor === 'DE') { %>
  • @@ -207,4 +216,24 @@ + + + +
    + +
    +
    +
    +
    +
      +
      +
      +
      +
      \ No newline at end of file diff --git a/apps/common/mobile/lib/view/Collaboration.js b/apps/common/mobile/lib/view/Collaboration.js index c886a0f5b3..f8f57ca2c8 100644 --- a/apps/common/mobile/lib/view/Collaboration.js +++ b/apps/common/mobile/lib/view/Collaboration.js @@ -146,6 +146,44 @@ define([ } }, + renderComments: function (comments) { + var $listComments = $('#comments-list'), + items = []; + + _.each(comments, function (comment) { + var itemTemplate = [ + '
    • ', + '
      ', + '

      <%= item.username %>

      ', + '

      <%= item.date %>

      ', + '<% if(item.quote) {%>', + '

      <%= item.quote %>

      ', + '<% } %>', + '

      <%= item.comment %>

      ', + '<% if(replys > 0) {%>', + '', + '<% } %>', + '
      ', + '
    • ' + ].join(''); + items.push(_.template(itemTemplate)({ + android: Framework7.prototype.device.android, + item: comment, + replys: comment.replys.length + })); + }); + + $listComments.html(items); + }, + textCollaboration: 'Collaboration', diff --git a/apps/common/mobile/resources/less/ios/_collaboration.less b/apps/common/mobile/resources/less/ios/_collaboration.less index ff87fb8b98..37361bc8ec 100644 --- a/apps/common/mobile/resources/less/ios/_collaboration.less +++ b/apps/common/mobile/resources/less/ios/_collaboration.less @@ -59,4 +59,99 @@ .page-content .list-block:first-child { margin-top: -1px; } +} + +//Edit users +@initialEditUser: #373737; + +#user-list { + .item-content { + padding-left: 0; + } + .item-inner { + justify-content: flex-start; + padding-left: 15px; + } + .length { + margin-left: 4px; + } + .color { + min-width: 40px; + min-height: 40px; + margin-right: 20px; + text-align: center; + border-radius: 50px; + line-height: 40px; + color: @initialEditUser; + font-weight: 500; + + } + ul:before { + content: none; + } +} + +//Comments +.page-comments { + .list-block .item-inner { + display: block; + padding: 16px 0; + word-wrap: break-word; + } + p { + margin: 0; + } + .user-name { + font-size: 17px; + line-height: 22px; + color: #000000; + margin: 0; + font-weight: bold; + } + .comment-date, .reply-date { + font-size: 12px; + line-height: 18px; + color: #6d6d72; + margin: 0; + margin-top: 0px; + } + .comment-text, .reply-text { + color: #000000; + font-size: 15px; + line-height: 25px; + margin: 0; + max-width: 100%; + padding-right: 15px; + } + .reply-item { + margin-top: 15px; + .user-name { + padding-top: 16px; + } + &:before { + content: ''; + position: absolute; + left: auto; + bottom: 0; + right: auto; + top: 0; + height: 1px; + width: 100%; + background-color: @listBlockBorderColor; + display: block; + z-index: 15; + -webkit-transform-origin: 50% 100%; + transform-origin: 50% 100%; + } + } + .comment-quote { + color: @themeColor; + border-left: 1px solid @themeColor; + padding-left: 10px; + margin: 5px 0; + font-size: 15px; + } +} +.settings.popup .list-block ul.list-reply:last-child:after, .settings.popover .list-block ul.list-reply:last-child:after { + display: none; } \ No newline at end of file diff --git a/apps/common/mobile/resources/less/material/_collaboration.less b/apps/common/mobile/resources/less/material/_collaboration.less index ba21a87945..ea3cdf0f06 100644 --- a/apps/common/mobile/resources/less/material/_collaboration.less +++ b/apps/common/mobile/resources/less/material/_collaboration.less @@ -57,4 +57,100 @@ .page-content .list-block:first-child { margin-top: -1px; } +} + + +//Edit users +@initialEditUser: #373737; + +#user-list { + .item-content { + padding-left: 0; + } + .item-inner { + justify-content: flex-start; + padding-left: 15px; + } + .length { + margin-left: 4px; + } + .color { + min-width: 40px; + min-height: 40px; + margin-right: 20px; + text-align: center; + border-radius: 50px; + line-height: 40px; + color: @initialEditUser; + font-weight: 400; + } + ul:before { + content: none; + } +} + + +//Comments +.page-comments { + .list-block .item-inner { + display: block; + padding: 16px 0; + word-wrap: break-word; + } + p { + margin: 0; + } + .user-name { + font-size: 17px; + line-height: 22px; + color: #000000; + margin: 0; + font-weight: bold; + } + .comment-date, .reply-date { + font-size: 12px; + line-height: 18px; + color: #6d6d72; + margin: 0; + margin-top: 0px; + } + .comment-text, .reply-text { + color: #000000; + font-size: 15px; + line-height: 25px; + margin: 0; + max-width: 100%; + padding-right: 15px; + } + .reply-item { + margin-top: 15px; + .user-name { + padding-top: 16px; + } + &:before { + content: ''; + position: absolute; + left: auto; + bottom: 0; + right: auto; + top: 0; + height: 1px; + width: 100%; + background-color: @listBlockBorderColor; + display: block; + z-index: 15; + -webkit-transform-origin: 50% 100%; + transform-origin: 50% 100%; + } + } + .comment-quote { + color: @themeColor; + border-left: 1px solid @themeColor; + padding-left: 10px; + margin: 5px 0; + font-size: 15px; + } +} +.settings.popup .list-block ul.list-reply:last-child:after, .settings.popover .list-block ul.list-reply:last-child:after { + display: none; } \ No newline at end of file diff --git a/apps/documenteditor/mobile/resources/css/app-ios.css b/apps/documenteditor/mobile/resources/css/app-ios.css index 5f8bc366d7..4c600bf194 100644 --- a/apps/documenteditor/mobile/resources/css/app-ios.css +++ b/apps/documenteditor/mobile/resources/css/app-ios.css @@ -6338,6 +6338,93 @@ html.pixel-ratio-3 .document-menu .list-block li:last-child li .item-inner:after .container-collaboration .page-content .list-block:first-child { margin-top: -1px; } +#user-list .item-content { + padding-left: 0; +} +#user-list .item-inner { + justify-content: flex-start; + padding-left: 15px; +} +#user-list .length { + margin-left: 4px; +} +#user-list .color { + min-width: 40px; + min-height: 40px; + margin-right: 20px; + text-align: center; + border-radius: 50px; + line-height: 40px; + color: #373737; + font-weight: 500; +} +#user-list ul:before { + content: none; +} +.page-comments .list-block .item-inner { + display: block; + padding: 16px 0; + word-wrap: break-word; +} +.page-comments p { + margin: 0; +} +.page-comments .user-name { + font-size: 17px; + line-height: 22px; + color: #000000; + margin: 0; + font-weight: bold; +} +.page-comments .comment-date, +.page-comments .reply-date { + font-size: 12px; + line-height: 18px; + color: #6d6d72; + margin: 0; + margin-top: 0px; +} +.page-comments .comment-text, +.page-comments .reply-text { + color: #000000; + font-size: 15px; + line-height: 25px; + margin: 0; + max-width: 100%; + padding-right: 15px; +} +.page-comments .reply-item { + margin-top: 15px; +} +.page-comments .reply-item .user-name { + padding-top: 16px; +} +.page-comments .reply-item:before { + content: ''; + position: absolute; + left: auto; + bottom: 0; + right: auto; + top: 0; + height: 1px; + width: 100%; + background-color: #c8c7cc; + display: block; + z-index: 15; + -webkit-transform-origin: 50% 100%; + transform-origin: 50% 100%; +} +.page-comments .comment-quote { + color: #446995; + border-left: 1px solid #446995; + padding-left: 10px; + margin: 5px 0; + font-size: 15px; +} +.settings.popup .list-block ul.list-reply:last-child:after, +.settings.popover .list-block ul.list-reply:last-child:after { + display: none; +} .tablet .searchbar.document.replace .center .searchbar:first-child { margin-right: 10px; } @@ -6989,26 +7076,3 @@ html.pixel-ratio-3 .numbers li { max-height: 100%; overflow: auto; } -#user-list .item-content { - padding-left: 0; -} -#user-list .item-inner { - justify-content: flex-start; - padding-left: 15px; -} -#user-list .length { - margin-left: 4px; -} -#user-list .color { - min-width: 40px; - min-height: 40px; - margin-right: 20px; - text-align: center; - border-radius: 50px; - line-height: 40px; - color: #373737; - font-weight: 500; -} -#user-list ul:before { - content: none; -} diff --git a/apps/documenteditor/mobile/resources/css/app-material.css b/apps/documenteditor/mobile/resources/css/app-material.css index d1aabb74d3..b830d72e15 100644 --- a/apps/documenteditor/mobile/resources/css/app-material.css +++ b/apps/documenteditor/mobile/resources/css/app-material.css @@ -5923,6 +5923,93 @@ html.phone .document-menu .list-block .item-link { .container-collaboration .page-content .list-block:first-child { margin-top: -1px; } +#user-list .item-content { + padding-left: 0; +} +#user-list .item-inner { + justify-content: flex-start; + padding-left: 15px; +} +#user-list .length { + margin-left: 4px; +} +#user-list .color { + min-width: 40px; + min-height: 40px; + margin-right: 20px; + text-align: center; + border-radius: 50px; + line-height: 40px; + color: #373737; + font-weight: 400; +} +#user-list ul:before { + content: none; +} +.page-comments .list-block .item-inner { + display: block; + padding: 16px 0; + word-wrap: break-word; +} +.page-comments p { + margin: 0; +} +.page-comments .user-name { + font-size: 17px; + line-height: 22px; + color: #000000; + margin: 0; + font-weight: bold; +} +.page-comments .comment-date, +.page-comments .reply-date { + font-size: 12px; + line-height: 18px; + color: #6d6d72; + margin: 0; + margin-top: 0px; +} +.page-comments .comment-text, +.page-comments .reply-text { + color: #000000; + font-size: 15px; + line-height: 25px; + margin: 0; + max-width: 100%; + padding-right: 15px; +} +.page-comments .reply-item { + margin-top: 15px; +} +.page-comments .reply-item .user-name { + padding-top: 16px; +} +.page-comments .reply-item:before { + content: ''; + position: absolute; + left: auto; + bottom: 0; + right: auto; + top: 0; + height: 1px; + width: 100%; + background-color: rgba(0, 0, 0, 0.12); + display: block; + z-index: 15; + -webkit-transform-origin: 50% 100%; + transform-origin: 50% 100%; +} +.page-comments .comment-quote { + color: #446995; + border-left: 1px solid #446995; + padding-left: 10px; + margin: 5px 0; + font-size: 15px; +} +.settings.popup .list-block ul.list-reply:last-child:after, +.settings.popover .list-block ul.list-reply:last-child:after { + display: none; +} .tablet .searchbar.document.replace .center > .replace { display: flex; } @@ -6760,26 +6847,3 @@ html.pixel-ratio-3 .numbers li { max-height: 100%; overflow: auto; } -#user-list .item-content { - padding-left: 0; -} -#user-list .item-inner { - justify-content: flex-start; - padding-left: 15px; -} -#user-list .length { - margin-left: 4px; -} -#user-list .color { - min-width: 40px; - min-height: 40px; - margin-right: 20px; - text-align: center; - border-radius: 50px; - line-height: 40px; - color: #373737; - font-weight: 400; -} -#user-list ul:before { - content: none; -} diff --git a/apps/documenteditor/mobile/resources/less/app-ios.less b/apps/documenteditor/mobile/resources/less/app-ios.less index acfb7401bc..9cd8b17cc8 100644 --- a/apps/documenteditor/mobile/resources/less/app-ios.less +++ b/apps/documenteditor/mobile/resources/less/app-ios.less @@ -240,33 +240,3 @@ input, textarea { max-height: 100%; overflow: auto; } - -//Edit users -@initialEditUser: #373737; - -#user-list { - .item-content { - padding-left: 0; - } - .item-inner { - justify-content: flex-start; - padding-left: 15px; - } - .length { - margin-left: 4px; - } - .color { - min-width: 40px; - min-height: 40px; - margin-right: 20px; - text-align: center; - border-radius: 50px; - line-height: 40px; - color: @initialEditUser; - font-weight: 500; - - } - ul:before { - content: none; - } -} \ No newline at end of file diff --git a/apps/documenteditor/mobile/resources/less/app-material.less b/apps/documenteditor/mobile/resources/less/app-material.less index 54e5c21995..67653a7d2c 100644 --- a/apps/documenteditor/mobile/resources/less/app-material.less +++ b/apps/documenteditor/mobile/resources/less/app-material.less @@ -227,32 +227,3 @@ input, textarea { max-height: 100%; overflow: auto; } - -//Edit users -@initialEditUser: #373737; - -#user-list { - .item-content { - padding-left: 0; - } - .item-inner { - justify-content: flex-start; - padding-left: 15px; - } - .length { - margin-left: 4px; - } - .color { - min-width: 40px; - min-height: 40px; - margin-right: 20px; - text-align: center; - border-radius: 50px; - line-height: 40px; - color: @initialEditUser; - font-weight: 400; - } - ul:before { - content: none; - } -} \ No newline at end of file diff --git a/apps/presentationeditor/mobile/resources/css/app-ios.css b/apps/presentationeditor/mobile/resources/css/app-ios.css index 793548ff60..cbd29c840a 100644 --- a/apps/presentationeditor/mobile/resources/css/app-ios.css +++ b/apps/presentationeditor/mobile/resources/css/app-ios.css @@ -6274,6 +6274,157 @@ html.pixel-ratio-3 .document-menu .list-block li:last-child li .item-inner:after margin-left: 20px; color: #212121; } +.page-change .block-description { + background-color: #fff; + padding-top: 15px; + padding-bottom: 15px; + margin: 0; + max-width: 100%; + word-wrap: break-word; +} +.page-change #user-name { + font-size: 17px; + line-height: 22px; + color: #000000; + margin: 0; +} +.page-change #date-change { + font-size: 14px; + line-height: 18px; + color: #6d6d72; + margin: 0; + margin-top: 3px; +} +.page-change #text-change { + color: #000000; + font-size: 15px; + line-height: 20px; + margin: 0; + margin-top: 10px; +} +.page-change .block-btn, +.page-change .content-block.block-btn:first-child { + display: flex; + flex-direction: row; + justify-content: space-around; + margin: 26px 0; +} +.page-change .block-btn #btn-next-change, +.page-change .content-block.block-btn:first-child #btn-next-change, +.page-change .block-btn #btn-reject-change, +.page-change .content-block.block-btn:first-child #btn-reject-change { + margin-left: 20px; +} +.page-change .block-btn #btn-goto-change, +.page-change .content-block.block-btn:first-child #btn-goto-change { + margin-right: 20px; +} +.page-change .block-btn .right-buttons, +.page-change .content-block.block-btn:first-child .right-buttons { + display: flex; +} +.page-change .block-btn .link, +.page-change .content-block.block-btn:first-child .link { + display: inline-block; +} +.navbar .center-collaboration { + display: flex; + justify-content: space-around; +} +.container-collaboration .navbar .right.close-collaboration { + position: absolute; + right: 10px; +} +.container-collaboration .page-content .list-block:first-child { + margin-top: -1px; +} +#user-list .item-content { + padding-left: 0; +} +#user-list .item-inner { + justify-content: flex-start; + padding-left: 15px; +} +#user-list .length { + margin-left: 4px; +} +#user-list .color { + min-width: 40px; + min-height: 40px; + margin-right: 20px; + text-align: center; + border-radius: 50px; + line-height: 40px; + color: #373737; + font-weight: 500; +} +#user-list ul:before { + content: none; +} +.page-comments .list-block .item-inner { + display: block; + padding: 16px 0; + word-wrap: break-word; +} +.page-comments p { + margin: 0; +} +.page-comments .user-name { + font-size: 17px; + line-height: 22px; + color: #000000; + margin: 0; + font-weight: bold; +} +.page-comments .comment-date, +.page-comments .reply-date { + font-size: 12px; + line-height: 18px; + color: #6d6d72; + margin: 0; + margin-top: 0px; +} +.page-comments .comment-text, +.page-comments .reply-text { + color: #000000; + font-size: 15px; + line-height: 25px; + margin: 0; + max-width: 100%; + padding-right: 15px; +} +.page-comments .reply-item { + margin-top: 15px; +} +.page-comments .reply-item .user-name { + padding-top: 16px; +} +.page-comments .reply-item:before { + content: ''; + position: absolute; + left: auto; + bottom: 0; + right: auto; + top: 0; + height: 1px; + width: 100%; + background-color: #c8c7cc; + display: block; + z-index: 15; + -webkit-transform-origin: 50% 100%; + transform-origin: 50% 100%; +} +.page-comments .comment-quote { + color: #aa5252; + border-left: 1px solid #aa5252; + padding-left: 10px; + margin: 5px 0; + font-size: 15px; +} +.settings.popup .list-block ul.list-reply:last-child:after, +.settings.popover .list-block ul.list-reply:last-child:after { + display: none; +} .tablet .searchbar.document.replace .center .searchbar:first-child { margin-right: 10px; } @@ -6873,26 +7024,3 @@ html.pixel-ratio-3 .numbers li { max-height: 100%; overflow: auto; } -#user-list .item-content { - padding-left: 0; -} -#user-list .item-inner { - justify-content: flex-start; - padding-left: 15px; -} -#user-list .length { - margin-left: 4px; -} -#user-list .color { - min-width: 40px; - min-height: 40px; - margin-right: 20px; - text-align: center; - border-radius: 50px; - line-height: 40px; - color: #373737; - font-weight: 500; -} -#user-list ul:before { - content: none; -} diff --git a/apps/presentationeditor/mobile/resources/css/app-material.css b/apps/presentationeditor/mobile/resources/css/app-material.css index 39ffc97631..2f83aeb7d8 100644 --- a/apps/presentationeditor/mobile/resources/css/app-material.css +++ b/apps/presentationeditor/mobile/resources/css/app-material.css @@ -5867,6 +5867,149 @@ html.phone .document-menu .list-block .item-link { margin-left: 20px; color: #212121; } +.page-change .block-description { + background-color: #fff; + padding-top: 15px; + padding-bottom: 15px; + margin: 0; + max-width: 100%; + word-wrap: break-word; +} +.page-change #user-name { + font-size: 17px; + line-height: 22px; + color: #000000; + margin: 0; +} +.page-change #date-change { + font-size: 14px; + line-height: 18px; + color: #6d6d72; + margin: 0; + margin-top: 3px; +} +.page-change #text-change { + color: #000000; + font-size: 15px; + line-height: 20px; + margin: 0; + margin-top: 10px; +} +.page-change .block-btn { + display: flex; + flex-direction: row; + justify-content: space-around; + margin: 0; + padding: 26px 0; + background-color: #EFEFF4; +} +.page-change .block-btn #btn-next-change, +.page-change .block-btn #btn-reject-change { + margin-left: 20px; +} +.page-change .block-btn #btn-goto-change { + margin-right: 20px; +} +.page-change .block-btn .right-buttons { + display: flex; +} +.page-change .block-btn .link { + display: inline-block; +} +.container-collaboration .navbar .right.close-collaboration { + position: absolute; + right: 5px; +} +.container-collaboration .page-content .list-block:first-child { + margin-top: -1px; +} +#user-list .item-content { + padding-left: 0; +} +#user-list .item-inner { + justify-content: flex-start; + padding-left: 15px; +} +#user-list .length { + margin-left: 4px; +} +#user-list .color { + min-width: 40px; + min-height: 40px; + margin-right: 20px; + text-align: center; + border-radius: 50px; + line-height: 40px; + color: #373737; + font-weight: 400; +} +#user-list ul:before { + content: none; +} +.page-comments .list-block .item-inner { + display: block; + padding: 16px 0; + word-wrap: break-word; +} +.page-comments p { + margin: 0; +} +.page-comments .user-name { + font-size: 17px; + line-height: 22px; + color: #000000; + margin: 0; + font-weight: bold; +} +.page-comments .comment-date, +.page-comments .reply-date { + font-size: 12px; + line-height: 18px; + color: #6d6d72; + margin: 0; + margin-top: 0px; +} +.page-comments .comment-text, +.page-comments .reply-text { + color: #000000; + font-size: 15px; + line-height: 25px; + margin: 0; + max-width: 100%; + padding-right: 15px; +} +.page-comments .reply-item { + margin-top: 15px; +} +.page-comments .reply-item .user-name { + padding-top: 16px; +} +.page-comments .reply-item:before { + content: ''; + position: absolute; + left: auto; + bottom: 0; + right: auto; + top: 0; + height: 1px; + width: 100%; + background-color: rgba(0, 0, 0, 0.12); + display: block; + z-index: 15; + -webkit-transform-origin: 50% 100%; + transform-origin: 50% 100%; +} +.page-comments .comment-quote { + color: #aa5252; + border-left: 1px solid #aa5252; + padding-left: 10px; + margin: 5px 0; + font-size: 15px; +} +.settings.popup .list-block ul.list-reply:last-child:after, +.settings.popover .list-block ul.list-reply:last-child:after { + display: none; +} .tablet .searchbar.document.replace .center > .replace { display: flex; } @@ -6701,26 +6844,3 @@ html.pixel-ratio-3 .numbers li { max-height: 100%; overflow: auto; } -#user-list .item-content { - padding-left: 0; -} -#user-list .item-inner { - justify-content: flex-start; - padding-left: 15px; -} -#user-list .length { - margin-left: 4px; -} -#user-list .color { - min-width: 40px; - min-height: 40px; - margin-right: 20px; - text-align: center; - border-radius: 50px; - line-height: 40px; - color: #373737; - font-weight: 400; -} -#user-list ul:before { - content: none; -} diff --git a/apps/presentationeditor/mobile/resources/less/app-ios.less b/apps/presentationeditor/mobile/resources/less/app-ios.less index 2ac567445b..2778f67bc7 100644 --- a/apps/presentationeditor/mobile/resources/less/app-ios.less +++ b/apps/presentationeditor/mobile/resources/less/app-ios.less @@ -72,6 +72,7 @@ input, textarea { @import url('../../../../common/mobile/resources/less/ios/_color-palette.less'); @import url('../../../../common/mobile/resources/less/ios/_about.less'); @import url('../../../../common/mobile/resources/less/ios/_color-schema.less'); +@import url('../../../../common/mobile/resources/less/ios/_collaboration.less'); @import url('ios/_search.less'); @import url('ios/_icons.less'); @@ -244,33 +245,3 @@ input, textarea { max-height: 100%; overflow: auto; } - -//Edit users -@initialEditUser: #373737; - -#user-list { - .item-content { - padding-left: 0; - } - .item-inner { - justify-content: flex-start; - padding-left: 15px; - } - .length { - margin-left: 4px; - } - .color { - min-width: 40px; - min-height: 40px; - margin-right: 20px; - text-align: center; - border-radius: 50px; - line-height: 40px; - color: @initialEditUser; - font-weight: 500; - - } - ul:before { - content: none; - } -} \ No newline at end of file diff --git a/apps/presentationeditor/mobile/resources/less/app-material.less b/apps/presentationeditor/mobile/resources/less/app-material.less index 604bfa755f..211286e3b8 100644 --- a/apps/presentationeditor/mobile/resources/less/app-material.less +++ b/apps/presentationeditor/mobile/resources/less/app-material.less @@ -54,6 +54,7 @@ @import url('../../../../common/mobile/resources/less/material/_color-palette.less'); @import url('../../../../common/mobile/resources/less/material/_about.less'); @import url('../../../../common/mobile/resources/less/material/_color-schema.less'); +@import url('../../../../common/mobile/resources/less/material/_collaboration.less'); @import url('material/_search.less'); @import url('material/_icons.less'); @@ -232,32 +233,3 @@ input, textarea { max-height: 100%; overflow: auto; } - -//Edit users -@initialEditUser: #373737; - -#user-list { - .item-content { - padding-left: 0; - } - .item-inner { - justify-content: flex-start; - padding-left: 15px; - } - .length { - margin-left: 4px; - } - .color { - min-width: 40px; - min-height: 40px; - margin-right: 20px; - text-align: center; - border-radius: 50px; - line-height: 40px; - color: @initialEditUser; - font-weight: 400; - } - ul:before { - content: none; - } -} \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/app/controller/Toolbar.js b/apps/spreadsheeteditor/mobile/app/controller/Toolbar.js index 8f0ab5c36c..e886dce69c 100644 --- a/apps/spreadsheeteditor/mobile/app/controller/Toolbar.js +++ b/apps/spreadsheeteditor/mobile/app/controller/Toolbar.js @@ -160,6 +160,7 @@ define([ onApiActiveSheetChanged: function (index) { locked.sheet = this.api.asc_isWorksheetLockedOrDeleted(index); + Common.NotificationCenter.trigger('comments:filterchange', ['doc', 'sheet' + this.api.asc_getWorksheetId(index)], false ); }, onApiCanRevert: function(which, can) { diff --git a/apps/spreadsheeteditor/mobile/resources/css/app-ios.css b/apps/spreadsheeteditor/mobile/resources/css/app-ios.css index 0adba5b26a..ebe1733cd1 100644 --- a/apps/spreadsheeteditor/mobile/resources/css/app-ios.css +++ b/apps/spreadsheeteditor/mobile/resources/css/app-ios.css @@ -6274,6 +6274,157 @@ html.pixel-ratio-3 .document-menu .list-block li:last-child li .item-inner:after margin-left: 20px; color: #212121; } +.page-change .block-description { + background-color: #fff; + padding-top: 15px; + padding-bottom: 15px; + margin: 0; + max-width: 100%; + word-wrap: break-word; +} +.page-change #user-name { + font-size: 17px; + line-height: 22px; + color: #000000; + margin: 0; +} +.page-change #date-change { + font-size: 14px; + line-height: 18px; + color: #6d6d72; + margin: 0; + margin-top: 3px; +} +.page-change #text-change { + color: #000000; + font-size: 15px; + line-height: 20px; + margin: 0; + margin-top: 10px; +} +.page-change .block-btn, +.page-change .content-block.block-btn:first-child { + display: flex; + flex-direction: row; + justify-content: space-around; + margin: 26px 0; +} +.page-change .block-btn #btn-next-change, +.page-change .content-block.block-btn:first-child #btn-next-change, +.page-change .block-btn #btn-reject-change, +.page-change .content-block.block-btn:first-child #btn-reject-change { + margin-left: 20px; +} +.page-change .block-btn #btn-goto-change, +.page-change .content-block.block-btn:first-child #btn-goto-change { + margin-right: 20px; +} +.page-change .block-btn .right-buttons, +.page-change .content-block.block-btn:first-child .right-buttons { + display: flex; +} +.page-change .block-btn .link, +.page-change .content-block.block-btn:first-child .link { + display: inline-block; +} +.navbar .center-collaboration { + display: flex; + justify-content: space-around; +} +.container-collaboration .navbar .right.close-collaboration { + position: absolute; + right: 10px; +} +.container-collaboration .page-content .list-block:first-child { + margin-top: -1px; +} +#user-list .item-content { + padding-left: 0; +} +#user-list .item-inner { + justify-content: flex-start; + padding-left: 15px; +} +#user-list .length { + margin-left: 4px; +} +#user-list .color { + min-width: 40px; + min-height: 40px; + margin-right: 20px; + text-align: center; + border-radius: 50px; + line-height: 40px; + color: #373737; + font-weight: 500; +} +#user-list ul:before { + content: none; +} +.page-comments .list-block .item-inner { + display: block; + padding: 16px 0; + word-wrap: break-word; +} +.page-comments p { + margin: 0; +} +.page-comments .user-name { + font-size: 17px; + line-height: 22px; + color: #000000; + margin: 0; + font-weight: bold; +} +.page-comments .comment-date, +.page-comments .reply-date { + font-size: 12px; + line-height: 18px; + color: #6d6d72; + margin: 0; + margin-top: 0px; +} +.page-comments .comment-text, +.page-comments .reply-text { + color: #000000; + font-size: 15px; + line-height: 25px; + margin: 0; + max-width: 100%; + padding-right: 15px; +} +.page-comments .reply-item { + margin-top: 15px; +} +.page-comments .reply-item .user-name { + padding-top: 16px; +} +.page-comments .reply-item:before { + content: ''; + position: absolute; + left: auto; + bottom: 0; + right: auto; + top: 0; + height: 1px; + width: 100%; + background-color: #c8c7cc; + display: block; + z-index: 15; + -webkit-transform-origin: 50% 100%; + transform-origin: 50% 100%; +} +.page-comments .comment-quote { + color: #40865c; + border-left: 1px solid #40865c; + padding-left: 10px; + margin: 5px 0; + font-size: 15px; +} +.settings.popup .list-block ul.list-reply:last-child:after, +.settings.popover .list-block ul.list-reply:last-child:after { + display: none; +} i.icon.icon-search { width: 24px; height: 24px; @@ -7222,29 +7373,6 @@ html.pixel-ratio-3 .cell-styles.dataview .row li { max-height: 100%; overflow: auto; } -#user-list .item-content { - padding-left: 0; -} -#user-list .item-inner { - justify-content: flex-start; - padding-left: 15px; -} -#user-list .length { - margin-left: 4px; -} -#user-list .color { - min-width: 40px; - min-height: 40px; - margin-right: 20px; - text-align: center; - border-radius: 50px; - line-height: 40px; - color: #373737; - font-weight: 500; -} -#user-list ul:before { - content: none; -} .filter-root-view .list-center .item-title { text-align: center; width: 100%; diff --git a/apps/spreadsheeteditor/mobile/resources/css/app-material.css b/apps/spreadsheeteditor/mobile/resources/css/app-material.css index f4134c4ede..275f928f6e 100644 --- a/apps/spreadsheeteditor/mobile/resources/css/app-material.css +++ b/apps/spreadsheeteditor/mobile/resources/css/app-material.css @@ -5877,6 +5877,149 @@ html.phone .document-menu .list-block .item-link { margin-left: 20px; color: #212121; } +.page-change .block-description { + background-color: #fff; + padding-top: 15px; + padding-bottom: 15px; + margin: 0; + max-width: 100%; + word-wrap: break-word; +} +.page-change #user-name { + font-size: 17px; + line-height: 22px; + color: #000000; + margin: 0; +} +.page-change #date-change { + font-size: 14px; + line-height: 18px; + color: #6d6d72; + margin: 0; + margin-top: 3px; +} +.page-change #text-change { + color: #000000; + font-size: 15px; + line-height: 20px; + margin: 0; + margin-top: 10px; +} +.page-change .block-btn { + display: flex; + flex-direction: row; + justify-content: space-around; + margin: 0; + padding: 26px 0; + background-color: #EFEFF4; +} +.page-change .block-btn #btn-next-change, +.page-change .block-btn #btn-reject-change { + margin-left: 20px; +} +.page-change .block-btn #btn-goto-change { + margin-right: 20px; +} +.page-change .block-btn .right-buttons { + display: flex; +} +.page-change .block-btn .link { + display: inline-block; +} +.container-collaboration .navbar .right.close-collaboration { + position: absolute; + right: 5px; +} +.container-collaboration .page-content .list-block:first-child { + margin-top: -1px; +} +#user-list .item-content { + padding-left: 0; +} +#user-list .item-inner { + justify-content: flex-start; + padding-left: 15px; +} +#user-list .length { + margin-left: 4px; +} +#user-list .color { + min-width: 40px; + min-height: 40px; + margin-right: 20px; + text-align: center; + border-radius: 50px; + line-height: 40px; + color: #373737; + font-weight: 400; +} +#user-list ul:before { + content: none; +} +.page-comments .list-block .item-inner { + display: block; + padding: 16px 0; + word-wrap: break-word; +} +.page-comments p { + margin: 0; +} +.page-comments .user-name { + font-size: 17px; + line-height: 22px; + color: #000000; + margin: 0; + font-weight: bold; +} +.page-comments .comment-date, +.page-comments .reply-date { + font-size: 12px; + line-height: 18px; + color: #6d6d72; + margin: 0; + margin-top: 0px; +} +.page-comments .comment-text, +.page-comments .reply-text { + color: #000000; + font-size: 15px; + line-height: 25px; + margin: 0; + max-width: 100%; + padding-right: 15px; +} +.page-comments .reply-item { + margin-top: 15px; +} +.page-comments .reply-item .user-name { + padding-top: 16px; +} +.page-comments .reply-item:before { + content: ''; + position: absolute; + left: auto; + bottom: 0; + right: auto; + top: 0; + height: 1px; + width: 100%; + background-color: rgba(0, 0, 0, 0.12); + display: block; + z-index: 15; + -webkit-transform-origin: 50% 100%; + transform-origin: 50% 100%; +} +.page-comments .comment-quote { + color: #40865c; + border-left: 1px solid #40865c; + padding-left: 10px; + margin: 5px 0; + font-size: 15px; +} +.settings.popup .list-block ul.list-reply:last-child:after, +.settings.popover .list-block ul.list-reply:last-child:after { + display: none; +} .tablet .searchbar.document.replace .center > .replace { display: flex; } @@ -7090,29 +7233,6 @@ html.pixel-ratio-3 .cell-styles.dataview .row li { max-height: 100%; overflow: auto; } -#user-list .item-content { - padding-left: 0; -} -#user-list .item-inner { - justify-content: flex-start; - padding-left: 15px; -} -#user-list .length { - margin-left: 4px; -} -#user-list .color { - min-width: 40px; - min-height: 40px; - margin-right: 20px; - text-align: center; - border-radius: 50px; - line-height: 40px; - color: #373737; - font-weight: 400; -} -#user-list ul:before { - content: none; -} .filter-root-view .list-center .item-title { text-align: center; width: 100%; diff --git a/apps/spreadsheeteditor/mobile/resources/less/app-ios.less b/apps/spreadsheeteditor/mobile/resources/less/app-ios.less index c255df6f45..44991a56a7 100644 --- a/apps/spreadsheeteditor/mobile/resources/less/app-ios.less +++ b/apps/spreadsheeteditor/mobile/resources/less/app-ios.less @@ -74,6 +74,7 @@ input, textarea { @import url('../../../../common/mobile/resources/less/ios/_color-palette.less'); @import url('../../../../common/mobile/resources/less/ios/_about.less'); @import url('../../../../common/mobile/resources/less/ios/_color-schema.less'); +@import url('../../../../common/mobile/resources/less/ios/_collaboration.less'); @import url('ios/_icons.less'); @@ -193,36 +194,6 @@ input, textarea { overflow: auto; } -//Edit users -@initialEditUser: #373737; - -#user-list { - .item-content { - padding-left: 0; - } - .item-inner { - justify-content: flex-start; - padding-left: 15px; - } - .length { - margin-left: 4px; - } - .color { - min-width: 40px; - min-height: 40px; - margin-right: 20px; - text-align: center; - border-radius: 50px; - line-height: 40px; - color: @initialEditUser; - font-weight: 500; - - } - ul:before { - content: none; - } -} - //Filter Options .filter-root-view { .list-center .item-title { diff --git a/apps/spreadsheeteditor/mobile/resources/less/app-material.less b/apps/spreadsheeteditor/mobile/resources/less/app-material.less index 8ec1cb4796..af682c4300 100644 --- a/apps/spreadsheeteditor/mobile/resources/less/app-material.less +++ b/apps/spreadsheeteditor/mobile/resources/less/app-material.less @@ -67,6 +67,7 @@ input, textarea { @import url('../../../../common/mobile/resources/less/material/_color-palette.less'); @import url('../../../../common/mobile/resources/less/material/_about.less'); @import url('../../../../common/mobile/resources/less/material/_color-schema.less'); +@import url('../../../../common/mobile/resources/less/material/_collaboration.less'); @import url('material/_search.less'); @import url('material/_icons.less'); @@ -180,35 +181,6 @@ input, textarea { overflow: auto; } -//Edit users -@initialEditUser: #373737; - -#user-list { - .item-content { - padding-left: 0; - } - .item-inner { - justify-content: flex-start; - padding-left: 15px; - } - .length { - margin-left: 4px; - } - .color { - min-width: 40px; - min-height: 40px; - margin-right: 20px; - text-align: center; - border-radius: 50px; - line-height: 40px; - color: @initialEditUser; - font-weight: 400; - } - ul:before { - content: none; - } -} - //Filter Options .filter-root-view { .list-center .item-title {