diff --git a/apps/api/documents/api.js b/apps/api/documents/api.js index 1dcf5eada..0f8d84ec8 100644 --- a/apps/api/documents/api.js +++ b/apps/api/documents/api.js @@ -74,15 +74,16 @@ recent: [ { title: 'document title', + image: 'recent icon url', url: 'document url', - folder: 'path to document' + folder: 'path to document', }, ... ], templates: [ { - name: 'template name', - icon: 'template icon url', + title: 'template name', // name - is deprecated + image: 'template icon url', url: 'http://...' }, ... diff --git a/apps/common/Gateway.js b/apps/common/Gateway.js index 9477b6b38..886b3d67b 100644 --- a/apps/common/Gateway.js +++ b/apps/common/Gateway.js @@ -306,8 +306,8 @@ if (Common === undefined) { _postMessage({event:'onRequestSendNotify', data: emails}); }, - requestInsertImage: function () { - _postMessage({event:'onRequestInsertImage'}); + requestInsertImage: function (command) { + _postMessage({event:'onRequestInsertImage', data: {c: command}}); }, requestMailMergeRecipients: function () { diff --git a/apps/common/main/lib/component/Button.js b/apps/common/main/lib/component/Button.js index fbc027ace..50c2c4020 100644 --- a/apps/common/main/lib/component/Button.js +++ b/apps/common/main/lib/component/Button.js @@ -647,8 +647,14 @@ define([ oldCls = this.iconCls; this.iconCls = cls; - btnIconEl.removeClass(oldCls); - btnIconEl.addClass(cls || ''); + if (/svgicon/.test(this.iconCls)) { + var icon = /svgicon\s(\S+)/.exec(this.iconCls); + btnIconEl.find('use.zoom-int').attr('xlink:href', icon && icon.length>1 ? '#' + icon[1]: ''); + btnIconEl.find('use.zoom-grit').attr('xlink:href', icon && icon.length>1 ? '#' + icon[1] + '-150' : ''); + } else { + btnIconEl.removeClass(oldCls); + btnIconEl.addClass(cls || ''); + } }, changeIcon: function(opts) { diff --git a/apps/common/main/lib/component/ComboBoxFonts.js b/apps/common/main/lib/component/ComboBoxFonts.js index 8ef57414a..03cf4cf7d 100644 --- a/apps/common/main/lib/component/ComboBoxFonts.js +++ b/apps/common/main/lib/component/ComboBoxFonts.js @@ -344,7 +344,7 @@ define([ onApiChangeFontInternal: function(font) { if (this.inFormControl) return; - var name = (_.isFunction(font.get_Name) ? font.get_Name() : font.asc_getName()); + var name = (_.isFunction(font.get_Name) ? font.get_Name() : font.asc_getFontName()); if (this.getRawValue() !== name) { var record = this.store.findWhere({ diff --git a/apps/common/main/lib/component/Menu.js b/apps/common/main/lib/component/Menu.js index e5ee14ebc..e528612c6 100644 --- a/apps/common/main/lib/component/Menu.js +++ b/apps/common/main/lib/component/Menu.js @@ -571,6 +571,8 @@ define([ } } } else { + var cg = Common.Utils.croppedGeometry(); + docH = cg.height - 10; if (top + menuH > docH) { if (fixedAlign && typeof fixedAlign == 'string') { // how to align if menu height > window height m = fixedAlign.match(/^([a-z]+)-([a-z]+)/); @@ -579,13 +581,18 @@ define([ top = docH - menuH; } - if (top < 0) - top = 0; + + if (top < cg.top) + top = cg.top; } if (this.options.additionalAlign) this.options.additionalAlign.call(this, menuRoot, left, top); - else - menuRoot.css({left: Math.ceil(left), top: Math.ceil(top)}); + else { + var _css = {left: Math.ceil(left), top: Math.ceil(top)}; + if (!(menuH < docH)) _css['margin-top'] = 0; + + menuRoot.css(_css); + } }, clearAll: function() { diff --git a/apps/common/main/lib/util/utils.js b/apps/common/main/lib/util/utils.js index 99ce4f5c1..1c8867d5d 100644 --- a/apps/common/main/lib/util/utils.js +++ b/apps/common/main/lib/util/utils.js @@ -216,7 +216,9 @@ Common.Utils = _.extend(new(function() { zoom: function() {return me.zoom;}, topOffset: 0, innerWidth: function() {return me.innerWidth;}, - innerHeight: function() {return me.innerHeight;} + innerHeight: function() {return me.innerHeight;}, + croppedGeometry: function() {return {left:0, top: Common.Utils.InternalSettings.get('window-inactive-area-top'), + width: me.innerWidth, height: me.innerHeight - Common.Utils.InternalSettings.get('window-inactive-area-top')}} } })(), Common.Utils || {}); diff --git a/apps/common/main/lib/view/PasswordDialog.js b/apps/common/main/lib/view/PasswordDialog.js index 09ed9007c..8ef59c485 100644 --- a/apps/common/main/lib/view/PasswordDialog.js +++ b/apps/common/main/lib/view/PasswordDialog.js @@ -55,7 +55,7 @@ define([ _.extend(_options, { width : 350, - height : 220, + height : 238, header : true, cls : 'modal-dlg', contentTemplate : '', @@ -65,7 +65,7 @@ define([ }, options); this.template = options.template || [ - '
', + '
', '
', '', '
', @@ -76,9 +76,8 @@ define([ '
', '', '
', - '
', - '
', - '
' + '
', + '
' ].join(''); this.handler = options.handler; diff --git a/apps/common/main/resources/img/toolbar/charttypes.png b/apps/common/main/resources/img/toolbar/charttypes.png deleted file mode 100644 index e13818e76..000000000 Binary files a/apps/common/main/resources/img/toolbar/charttypes.png and /dev/null differ diff --git a/apps/common/main/resources/img/toolbar/charttypes.svg b/apps/common/main/resources/img/toolbar/charttypes.svg new file mode 100644 index 000000000..3f3289bb2 --- /dev/null +++ b/apps/common/main/resources/img/toolbar/charttypes.svg @@ -0,0 +1,157 @@ + \ No newline at end of file diff --git a/apps/common/main/resources/img/toolbar/charttypes@1.5x.png b/apps/common/main/resources/img/toolbar/charttypes@1.5x.png deleted file mode 100644 index 57a3ed1dc..000000000 Binary files a/apps/common/main/resources/img/toolbar/charttypes@1.5x.png and /dev/null differ diff --git a/apps/common/main/resources/img/toolbar/charttypes@2x.png b/apps/common/main/resources/img/toolbar/charttypes@2x.png deleted file mode 100644 index aac960d29..000000000 Binary files a/apps/common/main/resources/img/toolbar/charttypes@2x.png and /dev/null differ diff --git a/apps/common/main/resources/less/buttons.less b/apps/common/main/resources/less/buttons.less index 74f9fabf5..160ccb572 100644 --- a/apps/common/main/resources/less/buttons.less +++ b/apps/common/main/resources/less/buttons.less @@ -795,6 +795,12 @@ position: relative; } + svg.icon { + vertical-align: middle; + width: 52px; + padding: 5px; + } + &:hover, .over, &:active, diff --git a/apps/common/main/resources/less/toolbar.less b/apps/common/main/resources/less/toolbar.less index 266121c52..06917876f 100644 --- a/apps/common/main/resources/less/toolbar.less +++ b/apps/common/main/resources/less/toolbar.less @@ -514,135 +514,17 @@ } .item-chartlist { - .background-ximage-v2('toolbar/charttypes.png', 250px); - width: 50px; - height: 50px; + width: 40px; + height: 40px; + .icon { + width: 40px; + height: 40px; + } + + svg.icon { + display: inline-block; + vertical-align: middle; + fill: #444444; + } } -.line-normal { - background-position: 0 0; -} - -.line-stack { - background-position: -50px 0; -} - -.line-pstack { - background-position: -100px 0; -} - -.line-3d { - background-position: -150px 0; -} - -.column-normal { - background-position: 0 -50px; -} - -.column-stack{ - background-position: -50px -50px; -} - -.column-pstack{ - background-position: -100px -50px; -} - -.column-3d-normal { - background-position: -150px -50px; -} - -.column-3d-stack{ - background-position: -200px -50px; -} - -.column-3d-pstack{ - background-position: -150px -100px; -} - -.column-3d-normal-per{ - background-position: -200px -100px; -} - -.bar-normal { - background-position: 0 -100px; -} - -.bar-stack{ - background-position: -50px -100px; -} - -.bar-pstack{ - background-position: -100px -100px; -} - -.bar-3d-normal { - background-position: -150px -150px; -} - -.bar-3d-stack{ - background-position: -200px -150px; -} - -.bar-3d-pstack{ - background-position: -150px -200px; -} - -.area-normal { - background-position: 0 -150px; -} - -.area-stack{ - background-position: -50px -150px; -} - -.area-pstack{ - background-position: -100px -150px; -} - -.pie-normal { - background-position: 0 -200px; -} - -.pie-3d-normal { - background-position: -200px -200px; -} - -.point-normal{ - background-position: -50px -200px; -} - -.stock-normal{ - background-position: -100px -200px; -} - -.pie-doughnut{ - background-position: -200px 0; -} - -.spark-line{ - background-position: 0px -250px; -} - -.spark-column{ - background-position: -50px -250px; -} - -.spark-win{ - background-position: -100px -250px; -} - -.surface-normal{ - background-position: 0px -300px; -} - -.surface-wireframe{ - background-position: -50px -300px; -} - -.contour-normal{ - background-position: -100px -300px; -} - -.contour-wireframe{ - background-position: -150px -300px; -} diff --git a/apps/common/mobile/lib/controller/Collaboration.js b/apps/common/mobile/lib/controller/Collaboration.js index 2649ee8ec..b46a24420 100644 --- a/apps/common/mobile/lib/controller/Collaboration.js +++ b/apps/common/mobile/lib/controller/Collaboration.js @@ -91,6 +91,10 @@ define([ 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)); + this.api.asc_registerCallback('asc_onRemoveComments', _.bind(this.onApiRemoveComments, this)); + this.api.asc_registerCallback('asc_onShowComment', _.bind(this.apiShowComments, this)); + this.api.asc_registerCallback('asc_onHideComment', _.bind(this.apiHideComments, this)); + if (editor === 'DE') { this.api.asc_registerCallback('asc_onShowRevisionsChange', _.bind(this.changeReview, this)); } @@ -102,6 +106,9 @@ define([ setMode: function(mode) { this.appConfig = mode; + this.view = this.getView('Common.Views.Collaboration'); + this.view.viewmode = !mode.canComments; + this.view.canViewComments = mode.canViewComments; _userId = mode.user.id; if (editor === 'DE') { _fileKey = mode.fileKey; @@ -221,7 +228,7 @@ define([ editUsers = users; }, - initEditUsers: function() { + getUsersInfo: function() { var usersArray = []; _.each(editUsers, function(item){ var fio = item.asc_getUserName().split(' '); @@ -246,6 +253,11 @@ define([ } }); var userSort = _.chain(usersArray).groupBy('idOriginal').value(); + return userSort; + }, + + initEditUsers: function() { + var users = this.getUsersInfo(); var templateUserItem = _.template([ '<% _.each(users, function (user) { %>', '
  • ' + @@ -261,7 +273,7 @@ define([ this.textEditUser + '
  • ' + ''); $('#user-list').html(templateUserList()); }, @@ -362,10 +374,19 @@ define([ if(arrChangeReview.length == 0) { $('#current-change').css('display','none'); $('.accept-reject').find('a').addClass('disabled'); + $('#current-change').after(_.template('
    ' + this.textNoChanges + '
    ')); } else { - $('#current-change #date-change').html(arrChangeReview[0].date); - $('#current-change #user-name').html(arrChangeReview[0].user); - $('#current-change #text-change').html(arrChangeReview[0].changetext); + if ($('#no-changes').length > 0) { + $('#no-changes').remove(); + } + var arr = { + date: arrChangeReview[0].date, + user: arrChangeReview[0].user, + color: arrChangeReview[0].usercolor.get_hex(), + text: arrChangeReview[0].changetext, + initials: this.getInitials(arrChangeReview[0].user) + }; + this.view.renderChangeReview(arr); goto = arrChangeReview[0].goto; } if (goto) { @@ -383,7 +404,7 @@ define([ $('#btn-accept-change').remove(); $('#btn-reject-change').remove(); if(arrChangeReview.length != 0 && arrChangeReview[0].editable) { - $('.accept-reject').html('
    '); + $('.accept-reject').html('' + this.textDelete + ''); $('#btn-delete-change').single('click', _.bind(this.onDeleteChange, this)); } } @@ -437,6 +458,7 @@ define([ $('#btn-goto-change').hide(); $('#btn-delete-change').hide(); $('.accept-reject').find('a').addClass('disabled'); + $('#current-change').after(_.template('
    ' + this.textNoChanges + '
    ')); } else { $('#current-change').show(); $('.accept-reject').find('a').removeClass('disabled'); @@ -638,12 +660,13 @@ define([ } var date = (item.get_DateTime() == '') ? new Date() : new Date(item.get_DateTime()), user = item.get_UserName(), + userColor = item.get_UserColor(), goto = (item.get_MoveType() == Asc.c_oAscRevisionsMove.MoveTo || item.get_MoveType() == Asc.c_oAscRevisionsMove.MoveFrom); date = me.dateToLocaleTimeString(date); var editable = (item.get_UserId() == _userId); - arr.push({date: date, user: user, changetext: changetext, goto: goto, editable: editable}); + arr.push({date: date, user: user, usercolor: userColor, changetext: changetext, goto: goto, editable: editable}); }); arrChangeReview = arr; dateChange = data; @@ -686,6 +709,756 @@ define([ }, //Comments + getCurrentUser: function () { + var me = this; + _.each(editUsers, function(item){ + if (item.asc_getIdOriginal() === _userId) { + me.currentUser = item; + } + }); + return me.currentUser; + }, + + getCommentInfo: function () { + this.getCurrentUser(); + if (this.currentUser) { + var date = new Date(); + var comment = { + time: date.getTime(), + date: this.dateToLocaleTimeString(date), + userid: _userId, + username: this.currentUser.asc_getUserName(), + usercolor: this.currentUser.asc_getColor(), + userInitials: this.getInitials(this.currentUser.asc_getUserName()) + }; + return comment; + } + }, + + getInitials: function(name) { + var fio = name.split(' '); + var initials = fio[0].substring(0, 1).toUpperCase(); + if (fio.length > 1) { + initials += fio[fio.length - 1].substring(0, 1).toUpperCase(); + } + return initials; + }, + + findComment: function(uid) { + var comment; + if (this.groupCollectionFilter.length !== 0) { + comment = this.findCommentInGroup(uid); + } else if (this.collectionComments.length !== 0) { + comment = _.findWhere(this.collectionComments, {uid: uid}); + } + return comment; + }, + + apiShowComments: function(uid) { + var comments, + me = this; + me.showComments = []; + if (this.groupCollectionFilter.length !== 0) { + comments = this.groupCollectionFilter; + _.each(uid, function (id) { + var comment = me.findCommentInGroup(uid); + if (comment) { + me.showComments.push(comment); + } + }); + } else if (this.collectionComments.length !== 0) { + comments = this.collectionComments; + _.each(uid, function (id) { + var comment = _.findWhere(comments, {uid: id}); + if (comment) { + me.showComments.push(comment); + } + }); + } + if ($('.container-view-comment').length > 0) { + me.indexCurrentComment = 0; + me.updateViewComment(); + } + if (window.SSE) { + SSE.getController('AddOther').setHideAddComment(true); + } + }, + + apiHideComments: function() { + if ($('.container-view-comment').length > 0) { + uiApp.closeModal(); + $('.container-view-comment').remove(); + } + if (window.SSE) { + SSE.getController('AddOther').setHideAddComment(false); + } + }, + + disabledViewComments: function(disabled) { + if ($('.container-view-comment').length > 0) { + if (disabled) { + $('.comment-resolve, .comment-menu, .add-reply, .reply-menu').addClass('disabled'); + if (!$('.prev-comment').hasClass('disabled')) { + $('.prev-comment').addClass('disabled'); + } + if (!$('.next-comment').hasClass('disabled')) { + $('.next-comment').addClass('disabled'); + } + } else { + $('.comment-resolve, .comment-menu, .add-reply, .reply-menu').removeClass('disabled'); + if (this.showComments.length > 1) { + $('.prev-comment, .next-comment').removeClass('disabled'); + } + } + } + }, + + updateViewComment: function() { + this.view.renderViewComments(this.showComments, this.indexCurrentComment); + $('.comment-menu').single('click', _.buffered(this.initMenuComments, 100, this)); + $('.reply-menu').single('click', _.buffered(this.initReplyMenu, 100, this)); + $('.comment-resolve').single('click', _.bind(this.onClickResolveComment, this, false)); + if (this.showComments.length === 1) { + $('.prev-comment, .next-comment').addClass('disabled'); + } + }, + + showCommentModal: function() { + var me = this, + appPrefix = !!window.DE ? DE : !!window.PE ? PE : SSE, + mainView = appPrefix.getController('Editor').getView('Editor').f7View; + + me.indexCurrentComment = 0; + + uiApp.closeModal(); + + if (Common.SharedSettings.get('phone')) { + me.modalViewComment = $$(uiApp.pickerModal( + '
    ' + + '
    ' + + '
    ' + + '
    ' + + me.view.getTemplateContainerViewComments() + + '
    ' + )).on('close', function (e) { + mainView.showNavbar(); + }); + mainView.hideNavbar(); + } else { + me.modalViewComment = uiApp.popover( + '
    ' + + '
    ' + + me.view.getTemplateContainerViewComments() + + '
    ' + + '
    ', + $$('#toolbar-collaboration') + ); + this.picker = $$(me.modalViewComment); + var $overlay = $('.modal-overlay'); + + $$(this.picker).on('opened', function () { + $overlay.on('removeClass', function () { + if (!$overlay.hasClass('modal-overlay-visible')) { + $overlay.addClass('modal-overlay-visible') + } + }); + }).on('close', function () { + $overlay.off('removeClass'); + $overlay.removeClass('modal-overlay-visible'); + $('.popover').remove(); + }); + } + me.getView('Common.Views.Collaboration').renderViewComments(me.showComments, me.indexCurrentComment); + $('.prev-comment').single('click', _.bind(me.onViewPrevComment, me)); + $('.next-comment').single('click', _.bind(me.onViewNextComment, me)); + $('.comment-menu').single('click', _.buffered(me.initMenuComments, 100, me)); + $('.add-reply').single('click', _.bind(me.onClickAddReply, me, false)); + $('.reply-menu').single('click', _.buffered(me.initReplyMenu, 100, me)); + $('.comment-resolve').single('click', _.bind(me.onClickResolveComment, me, false)); + + if (me.showComments.length === 1) { + $('.prev-comment, .next-comment').addClass('disabled'); + } + + appPrefix.getController('Toolbar').getView('Toolbar').hideSearch(); + + //swipe modal window + if ($('.swipe-container').length > 0) { + me.swipeFull = false; + var $swipeContainer = $('.swipe-container'); + $swipeContainer.single('touchstart', _.bind(function (e) { + var touchobj = e.changedTouches[0]; + me.swipeStart = parseInt(touchobj.clientY); + me.swipeChange = parseInt(touchobj.clientY); + me.swipeHeight = parseInt($('.container-view-comment').css('height')); + e.preventDefault(); + }, me)); + $swipeContainer.single('touchmove', _.bind(function (e) { + var touchobj = e.changedTouches[0]; + var dist = parseInt(touchobj.clientY) - me.swipeStart; + var newHeight; + if (dist < 0) { + newHeight = '100%'; + me.swipeFull = true; + me.closeCommentPicker = false; + if (window.SSE) { + if ($('.container-view-comment').hasClass('onHide')) { + $('.container-view-comment').removeClass('onHide'); + } + } else { + $('.container-view-comment').css('opacity', '1'); + } + } else if (dist < 100) { + newHeight = '50%'; + me.swipeFull = false; + me.closeCommentPicker = false; + if (window.SSE) { + if ($('.container-view-comment').hasClass('onHide')) { + $('.container-view-comment').removeClass('onHide'); + } + } else { + $('.container-view-comment').css('opacity', '1'); + } + } else { + me.closeCommentPicker = true; + if (window.SSE) { + if (!$('.container-view-comment').hasClass('onHide')) { + $('.container-view-comment').addClass('onHide'); + } + } else { + $('.container-view-comment').css('opacity', '0.6'); + } + } + $('.container-view-comment').css('height', newHeight); + me.swipeHeight = newHeight; + e.preventDefault(); + }, me)); + $swipeContainer.single('touchend', _.bind(function (e) { + var touchobj = e.changedTouches[0]; + var swipeEnd = parseInt(touchobj.clientY); + var dist = swipeEnd - me.swipeStart; + if (me.closeCommentPicker) { + uiApp.closeModal(); + me.modalViewComment.remove(); + } else if (me.swipeFull) { + if (dist > 20) { + $('.container-view-comment').css('height', '50%'); + } + } + me.swipeHeight = undefined; + me.swipeChange = undefined; + me.closeCommentPicker = undefined; + }, me)); + } + }, + + onViewPrevComment: function() { + if (this.showComments.length > 0) { + if (this.indexCurrentComment - 1 < 0) { + this.indexCurrentComment = this.showComments.length - 1; + } else { + this.indexCurrentComment -= 1; + } + this.view.renderViewComments(this.showComments, this.indexCurrentComment); + var me = this; + _.defer(function () { + $('.comment-menu').single('click', _.buffered(me.initMenuComments, 100, me)); + $('.reply-menu').single('click', _.buffered(me.initReplyMenu, 100, me)); + $('.comment-resolve').single('click', _.bind(me.onClickResolveComment, me, false)); + }); + } + }, + + onViewNextComment: function() { + if (this.showComments.length > 0) { + if (this.indexCurrentComment + 1 === this.showComments.length) { + this.indexCurrentComment = 0; + } else { + this.indexCurrentComment += 1; + } + this.view.renderViewComments(this.showComments, this.indexCurrentComment); + var me = this; + _.defer(function () { + $('.comment-menu').single('click', _.buffered(me.initMenuComments, 100, me)); + $('.reply-menu').single('click', _.buffered(me.initReplyMenu, 100, me)); + $('.comment-resolve').single('click', _.bind(me.onClickResolveComment, me, false)); + }); + } + }, + + onClickAddReply: function(id) { + var me = this; + var phone = Common.SharedSettings.get('phone'); + var idComment = !id ? $('.page-view-comments').find('.comment').data('uid') : id; + if (_.isNumber(idComment)) { + idComment = idComment.toString(); + } + var comment = me.findComment(idComment); + me.getCurrentUser(); + var date = me.dateToLocaleTimeString(new Date()); + if (comment) { + if ($('.container-view-comment').length > 0) { + if (phone) { + var colorUser = me.currentUser.asc_getColor(), + name = me.currentUser.asc_getUserName(), + initialUser = me.getInitials(name); + var templatePopup = me.getView('Common.Views.Collaboration').getTemplateAddReplyPopup(name, colorUser, initialUser, date); + me.addReplyView = uiApp.popup( + templatePopup + ); + $('.popup').css('z-index', '20000'); + } else { + me.disabledViewComments(true); + $('.container-view-comment .toolbar').find('a.prev-comment, a.next-comment, a.add-reply').css('display', 'none'); + var template = _.template('' + me.textDone + ''); + $('.container-view-comment .button-right').append(template); + template = _.template('' + me.textCancel + ''); + $('.container-view-comment .button-left').append(template); + template = _.template('
    '); + $('.page-view-comments .page-content').append(template); + } + } else if ($('.container-collaboration').length > 0) { + me.getView('Common.Views.Collaboration').showPage('#comments-add-reply-view', false); + var name = me.currentUser.asc_getUserName(), + color = me.currentUser.asc_getColor(); + me.getView('Common.Views.Collaboration').renderAddReply(name, color, me.getInitials(name), date); + } + _.defer(function () { + var $textarea = $('.reply-textarea')[0]; + var $btnAddReply = $('#add-new-reply'); + $textarea.focus(); + $btnAddReply.addClass('disabled'); + $textarea.oninput = function () { + if ($textarea.value.length < 1) { + if (!$btnAddReply.hasClass('disabled')) + $btnAddReply.addClass('disabled'); + } else { + if ($btnAddReply.hasClass('disabled')) { + $btnAddReply.removeClass('disabled'); + } + } + }; + }); + $('#add-new-reply').single('click', _.bind(me.onDoneAddNewReply, me, comment.uid)); + $('.cancel-reply').single('click', _.bind(me.onCancelAddNewReply, me)); + } + }, + + onDoneAddNewReply: function(uid) { + var phone = Common.SharedSettings.get('phone'); + var reply = $('.reply-textarea')[0].value; + if ($('.container-view-comment').length > 0) { + var $viewComment = $('.container-view-comment'); + if (reply && reply.length > 0) { + this.addReply && this.addReply(uid, reply, _userId); + if (!phone) { + $viewComment.find('a#add-new-reply, a.cancel-reply').remove(); + $viewComment.find('a.prev-comment, a.next-comment, a.add-reply').css('display', 'flex'); + if ($('.block-reply').length > 0) { + $('.block-reply').remove(); + } + } else { + uiApp.closeModal($$(this.addReplyView)); + } + this.disabledViewComments(false); + } + } else if ($('.container-collaboration').length > 0) { + this.addReply && this.addReply(uid, reply, _userId); + rootView.router.back(); + } + }, + + onCancelAddNewReply: function() { + var $viewComment = $('.container-view-comment'); + if ($viewComment.find('.block-reply').length > 0) { + $viewComment.find('.block-reply').remove(); + } + $viewComment.find('a#add-new-reply, a.cancel-reply').remove(); + $viewComment.find('a.prev-comment, a.next-comment, a.add-reply').css('display', 'flex'); + this.disabledViewComments(false); + }, + + onAddNewComment: function() { + }, + + initMenuComments: function(e) { + if ($('.actions-modal').length < 1) { + var $comment = $(e.currentTarget).closest('.comment'); + var idComment = $comment.data('uid'); + if (_.isNumber(idComment)) { + idComment = idComment.toString(); + } + var comment = this.findComment(idComment); + if ($('.actions-modal').length === 0 && comment) { + var me = this; + _.delay(function () { + var _menuItems = []; + _menuItems.push({ + caption: me.textEdit, + event: 'edit' + }); + if (!comment.resolved) { + _menuItems.push({ + caption: me.textResolve, + event: 'resolve' + }); + } else { + _menuItems.push({ + caption: me.textReopen, + event: 'resolve' + }); + } + if ($('.container-collaboration').length > 0) { + _menuItems.push({ + caption: me.textAddReply, + event: 'addreply' + }); + } + _menuItems.push({ + caption: me.textDeleteComment, + event: 'delete', + color: 'red' + }); + _.each(_menuItems, function (item) { + item.text = item.caption; + item.onClick = function () { + me.onCommentMenuClick(item.event, idComment) + } + }); + + me.menuComments = uiApp.actions([_menuItems, [ + { + text: me.textCancel, + bold: true, + onClick: function () { + me.onCommentMenuClick(); + } + } + ]]); + $$(me.menuComments).on('close', function () { + me.disabledViewComments(false); + }); + }, 100); + } + this.disabledViewComments(true); + } + }, + + initReplyMenu: function(event) { + if ($('.actions-modal').length < 1) { + var me = this; + var ind = $(event.currentTarget).parent().parent().data('ind'); + var idComment = $(event.currentTarget).closest('.comment').data('uid'); + if (_.isNumber(idComment)) { + idComment = idComment.toString(); + } + _.delay(function () { + var _menuItems = []; + _menuItems.push({ + caption: me.textEdit, + event: 'editreply' + }); + _menuItems.push({ + caption: me.textDeleteReply, + event: 'deletereply', + color: 'red' + }); + _.each(_menuItems, function (item) { + item.text = item.caption; + item.onClick = function () { + me.onCommentMenuClick(item.event, idComment, ind); + } + }); + me.menuReply = uiApp.actions([_menuItems, [ + { + text: me.textCancel, + bold: true, + onClick: function () { + me.onCommentMenuClick(); + } + } + ]]); + $$(me.menuReply).on('close', function () { + me.disabledViewComments(false); + }); + }, 100); + this.disabledViewComments(true); + } + }, + + onCommentMenuClick: function(action, idComment, indReply) { + var me = this; + function addOverlay () { + if (!Common.SharedSettings.get('phone')) { + var $overlay = $('.modal-overlay'); + if (!$overlay.hasClass('modal-overlay-visible')) { + $overlay.addClass('modal-overlay-visible') + } + } + } + switch (action) { + case 'edit': + addOverlay(); + me.showEditComment(idComment); + break; + case 'resolve': + addOverlay(); + me.onClickResolveComment(idComment); + me.disabledViewComments(false); + break; + case 'delete': + addOverlay(); + $$(uiApp.modal({ + title: this.textDeleteComment, + text: this.textMessageDeleteComment, + buttons: [ + { + text: this.textCancel + }, + { + text: this.textYes, + onClick: function () { + me.onDeleteComment && me.onDeleteComment(idComment); + } + }] + })).on('close', function () { + addOverlay(); + }); + me.disabledViewComments(false); + break; + case 'editreply': + addOverlay(); + me.showEditReply(idComment, indReply); + break; + case 'deletereply': + addOverlay(); + $$(uiApp.modal({ + title: this.textDeleteReply, + text: this.textMessageDeleteReply, + buttons: [ + { + text: this.textCancel + }, + { + text: this.textYes, + onClick: function () { + me.onDeleteReply && me.onDeleteReply(idComment, indReply); + } + }] + })).on('close', function () { + addOverlay(); + }); + me.disabledViewComments(false); + break; + case 'addreply': + addOverlay(); + me.onClickAddReply(idComment); + default: + addOverlay(); + me.disabledViewComments(false); + break; + } + }, + + showEditComment: function(idComment) { + var me = this; + if (idComment) { + var comment = this.findComment(idComment); + if ($('.container-view-comment').length > 0) { + if (Common.SharedSettings.get('phone')) { + me.editView = uiApp.popup( + me.view.getTemplateEditCommentPopup(comment) + ); + $$(me.editView).on('close', function(){ + me.disabledViewComments(false); + }); + $('.popup').css('z-index', '20000'); + _.delay(function () { + var $textarea = $('.comment-textarea')[0]; + $textarea.focus(); + $textarea.selectionStart = $textarea.value.length; + }, 100); + } else { + me.disabledViewComments(true); + if ($('.comment-textarea').length === 0) { + var $viewComment = $('.container-view-comment'); + var oldComment = $viewComment.find('.comment-text span').text(); + $viewComment.find('.comment-text span').css('display', 'none'); + var template = _.template(''); + $viewComment.find('.comment-text').append(template); + $viewComment.find('a.prev-comment, a.next-comment, a.add-reply').css('display', 'none'); + template = _.template('' + me.textDone + ''); + $viewComment.find('.button-right').append(template); + template = _.template('' + me.textCancel + ''); + $viewComment.find('.button-left').append(template); + } + } + } else if ($('.container-collaboration').length > 0) { + this.getView('Common.Views.Collaboration').showPage('#comments-edit-view', false); + this.getView('Common.Views.Collaboration').renderEditComment(comment); + } + _.defer(function () { + var $textarea = $('.comment-textarea')[0]; + $textarea.focus(); + $textarea.selectionStart = $textarea.value.length; + }); + $('#edit-comment').single('click', _.bind(me.onEditComment, me, comment)); + $('.cancel-edit-comment').single('click', _.bind(me.onCancelEditComment, me)); + } + }, + + onEditComment: function(comment) { + var value = $('#comment-text')[0].value; + if (value && value.length > 0) { + if (!_.isUndefined(this.onChangeComment)) { + comment.comment = value; + this.onChangeComment(comment); + } + if ($('.container-view-comment').length > 0) { + if (Common.SharedSettings.get('phone')) { + uiApp.closeModal($$(this.editView)); + } else { + var $viewComment = $('.container-view-comment'); + $viewComment.find('a.done-edit-comment, a.cancel-edit-comment').remove(); + $viewComment.find('a.prev-comment, a.next-comment, a.add-reply').css('display', 'flex'); + if ($viewComment.find('.comment-textarea').length > 0) { + $viewComment.find('.comment-textarea').remove(); + $viewComment.find('.comment-text span').css('display', 'block'); + } + } + this.disabledViewComments(false); + } else if ($('.container-collaboration').length > 0) { + rootView.router.back(); + } + } + }, + + onCancelEditComment: function() { + var $viewComment = $('.container-view-comment'); + $viewComment.find('a.done-edit-comment, a.cancel-edit-comment, .comment-textarea').remove(); + $viewComment.find('.comment-text span').css('display', 'block'); + $viewComment.find('a.prev-comment, a.next-comment, a.add-reply').css('display', 'flex'); + this.disabledViewComments(false); + }, + + showEditReply: function(idComment, indReply) { + var me = this; + var comment = me.findComment(idComment); + if (comment) { + var replies, + reply; + replies = comment.replys; + reply = replies[indReply]; + if (reply) { + if ($('.container-view-comment').length > 0) { + if (Common.SharedSettings.get('phone')) { + me.editReplyView = uiApp.popup( + me.view.getTemplateEditReplyPopup(reply) + ); + $$(me.editReplyView).on('close', function () { + me.disabledViewComments(false); + }); + $('.popup').css('z-index', '20000'); + } else { + me.disabledViewComments(true); + var $reply = $('.reply-item[data-ind=' + indReply + ']'); + var $viewComment = $('.container-view-comment'); + $reply.find('.reply-text').css('display', 'none'); + $viewComment.find('a.prev-comment, a.next-comment, a.add-reply').css('display', 'none'); + var template = _.template(''); + $reply.append(template); + template = _.template('' + me.textDone + ''); + $viewComment.find('.button-right').append(template); + template = _.template('' + me.textCancel + ''); + $viewComment.find('.button-left').append(template); + } + } else if ($('.container-collaboration').length > 0) { + me.getView('Common.Views.Collaboration').showPage('#comments-edit-reply-view', false); + me.getView('Common.Views.Collaboration').renderEditReply(reply); + } + _.defer(function () { + var $textarea = $('.edit-reply-textarea')[0]; + $textarea.focus(); + $textarea.selectionStart = $textarea.value.length; + }); + $('#edit-reply').single('click', _.bind(me.onEditReply, me, comment, indReply)); + $('.cancel-reply').single('click', _.bind(me.onCancelEditReply, me, indReply)); + } + } + }, + + onEditReply: function(comment, indReply) { + var value = $('.edit-reply-textarea')[0].value; + if (value && value.length > 0) { + if ($('.container-view-comment').length > 0) { + if (!_.isUndefined(this.onChangeComment)) { + comment.replys[indReply].reply = value; + this.onChangeComment(comment); + } + if (Common.SharedSettings.get('phone')) { + uiApp.closeModal($$(this.editReplyView)); + } else { + var $viewComment = $('.container-view-comment'); + $viewComment.find('a#edit-reply, a.cancel-reply').remove(); + $viewComment.find('a.prev-comment, a.next-comment, a.add-reply').css('display', 'flex'); + if ($viewComment.find('.edit-reply-textarea').length > 0) { + $viewComment.find('.edit-reply-textarea').remove(); + $viewComment.find('.reply-text').css('display', 'block'); + } + } + } else { + if (!_.isUndefined(this.onChangeComment)) { + comment.replys[indReply].reply = value; + this.onChangeComment(comment); + } + rootView.router.back(); + } + this.disabledViewComments(false); + } + }, + + onCancelEditReply: function(indReply) { + var $viewComment = $('.container-view-comment'), + $reply = $('.reply-item[data-ind=' + indReply + ']'); + $viewComment.find('a#edit-reply, a.cancel-reply, .edit-reply-textarea').remove(); + $reply.find('.reply-text').css('display', 'block'); + $viewComment.find('a.prev-comment, a.next-comment, a.add-reply').css('display', 'flex'); + this.disabledViewComments(false); + }, + + onClickResolveComment: function(uid, e) { + var idComment; + if (!uid) { + var $comment = $(e.currentTarget).closest('.comment'); + idComment = $comment.data('uid'); + } else { + idComment = uid; + } + if (_.isNumber(idComment)) { + idComment = idComment.toString(); + } + var comment = this.findComment(idComment); + if (comment) { + this.resolveComment && this.resolveComment(comment.uid); + } + }, + + // utils + timeZoneOffsetInMs: (new Date()).getTimezoneOffset() * 60000, + utcDateToString: function (date) { + if (Object.prototype.toString.call(date) === '[object Date]') + return (date.getTime() - this.timeZoneOffsetInMs).toString(); + + return ''; + }, + ooDateToString: function (date) { + if (Object.prototype.toString.call(date) === '[object Date]') + return (date.getTime()).toString(); + + return ''; + }, + //end utils + groupCollectionComments: [], collectionComments: [], @@ -694,6 +1467,9 @@ define([ initComments: function() { this.getView('Common.Views.Collaboration').renderComments((this.groupCollectionFilter.length !== 0) ? this.groupCollectionFilter : (this.collectionComments.length !== 0) ? this.collectionComments : false); + $('.comment-menu').single('click', _.buffered(this.initMenuComments, 100, this)); + $('.reply-menu').single('click', _.buffered(this.initReplyMenu, 100, this)); + $('.comment-resolve').single('click', _.bind(this.onClickResolveComment, this, false)); $('.comment-quote').single('click', _.bind(this.onSelectComment, this)); }, @@ -708,13 +1484,17 @@ define([ ((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()}); + var username = data.asc_getReply(i).asc_getUserName(); replies.push({ + ind : i, userid : data.asc_getReply(i).asc_getUserId(), - username : data.asc_getReply(i).asc_getUserName(), + username : username, usercolor : (user) ? user.asc_getColor() : null, date : this.dateToLocaleTimeString(date), reply : data.asc_getReply(i).asc_getText(), - time : date.getTime() + time : date.getTime(), + userInitials : this.getInitials(username), + editable : this.appConfig.canEditComments || (data.asc_getReply(i).asc_getUserId() == _userId) }); } } @@ -726,10 +1506,11 @@ define([ ((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 username = data.asc_getUserName(); var comment = { uid : id, userid : data.asc_getUserId(), - username : data.asc_getUserName(), + username : username, usercolor : (user) ? user.asc_getColor() : null, date : this.dateToLocaleTimeString(date), quote : data.asc_getQuoteText(), @@ -738,7 +1519,9 @@ define([ unattached : !_.isUndefined(data.asc_getDocumentFlag) ? data.asc_getDocumentFlag() : false, time : date.getTime(), replys : [], - groupName : (groupname && groupname.length>1) ? groupname[1] : null + groupName : (groupname && groupname.length>1) ? groupname[1] : null, + userInitials : this.getInitials(username), + editable : this.appConfig.canEditComments || (data.asc_getUserId() == _userId) }; if (comment) { var replies = this.readSDKReplies(data); @@ -784,19 +1567,33 @@ define([ ((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()}); + var username = data.asc_getReply(i).asc_getUserName(); replies.push({ + ind : i, userid : data.asc_getReply(i).asc_getUserId(), - username : data.asc_getReply(i).asc_getUserName(), + username : username, usercolor : (user) ? user.asc_getColor() : null, date : me.dateToLocaleTimeString(dateReply), reply : data.asc_getReply(i).asc_getText(), - time : dateReply.getTime() + time : dateReply.getTime(), + userInitials : me.getInitials(username), + editable : me.appConfig.canEditComments || (data.asc_getUserId() == _userId) }); } comment.replys = replies; if($('.page-comments').length > 0) { this.initComments(); } + + if (this.showComments && this.showComments.length > 0) { + var showComment = _.findWhere(this.showComments, {uid: id}); + if (showComment) { + showComment = comment; + } + } + if ($('.container-view-comment').length > 0) { + this.updateViewComment(); + } } }, @@ -845,13 +1642,14 @@ define([ findCommentInGroup: function (id) { for (var name in this.groupCollectionComments) { - var store = this.groupCollectionComments[name], - model = _.findWhere(store, {uid: id}); + var store = this.groupCollectionComments[name]; + var id = _.isArray(id) ? id[0] : id; + var model = _.findWhere(store, {uid: id}); if (model) return model; } }, - onApiRemoveComment: function (id) { + onApiRemoveComment: function (id, silentUpdate) { function remove (collection, key) { if(collection instanceof Array) { var index = collection.indexOf(key); @@ -860,7 +1658,12 @@ define([ } } } - if (this.groupCollectionComments) { + if (this.collectionComments.length > 0) { + var comment = _.findWhere(this.collectionComments, {uid: id}); + if (comment) { + remove(this.collectionComments, comment); + } + } else { for (var name in this.groupCollectionComments) { var store = this.groupCollectionComments[name], comment = _.findWhere(store, {uid: id}); @@ -872,14 +1675,21 @@ define([ } } } - if (this.collectionComments.length > 0) { - var comment = _.findWhere(this.collectionComments, {uid: id}); - if (comment) { - remove(this.collectionComments, comment); + if(!silentUpdate && $('.page-comments').length > 0) { + this.initComments(); + } + + if (this.showComments && this.showComments.length > 0) { + var removeComment = _.findWhere(this.showComments, {uid: id}); + if (removeComment) { + this.showComments = _.without(this.showComments, removeComment); } } - if($('.page-comments').length > 0) { - this.initComments(); + }, + + onApiRemoveComments: function(data) { + for (var i = 0; i < data.length; i++) { + this.onApiRemoveComment(data[i], true); } }, @@ -961,7 +1771,20 @@ define([ textParaMoveTo: 'Moved:', textParaMoveFromUp: 'Moved Up:', textParaMoveFromDown: 'Moved Down:', - textEditUser: 'Document is currently being edited by several users.' + textEditUser: 'Document is currently being edited by several users.', + textCancel: "Cancel", + textDone: "Done", + textAddReply: "Add Reply", + textEdit: 'Edit', + textResolve: 'Resolve', + textDeleteComment: 'Delete comment', + textDeleteReply: 'Delete reply', + textReopen: 'Reopen', + textMessageDeleteComment: 'Do you really want to delete this comment?', + textMessageDeleteReply: 'Do you really want to delete this reply?', + textYes: 'Yes', + textDelete: 'Delete', + textNoChanges: 'There are no changes.' } })(), Common.Controllers.Collaboration || {})) diff --git a/apps/common/mobile/lib/template/Collaboration.template b/apps/common/mobile/lib/template/Collaboration.template index ec41861a4..8981fba35 100644 --- a/apps/common/mobile/lib/template/Collaboration.template +++ b/apps/common/mobile/lib/template/Collaboration.template @@ -14,15 +14,21 @@
  • +
    + +
    <%= scope.textEditUsers %>
  • -
  • +
  • +
    + +
    <%= scope.textСomments %>
    @@ -33,6 +39,9 @@
  • +
    + +
    <%= scope.textReviewing %>
    @@ -102,9 +111,16 @@
  • + + +
    +
    -
    + -
    \ 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 a9d54cd89..aa9ebb472 100644 --- a/apps/common/mobile/lib/view/Collaboration.js +++ b/apps/common/mobile/lib/view/Collaboration.js @@ -116,6 +116,9 @@ define([ if (this.layout) { var $layour = this.layout.find('#collaboration-root-view'), isPhone = Common.SharedSettings.get('phone'); + if (!this.canViewComments) { + $layour.find('#item-comments').remove(); + } return $layour.html(); } @@ -146,7 +149,86 @@ define([ } }, + //Comments + + sliceQuote: function(text) { + if (text) { + var sliced = text.slice(0, 100); + if (sliced.length < text.length) { + sliced += '...'; + return sliced; + } + return text; + } + }, + + renderViewComments: function(comments, indCurComment) { + var isAndroid = Framework7.prototype.device.android === true; + var me = this; + if ($('.page-view-comments .page-content').length > 0) { + var template = ''; + if (comments && comments.length > 0) { + template = '
    ' + + '
    '; + $('.page-view-comments .page-content').html(template); + } + } + Common.Utils.addScrollIfNeed('.page-view-comments.page', '.page-view-comments .page-content'); + }, + renderComments: function (comments) { + var me = this; var $pageComments = $('.page-comments .page-content'); if (!comments) { if ($('.comment').length > 0) { @@ -158,25 +240,46 @@ define([ if ($('#no-comments').length > 0) { $('#no-comments').remove(); } + var sortComments = _.sortBy(comments, 'time').reverse(); var $listComments = $('#comments-list'), items = []; - _.each(comments, function (comment) { + _.each(sortComments, function (comment) { var itemTemplate = [ - '
  • ', + '
  • ', '
    ', + '
    ', + '<% if (android) { %>
    <%= item.userInitials %>
    <% } %>', '

    <%= item.username %>

    ', '

    <%= item.date %>

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

    <%= item.quote %>

    ', + '<% if (android) { %>
    <% } %>', + '
    ', + '<% if (item.editable && !viewmode) { %>', + '
    ', + '
    ', + '
    ', + '
    ', '<% } %>', - '

    <%= item.comment %>

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

    <%= quote %>

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

    <%= item.comment %>

    ', '<% if(replys > 0) {%>', '', @@ -188,13 +291,163 @@ define([ android: Framework7.prototype.device.android, item: comment, replys: comment.replys.length, + viewmode: me.viewmode, + quote: me.sliceQuote(comment.quote) })); }); - $listComments.html(items); + $listComments.html(items.join('')); } }, + renderEditComment: function(comment) { + var $pageEdit = $('.page-edit-comment .page-content'); + var isAndroid = Framework7.prototype.device.android === true; + var template = '
    ' + + (isAndroid ? '
    ' + comment.userInitials + '
    ' : '') + + '
    ' + comment.username + '
    ' + + '
    ' + comment.date + '
    ' + + (isAndroid ? '
    ' : '') + + '
    ' + + '
    '; + $pageEdit.html(_.template(template)); + }, + renderAddReply: function(name, color, initials, date) { + var $pageAdd = $('.page-add-reply .page-content'); + var isAndroid = Framework7.prototype.device.android === true; + var template = '
    ' + + (isAndroid ? '
    ' + initials + '
    ' : '') + + '
    ' + name + '
    ' + + '
    ' + date + '
    ' + + (isAndroid ? '
    ' : '') + + '
    ' + + '
    '; + $pageAdd.html(_.template(template)); + }, + + renderEditReply: function(reply) { + var $pageEdit = $('.page-edit-reply .page-content'); + var isAndroid = Framework7.prototype.device.android === true; + var template = '
    ' + + (isAndroid ? '
    ' + reply.userInitials + '
    ' : '') + + '
    ' + reply.username + '
    ' + + '
    ' + reply.date + '
    ' + + (isAndroid ? '
    ' : '') + + '
    ' + + '
    '; + $pageEdit.html(_.template(template)); + }, + + //view comments + getTemplateAddReplyPopup: function(name, color, initial, date) { + var isAndroid = Framework7.prototype.device.android === true; + var template = ''; + return template; + }, + + getTemplateContainerViewComments: function() { + var template = '
    ' + + '
    ' + + '
    ' + + (!this.viewmode ? '' + this.textAddReply + '' : '') + + '
    ' + + '
    ' + + '' + + '' + + '
    ' + + '
    ' + + '
    ' + + '
    ' + + '
    ' + + '
    ' + + '
    ' + + '
    ' + + '
    '; + return template; + }, + + getTemplateEditCommentPopup: function(comment) { + var isAndroid = Framework7.prototype.device.android === true; + var template = ''; + return template; + }, + + getTemplateEditReplyPopup: function(reply) { + var isAndroid = Framework7.prototype.device.android === true; + var template = ''; + return template; + }, + + renderChangeReview: function(change) { + var isAndroid = Framework7.prototype.device.android === true; + var template = (isAndroid ? '
    ' + change.initials + '
    ' : '') + + '
    ' + change.user + '
    ' + + '
    ' + change.date + '
    ' + + (isAndroid ? '
    ' : '') + + '
    ' + change.text + '
    '; + $('#current-change').html(_.template(template)); + }, textCollaboration: 'Collaboration', textReviewing: 'Review', @@ -209,7 +462,17 @@ define([ textOriginal: 'Original', textChange: 'Review Change', textEditUsers: 'Users', - textNoComments: "This document doesn\'t contain comments" + textNoComments: 'This document doesn\'t contain comments', + textEditСomment: 'Edit Comment', + textDone: 'Done', + textAddReply: 'Add Reply', + textEditReply: 'Edit Reply', + textCancel: 'Cancel', + textAllChangesEditing: 'All changes (Editing)', + textAllChangesAcceptedPreview: 'All changes accepted (Preview)', + textAllChangesRejectedPreview: 'All changes rejected (Preview)', + textAccept: 'Accept', + textReject: 'Reject' } })(), Common.Views.Collaboration || {})) }); \ No newline at end of file diff --git a/apps/common/mobile/resources/less/ios/_collaboration.less b/apps/common/mobile/resources/less/ios/_collaboration.less index 37361bc8e..919c94f6a 100644 --- a/apps/common/mobile/resources/less/ios/_collaboration.less +++ b/apps/common/mobile/resources/less/ios/_collaboration.less @@ -1,4 +1,5 @@ .page-change { + background-color: #FFFFFF; .block-description { background-color: #fff; padding-top: 15px; @@ -28,23 +29,44 @@ margin-top: 10px; } .block-btn, .content-block.block-btn:first-child { + position: absolute; + bottom: 0; display: flex; flex-direction: row; - justify-content: space-around; - margin: 26px 0; + justify-content: space-between; + margin: 0; + width: 100%; + height: 44px; + align-items: center; + box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2); - #btn-next-change, #btn-reject-change { + #btn-reject-change { margin-left: 20px; } #btn-goto-change { - margin-right: 20px; + margin-left: 10px; } - .right-buttons { + .change-buttons, .accept-reject { display: flex; } - .link { - display: inline-block; + .next-prev { + display: flex; + .link { + width: 44px; + } } + .link { + position: relative; + display: flex; + justify-content: center; + align-items: center; + font-size: 17px; + height: 44px; + min-width: 44px; + } + } + #no-changes { + padding: 16px; } } .navbar .center-collaboration { @@ -61,6 +83,21 @@ } } +//Display mode +.page-display-mode[data-page="display-mode-view"] { + .list-block { + li.media-item { + .item-title { + font-weight: normal; + } + .item-subtitle { + font-size: 14px; + color: @gray; + } + } + } +} + //Edit users @initialEditUser: #373737; @@ -92,7 +129,17 @@ } //Comments -.page-comments { +.page-comments, .add-comment, .page-view-comments, .container-edit-comment, .container-add-reply, .page-edit-comment, .page-add-reply, .page-edit-reply { + .header-comment { + display: flex; + justify-content: space-between; + padding-right: 16px; + .comment-right { + display: flex; + justify-content: space-between; + width: 70px; + } + } .list-block .item-inner { display: block; padding: 16px 0; @@ -100,6 +147,13 @@ } p { margin: 0; + word-break: break-word; + } + .list-reply { + padding-left: 26px; + } + .reply-textarea, .comment-textarea, .edit-reply-textarea { + resize: vertical; } .user-name { font-size: 17px; @@ -109,7 +163,7 @@ font-weight: bold; } .comment-date, .reply-date { - font-size: 12px; + font-size: 13px; line-height: 18px; color: #6d6d72; margin: 0; @@ -125,8 +179,14 @@ } .reply-item { margin-top: 15px; + padding-right: 16px; + padding-top: 13px; + .header-reply { + display: flex; + justify-content: space-between; + } .user-name { - padding-top: 16px; + padding-top: 3px; } &:before { content: ''; @@ -148,10 +208,253 @@ color: @themeColor; border-left: 1px solid @themeColor; padding-left: 10px; + padding-right: 16px; margin: 5px 0; font-size: 15px; } + + .wrap-comment, .wrap-reply { + padding: 16px 24px 0 16px; + } + .comment-textarea, .reply-textarea, .edit-reply-textarea { + margin-top: 10px; + background:transparent; + outline:none; + width: 100%; + font-size: 17px; + border: none; + border-radius: 3px; + min-height: 100px; + } } .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 +} + +.container-edit-comment { + .page { + background-color: #FFFFFF; + } +} + +//view comment +.container-view-comment { + position: fixed; + -webkit-transition: height 100ms; + transition: height 120ms; + background-color: #FFFFFF; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + height: 50%; + box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2), 0px 4px 5px rgba(0, 0, 0, 0.12); + .pages { + background-color: #FFFFFF; + } + .page-view-comments { + background-color: #FFFFFF; + .list-block { + margin-bottom: 100px; + ul:before, ul:after { + content: none; + } + .item-inner { + padding: 0; + } + } + + } + .toolbar { + position: fixed; + background-color: #FFFFFF; + box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2), 0px 4px 5px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14); + &:before { + content: none; + } + .toolbar-inner { + display: flex; + justify-content: space-between; + padding: 0 16px; + .button-left { + min-width: 80px; + } + .button-right { + min-width: 62px; + display: flex; + justify-content: space-between; + a { + padding: 0 12px; + } + } + } + } + .swipe-container { + display: flex; + justify-content: center; + height: 40px; + .icon-swipe { + margin-top: 8px; + width: 40px; + height: 4px; + background: rgba(0, 0, 0, 0.12); + border-radius: 2px; + } + } + .list-block { + margin-top: 0; + } + &.popover { + position: absolute; + border-radius: 4px; + min-height: 170px; + height: 400px; + max-height: 600px; + + .toolbar { + position: absolute; + border-radius: 0 0 4px 4px; + .toolbar-inner { + padding-right: 0; + } + } + + .pages { + position: absolute; + + .page { + border-radius: 13px; + + .page-content { + padding: 16px; + padding-bottom: 80px; + + .list-block { + margin-bottom: 0px; + + .item-content { + padding-left: 0; + + .header-comment, .reply-item { + padding-right: 0; + } + } + } + + .block-reply { + margin-top: 10px; + + .reply-textarea { + min-height: 70px; + width: 278px; + border: 1px solid #c4c4c4; + border-radius: 6px; + padding: 5px; + } + } + + .edit-reply-textarea { + min-height: 60px; + width: 100%; + border: 1px solid #c4c4c4; + border-radius: 6px; + padding: 5px; + height: 60px; + margin-top: 10px; + } + + .comment-text { + padding-right: 0; + + .comment-textarea { + border: 1px solid #c4c4c4; + border-radius: 6px; + padding: 8px; + min-height: 80px; + height: 80px; + } + } + } + } + } + + } +} + +#done-comment { + color: @themeColor; +} +.page-add-comment { + background-color: #FFFFFF; + .wrap-comment, .wrap-reply { + padding: 16px 24px 0 16px; + .header-comment { + justify-content: flex-start; + } + .user-name { + font-weight: bold; + font-size: 17px; + padding-left: 5px; + } + .comment-date { + font-size: 13px; + color: #6d6d72; + padding-left: 5px; + } + .wrap-textarea { + margin-top: 16px; + padding-right: 6px; + .comment-textarea { + font-size: 17px; + border: none; + margin-top: 0; + min-height: 100px; + border-radius: 4px; + width: 100%; + padding-left: 5px; + &::placeholder { + color: @gray; + font-size: 17px; + } + } + } + } +} +.container-add-reply { + height: 100%; + .navbar { + a.link i + span { + margin-left: 0; + } + } + .page { + background-color: #FFFFFF; + } +} + +.actions-modal-button.color-red { + color: @red; +} + +.page-edit-comment, .page-add-reply, .page-edit-reply { + background-color: #FFFFFF; + .header-comment { + justify-content: flex-start; + } + .navbar { + .right { + height: 100%; + #add-reply, #edit-comment, #edit-reply { + display: flex; + align-items: center; + padding-left: 16px; + padding-right: 16px; + height: 100%; + } + } + } +} + +.container-edit-comment { + position: fixed; + +} + diff --git a/apps/common/mobile/resources/less/ios/_container.less b/apps/common/mobile/resources/less/ios/_container.less index de81509ef..3d1885edf 100644 --- a/apps/common/mobile/resources/less/ios/_container.less +++ b/apps/common/mobile/resources/less/ios/_container.less @@ -97,4 +97,21 @@ .popover-inner { height: 400px; } +} + +.container-add { + .categories { + > .buttons-row { + .button { + &.active { + i.icon { + background-color: transparent; + } + } + display: flex; + justify-content: center; + align-items: center; + } + } + } } \ 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 ea3cdf0f0..a7439c97f 100644 --- a/apps/common/mobile/resources/less/material/_collaboration.less +++ b/apps/common/mobile/resources/less/material/_collaboration.less @@ -8,7 +8,7 @@ word-wrap: break-word; } #user-name { - font-size: 17px; + font-size: 16px; line-height: 22px; color: #000000; margin: 0; @@ -28,26 +28,54 @@ margin-top: 10px; } .block-btn { + position: absolute; + bottom: 0; display: flex; flex-direction: row; - justify-content: space-around; + justify-content: space-between; margin: 0; - padding: 26px 0; - background-color: #EFEFF4; + width: 100%; + height: 56px; + align-items: center; + box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2); - #btn-next-change, #btn-reject-change { - margin-left: 20px; + #btn-reject-change { + margin-left: 15px; } - #btn-goto-change { - margin-right: 20px; - } - .right-buttons { + .change-buttons, .accept-reject, .next-prev { display: flex; } .link { - display: inline-block; + position: relative; + display: flex; + justify-content: center; + align-items: center; + font-size: 14px; + text-transform: uppercase; + font-weight: 500; + height: 56px; + min-width: 48px; } } + .header-change { + display: flex; + justify-content: flex-start; + padding-right: 16px; + .initials-change { + height: 40px; + width: 40px; + border-radius: 50px; + color: #FFFFFF; + display: flex; + justify-content: center; + align-items: center; + margin-right: 16px; + font-size: 18px; + } + } + #no-changes { + padding: 16px; + } } .container-collaboration { .navbar .right.close-collaboration { @@ -59,6 +87,15 @@ } } +//Display mode +.page-display-mode { + .list-block { + .item-subtitle { + font-size: 14px; + color: @gray; + } + } +} //Edit users @initialEditUser: #373737; @@ -89,23 +126,38 @@ } } - //Comments -.page-comments { - .list-block .item-inner { - display: block; - padding: 16px 0; - word-wrap: break-word; +.page-comments, .page-add-comment, .page-view-comments, .container-edit-comment, .container-add-reply, .page-edit-comment, .page-add-reply, .page-edit-reply { + .list-block { + ul { + &:before, &:after { + content: none; + } + } + .item-inner { + display: block; + padding: 16px 0; + word-wrap: break-word; + &:after { + content: none; + } + } } p { margin: 0; + word-break: break-word; + } + .list-reply { + padding-left: 26px; + } + .reply-textarea, .comment-textarea, .edit-reply-textarea { + resize: vertical; } .user-name { - font-size: 17px; + font-size: 16px; line-height: 22px; color: #000000; margin: 0; - font-weight: bold; } .comment-date, .reply-date { font-size: 12px; @@ -123,34 +175,333 @@ padding-right: 15px; } .reply-item { - margin-top: 15px; - .user-name { - padding-top: 16px; + padding-right: 16px; + padding-top: 13px; + .header-reply { + display: flex; + justify-content: space-between; } - &: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%; + .user-name { + padding-top: 3px; } } .comment-quote { color: @themeColor; border-left: 1px solid @themeColor; padding-left: 10px; + padding-right: 16px; margin: 5px 0; font-size: 15px; } + + .wrap-comment, .wrap-reply { + padding: 16px 24px 0 16px; + } + .comment-textarea, .reply-textarea, .edit-reply-textarea { + margin-top: 10px; + background:transparent; + outline:none; + width: 100%; + font-size: 15px; + border: 1px solid #c4c4c4; + border-radius: 3px; + min-height: 100px; + } + + .header-comment { + display: flex; + justify-content: space-between; + padding-right: 16px; + .comment-right { + display: flex; + justify-content: space-between; + width: 70px; + } + .comment-left { + display: flex; + justify-content: space-between; + } + .initials-comment { + height: 40px; + width: 40px; + border-radius: 50px; + color: #FFFFFF; + display: flex; + justify-content: center; + align-items: center; + margin-right: 16px; + font-size: 18px; + } + } + .header-reply { + .reply-left { + display: flex; + justify-content: space-between; + align-items: flex-start; + } + .initials-reply { + width: 24px; + height: 24px; + color: #FFFFFF; + font-size: 11px; + display: flex; + justify-content: center; + align-items: center; + margin-right: 16px; + border-radius: 50px; + margin-top: 5px; + } + } } .settings.popup .list-block ul.list-reply:last-child:after, .settings.popover .list-block ul.list-reply:last-child:after { display: none; +} + +//view comment +.container-view-comment { + position: fixed; + -webkit-transition: height 100ms; + transition: height 100ms; + background-color: #FFFFFF; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + height: 50%; + box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2), 0px 4px 5px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14); + .page-view-comments { + background-color: #FFFFFF; + .list-block { + margin-bottom: 120px; + ul:before, ul:after { + content: none; + } + .item-inner { + padding: 0; + } + } + + } + .toolbar { + position: fixed; + background-color: #FFFFFF; + box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2), 0px 4px 5px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14); + &.toolbar-bottom { + top: auto; + } + &:before { + content: none; + } + a { + &.link { + color: @themeColor; + font-size: 16px; + } + } + .toolbar-inner { + display: flex; + justify-content: space-between; + padding: 0 16px; + .button-left { + min-width: 80px; + } + .button-right { + min-width: 62px; + display: flex; + justify-content: space-between; + a { + padding: 0 8px; + } + } + } + } + .swipe-container { + display: flex; + justify-content: center; + height: 40px; + .icon-swipe { + margin-top: 8px; + width: 40px; + height: 4px; + background: rgba(0, 0, 0, 0.12); + border-radius: 2px; + } + } + .list-block { + margin-top: 0; + } + &.popover { + position: absolute; + border-radius: 4px; + min-height: 170px; + height: 400px; + max-height: 600px; + + .toolbar { + position: absolute; + border-radius: 0 0 4px 4px; + .toolbar-inner { + padding-right: 0; + } + } + + .pages { + position: absolute; + + .page { + border-radius: 13px; + + .page-content { + padding: 16px; + padding-bottom: 80px; + + .list-block { + margin-bottom: 0px; + + .item-content { + padding-left: 0; + + .header-comment, .reply-item { + padding-right: 0; + } + } + } + + .block-reply { + margin-top: 10px; + + .reply-textarea { + min-height: 70px; + width: 278px; + border: 1px solid #c4c4c4; + border-radius: 6px; + padding: 5px; + } + } + + .edit-reply-textarea { + min-height: 60px; + width: 100%; + border: 1px solid #c4c4c4; + border-radius: 6px; + padding: 5px; + height: 60px; + margin-top: 10px; + } + + .comment-text { + padding-right: 0; + + .comment-textarea { + border: 1px solid #c4c4c4; + border-radius: 6px; + padding: 8px; + min-height: 80px; + height: 80px; + } + } + } + } + } + + } +} + +#done-comment { + padding: 0 16px; +} +.page-add-comment { + .wrap-comment, .wrap-reply { + padding: 16px 24px 0 16px; + .header-comment { + justify-content: flex-start; + } + .user-name { + font-size: 17px; + font-weight: bold; + } + .comment-date { + font-size: 13px; + color: #6d6d72; + } + .wrap-textarea { + margin-top: 16px; + padding-right: 6px; + .comment-textarea { + font-size: 17px; + border: none; + margin-top: 0; + min-height: 100px; + border-radius: 4px; + &::placeholder { + color: @gray; + font-size: 17px; + } + } + } + } +} + +.container-edit-comment, .container-add-reply { + height: 100%; + .navbar { + &:after { + content: ''; + position: absolute; + left: 0; + bottom: 0; + right: auto; + top: auto; + height: 1px; + width: 100%; + background-color: #c4c4c4; + display: block; + z-index: 15; + -webkit-transform-origin: 50% 100%; + transform-origin: 50% 100%; + } + .navbar-inner { + justify-content: space-between; + } + a.link i + span { + margin-left: 0; + } + .center { + font-size: 18px; + } + .right { + margin-left: 0; + } + } + .page-add-comment { + background-color: #FFFFFF; + } + .header-comment { + justify-content: flex-start; + } +} + +.actions-modal-button.color-red { + color: @red; +} + +.page-edit-comment, .page-add-reply, .page-edit-reply { + background-color: #FFFFFF; + .header-comment { + justify-content: flex-start; + } + .navbar { + .right { + height: 100%; + #add-new-reply, #edit-comment, #edit-reply { + display: flex; + align-items: center; + padding-left: 16px; + padding-right: 16px; + height: 100%; + } + } + } +} + +.container-edit-comment { + position: fixed; } \ No newline at end of file diff --git a/apps/documenteditor/embed/js/ApplicationController.js b/apps/documenteditor/embed/js/ApplicationController.js index 2978100b0..dffc44187 100644 --- a/apps/documenteditor/embed/js/ApplicationController.js +++ b/apps/documenteditor/embed/js/ApplicationController.js @@ -414,6 +414,10 @@ DE.ApplicationController = new(function(){ message = me.errorUpdateVersionOnDisconnect; break; + case Asc.c_oAscError.ID.AccessDeny: + message = me.errorAccessDeny; + break; + default: message = me.errorDefaultMessage.replace('%1', id); break; diff --git a/apps/documenteditor/main/app/controller/Main.js b/apps/documenteditor/main/app/controller/Main.js index bf8dc0e8e..4a093b4c0 100644 --- a/apps/documenteditor/main/app/controller/Main.js +++ b/apps/documenteditor/main/app/controller/Main.js @@ -414,6 +414,7 @@ define([ docInfo.put_CallbackUrl(this.editorConfig.callbackUrl); docInfo.put_Token(data.doc.token); docInfo.put_Permissions(_permissions); + docInfo.put_EncryptedInfo(this.editorConfig.encryptionKeys); // docInfo.put_Review(this.permissions.review); var type = /^(?:(pdf|djvu|xps))$/.exec(data.doc.fileType); @@ -1619,10 +1620,12 @@ define([ }, this); } - if (id !== Asc.c_oAscError.ID.ForceSaveTimeout) - Common.UI.alert(config); + if (id !== Asc.c_oAscError.ID.ForceSaveTimeout) { + if (!Common.Utils.ModalWindow.isVisible() || $('.asc-window.modal.alert[data-value=' + id + ']').length<1) + Common.UI.alert(config).$window.attr('data-value', id); + } - Common.component.Analytics.trackEvent('Internal Error', id.toString()); + (id!==undefined) && Common.component.Analytics.trackEvent('Internal Error', id.toString()); }, onCoAuthoringDisconnect: function() { diff --git a/apps/documenteditor/main/app/controller/Toolbar.js b/apps/documenteditor/main/app/controller/Toolbar.js index f73d38dcb..664a25181 100644 --- a/apps/documenteditor/main/app/controller/Toolbar.js +++ b/apps/documenteditor/main/app/controller/Toolbar.js @@ -390,6 +390,8 @@ define([ Common.NotificationCenter.on('fonts:change', _.bind(this.onApiChangeFont, this)); this.api.asc_registerCallback('asc_onTableDrawModeChanged', _.bind(this.onTableDraw, this)); this.api.asc_registerCallback('asc_onTableEraseModeChanged', _.bind(this.onTableErase, this)); + Common.NotificationCenter.on('storage:image-load', _.bind(this.openImageFromStorage, this)); + Common.NotificationCenter.on('storage:image-insert', _.bind(this.insertImageFromStorage, this)); } else if (this.mode.isRestrictedEdit) { this.api.asc_registerCallback('asc_onFocusObject', _.bind(this.onApiFocusObjectRestrictedEdit, this)); this.api.asc_registerCallback('asc_onCoAuthoringDisconnect', _.bind(this.onApiCoAuthoringDisconnect, this)); @@ -1506,26 +1508,36 @@ define([ } })).show(); } else if (item.value === 'storage') { - if (this.toolbar.mode.canRequestInsertImage) { - Common.Gateway.requestInsertImage(); - } else { - (new Common.Views.SelectFileDlg({ - fileChoiceUrl: this.toolbar.mode.fileChoiceUrl.replace("{fileExt}", "").replace("{documentType}", "ImagesOnly") - })).on('selectfile', function(obj, file){ - me.insertImage(file); - }).show(); - } + Common.NotificationCenter.trigger('storage:image-load', 'add'); } }, - insertImage: function(data) { - if (data && data.url) { + openImageFromStorage: function(type) { + var me = this; + if (this.toolbar.mode.canRequestInsertImage) { + Common.Gateway.requestInsertImage(type); + } else { + (new Common.Views.SelectFileDlg({ + fileChoiceUrl: this.toolbar.mode.fileChoiceUrl.replace("{fileExt}", "").replace("{documentType}", "ImagesOnly") + })).on('selectfile', function(obj, file){ + file && (file.c = type); + me.insertImage(file); + }).show(); + } + }, + + insertImageFromStorage: function(data) { + if (data && data.url && (!data.c || data.c=='add')) { this.toolbar.fireEvent('insertimage', this.toolbar); this.api.AddImageUrl(data.url, undefined, data.token);// for loading from storage Common.component.Analytics.trackEvent('ToolBar', 'Image'); } }, + insertImage: function(data) { // gateway + Common.NotificationCenter.trigger('storage:image-insert', data); + }, + onBtnInsertTextClick: function(btn, e) { if (this.api) this._addAutoshape(btn.pressed, 'textRect'); @@ -2053,6 +2065,7 @@ define([ props: me.api.asc_GetWatermarkProps(), api: me.api, lang: me.mode.lang, + storage: me.mode.canRequestInsertImage || me.mode.fileChoiceUrl && me.mode.fileChoiceUrl.indexOf("{documentType}")>-1, fontStore: me.fontstore, handler: function(result, value) { if (result == 'ok') { diff --git a/apps/documenteditor/main/app/template/ImageSettings.template b/apps/documenteditor/main/app/template/ImageSettings.template index 9fae4b54e..2b7db5d82 100644 --- a/apps/documenteditor/main/app/template/ImageSettings.template +++ b/apps/documenteditor/main/app/template/ImageSettings.template @@ -75,20 +75,12 @@ - - - - - - - - - +
    - + diff --git a/apps/documenteditor/main/app/template/ShapeSettings.template b/apps/documenteditor/main/app/template/ShapeSettings.template index d080de792..1418afb3b 100644 --- a/apps/documenteditor/main/app/template/ShapeSettings.template +++ b/apps/documenteditor/main/app/template/ShapeSettings.template @@ -17,11 +17,8 @@
    - - diff --git a/apps/documenteditor/main/app/template/WatermarkSettings.template b/apps/documenteditor/main/app/template/WatermarkSettings.template index afe3b0f56..b2e3ed2dc 100644 --- a/apps/documenteditor/main/app/template/WatermarkSettings.template +++ b/apps/documenteditor/main/app/template/WatermarkSettings.template @@ -45,13 +45,10 @@
    diff --git a/apps/documenteditor/main/app/view/ChartSettings.js b/apps/documenteditor/main/app/view/ChartSettings.js index 878effd46..3fa55df2e 100644 --- a/apps/documenteditor/main/app/view/ChartSettings.js +++ b/apps/documenteditor/main/app/view/ChartSettings.js @@ -136,7 +136,7 @@ define([ value = props.get_SeveralChartTypes(); if (this._state.SeveralCharts && value) { - this.btnChartType.setIconCls(''); + this.btnChartType.setIconCls('svgicon'); this._state.ChartType = null; } else { var type = this.chartProps.getType(); @@ -144,9 +144,9 @@ define([ var record = this.mnuChartTypePicker.store.findWhere({type: type}); this.mnuChartTypePicker.selectRecord(record, true); if (record) { - this.btnChartType.setIconCls('item-chartlist ' + record.get('iconCls')); + this.btnChartType.setIconCls('svgicon ' + 'chart-' + record.get('iconCls')); } else - this.btnChartType.setIconCls(''); + this.btnChartType.setIconCls('svgicon'); this.updateChartStyles(this.api.asc_getChartPreviews(type)); this._state.ChartType = type; } @@ -248,9 +248,9 @@ define([ this.btnChartType = new Common.UI.Button({ cls : 'btn-large-dataview', - iconCls : 'item-chartlist bar-normal', + iconCls : 'svgicon chart-column-normal', menu : new Common.UI.Menu({ - style: 'width: 435px; padding-top: 12px;', + style: 'width: 364px; padding-top: 12px;', items: [ { template: _.template('') } ] @@ -263,7 +263,7 @@ define([ restoreHeight: 421, groups: new Common.UI.DataViewGroupStore(Common.define.chartData.getChartGroupData()), store: new Common.UI.DataViewStore(Common.define.chartData.getChartData()), - itemTemplate: _.template('
    ') + itemTemplate: _.template('
    \">
    ') }); }); this.btnChartType.render($('#chart-button-type')); @@ -386,7 +386,7 @@ define([ rawData = record; } - this.btnChartType.setIconCls('item-chartlist ' + rawData.iconCls); + this.btnChartType.setIconCls('svgicon ' + 'chart-' + rawData.iconCls); this._state.ChartType = -1; if (this.api && !this._noApply && this.chartProps) { diff --git a/apps/documenteditor/main/app/view/DocumentHolder.js b/apps/documenteditor/main/app/view/DocumentHolder.js index f51e70a38..292e00327 100644 --- a/apps/documenteditor/main/app/view/DocumentHolder.js +++ b/apps/documenteditor/main/app/view/DocumentHolder.js @@ -2433,6 +2433,11 @@ define([ me.fireEvent('editcomplete', me); } })).show(); + }), + new Common.UI.MenuItem({ + caption : this.textFromStorage + }).on('click', function(item) { + Common.NotificationCenter.trigger('storage:image-load', 'change'); }) ] }) @@ -2579,6 +2584,7 @@ define([ menuImgReplace.setVisible(value.imgProps.isOnlyImg && (pluginGuid===null || pluginGuid===undefined)); if (menuImgReplace.isVisible()) menuImgReplace.setDisabled(islocked || pluginGuid===null); + menuImgReplace.menu.items[2].setVisible(me.mode.canRequestInsertImage || me.mode.fileChoiceUrl && me.mode.fileChoiceUrl.indexOf("{documentType}")>-1); menuImgRotate.setVisible(!value.imgProps.isChart && (pluginGuid===null || pluginGuid===undefined)); if (menuImgRotate.isVisible()) @@ -4416,7 +4422,8 @@ define([ textCells: 'Cells', textSeveral: 'Several Rows/Columns', txtInsertCaption: 'Insert Caption', - txtEmpty: '(Empty)' + txtEmpty: '(Empty)', + textFromStorage: 'From Storage' }, DE.Views.DocumentHolder || {})); }); \ No newline at end of file diff --git a/apps/documenteditor/main/app/view/FileMenuPanels.js b/apps/documenteditor/main/app/view/FileMenuPanels.js index 50c45fba9..dc049fcd0 100644 --- a/apps/documenteditor/main/app/view/FileMenuPanels.js +++ b/apps/documenteditor/main/app/view/FileMenuPanels.js @@ -601,9 +601,13 @@ define([ store: new Common.UI.DataViewStore(this.recent), itemTemplate: _.template([ '
    ', - '
    ', - '
    <%= Common.Utils.String.htmlEncode(title) %>
    ', - '
    <%= Common.Utils.String.htmlEncode(folder) %>
    ', + '
    ', + ' style="background-image: url(<%= image %>);background-position: center;"', + '<% } %>', + '>
    ', + '
    <% if (typeof title !== "undefined") {%><%= Common.Utils.String.htmlEncode(title || "") %><% } %>
    ', + '
    <% if (typeof folder !== "undefined") {%><%= Common.Utils.String.htmlEncode(folder || "") %><% } %>
    ', '
    ' ].join('')) }); @@ -655,13 +659,13 @@ define([ '<% _.each(docs, function(item) { %>', '
    ', '
    \")' + - ' } else { ' + + '<% if (!_.isEmpty(item.image)) { %> ', + ' style="background-image: url(<%= item.image %>);">', + '<% } else { ' + 'print(\">\")' + ' } %>', '
    ', - '
    <%= item.name %>
    ', + '
    <%= Common.Utils.String.htmlEncode(item.title || item.name || "") %>
    ', '
    ', '<% }) %>', '' diff --git a/apps/documenteditor/main/app/view/ImageSettings.js b/apps/documenteditor/main/app/view/ImageSettings.js index e75ded1c3..14a7f1ac8 100644 --- a/apps/documenteditor/main/app/view/ImageSettings.js +++ b/apps/documenteditor/main/app/view/ImageSettings.js @@ -101,9 +101,15 @@ define([ this.api.asc_registerCallback('asc_onImgWrapStyleChanged', _.bind(this._ImgWrapStyleChanged, this)); this.api.asc_registerCallback('asc_ChangeCropState', _.bind(this._changeCropState, this)); } + Common.NotificationCenter.on('storage:image-insert', _.bind(this.insertImageFromStorage, this)); + return this; }, + setMode: function(mode) { + this.mode = mode; + }, + updateMetricUnit: function() { var value = Common.Utils.Metric.fnRecalcFromMM(this._state.Width); this.labelWidth[0].innerHTML = this.textWidth + ': ' + value.toFixed(2) + ' ' + Common.Utils.Metric.getCurrentMetricName(); @@ -164,30 +170,13 @@ define([ this.btnOriginalSize.cmpEl.width(w); this.btnFitMargins.cmpEl.width(w); - this.btnInsertFromFile = new Common.UI.Button({ - el: $('#image-button-from-file') - }); - this.lockedControls.push(this.btnInsertFromFile); - - this.btnInsertFromUrl = new Common.UI.Button({ - el: $('#image-button-from-url') - }); - this.lockedControls.push(this.btnInsertFromUrl); - this.btnEditObject = new Common.UI.Button({ el: $('#image-button-edit-object') }); this.lockedControls.push(this.btnEditObject); this.btnOriginalSize.on('click', _.bind(this.setOriginalSize, this)); - this.btnInsertFromFile.on('click', _.bind(function(btn){ - if (this._isFromFile) return; - this._isFromFile = true; - if (this.api) this.api.ChangeImageFromFile(); - this.fireEvent('editcomplete', this); - this._isFromFile = false; - }, this)); - this.btnInsertFromUrl.on('click', _.bind(this.insertFromUrl, this)); + this.btnEditObject.on('click', _.bind(function(btn){ if (this.api) this.api.asc_startEditCurrentOleObject(); this.fireEvent('editcomplete', this); @@ -268,8 +257,26 @@ define([ this.btnCrop.menu.on('item:click', _.bind(this.onCropMenu, this)); this.lockedControls.push(this.btnCrop); + this.btnSelectImage = new Common.UI.Button({ + parentEl: $('#image-button-replace'), + cls: 'btn-text-menu-default', + caption: this.textInsert, + style: "width:100%;", + menu: new Common.UI.Menu({ + style: 'min-width: 194px;', + maxHeight: 200, + items: [ + {caption: this.textFromFile, value: 0}, + {caption: this.textFromUrl, value: 1}, + {caption: this.textFromStorage, value: 2} + ] + }) + }); + this.lockedControls.push(this.btnSelectImage); + this.btnSelectImage.menu.on('item:click', _.bind(this.onImageSelect, this)); + this.btnSelectImage.menu.items[2].setVisible(this.mode.canRequestInsertImage || this.mode.fileChoiceUrl && this.mode.fileChoiceUrl.indexOf("{documentType}")>-1); + this.linkAdvanced = $('#image-advanced-link'); - this.lblReplace = $('#image-lbl-replace'); $(this.el).on('click', '#image-advanced-link', _.bind(this.openAdvancedSettings, this)); }, @@ -335,10 +342,8 @@ define([ var pluginGuid = props.asc_getPluginGuid(); value = (pluginGuid !== null && pluginGuid !== undefined); if (this._state.isOleObject!==value) { - this.btnInsertFromUrl.setVisible(!value); - this.btnInsertFromFile.setVisible(!value); + this.btnSelectImage.setVisible(!value); this.btnEditObject.setVisible(value); - this.lblReplace.text(value ? this.textEditObject : this.textInsert); this.btnRotate270.setDisabled(value); this.btnRotate90.setDisabled(value); this.btnFlipV.setDisabled(value); @@ -350,8 +355,7 @@ define([ var plugin = DE.getCollection('Common.Collections.Plugins').findWhere({guid: pluginGuid}); this.btnEditObject.setDisabled(plugin===null || plugin ===undefined || this._locked); } else { - this.btnInsertFromUrl.setDisabled(pluginGuid===null || this._locked); - this.btnInsertFromFile.setDisabled(pluginGuid===null || this._locked); + this.btnSelectImage.setDisabled(pluginGuid===null || this._locked); } } }, @@ -463,23 +467,43 @@ define([ } }, - insertFromUrl: function() { - var me = this; - (new Common.Views.ImageFromUrlDialog({ - handler: function(result, value) { - if (result == 'ok') { - if (me.api) { - var checkUrl = value.replace(/ /g, ''); - if (!_.isEmpty(checkUrl)) { - var props = new Asc.asc_CImgProperty(); - props.put_ImageUrl(checkUrl); - me.api.ImgApply(props); + setImageUrl: function(url, token) { + var props = new Asc.asc_CImgProperty(); + props.put_ImageUrl(url, token); + this.api.ImgApply(props); + }, + + insertImageFromStorage: function(data) { + if (data && data.url && data.c=='change') { + this.setImageUrl(data.url, data.token); + } + }, + + onImageSelect: function(menu, item) { + if (item.value==1) { + var me = this; + (new Common.Views.ImageFromUrlDialog({ + handler: function(result, value) { + if (result == 'ok') { + if (me.api) { + var checkUrl = value.replace(/ /g, ''); + if (!_.isEmpty(checkUrl)) { + me.setImageUrl(checkUrl); + } } } + me.fireEvent('editcomplete', me); } - me.fireEvent('editcomplete', me); - } - })).show(); + })).show(); + } else if (item.value==2) { + Common.NotificationCenter.trigger('storage:image-load', 'change'); + } else { + if (this._isFromFile) return; + this._isFromFile = true; + if (this.api) this.api.ChangeImageFromFile(); + this.fireEvent('editcomplete', this); + this._isFromFile = false; + } }, onBtnRotateClick: function(btn) { @@ -606,6 +630,7 @@ define([ textHintFlipH: 'Flip Horizontally', textCrop: 'Crop', textCropFill: 'Fill', - textCropFit: 'Fit' + textCropFit: 'Fit', + textFromStorage: 'From Storage' }, DE.Views.ImageSettings || {})); }); \ No newline at end of file diff --git a/apps/documenteditor/main/app/view/RightMenu.js b/apps/documenteditor/main/app/view/RightMenu.js index 69a451c3a..a56cdb917 100644 --- a/apps/documenteditor/main/app/view/RightMenu.js +++ b/apps/documenteditor/main/app/view/RightMenu.js @@ -245,8 +245,9 @@ define([ }, setMode: function(mode) { - if (this.mergeSettings) - this.mergeSettings.setMode(mode); + this.mergeSettings && this.mergeSettings.setMode(mode); + this.imageSettings && this.imageSettings.setMode(mode); + this.shapeSettings && this.shapeSettings.setMode(mode); }, onBtnMenuClick: function(btn, e) { diff --git a/apps/documenteditor/main/app/view/ShapeSettings.js b/apps/documenteditor/main/app/view/ShapeSettings.js index d06ec060b..8fd41e2e5 100644 --- a/apps/documenteditor/main/app/view/ShapeSettings.js +++ b/apps/documenteditor/main/app/view/ShapeSettings.js @@ -152,9 +152,14 @@ define([ this.api.asc_setInterfaceDrawImagePlaceShape('shape-texture-img'); this.api.asc_registerCallback('asc_onInitStandartTextures', _.bind(this.onInitStandartTextures, this)); } + Common.NotificationCenter.on('storage:image-insert', _.bind(this.insertImageFromStorage, this)); return this; }, + setMode: function(mode) { + this.mode = mode; + }, + onFillSrcSelect: function(combo, record) { this.ShowHideElem(record.value); switch (record.value){ @@ -690,32 +695,49 @@ define([ this.fireEvent('editcomplete', this); }, - insertFromUrl: function() { - var me = this; - (new Common.Views.ImageFromUrlDialog({ - handler: function(result, value) { - if (result == 'ok') { - if (me.api) { - var checkUrl = value.replace(/ /g, ''); - if (!_.isEmpty(checkUrl)) { - if (me.BlipFillType !== null) { - var props = new Asc.asc_CShapeProperty(); - var fill = new Asc.asc_CShapeFill(); - fill.put_type(Asc.c_oAscFill.FILL_TYPE_BLIP); - fill.put_fill( new Asc.asc_CFillBlip()); - fill.get_fill().put_type(me.BlipFillType); - fill.get_fill().put_url(checkUrl); + setImageUrl: function(url, token) { + if (this.BlipFillType !== null) { + var props = new Asc.asc_CShapeProperty(); + var fill = new Asc.asc_CShapeFill(); + fill.put_type(Asc.c_oAscFill.FILL_TYPE_BLIP); + fill.put_fill( new Asc.asc_CFillBlip()); + fill.get_fill().put_type(this.BlipFillType); + fill.get_fill().put_url(url, token); - props.put_fill(fill); - me.imgprops.put_ShapeProperties(props); - me.api.ImgApply(me.imgprops); + props.put_fill(fill); + this.imgprops.put_ShapeProperties(props); + this.api.ImgApply(this.imgprops); + } + }, + + insertImageFromStorage: function(data) { + if (data && data.url && data.c=='fill') { + this.setImageUrl(data.url, data.token); + } + }, + + onImageSelect: function(menu, item) { + if (item.value==1) { + var me = this; + (new Common.Views.ImageFromUrlDialog({ + handler: function(result, value) { + if (result == 'ok') { + if (me.api) { + var checkUrl = value.replace(/ /g, ''); + if (!_.isEmpty(checkUrl)) { + me.setImageUrl(checkUrl); } } } + me.fireEvent('editcomplete', me); } - me.fireEvent('editcomplete', me); - } - })).show(); + })).show(); + } else if (item.value==2) { + Common.NotificationCenter.trigger('storage:image-load', 'fill'); + } else { + if (this.api) this.api.ChangeShapeImageFromFile(this.BlipFillType); + this.fireEvent('editcomplete', this); + } }, openAdvancedSettings: function(e) { @@ -1206,21 +1228,24 @@ define([ }); this.fillControls.push(this.cmbPattern); - this.btnInsertFromFile = new Common.UI.Button({ - el: $('#shape-button-from-file') + this.btnSelectImage = new Common.UI.Button({ + parentEl: $('#shape-button-replace'), + cls: 'btn-text-menu-default', + caption: this.textSelectImage, + style: "width:100%;", + menu: new Common.UI.Menu({ + style: 'min-width: 194px;', + maxHeight: 200, + items: [ + {caption: this.textFromFile, value: 0}, + {caption: this.textFromUrl, value: 1}, + {caption: this.textFromStorage, value: 2} + ] + }) }); - this.fillControls.push(this.btnInsertFromFile); - - this.btnInsertFromUrl = new Common.UI.Button({ - el: $('#shape-button-from-url') - }); - this.fillControls.push(this.btnInsertFromUrl); - - this.btnInsertFromFile.on('click', _.bind(function(btn){ - if (this.api) this.api.ChangeShapeImageFromFile(this.BlipFillType); - this.fireEvent('editcomplete', this); - }, this)); - this.btnInsertFromUrl.on('click', _.bind(this.insertFromUrl, this)); + this.fillControls.push(this.btnSelectImage); + this.btnSelectImage.menu.on('item:click', _.bind(this.onImageSelect, this)); + this.btnSelectImage.menu.items[2].setVisible(this.mode.canRequestInsertImage || this.mode.fileChoiceUrl && this.mode.fileChoiceUrl.indexOf("{documentType}")>-1); this._arrFillType = [ {displayValue: this.textStretch, value: Asc.c_oAscFillBlipType.STRETCH}, @@ -1848,6 +1873,8 @@ define([ textHint90: 'Rotate 90° Clockwise', textHintFlipV: 'Flip Vertically', textHintFlipH: 'Flip Horizontally', - strShadow: 'Show shadow' + strShadow: 'Show shadow', + textFromStorage: 'From Storage', + textSelectImage: 'Select Picture' }, DE.Views.ShapeSettings || {})); }); diff --git a/apps/documenteditor/main/app/view/StyleTitleDialog.js b/apps/documenteditor/main/app/view/StyleTitleDialog.js index bbda408ea..2fdbb0189 100644 --- a/apps/documenteditor/main/app/view/StyleTitleDialog.js +++ b/apps/documenteditor/main/app/view/StyleTitleDialog.js @@ -45,6 +45,7 @@ define([ DE.Views.StyleTitleDialog = Common.UI.Window.extend(_.extend({ options: { width: 350, + height: 196, style: 'min-width: 230px;', cls: 'modal-dlg', buttons: ['ok', 'cancel'] diff --git a/apps/documenteditor/main/app/view/Toolbar.js b/apps/documenteditor/main/app/view/Toolbar.js index a75aba0e1..e62d9aab4 100644 --- a/apps/documenteditor/main/app/view/Toolbar.js +++ b/apps/documenteditor/main/app/view/Toolbar.js @@ -1691,7 +1691,7 @@ define([ this.paragraphControls.push(this.mnuInsertPageCount); this.btnInsertChart.setMenu( new Common.UI.Menu({ - style: 'width: 435px;', + style: 'width: 364px;', items: [ {template: _.template('')} ] @@ -1705,7 +1705,7 @@ define([ restoreHeight: 421, groups: new Common.UI.DataViewGroupStore(Common.define.chartData.getChartGroupData(true)), store: new Common.UI.DataViewStore(Common.define.chartData.getChartData()), - itemTemplate: _.template('
    ') + itemTemplate: _.template('
    \">
    ') }); picker.on('item:click', function (picker, item, record, e) { if (record) diff --git a/apps/documenteditor/main/app/view/WatermarkSettingsDialog.js b/apps/documenteditor/main/app/view/WatermarkSettingsDialog.js index 4b2696422..dd3c195bc 100644 --- a/apps/documenteditor/main/app/view/WatermarkSettingsDialog.js +++ b/apps/documenteditor/main/app/view/WatermarkSettingsDialog.js @@ -104,6 +104,7 @@ define(['text!documenteditor/main/app/template/WatermarkSettings.template', this.props = options.props; this.fontStore = options.fontStore; this.api = options.api; + this.storage = !!options.storage; this.textControls = []; this.imageControls = []; this.fontName = 'Arial'; @@ -165,19 +166,25 @@ define(['text!documenteditor/main/app/template/WatermarkSettings.template', }, this)); // Image watermark - this.btnFromFile = new Common.UI.Button({ - el: $('#watermark-from-file') + this.btnSelectImage = new Common.UI.Button({ + parentEl: $('#watermark-select-image'), + cls: 'btn-text-menu-default', + caption: this.textSelect, + style: 'width: 142px;', + menu: new Common.UI.Menu({ + style: 'min-width: 142px;', + maxHeight: 200, + additionalAlign: this.menuAddAlign, + items: [ + {caption: this.textFromFile, value: 0}, + {caption: this.textFromUrl, value: 1}, + {caption: this.textFromStorage, value: 2} + ] + }) }); - this.btnFromFile.on('click', _.bind(function(btn){ - this.props.showFileDialog(); - }, this)); - this.imageControls.push(this.btnFromFile); - - this.btnFromUrl = new Common.UI.Button({ - el: $('#watermark-from-url') - }); - this.btnFromUrl.on('click', _.bind(this.insertFromUrl, this)); - this.imageControls.push(this.btnFromUrl); + this.imageControls.push(this.btnSelectImage); + this.btnSelectImage.menu.on('item:click', _.bind(this.onImageSelect, this)); + this.btnSelectImage.menu.items[2].setVisible(this.storage); this._arrScale = [ {displayValue: this.textAuto, value: -1}, @@ -190,7 +197,7 @@ define(['text!documenteditor/main/app/template/WatermarkSettings.template', this.cmbScale = new Common.UI.ComboBox({ el : $('#watermark-combo-scale'), cls : 'input-group-nr', - menuStyle : 'min-width: 90px;', + menuStyle : 'min-width: 142px;', data : this._arrScale }).on('selected', _.bind(function(combo, record) { }, this)); @@ -410,8 +417,17 @@ define(['text!documenteditor/main/app/template/WatermarkSettings.template', me.btnOk.setDisabled(false); }; this.api.asc_registerCallback('asc_onWatermarkImageLoaded', onApiWMLoaded); + + var insertImageFromStorage = function(data) { + if (data && data.url && data.c=='watermark') { + me.props.put_ImageUrl(data.url, data.token); + } + }; + Common.NotificationCenter.on('storage:image-insert', insertImageFromStorage); + this.on('close', function(obj){ me.api.asc_unregisterCallback('asc_onWatermarkImageLoaded', onApiWMLoaded); + Common.NotificationCenter.off('storage:image-insert', insertImageFromStorage); }); }, @@ -482,18 +498,24 @@ define(['text!documenteditor/main/app/template/WatermarkSettings.template', return item ? item.get('displayValue') : null; }, - insertFromUrl: function() { - var me = this; - (new Common.Views.ImageFromUrlDialog({ - handler: function(result, value) { - if (result == 'ok') { - var checkUrl = value.replace(/ /g, ''); - if (!_.isEmpty(checkUrl)) { - me.props.put_ImageUrl(checkUrl); + onImageSelect: function(menu, item) { + if (item.value==1) { + var me = this; + (new Common.Views.ImageFromUrlDialog({ + handler: function(result, value) { + if (result == 'ok') { + var checkUrl = value.replace(/ /g, ''); + if (!_.isEmpty(checkUrl)) { + me.props.put_ImageUrl(checkUrl); + } } } - } - })).show(); + })).show(); + } else if (item.value==2) { + Common.NotificationCenter.trigger('storage:image-load', 'watermark'); + } else { + this.props.showFileDialog(); + } }, _setDefaults: function (props) { @@ -672,7 +694,9 @@ define(['text!documenteditor/main/app/template/WatermarkSettings.template', textHor: 'Horizontal', textColor: 'Text color', textNewColor: 'Add New Custom Color', - textLanguage: 'Language' + textLanguage: 'Language', + textFromStorage: 'From Storage', + textSelect: 'Select Image' }, DE.Views.WatermarkSettingsDialog || {})) }); \ No newline at end of file diff --git a/apps/documenteditor/main/index.html b/apps/documenteditor/main/index.html index 02d53c26c..3430971be 100644 --- a/apps/documenteditor/main/index.html +++ b/apps/documenteditor/main/index.html @@ -259,6 +259,7 @@ + diff --git a/apps/documenteditor/main/index.html.deploy b/apps/documenteditor/main/index.html.deploy index 824f46de6..212a08ed6 100644 --- a/apps/documenteditor/main/index.html.deploy +++ b/apps/documenteditor/main/index.html.deploy @@ -293,6 +293,7 @@ + diff --git a/apps/documenteditor/main/index_loader.html b/apps/documenteditor/main/index_loader.html index 34239f1a4..85341cc76 100644 --- a/apps/documenteditor/main/index_loader.html +++ b/apps/documenteditor/main/index_loader.html @@ -260,6 +260,7 @@ + diff --git a/apps/documenteditor/main/index_loader.html.deploy b/apps/documenteditor/main/index_loader.html.deploy index 712aa7494..d723ba692 100644 --- a/apps/documenteditor/main/index_loader.html.deploy +++ b/apps/documenteditor/main/index_loader.html.deploy @@ -315,6 +315,7 @@ +
    diff --git a/apps/documenteditor/main/locale/en.json b/apps/documenteditor/main/locale/en.json index bc0a1cf71..5ed3adbbf 100644 --- a/apps/documenteditor/main/locale/en.json +++ b/apps/documenteditor/main/locale/en.json @@ -1419,6 +1419,7 @@ "DE.Views.DocumentHolder.txtUngroup": "Ungroup", "DE.Views.DocumentHolder.updateStyleText": "Update %1 style", "DE.Views.DocumentHolder.vertAlignText": "Vertical Alignment", + "DE.Views.DocumentHolder.textFromStorage": "From Storage", "DE.Views.DropcapSettingsAdvanced.strBorders": "Borders & Fill", "DE.Views.DropcapSettingsAdvanced.strDropcap": "Drop Cap", "DE.Views.DropcapSettingsAdvanced.strMargins": "Margins", @@ -1631,6 +1632,7 @@ "DE.Views.ImageSettings.txtThrough": "Through", "DE.Views.ImageSettings.txtTight": "Tight", "DE.Views.ImageSettings.txtTopAndBottom": "Top and bottom", + "DE.Views.ImageSettings.textFromStorage": "From Storage", "DE.Views.ImageSettingsAdvanced.strMargins": "Text Padding", "DE.Views.ImageSettingsAdvanced.textAbsoluteWH": "Absolute", "DE.Views.ImageSettingsAdvanced.textAlignment": "Alignment", @@ -2008,6 +2010,8 @@ "DE.Views.ShapeSettings.txtTight": "Tight", "DE.Views.ShapeSettings.txtTopAndBottom": "Top and bottom", "DE.Views.ShapeSettings.txtWood": "Wood", + "DE.Views.ShapeSettings.textFromStorage": "From Storage", + "DE.Views.ShapeSettings.textSelectImage": "Select Picture", "DE.Views.SignatureSettings.notcriticalErrorTitle": "Warning", "DE.Views.SignatureSettings.strDelete": "Remove Signature", "DE.Views.SignatureSettings.strDetails": "Signature Details", @@ -2425,5 +2429,7 @@ "DE.Views.WatermarkSettingsDialog.textTransparency": "Semitransparent", "DE.Views.WatermarkSettingsDialog.textUnderline": "Underline", "DE.Views.WatermarkSettingsDialog.tipFontName": "Font Name", - "DE.Views.WatermarkSettingsDialog.tipFontSize": "Font Size" + "DE.Views.WatermarkSettingsDialog.tipFontSize": "Font Size", + "DE.Views.WatermarkSettingsDialog.textFromStorage": "From Storage", + "DE.Views.WatermarkSettingsDialog.textSelect": "Select Image" } \ No newline at end of file diff --git a/apps/documenteditor/main/locale/fi.json b/apps/documenteditor/main/locale/fi.json index 508962f5b..7da94b7ad 100644 --- a/apps/documenteditor/main/locale/fi.json +++ b/apps/documenteditor/main/locale/fi.json @@ -1122,7 +1122,7 @@ "DE.Views.ImageSettings.textEdit": "Muokkaa", "DE.Views.ImageSettings.textEditObject": "Muokkaa objektia", "DE.Views.ImageSettings.textFromFile": "Tiedostosta", - "DE.Views.ImageSettings.textFromUrl": "Verkko-osoitteesta", + "DE.Views.ImageSettings.textFromUrl": "URL-osoitteesta", "DE.Views.ImageSettings.textHeight": "Korkeus", "DE.Views.ImageSettings.textInsert": "Korvaa kuva", "DE.Views.ImageSettings.textOriginalSize": "Oletuskoko", diff --git a/apps/documenteditor/main/resources/less/filemenu.less b/apps/documenteditor/main/resources/less/filemenu.less index d81b84a87..8cf1d774f 100644 --- a/apps/documenteditor/main/resources/less/filemenu.less +++ b/apps/documenteditor/main/resources/less/filemenu.less @@ -196,6 +196,8 @@ .thumb { width: 102px; height: 128px; + background-repeat: no-repeat; + background-position: center; } .title { diff --git a/apps/documenteditor/mobile/app/controller/DocumentHolder.js b/apps/documenteditor/mobile/app/controller/DocumentHolder.js index fb4985cac..e5e84f61c 100644 --- a/apps/documenteditor/mobile/app/controller/DocumentHolder.js +++ b/apps/documenteditor/mobile/app/controller/DocumentHolder.js @@ -60,8 +60,10 @@ define([ _isEdit = false, _canReview = false, _inRevisionChange = false, + _isComments = false, _menuPos = [], - _timer = 0; + _timer = 0, + _canViewComments = true; return { models: [], @@ -95,12 +97,15 @@ define([ Common.NotificationCenter.on('api:disconnect', _.bind(me.onCoAuthoringDisconnect, me)); me.api.asc_registerCallback('asc_onCoAuthoringDisconnect', _.bind(me.onCoAuthoringDisconnect,me)); me.api.asc_registerCallback('asc_onShowRevisionsChange', _.bind(me.onApiShowChange, me)); + me.api.asc_registerCallback('asc_onShowComment', _.bind(me.onApiShowComment, me)); + me.api.asc_registerCallback('asc_onHideComment', _.bind(me.onApiHideComment, me)); me.api.asc_coAuthoringGetUsers(); }, setMode: function (mode) { _isEdit = mode.isEdit; _canReview = mode.canReview; + _canViewComments = mode.canViewComments; }, // When our application is ready, lets get started @@ -223,6 +228,13 @@ define([ getCollaboration.showModal(); getCollaboration.getView('Common.Views.Collaboration').showPage('#reviewing-settings-view', false); getCollaboration.getView('Common.Views.Collaboration').showPage('#change-view', false); + } else if ('viewcomment' == eventName) { + var getCollaboration = DE.getController('Common.Controllers.Collaboration'); + getCollaboration.showCommentModal(); + } else if ('addcomment' == eventName) { + _view.hideMenu(); + DE.getController('AddContainer').showModal(); + DE.getController('AddOther').getView('AddOther').showPageComment(false); } else if ('showActionSheet' == eventName && _actionSheets.length > 0) { _.delay(function () { _.each(_actionSheets, function (action) { @@ -431,6 +443,14 @@ define([ _inRevisionChange = sdkchange && sdkchange.length>0; }, + onApiShowComment: function(comments) { + _isComments = comments && comments.length>0; + }, + + onApiHideComment: function() { + _isComments = false; + }, + // Internal _openLink: function(url) { @@ -458,6 +478,12 @@ define([ icon: 'icon-copy' }); } + if (_canViewComments && _isComments && !_isEdit) { + arrItems.push({ + caption: me.menuViewComment, + event: 'viewcomment' + }); + } var isText = false, isTable = false, @@ -478,7 +504,7 @@ define([ lockedHeader = objectValue.get_Locked(); } - if (objectType == Asc.c_oAscTypeSelectElement.Text) { + if (objectType == Asc.c_oAscTypeSelectElement.Paragraph) { isText = true; lockedText = objectValue.get_Locked(); } else if (objectType == Asc.c_oAscTypeSelectElement.Image) { @@ -579,6 +605,22 @@ define([ }); } } + + if (_isComments && _canViewComments) { + arrItems.push({ + caption: me.menuViewComment, + event: 'viewcomment' + }); + } + + var isObject = isShape || isChart || isImage || isTable; + var hideAddComment = !_canViewComments || me.api.can_AddQuotedComment() === false || lockedText || lockedTable || lockedImage || lockedHeader || (!isText && isObject); + if (!hideAddComment) { + arrItems.push({ + caption: me.menuAddComment, + event: 'addcomment' + }); + } } } @@ -626,6 +668,8 @@ define([ menuSplit: 'Split Cell', menuDeleteTable: 'Delete Table', menuReviewChange: 'Review Change', + menuViewComment: 'View Comment', + menuAddComment: 'Add Comment', textCopyCutPasteActions: 'Copy, Cut and Paste Actions', errorCopyCutPaste: 'Copy, cut and paste actions using the context menu will be performed within the current file only.', textDoNotShowAgain: 'Don\'t show again' diff --git a/apps/documenteditor/mobile/app/controller/Main.js b/apps/documenteditor/mobile/app/controller/Main.js index ad3be8a53..7de2d59fe 100644 --- a/apps/documenteditor/mobile/app/controller/Main.js +++ b/apps/documenteditor/mobile/app/controller/Main.js @@ -253,6 +253,7 @@ define([ docInfo.put_CallbackUrl(this.editorConfig.callbackUrl); docInfo.put_Token(data.doc.token); docInfo.put_Permissions(_permissions); + docInfo.put_EncryptedInfo(this.editorConfig.encryptionKeys); var type = /^(?:(pdf|djvu|xps))$/.exec(data.doc.fileType); if (type && typeof type[1] === 'string') { @@ -528,7 +529,7 @@ define([ me.api.asc_SetTrackRevisions(me.appOptions.isReviewOnly || Common.localStorage.getBool("de-mobile-track-changes-" + (me.appOptions.fileKey || ''))); /** coauthoring begin **/ - this.isLiveCommenting = Common.localStorage.getBool("de-settings-livecomment", true); + this.isLiveCommenting = Common.localStorage.getBool("de-mobile-settings-livecomment", true); var resolved = Common.localStorage.getBool("de-settings-resolvedcomment", true); this.isLiveCommenting ? this.api.asc_showComments(resolved) : this.api.asc_hideComments(); /** coauthoring end **/ @@ -762,7 +763,10 @@ define([ me.appOptions.canHistoryClose = me.editorConfig.canHistoryClose; me.appOptions.canUseMailMerge = me.appOptions.canLicense && me.appOptions.canEdit && !me.appOptions.isDesktopApp; me.appOptions.canSendEmailAddresses = me.appOptions.canLicense && me.editorConfig.canSendEmailAddresses && me.appOptions.canEdit && me.appOptions.canCoAuthoring; - me.appOptions.canComments = me.appOptions.canLicense && !((typeof (me.editorConfig.customization) == 'object') && me.editorConfig.customization.comments===false); + me.appOptions.canComments = me.appOptions.canLicense && (me.permissions.comment===undefined ? me.appOptions.isEdit : me.permissions.comment) && (me.editorConfig.mode !== 'view'); + me.appOptions.canComments = me.appOptions.canComments && !((typeof (me.editorConfig.customization) == 'object') && me.editorConfig.customization.comments===false); + me.appOptions.canViewComments = me.appOptions.canComments || !((typeof (me.editorConfig.customization) == 'object') && me.editorConfig.customization.comments===false); + me.appOptions.canEditComments = me.appOptions.isOffline || !(typeof (me.editorConfig.customization) == 'object' && me.editorConfig.customization.commentAuthorOnly); me.appOptions.canChat = me.appOptions.canLicense && !me.appOptions.isOffline && !((typeof (me.editorConfig.customization) == 'object') && me.editorConfig.customization.chat===false); me.appOptions.canEditStyles = me.appOptions.canLicense && me.appOptions.canEdit; me.appOptions.canPrint = (me.permissions.print !== false); diff --git a/apps/documenteditor/mobile/app/controller/Settings.js b/apps/documenteditor/mobile/app/controller/Settings.js index a1205cd8f..c058d65bd 100644 --- a/apps/documenteditor/mobile/app/controller/Settings.js +++ b/apps/documenteditor/mobile/app/controller/Settings.js @@ -237,7 +237,7 @@ define([ $('#settings-hidden-borders input:checkbox').attr('checked', (Common.localStorage.getItem("de-mobile-hidden-borders") == 'true') ? true : false); $('#settings-hidden-borders input:checkbox').single('change', _.bind(me.onShowTableEmptyLine, me)); $('#settings-orthography').single('click', _.bind(me.onOrthographyCheck, me)); - var displayComments = Common.localStorage.getBool("de-settings-livecomment", true); + var displayComments = Common.localStorage.getBool("de-mobile-settings-livecomment", true); $('#settings-display-comments input:checkbox').attr('checked', displayComments); $('#settings-display-comments input:checkbox').single('change', _.bind(me.onChangeDisplayComments, me)); var displayResolved = Common.localStorage.getBool("de-settings-resolvedcomment", true); @@ -285,11 +285,11 @@ define([ this.api.asc_showComments(resolved); $("#settings-display-resolved").removeClass("disabled"); } - Common.localStorage.setBool("de-settings-livecomment", displayComments); + Common.localStorage.setBool("de-mobile-settings-livecomment", displayComments); }, onChangeDisplayResolved: function(e) { - var displayComments = Common.localStorage.getBool("de-settings-livecomment"); + var displayComments = Common.localStorage.getBool("de-mobile-settings-livecomment"); if (displayComments) { var resolved = $(e.currentTarget).is(':checked'); if (this.api) { diff --git a/apps/documenteditor/mobile/app/controller/add/AddContainer.js b/apps/documenteditor/mobile/app/controller/add/AddContainer.js index 39c5c7608..c1d6bc969 100644 --- a/apps/documenteditor/mobile/app/controller/add/AddContainer.js +++ b/apps/documenteditor/mobile/app/controller/add/AddContainer.js @@ -75,6 +75,7 @@ define([ uiApp.closeModal(); me._showByStack(Common.SharedSettings.get('phone')); + uiApp.showTab('#add-other'); DE.getController('Toolbar').getView('Toolbar').hideSearch(); }, @@ -92,6 +93,7 @@ define([ addViews.push({ caption: me.textTable, id: 'add-table', + icon: 'icon-add-table', layout: DE.getController('AddTable') .getView('AddTable') .rootLayout() @@ -100,6 +102,7 @@ define([ addViews.push({ caption: me.textShape, id: 'add-shape', + icon: 'icon-add-shape', layout: DE.getController('AddShape') .getView('AddShape') .rootLayout() @@ -108,6 +111,7 @@ define([ addViews.push({ caption: me.textImage, id: 'add-image', + icon: 'icon-add-image', layout: DE.getController('AddImage') .getView('AddImage') .rootLayout() @@ -116,6 +120,7 @@ define([ addViews.push({ caption: me.textOther, id: 'add-other', + icon: 'icon-add-other', layout: DE.getController('AddOther') .getView('AddOther') .rootLayout() @@ -153,7 +158,7 @@ define([ $layoutNavbar .find('.toolbar-inner') .append( - '' + layout.caption + '' + '' ); }); $layoutNavbar @@ -168,7 +173,7 @@ define([ $layoutNavbar .find('.buttons-row') .append( - '' + layout.caption + '' + '' ); }); } @@ -179,10 +184,7 @@ define([ var $layoutPages = $( '
    ' + '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + + '
    ' + '
    ' + '
    ' + '
    ' @@ -247,7 +249,8 @@ define([ } me.rootView = uiApp.addView('.add-root-view', { - dynamicNavbar: true + dynamicNavbar: true, + domCache: true }); Common.NotificationCenter.trigger('addcontainer:show'); diff --git a/apps/documenteditor/mobile/app/controller/add/AddOther.js b/apps/documenteditor/mobile/app/controller/add/AddOther.js index 5d912e05f..24f9b2553 100644 --- a/apps/documenteditor/mobile/app/controller/add/AddOther.js +++ b/apps/documenteditor/mobile/app/controller/add/AddOther.js @@ -81,14 +81,61 @@ define([ me.api = api; }, + setMode: function (mode) { + this.view = this.getView('AddOther'); + this.view.canViewComments = mode.canViewComments; + }, + onLaunch: function () { this.createView('AddOther').render(); }, initEvents: function () { - var me = this; - $('#add-other-pagebreak').single('click', _.bind(me.onPageBreak, me)); - $('#add-other-columnbreak').single('click', _.bind(me.onColumnBreak, me)); + this.view.hideInsertComments = this.isHideInsertComment(); + }, + + isHideInsertComment: function() { + var stack = this.api.getSelectedElements(); + var isText = false, + isTable = false, + isImage = false, + isChart = false, + isShape = false, + isLink = false, + lockedText = false, + lockedTable = false, + lockedImage = false, + lockedHeader = false; + _.each(stack, function (item) { + var objectType = item.get_ObjectType(), + objectValue = item.get_ObjectValue(); + if (objectType == Asc.c_oAscTypeSelectElement.Header) { + lockedHeader = objectValue.get_Locked(); + } + if (objectType == Asc.c_oAscTypeSelectElement.Paragraph) { + isText = true; + lockedText = objectValue.get_Locked(); + } else if (objectType == Asc.c_oAscTypeSelectElement.Image) { + lockedImage = objectValue.get_Locked(); + if (objectValue && objectValue.get_ChartProperties()) { + isChart = true; + } else if (objectType && objectValue.get_ShapeProperties()) { + isShape = true; + } else { + isImage = true; + } + } else if (objectType == Asc.c_oAscTypeSelectElement.Table) { + isTable = true; + lockedTable = objectValue.get_Locked(); + } else if (objectType == Asc.c_oAscTypeSelectElement.Hyperlink) { + isLink = true; + } + }); + if (stack.length > 0) { + var isObject = isShape || isChart || isImage || isTable; + return (this.api.can_AddQuotedComment() === false || lockedText || lockedTable || lockedImage || lockedHeader || (!isText && isObject)); + } + return true; }, onPageShow: function (view, pageId) { @@ -108,10 +155,51 @@ define([ } } else if (pageId == '#addother-insert-footnote') { me.initInsertFootnote(); + } else if (pageId === "#addother-insert-comment") { + me.initInsertComment(false); + } else if (pageId === "#addother-insert-break") { + $('#add-other-pagebreak').single('click', _.bind(me.onPageBreak, me)); + $('#add-other-columnbreak').single('click', _.bind(me.onColumnBreak, me)); } }, // Handlers + initInsertComment: function (documentFlag) { + var comment = DE.getController('Common.Controllers.Collaboration').getCommentInfo(); + if (comment) { + this.getView('AddOther').renderComment(comment); + $('#done-comment').single('click', _.bind(this.onDoneComment, this, documentFlag)); + $('.back-from-add-comment').single('click', _.bind(function () { + if ($('#comment-text').val().length > 0) { + uiApp.modal({ + title: '', + text: this.textDeleteDraft, + buttons: [ + { + text: this.textCancel + }, + { + text: this.textDelete, + bold: true, + onClick: function () { + DE.getController('AddContainer').rootView.router.back(); + } + }] + }) + } else { + DE.getController('AddContainer').rootView.router.back(); + } + }, this)); + } + }, + + onDoneComment: function(documentFlag) { + var value = $('#comment-text').val(); + if (value.length > 0) { + DE.getController('Common.Controllers.Collaboration').onAddNewComment(value, documentFlag); + DE.getController('AddContainer').hideModal(); + } + }, initInsertFootnote: function () { var me = this, @@ -367,7 +455,11 @@ define([ txtNotUrl: 'This field should be a URL in the format \"http://www.example.com\"', textBottomOfPage: 'Bottom Of Page', - textBelowText: 'Below Text' + textBelowText: 'Below Text', + textDeleteDraft: 'Do you really want to delete draft?', + textCancel: 'Cancel', + //textContinue: 'Continue', + textDelete: 'Delete' } })(), DE.Controllers.AddOther || {})) diff --git a/apps/documenteditor/mobile/app/controller/edit/EditContainer.js b/apps/documenteditor/mobile/app/controller/edit/EditContainer.js index fd9f13176..02ae3cb64 100644 --- a/apps/documenteditor/mobile/app/controller/edit/EditContainer.js +++ b/apps/documenteditor/mobile/app/controller/edit/EditContainer.js @@ -239,10 +239,7 @@ define([ var $layoutPages = $( '
    ' + '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + + '
    ' + '
    ' + '
    ' + '
    ' diff --git a/apps/documenteditor/mobile/app/template/AddOther.template b/apps/documenteditor/mobile/app/template/AddOther.template index 76c91c506..b67fdcf51 100644 --- a/apps/documenteditor/mobile/app/template/AddOther.template +++ b/apps/documenteditor/mobile/app/template/AddOther.template @@ -2,38 +2,14 @@
    +
    + + + + + + \ No newline at end of file diff --git a/apps/documenteditor/mobile/app/template/EditChart.template b/apps/documenteditor/mobile/app/template/EditChart.template index c420cb543..9041d6a12 100644 --- a/apps/documenteditor/mobile/app/template/EditChart.template +++ b/apps/documenteditor/mobile/app/template/EditChart.template @@ -303,9 +303,9 @@
    <% if (phone) { %><% } %>
    +
    -
    -
    +
    <% _.each(types, function(row) { %>
      @@ -317,7 +317,7 @@
    <% }); %>
    -
    +
    @@ -353,7 +353,7 @@
    -
    +
    diff --git a/apps/documenteditor/mobile/app/template/EditShape.template b/apps/documenteditor/mobile/app/template/EditShape.template index 06c6c5dee..9817a01c9 100644 --- a/apps/documenteditor/mobile/app/template/EditShape.template +++ b/apps/documenteditor/mobile/app/template/EditShape.template @@ -335,8 +335,7 @@
    -
    -
    +
    @@ -389,7 +388,6 @@
    -
    diff --git a/apps/documenteditor/mobile/app/template/EditTable.template b/apps/documenteditor/mobile/app/template/EditTable.template index 825b2fdff..45d5b1fe0 100644 --- a/apps/documenteditor/mobile/app/template/EditTable.template +++ b/apps/documenteditor/mobile/app/template/EditTable.template @@ -250,8 +250,7 @@
    -
    -
    +
      @@ -331,7 +330,6 @@
    -
    diff --git a/apps/documenteditor/mobile/app/view/DocumentHolder.js b/apps/documenteditor/mobile/app/view/DocumentHolder.js index 06e57250c..e06d16bcf 100644 --- a/apps/documenteditor/mobile/app/view/DocumentHolder.js +++ b/apps/documenteditor/mobile/app/view/DocumentHolder.js @@ -126,11 +126,15 @@ define([ }, hideMenu: function () { - $('#' + _anchorId) - .css('left', -1000) - .css('top', -1000); + if ($('.document-menu').length > 0) { + $('#' + _anchorId) + .css('left', -1000) + .css('top', -1000); - uiApp.closeModal('.document-menu.modal-in'); + uiApp.closeModal('.document-menu.modal-in'); + } else if ($('.actions-modal').length > 0) { + uiApp.closeModal('.actions-modal.modal-in'); + } } } })()); diff --git a/apps/documenteditor/mobile/app/view/add/AddOther.js b/apps/documenteditor/mobile/app/view/add/AddOther.js index c5c1afd41..61947bff8 100644 --- a/apps/documenteditor/mobile/app/view/add/AddOther.js +++ b/apps/documenteditor/mobile/app/view/add/AddOther.js @@ -66,10 +66,16 @@ define([ initEvents: function () { var me = this; - $('#add-other-section').single('click', _.bind(me.showSectionBreak, me)); $('#add-other-link').single('click', _.bind(me.showLink, me)); $('#add-other-pagenumber').single('click', _.bind(me.showPagePosition, me)); $('#add-other-footnote').single('click', _.bind(me.showPageFootnote, me)); + $('#add-other-break').single('click', _.bind(me.showPageBreak, me)); + if (this.hideInsertComments) { + $('#item-comment').hide(); + } else { + $('#item-comment').show(); + $('#add-other-comment').single('click', _.bind(me.showPageComment, me)); + } me.initControls(); }, @@ -87,6 +93,9 @@ define([ rootLayout: function () { if (this.layout) { + if (!this.canViewComments) { + this.layout.find('#addother-root-view #item-comment').remove(); + } return this.layout .find('#addother-root-view') .html(); @@ -119,6 +128,11 @@ define([ } }, + showPageBreak: function() { + this.showPage('#addother-insert-break'); + $('#add-other-section').single('click', _.bind(this.showSectionBreak, this)); + }, + showSectionBreak: function () { this.showPage('#addother-sectionbreak'); }, @@ -143,6 +157,46 @@ define([ this.showPage('#addother-insert-footnote'); }, + showPageComment: function(animate) { + this.showPage('#addother-insert-comment', animate); + }, + + renderComment: function(comment) { + var me = this; + _.delay(function () { + var $commentInfo = $('#comment-info'); + var template = [ + '<% if (android) { %>
    <%= comment.userInitials %>
    <% } %>', + '
    <%= comment.username %>
    ', + '
    <%= comment.date %>
    ', + '<% if (android) { %>
    <% } %>', + '
    ' + ].join(''); + var insert = _.template(template)({ + android: Framework7.prototype.device.android, + comment: comment, + textAddComment: me.textAddComment + }); + $commentInfo.html(insert); + _.defer(function () { + var $textarea = $('.comment-textarea')[0]; + var $btnAddComment = $('#done-comment'); + $btnAddComment.addClass('disabled'); + $textarea.focus(); + $textarea.oninput = function () { + if ($textarea.value.length < 1) { + if (!$btnAddComment.hasClass('disabled')) + $btnAddComment.addClass('disabled'); + } else { + if ($btnAddComment.hasClass('disabled')) { + $btnAddComment.removeClass('disabled'); + } + } + }; + }); + }, 100); + }, + renderNumFormat: function (dataFormat, selectFormat) { var $listFormat = $('#list-format-footnote ul'), items = []; @@ -221,8 +275,11 @@ define([ textInsertFootnote: 'Insert Footnote', textFormat: 'Format', textStartFrom: 'Start At', - textLocation: 'Location' - + textLocation: 'Location', + textComment: 'Comment', + textAddComment: 'Add Comment', + textDone: 'Done', + textBreak: 'Break' } })(), DE.Views.AddOther || {})) diff --git a/apps/documenteditor/mobile/locale/en.json b/apps/documenteditor/mobile/locale/en.json index e3723efbd..91156dc42 100644 --- a/apps/documenteditor/mobile/locale/en.json +++ b/apps/documenteditor/mobile/locale/en.json @@ -1,541 +1,574 @@ -{ - "Common.Controllers.Collaboration.textAtLeast": "at least", - "Common.Controllers.Collaboration.textAuto": "auto", - "Common.Controllers.Collaboration.textBaseline": "Baseline", - "Common.Controllers.Collaboration.textBold": "Bold", - "Common.Controllers.Collaboration.textBreakBefore": "Page break before", - "Common.Controllers.Collaboration.textCaps": "All caps", - "Common.Controllers.Collaboration.textCenter": "Align center", - "Common.Controllers.Collaboration.textChart": "Chart", - "Common.Controllers.Collaboration.textColor": "Font color", - "Common.Controllers.Collaboration.textContextual": "Don't add interval between paragraphs of the same style", - "Common.Controllers.Collaboration.textDeleted": "Deleted:", - "Common.Controllers.Collaboration.textDStrikeout": "Double strikeout", - "Common.Controllers.Collaboration.textEditUser": "Users who are editing the file:", - "Common.Controllers.Collaboration.textEquation": "Equation", - "Common.Controllers.Collaboration.textExact": "exactly", - "Common.Controllers.Collaboration.textFirstLine": "First line", - "Common.Controllers.Collaboration.textFormatted": "Formatted", - "Common.Controllers.Collaboration.textHighlight": "Highlight color", - "Common.Controllers.Collaboration.textImage": "Image", - "Common.Controllers.Collaboration.textIndentLeft": "Indent left", - "Common.Controllers.Collaboration.textIndentRight": "Indent right", - "Common.Controllers.Collaboration.textInserted": "Inserted:", - "Common.Controllers.Collaboration.textItalic": "Italic", - "Common.Controllers.Collaboration.textJustify": "Align justify", - "Common.Controllers.Collaboration.textKeepLines": "Keep lines together", - "Common.Controllers.Collaboration.textKeepNext": "Keep with next", - "Common.Controllers.Collaboration.textLeft": "Align left", - "Common.Controllers.Collaboration.textLineSpacing": "Line Spacing: ", - "Common.Controllers.Collaboration.textMultiple": "multiple", - "Common.Controllers.Collaboration.textNoBreakBefore": "No page break before", - "Common.Controllers.Collaboration.textNoContextual": "Add interval between paragraphs of the same style", - "Common.Controllers.Collaboration.textNoKeepLines": "Don't keep lines together", - "Common.Controllers.Collaboration.textNoKeepNext": "Don't keep with next", - "Common.Controllers.Collaboration.textNot": "Not", - "Common.Controllers.Collaboration.textNoWidow": "No widow control", - "Common.Controllers.Collaboration.textNum": "Change numbering", - "Common.Controllers.Collaboration.textParaDeleted": "Paragraph Deleted", - "Common.Controllers.Collaboration.textParaFormatted": "Paragraph Formatted", - "Common.Controllers.Collaboration.textParaInserted": "Paragraph Inserted", - "Common.Controllers.Collaboration.textParaMoveFromDown": "Moved Down:", - "Common.Controllers.Collaboration.textParaMoveFromUp": "Moved Up:", - "Common.Controllers.Collaboration.textParaMoveTo": "Moved:", - "Common.Controllers.Collaboration.textPosition": "Position", - "Common.Controllers.Collaboration.textRight": "Align right", - "Common.Controllers.Collaboration.textShape": "Shape", - "Common.Controllers.Collaboration.textShd": "Background color", - "Common.Controllers.Collaboration.textSmallCaps": "Small caps", - "Common.Controllers.Collaboration.textSpacing": "Spacing", - "Common.Controllers.Collaboration.textSpacingAfter": "Spacing after", - "Common.Controllers.Collaboration.textSpacingBefore": "Spacing before", - "Common.Controllers.Collaboration.textStrikeout": "Strikeout", - "Common.Controllers.Collaboration.textSubScript": "Subscript", - "Common.Controllers.Collaboration.textSuperScript": "Superscript", - "Common.Controllers.Collaboration.textTableChanged": "Table Settings Changed", - "Common.Controllers.Collaboration.textTableRowsAdd": "Table Rows Added", - "Common.Controllers.Collaboration.textTableRowsDel": "Table Rows Deleted", - "Common.Controllers.Collaboration.textTabs": "Change tabs", - "Common.Controllers.Collaboration.textUnderline": "Underline", - "Common.Controllers.Collaboration.textWidow": "Widow control", - "Common.UI.ThemeColorPalette.textCustomColors": "Custom Colors", - "Common.UI.ThemeColorPalette.textStandartColors": "Standard Colors", - "Common.UI.ThemeColorPalette.textThemeColors": "Theme Colors", - "Common.Utils.Metric.txtCm": "cm", - "Common.Utils.Metric.txtPt": "pt", - "Common.Views.Collaboration.textAcceptAllChanges": "Accept All Changes", - "Common.Views.Collaboration.textBack": "Back", - "Common.Views.Collaboration.textChange": "Review Change", - "Common.Views.Collaboration.textCollaboration": "Collaboration", - "Common.Views.Collaboration.textDisplayMode": "Display Mode", - "Common.Views.Collaboration.textEditUsers": "Users", - "Common.Views.Collaboration.textFinal": "Final", - "Common.Views.Collaboration.textMarkup": "Markup", - "Common.Views.Collaboration.textNoComments": "This document doesn't contain comments", - "Common.Views.Collaboration.textOriginal": "Original", - "Common.Views.Collaboration.textRejectAllChanges": "Reject All Changes", - "Common.Views.Collaboration.textReview": "Track Changes", - "Common.Views.Collaboration.textReviewing": "Review", - "Common.Views.Collaboration.textСomments": "Сomments", - "DE.Controllers.AddContainer.textImage": "Image", - "DE.Controllers.AddContainer.textOther": "Other", - "DE.Controllers.AddContainer.textShape": "Shape", - "DE.Controllers.AddContainer.textTable": "Table", - "DE.Controllers.AddImage.textEmptyImgUrl": "You need to specify image URL.", - "DE.Controllers.AddImage.txtNotUrl": "This field should be a URL in the 'http://www.example.com' format", - "DE.Controllers.AddOther.textBelowText": "Below Text", - "DE.Controllers.AddOther.textBottomOfPage": "Bottom Of Page", - "DE.Controllers.AddOther.txtNotUrl": "This field should be a URL in the 'http://www.example.com' format", - "DE.Controllers.AddTable.textCancel": "Cancel", - "DE.Controllers.AddTable.textColumns": "Columns", - "DE.Controllers.AddTable.textRows": "Rows", - "DE.Controllers.AddTable.textTableSize": "Table Size", - "DE.Controllers.DocumentHolder.errorCopyCutPaste": "Copy, cut and paste actions using the context menu will be performed within the current file only.", - "DE.Controllers.DocumentHolder.menuAddLink": "Add Link", - "DE.Controllers.DocumentHolder.menuCopy": "Copy", - "DE.Controllers.DocumentHolder.menuCut": "Cut", - "DE.Controllers.DocumentHolder.menuDelete": "Delete", - "DE.Controllers.DocumentHolder.menuDeleteTable": "Delete Table", - "DE.Controllers.DocumentHolder.menuEdit": "Edit", - "DE.Controllers.DocumentHolder.menuMerge": "Merge Cells", - "DE.Controllers.DocumentHolder.menuMore": "More", - "DE.Controllers.DocumentHolder.menuOpenLink": "Open Link", - "DE.Controllers.DocumentHolder.menuPaste": "Paste", - "DE.Controllers.DocumentHolder.menuReview": "Review", - "DE.Controllers.DocumentHolder.menuReviewChange": "Review Change", - "DE.Controllers.DocumentHolder.menuSplit": "Split Cell", - "DE.Controllers.DocumentHolder.sheetCancel": "Cancel", - "DE.Controllers.DocumentHolder.textCancel": "Cancel", - "DE.Controllers.DocumentHolder.textColumns": "Columns", - "DE.Controllers.DocumentHolder.textCopyCutPasteActions": "Copy, Cut and Paste Actions", - "DE.Controllers.DocumentHolder.textDoNotShowAgain": "Do not show again", - "DE.Controllers.DocumentHolder.textGuest": "Guest", - "DE.Controllers.DocumentHolder.textRows": "Rows", - "DE.Controllers.EditContainer.textChart": "Chart", - "DE.Controllers.EditContainer.textFooter": "Footer", - "DE.Controllers.EditContainer.textHeader": "Header", - "DE.Controllers.EditContainer.textHyperlink": "Hyperlink", - "DE.Controllers.EditContainer.textImage": "Image", - "DE.Controllers.EditContainer.textParagraph": "Paragraph", - "DE.Controllers.EditContainer.textSettings": "Settings", - "DE.Controllers.EditContainer.textShape": "Shape", - "DE.Controllers.EditContainer.textTable": "Table", - "DE.Controllers.EditContainer.textText": "Text", - "DE.Controllers.EditImage.textEmptyImgUrl": "You need to specify image URL.", - "DE.Controllers.EditImage.txtNotUrl": "This field should be a URL in the 'http://www.example.com' format", - "DE.Controllers.EditText.textAuto": "Auto", - "DE.Controllers.EditText.textFonts": "Fonts", - "DE.Controllers.EditText.textPt": "pt", - "DE.Controllers.Main.advDRMEnterPassword": "Enter your password:", - "DE.Controllers.Main.advDRMOptions": "Protected File", - "DE.Controllers.Main.advDRMPassword": "Password", - "DE.Controllers.Main.advTxtOptions": "Choose TXT Options", - "DE.Controllers.Main.applyChangesTextText": "Loading data...", - "DE.Controllers.Main.applyChangesTitleText": "Loading Data", - "DE.Controllers.Main.closeButtonText": "Close File", - "DE.Controllers.Main.convertationTimeoutText": "Conversion timeout exceeded.", - "DE.Controllers.Main.criticalErrorExtText": "Press 'OK' to return to document list.", - "DE.Controllers.Main.criticalErrorTitle": "Error", - "DE.Controllers.Main.downloadErrorText": "Download failed.", - "DE.Controllers.Main.downloadMergeText": "Downloading...", - "DE.Controllers.Main.downloadMergeTitle": "Downloading", - "DE.Controllers.Main.downloadTextText": "Downloading document...", - "DE.Controllers.Main.downloadTitleText": "Downloading Document", - "DE.Controllers.Main.errorAccessDeny": "You are trying to perform an action you do not have rights for.
    Please contact your Document Server administrator.", - "DE.Controllers.Main.errorBadImageUrl": "Image URL is incorrect", - "DE.Controllers.Main.errorCoAuthoringDisconnect": "Server connection lost. You can't edit anymore.", - "DE.Controllers.Main.errorConnectToServer": "The document could not be saved. Please check connection settings or contact your administrator.
    When you click the 'OK' button, you will be prompted to download the document.", - "DE.Controllers.Main.errorDatabaseConnection": "External error.
    Database connection error. Please, contact support.", - "DE.Controllers.Main.errorDataEncrypted": "Encrypted changes have been received, they cannot be deciphered.", - "DE.Controllers.Main.errorDataRange": "Incorrect data range.", - "DE.Controllers.Main.errorDefaultMessage": "Error code: %1", - "DE.Controllers.Main.errorEditingDownloadas": "An error occurred during the work with the document.
    Use the 'Download' option to save the file backup copy to your computer hard drive.", - "DE.Controllers.Main.errorFilePassProtect": "The file is password protected and cannot be opened.", - "DE.Controllers.Main.errorFileSizeExceed": "The file size exceeds the limitation set for your server.
    Please contact your Document Server administrator for details.", - "DE.Controllers.Main.errorKeyEncrypt": "Unknown key descriptor", - "DE.Controllers.Main.errorKeyExpire": "Key descriptor expired", - "DE.Controllers.Main.errorMailMergeLoadFile": "Loading the document failed. Please select a different file.", - "DE.Controllers.Main.errorMailMergeSaveFile": "Merge failed.", - "DE.Controllers.Main.errorProcessSaveResult": "Saving is failed.", - "DE.Controllers.Main.errorServerVersion": "The editor version has been updated. The page will be reloaded to apply the changes.", - "DE.Controllers.Main.errorStockChart": "Incorrect row order. To build a stock chart place the data on the sheet in the following order:
    opening price, max price, min price, closing price.", - "DE.Controllers.Main.errorUpdateVersion": "The file version has been changed. The page will be reloaded.", - "DE.Controllers.Main.errorUpdateVersionOnDisconnect": "Internet connection has been restored, and the file version has been changed.
    Before you can continue working, you need to download the file or copy its content to make sure nothing is lost, and then reload this page.", - "DE.Controllers.Main.errorUserDrop": "The file cannot be accessed right now.", - "DE.Controllers.Main.errorUsersExceed": "The number of users was exceeded", - "DE.Controllers.Main.errorViewerDisconnect": "Connection is lost. You can still view the document,
    but will not be able to download it until the connection is restored and page is reloaded.", - "DE.Controllers.Main.leavePageText": "You have unsaved changes in this document. Click 'Stay on this Page' to await the autosave of the document. Click 'Leave this Page' to discard all the unsaved changes.", - "DE.Controllers.Main.loadFontsTextText": "Loading data...", - "DE.Controllers.Main.loadFontsTitleText": "Loading Data", - "DE.Controllers.Main.loadFontTextText": "Loading data...", - "DE.Controllers.Main.loadFontTitleText": "Loading Data", - "DE.Controllers.Main.loadImagesTextText": "Loading images...", - "DE.Controllers.Main.loadImagesTitleText": "Loading Images", - "DE.Controllers.Main.loadImageTextText": "Loading image...", - "DE.Controllers.Main.loadImageTitleText": "Loading Image", - "DE.Controllers.Main.loadingDocumentTextText": "Loading document...", - "DE.Controllers.Main.loadingDocumentTitleText": "Loading document", - "DE.Controllers.Main.mailMergeLoadFileText": "Loading Data Source...", - "DE.Controllers.Main.mailMergeLoadFileTitle": "Loading Data Source", - "DE.Controllers.Main.notcriticalErrorTitle": "Warning", - "DE.Controllers.Main.openErrorText": "An error has occurred while opening the file.", - "DE.Controllers.Main.openTextText": "Opening document...", - "DE.Controllers.Main.openTitleText": "Opening Document", - "DE.Controllers.Main.printTextText": "Printing document...", - "DE.Controllers.Main.printTitleText": "Printing Document", - "DE.Controllers.Main.saveErrorText": "An error has occurred while saving the file.", - "DE.Controllers.Main.savePreparingText": "Preparing to save", - "DE.Controllers.Main.savePreparingTitle": "Preparing to save. Please wait...", - "DE.Controllers.Main.saveTextText": "Saving document...", - "DE.Controllers.Main.saveTitleText": "Saving Document", - "DE.Controllers.Main.scriptLoadError": "The connection is too slow, some of the components could not be loaded. Please reload the page.", - "DE.Controllers.Main.sendMergeText": "Sending Merge...", - "DE.Controllers.Main.sendMergeTitle": "Sending Merge", - "DE.Controllers.Main.splitDividerErrorText": "The number of rows must be a divisor of %1", - "DE.Controllers.Main.splitMaxColsErrorText": "The number of columns must be less than %1", - "DE.Controllers.Main.splitMaxRowsErrorText": "The number of rows must be less than %1", - "DE.Controllers.Main.textAnonymous": "Anonymous", - "DE.Controllers.Main.textBack": "Back", - "DE.Controllers.Main.textBuyNow": "Visit website", - "DE.Controllers.Main.textCancel": "Cancel", - "DE.Controllers.Main.textClose": "Close", - "DE.Controllers.Main.textContactUs": "Contact sales", - "DE.Controllers.Main.textCustomLoader": "Please note that according to the terms of the license you are not entitled to change the loader.
    Please contact our Sales Department to get a quote.", - "DE.Controllers.Main.textDone": "Done", - "DE.Controllers.Main.textLoadingDocument": "Loading document", - "DE.Controllers.Main.textNoLicenseTitle": "%1 connection limitation", - "DE.Controllers.Main.textOK": "OK", - "DE.Controllers.Main.textPaidFeature": "Paid feature", - "DE.Controllers.Main.textPassword": "Password", - "DE.Controllers.Main.textPreloader": "Loading... ", - "DE.Controllers.Main.textTryUndoRedo": "The Undo/Redo functions are disabled for the Fast co-editing mode.", - "DE.Controllers.Main.textUsername": "Username", - "DE.Controllers.Main.titleLicenseExp": "License expired", - "DE.Controllers.Main.titleServerVersion": "Editor updated", - "DE.Controllers.Main.titleUpdateVersion": "Version changed", - "DE.Controllers.Main.txtArt": "Your text here", - "DE.Controllers.Main.txtDiagramTitle": "Chart Title", - "DE.Controllers.Main.txtEditingMode": "Set editing mode...", - "DE.Controllers.Main.txtFooter": "Footer", - "DE.Controllers.Main.txtHeader": "Header", - "DE.Controllers.Main.txtProtected": "Once you enter the password and open the file, the current password to the file will be reset", - "DE.Controllers.Main.txtSeries": "Series", - "DE.Controllers.Main.txtStyle_footnote_text": "Footnote Text", - "DE.Controllers.Main.txtStyle_Heading_1": "Heading 1", - "DE.Controllers.Main.txtStyle_Heading_2": "Heading 2", - "DE.Controllers.Main.txtStyle_Heading_3": "Heading 3", - "DE.Controllers.Main.txtStyle_Heading_4": "Heading 4", - "DE.Controllers.Main.txtStyle_Heading_5": "Heading 5", - "DE.Controllers.Main.txtStyle_Heading_6": "Heading 6", - "DE.Controllers.Main.txtStyle_Heading_7": "Heading 7", - "DE.Controllers.Main.txtStyle_Heading_8": "Heading 8", - "DE.Controllers.Main.txtStyle_Heading_9": "Heading 9", - "DE.Controllers.Main.txtStyle_Intense_Quote": "Intense Quote", - "DE.Controllers.Main.txtStyle_List_Paragraph": "List Paragraph", - "DE.Controllers.Main.txtStyle_No_Spacing": "No Spacing", - "DE.Controllers.Main.txtStyle_Normal": "Normal", - "DE.Controllers.Main.txtStyle_Quote": "Quote", - "DE.Controllers.Main.txtStyle_Subtitle": "Subtitle", - "DE.Controllers.Main.txtStyle_Title": "Title", - "DE.Controllers.Main.txtXAxis": "X Axis", - "DE.Controllers.Main.txtYAxis": "Y Axis", - "DE.Controllers.Main.unknownErrorText": "Unknown error.", - "DE.Controllers.Main.unsupportedBrowserErrorText": "Your browser is not supported.", - "DE.Controllers.Main.uploadImageExtMessage": "Unknown image format.", - "DE.Controllers.Main.uploadImageFileCountMessage": "No images uploaded.", - "DE.Controllers.Main.uploadImageSizeMessage": "Maximium image size limit exceeded.", - "DE.Controllers.Main.uploadImageTextText": "Uploading image...", - "DE.Controllers.Main.uploadImageTitleText": "Uploading Image", - "DE.Controllers.Main.waitText": "Please, wait...", - "DE.Controllers.Main.warnLicenseExceeded": "The number of concurrent connections to the document server has been exceeded and the document will be opened for viewing only.
    Please contact your administrator for more information.", - "DE.Controllers.Main.warnLicenseExp": "Your license has expired.
    Please update your license and refresh the page.", - "DE.Controllers.Main.warnLicenseUsersExceeded": "The number of concurrent users has been exceeded and the document will be opened for viewing only.
    Please contact your administrator for more information.", - "DE.Controllers.Main.warnNoLicense": "This version of %1 editors has certain limitations for concurrent connections to the document server.
    If you need more please consider purchasing a commercial license.", - "DE.Controllers.Main.warnNoLicenseUsers": "This version of %1 editors has certain limitations for concurrent users.
    If you need more please consider purchasing a commercial license.", - "DE.Controllers.Main.warnProcessRightsChange": "You have been denied the right to edit the file.", - "DE.Controllers.Search.textNoTextFound": "Text not Found", - "DE.Controllers.Search.textReplaceAll": "Replace All", - "DE.Controllers.Settings.notcriticalErrorTitle": "Warning", - "DE.Controllers.Settings.txtLoading": "Loading...", - "DE.Controllers.Settings.unknownText": "Unknown", - "DE.Controllers.Settings.warnDownloadAs": "If you continue saving in this format all features except the text will be lost.
    Are you sure you want to continue?", - "DE.Controllers.Settings.warnDownloadAsRTF": "If you continue saving in this format some of the formatting might be lost.
    Are you sure you want to continue?", - "DE.Controllers.Settings.textCustomSize": "Custom Size", - "DE.Controllers.Toolbar.dlgLeaveMsgText": "You have unsaved changes in this document. Click 'Stay on this Page' to await the autosave of the document. Click 'Leave this Page' to discard all the unsaved changes.", - "DE.Controllers.Toolbar.dlgLeaveTitleText": "You leave the application", - "DE.Controllers.Toolbar.leaveButtonText": "Leave this Page", - "DE.Controllers.Toolbar.stayButtonText": "Stay on this Page", - "DE.Views.AddImage.textAddress": "Address", - "DE.Views.AddImage.textBack": "Back", - "DE.Views.AddImage.textFromLibrary": "Picture from Library", - "DE.Views.AddImage.textFromURL": "Picture from URL", - "DE.Views.AddImage.textImageURL": "Image URL", - "DE.Views.AddImage.textInsertImage": "Insert Image", - "DE.Views.AddImage.textLinkSettings": "Link Settings", - "DE.Views.AddOther.textAddLink": "Add Link", - "DE.Views.AddOther.textBack": "Back", - "DE.Views.AddOther.textCenterBottom": "Center Bottom", - "DE.Views.AddOther.textCenterTop": "Center Top", - "DE.Views.AddOther.textColumnBreak": "Column Break", - "DE.Views.AddOther.textContPage": "Continuous Page", - "DE.Views.AddOther.textCurrentPos": "Current Position", - "DE.Views.AddOther.textDisplay": "Display", - "DE.Views.AddOther.textEvenPage": "Even Page", - "DE.Views.AddOther.textFootnote": "Footnote", - "DE.Views.AddOther.textFormat": "Format", - "DE.Views.AddOther.textInsert": "Insert", - "DE.Views.AddOther.textInsertFootnote": "Insert Footnote", - "DE.Views.AddOther.textLeftBottom": "Left Bottom", - "DE.Views.AddOther.textLeftTop": "Left Top", - "DE.Views.AddOther.textLink": "Link", - "DE.Views.AddOther.textLocation": "Location", - "DE.Views.AddOther.textNextPage": "Next Page", - "DE.Views.AddOther.textOddPage": "Odd Page", - "DE.Views.AddOther.textPageBreak": "Page Break", - "DE.Views.AddOther.textPageNumber": "Page Number", - "DE.Views.AddOther.textPosition": "Position", - "DE.Views.AddOther.textRightBottom": "Right Bottom", - "DE.Views.AddOther.textRightTop": "Right Top", - "DE.Views.AddOther.textSectionBreak": "Section Break", - "DE.Views.AddOther.textStartFrom": "Start At", - "DE.Views.AddOther.textTip": "Screen Tip", - "DE.Views.EditChart.textAddCustomColor": "Add Custom Color", - "DE.Views.EditChart.textAlign": "Align", - "DE.Views.EditChart.textBack": "Back", - "DE.Views.EditChart.textBackward": "Move Backward", - "DE.Views.EditChart.textBehind": "Behind", - "DE.Views.EditChart.textBorder": "Border", - "DE.Views.EditChart.textColor": "Color", - "DE.Views.EditChart.textCustomColor": "Custom Color", - "DE.Views.EditChart.textDistanceText": "Distance from Text", - "DE.Views.EditChart.textFill": "Fill", - "DE.Views.EditChart.textForward": "Move Forward", - "DE.Views.EditChart.textInFront": "In Front", - "DE.Views.EditChart.textInline": "Inline", - "DE.Views.EditChart.textMoveText": "Move with Text", - "DE.Views.EditChart.textOverlap": "Allow Overlap", - "DE.Views.EditChart.textRemoveChart": "Remove Chart", - "DE.Views.EditChart.textReorder": "Reorder", - "DE.Views.EditChart.textSize": "Size", - "DE.Views.EditChart.textSquare": "Square", - "DE.Views.EditChart.textStyle": "Style", - "DE.Views.EditChart.textThrough": "Through", - "DE.Views.EditChart.textTight": "Tight", - "DE.Views.EditChart.textToBackground": "Send to Background", - "DE.Views.EditChart.textToForeground": "Bring to Foreground", - "DE.Views.EditChart.textTopBottom": "Top and Bottom", - "DE.Views.EditChart.textType": "Type", - "DE.Views.EditChart.textWrap": "Wrap", - "DE.Views.EditHeader.textDiffFirst": "Different first page", - "DE.Views.EditHeader.textDiffOdd": "Different odd and even pages", - "DE.Views.EditHeader.textFrom": "Start at", - "DE.Views.EditHeader.textPageNumbering": "Page Numbering", - "DE.Views.EditHeader.textPrev": "Continue from previous section", - "DE.Views.EditHeader.textSameAs": "Link to Previous", - "DE.Views.EditHyperlink.textDisplay": "Display", - "DE.Views.EditHyperlink.textEdit": "Save Link", - "DE.Views.EditHyperlink.textLink": "Link", - "DE.Views.EditHyperlink.textRemove": "Remove Link", - "DE.Views.EditHyperlink.textTip": "Screen Tip", - "DE.Views.EditImage.textAddress": "Address", - "DE.Views.EditImage.textAlign": "Align", - "DE.Views.EditImage.textBack": "Back", - "DE.Views.EditImage.textBackward": "Move Backward", - "DE.Views.EditImage.textBehind": "Behind", - "DE.Views.EditImage.textDefault": "Actual Size", - "DE.Views.EditImage.textDistanceText": "Distance from Text", - "DE.Views.EditImage.textForward": "Move Forward", - "DE.Views.EditImage.textFromLibrary": "Picture from Library", - "DE.Views.EditImage.textFromURL": "Picture from URL", - "DE.Views.EditImage.textImageURL": "Image URL", - "DE.Views.EditImage.textInFront": "In Front", - "DE.Views.EditImage.textInline": "Inline", - "DE.Views.EditImage.textLinkSettings": "Link Settings", - "DE.Views.EditImage.textMoveText": "Move with Text", - "DE.Views.EditImage.textOverlap": "Allow Overlap", - "DE.Views.EditImage.textRemove": "Remove Image", - "DE.Views.EditImage.textReorder": "Reorder", - "DE.Views.EditImage.textReplace": "Replace", - "DE.Views.EditImage.textReplaceImg": "Replace Image", - "DE.Views.EditImage.textSquare": "Square", - "DE.Views.EditImage.textThrough": "Through", - "DE.Views.EditImage.textTight": "Tight", - "DE.Views.EditImage.textToBackground": "Send to Background", - "DE.Views.EditImage.textToForeground": "Bring to Foreground", - "DE.Views.EditImage.textTopBottom": "Top and Bottom", - "DE.Views.EditImage.textWrap": "Wrap", - "DE.Views.EditParagraph.textAddCustomColor": "Add Custom Color", - "DE.Views.EditParagraph.textAdvanced": "Advanced", - "DE.Views.EditParagraph.textAdvSettings": "Advanced settings", - "DE.Views.EditParagraph.textAfter": "After", - "DE.Views.EditParagraph.textAuto": "Auto", - "DE.Views.EditParagraph.textBack": "Back", - "DE.Views.EditParagraph.textBackground": "Background", - "DE.Views.EditParagraph.textBefore": "Before", - "DE.Views.EditParagraph.textCustomColor": "Custom Color", - "DE.Views.EditParagraph.textFirstLine": "First Line", - "DE.Views.EditParagraph.textFromText": "Distance from Text", - "DE.Views.EditParagraph.textKeepLines": "Keep Lines Together", - "DE.Views.EditParagraph.textKeepNext": "Keep with Next", - "DE.Views.EditParagraph.textOrphan": "Orphan Control", - "DE.Views.EditParagraph.textPageBreak": "Page Break Before", - "DE.Views.EditParagraph.textPrgStyles": "Paragraph styles", - "DE.Views.EditParagraph.textSpaceBetween": "Space Between Paragraphs", - "DE.Views.EditShape.textAddCustomColor": "Add Custom Color", - "DE.Views.EditShape.textAlign": "Align", - "DE.Views.EditShape.textBack": "Back", - "DE.Views.EditShape.textBackward": "Move Backward", - "DE.Views.EditShape.textBehind": "Behind", - "DE.Views.EditShape.textBorder": "Border", - "DE.Views.EditShape.textColor": "Color", - "DE.Views.EditShape.textCustomColor": "Custom Color", - "DE.Views.EditShape.textEffects": "Effects", - "DE.Views.EditShape.textFill": "Fill", - "DE.Views.EditShape.textForward": "Move Forward", - "DE.Views.EditShape.textFromText": "Distance from Text", - "DE.Views.EditShape.textInFront": "In Front", - "DE.Views.EditShape.textInline": "Inline", - "DE.Views.EditShape.textOpacity": "Opacity", - "DE.Views.EditShape.textOverlap": "Allow Overlap", - "DE.Views.EditShape.textRemoveShape": "Remove Shape", - "DE.Views.EditShape.textReorder": "Reorder", - "DE.Views.EditShape.textReplace": "Replace", - "DE.Views.EditShape.textSize": "Size", - "DE.Views.EditShape.textSquare": "Square", - "DE.Views.EditShape.textStyle": "Style", - "DE.Views.EditShape.textThrough": "Through", - "DE.Views.EditShape.textTight": "Tight", - "DE.Views.EditShape.textToBackground": "Send to Background", - "DE.Views.EditShape.textToForeground": "Bring to Foreground", - "DE.Views.EditShape.textTopAndBottom": "Top and Bottom", - "DE.Views.EditShape.textWithText": "Move with Text", - "DE.Views.EditShape.textWrap": "Wrap", - "DE.Views.EditTable.textAddCustomColor": "Add Custom Color", - "DE.Views.EditTable.textAlign": "Align", - "DE.Views.EditTable.textBack": "Back", - "DE.Views.EditTable.textBandedColumn": "Banded Column", - "DE.Views.EditTable.textBandedRow": "Banded Row", - "DE.Views.EditTable.textBorder": "Border", - "DE.Views.EditTable.textCellMargins": "Cell Margins", - "DE.Views.EditTable.textColor": "Color", - "DE.Views.EditTable.textCustomColor": "Custom Color", - "DE.Views.EditTable.textFill": "Fill", - "DE.Views.EditTable.textFirstColumn": "First Column", - "DE.Views.EditTable.textFlow": "Flow", - "DE.Views.EditTable.textFromText": "Distance from Text", - "DE.Views.EditTable.textHeaderRow": "Header Row", - "DE.Views.EditTable.textInline": "Inline", - "DE.Views.EditTable.textLastColumn": "Last Column", - "DE.Views.EditTable.textOptions": "Options", - "DE.Views.EditTable.textRemoveTable": "Remove Table", - "DE.Views.EditTable.textRepeatHeader": "Repeat as Header Row", - "DE.Views.EditTable.textResizeFit": "Resize to Fit Content", - "DE.Views.EditTable.textSize": "Size", - "DE.Views.EditTable.textStyle": "Style", - "DE.Views.EditTable.textStyleOptions": "Style Options", - "DE.Views.EditTable.textTableOptions": "Table Options", - "DE.Views.EditTable.textTotalRow": "Total Row", - "DE.Views.EditTable.textWithText": "Move with Text", - "DE.Views.EditTable.textWrap": "Wrap", - "DE.Views.EditText.textAddCustomColor": "Add Custom Color", - "DE.Views.EditText.textAdditional": "Additional", - "DE.Views.EditText.textAdditionalFormat": "Additional Formatting", - "DE.Views.EditText.textAllCaps": "All Caps", - "DE.Views.EditText.textAutomatic": "Automatic", - "DE.Views.EditText.textBack": "Back", - "DE.Views.EditText.textBullets": "Bullets", - "DE.Views.EditText.textCharacterBold": "B", - "DE.Views.EditText.textCharacterItalic": "I", - "DE.Views.EditText.textCharacterStrikethrough": "S", - "DE.Views.EditText.textCharacterUnderline": "U", - "DE.Views.EditText.textCustomColor": "Custom Color", - "DE.Views.EditText.textDblStrikethrough": "Double Strikethrough", - "DE.Views.EditText.textDblSuperscript": "Superscript", - "DE.Views.EditText.textFontColor": "Font Color", - "DE.Views.EditText.textFontColors": "Font Colors", - "DE.Views.EditText.textFonts": "Fonts", - "DE.Views.EditText.textHighlightColor": "Highlight Color", - "DE.Views.EditText.textHighlightColors": "Highlight Colors", - "DE.Views.EditText.textLetterSpacing": "Letter Spacing", - "DE.Views.EditText.textLineSpacing": "Line Spacing", - "DE.Views.EditText.textNone": "None", - "DE.Views.EditText.textNumbers": "Numbers", - "DE.Views.EditText.textSize": "Size", - "DE.Views.EditText.textSmallCaps": "Small Caps", - "DE.Views.EditText.textStrikethrough": "Strikethrough", - "DE.Views.EditText.textSubscript": "Subscript", - "DE.Views.Search.textCase": "Case sensitive", - "DE.Views.Search.textDone": "Done", - "DE.Views.Search.textFind": "Find", - "DE.Views.Search.textFindAndReplace": "Find and Replace", - "DE.Views.Search.textHighlight": "Highlight results", - "DE.Views.Search.textReplace": "Replace", - "DE.Views.Search.textSearch": "Search", - "DE.Views.Settings.textAbout": "About", - "DE.Views.Settings.textAddress": "address", - "DE.Views.Settings.textAdvancedSettings": "Application Settings", - "DE.Views.Settings.textApplication": "Application", - "DE.Views.Settings.textAuthor": "Author", - "DE.Views.Settings.textBack": "Back", - "DE.Views.Settings.textBottom": "Bottom", - "DE.Views.Settings.textCentimeter": "Centimeter", - "DE.Views.Settings.textCollaboration": "Collaboration", - "DE.Views.Settings.textColorSchemes": "Color Schemes", - "DE.Views.Settings.textComment": "Comment", - "DE.Views.Settings.textCommentingDisplay": "Commenting Display", - "DE.Views.Settings.textCreated": "Created", - "DE.Views.Settings.textCreateDate": "Creation date", - "DE.Views.Settings.textCustom": "Custom", - "DE.Views.Settings.textCustomSize": "Custom Size", - "DE.Views.Settings.textDisplayComments": "Comments", - "DE.Views.Settings.textDisplayResolvedComments": "Resolved Comments", - "DE.Views.Settings.textDocInfo": "Document Info", - "DE.Views.Settings.textDocTitle": "Document title", - "DE.Views.Settings.textDocumentFormats": "Document Formats", - "DE.Views.Settings.textDocumentSettings": "Document Settings", - "DE.Views.Settings.textDone": "Done", - "DE.Views.Settings.textDownload": "Download", - "DE.Views.Settings.textDownloadAs": "Download As...", - "DE.Views.Settings.textEditDoc": "Edit Document", - "DE.Views.Settings.textEmail": "email", - "DE.Views.Settings.textFind": "Find", - "DE.Views.Settings.textFindAndReplace": "Find and Replace", - "DE.Views.Settings.textFormat": "Format", - "DE.Views.Settings.textHelp": "Help", - "DE.Views.Settings.textHiddenTableBorders": "Hidden Table Borders", - "DE.Views.Settings.textInch": "Inch", - "DE.Views.Settings.textLandscape": "Landscape", - "DE.Views.Settings.textLastModified": "Last Modified", - "DE.Views.Settings.textLastModifiedBy": "Last Modified By", - "DE.Views.Settings.textLeft": "Left", - "DE.Views.Settings.textLoading": "Loading...", - "DE.Views.Settings.textLocation": "Location", - "DE.Views.Settings.textMargins": "Margins", - "DE.Views.Settings.textNoCharacters": "Nonprinting Characters", - "DE.Views.Settings.textOrientation": "Orientation", - "DE.Views.Settings.textOwner": "Owner", - "DE.Views.Settings.textPages": "Pages", - "DE.Views.Settings.textParagraphs": "Paragraphs", - "DE.Views.Settings.textPoint": "Point", - "DE.Views.Settings.textPortrait": "Portrait", - "DE.Views.Settings.textPoweredBy": "Powered by", - "DE.Views.Settings.textPrint": "Print", - "DE.Views.Settings.textReader": "Reader Mode", - "DE.Views.Settings.textReview": "Track Changes", - "DE.Views.Settings.textRight": "Right", - "DE.Views.Settings.textSettings": "Settings", - "DE.Views.Settings.textSpaces": "Spaces", - "DE.Views.Settings.textSpellcheck": "Spell Checking", - "DE.Views.Settings.textStatistic": "Statistic", - "DE.Views.Settings.textSubject": "Subject", - "DE.Views.Settings.textSymbols": "Symbols", - "DE.Views.Settings.textTel": "tel", - "DE.Views.Settings.textTitle": "Title", - "DE.Views.Settings.textTop": "Top", - "DE.Views.Settings.textUnitOfMeasurement": "Unit of Measurement", - "DE.Views.Settings.textUploaded": "Uploaded", - "DE.Views.Settings.textVersion": "Version", - "DE.Views.Settings.textWords": "Words", - "DE.Views.Settings.unknownText": "Unknown", - "DE.Views.Toolbar.textBack": "Back" +{ + "Common.Controllers.Collaboration.textAtLeast": "at least", + "Common.Controllers.Collaboration.textAuto": "auto", + "Common.Controllers.Collaboration.textBaseline": "Baseline", + "Common.Controllers.Collaboration.textBold": "Bold", + "Common.Controllers.Collaboration.textBreakBefore": "Page break before", + "Common.Controllers.Collaboration.textCaps": "All caps", + "Common.Controllers.Collaboration.textCenter": "Align center", + "Common.Controllers.Collaboration.textChart": "Chart", + "Common.Controllers.Collaboration.textColor": "Font color", + "Common.Controllers.Collaboration.textContextual": "Don't add interval between paragraphs of the same style", + "Common.Controllers.Collaboration.textDeleted": "Deleted:", + "Common.Controllers.Collaboration.textDStrikeout": "Double strikeout", + "Common.Controllers.Collaboration.textEditUser": "Users who are editing the file:", + "Common.Controllers.Collaboration.textCancel": "Cancel", + "Common.Controllers.Collaboration.textDone": "Done", + "Common.Controllers.Collaboration.textAddReply": "Add Reply", + "Common.Controllers.Collaboration.textEdit": "Edit", + "Common.Controllers.Collaboration.textResolve": "Resolve", + "Common.Controllers.Collaboration.textDeleteComment": "Delete comment", + "Common.Controllers.Collaboration.textDeleteReply": "Delete reply", + "Common.Controllers.Collaboration.textReopen": "Reopen", + "Common.Controllers.Collaboration.textMessageDeleteComment": "Do you really want to delete this comment?", + "Common.Controllers.Collaboration.textMessageDeleteReply": "Do you really want to delete this reply?", + "Common.Controllers.Collaboration.textYes": "Yes", + "Common.Controllers.Collaboration.textEquation": "Equation", + "Common.Controllers.Collaboration.textExact": "exactly", + "Common.Controllers.Collaboration.textFirstLine": "First line", + "Common.Controllers.Collaboration.textFormatted": "Formatted", + "Common.Controllers.Collaboration.textHighlight": "Highlight color", + "Common.Controllers.Collaboration.textImage": "Image", + "Common.Controllers.Collaboration.textIndentLeft": "Indent left", + "Common.Controllers.Collaboration.textIndentRight": "Indent right", + "Common.Controllers.Collaboration.textInserted": "Inserted:", + "Common.Controllers.Collaboration.textItalic": "Italic", + "Common.Controllers.Collaboration.textJustify": "Align justify", + "Common.Controllers.Collaboration.textKeepLines": "Keep lines together", + "Common.Controllers.Collaboration.textKeepNext": "Keep with next", + "Common.Controllers.Collaboration.textLeft": "Align left", + "Common.Controllers.Collaboration.textLineSpacing": "Line Spacing: ", + "Common.Controllers.Collaboration.textMultiple": "multiple", + "Common.Controllers.Collaboration.textNoBreakBefore": "No page break before", + "Common.Controllers.Collaboration.textNoContextual": "Add interval between paragraphs of the same style", + "Common.Controllers.Collaboration.textNoKeepLines": "Don't keep lines together", + "Common.Controllers.Collaboration.textNoKeepNext": "Don't keep with next", + "Common.Controllers.Collaboration.textNot": "Not", + "Common.Controllers.Collaboration.textNoWidow": "No widow control", + "Common.Controllers.Collaboration.textNum": "Change numbering", + "Common.Controllers.Collaboration.textParaDeleted": "Paragraph Deleted", + "Common.Controllers.Collaboration.textParaFormatted": "Paragraph Formatted", + "Common.Controllers.Collaboration.textParaInserted": "Paragraph Inserted", + "Common.Controllers.Collaboration.textParaMoveFromDown": "Moved Down:", + "Common.Controllers.Collaboration.textParaMoveFromUp": "Moved Up:", + "Common.Controllers.Collaboration.textParaMoveTo": "Moved:", + "Common.Controllers.Collaboration.textPosition": "Position", + "Common.Controllers.Collaboration.textRight": "Align right", + "Common.Controllers.Collaboration.textShape": "Shape", + "Common.Controllers.Collaboration.textShd": "Background color", + "Common.Controllers.Collaboration.textSmallCaps": "Small caps", + "Common.Controllers.Collaboration.textSpacing": "Spacing", + "Common.Controllers.Collaboration.textSpacingAfter": "Spacing after", + "Common.Controllers.Collaboration.textSpacingBefore": "Spacing before", + "Common.Controllers.Collaboration.textStrikeout": "Strikeout", + "Common.Controllers.Collaboration.textSubScript": "Subscript", + "Common.Controllers.Collaboration.textSuperScript": "Superscript", + "Common.Controllers.Collaboration.textTableChanged": "Table Settings Changed", + "Common.Controllers.Collaboration.textTableRowsAdd": "Table Rows Added", + "Common.Controllers.Collaboration.textTableRowsDel": "Table Rows Deleted", + "Common.Controllers.Collaboration.textTabs": "Change tabs", + "Common.Controllers.Collaboration.textUnderline": "Underline", + "Common.Controllers.Collaboration.textWidow": "Widow control", + "Common.Controllers.Collaboration.textDelete": "Delete", + "Common.Controllers.Collaboration.textNoChanges": "There are no changes.", + "Common.UI.ThemeColorPalette.textCustomColors": "Custom Colors", + "Common.UI.ThemeColorPalette.textStandartColors": "Standard Colors", + "Common.UI.ThemeColorPalette.textThemeColors": "Theme Colors", + "Common.Utils.Metric.txtCm": "cm", + "Common.Utils.Metric.txtPt": "pt", + "Common.Views.Collaboration.textAcceptAllChanges": "Accept All Changes", + "Common.Views.Collaboration.textBack": "Back", + "Common.Views.Collaboration.textChange": "Review Change", + "Common.Views.Collaboration.textCollaboration": "Collaboration", + "Common.Views.Collaboration.textDisplayMode": "Display Mode", + "Common.Views.Collaboration.textEditUsers": "Users", + "Common.Views.Collaboration.textFinal": "Final", + "Common.Views.Collaboration.textMarkup": "Markup", + "Common.Views.Collaboration.textNoComments": "This document doesn't contain comments", + "Common.Views.Collaboration.textOriginal": "Original", + "Common.Views.Collaboration.textRejectAllChanges": "Reject All Changes", + "Common.Views.Collaboration.textReview": "Track Changes", + "Common.Views.Collaboration.textReviewing": "Review", + "Common.Views.Collaboration.textСomments": "Сomments", + "Common.Views.Collaboration.textEditСomment": "Edit Comment", + "Common.Views.Collaboration.textDone": "Done", + "Common.Views.Collaboration.textAddReply": "Add Reply", + "Common.Views.Collaboration.textEditReply": "Edit Reply", + "Common.Views.Collaboration.textCancel": "Cancel", + "Common.Views.Collaboration.textAllChangesEditing": "All changes (Editing)", + "Common.Views.Collaboration.textAllChangesAcceptedPreview": "All changes accepted (Preview)", + "Common.Views.Collaboration.textAllChangesRejectedPreview": "All changes rejected (Preview)", + "Common.Views.Collaboration.textAccept": "Accept", + "Common.Views.Collaboration.textReject": "Reject", + "DE.Controllers.AddContainer.textImage": "Image", + "DE.Controllers.AddContainer.textOther": "Other", + "DE.Controllers.AddContainer.textShape": "Shape", + "DE.Controllers.AddContainer.textTable": "Table", + "DE.Controllers.AddImage.textEmptyImgUrl": "You need to specify image URL.", + "DE.Controllers.AddImage.txtNotUrl": "This field should be a URL in the 'http://www.example.com' format", + "DE.Controllers.AddOther.textBelowText": "Below Text", + "DE.Controllers.AddOther.textBottomOfPage": "Bottom Of Page", + "DE.Controllers.AddOther.txtNotUrl": "This field should be a URL in the 'http://www.example.com' format", + "DE.Controllers.AddOther.textDeleteDraft": "Do you really want to delete draft?", + "DE.Controllers.AddOther.textCancel": "Cancel", + "DE.Controllers.AddOther.textContinue": "Continue", + "DE.Controllers.AddOther.textDelete": "Delete", + "DE.Controllers.AddTable.textCancel": "Cancel", + "DE.Controllers.AddTable.textColumns": "Columns", + "DE.Controllers.AddTable.textRows": "Rows", + "DE.Controllers.AddTable.textTableSize": "Table Size", + "DE.Controllers.DocumentHolder.errorCopyCutPaste": "Copy, cut and paste actions using the context menu will be performed within the current file only.", + "DE.Controllers.DocumentHolder.menuAddLink": "Add Link", + "DE.Controllers.DocumentHolder.menuCopy": "Copy", + "DE.Controllers.DocumentHolder.menuCut": "Cut", + "DE.Controllers.DocumentHolder.menuDelete": "Delete", + "DE.Controllers.DocumentHolder.menuDeleteTable": "Delete Table", + "DE.Controllers.DocumentHolder.menuEdit": "Edit", + "DE.Controllers.DocumentHolder.menuMerge": "Merge Cells", + "DE.Controllers.DocumentHolder.menuMore": "More", + "DE.Controllers.DocumentHolder.menuOpenLink": "Open Link", + "DE.Controllers.DocumentHolder.menuPaste": "Paste", + "DE.Controllers.DocumentHolder.menuReview": "Review", + "DE.Controllers.DocumentHolder.menuReviewChange": "Review Change", + "DE.Controllers.DocumentHolder.menuSplit": "Split Cell", + "DE.Controllers.DocumentHolder.sheetCancel": "Cancel", + "DE.Controllers.DocumentHolder.textCancel": "Cancel", + "DE.Controllers.DocumentHolder.textColumns": "Columns", + "DE.Controllers.DocumentHolder.textCopyCutPasteActions": "Copy, Cut and Paste Actions", + "DE.Controllers.DocumentHolder.textDoNotShowAgain": "Do not show again", + "DE.Controllers.DocumentHolder.textGuest": "Guest", + "DE.Controllers.DocumentHolder.textRows": "Rows", + "DE.Controllers.DocumentHolder.menuViewComment": "View Comment", + "DE.Controllers.DocumentHolder.menuAddComment": "Add Comment", + "DE.Controllers.EditContainer.textChart": "Chart", + "DE.Controllers.EditContainer.textFooter": "Footer", + "DE.Controllers.EditContainer.textHeader": "Header", + "DE.Controllers.EditContainer.textHyperlink": "Hyperlink", + "DE.Controllers.EditContainer.textImage": "Image", + "DE.Controllers.EditContainer.textParagraph": "Paragraph", + "DE.Controllers.EditContainer.textSettings": "Settings", + "DE.Controllers.EditContainer.textShape": "Shape", + "DE.Controllers.EditContainer.textTable": "Table", + "DE.Controllers.EditContainer.textText": "Text", + "DE.Controllers.EditImage.textEmptyImgUrl": "You need to specify image URL.", + "DE.Controllers.EditImage.txtNotUrl": "This field should be a URL in the 'http://www.example.com' format", + "DE.Controllers.EditText.textAuto": "Auto", + "DE.Controllers.EditText.textFonts": "Fonts", + "DE.Controllers.EditText.textPt": "pt", + "DE.Controllers.Main.advDRMEnterPassword": "Enter your password:", + "DE.Controllers.Main.advDRMOptions": "Protected File", + "DE.Controllers.Main.advDRMPassword": "Password", + "DE.Controllers.Main.advTxtOptions": "Choose TXT Options", + "DE.Controllers.Main.applyChangesTextText": "Loading data...", + "DE.Controllers.Main.applyChangesTitleText": "Loading Data", + "DE.Controllers.Main.closeButtonText": "Close File", + "DE.Controllers.Main.convertationTimeoutText": "Conversion timeout exceeded.", + "DE.Controllers.Main.criticalErrorExtText": "Press 'OK' to return to document list.", + "DE.Controllers.Main.criticalErrorTitle": "Error", + "DE.Controllers.Main.downloadErrorText": "Download failed.", + "DE.Controllers.Main.downloadMergeText": "Downloading...", + "DE.Controllers.Main.downloadMergeTitle": "Downloading", + "DE.Controllers.Main.downloadTextText": "Downloading document...", + "DE.Controllers.Main.downloadTitleText": "Downloading Document", + "DE.Controllers.Main.errorAccessDeny": "You are trying to perform an action you do not have rights for.
    Please contact your Document Server administrator.", + "DE.Controllers.Main.errorBadImageUrl": "Image URL is incorrect", + "DE.Controllers.Main.errorCoAuthoringDisconnect": "Server connection lost. You can't edit anymore.", + "DE.Controllers.Main.errorConnectToServer": "The document could not be saved. Please check connection settings or contact your administrator.
    When you click the 'OK' button, you will be prompted to download the document.", + "DE.Controllers.Main.errorDatabaseConnection": "External error.
    Database connection error. Please, contact support.", + "DE.Controllers.Main.errorDataEncrypted": "Encrypted changes have been received, they cannot be deciphered.", + "DE.Controllers.Main.errorDataRange": "Incorrect data range.", + "DE.Controllers.Main.errorDefaultMessage": "Error code: %1", + "DE.Controllers.Main.errorEditingDownloadas": "An error occurred during the work with the document.
    Use the 'Download' option to save the file backup copy to your computer hard drive.", + "DE.Controllers.Main.errorFilePassProtect": "The file is password protected and cannot be opened.", + "DE.Controllers.Main.errorFileSizeExceed": "The file size exceeds the limitation set for your server.
    Please contact your Document Server administrator for details.", + "DE.Controllers.Main.errorKeyEncrypt": "Unknown key descriptor", + "DE.Controllers.Main.errorKeyExpire": "Key descriptor expired", + "DE.Controllers.Main.errorMailMergeLoadFile": "Loading the document failed. Please select a different file.", + "DE.Controllers.Main.errorMailMergeSaveFile": "Merge failed.", + "DE.Controllers.Main.errorProcessSaveResult": "Saving is failed.", + "DE.Controllers.Main.errorServerVersion": "The editor version has been updated. The page will be reloaded to apply the changes.", + "DE.Controllers.Main.errorStockChart": "Incorrect row order. To build a stock chart place the data on the sheet in the following order:
    opening price, max price, min price, closing price.", + "DE.Controllers.Main.errorUpdateVersion": "The file version has been changed. The page will be reloaded.", + "DE.Controllers.Main.errorUpdateVersionOnDisconnect": "Internet connection has been restored, and the file version has been changed.
    Before you can continue working, you need to download the file or copy its content to make sure nothing is lost, and then reload this page.", + "DE.Controllers.Main.errorUserDrop": "The file cannot be accessed right now.", + "DE.Controllers.Main.errorUsersExceed": "The number of users was exceeded", + "DE.Controllers.Main.errorViewerDisconnect": "Connection is lost. You can still view the document,
    but will not be able to download it until the connection is restored and page is reloaded.", + "DE.Controllers.Main.leavePageText": "You have unsaved changes in this document. Click 'Stay on this Page' to await the autosave of the document. Click 'Leave this Page' to discard all the unsaved changes.", + "DE.Controllers.Main.loadFontsTextText": "Loading data...", + "DE.Controllers.Main.loadFontsTitleText": "Loading Data", + "DE.Controllers.Main.loadFontTextText": "Loading data...", + "DE.Controllers.Main.loadFontTitleText": "Loading Data", + "DE.Controllers.Main.loadImagesTextText": "Loading images...", + "DE.Controllers.Main.loadImagesTitleText": "Loading Images", + "DE.Controllers.Main.loadImageTextText": "Loading image...", + "DE.Controllers.Main.loadImageTitleText": "Loading Image", + "DE.Controllers.Main.loadingDocumentTextText": "Loading document...", + "DE.Controllers.Main.loadingDocumentTitleText": "Loading document", + "DE.Controllers.Main.mailMergeLoadFileText": "Loading Data Source...", + "DE.Controllers.Main.mailMergeLoadFileTitle": "Loading Data Source", + "DE.Controllers.Main.notcriticalErrorTitle": "Warning", + "DE.Controllers.Main.openErrorText": "An error has occurred while opening the file.", + "DE.Controllers.Main.openTextText": "Opening document...", + "DE.Controllers.Main.openTitleText": "Opening Document", + "DE.Controllers.Main.printTextText": "Printing document...", + "DE.Controllers.Main.printTitleText": "Printing Document", + "DE.Controllers.Main.saveErrorText": "An error has occurred while saving the file.", + "DE.Controllers.Main.savePreparingText": "Preparing to save", + "DE.Controllers.Main.savePreparingTitle": "Preparing to save. Please wait...", + "DE.Controllers.Main.saveTextText": "Saving document...", + "DE.Controllers.Main.saveTitleText": "Saving Document", + "DE.Controllers.Main.scriptLoadError": "The connection is too slow, some of the components could not be loaded. Please reload the page.", + "DE.Controllers.Main.sendMergeText": "Sending Merge...", + "DE.Controllers.Main.sendMergeTitle": "Sending Merge", + "DE.Controllers.Main.splitDividerErrorText": "The number of rows must be a divisor of %1", + "DE.Controllers.Main.splitMaxColsErrorText": "The number of columns must be less than %1", + "DE.Controllers.Main.splitMaxRowsErrorText": "The number of rows must be less than %1", + "DE.Controllers.Main.textAnonymous": "Anonymous", + "DE.Controllers.Main.textBack": "Back", + "DE.Controllers.Main.textBuyNow": "Visit website", + "DE.Controllers.Main.textCancel": "Cancel", + "DE.Controllers.Main.textClose": "Close", + "DE.Controllers.Main.textContactUs": "Contact sales", + "DE.Controllers.Main.textCustomLoader": "Please note that according to the terms of the license you are not entitled to change the loader.
    Please contact our Sales Department to get a quote.", + "DE.Controllers.Main.textDone": "Done", + "DE.Controllers.Main.textLoadingDocument": "Loading document", + "DE.Controllers.Main.textNoLicenseTitle": "%1 connection limitation", + "DE.Controllers.Main.textOK": "OK", + "DE.Controllers.Main.textPaidFeature": "Paid feature", + "DE.Controllers.Main.textPassword": "Password", + "DE.Controllers.Main.textPreloader": "Loading... ", + "DE.Controllers.Main.textTryUndoRedo": "The Undo/Redo functions are disabled for the Fast co-editing mode.", + "DE.Controllers.Main.textUsername": "Username", + "DE.Controllers.Main.titleLicenseExp": "License expired", + "DE.Controllers.Main.titleServerVersion": "Editor updated", + "DE.Controllers.Main.titleUpdateVersion": "Version changed", + "DE.Controllers.Main.txtArt": "Your text here", + "DE.Controllers.Main.txtDiagramTitle": "Chart Title", + "DE.Controllers.Main.txtEditingMode": "Set editing mode...", + "DE.Controllers.Main.txtFooter": "Footer", + "DE.Controllers.Main.txtHeader": "Header", + "DE.Controllers.Main.txtProtected": "Once you enter the password and open the file, the current password to the file will be reset", + "DE.Controllers.Main.txtSeries": "Series", + "DE.Controllers.Main.txtStyle_footnote_text": "Footnote Text", + "DE.Controllers.Main.txtStyle_Heading_1": "Heading 1", + "DE.Controllers.Main.txtStyle_Heading_2": "Heading 2", + "DE.Controllers.Main.txtStyle_Heading_3": "Heading 3", + "DE.Controllers.Main.txtStyle_Heading_4": "Heading 4", + "DE.Controllers.Main.txtStyle_Heading_5": "Heading 5", + "DE.Controllers.Main.txtStyle_Heading_6": "Heading 6", + "DE.Controllers.Main.txtStyle_Heading_7": "Heading 7", + "DE.Controllers.Main.txtStyle_Heading_8": "Heading 8", + "DE.Controllers.Main.txtStyle_Heading_9": "Heading 9", + "DE.Controllers.Main.txtStyle_Intense_Quote": "Intense Quote", + "DE.Controllers.Main.txtStyle_List_Paragraph": "List Paragraph", + "DE.Controllers.Main.txtStyle_No_Spacing": "No Spacing", + "DE.Controllers.Main.txtStyle_Normal": "Normal", + "DE.Controllers.Main.txtStyle_Quote": "Quote", + "DE.Controllers.Main.txtStyle_Subtitle": "Subtitle", + "DE.Controllers.Main.txtStyle_Title": "Title", + "DE.Controllers.Main.txtXAxis": "X Axis", + "DE.Controllers.Main.txtYAxis": "Y Axis", + "DE.Controllers.Main.unknownErrorText": "Unknown error.", + "DE.Controllers.Main.unsupportedBrowserErrorText": "Your browser is not supported.", + "DE.Controllers.Main.uploadImageExtMessage": "Unknown image format.", + "DE.Controllers.Main.uploadImageFileCountMessage": "No images uploaded.", + "DE.Controllers.Main.uploadImageSizeMessage": "Maximium image size limit exceeded.", + "DE.Controllers.Main.uploadImageTextText": "Uploading image...", + "DE.Controllers.Main.uploadImageTitleText": "Uploading Image", + "DE.Controllers.Main.waitText": "Please, wait...", + "DE.Controllers.Main.warnLicenseExceeded": "The number of concurrent connections to the document server has been exceeded and the document will be opened for viewing only.
    Please contact your administrator for more information.", + "DE.Controllers.Main.warnLicenseExp": "Your license has expired.
    Please update your license and refresh the page.", + "DE.Controllers.Main.warnLicenseUsersExceeded": "The number of concurrent users has been exceeded and the document will be opened for viewing only.
    Please contact your administrator for more information.", + "DE.Controllers.Main.warnNoLicense": "This version of %1 editors has certain limitations for concurrent connections to the document server.
    If you need more please consider purchasing a commercial license.", + "DE.Controllers.Main.warnNoLicenseUsers": "This version of %1 editors has certain limitations for concurrent users.
    If you need more please consider purchasing a commercial license.", + "DE.Controllers.Main.warnProcessRightsChange": "You have been denied the right to edit the file.", + "DE.Controllers.Search.textNoTextFound": "Text not Found", + "DE.Controllers.Search.textReplaceAll": "Replace All", + "DE.Controllers.Settings.notcriticalErrorTitle": "Warning", + "DE.Controllers.Settings.txtLoading": "Loading...", + "DE.Controllers.Settings.unknownText": "Unknown", + "DE.Controllers.Settings.warnDownloadAs": "If you continue saving in this format all features except the text will be lost.
    Are you sure you want to continue?", + "DE.Controllers.Settings.warnDownloadAsRTF": "If you continue saving in this format some of the formatting might be lost.
    Are you sure you want to continue?", + "DE.Controllers.Settings.textCustomSize": "Custom Size", + "DE.Controllers.Toolbar.dlgLeaveMsgText": "You have unsaved changes in this document. Click 'Stay on this Page' to await the autosave of the document. Click 'Leave this Page' to discard all the unsaved changes.", + "DE.Controllers.Toolbar.dlgLeaveTitleText": "You leave the application", + "DE.Controllers.Toolbar.leaveButtonText": "Leave this Page", + "DE.Controllers.Toolbar.stayButtonText": "Stay on this Page", + "DE.Views.AddImage.textAddress": "Address", + "DE.Views.AddImage.textBack": "Back", + "DE.Views.AddImage.textFromLibrary": "Picture from Library", + "DE.Views.AddImage.textFromURL": "Picture from URL", + "DE.Views.AddImage.textImageURL": "Image URL", + "DE.Views.AddImage.textInsertImage": "Insert Image", + "DE.Views.AddImage.textLinkSettings": "Link Settings", + "DE.Views.AddOther.textAddLink": "Add Link", + "DE.Views.AddOther.textBack": "Back", + "DE.Views.AddOther.textCenterBottom": "Center Bottom", + "DE.Views.AddOther.textCenterTop": "Center Top", + "DE.Views.AddOther.textColumnBreak": "Column Break", + "DE.Views.AddOther.textContPage": "Continuous Page", + "DE.Views.AddOther.textCurrentPos": "Current Position", + "DE.Views.AddOther.textDisplay": "Display", + "DE.Views.AddOther.textEvenPage": "Even Page", + "DE.Views.AddOther.textFootnote": "Footnote", + "DE.Views.AddOther.textFormat": "Format", + "DE.Views.AddOther.textInsert": "Insert", + "DE.Views.AddOther.textInsertFootnote": "Insert Footnote", + "DE.Views.AddOther.textLeftBottom": "Left Bottom", + "DE.Views.AddOther.textLeftTop": "Left Top", + "DE.Views.AddOther.textLink": "Link", + "DE.Views.AddOther.textLocation": "Location", + "DE.Views.AddOther.textNextPage": "Next Page", + "DE.Views.AddOther.textOddPage": "Odd Page", + "DE.Views.AddOther.textPageBreak": "Page Break", + "DE.Views.AddOther.textPageNumber": "Page Number", + "DE.Views.AddOther.textPosition": "Position", + "DE.Views.AddOther.textRightBottom": "Right Bottom", + "DE.Views.AddOther.textRightTop": "Right Top", + "DE.Views.AddOther.textSectionBreak": "Section Break", + "DE.Views.AddOther.textStartFrom": "Start At", + "DE.Views.AddOther.textTip": "Screen Tip", + "DE.Views.AddOther.textComment": "Comment", + "DE.Views.AddOther.textAddComment": "Add Comment", + "DE.Views.AddOther.textDone": "Done", + "DE.Views.AddOther.textBreak": "Break", + "DE.Views.EditChart.textAddCustomColor": "Add Custom Color", + "DE.Views.EditChart.textAlign": "Align", + "DE.Views.EditChart.textBack": "Back", + "DE.Views.EditChart.textBackward": "Move Backward", + "DE.Views.EditChart.textBehind": "Behind", + "DE.Views.EditChart.textBorder": "Border", + "DE.Views.EditChart.textColor": "Color", + "DE.Views.EditChart.textCustomColor": "Custom Color", + "DE.Views.EditChart.textDistanceText": "Distance from Text", + "DE.Views.EditChart.textFill": "Fill", + "DE.Views.EditChart.textForward": "Move Forward", + "DE.Views.EditChart.textInFront": "In Front", + "DE.Views.EditChart.textInline": "Inline", + "DE.Views.EditChart.textMoveText": "Move with Text", + "DE.Views.EditChart.textOverlap": "Allow Overlap", + "DE.Views.EditChart.textRemoveChart": "Remove Chart", + "DE.Views.EditChart.textReorder": "Reorder", + "DE.Views.EditChart.textSize": "Size", + "DE.Views.EditChart.textSquare": "Square", + "DE.Views.EditChart.textStyle": "Style", + "DE.Views.EditChart.textThrough": "Through", + "DE.Views.EditChart.textTight": "Tight", + "DE.Views.EditChart.textToBackground": "Send to Background", + "DE.Views.EditChart.textToForeground": "Bring to Foreground", + "DE.Views.EditChart.textTopBottom": "Top and Bottom", + "DE.Views.EditChart.textType": "Type", + "DE.Views.EditChart.textWrap": "Wrap", + "DE.Views.EditHeader.textDiffFirst": "Different first page", + "DE.Views.EditHeader.textDiffOdd": "Different odd and even pages", + "DE.Views.EditHeader.textFrom": "Start at", + "DE.Views.EditHeader.textPageNumbering": "Page Numbering", + "DE.Views.EditHeader.textPrev": "Continue from previous section", + "DE.Views.EditHeader.textSameAs": "Link to Previous", + "DE.Views.EditHyperlink.textDisplay": "Display", + "DE.Views.EditHyperlink.textEdit": "Save Link", + "DE.Views.EditHyperlink.textLink": "Link", + "DE.Views.EditHyperlink.textRemove": "Remove Link", + "DE.Views.EditHyperlink.textTip": "Screen Tip", + "DE.Views.EditImage.textAddress": "Address", + "DE.Views.EditImage.textAlign": "Align", + "DE.Views.EditImage.textBack": "Back", + "DE.Views.EditImage.textBackward": "Move Backward", + "DE.Views.EditImage.textBehind": "Behind", + "DE.Views.EditImage.textDefault": "Actual Size", + "DE.Views.EditImage.textDistanceText": "Distance from Text", + "DE.Views.EditImage.textForward": "Move Forward", + "DE.Views.EditImage.textFromLibrary": "Picture from Library", + "DE.Views.EditImage.textFromURL": "Picture from URL", + "DE.Views.EditImage.textImageURL": "Image URL", + "DE.Views.EditImage.textInFront": "In Front", + "DE.Views.EditImage.textInline": "Inline", + "DE.Views.EditImage.textLinkSettings": "Link Settings", + "DE.Views.EditImage.textMoveText": "Move with Text", + "DE.Views.EditImage.textOverlap": "Allow Overlap", + "DE.Views.EditImage.textRemove": "Remove Image", + "DE.Views.EditImage.textReorder": "Reorder", + "DE.Views.EditImage.textReplace": "Replace", + "DE.Views.EditImage.textReplaceImg": "Replace Image", + "DE.Views.EditImage.textSquare": "Square", + "DE.Views.EditImage.textThrough": "Through", + "DE.Views.EditImage.textTight": "Tight", + "DE.Views.EditImage.textToBackground": "Send to Background", + "DE.Views.EditImage.textToForeground": "Bring to Foreground", + "DE.Views.EditImage.textTopBottom": "Top and Bottom", + "DE.Views.EditImage.textWrap": "Wrap", + "DE.Views.EditParagraph.textAddCustomColor": "Add Custom Color", + "DE.Views.EditParagraph.textAdvanced": "Advanced", + "DE.Views.EditParagraph.textAdvSettings": "Advanced settings", + "DE.Views.EditParagraph.textAfter": "After", + "DE.Views.EditParagraph.textAuto": "Auto", + "DE.Views.EditParagraph.textBack": "Back", + "DE.Views.EditParagraph.textBackground": "Background", + "DE.Views.EditParagraph.textBefore": "Before", + "DE.Views.EditParagraph.textCustomColor": "Custom Color", + "DE.Views.EditParagraph.textFirstLine": "First Line", + "DE.Views.EditParagraph.textFromText": "Distance from Text", + "DE.Views.EditParagraph.textKeepLines": "Keep Lines Together", + "DE.Views.EditParagraph.textKeepNext": "Keep with Next", + "DE.Views.EditParagraph.textOrphan": "Orphan Control", + "DE.Views.EditParagraph.textPageBreak": "Page Break Before", + "DE.Views.EditParagraph.textPrgStyles": "Paragraph styles", + "DE.Views.EditParagraph.textSpaceBetween": "Space Between Paragraphs", + "DE.Views.EditShape.textAddCustomColor": "Add Custom Color", + "DE.Views.EditShape.textAlign": "Align", + "DE.Views.EditShape.textBack": "Back", + "DE.Views.EditShape.textBackward": "Move Backward", + "DE.Views.EditShape.textBehind": "Behind", + "DE.Views.EditShape.textBorder": "Border", + "DE.Views.EditShape.textColor": "Color", + "DE.Views.EditShape.textCustomColor": "Custom Color", + "DE.Views.EditShape.textEffects": "Effects", + "DE.Views.EditShape.textFill": "Fill", + "DE.Views.EditShape.textForward": "Move Forward", + "DE.Views.EditShape.textFromText": "Distance from Text", + "DE.Views.EditShape.textInFront": "In Front", + "DE.Views.EditShape.textInline": "Inline", + "DE.Views.EditShape.textOpacity": "Opacity", + "DE.Views.EditShape.textOverlap": "Allow Overlap", + "DE.Views.EditShape.textRemoveShape": "Remove Shape", + "DE.Views.EditShape.textReorder": "Reorder", + "DE.Views.EditShape.textReplace": "Replace", + "DE.Views.EditShape.textSize": "Size", + "DE.Views.EditShape.textSquare": "Square", + "DE.Views.EditShape.textStyle": "Style", + "DE.Views.EditShape.textThrough": "Through", + "DE.Views.EditShape.textTight": "Tight", + "DE.Views.EditShape.textToBackground": "Send to Background", + "DE.Views.EditShape.textToForeground": "Bring to Foreground", + "DE.Views.EditShape.textTopAndBottom": "Top and Bottom", + "DE.Views.EditShape.textWithText": "Move with Text", + "DE.Views.EditShape.textWrap": "Wrap", + "DE.Views.EditTable.textAddCustomColor": "Add Custom Color", + "DE.Views.EditTable.textAlign": "Align", + "DE.Views.EditTable.textBack": "Back", + "DE.Views.EditTable.textBandedColumn": "Banded Column", + "DE.Views.EditTable.textBandedRow": "Banded Row", + "DE.Views.EditTable.textBorder": "Border", + "DE.Views.EditTable.textCellMargins": "Cell Margins", + "DE.Views.EditTable.textColor": "Color", + "DE.Views.EditTable.textCustomColor": "Custom Color", + "DE.Views.EditTable.textFill": "Fill", + "DE.Views.EditTable.textFirstColumn": "First Column", + "DE.Views.EditTable.textFlow": "Flow", + "DE.Views.EditTable.textFromText": "Distance from Text", + "DE.Views.EditTable.textHeaderRow": "Header Row", + "DE.Views.EditTable.textInline": "Inline", + "DE.Views.EditTable.textLastColumn": "Last Column", + "DE.Views.EditTable.textOptions": "Options", + "DE.Views.EditTable.textRemoveTable": "Remove Table", + "DE.Views.EditTable.textRepeatHeader": "Repeat as Header Row", + "DE.Views.EditTable.textResizeFit": "Resize to Fit Content", + "DE.Views.EditTable.textSize": "Size", + "DE.Views.EditTable.textStyle": "Style", + "DE.Views.EditTable.textStyleOptions": "Style Options", + "DE.Views.EditTable.textTableOptions": "Table Options", + "DE.Views.EditTable.textTotalRow": "Total Row", + "DE.Views.EditTable.textWithText": "Move with Text", + "DE.Views.EditTable.textWrap": "Wrap", + "DE.Views.EditText.textAddCustomColor": "Add Custom Color", + "DE.Views.EditText.textAdditional": "Additional", + "DE.Views.EditText.textAdditionalFormat": "Additional Formatting", + "DE.Views.EditText.textAllCaps": "All Caps", + "DE.Views.EditText.textAutomatic": "Automatic", + "DE.Views.EditText.textBack": "Back", + "DE.Views.EditText.textBullets": "Bullets", + "DE.Views.EditText.textCharacterBold": "B", + "DE.Views.EditText.textCharacterItalic": "I", + "DE.Views.EditText.textCharacterStrikethrough": "S", + "DE.Views.EditText.textCharacterUnderline": "U", + "DE.Views.EditText.textCustomColor": "Custom Color", + "DE.Views.EditText.textDblStrikethrough": "Double Strikethrough", + "DE.Views.EditText.textDblSuperscript": "Superscript", + "DE.Views.EditText.textFontColor": "Font Color", + "DE.Views.EditText.textFontColors": "Font Colors", + "DE.Views.EditText.textFonts": "Fonts", + "DE.Views.EditText.textHighlightColor": "Highlight Color", + "DE.Views.EditText.textHighlightColors": "Highlight Colors", + "DE.Views.EditText.textLetterSpacing": "Letter Spacing", + "DE.Views.EditText.textLineSpacing": "Line Spacing", + "DE.Views.EditText.textNone": "None", + "DE.Views.EditText.textNumbers": "Numbers", + "DE.Views.EditText.textSize": "Size", + "DE.Views.EditText.textSmallCaps": "Small Caps", + "DE.Views.EditText.textStrikethrough": "Strikethrough", + "DE.Views.EditText.textSubscript": "Subscript", + "DE.Views.Search.textCase": "Case sensitive", + "DE.Views.Search.textDone": "Done", + "DE.Views.Search.textFind": "Find", + "DE.Views.Search.textFindAndReplace": "Find and Replace", + "DE.Views.Search.textHighlight": "Highlight results", + "DE.Views.Search.textReplace": "Replace", + "DE.Views.Search.textSearch": "Search", + "DE.Views.Settings.textAbout": "About", + "DE.Views.Settings.textAddress": "address", + "DE.Views.Settings.textAdvancedSettings": "Application Settings", + "DE.Views.Settings.textApplication": "Application", + "DE.Views.Settings.textAuthor": "Author", + "DE.Views.Settings.textBack": "Back", + "DE.Views.Settings.textBottom": "Bottom", + "DE.Views.Settings.textCentimeter": "Centimeter", + "DE.Views.Settings.textCollaboration": "Collaboration", + "DE.Views.Settings.textColorSchemes": "Color Schemes", + "DE.Views.Settings.textComment": "Comment", + "DE.Views.Settings.textCommentingDisplay": "Commenting Display", + "DE.Views.Settings.textCreated": "Created", + "DE.Views.Settings.textCreateDate": "Creation date", + "DE.Views.Settings.textCustom": "Custom", + "DE.Views.Settings.textCustomSize": "Custom Size", + "DE.Views.Settings.textDisplayComments": "Comments", + "DE.Views.Settings.textDisplayResolvedComments": "Resolved Comments", + "DE.Views.Settings.textDocInfo": "Document Info", + "DE.Views.Settings.textDocTitle": "Document title", + "DE.Views.Settings.textDocumentFormats": "Document Formats", + "DE.Views.Settings.textDocumentSettings": "Document Settings", + "DE.Views.Settings.textDone": "Done", + "DE.Views.Settings.textDownload": "Download", + "DE.Views.Settings.textDownloadAs": "Download As...", + "DE.Views.Settings.textEditDoc": "Edit Document", + "DE.Views.Settings.textEmail": "email", + "DE.Views.Settings.textFind": "Find", + "DE.Views.Settings.textFindAndReplace": "Find and Replace", + "DE.Views.Settings.textFormat": "Format", + "DE.Views.Settings.textHelp": "Help", + "DE.Views.Settings.textHiddenTableBorders": "Hidden Table Borders", + "DE.Views.Settings.textInch": "Inch", + "DE.Views.Settings.textLandscape": "Landscape", + "DE.Views.Settings.textLastModified": "Last Modified", + "DE.Views.Settings.textLastModifiedBy": "Last Modified By", + "DE.Views.Settings.textLeft": "Left", + "DE.Views.Settings.textLoading": "Loading...", + "DE.Views.Settings.textLocation": "Location", + "DE.Views.Settings.textMargins": "Margins", + "DE.Views.Settings.textNoCharacters": "Nonprinting Characters", + "DE.Views.Settings.textOrientation": "Orientation", + "DE.Views.Settings.textOwner": "Owner", + "DE.Views.Settings.textPages": "Pages", + "DE.Views.Settings.textParagraphs": "Paragraphs", + "DE.Views.Settings.textPoint": "Point", + "DE.Views.Settings.textPortrait": "Portrait", + "DE.Views.Settings.textPoweredBy": "Powered by", + "DE.Views.Settings.textPrint": "Print", + "DE.Views.Settings.textReader": "Reader Mode", + "DE.Views.Settings.textReview": "Track Changes", + "DE.Views.Settings.textRight": "Right", + "DE.Views.Settings.textSettings": "Settings", + "DE.Views.Settings.textSpaces": "Spaces", + "DE.Views.Settings.textSpellcheck": "Spell Checking", + "DE.Views.Settings.textStatistic": "Statistic", + "DE.Views.Settings.textSubject": "Subject", + "DE.Views.Settings.textSymbols": "Symbols", + "DE.Views.Settings.textTel": "tel", + "DE.Views.Settings.textTitle": "Title", + "DE.Views.Settings.textTop": "Top", + "DE.Views.Settings.textUnitOfMeasurement": "Unit of Measurement", + "DE.Views.Settings.textUploaded": "Uploaded", + "DE.Views.Settings.textVersion": "Version", + "DE.Views.Settings.textWords": "Words", + "DE.Views.Settings.unknownText": "Unknown", + "DE.Views.Toolbar.textBack": "Back" } \ 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 64b24a265..fbc571974 100644 --- a/apps/documenteditor/mobile/resources/css/app-ios.css +++ b/apps/documenteditor/mobile/resources/css/app-ios.css @@ -5975,6 +5975,14 @@ html.pixel-ratio-3 .settings.popover .list-block ul:last-child:after { .settings .popover-inner { height: 400px; } +.container-add .categories > .buttons-row .button { + display: flex; + justify-content: center; + align-items: center; +} +.container-add .categories > .buttons-row .button.active i.icon { + background-color: transparent; +} .dataview.page-content { background: #ffffff; } @@ -6395,6 +6403,9 @@ html.pixel-ratio-3 .document-menu .list-block li:last-child li .item-inner:after margin-left: 20px; color: #212121; } +.page-change { + background-color: #FFFFFF; +} .page-change .block-description { background-color: #fff; padding-top: 15px; @@ -6425,28 +6436,51 @@ html.pixel-ratio-3 .document-menu .list-block li:last-child li .item-inner:after } .page-change .block-btn, .page-change .content-block.block-btn:first-child { + position: absolute; + bottom: 0; display: flex; flex-direction: row; - justify-content: space-around; - margin: 26px 0; + justify-content: space-between; + margin: 0; + width: 100%; + height: 44px; + align-items: center; + box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2); } -.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; + margin-left: 10px; } -.page-change .block-btn .right-buttons, -.page-change .content-block.block-btn:first-child .right-buttons { +.page-change .block-btn .change-buttons, +.page-change .content-block.block-btn:first-child .change-buttons, +.page-change .block-btn .accept-reject, +.page-change .content-block.block-btn:first-child .accept-reject { display: flex; } +.page-change .block-btn .next-prev, +.page-change .content-block.block-btn:first-child .next-prev { + display: flex; +} +.page-change .block-btn .next-prev .link, +.page-change .content-block.block-btn:first-child .next-prev .link { + width: 44px; +} .page-change .block-btn .link, .page-change .content-block.block-btn:first-child .link { - display: inline-block; + position: relative; + display: flex; + justify-content: center; + align-items: center; + font-size: 17px; + height: 44px; + min-width: 44px; +} +.page-change #no-changes { + padding: 16px; } .navbar .center-collaboration { display: flex; @@ -6459,6 +6493,13 @@ 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; } +.page-display-mode[data-page="display-mode-view"] .list-block li.media-item .item-title { + font-weight: normal; +} +.page-display-mode[data-page="display-mode-view"] .list-block li.media-item .item-subtitle { + font-size: 14px; + color: #8e8e93; +} #user-list .item-content { padding-left: 0; } @@ -6482,15 +6523,97 @@ html.pixel-ratio-3 .document-menu .list-block li:last-child li .item-inner:after #user-list ul:before { content: none; } -.page-comments .list-block .item-inner { +.page-comments .header-comment, +.add-comment .header-comment, +.page-view-comments .header-comment, +.container-edit-comment .header-comment, +.container-add-reply .header-comment, +.page-edit-comment .header-comment, +.page-add-reply .header-comment, +.page-edit-reply .header-comment { + display: flex; + justify-content: space-between; + padding-right: 16px; +} +.page-comments .header-comment .comment-right, +.add-comment .header-comment .comment-right, +.page-view-comments .header-comment .comment-right, +.container-edit-comment .header-comment .comment-right, +.container-add-reply .header-comment .comment-right, +.page-edit-comment .header-comment .comment-right, +.page-add-reply .header-comment .comment-right, +.page-edit-reply .header-comment .comment-right { + display: flex; + justify-content: space-between; + width: 70px; +} +.page-comments .list-block .item-inner, +.add-comment .list-block .item-inner, +.page-view-comments .list-block .item-inner, +.container-edit-comment .list-block .item-inner, +.container-add-reply .list-block .item-inner, +.page-edit-comment .list-block .item-inner, +.page-add-reply .list-block .item-inner, +.page-edit-reply .list-block .item-inner { display: block; padding: 16px 0; word-wrap: break-word; } -.page-comments p { +.page-comments p, +.add-comment p, +.page-view-comments p, +.container-edit-comment p, +.container-add-reply p, +.page-edit-comment p, +.page-add-reply p, +.page-edit-reply p { margin: 0; + word-break: break-word; } -.page-comments .user-name { +.page-comments .list-reply, +.add-comment .list-reply, +.page-view-comments .list-reply, +.container-edit-comment .list-reply, +.container-add-reply .list-reply, +.page-edit-comment .list-reply, +.page-add-reply .list-reply, +.page-edit-reply .list-reply { + padding-left: 26px; +} +.page-comments .reply-textarea, +.add-comment .reply-textarea, +.page-view-comments .reply-textarea, +.container-edit-comment .reply-textarea, +.container-add-reply .reply-textarea, +.page-edit-comment .reply-textarea, +.page-add-reply .reply-textarea, +.page-edit-reply .reply-textarea, +.page-comments .comment-textarea, +.add-comment .comment-textarea, +.page-view-comments .comment-textarea, +.container-edit-comment .comment-textarea, +.container-add-reply .comment-textarea, +.page-edit-comment .comment-textarea, +.page-add-reply .comment-textarea, +.page-edit-reply .comment-textarea, +.page-comments .edit-reply-textarea, +.add-comment .edit-reply-textarea, +.page-view-comments .edit-reply-textarea, +.container-edit-comment .edit-reply-textarea, +.container-add-reply .edit-reply-textarea, +.page-edit-comment .edit-reply-textarea, +.page-add-reply .edit-reply-textarea, +.page-edit-reply .edit-reply-textarea { + resize: vertical; +} +.page-comments .user-name, +.add-comment .user-name, +.page-view-comments .user-name, +.container-edit-comment .user-name, +.container-add-reply .user-name, +.page-edit-comment .user-name, +.page-add-reply .user-name, +.page-edit-reply .user-name { font-size: 17px; line-height: 22px; color: #000000; @@ -6498,15 +6621,43 @@ html.pixel-ratio-3 .document-menu .list-block li:last-child li .item-inner:after font-weight: bold; } .page-comments .comment-date, -.page-comments .reply-date { - font-size: 12px; +.add-comment .comment-date, +.page-view-comments .comment-date, +.container-edit-comment .comment-date, +.container-add-reply .comment-date, +.page-edit-comment .comment-date, +.page-add-reply .comment-date, +.page-edit-reply .comment-date, +.page-comments .reply-date, +.add-comment .reply-date, +.page-view-comments .reply-date, +.container-edit-comment .reply-date, +.container-add-reply .reply-date, +.page-edit-comment .reply-date, +.page-add-reply .reply-date, +.page-edit-reply .reply-date { + font-size: 13px; line-height: 18px; color: #6d6d72; margin: 0; margin-top: 0px; } .page-comments .comment-text, -.page-comments .reply-text { +.add-comment .comment-text, +.page-view-comments .comment-text, +.container-edit-comment .comment-text, +.container-add-reply .comment-text, +.page-edit-comment .comment-text, +.page-add-reply .comment-text, +.page-edit-reply .comment-text, +.page-comments .reply-text, +.add-comment .reply-text, +.page-view-comments .reply-text, +.container-edit-comment .reply-text, +.container-add-reply .reply-text, +.page-edit-comment .reply-text, +.page-add-reply .reply-text, +.page-edit-reply .reply-text { color: #000000; font-size: 15px; line-height: 25px; @@ -6514,13 +6665,47 @@ html.pixel-ratio-3 .document-menu .list-block li:last-child li .item-inner:after max-width: 100%; padding-right: 15px; } -.page-comments .reply-item { +.page-comments .reply-item, +.add-comment .reply-item, +.page-view-comments .reply-item, +.container-edit-comment .reply-item, +.container-add-reply .reply-item, +.page-edit-comment .reply-item, +.page-add-reply .reply-item, +.page-edit-reply .reply-item { margin-top: 15px; + padding-right: 16px; + padding-top: 13px; } -.page-comments .reply-item .user-name { - padding-top: 16px; +.page-comments .reply-item .header-reply, +.add-comment .reply-item .header-reply, +.page-view-comments .reply-item .header-reply, +.container-edit-comment .reply-item .header-reply, +.container-add-reply .reply-item .header-reply, +.page-edit-comment .reply-item .header-reply, +.page-add-reply .reply-item .header-reply, +.page-edit-reply .reply-item .header-reply { + display: flex; + justify-content: space-between; } -.page-comments .reply-item:before { +.page-comments .reply-item .user-name, +.add-comment .reply-item .user-name, +.page-view-comments .reply-item .user-name, +.container-edit-comment .reply-item .user-name, +.container-add-reply .reply-item .user-name, +.page-edit-comment .reply-item .user-name, +.page-add-reply .reply-item .user-name, +.page-edit-reply .reply-item .user-name { + padding-top: 3px; +} +.page-comments .reply-item:before, +.add-comment .reply-item:before, +.page-view-comments .reply-item:before, +.container-edit-comment .reply-item:before, +.container-add-reply .reply-item:before, +.page-edit-comment .reply-item:before, +.page-add-reply .reply-item:before, +.page-edit-reply .reply-item:before { content: ''; position: absolute; left: auto; @@ -6535,17 +6720,298 @@ html.pixel-ratio-3 .document-menu .list-block li:last-child li .item-inner:after -webkit-transform-origin: 50% 100%; transform-origin: 50% 100%; } -.page-comments .comment-quote { +.page-comments .comment-quote, +.add-comment .comment-quote, +.page-view-comments .comment-quote, +.container-edit-comment .comment-quote, +.container-add-reply .comment-quote, +.page-edit-comment .comment-quote, +.page-add-reply .comment-quote, +.page-edit-reply .comment-quote { color: #446995; border-left: 1px solid #446995; padding-left: 10px; + padding-right: 16px; margin: 5px 0; font-size: 15px; } +.page-comments .wrap-comment, +.add-comment .wrap-comment, +.page-view-comments .wrap-comment, +.container-edit-comment .wrap-comment, +.container-add-reply .wrap-comment, +.page-edit-comment .wrap-comment, +.page-add-reply .wrap-comment, +.page-edit-reply .wrap-comment, +.page-comments .wrap-reply, +.add-comment .wrap-reply, +.page-view-comments .wrap-reply, +.container-edit-comment .wrap-reply, +.container-add-reply .wrap-reply, +.page-edit-comment .wrap-reply, +.page-add-reply .wrap-reply, +.page-edit-reply .wrap-reply { + padding: 16px 24px 0 16px; +} +.page-comments .comment-textarea, +.add-comment .comment-textarea, +.page-view-comments .comment-textarea, +.container-edit-comment .comment-textarea, +.container-add-reply .comment-textarea, +.page-edit-comment .comment-textarea, +.page-add-reply .comment-textarea, +.page-edit-reply .comment-textarea, +.page-comments .reply-textarea, +.add-comment .reply-textarea, +.page-view-comments .reply-textarea, +.container-edit-comment .reply-textarea, +.container-add-reply .reply-textarea, +.page-edit-comment .reply-textarea, +.page-add-reply .reply-textarea, +.page-edit-reply .reply-textarea, +.page-comments .edit-reply-textarea, +.add-comment .edit-reply-textarea, +.page-view-comments .edit-reply-textarea, +.container-edit-comment .edit-reply-textarea, +.container-add-reply .edit-reply-textarea, +.page-edit-comment .edit-reply-textarea, +.page-add-reply .edit-reply-textarea, +.page-edit-reply .edit-reply-textarea { + margin-top: 10px; + background: transparent; + outline: none; + width: 100%; + font-size: 17px; + border: none; + border-radius: 3px; + min-height: 100px; +} .settings.popup .list-block ul.list-reply:last-child:after, .settings.popover .list-block ul.list-reply:last-child:after { display: none; } +.container-edit-comment .page { + background-color: #FFFFFF; +} +.container-view-comment { + position: fixed; + -webkit-transition: height 100ms; + transition: height 120ms; + background-color: #FFFFFF; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + height: 50%; + box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2), 0px 4px 5px rgba(0, 0, 0, 0.12); +} +.container-view-comment .pages { + background-color: #FFFFFF; +} +.container-view-comment .page-view-comments { + background-color: #FFFFFF; +} +.container-view-comment .page-view-comments .list-block { + margin-bottom: 100px; +} +.container-view-comment .page-view-comments .list-block ul:before, +.container-view-comment .page-view-comments .list-block ul:after { + content: none; +} +.container-view-comment .page-view-comments .list-block .item-inner { + padding: 0; +} +.container-view-comment .toolbar { + position: fixed; + background-color: #FFFFFF; + box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2), 0px 4px 5px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14); +} +.container-view-comment .toolbar:before { + content: none; +} +.container-view-comment .toolbar .toolbar-inner { + display: flex; + justify-content: space-between; + padding: 0 16px; +} +.container-view-comment .toolbar .toolbar-inner .button-left { + min-width: 80px; +} +.container-view-comment .toolbar .toolbar-inner .button-right { + min-width: 62px; + display: flex; + justify-content: space-between; +} +.container-view-comment .toolbar .toolbar-inner .button-right a { + padding: 0 12px; +} +.container-view-comment .swipe-container { + display: flex; + justify-content: center; + height: 40px; +} +.container-view-comment .swipe-container .icon-swipe { + margin-top: 8px; + width: 40px; + height: 4px; + background: rgba(0, 0, 0, 0.12); + border-radius: 2px; +} +.container-view-comment .list-block { + margin-top: 0; +} +.container-view-comment.popover { + position: absolute; + border-radius: 4px; + min-height: 170px; + height: 400px; + max-height: 600px; +} +.container-view-comment.popover .toolbar { + position: absolute; + border-radius: 0 0 4px 4px; +} +.container-view-comment.popover .toolbar .toolbar-inner { + padding-right: 0; +} +.container-view-comment.popover .pages { + position: absolute; +} +.container-view-comment.popover .pages .page { + border-radius: 13px; +} +.container-view-comment.popover .pages .page .page-content { + padding: 16px; + padding-bottom: 80px; +} +.container-view-comment.popover .pages .page .page-content .list-block { + margin-bottom: 0px; +} +.container-view-comment.popover .pages .page .page-content .list-block .item-content { + padding-left: 0; +} +.container-view-comment.popover .pages .page .page-content .list-block .item-content .header-comment, +.container-view-comment.popover .pages .page .page-content .list-block .item-content .reply-item { + padding-right: 0; +} +.container-view-comment.popover .pages .page .page-content .block-reply { + margin-top: 10px; +} +.container-view-comment.popover .pages .page .page-content .block-reply .reply-textarea { + min-height: 70px; + width: 278px; + border: 1px solid #c4c4c4; + border-radius: 6px; + padding: 5px; +} +.container-view-comment.popover .pages .page .page-content .edit-reply-textarea { + min-height: 60px; + width: 100%; + border: 1px solid #c4c4c4; + border-radius: 6px; + padding: 5px; + height: 60px; + margin-top: 10px; +} +.container-view-comment.popover .pages .page .page-content .comment-text { + padding-right: 0; +} +.container-view-comment.popover .pages .page .page-content .comment-text .comment-textarea { + border: 1px solid #c4c4c4; + border-radius: 6px; + padding: 8px; + min-height: 80px; + height: 80px; +} +#done-comment { + color: #446995; +} +.page-add-comment { + background-color: #FFFFFF; +} +.page-add-comment .wrap-comment, +.page-add-comment .wrap-reply { + padding: 16px 24px 0 16px; +} +.page-add-comment .wrap-comment .header-comment, +.page-add-comment .wrap-reply .header-comment { + justify-content: flex-start; +} +.page-add-comment .wrap-comment .user-name, +.page-add-comment .wrap-reply .user-name { + font-weight: bold; + font-size: 17px; + padding-left: 5px; +} +.page-add-comment .wrap-comment .comment-date, +.page-add-comment .wrap-reply .comment-date { + font-size: 13px; + color: #6d6d72; + padding-left: 5px; +} +.page-add-comment .wrap-comment .wrap-textarea, +.page-add-comment .wrap-reply .wrap-textarea { + margin-top: 16px; + padding-right: 6px; +} +.page-add-comment .wrap-comment .wrap-textarea .comment-textarea, +.page-add-comment .wrap-reply .wrap-textarea .comment-textarea { + font-size: 17px; + border: none; + margin-top: 0; + min-height: 100px; + border-radius: 4px; + width: 100%; + padding-left: 5px; +} +.page-add-comment .wrap-comment .wrap-textarea .comment-textarea::placeholder, +.page-add-comment .wrap-reply .wrap-textarea .comment-textarea::placeholder { + color: #8e8e93; + font-size: 17px; +} +.container-add-reply { + height: 100%; +} +.container-add-reply .navbar a.link i + span { + margin-left: 0; +} +.container-add-reply .page { + background-color: #FFFFFF; +} +.actions-modal-button.color-red { + color: #ff3b30; +} +.page-edit-comment, +.page-add-reply, +.page-edit-reply { + background-color: #FFFFFF; +} +.page-edit-comment .header-comment, +.page-add-reply .header-comment, +.page-edit-reply .header-comment { + justify-content: flex-start; +} +.page-edit-comment .navbar .right, +.page-add-reply .navbar .right, +.page-edit-reply .navbar .right { + height: 100%; +} +.page-edit-comment .navbar .right #add-reply, +.page-add-reply .navbar .right #add-reply, +.page-edit-reply .navbar .right #add-reply, +.page-edit-comment .navbar .right #edit-comment, +.page-add-reply .navbar .right #edit-comment, +.page-edit-reply .navbar .right #edit-comment, +.page-edit-comment .navbar .right #edit-reply, +.page-add-reply .navbar .right #edit-reply, +.page-edit-reply .navbar .right #edit-reply { + display: flex; + align-items: center; + padding-left: 16px; + padding-right: 16px; + height: 100%; +} +.container-edit-comment { + position: fixed; +} .tablet .searchbar.document.replace .center .searchbar:first-child { margin-right: 10px; } @@ -6779,12 +7245,14 @@ i.icon.icon-in-indent { background-color: #446995; -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M1%2C20v-1h21v1H1z%20M12%2C16H1v-1h11V16z%20M12%2C12H1v-1h11V12z%20M12%2C8H1V7h11V8z%20M21%2C11.2l0.2%2C0.3L21%2C11.8L16.7%2C16L16%2C15.3l3.8-3.8L16%2C7.7L16.7%2C7L21%2C11.2z%20M22%2C4H1V3h21V4z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); } -i.icon.icon-prev { +i.icon.icon-prev, +i.icon.icon-prev-comment { width: 22px; height: 22px; background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M16%2C20.5L15%2C21.5L4.5%2C11l0%2C0l0%2C0L15%2C0.5L16%2C1.5L6.6%2C11L16%2C20.5z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); } -i.icon.icon-next { +i.icon.icon-next, +i.icon.icon-next-comment { width: 22px; height: 22px; background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M15.5%2C11L6%2C1.5l1.1-1.1L17.5%2C11l0%2C0l0%2C0L7.1%2C21.5L6%2C20.5L15.5%2C11z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); @@ -7037,6 +7505,31 @@ i.icon.icon-collaboration { height: 24px; background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M15.9912%206C15.9912%208.34102%2015.4074%2010.1346%2014.6055%2011.3121C13.7983%2012.4974%2012.8249%2013%2011.9912%2013C11.1575%2013%2010.1841%2012.4974%209.37695%2011.3121C8.57501%2010.1346%207.99121%208.34102%207.99121%206C7.99121%203.61508%209.96974%202%2011.9912%202C14.0127%202%2015.9912%203.61508%2015.9912%206ZM14.5015%2012.9506C13.7365%2013.6361%2012.8649%2014%2011.9912%2014C11.1195%2014%2010.2499%2013.6378%209.48619%2012.9554C7.78363%2013.6081%206.36015%2014.2591%205.26963%2014.9224C3.55256%2015.9667%203%2016.8326%203%2017.5C3%2018.2545%203.4257%2019.0877%204.82302%2019.7879C6.25015%2020.5031%208.57272%2020.9999%2012%2021C15.4273%2021%2017.7499%2020.5031%2019.177%2019.7879C20.5743%2019.0877%2021%2018.2545%2021%2017.5C21%2016.8326%2020.4474%2015.9667%2018.7304%2014.9224C17.6372%2014.2575%2016.2095%2013.605%2014.5015%2012.9506ZM15.2272%2012.1594C16.2765%2010.7825%2016.9912%208.67814%2016.9912%206C16.9912%203%2014.5%201%2011.9912%201C9.48242%201%206.99121%203%206.99121%206C6.99121%208.68159%207.70777%2010.7879%208.75931%2012.1647C4.60309%2013.7964%202%2015.4951%202%2017.5C2%2019.9852%205%2021.9999%2012%2022C19%2022%2022%2019.9852%2022%2017.5C22%2015.4929%2019.3913%2013.7927%2015.2272%2012.1594Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); } +i.icon.icon-users { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M16%207C16%209.34102%2015.4162%2011.1346%2014.6143%2012.3121C13.8071%2013.4974%2012.8337%2014%2012%2014C11.1663%2014%2010.1929%2013.4974%209.38574%2012.3121C8.5838%2011.1346%208%209.34102%208%207C8%204.61508%209.97853%203%2012%203C14.0215%203%2016%204.61508%2016%207ZM15.1891%2013.2201C14.2865%2014.375%2013.1451%2015%2012%2015C10.8549%2015%209.71347%2014.375%208.81092%2013.2201C7.40473%2013.7844%206.21268%2014.3488%205.26963%2014.9224C3.55256%2015.9667%203%2016.8326%203%2017.5C3%2018.2545%203.4257%2019.0877%204.82302%2019.7879C6.25015%2020.5031%208.57272%2020.9999%2012%2021C15.4273%2021%2017.7499%2020.5031%2019.177%2019.7879C20.5743%2019.0877%2021%2018.2545%2021%2017.5C21%2016.8326%2020.4474%2015.9667%2018.7304%2014.9224C17.7873%2014.3488%2016.5953%2013.7844%2015.1891%2013.2201ZM15.7544%2012.37C16.5137%2011.0279%2017%209.20917%2017%207C17%204%2014.5088%202%2012%202C9.49121%202%207%204%207%207C7%209.20917%207.48633%2011.0279%208.24563%2012.37C4.38973%2013.9392%202%2015.579%202%2017.5C2%2019.9852%205%2021.9999%2012%2022C19%2022%2022%2019.9852%2022%2017.5C22%2015.579%2019.6103%2013.9392%2015.7544%2012.37Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); +} +i.icon.icon-review { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M3%203H20V7H19V4H4V20H19V14H20V21H3V3Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M16%208H7V7H16V8Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M7%2010H16V9H7V10Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M14%2012H7V11H14V12Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M7%2014H12V13H7V14Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M11%2016H7V15H11V16Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M13%2015.5V17H14.5L22.5%209L21%207.5L13%2015.5Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); +} +i.icon.icon-review-changes { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M19%2010H5V9H19V10Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M19%2013H5V12H19V13Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M19%2016H5V15H19V16Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%206H3V19H21V6ZM3%205H2V6V19V20H3H21H22V19V6V5H21H3Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); +} +i.icon.icon-accept-changes { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2020L9%2017L8%2018L12%2022L22%2012L21%2011L12%2020Z%22%20fill%3D%22%2340865C%22%2F%3E%3Cpath%20d%3D%22M19%209H5V8H19V9Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M16%2012H5V11H16V12Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M14%2015H5V14H14V15Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M3%205H21V9H22V5V4H21H3H2V5V19V20H3H6V19H3V5Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); +} +i.icon.icon-reject-changes { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M13%2011L12%2012L16%2016L12%2020L13%2021L17%2017L21%2021L22%2020L18%2016L22%2012L21%2011L17%2015L13%2011Z%22%20fill%3D%22%23AA5252%22%2F%3E%3Cpath%20d%3D%22M19%209H5V8H19V9Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M10%2012H5V11H10V12Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M10%2015H5V14H10V15Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M3%205H21V9H22V5V4H21H3H2V5V19V20H3H10V19H3V5Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); +} i.icon.icon-accept { width: 24px; height: 24px; @@ -7062,11 +7555,6 @@ i.icon.icon-goto { height: 24px; background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%203H3V21H21V3ZM3%202H2V3V21V22H3H21H22V21V3V2H21H3ZM15.2929%208H9V7H16.5H17V7.5V15H16V8.70711L7.35355%2017.3536L6.64645%2016.6464L15.2929%208Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); } -i.icon.icon-delete-change { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M9.5%201H9V1.5V3H5H4H2V4H4V21V22H5H19H20V21V4H22V3H20H19H15V1.5V1H14.5H9.5ZM14%203V2H10V3H14ZM5%204H19V21H5V4ZM7%206H8V19H7V6ZM11%206H10V19H11V6ZM13%206H14V19H13V6ZM17%206H16V19H17V6Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} i.icon.icon-app-settings { width: 24px; height: 24px; @@ -7092,6 +7580,66 @@ i.icon.icon-paste { height: 24px; background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5%202H0V20H9V24H24V7H19V2H14V3H18V7H9V19H1V3H5V2ZM10%208H23V23H10V8Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20d%3D%22M5%200H14V5H5V0Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2012H12V11H21V12Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2016H12V15H21V16Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2020H12V19H21V20Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E"); } +i.icon.icon-menu-comment { + width: 30px; + height: 30px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2230%22%20height%3D%2230%22%20viewBox%3D%220%200%2030%2030%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M10%2015C10%2016.6569%208.65685%2018%207%2018C5.34315%2018%204%2016.6569%204%2015C4%2013.3431%205.34315%2012%207%2012C8.65685%2012%2010%2013.3431%2010%2015ZM7%2016.7143C7.94677%2016.7143%208.71429%2015.9468%208.71429%2015C8.71429%2014.0532%207.94677%2013.2857%207%2013.2857C6.05323%2013.2857%205.28571%2014.0532%205.28571%2015C5.28571%2015.9468%206.05323%2016.7143%207%2016.7143Z%22%20fill%3D%22%23A3A3A3%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M18%2015C18%2016.6569%2016.6569%2018%2015%2018C13.3431%2018%2012%2016.6569%2012%2015C12%2013.3431%2013.3431%2012%2015%2012C16.6569%2012%2018%2013.3431%2018%2015ZM15%2016.7143C15.9468%2016.7143%2016.7143%2015.9468%2016.7143%2015C16.7143%2014.0532%2015.9468%2013.2857%2015%2013.2857C14.0532%2013.2857%2013.2857%2014.0532%2013.2857%2015C13.2857%2015.9468%2014.0532%2016.7143%2015%2016.7143Z%22%20fill%3D%22%23A3A3A3%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M26%2015C26%2016.6569%2024.6569%2018%2023%2018C21.3431%2018%2020%2016.6569%2020%2015C20%2013.3431%2021.3431%2012%2023%2012C24.6569%2012%2026%2013.3431%2026%2015ZM23%2016.7143C23.9468%2016.7143%2024.7143%2015.9468%2024.7143%2015C24.7143%2014.0532%2023.9468%2013.2857%2023%2013.2857C22.0532%2013.2857%2021.2857%2014.0532%2021.2857%2015C21.2857%2015.9468%2022.0532%2016.7143%2023%2016.7143Z%22%20fill%3D%22%23A3A3A3%22%2F%3E%3C%2Fsvg%3E"); +} +i.icon.icon-resolve-comment { + width: 30px; + height: 30px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2230%22%20height%3D%2230%22%20viewBox%3D%220%200%2030%2030%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M11.6195%2020.8555C11.8237%2021.0673%2012.1658%2021.0577%2012.358%2020.8349L22.516%209.05783C22.7843%208.74676%2022.7528%208.27781%2022.4453%208.00545C22.1315%207.72756%2021.651%207.7604%2021.3779%208.07839L12.3546%2018.587C12.1638%2018.8092%2011.8238%2018.8206%2011.6186%2018.6117L8.10643%2015.0366C7.81574%2014.7407%207.34084%2014.7345%207.04258%2015.0228C6.74283%2015.3125%206.73444%2015.7903%207.02383%2016.0904L11.6195%2020.8555Z%22%20fill%3D%22%23A3A3A3%22%2F%3E%3C%2Fsvg%3E"); +} +i.icon.icon-resolve-comment.check { + width: 30px; + height: 30px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2230%22%20height%3D%2230%22%20viewBox%3D%220%200%2030%2030%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M0%200H30V30H0V0Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M11.6195%2020.8555C11.8237%2021.0673%2012.1658%2021.0577%2012.358%2020.8349L22.516%209.05783C22.7843%208.74676%2022.7528%208.27781%2022.4453%208.00545V8.00545C22.1315%207.72756%2021.651%207.7604%2021.3779%208.07839L12.3546%2018.587C12.1638%2018.8092%2011.8238%2018.8206%2011.6186%2018.6117L8.10643%2015.0366C7.81575%2014.7407%207.34084%2014.7345%207.04258%2015.0228V15.0228C6.74283%2015.3125%206.73444%2015.7903%207.02383%2016.0904L11.6195%2020.8555Z%22%20fill%3D%22%234cd964%22%2F%3E%3C%2Fsvg%3E"); +} +i.icon.icon-insert-comment { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M20.1538%209.00708H11.8462C10.8266%209.00708%2010%209.83461%2010%2010.8554V15.1694C10%2016.1902%2010.8266%2017.0177%2011.8462%2017.0177H13.8329C13.9409%2017.0177%2014.0454%2017.0556%2014.1284%2017.1248L18.243%2020.392C18.5436%2020.6428%2019%2020.4288%2019%2020.037V17.4798C19%2017.2246%2019.2066%2017.0177%2019.4615%2017.0177H20.1538C21.1734%2017.0177%2022%2016.1902%2022%2015.1694V10.8554C22%209.83461%2021.1734%209.00708%2020.1538%209.00708ZM20%2010.0083C20.5523%2010.0083%2021%2010.4565%2021%2011.0095V15.0154C21%2015.5683%2020.5523%2016.0165%2020%2016.0165H18.0025L18%2018.8995C18%2019.2912%2018%2019%2018%2019L14.5%2016.0165H12C11.4477%2016.0165%2011%2015.5683%2011%2015.0154V11.0095C11%2010.4565%2011.4477%2010.0083%2012%2010.0083H20Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M14.5%203H4.5C3.18908%203%202%204.2153%202%205.50295V12.0346C2%2013.3222%203.18908%2014.013%204.5%2014.013H5.5C5.82773%2014.013%206%2014.1917%206%2014.5136V17.5183C6%2018.0125%206.6135%2018.3352%207%2018.0189L11%2014.9858V13.5L7%2016.5V13.0118H4.5C3.78992%2013.0118%203%2012.732%203%2012.0346V5.50295C3%204.80547%203.78992%204.00118%204.5%204.00118H14.5C15.2101%204.00118%2016%204.80547%2016%205.50295V8.0059H17V5.50295C17%204.2153%2015.8109%203%2014.5%203Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); +} +i.icon.icon-add-table { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M4%205.59998H11.2V8.79998H4V5.59998Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M12.8%205.59998H20V8.79998H12.8V5.59998Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M4%2010.4H11.2V13.6H4V10.4Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M12.8%2010.4H20V13.6H12.8V10.4Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M4%2015.2H11.2V18.4H4V15.2Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M12.8%2015.2H20V18.4H12.8V15.2Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); +} +i.icon.icon-add-shape { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cellipse%20cx%3D%2215.3333%22%20cy%3D%2214.4002%22%20rx%3D%225.66667%22%20ry%3D%225.60002%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5%204.80005C4.44772%204.80005%204%205.24776%204%205.80005V15.8001C4%2016.3524%204.44771%2016.8001%205%2016.8001H9.32787C9.02431%2016.059%208.85714%2015.2488%208.85714%2014.4001C8.85714%2010.8655%2011.7566%208.00012%2015.3333%208.00012C15.8924%208.00012%2016.4349%208.07013%2016.9524%208.20175V5.80005C16.9524%205.24776%2016.5047%204.80005%2015.9524%204.80005H5Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); +} +i.icon.icon-add-image { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5.79177%2016.6667L8.87529%2013.1667L11.1254%2015.5L14.2089%2012L18.2092%2016.6667H5.79177ZM19.4593%2018.526C19.8204%2018.2101%2020.001%2017.8455%2020.001%2017.4323V6.56771C20.001%206.15451%2019.8204%205.78993%2019.4593%205.47396C19.0981%205.15799%2018.6814%205%2018.2092%205H5.79177C5.31952%205%204.90283%205.15799%204.5417%205.47396C4.18057%205.78993%204%206.15451%204%206.56771V17.4323C4%2017.8455%204.18057%2018.2101%204.5417%2018.526C4.90283%2018.842%205.31952%2019%205.79177%2019H18.2092C18.6814%2019%2019.0981%2018.842%2019.4593%2018.526ZM8.79933%2011.2222C9.68304%2011.2222%2010.3994%2010.5258%2010.3994%209.66667C10.3994%208.80756%209.68304%208.11111%208.79933%208.11111C7.91562%208.11111%207.19923%208.80756%207.19923%209.66667C7.19923%2010.5258%207.91562%2011.2222%208.79933%2011.2222Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); +} +i.icon.icon-add-other { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7.00049%2018C7.00049%2018.8284%206.32892%2019.5%205.50049%2019.5C4.67206%2019.5%204.00049%2018.8284%204.00049%2018C4.00049%2017.1716%204.67206%2016.5%205.50049%2016.5C6.32892%2016.5%207.00049%2017.1716%207.00049%2018ZM13.5005%2018C13.5005%2018.8284%2012.8289%2019.5%2012.0005%2019.5C11.1721%2019.5%2010.5005%2018.8284%2010.5005%2018C10.5005%2017.1716%2011.1721%2016.5%2012.0005%2016.5C12.8289%2016.5%2013.5005%2017.1716%2013.5005%2018ZM18.5005%2019.5C19.3289%2019.5%2020.0005%2018.8284%2020.0005%2018C20.0005%2017.1716%2019.3289%2016.5%2018.5005%2016.5C17.6721%2016.5%2017.0005%2017.1716%2017.0005%2018C17.0005%2018.8284%2017.6721%2019.5%2018.5005%2019.5Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); +} +.active i.icon.icon-add-table { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M4%205.59998H11.2V8.79998H4V5.59998Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20d%3D%22M12.8%205.59998H20V8.79998H12.8V5.59998Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20d%3D%22M4%2010.4H11.2V13.6H4V10.4Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20d%3D%22M12.8%2010.4H20V13.6H12.8V10.4Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20d%3D%22M4%2015.2H11.2V18.4H4V15.2Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20d%3D%22M12.8%2015.2H20V18.4H12.8V15.2Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E"); +} +.active i.icon.icon-add-shape { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cellipse%20cx%3D%2215.3333%22%20cy%3D%2214.4002%22%20rx%3D%225.66667%22%20ry%3D%225.60002%22%20fill%3D%22white%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5%204.80005C4.44772%204.80005%204%205.24776%204%205.80005V15.8001C4%2016.3524%204.44771%2016.8001%205%2016.8001H9.32787C9.02431%2016.059%208.85714%2015.2488%208.85714%2014.4001C8.85714%2010.8655%2011.7566%208.00012%2015.3333%208.00012C15.8924%208.00012%2016.4349%208.07013%2016.9524%208.20175V5.80005C16.9524%205.24776%2016.5047%204.80005%2015.9524%204.80005H5Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E"); +} +.active i.icon.icon-add-image { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5.79177%2016.6667L8.87529%2013.1667L11.1254%2015.5L14.2089%2012L18.2092%2016.6667H5.79177ZM19.4593%2018.526C19.8204%2018.2101%2020.001%2017.8455%2020.001%2017.4323V6.56771C20.001%206.15451%2019.8204%205.78993%2019.4593%205.47396C19.0981%205.15799%2018.6814%205%2018.2092%205H5.79177C5.31952%205%204.90283%205.15799%204.5417%205.47396C4.18057%205.78993%204%206.15451%204%206.56771V17.4323C4%2017.8455%204.18057%2018.2101%204.5417%2018.526C4.90283%2018.842%205.31952%2019%205.79177%2019H18.2092C18.6814%2019%2019.0981%2018.842%2019.4593%2018.526ZM8.79933%2011.2222C9.68304%2011.2222%2010.3994%2010.5258%2010.3994%209.66667C10.3994%208.80756%209.68304%208.11111%208.79933%208.11111C7.91562%208.11111%207.19923%208.80756%207.19923%209.66667C7.19923%2010.5258%207.91562%2011.2222%208.79933%2011.2222Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E"); +} +.active i.icon.icon-add-other { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7.00049%2018C7.00049%2018.8284%206.32892%2019.5%205.50049%2019.5C4.67206%2019.5%204.00049%2018.8284%204.00049%2018C4.00049%2017.1716%204.67206%2016.5%205.50049%2016.5C6.32892%2016.5%207.00049%2017.1716%207.00049%2018ZM13.5005%2018C13.5005%2018.8284%2012.8289%2019.5%2012.0005%2019.5C11.1721%2019.5%2010.5005%2018.8284%2010.5005%2018C10.5005%2017.1716%2011.1721%2016.5%2012.0005%2016.5C12.8289%2016.5%2013.5005%2017.1716%2013.5005%2018ZM18.5005%2019.5C19.3289%2019.5%2020.0005%2018.8284%2020.0005%2018C20.0005%2017.1716%2019.3289%2016.5%2018.5005%2016.5C17.6721%2016.5%2017.0005%2017.1716%2017.0005%2018C17.0005%2018.8284%2017.6721%2019.5%2018.5005%2019.5Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E"); +} .label-switch input[type="checkbox"]:checked + .checkbox { background: #446995; } diff --git a/apps/documenteditor/mobile/resources/css/app-material.css b/apps/documenteditor/mobile/resources/css/app-material.css index d8f72f303..65118842b 100644 --- a/apps/documenteditor/mobile/resources/css/app-material.css +++ b/apps/documenteditor/mobile/resources/css/app-material.css @@ -5986,7 +5986,7 @@ html.phone .document-menu .list-block .item-link { word-wrap: break-word; } .page-change #user-name { - font-size: 17px; + font-size: 16px; line-height: 22px; color: #000000; margin: 0; @@ -6006,25 +6006,54 @@ html.phone .document-menu .list-block .item-link { margin-top: 10px; } .page-change .block-btn { + position: absolute; + bottom: 0; display: flex; flex-direction: row; - justify-content: space-around; + justify-content: space-between; margin: 0; - padding: 26px 0; - background-color: #EFEFF4; + width: 100%; + height: 56px; + align-items: center; + box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2); } -.page-change .block-btn #btn-next-change, .page-change .block-btn #btn-reject-change { - margin-left: 20px; + margin-left: 15px; } -.page-change .block-btn #btn-goto-change { - margin-right: 20px; -} -.page-change .block-btn .right-buttons { +.page-change .block-btn .change-buttons, +.page-change .block-btn .accept-reject, +.page-change .block-btn .next-prev { display: flex; } .page-change .block-btn .link { - display: inline-block; + position: relative; + display: flex; + justify-content: center; + align-items: center; + font-size: 14px; + text-transform: uppercase; + font-weight: 500; + height: 56px; + min-width: 48px; +} +.page-change .header-change { + display: flex; + justify-content: flex-start; + padding-right: 16px; +} +.page-change .header-change .initials-change { + height: 40px; + width: 40px; + border-radius: 50px; + color: #FFFFFF; + display: flex; + justify-content: center; + align-items: center; + margin-right: 16px; + font-size: 18px; +} +.page-change #no-changes { + padding: 16px; } .container-collaboration .navbar .right.close-collaboration { position: absolute; @@ -6033,6 +6062,10 @@ html.phone .document-menu .list-block .item-link { .container-collaboration .page-content .list-block:first-child { margin-top: -1px; } +.page-display-mode .list-block .item-subtitle { + font-size: 14px; + color: #9e9e9e; +} #user-list .item-content { padding-left: 0; } @@ -6056,23 +6089,122 @@ html.phone .document-menu .list-block .item-link { #user-list ul:before { content: none; } -.page-comments .list-block .item-inner { +.page-comments .list-block ul:before, +.page-add-comment .list-block ul:before, +.page-view-comments .list-block ul:before, +.container-edit-comment .list-block ul:before, +.container-add-reply .list-block ul:before, +.page-edit-comment .list-block ul:before, +.page-add-reply .list-block ul:before, +.page-edit-reply .list-block ul:before, +.page-comments .list-block ul:after, +.page-add-comment .list-block ul:after, +.page-view-comments .list-block ul:after, +.container-edit-comment .list-block ul:after, +.container-add-reply .list-block ul:after, +.page-edit-comment .list-block ul:after, +.page-add-reply .list-block ul:after, +.page-edit-reply .list-block ul:after { + content: none; +} +.page-comments .list-block .item-inner, +.page-add-comment .list-block .item-inner, +.page-view-comments .list-block .item-inner, +.container-edit-comment .list-block .item-inner, +.container-add-reply .list-block .item-inner, +.page-edit-comment .list-block .item-inner, +.page-add-reply .list-block .item-inner, +.page-edit-reply .list-block .item-inner { display: block; padding: 16px 0; word-wrap: break-word; } -.page-comments p { - margin: 0; +.page-comments .list-block .item-inner:after, +.page-add-comment .list-block .item-inner:after, +.page-view-comments .list-block .item-inner:after, +.container-edit-comment .list-block .item-inner:after, +.container-add-reply .list-block .item-inner:after, +.page-edit-comment .list-block .item-inner:after, +.page-add-reply .list-block .item-inner:after, +.page-edit-reply .list-block .item-inner:after { + content: none; } -.page-comments .user-name { - font-size: 17px; +.page-comments p, +.page-add-comment p, +.page-view-comments p, +.container-edit-comment p, +.container-add-reply p, +.page-edit-comment p, +.page-add-reply p, +.page-edit-reply p { + margin: 0; + word-break: break-word; +} +.page-comments .list-reply, +.page-add-comment .list-reply, +.page-view-comments .list-reply, +.container-edit-comment .list-reply, +.container-add-reply .list-reply, +.page-edit-comment .list-reply, +.page-add-reply .list-reply, +.page-edit-reply .list-reply { + padding-left: 26px; +} +.page-comments .reply-textarea, +.page-add-comment .reply-textarea, +.page-view-comments .reply-textarea, +.container-edit-comment .reply-textarea, +.container-add-reply .reply-textarea, +.page-edit-comment .reply-textarea, +.page-add-reply .reply-textarea, +.page-edit-reply .reply-textarea, +.page-comments .comment-textarea, +.page-add-comment .comment-textarea, +.page-view-comments .comment-textarea, +.container-edit-comment .comment-textarea, +.container-add-reply .comment-textarea, +.page-edit-comment .comment-textarea, +.page-add-reply .comment-textarea, +.page-edit-reply .comment-textarea, +.page-comments .edit-reply-textarea, +.page-add-comment .edit-reply-textarea, +.page-view-comments .edit-reply-textarea, +.container-edit-comment .edit-reply-textarea, +.container-add-reply .edit-reply-textarea, +.page-edit-comment .edit-reply-textarea, +.page-add-reply .edit-reply-textarea, +.page-edit-reply .edit-reply-textarea { + resize: vertical; +} +.page-comments .user-name, +.page-add-comment .user-name, +.page-view-comments .user-name, +.container-edit-comment .user-name, +.container-add-reply .user-name, +.page-edit-comment .user-name, +.page-add-reply .user-name, +.page-edit-reply .user-name { + font-size: 16px; line-height: 22px; color: #000000; margin: 0; - font-weight: bold; } .page-comments .comment-date, -.page-comments .reply-date { +.page-add-comment .comment-date, +.page-view-comments .comment-date, +.container-edit-comment .comment-date, +.container-add-reply .comment-date, +.page-edit-comment .comment-date, +.page-add-reply .comment-date, +.page-edit-reply .comment-date, +.page-comments .reply-date, +.page-add-comment .reply-date, +.page-view-comments .reply-date, +.container-edit-comment .reply-date, +.container-add-reply .reply-date, +.page-edit-comment .reply-date, +.page-add-reply .reply-date, +.page-edit-reply .reply-date { font-size: 12px; line-height: 18px; color: #6d6d72; @@ -6080,7 +6212,21 @@ html.phone .document-menu .list-block .item-link { margin-top: 0px; } .page-comments .comment-text, -.page-comments .reply-text { +.page-add-comment .comment-text, +.page-view-comments .comment-text, +.container-edit-comment .comment-text, +.container-add-reply .comment-text, +.page-edit-comment .comment-text, +.page-add-reply .comment-text, +.page-edit-reply .comment-text, +.page-comments .reply-text, +.page-add-comment .reply-text, +.page-view-comments .reply-text, +.container-edit-comment .reply-text, +.container-add-reply .reply-text, +.page-edit-comment .reply-text, +.page-add-reply .reply-text, +.page-edit-reply .reply-text { color: #000000; font-size: 15px; line-height: 25px; @@ -6088,37 +6234,442 @@ html.phone .document-menu .list-block .item-link { max-width: 100%; padding-right: 15px; } -.page-comments .reply-item { - margin-top: 15px; +.page-comments .reply-item, +.page-add-comment .reply-item, +.page-view-comments .reply-item, +.container-edit-comment .reply-item, +.container-add-reply .reply-item, +.page-edit-comment .reply-item, +.page-add-reply .reply-item, +.page-edit-reply .reply-item { + padding-right: 16px; + padding-top: 13px; } -.page-comments .reply-item .user-name { - padding-top: 16px; +.page-comments .reply-item .header-reply, +.page-add-comment .reply-item .header-reply, +.page-view-comments .reply-item .header-reply, +.container-edit-comment .reply-item .header-reply, +.container-add-reply .reply-item .header-reply, +.page-edit-comment .reply-item .header-reply, +.page-add-reply .reply-item .header-reply, +.page-edit-reply .reply-item .header-reply { + display: flex; + justify-content: space-between; } -.page-comments .reply-item:before { +.page-comments .reply-item .user-name, +.page-add-comment .reply-item .user-name, +.page-view-comments .reply-item .user-name, +.container-edit-comment .reply-item .user-name, +.container-add-reply .reply-item .user-name, +.page-edit-comment .reply-item .user-name, +.page-add-reply .reply-item .user-name, +.page-edit-reply .reply-item .user-name { + padding-top: 3px; +} +.page-comments .comment-quote, +.page-add-comment .comment-quote, +.page-view-comments .comment-quote, +.container-edit-comment .comment-quote, +.container-add-reply .comment-quote, +.page-edit-comment .comment-quote, +.page-add-reply .comment-quote, +.page-edit-reply .comment-quote { + color: #446995; + border-left: 1px solid #446995; + padding-left: 10px; + padding-right: 16px; + margin: 5px 0; + font-size: 15px; +} +.page-comments .wrap-comment, +.page-add-comment .wrap-comment, +.page-view-comments .wrap-comment, +.container-edit-comment .wrap-comment, +.container-add-reply .wrap-comment, +.page-edit-comment .wrap-comment, +.page-add-reply .wrap-comment, +.page-edit-reply .wrap-comment, +.page-comments .wrap-reply, +.page-add-comment .wrap-reply, +.page-view-comments .wrap-reply, +.container-edit-comment .wrap-reply, +.container-add-reply .wrap-reply, +.page-edit-comment .wrap-reply, +.page-add-reply .wrap-reply, +.page-edit-reply .wrap-reply { + padding: 16px 24px 0 16px; +} +.page-comments .comment-textarea, +.page-add-comment .comment-textarea, +.page-view-comments .comment-textarea, +.container-edit-comment .comment-textarea, +.container-add-reply .comment-textarea, +.page-edit-comment .comment-textarea, +.page-add-reply .comment-textarea, +.page-edit-reply .comment-textarea, +.page-comments .reply-textarea, +.page-add-comment .reply-textarea, +.page-view-comments .reply-textarea, +.container-edit-comment .reply-textarea, +.container-add-reply .reply-textarea, +.page-edit-comment .reply-textarea, +.page-add-reply .reply-textarea, +.page-edit-reply .reply-textarea, +.page-comments .edit-reply-textarea, +.page-add-comment .edit-reply-textarea, +.page-view-comments .edit-reply-textarea, +.container-edit-comment .edit-reply-textarea, +.container-add-reply .edit-reply-textarea, +.page-edit-comment .edit-reply-textarea, +.page-add-reply .edit-reply-textarea, +.page-edit-reply .edit-reply-textarea { + margin-top: 10px; + background: transparent; + outline: none; + width: 100%; + font-size: 15px; + border: 1px solid #c4c4c4; + border-radius: 3px; + min-height: 100px; +} +.page-comments .header-comment, +.page-add-comment .header-comment, +.page-view-comments .header-comment, +.container-edit-comment .header-comment, +.container-add-reply .header-comment, +.page-edit-comment .header-comment, +.page-add-reply .header-comment, +.page-edit-reply .header-comment { + display: flex; + justify-content: space-between; + padding-right: 16px; +} +.page-comments .header-comment .comment-right, +.page-add-comment .header-comment .comment-right, +.page-view-comments .header-comment .comment-right, +.container-edit-comment .header-comment .comment-right, +.container-add-reply .header-comment .comment-right, +.page-edit-comment .header-comment .comment-right, +.page-add-reply .header-comment .comment-right, +.page-edit-reply .header-comment .comment-right { + display: flex; + justify-content: space-between; + width: 70px; +} +.page-comments .header-comment .comment-left, +.page-add-comment .header-comment .comment-left, +.page-view-comments .header-comment .comment-left, +.container-edit-comment .header-comment .comment-left, +.container-add-reply .header-comment .comment-left, +.page-edit-comment .header-comment .comment-left, +.page-add-reply .header-comment .comment-left, +.page-edit-reply .header-comment .comment-left { + display: flex; + justify-content: space-between; +} +.page-comments .header-comment .initials-comment, +.page-add-comment .header-comment .initials-comment, +.page-view-comments .header-comment .initials-comment, +.container-edit-comment .header-comment .initials-comment, +.container-add-reply .header-comment .initials-comment, +.page-edit-comment .header-comment .initials-comment, +.page-add-reply .header-comment .initials-comment, +.page-edit-reply .header-comment .initials-comment { + height: 40px; + width: 40px; + border-radius: 50px; + color: #FFFFFF; + display: flex; + justify-content: center; + align-items: center; + margin-right: 16px; + font-size: 18px; +} +.page-comments .header-reply .reply-left, +.page-add-comment .header-reply .reply-left, +.page-view-comments .header-reply .reply-left, +.container-edit-comment .header-reply .reply-left, +.container-add-reply .header-reply .reply-left, +.page-edit-comment .header-reply .reply-left, +.page-add-reply .header-reply .reply-left, +.page-edit-reply .header-reply .reply-left { + display: flex; + justify-content: space-between; + align-items: flex-start; +} +.page-comments .header-reply .initials-reply, +.page-add-comment .header-reply .initials-reply, +.page-view-comments .header-reply .initials-reply, +.container-edit-comment .header-reply .initials-reply, +.container-add-reply .header-reply .initials-reply, +.page-edit-comment .header-reply .initials-reply, +.page-add-reply .header-reply .initials-reply, +.page-edit-reply .header-reply .initials-reply { + width: 24px; + height: 24px; + color: #FFFFFF; + font-size: 11px; + display: flex; + justify-content: center; + align-items: center; + margin-right: 16px; + border-radius: 50px; + margin-top: 5px; +} +.settings.popup .list-block ul.list-reply:last-child:after, +.settings.popover .list-block ul.list-reply:last-child:after { + display: none; +} +.container-view-comment { + position: fixed; + -webkit-transition: height 100ms; + transition: height 100ms; + background-color: #FFFFFF; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + height: 50%; + box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2), 0px 4px 5px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14); +} +.container-view-comment .page-view-comments { + background-color: #FFFFFF; +} +.container-view-comment .page-view-comments .list-block { + margin-bottom: 120px; +} +.container-view-comment .page-view-comments .list-block ul:before, +.container-view-comment .page-view-comments .list-block ul:after { + content: none; +} +.container-view-comment .page-view-comments .list-block .item-inner { + padding: 0; +} +.container-view-comment .toolbar { + position: fixed; + background-color: #FFFFFF; + box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2), 0px 4px 5px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14); +} +.container-view-comment .toolbar.toolbar-bottom { + top: auto; +} +.container-view-comment .toolbar:before { + content: none; +} +.container-view-comment .toolbar a.link { + color: #446995; + font-size: 16px; +} +.container-view-comment .toolbar .toolbar-inner { + display: flex; + justify-content: space-between; + padding: 0 16px; +} +.container-view-comment .toolbar .toolbar-inner .button-left { + min-width: 80px; +} +.container-view-comment .toolbar .toolbar-inner .button-right { + min-width: 62px; + display: flex; + justify-content: space-between; +} +.container-view-comment .toolbar .toolbar-inner .button-right a { + padding: 0 8px; +} +.container-view-comment .swipe-container { + display: flex; + justify-content: center; + height: 40px; +} +.container-view-comment .swipe-container .icon-swipe { + margin-top: 8px; + width: 40px; + height: 4px; + background: rgba(0, 0, 0, 0.12); + border-radius: 2px; +} +.container-view-comment .list-block { + margin-top: 0; +} +.container-view-comment.popover { + position: absolute; + border-radius: 4px; + min-height: 170px; + height: 400px; + max-height: 600px; +} +.container-view-comment.popover .toolbar { + position: absolute; + border-radius: 0 0 4px 4px; +} +.container-view-comment.popover .toolbar .toolbar-inner { + padding-right: 0; +} +.container-view-comment.popover .pages { + position: absolute; +} +.container-view-comment.popover .pages .page { + border-radius: 13px; +} +.container-view-comment.popover .pages .page .page-content { + padding: 16px; + padding-bottom: 80px; +} +.container-view-comment.popover .pages .page .page-content .list-block { + margin-bottom: 0px; +} +.container-view-comment.popover .pages .page .page-content .list-block .item-content { + padding-left: 0; +} +.container-view-comment.popover .pages .page .page-content .list-block .item-content .header-comment, +.container-view-comment.popover .pages .page .page-content .list-block .item-content .reply-item { + padding-right: 0; +} +.container-view-comment.popover .pages .page .page-content .block-reply { + margin-top: 10px; +} +.container-view-comment.popover .pages .page .page-content .block-reply .reply-textarea { + min-height: 70px; + width: 278px; + border: 1px solid #c4c4c4; + border-radius: 6px; + padding: 5px; +} +.container-view-comment.popover .pages .page .page-content .edit-reply-textarea { + min-height: 60px; + width: 100%; + border: 1px solid #c4c4c4; + border-radius: 6px; + padding: 5px; + height: 60px; + margin-top: 10px; +} +.container-view-comment.popover .pages .page .page-content .comment-text { + padding-right: 0; +} +.container-view-comment.popover .pages .page .page-content .comment-text .comment-textarea { + border: 1px solid #c4c4c4; + border-radius: 6px; + padding: 8px; + min-height: 80px; + height: 80px; +} +#done-comment { + padding: 0 16px; +} +.page-add-comment .wrap-comment, +.page-add-comment .wrap-reply { + padding: 16px 24px 0 16px; +} +.page-add-comment .wrap-comment .header-comment, +.page-add-comment .wrap-reply .header-comment { + justify-content: flex-start; +} +.page-add-comment .wrap-comment .user-name, +.page-add-comment .wrap-reply .user-name { + font-size: 17px; + font-weight: bold; +} +.page-add-comment .wrap-comment .comment-date, +.page-add-comment .wrap-reply .comment-date { + font-size: 13px; + color: #6d6d72; +} +.page-add-comment .wrap-comment .wrap-textarea, +.page-add-comment .wrap-reply .wrap-textarea { + margin-top: 16px; + padding-right: 6px; +} +.page-add-comment .wrap-comment .wrap-textarea .comment-textarea, +.page-add-comment .wrap-reply .wrap-textarea .comment-textarea { + font-size: 17px; + border: none; + margin-top: 0; + min-height: 100px; + border-radius: 4px; +} +.page-add-comment .wrap-comment .wrap-textarea .comment-textarea::placeholder, +.page-add-comment .wrap-reply .wrap-textarea .comment-textarea::placeholder { + color: #9e9e9e; + font-size: 17px; +} +.container-edit-comment, +.container-add-reply { + height: 100%; +} +.container-edit-comment .navbar:after, +.container-add-reply .navbar:after { content: ''; position: absolute; - left: auto; + left: 0; bottom: 0; right: auto; - top: 0; + top: auto; height: 1px; width: 100%; - background-color: rgba(0, 0, 0, 0.12); + background-color: #c4c4c4; 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; +.container-edit-comment .navbar .navbar-inner, +.container-add-reply .navbar .navbar-inner { + justify-content: space-between; } -.settings.popup .list-block ul.list-reply:last-child:after, -.settings.popover .list-block ul.list-reply:last-child:after { - display: none; +.container-edit-comment .navbar a.link i + span, +.container-add-reply .navbar a.link i + span { + margin-left: 0; +} +.container-edit-comment .navbar .center, +.container-add-reply .navbar .center { + font-size: 18px; +} +.container-edit-comment .navbar .right, +.container-add-reply .navbar .right { + margin-left: 0; +} +.container-edit-comment .page-add-comment, +.container-add-reply .page-add-comment { + background-color: #FFFFFF; +} +.container-edit-comment .header-comment, +.container-add-reply .header-comment { + justify-content: flex-start; +} +.actions-modal-button.color-red { + color: #f44336; +} +.page-edit-comment, +.page-add-reply, +.page-edit-reply { + background-color: #FFFFFF; +} +.page-edit-comment .header-comment, +.page-add-reply .header-comment, +.page-edit-reply .header-comment { + justify-content: flex-start; +} +.page-edit-comment .navbar .right, +.page-add-reply .navbar .right, +.page-edit-reply .navbar .right { + height: 100%; +} +.page-edit-comment .navbar .right #add-new-reply, +.page-add-reply .navbar .right #add-new-reply, +.page-edit-reply .navbar .right #add-new-reply, +.page-edit-comment .navbar .right #edit-comment, +.page-add-reply .navbar .right #edit-comment, +.page-edit-reply .navbar .right #edit-comment, +.page-edit-comment .navbar .right #edit-reply, +.page-add-reply .navbar .right #edit-reply, +.page-edit-reply .navbar .right #edit-reply { + display: flex; + align-items: center; + padding-left: 16px; + padding-right: 16px; + height: 100%; +} +.container-edit-comment { + position: fixed; } .tablet .searchbar.document.replace .center > .replace { display: flex; @@ -6336,32 +6887,32 @@ i.icon.icon-table-remove-row { i.icon.icon-pagebreak { width: 22px; height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M8%2C14v1h1v-1H8z%20M6%2C14v1h1v-1H6z%20M18%2C21H3v-6H2v7h17v-7h-1V21z%20M4%2C14v1h1v-1H4z%20M14%2C14v1h1v-1H14z%20M10%2C14v1h1v-1H10z%20M8.2%2C1L2%2C7.6V14h1V9h6V2l0%2C0h9v12h1V1H8.2z%20M8%2C8H3.1L8%2C2.8V8z%20M12%2C14v1h1v-1H12z%20M16%2C14v1h1v-1H16z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url(%23clip0)%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M6%208L10%207.99531V4L6%208ZM10%2010H6V11H4V7L9%202H18C18.5302%202%2018.9864%202.20344%2019.3918%202.61033C19.7661%202.98592%2020%203.46792%2020%204V11H18V4H12V8C12%209.10457%2011.1046%2010%2010%2010ZM6%2017V20.0282L18%2020V17H20V20C20%2020.5321%2019.7973%2021.0297%2019.3918%2021.4366C18.9864%2021.8122%2018.5302%2022%2018%2022H6C5.46979%2022%205.01364%2021.8122%204.60819%2021.4366C4.20273%2021.0297%204%2020.5266%204%2019.9945V17H6Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M3%2013H7V15H3V13Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M9%2013H15V15H9V13Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M17%2013H21V15H17V13Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22clip0%22%3E%3Cpath%20d%3D%22M0.000488281%200H24.0005V24H0.000488281V0Z%22%20fill%3D%22transparent%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E"); } i.icon.icon-sectionbreak { width: 22px; height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M20%2C14V2H3v12H2V1h19v13H20z%20M5%2C14v1H4v-1H5z%20M7%2C14v1H6v-1H7z%20M9%2C14v1H8v-1H9z%20M11%2C14v1h-1v-1H11z%20M13%2C14v1h-1v-1H13z%20M15%2C14v1h-1v-1H15z%20M17%2C14v1h-1v-1H17z%20M18%2C14h1v1h-1V14z%20M3%2C21h17v-6h1v7H2v-7h1V21z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url(%23clip0)%22%3E%3Cpath%20d%3D%22M3%2011H7V13H3V11Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M9%2011H15V13H9V11Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M17%2011H21V13H17V11Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M18%204H6V9H4V4C4%202.89543%204.89543%202%206%202H18C18.5302%202%2018.9864%202.20344%2019.3918%202.61033C19.7661%202.98592%2020%203.46792%2020%204V9H18V4ZM6%2015V20.0282L18%2020V15H20V20C20%2020.5321%2019.7973%2021.0297%2019.3918%2021.4366C18.9864%2021.8122%2018.5302%2022%2018%2022H6C5.46979%2022%205.01364%2021.8122%204.60819%2021.4366C4.20273%2021.0297%204%2020.5266%204%2019.9945V15H6Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22clip0%22%3E%3Cpath%20d%3D%22M0%200H24V24H0V0Z%22%20fill%3D%22transparent%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E"); } i.icon.icon-stringbreak { width: 22px; height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M18%2C12H5.1L9%2C15.9l-0.7%2C0.7l-4.5-4.5l-0.6-0.6l0.6-0.6l4.5-4.5L9%2C7.1L5.1%2C11H18V5h1v6v1H18z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M10%209.01309L11.4062%2010.4181L7.79688%2014.0241H17.9844V4.00208H20V15.9911H7.79688L11.4062%2019.5971L10%2021.0021L4%2015.0076L10%209.01309Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); } i.icon.icon-pagenumber { width: 22px; height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M8.2%2C1L2%2C7.6V22h17V1H8.2z%20M8%2C2.8V8H3.1L8%2C2.8z%20M18%2C21H3V9h6V2l0%2C0h9V21z%20M12%2C19h1v-4h-0.7c0%2C0.2-0.1-0.1-0.1%2C0c-0.1%2C0.1-0.2%2C0-0.3%2C0c-0.1%2C0.1-0.2%2C0.1-0.4%2C0.1c-0.1%2C0-0.3%2C0-0.4%2C0V16H12V19z%20M15.3%2C17.3C15%2C17.9%2C15.1%2C18.4%2C15%2C19h0.9c0-0.3%2C0-0.6%2C0.1-0.9c0.1-0.3%2C0.1-0.6%2C0.3-0.9c0.1-0.3%2C0.3-0.6%2C0.4-0.9c0.2-0.3%2C0.1-0.3%2C0.3-0.5V15h-3v1h1.9C15.6%2C16.4%2C15.5%2C16.7%2C15.3%2C17.3z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M18%204H6V20.0282L18%2020V4ZM4%204.5C4%203.11929%205.11929%202%206.5%202H18C18.5302%202%2018.9864%202.20344%2019.3918%202.61033C19.7661%202.98592%2020%203.46792%2020%204V20C20%2020.5321%2019.7973%2021.0297%2019.3918%2021.4366C18.9864%2021.8122%2018.5302%2022%2018%2022H6C5.46979%2022%205.01364%2021.8122%204.60819%2021.4366C4.20273%2021.0297%204%2020.5266%204%2019.9945V4.5ZM11.5698%2016H10.1836V12.2578H10.1574L9%2013.0686V11.8385L10.1836%2011H11.5698V16ZM14.1593%2016H12.7076L14.6333%2012.1365V12.1088H12.3709V11H16V12.1053L14.1593%2016Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); } i.icon.icon-link { width: 22px; height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%20fill%3D%22%23446995%22%3E%3Cg%3E%3Cpath%20d%3D%22M12.4%2C9.8c0%2C0-2.1-0.1-3.8%2C1.2c-2.8%2C2-3.3%2C4.3-3.3%2C4.3s1.6-1.7%2C3.5-2.5c1.7-0.7%2C3.7-0.4%2C3.7-0.4v1.9l4.8-3.3V11l-4.8-3.3V9.8z%20M11%2C1C5.5%2C1%2C1%2C5.5%2C1%2C11c0%2C5.5%2C4.5%2C10%2C10%2C10s10-4.5%2C10-10C21%2C5.5%2C16.5%2C1%2C11%2C1z%20M11%2C20c-5%2C0-9-4.1-9-9C2%2C6%2C6%2C2%2C11%2C2s9%2C4.1%2C9%2C9C20%2C16%2C16%2C20%2C11%2C20z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M17.0235%207C18.4006%207%2019.5743%207.49845%2020.5446%208.49534C21.5149%209.46108%2022%2010.6293%2022%2012C22%2013.3708%2021.5149%2014.5546%2020.5446%2015.5515C19.5743%2016.5172%2018.4006%2017.0001%2017.0235%2017.0001H13V15H17C17.8451%2015%2018.5884%2014.7882%2019.1831%2014.1963C19.8091%2013.5733%2020%2012.8411%2020%2012C20%2011.1589%2019.8091%2010.4424%2019.1831%209.85049C18.5884%209.22743%2017.8685%209%2017.0235%209H13V7H17.0235ZM8.00939%2012.9814V11.0187H15.9906V12.9814H8.00939ZM4.76995%209.85049C4.17527%2010.4424%204%2011.1589%204%2012C4%2012.8411%204.17527%2013.5733%204.76995%2014.1963C5.39593%2014.7882%206.15493%2015%207%2015H11.0141V17.0001H6.97653C5.59937%2017.0001%204.42567%2016.5172%203.4554%2015.5515C2.48513%2014.5546%202%2013.3708%202%2012C2%2010.6293%202.48513%209.46108%203.4554%208.49534C4.42567%207.49845%205.59937%207%206.97653%207H11.0141V9H6.97653C6.13146%209%205.39593%209.22743%204.76995%209.85049Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); } i.icon.icon-image-library { - width: 22px; - height: 22px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2022%2022%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bisolation%3Aisolate%3B%7D.cls-2%7Bopacity%3A0.2%3B%7D.cls-3%7Bfill%3A%23fff%3B%7D.cls-10%2C.cls-11%2C.cls-4%2C.cls-6%2C.cls-7%2C.cls-8%2C.cls-9%7Bmix-blend-mode%3Amultiply%3B%7D.cls-4%7Bfill%3Aurl(%23grad_8)%3B%7D.cls-5%7Bfill%3Aurl(%23grad_10)%3B%7D.cls-6%7Bfill%3Aurl(%23grad_12)%3B%7D.cls-7%7Bfill%3Aurl(%23grad_14)%3B%7D.cls-8%7Bfill%3Aurl(%23grad_79)%3B%7D.cls-9%7Bfill%3Aurl(%23grad_77)%3B%7D.cls-10%7Bfill%3Aurl(%23grad_75)%3B%7D.cls-11%7Bfill%3Aurl(%23grad_81)%3B%7D%3C%2Fstyle%3E%3ClinearGradient%20id%3D%22grad_8%22%20x1%3D%2211.08%22%20y1%3D%2210.26%22%20x2%3D%2211.08%22%20y2%3D%221.26%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23f3e916%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f89d34%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22grad_10%22%20x1%3D%2211.08%22%20y1%3D%2220.44%22%20x2%3D%2211.08%22%20y2%3D%2211.88%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%235eb6e8%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23958cc3%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22grad_12%22%20x1%3D%221.46%22%20y1%3D%2211.05%22%20x2%3D%2210.46%22%20y2%3D%2211.05%22%20gradientTransform%3D%22translate(17%205.09)%20rotate(90)%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23cc8dba%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f86867%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22grad_14%22%20x1%3D%2211.73%22%20y1%3D%2211.05%22%20x2%3D%2220.73%22%20y2%3D%2211.05%22%20gradientTransform%3D%22translate(27.28%20-5.18)%20rotate(90)%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%236ac07f%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23c5da3d%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22grad_79%22%20x1%3D%2211.74%22%20y1%3D%2210.42%22%20x2%3D%2217.52%22%20y2%3D%224.63%22%20gradientTransform%3D%22translate(30.29%202.51)%20rotate(135)%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23c5da3d%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f3e916%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22grad_77%22%20x1%3D%224.7%22%20y1%3D%2217.49%22%20x2%3D%2210.48%22%20y2%3D%2211.71%22%20gradientTransform%3D%22translate(23.24%2019.65)%20rotate(135)%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%239595c3%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23cc8dba%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22grad_75%22%20x1%3D%224.69%22%20y1%3D%224.64%22%20x2%3D%2210.47%22%20y2%3D%2210.42%22%20gradientTransform%3D%22translate(7.54%20-3.15)%20rotate(45)%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23f86867%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f89d34%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22grad_81%22%20x1%3D%2211.77%22%20y1%3D%2211.78%22%20x2%3D%2217.55%22%20y2%3D%2217.56%22%20gradientTransform%3D%22translate(14.63%20-6.05)%20rotate(45)%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%235ec0e8%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%236ac07f%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Ctitle%3Eicons_for_svg%3C%2Ftitle%3E%3Cg%20class%3D%22cls-1%22%3E%3Cg%20id%3D%22%D0%A1%D0%BB%D0%BE%D0%B9_1%22%20data-name%3D%22%D0%A1%D0%BB%D0%BE%D0%B9%201%22%3E%3Crect%20class%3D%22cls-2%22%20x%3D%220.09%22%20y%3D%220.01%22%20width%3D%2222%22%20height%3D%2222%22%20rx%3D%224%22%20ry%3D%224%22%2F%3E%3Crect%20class%3D%22cls-3%22%20x%3D%220.57%22%20y%3D%220.49%22%20width%3D%2221.04%22%20height%3D%2221.04%22%20rx%3D%223.6%22%20ry%3D%223.6%22%2F%3E%3Crect%20class%3D%22cls-4%22%20x%3D%228.33%22%20y%3D%221.26%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%2F%3E%3Crect%20class%3D%22cls-5%22%20x%3D%228.33%22%20y%3D%2211.76%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%2F%3E%3Crect%20class%3D%22cls-6%22%20x%3D%223.21%22%20y%3D%226.55%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%20transform%3D%22translate(-5.09%2017)%20rotate(-90)%22%2F%3E%3Crect%20class%3D%22cls-7%22%20x%3D%2213.48%22%20y%3D%226.55%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%20transform%3D%22translate(5.18%2027.28)%20rotate(-90)%22%2F%3E%3Crect%20class%3D%22cls-8%22%20x%3D%2211.87%22%20y%3D%223.03%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%20transform%3D%22translate(19.64%2023.19)%20rotate(-135)%22%2F%3E%3Crect%20class%3D%22cls-9%22%20x%3D%224.8%22%20y%3D%2210.14%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%20transform%3D%22translate(2.54%2030.33)%20rotate(-135)%22%2F%3E%3Crect%20class%3D%22cls-10%22%20x%3D%224.83%22%20y%3D%223.03%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%20transform%3D%22translate(-3.1%207.56)%20rotate(-45)%22%2F%3E%3Crect%20class%3D%22cls-11%22%20x%3D%2211.87%22%20y%3D%2210.14%22%20width%3D%225.5%22%20height%3D%229%22%20rx%3D%222.5%22%20ry%3D%222.5%22%20transform%3D%22translate(-6.07%2014.63)%20rotate(-45)%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url(%23clip0)%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M20%205.5H4C3.72386%205.5%203.5%205.72386%203.5%206V15.5822L8.03349%2011.6898C8.47476%2011.3109%209.11904%2011.2865%209.58778%2011.6308L13.5726%2014.5579L15.9619%2012.6774C16.4488%2012.2942%2017.1428%2012.3255%2017.5933%2012.7509L20.5%2015.4962V6C20.5%205.72386%2020.2761%205.5%2020%205.5ZM20.5%2017.5294L20.485%2017.5453L16.7201%2013.9895L14.3509%2015.8542C13.9095%2016.2016%2013.2905%2016.2119%2012.8378%2015.8793L8.85988%2012.9573L3.5%2017.5592V18C3.5%2018.2761%203.72386%2018.5%204%2018.5H20C20.2761%2018.5%2020.5%2018.2761%2020.5%2018V17.5294ZM4%204C2.89543%204%202%204.89543%202%206V18C2%2019.1046%202.89543%2020%204%2020H20C21.1046%2020%2022%2019.1046%2022%2018V6C22%204.89543%2021.1046%204%2020%204H4ZM16.5%209.5C16.5%2011.1569%2015.1569%2012.5%2013.5%2012.5C11.8431%2012.5%2010.5%2011.1569%2010.5%209.5C10.5%207.84315%2011.8431%206.5%2013.5%206.5C15.1569%206.5%2016.5%207.84315%2016.5%209.5ZM13.5%2011C14.3284%2011%2015%2010.3284%2015%209.5C15%208.67157%2014.3284%208%2013.5%208C12.6716%208%2012%208.67157%2012%209.5C12%2010.3284%2012.6716%2011%2013.5%2011Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22clip0%22%3E%3Cpath%20d%3D%22M0%200H24V24H0V0Z%22%20fill%3D%22transparent%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E"); } i.icon.icon-table-borders-all { width: 28px; @@ -6501,6 +7052,31 @@ i.icon.icon-collaboration { height: 24px; background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M15.9912%206C15.9912%208.34102%2015.4074%2010.1346%2014.6055%2011.3121C13.7983%2012.4974%2012.8249%2013%2011.9912%2013C11.1575%2013%2010.1841%2012.4974%209.37695%2011.3121C8.57501%2010.1346%207.99121%208.34102%207.99121%206C7.99121%203.61508%209.96974%202%2011.9912%202C14.0127%202%2015.9912%203.61508%2015.9912%206ZM14.5015%2012.9506C13.7365%2013.6361%2012.8649%2014%2011.9912%2014C11.1195%2014%2010.2499%2013.6378%209.48619%2012.9554C7.78363%2013.6081%206.36015%2014.2591%205.26963%2014.9224C3.55256%2015.9667%203%2016.8326%203%2017.5C3%2018.2545%203.4257%2019.0877%204.82302%2019.7879C6.25015%2020.5031%208.57272%2020.9999%2012%2021C15.4273%2021%2017.7499%2020.5031%2019.177%2019.7879C20.5743%2019.0877%2021%2018.2545%2021%2017.5C21%2016.8326%2020.4474%2015.9667%2018.7304%2014.9224C17.6372%2014.2575%2016.2095%2013.605%2014.5015%2012.9506ZM15.2272%2012.1594C16.2765%2010.7825%2016.9912%208.67814%2016.9912%206C16.9912%203%2014.5%201%2011.9912%201C9.48242%201%206.99121%203%206.99121%206C6.99121%208.68159%207.70777%2010.7879%208.75931%2012.1647C4.60309%2013.7964%202%2015.4951%202%2017.5C2%2019.9852%205%2021.9999%2012%2022C19%2022%2022%2019.9852%2022%2017.5C22%2015.4929%2019.3913%2013.7927%2015.2272%2012.1594Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); } +i.icon.icon-users { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M15.5%207C15.5%209.26153%2014.9357%2010.9518%2014.201%2012.0307C13.4584%2013.121%2012.6234%2013.5%2012%2013.5C11.3766%2013.5%2010.5416%2013.121%209.79901%2012.0307C9.0643%2010.9518%208.5%209.26153%208.5%207C8.5%204.92262%2010.2222%203.5%2012%203.5C13.7778%203.5%2015.5%204.92262%2015.5%207ZM14.8461%2013.6216C14.006%2014.5191%2013.0044%2015%2012%2015C10.9956%2015%209.99399%2014.5191%209.15395%2013.6216C7.69714%2014.1996%206.4782%2014.7725%205.52945%2015.3496C3.82884%2016.3839%203.5%2017.1203%203.5%2017.5C3.5%2018.0104%203.76355%2018.6977%205.04703%2019.3409C6.37522%2020.0065%208.60909%2020.4999%2012%2020.5C15.3909%2020.5%2017.6248%2020.0065%2018.953%2019.3409C20.2364%2018.6977%2020.5%2018.0104%2020.5%2017.5C20.5%2017.1203%2020.1712%2016.3839%2018.4705%2015.3496C17.5218%2014.7725%2016.3029%2014.1996%2014.8461%2013.6216ZM15.7544%2012.37C16.5137%2011.0279%2017%209.20917%2017%207C17%204%2014.5088%202%2012%202C9.49121%202%207%204%207%207C7%209.20917%207.48633%2011.0279%208.24563%2012.37C4.38973%2013.9392%202%2015.579%202%2017.5C2%2019.9852%205%2021.9999%2012%2022C19%2022%2022%2019.9852%2022%2017.5C22%2015.579%2019.6103%2013.9392%2015.7544%2012.37Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); +} +i.icon.icon-review { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M17.5%203.5H4.5V20.5H17.5V18H19V20C19%2020.5321%2018.7973%2021.0297%2018.3918%2021.4366C17.9864%2021.8122%2017.5302%2022%2017%2022H5C4.46979%2022%204.01364%2021.8122%203.60819%2021.4366C3.20273%2021.0297%203%2020.5266%203%2019.9945V4C3%202.89543%203.89543%202%205%202H17C17.5302%202%2017.9864%202.20344%2018.3918%202.61033C18.7661%202.98592%2019%203.46792%2019%204V7H17.5V3.5Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M22.8438%2010.2396L21.8281%2011.2552L19.7448%209.17188L20.7604%208.15625C20.8646%208.05208%2020.9948%208%2021.151%208C21.3073%208%2021.4375%208.05208%2021.5417%208.15625L22.8438%209.45833C22.9479%209.5625%2023%209.69271%2023%209.84896C23%2010.0052%2022.9479%2010.1354%2022.8438%2010.2396ZM13%2015.9167L19.1458%209.77083L21.2292%2011.8542L15.0833%2018H13V15.9167Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M7%2015.5H11V17H7V15.5Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M7%2011H13V12.5H7V11Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M7%207H15V8.5H7V7Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); +} +i.icon.icon-review-changes { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M20.5%204.5L20.5%2019.5L3.5%2019.5L3.5%204.5L20.5%204.5ZM22%2019L22%205C22%203.89543%2021.1046%203%2020%203L4.00549%203C3.47341%203%202.97026%203.20273%202.56338%203.60819C2.18779%204.01364%202%204.46978%202%205L2%2019C2%2019.5302%202.18779%2019.9864%202.56338%2020.3918C2.97026%2020.7973%203.46792%2021%204%2021L20%2021C20.5321%2021%2021.0141%2020.7661%2021.3897%2020.3918C21.7966%2019.9864%2022%2019.5302%2022%2019Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M6%2015H18V16.5H6V15Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M6%2011H18V12.5H6V11Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M6%207H18V8.5H6V7Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); +} +i.icon.icon-accept-changes { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M13.3966%2019.2877L21.6495%2011L23%2012.3562L13.3966%2022L9%2017.5849L10.3505%2016.2288L13.3966%2019.2877Z%22%20fill%3D%22%2340865C%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M20.5%208L20.5%204.5L3.5%204.5L3.5%2017.5L7%2017.5L7%2019L4%2019C3.46792%2019%202.97026%2018.7973%202.56338%2018.3918C2.18779%2017.9864%202%2017.5302%202%2017L2%205C2%204.46978%202.18779%204.01364%202.56338%203.60819C2.97026%203.20273%203.4734%203%204.00549%203L20%203C21.1046%203%2022%203.89543%2022%205L22%208L20.5%208Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M6%208H18V9.5H6V8Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M6%2012H16V13.5H6V12Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); +} +i.icon.icon-reject-changes { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M23%2013.4099L19.4099%2017L23%2020.5901L21.5901%2022L18%2018.4099L14.4099%2022L13%2020.5901L16.5901%2017L13%2013.4099L14.4099%2012L18%2015.5901L21.5901%2012L23%2013.4099Z%22%20fill%3D%22%23C60915%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M20.5%2010L20.5%204.5L3.5%204.5L3.5%2017.5L11%2017.5L11%2019L4%2019C3.46792%2019%202.97026%2018.7973%202.56338%2018.3918C2.18779%2017.9864%202%2017.5302%202%2017L2%205C2%204.46978%202.18779%204.01364%202.56338%203.60819C2.97026%203.20273%203.4734%203%204.00549%203L20%203C21.1046%203%2022%203.89543%2022%205L22%2010L20.5%2010Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M6%208H18V9.5H6L6%208Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M6%2012H11V13.5H6V12Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); +} i.icon.icon-accept { width: 24px; height: 24px; @@ -6514,22 +7090,17 @@ i.icon.icon-reject { i.icon.icon-next-change { width: 24px; height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url(%23clipnext)%22%3E%3Cpath%20d%3D%22M16%2012L6.5%2022L7.5%2023L18%2012L7.5%201L6.5%202L16%2012Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22clipnext%22%3E%3Crect%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E"); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M9.98438%206L15.9844%2012L9.98438%2018L8.57812%2016.5938L13.1719%2012L8.57812%207.40625L9.98438%206Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); } i.icon.icon-prev-change { width: 24px; height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url(%23clipprev)%22%3E%3Cpath%20d%3D%22M8%2012L17.5%202L16.5%201L6%2012L16.5%2023L17.5%2022L8%2012Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22clipprev%22%3E%3Crect%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E"); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M15.4219%207.40625L10.8281%2012L15.4219%2016.5938L14.0156%2018L8.01562%2012L14.0156%206L15.4219%207.40625Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); } i.icon.icon-goto { width: 24px; height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%203H3V21H21V3ZM3%202H2V3V21V22H3H21H22V21V3V2H21H3ZM15.2929%208H9V7H16.5H17V7.5V15H16V8.70711L7.35355%2017.3536L6.64645%2016.6464L15.2929%208Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); -} -i.icon.icon-delete-change { - width: 24px; - height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M9.5%201H9V1.5V3H5H4H2V4H4V21V22H5H19H20V21V4H22V3H20H19H15V1.5V1H14.5H9.5ZM14%203V2H10V3H14ZM5%204H19V21H5V4ZM7%206H8V19H7V6ZM11%206H10V19H11V6ZM13%206H14V19H13V6ZM17%206H16V19H17V6Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M20.5%203.5H3.5V20.5H20.5V3.5ZM3.5%202H2V3.5V20.5V22H3.5H20.5H22V20.5V3.5V2H20.5H3.5ZM14.6893%208.25H9V6.75H16.5H17.25V7.5V15H15.75V9.31066L7.53033%2017.5303L6.46967%2016.4697L14.6893%208.25Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); } i.icon.icon-app-settings { width: 24px; @@ -6539,7 +7110,7 @@ i.icon.icon-app-settings { i.icon.icon-footnote { width: 24px; height: 24px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M22%208.11133H20.9177V5.15361L20.9282%204.66765L20.9457%204.13624C20.7659%204.31571%2020.641%204.43341%2020.5709%204.48935L19.9825%204.96132L19.4606%204.31105L21.1103%203H22V8.11133Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M10.3363%2018.8514L8.98161%2015.3968H4.61996L3.28021%2018.8514H2L6.3021%207.94526H7.36646L11.6462%2018.8514H10.3363ZM8.58713%2014.2601L7.3218%2010.8947C7.15806%2010.4687%206.98935%209.94621%206.81567%209.32711C6.70651%209.80258%206.5502%2010.3251%206.34676%2010.8947L5.06655%2014.2601H8.58713Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M16.1425%2010.5752C17.2143%2010.5752%2018.0454%2010.9417%2018.6359%2011.6748C19.2313%2012.4028%2019.5291%2013.4355%2019.5291%2014.7728C19.5291%2016.11%2019.2288%2017.1501%2018.6284%2017.893C18.033%2018.631%2017.2043%2019%2016.1425%2019C15.6115%2019%2015.1252%2018.9034%2014.6836%2018.7103C14.2469%2018.5121%2013.8798%2018.21%2013.582%2017.8039H13.4927L13.2322%2018.8514H12.3465V7.29149H13.582V10.0997C13.582%2010.7288%2013.5622%2011.2934%2013.5225%2011.7936H13.582C14.1576%2010.9814%2015.0111%2010.5752%2016.1425%2010.5752ZM15.9638%2011.6079C15.1203%2011.6079%2014.5124%2011.8506%2014.1403%2012.336C13.7681%2012.8164%2013.582%2013.6286%2013.582%2014.7728C13.582%2015.9169%2013.7731%2016.7366%2014.1551%2017.2318C14.5372%2017.7222%2015.15%2017.9673%2015.9936%2017.9673C16.7528%2017.9673%2017.3185%2017.6925%2017.6906%2017.1427C18.0628%2016.588%2018.2488%2015.793%2018.2488%2014.7579C18.2488%2013.698%2018.0628%2012.908%2017.6906%2012.388C17.3185%2011.8679%2016.7429%2011.6079%2015.9638%2011.6079Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.1173%2018.7983H10.109L9.36904%2016.6471H4.74829L4.00837%2018.7983H2L5.95633%207.58823H8.161L12.1173%2018.7983ZM8.87072%2014.916L7.05867%209.57143L5.24661%2014.916H8.87072Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M14.7577%2016.3613C14.9288%2016.6639%2015.1906%2016.9216%2015.5429%2017.1345C15.9053%2017.3361%2016.2677%2017.437%2016.6301%2017.437C17.2543%2017.437%2017.7526%2017.1905%2018.1251%2016.6975C18.5076%2016.1933%2018.6989%2015.5434%2018.6989%2014.7479C18.6989%2013.9524%2018.5076%2013.3025%2018.1251%2012.7983C17.7526%2012.2941%2017.2543%2012.042%2016.6301%2012.042C16.2677%2012.042%2015.9103%2012.1485%2015.558%2012.3613C15.2057%2012.5742%2014.9389%2012.8375%2014.7577%2013.1513V16.3613ZM14.7577%2018.7983H13.1721V7.58823H14.7577V11.8067C15.3516%2010.9216%2016.1318%2010.479%2017.0982%2010.479C18.0445%2010.479%2018.8197%2010.8711%2019.4237%2011.6555C20.0277%2012.4286%2020.3298%2013.4594%2020.3298%2014.7479C20.3298%2016.0588%2020.0277%2017.0952%2019.4237%2017.8571C18.8197%2018.619%2018.0445%2019%2017.0982%2019C16.1419%2019%2015.3617%2018.563%2014.7577%2017.6891V18.7983Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M24%2011.7227H22.7769V6.7479L21.7651%207.90756L21.0705%207.08403L22.943%205H24V11.7227Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); } i.icon.icon-cut { width: 24px; @@ -6556,6 +7127,46 @@ i.icon.icon-paste { height: 24px; background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5%202H0V20H9V24H24V7H19V2H14V3H18V7H9V19H1V3H5V2ZM10%208H23V23H10V8Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M5%200H14V5H5V0Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2012H12V11H21V12Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2016H12V15H21V16Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2020H12V19H21V20Z%22%20fill%3D%22black%22%2F%3E%3C%2Fsvg%3E"); } +i.icon.icon-menu-comment { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M16.6047%2016.5848C17.0078%2016.1793%2017.4729%2015.9766%2018%2015.9766C18.5271%2015.9766%2018.9922%2016.1793%2019.3953%2016.5848C19.7984%2016.9903%2020%2017.4581%2020%2017.9883C20%2018.5185%2019.7984%2018.9864%2019.3953%2019.3918C18.9922%2019.7973%2018.5271%2020%2018%2020C17.4729%2020%2017.0078%2019.7973%2016.6047%2019.3918C16.2016%2018.9864%2016%2018.5185%2016%2017.9883C16%2017.4581%2016.2016%2016.9903%2016.6047%2016.5848ZM16.6047%2010.5965C17.0078%2010.191%2017.4729%209.9883%2018%209.9883C18.5271%209.9883%2018.9922%2010.191%2019.3953%2010.5965C19.7984%2011.0019%2020%2011.4698%2020%2012C20%2012.5302%2019.7984%2012.9981%2019.3953%2013.4035C18.9922%2013.809%2018.5271%2014.0117%2018%2014.0117C17.4729%2014.0117%2017.0078%2013.809%2016.6047%2013.4035C16.2016%2012.9981%2016%2012.5302%2016%2012C16%2011.4698%2016.2016%2011.0019%2016.6047%2010.5965ZM19.3953%207.4152C18.9922%207.82066%2018.5271%208.02339%2018%208.02339C17.4729%208.02339%2017.0078%207.82066%2016.6047%207.4152C16.2016%207.00975%2016%206.54191%2016%206.0117C16%205.48148%2016.2016%205.01365%2016.6047%204.60819C17.0078%204.20273%2017.4729%204%2018%204C18.5271%204%2018.9922%204.20273%2019.3953%204.60819C19.7984%205.01365%2020%205.48148%2020%206.0117C20%206.54191%2019.7984%207.00975%2019.3953%207.4152Z%22%20fill%3D%22black%22%20fill-opacity%3D%220.6%22%2F%3E%3C%2Fsvg%3E"); +} +i.icon.icon-resolve-comment { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M9%2016.1719L19.5938%205.57812L21%206.98438L9%2018.9844L3.42188%2013.4062L4.82812%2012L9%2016.1719Z%22%20fill%3D%22black%22%20fill-opacity%3D%220.6%22%2F%3E%3C%2Fsvg%3E"); +} +i.icon.icon-resolve-comment.check { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M9%2016.1719L19.5938%205.57812L21%206.98438L9%2018.9844L3.42188%2013.4062L4.82812%2012L9%2016.1719Z%22%20fill%3D%22%2340865C%22%20fill-opacity%3D%220.6%22%2F%3E%3C%2Fsvg%3E"); +} +i.icon.icon-prev-comment { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M15.4219%207.40625L10.8281%2012L15.4219%2016.5938L14.0156%2018L8.01562%2012L14.0156%206L15.4219%207.40625Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); +} +i.icon.icon-next-comment { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M9.98438%206L15.9844%2012L9.98438%2018L8.57812%2016.5938L13.1719%2012L8.57812%207.40625L9.98438%206Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); +} +i.icon.icon-done-comment { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M9%2016.1719L19.5938%205.57812L21%206.98438L9%2018.9844L3.42188%2013.4062L4.82812%2012L9%2016.1719Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); +} +i.icon.icon-insert-comment { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M19.5%203H4.5C3.18908%203%202%204.2153%202%205.50295V15.0346C2%2016.3222%203.18908%2017.013%204.5%2017.013H5.5C5.82773%2017.013%206%2017.1917%206%2017.5136V21L12%2017H20C21.1046%2017%2022%2016.1046%2022%2015V8H20.5V14.5C20.5%2015.0523%2020.0523%2015.5%2019.5%2015.5H11.5L7.5%2018V15.5H4.5C3.94772%2015.5%203.5%2015.0523%203.5%2014.5V5.5C3.5%204.94772%203.94772%204.5%204.5%204.5H19.5C20.0523%204.5%2020.5%204.94772%2020.5%205.5V8H22V5.50295C22%204.2153%2020.8109%203%2019.5%203Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M6%207.5H18V9H6L6%207.5Z%22%20fill%3D%22%23446995%22%2F%3E%3Cpath%20d%3D%22M6%2011H18V12.5H6V11Z%22%20fill%3D%22%23446995%22%2F%3E%3C%2Fsvg%3E"); +} +i.icon.icon-done-comment-white { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M9%2016.1719L19.5938%205.57812L21%206.98438L9%2018.9844L3.42188%2013.4062L4.82812%2012L9%2016.1719Z%22%20fill%3D%22%23FFFFFF%22%2F%3E%3C%2Fsvg%3E"); +} .navbar i.icon.icon-logo { width: 100px; height: 14px; @@ -6616,6 +7227,31 @@ i.icon.icon-paste { height: 24px; background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M14.9912%206C14.9912%208.18203%2014.4464%209.76912%2013.7789%2010.7492C13.101%2011.7447%2012.4042%2012%2011.9912%2012C11.5782%2012%2010.8814%2011.7447%2010.2035%2010.7492C9.53601%209.76912%208.99121%208.18203%208.99121%206C8.99121%204.23017%2010.4571%203%2011.9912%203C13.5254%203%2014.9912%204.23017%2014.9912%206ZM13.4917%2013.6397C13.0059%2013.8771%2012.4989%2014%2011.9912%2014C11.4861%2014%2010.9817%2013.8784%2010.4983%2013.6434C8.53188%2014.3681%206.94518%2015.0737%205.78927%2015.7768C4.10512%2016.8011%204%2017.4079%204%2017.5C4%2017.7664%204.1014%2018.3077%205.27104%2018.8939C6.50029%2019.5099%208.64545%2019.9999%2012%2020C15.3546%2020%2017.4997%2019.5099%2018.7289%2018.8939C19.8986%2018.3078%2020%2017.7664%2020%2017.5C20%2017.4079%2019.8949%2016.8011%2018.2107%2015.7768C17.0529%2015.0726%2015.4627%2014.3657%2013.4917%2013.6397ZM15.2272%2012.1594C16.2765%2010.7825%2016.9912%208.67814%2016.9912%206C16.9912%203%2014.5%201%2011.9912%201C9.48242%201%206.99121%203%206.99121%206C6.99121%208.68159%207.70777%2010.7879%208.75931%2012.1647C4.60309%2013.7964%202%2015.4951%202%2017.5C2%2019.9852%205%2021.9999%2012%2022C19%2022%2022%2019.9852%2022%2017.5C22%2015.4929%2019.3913%2013.7927%2015.2272%2012.1594Z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E"); } +.navbar i.icon.icon-add-table { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2%204H11V8H2V4Z%22%20fill%3D%22%23fff%22%2F%3E%3Cpath%20d%3D%22M13%204H22V8H13V4Z%22%20fill%3D%22%23fff%22%2F%3E%3Cpath%20d%3D%22M2%2010H11V14H2V10Z%22%20fill%3D%22%23fff%22%2F%3E%3Cpath%20d%3D%22M13%2010H22V14H13V10Z%22%20fill%3D%22%23fff%22%2F%3E%3Cpath%20d%3D%22M2%2016H11V20H2V16Z%22%20fill%3D%22%23fff%22%2F%3E%3Cpath%20d%3D%22M13%2016H22V20H13V16Z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E"); +} +.navbar i.icon.icon-add-shape { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ccircle%20cx%3D%2216%22%20cy%3D%2215%22%20r%3D%227%22%20fill%3D%22%23fff%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M3%203C2.44772%203%202%203.44772%202%204V17C2%2017.5523%202.44772%2018%203%2018H8.58152C8.20651%2017.0736%208%2016.0609%208%2015C8%2010.5817%2011.5817%207%2016%207C16.6906%207%2017.3608%207.08751%2018%207.25204V4C18%203.44772%2017.5523%203%2017%203H3Z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E"); +} +.navbar i.icon.icon-add-image { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url(%23clip0)%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M4.23958%2018L8.09375%2013.5L10.9062%2016.5L14.7604%2012L19.7604%2018H4.23958ZM21.3229%2020.3906C21.7743%2019.9844%2022%2019.5156%2022%2018.9844V5.01562C22%204.48438%2021.7743%204.01562%2021.3229%203.60938C20.8715%203.20313%2020.3507%203%2019.7604%203H4.23958C3.64931%203%203.12847%203.20313%202.67708%203.60938C2.22569%204.01562%202%204.48438%202%205.01562V18.9844C2%2019.5156%202.22569%2019.9844%202.67708%2020.3906C3.12847%2020.7969%203.64931%2021%204.23958%2021H19.7604C20.3507%2021%2020.8715%2020.7969%2021.3229%2020.3906ZM8%2011C9.10457%2011%2010%2010.1046%2010%209C10%207.89543%209.10457%207%208%207C6.89543%207%206%207.89543%206%209C6%2010.1046%206.89543%2011%208%2011Z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22clip0%22%3E%3Cpath%20d%3D%22M0.000477791%200H24.0005V24H0.000477791V0Z%22%20fill%3D%22transparent%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E"); +} +.navbar i.icon.icon-add-other { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7%2012C7%2013.6569%205.65685%2015%204%2015C2.34315%2015%201%2013.6569%201%2012C1%2010.3431%202.34315%209%204%209C5.65685%209%207%2010.3431%207%2012ZM15%2012C15%2013.6569%2013.6569%2015%2012%2015C10.3431%2015%209%2013.6569%209%2012C9%2010.3431%2010.3431%209%2012%209C13.6569%209%2015%2010.3431%2015%2012ZM20%2015C21.6569%2015%2023%2013.6569%2023%2012C23%2010.3431%2021.6569%209%2020%209C18.3431%209%2017%2010.3431%2017%2012C17%2013.6569%2018.3431%2015%2020%2015Z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E"); +} +.navbar i.icon.icon-close-comment { + width: 24px; + height: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M18.9844%206.42188L13.4062%2012L18.9844%2017.5781L17.5781%2018.9844L12%2013.4062L6.42188%2018.9844L5.01562%2017.5781L10.5938%2012L5.01562%206.42188L6.42188%205.01562L12%2010.5938L17.5781%205.01562L18.9844%206.42188Z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E"); +} .sailfish i.icon.icon-text-align-center { background-color: transparent; -webkit-mask-image: none; @@ -6889,6 +7525,12 @@ textarea { #add-shape .page { background-color: #fff; } +.container-add .categories i.icon { + opacity: 0.5; +} +.container-add .categories .active i.icon { + opacity: 1; +} .table-styles .row, .table-styles .row li { margin-bottom: 12px; diff --git a/apps/documenteditor/mobile/resources/less/app-material.less b/apps/documenteditor/mobile/resources/less/app-material.less index 9024b51b5..351b81974 100644 --- a/apps/documenteditor/mobile/resources/less/app-material.less +++ b/apps/documenteditor/mobile/resources/less/app-material.less @@ -113,6 +113,18 @@ input, textarea { background-color: #fff; } } +.container-add { + .categories { + i.icon { + opacity: 0.5; + } + .active { + i.icon { + opacity: 1; + } + } + } +} // Table styles diff --git a/apps/documenteditor/mobile/resources/less/ios/_icons.less b/apps/documenteditor/mobile/resources/less/ios/_icons.less index 9f54f36f5..97d17bcf8 100644 --- a/apps/documenteditor/mobile/resources/less/ios/_icons.less +++ b/apps/documenteditor/mobile/resources/less/ios/_icons.less @@ -155,12 +155,12 @@ i.icon { height: 22px; .encoded-svg-mask(''); } - &.icon-prev { + &.icon-prev, &.icon-prev-comment { width: 22px; height: 22px; .encoded-svg-background(''); } - &.icon-next { + &.icon-next, &.icon-next-comment { width: 22px; height: 22px; .encoded-svg-background(''); @@ -426,6 +426,31 @@ i.icon { height: 24px; .encoded-svg-background(''); } + &.icon-users { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-review { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-review-changes { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-accept-changes { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-reject-changes { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } &.icon-accept { width: 24px; height: 24px; @@ -451,11 +476,6 @@ i.icon { height: 24px; .encoded-svg-background(''); } - &.icon-delete-change { - width: 24px; - height: 24px; - .encoded-svg-background(''); - } &.icon-app-settings { width: 24px; height: 24px; @@ -481,4 +501,73 @@ i.icon { height: 24px; .encoded-svg-background(''); } + + //comments + &.icon-menu-comment { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + &.icon-resolve-comment { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + &.icon-resolve-comment.check { + width: 30px; + height: 30px; + .encoded-svg-background(''); + } + &.icon-insert-comment { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + + //Insert + &.icon-add-table { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-add-shape { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-add-image { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-add-other { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } +} + +.active { + i.icon { + &.icon-add-table { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-add-shape { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-add-image { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-add-other { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + } } \ No newline at end of file diff --git a/apps/documenteditor/mobile/resources/less/material/_icons.less b/apps/documenteditor/mobile/resources/less/material/_icons.less index e1f8df580..76fddb55c 100644 --- a/apps/documenteditor/mobile/resources/less/material/_icons.less +++ b/apps/documenteditor/mobile/resources/less/material/_icons.less @@ -173,32 +173,32 @@ i.icon { &.icon-pagebreak { width: 22px; height: 22px; - .encoded-svg-background(''); + .encoded-svg-background(''); } &.icon-sectionbreak { width: 22px; height: 22px; - .encoded-svg-background(''); + .encoded-svg-background(''); } &.icon-stringbreak { width: 22px; height: 22px; - .encoded-svg-background(''); + .encoded-svg-background(''); } &.icon-pagenumber { width: 22px; height: 22px; - .encoded-svg-background(''); + .encoded-svg-background(''); } &.icon-link { width: 22px; height: 22px; - .encoded-svg-background(''); + .encoded-svg-background(''); } &.icon-image-library { - width: 22px; - height: 22px; - .encoded-svg-background('icons_for_svg'); + width: 24px; + height: 24px; + .encoded-svg-background(''); } // Presets of table borders @@ -349,6 +349,31 @@ i.icon { height: 24px; .encoded-svg-background(''); } + &.icon-users { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-review { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-review-changes { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-accept-changes { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-reject-changes { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } &.icon-accept { width: 24px; height: 24px; @@ -362,22 +387,17 @@ i.icon { &.icon-next-change { width: 24px; height: 24px; - .encoded-svg-background(''); + .encoded-svg-background(''); } &.icon-prev-change { width: 24px; height: 24px; - .encoded-svg-background(''); + .encoded-svg-background(''); } &.icon-goto { width: 24px; height: 24px; - .encoded-svg-background(''); - } - &.icon-delete-change { - width: 24px; - height: 24px; - .encoded-svg-background(''); + .encoded-svg-background(''); } &.icon-app-settings { width: 24px; @@ -387,7 +407,7 @@ i.icon { &.icon-footnote { width: 24px; height: 24px; - .encoded-svg-background(''); + .encoded-svg-background(''); } &.icon-cut { width: 24px; @@ -404,6 +424,46 @@ i.icon { height: 24px; .encoded-svg-background(''); } + &.icon-menu-comment { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-resolve-comment { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-resolve-comment.check { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-prev-comment { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-next-comment { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-done-comment { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-insert-comment { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-done-comment-white { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } } // Overwrite color for toolbar @@ -470,5 +530,30 @@ i.icon { height: 24px; .encoded-svg-background(''); } + &.icon-add-table { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-add-shape { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-add-image { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-add-other { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } + &.icon-close-comment { + width: 24px; + height: 24px; + .encoded-svg-background(''); + } } } \ No newline at end of file diff --git a/apps/presentationeditor/embed/js/ApplicationController.js b/apps/presentationeditor/embed/js/ApplicationController.js index 6baf1fc98..ffaf30b11 100644 --- a/apps/presentationeditor/embed/js/ApplicationController.js +++ b/apps/presentationeditor/embed/js/ApplicationController.js @@ -514,6 +514,10 @@ PE.ApplicationController = new(function(){ message = me.errorUpdateVersionOnDisconnect; break; + case Asc.c_oAscError.ID.AccessDeny: + message = me.errorAccessDeny; + break; + default: message = me.errorDefaultMessage.replace('%1', id); break; diff --git a/apps/presentationeditor/main/app/controller/Main.js b/apps/presentationeditor/main/app/controller/Main.js index bcbc8026b..ca3c069e6 100644 --- a/apps/presentationeditor/main/app/controller/Main.js +++ b/apps/presentationeditor/main/app/controller/Main.js @@ -372,6 +372,7 @@ define([ docInfo.put_CallbackUrl(this.editorConfig.callbackUrl); docInfo.put_Token(data.doc.token); docInfo.put_Permissions(_permissions); + docInfo.put_EncryptedInfo(this.editorConfig.encryptionKeys); } this.api.asc_registerCallback('asc_onGetEditorPermissions', _.bind(this.onEditorPermissions, this)); @@ -1289,10 +1290,12 @@ define([ }, this); } - if (id !== Asc.c_oAscError.ID.ForceSaveTimeout) - Common.UI.alert(config); + if (id !== Asc.c_oAscError.ID.ForceSaveTimeout) { + if (!Common.Utils.ModalWindow.isVisible() || $('.asc-window.modal.alert[data-value=' + id + ']').length<1) + Common.UI.alert(config).$window.attr('data-value', id); + } - Common.component.Analytics.trackEvent('Internal Error', id.toString()); + (id!==undefined) && Common.component.Analytics.trackEvent('Internal Error', id.toString()); }, onCoAuthoringDisconnect: function() { diff --git a/apps/presentationeditor/main/app/controller/Toolbar.js b/apps/presentationeditor/main/app/controller/Toolbar.js index a99b68c08..b56dedc45 100644 --- a/apps/presentationeditor/main/app/controller/Toolbar.js +++ b/apps/presentationeditor/main/app/controller/Toolbar.js @@ -368,6 +368,8 @@ define([ this.api.asc_registerCallback('asc_onMathTypes', _.bind(this.onApiMathTypes, this)); this.api.asc_registerCallback('asc_onContextMenu', _.bind(this.onContextMenu, this)); this.api.asc_registerCallback('asc_onTextLanguage', _.bind(this.onTextLanguage, this)); + Common.NotificationCenter.on('storage:image-load', _.bind(this.openImageFromStorage, this)); + Common.NotificationCenter.on('storage:image-insert', _.bind(this.insertImageFromStorage, this)); } else if (this.mode.isRestrictedEdit) { this.api.asc_registerCallback('asc_onCountPages', _.bind(this.onApiCountPagesRestricted, this)); } @@ -1453,26 +1455,36 @@ define([ } })).show(); } else if (opts === 'storage') { - if (this.toolbar.mode.canRequestInsertImage) { - Common.Gateway.requestInsertImage(); - } else { - (new Common.Views.SelectFileDlg({ - fileChoiceUrl: this.toolbar.mode.fileChoiceUrl.replace("{fileExt}", "").replace("{documentType}", "ImagesOnly") - })).on('selectfile', function(obj, file){ - me.insertImage(file); - }).show(); - } + Common.NotificationCenter.trigger('storage:image-load', 'add'); } }, - insertImage: function(data) { - if (data && data.url) { + openImageFromStorage: function(type) { + var me = this; + if (this.toolbar.mode.canRequestInsertImage) { + Common.Gateway.requestInsertImage(type); + } else { + (new Common.Views.SelectFileDlg({ + fileChoiceUrl: this.toolbar.mode.fileChoiceUrl.replace("{fileExt}", "").replace("{documentType}", "ImagesOnly") + })).on('selectfile', function(obj, file){ + file && (file.c = type); + me.insertImage(file); + }).show(); + } + }, + + insertImageFromStorage: function(data) { + if (data && data.url && (!data.c || data.c=='add')) { this.toolbar.fireEvent('insertimage', this.toolbar); this.api.AddImageUrl(data.url, undefined, data.token);// for loading from storage Common.component.Analytics.trackEvent('ToolBar', 'Image'); } }, + insertImage: function(data) { // gateway + Common.NotificationCenter.trigger('storage:image-insert', data); + }, + onInsertText: function(status) { if ( status == 'begin' ) { this._addAutoshape(true, 'textRect'); diff --git a/apps/presentationeditor/main/app/template/ImageSettings.template b/apps/presentationeditor/main/app/template/ImageSettings.template index 6b41d6507..226e1c98b 100644 --- a/apps/presentationeditor/main/app/template/ImageSettings.template +++ b/apps/presentationeditor/main/app/template/ImageSettings.template @@ -60,20 +60,12 @@
    - - - - diff --git a/apps/presentationeditor/main/app/template/ShapeSettings.template b/apps/presentationeditor/main/app/template/ShapeSettings.template index 85bab47b8..a3d435a03 100644 --- a/apps/presentationeditor/main/app/template/ShapeSettings.template +++ b/apps/presentationeditor/main/app/template/ShapeSettings.template @@ -17,11 +17,8 @@
    - - - + +
    - +
    - -
    - - - +
    @@ -62,9 +59,8 @@
    -
    +
    - -
    - - - +
    - +
    - - diff --git a/apps/presentationeditor/main/app/template/SlideSettings.template b/apps/presentationeditor/main/app/template/SlideSettings.template index ce824dadc..ccb7dea97 100644 --- a/apps/presentationeditor/main/app/template/SlideSettings.template +++ b/apps/presentationeditor/main/app/template/SlideSettings.template @@ -17,11 +17,8 @@
    - - - + +
    - - diff --git a/apps/presentationeditor/main/app/view/ChartSettings.js b/apps/presentationeditor/main/app/view/ChartSettings.js index c96fb8c13..7fceffff2 100644 --- a/apps/presentationeditor/main/app/view/ChartSettings.js +++ b/apps/presentationeditor/main/app/view/ChartSettings.js @@ -119,7 +119,7 @@ define([ value = props.get_SeveralChartTypes(); if (this._state.SeveralCharts && value) { - this.btnChartType.setIconCls(''); + this.btnChartType.setIconCls('svgicon'); this._state.ChartType = null; } else { var type = props.getType(); @@ -127,9 +127,9 @@ define([ var record = this.mnuChartTypePicker.store.findWhere({type: type}); this.mnuChartTypePicker.selectRecord(record, true); if (record) { - this.btnChartType.setIconCls('item-chartlist ' + record.get('iconCls')); + this.btnChartType.setIconCls('svgicon ' + 'chart-' + record.get('iconCls')); } else - this.btnChartType.setIconCls(''); + this.btnChartType.setIconCls('svgicon'); this.updateChartStyles(this.api.asc_getChartPreviews(type)); this._state.ChartType = type; } @@ -200,9 +200,9 @@ define([ var me = this; this.btnChartType = new Common.UI.Button({ cls : 'btn-large-dataview', - iconCls : 'item-chartlist bar-normal', + iconCls : 'svgicon chart-bar-normal', menu : new Common.UI.Menu({ - style: 'width: 435px; padding-top: 12px;', + style: 'width: 364px; padding-top: 12px;', items: [ { template: _.template('') } ] @@ -215,7 +215,7 @@ define([ restoreHeight: 421, groups: new Common.UI.DataViewGroupStore(Common.define.chartData.getChartGroupData()), store: new Common.UI.DataViewStore(Common.define.chartData.getChartData()), - itemTemplate: _.template('
    ') + itemTemplate: _.template('
    \">
    ') }); }); this.btnChartType.render($('#chart-button-type')); @@ -320,7 +320,7 @@ define([ rawData = record; } - this.btnChartType.setIconCls('item-chartlist ' + rawData.iconCls); + this.btnChartType.setIconCls('svgicon ' + 'chart-' + rawData.iconCls); this._state.ChartType = -1; if (this.api && !this._noApply) { diff --git a/apps/presentationeditor/main/app/view/DocumentHolder.js b/apps/presentationeditor/main/app/view/DocumentHolder.js index 35fe1d82e..c7219b226 100644 --- a/apps/presentationeditor/main/app/view/DocumentHolder.js +++ b/apps/presentationeditor/main/app/view/DocumentHolder.js @@ -2848,7 +2848,12 @@ define([ }), new Common.UI.MenuItem({ caption : this.textFromUrl - }).on('click', _.bind(me.onInsertImageUrl, me, false)) + }).on('click', _.bind(me.onInsertImageUrl, me, false)), + new Common.UI.MenuItem({ + caption : this.textFromStorage + }).on('click', function(item) { + Common.NotificationCenter.trigger('storage:image-load', 'change'); + }) ] }) }); @@ -3357,7 +3362,8 @@ define([ menuImgReplace.setVisible(isimage && (pluginGuid===null || pluginGuid===undefined)); if (menuImgReplace.isVisible()) menuImgReplace.setDisabled(disabled || pluginGuid===null); - + menuImgReplace.menu.items[2].setVisible(me.mode.canRequestInsertImage || me.mode.fileChoiceUrl && me.mode.fileChoiceUrl.indexOf("{documentType}")>-1); + me.menuImgCrop.setVisible(me.api.asc_canEditCrop()); if (me.menuImgCrop.isVisible()) me.menuImgCrop.setDisabled(disabled); @@ -3518,7 +3524,7 @@ define([ if (!menu) { this.placeholderMenuChart = menu = new Common.UI.Menu({ - style: 'width: 435px;', + style: 'width: 364px;', items: [ {template: _.template('')} ] @@ -3540,7 +3546,7 @@ define([ // restoreHeight: 421, groups: new Common.UI.DataViewGroupStore(Common.define.chartData.getChartGroupData()), store: new Common.UI.DataViewStore(Common.define.chartData.getChartData()), - itemTemplate: _.template('
    ') + itemTemplate: _.template('
    \">
    ') }); picker.on('item:click', function (picker, item, record, e) { me.editChartClick(record.get('type'), me._state.placeholderObj); @@ -3811,7 +3817,8 @@ define([ txtPrintSelection: 'Print Selection', addToLayoutText: 'Add to Layout', txtResetLayout: 'Reset Slide', - mniCustomTable: 'Insert Custom Table' + mniCustomTable: 'Insert Custom Table', + textFromStorage: 'From Storage' }, PE.Views.DocumentHolder || {})); }); \ No newline at end of file diff --git a/apps/presentationeditor/main/app/view/FileMenuPanels.js b/apps/presentationeditor/main/app/view/FileMenuPanels.js index 2f4aa9aea..1a9277247 100644 --- a/apps/presentationeditor/main/app/view/FileMenuPanels.js +++ b/apps/presentationeditor/main/app/view/FileMenuPanels.js @@ -510,9 +510,13 @@ define([ store: new Common.UI.DataViewStore(this.recent), itemTemplate: _.template([ '
    ', - '
    ', - '
    <%= Common.Utils.String.htmlEncode(title) %>
    ', - '
    <%= Common.Utils.String.htmlEncode(folder) %>
    ', + '
    ', + ' style="background-image: url(<%= image %>);background-position: center;"', + '<% } %>', + '>
    ', + '
    <% if (typeof title !== "undefined") {%><%= Common.Utils.String.htmlEncode(title || "") %><% } %>
    ', + '
    <% if (typeof folder !== "undefined") {%><%= Common.Utils.String.htmlEncode(folder || "") %><% } %>
    ', '
    ' ].join('')) }); @@ -564,13 +568,13 @@ define([ '<% _.each(docs, function(item) { %>', '
    ', '
    \")' + - ' } else { ' + + '<% if (!_.isEmpty(item.image)) { %> ', + ' style="background-image: url(<%= item.image %>);">', + '<% } else { ' + 'print(\">\")' + ' } %>', '
    ', - '
    <%= item.name %>
    ', + '
    <%= Common.Utils.String.htmlEncode(item.title || item.name || "") %>
    ', '
    ', '<% }) %>', '' diff --git a/apps/presentationeditor/main/app/view/ImageSettings.js b/apps/presentationeditor/main/app/view/ImageSettings.js index 3aecaaa8c..343e8e852 100644 --- a/apps/presentationeditor/main/app/view/ImageSettings.js +++ b/apps/presentationeditor/main/app/view/ImageSettings.js @@ -97,9 +97,14 @@ define([ if (this.api) { this.api.asc_registerCallback('asc_ChangeCropState', _.bind(this._changeCropState, this)); } + Common.NotificationCenter.on('storage:image-insert', _.bind(this.insertImageFromStorage, this)); return this; }, + setMode: function(mode) { + this.mode = mode; + }, + updateMetricUnit: function() { var value = Common.Utils.Metric.fnRecalcFromMM(this._state.Width); this.labelWidth[0].innerHTML = this.textWidth + ': ' + value.toFixed(2) + ' ' + Common.Utils.Metric.getCurrentMetricName(); @@ -114,15 +119,24 @@ define([ }); this.lockedControls.push(this.btnOriginalSize); - this.btnInsertFromFile = new Common.UI.Button({ - el: $('#image-button-from-file') + this.btnSelectImage = new Common.UI.Button({ + parentEl: $('#image-button-replace'), + cls: 'btn-text-menu-default', + caption: this.textInsert, + style: "width:100%;", + menu: new Common.UI.Menu({ + style: 'min-width: 194px;', + maxHeight: 200, + items: [ + {caption: this.textFromFile, value: 0}, + {caption: this.textFromUrl, value: 1}, + {caption: this.textFromStorage, value: 2} + ] + }) }); - this.lockedControls.push(this.btnInsertFromFile); - - this.btnInsertFromUrl = new Common.UI.Button({ - el: $('#image-button-from-url') - }); - this.lockedControls.push(this.btnInsertFromUrl); + this.lockedControls.push(this.btnSelectImage); + this.btnSelectImage.menu.on('item:click', _.bind(this.onImageSelect, this)); + this.btnSelectImage.menu.items[2].setVisible(this.mode.canRequestInsertImage || this.mode.fileChoiceUrl && this.mode.fileChoiceUrl.indexOf("{documentType}")>-1); this.btnEditObject = new Common.UI.Button({ el: $('#image-button-edit-object') @@ -130,14 +144,6 @@ define([ this.lockedControls.push(this.btnEditObject); this.btnOriginalSize.on('click', _.bind(this.setOriginalSize, this)); - this.btnInsertFromFile.on('click', _.bind(function(btn){ - if (this._isFromFile) return; - this._isFromFile = true; - if (this.api) this.api.ChangeImageFromFile(); - this.fireEvent('editcomplete', this); - this._isFromFile = false; - }, this)); - this.btnInsertFromUrl.on('click', _.bind(this.insertFromUrl, this)); this.btnEditObject.on('click', _.bind(function(btn){ if (this.api) this.api.asc_startEditCurrentOleObject(); this.fireEvent('editcomplete', this); @@ -228,7 +234,6 @@ define([ this.lockedControls.push(this.btnFlipH); this.linkAdvanced = $('#image-advanced-link'); - this.lblReplace = $('#image-lbl-replace'); $(this.el).on('click', '#image-advanced-link', _.bind(this.openAdvancedSettings, this)); }, @@ -264,10 +269,8 @@ define([ var pluginGuid = props.asc_getPluginGuid(); value = (pluginGuid !== null && pluginGuid !== undefined); // undefined - only images are selected, null - selected images and ole-objects if (this._state.isOleObject!==value) { - this.btnInsertFromUrl.setVisible(!value); - this.btnInsertFromFile.setVisible(!value); + this.btnSelectImage.setVisible(!value); this.btnEditObject.setVisible(value); - this.lblReplace.text(value ? this.textEditObject : this.textInsert); this.btnRotate270.setDisabled(value); this.btnRotate90.setDisabled(value); this.btnFlipV.setDisabled(value); @@ -279,8 +282,7 @@ define([ var plugin = PE.getCollection('Common.Collections.Plugins').findWhere({guid: pluginGuid}); this.btnEditObject.setDisabled(plugin===null || plugin ===undefined || this._locked); } else { - this.btnInsertFromUrl.setDisabled(pluginGuid===null || this._locked); - this.btnInsertFromFile.setDisabled(pluginGuid===null || this._locked); + this.btnSelectImage.setDisabled(pluginGuid===null || this._locked); } } }, @@ -303,25 +305,45 @@ define([ } }, - insertFromUrl: function() { - var me = this; - (new Common.Views.ImageFromUrlDialog({ - handler: function(result, value) { - if (result == 'ok') { - if (me.api) { - var checkUrl = value.replace(/ /g, ''); - if (!_.isEmpty(checkUrl)) { - var props = new Asc.asc_CImgProperty(); - props.put_ImageUrl(checkUrl); - me.api.ImgApply(props); - } - } - } - me.fireEvent('editcomplete', me); - } - })).show(); + setImageUrl: function(url, token) { + var props = new Asc.asc_CImgProperty(); + props.put_ImageUrl(url, token); + this.api.ImgApply(props); }, + insertImageFromStorage: function(data) { + if (data && data.url && data.c=='change') { + this.setImageUrl(data.url, data.token); + } + }, + + onImageSelect: function(menu, item) { + if (item.value==1) { + var me = this; + (new Common.Views.ImageFromUrlDialog({ + handler: function(result, value) { + if (result == 'ok') { + if (me.api) { + var checkUrl = value.replace(/ /g, ''); + if (!_.isEmpty(checkUrl)) { + me.setImageUrl(checkUrl); + } + } + } + me.fireEvent('editcomplete', me); + } + })).show(); + } else if (item.value==2) { + Common.NotificationCenter.trigger('storage:image-load', 'change'); + } else { + if (this._isFromFile) return; + this._isFromFile = true; + if (this.api) this.api.ChangeImageFromFile(); + this.fireEvent('editcomplete', this); + this._isFromFile = false; + } + }, + openAdvancedSettings: function(e) { if (this.linkAdvanced.hasClass('disabled')) return; @@ -448,7 +470,7 @@ define([ textCrop: 'Crop', textCropFill: 'Fill', textCropFit: 'Fit', - textFitSlide: 'Fit to Slide' - + textFitSlide: 'Fit to Slide', + textFromStorage: 'From Storage' }, PE.Views.ImageSettings || {})); }); \ No newline at end of file diff --git a/apps/presentationeditor/main/app/view/RightMenu.js b/apps/presentationeditor/main/app/view/RightMenu.js index bfe50a2a5..c38c81328 100644 --- a/apps/presentationeditor/main/app/view/RightMenu.js +++ b/apps/presentationeditor/main/app/view/RightMenu.js @@ -228,7 +228,9 @@ define([ }, setMode: function(mode) { - + this.imageSettings && this.imageSettings.setMode(mode); + this.shapeSettings && this.shapeSettings.setMode(mode); + this.slideSettings && this.slideSettings.setMode(mode); }, onBtnMenuClick: function(btn, e) { diff --git a/apps/presentationeditor/main/app/view/ShapeSettings.js b/apps/presentationeditor/main/app/view/ShapeSettings.js index c6e12c973..5b214f2e9 100644 --- a/apps/presentationeditor/main/app/view/ShapeSettings.js +++ b/apps/presentationeditor/main/app/view/ShapeSettings.js @@ -146,9 +146,14 @@ define([ this.api.asc_setInterfaceDrawImagePlaceShape('shape-texture-img'); this.api.asc_registerCallback('asc_onInitStandartTextures', _.bind(this.onInitStandartTextures, this)); } + Common.NotificationCenter.on('storage:image-insert', _.bind(this.insertImageFromStorage, this)); return this; }, + setMode: function(mode) { + this.mode = mode; + }, + onFillSrcSelect: function(combo, record) { this.ShowHideElem(record.value); switch (record.value){ @@ -630,31 +635,48 @@ define([ this.fireEvent('editcomplete', this); }, - insertFromUrl: function() { - var me = this; - (new Common.Views.ImageFromUrlDialog({ - handler: function(result, value) { - if (result == 'ok') { - if (me.api) { - var checkUrl = value.replace(/ /g, ''); - if (!_.isEmpty(checkUrl)) { - if (me.BlipFillType !== null) { - var props = new Asc.asc_CShapeProperty(); - var fill = new Asc.asc_CShapeFill(); - fill.put_type(Asc.c_oAscFill.FILL_TYPE_BLIP); - fill.put_fill( new Asc.asc_CFillBlip()); - fill.get_fill().put_type(me.BlipFillType); - fill.get_fill().put_url(checkUrl); + setImageUrl: function(url, token) { + if (this.BlipFillType !== null) { + var props = new Asc.asc_CShapeProperty(); + var fill = new Asc.asc_CShapeFill(); + fill.put_type(Asc.c_oAscFill.FILL_TYPE_BLIP); + fill.put_fill( new Asc.asc_CFillBlip()); + fill.get_fill().put_type(this.BlipFillType); + fill.get_fill().put_url(url, token); - props.put_fill(fill); - me.api.ShapeApply(props); + props.put_fill(fill); + this.api.ShapeApply(props); + } + }, + + insertImageFromStorage: function(data) { + if (data && data.url && data.c=='fill') { + this.setImageUrl(data.url, data.token); + } + }, + + onImageSelect: function(menu, item) { + if (item.value==1) { + var me = this; + (new Common.Views.ImageFromUrlDialog({ + handler: function(result, value) { + if (result == 'ok') { + if (me.api) { + var checkUrl = value.replace(/ /g, ''); + if (!_.isEmpty(checkUrl)) { + me.setImageUrl(checkUrl); } } } + me.fireEvent('editcomplete', me); } - me.fireEvent('editcomplete', me); - } - })).show(); + })).show(); + } else if (item.value==2) { + Common.NotificationCenter.trigger('storage:image-load', 'fill'); + } else { + if (this.api) this.api.ChangeShapeImageFromFile(this.BlipFillType); + this.fireEvent('editcomplete', this); + } }, openAdvancedSettings: function(e) { @@ -1119,21 +1141,24 @@ define([ }); this.fillControls.push(this.cmbPattern); - this.btnInsertFromFile = new Common.UI.Button({ - el: $('#shape-button-from-file') + this.btnSelectImage = new Common.UI.Button({ + parentEl: $('#shape-button-replace'), + cls: 'btn-text-menu-default', + caption: this.textSelectImage, + style: "width:100%;", + menu: new Common.UI.Menu({ + style: 'min-width: 194px;', + maxHeight: 200, + items: [ + {caption: this.textFromFile, value: 0}, + {caption: this.textFromUrl, value: 1}, + {caption: this.textFromStorage, value: 2} + ] + }) }); - this.fillControls.push(this.btnInsertFromFile); - - this.btnInsertFromUrl = new Common.UI.Button({ - el: $('#shape-button-from-url') - }); - this.fillControls.push(this.btnInsertFromUrl); - - this.btnInsertFromFile.on('click', _.bind(function(btn){ - if (this.api) this.api.ChangeShapeImageFromFile(this.BlipFillType); - this.fireEvent('editcomplete', this); - }, this)); - this.btnInsertFromUrl.on('click', _.bind(this.insertFromUrl, this)); + this.fillControls.push(this.btnSelectImage); + this.btnSelectImage.menu.on('item:click', _.bind(this.onImageSelect, this)); + this.btnSelectImage.menu.items[2].setVisible(this.mode.canRequestInsertImage || this.mode.fileChoiceUrl && this.mode.fileChoiceUrl.indexOf("{documentType}")>-1); this._arrFillType = [ {displayValue: this.textStretch, value: Asc.c_oAscFillBlipType.STRETCH}, @@ -1712,6 +1737,8 @@ define([ textHint90: 'Rotate 90° Clockwise', textHintFlipV: 'Flip Vertically', textHintFlipH: 'Flip Horizontally', - strShadow: 'Show shadow' + strShadow: 'Show shadow', + textFromStorage: 'From Storage', + textSelectImage: 'Select Picture' }, PE.Views.ShapeSettings || {})); }); diff --git a/apps/presentationeditor/main/app/view/SlideSettings.js b/apps/presentationeditor/main/app/view/SlideSettings.js index d6bf4700c..3bbed8708 100644 --- a/apps/presentationeditor/main/app/view/SlideSettings.js +++ b/apps/presentationeditor/main/app/view/SlideSettings.js @@ -292,9 +292,14 @@ define([ this.api.SetInterfaceDrawImagePlaceSlide('slide-texture-img'); this.api.asc_registerCallback('asc_onInitStandartTextures', _.bind(this.onInitStandartTextures, this)); } + Common.NotificationCenter.on('storage:image-insert', _.bind(this.insertImageFromStorage, this)); return this; }, + setMode: function(mode) { + this.mode = mode; + }, + onFillSrcSelect: function(combo, record) { this.ShowHideElem(record.value); switch (record.value){ @@ -640,31 +645,48 @@ define([ } }, - insertFromUrl: function() { - var me = this; - (new Common.Views.ImageFromUrlDialog({ - handler: function(result, value) { - if (result == 'ok') { - if (me.api) { - var checkUrl = value.replace(/ /g, ''); - if (!_.isEmpty(checkUrl)) { - if (me.BlipFillType !== null) { - var props = new Asc.CAscSlideProps(); - var fill = new Asc.asc_CShapeFill(); - fill.put_type(Asc.c_oAscFill.FILL_TYPE_BLIP); - fill.put_fill( new Asc.asc_CFillBlip()); - fill.get_fill().put_type(me.BlipFillType); - fill.get_fill().put_url(checkUrl); + setImageUrl: function(url, token) { + if (this.BlipFillType !== null) { + var props = new Asc.CAscSlideProps(); + var fill = new Asc.asc_CShapeFill(); + fill.put_type(Asc.c_oAscFill.FILL_TYPE_BLIP); + fill.put_fill( new Asc.asc_CFillBlip()); + fill.get_fill().put_type(this.BlipFillType); + fill.get_fill().put_url(url, token); - props.put_background(fill); - me.api.SetSlideProps(props); + props.put_background(fill); + this.api.SetSlideProps(props); + } + }, + + insertImageFromStorage: function(data) { + if (data && data.url && data.c=='slide') { + this.setImageUrl(data.url, data.token); + } + }, + + onImageSelect: function(menu, item) { + if (item.value==1) { + var me = this; + (new Common.Views.ImageFromUrlDialog({ + handler: function(result, value) { + if (result == 'ok') { + if (me.api) { + var checkUrl = value.replace(/ /g, ''); + if (!_.isEmpty(checkUrl)) { + me.setImageUrl(checkUrl); } } } + me.fireEvent('editcomplete', me); } - me.fireEvent('editcomplete', me); - } - })).show(); + })).show(); + } else if (item.value==2) { + Common.NotificationCenter.trigger('storage:image-load', 'slide'); + } else { + if (this.api) this.api.ChangeSlideImageFromFile(this.BlipFillType); + this.fireEvent('editcomplete', this); + } }, createDelayedControls: function() { @@ -692,20 +714,24 @@ define([ this.cmbPattern.on('click', _.bind(this.onPatternSelect, this)); this.FillItems.push(this.cmbPattern); - this.btnInsertFromFile = new Common.UI.Button({ - el: $('#slide-button-from-file') + this.btnSelectImage = new Common.UI.Button({ + parentEl: $('#slide-button-replace'), + cls: 'btn-text-menu-default', + caption: this.textSelectImage, + style: "width:100%;", + menu: new Common.UI.Menu({ + style: 'min-width: 194px;', + maxHeight: 200, + items: [ + {caption: this.textFromFile, value: 0}, + {caption: this.textFromUrl, value: 1}, + {caption: this.textFromStorage, value: 2} + ] + }) }); - this.btnInsertFromFile.on('click', _.bind(function(btn){ - if (this.api) this.api.ChangeSlideImageFromFile(this.BlipFillType); - this.fireEvent('editcomplete', this); - }, this)); - this.FillItems.push(this.btnInsertFromFile); - - this.btnInsertFromUrl = new Common.UI.Button({ - el: $('#slide-button-from-url') - }); - this.btnInsertFromUrl.on('click', _.bind(this.insertFromUrl, this)); - this.FillItems.push(this.btnInsertFromUrl); + this.FillItems.push(this.btnSelectImage); + this.btnSelectImage.menu.on('item:click', _.bind(this.onImageSelect, this)); + this.btnSelectImage.menu.items[2].setVisible(this.mode.canRequestInsertImage || this.mode.fileChoiceUrl && this.mode.fileChoiceUrl.indexOf("{documentType}")>-1); this._arrFillType = [ {displayValue: this.textStretch, value: Asc.c_oAscFillBlipType.STRETCH}, @@ -1534,6 +1560,8 @@ define([ textGradient: 'Gradient', textSec: 's', strSlideNum: 'Show Slide Number', - strDateTime: 'Show Date and Time' + strDateTime: 'Show Date and Time', + textFromStorage: 'From Storage', + textSelectImage: 'Select Picture' }, PE.Views.SlideSettings || {})); }); diff --git a/apps/presentationeditor/main/app/view/Toolbar.js b/apps/presentationeditor/main/app/view/Toolbar.js index f61475dc8..ff1228ea7 100644 --- a/apps/presentationeditor/main/app/view/Toolbar.js +++ b/apps/presentationeditor/main/app/view/Toolbar.js @@ -1140,7 +1140,7 @@ define([ ); this.btnInsertChart.setMenu( new Common.UI.Menu({ - style: 'width: 435px;', + style: 'width: 364px;', items: [ {template: _.template('')} ] @@ -1154,7 +1154,7 @@ define([ restoreHeight: 421, groups: new Common.UI.DataViewGroupStore(Common.define.chartData.getChartGroupData(true)), store: new Common.UI.DataViewStore(Common.define.chartData.getChartData()), - itemTemplate: _.template('
    ') + itemTemplate: _.template('
    \">
    ') }); picker.on('item:click', function (picker, item, record, e) { if (record) diff --git a/apps/presentationeditor/main/index.html b/apps/presentationeditor/main/index.html index 44708b4d3..6b431247e 100644 --- a/apps/presentationeditor/main/index.html +++ b/apps/presentationeditor/main/index.html @@ -294,6 +294,7 @@ + diff --git a/apps/presentationeditor/main/index_loader.html b/apps/presentationeditor/main/index_loader.html index 3a7e023eb..d789d5680 100644 --- a/apps/presentationeditor/main/index_loader.html +++ b/apps/presentationeditor/main/index_loader.html @@ -258,6 +258,7 @@ + diff --git a/apps/spreadsheeteditor/main/index_loader.html b/apps/spreadsheeteditor/main/index_loader.html index 96dc38c17..98d4369eb 100644 --- a/apps/spreadsheeteditor/main/index_loader.html +++ b/apps/spreadsheeteditor/main/index_loader.html @@ -261,6 +261,7 @@ +
    - - - + +