Merge branch 'develop' into feature/Bug_47900

This commit is contained in:
SergeyEzhin 2021-08-25 22:01:18 +03:00
commit 683b635d5e
310 changed files with 11833 additions and 10496 deletions

View file

@ -136,9 +136,10 @@
label: string (default: "Guest") // postfix for user name label: string (default: "Guest") // postfix for user name
}, },
review: { review: {
hideReviewDisplay: false // hide button Review mode, hideReviewDisplay: false, // hide button Review mode
hoverMode: false, // true - show review balloons on mouse move, not on click on text
showReviewChanges: false, showReviewChanges: false,
reviewDisplay: 'original', reviewDisplay: 'original', // original for viewer, markup for editor
trackChanges: undefined // true/false - open editor with track changes mode on/off, trackChanges: undefined // true/false - open editor with track changes mode on/off,
}, },
chat: true, chat: true,
@ -872,8 +873,7 @@
path += app + "/"; path += app + "/";
path += (config.type === "mobile" || isSafari_mobile) path += (config.type === "mobile" || isSafari_mobile)
? "mobile" ? "mobile"
: (config.type === "embedded" || (app=='documenteditor') && config.document && config.document.permissions && (config.document.permissions.fillForms===true) && : (config.type === "embedded")
(config.document.permissions.edit === false) && (config.document.permissions.review !== true) && (config.editorConfig.mode !== 'view'))
? "embed" ? "embed"
: "main"; : "main";

View file

@ -308,7 +308,7 @@ div {
} }
}; };
postMessageOrigin = fileInfo.PostMessageOrigin; postMessageOrigin = fileInfo.PostMessageOrigin || "*";
if (postMessageOrigin && (typeof postMessageOrigin === 'string') && postMessageOrigin.charAt(postMessageOrigin.length-1)=='/') if (postMessageOrigin && (typeof postMessageOrigin === 'string') && postMessageOrigin.charAt(postMessageOrigin.length-1)=='/')
postMessageOrigin = postMessageOrigin.substring(0, postMessageOrigin.length - 1); postMessageOrigin = postMessageOrigin.substring(0, postMessageOrigin.length - 1);
lang = config.editorConfig.lang; lang = config.editorConfig.lang;

View file

@ -225,6 +225,12 @@
.margin-right-large { .margin-right-large {
margin-right: 12px; margin-right: 12px;
} }
.margin-left-small {
margin-left: 8px;
}
.margin-left-large {
margin-left: 12px;
}
} }
// Logo // Logo

View file

@ -49,24 +49,28 @@ define([
'use strict'; 'use strict';
Common.UI.ComboBoxFonts = Common.UI.ComboBox.extend((function() { Common.UI.ComboBoxFonts = Common.UI.ComboBox.extend((function() {
var iconWidth = 302, var iconWidth = 300,
iconHeight = Asc.FONT_THUMBNAIL_HEIGHT || 26, iconHeight = Asc.FONT_THUMBNAIL_HEIGHT || 28,
thumbCanvas = document.createElement('canvas'), thumbCanvas = document.createElement('canvas'),
thumbContext = thumbCanvas.getContext('2d'), thumbContext = thumbCanvas.getContext('2d'),
thumbs = [ thumbs = [
{ratio: 1, path: '../../../../sdkjs/common/Images/fonts_thumbnail.png', width: iconWidth, height: iconHeight}, {ratio: 1, path: '../../../../sdkjs/common/Images/fonts_thumbnail.png', width: iconWidth, height: iconHeight},
{ratio: 1.25, path: '../../../../sdkjs/common/Images/fonts_thumbnail@1.25x.png', width: iconWidth * 1.25, height: iconHeight * 1.25},
{ratio: 1.5, path: '../../../../sdkjs/common/Images/fonts_thumbnail@1.5x.png', width: iconWidth * 1.5, height: iconHeight * 1.5}, {ratio: 1.5, path: '../../../../sdkjs/common/Images/fonts_thumbnail@1.5x.png', width: iconWidth * 1.5, height: iconHeight * 1.5},
{ratio: 1.75, path: '../../../../sdkjs/common/Images/fonts_thumbnail@1.75x.png', width: iconWidth * 1.75, height: iconHeight * 1.75},
{ratio: 2, path: '../../../../sdkjs/common/Images/fonts_thumbnail@2x.png', width: iconWidth * 2, height: iconHeight * 2} {ratio: 2, path: '../../../../sdkjs/common/Images/fonts_thumbnail@2x.png', width: iconWidth * 2, height: iconHeight * 2}
], ],
thumbIdx = 0, thumbIdx = 0,
listItemHeight = 26, listItemHeight = 28,
spriteCols = 1, spriteCols = 1,
applicationPixelRatio = Common.Utils.applicationPixelRatio(); applicationPixelRatio = Common.Utils.applicationPixelRatio();
if (typeof window['AscDesktopEditor'] === 'object') { if (typeof window['AscDesktopEditor'] === 'object') {
thumbs[0].path = window['AscDesktopEditor'].getFontsSprite(''); thumbs[0].path = window['AscDesktopEditor'].getFontsSprite('');
thumbs[1].path = window['AscDesktopEditor'].getFontsSprite('@1.5x'); thumbs[1].path = window['AscDesktopEditor'].getFontsSprite('@1.25x');
thumbs[2].path = window['AscDesktopEditor'].getFontsSprite('@2x'); thumbs[2].path = window['AscDesktopEditor'].getFontsSprite('@1.5x');
thumbs[3].path = window['AscDesktopEditor'].getFontsSprite('@1.75x');
thumbs[4].path = window['AscDesktopEditor'].getFontsSprite('@2x');
} }
var bestDistance = Math.abs(applicationPixelRatio-thumbs[0].ratio); var bestDistance = Math.abs(applicationPixelRatio-thumbs[0].ratio);

View file

@ -244,9 +244,10 @@ define([
onResize: function() { onResize: function() {
if (this.openButton) { if (this.openButton) {
var button = $('button', this.openButton.cmpEl); var button = $('button', this.openButton.cmpEl);
button && button.css({ var cntButton = $('.button', this.cmpEl);
width : $('.button', this.cmpEl).width(), button && cntButton.width() > 0 && button.css({
height: $('.button', this.cmpEl).height() width : cntButton.width(),
height: cntButton.height()
}); });
this.openButton.menu.hide(); this.openButton.menu.hide();

View file

@ -252,11 +252,16 @@ Common.UI.HintManager = new(function() {
var _getHints = function() { var _getHints = function() {
var docH = Common.Utils.innerHeight() - 20, var docH = Common.Utils.innerHeight() - 20,
docW = Common.Utils.innerWidth() - 20; docW = Common.Utils.innerWidth() - 20,
topSection = _currentLevel !== 0 && $(_currentSection).length > 0 ? $(_currentSection).offset().top : 0,
bottomSection = _currentLevel !== 0 && $(_currentSection).length > 0 ? topSection + $(_currentSection).height() : docH;
if (_currentControls.length === 0) if (_currentControls.length === 0)
_getControls(); _getControls();
_currentControls.forEach(function(item, index) { _currentControls.forEach(function(item, index) {
if (!_isItemDisabled(item)) { if (!_isItemDisabled(item)) {
var leftBorder = 0,
rightBorder = docW;
if ($(_currentSection).prop('id') === 'toolbar' && ($(_currentSection).find('.toolbar-mask').length > 0 || item.closest('.group').find('.toolbar-group-mask').length > 0)) { if ($(_currentSection).prop('id') === 'toolbar' && ($(_currentSection).find('.toolbar-mask').length > 0 || item.closest('.group').find('.toolbar-group-mask').length > 0)) {
return; return;
} }
@ -266,6 +271,15 @@ Common.UI.HintManager = new(function() {
return; return;
} }
} }
if (_currentLevel === 0 && item.closest('.tabs.short').length > 0) {
var blockTabs = item.closest('.tabs.short');
leftBorder = blockTabs.offset().left;
rightBorder = leftBorder + blockTabs.width();
if (!item.hasClass('scroll')) {
leftBorder += 20;
rightBorder -= 20;
}
}
var hint = $('<div style="" class="hint-div">' + item.attr('data-hint-title') + '</div>'); var hint = $('<div style="" class="hint-div">' + item.attr('data-hint-title') + '</div>');
var direction = item.attr('data-hint-direction'); var direction = item.attr('data-hint-direction');
// exceptions // exceptions
@ -324,7 +338,7 @@ Common.UI.HintManager = new(function() {
left = offset.left + (item.outerWidth() - 18) / 2 + offsets[1]; left = offset.left + (item.outerWidth() - 18) / 2 + offsets[1];
} }
if (top < maxHeight && left < docW) { if (top < maxHeight && left < docW && top > topSection && top < bottomSection && left > leftBorder && left + 18 < rightBorder) {
hint.css({ hint.css({
top: top, top: top,
left: left left: left
@ -370,7 +384,7 @@ Common.UI.HintManager = new(function() {
if (e.keyCode == Common.UI.Keys.ALT && _isAlt) { if (e.keyCode == Common.UI.Keys.ALT && _isAlt) {
e.preventDefault(); e.preventDefault();
if (!_hintVisible) { if (!_hintVisible) {
$('input').blur(); // to change value in inputField $('input:focus').blur(); // to change value in inputField
_currentLevel = $('#file-menu-panel').is(':visible') ? 1 : 0; _currentLevel = $('#file-menu-panel').is(':visible') ? 1 : 0;
_setCurrentSection(); _setCurrentSection();
_showHints(); _showHints();
@ -449,7 +463,7 @@ Common.UI.HintManager = new(function() {
} }
} }
} }
if (curr.prop('id') === 'btn-goback' || curr.closest('.btn-slot').prop('id') === 'slot-btn-options' || curr.prop('id') === 'left-btn-thumbs') { if (curr.prop('id') === 'btn-goback' || curr.closest('.btn-slot').prop('id') === 'slot-btn-options' || curr.prop('id') === 'left-btn-thumbs' || curr.hasClass('scroll')) {
_resetToDefault(); _resetToDefault();
return; return;
} }

View file

@ -104,22 +104,29 @@ define([
return this; return this;
}, },
internalShow: function() { internalShowLoader: function() {
this.ownerEl.append(this.maskeEl);
this.ownerEl.append(this.loaderEl); this.ownerEl.append(this.loaderEl);
this.loaderEl.css('min-width', $('.asc-loadmask-title', this.loaderEl).width() + 105); this.loaderEl.css('min-width', $('.asc-loadmask-title', this.loaderEl).width() + 105);
if (this.ownerEl && this.ownerEl.closest('.asc-window.modal').length==0) if (this.ownerEl && this.ownerEl.closest('.asc-window.modal').length==0)
Common.util.Shortcuts.suspendEvents(); Common.util.Shortcuts.suspendEvents();
}, },
show: function(immediately){ internalShowMask: function() {
// The owner is already masked if (!!this.ownerEl.ismasked) return;
if (!!this.ownerEl.ismasked)
return this;
this.ownerEl.ismasked = true; this.ownerEl.ismasked = true;
this.ownerEl.append(this.maskeEl);
},
show: function(immediately){
this.internalShowMask();
// The owner is already masked
if (!!this.ownerEl.hasloader)
return this;
this.ownerEl.hasloader = true;
var me = this; var me = this;
if (me.title != me.options.title) { if (me.title != me.options.title) {
@ -128,11 +135,11 @@ define([
} }
if (immediately) { if (immediately) {
me.internalShow(); me.internalShowLoader();
} else if (!me.timerId) { } else if (!me.timerId) {
// show mask after 500 ms if it wont be hided // show mask after 500 ms if it wont be hided
me.timerId = setTimeout(function () { me.timerId = setTimeout(function () {
me.internalShow(); me.internalShowLoader();
},500); },500);
} }
@ -145,20 +152,23 @@ define([
clearTimeout(this.timerId); clearTimeout(this.timerId);
this.timerId = 0; this.timerId = 0;
} }
if (ownerEl && ownerEl.ismasked) {
ownerEl && ownerEl.ismasked && this.maskeEl && this.maskeEl.remove();
delete ownerEl.ismasked;
if (ownerEl && ownerEl.hasloader) {
if (ownerEl.closest('.asc-window.modal').length==0 && !Common.Utils.ModalWindow.isVisible()) if (ownerEl.closest('.asc-window.modal').length==0 && !Common.Utils.ModalWindow.isVisible())
Common.util.Shortcuts.resumeEvents(); Common.util.Shortcuts.resumeEvents();
this.maskeEl && this.maskeEl.remove();
this.loaderEl && this.loaderEl.remove(); this.loaderEl && this.loaderEl.remove();
} }
delete ownerEl.ismasked; delete ownerEl.hasloader;
}, },
setTitle: function(title) { setTitle: function(title) {
this.title = title; this.title = title;
if (this.ownerEl && this.ownerEl.ismasked && this.loaderEl){ if (this.ownerEl && this.ownerEl.hasloader && this.loaderEl){
var el = $('.asc-loadmask-title', this.loaderEl); var el = $('.asc-loadmask-title', this.loaderEl);
el.html(title); el.html(title);
this.loaderEl.css('min-width', el.width() + 105); this.loaderEl.css('min-width', el.width() + 105);
@ -172,7 +182,7 @@ define([
updatePosition: function() { updatePosition: function() {
var ownerEl = this.ownerEl, var ownerEl = this.ownerEl,
loaderEl = this.loaderEl; loaderEl = this.loaderEl;
if (ownerEl && ownerEl.ismasked && loaderEl){ if (ownerEl && ownerEl.hasloader && loaderEl){
loaderEl.css({ loaderEl.css({
top : Math.round(ownerEl.height() / 2 - (loaderEl.height() + parseInt(loaderEl.css('padding-top')) + parseInt(loaderEl.css('padding-bottom'))) / 2) + 'px', top : Math.round(ownerEl.height() / 2 - (loaderEl.height() + parseInt(loaderEl.css('padding-top')) + parseInt(loaderEl.css('padding-bottom'))) / 2) + 'px',
left: Math.round(ownerEl.width() / 2 - (loaderEl.width() + parseInt(loaderEl.css('padding-left')) + parseInt(loaderEl.css('padding-right'))) / 2) + 'px' left: Math.round(ownerEl.width() / 2 - (loaderEl.width() + parseInt(loaderEl.css('padding-left')) + parseInt(loaderEl.css('padding-right'))) / 2) + 'px'

View file

@ -588,7 +588,7 @@ define([
if (this.options.additionalAlign) if (this.options.additionalAlign)
this.options.additionalAlign.call(this, menuRoot, left, top); this.options.additionalAlign.call(this, menuRoot, left, top);
else { else {
var _css = {left: Math.ceil(left), top: Math.ceil(top)}; var _css = {left: left, top: top};
if (!(menuH < docH)) _css['margin-top'] = 0; if (!(menuH < docH)) _css['margin-top'] = 0;
menuRoot.css(_css); menuRoot.css(_css);

View file

@ -93,7 +93,7 @@ define([
var _template_tabs = var _template_tabs =
'<section class="tabs">' + '<section class="tabs">' +
'<a class="scroll left"></a>' + '<a class="scroll left" data-hint="0" data-hint-direction="bottom" data-hint-offset="-7, 0" data-hint-title="V"></a>' +
'<ul>' + '<ul>' +
'<% for(var i in items) { %>' + '<% for(var i in items) { %>' +
'<% if (typeof items[i] == "object") { %>' + '<% if (typeof items[i] == "object") { %>' +
@ -105,7 +105,7 @@ define([
'<% } %>' + '<% } %>' +
'<% } %>' + '<% } %>' +
'</ul>' + '</ul>' +
'<a class="scroll right"></a>' + '<a class="scroll right" data-hint="0" data-hint-direction="bottom" data-hint-offset="-7, 0" data-hint-title="R"></a>' +
'</section>'; '</section>';
this.$layout = $(options.template({ this.$layout = $(options.template({

View file

@ -55,6 +55,8 @@ define([
values: [0, 100], values: [0, 100],
colorValues: ['#000000', '#ffffff'], colorValues: ['#000000', '#ffffff'],
currentThumb: 0, currentThumb: 0,
includeSnap: true,
intervalSnap: 5,
thumbTemplate: '<div class="thumb" style="">' + thumbTemplate: '<div class="thumb" style="">' +
'<div class="thumb-top"><div class="thumb-top-inner"></div></div>' + '<div class="thumb-top"><div class="thumb-top-inner"></div></div>' +
'<div class="thumb-bottom"><div class="thumb-bottom-inner"></div></div>' + '<div class="thumb-bottom"><div class="thumb-bottom-inner"></div></div>' +

View file

@ -285,6 +285,8 @@ define([
minValue: 0, minValue: 0,
maxValue: 100, maxValue: 100,
values: [0, 100], values: [0, 100],
includeSnap: false,
intervalSnap: undefined,
thumbTemplate: '<div class="thumb" style=""></div>' thumbTemplate: '<div class="thumb" style=""></div>'
}, },
@ -312,8 +314,9 @@ define([
me.minValue = me.options.minValue; me.minValue = me.options.minValue;
me.maxValue = me.options.maxValue; me.maxValue = me.options.maxValue;
me.delta = 100/(me.maxValue - me.minValue); me.delta = 100/(me.maxValue - me.minValue);
me.includeSnap = me.options.includeSnap;
me.intervalSnap = me.options.intervalSnap;
me.thumbs = []; me.thumbs = [];
if (me.options.el) { if (me.options.el) {
me.render(); me.render();
} }
@ -342,9 +345,38 @@ define([
el.find('.track-center').width(me.options.width - 14); el.find('.track-center').width(me.options.width - 14);
el.width(me.options.width); el.width(me.options.width);
var setCenters = function (index) {
if(!me.includeSnap) return;
var n = me.minValue;
var getX = function (position) {
return (0.01 * me.width * position + me.cmpEl.offset().left + me._dragstart)/Common.Utils.zoom();
};
me.centers = [];
_.each(me.thumbs, function (thumb, indexT) {
if ((indexT != index) && (n != thumb.position)) {
me.centers.push(getX((thumb.position - n) / 2 + n));
n = thumb.position;
}
});
if(n != me.maxValue) me.centers.push(getX((me.maxValue - n) / 2 + n));
};
var resetPageX = function (e) {
if(!me.includeSnap) return;
_.each(me.centers, function (x) {
if((e.pageX <= x + me.intervalSnap) && (e.pageX >= x - me.intervalSnap)) {
e.pageX = x;
return;
}
});
};
var onMouseUp = function (e) { var onMouseUp = function (e) {
e.preventDefault(); e.preventDefault();
e.stopPropagation(); e.stopPropagation();
resetPageX(e);
var index = e.data.index, var index = e.data.index,
lastValue = me.thumbs[index].value, lastValue = me.thumbs[index].value,
@ -387,6 +419,7 @@ define([
e.preventDefault(); e.preventDefault();
e.stopPropagation(); e.stopPropagation();
resetPageX(e);
var index = e.data.index, var index = e.data.index,
lastValue = me.thumbs[index].value, lastValue = me.thumbs[index].value,
@ -418,6 +451,7 @@ define([
thumb = me.thumbs[index].thumb; thumb = me.thumbs[index].thumb;
me._dragstart = e.pageX*Common.Utils.zoom() - thumb.offset().left - thumb.width()/2; me._dragstart = e.pageX*Common.Utils.zoom() - thumb.offset().left - thumb.width()/2;
setCenters(index);
me.setActiveThumb(index); me.setActiveThumb(index);
_.each(me.thumbs, function (item, idx) { _.each(me.thumbs, function (item, idx) {
@ -428,6 +462,7 @@ define([
$(document).on('mousemove', null, e.data, me.binding.onMouseMove); $(document).on('mousemove', null, e.data, me.binding.onMouseMove);
}; };
var onTrackMouseUp = function (e) { var onTrackMouseUp = function (e) {
if ( me.disabled || !_.isUndefined(me._dragstart) || me.thumbs.length > 9) return; if ( me.disabled || !_.isUndefined(me._dragstart) || me.thumbs.length > 9) return;

View file

@ -687,6 +687,14 @@ define([
newHintTab.attr('data-hint-direction', 'top'); newHintTab.attr('data-hint-direction', 'top');
newHintTab.attr('data-hint-offset', 'medium'); newHintTab.attr('data-hint-offset', 'medium');
newHintTab.attr('data-hint-title', 'M'); newHintTab.attr('data-hint-title', 'M');
} },
getWidth: function() {
var width = 21;
this.tabs.forEach(function(tab){
width += tab.$el.width();
});
return width;
},
}); });
}); });

View file

@ -1222,7 +1222,8 @@ define([
renderTo : this.sdkViewName, renderTo : this.sdkViewName,
canRequestUsers: (this.mode) ? this.mode.canRequestUsers : undefined, canRequestUsers: (this.mode) ? this.mode.canRequestUsers : undefined,
canRequestSendNotify: (this.mode) ? this.mode.canRequestSendNotify : undefined, canRequestSendNotify: (this.mode) ? this.mode.canRequestSendNotify : undefined,
mentionShare: (this.mode) ? this.mode.mentionShare : true mentionShare: (this.mode) ? this.mode.mentionShare : true,
api: this.api
}); });
this.popover.setCommentsStore(this.popoverComments); this.popover.setCommentsStore(this.popoverComments);
} }

View file

@ -109,6 +109,7 @@ define([
Common.NotificationCenter.on('api:disconnect', _.bind(this.onCoAuthoringDisconnect, this)); Common.NotificationCenter.on('api:disconnect', _.bind(this.onCoAuthoringDisconnect, this));
Common.NotificationCenter.on('collaboration:sharing', this.changeAccessRights.bind(this)); Common.NotificationCenter.on('collaboration:sharing', this.changeAccessRights.bind(this));
Common.NotificationCenter.on('collaboration:sharingdeny', this.onLostEditRights.bind(this)); Common.NotificationCenter.on('collaboration:sharingdeny', this.onLostEditRights.bind(this));
Common.NotificationCenter.on('protect:wslock', _.bind(this.onChangeProtectSheet, this));
this.userCollection.on('reset', _.bind(this.onUpdateUsers, this)); this.userCollection.on('reset', _.bind(this.onUpdateUsers, this));
this.userCollection.on('add', _.bind(this.onUpdateUsers, this)); this.userCollection.on('add', _.bind(this.onUpdateUsers, this));
@ -131,8 +132,7 @@ define([
this.api.asc_registerCallback('asc_onUpdateRevisionsChangesPosition', _.bind(this.onApiUpdateChangePosition, this)); this.api.asc_registerCallback('asc_onUpdateRevisionsChangesPosition', _.bind(this.onApiUpdateChangePosition, this));
this.api.asc_registerCallback('asc_onAuthParticipantsChanged', _.bind(this.onAuthParticipantsChanged, this)); this.api.asc_registerCallback('asc_onAuthParticipantsChanged', _.bind(this.onAuthParticipantsChanged, this));
this.api.asc_registerCallback('asc_onParticipantsChanged', _.bind(this.onAuthParticipantsChanged, this)); this.api.asc_registerCallback('asc_onParticipantsChanged', _.bind(this.onAuthParticipantsChanged, this));
this.api.asc_registerCallback('asc_onBeginViewModeInReview', _.bind(this.onBeginViewModeInReview, this)); this.api.asc_registerCallback('asc_onChangeDisplayModeInReview', _.bind(this.onChangeDisplayModeInReview, this));
this.api.asc_registerCallback('asc_onEndViewModeInReview', _.bind(this.onEndViewModeInReview, this));
} }
if (this.appConfig.canReview) if (this.appConfig.canReview)
this.api.asc_registerCallback('asc_onOnTrackRevisionsChange', _.bind(this.onApiTrackRevisionsChange, this)); this.api.asc_registerCallback('asc_onOnTrackRevisionsChange', _.bind(this.onApiTrackRevisionsChange, this));
@ -163,7 +163,7 @@ define([
SetDisabled: function(state) { SetDisabled: function(state) {
if (this.dlgChanges) if (this.dlgChanges)
this.dlgChanges.close(); this.dlgChanges.close();
this.view && this.view.SetDisabled(state, this.langs); this.view && this.view.SetDisabled(state, this.langs, {comments: !!this._state.wsProps['Objects']});
this.setPreviewMode(state); this.setPreviewMode(state);
}, },
@ -181,7 +181,7 @@ define([
onApiShowChange: function (sdkchange) { onApiShowChange: function (sdkchange) {
if (this.getPopover()) { if (this.getPopover()) {
if (sdkchange && sdkchange.length>0) { if (!this.appConfig.reviewHoverMode && sdkchange && sdkchange.length>0) {
var i = 0, var i = 0,
changes = this.readSDKChange(sdkchange), changes = this.readSDKChange(sdkchange),
posX = sdkchange[0].get_X(), posX = sdkchange[0].get_X(),
@ -256,7 +256,8 @@ define([
if ((this.appConfig.canReview || this.appConfig.canViewReview) && _.isUndefined(this.popover)) { if ((this.appConfig.canReview || this.appConfig.canViewReview) && _.isUndefined(this.popover)) {
this.popover = Common.Views.ReviewPopover.prototype.getPopover({ this.popover = Common.Views.ReviewPopover.prototype.getPopover({
reviewStore : this.popoverChanges, reviewStore : this.popoverChanges,
renderTo : this.sdkViewName renderTo : this.sdkViewName,
api: this.api
}); });
this.popover.setReviewStore(this.popoverChanges); this.popover.setReviewStore(this.popoverChanges);
} }
@ -595,7 +596,10 @@ define([
onReviewViewClick: function(menu, item, e) { onReviewViewClick: function(menu, item, e) {
this.turnDisplayMode(item.value); this.turnDisplayMode(item.value);
!this.appConfig.canReview && Common.localStorage.setItem(this.view.appPrefix + "review-mode", item.value); if (!this.appConfig.isEdit && !this.appConfig.isRestrictedEdit)
Common.localStorage.setItem(this.view.appPrefix + "review-mode", item.value); // for viewer
else if (item.value=='markup' || item.value=='simple')
Common.localStorage.setItem(this.view.appPrefix + "review-mode-editor", item.value); // for editor save only markup modes
Common.NotificationCenter.trigger('edit:complete', this.view); Common.NotificationCenter.trigger('edit:complete', this.view);
}, },
@ -685,27 +689,40 @@ define([
turnDisplayMode: function(mode) { turnDisplayMode: function(mode) {
if (this.api) { if (this.api) {
if (mode === 'final') var type = Asc.c_oAscDisplayModeInReview.Edit;
this.api.asc_BeginViewModeInReview(true); switch (mode) {
else if (mode === 'original') case 'final':
this.api.asc_BeginViewModeInReview(false); type = Asc.c_oAscDisplayModeInReview.Final;
else break;
this.api.asc_EndViewModeInReview(); case 'original':
type = Asc.c_oAscDisplayModeInReview.Original;
break;
case 'simple':
type = Asc.c_oAscDisplayModeInReview.Simple;
break;
}
this.api.asc_SetDisplayModeInReview(type);
} }
this.disableEditing(mode == 'final' || mode == 'original'); this.disableEditing(mode == 'final' || mode == 'original');
this._state.previewMode = (mode == 'final' || mode == 'original'); this._state.previewMode = (mode == 'final' || mode == 'original');
}, },
onBeginViewModeInReview: function(mode) { onChangeDisplayModeInReview: function(type) {
this.disableEditing(true); this.disableEditing(type===Asc.c_oAscDisplayModeInReview.Final || type===Asc.c_oAscDisplayModeInReview.Original);
this.view && this.view.turnDisplayMode(mode ? 'final' : 'original'); var mode = 'markup';
this._state.previewMode = true; switch (type) {
}, case Asc.c_oAscDisplayModeInReview.Final:
mode = 'final';
onEndViewModeInReview: function() { break;
this.disableEditing(false); case Asc.c_oAscDisplayModeInReview.Original:
this.view && this.view.turnDisplayMode('markup'); mode = 'original';
this._state.previewMode = false; break;
case Asc.c_oAscDisplayModeInReview.Simple:
mode = 'simple';
break;
}
this.view && this.view.turnDisplayMode(mode);
this._state.previewMode = (type===Asc.c_oAscDisplayModeInReview.Final || type===Asc.c_oAscDisplayModeInReview.Original);
}, },
isPreviewChangesMode: function() { isPreviewChangesMode: function() {
@ -807,7 +824,15 @@ define([
me.onApiTrackRevisionsChange(me.api.asc_GetLocalTrackRevisions(), me.api.asc_GetGlobalTrackRevisions()); me.onApiTrackRevisionsChange(me.api.asc_GetLocalTrackRevisions(), me.api.asc_GetGlobalTrackRevisions());
me.api.asc_HaveRevisionsChanges() && me.view.markChanges(true); me.api.asc_HaveRevisionsChanges() && me.view.markChanges(true);
// _setReviewStatus(state, global); var val = Common.localStorage.getItem(me.view.appPrefix + "review-mode-editor");
if (val===null) {
val = me.appConfig.customization && me.appConfig.customization.review ? me.appConfig.customization.review.reviewDisplay : undefined;
!val && (val = me.appConfig.customization ? me.appConfig.customization.reviewDisplay : undefined);
val = /^(original|final|markup|simple)$/i.test(val) ? val.toLocaleLowerCase() : 'markup';
}
me.turnDisplayMode(val); // load display mode for all modes (viewer or editor)
me.view.turnDisplayMode(val);
if ( typeof (me.appConfig.customization) == 'object' && (me.appConfig.customization.review && me.appConfig.customization.review.showReviewChanges==true || if ( typeof (me.appConfig.customization) == 'object' && (me.appConfig.customization.review && me.appConfig.customization.review.showReviewChanges==true ||
(!me.appConfig.customization.review || me.appConfig.customization.review.showReviewChanges===undefined) && me.appConfig.customization.showReviewChanges==true) ) { (!me.appConfig.customization.review || me.appConfig.customization.review.showReviewChanges===undefined) && me.appConfig.customization.showReviewChanges==true) ) {
@ -823,14 +848,14 @@ define([
} else if (config.canViewReview) { } else if (config.canViewReview) {
config.canViewReview = (config.isEdit || me.api.asc_HaveRevisionsChanges(true)); // check revisions from all users config.canViewReview = (config.isEdit || me.api.asc_HaveRevisionsChanges(true)); // check revisions from all users
if (config.canViewReview) { if (config.canViewReview) {
var val = Common.localStorage.getItem(me.view.appPrefix + "review-mode"); var val = Common.localStorage.getItem(me.view.appPrefix + (config.isEdit || config.isRestrictedEdit ? "review-mode-editor" : "review-mode"));
if (val===null) { if (val===null) {
val = me.appConfig.customization && me.appConfig.customization.review ? me.appConfig.customization.review.reviewDisplay : undefined; val = me.appConfig.customization && me.appConfig.customization.review ? me.appConfig.customization.review.reviewDisplay : undefined;
!val && (val = me.appConfig.customization ? me.appConfig.customization.reviewDisplay : undefined); !val && (val = me.appConfig.customization ? me.appConfig.customization.reviewDisplay : undefined);
val = /^(original|final|markup)$/i.test(val) ? val.toLocaleLowerCase() : 'original'; val = /^(original|final|markup|simple)$/i.test(val) ? val.toLocaleLowerCase() : (config.isEdit || config.isRestrictedEdit ? 'markup' : 'original');
} }
me.turnDisplayMode((config.isEdit || config.isRestrictedEdit) ? 'markup' : val); // load display mode only in viewer me.turnDisplayMode(val);
me.view.turnDisplayMode((config.isEdit || config.isRestrictedEdit) ? 'markup' : val); me.view.turnDisplayMode(val);
} }
} }
@ -840,10 +865,19 @@ define([
me.view.turnChat(state); me.view.turnChat(state);
}); });
} }
me.onChangeProtectSheet();
if (me.view) { if (me.view) {
me.view.btnCommentRemove && me.view.btnCommentRemove.setDisabled(!Common.localStorage.getBool(me.view.appPrefix + "settings-livecomment", true)); me.view.btnCommentRemove && me.view.btnCommentRemove.setDisabled(!Common.localStorage.getBool(me.view.appPrefix + "settings-livecomment", true) || !!this._state.wsProps['Objects']);
me.view.btnCommentResolve && me.view.btnCommentResolve.setDisabled(!Common.localStorage.getBool(me.view.appPrefix + "settings-livecomment", true)); me.view.btnCommentResolve && me.view.btnCommentResolve.setDisabled(!Common.localStorage.getBool(me.view.appPrefix + "settings-livecomment", true) || !!this._state.wsProps['Objects']);
} }
var val = Common.localStorage.getItem(me.view.appPrefix + "settings-review-hover-mode");
if (val === null) {
val = me.appConfig.customization && me.appConfig.customization.review ? !!me.appConfig.customization.review.hoverMode : false;
} else
val = !!parseInt(val);
Common.Utils.InternalSettings.set(me.view.appPrefix + "settings-review-hover-mode", val);
me.appConfig.reviewHoverMode = val;
}, },
showTips: function(strings) { showTips: function(strings) {
@ -974,8 +1008,24 @@ define([
commentsShowHide: function(mode) { commentsShowHide: function(mode) {
if (!this.view) return; if (!this.view) return;
var value = Common.Utils.InternalSettings.get(this.view.appPrefix + "settings-livecomment"); var value = Common.Utils.InternalSettings.get(this.view.appPrefix + "settings-livecomment");
(value!==undefined) && this.view.btnCommentRemove && this.view.btnCommentRemove.setDisabled(mode != 'show' && !value); (value!==undefined) && this.view.btnCommentRemove && this.view.btnCommentRemove.setDisabled(mode != 'show' && !value || !!this._state.wsProps['Objects']);
(value!==undefined) && this.view.btnCommentResolve && this.view.btnCommentResolve.setDisabled(mode != 'show' && !value); (value!==undefined) && this.view.btnCommentResolve && this.view.btnCommentResolve.setDisabled(mode != 'show' && !value || !!this._state.wsProps['Objects']);
},
onChangeProtectSheet: function(props) {
if (!props) {
var wbprotect = this.getApplication().getController('WBProtection');
props = wbprotect ? wbprotect.getWSProps() : null;
}
this._state.wsProps = props ? props.wsProps : {};
this._state.wsLock = props ? props.wsLock : false;
if (!this.view) return;
var leftmenu = this.getApplication().getController('LeftMenu'),
isCommentsVisible = leftmenu && leftmenu.isCommentsVisible();
var value = Common.Utils.InternalSettings.get(this.view.appPrefix + "settings-livecomment");
(value!==undefined) && this.view.btnCommentRemove && this.view.btnCommentRemove.setDisabled(!isCommentsVisible && !value || !!this._state.wsProps['Objects']);
(value!==undefined) && this.view.btnCommentResolve && this.view.btnCommentResolve.setDisabled(!isCommentsVisible && !value || !!this._state.wsProps['Objects']);
}, },
textInserted: '<b>Inserted:</b>', textInserted: '<b>Inserted:</b>',

View file

@ -245,6 +245,16 @@ define([
this.api = api; this.api = api;
var theme_name = get_ui_theme_name(Common.localStorage.getItem('ui-theme')); var theme_name = get_ui_theme_name(Common.localStorage.getItem('ui-theme'));
if ( !theme_name ) {
if ( !(Common.Utils.isIE10 || Common.Utils.isIE11) )
for (var i of document.body.classList.entries()) {
if ( i[1].startsWith('theme-') && !i[1].startsWith('theme-type-') ) {
theme_name = i[1];
break;
}
}
}
if ( !themes_map[theme_name] ) if ( !themes_map[theme_name] )
theme_name = id_default_light_theme; theme_name = id_default_light_theme;

View file

@ -42,7 +42,17 @@ var params = (function() {
return urlParams; return urlParams;
})(); })();
if ( !!params.uitheme && !localStorage.getItem("ui-theme-id") ) { var checkLocalStorage = (function () {
try {
var storage = window['localStorage'];
return true;
}
catch(e) {
return false;
}
})();
if ( !!params.uitheme && checkLocalStorage && !localStorage.getItem("ui-theme-id") ) {
// const _t = params.uitheme.match(/([\w-]+)/g); // const _t = params.uitheme.match(/([\w-]+)/g);
if ( params.uitheme == 'default-dark' ) if ( params.uitheme == 'default-dark' )
@ -54,11 +64,11 @@ if ( !!params.uitheme && !localStorage.getItem("ui-theme-id") ) {
localStorage.setItem("ui-theme-id", params.uitheme); localStorage.setItem("ui-theme-id", params.uitheme);
} }
var ui_theme_name = localStorage.getItem("ui-theme-id"); var ui_theme_name = checkLocalStorage ? localStorage.getItem("ui-theme-id") : undefined;
if ( !ui_theme_name ) { if ( !ui_theme_name ) {
if ( window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ) { if ( window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ) {
ui_theme_name = 'theme-dark'; ui_theme_name = 'theme-dark';
localStorage.setItem("ui-theme-id", ui_theme_name); checkLocalStorage && localStorage.setItem("ui-theme-id", ui_theme_name);
} }
} }
if ( !!ui_theme_name ) { if ( !!ui_theme_name ) {

View file

@ -806,7 +806,7 @@ define([
tipUndo: 'Undo', tipUndo: 'Undo',
tipRedo: 'Redo', tipRedo: 'Redo',
textCompactView: 'Hide Toolbar', textCompactView: 'Hide Toolbar',
textHideStatusBar: 'Hide Status Bar', textHideStatusBar: 'Combine sheet and status bars',
textHideLines: 'Hide Rulers', textHideLines: 'Hide Rulers',
textZoom: 'Zoom', textZoom: 'Zoom',
textAdvSettings: 'Advanced Settings', textAdvSettings: 'Advanced Settings',

View file

@ -162,10 +162,10 @@ define([
'<div class="footer center">', '<div class="footer center">',
'<button class="btn normal dlg-btn primary" result="ok">' + t.okButtonText + '</button>', '<button class="btn normal dlg-btn primary" result="ok">' + t.okButtonText + '</button>',
'<% if (closeFile) { %>', '<% if (closeFile) { %>',
'<button class="btn normal dlg-btn" result="cancel" style="margin-left:10px;">' + t.closeButtonText + '</button>', '<button class="btn normal dlg-btn custom" result="cancel" style="margin-left:10px;">' + t.closeButtonText + '</button>',
'<% } %>', '<% } %>',
'<% if (closable) { %>', '<% if (closable) { %>',
'<button class="btn normal dlg-btn" result="cancel" style="margin-left:10px;">' + t.cancelButtonText + '</button>', '<button class="btn normal dlg-btn custom" result="cancel" style="margin-left:10px;">' + t.cancelButtonText + '</button>',
'<% } %>', '<% } %>',
'</div>' '</div>'
].join(''); ].join('');

View file

@ -316,6 +316,15 @@ define([
template: menuTemplate, template: menuTemplate,
description: this.txtMarkup description: this.txtMarkup
}, },
{
caption: this.txtMarkupSimpleCap,
checkable: true,
toggleGroup: 'menuReviewView',
checked: false,
value: 'simple',
template: menuTemplate,
description: this.txtMarkupSimple
},
{ {
caption: this.txtFinalCap, caption: this.txtFinalCap,
checkable: true, checkable: true,
@ -798,12 +807,13 @@ define([
turnDisplayMode: function(mode) { turnDisplayMode: function(mode) {
if (this.btnReviewView) { if (this.btnReviewView) {
this.btnReviewView.menu.items[0].setChecked(mode=='markup', true); this.btnReviewView.menu.items[0].setChecked(mode=='markup', true);
this.btnReviewView.menu.items[1].setChecked(mode=='final', true); this.btnReviewView.menu.items[1].setChecked(mode=='simple', true);
this.btnReviewView.menu.items[2].setChecked(mode=='original', true); this.btnReviewView.menu.items[2].setChecked(mode=='final', true);
this.btnReviewView.menu.items[3].setChecked(mode=='original', true);
} }
}, },
SetDisabled: function (state, langs) { SetDisabled: function (state, langs, protectProps) {
this.btnsSpelling && this.btnsSpelling.forEach(function(button) { this.btnsSpelling && this.btnsSpelling.forEach(function(button) {
if ( button ) { if ( button ) {
button.setDisabled(state); button.setDisabled(state);
@ -821,8 +831,8 @@ define([
}, this); }, this);
// this.btnChat && this.btnChat.setDisabled(state); // this.btnChat && this.btnChat.setDisabled(state);
this.btnCommentRemove && this.btnCommentRemove.setDisabled(state || !Common.Utils.InternalSettings.get(this.appPrefix + "settings-livecomment")); this.btnCommentRemove && this.btnCommentRemove.setDisabled(state || !Common.Utils.InternalSettings.get(this.appPrefix + "settings-livecomment") || protectProps && protectProps.comments);
this.btnCommentResolve && this.btnCommentResolve.setDisabled(state || !Common.Utils.InternalSettings.get(this.appPrefix + "settings-livecomment")); this.btnCommentResolve && this.btnCommentResolve.setDisabled(state || !Common.Utils.InternalSettings.get(this.appPrefix + "settings-livecomment") || protectProps && protectProps.comments);
}, },
onLostEditRights: function() { onLostEditRights: function() {
@ -898,7 +908,9 @@ define([
txtOff: 'OFF for me', txtOff: 'OFF for me',
textWarnTrackChangesTitle: 'Enable Track Changes for everyone?', textWarnTrackChangesTitle: 'Enable Track Changes for everyone?',
textWarnTrackChanges: 'Track Changes will be switched ON for all users with full access. The next time anyone opens the doc, Track Changes will remain enabled.', textWarnTrackChanges: 'Track Changes will be switched ON for all users with full access. The next time anyone opens the doc, Track Changes will remain enabled.',
textEnable: 'Enable' textEnable: 'Enable',
txtMarkupSimpleCap: 'Simple Markup',
txtMarkupSimple: 'All changes (Editing)<br>Turn off balloons'
} }
}()), Common.Views.ReviewChanges || {})); }()), Common.Views.ReviewChanges || {}));

View file

@ -103,6 +103,7 @@ define([
this.canRequestUsers = options.canRequestUsers; this.canRequestUsers = options.canRequestUsers;
this.canRequestSendNotify = options.canRequestSendNotify; this.canRequestSendNotify = options.canRequestSendNotify;
this.mentionShare = options.mentionShare; this.mentionShare = options.mentionShare;
this.api = options.api;
this.externalUsers = []; this.externalUsers = [];
this._state = {commentsVisible: false, reviewVisible: false}; this._state = {commentsVisible: false, reviewVisible: false};
@ -784,7 +785,7 @@ define([
} }
} }
} }
if (!retainContent) if (!retainContent || this.isOverCursor())
this.calculateSizeOfContent(); this.calculateSizeOfContent();
}, },
calculateSizeOfContent: function (testVisible) { calculateSizeOfContent: function (testVisible) {
@ -839,7 +840,34 @@ define([
outerHeight = Math.max(commentsView.outerHeight(), this.$window.outerHeight()); outerHeight = Math.max(commentsView.outerHeight(), this.$window.outerHeight());
if (sdkBoundsHeight <= outerHeight) { var movePos = this.isOverCursor();
if (movePos) {
var newTopDown = movePos[1] + sdkPanelHeight,// try move down
newTopUp = movePos[0] + sdkPanelHeight; // try move up
if (newTopDown + outerHeight>sdkBoundsTop + sdkBoundsHeight) {
var diffDown = sdkBoundsTop + sdkBoundsHeight - newTopDown;
if (newTopUp - outerHeight<sdkBoundsTop) {
var diffUp = newTopUp - sdkBoundsTop;
if (diffDown < diffUp * 0.9) {// magic)
this.$window.css({
maxHeight: diffUp + 'px',
top: sdkBoundsTop + 'px'
});
commentsView.css({height: diffUp - 3 + 'px'});
} else {
this.$window.css({
maxHeight: diffDown + 'px',
top: newTopDown + 'px'
});
commentsView.css({height: diffDown - 3 + 'px'});
}
} else
this.$window.css('top', newTopUp - outerHeight + 'px'); // move up
} else
this.$window.css('top', newTopDown + 'px'); // move down
arrowView.addClass('hidden');
} else if (sdkBoundsHeight <= outerHeight) {
this.$window.css({ this.$window.css({
maxHeight: sdkBoundsHeight - sdkPanelHeight + 'px', maxHeight: sdkBoundsHeight - sdkPanelHeight + 'px',
top: sdkBoundsTop + sdkPanelHeight + 'px' top: sdkBoundsTop + sdkPanelHeight + 'px'
@ -851,6 +879,7 @@ define([
arrowPosY = Math.min(arrowPosY, sdkBoundsHeight - (sdkPanelHeight + this.arrow.margin + this.arrow.height)); arrowPosY = Math.min(arrowPosY, sdkBoundsHeight - (sdkPanelHeight + this.arrow.margin + this.arrow.height));
arrowView.css({top: arrowPosY + 'px'}); arrowView.css({top: arrowPosY + 'px'});
arrowView.removeClass('hidden');
this.scroller.scrollTop(scrollPos); this.scroller.scrollTop(scrollPos);
} else { } else {
@ -869,6 +898,7 @@ define([
arrowPosY = Math.min(arrowPosY, outerHeight - this.arrow.margin - this.arrow.height); arrowPosY = Math.min(arrowPosY, outerHeight - this.arrow.margin - this.arrow.height);
arrowView.css({top: arrowPosY + 'px'}); arrowView.css({top: arrowPosY + 'px'});
arrowView.removeClass('hidden');
} }
} }
} }
@ -880,6 +910,23 @@ define([
this.scroller.update({minScrollbarLength: 40, alwaysVisibleY: true}); this.scroller.update({minScrollbarLength: 40, alwaysVisibleY: true});
} }
}, },
isOverCursor: function() {
if (!this.api.asc_GetSelectionBounds) return;
var p = this.api.asc_GetSelectionBounds(),
isCursor = Math.abs(p[0][0] - p[1][0])<0.1 && Math.abs(p[0][1] - p[1][1])<0.1 && Math.abs(p[2][0] - p[3][0])<0.1 && Math.abs(p[2][1] - p[3][1])<0.1;
var x0 = p[0][0], y0 = p[0][1],
x1 = p[isCursor ? 2 : 1][0], y1 = p[isCursor ? 2 : 1][1];
var leftPos = parseInt(this.$window.css('left'))-25,
windowWidth = this.$window.outerWidth();
if (x0>leftPos && x0<leftPos+windowWidth || x1>leftPos && x1<leftPos+windowWidth) {
var newTopDown = Math.max(y0, y1),// try move down
newTopUp = Math.min(y0, y1); // try move up
return [newTopUp, newTopDown];
}
},
saveText: function (clear) { saveText: function (clear) {
if (this.commentsView && this.commentsView.cmpEl.find('.lock-area').length < 1) { if (this.commentsView && this.commentsView.cmpEl.find('.lock-area').length < 1) {
this.textVal = undefined; this.textVal = undefined;

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 228 B

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 612 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 B

After

Width:  |  Height:  |  Size: 86 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 B

After

Width:  |  Height:  |  Size: 96 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 B

After

Width:  |  Height:  |  Size: 102 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 B

After

Width:  |  Height:  |  Size: 85 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 B

After

Width:  |  Height:  |  Size: 95 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 B

After

Width:  |  Height:  |  Size: 101 B

View file

@ -1,10 +1,12 @@
<svg fill="none" height="96" viewBox="0 0 96 96" width="96" xmlns="http://www.w3.org/2000/svg"> <svg fill="none" height="96" viewBox="0 0 96 96" width="96" xmlns="http://www.w3.org/2000/svg">
<symbol id="svg-format-blank"> <symbol id="svg-format-blank">
<clipPath id="a"> <g clip-path="url(#clip0)">
<path d="m0 0h96v96h-96z"/> <path d="M94 9.5C94.8284 9.5 95.5 10.1716 95.5 11L95.5 85C95.5 85.8284 94.8284 86.5 94 86.5L2 86.5C1.17157 86.5 0.499997 85.8284 0.499997 85L0.5 11C0.5 10.1716 1.17158 9.5 2 9.5L94 9.5Z" fill="white" stroke="#BFBFBF"/>
</clipPath>
<g clip-path="url(#a)">
<path d="m.499997 94 .000003-74c0-.8284.67157-1.5 1.5-1.5h92c.8284 0 1.5.6716 1.5 1.5v74c0 .8284-.6716 1.5-1.5 1.5h-92c-.82843 0-1.500003-.6716-1.500003-1.5z" fill="#fff" stroke="#bfbfbf"/>
</g> </g>
<defs>
<clipPath id="clip0">
<rect width="96" height="96" fill="white"/>
</clipPath>
</defs>
</symbol> </symbol>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 440 B

After

Width:  |  Height:  |  Size: 534 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 848 B

After

Width:  |  Height:  |  Size: 803 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 934 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 971 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1 KiB

View file

@ -4,7 +4,7 @@
(min-resolution: 1.25dppx) and (max-resolution: 1.4dppx), (min-resolution: 1.25dppx) and (max-resolution: 1.4dppx),
(min-resolution: 120dpi) and (max-resolution: 143dpi) (min-resolution: 120dpi) and (max-resolution: 143dpi)
{ {
.x-huge .toolbar__icon { .x-huge .toolbar__icon, .toolbar__icon.toolbar__icon-big {
background-image: url(resources/{{{escaped_image}}}); background-image: url(resources/{{{escaped_image}}});
background-size: {{scaled width 1.25}}px auto; background-size: {{scaled width 1.25}}px auto;
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 318 B

After

Width:  |  Height:  |  Size: 234 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 386 B

After

Width:  |  Height:  |  Size: 409 B

View file

@ -1,6 +1,9 @@
{{#spritesheet}} {{#spritesheet}}
.options__icon.options__icon-huge { .pixel-ratio__1_25 {
.options__icon.options__icon-huge {
background-image: url(resources/{{{escaped_image}}});
background-size: 80px auto; background-size: 80px auto;
background-size: var(--huge-icon-background-image-width) auto; background-size: var(--huge-icon-background-image-width) auto;
}
} }
{{/spritesheet}} {{/spritesheet}}

View file

@ -4,7 +4,7 @@
(min-resolution: 1.75dppx) and (max-resolution: 1.9dppx), (min-resolution: 1.75dppx) and (max-resolution: 1.9dppx),
(min-resolution: 168dpi) and (max-resolution: 191dpi) (min-resolution: 168dpi) and (max-resolution: 191dpi)
{ {
.x-huge .toolbar__icon { .x-huge .toolbar__icon, .toolbar__icon.toolbar__icon-big {
background-image: url(resources/{{{escaped_image}}}); background-image: url(resources/{{{escaped_image}}});
background-size: {{scaled width 1.75}}px auto; background-size: {{scaled width 1.75}}px auto;
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 436 B

After

Width:  |  Height:  |  Size: 342 B

View file

@ -1,6 +1,9 @@
{{#spritesheet}} {{#spritesheet}}
.options__icon.options__icon-huge { .pixel-ratio__1_75 {
.options__icon.options__icon-huge {
background-image: url(resources/{{{escaped_image}}});
background-size: 80px auto; background-size: 80px auto;
background-size: var(--huge-icon-background-image-width) auto; background-size: var(--huge-icon-background-image-width) auto;
}
} }
{{/spritesheet}} {{/spritesheet}}

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

View file

@ -100,6 +100,26 @@
.pixel-ratio__2 { .pixel-ratio__2 {
} }
.pixel-ratio__1_25 {
@ratio: 1.25;
@one-px: 1px / @ratio;
@two-px: 2px / @ratio;
--pixel-ratio-factor: @ratio;
--scaled-one-pixel: @one-px;
--scaled-two-pixel: @two-px;
}
.pixel-ratio__1_75 {
@ratio: 1.75;
@one-px: 1px / @ratio;
@two-px: 2px / @ratio;
--pixel-ratio-factor: @ratio;
--scaled-one-pixel: @one-px;
--scaled-two-pixel: @two-px;
}
} }
.button-normal-icon(@icon-class, @index, @icon-size, @normal-h-offset: 0px) { .button-normal-icon(@icon-class, @index, @icon-size, @normal-h-offset: 0px) {
@ -211,6 +231,53 @@
} }
} }
.background-ximage-all(@image, @w: auto, @h: auto, @repeat: no-repeat, @commonimage: true) {
.choose-image-path(@commonimage);
@imagepath: '@{path}/@{image}';
background-image: if(@icon-src-base64, data-uri(%("%s", '@{imagepath}')), ~"url(@{imagepath})");
background-repeat: @repeat;
@1d5ximage: replace(@imagepath, '\.png$', '@1.5x.png');
@1d75ximage: replace(@imagepath, '\.png$', '@1.75x.png');
@1d25ximage: replace(@imagepath, '\.png$', '@1.25x.png');
@2ximage: replace(@imagepath, '\.png$', '@2x.png');
@media only screen {
@media (-webkit-min-device-pixel-ratio: 1.25) and (-webkit-max-device-pixel-ratio: 1.49),
(min-resolution: 1.25dppx) and (max-resolution: 1.49dppx),
(min-resolution: 120dpi) and (max-resolution: 143dpi)
{
background-image: ~"url(@{1d25ximage})";
background-size: @w @h;
}
@media (-webkit-min-device-pixel-ratio: 1.5) and (-webkit-max-device-pixel-ratio: 1.74),
(min-resolution: 1.5dppx) and (max-resolution: 1.74dppx),
(min-resolution: 144dpi) and (max-resolution: 167dpi)
{
background-image: ~"url(@{1d5ximage})";
background-size: @w @h;
}
@media (-webkit-min-device-pixel-ratio: 1.75) and (-webkit-max-device-pixel-ratio: 1.9),
(min-resolution: 1.75dppx) and (max-resolution: 1.9dppx),
(min-resolution: 168dpi) and (max-resolution: 191dpi)
{
background-image: ~"url(@{1d75ximage})";
background-size: @w @h;
}
@media (-webkit-min-device-pixel-ratio: 2),
(min-resolution: 2dppx),
(min-resolution: 192dpi)
{
background-image: ~"url(@{2ximage})";
background-size: @w @h;
}
}
}
.img-commonctrl { .img-commonctrl {
&.img-colored { &.img-colored {
filter: none; filter: none;
@ -226,7 +293,9 @@
background-repeat: no-repeat; background-repeat: no-repeat;
filter: @component-normal-icon-filter; filter: @component-normal-icon-filter;
@1d25ximage: replace(@common-controls, '\.png$', '@1.25x.png');
@1d5ximage: replace(@common-controls, '\.png$', '@1.5x.png'); @1d5ximage: replace(@common-controls, '\.png$', '@1.5x.png');
@1d75ximage: replace(@common-controls, '\.png$', '@1.75x.png');
@2ximage: replace(@common-controls, '\.png$', '@2x.png'); @2ximage: replace(@common-controls, '\.png$', '@2x.png');
@media only screen { @media only screen {
@ -246,6 +315,16 @@
background-size: @common-controls-width auto; background-size: @common-controls-width auto;
} }
} }
.pixel-ratio__1_25 & {
background-image: ~"url(@{common-image-const-path}/@{1d25ximage})";
background-size: @common-controls-width auto;
}
.pixel-ratio__1_75 & {
background-image: ~"url(@{common-image-const-path}/@{1d75ximage})";
background-size: @common-controls-width auto;
}
} }
@img-colorpicker-width: 205px; @img-colorpicker-width: 205px;

View file

@ -694,8 +694,8 @@
li > a.selected, li > a.selected,
li > a:hover { li > a:hover {
span.color-auto { span.color-auto {
outline: @scaled-one-px-value-ie solid @border-regular-control-ie; outline: @scaled-one-px-value-ie solid @icon-normal-ie;
outline: @scaled-one-px-value solid @border-regular-control; outline: @scaled-one-px-value solid @icon-normal;
border: @scaled-one-px-value-ie solid @background-normal-ie; border: @scaled-one-px-value-ie solid @background-normal-ie;
border: @scaled-one-px-value solid @background-normal; border: @scaled-one-px-value solid @background-normal;
} }

View file

@ -27,6 +27,7 @@
width:60px; width:60px;
height:20px; height:20px;
background-color: transparent; background-color: transparent;
image-rendering: pixelated;
} }
} }
@ -37,16 +38,25 @@
display: inline-block; display: inline-block;
background-color: transparent; background-color: transparent;
margin: 0 0 0 -3px; margin: 0 0 0 -3px;
image-rendering: pixelated;
} }
img, .image { img, .image {
background: ~"url(@{common-image-const-path}/combo-border-size/BorderSize.png) no-repeat 0 0"; background: ~"url(@{common-image-const-path}/combo-border-size/BorderSize.png) no-repeat 0 0";
background-size: 60px auto; background-size: 60px auto;
.pixel-ratio__1_25 & {
background-image: ~"url(@{common-image-const-path}/combo-border-size/BorderSize@1.25x.png)";
}
.pixel-ratio__1_5 & { .pixel-ratio__1_5 & {
background-image: ~"url(@{common-image-const-path}/combo-border-size/BorderSize@1.5x.png)"; background-image: ~"url(@{common-image-const-path}/combo-border-size/BorderSize@1.5x.png)";
} }
.pixel-ratio__1_75 & {
background-image: ~"url(@{common-image-const-path}/combo-border-size/BorderSize@1.75x.png)";
}
.pixel-ratio__2 & { .pixel-ratio__2 & {
background-image: ~"url(@{common-image-const-path}/combo-border-size/BorderSize@2x.png)"; background-image: ~"url(@{common-image-const-path}/combo-border-size/BorderSize@2x.png)";
} }

View file

@ -99,7 +99,7 @@
} }
.item { .item {
padding: 3px; padding: 2px;
border: @scaled-one-px-value-ie solid @border-regular-control-ie; border: @scaled-one-px-value-ie solid @border-regular-control-ie;
border: @scaled-one-px-value solid @border-regular-control; border: @scaled-one-px-value solid @border-regular-control;
.box-shadow(none); .box-shadow(none);
@ -164,6 +164,11 @@
width: @combo-dataview-button-width; width: @combo-dataview-button-width;
height: @combo-dataview-height; height: @combo-dataview-height;
.btn-group, button {
width: 100%;
height: 100%;
}
button { button {
&.dropdown-toggle { &.dropdown-toggle {
padding: 0; padding: 0;

View file

@ -38,6 +38,8 @@
.btn { .btn {
border-left: 0; border-left: 0;
border-top-left-radius: 0;
border-bottom-left-radius: 0;
border-color: @border-regular-control-ie; border-color: @border-regular-control-ie;
border-color: @border-regular-control; border-color: @border-regular-control;
background-color: transparent; background-color: transparent;

View file

@ -21,13 +21,13 @@
.dimension-picker-unhighlighted { .dimension-picker-unhighlighted {
//background: transparent repeat scroll 0 0; //background: transparent repeat scroll 0 0;
.background-ximage-v2('dimension-picker/dimension-unhighlighted.png', 18px); .background-ximage-all('dimension-picker/dimension-unhighlighted.png', 18px);
background-repeat: repeat; background-repeat: repeat;
} }
.dimension-picker div.dimension-picker-highlighted { .dimension-picker div.dimension-picker-highlighted {
//background: transparent repeat scroll 0 0; //background: transparent repeat scroll 0 0;
.background-ximage-v2('dimension-picker/dimension-highlighted.png', 18px); .background-ximage-all('dimension-picker/dimension-highlighted.png', 18px);
background-repeat: repeat; background-repeat: repeat;
} }

View file

@ -11,6 +11,8 @@
border: @track-height / 2 solid @border-regular-control-ie; border: @track-height / 2 solid @border-regular-control-ie;
border: @track-height / 2 solid @border-regular-control; border: @track-height / 2 solid @border-regular-control;
border-radius: @track-height / 2; border-radius: @track-height / 2;
background-color: @border-regular-control-ie;
background-color: @border-regular-control;
width: calc(100% + @track-height); width: calc(100% + @track-height);
margin-left: -@track-height / 2; margin-left: -@track-height / 2;
} }

View file

@ -39,7 +39,7 @@
.spinner-buttons { .spinner-buttons {
position: absolute; position: absolute;
top: 0; top: 0;
right: 1px; right: @scaled-one-px-value;
border-top: @scaled-one-px-value-ie solid transparent; border-top: @scaled-one-px-value-ie solid transparent;
border-top: @scaled-one-px-value solid transparent; border-top: @scaled-one-px-value solid transparent;
border-bottom: @scaled-one-px-value-ie solid transparent; border-bottom: @scaled-one-px-value-ie solid transparent;

View file

@ -551,6 +551,12 @@
.icon { .icon {
width: 22px; width: 22px;
height: 22px; height: 22px;
.pixel-ratio__1_25 &,
.pixel-ratio__1_75 & {
width: 20px;
height: 20px;
}
} }
} }
} }
@ -584,7 +590,7 @@
border: @scaled-one-px-value solid @border-regular-control; border: @scaled-one-px-value solid @border-regular-control;
.equation-icon { .equation-icon {
.background-ximage-v2('toolbar/math.png', 1500px, @commonimage: true); .background-ximage-all('toolbar/math.png', 1500px, @commonimage: true);
opacity: @component-normal-icon-opacity; opacity: @component-normal-icon-opacity;
.theme-dark & { .theme-dark & {

View file

@ -11,7 +11,7 @@ const ThemeColors = ({ themeColors, onColorClick, curColor }) => {
{row.map((effect, index) => { {row.map((effect, index) => {
return( return(
<a key={`tc-${rowIndex}-${index}`} <a key={`tc-${rowIndex}-${index}`}
className={(curColor && curColor.color === effect.color && curColor.effectValue === effect.effectValue) ? 'active' : ''} className={(curColor && ((curColor.color === effect.color && curColor.effectValue === effect.effectValue) || (curColor === effect.color))) ? 'active' : ''}
style={{ background: `#${effect.color}`}} style={{ background: `#${effect.color}`}}
onClick={() => {onColorClick(effect.color, effect.effectId, effect.effectValue)}} onClick={() => {onColorClick(effect.color, effect.effectId, effect.effectValue)}}
></a> ></a>

View file

@ -150,8 +150,8 @@ class ContextMenuController extends Component {
this.setState({openedMore: false}); this.setState({openedMore: false});
} }
onMenuItemClick(action) { async onMenuItemClick(action) {
this.onApiHideContextMenu(); await this.onApiHideContextMenu();
if (action === 'showActionSheet') { if (action === 'showActionSheet') {
this.setState({openedMore: true}); this.setState({openedMore: true});

View file

@ -564,25 +564,37 @@ class ViewCommentsController extends Component {
this.onResolveComment(comment); this.onResolveComment(comment);
break; break;
case 'deleteComment': case 'deleteComment':
f7.dialog.confirm( f7.dialog.create({
_t.textMessageDeleteComment, title: _t.textDeleteComment,
_t.textDeleteComment, text: _t.textMessageDeleteComment,
() => { buttons: [
this.deleteComment(comment); {
text: _t.textCancel
},
{
text: _t.textOk,
onClick: () => this.deleteComment(comment)
} }
); ]
}).open();
break; break;
case 'editReply': case 'editReply':
this.props.storeComments.openEditReply(true, comment, reply); this.props.storeComments.openEditReply(true, comment, reply);
break; break;
case 'deleteReply': case 'deleteReply':
f7.dialog.confirm( f7.dialog.create({
_t.textMessageDeleteReply, title: _t.textDeleteReply,
_t.textDeleteReply, text: _t.textMessageDeleteReply,
() => { buttons: [
this.deleteReply(comment, reply); {
text: _t.textCancel
},
{
text: _t.textOk,
onClick: () => this.deleteReply(comment, reply)
} }
); ]
}).open();
break; break;
case 'addReply': case 'addReply':
this.props.storeComments.openAddReply(true, comment); this.props.storeComments.openAddReply(true, comment);

View file

@ -25,28 +25,30 @@ class InitReview extends Component {
api.asc_SetTrackRevisions(trackChanges); api.asc_SetTrackRevisions(trackChanges);
// Init display mode // Init display mode
if (!appOptions.canReview) {
const canViewReview = appOptions.isEdit || api.asc_HaveRevisionsChanges(true); const canViewReview = appOptions.canReview || appOptions.isEdit || api.asc_HaveRevisionsChanges(true);
if (!appOptions.canReview)
appOptions.setCanViewReview(canViewReview); appOptions.setCanViewReview(canViewReview);
if (canViewReview) { if (canViewReview) {
let viewReviewMode = LocalStorage.getItem("de-view-review-mode"); let viewReviewMode = (appOptions.isEdit || appOptions.isRestrictedEdit) ? null : LocalStorage.getItem("de-view-review-mode");
if (viewReviewMode === null) { if (viewReviewMode === null) {
viewReviewMode = appOptions.customization && appOptions.customization.review ? appOptions.customization.review.reviewDisplay : undefined; viewReviewMode = appOptions.customization && appOptions.customization.review ? appOptions.customization.review.reviewDisplay : undefined;
!viewReviewMode && (viewReviewMode = appOptions.customization ? appOptions.customization.reviewDisplay : undefined); !viewReviewMode && (viewReviewMode = appOptions.customization ? appOptions.customization.reviewDisplay : undefined);
viewReviewMode = /^(original|final|markup)$/i.test(viewReviewMode) ? viewReviewMode.toLocaleLowerCase() : 'original'; viewReviewMode = /^(original|final|markup|simple)$/i.test(viewReviewMode) ? viewReviewMode.toLocaleLowerCase() : ( appOptions.isEdit || appOptions.isRestrictedEdit ? 'markup' : 'original');
} }
viewReviewMode = (appOptions.isEdit || appOptions.isRestrictedEdit) ? 'markup' : viewReviewMode; let displayMode = viewReviewMode.toLocaleLowerCase();
const displayMode = viewReviewMode.toLocaleLowerCase(); let type = Asc.c_oAscDisplayModeInReview.Edit;
if (displayMode === 'final') { switch (displayMode) {
api.asc_BeginViewModeInReview(true); case 'final':
} else if (displayMode === 'original') { type = Asc.c_oAscDisplayModeInReview.Final;
api.asc_BeginViewModeInReview(false); break;
} else { case 'original':
api.asc_EndViewModeInReview(); type = Asc.c_oAscDisplayModeInReview.Original;
break;
} }
api.asc_SetDisplayModeInReview(type);
props.storeReview.changeDisplayMode(displayMode); props.storeReview.changeDisplayMode(displayMode);
} }
}
}); });
} }
@ -102,14 +104,17 @@ class Review extends Component {
onDisplayMode (mode) { onDisplayMode (mode) {
const api = Common.EditorApi.get(); const api = Common.EditorApi.get();
if (mode === 'final') { let type = Asc.c_oAscDisplayModeInReview.Edit;
api.asc_BeginViewModeInReview(true); switch (mode) {
} else if (mode === 'original') { case 'final':
api.asc_BeginViewModeInReview(false); type = Asc.c_oAscDisplayModeInReview.Final;
} else { break;
api.asc_EndViewModeInReview(); case 'original':
type = Asc.c_oAscDisplayModeInReview.Original;
break;
} }
!this.appConfig.canReview && LocalStorage.setItem("de-view-review-mode", mode); api.asc_SetDisplayModeInReview(type);
!this.appConfig.isEdit && !this.appConfig.isRestrictedEdit && LocalStorage.setItem("de-view-review-mode", mode);
this.props.storeReview.changeDisplayMode(mode); this.props.storeReview.changeDisplayMode(mode);
} }

View file

@ -85,7 +85,7 @@ const routes = [
} }
]; ];
const PageCollaboration = inject('storeAppOptions')(observer(props => { const PageCollaboration = inject('storeAppOptions', 'users')(observer(props => {
const { t } = useTranslation(); const { t } = useTranslation();
const _t = t('Common.Collaboration', {returnObjects: true}); const _t = t('Common.Collaboration', {returnObjects: true});
const appOptions = props.storeAppOptions; const appOptions = props.storeAppOptions;
@ -102,9 +102,11 @@ const PageCollaboration = inject('storeAppOptions')(observer(props => {
} }
</Navbar> </Navbar>
<List> <List>
{props.users.editUsers.length > 0 &&
<ListItem link={'/users/'} title={_t.textUsers}> <ListItem link={'/users/'} title={_t.textUsers}>
<Icon slot="media" icon="icon-users"></Icon> <Icon slot="media" icon="icon-users"></Icon>
</ListItem> </ListItem>
}
{appOptions.canViewComments && {appOptions.canViewComments &&
<ListItem link='/comments/' title={_t.textComments}> <ListItem link='/comments/' title={_t.textComments}>
<Icon slot="media" icon="icon-insert-comment"></Icon> <Icon slot="media" icon="icon-insert-comment"></Icon>

View file

@ -48,6 +48,11 @@
display: flex; display: flex;
justify-content: center; justify-content: center;
} }
&-inner {
background: var(--f7-navbar-bg-color);
background-image: var(--f7-navbar-bg-image, var(--f7-bars-bg-image));
background-color: var(--f7-navbar-bg-color, var(--f7-bars-bg-color));
}
} }
.page.page-with-subnavbar.page-with-logo { .page.page-with-subnavbar.page-with-logo {
@ -62,8 +67,13 @@
margin-bottom: 0; margin-bottom: 0;
margin-top: 8px; margin-top: 8px;
} }
.add-image {
ul:before, :after{
display: none;
}
}
.inputs-list { .inputs-list {
ul:after, :before{ ul:after {
display: none; display: none;
} }
} }

View file

@ -257,6 +257,8 @@
margin-top: 14px; margin-top: 14px;
background-image: url(../img/themes/themes.png); background-image: url(../img/themes/themes.png);
display: block; display: block;
background-repeat: no-repeat;
background-size: cover;
} }
.item-theme.active:before { .item-theme.active:before {
content: ''; content: '';
@ -531,8 +533,7 @@
padding-left: 5px; padding-left: 5px;
padding-right: 5px; padding-right: 5px;
padding-top: 5px; padding-top: 5px;
} li.item-theme {
li {
border: 0.5px solid #c8c7cc; border: 0.5px solid #c8c7cc;
padding: 2px; padding: 2px;
background-repeat: no-repeat; background-repeat: no-repeat;
@ -540,11 +541,26 @@
height: 56px; height: 56px;
margin-bottom: 10px; margin-bottom: 10px;
background-position: center; background-position: center;
} .item-content {
.item-inner:after { width: 100%;
height: 100%;
padding: 0;
.item-inner {
width: 100%;
height: 100%;
padding: 0;
&:after {
display: none; display: none;
} }
.item-theme.active:before { .thumb {
width: 100%;
height: 100%;
padding: 0;
background-size: contain;
}
}
}
&.active:before {
content: ''; content: '';
position: absolute; position: absolute;
width: 22px; width: 22px;
@ -554,6 +570,8 @@
z-index: 1; z-index: 1;
.encoded-svg-background('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="0 0 22 22" fill="#40865c"><g><circle fill="#fff" cx="11" cy="11" r="11"/><path d="M11,21A10,10,0,1,1,21,11,10,10,0,0,1,11,21h0ZM17.4,7.32L17.06,7a0.48,0.48,0,0,0-.67,0l-7,6.84L6.95,11.24a0.51,0.51,0,0,0-.59.08L6,11.66a0.58,0.58,0,0,0,0,.65l3.19,3.35a0.38,0.38,0,0,0,.39,0L17.4,8a0.48,0.48,0,0,0,0-.67h0Z"/></g></svg>'); .encoded-svg-background('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="0 0 22 22" fill="#40865c"><g><circle fill="#fff" cx="11" cy="11" r="11"/><path d="M11,21A10,10,0,1,1,21,11,10,10,0,0,1,11,21h0ZM17.4,7.32L17.06,7a0.48,0.48,0,0,0-.67,0l-7,6.84L6.95,11.24a0.51,0.51,0,0,0-.59.08L6,11.66a0.58,0.58,0,0,0,0,.65l3.19,3.35a0.38,0.38,0,0,0,.39,0L17.4,8a0.48,0.48,0,0,0,0-.67h0Z"/></g></svg>');
} }
}
}
} }
// input[type="number"] // input[type="number"]

View file

@ -197,8 +197,8 @@
<span id="title-doc-name"></span> <span id="title-doc-name"></span>
</div> </div>
<div class="group right"> <div class="group right">
<div id="id-submit-group" style="display: inline-block;"><button id="id-btn-submit" class="control-btn has-caption margin-right-small colored"><span class="caption"></span></button></div> <div id="id-pages" class="item margin-right-small" style="vertical-align: middle;"><input id="page-number" class="form-control input-xs masked" type="text" value="0"><span class="text" id="pages" tabindex="-1">of 0</span></div>
<div id="id-pages" class="item margin-right-small"><input id="page-number" class="form-control input-xs masked" type="text" value="0"><span class="text" id="pages" tabindex="-1">of 0</span></div> <div id="id-submit-group" style="display: inline-block;"><button id="id-btn-submit" class="control-btn has-caption margin-left-small margin-right-small colored"><span class="caption"></span></button></div>
<div id="box-tools" class="dropdown"> <div id="box-tools" class="dropdown">
<button class="control-btn svg-icon more-vertical"></button> <button class="control-btn svg-icon more-vertical"></button>
</div> </div>

View file

@ -189,8 +189,8 @@
<span id="title-doc-name"></span> <span id="title-doc-name"></span>
</div> </div>
<div class="group right"> <div class="group right">
<div id="id-submit-group" style="display: inline-block;"><button id="id-btn-submit" class="control-btn has-caption margin-right-small colored"><span class="caption"></span></button></div> <div id="id-pages" class="item margin-right-small" style="vertical-align: middle;"><input id="page-number" class="form-control input-xs masked" type="text" value="0"><span class="text" id="pages" tabindex="-1">of 0</span></div>
<div id="id-pages" class="item margin-right-small"><input id="page-number" class="form-control input-xs masked" type="text" value="0"><span class="text" id="pages" tabindex="-1">of 0</span></div> <div id="id-submit-group" style="display: inline-block;"><button id="id-btn-submit" class="control-btn has-caption margin-right-small margin-left-small colored"><span class="caption"></span></button></div>
<div id="box-tools" class="dropdown"> <div id="box-tools" class="dropdown">
<button class="control-btn svg-icon more-vertical"></button> <button class="control-btn svg-icon more-vertical"></button>
</div> </div>

View file

@ -298,8 +298,8 @@
<span id="title-doc-name"></span> <span id="title-doc-name"></span>
</div> </div>
<div class="group right"> <div class="group right">
<div id="id-submit-group" style="display: inline-block;"><button id="id-btn-submit" class="control-btn has-caption margin-right-small colored"><span class="caption"></span></button></div> <div id="id-pages" class="item margin-right-small" style="vertical-align: middle;"><input id="page-number" class="form-control input-xs masked" type="text" value="0"><span class="text" id="pages" tabindex="-1">of 0</span></div>
<div id="id-pages" class="item margin-right-small"><input id="page-number" class="form-control input-xs masked" type="text" value="0"><span class="text" id="pages" tabindex="-1">of 0</span></div> <div id="id-submit-group" style="display: inline-block;"><button id="id-btn-submit" class="control-btn has-caption margin-right-small margin-left-small colored"><span class="caption"></span></button></div>
<div id="box-tools" class="dropdown"> <div id="box-tools" class="dropdown">
<button class="control-btn svg-icon more-vertical"></button> <button class="control-btn svg-icon more-vertical"></button>
</div> </div>

View file

@ -290,8 +290,8 @@
<span id="title-doc-name"></span> <span id="title-doc-name"></span>
</div> </div>
<div class="group right"> <div class="group right">
<div id="id-submit-group" style="display: inline-block;"><button id="id-btn-submit" class="control-btn has-caption margin-right-small colored"><span class="caption"></span></button></div> <div id="id-pages" class="item margin-right-small" style="vertical-align: middle;"><input id="page-number" class="form-control input-xs masked" type="text" value="0"><span class="text" id="pages" tabindex="-1">of 0</span></div>
<div id="id-pages" class="item margin-right-small"><input id="page-number" class="form-control input-xs masked" type="text" value="0"><span class="text" id="pages" tabindex="-1">of 0</span></div> <div id="id-submit-group" style="display: inline-block;"><button id="id-btn-submit" class="control-btn has-caption margin-right-small margin-left-small colored"><span class="caption"></span></button></div>
<div id="box-tools" class="dropdown"> <div id="box-tools" class="dropdown">
<button class="control-btn svg-icon more-vertical"></button> <button class="control-btn svg-icon more-vertical"></button>
</div> </div>

View file

@ -627,7 +627,6 @@ DE.ApplicationController = new(function(){
$('#id-btn-clear-fields').hide(); $('#id-btn-clear-fields').hide();
btnSubmit.hide(); btnSubmit.hide();
} else { } else {
$('#id-pages').hide();
$('#id-btn-next-field .caption').text(me.textNext); $('#id-btn-next-field .caption').text(me.textNext);
$('#id-btn-clear-fields .caption').text(me.textClear); $('#id-btn-clear-fields .caption').text(me.textClear);
@ -743,6 +742,10 @@ DE.ApplicationController = new(function(){
message = me.errorForceSave; message = me.errorForceSave;
break; break;
case Asc.c_oAscError.ID.LoadingFontError:
message = me.errorLoadingFont;
break;
default: default:
message = me.errorDefaultMessage.replace('%1', id); message = me.errorDefaultMessage.replace('%1', id);
break; break;
@ -928,6 +931,7 @@ DE.ApplicationController = new(function(){
textGotIt: 'Got it', textGotIt: 'Got it',
errorForceSave: "An error occurred while saving the file. Please use the 'Download as' option to save the file to your computer hard drive or try again later.", errorForceSave: "An error occurred while saving the file. Please use the 'Download as' option to save the file to your computer hard drive or try again later.",
txtEmpty: '(Empty)', txtEmpty: '(Empty)',
txtPressLink: 'Press Ctrl and click link' txtPressLink: 'Press Ctrl and click link',
errorLoadingFont: 'Fonts are not loaded.<br>Please contact your Document Server administrator.'
} }
})(); })();

View file

@ -1,44 +1,47 @@
{ {
"common.view.modals.txtCopy": "Copiat al porta-retalls", "common.view.modals.txtCopy": "Copia al porta-retalls",
"common.view.modals.txtEmbed": "Incrustar", "common.view.modals.txtEmbed": "Incrusta",
"common.view.modals.txtHeight": "Alçada", "common.view.modals.txtHeight": "Alçada",
"common.view.modals.txtShare": "Compartir Enllaç", "common.view.modals.txtShare": "Comparteix l'enllaç",
"common.view.modals.txtWidth": "Amplada", "common.view.modals.txtWidth": "Amplada",
"DE.ApplicationController.convertationErrorText": "Conversió Fallida", "DE.ApplicationController.convertationErrorText": "No s'ha pogut convertir",
"DE.ApplicationController.convertationTimeoutText": "Conversió fora de temps", "DE.ApplicationController.convertationTimeoutText": "S'ha superat el temps de conversió.",
"DE.ApplicationController.criticalErrorTitle": "Error", "DE.ApplicationController.criticalErrorTitle": "Error",
"DE.ApplicationController.downloadErrorText": "Descàrrega fallida.", "DE.ApplicationController.downloadErrorText": "S'ha produït un error en la baixada",
"DE.ApplicationController.downloadTextText": "Descarregant document...", "DE.ApplicationController.downloadTextText": "S'està baixant el document...",
"DE.ApplicationController.errorAccessDeny": "Intenteu realitzar una acció per la qual no teniu drets.<br>Poseu-vos en contacte amb l'administrador del servidor de documents.", "DE.ApplicationController.errorAccessDeny": "No teniu permisos per realitzar aquesta acció.<br>Contacteu amb el vostre administrador del servidor de documents.",
"DE.ApplicationController.errorDefaultMessage": "Codi d'error:%1", "DE.ApplicationController.errorDefaultMessage": "Codi d'error:%1",
"DE.ApplicationController.errorEditingDownloadas": "S'ha produït un error durant el treball amb el document.<br>Utilitzeu l'opció \"Desar com a ...\" per desar la còpia de seguretat del fitxer al disc dur del vostre ordinador.", "DE.ApplicationController.errorEditingDownloadas": "S'ha produït un error mentre es treballava amb el document.<br>Utilitzeu l'opció \"Baixa-ho com a ...\" per desar la còpia de seguretat del fitxer al disc dur del vostre ordinador.",
"DE.ApplicationController.errorFilePassProtect": "El fitxer està protegit amb contrasenya i no es pot obrir.", "DE.ApplicationController.errorFilePassProtect": "El fitxer està protegit amb contrasenya i no es pot obrir.",
"DE.ApplicationController.errorFileSizeExceed": "La mida del fitxer excedeix la limitació establerta per al vostre servidor. Podeu contactar amb l'administrador del Document Server per obtenir més detalls.", "DE.ApplicationController.errorFileSizeExceed": "La mida del fitxer supera el límit establert pel vostre servidor. Contacteu amb el vostre administrador del servidor de documents per obtenir més informació.",
"DE.ApplicationController.errorSubmit": "Error en enviar", "DE.ApplicationController.errorForceSave": "S'ha produït un error en desar el fitxer. Utilitzeu l'opció \"Baixa-ho com a\" per desar el fitxer al disc dur de lordinador o torneu-ho a provar més endavant.",
"DE.ApplicationController.errorUpdateVersionOnDisconnect": "La connexió a Internet s'ha restaurat i la versió del fitxer s'ha canviat. <br> Abans de continuar treballant, heu de descarregar el fitxer o copiar-ne el contingut per assegurar-vos que no es perdi res i, després, tornar a carregar aquesta pàgina.", "DE.ApplicationController.errorSubmit": "No s'ha pogut enviar.",
"DE.ApplicationController.errorUserDrop": "Ara no es pot accedir al fitxer.", "DE.ApplicationController.errorUpdateVersionOnDisconnect": "S'ha restaurat la connexió a internet i la versió del fitxer ha canviat. <br> Abans de continuar treballant, heu de baixar el fitxer o copiar-ne el contingut per assegurar-vos que no es perdi res i, després, torneu a carregar aquesta pàgina.",
"DE.ApplicationController.notcriticalErrorTitle": "Avis", "DE.ApplicationController.errorUserDrop": "Ara mateix no es pot accedir al fitxer.",
"DE.ApplicationController.notcriticalErrorTitle": "Advertiment",
"DE.ApplicationController.scriptLoadError": "La connexió és massa lenta, alguns dels components no shan pogut carregar. Torneu a carregar la pàgina.", "DE.ApplicationController.scriptLoadError": "La connexió és massa lenta, alguns dels components no shan pogut carregar. Torneu a carregar la pàgina.",
"DE.ApplicationController.textAnonymous": "Anònim", "DE.ApplicationController.textAnonymous": "Anònim",
"DE.ApplicationController.textClear": "Esborrar tots els camps", "DE.ApplicationController.textClear": "Esborra tots els camps",
"DE.ApplicationController.textGotIt": "Ho tinc", "DE.ApplicationController.textGotIt": "Ho tinc",
"DE.ApplicationController.textGuest": "Convidat", "DE.ApplicationController.textGuest": "Convidat",
"DE.ApplicationController.textLoadingDocument": "Carregant document", "DE.ApplicationController.textLoadingDocument": "S'està carregant el document",
"DE.ApplicationController.textNext": "Següent camp", "DE.ApplicationController.textNext": "Camp següent",
"DE.ApplicationController.textOf": "de", "DE.ApplicationController.textOf": "de",
"DE.ApplicationController.textRequired": "Ompli tots els camps requerits per enviar el formulari.", "DE.ApplicationController.textRequired": "Emplena tots els camps necessaris per enviar el formulari.",
"DE.ApplicationController.textSubmit": "Enviar", "DE.ApplicationController.textSubmit": "Envia",
"DE.ApplicationController.textSubmited": "<b>Formulari enviat amb èxit</b><br>Faci clic per a tancar el consell", "DE.ApplicationController.textSubmited": "<b>El formulari s'ha enviat amb èxit</b><br>Cliqueu per a tancar el consell",
"DE.ApplicationController.txtClose": "Tancar", "DE.ApplicationController.txtClose": "Tanca",
"DE.ApplicationController.unknownErrorText": "Error Desconegut.", "DE.ApplicationController.txtEmpty": "(Buit)",
"DE.ApplicationController.txtPressLink": "Prem CTRL i clica a l'enllaç",
"DE.ApplicationController.unknownErrorText": "Error desconegut.",
"DE.ApplicationController.unsupportedBrowserErrorText": "El vostre navegador no és compatible.", "DE.ApplicationController.unsupportedBrowserErrorText": "El vostre navegador no és compatible.",
"DE.ApplicationController.waitText": "Si us plau, esperi...", "DE.ApplicationController.waitText": "Espereu...",
"DE.ApplicationView.txtDownload": "\nDescarregar", "DE.ApplicationView.txtDownload": "Baixa",
"DE.ApplicationView.txtDownloadDocx": "Desar com a .docx", "DE.ApplicationView.txtDownloadDocx": "Baixa-ho com a .docx",
"DE.ApplicationView.txtDownloadPdf": "Desar com a pdf", "DE.ApplicationView.txtDownloadPdf": "Baixa-ho com a pdf",
"DE.ApplicationView.txtEmbed": "Incrustar", "DE.ApplicationView.txtEmbed": "Incrusta",
"DE.ApplicationView.txtFileLocation": "Obrir ubicació del fitxer", "DE.ApplicationView.txtFileLocation": "Obre la ubicació del fitxer",
"DE.ApplicationView.txtFullScreen": "Pantalla Completa", "DE.ApplicationView.txtFullScreen": "Pantalla sencera",
"DE.ApplicationView.txtPrint": "Imprimir", "DE.ApplicationView.txtPrint": "Imprimeix",
"DE.ApplicationView.txtShare": "Compartir" "DE.ApplicationView.txtShare": "Comparteix"
} }

View file

@ -14,6 +14,8 @@
"DE.ApplicationController.errorEditingDownloadas": "Fehler bei der Bearbeitung.<br>Speichern Sie eine Kopie dieser Datei auf Ihrem Computer, indem Sie auf \"Herunterladen als...\" klicken.", "DE.ApplicationController.errorEditingDownloadas": "Fehler bei der Bearbeitung.<br>Speichern Sie eine Kopie dieser Datei auf Ihrem Computer, indem Sie auf \"Herunterladen als...\" klicken.",
"DE.ApplicationController.errorFilePassProtect": "Das Dokument ist kennwortgeschützt und kann nicht geöffnet werden.", "DE.ApplicationController.errorFilePassProtect": "Das Dokument ist kennwortgeschützt und kann nicht geöffnet werden.",
"DE.ApplicationController.errorFileSizeExceed": "Die Dateigröße überschreitet die für Ihren Server festgelegte Einschränkung.<br>Weitere Informationen können Sie von Ihrem Document Server-Administrator erhalten.", "DE.ApplicationController.errorFileSizeExceed": "Die Dateigröße überschreitet die für Ihren Server festgelegte Einschränkung.<br>Weitere Informationen können Sie von Ihrem Document Server-Administrator erhalten.",
"DE.ApplicationController.errorForceSave": "Beim Speichern der Datei ist ein Fehler aufgetreten. Verwenden Sie die Option \"Herunterladen als\", um die Datei auf Ihrer Computerfestplatte zu speichern oder versuchen Sie es später erneut.",
"DE.ApplicationController.errorLoadingFont": "Schriftarten nicht hochgeladen.<br>Bitte wenden Sie sich an Administratoren von Ihrem Document Server.",
"DE.ApplicationController.errorSubmit": "Fehler beim Senden.", "DE.ApplicationController.errorSubmit": "Fehler beim Senden.",
"DE.ApplicationController.errorUpdateVersionOnDisconnect": "Die Internetverbindung wurde wiederhergestellt und die Dateiversion wurde geändert.<br>Bevor Sie weiterarbeiten können, müssen Sie die Datei herunterladen oder den Inhalt kopieren, um sicherzustellen, dass nichts verloren geht, und diese Seite anschließend neu laden.", "DE.ApplicationController.errorUpdateVersionOnDisconnect": "Die Internetverbindung wurde wiederhergestellt und die Dateiversion wurde geändert.<br>Bevor Sie weiterarbeiten können, müssen Sie die Datei herunterladen oder den Inhalt kopieren, um sicherzustellen, dass nichts verloren geht, und diese Seite anschließend neu laden.",
"DE.ApplicationController.errorUserDrop": "Der Zugriff auf diese Datei ist nicht möglich.", "DE.ApplicationController.errorUserDrop": "Der Zugriff auf diese Datei ist nicht möglich.",
@ -30,6 +32,8 @@
"DE.ApplicationController.textSubmit": "Senden", "DE.ApplicationController.textSubmit": "Senden",
"DE.ApplicationController.textSubmited": "<b>Das Formular wurde erfolgreich abgesendet</b><br>Klicken Sie hier, um den Tipp auszublenden", "DE.ApplicationController.textSubmited": "<b>Das Formular wurde erfolgreich abgesendet</b><br>Klicken Sie hier, um den Tipp auszublenden",
"DE.ApplicationController.txtClose": "Schließen", "DE.ApplicationController.txtClose": "Schließen",
"DE.ApplicationController.txtEmpty": "(Leer)",
"DE.ApplicationController.txtPressLink": "Drücken Sie STRG und klicken Sie auf den Link",
"DE.ApplicationController.unknownErrorText": "Unbekannter Fehler.", "DE.ApplicationController.unknownErrorText": "Unbekannter Fehler.",
"DE.ApplicationController.unsupportedBrowserErrorText": "Ihr Webbrowser wird nicht unterstützt.", "DE.ApplicationController.unsupportedBrowserErrorText": "Ihr Webbrowser wird nicht unterstützt.",
"DE.ApplicationController.waitText": "Bitte warten...", "DE.ApplicationController.waitText": "Bitte warten...",

View file

@ -15,6 +15,7 @@
"DE.ApplicationController.errorFilePassProtect": "The file is password protected and cannot be opened.", "DE.ApplicationController.errorFilePassProtect": "The file is password protected and cannot be opened.",
"DE.ApplicationController.errorFileSizeExceed": "The file size exceeds the limitation set for your server.<br>Please contact your Document Server administrator for details.", "DE.ApplicationController.errorFileSizeExceed": "The file size exceeds the limitation set for your server.<br>Please contact your Document Server administrator for details.",
"DE.ApplicationController.errorForceSave": "An error occurred while saving the file. Please use the 'Download as' option to save the file to your computer hard drive or try again later.", "DE.ApplicationController.errorForceSave": "An error occurred while saving the file. Please use the 'Download as' option to save the file to your computer hard drive or try again later.",
"DE.ApplicationController.errorLoadingFont": "Fonts are not loaded.<br>Please contact your Document Server administrator.",
"DE.ApplicationController.errorSubmit": "Submit failed.", "DE.ApplicationController.errorSubmit": "Submit failed.",
"DE.ApplicationController.errorUpdateVersionOnDisconnect": "Internet connection has been restored, and the file version has been changed.<br>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.ApplicationController.errorUpdateVersionOnDisconnect": "Internet connection has been restored, and the file version has been changed.<br>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.ApplicationController.errorUserDrop": "The file cannot be accessed right now.", "DE.ApplicationController.errorUserDrop": "The file cannot be accessed right now.",

View file

@ -14,6 +14,8 @@
"DE.ApplicationController.errorEditingDownloadas": "Se produjo un error durante el trabajo con el documento.<br>Use la opción 'Descargar como...' para guardar la copia de seguridad de este archivo en el disco duro de su ordenador.", "DE.ApplicationController.errorEditingDownloadas": "Se produjo un error durante el trabajo con el documento.<br>Use la opción 'Descargar como...' para guardar la copia de seguridad de este archivo en el disco duro de su ordenador.",
"DE.ApplicationController.errorFilePassProtect": "El archivo está protegido por una contraseña y no puede ser abierto.", "DE.ApplicationController.errorFilePassProtect": "El archivo está protegido por una contraseña y no puede ser abierto.",
"DE.ApplicationController.errorFileSizeExceed": "El tamaño del archivo excede el límite establecido para su servidor. Por favor póngase en contacto con el administrador del Servidor de Documentos para obtener más información.", "DE.ApplicationController.errorFileSizeExceed": "El tamaño del archivo excede el límite establecido para su servidor. Por favor póngase en contacto con el administrador del Servidor de Documentos para obtener más información.",
"DE.ApplicationController.errorForceSave": "Ha ocurrido un error al guardar el archivo. Por favor, use la opción \"Descargar como\" para guardar el archivo en el disco duro de su ordenador o inténtelo de nuevo más tarde.",
"DE.ApplicationController.errorLoadingFont": "Las fuentes no están cargadas.<br>Por favor, póngase en contacto con el administrador del Document Server.",
"DE.ApplicationController.errorSubmit": "Error al enviar.", "DE.ApplicationController.errorSubmit": "Error al enviar.",
"DE.ApplicationController.errorUpdateVersionOnDisconnect": "La conexión a Internet ha sido restaurada, y la versión del archivo ha sido cambiada. Antes de poder seguir trabajando, es necesario descargar el archivo o copiar su contenido para asegurarse de que no se pierda nada, y luego recargar esta página.", "DE.ApplicationController.errorUpdateVersionOnDisconnect": "La conexión a Internet ha sido restaurada, y la versión del archivo ha sido cambiada. Antes de poder seguir trabajando, es necesario descargar el archivo o copiar su contenido para asegurarse de que no se pierda nada, y luego recargar esta página.",
"DE.ApplicationController.errorUserDrop": "No se puede acceder al archivo en este momento.", "DE.ApplicationController.errorUserDrop": "No se puede acceder al archivo en este momento.",
@ -30,6 +32,8 @@
"DE.ApplicationController.textSubmit": "Enviar", "DE.ApplicationController.textSubmit": "Enviar",
"DE.ApplicationController.textSubmited": "<b>Formulario enviado con éxito</b><br>Haga clic para cerrar el consejo", "DE.ApplicationController.textSubmited": "<b>Formulario enviado con éxito</b><br>Haga clic para cerrar el consejo",
"DE.ApplicationController.txtClose": "Cerrar", "DE.ApplicationController.txtClose": "Cerrar",
"DE.ApplicationController.txtEmpty": "(Vacío)",
"DE.ApplicationController.txtPressLink": "Pulse CTRL y haga clic en el enlace",
"DE.ApplicationController.unknownErrorText": "Error desconocido.", "DE.ApplicationController.unknownErrorText": "Error desconocido.",
"DE.ApplicationController.unsupportedBrowserErrorText": "Su navegador no es compatible.", "DE.ApplicationController.unsupportedBrowserErrorText": "Su navegador no es compatible.",
"DE.ApplicationController.waitText": "Por favor, espere...", "DE.ApplicationController.waitText": "Por favor, espere...",

View file

@ -14,6 +14,8 @@
"DE.ApplicationController.errorEditingDownloadas": "Une erreur s'est produite lors du travail avec le document.<br>Utilisez l'option 'Télécharger comme...' pour enregistrer une copie de sauvegarde du fichier sur le disque dur de votre ordinateur.", "DE.ApplicationController.errorEditingDownloadas": "Une erreur s'est produite lors du travail avec le document.<br>Utilisez l'option 'Télécharger comme...' pour enregistrer une copie de sauvegarde du fichier sur le disque dur de votre ordinateur.",
"DE.ApplicationController.errorFilePassProtect": "Le fichier est protégé par le mot de passe et ne peut pas être ouvert.", "DE.ApplicationController.errorFilePassProtect": "Le fichier est protégé par le mot de passe et ne peut pas être ouvert.",
"DE.ApplicationController.errorFileSizeExceed": "La taille du fichier dépasse les limites établies sur votre serveur.<br>Veuillez contacter votre administrateur de Document Server pour obtenir plus d'informations. ", "DE.ApplicationController.errorFileSizeExceed": "La taille du fichier dépasse les limites établies sur votre serveur.<br>Veuillez contacter votre administrateur de Document Server pour obtenir plus d'informations. ",
"DE.ApplicationController.errorForceSave": "Une erreur est survenue lors de l'enregistrement du fichier. Veuillez utiliser l'option «Télécharger en tant que» pour enregistrer le fichier sur le disque dur de votre ordinateur ou réessayer plus tard.",
"DE.ApplicationController.errorLoadingFont": "Les polices ne sont pas téléchargées.<br>Veuillez contacter l'administrateur de Document Server.",
"DE.ApplicationController.errorSubmit": "Échec de soumission", "DE.ApplicationController.errorSubmit": "Échec de soumission",
"DE.ApplicationController.errorUpdateVersionOnDisconnect": "La connexion internet a été rétablie, la version du fichier est modifiée.<br>Avant de continuer, téléchargez le fichier ou copiez le contenu pour vous assurer que tous les changements ont été enregistrés, et rechargez la page.", "DE.ApplicationController.errorUpdateVersionOnDisconnect": "La connexion internet a été rétablie, la version du fichier est modifiée.<br>Avant de continuer, téléchargez le fichier ou copiez le contenu pour vous assurer que tous les changements ont été enregistrés, et rechargez la page.",
"DE.ApplicationController.errorUserDrop": "Impossible d'accéder au fichier.", "DE.ApplicationController.errorUserDrop": "Impossible d'accéder au fichier.",
@ -30,6 +32,8 @@
"DE.ApplicationController.textSubmit": "Soumettre ", "DE.ApplicationController.textSubmit": "Soumettre ",
"DE.ApplicationController.textSubmited": "<b>Le formulaire a été soumis avec succès</b><br>Cliquez ici pour fermer l'astuce", "DE.ApplicationController.textSubmited": "<b>Le formulaire a été soumis avec succès</b><br>Cliquez ici pour fermer l'astuce",
"DE.ApplicationController.txtClose": "Fermer", "DE.ApplicationController.txtClose": "Fermer",
"DE.ApplicationController.txtEmpty": "(Vide)",
"DE.ApplicationController.txtPressLink": "Appuyez sur Ctrl et cliquez sur le lien",
"DE.ApplicationController.unknownErrorText": "Erreur inconnue.", "DE.ApplicationController.unknownErrorText": "Erreur inconnue.",
"DE.ApplicationController.unsupportedBrowserErrorText": "Votre navigateur n'est pas pris en charge.", "DE.ApplicationController.unsupportedBrowserErrorText": "Votre navigateur n'est pas pris en charge.",
"DE.ApplicationController.waitText": "Veuillez patienter...", "DE.ApplicationController.waitText": "Veuillez patienter...",

View file

@ -14,6 +14,8 @@
"DE.ApplicationController.errorEditingDownloadas": "Si è verificato un errore durante il lavoro con il documento.<br>Utilizzare l'opzione 'Scarica come ...' per salvare la copia di backup del file sul disco rigido del computer.", "DE.ApplicationController.errorEditingDownloadas": "Si è verificato un errore durante il lavoro con il documento.<br>Utilizzare l'opzione 'Scarica come ...' per salvare la copia di backup del file sul disco rigido del computer.",
"DE.ApplicationController.errorFilePassProtect": "Il file è protetto da una password. Impossibile aprirlo.", "DE.ApplicationController.errorFilePassProtect": "Il file è protetto da una password. Impossibile aprirlo.",
"DE.ApplicationController.errorFileSizeExceed": "La dimensione del file supera la limitazione impostata per il tuo server.<br>Per i dettagli, contatta l'amministratore del Document server.", "DE.ApplicationController.errorFileSizeExceed": "La dimensione del file supera la limitazione impostata per il tuo server.<br>Per i dettagli, contatta l'amministratore del Document server.",
"DE.ApplicationController.errorForceSave": "Si è verificato un errore durante il salvataggio del file. Utilizzare l'opzione 'Scarica come' per salvare il file sul disco rigido del computer o riprovare più tardi.",
"DE.ApplicationController.errorLoadingFont": "I caratteri non sono caricati.<br>Si prega di contattare il tuo amministratore di Document Server.",
"DE.ApplicationController.errorSubmit": "Invio fallito.", "DE.ApplicationController.errorSubmit": "Invio fallito.",
"DE.ApplicationController.errorUpdateVersionOnDisconnect": "La connessione Internet è stata ripristinata e la versione del file è stata modificata.<br>Prima di poter continuare a lavorare, è necessario scaricare il file o copiarne il contenuto per assicurarsi che non vada perso nulla, successivamente ricaricare questa pagina.", "DE.ApplicationController.errorUpdateVersionOnDisconnect": "La connessione Internet è stata ripristinata e la versione del file è stata modificata.<br>Prima di poter continuare a lavorare, è necessario scaricare il file o copiarne il contenuto per assicurarsi che non vada perso nulla, successivamente ricaricare questa pagina.",
"DE.ApplicationController.errorUserDrop": "Impossibile accedere al file subito.", "DE.ApplicationController.errorUserDrop": "Impossibile accedere al file subito.",
@ -30,6 +32,8 @@
"DE.ApplicationController.textSubmit": "Invia", "DE.ApplicationController.textSubmit": "Invia",
"DE.ApplicationController.textSubmited": "<b>Modulo inviato con successo</b><br>Fare click per chiudere la notifica</br>", "DE.ApplicationController.textSubmited": "<b>Modulo inviato con successo</b><br>Fare click per chiudere la notifica</br>",
"DE.ApplicationController.txtClose": "Chiudi", "DE.ApplicationController.txtClose": "Chiudi",
"DE.ApplicationController.txtEmpty": "(Vuoto)",
"DE.ApplicationController.txtPressLink": "Premi CTRL e clicca sul collegamento",
"DE.ApplicationController.unknownErrorText": "Errore sconosciuto.", "DE.ApplicationController.unknownErrorText": "Errore sconosciuto.",
"DE.ApplicationController.unsupportedBrowserErrorText": "Il tuo browser non è supportato.", "DE.ApplicationController.unsupportedBrowserErrorText": "Il tuo browser non è supportato.",
"DE.ApplicationController.waitText": "Per favore, attendi...", "DE.ApplicationController.waitText": "Per favore, attendi...",

View file

@ -14,6 +14,8 @@
"DE.ApplicationController.errorEditingDownloadas": "S-a produs o eroare în timpul editării documentului.<br>Pentru copierea de rezervă pe PC utilizați opțiunea Descărcare ca...", "DE.ApplicationController.errorEditingDownloadas": "S-a produs o eroare în timpul editării documentului.<br>Pentru copierea de rezervă pe PC utilizați opțiunea Descărcare ca...",
"DE.ApplicationController.errorFilePassProtect": "Fișierul este protejat cu parolă și deaceea nu poate fi deschis.", "DE.ApplicationController.errorFilePassProtect": "Fișierul este protejat cu parolă și deaceea nu poate fi deschis.",
"DE.ApplicationController.errorFileSizeExceed": "Dimensiunea fișierului depășește limita permisă de serverul Dvs.<br>Pentru detalii, contactați administratorul dumneavoastră de Server Documente.", "DE.ApplicationController.errorFileSizeExceed": "Dimensiunea fișierului depășește limita permisă de serverul Dvs.<br>Pentru detalii, contactați administratorul dumneavoastră de Server Documente.",
"DE.ApplicationController.errorForceSave": "S-a produs o eroare în timpul salvării fișierului. Pentru copierea de rezervă pe PC utilizați opțiunea Descărcare ca... sau încercați din nou mai târziu.",
"DE.ApplicationController.errorLoadingFont": "Fonturile nu sunt încărcate.<br>Contactați administratorul dvs de Server Documente.",
"DE.ApplicationController.errorSubmit": "Remiterea eșuată.", "DE.ApplicationController.errorSubmit": "Remiterea eșuată.",
"DE.ApplicationController.errorUpdateVersionOnDisconnect": "Conexiunea la Internet s-a restabilit și versiunea fișierului s-a schimbat.<br>Înainte de a continua, fișierul trebuie descărcat sau conținutul fișierului copiat ca să vă asigurați că nimic nu e pierdut, apoi reîmprospătați această pagină.", "DE.ApplicationController.errorUpdateVersionOnDisconnect": "Conexiunea la Internet s-a restabilit și versiunea fișierului s-a schimbat.<br>Înainte de a continua, fișierul trebuie descărcat sau conținutul fișierului copiat ca să vă asigurați că nimic nu e pierdut, apoi reîmprospătați această pagină.",
"DE.ApplicationController.errorUserDrop": "Fișierul nu poate fi accesat deocamdată.", "DE.ApplicationController.errorUserDrop": "Fișierul nu poate fi accesat deocamdată.",
@ -30,6 +32,8 @@
"DE.ApplicationController.textSubmit": "Remitere", "DE.ApplicationController.textSubmit": "Remitere",
"DE.ApplicationController.textSubmited": "<b>Formularul a fost remis cu succes</b><br>Faceţi clic pentru a închide sfatul", "DE.ApplicationController.textSubmited": "<b>Formularul a fost remis cu succes</b><br>Faceţi clic pentru a închide sfatul",
"DE.ApplicationController.txtClose": "Închidere", "DE.ApplicationController.txtClose": "Închidere",
"DE.ApplicationController.txtEmpty": "(Gol)",
"DE.ApplicationController.txtPressLink": "Apăsați Ctrl și faceți clic pe linkul",
"DE.ApplicationController.unknownErrorText": "Eroare necunoscută.", "DE.ApplicationController.unknownErrorText": "Eroare necunoscută.",
"DE.ApplicationController.unsupportedBrowserErrorText": "Browserul nu este compatibil.", "DE.ApplicationController.unsupportedBrowserErrorText": "Browserul nu este compatibil.",
"DE.ApplicationController.waitText": "Vă rugăm să așteptați...", "DE.ApplicationController.waitText": "Vă rugăm să așteptați...",

View file

@ -14,6 +14,8 @@
"DE.ApplicationController.errorEditingDownloadas": "В ходе работы с документом произошла ошибка.<br>Используйте опцию 'Скачать как...', чтобы сохранить резервную копию файла на жесткий диск компьютера.", "DE.ApplicationController.errorEditingDownloadas": "В ходе работы с документом произошла ошибка.<br>Используйте опцию 'Скачать как...', чтобы сохранить резервную копию файла на жесткий диск компьютера.",
"DE.ApplicationController.errorFilePassProtect": "Файл защищен паролем и не может быть открыт.", "DE.ApplicationController.errorFilePassProtect": "Файл защищен паролем и не может быть открыт.",
"DE.ApplicationController.errorFileSizeExceed": "Размер файла превышает ограничение, установленное для вашего сервера.<br>Обратитесь к администратору Сервера документов для получения дополнительной информации.", "DE.ApplicationController.errorFileSizeExceed": "Размер файла превышает ограничение, установленное для вашего сервера.<br>Обратитесь к администратору Сервера документов для получения дополнительной информации.",
"DE.ApplicationController.errorForceSave": "При сохранении файла произошла ошибка. Используйте опцию 'Скачать как', чтобы сохранить файл на жестком диске компьютера или повторите попытку позже.",
"DE.ApplicationController.errorLoadingFont": "Шрифты не загружены.<br>Пожалуйста, обратитесь к администратору Сервера документов.",
"DE.ApplicationController.errorSubmit": "Не удалось отправить.", "DE.ApplicationController.errorSubmit": "Не удалось отправить.",
"DE.ApplicationController.errorUpdateVersionOnDisconnect": "Подключение к Интернету было восстановлено, и версия файла изменилась.<br>Прежде чем продолжить работу, надо скачать файл или скопировать его содержимое, чтобы обеспечить сохранность данных, а затем перезагрузить страницу.", "DE.ApplicationController.errorUpdateVersionOnDisconnect": "Подключение к Интернету было восстановлено, и версия файла изменилась.<br>Прежде чем продолжить работу, надо скачать файл или скопировать его содержимое, чтобы обеспечить сохранность данных, а затем перезагрузить страницу.",
"DE.ApplicationController.errorUserDrop": "В настоящий момент файл недоступен.", "DE.ApplicationController.errorUserDrop": "В настоящий момент файл недоступен.",
@ -30,7 +32,8 @@
"DE.ApplicationController.textSubmit": "Отправить", "DE.ApplicationController.textSubmit": "Отправить",
"DE.ApplicationController.textSubmited": "<b>Форма успешно отправлена</b><br>Нажмите, чтобы закрыть подсказку", "DE.ApplicationController.textSubmited": "<b>Форма успешно отправлена</b><br>Нажмите, чтобы закрыть подсказку",
"DE.ApplicationController.txtClose": "Закрыть", "DE.ApplicationController.txtClose": "Закрыть",
"DE.ApplicationController.txtPressLink": "Нажмите Ctrl и щелкните по ссылке", "DE.ApplicationController.txtEmpty": "(Пусто)",
"DE.ApplicationController.txtPressLink": "Нажмите CTRL и щелкните по ссылке",
"DE.ApplicationController.unknownErrorText": "Неизвестная ошибка.", "DE.ApplicationController.unknownErrorText": "Неизвестная ошибка.",
"DE.ApplicationController.unsupportedBrowserErrorText": "Ваш браузер не поддерживается.", "DE.ApplicationController.unsupportedBrowserErrorText": "Ваш браузер не поддерживается.",
"DE.ApplicationController.waitText": "Пожалуйста, подождите...", "DE.ApplicationController.waitText": "Пожалуйста, подождите...",

View file

@ -511,7 +511,7 @@ define([
onCreateNew: function(menu, type) { onCreateNew: function(menu, type) {
if ( !Common.Controllers.Desktop.process('create:new') ) { if ( !Common.Controllers.Desktop.process('create:new') ) {
if (this.mode.canRequestCreateNew) if (type == 'blank' && this.mode.canRequestCreateNew)
Common.Gateway.requestCreateNew(); Common.Gateway.requestCreateNew();
else { else {
var newDocumentPage = window.open(type == 'blank' ? this.mode.createUrl : type, "_blank"); var newDocumentPage = window.open(type == 'blank' ? this.mode.createUrl : type, "_blank");
@ -899,6 +899,10 @@ define([
} }
}, },
isCommentsVisible: function() {
return this.leftMenu && this.leftMenu.panelComments && this.leftMenu.panelComments.isVisible();
},
textNoTextFound : 'Text not found', textNoTextFound : 'Text not found',
newDocumentTitle : 'Unnamed document', newDocumentTitle : 'Unnamed document',
requestEditRightsText : 'Requesting editing rights...', requestEditRightsText : 'Requesting editing rights...',

View file

@ -373,7 +373,7 @@ define([
this.appOptions.user.anonymous && Common.localStorage.setItem("guest-id", this.appOptions.user.id); this.appOptions.user.anonymous && Common.localStorage.setItem("guest-id", this.appOptions.user.id);
this.appOptions.isDesktopApp = this.editorConfig.targetApp == 'desktop'; this.appOptions.isDesktopApp = this.editorConfig.targetApp == 'desktop';
this.appOptions.canCreateNew = this.editorConfig.canRequestCreateNew || !_.isEmpty(this.editorConfig.createUrl); this.appOptions.canCreateNew = this.editorConfig.canRequestCreateNew || !_.isEmpty(this.editorConfig.createUrl) || this.editorConfig.templates && this.editorConfig.templates.length;
this.appOptions.canOpenRecent = this.editorConfig.recent !== undefined && !this.appOptions.isDesktopApp; this.appOptions.canOpenRecent = this.editorConfig.recent !== undefined && !this.appOptions.isDesktopApp;
this.appOptions.templates = this.editorConfig.templates; this.appOptions.templates = this.editorConfig.templates;
this.appOptions.recent = this.editorConfig.recent; this.appOptions.recent = this.editorConfig.recent;
@ -1830,6 +1830,10 @@ define([
config.msg = this.errorSubmit; config.msg = this.errorSubmit;
break; break;
case Asc.c_oAscError.ID.LoadingFontError:
config.msg = this.errorLoadingFont;
break;
default: default:
config.msg = (typeof id == 'string') ? id : this.errorDefaultMessage.replace('%1', id); config.msg = (typeof id == 'string') ? id : this.errorDefaultMessage.replace('%1', id);
break; break;
@ -3026,7 +3030,8 @@ define([
txtStyle_endnote_text: 'Endnote Text', txtStyle_endnote_text: 'Endnote Text',
txtTOCHeading: 'TOC Heading', txtTOCHeading: 'TOC Heading',
textDisconnect: 'Connection is lost', textDisconnect: 'Connection is lost',
errorLang: 'The interface language is not loaded.<br>Please contact your Document Server administrator.' errorLang: 'The interface language is not loaded.<br>Please contact your Document Server administrator.',
errorLoadingFont: 'Fonts are not loaded.<br>Please contact your Document Server administrator.'
} }
})(), DE.Controllers.Main || {})) })(), DE.Controllers.Main || {}))
}); });

View file

@ -1,7 +1,7 @@
<div class="statusbar" style="display:table;"> <div class="statusbar" style="display:table;">
<div class="status-group dropup"> <div class="status-group dropup">
<label id="label-pages" class="status-label dropdown-toggle" style="margin-left: 40px;" data-toggle="dropdown"><%= textPageNumber %></label> <label id="label-pages" class="status-label dropdown-toggle" style="margin-left: 40px;" data-toggle="dropdown" data-hint="0" data-hint-direction="top"><%= textPageNumber %></label>
<div id="status-goto-box" class="dropdown-menu"> <div id="status-goto-box" class="dropdown-menu">
<label style="float:left;line-height:22px;"><%= textGotoPage %></label> <label style="float:left;line-height:22px;"><%= textGotoPage %></label>
<div id="status-goto-page" style="display:inline-block;"></div> <div id="status-goto-page" style="display:inline-block;"></div>

View file

@ -494,7 +494,8 @@ define([
var showPoint, ToolTip, var showPoint, ToolTip,
type = moveData.get_Type(); type = moveData.get_Type();
if (type==Asc.c_oAscMouseMoveDataTypes.Hyperlink || type==Asc.c_oAscMouseMoveDataTypes.Footnote || type==Asc.c_oAscMouseMoveDataTypes.Form) { // 1 - hyperlink, 3 - footnote if (type==Asc.c_oAscMouseMoveDataTypes.Hyperlink || type==Asc.c_oAscMouseMoveDataTypes.Footnote || type==Asc.c_oAscMouseMoveDataTypes.Form ||
type==Asc.c_oAscMouseMoveDataTypes.Review && me.mode.reviewHoverMode) {
if (isTooltipHiding) { if (isTooltipHiding) {
mouseMoveData = moveData; mouseMoveData = moveData;
return; return;
@ -514,11 +515,21 @@ define([
ToolTip = moveData.get_FormHelpText(); ToolTip = moveData.get_FormHelpText();
if (ToolTip.length>1000) if (ToolTip.length>1000)
ToolTip = ToolTip.substr(0, 1000) + '...'; ToolTip = ToolTip.substr(0, 1000) + '...';
} else if (type==Asc.c_oAscMouseMoveDataTypes.Review && moveData.get_ReviewChange()) {
var changes = DE.getController("Common.Controllers.ReviewChanges").readSDKChange([moveData.get_ReviewChange()]);
if (changes && changes.length>0)
changes = changes[0];
if (changes) {
ToolTip = '<b>'+ Common.Utils.String.htmlEncode(AscCommon.UserInfoParser.getParsedName(changes.get('username'))) +' </b>';
ToolTip += '<span style="font-size:10px; opacity: 0.7;">'+ changes.get('date') +'</span><br>';
ToolTip += changes.get('changetext');
}
} }
var recalc = false; var recalc = false;
screenTip.isHidden = false; screenTip.isHidden = false;
if (type!==Asc.c_oAscMouseMoveDataTypes.Review)
ToolTip = Common.Utils.String.htmlEncode(ToolTip); ToolTip = Common.Utils.String.htmlEncode(ToolTip);
if (screenTip.tipType !== type || screenTip.tipLength !== ToolTip.length || screenTip.strTip.indexOf(ToolTip)<0 ) { if (screenTip.tipType !== type || screenTip.tipLength !== ToolTip.length || screenTip.strTip.indexOf(ToolTip)<0 ) {
@ -4149,7 +4160,18 @@ define([
Common.NotificationCenter.trigger('protect:signature', 'visible', this._isDisabled, datavalue);//guid, can edit settings for requested signature Common.NotificationCenter.trigger('protect:signature', 'visible', this._isDisabled, datavalue);//guid, can edit settings for requested signature
break; break;
case 3: case 3:
this.api.asc_RemoveSignature(datavalue); //guid var me = this;
Common.UI.warning({
title: this.notcriticalErrorTitle,
msg: this.txtRemoveWarning,
buttons: ['ok', 'cancel'],
primary: 'ok',
callback: function(btn) {
if (btn == 'ok') {
me.api.asc_RemoveSignature(datavalue);
}
}
});
break; break;
} }
}, },
@ -4636,6 +4658,9 @@ define([
textRemComboBox: 'Remove Combo Box', textRemComboBox: 'Remove Combo Box',
textRemDropdown: 'Remove Dropdown', textRemDropdown: 'Remove Dropdown',
textRemPicture: 'Remove Image', textRemPicture: 'Remove Image',
textRemField: 'Remove Text Field' textRemField: 'Remove Text Field',
txtRemoveWarning: 'Do you want to remove this signature?<br>It can\'t be undone.',
notcriticalErrorTitle: 'Warning'
}, DE.Views.DocumentHolder || {})); }, DE.Views.DocumentHolder || {}));
}); });

View file

@ -389,7 +389,7 @@ define([
if ( this.mode.canCreateNew ) { if ( this.mode.canCreateNew ) {
if (this.mode.templates && this.mode.templates.length) { if (this.mode.templates && this.mode.templates.length) {
$('a',this.miNew.$el).text(this.btnCreateNewCaption + '...'); $('a',this.miNew.$el).text(this.btnCreateNewCaption + '...');
!this.panels['new'] && (this.panels['new'] = ((new DE.Views.FileMenuPanels.CreateNew({menu: this, docs: this.mode.templates})).render())); !this.panels['new'] && (this.panels['new'] = ((new DE.Views.FileMenuPanels.CreateNew({menu: this, docs: this.mode.templates, blank: this.mode.canRequestCreateNew || !!this.mode.createUrl})).render()));
} }
} }

View file

@ -867,26 +867,22 @@ define([
}, },
template: _.template([ template: _.template([
'<h3 style="margin-top: 20px;"><%= scope.fromBlankText %></h3><hr noshade />', '<h3 style="margin-top: 20px;"><%= scope.txtCreateNew %></h3>',
'<div class="thumb-list">',
'<% if (blank) { %> ',
'<div class="blank-document">', '<div class="blank-document">',
'<div class="blank-document-btn">', '<div class="blank-document-btn">',
'<svg class="btn-blank-format">', '<svg class="btn-blank-format"><use xlink:href="#svg-format-blank"></use></svg>',
'<use xlink:href="#svg-format-blank"></use>',
'</svg>',
'</div>', '</div>',
'<div class="blank-document-info">', '<div class="title"><%= scope.txtBlank %></div>',
'<h3><%= scope.newDocumentText %></h3>',
'<%= scope.newDescriptionText %>',
'</div>', '</div>',
'</div>', '<% } %>',
'<h3><%= scope.fromTemplateText %></h3><hr noshade />', '<% _.each(docs, function(item, index) { %>',
'<div class="thumb-list">',
'<% _.each(docs, function(item) { %>',
'<div class="thumb-wrap" template="<%= item.url %>">', '<div class="thumb-wrap" template="<%= item.url %>">',
'<div class="thumb"', '<div class="thumb" ',
'<% if (!_.isEmpty(item.image)) { %> ', '<% if (!_.isEmpty(item.image)) {%> ',
' style="background-image: url(<%= item.image %>);">', ' style="background-image: url(<%= item.image %>);">',
'<% } else { ' + ' <%} else {' +
'print(\"><svg class=\'btn-blank-format\'><use xlink:href=\'#svg-file-template\'></use></svg>\")' + 'print(\"><svg class=\'btn-blank-format\'><use xlink:href=\'#svg-file-template\'></use></svg>\")' +
' } %>', ' } %>',
'</div>', '</div>',
@ -900,13 +896,24 @@ define([
Common.UI.BaseView.prototype.initialize.call(this,arguments); Common.UI.BaseView.prototype.initialize.call(this,arguments);
this.menu = options.menu; this.menu = options.menu;
this.docs = options.docs;
this.blank = !!options.blank;
}, },
render: function() { render: function() {
this.$el.html(this.template({ this.$el.html(this.template({
scope: this, scope: this,
docs: this.options[0].docs docs: this.docs,
blank: this.blank
})); }));
var docs = (this.blank ? [{title: this.txtBlank}] : []).concat(this.docs);
var thumbsElm= this.$el.find('.thumb-wrap, .blank-document');
_.each(thumbsElm, function (tmb, index){
$(tmb).find('.title').tooltip({
title : docs[index].title,
placement : 'cursor'
});
});
if (_.isUndefined(this.scroller)) { if (_.isUndefined(this.scroller)) {
this.scroller = new Common.UI.Scroller({ this.scroller = new Common.UI.Scroller({
@ -934,11 +941,8 @@ define([
this.menu.fireEvent('create:new', [this.menu, e.currentTarget.attributes['template'].value]); this.menu.fireEvent('create:new', [this.menu, e.currentTarget.attributes['template'].value]);
}, },
fromBlankText : 'From Blank', txtBlank: 'Blank document',
newDocumentText : 'New Text Document', txtCreateNew: 'Create New'
newDescriptionText : 'Create a new blank text document which you will be able to style and format after it is created during the editing. Or choose one of the templates to start a document of a certain type or purpose where some styles have already been pre-applied.',
fromTemplateText : 'From Template',
noTemplatesText : 'There are no templates'
}, DE.Views.FileMenuPanels.CreateNew || {})); }, DE.Views.FileMenuPanels.CreateNew || {}));
DE.Views.FileMenuPanels.DocumentInfo = Common.UI.BaseView.extend(_.extend({ DE.Views.FileMenuPanels.DocumentInfo = Common.UI.BaseView.extend(_.extend({
@ -1041,7 +1045,7 @@ define([
'<table class="main" style="margin: 10px 0;">', '<table class="main" style="margin: 10px 0;">',
'<tr>', '<tr>',
'<td class="left"></td>', '<td class="left"></td>',
'<td class="right"><button id="fminfo-btn-apply" class="btn normal dlg-btn primary" data-hint="2" data-hint-direction="bottom" data-hint-offset="medium"><%= scope.okButtonText %></button></td>', '<td class="right"><button id="fminfo-btn-apply" class="btn normal dlg-btn primary" data-hint="2" data-hint-direction="bottom" data-hint-offset="big"><%= scope.okButtonText %></button></td>',
'</tr>', '</tr>',
'</table>', '</table>',
'</div>' '</div>'

View file

@ -831,9 +831,9 @@ define([
rec = (this._state.listValue!==undefined) ? this.list.store.findWhere({value: this._state.listValue}) : this.list.store.at(this._state.listIndex); rec = (this._state.listValue!==undefined) ? this.list.store.findWhere({value: this._state.listValue}) : this.list.store.at(this._state.listIndex);
} }
if (rec) { if (rec) {
this.list.selectRecord(rec); this.list.selectRecord(rec, this.txtNewValue._input.is(':focus'));
this.list.scrollToRecord(rec); this.list.scrollToRecord(rec);
} else { } else if (!this.txtNewValue._input.is(':focus')) {
this.txtNewValue.setValue(''); this.txtNewValue.setValue('');
this._state.listValue = this._state.listIndex = undefined; this._state.listValue = this._state.listIndex = undefined;
} }

View file

@ -522,7 +522,7 @@ define([
this.mnuTableTemplatePicker.selectRecord(rec, true); this.mnuTableTemplatePicker.selectRecord(rec, true);
this.btnTableTemplate.resumeEvents(); this.btnTableTemplate.resumeEvents();
this.$el.find('.icon-template-table').css({'background-image': 'url(' + rec.get("imageUrl") + ')', 'height': '52px', 'width': '72px', 'background-position': 'center', 'background-size': 'auto 50px'}); this.$el.find('.icon-template-table').css({'background-image': 'url(' + rec.get("imageUrl") + ')', 'height': '52px', 'width': '72px', 'background-position': 'center', 'background-size': 'auto 52px'});
this._state.TemplateId = value; this._state.TemplateId = value;
} }
@ -737,7 +737,7 @@ define([
cls : 'btn-large-dataview template-table', cls : 'btn-large-dataview template-table',
iconCls : 'icon-template-table', iconCls : 'icon-template-table',
menu : new Common.UI.Menu({ menu : new Common.UI.Menu({
style: 'width: 575px;', style: 'width: 588px;',
items: [ items: [
{ template: _.template('<div id="id-table-menu-template" class="menu-table-template" style="margin: 5px 5px 5px 10px;"></div>') } { template: _.template('<div id="id-table-menu-template" class="menu-table-template" style="margin: 5px 5px 5px 10px;"></div>') }
] ]
@ -753,7 +753,7 @@ define([
restoreHeight: 350, restoreHeight: 350,
groups: new Common.UI.DataViewGroupStore(), groups: new Common.UI.DataViewGroupStore(),
store: new Common.UI.DataViewStore(), store: new Common.UI.DataViewStore(),
itemTemplate: _.template('<div id="<%= id %>" class="item"><img src="<%= imageUrl %>" height="50" width="70"></div>'), itemTemplate: _.template('<div id="<%= id %>" class="item"><img src="<%= imageUrl %>" height="52" width="72"></div>'),
style: 'max-height: 350px;' style: 'max-height: 350px;'
}); });
}); });

View file

@ -46,7 +46,7 @@ define([
DE.Views.TableToTextDialog = Common.UI.Window.extend(_.extend({ DE.Views.TableToTextDialog = Common.UI.Window.extend(_.extend({
options: { options: {
width: 240, width: 300,
height: 254, height: 254,
header: true, header: true,
style: 'min-width: 240px;', style: 'min-width: 240px;',

View file

@ -1285,7 +1285,7 @@ define([
this.listStyles = new Common.UI.ComboDataView({ this.listStyles = new Common.UI.ComboDataView({
cls: 'combo-styles', cls: 'combo-styles',
itemWidth: 104, itemWidth: 104,
itemHeight: 38, itemHeight: 40,
// hint : this.tipParagraphStyle, // hint : this.tipParagraphStyle,
dataHint: '1', dataHint: '1',
dataHintDirection: 'bottom', dataHintDirection: 'bottom',
@ -1833,9 +1833,9 @@ define([
this.btnMarkers.setMenu( this.btnMarkers.setMenu(
new Common.UI.Menu({ new Common.UI.Menu({
cls: 'shifted-left', cls: 'shifted-left',
style: 'min-width: 139px', style: 'min-width: 145px',
items: [ items: [
{template: _.template('<div id="id-toolbar-menu-markers" class="menu-markers" style="width: 139px; margin: 0 9px;"></div>')}, {template: _.template('<div id="id-toolbar-menu-markers" class="menu-markers" style="width: 145px; margin: 0 9px;"></div>')},
{caption: '--'}, {caption: '--'},
this.mnuMarkerChangeLevel = new Common.UI.MenuItem({ this.mnuMarkerChangeLevel = new Common.UI.MenuItem({
caption: this.textChangeLevel, caption: this.textChangeLevel,

File diff suppressed because it is too large Load diff

Some files were not shown because too many files have changed in this diff Show more