Merge branch 'develop' into feature/Bug_47900
|
@ -136,9 +136,10 @@
|
|||
label: string (default: "Guest") // postfix for user name
|
||||
},
|
||||
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,
|
||||
reviewDisplay: 'original',
|
||||
reviewDisplay: 'original', // original for viewer, markup for editor
|
||||
trackChanges: undefined // true/false - open editor with track changes mode on/off,
|
||||
},
|
||||
chat: true,
|
||||
|
@ -872,8 +873,7 @@
|
|||
path += app + "/";
|
||||
path += (config.type === "mobile" || isSafari_mobile)
|
||||
? "mobile"
|
||||
: (config.type === "embedded" || (app=='documenteditor') && config.document && config.document.permissions && (config.document.permissions.fillForms===true) &&
|
||||
(config.document.permissions.edit === false) && (config.document.permissions.review !== true) && (config.editorConfig.mode !== 'view'))
|
||||
: (config.type === "embedded")
|
||||
? "embed"
|
||||
: "main";
|
||||
|
||||
|
|
|
@ -308,7 +308,7 @@ div {
|
|||
}
|
||||
};
|
||||
|
||||
postMessageOrigin = fileInfo.PostMessageOrigin;
|
||||
postMessageOrigin = fileInfo.PostMessageOrigin || "*";
|
||||
if (postMessageOrigin && (typeof postMessageOrigin === 'string') && postMessageOrigin.charAt(postMessageOrigin.length-1)=='/')
|
||||
postMessageOrigin = postMessageOrigin.substring(0, postMessageOrigin.length - 1);
|
||||
lang = config.editorConfig.lang;
|
||||
|
|
|
@ -225,6 +225,12 @@
|
|||
.margin-right-large {
|
||||
margin-right: 12px;
|
||||
}
|
||||
.margin-left-small {
|
||||
margin-left: 8px;
|
||||
}
|
||||
.margin-left-large {
|
||||
margin-left: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
// Logo
|
||||
|
|
|
@ -49,24 +49,28 @@ define([
|
|||
'use strict';
|
||||
|
||||
Common.UI.ComboBoxFonts = Common.UI.ComboBox.extend((function() {
|
||||
var iconWidth = 302,
|
||||
iconHeight = Asc.FONT_THUMBNAIL_HEIGHT || 26,
|
||||
var iconWidth = 300,
|
||||
iconHeight = Asc.FONT_THUMBNAIL_HEIGHT || 28,
|
||||
thumbCanvas = document.createElement('canvas'),
|
||||
thumbContext = thumbCanvas.getContext('2d'),
|
||||
thumbs = [
|
||||
{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.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}
|
||||
],
|
||||
thumbIdx = 0,
|
||||
listItemHeight = 26,
|
||||
listItemHeight = 28,
|
||||
spriteCols = 1,
|
||||
applicationPixelRatio = Common.Utils.applicationPixelRatio();
|
||||
|
||||
if (typeof window['AscDesktopEditor'] === 'object') {
|
||||
thumbs[0].path = window['AscDesktopEditor'].getFontsSprite('');
|
||||
thumbs[1].path = window['AscDesktopEditor'].getFontsSprite('@1.5x');
|
||||
thumbs[2].path = window['AscDesktopEditor'].getFontsSprite('@2x');
|
||||
thumbs[1].path = window['AscDesktopEditor'].getFontsSprite('@1.25x');
|
||||
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);
|
||||
|
|
|
@ -244,9 +244,10 @@ define([
|
|||
onResize: function() {
|
||||
if (this.openButton) {
|
||||
var button = $('button', this.openButton.cmpEl);
|
||||
button && button.css({
|
||||
width : $('.button', this.cmpEl).width(),
|
||||
height: $('.button', this.cmpEl).height()
|
||||
var cntButton = $('.button', this.cmpEl);
|
||||
button && cntButton.width() > 0 && button.css({
|
||||
width : cntButton.width(),
|
||||
height: cntButton.height()
|
||||
});
|
||||
|
||||
this.openButton.menu.hide();
|
||||
|
|
|
@ -252,11 +252,16 @@ Common.UI.HintManager = new(function() {
|
|||
|
||||
var _getHints = function() {
|
||||
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)
|
||||
_getControls();
|
||||
_currentControls.forEach(function(item, index) {
|
||||
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)) {
|
||||
return;
|
||||
}
|
||||
|
@ -266,6 +271,15 @@ Common.UI.HintManager = new(function() {
|
|||
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 direction = item.attr('data-hint-direction');
|
||||
// exceptions
|
||||
|
@ -324,7 +338,7 @@ Common.UI.HintManager = new(function() {
|
|||
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({
|
||||
top: top,
|
||||
left: left
|
||||
|
@ -370,7 +384,7 @@ Common.UI.HintManager = new(function() {
|
|||
if (e.keyCode == Common.UI.Keys.ALT && _isAlt) {
|
||||
e.preventDefault();
|
||||
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;
|
||||
_setCurrentSection();
|
||||
_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();
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -104,22 +104,29 @@ define([
|
|||
return this;
|
||||
},
|
||||
|
||||
internalShow: function() {
|
||||
this.ownerEl.append(this.maskeEl);
|
||||
internalShowLoader: function() {
|
||||
this.ownerEl.append(this.loaderEl);
|
||||
|
||||
this.loaderEl.css('min-width', $('.asc-loadmask-title', this.loaderEl).width() + 105);
|
||||
|
||||
if (this.ownerEl && this.ownerEl.closest('.asc-window.modal').length==0)
|
||||
Common.util.Shortcuts.suspendEvents();
|
||||
},
|
||||
|
||||
show: function(immediately){
|
||||
// The owner is already masked
|
||||
if (!!this.ownerEl.ismasked)
|
||||
return this;
|
||||
internalShowMask: function() {
|
||||
if (!!this.ownerEl.ismasked) return;
|
||||
|
||||
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;
|
||||
if (me.title != me.options.title) {
|
||||
|
@ -128,11 +135,11 @@ define([
|
|||
}
|
||||
|
||||
if (immediately) {
|
||||
me.internalShow();
|
||||
me.internalShowLoader();
|
||||
} else if (!me.timerId) {
|
||||
// show mask after 500 ms if it wont be hided
|
||||
me.timerId = setTimeout(function () {
|
||||
me.internalShow();
|
||||
me.internalShowLoader();
|
||||
},500);
|
||||
}
|
||||
|
||||
|
@ -145,20 +152,23 @@ define([
|
|||
clearTimeout(this.timerId);
|
||||
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())
|
||||
Common.util.Shortcuts.resumeEvents();
|
||||
|
||||
this.maskeEl && this.maskeEl.remove();
|
||||
this.loaderEl && this.loaderEl.remove();
|
||||
}
|
||||
delete ownerEl.ismasked;
|
||||
delete ownerEl.hasloader;
|
||||
},
|
||||
|
||||
setTitle: function(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);
|
||||
el.html(title);
|
||||
this.loaderEl.css('min-width', el.width() + 105);
|
||||
|
@ -172,7 +182,7 @@ define([
|
|||
updatePosition: function() {
|
||||
var ownerEl = this.ownerEl,
|
||||
loaderEl = this.loaderEl;
|
||||
if (ownerEl && ownerEl.ismasked && loaderEl){
|
||||
if (ownerEl && ownerEl.hasloader && loaderEl){
|
||||
loaderEl.css({
|
||||
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'
|
||||
|
|
|
@ -588,7 +588,7 @@ define([
|
|||
if (this.options.additionalAlign)
|
||||
this.options.additionalAlign.call(this, menuRoot, left, top);
|
||||
else {
|
||||
var _css = {left: Math.ceil(left), top: Math.ceil(top)};
|
||||
var _css = {left: left, top: top};
|
||||
if (!(menuH < docH)) _css['margin-top'] = 0;
|
||||
|
||||
menuRoot.css(_css);
|
||||
|
|
|
@ -93,7 +93,7 @@ define([
|
|||
|
||||
var _template_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>' +
|
||||
'<% for(var i in items) { %>' +
|
||||
'<% if (typeof items[i] == "object") { %>' +
|
||||
|
@ -105,7 +105,7 @@ define([
|
|||
'<% } %>' +
|
||||
'<% } %>' +
|
||||
'</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>';
|
||||
|
||||
this.$layout = $(options.template({
|
||||
|
|
|
@ -55,6 +55,8 @@ define([
|
|||
values: [0, 100],
|
||||
colorValues: ['#000000', '#ffffff'],
|
||||
currentThumb: 0,
|
||||
includeSnap: true,
|
||||
intervalSnap: 5,
|
||||
thumbTemplate: '<div class="thumb" style="">' +
|
||||
'<div class="thumb-top"><div class="thumb-top-inner"></div></div>' +
|
||||
'<div class="thumb-bottom"><div class="thumb-bottom-inner"></div></div>' +
|
||||
|
|
|
@ -285,6 +285,8 @@ define([
|
|||
minValue: 0,
|
||||
maxValue: 100,
|
||||
values: [0, 100],
|
||||
includeSnap: false,
|
||||
intervalSnap: undefined,
|
||||
thumbTemplate: '<div class="thumb" style=""></div>'
|
||||
},
|
||||
|
||||
|
@ -312,8 +314,9 @@ define([
|
|||
me.minValue = me.options.minValue;
|
||||
me.maxValue = me.options.maxValue;
|
||||
me.delta = 100/(me.maxValue - me.minValue);
|
||||
me.includeSnap = me.options.includeSnap;
|
||||
me.intervalSnap = me.options.intervalSnap;
|
||||
me.thumbs = [];
|
||||
|
||||
if (me.options.el) {
|
||||
me.render();
|
||||
}
|
||||
|
@ -342,9 +345,38 @@ define([
|
|||
el.find('.track-center').width(me.options.width - 14);
|
||||
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) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
resetPageX(e);
|
||||
|
||||
var index = e.data.index,
|
||||
lastValue = me.thumbs[index].value,
|
||||
|
@ -387,6 +419,7 @@ define([
|
|||
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
resetPageX(e);
|
||||
|
||||
var index = e.data.index,
|
||||
lastValue = me.thumbs[index].value,
|
||||
|
@ -418,6 +451,7 @@ define([
|
|||
thumb = me.thumbs[index].thumb;
|
||||
|
||||
me._dragstart = e.pageX*Common.Utils.zoom() - thumb.offset().left - thumb.width()/2;
|
||||
setCenters(index);
|
||||
me.setActiveThumb(index);
|
||||
|
||||
_.each(me.thumbs, function (item, idx) {
|
||||
|
@ -428,6 +462,7 @@ define([
|
|||
$(document).on('mousemove', null, e.data, me.binding.onMouseMove);
|
||||
};
|
||||
|
||||
|
||||
var onTrackMouseUp = function (e) {
|
||||
if ( me.disabled || !_.isUndefined(me._dragstart) || me.thumbs.length > 9) return;
|
||||
|
||||
|
|
|
@ -687,6 +687,14 @@ define([
|
|||
newHintTab.attr('data-hint-direction', 'top');
|
||||
newHintTab.attr('data-hint-offset', 'medium');
|
||||
newHintTab.attr('data-hint-title', 'M');
|
||||
}
|
||||
},
|
||||
|
||||
getWidth: function() {
|
||||
var width = 21;
|
||||
this.tabs.forEach(function(tab){
|
||||
width += tab.$el.width();
|
||||
});
|
||||
return width;
|
||||
},
|
||||
});
|
||||
});
|
||||
|
|
|
@ -1222,7 +1222,8 @@ define([
|
|||
renderTo : this.sdkViewName,
|
||||
canRequestUsers: (this.mode) ? this.mode.canRequestUsers : 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);
|
||||
}
|
||||
|
|
|
@ -109,6 +109,7 @@ define([
|
|||
Common.NotificationCenter.on('api:disconnect', _.bind(this.onCoAuthoringDisconnect, this));
|
||||
Common.NotificationCenter.on('collaboration:sharing', this.changeAccessRights.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('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_onAuthParticipantsChanged', _.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_onEndViewModeInReview', _.bind(this.onEndViewModeInReview, this));
|
||||
this.api.asc_registerCallback('asc_onChangeDisplayModeInReview', _.bind(this.onChangeDisplayModeInReview, this));
|
||||
}
|
||||
if (this.appConfig.canReview)
|
||||
this.api.asc_registerCallback('asc_onOnTrackRevisionsChange', _.bind(this.onApiTrackRevisionsChange, this));
|
||||
|
@ -163,7 +163,7 @@ define([
|
|||
SetDisabled: function(state) {
|
||||
if (this.dlgChanges)
|
||||
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);
|
||||
},
|
||||
|
||||
|
@ -181,7 +181,7 @@ define([
|
|||
|
||||
onApiShowChange: function (sdkchange) {
|
||||
if (this.getPopover()) {
|
||||
if (sdkchange && sdkchange.length>0) {
|
||||
if (!this.appConfig.reviewHoverMode && sdkchange && sdkchange.length>0) {
|
||||
var i = 0,
|
||||
changes = this.readSDKChange(sdkchange),
|
||||
posX = sdkchange[0].get_X(),
|
||||
|
@ -256,7 +256,8 @@ define([
|
|||
if ((this.appConfig.canReview || this.appConfig.canViewReview) && _.isUndefined(this.popover)) {
|
||||
this.popover = Common.Views.ReviewPopover.prototype.getPopover({
|
||||
reviewStore : this.popoverChanges,
|
||||
renderTo : this.sdkViewName
|
||||
renderTo : this.sdkViewName,
|
||||
api: this.api
|
||||
});
|
||||
this.popover.setReviewStore(this.popoverChanges);
|
||||
}
|
||||
|
@ -595,7 +596,10 @@ define([
|
|||
|
||||
onReviewViewClick: function(menu, item, e) {
|
||||
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);
|
||||
},
|
||||
|
||||
|
@ -685,27 +689,40 @@ define([
|
|||
|
||||
turnDisplayMode: function(mode) {
|
||||
if (this.api) {
|
||||
if (mode === 'final')
|
||||
this.api.asc_BeginViewModeInReview(true);
|
||||
else if (mode === 'original')
|
||||
this.api.asc_BeginViewModeInReview(false);
|
||||
else
|
||||
this.api.asc_EndViewModeInReview();
|
||||
var type = Asc.c_oAscDisplayModeInReview.Edit;
|
||||
switch (mode) {
|
||||
case 'final':
|
||||
type = Asc.c_oAscDisplayModeInReview.Final;
|
||||
break;
|
||||
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._state.previewMode = (mode == 'final' || mode == 'original');
|
||||
},
|
||||
|
||||
onBeginViewModeInReview: function(mode) {
|
||||
this.disableEditing(true);
|
||||
this.view && this.view.turnDisplayMode(mode ? 'final' : 'original');
|
||||
this._state.previewMode = true;
|
||||
},
|
||||
|
||||
onEndViewModeInReview: function() {
|
||||
this.disableEditing(false);
|
||||
this.view && this.view.turnDisplayMode('markup');
|
||||
this._state.previewMode = false;
|
||||
onChangeDisplayModeInReview: function(type) {
|
||||
this.disableEditing(type===Asc.c_oAscDisplayModeInReview.Final || type===Asc.c_oAscDisplayModeInReview.Original);
|
||||
var mode = 'markup';
|
||||
switch (type) {
|
||||
case Asc.c_oAscDisplayModeInReview.Final:
|
||||
mode = 'final';
|
||||
break;
|
||||
case Asc.c_oAscDisplayModeInReview.Original:
|
||||
mode = 'original';
|
||||
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() {
|
||||
|
@ -807,7 +824,15 @@ define([
|
|||
me.onApiTrackRevisionsChange(me.api.asc_GetLocalTrackRevisions(), me.api.asc_GetGlobalTrackRevisions());
|
||||
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 ||
|
||||
(!me.appConfig.customization.review || me.appConfig.customization.review.showReviewChanges===undefined) && me.appConfig.customization.showReviewChanges==true) ) {
|
||||
|
@ -823,14 +848,14 @@ define([
|
|||
} else if (config.canViewReview) {
|
||||
config.canViewReview = (config.isEdit || me.api.asc_HaveRevisionsChanges(true)); // check revisions from all users
|
||||
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) {
|
||||
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)$/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.view.turnDisplayMode((config.isEdit || config.isRestrictedEdit) ? 'markup' : val);
|
||||
me.turnDisplayMode(val);
|
||||
me.view.turnDisplayMode(val);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -840,10 +865,19 @@ define([
|
|||
me.view.turnChat(state);
|
||||
});
|
||||
}
|
||||
me.onChangeProtectSheet();
|
||||
if (me.view) {
|
||||
me.view.btnCommentRemove && me.view.btnCommentRemove.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));
|
||||
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) || !!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) {
|
||||
|
@ -974,8 +1008,24 @@ define([
|
|||
commentsShowHide: function(mode) {
|
||||
if (!this.view) return;
|
||||
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.btnCommentResolve && this.view.btnCommentResolve.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 || !!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>',
|
||||
|
|
|
@ -245,6 +245,16 @@ define([
|
|||
|
||||
this.api = api;
|
||||
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] )
|
||||
theme_name = id_default_light_theme;
|
||||
|
||||
|
|
|
@ -42,7 +42,17 @@ var params = (function() {
|
|||
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);
|
||||
|
||||
if ( params.uitheme == 'default-dark' )
|
||||
|
@ -54,11 +64,11 @@ if ( !!params.uitheme && !localStorage.getItem("ui-theme-id") ) {
|
|||
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 ( window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ) {
|
||||
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 ) {
|
||||
|
|
|
@ -806,7 +806,7 @@ define([
|
|||
tipUndo: 'Undo',
|
||||
tipRedo: 'Redo',
|
||||
textCompactView: 'Hide Toolbar',
|
||||
textHideStatusBar: 'Hide Status Bar',
|
||||
textHideStatusBar: 'Combine sheet and status bars',
|
||||
textHideLines: 'Hide Rulers',
|
||||
textZoom: 'Zoom',
|
||||
textAdvSettings: 'Advanced Settings',
|
||||
|
|
|
@ -162,10 +162,10 @@ define([
|
|||
'<div class="footer center">',
|
||||
'<button class="btn normal dlg-btn primary" result="ok">' + t.okButtonText + '</button>',
|
||||
'<% 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) { %>',
|
||||
'<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>'
|
||||
].join('');
|
||||
|
|
|
@ -316,6 +316,15 @@ define([
|
|||
template: menuTemplate,
|
||||
description: this.txtMarkup
|
||||
},
|
||||
{
|
||||
caption: this.txtMarkupSimpleCap,
|
||||
checkable: true,
|
||||
toggleGroup: 'menuReviewView',
|
||||
checked: false,
|
||||
value: 'simple',
|
||||
template: menuTemplate,
|
||||
description: this.txtMarkupSimple
|
||||
},
|
||||
{
|
||||
caption: this.txtFinalCap,
|
||||
checkable: true,
|
||||
|
@ -798,12 +807,13 @@ define([
|
|||
turnDisplayMode: function(mode) {
|
||||
if (this.btnReviewView) {
|
||||
this.btnReviewView.menu.items[0].setChecked(mode=='markup', true);
|
||||
this.btnReviewView.menu.items[1].setChecked(mode=='final', true);
|
||||
this.btnReviewView.menu.items[2].setChecked(mode=='original', true);
|
||||
this.btnReviewView.menu.items[1].setChecked(mode=='simple', 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) {
|
||||
if ( button ) {
|
||||
button.setDisabled(state);
|
||||
|
@ -821,8 +831,8 @@ define([
|
|||
}, this);
|
||||
// this.btnChat && this.btnChat.setDisabled(state);
|
||||
|
||||
this.btnCommentRemove && this.btnCommentRemove.setDisabled(state || !Common.Utils.InternalSettings.get(this.appPrefix + "settings-livecomment"));
|
||||
this.btnCommentResolve && this.btnCommentResolve.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") || protectProps && protectProps.comments);
|
||||
},
|
||||
|
||||
onLostEditRights: function() {
|
||||
|
@ -898,7 +908,9 @@ define([
|
|||
txtOff: 'OFF for me',
|
||||
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.',
|
||||
textEnable: 'Enable'
|
||||
textEnable: 'Enable',
|
||||
txtMarkupSimpleCap: 'Simple Markup',
|
||||
txtMarkupSimple: 'All changes (Editing)<br>Turn off balloons'
|
||||
}
|
||||
}()), Common.Views.ReviewChanges || {}));
|
||||
|
||||
|
|
|
@ -103,6 +103,7 @@ define([
|
|||
this.canRequestUsers = options.canRequestUsers;
|
||||
this.canRequestSendNotify = options.canRequestSendNotify;
|
||||
this.mentionShare = options.mentionShare;
|
||||
this.api = options.api;
|
||||
this.externalUsers = [];
|
||||
this._state = {commentsVisible: false, reviewVisible: false};
|
||||
|
||||
|
@ -784,7 +785,7 @@ define([
|
|||
}
|
||||
}
|
||||
}
|
||||
if (!retainContent)
|
||||
if (!retainContent || this.isOverCursor())
|
||||
this.calculateSizeOfContent();
|
||||
},
|
||||
calculateSizeOfContent: function (testVisible) {
|
||||
|
@ -839,7 +840,34 @@ define([
|
|||
|
||||
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({
|
||||
maxHeight: sdkBoundsHeight - sdkPanelHeight + 'px',
|
||||
top: sdkBoundsTop + sdkPanelHeight + 'px'
|
||||
|
@ -851,6 +879,7 @@ define([
|
|||
arrowPosY = Math.min(arrowPosY, sdkBoundsHeight - (sdkPanelHeight + this.arrow.margin + this.arrow.height));
|
||||
|
||||
arrowView.css({top: arrowPosY + 'px'});
|
||||
arrowView.removeClass('hidden');
|
||||
this.scroller.scrollTop(scrollPos);
|
||||
} else {
|
||||
|
||||
|
@ -869,6 +898,7 @@ define([
|
|||
arrowPosY = Math.min(arrowPosY, outerHeight - this.arrow.margin - this.arrow.height);
|
||||
|
||||
arrowView.css({top: arrowPosY + 'px'});
|
||||
arrowView.removeClass('hidden');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -880,6 +910,23 @@ define([
|
|||
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) {
|
||||
if (this.commentsView && this.commentsView.cmpEl.find('.lock-area').length < 1) {
|
||||
this.textVal = undefined;
|
||||
|
|
After Width: | Height: | Size: 216 B |
Before Width: | Height: | Size: 228 B After Width: | Height: | Size: 227 B |
After Width: | Height: | Size: 612 B |
BIN
apps/common/main/resources/img/controls/Scroll_center@1.25x.png
Normal file
After Width: | Height: | Size: 166 B |
BIN
apps/common/main/resources/img/controls/Scroll_center@1.75x.png
Normal file
After Width: | Height: | Size: 176 B |
Before Width: | Height: | Size: 8.3 KiB After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 8.8 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 96 B After Width: | Height: | Size: 86 B |
After Width: | Height: | Size: 89 B |
Before Width: | Height: | Size: 124 B After Width: | Height: | Size: 96 B |
After Width: | Height: | Size: 97 B |
Before Width: | Height: | Size: 104 B After Width: | Height: | Size: 102 B |
Before Width: | Height: | Size: 96 B After Width: | Height: | Size: 85 B |
After Width: | Height: | Size: 96 B |
Before Width: | Height: | Size: 124 B After Width: | Height: | Size: 95 B |
After Width: | Height: | Size: 97 B |
Before Width: | Height: | Size: 104 B After Width: | Height: | Size: 101 B |
|
@ -1,10 +1,12 @@
|
|||
<svg fill="none" height="96" viewBox="0 0 96 96" width="96" xmlns="http://www.w3.org/2000/svg">
|
||||
<symbol id="svg-format-blank">
|
||||
<clipPath id="a">
|
||||
<path d="m0 0h96v96h-96z"/>
|
||||
</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 clip-path="url(#clip0)">
|
||||
<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"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0">
|
||||
<rect width="96" height="96" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</symbol>
|
||||
</svg>
|
Before Width: | Height: | Size: 440 B After Width: | Height: | Size: 534 B |
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 9.8 KiB |
BIN
apps/common/main/resources/img/right-panels/gradients@1.25x.png
Normal file
After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 20 KiB |
BIN
apps/common/main/resources/img/right-panels/gradients@1.75x.png
Normal file
After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 848 B After Width: | Height: | Size: 803 B |
BIN
apps/common/main/resources/img/right-panels/patterns@1.25x.png
Normal file
After Width: | Height: | Size: 934 B |
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 971 B |
BIN
apps/common/main/resources/img/right-panels/patterns@1.75x.png
Normal file
After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1 KiB |
|
@ -4,7 +4,7 @@
|
|||
(min-resolution: 1.25dppx) and (max-resolution: 1.4dppx),
|
||||
(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-size: {{scaled width 1.25}}px auto;
|
||||
}
|
||||
|
|
Before Width: | Height: | Size: 318 B After Width: | Height: | Size: 234 B |
Before Width: | Height: | Size: 386 B After Width: | Height: | Size: 409 B |
|
@ -1,6 +1,9 @@
|
|||
{{#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: var(--huge-icon-background-image-width) auto;
|
||||
}
|
||||
}
|
||||
{{/spritesheet}}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
(min-resolution: 1.75dppx) and (max-resolution: 1.9dppx),
|
||||
(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-size: {{scaled width 1.75}}px auto;
|
||||
}
|
||||
|
|
Before Width: | Height: | Size: 436 B After Width: | Height: | Size: 342 B |
|
@ -1,6 +1,9 @@
|
|||
{{#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: var(--huge-icon-background-image-width) auto;
|
||||
}
|
||||
}
|
||||
{{/spritesheet}}
|
||||
|
|
BIN
apps/common/main/resources/img/toolbar/math@1.25x.png
Normal file
After Width: | Height: | Size: 39 KiB |
BIN
apps/common/main/resources/img/toolbar/math@1.75x.png
Normal file
After Width: | Height: | Size: 62 KiB |
|
@ -100,6 +100,26 @@
|
|||
|
||||
.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) {
|
||||
|
@ -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-colored {
|
||||
filter: none;
|
||||
|
@ -226,7 +293,9 @@
|
|||
background-repeat: no-repeat;
|
||||
filter: @component-normal-icon-filter;
|
||||
|
||||
@1d25ximage: replace(@common-controls, '\.png$', '@1.25x.png');
|
||||
@1d5ximage: replace(@common-controls, '\.png$', '@1.5x.png');
|
||||
@1d75ximage: replace(@common-controls, '\.png$', '@1.75x.png');
|
||||
@2ximage: replace(@common-controls, '\.png$', '@2x.png');
|
||||
|
||||
@media only screen {
|
||||
|
@ -246,6 +315,16 @@
|
|||
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;
|
||||
|
|
|
@ -694,8 +694,8 @@
|
|||
li > a.selected,
|
||||
li > a:hover {
|
||||
span.color-auto {
|
||||
outline: @scaled-one-px-value-ie solid @border-regular-control-ie;
|
||||
outline: @scaled-one-px-value solid @border-regular-control;
|
||||
outline: @scaled-one-px-value-ie solid @icon-normal-ie;
|
||||
outline: @scaled-one-px-value solid @icon-normal;
|
||||
border: @scaled-one-px-value-ie solid @background-normal-ie;
|
||||
border: @scaled-one-px-value solid @background-normal;
|
||||
}
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
width:60px;
|
||||
height:20px;
|
||||
background-color: transparent;
|
||||
image-rendering: pixelated;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -37,16 +38,25 @@
|
|||
display: inline-block;
|
||||
background-color: transparent;
|
||||
margin: 0 0 0 -3px;
|
||||
image-rendering: pixelated;
|
||||
}
|
||||
|
||||
img, .image {
|
||||
background: ~"url(@{common-image-const-path}/combo-border-size/BorderSize.png) no-repeat 0 0";
|
||||
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 & {
|
||||
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 & {
|
||||
background-image: ~"url(@{common-image-const-path}/combo-border-size/BorderSize@2x.png)";
|
||||
}
|
||||
|
|
|
@ -99,7 +99,7 @@
|
|||
}
|
||||
|
||||
.item {
|
||||
padding: 3px;
|
||||
padding: 2px;
|
||||
border: @scaled-one-px-value-ie solid @border-regular-control-ie;
|
||||
border: @scaled-one-px-value solid @border-regular-control;
|
||||
.box-shadow(none);
|
||||
|
@ -164,6 +164,11 @@
|
|||
width: @combo-dataview-button-width;
|
||||
height: @combo-dataview-height;
|
||||
|
||||
.btn-group, button {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
button {
|
||||
&.dropdown-toggle {
|
||||
padding: 0;
|
||||
|
|
|
@ -38,6 +38,8 @@
|
|||
|
||||
.btn {
|
||||
border-left: 0;
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
border-color: @border-regular-control-ie;
|
||||
border-color: @border-regular-control;
|
||||
background-color: transparent;
|
||||
|
|
|
@ -21,13 +21,13 @@
|
|||
|
||||
.dimension-picker-unhighlighted {
|
||||
//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;
|
||||
}
|
||||
|
||||
.dimension-picker div.dimension-picker-highlighted {
|
||||
//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;
|
||||
}
|
||||
|
||||
|
|
|
@ -11,6 +11,8 @@
|
|||
border: @track-height / 2 solid @border-regular-control-ie;
|
||||
border: @track-height / 2 solid @border-regular-control;
|
||||
border-radius: @track-height / 2;
|
||||
background-color: @border-regular-control-ie;
|
||||
background-color: @border-regular-control;
|
||||
width: calc(100% + @track-height);
|
||||
margin-left: -@track-height / 2;
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
.spinner-buttons {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 1px;
|
||||
right: @scaled-one-px-value;
|
||||
border-top: @scaled-one-px-value-ie solid transparent;
|
||||
border-top: @scaled-one-px-value solid transparent;
|
||||
border-bottom: @scaled-one-px-value-ie solid transparent;
|
||||
|
|
|
@ -551,6 +551,12 @@
|
|||
.icon {
|
||||
width: 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;
|
||||
|
||||
.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;
|
||||
|
||||
.theme-dark & {
|
||||
|
|
|
@ -11,7 +11,7 @@ const ThemeColors = ({ themeColors, onColorClick, curColor }) => {
|
|||
{row.map((effect, index) => {
|
||||
return(
|
||||
<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}`}}
|
||||
onClick={() => {onColorClick(effect.color, effect.effectId, effect.effectValue)}}
|
||||
></a>
|
||||
|
|
|
@ -150,8 +150,8 @@ class ContextMenuController extends Component {
|
|||
this.setState({openedMore: false});
|
||||
}
|
||||
|
||||
onMenuItemClick(action) {
|
||||
this.onApiHideContextMenu();
|
||||
async onMenuItemClick(action) {
|
||||
await this.onApiHideContextMenu();
|
||||
|
||||
if (action === 'showActionSheet') {
|
||||
this.setState({openedMore: true});
|
||||
|
|
|
@ -564,25 +564,37 @@ class ViewCommentsController extends Component {
|
|||
this.onResolveComment(comment);
|
||||
break;
|
||||
case 'deleteComment':
|
||||
f7.dialog.confirm(
|
||||
_t.textMessageDeleteComment,
|
||||
_t.textDeleteComment,
|
||||
() => {
|
||||
this.deleteComment(comment);
|
||||
f7.dialog.create({
|
||||
title: _t.textDeleteComment,
|
||||
text: _t.textMessageDeleteComment,
|
||||
buttons: [
|
||||
{
|
||||
text: _t.textCancel
|
||||
},
|
||||
{
|
||||
text: _t.textOk,
|
||||
onClick: () => this.deleteComment(comment)
|
||||
}
|
||||
);
|
||||
]
|
||||
}).open();
|
||||
break;
|
||||
case 'editReply':
|
||||
this.props.storeComments.openEditReply(true, comment, reply);
|
||||
break;
|
||||
case 'deleteReply':
|
||||
f7.dialog.confirm(
|
||||
_t.textMessageDeleteReply,
|
||||
_t.textDeleteReply,
|
||||
() => {
|
||||
this.deleteReply(comment, reply);
|
||||
f7.dialog.create({
|
||||
title: _t.textDeleteReply,
|
||||
text: _t.textMessageDeleteReply,
|
||||
buttons: [
|
||||
{
|
||||
text: _t.textCancel
|
||||
},
|
||||
{
|
||||
text: _t.textOk,
|
||||
onClick: () => this.deleteReply(comment, reply)
|
||||
}
|
||||
);
|
||||
]
|
||||
}).open();
|
||||
break;
|
||||
case 'addReply':
|
||||
this.props.storeComments.openAddReply(true, comment);
|
||||
|
|
|
@ -25,28 +25,30 @@ class InitReview extends Component {
|
|||
|
||||
api.asc_SetTrackRevisions(trackChanges);
|
||||
// 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);
|
||||
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) {
|
||||
viewReviewMode = appOptions.customization && appOptions.customization.review ? appOptions.customization.review.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;
|
||||
const displayMode = viewReviewMode.toLocaleLowerCase();
|
||||
if (displayMode === 'final') {
|
||||
api.asc_BeginViewModeInReview(true);
|
||||
} else if (displayMode === 'original') {
|
||||
api.asc_BeginViewModeInReview(false);
|
||||
} else {
|
||||
api.asc_EndViewModeInReview();
|
||||
let displayMode = viewReviewMode.toLocaleLowerCase();
|
||||
let type = Asc.c_oAscDisplayModeInReview.Edit;
|
||||
switch (displayMode) {
|
||||
case 'final':
|
||||
type = Asc.c_oAscDisplayModeInReview.Final;
|
||||
break;
|
||||
case 'original':
|
||||
type = Asc.c_oAscDisplayModeInReview.Original;
|
||||
break;
|
||||
}
|
||||
api.asc_SetDisplayModeInReview(type);
|
||||
props.storeReview.changeDisplayMode(displayMode);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -102,14 +104,17 @@ class Review extends Component {
|
|||
|
||||
onDisplayMode (mode) {
|
||||
const api = Common.EditorApi.get();
|
||||
if (mode === 'final') {
|
||||
api.asc_BeginViewModeInReview(true);
|
||||
} else if (mode === 'original') {
|
||||
api.asc_BeginViewModeInReview(false);
|
||||
} else {
|
||||
api.asc_EndViewModeInReview();
|
||||
let type = Asc.c_oAscDisplayModeInReview.Edit;
|
||||
switch (mode) {
|
||||
case 'final':
|
||||
type = Asc.c_oAscDisplayModeInReview.Final;
|
||||
break;
|
||||
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);
|
||||
}
|
||||
|
||||
|
|
|
@ -85,7 +85,7 @@ const routes = [
|
|||
}
|
||||
];
|
||||
|
||||
const PageCollaboration = inject('storeAppOptions')(observer(props => {
|
||||
const PageCollaboration = inject('storeAppOptions', 'users')(observer(props => {
|
||||
const { t } = useTranslation();
|
||||
const _t = t('Common.Collaboration', {returnObjects: true});
|
||||
const appOptions = props.storeAppOptions;
|
||||
|
@ -102,9 +102,11 @@ const PageCollaboration = inject('storeAppOptions')(observer(props => {
|
|||
}
|
||||
</Navbar>
|
||||
<List>
|
||||
{props.users.editUsers.length > 0 &&
|
||||
<ListItem link={'/users/'} title={_t.textUsers}>
|
||||
<Icon slot="media" icon="icon-users"></Icon>
|
||||
</ListItem>
|
||||
}
|
||||
{appOptions.canViewComments &&
|
||||
<ListItem link='/comments/' title={_t.textComments}>
|
||||
<Icon slot="media" icon="icon-insert-comment"></Icon>
|
||||
|
|
|
@ -48,6 +48,11 @@
|
|||
display: flex;
|
||||
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 {
|
||||
|
@ -62,8 +67,13 @@
|
|||
margin-bottom: 0;
|
||||
margin-top: 8px;
|
||||
}
|
||||
.add-image {
|
||||
ul:before, :after{
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
.inputs-list {
|
||||
ul:after, :before{
|
||||
ul:after {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -257,6 +257,8 @@
|
|||
margin-top: 14px;
|
||||
background-image: url(../img/themes/themes.png);
|
||||
display: block;
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
}
|
||||
.item-theme.active:before {
|
||||
content: '';
|
||||
|
@ -531,8 +533,7 @@
|
|||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
padding-top: 5px;
|
||||
}
|
||||
li {
|
||||
li.item-theme {
|
||||
border: 0.5px solid #c8c7cc;
|
||||
padding: 2px;
|
||||
background-repeat: no-repeat;
|
||||
|
@ -540,11 +541,26 @@
|
|||
height: 56px;
|
||||
margin-bottom: 10px;
|
||||
background-position: center;
|
||||
}
|
||||
.item-inner:after {
|
||||
.item-content {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 0;
|
||||
.item-inner {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 0;
|
||||
&:after {
|
||||
display: none;
|
||||
}
|
||||
.item-theme.active:before {
|
||||
.thumb {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 0;
|
||||
background-size: contain;
|
||||
}
|
||||
}
|
||||
}
|
||||
&.active:before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
width: 22px;
|
||||
|
@ -554,6 +570,8 @@
|
|||
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>');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// input[type="number"]
|
||||
|
|
|
@ -197,8 +197,8 @@
|
|||
<span id="title-doc-name"></span>
|
||||
</div>
|
||||
<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"><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" 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-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">
|
||||
<button class="control-btn svg-icon more-vertical"></button>
|
||||
</div>
|
||||
|
|
|
@ -189,8 +189,8 @@
|
|||
<span id="title-doc-name"></span>
|
||||
</div>
|
||||
<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"><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" 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-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">
|
||||
<button class="control-btn svg-icon more-vertical"></button>
|
||||
</div>
|
||||
|
|
|
@ -298,8 +298,8 @@
|
|||
<span id="title-doc-name"></span>
|
||||
</div>
|
||||
<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"><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" 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-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">
|
||||
<button class="control-btn svg-icon more-vertical"></button>
|
||||
</div>
|
||||
|
|
|
@ -290,8 +290,8 @@
|
|||
<span id="title-doc-name"></span>
|
||||
</div>
|
||||
<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"><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" 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-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">
|
||||
<button class="control-btn svg-icon more-vertical"></button>
|
||||
</div>
|
||||
|
|
|
@ -627,7 +627,6 @@ DE.ApplicationController = new(function(){
|
|||
$('#id-btn-clear-fields').hide();
|
||||
btnSubmit.hide();
|
||||
} else {
|
||||
$('#id-pages').hide();
|
||||
$('#id-btn-next-field .caption').text(me.textNext);
|
||||
$('#id-btn-clear-fields .caption').text(me.textClear);
|
||||
|
||||
|
@ -743,6 +742,10 @@ DE.ApplicationController = new(function(){
|
|||
message = me.errorForceSave;
|
||||
break;
|
||||
|
||||
case Asc.c_oAscError.ID.LoadingFontError:
|
||||
message = me.errorLoadingFont;
|
||||
break;
|
||||
|
||||
default:
|
||||
message = me.errorDefaultMessage.replace('%1', id);
|
||||
break;
|
||||
|
@ -928,6 +931,7 @@ DE.ApplicationController = new(function(){
|
|||
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.",
|
||||
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.'
|
||||
}
|
||||
})();
|
|
@ -1,44 +1,47 @@
|
|||
{
|
||||
"common.view.modals.txtCopy": "Copiat al porta-retalls",
|
||||
"common.view.modals.txtEmbed": "Incrustar",
|
||||
"common.view.modals.txtCopy": "Copia al porta-retalls",
|
||||
"common.view.modals.txtEmbed": "Incrusta",
|
||||
"common.view.modals.txtHeight": "Alçada",
|
||||
"common.view.modals.txtShare": "Compartir Enllaç",
|
||||
"common.view.modals.txtShare": "Comparteix l'enllaç",
|
||||
"common.view.modals.txtWidth": "Amplada",
|
||||
"DE.ApplicationController.convertationErrorText": "Conversió Fallida",
|
||||
"DE.ApplicationController.convertationTimeoutText": "Conversió fora de temps",
|
||||
"DE.ApplicationController.convertationErrorText": "No s'ha pogut convertir",
|
||||
"DE.ApplicationController.convertationTimeoutText": "S'ha superat el temps de conversió.",
|
||||
"DE.ApplicationController.criticalErrorTitle": "Error",
|
||||
"DE.ApplicationController.downloadErrorText": "Descàrrega fallida.",
|
||||
"DE.ApplicationController.downloadTextText": "Descarregant 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.downloadErrorText": "S'ha produït un error en la baixada",
|
||||
"DE.ApplicationController.downloadTextText": "S'està baixant el document...",
|
||||
"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.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.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.errorSubmit": "Error en enviar",
|
||||
"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.errorUserDrop": "Ara no es pot accedir al fitxer.",
|
||||
"DE.ApplicationController.notcriticalErrorTitle": "Avis",
|
||||
"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.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 l’ordinador o torneu-ho a provar més endavant.",
|
||||
"DE.ApplicationController.errorSubmit": "No s'ha pogut enviar.",
|
||||
"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.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 s’han pogut carregar. Torneu a carregar la pàgina.",
|
||||
"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.textGuest": "Convidat",
|
||||
"DE.ApplicationController.textLoadingDocument": "Carregant document",
|
||||
"DE.ApplicationController.textNext": "Següent camp",
|
||||
"DE.ApplicationController.textLoadingDocument": "S'està carregant el document",
|
||||
"DE.ApplicationController.textNext": "Camp següent",
|
||||
"DE.ApplicationController.textOf": "de",
|
||||
"DE.ApplicationController.textRequired": "Ompli tots els camps requerits per enviar el formulari.",
|
||||
"DE.ApplicationController.textSubmit": "Enviar",
|
||||
"DE.ApplicationController.textSubmited": "<b>Formulari enviat amb èxit</b><br>Faci clic per a tancar el consell",
|
||||
"DE.ApplicationController.txtClose": "Tancar",
|
||||
"DE.ApplicationController.unknownErrorText": "Error Desconegut.",
|
||||
"DE.ApplicationController.textRequired": "Emplena tots els camps necessaris per enviar el formulari.",
|
||||
"DE.ApplicationController.textSubmit": "Envia",
|
||||
"DE.ApplicationController.textSubmited": "<b>El formulari s'ha enviat amb èxit</b><br>Cliqueu per a tancar el consell",
|
||||
"DE.ApplicationController.txtClose": "Tanca",
|
||||
"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.waitText": "Si us plau, esperi...",
|
||||
"DE.ApplicationView.txtDownload": "\nDescarregar",
|
||||
"DE.ApplicationView.txtDownloadDocx": "Desar com a .docx",
|
||||
"DE.ApplicationView.txtDownloadPdf": "Desar com a pdf",
|
||||
"DE.ApplicationView.txtEmbed": "Incrustar",
|
||||
"DE.ApplicationView.txtFileLocation": "Obrir ubicació del fitxer",
|
||||
"DE.ApplicationView.txtFullScreen": "Pantalla Completa",
|
||||
"DE.ApplicationView.txtPrint": "Imprimir",
|
||||
"DE.ApplicationView.txtShare": "Compartir"
|
||||
"DE.ApplicationController.waitText": "Espereu...",
|
||||
"DE.ApplicationView.txtDownload": "Baixa",
|
||||
"DE.ApplicationView.txtDownloadDocx": "Baixa-ho com a .docx",
|
||||
"DE.ApplicationView.txtDownloadPdf": "Baixa-ho com a pdf",
|
||||
"DE.ApplicationView.txtEmbed": "Incrusta",
|
||||
"DE.ApplicationView.txtFileLocation": "Obre la ubicació del fitxer",
|
||||
"DE.ApplicationView.txtFullScreen": "Pantalla sencera",
|
||||
"DE.ApplicationView.txtPrint": "Imprimeix",
|
||||
"DE.ApplicationView.txtShare": "Comparteix"
|
||||
}
|
|
@ -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.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.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.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.",
|
||||
|
@ -30,6 +32,8 @@
|
|||
"DE.ApplicationController.textSubmit": "Senden",
|
||||
"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.txtEmpty": "(Leer)",
|
||||
"DE.ApplicationController.txtPressLink": "Drücken Sie STRG und klicken Sie auf den Link",
|
||||
"DE.ApplicationController.unknownErrorText": "Unbekannter Fehler.",
|
||||
"DE.ApplicationController.unsupportedBrowserErrorText": "Ihr Webbrowser wird nicht unterstützt.",
|
||||
"DE.ApplicationController.waitText": "Bitte warten...",
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
"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.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.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.",
|
||||
|
|
|
@ -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.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.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.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.",
|
||||
|
@ -30,6 +32,8 @@
|
|||
"DE.ApplicationController.textSubmit": "Enviar",
|
||||
"DE.ApplicationController.textSubmited": "<b>Formulario enviado con éxito</b><br>Haga clic para cerrar el consejo",
|
||||
"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.unsupportedBrowserErrorText": "Su navegador no es compatible.",
|
||||
"DE.ApplicationController.waitText": "Por favor, espere...",
|
||||
|
|
|
@ -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.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.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.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.",
|
||||
|
@ -30,6 +32,8 @@
|
|||
"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.txtClose": "Fermer",
|
||||
"DE.ApplicationController.txtEmpty": "(Vide)",
|
||||
"DE.ApplicationController.txtPressLink": "Appuyez sur Ctrl et cliquez sur le lien",
|
||||
"DE.ApplicationController.unknownErrorText": "Erreur inconnue.",
|
||||
"DE.ApplicationController.unsupportedBrowserErrorText": "Votre navigateur n'est pas pris en charge.",
|
||||
"DE.ApplicationController.waitText": "Veuillez patienter...",
|
||||
|
|
|
@ -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.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.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.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.",
|
||||
|
@ -30,6 +32,8 @@
|
|||
"DE.ApplicationController.textSubmit": "Invia",
|
||||
"DE.ApplicationController.textSubmited": "<b>Modulo inviato con successo</b><br>Fare click per chiudere la notifica</br>",
|
||||
"DE.ApplicationController.txtClose": "Chiudi",
|
||||
"DE.ApplicationController.txtEmpty": "(Vuoto)",
|
||||
"DE.ApplicationController.txtPressLink": "Premi CTRL e clicca sul collegamento",
|
||||
"DE.ApplicationController.unknownErrorText": "Errore sconosciuto.",
|
||||
"DE.ApplicationController.unsupportedBrowserErrorText": "Il tuo browser non è supportato.",
|
||||
"DE.ApplicationController.waitText": "Per favore, attendi...",
|
||||
|
|
|
@ -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.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.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.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ă.",
|
||||
|
@ -30,6 +32,8 @@
|
|||
"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.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.unsupportedBrowserErrorText": "Browserul nu este compatibil.",
|
||||
"DE.ApplicationController.waitText": "Vă rugăm să așteptați...",
|
||||
|
|
|
@ -14,6 +14,8 @@
|
|||
"DE.ApplicationController.errorEditingDownloadas": "В ходе работы с документом произошла ошибка.<br>Используйте опцию 'Скачать как...', чтобы сохранить резервную копию файла на жесткий диск компьютера.",
|
||||
"DE.ApplicationController.errorFilePassProtect": "Файл защищен паролем и не может быть открыт.",
|
||||
"DE.ApplicationController.errorFileSizeExceed": "Размер файла превышает ограничение, установленное для вашего сервера.<br>Обратитесь к администратору Сервера документов для получения дополнительной информации.",
|
||||
"DE.ApplicationController.errorForceSave": "При сохранении файла произошла ошибка. Используйте опцию 'Скачать как', чтобы сохранить файл на жестком диске компьютера или повторите попытку позже.",
|
||||
"DE.ApplicationController.errorLoadingFont": "Шрифты не загружены.<br>Пожалуйста, обратитесь к администратору Сервера документов.",
|
||||
"DE.ApplicationController.errorSubmit": "Не удалось отправить.",
|
||||
"DE.ApplicationController.errorUpdateVersionOnDisconnect": "Подключение к Интернету было восстановлено, и версия файла изменилась.<br>Прежде чем продолжить работу, надо скачать файл или скопировать его содержимое, чтобы обеспечить сохранность данных, а затем перезагрузить страницу.",
|
||||
"DE.ApplicationController.errorUserDrop": "В настоящий момент файл недоступен.",
|
||||
|
@ -30,7 +32,8 @@
|
|||
"DE.ApplicationController.textSubmit": "Отправить",
|
||||
"DE.ApplicationController.textSubmited": "<b>Форма успешно отправлена</b><br>Нажмите, чтобы закрыть подсказку",
|
||||
"DE.ApplicationController.txtClose": "Закрыть",
|
||||
"DE.ApplicationController.txtPressLink": "Нажмите Ctrl и щелкните по ссылке",
|
||||
"DE.ApplicationController.txtEmpty": "(Пусто)",
|
||||
"DE.ApplicationController.txtPressLink": "Нажмите CTRL и щелкните по ссылке",
|
||||
"DE.ApplicationController.unknownErrorText": "Неизвестная ошибка.",
|
||||
"DE.ApplicationController.unsupportedBrowserErrorText": "Ваш браузер не поддерживается.",
|
||||
"DE.ApplicationController.waitText": "Пожалуйста, подождите...",
|
||||
|
|
|
@ -511,7 +511,7 @@ define([
|
|||
|
||||
onCreateNew: function(menu, type) {
|
||||
if ( !Common.Controllers.Desktop.process('create:new') ) {
|
||||
if (this.mode.canRequestCreateNew)
|
||||
if (type == 'blank' && this.mode.canRequestCreateNew)
|
||||
Common.Gateway.requestCreateNew();
|
||||
else {
|
||||
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',
|
||||
newDocumentTitle : 'Unnamed document',
|
||||
requestEditRightsText : 'Requesting editing rights...',
|
||||
|
|
|
@ -373,7 +373,7 @@ define([
|
|||
this.appOptions.user.anonymous && Common.localStorage.setItem("guest-id", this.appOptions.user.id);
|
||||
|
||||
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.templates = this.editorConfig.templates;
|
||||
this.appOptions.recent = this.editorConfig.recent;
|
||||
|
@ -1830,6 +1830,10 @@ define([
|
|||
config.msg = this.errorSubmit;
|
||||
break;
|
||||
|
||||
case Asc.c_oAscError.ID.LoadingFontError:
|
||||
config.msg = this.errorLoadingFont;
|
||||
break;
|
||||
|
||||
default:
|
||||
config.msg = (typeof id == 'string') ? id : this.errorDefaultMessage.replace('%1', id);
|
||||
break;
|
||||
|
@ -3026,7 +3030,8 @@ define([
|
|||
txtStyle_endnote_text: 'Endnote Text',
|
||||
txtTOCHeading: 'TOC Heading',
|
||||
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 || {}))
|
||||
});
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
<div class="statusbar" style="display:table;">
|
||||
<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">
|
||||
<label style="float:left;line-height:22px;"><%= textGotoPage %></label>
|
||||
<div id="status-goto-page" style="display:inline-block;"></div>
|
||||
|
|
|
@ -494,7 +494,8 @@ define([
|
|||
var showPoint, ToolTip,
|
||||
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) {
|
||||
mouseMoveData = moveData;
|
||||
return;
|
||||
|
@ -514,11 +515,21 @@ define([
|
|||
ToolTip = moveData.get_FormHelpText();
|
||||
if (ToolTip.length>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;
|
||||
screenTip.isHidden = false;
|
||||
|
||||
if (type!==Asc.c_oAscMouseMoveDataTypes.Review)
|
||||
ToolTip = Common.Utils.String.htmlEncode(ToolTip);
|
||||
|
||||
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
|
||||
break;
|
||||
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;
|
||||
}
|
||||
},
|
||||
|
@ -4636,6 +4658,9 @@ define([
|
|||
textRemComboBox: 'Remove Combo Box',
|
||||
textRemDropdown: 'Remove Dropdown',
|
||||
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 || {}));
|
||||
});
|
|
@ -389,7 +389,7 @@ define([
|
|||
if ( this.mode.canCreateNew ) {
|
||||
if (this.mode.templates && this.mode.templates.length) {
|
||||
$('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()));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -867,26 +867,22 @@ define([
|
|||
},
|
||||
|
||||
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-btn">',
|
||||
'<svg class="btn-blank-format">',
|
||||
'<use xlink:href="#svg-format-blank"></use>',
|
||||
'</svg>',
|
||||
'<svg class="btn-blank-format"><use xlink:href="#svg-format-blank"></use></svg>',
|
||||
'</div>',
|
||||
'<div class="blank-document-info">',
|
||||
'<h3><%= scope.newDocumentText %></h3>',
|
||||
'<%= scope.newDescriptionText %>',
|
||||
'<div class="title"><%= scope.txtBlank %></div>',
|
||||
'</div>',
|
||||
'</div>',
|
||||
'<h3><%= scope.fromTemplateText %></h3><hr noshade />',
|
||||
'<div class="thumb-list">',
|
||||
'<% _.each(docs, function(item) { %>',
|
||||
'<% } %>',
|
||||
'<% _.each(docs, function(item, index) { %>',
|
||||
'<div class="thumb-wrap" template="<%= item.url %>">',
|
||||
'<div class="thumb"',
|
||||
'<% if (!_.isEmpty(item.image)) { %> ',
|
||||
'<div class="thumb" ',
|
||||
'<% if (!_.isEmpty(item.image)) {%> ',
|
||||
' style="background-image: url(<%= item.image %>);">',
|
||||
'<% } else { ' +
|
||||
' <%} else {' +
|
||||
'print(\"><svg class=\'btn-blank-format\'><use xlink:href=\'#svg-file-template\'></use></svg>\")' +
|
||||
' } %>',
|
||||
'</div>',
|
||||
|
@ -900,13 +896,24 @@ define([
|
|||
Common.UI.BaseView.prototype.initialize.call(this,arguments);
|
||||
|
||||
this.menu = options.menu;
|
||||
this.docs = options.docs;
|
||||
this.blank = !!options.blank;
|
||||
},
|
||||
|
||||
render: function() {
|
||||
this.$el.html(this.template({
|
||||
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)) {
|
||||
this.scroller = new Common.UI.Scroller({
|
||||
|
@ -934,11 +941,8 @@ define([
|
|||
this.menu.fireEvent('create:new', [this.menu, e.currentTarget.attributes['template'].value]);
|
||||
},
|
||||
|
||||
fromBlankText : 'From Blank',
|
||||
newDocumentText : 'New Text Document',
|
||||
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'
|
||||
txtBlank: 'Blank document',
|
||||
txtCreateNew: 'Create New'
|
||||
}, DE.Views.FileMenuPanels.CreateNew || {}));
|
||||
|
||||
DE.Views.FileMenuPanels.DocumentInfo = Common.UI.BaseView.extend(_.extend({
|
||||
|
@ -1041,7 +1045,7 @@ define([
|
|||
'<table class="main" style="margin: 10px 0;">',
|
||||
'<tr>',
|
||||
'<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>',
|
||||
'</table>',
|
||||
'</div>'
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
if (rec) {
|
||||
this.list.selectRecord(rec);
|
||||
this.list.selectRecord(rec, this.txtNewValue._input.is(':focus'));
|
||||
this.list.scrollToRecord(rec);
|
||||
} else {
|
||||
} else if (!this.txtNewValue._input.is(':focus')) {
|
||||
this.txtNewValue.setValue('');
|
||||
this._state.listValue = this._state.listIndex = undefined;
|
||||
}
|
||||
|
|
|
@ -522,7 +522,7 @@ define([
|
|||
this.mnuTableTemplatePicker.selectRecord(rec, true);
|
||||
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;
|
||||
}
|
||||
|
@ -737,7 +737,7 @@ define([
|
|||
cls : 'btn-large-dataview template-table',
|
||||
iconCls : 'icon-template-table',
|
||||
menu : new Common.UI.Menu({
|
||||
style: 'width: 575px;',
|
||||
style: 'width: 588px;',
|
||||
items: [
|
||||
{ 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,
|
||||
groups: new Common.UI.DataViewGroupStore(),
|
||||
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;'
|
||||
});
|
||||
});
|
||||
|
|
|
@ -46,7 +46,7 @@ define([
|
|||
|
||||
DE.Views.TableToTextDialog = Common.UI.Window.extend(_.extend({
|
||||
options: {
|
||||
width: 240,
|
||||
width: 300,
|
||||
height: 254,
|
||||
header: true,
|
||||
style: 'min-width: 240px;',
|
||||
|
|
|
@ -1285,7 +1285,7 @@ define([
|
|||
this.listStyles = new Common.UI.ComboDataView({
|
||||
cls: 'combo-styles',
|
||||
itemWidth: 104,
|
||||
itemHeight: 38,
|
||||
itemHeight: 40,
|
||||
// hint : this.tipParagraphStyle,
|
||||
dataHint: '1',
|
||||
dataHintDirection: 'bottom',
|
||||
|
@ -1833,9 +1833,9 @@ define([
|
|||
this.btnMarkers.setMenu(
|
||||
new Common.UI.Menu({
|
||||
cls: 'shifted-left',
|
||||
style: 'min-width: 139px',
|
||||
style: 'min-width: 145px',
|
||||
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: '--'},
|
||||
this.mnuMarkerChangeLevel = new Common.UI.MenuItem({
|
||||
caption: this.textChangeLevel,
|
||||
|
|