Merge branch 'release/v7.0.0' into develop
This commit is contained in:
commit
308ec711c8
|
@ -109,6 +109,7 @@
|
|||
},
|
||||
mode : urlParams["mode"] || 'edit',
|
||||
lang : urlParams["lang"] || 'en',
|
||||
createUrl : 'desktop://create.new',
|
||||
user: {
|
||||
id: urlParams["userid"] || urlParams["username"] || 'uid-901', name: urlParams["username"] || 'Chuk.Gek'
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<svg width="380" height="40" viewBox="0 0 380 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg width="440" height="40" viewBox="0 0 440 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="icon-menu-sprite Embedded Viewer">
|
||||
<g id="view-settings">
|
||||
<path id="Vector" d="M17 26H3V27H17V26Z" fill="white"/>
|
||||
|
@ -148,5 +148,29 @@
|
|||
<g id="close_2">
|
||||
<path id="Vector 73_2" d="M366 5L375 14M375 5L366 14" stroke="black" stroke-width="1.5"/>
|
||||
</g>
|
||||
<g id="сut">
|
||||
<circle id="Ellipse 103" cx="385.5" cy="13.5" r="2" stroke="black"/>
|
||||
<circle id="Ellipse 104" cx="385.5" cy="6.5" r="2" stroke="black"/>
|
||||
<path id="Rectangle 1552" d="M387.188 7.56689L398.446 14.0669V14.0669C398.17 14.5452 397.559 14.7091 397.08 14.4329L386.688 8.43292L387.188 7.56689Z" fill="black"/>
|
||||
<path id="Rectangle 1553" d="M386.688 11.5669L397.08 5.56689C397.558 5.29075 398.17 5.45463 398.446 5.93292V5.93292L387.188 12.4329L386.688 11.5669Z" fill="black"/>
|
||||
</g>
|
||||
<g id="сut_2">
|
||||
<circle id="Ellipse 103_2" cx="385.5" cy="33.5" r="2" stroke="white"/>
|
||||
<circle id="Ellipse 104_2" cx="385.5" cy="26.5" r="2" stroke="white"/>
|
||||
<path id="Rectangle 1552_2" d="M387.188 27.5669L398.446 34.0669V34.0669C398.17 34.5452 397.559 34.7091 397.08 34.4329L386.688 28.4329L387.188 27.5669Z" fill="white"/>
|
||||
<path id="Rectangle 1553_2" d="M386.688 31.5669L397.08 25.5669C397.558 25.2908 398.17 25.4546 398.446 25.9329V25.9329L387.188 32.4329L386.688 31.5669Z" fill="white"/>
|
||||
</g>
|
||||
<g id="copy">
|
||||
<path id="Union_27" fill-rule="evenodd" clip-rule="evenodd" d="M404 5H412V7H413V5C413 4.44772 412.552 4 412 4H404C403.448 4 403 4.44772 403 5V12C403 12.5523 403.448 13 404 13H406V12H404V5ZM411 6H405V7H411V6ZM408 9V16H416V9H408ZM408 8C407.448 8 407 8.44772 407 9V16C407 16.5523 407.448 17 408 17H416C416.552 17 417 16.5523 417 16V9C417 8.44772 416.552 8 416 8H408ZM406 8H405V9H406V8ZM405 10H406V11H405V10ZM415 11V10H409V11H415ZM415 12V13H409V12H415ZM415 15V14H409V15H415Z" fill="black"/>
|
||||
</g>
|
||||
<g id="copy_2">
|
||||
<path id="Union_28" fill-rule="evenodd" clip-rule="evenodd" d="M404 25H412V27H413V25C413 24.4477 412.552 24 412 24H404C403.448 24 403 24.4477 403 25V32C403 32.5523 403.448 33 404 33H406V32H404V25ZM411 26H405V27H411V26ZM408 29V36H416V29H408ZM408 28C407.448 28 407 28.4477 407 29V36C407 36.5523 407.448 37 408 37H416C416.552 37 417 36.5523 417 36V29C417 28.4477 416.552 28 416 28H408ZM406 28H405V29H406V28ZM405 30H406V31H405V30ZM415 31V30H409V31H415ZM415 32V33H409V32H415ZM415 35V34H409V35H415Z" fill="white"/>
|
||||
</g>
|
||||
<g id="paste">
|
||||
<path id="Union_29" fill-rule="evenodd" clip-rule="evenodd" d="M426 3H432V4H434C434.552 4 435 4.44772 435 5V7H434V5H432V6H426V5H424V12H426V13H424C423.448 13 423 12.5523 423 12V5C423 4.44772 423.448 4 424 4H426V3ZM436 16V9H428V16H436ZM428 8C427.448 8 427 8.44772 427 9V16C427 16.5523 427.448 17 428 17H436C436.552 17 437 16.5523 437 16V9C437 8.44772 436.552 8 436 8H428ZM429 11V10H435V11H429ZM435 12H429V13H435V12ZM429 15V14H435V15H429Z" fill="black"/>
|
||||
</g>
|
||||
<g id="paste_2">
|
||||
<path id="Union_30" fill-rule="evenodd" clip-rule="evenodd" d="M426 23H432V24H434C434.552 24 435 24.4477 435 25V27H434V25H432V26H426V25H424V32H426V33H424C423.448 33 423 32.5523 423 32V25C423 24.4477 423.448 24 424 24H426V23ZM436 36V29H428V36H436ZM428 28C427.448 28 427 28.4477 427 29V36C427 36.5523 427.448 37 428 37H436C436.552 37 437 36.5523 437 36V29C437 28.4477 436.552 28 436 28H428ZM429 31V30H435V31H429ZM435 32H429V33H435V32ZM429 35V34H435V35H429Z" fill="white"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 15 KiB |
|
@ -77,6 +77,7 @@
|
|||
@import "../../../../common/main/resources/less/winxp_fix.less";
|
||||
@import "../../../../common/main/resources/less/calendar.less";
|
||||
@import "../../../../common/main/resources/less/spinner.less";
|
||||
@import "../../../../common/main/resources/less/checkbox.less";
|
||||
|
||||
@toolbarBorderColor: @border-toolbar-ie;
|
||||
@toolbarBorderColor: @border-toolbar;
|
||||
|
@ -232,19 +233,23 @@
|
|||
&.colored {
|
||||
padding: 0 16px;
|
||||
height: 28px;
|
||||
background-color: @background-accent-button-ie;
|
||||
background-color: @background-accent-button;
|
||||
border: 1px solid transparent;
|
||||
border-radius: 3px;
|
||||
color: @text-contrast-background-ie !important;
|
||||
color: @text-contrast-background !important;
|
||||
font-weight: 700;
|
||||
|
||||
&:hover:not(.disabled),
|
||||
.over:not(.disabled) {
|
||||
background-color: @highlight-accent-button-hover-ie !important;
|
||||
background-color: @highlight-accent-button-hover !important;
|
||||
}
|
||||
|
||||
&:active:not(.disabled),
|
||||
&.active:not(.disabled) {
|
||||
background-color: @highlight-accent-button-pressed-ie !important;
|
||||
background-color: @highlight-accent-button-pressed !important;
|
||||
}
|
||||
}
|
||||
|
@ -431,7 +436,7 @@
|
|||
|
||||
.svg-icon {
|
||||
background: data-uri('../../../../common/forms/resources/img/icon-menu-sprite.svg') no-repeat;
|
||||
background-size: @icon-width*19 @icon-height*2;
|
||||
background-size: @icon-width*22 @icon-height*2;
|
||||
|
||||
&.download {
|
||||
background-position: -@icon-width 0;
|
||||
|
@ -495,6 +500,18 @@
|
|||
background-position: -@icon-width*14 0;
|
||||
background-position: -@icon-width*14 @icon-normal-top;
|
||||
}
|
||||
&.cut {
|
||||
background-position: -@icon-width*19 0;
|
||||
background-position: -@icon-width*19 @icon-normal-top;
|
||||
}
|
||||
&.copy {
|
||||
background-position: -@icon-width*20 0;
|
||||
background-position: -@icon-width*20 @icon-normal-top;
|
||||
}
|
||||
&.paste {
|
||||
background-position: -@icon-width*21 0;
|
||||
background-position: -@icon-width*21 @icon-normal-top;
|
||||
}
|
||||
}
|
||||
|
||||
.btn {
|
||||
|
|
|
@ -98,8 +98,8 @@ Common.Locale = new(function() {
|
|||
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
|
||||
};
|
||||
|
||||
var _requireLang = function () {
|
||||
var lang = (_getUrlParameterByName('lang') || defLang).split(/[\-_]/)[0];
|
||||
var _requireLang = function (l) {
|
||||
var lang = (l || _getUrlParameterByName('lang') || defLang).split(/[\-_]/)[0];
|
||||
currentLang = lang;
|
||||
fetch('locale/' + lang + '.json')
|
||||
.then(function(response) {
|
||||
|
@ -127,6 +127,12 @@ Common.Locale = new(function() {
|
|||
l10n = json || {};
|
||||
apply && _applyLocalization();
|
||||
}).catch(function(e) {
|
||||
if ( !/loaded/.test(e) && currentLang != defLang && defLang && defLang.length < 3 ) {
|
||||
return setTimeout(function(){
|
||||
_requireLang(defLang)
|
||||
}, 0);
|
||||
}
|
||||
|
||||
l10n = l10n || {};
|
||||
apply && _applyLocalization();
|
||||
if ( e.message == 'loaded' ) {
|
||||
|
|
|
@ -182,6 +182,7 @@ define([
|
|||
},
|
||||
|
||||
onInputKeyUp: function(e) {
|
||||
if (!this._isKeyDown) return;
|
||||
if (e.keyCode != Common.UI.Keys.RETURN && e.keyCode !== Common.UI.Keys.SHIFT &&
|
||||
e.keyCode !== Common.UI.Keys.CTRL && e.keyCode !== Common.UI.Keys.ALT &&
|
||||
e.keyCode !== Common.UI.Keys.LEFT && e.keyCode !== Common.UI.Keys.RIGHT &&
|
||||
|
@ -213,9 +214,11 @@ define([
|
|||
}, 10);
|
||||
}
|
||||
}
|
||||
this._isKeyDown = false;
|
||||
},
|
||||
|
||||
onInputKeyDown: function(e) {
|
||||
this._isKeyDown = true;
|
||||
this._inInputKeyDown = (new Date());
|
||||
var me = this;
|
||||
|
||||
|
|
|
@ -98,6 +98,7 @@ define([
|
|||
checked : false,
|
||||
allowDepress: false,
|
||||
disabled : false,
|
||||
visible : true,
|
||||
value : null,
|
||||
toggleGroup : null,
|
||||
iconCls : '',
|
||||
|
@ -105,13 +106,14 @@ define([
|
|||
canFocused : true,
|
||||
dataHint : '',
|
||||
dataHintDirection: '',
|
||||
dataHintOffset: ''
|
||||
dataHintOffset: '',
|
||||
dataHintTitle: ''
|
||||
},
|
||||
|
||||
tagName : 'li',
|
||||
|
||||
template: _.template([
|
||||
'<a id="<%= id %>" style="<%= style %>" <% if(options.canFocused) { %> tabindex="-1" type="menuitem" <% }; if(!_.isUndefined(options.stopPropagation)) { %> data-stopPropagation="true" <% }; if(!_.isUndefined(options.dataHint)) { %> data-hint="<%= options.dataHint %>" <% }; if(!_.isUndefined(options.dataHintDirection)) { %> data-hint-direction="<%= options.dataHintDirection %>" <% }; if(!_.isUndefined(options.dataHintOffset)) { %> data-hint-offset="<%= options.dataHintOffset %>" <% }; %> >',
|
||||
'<a id="<%= id %>" style="<%= style %>" <% if(options.canFocused) { %> tabindex="-1" type="menuitem" <% }; if(!_.isUndefined(options.stopPropagation)) { %> data-stopPropagation="true" <% }; if(!_.isUndefined(options.dataHint)) { %> data-hint="<%= options.dataHint %>" <% }; if(!_.isUndefined(options.dataHintDirection)) { %> data-hint-direction="<%= options.dataHintDirection %>" <% }; if(!_.isUndefined(options.dataHintOffset)) { %> data-hint-offset="<%= options.dataHintOffset %>" <% }; if(options.dataHintTitle) { %> data-hint-title="<%= options.dataHintTitle %>" <% }; %> >',
|
||||
'<% if (!_.isEmpty(iconCls)) { %>',
|
||||
'<span class="menu-item-icon <%= iconCls %>"></span>',
|
||||
'<% } %>',
|
||||
|
@ -133,6 +135,7 @@ define([
|
|||
this.checked = me.options.checked;
|
||||
me.allowDepress = me.options.allowDepress;
|
||||
this.disabled = me.options.disabled;
|
||||
this.visible = me.options.visible;
|
||||
this.value = me.options.value;
|
||||
this.toggleGroup = me.options.toggleGroup;
|
||||
this.template = me.options.template || this.template;
|
||||
|
@ -228,6 +231,8 @@ define([
|
|||
Common.UI.ToggleManager.register(me);
|
||||
}
|
||||
}
|
||||
if (!this.visible)
|
||||
this.setVisible(this.visible);
|
||||
|
||||
me.cmpEl = el;
|
||||
me.rendered = true;
|
||||
|
|
|
@ -101,7 +101,7 @@ define([
|
|||
'<% if (items[i].haspanel===false) print(" x-lone") %>' +
|
||||
'<% if (items[i].extcls) print(\' \' + items[i].extcls) %>"' +
|
||||
'<% if (typeof items[i].layoutname == "string") print(" data-layout-name=" + \' \' + items[i].layoutname) + \' \' %>>' +
|
||||
'<a data-tab="<%= items[i].action %>" data-title="<%= items[i].caption %>" data-hint="0" data-hint-direction="bottom" data-hint-offset="small"><%= items[i].caption %></a>' +
|
||||
'<a data-tab="<%= items[i].action %>" data-title="<%= items[i].caption %>" data-hint="0" data-hint-direction="bottom" data-hint-offset="small" <% if (typeof items[i].dataHintTitle !== "undefined") { %> data-hint-title="<%= items[i].dataHintTitle %>" <% } %>><%= items[i].caption %></a>' +
|
||||
'</li>' +
|
||||
'<% } %>' +
|
||||
'<% } %>' +
|
||||
|
@ -317,7 +317,7 @@ define([
|
|||
return config.tabs[index].action;
|
||||
}
|
||||
|
||||
var _tabTemplate = _.template('<li class="ribtab" style="display: none;" <% if (typeof layoutname == "string") print(" data-layout-name=" + \' \' + layoutname) + \' \' %>><a data-tab="<%= action %>" data-title="<%= caption %>" data-hint="0" data-hint-direction="bottom" data-hint-offset="small"><%= caption %></a></li>');
|
||||
var _tabTemplate = _.template('<li class="ribtab" style="display: none;" <% if (typeof layoutname == "string") print(" data-layout-name=" + \' \' + layoutname) + \' \' %>><a data-tab="<%= action %>" data-title="<%= caption %>" data-hint="0" data-hint-direction="bottom" data-hint-offset="small" <% if (typeof dataHintTitle !== "undefined") { %> data-hint-title="<%= dataHintTitle %>" <% } %> ><%= caption %></a></li>');
|
||||
|
||||
config.tabs[after + 1] = tab;
|
||||
var _after_action = _get_tab_action(after);
|
||||
|
|
|
@ -194,6 +194,7 @@ define([
|
|||
this.api.asc_registerCallback('asc_onUpdateCommentPosition', _.bind(this.onApiUpdateCommentPosition, this));
|
||||
this.api.asc_registerCallback('asc_onDocumentPlaceChanged', _.bind(this.onDocumentPlaceChanged, this));
|
||||
this.api.asc_registerCallback('asc_onDeleteComment', _.bind(this.onDeleteComment, this)); // only for PE, when del or ctrl+x pressed
|
||||
this.api.asc_registerCallback('asc_onChangeCommentLogicalPosition', _.bind(this.onApiChangeCommentLogicalPosition, this)); // change comments position in document
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -215,7 +216,11 @@ define([
|
|||
Common.localStorage.setItem(this.appPrefix + "comments-sort", type);
|
||||
Common.Utils.InternalSettings.set(this.appPrefix + "comments-sort", type);
|
||||
|
||||
if (type=='position') {
|
||||
if (type=='position-asc' || type=='position-desc') {
|
||||
var direction = (type=='position-asc') ? 1 : -1;
|
||||
this.collection.comparator = function (collection) {
|
||||
return direction * collection.get('position');
|
||||
};
|
||||
} else if (type=='author-asc' || type=='author-desc') {
|
||||
var direction = (type=='author-asc') ? 1 : -1;
|
||||
this.collection.comparator = function(item1, item2) {
|
||||
|
@ -727,7 +732,7 @@ define([
|
|||
} else
|
||||
this.collection.push(comment);
|
||||
|
||||
this.updateComments(true);
|
||||
this.updateComments(true, this.getComparator() === 'position-asc' || this.getComparator() === 'position-desc'); // don't sort by position
|
||||
|
||||
if (this.showPopover) {
|
||||
if (null !== data.asc_getQuoteText()) {
|
||||
|
@ -747,7 +752,7 @@ define([
|
|||
comment.get('groupName') ? this.addCommentToGroupCollection(comment) : this.collection.push(comment);
|
||||
}
|
||||
|
||||
this.updateComments(true);
|
||||
this.updateComments(true, this.getComparator() === 'position-asc' || this.getComparator() === 'position-desc');
|
||||
},
|
||||
onApiRemoveComment: function (id, silentUpdate) {
|
||||
for (var name in this.groupCollection) {
|
||||
|
@ -1100,17 +1105,28 @@ define([
|
|||
}
|
||||
},
|
||||
|
||||
onApiChangeCommentLogicalPosition: function (comments) {
|
||||
for (var uid in comments) {
|
||||
if (comments.hasOwnProperty(uid)) {
|
||||
var comment = this.findComment(uid) || this.findCommentInGroup(uid);
|
||||
comment && comment.set('position', comments[uid]);
|
||||
}
|
||||
}
|
||||
(this.getComparator() === 'position-asc' || this.getComparator() === 'position-desc') && this.updateComments(true);
|
||||
},
|
||||
|
||||
// internal
|
||||
|
||||
updateComments: function (needRender, disableSort, loadText) {
|
||||
var me = this;
|
||||
me.updateCommentsTime = new Date();
|
||||
me.disableSort = !!disableSort;
|
||||
if (me.timerUpdateComments===undefined)
|
||||
me.timerUpdateComments = setInterval(function(){
|
||||
if ((new Date()) - me.updateCommentsTime>100) {
|
||||
clearInterval(me.timerUpdateComments);
|
||||
me.timerUpdateComments = undefined;
|
||||
me.updateCommentsView(needRender, disableSort, loadText);
|
||||
me.updateCommentsView(needRender, me.disableSort, loadText);
|
||||
}
|
||||
}, 25);
|
||||
},
|
||||
|
|
|
@ -251,6 +251,17 @@ define([
|
|||
native.execCommand("uitheme:changed", JSON.stringify({name:name, type:theme.type}));
|
||||
}
|
||||
});
|
||||
|
||||
webapp.addListeners({
|
||||
'FileMenu': {
|
||||
'item:click': function (menu, action, isopts) {
|
||||
if ( action == 'app:exit' ) {
|
||||
native.execCommand('editor:event', JSON.stringify({action: 'close'}));
|
||||
menu.hide();
|
||||
}
|
||||
},
|
||||
},
|
||||
}, {id: 'desktop'});
|
||||
}
|
||||
},
|
||||
process: function (opts) {
|
||||
|
@ -278,7 +289,14 @@ define([
|
|||
if ( config.isDesktopApp && !!native ) {
|
||||
native.execCommand('editor:event', JSON.stringify({action:'close', url: config.customization.goback.url}));
|
||||
}
|
||||
}
|
||||
},
|
||||
isActive: function () {
|
||||
return !!native;
|
||||
},
|
||||
isOffline: function () {
|
||||
// return webapp.getController('Main').api.asc_isOffline();
|
||||
return webapp.getController('Main').appOptions.isOffline;
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -114,7 +114,8 @@ Common.UI.HintManager = new(function() {
|
|||
_inputLetters = '',
|
||||
_isComplete = false,
|
||||
_isLockedKeyEvents = false,
|
||||
_inputTimer;
|
||||
_inputTimer,
|
||||
_isDocReady = false;
|
||||
|
||||
var _api;
|
||||
|
||||
|
@ -370,6 +371,7 @@ Common.UI.HintManager = new(function() {
|
|||
'app:ready': function (mode) {
|
||||
var lang = mode.lang ? mode.lang.toLowerCase() : 'en';
|
||||
_getAlphabetLetters(lang);
|
||||
_isDocReady = true;
|
||||
},
|
||||
'hints:clear': _clearHints,
|
||||
'window:resize': _clearHints
|
||||
|
@ -453,13 +455,16 @@ Common.UI.HintManager = new(function() {
|
|||
_resetToDefault();
|
||||
return;
|
||||
}
|
||||
if (!curr.attr('content-target') || (curr.attr('content-target') && !$('#' + curr.attr('content-target')).is(':visible'))) { // need to open panel
|
||||
var needOpenPanel = (curr.attr('content-target') && !$('#' + curr.attr('content-target')).is(':visible'));
|
||||
if (!curr.attr('content-target') || needOpenPanel) { // need to open panel
|
||||
if (!($('#file-menu-panel').is(':visible') && (curr.parent().prop('id') === 'fm-btn-info' && $('#panel-info').is(':visible') ||
|
||||
curr.parent().prop('id') === 'fm-btn-settings' && $('#panel-settings').is(':visible')))) {
|
||||
if (curr.attr('for')) { // to trigger event in checkbox
|
||||
$('#' + curr.attr('for')).trigger(jQuery.Event('click', {which: 1}));
|
||||
} else {
|
||||
curr.trigger(jQuery.Event('click', {which: 1}));
|
||||
if (needOpenPanel)
|
||||
_isComplete = false; // to show next level of hints
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -490,12 +495,13 @@ Common.UI.HintManager = new(function() {
|
|||
}
|
||||
}
|
||||
|
||||
_needShow = (e.keyCode == Common.UI.Keys.ALT && !Common.Utils.ModalWindow.isVisible());
|
||||
_needShow = (e.keyCode == Common.UI.Keys.ALT && !Common.Utils.ModalWindow.isVisible() && _isDocReady);
|
||||
});
|
||||
};
|
||||
|
||||
var _getAlphabetLetters = function (lng) {
|
||||
Common.Utils.loadConfig('../../common/main/resources/alphabetletters/alphabetletters.json', function (langsJson) {
|
||||
_arrEnAlphabet = langsJson['en'];
|
||||
var _setAlphabet = function (lang) {
|
||||
_lang = lang;
|
||||
_arrAlphabet = langsJson[lang];
|
||||
|
|
|
@ -63,7 +63,7 @@ define([
|
|||
var appOptions = me.getApplication().getController('Main').appOptions;
|
||||
|
||||
if ( !appOptions.isEditMailMerge && !appOptions.isEditDiagram ) {
|
||||
var tab = {action: 'plugins', caption: me.panelPlugins.groupCaption, layoutname: 'toolbar-plugins'};
|
||||
var tab = {action: 'plugins', caption: me.panelPlugins.groupCaption, dataHintTitle: 'E', layoutname: 'toolbar-plugins'};
|
||||
me.$toolbarPanelPlugins = me.panelPlugins.getPanel();
|
||||
|
||||
toolbar.addTab(tab, me.$toolbarPanelPlugins, 10); // TODO: clear plugins list in left panel
|
||||
|
|
|
@ -51,6 +51,8 @@ define([
|
|||
"background-notification-badge",
|
||||
"background-scrim",
|
||||
"background-loader",
|
||||
"background-accent-button",
|
||||
"background-contrast-popover",
|
||||
|
||||
"highlight-button-hover",
|
||||
"highlight-button-pressed",
|
||||
|
@ -60,6 +62,8 @@ define([
|
|||
"highlight-header-button-pressed",
|
||||
"highlight-toolbar-tab-underline",
|
||||
"highlight-text-select",
|
||||
"highlight-accent-button-hover",
|
||||
"highlight-accent-button-pressed",
|
||||
|
||||
"border-toolbar",
|
||||
"border-divider",
|
||||
|
@ -70,6 +74,7 @@ define([
|
|||
"border-control-focus",
|
||||
"border-color-shading",
|
||||
"border-error",
|
||||
"border-contrast-popover",
|
||||
|
||||
"text-normal",
|
||||
"text-normal-pressed",
|
||||
|
@ -222,7 +227,8 @@ define([
|
|||
}
|
||||
|
||||
var on_document_ready = function (el) {
|
||||
get_themes_config('../../common/main/resources/themes/themes.json');
|
||||
// get_themes_config('../../common/main/resources/themes/themes.json');
|
||||
get_themes_config('../../../../themes.json');
|
||||
}
|
||||
|
||||
var get_ui_theme_name = function (objtheme) {
|
||||
|
|
|
@ -66,6 +66,7 @@ define([
|
|||
lockuserid : '',
|
||||
unattached : false,
|
||||
userdata : '',
|
||||
position : -1,
|
||||
|
||||
id : Common.UI.getId(), // internal
|
||||
time : 0,
|
||||
|
|
|
@ -64,6 +64,7 @@ if ( window.desktop && !!window.RendererProcessVariable ) {
|
|||
if ( theme.id ) {
|
||||
// params.uitheme = undefined;
|
||||
localStorage.setItem("ui-theme-id", theme.id);
|
||||
localStorage.removeItem("ui-theme");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -90,3 +91,13 @@ if ( !ui_theme_name ) {
|
|||
if ( !!ui_theme_name ) {
|
||||
document.body.classList.add(ui_theme_name);
|
||||
}
|
||||
|
||||
if ( checkLocalStorage ) {
|
||||
var content_theme = localStorage.getItem("content-theme");
|
||||
if ( content_theme == 'dark' ) {
|
||||
var current_theme = localStorage.getItem("ui-theme");
|
||||
if ( !!current_theme && /type":\s*"dark/.test(current_theme) ) {
|
||||
document.body.classList.add("content-theme-dark");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -361,21 +361,23 @@ define([
|
|||
checkable: true,
|
||||
checked: Common.localStorage.getItem(this.appPrefix + "comments-sort") === 'author-desc',
|
||||
toggleGroup: 'sortcomments'
|
||||
},
|
||||
{
|
||||
caption: this.mniPositionAsc,
|
||||
value: 'position-asc',
|
||||
checkable: true,
|
||||
visible: this.appPrefix==='de-',
|
||||
checked: Common.localStorage.getItem(this.appPrefix + "comments-sort") === 'position-asc',
|
||||
toggleGroup: 'sortcomments'
|
||||
},
|
||||
{
|
||||
caption: this.mniPositionDesc,
|
||||
value: 'position-desc',
|
||||
checkable: true,
|
||||
visible: this.appPrefix==='de-',
|
||||
checked: Common.localStorage.getItem(this.appPrefix + "comments-sort") === 'position-desc',
|
||||
toggleGroup: 'sortcomments'
|
||||
}
|
||||
// {
|
||||
// caption: this.mniPositionAsc,
|
||||
// value: 'position-asc',
|
||||
// checkable: true,
|
||||
// checked: Common.localStorage.getItem(this.appPrefix + "comments-sort") === 'position-asc',
|
||||
// toggleGroup: 'sortcomments'
|
||||
// }
|
||||
// {
|
||||
// caption: this.mniPositionDesc,
|
||||
// value: 'position-desc',
|
||||
// checkable: true,
|
||||
// checked: Common.localStorage.getItem(this.appPrefix + "comments-sort") === 'position-desc',
|
||||
// toggleGroup: 'sortcomments'
|
||||
// }
|
||||
]
|
||||
})
|
||||
});
|
||||
|
|
|
@ -126,7 +126,7 @@ define([
|
|||
},
|
||||
|
||||
textTitle : 'Copy, Cut and Paste Actions',
|
||||
textMsg : 'Copy, cut and paste actions using the editor toolbar buttons and context menu actions will be performed within this editor tab only.<br><br>.To copy or paste to or from applications outside the editor tab use the following keyboard combinations:',
|
||||
textMsg : 'Copy, cut and paste actions using the editor toolbar buttons and context menu actions will be performed within this editor tab only.<br><br>To copy or paste to or from applications outside the editor tab use the following keyboard combinations:',
|
||||
textToCopy : 'for Copy',
|
||||
textToPaste : 'for Paste',
|
||||
textToCut: 'for Cut',
|
||||
|
|
|
@ -470,14 +470,15 @@ define([
|
|||
getPanel: function (role, config) {
|
||||
var me = this;
|
||||
|
||||
function createTitleButton(iconid, slot, disabled, hintDirection, hintOffset) {
|
||||
function createTitleButton(iconid, slot, disabled, hintDirection, hintOffset, hintTitle) {
|
||||
return (new Common.UI.Button({
|
||||
cls: 'btn-header',
|
||||
iconCls: iconid,
|
||||
disabled: disabled === true,
|
||||
dataHint:'0',
|
||||
dataHintDirection: hintDirection ? hintDirection : 'left',
|
||||
dataHintOffset: hintOffset ? hintOffset : '10, 10'
|
||||
dataHintDirection: hintDirection ? hintDirection : (config.isDesktopApp ? 'right' : 'left'),
|
||||
dataHintOffset: hintOffset ? hintOffset : (config.isDesktopApp ? '10, -10' : '10, 10'),
|
||||
dataHintTitle: hintTitle
|
||||
})).render(slot);
|
||||
}
|
||||
|
||||
|
@ -532,7 +533,7 @@ define([
|
|||
this.btnDownload = createTitleButton('toolbar__icon icon--inverse btn-download', $html.findById('#slot-hbtn-download'), undefined, 'bottom', 'big');
|
||||
|
||||
if ( config.canPrint )
|
||||
this.btnPrint = createTitleButton('toolbar__icon icon--inverse btn-print', $html.findById('#slot-hbtn-print'), undefined, 'bottom', 'big');
|
||||
this.btnPrint = createTitleButton('toolbar__icon icon--inverse btn-print', $html.findById('#slot-hbtn-print'), undefined, 'bottom', 'big', 'P');
|
||||
|
||||
if ( config.canEdit && config.canRequestEditRights )
|
||||
this.btnEdit = createTitleButton('toolbar__icon icon--inverse btn-edit', $html.findById('#slot-hbtn-edit'), undefined, 'bottom', 'big');
|
||||
|
@ -541,7 +542,7 @@ define([
|
|||
|
||||
if (!config.isEdit || config.customization && !!config.customization.compactHeader) {
|
||||
if (config.user.guest && config.canRenameAnonymous)
|
||||
me.btnUserName = createTitleButton('toolbar__icon icon--inverse btn-user', $html.findById('#slot-btn-user-name'), undefined, 'bottom', 'big');
|
||||
me.btnUserName = createTitleButton('toolbar__icon icon--inverse btn-user', $html.findById('#slot-btn-user-name'), undefined, 'bottom', 'big' );
|
||||
else {
|
||||
me.elUserName = $html.find('.btn-current-user');
|
||||
me.elUserName.removeClass('hidden');
|
||||
|
@ -567,12 +568,12 @@ define([
|
|||
me.setUserName(me.options.userName);
|
||||
|
||||
if ( config.canPrint && config.isEdit ) {
|
||||
me.btnPrint = createTitleButton('toolbar__icon icon--inverse btn-print', $html.findById('#slot-btn-dt-print'), true);
|
||||
me.btnPrint = createTitleButton('toolbar__icon icon--inverse btn-print', $html.findById('#slot-btn-dt-print'), true, undefined, undefined, 'P');
|
||||
}
|
||||
|
||||
me.btnSave = createTitleButton('toolbar__icon icon--inverse btn-save', $html.findById('#slot-btn-dt-save'), true);
|
||||
me.btnUndo = createTitleButton('toolbar__icon icon--inverse btn-undo', $html.findById('#slot-btn-dt-undo'), true);
|
||||
me.btnRedo = createTitleButton('toolbar__icon icon--inverse btn-redo', $html.findById('#slot-btn-dt-redo'), true);
|
||||
me.btnSave = createTitleButton('toolbar__icon icon--inverse btn-save', $html.findById('#slot-btn-dt-save'), true, undefined, undefined, 'S');
|
||||
me.btnUndo = createTitleButton('toolbar__icon icon--inverse btn-undo', $html.findById('#slot-btn-dt-undo'), true, undefined, undefined, 'Z');
|
||||
me.btnRedo = createTitleButton('toolbar__icon icon--inverse btn-redo', $html.findById('#slot-btn-dt-redo'), true, undefined, undefined, 'Y');
|
||||
|
||||
if ( me.btnSave.$icon.is('svg') ) {
|
||||
me.btnSave.$icon.addClass('icon-save btn-save');
|
||||
|
|
|
@ -86,7 +86,7 @@ define([
|
|||
'<div class="user-version">' + this.textVer + '<%=version%></div>',
|
||||
'<% } %>',
|
||||
'<% if (isRevision && hasChanges) { %>',
|
||||
'<div class="revision-expand img-commonctrl ' + '<% if (isExpanded) { %>' + 'up' + '<% } %>' + '"></div>',
|
||||
'<div class="revision-expand ' + '<% if (isExpanded) { %>' + 'up' + '<% } %>' + '"></div>',
|
||||
'<% } %>',
|
||||
'<div class="user-name">',
|
||||
'<div class="color" style="display: inline-block; background-color:' + '<%=usercolor%>;' + '" >',
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
<svg width="100" height="127" viewBox="0 0 100 127" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<symbol id="svg-format-docxf">
|
||||
<g>
|
||||
<path id="Vector" d="M95 23V119C95 119.796 94.6839 120.559 94.1213 121.121C93.5587 121.684 92.7956 122 92 122H8C7.20435 122 6.44129 121.684 5.87868 121.121C5.31607 120.559 5 119.796 5 119V8C5 7.20435 5.31607 6.44129 5.87868 5.87868C6.44129 5.31607 7.20435 5 8 5H77L95 23Z" fill="#5D86C4"/>
|
||||
<path id="Vector_2" opacity="0.2" d="M95 23H80C79.2044 23 78.4413 22.6839 77.8787 22.1213C77.3161 21.5587 77 20.7956 77 20V5L95 23Z" fill="black"/>
|
||||
<g>
|
||||
<path d="M38.3477 109.635C38.3477 111.045 37.9453 112.125 37.1406 112.875C36.3398 113.625 35.1816 114 33.666 114H31.2402V105.434H33.9297C35.3281 105.434 36.4141 105.803 37.1875 106.541C37.9609 107.279 38.3477 108.311 38.3477 109.635ZM36.4609 109.682C36.4609 107.842 35.6484 106.922 34.0234 106.922H33.0566V112.5H33.8359C35.5859 112.5 36.4609 111.561 36.4609 109.682Z" fill="white"/>
|
||||
<path d="M47.8984 109.705C47.8984 111.123 47.5469 112.213 46.8438 112.975C46.1406 113.736 45.1328 114.117 43.8203 114.117C42.5078 114.117 41.5 113.736 40.7969 112.975C40.0938 112.213 39.7422 111.119 39.7422 109.693C39.7422 108.268 40.0938 107.18 40.7969 106.43C41.5039 105.676 42.5156 105.299 43.832 105.299C45.1484 105.299 46.1543 105.678 46.8496 106.436C47.5488 107.193 47.8984 108.283 47.8984 109.705ZM41.6465 109.705C41.6465 110.662 41.8281 111.383 42.1914 111.867C42.5547 112.352 43.0977 112.594 43.8203 112.594C45.2695 112.594 45.9941 111.631 45.9941 109.705C45.9941 107.775 45.2734 106.811 43.832 106.811C43.1094 106.811 42.5645 107.055 42.1973 107.543C41.8301 108.027 41.6465 108.748 41.6465 109.705Z" fill="white"/>
|
||||
<path d="M53.3125 106.822C52.6289 106.822 52.0996 107.08 51.7246 107.596C51.3496 108.107 51.1621 108.822 51.1621 109.74C51.1621 111.65 51.8789 112.605 53.3125 112.605C53.9141 112.605 54.6426 112.455 55.498 112.154V113.678C54.7949 113.971 54.0098 114.117 53.1426 114.117C51.8965 114.117 50.9434 113.74 50.2832 112.986C49.623 112.229 49.293 111.143 49.293 109.729C49.293 108.838 49.4551 108.059 49.7793 107.391C50.1035 106.719 50.5684 106.205 51.1738 105.85C51.7832 105.49 52.4961 105.311 53.3125 105.311C54.1445 105.311 54.9805 105.512 55.8203 105.914L55.2344 107.391C54.9141 107.238 54.5918 107.105 54.2676 106.992C53.9434 106.879 53.625 106.822 53.3125 106.822Z" fill="white"/>
|
||||
<path d="M64.252 114H62.1777L60.1855 110.76L58.1934 114H56.248L59.0898 109.582L56.4297 105.434H58.4336L60.2793 108.516L62.0898 105.434H64.0469L61.3574 109.682L64.252 114Z" fill="white"/>
|
||||
<path d="M67.1172 114H65.3301V105.434H70.2402V106.922H67.1172V109.131H70.0234V110.613H67.1172V114Z" fill="white"/>
|
||||
</g>
|
||||
<path id="Vector_3" d="M67.8 48L61.5 75L54.5 48H51.5H48.5L41.5 75L35.2 48H29.4L37.9 82H44.3L51.5 54.1L58.7 82H65.1L73.6 48H67.8Z" fill="white"/>
|
||||
<path id="Vector" d="M95 23V119C95 119.796 94.6839 120.559 94.1213 121.121C93.5587 121.684 92.7956 122 92 122H8C7.20435 122 6.44129 121.684 5.87868 121.121C5.31607 120.559 5 119.796 5 119V8C5 7.20435 5.31607 6.44129 5.87868 5.87868C6.44129 5.31607 7.20435 5 8 5H77L95 23Z" fill="#27ABA3"/>
|
||||
<path id="Vector_2" opacity="0.2" d="M95 23H80C79.2044 23 78.4413 22.6839 77.8787 22.1213C77.3161 21.5587 77 20.7956 77 20V5L95 23Z" fill="black"/>
|
||||
<g id="DOCXF">
|
||||
<path d="M38.3176 109.635C38.3176 111.045 37.9153 112.125 37.1106 112.875C36.3098 113.625 35.1516 114 33.636 114H31.2102V105.434H33.8997C35.2981 105.434 36.384 105.803 37.1575 106.541C37.9309 107.279 38.3176 108.311 38.3176 109.635ZM36.4309 109.682C36.4309 107.842 35.6184 106.922 33.9934 106.922H33.0266V112.5H33.8059C35.5559 112.5 36.4309 111.561 36.4309 109.682Z" fill="white"/>
|
||||
<path d="M47.8684 109.705C47.8684 111.123 47.5168 112.213 46.8137 112.975C46.1106 113.736 45.1028 114.117 43.7903 114.117C42.4778 114.117 41.47 113.736 40.7668 112.975C40.0637 112.213 39.7122 111.119 39.7122 109.693C39.7122 108.268 40.0637 107.18 40.7668 106.43C41.4739 105.676 42.4856 105.299 43.802 105.299C45.1184 105.299 46.1243 105.678 46.8196 106.436C47.5188 107.193 47.8684 108.283 47.8684 109.705ZM41.6165 109.705C41.6165 110.662 41.7981 111.383 42.1614 111.867C42.5247 112.352 43.0676 112.594 43.7903 112.594C45.2395 112.594 45.9641 111.631 45.9641 109.705C45.9641 107.775 45.2434 106.811 43.802 106.811C43.0793 106.811 42.5344 107.055 42.1672 107.543C41.8 108.027 41.6165 108.748 41.6165 109.705Z" fill="white"/>
|
||||
<path d="M53.2825 106.822C52.5989 106.822 52.0696 107.08 51.6946 107.596C51.3196 108.107 51.1321 108.822 51.1321 109.74C51.1321 111.65 51.8489 112.605 53.2825 112.605C53.884 112.605 54.6125 112.455 55.468 112.154V113.678C54.7649 113.971 53.9797 114.117 53.1125 114.117C51.8665 114.117 50.9133 113.74 50.2532 112.986C49.593 112.229 49.2629 111.143 49.2629 109.729C49.2629 108.838 49.425 108.059 49.7493 107.391C50.0735 106.719 50.5383 106.205 51.1438 105.85C51.7532 105.49 52.4661 105.311 53.2825 105.311C54.1145 105.311 54.9504 105.512 55.7903 105.914L55.2043 107.391C54.884 107.238 54.5618 107.105 54.2375 106.992C53.9133 106.879 53.595 106.822 53.2825 106.822Z" fill="white"/>
|
||||
<path d="M64.2219 114H62.1477L60.1555 110.76L58.1633 114H56.218L59.0598 109.582L56.3997 105.434H58.4036L60.2493 108.516L62.0598 105.434H64.0168L61.3274 109.682L64.2219 114Z" fill="white"/>
|
||||
<path d="M67.0872 114H65.3V105.434H70.2102V106.922H67.0872V109.131H69.9934V110.613H67.0872V114Z" fill="white"/>
|
||||
</g>
|
||||
<path id="Rectangle 381 (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M22 58H78V44H22V58ZM20 42V60H80V42H20Z" fill="white"/>
|
||||
<path id="Rectangle 387 (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M22 82H78V68H22V82ZM20 66V84H80V66H20Z" fill="white"/>
|
||||
</g>
|
||||
</symbol>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 3 KiB |
|
@ -34,6 +34,7 @@
|
|||
--border-control-focus: #848484;
|
||||
--border-color-shading: fade(#000, 20%);
|
||||
--border-error: #d9534f;
|
||||
--border-contrast-popover: #444444;
|
||||
|
||||
--text-normal: #444;
|
||||
--text-normal-pressed: #fff;
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
--border-control-focus: #ccc;
|
||||
--border-color-shading: fade(#fff, 10%);
|
||||
--border-error: #f62211;
|
||||
--border-contrast-popover: #666;
|
||||
|
||||
--text-normal: fade(#fff, 80%);
|
||||
--text-normal-pressed: fade(#fff, 80%);
|
||||
|
|
|
@ -13,6 +13,8 @@
|
|||
@background-scrim-ie: fade(#000, 20%);
|
||||
@background-loader-ie: fade(#000, 65%);
|
||||
@background-alt-key-hint-ie: #FFD938;
|
||||
@background-accent-button-ie: #446995;
|
||||
@background-contrast-popover-ie: #444444;
|
||||
|
||||
@highlight-button-hover-ie: #d8dadc;
|
||||
@highlight-button-pressed-ie: #7d858c;
|
||||
|
@ -22,6 +24,8 @@
|
|||
@highlight-header-button-pressed-ie: fade(#000, 20%);
|
||||
@highlight-toolbar-tab-underline-ie: #444;
|
||||
@highlight-text-select-ie: #3494fb;
|
||||
@highlight-accent-button-hover-ie: #375478;
|
||||
@highlight-accent-button-pressed-ie: #293F59;
|
||||
|
||||
@border-toolbar-ie: #cbcbcb;
|
||||
@border-divider-ie: #cbcbcb;
|
||||
|
@ -32,6 +36,7 @@
|
|||
@border-control-focus-ie: #848484;
|
||||
@border-color-shading-ie: fade(#000, 20%);
|
||||
@border-error-ie: #d9534f;
|
||||
@border-contrast-popover-ie: #444444;
|
||||
|
||||
@text-normal-ie: #444;
|
||||
@text-normal-pressed-ie: #fff;
|
||||
|
|
|
@ -48,6 +48,7 @@
|
|||
--border-control-focus: #848484;
|
||||
--border-color-shading: fade(#000, 15%);
|
||||
--border-error: #f62211;
|
||||
--border-contrast-popover: #444444;
|
||||
|
||||
--text-normal: fade(#000, 80%);
|
||||
--text-normal-pressed: fade(#000, 80%);
|
||||
|
@ -185,6 +186,7 @@
|
|||
@border-control-focus: var(--border-control-focus);
|
||||
@border-color-shading: var(--border-color-shading);
|
||||
@border-error: var(--border-error);
|
||||
@border-contrast-popover: var(--border-contrast-popover);
|
||||
|
||||
// Text
|
||||
// -------------------------
|
||||
|
|
|
@ -82,8 +82,10 @@
|
|||
.combo-styles {
|
||||
@combo-dataview-button-width: 30px;
|
||||
@combo-dataview-height: 46px;
|
||||
@combo-dataview-height-calc: calc(40px + 2 * @scaled-two-px-value + 2 * @scaled-one-px-value);
|
||||
|
||||
height: @combo-dataview-height;
|
||||
height: @combo-dataview-height-calc;
|
||||
|
||||
.view {
|
||||
margin-right: -@combo-dataview-button-width;
|
||||
|
@ -93,7 +95,8 @@
|
|||
|
||||
.dataview {
|
||||
@minus-px: calc(-1px / @pixel-ratio-factor);
|
||||
height: 46px;
|
||||
height: @combo-dataview-height;
|
||||
height: @combo-dataview-height-calc;
|
||||
padding: 0;
|
||||
margin: -1 0 0 -1;
|
||||
margin: @minus-px 0 0 @minus-px;
|
||||
|
@ -112,6 +115,7 @@
|
|||
margin: 0 @minus-px-ie @minus-px-ie 0;
|
||||
margin: 0 @minus-px @minus-px 0;
|
||||
height: @combo-dataview-height;
|
||||
height: @combo-dataview-height-calc;
|
||||
background-color: @background-normal-ie;
|
||||
background-color: @background-normal;
|
||||
display: flex;
|
||||
|
@ -147,6 +151,7 @@
|
|||
|
||||
.dataview {
|
||||
margin-top: -1px;
|
||||
margin-top: calc(-1 * @scaled-one-px-value);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -167,6 +172,7 @@
|
|||
.button {
|
||||
width: @combo-dataview-button-width;
|
||||
height: @combo-dataview-height;
|
||||
height: @combo-dataview-height-calc;
|
||||
|
||||
.btn-group, button {
|
||||
width: 100%;
|
||||
|
|
|
@ -84,7 +84,8 @@
|
|||
}
|
||||
|
||||
.revision-expand {
|
||||
background-position: -70px -145px;
|
||||
border-color: @icon-normal-pressed-ie;
|
||||
border-color: @icon-normal-pressed;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -143,16 +144,22 @@
|
|||
}
|
||||
|
||||
.revision-expand {
|
||||
width: 23px;
|
||||
height: 23px;
|
||||
background-position: -43px -145px;
|
||||
margin: 10px 10px;
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
border: solid 2px @icon-normal-ie;
|
||||
border: solid 2px @icon-normal;
|
||||
border-bottom: none;
|
||||
border-right: none;
|
||||
background-image: none;
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
right: 2px;
|
||||
margin: 15px;
|
||||
//transition: transform 0.2s ease;
|
||||
transform: rotate(-135deg) ;
|
||||
|
||||
&.up {
|
||||
transform: rotate(180deg);
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -40,6 +40,8 @@
|
|||
background-color: @header-background-color;
|
||||
color: @text-toolbar-header-ie;
|
||||
color: @text-toolbar-header;
|
||||
border-color: @header-background-color-ie;
|
||||
border-color: @header-background-color;
|
||||
|
||||
.close {
|
||||
&:before, &:after {
|
||||
|
@ -49,9 +51,15 @@
|
|||
}
|
||||
}
|
||||
|
||||
.tip-arrow:after {
|
||||
.tip-arrow:before {
|
||||
background-color: @header-background-color-ie;
|
||||
background-color: @header-background-color;
|
||||
border-color: @header-background-color-ie !important;
|
||||
border-color: @header-background-color !important;
|
||||
}
|
||||
.tip-arrow:after {
|
||||
border-color: @header-background-color-ie !important;
|
||||
border-color: @header-background-color !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -59,11 +67,19 @@
|
|||
.asc-synchronizetip {
|
||||
background-color: @background-toolbar-ie;
|
||||
background-color: @background-toolbar;
|
||||
border-color: @background-toolbar-ie;
|
||||
border-color: @background-toolbar;
|
||||
}
|
||||
|
||||
.tip-arrow:after {
|
||||
.tip-arrow:before {
|
||||
background-color: @background-toolbar-ie;
|
||||
background-color: @background-toolbar;
|
||||
border-color: @background-toolbar-ie !important;
|
||||
border-color: @background-toolbar !important;
|
||||
}
|
||||
.tip-arrow:after {
|
||||
border-color: @background-toolbar-ie !important;
|
||||
border-color: @background-toolbar !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -75,17 +91,29 @@
|
|||
}
|
||||
|
||||
.asc-synchronizetip {
|
||||
background-color: @background-contrast-popover-ie;
|
||||
background-color: @background-contrast-popover;
|
||||
color: @text-contrast-background-ie;
|
||||
color: @text-contrast-background;
|
||||
border-color: @border-contrast-popover-ie;
|
||||
border-color: @border-contrast-popover;
|
||||
.close {
|
||||
&:before, &:after {
|
||||
background-color: @text-contrast-background-ie;
|
||||
background-color: @text-contrast-background;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tip-arrow:after {
|
||||
.tip-arrow:before {
|
||||
background-color: @background-contrast-popover-ie;
|
||||
background-color: @background-contrast-popover;
|
||||
border-color: @border-contrast-popover-ie !important;
|
||||
border-color: @border-contrast-popover !important;
|
||||
}
|
||||
.tip-arrow:after {
|
||||
border-color: @border-contrast-popover-ie !important;
|
||||
border-color: @border-contrast-popover !important;
|
||||
}
|
||||
|
||||
.btn-div {
|
||||
|
@ -95,6 +123,15 @@
|
|||
border-radius: 2px;
|
||||
padding: 3px 12px;
|
||||
margin-top: 10px;
|
||||
&:hover {
|
||||
background-color: @highlight-header-button-hover-ie;
|
||||
background-color: @highlight-header-button-hover;
|
||||
}
|
||||
|
||||
&:active {
|
||||
background-color: @highlight-header-button-pressed-ie;
|
||||
background-color: @highlight-header-button-pressed;
|
||||
}
|
||||
}
|
||||
|
||||
.show-link label {
|
||||
|
@ -156,14 +193,14 @@
|
|||
|
||||
&.right {
|
||||
.tip-arrow {
|
||||
left: -13px;
|
||||
left: -12px;
|
||||
top: 50%;
|
||||
margin-top: -7px;
|
||||
width: 16px;
|
||||
height: 15px;
|
||||
.box-shadow(0 0 8px -5px rgba(0, 0, 0, 0.2));
|
||||
|
||||
&:after {
|
||||
&:before {
|
||||
top: 0;
|
||||
left: 8px;
|
||||
width: 16px;
|
||||
|
@ -177,10 +214,10 @@
|
|||
top: 50%;
|
||||
margin-top: -7px;
|
||||
width: 16px;
|
||||
height: 15px;
|
||||
height: 16px;
|
||||
.box-shadow(0 0 8px -5px rgba(0, 0, 0, 0.2));
|
||||
|
||||
&:after {
|
||||
&:before {
|
||||
top: 0;
|
||||
left: -8px;
|
||||
width: 16px;
|
||||
|
@ -197,7 +234,7 @@
|
|||
height: 16px;
|
||||
.box-shadow(0 0 8px -5px rgba(0, 0, 0, 0.2));
|
||||
|
||||
&:after {
|
||||
&:before {
|
||||
top: -6px;
|
||||
left: 0;
|
||||
width: 16px;
|
||||
|
@ -207,13 +244,13 @@
|
|||
&.bottom {
|
||||
.tip-arrow {
|
||||
left: 50%;
|
||||
top: -12px;
|
||||
top: -11px;
|
||||
margin-left: -7px;
|
||||
width: 16px;
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
.box-shadow(0 0 8px -5px rgba(0, 0, 0, 0.2));
|
||||
|
||||
&:after {
|
||||
&:before {
|
||||
top: 7px;
|
||||
left: 0;
|
||||
width: 16px;
|
||||
|
@ -229,11 +266,17 @@
|
|||
height: 15px;
|
||||
.box-shadow(0 -5px 8px -5px rgba(0, 0, 0, 0.2));
|
||||
|
||||
&:after {
|
||||
&:before {
|
||||
top: -7px;
|
||||
left: 7px;
|
||||
width: 16px;
|
||||
}
|
||||
&:after {
|
||||
top: 0px;
|
||||
left: 4px;
|
||||
border-top: @scaled-one-px-value-ie solid @background-notification-popover-ie;
|
||||
border-top: @scaled-one-px-value solid @background-notification-popover;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -245,106 +288,148 @@
|
|||
height: 15px;
|
||||
.box-shadow(0 -5px 8px -5px rgba(0, 0, 0, 0.2));
|
||||
|
||||
&:after {
|
||||
&:before {
|
||||
top: -7px;
|
||||
left: -7px;
|
||||
}
|
||||
&:after {
|
||||
top: 0px;
|
||||
left: -4px;
|
||||
border-top: @scaled-one-px-value-ie solid @background-notification-popover-ie;
|
||||
border-top: @scaled-one-px-value solid @background-notification-popover;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.top-left {
|
||||
.tip-arrow {
|
||||
right: 0;
|
||||
bottom: -15px;
|
||||
bottom: -14px;
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
.box-shadow(5px 0 8px -5px rgba(0, 0, 0, 0.2));
|
||||
|
||||
&:after {
|
||||
&:before {
|
||||
top: -8px;
|
||||
left: 8px;
|
||||
}
|
||||
&:after {
|
||||
top: -6px;
|
||||
left: 0px;
|
||||
border-right: @scaled-one-px-value-ie solid @background-notification-popover-ie;
|
||||
border-right: @scaled-one-px-value solid @background-notification-popover;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.top-right {
|
||||
.tip-arrow {
|
||||
left: 0;
|
||||
bottom: -15px;
|
||||
bottom: -14px;
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
.box-shadow(-5px 0 8px -5px rgba(0, 0, 0, 0.2));
|
||||
|
||||
&:after {
|
||||
&:before {
|
||||
top: -8px;
|
||||
left: -8px;
|
||||
.box-shadow(2px 2px 8px -1px rgba(0, 0, 0, 0.2));
|
||||
}
|
||||
&:after {
|
||||
top: -6px;
|
||||
left: 0px;
|
||||
border-left: @scaled-one-px-value-ie solid @background-notification-popover-ie;
|
||||
border-left: @scaled-one-px-value solid @background-notification-popover;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.bottom-left {
|
||||
.tip-arrow {
|
||||
right: 0;
|
||||
top: -15px;
|
||||
top: -14px;
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
.box-shadow(8px 5px 8px -5px rgba(0, 0, 0, 0.2));
|
||||
|
||||
&:after {
|
||||
&:before {
|
||||
top: 8px;
|
||||
left: 8px;
|
||||
.box-shadow(0 0 8px -1px rgba(0, 0, 0, 0.2));
|
||||
}
|
||||
&:after {
|
||||
top: 6px;
|
||||
left: 0px;
|
||||
border-right: @scaled-one-px-value-ie solid @background-notification-popover-ie;
|
||||
border-right: @scaled-one-px-value solid @background-notification-popover;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.bottom-right {
|
||||
.tip-arrow {
|
||||
left: 0;
|
||||
top: -15px;
|
||||
top: -14px;
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
.box-shadow(-8px 0 8px -5px rgba(0, 0, 0, 0.2));
|
||||
|
||||
&:after {
|
||||
&:before {
|
||||
top: 8px;
|
||||
left: -8px;
|
||||
.box-shadow(0 0 8px -1px rgba(0, 0, 0, 0.2));
|
||||
}
|
||||
&:after {
|
||||
top: 6px;
|
||||
left: 0px;
|
||||
border-left: @scaled-one-px-value-ie solid @background-notification-popover-ie;
|
||||
border-left: @scaled-one-px-value solid @background-notification-popover;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.right-top {
|
||||
.tip-arrow {
|
||||
left: -15px;
|
||||
left: -14px;
|
||||
bottom: 0;
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
.box-shadow(0 5px 8px -5px rgba(0, 0, 0, 0.2));
|
||||
|
||||
&:after {
|
||||
&:before {
|
||||
top: 7px;
|
||||
left: 7px;
|
||||
width: 16px;
|
||||
}
|
||||
&:after {
|
||||
top: 0px;
|
||||
left: 4px;
|
||||
border-bottom: @scaled-one-px-value-ie solid @background-notification-popover-ie;
|
||||
border-bottom: @scaled-one-px-value solid @background-notification-popover;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.left-top {
|
||||
.tip-arrow {
|
||||
right: -15px;
|
||||
right: -14px;
|
||||
bottom: 0;
|
||||
width: 15px;
|
||||
height: 13px;
|
||||
.box-shadow(-5px 8px 8px -5px rgba(0, 0, 0, 0.2));
|
||||
|
||||
&:after {
|
||||
&:before {
|
||||
bottom: -7px;
|
||||
left: -7px;
|
||||
//width: 15px;
|
||||
.box-shadow(0 0 8px -1px rgba(0, 0, 0, 0.2));
|
||||
}
|
||||
&:after {
|
||||
top: -2px;
|
||||
left: -4px;
|
||||
border-bottom: @scaled-one-px-value-ie solid @background-notification-popover-ie;
|
||||
border-bottom: @scaled-one-px-value solid @background-notification-popover;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -356,6 +441,9 @@
|
|||
background-color: @background-notification-popover;
|
||||
overflow: visible;
|
||||
|
||||
border: @scaled-one-px-value-ie solid @background-notification-popover-ie;
|
||||
border: @scaled-one-px-value solid @background-notification-popover;
|
||||
|
||||
.bottom-right &,
|
||||
.right-bottom & {
|
||||
border-top-left-radius: 0;
|
||||
|
@ -380,7 +468,7 @@
|
|||
font-size: 11px;
|
||||
}
|
||||
|
||||
.asc-synchronizetip .tip-arrow:after {
|
||||
.asc-synchronizetip .tip-arrow:before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
|
@ -397,6 +485,15 @@
|
|||
transform: rotate(45deg);
|
||||
|
||||
.box-shadow(0 4px 8px -1px rgba(0, 0, 0, 0.2));
|
||||
border: @scaled-one-px-value-ie solid @background-notification-popover-ie;
|
||||
border: @scaled-one-px-value solid @background-notification-popover;
|
||||
}
|
||||
.asc-synchronizetip .tip-arrow:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
background-color: transparent;
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
}
|
||||
|
||||
.asc-synchronizetip .show-link {
|
||||
|
|
|
@ -26,7 +26,7 @@ class ContextMenuView extends Component {
|
|||
onPopoverClosed={e => this.props.onMenuClosed()}
|
||||
>
|
||||
<List className="list-block">
|
||||
{buttons.map((b, index) =>
|
||||
{buttons.length && buttons.map((b, index) =>
|
||||
!b.icon ?
|
||||
<ListButton title={b.caption} key={index} onClick={e => this.props.onMenuItemClick(b.event)} /> :
|
||||
<ListButton key={index} onClick={e => this.props.onMenuItemClick(b.event)}>
|
||||
|
|
|
@ -26,11 +26,7 @@ const PageReview = props => {
|
|||
<List>
|
||||
{canReview &&
|
||||
<ListItem title={_t.textTrackChanges} className={isDisableAllSettings ? 'disabled' : ''}>
|
||||
<Toggle checked={props.trackChanges} onToggleChange={
|
||||
(prev) => {
|
||||
props.onTrackChanges(!prev);
|
||||
}
|
||||
}/>
|
||||
<Toggle checked={props.trackChanges} onToggleChange={() => props.onTrackChanges(!props.trackChanges)}/>
|
||||
</ListItem>
|
||||
}
|
||||
{!props.isRestrictedEdit &&
|
||||
|
|
|
@ -733,6 +733,10 @@ DE.ApplicationController = new(function(){
|
|||
message = me.errorLoadingFont;
|
||||
break;
|
||||
|
||||
case Asc.c_oAscError.ID.KeyExpire:
|
||||
message = me.errorTokenExpire;
|
||||
break;
|
||||
|
||||
default:
|
||||
message = me.errorDefaultMessage.replace('%1', id);
|
||||
break;
|
||||
|
@ -937,6 +941,7 @@ DE.ApplicationController = new(function(){
|
|||
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',
|
||||
errorLoadingFont: 'Fonts are not loaded.<br>Please contact your Document Server administrator.'
|
||||
errorLoadingFont: 'Fonts are not loaded.<br>Please contact your Document Server administrator.',
|
||||
errorTokenExpire: 'The document security token has expired.<br>Please contact your Document Server administrator.'
|
||||
}
|
||||
})();
|
|
@ -17,6 +17,7 @@
|
|||
"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.errorTokenExpire": "The document security token has expired.<br>Please contact your Document Server administrator.",
|
||||
"DE.ApplicationController.errorUpdateVersionOnDisconnect": "Internet connection has been restored, and the file version has been changed.<br>Before you can continue working, you need to download the file or copy its content to make sure nothing is lost, and then reload this page.",
|
||||
"DE.ApplicationController.errorUserDrop": "The file cannot be accessed right now.",
|
||||
"DE.ApplicationController.notcriticalErrorTitle": "Warning",
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
"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.errorTokenExpire": "Le jeton de sécurité du document a expiré.<br>Veuillez contactez l'administrateur de Document Server.",
|
||||
"DE.ApplicationController.errorUpdateVersionOnDisconnect": "La connexion internet a été rétablie, la version du fichier est modifiée.<br>Avant de continuer, téléchargez le fichier ou copiez le contenu pour vous assurer que tous les changements ont été enregistrés, et rechargez la page.",
|
||||
"DE.ApplicationController.errorUserDrop": "Impossible d'accéder au fichier.",
|
||||
"DE.ApplicationController.notcriticalErrorTitle": "Avertissement",
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
"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.errorTokenExpire": "Token de securitate din document a expirat.<br>Contactați administratorul dvs. de Server Documente.",
|
||||
"DE.ApplicationController.errorUpdateVersionOnDisconnect": "Conexiunea la Internet s-a restabilit și versiunea fișierului s-a schimbat.<br>Înainte de a continua, fișierul trebuie descărcat sau conținutul fișierului copiat ca să vă asigurați că nimic nu e pierdut, apoi reîmprospătați această pagină.",
|
||||
"DE.ApplicationController.errorUserDrop": "Fișierul nu poate fi accesat deocamdată.",
|
||||
"DE.ApplicationController.notcriticalErrorTitle": "Avertisment",
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
"DE.ApplicationController.errorForceSave": "При сохранении файла произошла ошибка. Используйте опцию 'Скачать как', чтобы сохранить файл на жестком диске компьютера или повторите попытку позже.",
|
||||
"DE.ApplicationController.errorLoadingFont": "Шрифты не загружены.<br>Пожалуйста, обратитесь к администратору Сервера документов.",
|
||||
"DE.ApplicationController.errorSubmit": "Не удалось отправить.",
|
||||
"DE.ApplicationController.errorTokenExpire": "Истек срок действия токена безопасности документа.<br>Пожалуйста, обратитесь к администратору Сервера документов.",
|
||||
"DE.ApplicationController.errorUpdateVersionOnDisconnect": "Подключение к Интернету было восстановлено, и версия файла изменилась.<br>Прежде чем продолжить работу, надо скачать файл или скопировать его содержимое, чтобы обеспечить сохранность данных, а затем перезагрузить страницу.",
|
||||
"DE.ApplicationController.errorUserDrop": "В настоящий момент файл недоступен.",
|
||||
"DE.ApplicationController.notcriticalErrorTitle": "Внимание",
|
||||
|
|
|
@ -10,6 +10,7 @@ define([
|
|||
'common/main/lib/component/Calendar',
|
||||
'common/main/lib/util/LocalStorage',
|
||||
'common/main/lib/util/Shortcuts',
|
||||
'common/main/lib/view/CopyWarningDialog',
|
||||
'common/forms/lib/view/modals',
|
||||
'documenteditor/forms/app/view/ApplicationView'
|
||||
], function (Viewport) {
|
||||
|
@ -185,6 +186,14 @@ define([
|
|||
config.msg = this.downloadErrorText;
|
||||
break;
|
||||
|
||||
case Asc.c_oAscError.ID.UplImageSize:
|
||||
config.msg = this.uploadImageSizeMessage;
|
||||
break;
|
||||
|
||||
case Asc.c_oAscError.ID.UplImageExt:
|
||||
config.msg = this.uploadImageExtMessage;
|
||||
break;
|
||||
|
||||
case Asc.c_oAscError.ID.ConvertationPassword:
|
||||
config.msg = this.errorFilePassProtect;
|
||||
break;
|
||||
|
@ -224,6 +233,19 @@ define([
|
|||
config.msg = this.errorLoadingFont;
|
||||
break;
|
||||
|
||||
case Asc.c_oAscError.ID.Warning:
|
||||
config.msg = this.errorConnectToServer;
|
||||
config.closable = false;
|
||||
break;
|
||||
|
||||
case Asc.c_oAscError.ID.KeyExpire:
|
||||
config.msg = this.errorTokenExpire;
|
||||
break;
|
||||
|
||||
case Asc.c_oAscError.ID.CoAuthoringDisconnect:
|
||||
config.msg = this.errorViewerDisconnect;
|
||||
break;
|
||||
|
||||
default:
|
||||
config.msg = (typeof id == 'string') ? id : this.errorDefaultMessage.replace('%1', id);
|
||||
break;
|
||||
|
@ -253,7 +275,14 @@ define([
|
|||
config.iconCls = 'warn';
|
||||
config.buttons = ['ok'];
|
||||
config.callback = _.bind(function(btn){
|
||||
if (id == Asc.c_oAscError.ID.EditingError) {
|
||||
if (id == Asc.c_oAscError.ID.Warning && btn == 'ok' && this.appOptions.canDownload) {
|
||||
Common.UI.Menu.Manager.hideAll();
|
||||
var me = this;
|
||||
setTimeout(function() {
|
||||
$('button', me.view.btnOptions.cmpEl).click();
|
||||
}, 10);
|
||||
|
||||
} else if (id == Asc.c_oAscError.ID.EditingError) {
|
||||
Common.NotificationCenter.trigger('api:disconnect', true); // enable download and print
|
||||
}
|
||||
}, this);
|
||||
|
@ -398,6 +427,12 @@ define([
|
|||
}
|
||||
}
|
||||
|
||||
labelDocName = $('#title-doc-name');
|
||||
if (data.doc) {
|
||||
labelDocName.text(data.doc.title || '');
|
||||
this.embedConfig.docTitle = data.doc.title;
|
||||
}
|
||||
|
||||
this.api.asc_registerCallback('asc_onGetEditorPermissions', _.bind(this.onEditorPermissions, this));
|
||||
this.api.asc_registerCallback('asc_onRunAutostartMacroses', _.bind(this.onRunAutostartMacroses, this));
|
||||
this.api.asc_setDocInfo(docInfo);
|
||||
|
@ -405,12 +440,6 @@ define([
|
|||
this.api.asc_enableKeyEvents(true);
|
||||
|
||||
Common.Analytics.trackEvent('Load', 'Start');
|
||||
|
||||
labelDocName = $('#title-doc-name');
|
||||
if (data.doc) {
|
||||
labelDocName.text(data.doc.title || '');
|
||||
this.embedConfig.docTitle = data.doc.title;
|
||||
}
|
||||
},
|
||||
|
||||
onRunAutostartMacroses: function() {
|
||||
|
@ -486,6 +515,7 @@ define([
|
|||
this.api.asc_setRestriction(Asc.c_oAscRestrictionType.OnlyForms);
|
||||
this.api.asc_SetFastCollaborative(true);
|
||||
this.api.asc_setAutoSaveGap(1);
|
||||
this.api.SetCollaborativeMarksShowType(Asc.c_oAscCollaborativeMarksShowType.None);
|
||||
}
|
||||
|
||||
var $parent = labelDocName.parent();
|
||||
|
@ -1001,7 +1031,7 @@ define([
|
|||
this.hidePreloader();
|
||||
this.onLongActionEnd(Asc.c_oAscAsyncActionType['BlockInteraction'], LoadingDocument);
|
||||
|
||||
var zf = (this.appOptions.customization && this.appOptions.customization.zoom ? parseInt(this.appOptions.customization.zoom) : -2);
|
||||
var zf = (this.appOptions.customization && this.appOptions.customization.zoom ? parseInt(this.appOptions.customization.zoom) : 100);
|
||||
(zf == -1) ? this.api.zoomFitToPage() : ((zf == -2) ? this.api.zoomFitToWidth() : this.api.zoom(zf>0 ? zf : 100));
|
||||
|
||||
this.createDelayedElements();
|
||||
|
@ -1016,6 +1046,7 @@ define([
|
|||
this.api.asc_registerCallback('asc_onPrint', _.bind(this.onPrint, this));
|
||||
this.api.asc_registerCallback('asc_onPrintUrl', _.bind(this.onPrintUrl, this));
|
||||
this.api.asc_registerCallback('sync_onAllRequiredFormsFilled', _.bind(this.onFillRequiredFields, this));
|
||||
this.api.asc_registerCallback('asc_onContextMenu', _.bind(this.onContextMenu, this));
|
||||
if (this.appOptions.canFillForms) {
|
||||
this.api.asc_registerCallback('asc_onShowContentControlsActions', _.bind(this.onShowContentControlsActions, this));
|
||||
this.api.asc_registerCallback('asc_onHideContentControlsActions', _.bind(this.onHideContentControlsActions, this));
|
||||
|
@ -1306,6 +1337,128 @@ define([
|
|||
});
|
||||
},
|
||||
|
||||
onContextMenu: function(event){
|
||||
var me = this;
|
||||
_.delay(function(){
|
||||
if (event.get_Type() == 0) {
|
||||
me.api && me.appOptions.canFillForms && me.fillMenuProps(me.api.getSelectedElements(), event);
|
||||
}
|
||||
},10);
|
||||
},
|
||||
|
||||
showPopupMenu: function(menu, value, event){
|
||||
if (!_.isUndefined(menu) && menu !== null){
|
||||
Common.UI.Menu.Manager.hideAll();
|
||||
|
||||
var showPoint = [event.get_X(), event.get_Y()],
|
||||
menuContainer = this.boxSdk.find(Common.Utils.String.format('#menu-container-{0}', menu.id));
|
||||
|
||||
if (!menu.rendered) {
|
||||
// Prepare menu container
|
||||
if (menuContainer.length < 1) {
|
||||
menuContainer = $(Common.Utils.String.format('<div id="menu-container-{0}" style="position: absolute; z-index: 10000;"><div class="dropdown-toggle" data-toggle="dropdown"></div></div>', menu.id));
|
||||
this.boxSdk.append(menuContainer);
|
||||
}
|
||||
|
||||
menu.render(menuContainer);
|
||||
menu.cmpEl.attr({tabindex: "-1"});
|
||||
}
|
||||
|
||||
menuContainer.css({
|
||||
left: showPoint[0],
|
||||
top : showPoint[1]
|
||||
});
|
||||
|
||||
menu.show();
|
||||
|
||||
if (_.isFunction(menu.options.initMenu)) {
|
||||
menu.options.initMenu(value);
|
||||
menu.alignPosition();
|
||||
}
|
||||
_.delay(function() {
|
||||
menu.cmpEl.focus();
|
||||
}, 10);
|
||||
|
||||
this.currentMenu = menu;
|
||||
}
|
||||
},
|
||||
|
||||
fillMenuProps: function(selectedElements, event) {
|
||||
if (!selectedElements || !_.isArray(selectedElements)) return;
|
||||
|
||||
if (!this.textMenu) {
|
||||
this.textMenu = this.view.getContextMenu();
|
||||
this.textMenu.on('item:click', _.bind(this.onContextMenuClick, this));
|
||||
}
|
||||
|
||||
var menu_props = {},
|
||||
noobject = true;
|
||||
for (var i = 0; i <selectedElements.length; i++) {
|
||||
var elType = selectedElements[i].get_ObjectType();
|
||||
var elValue = selectedElements[i].get_ObjectValue();
|
||||
if (Asc.c_oAscTypeSelectElement.Image == elType) {
|
||||
//image
|
||||
menu_props.imgProps = {};
|
||||
menu_props.imgProps.value = elValue;
|
||||
menu_props.imgProps.locked = (elValue) ? elValue.get_Locked() : false;
|
||||
|
||||
var control_props = this.api.asc_IsContentControl() ? this.api.asc_GetContentControlProperties() : null,
|
||||
lock_type = (control_props) ? control_props.get_Lock() : Asc.c_oAscSdtLockType.Unlocked;
|
||||
menu_props.imgProps.content_locked = lock_type==Asc.c_oAscSdtLockType.SdtContentLocked || lock_type==Asc.c_oAscSdtLockType.ContentLocked;
|
||||
|
||||
noobject = false;
|
||||
} else if (Asc.c_oAscTypeSelectElement.Paragraph == elType) {
|
||||
menu_props.paraProps = {};
|
||||
menu_props.paraProps.value = elValue;
|
||||
menu_props.paraProps.locked = (elValue) ? elValue.get_Locked() : false;
|
||||
noobject = false;
|
||||
} else if (Asc.c_oAscTypeSelectElement.Header == elType) {
|
||||
menu_props.headerProps = {};
|
||||
menu_props.headerProps.locked = (elValue) ? elValue.get_Locked() : false;
|
||||
}
|
||||
}
|
||||
if (this.textMenu && !noobject) {
|
||||
var cancopy = this.api.can_CopyCut(),
|
||||
disabled = menu_props.paraProps && menu_props.paraProps.locked || menu_props.headerProps && menu_props.headerProps.locked ||
|
||||
menu_props.imgProps && (menu_props.imgProps.locked || menu_props.imgProps.content_locked);
|
||||
this.textMenu.items[0].setDisabled(!cancopy); // copy
|
||||
this.textMenu.items[1].setDisabled(disabled || !cancopy); // cut
|
||||
this.textMenu.items[2].setDisabled(disabled) // paste;
|
||||
this.textMenu.items[3].setVisible(this.appOptions.canPrint);
|
||||
this.textMenu.items[3].setDisabled(!cancopy);
|
||||
|
||||
this.showPopupMenu(this.textMenu, {}, event);
|
||||
}
|
||||
},
|
||||
|
||||
onContextMenuClick: function(menu, item, e) {
|
||||
switch (item.value) {
|
||||
case 'copy':
|
||||
case 'cut':
|
||||
case 'paste':
|
||||
if (this.api) {
|
||||
var res = (item.value == 'cut') ? this.api.Cut() : ((item.value == 'copy') ? this.api.Copy() : this.api.Paste());
|
||||
if (!res) {
|
||||
if (!Common.localStorage.getBool("de-forms-hide-copywarning")) {
|
||||
(new Common.Views.CopyWarningDialog({
|
||||
handler: function(dontshow) {
|
||||
if (dontshow) Common.localStorage.setItem("de-forms-hide-copywarning", 1);
|
||||
}
|
||||
})).show();
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'print':
|
||||
var printopt = new Asc.asc_CAdjustPrint();
|
||||
printopt.asc_setPrintType(Asc.c_oAscPrintType.Selection);
|
||||
var opts = new Asc.asc_CDownloadOptions(null, Common.Utils.isChrome || Common.Utils.isSafari || Common.Utils.isOpera || Common.Utils.isGecko && Common.Utils.firefoxVersion>86); // if isChrome or isSafari or isOpera == true use asc_onPrintUrl event
|
||||
opts.asc_setAdvancedOptions(printopt);
|
||||
this.api.asc_Print(opts);
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
||||
errorDefaultMessage : 'Error code: %1',
|
||||
unknownErrorText : 'Unknown error.',
|
||||
convertationTimeoutText : 'Conversion timeout exceeded.',
|
||||
|
@ -1349,7 +1502,12 @@ define([
|
|||
textBuyNow: 'Visit website',
|
||||
textNoLicenseTitle: 'License limit reached',
|
||||
textContactUs: 'Contact sales',
|
||||
errorLoadingFont: 'Fonts are not loaded.<br>Please contact your Document Server administrator.'
|
||||
errorLoadingFont: 'Fonts are not loaded.<br>Please contact your Document Server administrator.',
|
||||
errorConnectToServer: 'The document could not be saved. Please check connection settings or contact your administrator.<br>When you click the \'OK\' button, you will be prompted to download the document.',
|
||||
errorTokenExpire: 'The document security token has expired.<br>Please contact your Document Server administrator.',
|
||||
errorViewerDisconnect: 'Connection is lost. You can still view the document,<br>but will not be able to download or print until the connection is restored and page is reloaded.',
|
||||
uploadImageSizeMessage: 'Maximum image size limit exceeded.',
|
||||
uploadImageExtMessage: 'Unknown image format.'
|
||||
|
||||
}, DE.Controllers.ApplicationController));
|
||||
});
|
||||
|
|
|
@ -27,7 +27,6 @@ define([
|
|||
menu : this.mnuThemes = new Common.UI.Menu({
|
||||
cls: 'shifted-right',
|
||||
menuAlign: 'tl-tr',
|
||||
restoreHeight: true,
|
||||
items: []
|
||||
})
|
||||
},
|
||||
|
@ -87,6 +86,18 @@ define([
|
|||
return this;
|
||||
},
|
||||
|
||||
getContextMenu: function() {
|
||||
return new Common.UI.Menu({
|
||||
cls: 'shifted-right',
|
||||
items: [
|
||||
{ caption: this.textCut, value: 'cut', iconCls: 'mi-icon svg-icon cut' },
|
||||
{ caption: this.textCopy, value: 'copy', iconCls: 'mi-icon svg-icon copy' },
|
||||
{ caption: this.textPaste, value: 'paste', iconCls: 'mi-icon svg-icon paste' },
|
||||
{ caption: this.textPrintSel, value: 'print', iconCls: 'mi-icon svg-icon print' }
|
||||
]
|
||||
});
|
||||
},
|
||||
|
||||
txtDownload: 'Download',
|
||||
txtPrint: 'Print',
|
||||
txtShare: 'Share',
|
||||
|
@ -98,6 +109,11 @@ define([
|
|||
textNext: 'Next Field',
|
||||
textClear: 'Clear All Fields',
|
||||
textSubmit: 'Submit',
|
||||
txtTheme: 'Interface theme'
|
||||
txtTheme: 'Interface theme',
|
||||
textCut: 'Cut',
|
||||
textCopy: 'Copy',
|
||||
textPaste: 'Paste',
|
||||
textPrintSel: 'Print Selection'
|
||||
|
||||
}, DE.Views.ApplicationView || {}));
|
||||
});
|
|
@ -21,6 +21,12 @@
|
|||
--canvas-background: #555;
|
||||
}
|
||||
|
||||
.content-theme-dark {
|
||||
--skeleton-canvas-content-background: #3a3a3a;
|
||||
--skeleton-canvas-page-border: #2a2a2a;
|
||||
--skeleton-canvas-line: rgba(255,255,255,.05);
|
||||
}
|
||||
|
||||
.theme-classic-light {
|
||||
}
|
||||
|
||||
|
@ -88,17 +94,26 @@
|
|||
background: rgba(255, 255, 255, 0.2);
|
||||
}
|
||||
|
||||
.loadmask > .placeholder {
|
||||
background: #fbfbfb;
|
||||
.loadmask .placeholder-outer {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding-top: 56px;
|
||||
padding-right: 14px;
|
||||
}
|
||||
|
||||
.loadmask > .placeholder > .line {
|
||||
.loadmask .placeholder {
|
||||
background: #fff;
|
||||
background: var(--skeleton-canvas-content-background, #fff);
|
||||
width: 796px;
|
||||
margin: 59px auto;
|
||||
height: 100%;
|
||||
border: 1px solid #bbbec2;
|
||||
border: var(--scaled-one-px-value, 1px) solid var(--skeleton-canvas-page-border, #bbbec2);
|
||||
padding-top: 50px;
|
||||
}
|
||||
|
||||
.loadmask .placeholder > .line {
|
||||
height: 15px;
|
||||
margin: 30px;
|
||||
background: rgba(0,0,0,.05);
|
||||
margin: 30px 80px;
|
||||
background: var(--skeleton-canvas-line, rgba(0,0,0,.05));
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
|
||||
|
@ -137,7 +152,16 @@
|
|||
|
||||
<body class="embed-body">
|
||||
<script src="../../common/main/lib/util/htmlutils.js"></script>
|
||||
<div id="loading-mask" class="loadmask"><div class="brendpanel"><div><div class="brand-logo loading-logo"><img src=""></div><div class="doc-title"></div><div class="circle"></div></div></div><div class="placeholder"><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div></div></div>
|
||||
<div id="loading-mask" class="loadmask">
|
||||
<div class="brendpanel">
|
||||
<div><div class="brand-logo loading-logo"><img src=""></div><div class="doc-title"></div><div class="circle"></div></div>
|
||||
</div>
|
||||
<div class="placeholder-outer">
|
||||
<div class="placeholder">
|
||||
<div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var userAgent = navigator.userAgent.toLowerCase(),
|
||||
|
|
|
@ -12,6 +12,12 @@
|
|||
<!-- splash -->
|
||||
|
||||
<style type="text/css">
|
||||
.content-theme-dark {
|
||||
--skeleton-canvas-content-background: #3a3a3a;
|
||||
--skeleton-canvas-page-border: #2a2a2a;
|
||||
--skeleton-canvas-line: rgba(255,255,255,.05);
|
||||
}
|
||||
|
||||
.loadmask {
|
||||
left: 0;
|
||||
top: 0;
|
||||
|
@ -69,17 +75,27 @@
|
|||
background: rgba(255, 255, 255, 0.2);
|
||||
}
|
||||
|
||||
.loadmask > .placeholder {
|
||||
background: #fbfbfb;
|
||||
.loadmask .placeholder-outer {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding-top: 56px;
|
||||
padding-right: 14px;
|
||||
}
|
||||
|
||||
.loadmask > .placeholder > .line {
|
||||
.loadmask .placeholder {
|
||||
background: #fff;
|
||||
background: var(--skeleton-canvas-content-background, var(--canvas-content-background, #fff));
|
||||
width: 796px;
|
||||
margin: 59px auto;
|
||||
height: 100%;
|
||||
border: 1px solid #bbbec2;
|
||||
border: var(--scaled-one-px-value, 1px) solid var(--skeleton-canvas-page-border, var(--canvas-page-border, #bbbec2));
|
||||
padding-top: 50px;
|
||||
}
|
||||
|
||||
.loadmask .placeholder > .line {
|
||||
height: 15px;
|
||||
margin: 30px;
|
||||
margin: 30px 80px;
|
||||
background: rgba(0,0,0,.05);
|
||||
background: var(--skeleton-canvas-line, rgba(0,0,0,.05));
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
|
||||
|
@ -118,7 +134,16 @@
|
|||
|
||||
<body class="embed-body">
|
||||
<script src="../../../../../apps/common/main/lib/util/htmlutils.js?__inline=true"></script>
|
||||
<div id="loading-mask" class="loadmask"><div class="brendpanel"><div><div class="brand-logo loading-logo"><img src=""></div><div class="doc-title"></div><div class="circle"></div></div></div><div class="placeholder"><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div></div></div>
|
||||
<div id="loading-mask" class="loadmask">
|
||||
<div class="brendpanel">
|
||||
<div><div class="brand-logo loading-logo"><img src=""></div><div class="doc-title"></div><div class="circle"></div></div>
|
||||
</div>
|
||||
<div class="placeholder-outer">
|
||||
<div class="placeholder">
|
||||
<div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var userAgent = navigator.userAgent.toLowerCase(),
|
||||
|
@ -175,14 +200,19 @@
|
|||
|
||||
window.frameEditorId = params["frameEditorId"];
|
||||
window.parentOrigin = params["parentOrigin"];
|
||||
var elem = document.querySelector('.loading-logo');
|
||||
if (elem && (logo || logoDark)) {
|
||||
elem.style.backgroundImage= 'none';
|
||||
elem.style.width = 'auto';
|
||||
elem.style.height = 'auto';
|
||||
var img = document.querySelector('.loading-logo img');
|
||||
img && img.setAttribute('src', /theme-dark/.test(document.body.className) ? logoDark || logo : logo || logoDark);
|
||||
img.style.opacity = 1;
|
||||
|
||||
if (stopLoading) {
|
||||
document.body.removeChild(document.getElementById('loading-mask'));
|
||||
} else {
|
||||
var elem = document.querySelector('.loading-logo');
|
||||
if (elem && (logo || logoDark)) {
|
||||
elem.style.backgroundImage= 'none';
|
||||
elem.style.width = 'auto';
|
||||
elem.style.height = 'auto';
|
||||
var img = document.querySelector('.loading-logo img');
|
||||
img && img.setAttribute('src', /theme-dark/.test(document.body.className) ? logoDark || logo : logo || logoDark);
|
||||
img.style.opacity = 1;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
@ -214,17 +244,6 @@
|
|||
<span id="box-tools"></span>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
if (stopLoading) {
|
||||
document.body.removeChild(document.getElementById('loading-mask'));
|
||||
} else {
|
||||
var elem = document.querySelector('.loading-logo img');
|
||||
if (elem) {
|
||||
logo && (elem.setAttribute('src', logo));
|
||||
elem.style.opacity = 1;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
window.requireTimeourError = function(){
|
||||
var reqerr;
|
||||
|
|
|
@ -45,6 +45,12 @@
|
|||
"Common.UI.Window.textInformation": "Information",
|
||||
"Common.UI.Window.textWarning": "Warning",
|
||||
"Common.UI.Window.yesButtonText": "Yes",
|
||||
"Common.Views.CopyWarningDialog.textDontShow": "Don't show this message again",
|
||||
"Common.Views.CopyWarningDialog.textMsg": "Copy, cut and paste actions using context menu actions will be performed within this editor tab only.<br><br>To copy or paste to or from applications outside the editor tab use the following keyboard combinations:",
|
||||
"Common.Views.CopyWarningDialog.textTitle": "Copy, Cut and Paste Actions",
|
||||
"Common.Views.CopyWarningDialog.textToCopy": "for Copy",
|
||||
"Common.Views.CopyWarningDialog.textToCut": "for Cut",
|
||||
"Common.Views.CopyWarningDialog.textToPaste": "for Paste",
|
||||
"Common.Views.EmbedDialog.textHeight": "Height",
|
||||
"Common.Views.EmbedDialog.textTitle": "Embed",
|
||||
"Common.Views.EmbedDialog.textWidth": "Width",
|
||||
|
@ -59,6 +65,7 @@
|
|||
"DE.Controllers.ApplicationController.downloadErrorText": "Download failed.",
|
||||
"DE.Controllers.ApplicationController.downloadTextText": "Downloading document...",
|
||||
"DE.Controllers.ApplicationController.errorAccessDeny": "You are trying to perform an action you do not have rights for.<br>Please contact your Document Server administrator.",
|
||||
"DE.Controllers.ApplicationController.errorConnectToServer": "The document could not be saved. Please check connection settings or contact your administrator.<br>When you click the 'OK' button, you will be prompted to download the document.",
|
||||
"DE.Controllers.ApplicationController.errorDefaultMessage": "Error code: %1",
|
||||
"DE.Controllers.ApplicationController.errorEditingDownloadas": "An error occurred during the work with the document.<br>Use the 'Download as...' option to save the file backup copy to your computer hard drive.",
|
||||
"DE.Controllers.ApplicationController.errorFilePassProtect": "The file is password protected and cannot be opened.",
|
||||
|
@ -67,9 +74,11 @@
|
|||
"DE.Controllers.ApplicationController.errorLoadingFont": "Fonts are not loaded.<br>Please contact your Document Server administrator.",
|
||||
"DE.Controllers.ApplicationController.errorServerVersion": "The editor version has been updated. The page will be reloaded to apply the changes.",
|
||||
"DE.Controllers.ApplicationController.errorSubmit": "Submit failed.",
|
||||
"DE.Controllers.ApplicationController.errorTokenExpire": "The document security token has expired.<br>Please contact your Document Server administrator.",
|
||||
"DE.Controllers.ApplicationController.errorUpdateVersion": "The file version has been changed. The page will be reloaded.",
|
||||
"DE.Controllers.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.Controllers.ApplicationController.errorUserDrop": "The file cannot be accessed right now.",
|
||||
"DE.Controllers.ApplicationController.errorViewerDisconnect": "Connection is lost. You can still view the document,<br>but will not be able to download or print it until the connection is restored and page is reloaded.",
|
||||
"DE.Controllers.ApplicationController.notcriticalErrorTitle": "Warning",
|
||||
"DE.Controllers.ApplicationController.scriptLoadError": "The connection is too slow, some of the components could not be loaded. Please reload the page.",
|
||||
"DE.Controllers.ApplicationController.textAnonymous": "Anonymous",
|
||||
|
@ -90,6 +99,8 @@
|
|||
"DE.Controllers.ApplicationController.txtPressLink": "Press Ctrl and click link",
|
||||
"DE.Controllers.ApplicationController.unknownErrorText": "Unknown error.",
|
||||
"DE.Controllers.ApplicationController.unsupportedBrowserErrorText": "Your browser is not supported.",
|
||||
"DE.Controllers.ApplicationController.uploadImageExtMessage": "Unknown image format.",
|
||||
"DE.Controllers.ApplicationController.uploadImageSizeMessage": "The image is too big. The maximum size is 25 MB.",
|
||||
"DE.Controllers.ApplicationController.waitText": "Please, wait...",
|
||||
"DE.Controllers.ApplicationController.warnLicenseExceeded": "You've reached the limit for simultaneous connections to %1 editors. This document will be opened for viewing only.<br>Contact your administrator to learn more.",
|
||||
"DE.Controllers.ApplicationController.warnLicenseLimitedNoAccess": "License expired.<br>You have no access to document editing functionality.<br>Please contact your administrator.",
|
||||
|
@ -98,7 +109,11 @@
|
|||
"DE.Controllers.ApplicationController.warnNoLicense": "You've reached the limit for simultaneous connections to %1 editors. This document will be opened for viewing only.<br>Contact %1 sales team for personal upgrade terms.",
|
||||
"DE.Controllers.ApplicationController.warnNoLicenseUsers": "You've reached the user limit for %1 editors. Contact %1 sales team for personal upgrade terms.",
|
||||
"DE.Views.ApplicationView.textClear": "Clear All Fields",
|
||||
"DE.Views.ApplicationView.textCopy": "Copy",
|
||||
"DE.Views.ApplicationView.textCut": "Cut",
|
||||
"DE.Views.ApplicationView.textNext": "Next Field",
|
||||
"DE.Views.ApplicationView.textPaste": "Paste",
|
||||
"DE.Views.ApplicationView.textPrintSel": "Print Selection",
|
||||
"DE.Views.ApplicationView.textSubmit": "Submit",
|
||||
"DE.Views.ApplicationView.txtDownload": "Download",
|
||||
"DE.Views.ApplicationView.txtDownloadDocx": "Download as docx",
|
||||
|
|
|
@ -45,6 +45,12 @@
|
|||
"Common.UI.Window.textInformation": "Information",
|
||||
"Common.UI.Window.textWarning": "Attention",
|
||||
"Common.UI.Window.yesButtonText": "Oui",
|
||||
"Common.Views.CopyWarningDialog.textDontShow": "Ne plus afficher ce message",
|
||||
"Common.Views.CopyWarningDialog.textMsg": "Les fonctions de copier, couper et coller avec des commandes de menu contextuel ne peuvent être effectuées que dans cet onglet de l'éditeur.<br><br>Pour copier ou coller vers ou depuis des applications en dehors de l'onglet d'éditeur, utilisez les raccourcis clavier suivants :",
|
||||
"Common.Views.CopyWarningDialog.textTitle": "Fonctions de Copier, Couper et Coller",
|
||||
"Common.Views.CopyWarningDialog.textToCopy": "pour Copier",
|
||||
"Common.Views.CopyWarningDialog.textToCut": "pour Couper",
|
||||
"Common.Views.CopyWarningDialog.textToPaste": "pour Coller",
|
||||
"Common.Views.EmbedDialog.textHeight": "Hauteur",
|
||||
"Common.Views.EmbedDialog.textTitle": "Incorporer",
|
||||
"Common.Views.EmbedDialog.textWidth": "Largeur",
|
||||
|
@ -59,6 +65,7 @@
|
|||
"DE.Controllers.ApplicationController.downloadErrorText": "Échec du téléchargement.",
|
||||
"DE.Controllers.ApplicationController.downloadTextText": "Téléchargement du document...",
|
||||
"DE.Controllers.ApplicationController.errorAccessDeny": "Vous tentez d'exéсuter une action pour laquelle vous ne disposez pas des droits.<br>Veuillez contacter l'administrateur de Document Server.",
|
||||
"DE.Controllers.ApplicationController.errorConnectToServer": "Impossible d'enregistrer le document. Veuillez vérifier vos paramètres de connexion ou contactez l'administrateur.<br>Lorsque vous cliquez sur le bouton 'OK', vous serez invité à télécharger le document.",
|
||||
"DE.Controllers.ApplicationController.errorDefaultMessage": "Code d'erreur: %1",
|
||||
"DE.Controllers.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.Controllers.ApplicationController.errorFilePassProtect": "Le fichier est protégé par le mot de passe et ne peut pas être ouvert.",
|
||||
|
@ -67,9 +74,11 @@
|
|||
"DE.Controllers.ApplicationController.errorLoadingFont": "Les polices ne sont pas téléchargées.<br>Veuillez contacter l'administrateur de Document Server.",
|
||||
"DE.Controllers.ApplicationController.errorServerVersion": "La version de l'éditeur a été mise à jour. La page sera rechargée pour appliquer les modifications.",
|
||||
"DE.Controllers.ApplicationController.errorSubmit": "Échec de soumission",
|
||||
"DE.Controllers.ApplicationController.errorTokenExpire": "Le jeton de sécurité du document a expiré.<br>Veuillez contactez l'administrateur de Document Server.",
|
||||
"DE.Controllers.ApplicationController.errorUpdateVersion": "La version du fichier a été changée. La page sera rechargée.",
|
||||
"DE.Controllers.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.Controllers.ApplicationController.errorUserDrop": "Impossible d'accéder au fichier.",
|
||||
"DE.Controllers.ApplicationController.errorViewerDisconnect": "La connexion a été perdue. Vous pouvez toujours afficher le document,<br>mais vous ne pouvez pas le télécharger ou l'imprimer jusqu'à ce que la connexion soit rétablie et que la page soit actualisée.",
|
||||
"DE.Controllers.ApplicationController.notcriticalErrorTitle": "Avertissement",
|
||||
"DE.Controllers.ApplicationController.scriptLoadError": "La connexion est trop lente, certains éléments ne peuvent pas être chargés. Veuillez recharger la page.",
|
||||
"DE.Controllers.ApplicationController.textAnonymous": "Anonyme",
|
||||
|
@ -90,6 +99,8 @@
|
|||
"DE.Controllers.ApplicationController.txtPressLink": "Appuyez sur Ctrl et cliquez sur le lien",
|
||||
"DE.Controllers.ApplicationController.unknownErrorText": "Erreur inconnue.",
|
||||
"DE.Controllers.ApplicationController.unsupportedBrowserErrorText": "Votre navigateur n'est pas pris en charge.",
|
||||
"DE.Controllers.ApplicationController.uploadImageExtMessage": "Format d'image inconnu.",
|
||||
"DE.Controllers.ApplicationController.uploadImageSizeMessage": "L'image est trop grande. La taille limite est de 25 Mo.",
|
||||
"DE.Controllers.ApplicationController.waitText": "Veuillez patienter...",
|
||||
"DE.Controllers.ApplicationController.warnLicenseExceeded": "Vous avez dépassé le nombre maximal de connexions simultanées aux éditeurs %1. Ce document sera ouvert en mode lecture seule.<br>Veuillez contacter votre administrateur pour en savoir davantage.",
|
||||
"DE.Controllers.ApplicationController.warnLicenseLimitedNoAccess": "La licence est expirée.<br>Vous n'avez plus d'accès aux outils d'édition.<br>Veuillez contacter votre administrateur.",
|
||||
|
@ -98,7 +109,11 @@
|
|||
"DE.Controllers.ApplicationController.warnNoLicense": "Vous avez dépassé le nombre maximal de connexions simultanées aux éditeurs %1. Ce document sera ouvert en lecture seule.<br>Veuillez contacter le service des ventes %1 pour connaître les conditions de mise à niveau personnelle.",
|
||||
"DE.Controllers.ApplicationController.warnNoLicenseUsers": "Vous avez dépassé le nombre maximal d’utilisateurs des éditeurs %1. Veuillez contacter l’équipe des ventes %1 pour connaître les conditions de mise à niveau personnelle.",
|
||||
"DE.Views.ApplicationView.textClear": "Effacer tous les champs",
|
||||
"DE.Views.ApplicationView.textCopy": "Copier",
|
||||
"DE.Views.ApplicationView.textCut": "Couper",
|
||||
"DE.Views.ApplicationView.textNext": "Champ suivant",
|
||||
"DE.Views.ApplicationView.textPaste": "Coller",
|
||||
"DE.Views.ApplicationView.textPrintSel": "Imprimer la sélection",
|
||||
"DE.Views.ApplicationView.textSubmit": "Soumettre ",
|
||||
"DE.Views.ApplicationView.txtDownload": "Télécharger",
|
||||
"DE.Views.ApplicationView.txtDownloadDocx": "Télécharger en tant que docx",
|
||||
|
|
|
@ -45,6 +45,12 @@
|
|||
"Common.UI.Window.textInformation": "Informații",
|
||||
"Common.UI.Window.textWarning": "Avertisment",
|
||||
"Common.UI.Window.yesButtonText": "Da",
|
||||
"Common.Views.CopyWarningDialog.textDontShow": "Nu afișa acest mesaj din nou",
|
||||
"Common.Views.CopyWarningDialog.textMsg": "Acțiuni de copiere, decupare și lipire din meniul contextual sunt disponibile numai în acestă filă a editorului.<br><br>Pentru copiere sau lipire în sau din aplicațiile externe utilizați următoarele comenzi rapide de la tastatură:",
|
||||
"Common.Views.CopyWarningDialog.textTitle": "Comenzile de copiere, decupare și lipire",
|
||||
"Common.Views.CopyWarningDialog.textToCopy": "pentru Copiere",
|
||||
"Common.Views.CopyWarningDialog.textToCut": "pentru Decupare",
|
||||
"Common.Views.CopyWarningDialog.textToPaste": "pentru Lipire",
|
||||
"Common.Views.EmbedDialog.textHeight": "Înălțime",
|
||||
"Common.Views.EmbedDialog.textTitle": "Încorporare",
|
||||
"Common.Views.EmbedDialog.textWidth": "Lățime",
|
||||
|
@ -59,6 +65,7 @@
|
|||
"DE.Controllers.ApplicationController.downloadErrorText": "Descărcare eșuată.",
|
||||
"DE.Controllers.ApplicationController.downloadTextText": "Descărcarea documentului...",
|
||||
"DE.Controllers.ApplicationController.errorAccessDeny": "Nu aveți dreptul să efectuați acțiunea pe care doriți.<br>Contactați administratorul dumneavoastră de Server Documente.",
|
||||
"DE.Controllers.ApplicationController.errorConnectToServer": "Salvarea documentului nu poate fi finalizată. Verificați configurarea conexeunii sau contactaţi administratorul dumneavoastră de reţea<br>Când faceți clic pe OK, vi se va solicita să descărcați documentul.",
|
||||
"DE.Controllers.ApplicationController.errorDefaultMessage": "Codul de eroare: %1",
|
||||
"DE.Controllers.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.Controllers.ApplicationController.errorFilePassProtect": "Fișierul este protejat cu parolă și deaceea nu poate fi deschis.",
|
||||
|
@ -67,9 +74,11 @@
|
|||
"DE.Controllers.ApplicationController.errorLoadingFont": "Fonturile nu sunt încărcate.<br>Contactați administratorul dvs de Server Documente.",
|
||||
"DE.Controllers.ApplicationController.errorServerVersion": "Editorul a fost actualizat. Pagina va fi reîmprospătată pentru a aplica această actualizare.",
|
||||
"DE.Controllers.ApplicationController.errorSubmit": "Remiterea eșuată.",
|
||||
"DE.Controllers.ApplicationController.errorTokenExpire": "Token de securitate din document a expirat.<br>Contactați administratorul dvs. de Server Documente.",
|
||||
"DE.Controllers.ApplicationController.errorUpdateVersion": "Versiunea fișierului s-a modificat. Pagina va fi reîmprospătată.",
|
||||
"DE.Controllers.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.Controllers.ApplicationController.errorUserDrop": "Fișierul nu poate fi accesat deocamdată.",
|
||||
"DE.Controllers.ApplicationController.errorViewerDisconnect": "Conexiunea a fost pierdută. Încă mai puteți vizualiza documentul,<br>dar nu și să-l descărcați sau imprimați până când conexiunea se restabilește și pagina se reîmprospătează.",
|
||||
"DE.Controllers.ApplicationController.notcriticalErrorTitle": "Avertisment",
|
||||
"DE.Controllers.ApplicationController.scriptLoadError": "Conexeunea e prea lentă și unele elemente nu se încarcă. Încercați să reîmprospătati pagina.",
|
||||
"DE.Controllers.ApplicationController.textAnonymous": "Anonim",
|
||||
|
@ -90,6 +99,8 @@
|
|||
"DE.Controllers.ApplicationController.txtPressLink": "Apăsați Ctrl și faceți clic pe linkul",
|
||||
"DE.Controllers.ApplicationController.unknownErrorText": "Eroare necunoscută.",
|
||||
"DE.Controllers.ApplicationController.unsupportedBrowserErrorText": "Browserul nu este compatibil.",
|
||||
"DE.Controllers.ApplicationController.uploadImageExtMessage": "Format de imagine nerecunoscut.",
|
||||
"DE.Controllers.ApplicationController.uploadImageSizeMessage": "Imaginea este prea mare. Limita de dimensiune este de 25 MB.",
|
||||
"DE.Controllers.ApplicationController.waitText": "Vă rugăm să așteptați...",
|
||||
"DE.Controllers.ApplicationController.warnLicenseExceeded": "Ați atins numărul maxim de conexiuni simultane la %1 de editoare. Documentul este disponibil numai pentru vizualizare.<br>Pentru detalii, contactați administratorul dvs.",
|
||||
"DE.Controllers.ApplicationController.warnLicenseLimitedNoAccess": "Licența dvs. a expirat.<br>Nu aveți acces la funcții de editare a documentului.<br>Contactați administratorul dvs. de rețeea.",
|
||||
|
@ -98,7 +109,11 @@
|
|||
"DE.Controllers.ApplicationController.warnNoLicense": "Ați atins numărul maxim de conexiuni simultane la %1 de editoare. Documentul este disponibil numai pentru vizualizare.<br>Contactați %1 Departamentul de Vânzări pentru acordarea condițiilor personale de licențiere.",
|
||||
"DE.Controllers.ApplicationController.warnNoLicenseUsers": "Ați atins numărul maxim de utilizatori ai %1 editoare. Contactați Grup Vânzări %1 pentru acordarea condițiilor personale de licențiere.",
|
||||
"DE.Views.ApplicationView.textClear": "Goleşte toate câmpurile",
|
||||
"DE.Views.ApplicationView.textCopy": "Copiere",
|
||||
"DE.Views.ApplicationView.textCut": "Decupare",
|
||||
"DE.Views.ApplicationView.textNext": "Câmpul următor",
|
||||
"DE.Views.ApplicationView.textPaste": "Lipire",
|
||||
"DE.Views.ApplicationView.textPrintSel": "Imprimare selecție",
|
||||
"DE.Views.ApplicationView.textSubmit": "Remitere",
|
||||
"DE.Views.ApplicationView.txtDownload": "Descărcare",
|
||||
"DE.Views.ApplicationView.txtDownloadDocx": "Descărcare ca docx",
|
||||
|
|
|
@ -45,6 +45,12 @@
|
|||
"Common.UI.Window.textInformation": "Информация",
|
||||
"Common.UI.Window.textWarning": "Предупреждение",
|
||||
"Common.UI.Window.yesButtonText": "Да",
|
||||
"Common.Views.CopyWarningDialog.textDontShow": "Больше не показывать это сообщение",
|
||||
"Common.Views.CopyWarningDialog.textMsg": "Операции копирования, вырезания и вставки можно выполнить с помощью команд контекстного меню только в этой вкладке редактора.<br><br>Для копирования в другие приложения и вставки из них используйте следующие сочетания клавиш:",
|
||||
"Common.Views.CopyWarningDialog.textTitle": "Операции копирования, вырезания и вставки",
|
||||
"Common.Views.CopyWarningDialog.textToCopy": "для копирования",
|
||||
"Common.Views.CopyWarningDialog.textToCut": "для вырезания",
|
||||
"Common.Views.CopyWarningDialog.textToPaste": "для вставки",
|
||||
"Common.Views.EmbedDialog.textHeight": "Высота",
|
||||
"Common.Views.EmbedDialog.textTitle": "Встроить",
|
||||
"Common.Views.EmbedDialog.textWidth": "Ширина",
|
||||
|
@ -59,6 +65,7 @@
|
|||
"DE.Controllers.ApplicationController.downloadErrorText": "Загрузка не удалась.",
|
||||
"DE.Controllers.ApplicationController.downloadTextText": "Загрузка документа...",
|
||||
"DE.Controllers.ApplicationController.errorAccessDeny": "Вы пытаетесь выполнить действие, на которое у вас нет прав.<br>Пожалуйста, обратитесь к администратору Сервера документов.",
|
||||
"DE.Controllers.ApplicationController.errorConnectToServer": "Не удается сохранить документ. Проверьте параметры подключения или обратитесь к вашему администратору.<br>Когда вы нажмете на кнопку 'OK', вам будет предложено скачать документ.",
|
||||
"DE.Controllers.ApplicationController.errorDefaultMessage": "Код ошибки: %1",
|
||||
"DE.Controllers.ApplicationController.errorEditingDownloadas": "В ходе работы с документом произошла ошибка.<br>Используйте опцию 'Скачать как...', чтобы сохранить резервную копию файла на жесткий диск компьютера.",
|
||||
"DE.Controllers.ApplicationController.errorFilePassProtect": "Файл защищен паролем и не может быть открыт.",
|
||||
|
@ -67,9 +74,11 @@
|
|||
"DE.Controllers.ApplicationController.errorLoadingFont": "Шрифты не загружены.<br>Пожалуйста, обратитесь к администратору Сервера документов.",
|
||||
"DE.Controllers.ApplicationController.errorServerVersion": "Версия редактора была обновлена. Страница будет перезагружена, чтобы применить изменения.",
|
||||
"DE.Controllers.ApplicationController.errorSubmit": "Не удалось отправить.",
|
||||
"DE.Controllers.ApplicationController.errorTokenExpire": "Истек срок действия токена безопасности документа.<br>Пожалуйста, обратитесь к администратору Сервера документов.",
|
||||
"DE.Controllers.ApplicationController.errorUpdateVersion": "Версия файла была изменена. Страница будет перезагружена.",
|
||||
"DE.Controllers.ApplicationController.errorUpdateVersionOnDisconnect": "Подключение к Интернету было восстановлено, и версия файла изменилась.<br>Прежде чем продолжить работу, надо скачать файл или скопировать его содержимое, чтобы обеспечить сохранность данных, а затем перезагрузить страницу.",
|
||||
"DE.Controllers.ApplicationController.errorUserDrop": "В настоящий момент файл недоступен.",
|
||||
"DE.Controllers.ApplicationController.errorViewerDisconnect": "Подключение прервано. Вы по-прежнему можете просматривать документ,<br>но не сможете скачать или напечатать его до восстановления подключения и обновления страницы.",
|
||||
"DE.Controllers.ApplicationController.notcriticalErrorTitle": "Внимание",
|
||||
"DE.Controllers.ApplicationController.scriptLoadError": "Слишком медленное подключение, некоторые компоненты не удалось загрузить. Пожалуйста, обновите страницу.",
|
||||
"DE.Controllers.ApplicationController.textAnonymous": "Анонимный пользователь",
|
||||
|
@ -90,6 +99,8 @@
|
|||
"DE.Controllers.ApplicationController.txtPressLink": "Нажмите CTRL и щелкните по ссылке",
|
||||
"DE.Controllers.ApplicationController.unknownErrorText": "Неизвестная ошибка.",
|
||||
"DE.Controllers.ApplicationController.unsupportedBrowserErrorText": "Ваш браузер не поддерживается.",
|
||||
"DE.Controllers.ApplicationController.uploadImageExtMessage": "Неизвестный формат изображения.",
|
||||
"DE.Controllers.ApplicationController.uploadImageSizeMessage": "Слишком большое изображение. Максимальный размер - 25 MB.",
|
||||
"DE.Controllers.ApplicationController.waitText": "Пожалуйста, подождите...",
|
||||
"DE.Controllers.ApplicationController.warnLicenseExceeded": "Вы достигли лимита на одновременные подключения к редакторам %1. Этот документ будет открыт только на просмотр.<br>Свяжитесь с администратором, чтобы узнать больше.",
|
||||
"DE.Controllers.ApplicationController.warnLicenseLimitedNoAccess": "Истек срок действия лицензии.<br>Нет доступа к функциональности редактирования документов.<br>Пожалуйста, обратитесь к администратору.",
|
||||
|
@ -98,7 +109,11 @@
|
|||
"DE.Controllers.ApplicationController.warnNoLicense": "Вы достигли лимита на одновременные подключения к редакторам %1. Этот документ будет открыт на просмотр.<br>Напишите в отдел продаж %1, чтобы обсудить индивидуальные условия лицензирования.",
|
||||
"DE.Controllers.ApplicationController.warnNoLicenseUsers": "Вы достигли лимита на количество пользователей редакторов %1. Напишите в отдел продаж %1, чтобы обсудить индивидуальные условия обновления.",
|
||||
"DE.Views.ApplicationView.textClear": "Очистить все поля",
|
||||
"DE.Views.ApplicationView.textCopy": "Копировать",
|
||||
"DE.Views.ApplicationView.textCut": "Вырезать",
|
||||
"DE.Views.ApplicationView.textNext": "Следующее поле",
|
||||
"DE.Views.ApplicationView.textPaste": "Вставить",
|
||||
"DE.Views.ApplicationView.textPrintSel": "Напечатать выделенное",
|
||||
"DE.Views.ApplicationView.textSubmit": "Отправить",
|
||||
"DE.Views.ApplicationView.txtDownload": "Скачать файл",
|
||||
"DE.Views.ApplicationView.txtDownloadDocx": "Скачать как docx",
|
||||
|
|
|
@ -98,6 +98,9 @@ define([
|
|||
'forms:goto': this.onGoTo,
|
||||
'forms:submit': this.onSubmitClick,
|
||||
'forms:save': this.onSaveFormClick
|
||||
},
|
||||
'Toolbar': {
|
||||
'tab:active': this.onActiveTab
|
||||
}
|
||||
});
|
||||
},
|
||||
|
@ -188,6 +191,11 @@ define([
|
|||
oPr = new AscCommon.CSdtTextFormPr();
|
||||
this.api.asc_AddContentControlTextForm(oPr, oFormPr);
|
||||
}
|
||||
|
||||
var me = this;
|
||||
setTimeout(function() {
|
||||
me.showSaveFormTip();
|
||||
}, 500);
|
||||
Common.NotificationCenter.trigger('edit:complete', this.toolbar);
|
||||
},
|
||||
|
||||
|
@ -385,6 +393,35 @@ define([
|
|||
});
|
||||
tip.show();
|
||||
}
|
||||
},
|
||||
|
||||
showSaveFormTip: function() {
|
||||
if (this.view.btnSaveForm && !Common.localStorage.getItem("de-hide-saveform-tip") && !this.tipSaveForm) {
|
||||
var me = this;
|
||||
me.tipSaveForm = new Common.UI.SynchronizeTip({
|
||||
extCls: 'colored',
|
||||
placement: 'bottom-right',
|
||||
target: this.view.btnSaveForm.$el,
|
||||
text: this.view.tipSaveForm,
|
||||
showLink: false,
|
||||
closable: false,
|
||||
showButton: true,
|
||||
textButton: this.view.textGotIt
|
||||
});
|
||||
me.tipSaveForm.on({
|
||||
'buttonclick': function() {
|
||||
Common.localStorage.setItem("de-hide-saveform-tip", 1);
|
||||
me.tipSaveForm.close();
|
||||
}
|
||||
});
|
||||
me.tipSaveForm.show();
|
||||
}
|
||||
},
|
||||
|
||||
onActiveTab: function(tab) {
|
||||
if (tab !== 'forms') {
|
||||
this.tipSaveForm && this.tipSaveForm.close();
|
||||
}
|
||||
}
|
||||
|
||||
}, DE.Controllers.FormsTab || {}));
|
||||
|
|
|
@ -1009,11 +1009,6 @@ define([
|
|||
text = this.applyChangesTextText;
|
||||
break;
|
||||
|
||||
case Asc.c_oAscAsyncAction['PrepareToSave']:
|
||||
title = this.savePreparingText;
|
||||
text = this.savePreparingTitle;
|
||||
break;
|
||||
|
||||
case Asc.c_oAscAsyncAction['MailMergeLoadFile']:
|
||||
title = this.mailMergeLoadFileText;
|
||||
text = this.mailMergeLoadFileTitle;
|
||||
|
@ -2720,8 +2715,6 @@ define([
|
|||
printTextText: 'Printing document...',
|
||||
uploadImageTitleText: 'Uploading Image',
|
||||
uploadImageTextText: 'Uploading image...',
|
||||
savePreparingText: 'Preparing to save',
|
||||
savePreparingTitle: 'Preparing to save. Please wait...',
|
||||
uploadImageSizeMessage: 'Maximum image size limit exceeded.',
|
||||
uploadImageExtMessage: 'Unknown image format.',
|
||||
uploadImageFileCountMessage: 'No images uploaded.',
|
||||
|
|
|
@ -205,6 +205,8 @@ define([
|
|||
this._settings[settingsType].props = control_props;
|
||||
this._settings[settingsType].locked = control_lock;
|
||||
this._settings[settingsType].hidden = 0;
|
||||
if (control_props.get_FormPr().get_Fixed())
|
||||
this._settings[Common.Utils.documentSettingsType.TextArt].hidden = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -3191,7 +3191,7 @@ define([
|
|||
|
||||
me.toolbar.render(_.extend({isCompactView: compactview}, config));
|
||||
|
||||
var tab = {action: 'review', caption: me.toolbar.textTabCollaboration, layoutname: 'toolbar-collaboration'};
|
||||
var tab = {action: 'review', caption: me.toolbar.textTabCollaboration, dataHintTitle: 'U', layoutname: 'toolbar-collaboration'};
|
||||
var $panel = me.application.getController('Common.Controllers.ReviewChanges').createToolbarPanel();
|
||||
if ( $panel ) {
|
||||
me.toolbar.addTab(tab, $panel, 5);
|
||||
|
@ -3212,12 +3212,13 @@ define([
|
|||
|
||||
// move 'paste' button to the container instead of 'undo' and 'redo'
|
||||
me.toolbar.btnPaste.$el.detach().appendTo($box);
|
||||
me.toolbar.btnPaste.$el.find('button').attr('data-hint-direction', 'bottom');
|
||||
me.toolbar.btnCopy.$el.removeClass('split');
|
||||
}
|
||||
|
||||
if ( config.isDesktopApp ) {
|
||||
if ( config.canProtect ) {
|
||||
tab = {action: 'protect', caption: me.toolbar.textTabProtect, layoutname: 'toolbar-protect'};
|
||||
tab = {action: 'protect', caption: me.toolbar.textTabProtect, dataHintTitle: 'T', layoutname: 'toolbar-protect'};
|
||||
$panel = me.getApplication().getController('Common.Controllers.Protection').createToolbarPanel();
|
||||
|
||||
if ($panel) me.toolbar.addTab(tab, $panel, 6);
|
||||
|
@ -3230,7 +3231,7 @@ define([
|
|||
}
|
||||
if ( config.isEdit && config.canFeatureContentControl || config.isRestrictedEdit && config.canFillForms ) {
|
||||
if (config.canFeatureForms) {
|
||||
tab = {caption: me.textTabForms, action: 'forms'};
|
||||
tab = {caption: me.textTabForms, action: 'forms', dataHintTitle: 'M'};
|
||||
var forms = me.getApplication().getController('FormsTab');
|
||||
forms.setApi(me.api).setConfig({toolbar: me, config: config});
|
||||
$panel = forms.createToolbarPanel();
|
||||
|
|
|
@ -251,7 +251,7 @@ define([
|
|||
mnuitemHideRulers.hide();
|
||||
|
||||
me.header.menuItemsDarkMode = new Common.UI.MenuItem({
|
||||
caption: 'Dark mode',
|
||||
caption: me.txtDarkMode,
|
||||
checkable: true,
|
||||
checked: Common.UI.Themes.isContentThemeDark(),
|
||||
value: 'mode:dark'
|
||||
|
@ -273,7 +273,7 @@ define([
|
|||
|
||||
me.header.mnuZoom = new Common.UI.MenuItem({
|
||||
template: _.template([
|
||||
'<div id="hdr-menu-zoom" class="menu-zoom" style="height: 25px;" ',
|
||||
'<div id="hdr-menu-zoom" class="menu-zoom" style="height: 26px;" ',
|
||||
'<% if(!_.isUndefined(options.stopPropagation)) { %>',
|
||||
'data-stopPropagation="true"',
|
||||
'<% } %>', '>',
|
||||
|
@ -378,7 +378,7 @@ define([
|
|||
menuItem.setVisible(current_dark);
|
||||
menuItem.$el.prev('.divider')[current_dark ? 'show' : 'hide']();
|
||||
|
||||
menuItem.setChecked(current_dark);
|
||||
menuItem.setChecked(Common.UI.Themes.isContentThemeDark());
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -453,6 +453,7 @@ define([
|
|||
},
|
||||
|
||||
textFitPage: 'Fit to Page',
|
||||
textFitWidth: 'Fit to Width'
|
||||
textFitWidth: 'Fit to Width',
|
||||
txtDarkMode: 'Dark mode'
|
||||
}, DE.Controllers.Viewport));
|
||||
});
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
<table cols="1">
|
||||
<tr>
|
||||
<tr class="no-form">
|
||||
<td>
|
||||
<label class="header"><%= scope.strFill %></label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<tr class="no-form">
|
||||
<td class="padding-small">
|
||||
<div id="shape-combo-fill-src" style="width: 100%;"></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<tr class="no-form">
|
||||
<td>
|
||||
<div id="shape-panel-color-fill" class="padding-small" style="width: 100%;">
|
||||
<div id="shape-back-color-btn" style=""></div>
|
||||
|
@ -99,7 +99,7 @@
|
|||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<tr class="no-form">
|
||||
<td>
|
||||
<div class="padding-small" id="shape-panel-transparent-fill" style="width: 100%;">
|
||||
<label class="header" style="display:block;"><%= scope.strTransparency %></label>
|
||||
|
@ -112,17 +112,17 @@
|
|||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<tr class="no-form">
|
||||
<td class="padding-small">
|
||||
<div class="separator horizontal"></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<tr class="no-form">
|
||||
<td>
|
||||
<label class="header"><%= scope.strStroke %></label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<tr class="no-form">
|
||||
<td class="padding-small">
|
||||
<div style="display:inline-block;width:100px;vertical-align: middle;">
|
||||
<label class="input-label" style=""><%= scope.strSize %></label>
|
||||
|
@ -134,7 +134,7 @@
|
|||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<tr class="no-form">
|
||||
<td class="padding-small">
|
||||
<div style="display:inline-block;width:100px;vertical-align: middle;">
|
||||
<label class="input-label" style=""><%= scope.strType %></label>
|
||||
|
@ -142,7 +142,7 @@
|
|||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="shape-only shape-rotation">
|
||||
<tr class="shape-only-separator">
|
||||
<td class="padding-small">
|
||||
<div class="separator horizontal"></div>
|
||||
</td>
|
||||
|
@ -203,12 +203,12 @@
|
|||
<div id="shape-btn-change" style="display: inline-block; float:right;"></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<tr class="no-form">
|
||||
<td class="padding-small" colspan=2>
|
||||
<div class="separator horizontal"></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<tr class="no-form">
|
||||
<td class="padding-small" colspan=2>
|
||||
<div id="shape-checkbox-shadow"></div>
|
||||
</td>
|
||||
|
|
|
@ -555,8 +555,11 @@ define([ 'text!documenteditor/main/app/template/ControlSettingsDialog.template',
|
|||
if (this.btnColor.isAutoColor()) {
|
||||
props.put_Color(null);
|
||||
} else {
|
||||
var color = Common.Utils.ThemeColor.getRgbColor(this.colors.getColor());
|
||||
props.put_Color(color.get_r(), color.get_g(), color.get_b());
|
||||
var color = this.colors.getColor() || this.btnColor.color;
|
||||
if (color) {
|
||||
color = Common.Utils.ThemeColor.getRgbColor(color);
|
||||
props.put_Color(color.get_r(), color.get_g(), color.get_b());
|
||||
}
|
||||
}
|
||||
|
||||
var lock = Asc.c_oAscSdtLockType.Unlocked;
|
||||
|
@ -665,8 +668,11 @@ define([ 'text!documenteditor/main/app/template/ControlSettingsDialog.template',
|
|||
if (this.btnColor.isAutoColor()) {
|
||||
props.put_Color(null);
|
||||
} else {
|
||||
var color = Common.Utils.ThemeColor.getRgbColor(this.colors.getColor());
|
||||
props.put_Color(color.get_r(), color.get_g(), color.get_b());
|
||||
var color = this.colors.getColor() || this.btnColor.color;
|
||||
if (color) {
|
||||
color = Common.Utils.ThemeColor.getRgbColor(color);
|
||||
props.put_Color(color.get_r(), color.get_g(), color.get_b());
|
||||
}
|
||||
}
|
||||
this.api.asc_SetContentControlProperties(props, null, true);
|
||||
}
|
||||
|
|
|
@ -101,7 +101,8 @@ define([
|
|||
canFocused: false,
|
||||
dataHint: 1,
|
||||
dataHintDirection: 'left-top',
|
||||
dataHintOffset: [2, 14]
|
||||
dataHintOffset: [2, 14],
|
||||
dataHintTitle: 'S'
|
||||
});
|
||||
|
||||
if ( !!this.options.miSave ) {
|
||||
|
@ -156,7 +157,8 @@ define([
|
|||
canFocused: false,
|
||||
dataHint: 1,
|
||||
dataHintDirection: 'left-top',
|
||||
dataHintOffset: [2, 14]
|
||||
dataHintOffset: [2, 14],
|
||||
dataHintTitle: 'P'
|
||||
});
|
||||
|
||||
this.miRename = new Common.UI.MenuItem({
|
||||
|
@ -453,6 +455,21 @@ define([
|
|||
this.panels['help'] = ((new DE.Views.FileMenuPanels.Help({menu: this})).render());
|
||||
this.panels['help'].setLangConfig(this.mode.lang);
|
||||
}
|
||||
|
||||
if ( Common.Controllers.Desktop.isActive() ) {
|
||||
$('<li class="devider" />' +
|
||||
'<li id="fm-btn-exit" class="fm-btn"/>').insertAfter($('#fm-btn-back', this.$el));
|
||||
this.items.push(
|
||||
new Common.UI.MenuItem({
|
||||
el : $('#fm-btn-exit', this.$el),
|
||||
action : 'app:exit',
|
||||
caption : 'Exit',
|
||||
canFocused: false,
|
||||
dataHint: 1,
|
||||
dataHintDirection: 'left-top',
|
||||
dataHintOffset: [2, 14]
|
||||
}));
|
||||
}
|
||||
},
|
||||
|
||||
setMode: function(mode, delay) {
|
||||
|
|
|
@ -638,13 +638,16 @@ define([
|
|||
},
|
||||
|
||||
onGroupKeyChanged: function(combo, record) {
|
||||
if (this.api && !this._noApply) {
|
||||
if (this.api && !this._noApply && record.value!=='') {
|
||||
var props = this._originalProps || new AscCommon.CContentControlPr();
|
||||
var specProps = this._originalCheckProps || new AscCommon.CSdtCheckBoxPr();
|
||||
specProps.put_GroupKey(record.value);
|
||||
props.put_CheckBoxPr(specProps);
|
||||
this.api.asc_SetContentControlProperties(props, this.internalId);
|
||||
this.fireEvent('editcomplete', this);
|
||||
} else {
|
||||
this.cmbGroupKey.setValue(this._state.groupKey ? this._state.groupKey : '');
|
||||
this.fireEvent('editcomplete', this);
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
@ -269,6 +269,7 @@ define([
|
|||
cls: 'btn-toolbar x-huge icon-top',
|
||||
iconCls: 'toolbar__icon previous-field',
|
||||
caption: this.capBtnPrev,
|
||||
disabled: true,
|
||||
dataHint: '1',
|
||||
dataHintDirection: 'bottom',
|
||||
dataHintOffset: 'small'
|
||||
|
@ -279,6 +280,7 @@ define([
|
|||
cls: 'btn-toolbar x-huge icon-top',
|
||||
iconCls: 'toolbar__icon next-field',
|
||||
caption: this.capBtnNext,
|
||||
disabled: true,
|
||||
dataHint: '1',
|
||||
dataHintDirection: 'bottom',
|
||||
dataHintOffset: 'small'
|
||||
|
@ -290,6 +292,7 @@ define([
|
|||
cls: 'btn-toolbar x-huge icon-top',
|
||||
iconCls: 'toolbar__icon submit-form',
|
||||
caption: this.capBtnSubmit,
|
||||
disabled: true,
|
||||
dataHint: '1',
|
||||
dataHintDirection: 'bottom',
|
||||
dataHintOffset: 'small'
|
||||
|
@ -301,6 +304,7 @@ define([
|
|||
cls: 'btn-toolbar x-huge icon-top',
|
||||
iconCls: 'toolbar__icon save-form',
|
||||
caption: this.capBtnSaveForm,
|
||||
disabled: true,
|
||||
dataHint: '1',
|
||||
dataHintDirection: 'bottom',
|
||||
dataHintOffset: 'small'
|
||||
|
|
|
@ -1385,14 +1385,21 @@ define([ 'text!documenteditor/main/app/template/ImageSettingsAdvanced.templat
|
|||
var shapeprops = props.get_ShapeProperties();
|
||||
var chartprops = props.get_ChartProperties();
|
||||
var pluginGuid = props.asc_getPluginGuid();
|
||||
var control_props = this.api && this.api.asc_IsContentControl() ? this.api.asc_GetContentControlProperties() : null,
|
||||
fixed_size = false;
|
||||
if (control_props) {
|
||||
var spectype = control_props.get_SpecificType();
|
||||
fixed_size = (spectype==Asc.c_oAscContentControlSpecificType.CheckBox || spectype==Asc.c_oAscContentControlSpecificType.ComboBox ||
|
||||
spectype==Asc.c_oAscContentControlSpecificType.DropDownList || spectype==Asc.c_oAscContentControlSpecificType.None) &&
|
||||
control_props.get_FormPr() && control_props.get_FormPr().get_Fixed();
|
||||
}
|
||||
|
||||
this.btnOriginalSize.setVisible(!(shapeprops || chartprops));
|
||||
this.btnOriginalSize.setDisabled(props.get_ImageUrl()===null || props.get_ImageUrl()===undefined);
|
||||
this.btnsCategory[5].setVisible(shapeprops!==null && !shapeprops.get_FromChart()); // Shapes
|
||||
this.btnsCategory[6].setVisible(shapeprops!==null && !shapeprops.get_FromChart()); // Margins
|
||||
this.btnsCategory[5].setVisible(shapeprops!==null && !shapeprops.get_FromChart() && !fixed_size); // Shapes
|
||||
this.btnsCategory[6].setVisible(shapeprops!==null && !shapeprops.get_FromChart() && !fixed_size); // Margins
|
||||
this.btnsCategory[7].setVisible(!fixed_size); // Alt
|
||||
this.btnsCategory[2].setVisible(!chartprops && (pluginGuid === null || pluginGuid === undefined)); // Rotation
|
||||
|
||||
var control_props = this.api && this.api.asc_IsContentControl() ? this.api.asc_GetContentControlProperties() : null;
|
||||
this.btnsCategory[3].setDisabled(props.get_FromGroup() || !!control_props && (control_props.get_SpecificType()==Asc.c_oAscContentControlSpecificType.Picture)); // Wrapping
|
||||
|
||||
if (shapeprops) {
|
||||
|
|
|
@ -305,7 +305,7 @@ define([
|
|||
{caption: '--'},
|
||||
new Common.UI.MenuItem({
|
||||
template: _.template([
|
||||
'<div class="menu-zoom" style="height: 25px;" ',
|
||||
'<div class="menu-zoom" style="height: 26px;" ',
|
||||
'<% if(!_.isUndefined(options.stopPropagation)) { %>',
|
||||
'data-stopPropagation="true"',
|
||||
'<% } %>', '>',
|
||||
|
@ -318,7 +318,7 @@ define([
|
|||
}),
|
||||
new Common.UI.MenuItem({
|
||||
template: _.template([
|
||||
'<div class="menu-zoom" style="height: 25px;" ',
|
||||
'<div class="menu-zoom" style="height: 26px;" ',
|
||||
'<% if(!_.isUndefined(options.stopPropagation)) { %>',
|
||||
'data-stopPropagation="true"',
|
||||
'<% } %>', '>',
|
||||
|
|
|
@ -104,7 +104,8 @@ define([
|
|||
HideChangeTypeSettings: false,
|
||||
HideRotationSettings: false,
|
||||
isFromImage: false,
|
||||
isFromSmartArtInternal: false
|
||||
isFromSmartArtInternal: false,
|
||||
isFixedForm: false
|
||||
};
|
||||
this.lockedControls = [];
|
||||
this._locked = false;
|
||||
|
@ -147,6 +148,8 @@ define([
|
|||
this.ShapeOnlySettings = $('.shape-only');
|
||||
this.CanChangeType = $('.change-type');
|
||||
this.RotationSettings = $('.shape-rotation');
|
||||
this.NoFormSettings = $('.no-form');
|
||||
this.ShapeOnlySeparator = $('.shape-only-separator');
|
||||
},
|
||||
|
||||
setApi: function(api) {
|
||||
|
@ -771,6 +774,7 @@ define([
|
|||
(new DE.Views.ImageSettingsAdvanced(
|
||||
{
|
||||
imageProps: elValue,
|
||||
api: me.api,
|
||||
sectionProps: me.api.asc_GetSectionProps(),
|
||||
handler: function(result, value) {
|
||||
if (result == 'ok') {
|
||||
|
@ -797,6 +801,15 @@ define([
|
|||
if (this._initSettings)
|
||||
this.createDelayedElements();
|
||||
|
||||
var control_props = this.api.asc_IsContentControl() ? this.api.asc_GetContentControlProperties() : null;
|
||||
if (control_props) {
|
||||
var spectype = control_props.get_SpecificType();
|
||||
control_props = (spectype==Asc.c_oAscContentControlSpecificType.CheckBox || spectype==Asc.c_oAscContentControlSpecificType.ComboBox ||
|
||||
spectype==Asc.c_oAscContentControlSpecificType.DropDownList || spectype==Asc.c_oAscContentControlSpecificType.None) &&
|
||||
control_props.get_FormPr() && control_props.get_FormPr().get_Fixed();
|
||||
} else
|
||||
control_props = false;
|
||||
|
||||
if (props && props.get_ShapeProperties())
|
||||
{
|
||||
var shapeprops = props.get_ShapeProperties(),
|
||||
|
@ -813,7 +826,7 @@ define([
|
|||
|| shapetype=='bentConnector4' || shapetype=='bentConnector5' || shapetype=='curvedConnector2'
|
||||
|| shapetype=='curvedConnector3' || shapetype=='curvedConnector4' || shapetype=='curvedConnector5'
|
||||
|| shapetype=='straightConnector1';
|
||||
this.hideChangeTypeSettings(hidechangetype);
|
||||
this.hideChangeTypeSettings(hidechangetype || control_props);
|
||||
this._state.isFromImage = !!shapeprops.get_FromImage();
|
||||
this._state.isFromSmartArtInternal = !!shapeprops.get_FromSmartArtInternal();
|
||||
if (!hidechangetype && this.btnChangeShape.menu.items.length) {
|
||||
|
@ -1202,6 +1215,8 @@ define([
|
|||
|
||||
this._noApply = false;
|
||||
}
|
||||
this.hideNoFormSettings(control_props);
|
||||
this.ShapeOnlySeparator.toggleClass('hidden', (control_props || this._state.HideShapeOnlySettings || this._state.HideRotationSettings)==true);
|
||||
},
|
||||
|
||||
btnDirectionRedraw: function(slider, gradientColorsStr) {
|
||||
|
@ -1983,6 +1998,13 @@ define([
|
|||
}
|
||||
},
|
||||
|
||||
hideNoFormSettings: function(value) {
|
||||
if (this._state.isFixedForm !== value) {
|
||||
this._state.isFixedForm = value;
|
||||
this.NoFormSettings.toggleClass('hidden', value==true);
|
||||
}
|
||||
},
|
||||
|
||||
onPositionChange: function(btn) {
|
||||
var pos = btn.getNumberValue(),
|
||||
minValue = (this.GradColor.currentIdx-1<0) ? 0 : this.GradColor.values[this.GradColor.currentIdx-1],
|
||||
|
|
|
@ -109,11 +109,11 @@ define([
|
|||
Common.UI.Mixtbar.prototype.initialize.call(this, {
|
||||
template: _.template(template),
|
||||
tabs: [
|
||||
{caption: me.textTabFile, action: 'file', extcls: 'canedit', layoutname: 'toolbar-file', haspanel:false},
|
||||
{caption: me.textTabHome, action: 'home', extcls: 'canedit'},
|
||||
{caption: me.textTabInsert, action: 'ins', extcls: 'canedit'},
|
||||
{caption: me.textTabLayout, action: 'layout', extcls: 'canedit', layoutname: 'toolbar-layout'},
|
||||
{caption: me.textTabLinks, action: 'links', extcls: 'canedit', layoutname: 'toolbar-references'}
|
||||
{caption: me.textTabFile, action: 'file', extcls: 'canedit', layoutname: 'toolbar-file', haspanel:false, dataHintTitle: 'F'},
|
||||
{caption: me.textTabHome, action: 'home', extcls: 'canedit', dataHintTitle: 'H'},
|
||||
{caption: me.textTabInsert, action: 'ins', extcls: 'canedit', dataHintTitle: 'I'},
|
||||
{caption: me.textTabLayout, action: 'layout', extcls: 'canedit', layoutname: 'toolbar-layout', dataHintTitle: 'L'},
|
||||
{caption: me.textTabLinks, action: 'links', extcls: 'canedit', layoutname: 'toolbar-references', dataHintTitle: 'R'}
|
||||
]
|
||||
}
|
||||
);
|
||||
|
@ -125,7 +125,10 @@ define([
|
|||
id: 'id-toolbar-btn-print',
|
||||
cls: 'btn-toolbar',
|
||||
iconCls: 'toolbar__icon btn-print no-mask',
|
||||
signals: ['disabled']
|
||||
signals: ['disabled'],
|
||||
dataHint: '1',
|
||||
dataHintDirection: 'top',
|
||||
dataHintTitle: 'P'
|
||||
});
|
||||
this.toolbarControls.push(this.btnPrint);
|
||||
|
||||
|
@ -133,7 +136,10 @@ define([
|
|||
id: 'id-toolbar-btn-save',
|
||||
cls: 'btn-toolbar',
|
||||
iconCls: 'toolbar__icon no-mask ' + this.btnSaveCls,
|
||||
signals: ['disabled']
|
||||
signals: ['disabled'],
|
||||
dataHint: '1',
|
||||
dataHintDirection: 'bottom',
|
||||
dataHintTitle: 'S'
|
||||
});
|
||||
this.toolbarControls.push(this.btnSave);
|
||||
this.btnCollabChanges = this.btnSave;
|
||||
|
@ -142,7 +148,10 @@ define([
|
|||
id: 'id-toolbar-btn-undo',
|
||||
cls: 'btn-toolbar',
|
||||
iconCls: 'toolbar__icon btn-undo',
|
||||
signals: ['disabled']
|
||||
signals: ['disabled'],
|
||||
dataHint: '1',
|
||||
dataHintDirection: 'bottom',
|
||||
dataHintTitle: 'Z'
|
||||
});
|
||||
this.toolbarControls.push(this.btnUndo);
|
||||
|
||||
|
@ -150,7 +159,10 @@ define([
|
|||
id: 'id-toolbar-btn-redo',
|
||||
cls: 'btn-toolbar',
|
||||
iconCls: 'toolbar__icon btn-redo',
|
||||
signals: ['disabled']
|
||||
signals: ['disabled'],
|
||||
dataHint: '1',
|
||||
dataHintDirection: 'bottom',
|
||||
dataHintTitle: 'Y'
|
||||
});
|
||||
this.toolbarControls.push(this.btnRedo);
|
||||
|
||||
|
@ -169,8 +181,8 @@ define([
|
|||
cls: 'btn-toolbar',
|
||||
iconCls: 'toolbar__icon btn-paste',
|
||||
dataHint: '1',
|
||||
dataHintDirection: 'bottom',
|
||||
dataHintTitle: 'P'
|
||||
dataHintDirection: 'top',
|
||||
dataHintTitle: 'V'
|
||||
});
|
||||
this.paragraphControls.push(this.btnPaste);
|
||||
|
||||
|
@ -1398,7 +1410,7 @@ define([
|
|||
Common.UI.Mixtbar.prototype.initialize.call(this, {
|
||||
template: _.template(template_view),
|
||||
tabs: [
|
||||
{caption: me.textTabFile, action: 'file', layoutname: 'toolbar-file', haspanel: false}
|
||||
{caption: me.textTabFile, action: 'file', layoutname: 'toolbar-file', haspanel: false, dataHintTitle: 'F'}
|
||||
]
|
||||
}
|
||||
);
|
||||
|
|
|
@ -16,9 +16,15 @@
|
|||
--border-toolbar: #2a2a2a;
|
||||
--highlight-button-hover: #555;
|
||||
--highlight-header-button-hover: rgba(255,255,255,.05);
|
||||
--canvas-background: #666666;
|
||||
--canvas-background: #555;
|
||||
/*--canvas-content-background: #fff;*/
|
||||
--canvas-page-border: #555;
|
||||
--skeleton-canvas-page-border: #555;
|
||||
}
|
||||
|
||||
.content-theme-dark {
|
||||
--skeleton-canvas-content-background: #3a3a3a;
|
||||
--skeleton-canvas-page-border: #2a2a2a;
|
||||
--skeleton-canvas-line: rgba(255,255,255,.05);
|
||||
}
|
||||
|
||||
.theme-classic-light {
|
||||
|
@ -30,7 +36,7 @@
|
|||
--highlight-button-hover: #ccc;
|
||||
--highlight-header-button-hover: rgba(255,255,255,.15);
|
||||
--canvas-background: #eee;
|
||||
--canvas-page-border: #ccc;
|
||||
--loadmask-canvas-page-border: #ccc;
|
||||
}
|
||||
|
||||
.loadmask {
|
||||
|
@ -130,19 +136,19 @@
|
|||
|
||||
.loadmask > .placeholder {
|
||||
background: #fff;
|
||||
background: var(--canvas-content-background, #fff);
|
||||
background: var(--skeleton-canvas-content-background, #fff);
|
||||
width: 794px;
|
||||
margin: 46px auto;
|
||||
height: 100%;
|
||||
border: 1px solid #bbbec2;
|
||||
border: var(--scaled-one-px-value, 1px) solid var(--canvas-page-border, #bbbec2);
|
||||
border: var(--scaled-one-px-value, 1px) solid var(--skeleton-canvas-page-border, #bbbec2);
|
||||
padding-top: 50px;
|
||||
}
|
||||
|
||||
.loadmask > .placeholder > .line {
|
||||
height: 15px;
|
||||
margin: 30px 80px;
|
||||
background: rgba(0,0,0,.05);
|
||||
background: var(--skeleton-canvas-line, rgba(0,0,0,.05));
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
|
||||
|
|
|
@ -11,6 +11,12 @@
|
|||
<!-- splash -->
|
||||
|
||||
<style type="text/css">
|
||||
.content-theme-dark {
|
||||
--skeleton-canvas-content-background: #3a3a3a;
|
||||
--skeleton-canvas-page-border: #2a2a2a;
|
||||
--skeleton-canvas-line: rgba(255,255,255,.05);
|
||||
}
|
||||
|
||||
.loadmask {
|
||||
left: 0;
|
||||
top: 0;
|
||||
|
@ -108,12 +114,12 @@
|
|||
|
||||
.loadmask > .placeholder {
|
||||
background: #fff;
|
||||
background: var(--canvas-content-background, #fff);
|
||||
background: var(--skeleton-canvas-content-background, var(--canvas-content-background, #fff));
|
||||
width: 794px;
|
||||
margin: 46px auto;
|
||||
height: 100%;
|
||||
border: 1px solid #bbbec2;
|
||||
border: var(--scaled-one-px-value, 1px) solid var(--canvas-page-border, #bbbec2);
|
||||
border: var(--scaled-one-px-value, 1px) solid var(--skeleton-canvas-page-border, var(--canvas-page-border, #bbbec2));
|
||||
padding-top: 50px;
|
||||
}
|
||||
|
||||
|
@ -121,6 +127,7 @@
|
|||
height: 15px;
|
||||
margin: 30px 80px;
|
||||
background: rgba(0,0,0,.05);
|
||||
background: var(--skeleton-canvas-line, rgba(0,0,0,.05));
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
|
||||
|
|
|
@ -582,8 +582,8 @@
|
|||
"DE.Controllers.Main.requestEditFailedTitleText": "Access denied",
|
||||
"DE.Controllers.Main.saveErrorText": "An error has occurred while saving the file.",
|
||||
"DE.Controllers.Main.saveErrorTextDesktop": "This file cannot be saved or created.<br>Possible reasons are: <br>1. The file is read-only. <br>2. The file is being edited by other users. <br>3. The disk is full or corrupted.",
|
||||
"DE.Controllers.Main.savePreparingText": "Preparing to save",
|
||||
"DE.Controllers.Main.savePreparingTitle": "Preparing to save. Please wait...",
|
||||
"del_DE.Controllers.Main.savePreparingText": "Preparing to save",
|
||||
"del_DE.Controllers.Main.savePreparingTitle": "Preparing to save. Please wait...",
|
||||
"DE.Controllers.Main.saveTextText": "Saving document...",
|
||||
"DE.Controllers.Main.saveTitleText": "Saving Document",
|
||||
"DE.Controllers.Main.scriptLoadError": "The connection is too slow, some of the components could not be loaded. Please reload the page.",
|
||||
|
@ -1244,6 +1244,7 @@
|
|||
"DE.Controllers.Toolbar.txtSymbol_zeta": "Zeta",
|
||||
"DE.Controllers.Viewport.textFitPage": "Fit to Page",
|
||||
"DE.Controllers.Viewport.textFitWidth": "Fit to Width",
|
||||
"DE.Controllers.Viewport.txtDarkMode": "Dark mode",
|
||||
"DE.Views.AddNewCaptionLabelDialog.textLabel": "Label:",
|
||||
"DE.Views.AddNewCaptionLabelDialog.textLabelError": "Label must not be empty.",
|
||||
"DE.Views.BookmarksDialog.textAdd": "Add",
|
||||
|
|
|
@ -229,4 +229,15 @@
|
|||
overflow: hidden;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.content-theme-dark & {
|
||||
@canvas-content-dark-background: #3a3a3a;
|
||||
@canvas-content-dark-page-border: #2a2a2a;
|
||||
background-color: @canvas-content-dark-background;
|
||||
border-color: @canvas-content-dark-page-border;
|
||||
|
||||
> .line {
|
||||
background-color: fade(#fff, 5%);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -113,6 +113,14 @@
|
|||
.swiper-pagination-bullet-active{
|
||||
background: @black;
|
||||
}
|
||||
.multilevels {
|
||||
li:not(:first-child){
|
||||
border:none;
|
||||
.item-content {
|
||||
min-height: 70px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Skeleton table
|
||||
|
|
|
@ -568,6 +568,10 @@ PE.ApplicationController = new(function(){
|
|||
message = me.errorLoadingFont;
|
||||
break;
|
||||
|
||||
case Asc.c_oAscError.ID.KeyExpire:
|
||||
message = me.errorTokenExpire;
|
||||
break;
|
||||
|
||||
default:
|
||||
message = me.errorDefaultMessage.replace('%1', id);
|
||||
break;
|
||||
|
@ -732,6 +736,7 @@ PE.ApplicationController = new(function(){
|
|||
textGuest: 'Guest',
|
||||
textAnonymous: 'Anonymous',
|
||||
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.",
|
||||
errorLoadingFont: 'Fonts are not loaded.<br>Please contact your Document Server administrator.'
|
||||
errorLoadingFont: 'Fonts are not loaded.<br>Please contact your Document Server administrator.',
|
||||
errorTokenExpire: 'The document security token has expired.<br>Please contact your Document Server administrator.'
|
||||
}
|
||||
})();
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
"PE.ApplicationController.errorFileSizeExceed": "The file size exceeds the limitation set for your server.<br>Please contact your Document Server administrator for details.",
|
||||
"PE.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.",
|
||||
"PE.ApplicationController.errorLoadingFont": "Fonts are not loaded.<br>Please contact your Document Server administrator.",
|
||||
"PE.ApplicationController.errorTokenExpire": "The document security token has expired.<br>Please contact your Document Server administrator.",
|
||||
"PE.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.",
|
||||
"PE.ApplicationController.errorUserDrop": "The file cannot be accessed right now.",
|
||||
"PE.ApplicationController.notcriticalErrorTitle": "Warning",
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
"PE.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'information. ",
|
||||
"PE.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.",
|
||||
"PE.ApplicationController.errorLoadingFont": "Les polices ne sont pas téléchargées.<br>Veuillez contacter l'administrateur de Document Server.",
|
||||
"PE.ApplicationController.errorTokenExpire": "Le jeton de sécurité du document a expiré.<br>Veuillez contactez l'administrateur de Document Server.",
|
||||
"PE.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.",
|
||||
"PE.ApplicationController.errorUserDrop": "Impossible d'accéder au fichier.",
|
||||
"PE.ApplicationController.notcriticalErrorTitle": "Avertissement",
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
"PE.ApplicationController.errorFileSizeExceed": "Dimensiunea fișierului depășește limita permisă de serverul Dvs.<br>Pentru detalii, contactați administratorul dumneavoastră de Server Documente.",
|
||||
"PE.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.",
|
||||
"PE.ApplicationController.errorLoadingFont": "Fonturile nu sunt încărcate.<br>Contactați administratorul dvs de Server Documente.",
|
||||
"PE.ApplicationController.errorTokenExpire": "Token de securitate din document a expirat.<br>Contactați administratorul dvs. de Server Documente.",
|
||||
"PE.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ă.",
|
||||
"PE.ApplicationController.errorUserDrop": "Fișierul nu poate fi accesat deocamdată.",
|
||||
"PE.ApplicationController.notcriticalErrorTitle": "Avertisment",
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
"PE.ApplicationController.errorFileSizeExceed": "Размер файла превышает ограничение, установленное для вашего сервера.<br>Обратитесь к администратору Сервера документов для получения дополнительной информации.",
|
||||
"PE.ApplicationController.errorForceSave": "При сохранении файла произошла ошибка. Используйте опцию 'Скачать как', чтобы сохранить файл на жестком диске компьютера или повторите попытку позже.",
|
||||
"PE.ApplicationController.errorLoadingFont": "Шрифты не загружены.<br>Пожалуйста, обратитесь к администратору Сервера документов.",
|
||||
"PE.ApplicationController.errorTokenExpire": "Истек срок действия токена безопасности документа.<br>Пожалуйста, обратитесь к администратору Сервера документов.",
|
||||
"PE.ApplicationController.errorUpdateVersionOnDisconnect": "Подключение к Интернету было восстановлено, и версия файла изменилась.<br>Прежде чем продолжить работу, надо скачать файл или скопировать его содержимое, чтобы обеспечить сохранность данных, а затем перезагрузить страницу.",
|
||||
"PE.ApplicationController.errorUserDrop": "В настоящий момент файл недоступен.",
|
||||
"PE.ApplicationController.notcriticalErrorTitle": "Внимание",
|
||||
|
|
|
@ -694,11 +694,6 @@ define([
|
|||
text = this.applyChangesTextText;
|
||||
break;
|
||||
|
||||
case Asc.c_oAscAsyncAction['PrepareToSave']:
|
||||
title = this.savePreparingText;
|
||||
text = this.savePreparingTitle;
|
||||
break;
|
||||
|
||||
case Asc.c_oAscAsyncAction['Waiting']:
|
||||
title = this.waitText;
|
||||
text = this.waitText;
|
||||
|
@ -2580,8 +2575,6 @@ define([
|
|||
txtNeedSynchronize: 'You have an updates',
|
||||
applyChangesTitleText: 'Loading Data',
|
||||
applyChangesTextText: 'Loading data...',
|
||||
savePreparingText: 'Preparing to save',
|
||||
savePreparingTitle: 'Preparing to save. Please wait...',
|
||||
loadingDocumentTitleText: 'Loading presentation',
|
||||
loadingDocumentTextText: 'Loading presentation...',
|
||||
warnProcessRightsChange: 'You have been denied the right to edit the file.',
|
||||
|
|
|
@ -2479,7 +2479,7 @@ define([
|
|||
}
|
||||
me.toolbar.render(_.extend({compactview: compactview}, config));
|
||||
|
||||
var tab = {action: 'review', caption: me.toolbar.textTabCollaboration, layoutname: 'toolbar-collaboration'};
|
||||
var tab = {action: 'review', caption: me.toolbar.textTabCollaboration, layoutname: 'toolbar-collaboration', dataHintTitle: 'U'};
|
||||
var $panel = me.getApplication().getController('Common.Controllers.ReviewChanges').createToolbarPanel();
|
||||
if ( $panel ) {
|
||||
me.toolbar.addTab(tab, $panel, 4);
|
||||
|
@ -2505,12 +2505,13 @@ define([
|
|||
|
||||
// move 'paste' button to the container instead of 'undo' and 'redo'
|
||||
me.toolbar.btnPaste.$el.detach().appendTo($box);
|
||||
me.toolbar.btnPaste.$el.find('button').attr('data-hint-direction', 'bottom');
|
||||
me.toolbar.btnCopy.$el.removeClass('split');
|
||||
}
|
||||
|
||||
if ( config.isDesktopApp ) {
|
||||
if ( config.canProtect ) { // don't add protect panel to toolbar
|
||||
tab = {action: 'protect', caption: me.toolbar.textTabProtect, layoutname: 'toolbar-protect'};
|
||||
tab = {action: 'protect', caption: me.toolbar.textTabProtect, layoutname: 'toolbar-protect', dataHintTitle: 'T'};
|
||||
$panel = me.getApplication().getController('Common.Controllers.Protection').createToolbarPanel();
|
||||
if ($panel)
|
||||
me.toolbar.addTab(tab, $panel, 4);
|
||||
|
|
|
@ -279,7 +279,7 @@ define([
|
|||
|
||||
me.header.mnuZoom = new Common.UI.MenuItem({
|
||||
template: _.template([
|
||||
'<div id="hdr-menu-zoom" class="menu-zoom" style="height: 25px;" ',
|
||||
'<div id="hdr-menu-zoom" class="menu-zoom" style="height: 26px;" ',
|
||||
'<% if(!_.isUndefined(options.stopPropagation)) { %>',
|
||||
'data-stopPropagation="true"',
|
||||
'<% } %>', '>',
|
||||
|
|
|
@ -105,7 +105,8 @@ define([
|
|||
disabled: true,
|
||||
dataHint: 1,
|
||||
dataHintDirection: 'left-top',
|
||||
dataHintOffset: [2, 14]
|
||||
dataHintOffset: [2, 14],
|
||||
dataHintTitle: 'S'
|
||||
});
|
||||
if ( !!this.options.miSave ) {
|
||||
this.miSave.setDisabled(this.options.miSave.isDisabled());
|
||||
|
@ -159,7 +160,8 @@ define([
|
|||
canFocused: false,
|
||||
dataHint: 1,
|
||||
dataHintDirection: 'left-top',
|
||||
dataHintOffset: [2, 14]
|
||||
dataHintOffset: [2, 14],
|
||||
dataHintTitle: 'P'
|
||||
});
|
||||
|
||||
this.miRename = new Common.UI.MenuItem({
|
||||
|
|
|
@ -131,10 +131,10 @@ define([
|
|||
Common.UI.Mixtbar.prototype.initialize.call(this, {
|
||||
template: _.template(template),
|
||||
tabs: [
|
||||
{caption: me.textTabFile, action: 'file', extcls: 'canedit', layoutname: 'toolbar-file', haspanel:false},
|
||||
{caption: me.textTabHome, action: 'home', extcls: 'canedit'},
|
||||
{caption: me.textTabInsert, action: 'ins', extcls: 'canedit'},
|
||||
{caption: me.textTabTransitions, action: 'transit', extcls: 'canedit'}
|
||||
{caption: me.textTabFile, action: 'file', extcls: 'canedit', layoutname: 'toolbar-file', haspanel:false, dataHintTitle: 'F'},
|
||||
{caption: me.textTabHome, action: 'home', extcls: 'canedit', dataHintTitle: 'H'},
|
||||
{caption: me.textTabInsert, action: 'ins', extcls: 'canedit', dataHintTitle: 'I'},
|
||||
{caption: me.textTabTransitions, action: 'transit', extcls: 'canedit', dataHintTitle: 'N'}
|
||||
]
|
||||
}
|
||||
);
|
||||
|
@ -189,7 +189,10 @@ define([
|
|||
cls: 'btn-toolbar',
|
||||
iconCls: 'toolbar__icon btn-print no-mask',
|
||||
lock: [_set.slideDeleted, _set.noSlides, _set.cantPrint, _set.disableOnStart],
|
||||
signals: ['disabled']
|
||||
signals: ['disabled'],
|
||||
dataHint: '1',
|
||||
dataHintDirection: 'top',
|
||||
dataHintTitle: 'P'
|
||||
});
|
||||
me.slideOnlyControls.push(me.btnPrint);
|
||||
|
||||
|
@ -198,7 +201,10 @@ define([
|
|||
cls: 'btn-toolbar',
|
||||
iconCls: 'toolbar__icon no-mask ' + me.btnSaveCls,
|
||||
lock: [_set.lostConnect],
|
||||
signals: ['disabled']
|
||||
signals: ['disabled'],
|
||||
dataHint: '1',
|
||||
dataHintDirection: 'bottom',
|
||||
dataHintTitle: 'S'
|
||||
});
|
||||
me.btnCollabChanges = me.btnSave;
|
||||
|
||||
|
@ -207,7 +213,10 @@ define([
|
|||
cls: 'btn-toolbar',
|
||||
iconCls: 'toolbar__icon btn-undo',
|
||||
lock: [_set.undoLock, _set.slideDeleted, _set.lostConnect, _set.disableOnStart],
|
||||
signals: ['disabled']
|
||||
signals: ['disabled'],
|
||||
dataHint: '1',
|
||||
dataHintDirection: 'bottom',
|
||||
dataHintTitle: 'Z'
|
||||
});
|
||||
me.slideOnlyControls.push(me.btnUndo);
|
||||
|
||||
|
@ -216,7 +225,10 @@ define([
|
|||
cls: 'btn-toolbar',
|
||||
iconCls: 'toolbar__icon btn-redo',
|
||||
lock: [_set.redoLock, _set.slideDeleted, _set.lostConnect, _set.disableOnStart],
|
||||
signals: ['disabled']
|
||||
signals: ['disabled'],
|
||||
dataHint: '1',
|
||||
dataHintDirection: 'bottom',
|
||||
dataHintTitle: 'Y'
|
||||
});
|
||||
me.slideOnlyControls.push(me.btnRedo);
|
||||
|
||||
|
@ -237,8 +249,8 @@ define([
|
|||
iconCls: 'toolbar__icon btn-paste',
|
||||
lock: [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides],
|
||||
dataHint: '1',
|
||||
dataHintDirection: 'bottom',
|
||||
dataHintTitle: 'P'
|
||||
dataHintDirection: 'top',
|
||||
dataHintTitle: 'V'
|
||||
});
|
||||
me.paragraphControls.push(me.btnPaste);
|
||||
|
||||
|
@ -1089,7 +1101,7 @@ define([
|
|||
Common.UI.Mixtbar.prototype.initialize.call(this, {
|
||||
template: _.template(template_view),
|
||||
tabs: [
|
||||
{caption: me.textTabFile, action: 'file', layoutname: 'toolbar-file', haspanel:false}
|
||||
{caption: me.textTabFile, action: 'file', layoutname: 'toolbar-file', haspanel:false, dataHintTitle: 'F'}
|
||||
]
|
||||
}
|
||||
);
|
||||
|
|
|
@ -451,8 +451,8 @@
|
|||
"PE.Controllers.Main.requestEditFailedTitleText": "Access denied",
|
||||
"PE.Controllers.Main.saveErrorText": "An error has occurred while saving the file.",
|
||||
"PE.Controllers.Main.saveErrorTextDesktop": "This file cannot be saved or created.<br>Possible reasons are: <br>1. The file is read-only. <br>2. The file is being edited by other users. <br>3. The disk is full or corrupted.",
|
||||
"PE.Controllers.Main.savePreparingText": "Preparing to save",
|
||||
"PE.Controllers.Main.savePreparingTitle": "Preparing to save. Please wait...",
|
||||
"del_PE.Controllers.Main.savePreparingText": "Preparing to save",
|
||||
"del_PE.Controllers.Main.savePreparingTitle": "Preparing to save. Please wait...",
|
||||
"PE.Controllers.Main.saveTextText": "Saving presentation...",
|
||||
"PE.Controllers.Main.saveTitleText": "Saving Presentation",
|
||||
"PE.Controllers.Main.scriptLoadError": "The connection is too slow, some of the components could not be loaded. Please reload the page.",
|
||||
|
|
|
@ -298,11 +298,11 @@ class MainController extends Component {
|
|||
this.api.Resize();
|
||||
});
|
||||
|
||||
$$(window).on('popover:open popup:open sheet:open actions:open', () => {
|
||||
$$(window).on('popup:open sheet:open actions:open', () => {
|
||||
this.api.asc_enableKeyEvents(false);
|
||||
});
|
||||
|
||||
$$(window).on('popover:close popup:close sheet:close actions:close', () => {
|
||||
$$(window).on('popup:close sheet:close actions:close', () => {
|
||||
this.api.asc_enableKeyEvents(true);
|
||||
});
|
||||
|
||||
|
|
|
@ -479,6 +479,10 @@ SSE.ApplicationController = new(function(){
|
|||
message = me.errorLoadingFont;
|
||||
break;
|
||||
|
||||
case Asc.c_oAscError.ID.KeyExpire:
|
||||
message = me.errorTokenExpire;
|
||||
break;
|
||||
|
||||
default:
|
||||
message = me.errorDefaultMessage.replace('%1', id);
|
||||
break;
|
||||
|
@ -681,6 +685,7 @@ SSE.ApplicationController = new(function(){
|
|||
textGuest: 'Guest',
|
||||
textAnonymous: 'Anonymous',
|
||||
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.",
|
||||
errorLoadingFont: 'Fonts are not loaded.<br>Please contact your Document Server administrator.'
|
||||
errorLoadingFont: 'Fonts are not loaded.<br>Please contact your Document Server administrator.',
|
||||
errorTokenExpire: 'The document security token has expired.<br>Please contact your Document Server administrator.'
|
||||
}
|
||||
})();
|
|
@ -15,6 +15,7 @@
|
|||
"SSE.ApplicationController.errorFileSizeExceed": "The file size exceeds the limitation set for your server.<br>Please contact your Document Server administrator for details.",
|
||||
"SSE.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.",
|
||||
"SSE.ApplicationController.errorLoadingFont": "Fonts are not loaded.<br>Please contact your Document Server administrator.",
|
||||
"SSE.ApplicationController.errorTokenExpire": "The document security token has expired.<br>Please contact your Document Server administrator.",
|
||||
"SSE.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.",
|
||||
"SSE.ApplicationController.errorUserDrop": "The file cannot be accessed right now.",
|
||||
"SSE.ApplicationController.notcriticalErrorTitle": "Warning",
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
"SSE.ApplicationController.errorFileSizeExceed": "La taille du fichier dépasse les limites paramétrées sur votre serveur.<br>Veuillez contacter votre administrateur de Document Server pour obtenir plus d'informations. ",
|
||||
"SSE.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.",
|
||||
"SSE.ApplicationController.errorLoadingFont": "Les polices ne sont pas téléchargées.<br>Veuillez contacter l'administrateur de Document Server.",
|
||||
"SSE.ApplicationController.errorTokenExpire": "Le jeton de sécurité du document a expiré.<br>Veuillez contactez l'administrateur de Document Server.",
|
||||
"SSE.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.",
|
||||
"SSE.ApplicationController.errorUserDrop": "Impossible d'accéder au fichier.",
|
||||
"SSE.ApplicationController.notcriticalErrorTitle": "Avertissement",
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
"SSE.ApplicationController.errorFileSizeExceed": "Dimensiunea fișierului depășește limita permisă de serverul Dvs.<br>Pentru detalii, contactați administratorul dumneavoastră de Server Documente.",
|
||||
"SSE.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.",
|
||||
"SSE.ApplicationController.errorLoadingFont": "Fonturile nu sunt încărcate.<br>Contactați administratorul dvs de Server Documente.",
|
||||
"SSE.ApplicationController.errorTokenExpire": "Token de securitate din document a expirat.<br>Contactați administratorul dvs. de Server Documente.",
|
||||
"SSE.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ă.",
|
||||
"SSE.ApplicationController.errorUserDrop": "Fișierul nu poate fi accesat deocamdată.",
|
||||
"SSE.ApplicationController.notcriticalErrorTitle": "Avertisment",
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
"SSE.ApplicationController.errorFileSizeExceed": "Размер файла превышает ограничение, установленное для вашего сервера.<br>Обратитесь к администратору Сервера документов для получения дополнительной информации.",
|
||||
"SSE.ApplicationController.errorForceSave": "При сохранении файла произошла ошибка. Используйте опцию 'Скачать как', чтобы сохранить файл на жестком диске компьютера или повторите попытку позже.",
|
||||
"SSE.ApplicationController.errorLoadingFont": "Шрифты не загружены.<br>Пожалуйста, обратитесь к администратору Сервера документов.",
|
||||
"SSE.ApplicationController.errorTokenExpire": "Истек срок действия токена безопасности документа.<br>Пожалуйста, обратитесь к администратору Сервера документов.",
|
||||
"SSE.ApplicationController.errorUpdateVersionOnDisconnect": "Подключение к Интернету было восстановлено, и версия файла изменилась.<br>Прежде чем продолжить работу, надо скачать файл или скопировать его содержимое, чтобы обеспечить сохранность данных, а затем перезагрузить страницу.",
|
||||
"SSE.ApplicationController.errorUserDrop": "В настоящий момент файл недоступен.",
|
||||
"SSE.ApplicationController.notcriticalErrorTitle": "Внимание",
|
||||
|
|
|
@ -1071,6 +1071,7 @@ define([
|
|||
if (this.tooltips.foreignSelect.ref) {
|
||||
$(this.tooltips.foreignSelect.ref).remove();
|
||||
this.tooltips.foreignSelect.ref = undefined;
|
||||
this.tooltips.foreignSelect.userId = undefined;
|
||||
this.tooltips.foreignSelect.x_point = undefined;
|
||||
this.tooltips.foreignSelect.y_point = undefined;
|
||||
}
|
||||
|
@ -1392,6 +1393,7 @@ define([
|
|||
var src = $(document.createElement("div")),
|
||||
color = data.asc_getColor();
|
||||
foreignSelect.ref = src;
|
||||
foreignSelect.userId = data.asc_getUserId();
|
||||
|
||||
src.addClass('username-tip');
|
||||
src.css({
|
||||
|
@ -3828,6 +3830,9 @@ define([
|
|||
/** coauthoring begin **/
|
||||
var src;
|
||||
var me = this;
|
||||
if (me.tooltips && me.tooltips.foreignSelect && (me.tooltips.foreignSelect.userId == UserId)) {
|
||||
me.hideForeignSelectTips();
|
||||
}
|
||||
for (var i=0; i<me.fastcoauthtips.length; i++) {
|
||||
if (me.fastcoauthtips[i].attr('userid') == UserId) {
|
||||
src = me.fastcoauthtips[i];
|
||||
|
|
|
@ -758,21 +758,11 @@ define([
|
|||
text = this.uploadImageTextText;
|
||||
break;
|
||||
|
||||
case Asc.c_oAscAsyncAction.Recalc:
|
||||
title = this.titleRecalcFormulas;
|
||||
text = this.textRecalcFormulas;
|
||||
break;
|
||||
|
||||
case Asc.c_oAscAsyncAction.SlowOperation:
|
||||
title = this.textPleaseWait;
|
||||
text = this.textPleaseWait;
|
||||
break;
|
||||
|
||||
case Asc.c_oAscAsyncAction['PrepareToSave']:
|
||||
title = this.savePreparingText;
|
||||
text = this.savePreparingTitle;
|
||||
break;
|
||||
|
||||
case Asc.c_oAscAsyncAction['Waiting']:
|
||||
title = this.waitText;
|
||||
text = this.waitText;
|
||||
|
@ -2238,7 +2228,12 @@ define([
|
|||
validatePwd: false,
|
||||
handler: function (result, value) {
|
||||
if (me.api && apiCallback) {
|
||||
apiCallback((result == 'ok') ? me.api.asc_checkProtectedRangesPassword(value.drmOptions.asc_getPassword(), data) : false, result !== 'ok');
|
||||
if (result == 'ok') {
|
||||
me.api.asc_checkProtectedRangesPassword(value.drmOptions.asc_getPassword(), data, function(res) {
|
||||
apiCallback(res, false);
|
||||
});
|
||||
} else
|
||||
apiCallback(false, true);
|
||||
}
|
||||
me.onEditComplete(me.application.getController('DocumentHolder').getView('DocumentHolder'));
|
||||
}
|
||||
|
@ -3016,8 +3011,6 @@ define([
|
|||
printTextText: 'Printing document...',
|
||||
uploadImageTitleText: 'Uploading Image',
|
||||
uploadImageTextText: 'Uploading image...',
|
||||
savePreparingText: 'Preparing to save',
|
||||
savePreparingTitle: 'Preparing to save. Please wait...',
|
||||
loadingDocumentTitleText: 'Loading spreadsheet',
|
||||
uploadImageSizeMessage: 'Maximium image size limit exceeded.',
|
||||
uploadImageExtMessage: 'Unknown image format.',
|
||||
|
@ -3032,8 +3025,6 @@ define([
|
|||
warnBrowserZoom: 'Your browser\'s current zoom setting is not fully supported. Please reset to the default zoom by pressing Ctrl+0.',
|
||||
warnBrowserIE9: 'The application has low capabilities on IE9. Use IE10 or higher',
|
||||
pastInMergeAreaError: 'Cannot change part of a merged cell',
|
||||
titleRecalcFormulas: 'Calculating formulas...',
|
||||
textRecalcFormulas: 'Calculating formulas...',
|
||||
textPleaseWait: 'It\'s working hard. Please wait...',
|
||||
errorWrongBracketsCount: 'Found an error in the formula entered.<br>Wrong cout of brackets.',
|
||||
errorWrongOperator: 'An error in the entered formula. Wrong operator is used.<br>Please correct the error or use the Esc button to cancel the formula editing.',
|
||||
|
|
|
@ -193,15 +193,16 @@ define([
|
|||
},
|
||||
|
||||
onChangeProtectWorkbook: function() {
|
||||
this.statusbar.btnAddWorksheet.setDisabled(this.api.isCellEdited || this.api.asc_isWorkbookLocked() || this.api.asc_isProtectedWorkbook() || this.statusbar.rangeSelectionMode!=Asc.c_oAscSelectionDialogType.None);
|
||||
var count = this.statusbar.tabbar.getCount(), tab;
|
||||
var wbprotected = this.api.asc_isProtectedWorkbook();
|
||||
this.statusbar.btnAddWorksheet.setDisabled(this.api.isCellEdited || this.api.asc_isWorkbookLocked() || wbprotected || this.statusbar.rangeSelectionMode!=Asc.c_oAscSelectionDialogType.None);
|
||||
var count = this.statusbar.tabbar.getCount(), tab;
|
||||
for (var i = count; i-- > 0; ) {
|
||||
tab = this.statusbar.tabbar.getAt(i);
|
||||
var islocked = tab.hasClass('coauth-locked');
|
||||
tab.isLockTheDrag = islocked || wbprotected || (this.statusbar.rangeSelectionMode==Asc.c_oAscSelectionDialogType.FormatTable) || (this.statusbar.rangeSelectionMode==Asc.c_oAscSelectionDialogType.PrintTitles);
|
||||
tab.$el.children(':first-child').attr('draggable', tab.isLockTheDrag?'false':'true');
|
||||
}
|
||||
this.statusbar.update();
|
||||
},
|
||||
|
||||
/** coauthoring end **/
|
||||
|
|
|
@ -604,39 +604,35 @@ define([
|
|||
},
|
||||
|
||||
onTextColor: function() {
|
||||
this.toolbar.mnuTextColorPicker.trigger('select', this.toolbar.mnuTextColorPicker, this.toolbar.mnuTextColorPicker.currentColor, true);
|
||||
this.toolbar.mnuTextColorPicker.trigger('select', this.toolbar.mnuTextColorPicker, this.toolbar.mnuTextColorPicker.currentColor);
|
||||
},
|
||||
|
||||
onBackColor: function() {
|
||||
this.toolbar.mnuBackColorPicker.trigger('select', this.toolbar.mnuBackColorPicker, this.toolbar.mnuBackColorPicker.currentColor, true);
|
||||
this.toolbar.mnuBackColorPicker.trigger('select', this.toolbar.mnuBackColorPicker, this.toolbar.mnuBackColorPicker.currentColor);
|
||||
},
|
||||
|
||||
onTextColorSelect: function(btn, color, fromBtn) {
|
||||
onTextColorSelect: function(btn, color) {
|
||||
this._state.clrtext_asccolor = this._state.clrtext = undefined;
|
||||
|
||||
this.toolbar.btnTextColor.currentColor = color;
|
||||
|
||||
this.toolbar.mnuTextColorPicker.currentColor = color;
|
||||
if (this.api) {
|
||||
this.toolbar.btnTextColor.ischanged = (fromBtn!==true);
|
||||
this.api.asc_setCellTextColor(color.isAuto ? color.color : Common.Utils.ThemeColor.getRgbColor(color));
|
||||
this.toolbar.btnTextColor.ischanged = false;
|
||||
}
|
||||
|
||||
Common.NotificationCenter.trigger('edit:complete', this.toolbar, {restorefocus:true});
|
||||
Common.component.Analytics.trackEvent('ToolBar', 'Text Color');
|
||||
},
|
||||
|
||||
onBackColorSelect: function(btn, color, fromBtn) {
|
||||
onBackColorSelect: function(btn, color) {
|
||||
this._state.clrshd_asccolor = this._state.clrback = undefined;
|
||||
|
||||
this.toolbar.btnBackColor.currentColor = color;
|
||||
|
||||
this.toolbar.mnuBackColorPicker.currentColor = color;
|
||||
if (this.api) {
|
||||
this.toolbar.btnBackColor.ischanged = (fromBtn!==true);
|
||||
this.api.asc_setCellBackgroundColor(color == 'transparent' ? null : Common.Utils.ThemeColor.getRgbColor(color));
|
||||
this.toolbar.btnBackColor.ischanged = false;
|
||||
}
|
||||
|
||||
Common.component.Analytics.trackEvent('ToolBar', 'Background Color');
|
||||
|
@ -2446,7 +2442,7 @@ define([
|
|||
color,
|
||||
fontColorPicker = this.toolbar.mnuTextColorPicker;
|
||||
|
||||
if (!toolbar.btnTextColor.ischanged && !fontColorPicker.isDummy) {
|
||||
if (!fontColorPicker.isDummy) {
|
||||
color = fontobj.asc_getFontColor();
|
||||
if (color) {
|
||||
if (color.get_auto()) {
|
||||
|
@ -2608,7 +2604,7 @@ define([
|
|||
fontColorPicker = this.toolbar.mnuTextColorPicker,
|
||||
paragraphColorPicker = this.toolbar.mnuBackColorPicker;
|
||||
|
||||
if (!toolbar.btnTextColor.ischanged && !fontColorPicker.isDummy) {
|
||||
if (!fontColorPicker.isDummy) {
|
||||
color = xfs.asc_getFontColor();
|
||||
if (color) {
|
||||
if (color.get_auto()) {
|
||||
|
@ -2651,9 +2647,9 @@ define([
|
|||
}
|
||||
|
||||
/* read cell background color */
|
||||
if (!toolbar.btnBackColor.ischanged && !paragraphColorPicker.isDummy) {
|
||||
if (!paragraphColorPicker.isDummy) {
|
||||
color = xfs.asc_getFillColor();
|
||||
if (color) {
|
||||
if (color && !color.get_auto()) {
|
||||
if (color.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) {
|
||||
clr = {color: Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()), effectValue: color.get_value() };
|
||||
} else {
|
||||
|
@ -3714,7 +3710,7 @@ define([
|
|||
me.toolbar.render(_.extend({isCompactView: compactview}, config));
|
||||
|
||||
if ( !config.isEditDiagram && !config.isEditMailMerge ) {
|
||||
var tab = {action: 'review', caption: me.toolbar.textTabCollaboration, layoutname: 'toolbar-collaboration'};
|
||||
var tab = {action: 'review', caption: me.toolbar.textTabCollaboration, layoutname: 'toolbar-collaboration', dataHintTitle: 'U'};
|
||||
var $panel = me.getApplication().getController('Common.Controllers.ReviewChanges').createToolbarPanel();
|
||||
if ($panel) {
|
||||
me.toolbar.addTab(tab, $panel, 6);
|
||||
|
@ -3754,7 +3750,7 @@ define([
|
|||
Array.prototype.push.apply(me.toolbar.lockControls, formulatab.getButtons());
|
||||
|
||||
if ( config.canFeaturePivot ) {
|
||||
tab = {action: 'pivot', caption: me.textPivot};
|
||||
tab = {action: 'pivot', caption: me.textPivot, dataHintTitle: 'B'};
|
||||
var pivottab = me.getApplication().getController('PivotTable');
|
||||
pivottab.setApi(me.api).setConfig({toolbar: me});
|
||||
$panel = pivottab.createToolbarPanel();
|
||||
|
@ -3774,10 +3770,11 @@ define([
|
|||
|
||||
// move 'paste' button to the container instead of 'undo' and 'redo'
|
||||
me.toolbar.btnPaste.$el.detach().appendTo($box);
|
||||
me.toolbar.btnPaste.$el.find('button').attr('data-hint-direction', 'bottom');
|
||||
me.toolbar.btnCopy.$el.removeClass('split');
|
||||
}
|
||||
|
||||
var tab = {action: 'protect', caption: me.toolbar.textTabProtect, layoutname: 'toolbar-protect'};
|
||||
var tab = {action: 'protect', caption: me.toolbar.textTabProtect, layoutname: 'toolbar-protect', dataHintTitle: 'T'};
|
||||
var $panel = me.getApplication().getController('Common.Controllers.Protection').createToolbarPanel();
|
||||
if ($panel) {
|
||||
config.canProtect && $panel.append($('<div class="separator long"></div>'));
|
||||
|
|
|
@ -261,7 +261,7 @@ define([
|
|||
|
||||
me.header.mnuZoom = new Common.UI.MenuItem({
|
||||
template: _.template([
|
||||
'<div id="hdr-menu-zoom" class="menu-zoom" style="height: 25px;" ',
|
||||
'<div id="hdr-menu-zoom" class="menu-zoom" style="height: 26px;" ',
|
||||
'<% if(!_.isUndefined(options.stopPropagation)) { %>',
|
||||
'data-stopPropagation="true"',
|
||||
'<% } %>', '>',
|
||||
|
|
|
@ -116,6 +116,7 @@ define([
|
|||
},
|
||||
|
||||
onWorkbookClick: function(state) {
|
||||
this.view.btnProtectWB.toggle(!state, true);
|
||||
if (state) {
|
||||
var me = this,
|
||||
btn,
|
||||
|
@ -125,8 +126,7 @@ define([
|
|||
btn = result;
|
||||
if (result == 'ok') {
|
||||
var props = me.api.asc_getProtectedWorkbook();
|
||||
props.asc_setLockStructure(true);
|
||||
value && props.asc_setPassword(value);
|
||||
props.asc_setLockStructure(value);
|
||||
me.api.asc_setProtectedWorkbook(props);
|
||||
}
|
||||
Common.NotificationCenter.trigger('edit:complete');
|
||||
|
@ -152,7 +152,7 @@ define([
|
|||
btn = result;
|
||||
if (result == 'ok') {
|
||||
if (me.api) {
|
||||
props.asc_setLockStructure(false, value);
|
||||
props.asc_setLockStructure(value && value.drmOptions ? value.drmOptions.asc_getPassword() : undefined);
|
||||
me.api.asc_setProtectedWorkbook(props);
|
||||
}
|
||||
Common.NotificationCenter.trigger('edit:complete');
|
||||
|
@ -165,13 +165,14 @@ define([
|
|||
|
||||
win.show();
|
||||
} else {
|
||||
props.asc_setLockStructure(false);
|
||||
props.asc_setLockStructure();
|
||||
me.api.asc_setProtectedWorkbook(props);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
onSheetClick: function(state) {
|
||||
this.view.btnProtectSheet.toggle(!state, true);
|
||||
if (state) {
|
||||
var me = this,
|
||||
btn,
|
||||
|
@ -182,8 +183,7 @@ define([
|
|||
handler: function(result, value, props) {
|
||||
btn = result;
|
||||
if (result == 'ok') {
|
||||
props.asc_setSheet(true);
|
||||
value && props.asc_setPassword(value);
|
||||
props.asc_setSheet(value);
|
||||
me.api.asc_setProtectedSheet(props);
|
||||
}
|
||||
Common.NotificationCenter.trigger('edit:complete');
|
||||
|
@ -209,7 +209,7 @@ define([
|
|||
btn = result;
|
||||
if (result == 'ok') {
|
||||
if (me.api) {
|
||||
props.asc_setSheet(false, value);
|
||||
props.asc_setSheet(value && value.drmOptions ? value.drmOptions.asc_getPassword() : undefined);
|
||||
me.api.asc_setProtectedSheet(props);
|
||||
}
|
||||
Common.NotificationCenter.trigger('edit:complete');
|
||||
|
@ -222,7 +222,7 @@ define([
|
|||
|
||||
win.show();
|
||||
} else {
|
||||
props.asc_setSheet(false);
|
||||
props.asc_setSheet();
|
||||
me.api.asc_setProtectedSheet(props);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,10 +10,10 @@
|
|||
<tr>
|
||||
<td colspan=2>
|
||||
<div style="width: 169px;display: inline-block;"><span id="name-manager-sort-name" class="header-sorted">
|
||||
<label class="header"><%= scope.textRanges %></label><div style="width: 6px;height: 6px;"></div><span id="name-manager-sort-name-span" class="sort-direction img-commonctrl"></span>
|
||||
<label class="header"><%= scope.textRanges %></label><div style="width: 6px;height: 6px;"></div><span id="name-manager-sort-name-span" class="sort-direction caret"></span>
|
||||
</span></div>
|
||||
<div style="width: 115px;display: inline-block;"><span id="name-manager-sort-scope" class="header-sorted">
|
||||
<label class="header"><%= scope.textScope %></label><div style="width: 6px;height: 6px;"></div><span id="name-manager-sort-scope-span" class="sort-direction img-commonctrl"></span>
|
||||
<label class="header"><%= scope.textScope %></label><div style="width: 6px;height: 6px;"></div><span id="name-manager-sort-scope-span" class="sort-direction caret"></span>
|
||||
</span></div>
|
||||
<label class="header" style=""><%= scope.textDataRange %></label>
|
||||
</td>
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
|
||||
<div class="statusbar">
|
||||
<div id="status-tabs-scroll" class="status-group">
|
||||
<button id="status-btn-tabfirst" type="button" class="btn small btn-toolbar" data-hint="0" data-hint-direction="top" data-hint-offset="small" data-hint-title="F"><i class="icon toolbar__icon btn-firstitem"> </i></button>
|
||||
<button id="status-btn-tabback" type="button" class="btn small btn-toolbar" data-hint="0" data-hint-direction="top" data-hint-offset="small" data-hint-title="B"><i class="icon toolbar__icon btn-previtem"> </i></button>
|
||||
<button id="status-btn-tabnext" type="button" class="btn small btn-toolbar" data-hint="0" data-hint-direction="top" data-hint-offset="small" data-hint-title="N"><i class="icon toolbar__icon btn-nextitem"> </i></button>
|
||||
<button id="status-btn-tablast" type="button" class="btn small btn-toolbar" data-hint="0" data-hint-direction="top" data-hint-offset="small" data-hint-title="L"><i class="icon toolbar__icon btn-lastitem"> </i></button>
|
||||
<button id="status-btn-tabfirst" type="button" class="btn small btn-toolbar" data-hint="0" data-hint-direction="top" data-hint-offset="small" data-hint-title="Q"><i class="icon toolbar__icon btn-firstitem"> </i></button>
|
||||
<button id="status-btn-tabback" type="button" class="btn small btn-toolbar" data-hint="0" data-hint-direction="top" data-hint-offset="small" data-hint-title="G"><i class="icon toolbar__icon btn-previtem"> </i></button>
|
||||
<button id="status-btn-tabnext" type="button" class="btn small btn-toolbar" data-hint="0" data-hint-direction="top" data-hint-offset="small" data-hint-title="J"><i class="icon toolbar__icon btn-nextitem"> </i></button>
|
||||
<button id="status-btn-tablast" type="button" class="btn small btn-toolbar" data-hint="0" data-hint-direction="top" data-hint-offset="small" data-hint-title="K"><i class="icon toolbar__icon btn-lastitem"> </i></button>
|
||||
</div>
|
||||
<div id="status-addtabs-box" class="status-group">
|
||||
<button id="status-btn-addtab" type="button" class="btn small btn-toolbar" data-hint="0" data-hint-direction="top" data-hint-offset="small" data-hint-title="P"><i class="icon toolbar__icon btn-zoomup"> </i></button>
|
||||
<button id="status-btn-addtab" type="button" class="btn small btn-toolbar" data-hint="0" data-hint-direction="top" data-hint-offset="small" data-hint-title="X"><i class="icon toolbar__icon btn-zoomup"> </i></button>
|
||||
<div class="cnt-tabslist">
|
||||
<button id="status-btn-tabslist" type="button" class="btn small btn-toolbar dropdown-toggle" data-toggle="dropdown" data-hint="0" data-hint-direction="top" data-hint-offset="small" data-hint-title="S"><i class="icon toolbar__icon btn-sheet-list"> </i></button>
|
||||
<button id="status-btn-tabslist" type="button" class="btn small btn-toolbar dropdown-toggle" data-toggle="dropdown" data-hint="0" data-hint-direction="top" data-hint-offset="small" data-hint-title="V"><i class="icon toolbar__icon btn-sheet-list"> </i></button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="status-zoom-box" class="status-group">
|
||||
|
|
|
@ -92,7 +92,8 @@ define([
|
|||
disabled: true,
|
||||
dataHint: 1,
|
||||
dataHintDirection: 'left-top',
|
||||
dataHintOffset: [2, 14]
|
||||
dataHintOffset: [2, 14],
|
||||
dataHintTitle: 'S'
|
||||
});
|
||||
if ( !!this.options.miSave ) {
|
||||
this.miSave.setDisabled(this.options.miSave.isDisabled());
|
||||
|
@ -146,7 +147,8 @@ define([
|
|||
canFocused: false,
|
||||
dataHint: 1,
|
||||
dataHintDirection: 'left-top',
|
||||
dataHintOffset: [2, 14]
|
||||
dataHintOffset: [2, 14],
|
||||
dataHintTitle: 'P'
|
||||
});
|
||||
|
||||
this.miRename = new Common.UI.MenuItem({
|
||||
|
|
|
@ -1267,7 +1267,7 @@ define([ 'text!spreadsheeteditor/main/app/template/FormatRulesEditDlg.template',
|
|||
|
||||
setColor: function(color, control, picker) {
|
||||
picker = control ? control.colorPicker : picker;
|
||||
if (color) {
|
||||
if (color && !color.get_auto()) {
|
||||
if (color.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) {
|
||||
color = {color: Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()), effectValue: color.get_value() };
|
||||
} else {
|
||||
|
|
|
@ -152,6 +152,7 @@ define([ 'text!spreadsheeteditor/main/app/template/ProtectRangesDlg.template',
|
|||
|
||||
_setDefaults: function (props) {
|
||||
this.refreshRangeList(props, 0);
|
||||
this.currentSheet = this.api.asc_getActiveWorksheetIndex();
|
||||
this.api.asc_registerCallback('asc_onLockProtectedRangeManager', this.wrapEvents.onLockProtectedRangeManager);
|
||||
this.api.asc_registerCallback('asc_onUnLockProtectedRangeManager', this.wrapEvents.onUnLockProtectedRangeManager);
|
||||
this.api.asc_registerCallback('asc_onLockProtectedRange', this.wrapEvents.onLockProtectedRange);
|
||||
|
@ -167,6 +168,7 @@ define([ 'text!spreadsheeteditor/main/app/template/ProtectRangesDlg.template',
|
|||
name: ranges[i].asc_getName() || '',
|
||||
pwd: ranges[i].asc_isPassword(),
|
||||
range: ranges[i].asc_getSqref() || '',
|
||||
rangeId: ranges[i].asc_getId(),
|
||||
props: ranges[i],
|
||||
lock: (id!==null && id!==undefined),
|
||||
lockuser: (id) ? (this.isUserVisible(id) ? this.getUserName(id) : this.lockText) : this.guestText
|
||||
|
@ -344,7 +346,7 @@ define([ 'text!spreadsheeteditor/main/app/template/ProtectRangesDlg.template',
|
|||
return true;
|
||||
},
|
||||
|
||||
onSelectRangeItem: function(lisvView, itemView, record) {
|
||||
onSelectRangeItem: function(listView, itemView, record) {
|
||||
if (!record) return;
|
||||
|
||||
this.userTipHide();
|
||||
|
@ -390,8 +392,8 @@ define([ 'text!spreadsheeteditor/main/app/template/ProtectRangesDlg.template',
|
|||
if (this.currentSheet !== index) return;
|
||||
this.locked = true;
|
||||
this.updateButtons();
|
||||
if (this.userTooltip===true && this.rulesList.cmpEl.find('.lock-user').length>0)
|
||||
this.rulesList.cmpEl.on('mouseover', _.bind(this.onMouseOverLock, this)).on('mouseout', _.bind(this.onMouseOutLock, this));
|
||||
if (this.userTooltip===true && this.rangeList.cmpEl.find('.lock-user').length>0)
|
||||
this.rangeList.cmpEl.on('mouseover', _.bind(this.onMouseOverLock, this)).on('mouseout', _.bind(this.onMouseOutLock, this));
|
||||
},
|
||||
|
||||
onUnLockProtectedRangeManager: function(index) {
|
||||
|
@ -400,23 +402,23 @@ define([ 'text!spreadsheeteditor/main/app/template/ProtectRangesDlg.template',
|
|||
this.updateButtons();
|
||||
},
|
||||
|
||||
onLockProtectedRange: function(index, ruleId, userId) {
|
||||
onLockProtectedRange: function(index, rangeId, userId) {
|
||||
if (this.currentSheet !== index) return;
|
||||
var store = this.rulesList.store,
|
||||
rec = store.findWhere({ruleId: ruleId});
|
||||
var store = this.rangeList.store,
|
||||
rec = store.findWhere({rangeId: rangeId});
|
||||
if (rec) {
|
||||
rec.set('lockuser', (userId) ? (this.isUserVisible(userId) ? this.getUserName(userId) : this.lockText) : this.guestText);
|
||||
rec.set('lock', true);
|
||||
this.updateButtons();
|
||||
}
|
||||
if (this.userTooltip===true && this.rulesList.cmpEl.find('.lock-user').length>0)
|
||||
this.rulesList.cmpEl.on('mouseover', _.bind(this.onMouseOverLock, this)).on('mouseout', _.bind(this.onMouseOutLock, this));
|
||||
if (this.userTooltip===true && this.rangeList.cmpEl.find('.lock-user').length>0)
|
||||
this.rangeList.cmpEl.on('mouseover', _.bind(this.onMouseOverLock, this)).on('mouseout', _.bind(this.onMouseOutLock, this));
|
||||
},
|
||||
|
||||
onUnLockProtectedRange: function(index, ruleId) {
|
||||
onUnLockProtectedRange: function(index, rangeId) {
|
||||
if (this.currentSheet !== index) return;
|
||||
var store = this.rulesList.store,
|
||||
rec = store.findWhere({ruleId: ruleId});
|
||||
var store = this.rangeList.store,
|
||||
rec = store.findWhere({rangeId: rangeId});
|
||||
if (rec) {
|
||||
rec.set('lockuser', '');
|
||||
rec.set('lock', false);
|
||||
|
|
|
@ -274,14 +274,18 @@ define([ 'text!spreadsheeteditor/main/app/template/SortDialog.template',
|
|||
if (levelProps) {
|
||||
var levelColors = (levelSort==Asc.c_oAscSortOptions.ByColorFill) ? levelProps.asc_getColorsFill() : levelProps.asc_getColorsFont();
|
||||
levelColors.forEach(function(item, index) {
|
||||
if (item)
|
||||
if (item) {
|
||||
var value = Common.Utils.ThemeColor.getHexColor(item.get_r(), item.get_g(), item.get_b()).toLocaleUpperCase();
|
||||
color_data.push({
|
||||
value: Common.Utils.ThemeColor.getHexColor(item.get_r(), item.get_g(), item.get_b()).toLocaleUpperCase(),
|
||||
value: value,
|
||||
displayValue: '',
|
||||
color: item
|
||||
color: item,
|
||||
styleObj: {'background-color': '#' + value},
|
||||
styleStr: 'background-color: #' + value + ';'
|
||||
});
|
||||
else
|
||||
color_data.unshift({ value: -1, displayValue: (levelSort==Asc.c_oAscSortOptions.ByColorFill) ? me.textNone : me.textAuto , color: null});
|
||||
} else
|
||||
color_data.unshift({ value: -1, displayValue: (levelSort==Asc.c_oAscSortOptions.ByColorFill) ? me.textNone : me.textAuto , color: null,
|
||||
styleObj: {'background-color': 'transparent' }, styleStr: 'background-color:transparent;'});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -380,12 +380,11 @@ define([
|
|||
|
||||
var customizeStatusBarMenuTemplate = _.template('<a id="<%= id %>" tabindex="-1" type="menuitem">'+
|
||||
'<div style="position: relative;">'+
|
||||
'<div style="position: absolute; left: 0; width: 85px;"><%= caption %></div>' +
|
||||
'<label style="width: 100%; overflow: hidden; text-overflow: ellipsis; text-align: right; vertical-align: bottom; padding-left: 85px; color: silver;cursor: pointer;"><%= options.exampleval ? options.exampleval : "" %></label>' +
|
||||
'<div class="item-caption"><%= caption %></div>' +
|
||||
'<label class="item-value"><%= options.exampleval ? options.exampleval : "" %></label>' +
|
||||
'</div></a>');
|
||||
|
||||
this.customizeStatusBarMenu = new Common.UI.Menu({
|
||||
style: 'margin-top: 0px; margin-left: -7px;',
|
||||
menuAlign: 'bl-tl',
|
||||
menuAlignEl: $(this.el),
|
||||
items: [
|
||||
|
@ -553,9 +552,7 @@ define([
|
|||
iconTitle : name,
|
||||
iconVisible : name!==''
|
||||
};
|
||||
|
||||
this.api.asc_isWorksheetHidden(i)? hidentems.push(tab) : items.push(tab);
|
||||
|
||||
allItems.push(tab);
|
||||
}
|
||||
|
||||
|
@ -573,13 +570,15 @@ define([
|
|||
this.tabbar.add(items);
|
||||
|
||||
allItems.forEach(function(item){
|
||||
var hidden = me.api.asc_isWorksheetHidden(item.sheetindex);
|
||||
me.sheetListMenu.addItem(new Common.UI.MenuItem({
|
||||
style: 'white-space: pre',
|
||||
caption: Common.Utils.String.htmlEncode(item.label),
|
||||
value: item.sheetindex,
|
||||
checkable: true,
|
||||
checked: item.active,
|
||||
hidden: me.api.asc_isWorksheetHidden(item.sheetindex),
|
||||
hidden: hidden,
|
||||
visible: !hidden || !wbprotected,
|
||||
textHidden: me.itemHidden,
|
||||
template: _.template([
|
||||
'<a id="<%= id %>" style="<%= style %>" tabindex="-1" type="menuitem" <% if (options.hidden) { %> data-hidden="true" <% } %>>',
|
||||
|
@ -600,7 +599,7 @@ define([
|
|||
if (!this.tabbar.isTabVisible(sindex))
|
||||
this.tabbar.setTabVisible(sindex);
|
||||
|
||||
this.btnAddWorksheet.setDisabled(me.mode.isDisconnected || me.api.asc_isWorkbookLocked() || me.api.asc_isProtectedWorkbook() || me.api.isCellEdited);
|
||||
this.btnAddWorksheet.setDisabled(me.mode.isDisconnected || me.api.asc_isWorkbookLocked() || wbprotected || me.api.isCellEdited);
|
||||
if (this.mode.isEdit) {
|
||||
this.tabbar.addDataHint(_.findIndex(items, function (item) {
|
||||
return item.sheetindex === sindex;
|
||||
|
@ -859,6 +858,13 @@ define([
|
|||
this.tabBarBox.css('right', '0px');
|
||||
}
|
||||
this.boxZoom.find('.separator').css('border-left-color', visible ? '' : 'transparent');
|
||||
|
||||
if (this.statusMessage) {
|
||||
var status = this.getStatusMessage(this.statusMessage);
|
||||
if (status !== this.boxAction.text().trim()) {
|
||||
this.labelAction.text(status);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
updateVisibleItemsBoxMath: function () {
|
||||
|
@ -963,8 +969,19 @@ define([
|
|||
);
|
||||
},
|
||||
|
||||
getStatusMessage: function (message) {
|
||||
var _message;
|
||||
if (this.isCompact && message.length > 17 && this.boxAction.width() < 180) {
|
||||
_message = message.substr(0, 17) + '...'
|
||||
} else {
|
||||
_message = message;
|
||||
}
|
||||
return _message;
|
||||
},
|
||||
|
||||
showStatusMessage: function(message) {
|
||||
this.labelAction.text(message);
|
||||
this.statusMessage = message;
|
||||
this.labelAction.text(this.getStatusMessage(message));
|
||||
this.customizeStatusBarMenu.items.forEach(function (item) {
|
||||
if (item.options.id === 'saved-status') {
|
||||
item.options.exampleval = message;
|
||||
|
@ -983,6 +1000,7 @@ define([
|
|||
|
||||
clearStatusMessage: function() {
|
||||
this.labelAction.text('');
|
||||
this.statusMessage = undefined;
|
||||
},
|
||||
|
||||
sheetIndexText : 'Sheet {0} of {1}',
|
||||
|
|
|
@ -197,9 +197,9 @@ define([
|
|||
cls : 'btn-toolbar',
|
||||
iconCls : 'toolbar__icon btn-paste',
|
||||
lock : [/*_set.editCell,*/ _set.coAuth, _set.lostConnect],
|
||||
dataHint: '1',
|
||||
dataHintDirection: 'bottom',
|
||||
dataHintTitle: 'P'
|
||||
dataHint : '1',
|
||||
dataHintDirection: 'top',
|
||||
dataHintTitle: 'V'
|
||||
});
|
||||
|
||||
me.btnUndo = new Common.UI.Button({
|
||||
|
@ -208,7 +208,10 @@ define([
|
|||
iconCls : 'toolbar__icon btn-undo',
|
||||
disabled : true,
|
||||
lock : [_set.lostConnect],
|
||||
signals : ['disabled']
|
||||
signals : ['disabled'],
|
||||
dataHint : '1',
|
||||
dataHintDirection: 'bottom',
|
||||
dataHintTitle: 'Z'
|
||||
});
|
||||
|
||||
me.btnRedo = new Common.UI.Button({
|
||||
|
@ -217,7 +220,10 @@ define([
|
|||
iconCls : 'toolbar__icon btn-redo',
|
||||
disabled : true,
|
||||
lock : [_set.lostConnect],
|
||||
signals : ['disabled']
|
||||
signals : ['disabled'],
|
||||
dataHint : '1',
|
||||
dataHintDirection: 'bottom',
|
||||
dataHintTitle: 'Y'
|
||||
});
|
||||
|
||||
if ( config.isEditDiagram ) {
|
||||
|
@ -353,14 +359,14 @@ define([
|
|||
Common.UI.Mixtbar.prototype.initialize.call(this, {
|
||||
template: _.template(template),
|
||||
tabs: [
|
||||
{ caption: me.textTabFile, action: 'file', extcls: 'canedit', layoutname: 'toolbar-file', haspanel:false},
|
||||
{ caption: me.textTabHome, action: 'home', extcls: 'canedit'},
|
||||
{ caption: me.textTabInsert, action: 'ins', extcls: 'canedit'},
|
||||
{caption: me.textTabLayout, action: 'layout', extcls: 'canedit', layoutname: 'toolbar-layout'},
|
||||
{caption: me.textTabFormula, action: 'formula', extcls: 'canedit'},
|
||||
{caption: me.textTabData, action: 'data', extcls: 'canedit'},
|
||||
{ caption: me.textTabFile, action: 'file', extcls: 'canedit', layoutname: 'toolbar-file', haspanel:false, dataHintTitle: 'F'},
|
||||
{ caption: me.textTabHome, action: 'home', extcls: 'canedit', dataHintTitle: 'H'},
|
||||
{ caption: me.textTabInsert, action: 'ins', extcls: 'canedit', dataHintTitle: 'I'},
|
||||
{caption: me.textTabLayout, action: 'layout', extcls: 'canedit', layoutname: 'toolbar-layout', dataHintTitle: 'L'},
|
||||
{caption: me.textTabFormula, action: 'formula', extcls: 'canedit', dataHintTitle: 'O'},
|
||||
{caption: me.textTabData, action: 'data', extcls: 'canedit', dataHintTitle: 'D'},
|
||||
undefined, undefined, undefined,
|
||||
{caption: me.textTabView, action: 'view', extcls: 'canedit'}
|
||||
{caption: me.textTabView, action: 'view', extcls: 'canedit', dataHintTitle: 'W'}
|
||||
]}
|
||||
);
|
||||
|
||||
|
@ -408,7 +414,10 @@ define([
|
|||
cls : 'btn-toolbar',
|
||||
iconCls : 'toolbar__icon btn-print no-mask',
|
||||
lock : [_set.editCell, _set.cantPrint, _set.disableOnStart],
|
||||
signals: ['disabled']
|
||||
signals: ['disabled'],
|
||||
dataHint : '1',
|
||||
dataHintDirection: 'top',
|
||||
dataHintTitle: 'P'
|
||||
});
|
||||
|
||||
me.btnSave = new Common.UI.Button({
|
||||
|
@ -416,7 +425,10 @@ define([
|
|||
cls : 'btn-toolbar',
|
||||
iconCls : 'toolbar__icon no-mask ' + me.btnSaveCls,
|
||||
lock : [_set.lostConnect],
|
||||
signals : ['disabled']
|
||||
signals : ['disabled'],
|
||||
dataHint : '1',
|
||||
dataHintDirection: 'bottom',
|
||||
dataHintTitle: 'S'
|
||||
});
|
||||
me.btnCollabChanges = me.btnSave;
|
||||
|
||||
|
@ -1477,11 +1489,11 @@ define([
|
|||
|
||||
me.mnuCustomScale = new Common.UI.MenuItem({
|
||||
template: _.template([
|
||||
'<div class="checkable custom-scale" style="padding: 5px 20px;font-weight: normal;line-height: 1.42857143;font-size: 11px;height: 32px;"',
|
||||
'<div class="checkable custom-scale" style="padding: 5px 5px 5px 20px;font-weight: normal;line-height: 1.42857143;font-size: 11px;height: 32px;"',
|
||||
'<% if(!_.isUndefined(options.stopPropagation)) { %>',
|
||||
'data-stopPropagation="true"',
|
||||
'<% } %>', '>',
|
||||
'<label class="title" style="padding-top: 3px;">' + me.textScale + '</label>',
|
||||
'<label class="title" style="padding-top: 3px;padding-right: 5px;">' + me.textScale + '</label>',
|
||||
'<button id="custom-scale-up" type="button" style="float:right;" class="btn small btn-toolbar"><i class="icon toolbar__icon btn-zoomup"> </i></button>',
|
||||
'<label id="value-custom-scale" style="float:right;padding: 3px 3px;min-width: 40px; text-align: center;"></label>',
|
||||
'<button id="custom-scale-down" type="button" style="float:right;" class="btn small btn-toolbar"><i class="icon toolbar__icon btn-zoomdown"> </i></button>',
|
||||
|
@ -1616,7 +1628,7 @@ define([
|
|||
Common.UI.Mixtbar.prototype.initialize.call(this, {
|
||||
template: _.template(template_view),
|
||||
tabs: [
|
||||
{caption: me.textTabFile, action: 'file', layoutname: 'toolbar-file', haspanel:false}
|
||||
{caption: me.textTabFile, action: 'file', layoutname: 'toolbar-file', haspanel:false, dataHintTitle: 'F'}
|
||||
]
|
||||
}
|
||||
);
|
||||
|
|
|
@ -749,8 +749,8 @@
|
|||
"SSE.Controllers.Main.requestEditFailedTitleText": "Access denied",
|
||||
"SSE.Controllers.Main.saveErrorText": "An error has occurred while saving the file.",
|
||||
"SSE.Controllers.Main.saveErrorTextDesktop": "This file cannot be saved or created.<br>Possible reasons are: <br>1. The file is read-only. <br>2. The file is being edited by other users. <br>3. The disk is full or corrupted.",
|
||||
"SSE.Controllers.Main.savePreparingText": "Preparing to save",
|
||||
"SSE.Controllers.Main.savePreparingTitle": "Preparing to save. Please wait...",
|
||||
"del_SSE.Controllers.Main.savePreparingText": "Preparing to save",
|
||||
"del_SSE.Controllers.Main.savePreparingTitle": "Preparing to save. Please wait...",
|
||||
"SSE.Controllers.Main.saveTextText": "Saving spreadsheet...",
|
||||
"SSE.Controllers.Main.saveTitleText": "Saving Spreadsheet",
|
||||
"SSE.Controllers.Main.scriptLoadError": "The connection is too slow, some of the components could not be loaded. Please reload the page.",
|
||||
|
@ -775,7 +775,7 @@
|
|||
"SSE.Controllers.Main.textNoLicenseTitle": "License limit reached",
|
||||
"SSE.Controllers.Main.textPaidFeature": "Paid feature",
|
||||
"SSE.Controllers.Main.textPleaseWait": "The operation might take more time than expected. Please wait...",
|
||||
"SSE.Controllers.Main.textRecalcFormulas": "Calculating formulas...",
|
||||
"del_SSE.Controllers.Main.textRecalcFormulas": "Calculating formulas...",
|
||||
"SSE.Controllers.Main.textRemember": "Remember my choice for all files",
|
||||
"SSE.Controllers.Main.textRenameError": "User name must not be empty.",
|
||||
"SSE.Controllers.Main.textRenameLabel": "Enter a name to be used for collaboration",
|
||||
|
@ -785,7 +785,7 @@
|
|||
"SSE.Controllers.Main.textTryUndoRedoWarn": "The Undo/Redo functions are disabled for the Fast co-editing mode.",
|
||||
"SSE.Controllers.Main.textYes": "Yes",
|
||||
"SSE.Controllers.Main.titleLicenseExp": "License expired",
|
||||
"SSE.Controllers.Main.titleRecalcFormulas": "Calculating...",
|
||||
"del_SSE.Controllers.Main.titleRecalcFormulas": "Calculating...",
|
||||
"SSE.Controllers.Main.titleServerVersion": "Editor updated",
|
||||
"SSE.Controllers.Main.txtAccent": "Accent",
|
||||
"SSE.Controllers.Main.txtAll": "(All)",
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
"d": "Retorna o número que representa a data no código data-hora"
|
||||
},
|
||||
"DATEDIF": {
|
||||
"a": "( start-date , end-date , unit )",
|
||||
"d": "Date and time function used to return the difference between two date values (start date and end date), based on the interval (unit) specified"
|
||||
"a": "(data_inicial; data_final; unidade)",
|
||||
"d": "Calcula o número de dias, meses ou anos entre duas datas"
|
||||
},
|
||||
"DATEVALUE": {
|
||||
"a": "(texto_data)",
|
||||
|
@ -396,8 +396,8 @@
|
|||
"d": "Retorna a posição inicial de uma cadeia de texto encontrada em outra cadeia de texto. PROCURAR diferencia maiúsculas de minúsculas"
|
||||
},
|
||||
"FINDB": {
|
||||
"a": "( string-1 , string-2 [ , start-pos ] )",
|
||||
"d": "Text and data function used to find the specified substring (string-1) within a string (string-2) and is intended for languages the double-byte character set (DBCS) like Japanese, Chinese, Korean etc."
|
||||
"a": "(texto_procurado; no_texto; [núm_inicial])",
|
||||
"d": "Localiza uma cadeia de texto em uma segunda cadeia de texto e retorna o número da posição inicial da primeira cadeia de texto do primeiro caractere da segunda cadeia de texto, é para ser usada com idiomas que utilizam o DBCS (conjunto de caracteres de dois bytes) - o japonês, o chinês e o coreano."
|
||||
},
|
||||
"FIXED": {
|
||||
"a": "(núm; [decimais]; [sem_sep_milhar])",
|
||||
|
@ -408,16 +408,16 @@
|
|||
"d": "Retorna o número especificado de caracteres do início de uma cadeia de texto"
|
||||
},
|
||||
"LEFTB": {
|
||||
"a": "( string [ , number-chars ] )",
|
||||
"d": "Text and data function used to extract the substring from the specified string starting from the left character and is intended for languages that use the double-byte character set (DBCS) like Japanese, Chinese, Korean etc."
|
||||
"a": "(texto; [núm_caract])",
|
||||
"d": "Retorna o primeiro caractere ou os primeiros caracteres em uma cadeia de texto com base no número de bytes especificado por você, é para ser usada com idiomas que utilizam o DBCS (conjunto de caracteres de dois bytes) - o japonês, o chinês e o coreano."
|
||||
},
|
||||
"LEN": {
|
||||
"a": "(texto)",
|
||||
"d": "Retorna o número de caracteres em uma cadeia de texto"
|
||||
},
|
||||
"LENB": {
|
||||
"a": "( string )",
|
||||
"d": "Text and data function used to analyse the specified string and return the number of characters it contains and is intended for languages that use the double-byte character set (DBCS) like Japanese, Chinese, Korean etc."
|
||||
"a": "(texto)",
|
||||
"d": "Retorna o número de bytes usados para representar os caracteres de uma cadeia de texto, é para ser usada com idiomas que utilizam o DBCS (conjunto de caracteres de dois bytes) - o japonês, o chinês e o coreano."
|
||||
},
|
||||
"LOWER": {
|
||||
"a": "(texto)",
|
||||
|
@ -428,8 +428,8 @@
|
|||
"d": "Retorna os caracteres do meio de uma cadeia de texto, tendo a posição e o comprimento especificados"
|
||||
},
|
||||
"MIDB": {
|
||||
"a": "( string , start-pos , number-chars )",
|
||||
"d": "Text and data function used to extract the characters from the specified string starting from any position and is intended for languages that use the double-byte character set (DBCS) like Japanese, Chinese, Korean etc."
|
||||
"a": "(texto; núm_inicial; núm_caract)",
|
||||
"d": "Retorna um número específico de caracteres de uma cadeia de texto, começando na posição especificada, com base no número de bytes especificado, é para ser usada com idiomas que utilizam o DBCS (conjunto de caracteres de dois bytes) - o japonês, o chinês e o coreano."
|
||||
},
|
||||
"NUMBERVALUE": {
|
||||
"a": "(texto; [separador_decimal]; [separador_grupo])",
|
||||
|
@ -444,8 +444,8 @@
|
|||
"d": "Substitui parte de uma cadeia de texto por uma cadeia diferente"
|
||||
},
|
||||
"REPLACEB": {
|
||||
"a": "( string-1, start-pos, number-chars, string-2 )",
|
||||
"d": "Text and data function used to replace a set of characters, based on the number of characters and the start position you specify, with a new set of characters and is intended for languages that use the double-byte character set (DBCS) like Japanese, Chinese, Korean etc."
|
||||
"a": "(texto_antigo; núm_inicial; núm_caract; novo_texto)",
|
||||
"d": "Substitui parte de uma cadeia de texto, com base no número de bytes especificado, por uma cadeia de texto diferente, é para ser usada com idiomas que utilizam o DBCS (conjunto de caracteres de dois bytes) - o japonês, o chinês e o coreano."
|
||||
},
|
||||
"REPT": {
|
||||
"a": "(texto; número_vezes)",
|
||||
|
@ -456,16 +456,16 @@
|
|||
"d": "Retorna o número de caracteres especificado do final de uma cadeia de texto"
|
||||
},
|
||||
"RIGHTB": {
|
||||
"a": "( string [ , number-chars ] )",
|
||||
"d": "Text and data function used to extract a substring from a string starting from the right-most character, based on the specified number of characters and is intended for languages that use the double-byte character set (DBCS) like Japanese, Chinese, Korean etc."
|
||||
"a": "(texto; [núm_caract])",
|
||||
"d": "Retorna o último caractere ou os últimos caracteres em uma cadeia de texto, com base no número de bytes especificado, é para ser usada com idiomas que utilizam o DBCS (conjunto de caracteres de dois bytes) - o japonês, o chinês e o coreano."
|
||||
},
|
||||
"SEARCH": {
|
||||
"a": "(texto_procurado; no_texto; [núm_inicial])",
|
||||
"d": "Retorna o número do caractere no qual um caractere ou uma cadeia de texto foram localizados, sendo a leitura feita da esquerda para a direita (não distingue maiúsculas de minúsculas)"
|
||||
},
|
||||
"SEARCHB": {
|
||||
"a": "( string-1 , string-2 [ , start-pos ] )",
|
||||
"d": "Text and data function used to return the location of the specified substring in a string and is intended for languages that use the double-byte character set (DBCS) like Japanese, Chinese, Korean etc."
|
||||
"a": "(texto_procurado; no_texto; [núm_inicial])",
|
||||
"d": "Localiza uma cadeia de texto em uma segunda cadeia de texto e retorna o número da posição inicial da primeira cadeia de texto do primeiro caractere da segunda cadeia de texto, é para ser usada com idiomas que utilizam o DBCS (conjunto de caracteres de dois bytes) - o japonês, o chinês e o coreano."
|
||||
},
|
||||
"SUBSTITUTE": {
|
||||
"a": "(texto; texto_antigo; novo_texto; [núm_da_ocorrência])",
|
||||
|
@ -1348,8 +1348,8 @@
|
|||
"d": "Converte um numeral romano em arábico"
|
||||
},
|
||||
"ASC": {
|
||||
"a": "( text )",
|
||||
"d": "Text function for Double-byte character set (DBCS) languages, the function changes full-width (double-byte) characters to half-width (single-byte) characters"
|
||||
"a": "(texto)",
|
||||
"d": "Para idiomas do conjunto de caracteres de dois bytes (DBCS), a função altera os caracteres de largura total (byte duplo) para caracteres de meia largura (byte único)"
|
||||
},
|
||||
"ASIN": {
|
||||
"a": "(núm)",
|
||||
|
@ -1384,8 +1384,8 @@
|
|||
"d": "Arredonda um número para cima, para o inteiro mais próximo ou para o próximo múltiplo significativo"
|
||||
},
|
||||
"CEILING.PRECISE": {
|
||||
"a": "( x [ , significance ] )",
|
||||
"d": "Math and trigonometry function used to return a number that is rounded up to the nearest integer or to the nearest multiple of significance"
|
||||
"a": "(número; [significância])",
|
||||
"d": "Retorna um número que é arredondado para o inteiro mais próximo ou para o múltiplo mais próximo de significância"
|
||||
},
|
||||
"COMBIN": {
|
||||
"a": "(núm; núm_escolhido)",
|
||||
|
@ -1428,8 +1428,8 @@
|
|||
"d": "Converte radianos em graus"
|
||||
},
|
||||
"ECMA.CEILING": {
|
||||
"a": "( x, significance )",
|
||||
"d": "Math and trigonometry function used to round the number up to the nearest multiple of significance"
|
||||
"a": "(número; significância)",
|
||||
"d": "Arredonda um número para cima para o próximo múltiplo significativo"
|
||||
},
|
||||
"EVEN": {
|
||||
"a": "(núm)",
|
||||
|
@ -1452,8 +1452,8 @@
|
|||
"d": "Arredonda um número para baixo até o múltiplo ou a significância mais próxima"
|
||||
},
|
||||
"FLOOR.PRECISE": {
|
||||
"a": "( x [, significance] )",
|
||||
"d": "Math and trigonometry function used to return a number that is rounded down to the nearest integer or to the nearest multiple of significance"
|
||||
"a": "(número; [significância])",
|
||||
"d": "Retorna um número que é arredondado para baixo para o inteiro mais próximo ou para o múltiplo mais próximo de significância"
|
||||
},
|
||||
"FLOOR.MATH": {
|
||||
"a": "(número; [significância]; [modo])",
|
||||
|
@ -1468,8 +1468,8 @@
|
|||
"d": "Arredonda um número para baixo até o número inteiro mais próximo"
|
||||
},
|
||||
"ISO.CEILING": {
|
||||
"a": "( number [ , significance ] )",
|
||||
"d": "Math and trigonometry function used to return a number that is rounded up to the nearest integer or to the nearest multiple of significance regardless of the sign of the number. However, if the number or the significance is zero, zero is returned."
|
||||
"a": "(número; [significância])",
|
||||
"d": "Retorna um número que é arredondado para o inteiro mais próximo ou para o múltiplo mais próximo de significância. Independentemente do sinal de núm, um valor será arredondado. No entanto, se núm ou significância for zero, zero será retornado."
|
||||
},
|
||||
"LCM": {
|
||||
"a": "(núm1; [núm2]; ...)",
|
||||
|
@ -1720,8 +1720,8 @@
|
|||
"d": "Procura uma correspondência em um intervalo ou matriz e retorna o item correspondente de uma segunda matriz ou intervalo. Por padrão, é usada uma correspondência exata"
|
||||
},
|
||||
"CELL": {
|
||||
"a": "(info_type, [reference])",
|
||||
"d": "Information function used to return information about the formatting, location, or contents of a cell"
|
||||
"a": "(tipo_info; [referência])",
|
||||
"d": "Retorna informações sobre a formatação, o local ou o conteúdo de uma célula"
|
||||
},
|
||||
"ERROR.TYPE": {
|
||||
"a": "(val_erro)",
|
||||
|
|
|
@ -77,15 +77,21 @@
|
|||
display: inline-block;
|
||||
cursor: pointer;
|
||||
}
|
||||
.sort-direction {
|
||||
width: 7px;
|
||||
height: 7px;
|
||||
vertical-align: middle;
|
||||
border: 0;
|
||||
background-position: -85px -97px;
|
||||
}
|
||||
.sort-desc {
|
||||
background-position: -85px -104px;
|
||||
.caret {
|
||||
width: 4px;
|
||||
height: 4px;
|
||||
border: solid 1px @icon-normal-ie;
|
||||
border: solid 1px @icon-normal;
|
||||
border-bottom: none;
|
||||
border-right: none;
|
||||
background-image: none;
|
||||
|
||||
transition: transform 0.2s ease;
|
||||
transform: rotate(-135deg) translate(1px,1px);
|
||||
|
||||
&.sort-desc {
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -481,12 +481,27 @@
|
|||
|
||||
#statusbar-menu {
|
||||
.dropdown-menu {
|
||||
margin-top: 0;
|
||||
margin-left: -7px;
|
||||
li {
|
||||
> a {
|
||||
padding: 5px 12px 5px 26px;
|
||||
&::before {
|
||||
margin-left: -22px;
|
||||
}
|
||||
.item-caption {
|
||||
min-width: 98px;
|
||||
display: inline-block;
|
||||
}
|
||||
.item-value {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
text-align: right;
|
||||
vertical-align: bottom;
|
||||
padding-left: 5px;
|
||||
color: silver;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -226,7 +226,8 @@
|
|||
"unknownErrorText": "Unknown error.",
|
||||
"uploadImageExtMessage": "Unknown image format.",
|
||||
"uploadImageFileCountMessage": "No images uploaded.",
|
||||
"uploadImageSizeMessage": "The image is too big. The maximum size is 25 MB."
|
||||
"uploadImageSizeMessage": "The image is too big. The maximum size is 25 MB.",
|
||||
"textErrorPasswordIsNotCorrect": "The password you supplied is not correct.<br>Verify that the CAPS LOCK key is off and be sure to use the correct capitalization."
|
||||
},
|
||||
"LongActions": {
|
||||
"applyChangesTextText": "Loading data...",
|
||||
|
@ -262,7 +263,12 @@
|
|||
"txtEditingMode": "Set editing mode...",
|
||||
"uploadImageTextText": "Uploading image...",
|
||||
"uploadImageTitleText": "Uploading Image",
|
||||
"waitText": "Please, wait..."
|
||||
"waitText": "Please, wait...",
|
||||
"textErrorWrongPassword": "The password you supplied is not correct.",
|
||||
"textUnlockRange": "Unlock Range",
|
||||
"textUnlockRangeWarning": "A range you are trying to change is password protected.",
|
||||
"advDRMPassword": "Password",
|
||||
"textCancel": "Cancel"
|
||||
},
|
||||
"Statusbar": {
|
||||
"notcriticalErrorTitle": "Warning",
|
||||
|
|
|
@ -311,6 +311,10 @@ const ErrorController = inject('storeAppOptions')(({storeAppOptions, LoadingDocu
|
|||
config.msg = _t.errorLoadingFont;
|
||||
break;
|
||||
|
||||
case Asc.c_oAscError.ID.PasswordIsNotCorrect:
|
||||
config.msg = t('Error.textErrorPasswordIsNotCorrect');
|
||||
break;
|
||||
|
||||
default:
|
||||
config.msg = _t.errorDefaultMessage.replace('%1', id);
|
||||
break;
|
||||
|
|
|
@ -4,8 +4,9 @@ import { f7,Sheet,Popover } from 'framework7-react';
|
|||
import { Device } from '../../../../common/mobile/utils/device';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
|
||||
const FilterOptionsController = memo( () => {
|
||||
const FilterOptionsController = memo(props => {
|
||||
const { t } = useTranslation();
|
||||
const wsProps = props.wsProps;
|
||||
const _t = t('View.Edit', {returnObjects: true});
|
||||
const configRef = useRef();
|
||||
|
||||
|
@ -34,9 +35,12 @@ const FilterOptionsController = memo( () => {
|
|||
}
|
||||
}, []);
|
||||
|
||||
const onApiFilterOptions= (config) => {
|
||||
const onApiFilterOptions = (config) => {
|
||||
setDataFilterCells(config);
|
||||
configRef.current = config;
|
||||
|
||||
if (wsProps.PivotTables && config.asc_getPivotObj() ||
|
||||
wsProps.AutoFilter && !config.asc_getPivotObj()) return;
|
||||
|
||||
setCheckSort((config.asc_getSortState() === Asc.c_oAscSortOptions.Ascending ? 'down' : '') ||
|
||||
(config.asc_getSortState() === Asc.c_oAscSortOptions.Descending ? 'up' : ''));
|
||||
|
|
|
@ -2,6 +2,7 @@ import React, { useEffect } from 'react';
|
|||
import { f7 } from 'framework7-react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import IrregularStack from "../../../../common/mobile/utils/IrregularStack";
|
||||
import { Device } from '../../../../common/mobile/utils/device';
|
||||
|
||||
const LongActionsController = () => {
|
||||
const {t} = useTranslation();
|
||||
|
@ -183,7 +184,9 @@ const LongActionsController = () => {
|
|||
|
||||
};
|
||||
|
||||
const onConfirmAction = (id, apiCallback) => {
|
||||
const onConfirmAction = (id, apiCallback, data) => {
|
||||
const api = Common.EditorApi.get();
|
||||
|
||||
if (id === Asc.c_oAscConfirm.ConfirmReplaceRange || id === Asc.c_oAscConfirm.ConfirmReplaceFormulaInTable) {
|
||||
f7.dialog.create({
|
||||
title: _t.notcriticalErrorTitle,
|
||||
|
@ -210,6 +213,27 @@ const LongActionsController = () => {
|
|||
}},
|
||||
],
|
||||
}).open();
|
||||
} else if (id == Asc.c_oAscConfirm.ConfirmChangeProtectRange) {
|
||||
f7.dialog.create({
|
||||
title: t('LongActions.textUnlockRange'),
|
||||
text: t('LongActions.textUnlockRangeWarning'),
|
||||
content: Device.ios ?
|
||||
'<div class="input-field"><input type="password" class="modal-text-input" name="modal-password" placeholder="' + _t.advDRMPassword + '" id="modal-password"></div>' : '<div class="input-field"><div class="inputs-list list inline-labels"><ul><li><div class="item-content item-input"><div class="item-inner"><div class="item-input-wrap"><input type="password" name="modal-password" id="modal-password" placeholder=' + _t.advDRMPassword + '></div></div></div></li></ul></div></div>',
|
||||
buttons: [
|
||||
{
|
||||
text: t('LongActions.textOk'),
|
||||
onClick: () => {
|
||||
let password = document.getElementById('modal-password').value;
|
||||
if(apiCallback) {
|
||||
apiCallback(true ? api.asc_checkProtectedRangesPassword(password, data) : false, false);
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
text: t('LongActions.textCancel')
|
||||
}
|
||||
]
|
||||
}).open();
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -1,79 +1,79 @@
|
|||
|
||||
.chart-types .thumb {
|
||||
@relativepath: '../../resources/img';
|
||||
//@relativepath: '../../resources/img';
|
||||
&.bar-normal {
|
||||
background-image: url('@{relativepath}/charts/chart-03.png');
|
||||
background-image: url('@{app-image-path}/charts/chart-03.png');
|
||||
}
|
||||
&.bar-stacked {
|
||||
background-image: url('@{relativepath}/charts/chart-02.png');
|
||||
background-image: url('@{app-image-path}/charts/chart-02.png');
|
||||
}
|
||||
&.bar-pstacked {
|
||||
background-image: url('@{relativepath}/charts/chart-01.png');
|
||||
background-image: url('@{app-image-path}/charts/chart-01.png');
|
||||
}
|
||||
&.line-normal {
|
||||
background-image: url('@{relativepath}/charts/chart-06.png');
|
||||
background-image: url('@{app-image-path}/charts/chart-06.png');
|
||||
}
|
||||
&.line-stacked {
|
||||
background-image: url('@{relativepath}/charts/chart-05.png');
|
||||
background-image: url('@{app-image-path}/charts/chart-05.png');
|
||||
}
|
||||
&.line-pstacked {
|
||||
background-image: url('@{relativepath}/charts/chart-04.png');
|
||||
background-image: url('@{app-image-path}/charts/chart-04.png');
|
||||
}
|
||||
&.hbar-normal {
|
||||
background-image: url('@{relativepath}/charts/chart-09.png');
|
||||
background-image: url('@{app-image-path}/charts/chart-09.png');
|
||||
}
|
||||
&.hbar-stacked {
|
||||
background-image: url('@{relativepath}/charts/chart-08.png');
|
||||
background-image: url('@{app-image-path}/charts/chart-08.png');
|
||||
}
|
||||
&.hbar-pstacked {
|
||||
background-image: url('@{relativepath}/charts/chart-07.png');
|
||||
background-image: url('@{app-image-path}/charts/chart-07.png');
|
||||
}
|
||||
&.area-normal {
|
||||
background-image: url('@{relativepath}/charts/chart-12.png');
|
||||
background-image: url('@{app-image-path}/charts/chart-12.png');
|
||||
}
|
||||
&.area-stacked {
|
||||
background-image: url('@{relativepath}/charts/chart-11.png');
|
||||
background-image: url('@{app-image-path}/charts/chart-11.png');
|
||||
}
|
||||
&.area-pstacked {
|
||||
background-image: url('@{relativepath}/charts/chart-10.png');
|
||||
background-image: url('@{app-image-path}/charts/chart-10.png');
|
||||
}
|
||||
&.pie {
|
||||
background-image: url('@{relativepath}/charts/chart-13.png');
|
||||
background-image: url('@{app-image-path}/charts/chart-13.png');
|
||||
}
|
||||
&.doughnut {
|
||||
background-image: url('@{relativepath}/charts/chart-14.png');
|
||||
background-image: url('@{app-image-path}/charts/chart-14.png');
|
||||
}
|
||||
&.pie3d {
|
||||
background-image: url('@{relativepath}/charts/chart-22.png');
|
||||
background-image: url('@{app-image-path}/charts/chart-22.png');
|
||||
}
|
||||
&.scatter {
|
||||
background-image: url('@{relativepath}/charts/chart-15.png');
|
||||
background-image: url('@{app-image-path}/charts/chart-15.png');
|
||||
}
|
||||
&.stock {
|
||||
background-image: url('@{relativepath}/charts/chart-16.png');
|
||||
background-image: url('@{app-image-path}/charts/chart-16.png');
|
||||
}
|
||||
&.line3d {
|
||||
background-image: url('@{relativepath}/charts/chart-21.png');
|
||||
background-image: url('@{app-image-path}/charts/chart-21.png');
|
||||
}
|
||||
&.bar3dnormal {
|
||||
background-image: url('@{relativepath}/charts/chart-17.png');
|
||||
background-image: url('@{app-image-path}/charts/chart-17.png');
|
||||
}
|
||||
&.bar3dstack {
|
||||
background-image: url('@{relativepath}/charts/chart-18.png');
|
||||
background-image: url('@{app-image-path}/charts/chart-18.png');
|
||||
}
|
||||
&.bar3dpstack {
|
||||
background-image: url('@{relativepath}/charts/chart-19.png');
|
||||
background-image: url('@{app-image-path}/charts/chart-19.png');
|
||||
}
|
||||
&.hbar3dnormal {
|
||||
background-image: url('@{relativepath}/charts/chart-25.png');
|
||||
background-image: url('@{app-image-path}/charts/chart-25.png');
|
||||
}
|
||||
&.hbar3dstack {
|
||||
background-image: url('@{relativepath}/charts/chart-24.png');
|
||||
background-image: url('@{app-image-path}/charts/chart-24.png');
|
||||
}
|
||||
&.hbar3dpstack {
|
||||
background-image: url('@{relativepath}/charts/chart-23.png');
|
||||
background-image: url('@{app-image-path}/charts/chart-23.png');
|
||||
}
|
||||
&.bar3dpsnormal {
|
||||
background-image: url('@{relativepath}/charts/chart-20.png');
|
||||
background-image: url('@{app-image-path}/charts/chart-20.png');
|
||||
}
|
||||
}
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue