Compare commits

..

68 commits

Author SHA1 Message Date
Lea 4eebaab5e6
Enable mobile editing 2023-01-12 14:28:17 +01:00
papacarlo ddec589b37 Merge branch hotfix/v7.2.2 into master 2022-12-20 08:00:10 +00:00
Maxim Kadushkin 7b03f08adc [desktop] for bug 60014 2022-12-07 16:54:48 +03:00
Maxim Kadushkin 3208a4bdf2 [desktop] hide panel before "print" command 2022-12-07 16:48:55 +03:00
Maxim Kadushkin 9e608f168d [desktop] for bug 60014 2022-12-06 21:43:43 +03:00
Maxim Kadushkin f91bc6e50e [desktop] for bug 60025 2022-12-06 20:24:15 +03:00
maxkadushkin b5c282872d
Merge pull request #2105 from ONLYOFFICE/fix/bug-59971
For Bug 59971
2022-12-04 22:50:14 +03:00
Julia Radzhabova 37b37425af For Bug 59971 2022-12-04 16:56:12 +03:00
Maxim Kadushkin f7eccb611f [DE] fix bug 59971 2022-12-03 23:27:22 +03:00
Julia Radzhabova f453f92a32
Merge pull request #2102 from ONLYOFFICE/fix/translation
Update translation. Fix Bug 59947
2022-12-02 14:24:26 +03:00
Julia Radzhabova b6d7e60624 Update translation. Fix Bug 59947 2022-12-02 14:18:13 +03:00
Maxim Kadushkin 6b269291ae [all] hide "quick print" button for macos 2022-12-02 00:14:31 +03:00
Julia Radzhabova 9e80367822
Merge pull request #2098 from ONLYOFFICE/fix/bugfix
Fix Bug 59959
2022-11-30 22:00:24 +03:00
Julia Radzhabova 2bcb91c15c Fix Bug 59959 2022-11-30 21:53:27 +03:00
Maxim Kadushkin 215f2bf28d [desktop] debug 2022-11-30 21:18:32 +03:00
Maxim Kadushkin 6543e5bb49 [SSE PE] fix bug 59951 2022-11-30 15:36:56 +03:00
Julia Radzhabova 9940b59d38
Merge pull request #2095 from ONLYOFFICE/fix/bugfix
[SSE] Try printing in internal spreadsheet editor
2022-11-30 01:37:54 +03:00
Julia Radzhabova 2c48d5c8cb [SSE] Try printing in internal spreadsheet editor 2022-11-30 01:31:59 +03:00
Julia Radzhabova 1ef412c1ee
Merge pull request #2091 from ONLYOFFICE/fix/bugfix
[DE][PE] Fix Bug 59911
2022-11-28 14:13:07 +03:00
Julia Radzhabova 70d6ecb6dc [DE][PE] Fix Bug 59911 2022-11-28 14:06:48 +03:00
Julia Radzhabova 43617a9729
Merge pull request #2087 from ONLYOFFICE/fix/translation
Update translation. Fix Bug 59887
2022-11-25 17:37:42 +03:00
Julia Radzhabova 30d35b42eb Update translation. Fix Bug 59887 2022-11-25 17:31:35 +03:00
Maxim Kadushkin 7e7f519caf [desktop] refactoring 2022-11-22 19:28:54 +03:00
Julia Radzhabova 62d74b444c
Merge pull request #2077 from ONLYOFFICE/fix/quick-preview-warning
Show warning before first click on Quick print button
2022-11-22 01:15:13 +03:00
Julia Radzhabova 7d0ac791aa Show warning before first click on Quick print button 2022-11-22 00:56:54 +03:00
Maxim Kadushkin 8e25f9c027 [desktop] event on show 'quick print' button 2022-11-22 00:28:55 +03:00
Maxim Kadushkin 4fa78dad3a [desktop] 'file locked' message didn't open 2022-11-21 13:04:25 +03:00
Julia Radzhabova 58203c0989
Merge pull request #2071 from ONLYOFFICE/fix/quick-print
Change button's order
2022-11-18 19:17:19 +03:00
Julia Radzhabova aec1b4464d Change button's order 2022-11-18 19:09:50 +03:00
Julia Radzhabova c7f4687a2f
Merge pull request #2067 from ONLYOFFICE/fix/print-preview
Fix/print preview
2022-11-18 15:11:10 +03:00
Julia Radzhabova 7455c536ac Add translation 2022-11-18 15:03:47 +03:00
Julia Radzhabova 033c44d473 [DE][PE] Show error when printing several pages 2022-11-18 14:47:58 +03:00
Julia Radzhabova 81fcfb05f0
Merge pull request #2065 from ONLYOFFICE/fix/print-preview
[DE][PE] Send paper size preset
2022-11-17 22:52:56 +03:00
Julia Radzhabova 8eb8226da2 [DE][PE] Send paper size preset 2022-11-17 22:47:18 +03:00
Julia Radzhabova 6f59e5771b
Merge pull request #2063 from ONLYOFFICE/fix/print-preview
[PE] Send paper size for print preview
2022-11-17 12:55:47 +03:00
Julia Radzhabova 640edd8a79 [PE] Send paper size for print preview 2022-11-17 12:49:11 +03:00
Maxim Kadushkin b825310d30 [desktop] changed "read only" file opening 2022-11-16 19:04:46 +03:00
Julia Radzhabova 4c4da4113f
Merge pull request #2059 from ONLYOFFICE/fix/print-preview
[DE] Send settings for first printing page
2022-11-16 15:45:52 +03:00
Julia Radzhabova db925cd1e8 [DE] Send settings for first printing page 2022-11-16 15:38:00 +03:00
Julia Radzhabova d535175dc1
Merge pull request #2058 from ONLYOFFICE/fix/quick-print
Fix/quick print
2022-11-16 14:52:39 +03:00
Julia Radzhabova 1401b51648 Merge branch 'hotfix/v7.2.2' into fix/quick-print 2022-11-16 14:46:00 +03:00
Julia Radzhabova 629af711e2 [PE][SSE] Add quick print button 2022-11-16 14:28:07 +03:00
Julia Radzhabova d4de267db2 Add icons for quick print/print preview 2022-11-16 14:25:12 +03:00
Julia Radzhabova 1ba9ddf351 [DE] Quick print 2022-11-16 12:46:49 +03:00
Maxim Kadushkin 2d2958e07b Merge branch 'hotfix/v7.2.2' of https://github.com/ONLYOFFICE/web-apps into hotfix/v7.2.2 2022-11-16 00:08:44 +03:00
Maxim Kadushkin 72fd49401f [desktop] get def printer name 2022-11-16 00:08:16 +03:00
Julia Radzhabova d2a87abfb5
Merge pull request #2055 from ONLYOFFICE/fix/print-preview
Fix/print preview
2022-11-15 23:40:14 +03:00
Julia Radzhabova 2a128bc539 [DE] Add quick print button 2022-11-15 21:45:25 +03:00
Julia Radzhabova c4536c0807 [PE] Add paper size. Send print settings to sdk. Enable print preview only for desktop. 2022-11-15 17:54:09 +03:00
Julia Radzhabova 53298b4aab [DE] Fix translation 2022-11-15 17:47:41 +03:00
Julia Radzhabova 24830cb70b [DE] Send print settings to sdk. Enable print preview only for desktop. 2022-11-15 16:45:28 +03:00
maxkadushkin 50bf470a63
Merge pull request #2051 from ONLYOFFICE/fix/refactoringLocks
Refactoring locks
2022-11-14 18:07:03 +03:00
Oleg Korshul a715c720ca Refactoring locks 2022-11-14 18:00:11 +03:00
Julia Radzhabova 6656f45b04
Merge pull request #2038 from ONLYOFFICE/fix/bugfix
[SSE] Fix bug 59466
2022-11-08 16:59:43 +03:00
JuliaSvinareva c0493d45ab [SSE] Fix bug 59466 2022-11-08 16:53:16 +03:00
Julia Radzhabova d499edb1f3
Merge pull request #2036 from ONLYOFFICE/feature/print-preview
Feature/print preview
2022-11-07 23:17:04 +03:00
Julia Radzhabova fcaeb143ba
Merge pull request #2032 from ONLYOFFICE/fix/bugfix
Fix Bug 59592
2022-11-01 16:29:54 +03:00
Julia Radzhabova 1ac0d04f2e Fix Bug 59592 2022-11-01 16:13:30 +03:00
Julia Radzhabova 42b75058c5 [PE] Show print preview 2022-10-27 15:40:52 +03:00
Julia Radzhabova d4aed51fdf [DE] Print preview refactoring 2022-10-27 15:29:06 +03:00
Julia Radzhabova 591cf88d5e [DE] Disable page settings in print preview 2022-10-26 22:13:10 +03:00
Julia Radzhabova 3dffb8a7ba [DE] Fix print preview 2022-10-26 00:22:23 +03:00
Julia Radzhabova e0c8c84c72 [DE] Refactoring custom margins 2022-10-25 23:56:46 +03:00
Julia Radzhabova 0020e55ea0 [DE] Fix pages numbers for printing 2022-10-25 21:40:16 +03:00
Julia Radzhabova d8600b8a2a [DE] Refactoring print preview, hide preview for mac os 2022-10-24 19:02:05 +03:00
Julia Radzhabova 229e55811e [DE] Init preview div 2022-10-24 14:16:34 +03:00
Julia Radzhabova c0fea1c230 [DE] Add print preview panel 2022-10-21 23:22:16 +03:00
papacarlo 645ff855aa Merge branch hotfix/v7.2.1 into master 2022-10-20 13:12:05 +00:00
754 changed files with 7339 additions and 24826 deletions

View file

@ -23,7 +23,6 @@
options: <advanced options>,
key: 'key',
vkey: 'vkey',
referenceData: 'data for external paste',
info: {
owner: 'owner name',
folder: 'path to document',
@ -175,12 +174,9 @@
},
leftMenu: {
navigation: false/true,
spellcheck: false/true // spellcheck button in sse,
mode: false/true // init value for left panel, true - is visible, false - is hidden, used for option "Left panel" on the View Tab
spellcheck: false/true // spellcheck button in sse
} / false / true, // use instead of customization.leftMenu
rightMenu: {
mode: false/true // init value for right panel, true - is visible, false - is hidden, used for option "Right panel" on the View Tab
} / false/true, // use instead of customization.rightMenu
rightMenu: false/true, // use instead of customization.rightMenu
statusBar: {
textLang: false/true // text language button in de/pe
docLang: false/true // document language button in de/pe
@ -193,9 +189,6 @@
change: false/true // hide/show feature in de/pe/sse
} / false / true // if false/true - use as init value in de/pe. use instead of customization.spellcheck parameter
},
font: {
family: "Arial",
},
chat: true,
comments: true,
zoom: 100,
@ -271,7 +264,6 @@
'onRequestCompareFile': <request file to compare>,// must call setRevisedFile method
'onRequestSharingSettings': <request sharing settings>,// must call setSharingSettings method
'onRequestCreateNew': <try to create document>,
'onRequestReferenceData': <try to refresh external data>,
}
}
@ -335,7 +327,6 @@
_config.editorConfig.canRequestCompareFile = _config.events && !!_config.events.onRequestCompareFile;
_config.editorConfig.canRequestSharingSettings = _config.events && !!_config.events.onRequestSharingSettings;
_config.editorConfig.canRequestCreateNew = _config.events && !!_config.events.onRequestCreateNew;
_config.editorConfig.canRequestReferenceData = _config.events && !!_config.events.onRequestReferenceData;
_config.frameEditorId = placeholderId;
_config.parentOrigin = window.location.origin;
@ -745,13 +736,6 @@
});
};
var _setReferenceData = function(data) {
_sendCommand({
command: 'setReferenceData',
data: data
});
};
var _serviceCommand = function(command, data) {
_sendCommand({
command: 'internalCommand',
@ -786,8 +770,7 @@
setFavorite : _setFavorite,
requestClose : _requestClose,
grabFocus : _grabFocus,
blurFocus : _blurFocus,
setReferenceData : _setReferenceData
blurFocus : _blurFocus
}
};

View file

@ -10,7 +10,7 @@
</head>
<body>
<script type="text/javascript" src="../../../vendor/jquery/jquery.min.js"></script>
<script type="text/javascript" src="../../../vendor/socketio/socket.io.min.js"></script>
<script type="text/javascript" src="../../../vendor/sockjs/sockjs.min.js"></script>
<script type="text/javascript" src="../../../vendor/xregexp/xregexp-all-min.js"></script>
<script type="text/javascript" src="../../../../sdkjs/common/AllFonts.js"></script>
<script type="text/javascript" src="../../../../sdkjs/word/sdk-all-min.js"></script>

View file

@ -1,174 +0,0 @@
<!DOCTYPE html>
<html>
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="mobile-web-app-capable" content="yes" />
<!--
*
* (c) Copyright Ascensio System SIA 2021
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
-->
<title>ONLYOFFICE</title>
<style type="text/css">
html {
height: 100%;
width: 100%;
}
body {
background: #fff;
color: #333;
font-family: Arial, Tahoma,sans-serif;
font-size: 12px;
font-weight: normal;
height: 100%;
margin: 0;
overflow-y: hidden;
padding: 0;
text-decoration: none;
}
.form {
height: 100%;
}
div {
margin: 0;
padding: 0;
}
.app-error-panel {
position: absolute;
width: 100%;
height: 100%;
top: 0;
background-color: #f4f4f4;
z-index: 10;
}
.message-block {
display: inline-block;
vertical-align: middle;
width: 100%;
}
.message-inner {
width: 550px;
margin: auto;
padding: 30px;
background-color: #e3e3e3;
text-align: center;
}
.title {
font-size: 24px;
margin: 0 0 14px;
}
.text {
font-size: 16px;
}
</style>
</head>
<body>
<div id="progress">
Converting your file so you can edit it...
<a id="btn_end" style="display: none;">
<button type="button">Click here to open the converted file</button>
</a>
</div>
<div id="error" style="display: none;">
Conversion failed<br/>Sorry, we weren't able to convert the file for editing.<br/>Try again Go back
</div>
<script type="text/javascript" language="javascript">
function redirect(url) {
try {
window.top.location.replace(url);
}
catch (err) {
console.err(err);
}
}
function makeXHRRequest(url, success, error) {
var xhr = new XMLHttpRequest;
xhr.onreadystatechange = function() {
if (xhr.readyState == 4)
if (xhr.status == 200) {
success(xhr.responseText)
} else {
error()
}
}
;
xhr.open("GET", url, !0);
xhr.send();
}
function checkStatus(url, success, error) {
makeXHRRequest(url, function(responseText) {
let data = JSON.parse(responseText);
if(undefined !== data.error) {
error();
} else if(data.endConvert) {
success(data.fileUrl);
} else {
setTimeout(function(){
checkStatus(url, success, error);
}, 1000);
}
}, error);
}
function success(url) {
// redirect(url);
let btn = document.getElementById('btn_end');
btn.style.display = 'block';
btn.onclick = function() {
redirect(url);
};
}
function error() {
document.getElementById('progress').style.display = 'none';
document.getElementById('error').style.display = 'block';
}
var convertFile = function () {
let statusHandler = <%- JSON.stringify(statusHandler) %>;
if(!statusHandler) {
error();
}
checkStatus(statusHandler, success, error);
};
if (window.addEventListener) {
window.addEventListener("load", convertFile);
} else if (window.attachEvent) {
window.attachEvent("onload", convertFile);
}
</script>
</body>
</html>

View file

@ -312,7 +312,7 @@ div {
"events": {
"onAppReady": onAppReady,
"onDocumentStateChange": fileInfo.EditNotificationPostMessage ? onDocumentStateChange : undefined,
'onRequestEditRights': fileInfo.EditModePostMessage || (fileInfo.HostEditUrl && !fileInfo.UserCanNotWriteRelative) ? onRequestEditRights : undefined,
'onRequestEditRights': fileInfo.EditModePostMessage || fileInfo.HostEditUrl ? onRequestEditRights : undefined,
"onError": onError,
"onRequestClose": fileInfo.ClosePostMessage || fileInfo.CloseUrl ? onRequestClose : undefined,
"onRequestRename": fileInfo.SupportsRename && fileInfo.UserCanRename ? onRequestRename : undefined,

View file

@ -138,10 +138,6 @@ if (window.Common === undefined) {
'grabFocus': function(data) {
$me.trigger('grabfocus', data);
},
'setReferenceData': function(data) {
$me.trigger('setreferencedata', data);
}
};
@ -351,10 +347,6 @@ if (window.Common === undefined) {
_postMessage({event:'onRequestCreateNew'});
},
requestReferenceData: function (data) {
_postMessage({event:'onRequestReferenceData', data: data});
},
pluginsReady: function() {
_postMessage({ event: 'onPluginsReady' });
},

View file

@ -589,7 +589,6 @@
height: 100%;
&.disabled {
opacity: @component-disabled-opacity-ie;
opacity: @component-disabled-opacity;
cursor: default !important;
}

View file

@ -351,37 +351,22 @@ define([
getCaptionWithBreaks: function (caption) {
var words = caption.split(' '),
newCaption = null,
maxWidth = 160 - 4, //85 - 4
containAnd = words.indexOf('&');
if (containAnd > -1) { // add & to previous word
words[containAnd - 1] += ' &';
words.splice(containAnd, 1);
}
maxWidth = 85 - 4;
if (words.length > 1) {
maxWidth = !!this.menu || this.split === true ? maxWidth - 10 : maxWidth;
if (words.length < 3) {
words[0] = getShortText(words[0], !!this.menu ? maxWidth + 10 : maxWidth);
words[1] = getShortText(words[1], maxWidth);
newCaption = words[0] + '<br>' + words[1];
} else {
var otherWords = '';
if (getWidthOfCaption(words[0] + ' ' + words[1]) < maxWidth) { // first and second words in first line
for (var i = 2; i < words.length; i++) {
otherWords += words[i] + ' ';
}
if (getWidthOfCaption(otherWords + (!!this.menu ? 10 : 0))*2 < getWidthOfCaption(words[0] + ' ' + words[1])) {
otherWords = getShortText((words[1] + ' ' + otherWords).trim(), maxWidth);
newCaption = words[0] + '<br>' + otherWords;
} else {
otherWords = getShortText(otherWords.trim(), maxWidth);
newCaption = words[0] + ' ' + words[1] + '<br>' + otherWords;
}
} else { // only first word is in first line
for (var j = 1; j < words.length; j++) {
otherWords += words[j] + ' ';
}
otherWords = getShortText(otherWords.trim(), maxWidth);
newCaption = words[0] + '<br>' + otherWords;
words[2] = getShortText(words[2], maxWidth);
newCaption = words[0] + ' ' + words[1] + '<br>' + words[2];
} else if (getWidthOfCaption(words[1] + ' ' + words[2]) < maxWidth) { // second and third words in second line
words[2] = getShortText(words[2], maxWidth);
newCaption = words[0] + '<br>' + words[1] + ' ' + words[2];
} else {
words[1] = getShortText(words[1] + ' ' + words[2], maxWidth);
newCaption = words[0] + '<br>' + words[1];
}
}
} else {
@ -769,7 +754,7 @@ define([
return (this.cmpEl) ? this.cmpEl.is(":visible") : $(this.el).is(":visible");
},
updateHint: function(hint, isHtml) {
updateHint: function(hint) {
this.options.hint = hint;
if (!this.rendered) return;
@ -795,12 +780,10 @@ define([
this.btnMenuEl.removeData('bs.tooltip');
this.btnEl.tooltip({
html: !!isHtml,
title : (typeof hint == 'string') ? hint : hint[0],
placement : this.options.hintAnchor||'cursor'
});
this.btnMenuEl && this.btnMenuEl.tooltip({
html: !!isHtml,
title : hint[1],
placement : this.options.hintAnchor||'cursor'
});

View file

@ -407,9 +407,8 @@ define([
},
selectCandidate: function() {
var index = (this._search.index && this._search.index != -1) ? this._search.index : 0,
var index = this._search.index || 0,
re = new RegExp('^' + ((this._search.full) ? this._search.text : this._search.char), 'i'),
isFirstCharsEqual = re.test(this.store.at(index).get(this.displayField)),
itemCandidate, idxCandidate;
for (var i=0; i<this.store.length; i++) {
@ -418,8 +417,6 @@ define([
if (!itemCandidate) {
itemCandidate = item;
idxCandidate = i;
if(!isFirstCharsEqual)
break;
}
if (this._search.full && i==index || i>index) {
itemCandidate = item;

View file

@ -56,7 +56,6 @@ define([
itemWidth : 80,
itemHeight : 40,
menuMaxHeight : 300,
autoWidth : false,
enableKeyEvents : false,
beforeOpenHandler : null,
additionalMenuItems : null,
@ -88,13 +87,11 @@ define([
this.menuMaxHeight = this.options.menuMaxHeight;
this.beforeOpenHandler = this.options.beforeOpenHandler;
this.showLast = this.options.showLast;
this.wrapWidth = 0;
this.rootWidth = 0;
this.rootHeight = 0;
this.rendered = false;
this.needFillComboView = false;
this.minWidth = this.options.minWidth;
this.autoWidth = this.initAutoWidth = (Common.Utils.isIE10 || Common.Utils.isIE11) ? false : this.options.autoWidth;
this.minWidth = this.options.minWidth;
this.delayRenderTips = this.options.delayRenderTips || false;
this.itemTemplate = this.options.itemTemplate || _.template([
'<div class="style" id="<%= id %>">',
@ -211,12 +208,10 @@ define([
me.fieldPicker.el.addEventListener('contextmenu', _.bind(me.onPickerComboContextMenu, me), false);
me.menuPicker.el.addEventListener('contextmenu', _.bind(me.onPickerComboContextMenu, me), false);
Common.NotificationCenter.on('more:toggle', _.bind(this.onMoreToggle, this));
me.onResize();
me.rendered = true;
me.trigger('render:after', me);
}
if (this.disabled) {
@ -226,26 +221,8 @@ define([
return this;
},
onMoreToggle: function(btn, state) {
if(state) {
this.checkSize();
}
},
checkSize: function() {
if (this.cmpEl && this.cmpEl.is(':visible')) {
if(this.autoWidth && this.menuPicker.store.length > 0) {
var wrapWidth = this.$el.width();
if(wrapWidth != this.wrapWidth || this.needFillComboView){
this.wrapWidth = wrapWidth;
this.autoChangeWidth();
var picker = this.menuPicker;
var record = picker.getSelectedRec();
this.fillComboView(record || picker.store.at(0), !!record, true);
}
}
var me = this,
width = this.cmpEl.width(),
height = this.cmpEl.height();
@ -288,46 +265,7 @@ define([
if (!this.isSuspendEvents)
this.trigger('resize', this);
},
autoChangeWidth: function() {
if(this.menuPicker.dataViewItems[0]){
var wrapEl = this.$el;
var wrapWidth = wrapEl.width();
var itemEl = this.menuPicker.dataViewItems[0].$el;
var itemWidth = this.itemWidth + parseFloat(itemEl.css('padding-left')) + parseFloat(itemEl.css('padding-right')) + 2 * parseFloat(itemEl.css('border-width'));
var itemMargins = parseFloat(itemEl.css('margin-left')) + parseFloat(itemEl.css('margin-right'));
var fieldPickerEl = this.fieldPicker.$el;
var fieldPickerPadding = parseFloat(fieldPickerEl.css('padding-right'));
var fieldPickerBorder = parseFloat(fieldPickerEl.css('border-width'));
var dataviewPaddings = parseFloat(this.fieldPicker.$el.find('.dataview').css('padding-left')) + parseFloat(this.fieldPicker.$el.find('.dataview').css('padding-right'));
var cmbDataViewEl = this.cmpEl;
var cmbDataViewPaddings = parseFloat(cmbDataViewEl.css('padding-left')) + parseFloat(cmbDataViewEl.css('padding-right'));
var itemsCount = Math.floor((wrapWidth - fieldPickerPadding - dataviewPaddings - 2 * fieldPickerBorder - cmbDataViewPaddings) / (itemWidth + itemMargins));
if(itemsCount > this.store.length)
itemsCount = this.store.length;
var widthCalc = Math.ceil((itemsCount * (itemWidth + itemMargins) + fieldPickerPadding + dataviewPaddings + 2 * fieldPickerBorder + cmbDataViewPaddings) * 10) / 10;
var maxWidth = parseFloat(cmbDataViewEl.css('max-width'));
if(widthCalc > maxWidth)
widthCalc = maxWidth;
cmbDataViewEl.css('width', widthCalc);
if(this.initAutoWidth) {
this.initAutoWidth = false;
cmbDataViewEl.css('position', 'absolute');
cmbDataViewEl.css('top', '50%');
cmbDataViewEl.css('bottom', '50%');
cmbDataViewEl.css('margin', 'auto 0');
}
}
},
onBeforeShowMenu: function(e) {
var me = this;

View file

@ -328,7 +328,6 @@ define([
if (this.listenStoreEvents) {
this.listenTo(this.store, 'add', this.onAddItem);
this.listenTo(this.store, 'reset', this.onResetItems);
this.groups && this.listenTo(this.groups, 'add', this.onAddGroup);
}
this.onResetItems();
@ -393,36 +392,18 @@ define([
if (suspendEvents)
this.suspendEvents();
this.extremeSeletedRec = record;
if (!this.multiSelect || ( !this.pressedShift && !this.pressedCtrl) || !this.currentSelectedRec || (this.pressedShift && this.currentSelectedRec == record)) {
if (!this.multiSelect) {
_.each(this.store.where({selected: true}), function(rec){
rec.set({selected: false});
});
if (record) {
record.set({selected: true});
this.currentSelectedRec = record;
}
} else {
if (record) {
if(this.pressedCtrl) {
record.set({selected: !record.get('selected')});
this.currentSelectedRec = record;
}
else if(this.pressedShift){
var me =this;
var inRange=false;
_.each(me.store.models, function(rec){
if(me.currentSelectedRec == rec || record == rec){
inRange = !inRange;
rec.set({selected: true});
}
else {
rec.set({selected: (inRange)});
}
});
}
}
if (record)
record.set({selected: !record.get('selected')});
}
if (suspendEvents)
@ -529,35 +510,6 @@ define([
}
},
onAddGroup: function(group) {
var el = $(_.template([
'<% if (group.headername !== undefined) { %>',
'<div class="header-name"><%= group.headername %></div>',
'<% } %>',
'<div class="grouped-data <% if (group.inline) { %> group.inline <% } %> <% if (!_.isEmpty(group.caption)) { %> margin <% } %>" id="<%= group.id %>">',
'<% if (!_.isEmpty(group.caption)) { %>',
'<div class="group-description">',
'<span><%= group.caption %></span>',
'</div>',
'<% } %>',
'<div class="group-items-container">',
'</div>',
'</div>'
].join(''))({
group: group.toJSON()
}));
var innerEl = $(this.el).find('.inner').addBack().filter('.inner');
if (innerEl) {
var idx = _.indexOf(this.groups.models, group);
var innerDivs = innerEl.find('.grouped-data');
if (idx > 0)
$(innerDivs.get(idx - 1)).after(el);
else {
(innerDivs.length > 0) ? $(innerDivs[idx]).before(el) : innerEl.append(el);
}
}
},
onResetItems: function() {
_.each(this.dataViewItems, function(item) {
var tip = item.$el.data('bs.tooltip');
@ -726,22 +678,13 @@ define([
onKeyDown: function (e, data) {
if ( this.disabled ) return;
if (data===undefined) data = e;
if(this.multiSelect) {
if (data.keyCode == Common.UI.Keys.CTRL) {
this.pressedCtrl = true;
} else if (data.keyCode == Common.UI.Keys.SHIFT) {
this.pressedShift = true;
}
}
if (_.indexOf(this.moveKeys, data.keyCode)>-1 || data.keyCode==Common.UI.Keys.RETURN) {
if (_.indexOf(this.moveKeys, data.keyCode)>-1 || data.keyCode==Common.UI.Keys.RETURN) {
data.preventDefault();
data.stopPropagation();
var rec =(this.multiSelect) ? this.extremeSeletedRec : this.getSelectedRec();
if (this.lastSelectedRec === null)
var rec = this.getSelectedRec();
if (this.lastSelectedRec===null)
this.lastSelectedRec = rec;
if (data.keyCode == Common.UI.Keys.RETURN) {
if (data.keyCode==Common.UI.Keys.RETURN) {
this.lastSelectedRec = null;
if (this.selectedBeforeHideRec) // only for ComboDataView menuPicker
rec = this.selectedBeforeHideRec;
@ -751,7 +694,6 @@ define([
if (this.parentMenu)
this.parentMenu.hide();
} else {
this.pressedCtrl=false;
var idx = _.indexOf(this.store.models, rec);
if (idx<0) {
if (data.keyCode==Common.UI.Keys.LEFT) {
@ -832,20 +774,12 @@ define([
}
},
onKeyUp: function(e){
if(e.keyCode == Common.UI.Keys.SHIFT)
this.pressedShift = false;
if(e.keyCode == Common.UI.Keys.CTRL)
this.pressedCtrl = false;
},
attachKeyEvents: function() {
if (this.enableKeyEvents && this.handleSelect) {
var el = $(this.el).find('.inner').addBack().filter('.inner');
el.addClass('canfocused');
el.attr('tabindex', this.tabindex.toString());
el.on((this.parentMenu && this.useBSKeydown) ? 'dataview:keydown' : 'keydown', _.bind(this.onKeyDown, this));
el.on((this.parentMenu && this.useBSKeydown) ? 'dataview:keyup' : 'keyup', _.bind(this.onKeyUp, this));
}
},
@ -855,11 +789,7 @@ define([
this.scrollToRecord(this.lastSelectedRec);
this.lastSelectedRec = null;
} else {
var selectedRec = this.getSelectedRec();
if (!this.multiSelect)
this.scrollToRecord(selectedRec);
else if(selectedRec && selectedRec.length > 0)
this.scrollToRecord(selectedRec[selectedRec.length - 1]);
this.scrollToRecord(this.getSelectedRec());
}
},
@ -1368,30 +1298,12 @@ define([
props = {minScrollbarLength : this.minScrollbarLength};
this.scrollAlwaysVisible && (props.alwaysVisibleY = this.scrollAlwaysVisible);
var menuUp = false;
if (this.parentMenu.menuAlign) {
var m = this.parentMenu.menuAlign.match(/^([a-z]+)-([a-z]+)/);
menuUp = (m[1]==='bl' || m[1]==='br');
}
if (menuUp) {
var bottom = top + menuH;
if (top<0) {
innerEl.css('max-height', (bottom - paddings - margins) + 'px');
menuRoot.css('top', 0);
this.scroller.update(props);
} else if (top>0 && innerEl.height() < this.options.restoreHeight) {
innerEl.css('max-height', (Math.min(bottom - paddings - margins, this.options.restoreHeight)) + 'px');
menuRoot.css('top', bottom - menuRoot.outerHeight());
this.scroller.update(props);
}
} else {
if (top + menuH > docH ) {
innerEl.css('max-height', (docH - top - paddings - margins) + 'px');
this.scroller.update(props);
} else if ( top + menuH < docH && innerEl.height() < this.options.restoreHeight ) {
innerEl.css('max-height', (Math.min(docH - top - paddings - margins, this.options.restoreHeight)) + 'px');
this.scroller.update(props);
}
if (top + menuH > docH ) {
innerEl.css('max-height', (docH - top - paddings - margins) + 'px');
this.scroller.update(props);
} else if ( top + menuH < docH && innerEl.height() < this.options.restoreHeight ) {
innerEl.css('max-height', (Math.min(docH - top - paddings - margins, this.options.restoreHeight)) + 'px');
this.scroller.update(props);
}
},

View file

@ -60,7 +60,7 @@ define([
'<% if (this.changeSaturation) { %>'+
'<div class="cnt-root">'+
'<div class="cnt-sat img-colorpicker">'+
'<div class="cnt-sat-arrow"></div>'+
'<div class="cnt-sat-arrow img-colorpicker"></div>'+
'</div>'+
'</div>'+
'<% } %>'+

View file

@ -145,7 +145,7 @@ define([
style : '',
itemTemplate: null,
items : [],
menuAlign : 'tl-bl',//menu - parent
menuAlign : 'tl-bl',
menuAlignEl : null,
offset : [0, 0],
cyclic : true,
@ -472,9 +472,8 @@ define([
},
selectCandidate: function() {
var index = (this._search.index && this._search.index != -1) ? this._search.index : 0,
var index = this._search.index || 0,
re = new RegExp('^' + ((this._search.full) ? this._search.text : this._search.char), 'i'),
isFirstCharsEqual = re.test(this.items[index].caption),
itemCandidate, idxCandidate;
for (var i=0; i<this.items.length; i++) {
@ -483,8 +482,6 @@ define([
if (!itemCandidate) {
itemCandidate = item;
idxCandidate = i;
if(!isFirstCharsEqual)
break;
}
if (this._search.full && i==index || i>index) {
itemCandidate = item;
@ -1054,9 +1051,8 @@ define([
},
selectCandidate: function() {
var index = (this._search.index && this._search.index != -1) ? this._search.index : 0,
var index = this._search.index || 0,
re = new RegExp('^' + ((this._search.full) ? this._search.text : this._search.char), 'i'),
isFirstCharsEqual = re.test(this.items[index].caption),
itemCandidate, idxCandidate;
for (var i=0; i<this.items.length; i++) {
@ -1065,8 +1061,6 @@ define([
if (!itemCandidate) {
itemCandidate = item;
idxCandidate = i;
if(!isFirstCharsEqual)
break;
}
if (this._search.full && i==index || i>index) {
itemCandidate = item;

View file

@ -793,7 +793,7 @@ define([
hideMoreBtns: function() {
for (var btn in btnsMore) {
btnsMore[btn] && btnsMore[btn].isActive() && btnsMore[btn].toggle(false);
btnsMore[btn] && btnsMore[btn].toggle(false);
}
}
};

View file

@ -144,20 +144,10 @@ define([
}
}, this, area);
}.bind(this));
Common.NotificationCenter.on('app:ready', this.onAppReady.bind(this));
},
onLaunch: function () {
var filter = Common.localStorage.getKeysFilter();
this.appPrefix = (filter && filter.length) ? filter.split(',')[0] : '';
this._state = {
disableEditing: false, // disable editing when disconnect/signed file/mail merge preview/review final or original/forms preview
docProtection: {
isReadOnly: false,
isReviewOnly: false,
isFormsOnly: false,
isCommentsOnly: false
}
};
this.collection = this.getApplication().getCollection('Common.Collections.Comments');
this.setComparator();
@ -406,11 +396,9 @@ define([
reply = null,
addReply = null,
ascComment = buildCommentData(), // new asc_CCommentData(null),
comment = t.findComment(id),
oldCommentVal = '';
comment = t.findComment(id);
if (comment && ascComment) {
oldCommentVal = comment.get('comment');
ascComment.asc_putText(commentVal);
ascComment.asc_putQuoteText(comment.get('quote'));
ascComment.asc_putTime(t.utcDateToString(new Date(comment.get('time'))));
@ -454,7 +442,6 @@ define([
}
t.api.asc_changeComment(id, ascComment);
t.mode && t.mode.canRequestSendNotify && t.view.pickEMail(ascComment.asc_getGuid(), commentVal, oldCommentVal);
return true;
}
@ -468,8 +455,7 @@ define([
reply = null,
addReply = null,
ascComment = buildCommentData(), // new asc_CCommentData(null),
comment = me.findComment(id),
oldReplyVal = '';
comment = me.findComment(id);
if (ascComment && comment) {
ascComment.asc_putText(comment.get('comment'));
@ -493,7 +479,6 @@ define([
addReply = buildCommentData(); // new asc_CCommentData();
if (addReply) {
if (reply.get('id') === replyId && !_.isUndefined(replyVal)) {
oldReplyVal = reply.get('reply');
addReply.asc_putText(replyVal);
addReply.asc_putUserId(me.currentUserId);
addReply.asc_putUserName(AscCommon.UserInfoParser.getCurrentName());
@ -513,7 +498,7 @@ define([
}
me.api.asc_changeComment(id, ascComment);
me.mode && me.mode.canRequestSendNotify && me.view.pickEMail(ascComment.asc_getGuid(), replyVal, oldReplyVal);
return true;
}
}
@ -1660,25 +1645,16 @@ define([
},
setPreviewMode: function(mode) {
this._state.disableEditing = mode;
this.updatePreviewMode();
},
updatePreviewMode: function() {
var docProtection = this._state.docProtection;
var viewmode = this._state.disableEditing || docProtection.isReadOnly || docProtection.isFormsOnly;
if (this.viewmode === viewmode) return;
this.viewmode = viewmode;
if (viewmode)
if (this.viewmode === mode) return;
this.viewmode = mode;
if (mode)
this.prevcanComments = this.mode.canComments;
this.mode.canComments = (viewmode) ? false : this.prevcanComments;
this.mode.canComments = (mode) ? false : this.prevcanComments;
this.closeEditing();
this.setMode(this.mode);
this.updateComments(true);
if (this.getPopover())
viewmode ? this.getPopover().hide() : this.getPopover().update(true);
mode ? this.getPopover().hide() : this.getPopover().update(true);
},
clearCollections: function() {
@ -1742,27 +1718,6 @@ define([
}
}
this.updateComments(true);
},
onAppReady: function (config) {
var me = this;
(new Promise(function (accept, reject) {
accept();
})).then(function(){
me.onChangeProtectDocument();
Common.NotificationCenter.on('protect:doclock', _.bind(me.onChangeProtectDocument, me));
});
},
onChangeProtectDocument: function(props) {
if (!props) {
var docprotect = this.getApplication().getController('DocProtection');
props = docprotect ? docprotect.getDocProps() : null;
}
if (props) {
this._state.docProtection = props;
this.updatePreviewMode();
}
}
}, Common.Controllers.Comments || {}));

View file

@ -46,7 +46,7 @@ define([
eventloading: true,
titlebuttons: true,
uithemes: true,
btnhome: true,
quickprint: true,
};
var native = window.desktop || window.AscDesktopEditor;
@ -91,12 +91,14 @@ define([
$('.asc-window.modal').css('top', obj.skiptoparea);
Common.Utils.InternalSettings.set('window-inactive-area-top', obj.skiptoparea);
} else
if ( obj.lockthemes != undefined ) {
// TODO: remove after 7.0.2. depricated. used is_win_xp variable instead
// Common.UI.Themes.setAvailable(!obj.lockthemes);
}
if ( obj.singlewindow !== undefined ) {
// $('#box-document-title .hedset')[obj.singlewindow ? 'hide' : 'show']();
$('#box-document-title .hedset')[obj.singlewindow ? 'hide' : 'show']();
native.features.singlewindow = obj.singlewindow;
titlebuttons.home && titlebuttons.home.btn.setVisible(obj.singlewindow);
}
} else
if (/editor:config/.test(cmd)) {
@ -165,7 +167,8 @@ define([
action: action,
icon: config.icon || undefined,
hint: config.btn.options.hint,
disabled: config.btn.isDisabled()
disabled: config.btn.isDisabled(),
visible: config.visible,
};
};
@ -200,6 +203,7 @@ define([
if ( !!titlebuttons ) {
info.hints = {};
!!titlebuttons['print'] && (info.hints['print'] = titlebuttons['print'].btn.btnEl.attr('data-hint-title'));
!!titlebuttons['quickprint'] && (info.hints['quickprint'] = titlebuttons['quickprint'].btn.btnEl.attr('data-hint-title'));
!!titlebuttons['undo'] && (info.hints['undo'] = titlebuttons['undo'].btn.btnEl.attr('data-hint-title'));
!!titlebuttons['redo'] && (info.hints['redo'] = titlebuttons['redo'].btn.btnEl.attr('data-hint-title'));
!!titlebuttons['save'] && (info.hints['save'] = titlebuttons['save'].btn.btnEl.attr('data-hint-title'));
@ -215,6 +219,24 @@ define([
}
}
const _onApplySettings = function (menu) {
if ( !!titlebuttons.quickprint ) {
const var_name = window.SSE ? 'sse-settings-quick-print-button' :
window.PE ? 'pe-settings-quick-print-button' : 'de-settings-quick-print-button';
const is_btn_visible = Common.localStorage.getBool(var_name, false);
if ( titlebuttons.quickprint.visible != is_btn_visible ) {
titlebuttons.quickprint.visible = is_btn_visible;
const obj = {
visible: {
quickprint: is_btn_visible,
}
};
native.execCommand('title:button', JSON.stringify(obj));
}
}
}
return {
init: function (opts) {
_.extend(config, opts);
@ -232,9 +254,45 @@ define([
Common.NotificationCenter.on('document:ready', function () {
if ( config.isEdit ) {
var maincontroller = webapp.getController('Main');
if (maincontroller.api.asc_isReadOnly && maincontroller.api.asc_isReadOnly()) {
maincontroller.warningDocumentIsLocked();
function get_locked_message (t) {
switch (t) {
// case Asc.c_oAscLocalRestrictionType.Nosafe:
case Asc.c_oAscLocalRestrictionType.ReadOnly:
return Common.Locale.get("tipFileReadOnly",{name:"Common.Translation", default: "Document is read only. You can make changes and save its local copy later."});
default: return Common.Locale.get("tipFileLocked",{name:"Common.Translation", default: "Document is locked for editing. You can make changes and save its local copy later."});
}
}
const header = webapp.getController('Viewport').getView('Common.Views.Header');
const api = webapp.getController('Main').api;
const locktype = api.asc_getLocalRestrictions ? api.asc_getLocalRestrictions() : Asc.c_oAscLocalRestrictionType.None;
if ( Asc.c_oAscLocalRestrictionType.None !== locktype ) {
features.readonly = true;
header.setDocumentReadOnly(true);
api.asc_setLocalRestrictions(Asc.c_oAscLocalRestrictionType.None);
(new Common.UI.SynchronizeTip({
extCls: 'no-arrow',
placement: 'bottom',
target: $('.toolbar'),
text: get_locked_message(locktype),
showLink: false,
})).on('closeclick', function () {
this.close();
}).show();
native.execCommand('webapps:features', JSON.stringify(features));
api.asc_registerCallback('asc_onDocumentName', function () {
if ( features.readonly ) {
if ( api.asc_getLocalRestrictions() == Asc.c_oAscLocalRestrictionType.None ) {
features.readonly = false;
header.setDocumentReadOnly(false);
native.execCommand('webapps:features', JSON.stringify(features));
}
}
});
}
}
});
@ -246,41 +304,7 @@ define([
titlebuttons = {};
if ( mode.isEdit ) {
var header = webapp.getController('Viewport').getView('Common.Views.Header');
{
header.btnHome = (new Common.UI.Button({
cls: 'btn-header',
iconCls: 'toolbar__icon icon--inverse btn-home',
visible: false,
hint: 'Show Main window',
dataHint:'0',
dataHintDirection: 'right',
dataHintOffset: '10, -18',
dataHintTitle: 'K'
})).render($('#box-document-title #slot-btn-dt-home'));
titlebuttons['home'] = {btn: header.btnHome};
header.btnHome.on('click', function (e) {
native.execCommand('title:button', JSON.stringify({click: "home"}));
});
$('#id-box-doc-name').on({
'dblclick': function (e) {
native.execCommand('title:dblclick', JSON.stringify({x: e.originalEvent.screenX, y: e.originalEvent.screenY}))
},
'mousedown': function (e) {
native.execCommand('title:mousedown', JSON.stringify({x: e.originalEvent.screenX, y: e.originalEvent.screenY}))
},
'mousemove': function (e) {
native.execCommand('title:mousemove', JSON.stringify({x: e.originalEvent.screenX, y: e.originalEvent.screenY}))
},
'mouseup': function (e) {
native.execCommand('title:mouseup', JSON.stringify({x: e.originalEvent.screenX, y: e.originalEvent.screenY}))
}
});
}
const header = webapp.getController('Viewport').getView('Common.Views.Header');
if (!!header.btnSave) {
titlebuttons['save'] = {btn: header.btnSave};
@ -291,6 +315,13 @@ define([
if (!!header.btnPrint)
titlebuttons['print'] = {btn: header.btnPrint};
if (!!header.btnPrintQuick) {
titlebuttons['quickprint'] = {
btn: header.btnPrintQuick,
visible: header.btnPrintQuick.isVisible(),
};
}
if (!!header.btnUndo)
titlebuttons['undo'] = {btn: header.btnUndo};
@ -314,14 +345,14 @@ define([
}
if ( native.features.singlewindow !== undefined ) {
// $('#box-document-title .hedset')[native.features.singlewindow ? 'hide' : 'show']();
!!titlebuttons.home && titlebuttons.home.btn.setVisible(native.features.singlewindow);
$('#box-document-title .hedset')[native.features.singlewindow ? 'hide' : 'show']();
}
});
Common.NotificationCenter.on({
'modal:show': _onModalDialog.bind(this, 'open'),
'modal:close': _onModalDialog.bind(this, 'close'),
'modal:hide': _onModalDialog.bind(this, 'hide'),
'uitheme:changed' : function (name) {
if (Common.localStorage.getBool('ui-theme-use-system', false)) {
native.execCommand("uitheme:changed", JSON.stringify({name:'theme-system'}));
@ -346,6 +377,7 @@ define([
menu.hide();
}
},
'settings:apply': _onApplySettings.bind(this),
},
}, {id: 'desktop'});
@ -403,7 +435,10 @@ define([
}
return undefined;
}
},
getDefaultPrinterName: function () {
return nativevars ? nativevars.defaultPrinterName : '';
},
};
};

View file

@ -98,14 +98,12 @@ define([
'drag': _.bind(function(o, state){
externalEditor && externalEditor.serviceCommand('window:drag', state == 'start');
},this),
'resize': _.bind(function(o, state){
externalEditor && externalEditor.serviceCommand('window:resize', state == 'start');
},this),
'show': _.bind(function(cmp){
var h = this.diagramEditorView.getHeight(),
innerHeight = Common.Utils.innerHeight() - Common.Utils.InternalSettings.get('window-inactive-area-top');
if (innerHeight<h) {
this.diagramEditorView.setHeight(innerHeight);
if (innerHeight>h && h<700 || innerHeight<h) {
h = Math.min(innerHeight, 700);
this.diagramEditorView.setHeight(h);
}
if (externalEditor) {
@ -229,21 +227,13 @@ define([
if (eventData.type == "processMouse") {
if (eventData.data.event == 'mouse:up') {
this.diagramEditorView.binding.dragStop();
if (this.diagramEditorView.binding.resizeStop) this.diagramEditorView.binding.resizeStop();
} else
if (eventData.data.event == 'mouse:move') {
var x = parseInt(this.diagramEditorView.$window.css('left')) + eventData.data.pagex,
y = parseInt(this.diagramEditorView.$window.css('top')) + eventData.data.pagey + 34;
this.diagramEditorView.binding.drag({pageX:x, pageY:y});
if (this.diagramEditorView.binding.resize) this.diagramEditorView.binding.resize({pageX:x, pageY:y});
}
} else
if (eventData.type == "resize") {
var w = eventData.data.width,
h = eventData.data.height;
if (w>0 && h>0)
this.diagramEditorView.setInnerSize(w, h);
} else
if (eventData.type == "frameToGeneralData") {
this.api && this.api.asc_getInformationBetweenFrameAndGeneralEditor(eventData.data);
} else

View file

@ -51,8 +51,7 @@ define([
var appLang = '{{DEFAULT_LANG}}',
customization = undefined,
targetApp = '',
externalEditor = null,
isAppFirstOpened = true;
externalEditor = null;
var createExternalEditor = function() {
@ -97,22 +96,16 @@ define([
'drag': _.bind(function(o, state){
externalEditor && externalEditor.serviceCommand('window:drag', state == 'start');
},this),
'resize': _.bind(function(o, state){
externalEditor && externalEditor.serviceCommand('window:resize', state == 'start');
},this),
'show': _.bind(function(cmp){
var h = this.mergeEditorView.getHeight(),
innerHeight = Common.Utils.innerHeight();
if (innerHeight<h) {
this.mergeEditorView.setHeight(innerHeight);
if (innerHeight>h && h<700 || innerHeight<h) {
h = Math.min(innerHeight, 700);
this.mergeEditorView.setHeight(h);
}
if (externalEditor) {
externalEditor.serviceCommand('setAppDisabled',false);
if (isAppFirstOpened && this.mergeEditorView._isExternalDocReady) {
isAppFirstOpened = false;
this.mergeEditorView._mergeData && this.setMergeData();
}
if (this.needDisableEditing && this.mergeEditorView._isExternalDocReady) {
this.onMergeEditingDisabled();
}
@ -121,7 +114,6 @@ define([
createExternalEditor.apply(this);
}
this.isExternalEditorVisible = true;
this.isHandlerCalled = false;
}, this),
'hide': _.bind(function(cmp){
if (externalEditor) {
@ -147,22 +139,14 @@ define([
},
handler: function(result, value) {
if (this.isHandlerCalled) return;
this.isHandlerCalled = true;
if (this.mergeEditorView._isExternalDocReady)
externalEditor && externalEditor.serviceCommand('queryClose',{mr:result});
else {
this.mergeEditorView.hide();
this.isHandlerCalled = false;
}
externalEditor && externalEditor.serviceCommand('queryClose',{mr:result});
return true;
},
setMergeData: function() {
if (!isAppFirstOpened) {
externalEditor && externalEditor.serviceCommand('setMergeData', this.mergeEditorView._mergeData);
this.mergeEditorView.setEditMode(true);
this.mergeEditorView._mergeData = null;
}
externalEditor && externalEditor.serviceCommand('setMergeData', this.mergeEditorView._mergeData);
this.mergeEditorView.setEditMode(true);
this.mergeEditorView._mergeData = null;
},
loadConfig: function(data) {
@ -201,7 +185,6 @@ define([
if (this.mergeEditorView) {
if (eventData.type == 'documentReady') {
this.mergeEditorView._isExternalDocReady = true;
this.isExternalEditorVisible && (isAppFirstOpened = false);
this.mergeEditorView.setControlsDisabled(false);
if (this.mergeEditorView._mergeData) {
externalEditor && externalEditor.serviceCommand('setMergeData', this.mergeEditorView._mergeData);
@ -224,26 +207,17 @@ define([
}
this.mergeEditorView.hide();
}
this.isHandlerCalled = false;
} else
if (eventData.type == "processMouse") {
if (eventData.data.event == 'mouse:up') {
this.mergeEditorView.binding.dragStop();
if (this.mergeEditorView.binding.resizeStop) this.mergeEditorView.binding.resizeStop();
} else
if (eventData.data.event == 'mouse:move') {
var x = parseInt(this.mergeEditorView.$window.css('left')) + eventData.data.pagex,
y = parseInt(this.mergeEditorView.$window.css('top')) + eventData.data.pagey + 34;
this.mergeEditorView.binding.drag({pageX:x, pageY:y});
if (this.mergeEditorView.binding.resize) this.mergeEditorView.binding.resize({pageX:x, pageY:y});
}
} else
if (eventData.type == "resize") {
var w = eventData.data.width,
h = eventData.data.height;
if (w>0 && h>0)
this.mergeEditorView.setInnerSize(w, h);
} else
if (eventData.type == "frameToGeneralData") {
this.api && this.api.asc_getInformationBetweenFrameAndGeneralEditor(eventData.data);
} else

View file

@ -98,14 +98,12 @@ define([
'drag': _.bind(function(o, state){
externalEditor && externalEditor.serviceCommand('window:drag', state == 'start');
},this),
'resize': _.bind(function(o, state){
externalEditor && externalEditor.serviceCommand('window:resize', state == 'start');
},this),
'show': _.bind(function(cmp){
var h = this.oleEditorView.getHeight(),
innerHeight = Common.Utils.innerHeight() - Common.Utils.InternalSettings.get('window-inactive-area-top');
if (innerHeight<h) {
this.oleEditorView.setHeight(innerHeight);
if (innerHeight>h && h<700 || innerHeight<h) {
h = Math.min(innerHeight, 700);
this.oleEditorView.setHeight(h);
}
if (externalEditor) {
@ -133,6 +131,8 @@ define([
}, this)
}
});
},
onLaunch: function() {
@ -228,20 +228,12 @@ define([
if (eventData.type == "processMouse") {
if (eventData.data.event == 'mouse:up') {
this.oleEditorView.binding.dragStop();
if (this.oleEditorView.binding.resizeStop) this.oleEditorView.binding.resizeStop();
} else
if (eventData.data.event == 'mouse:move') {
var x = parseInt(this.oleEditorView.$window.css('left')) + eventData.data.pagex,
y = parseInt(this.oleEditorView.$window.css('top')) + eventData.data.pagey + 34;
this.oleEditorView.binding.drag({pageX:x, pageY:y});
if (this.oleEditorView.binding.resize) this.oleEditorView.binding.resize({pageX:x, pageY:y});
}
} else
if (eventData.type == "resize") {
var w = eventData.data.width,
h = eventData.data.height;
if (w>0 && h>0)
this.oleEditorView.setInnerSize(w, h);
} else
if (eventData.type == "frameToGeneralData") {
this.api && this.api.asc_getInformationBetweenFrameAndGeneralEditor(eventData.data);

View file

@ -121,7 +121,7 @@ Common.UI.HintManager = new(function() {
_usedTitles = [],
_appPrefix,
_staticHints = { // for desktop buttons
// "btnhome": 'K'
"btnhome": 'K'
};
var _api;
@ -457,8 +457,6 @@ Common.UI.HintManager = new(function() {
};
var _init = function(api) {
if (Common.Utils.isIE || Common.UI.isMac && Common.Utils.isGecko) // turn off hints on IE and FireFox (shortcut F6 selects link in address bar)
return;
_api = api;
var filter = Common.localStorage.getKeysFilter();
@ -480,7 +478,7 @@ Common.UI.HintManager = new(function() {
_clearHints();
});
$(document).on('keyup', function(e) {
if ((e.keyCode == Common.UI.Keys.ALT || e.keyCode === 91) && _needShow && !(window.SSE && window.SSE.getController('Statusbar').getIsDragDrop())) {
if (e.keyCode == Common.UI.Keys.ALT && _needShow && !(window.SSE && window.SSE.getController('Statusbar').getIsDragDrop())) {
e.preventDefault();
if (!_hintVisible) {
$('input:focus').blur(); // to change value in inputField
@ -622,11 +620,10 @@ Common.UI.HintManager = new(function() {
}
}
_needShow = (Common.Utils.InternalSettings.get(_appPrefix + "settings-show-alt-hints") && !e.shiftKey &&
(!Common.Utils.isMac && e.keyCode == Common.UI.Keys.ALT || Common.Utils.isMac && e.metaKey && e.keyCode === Common.UI.Keys.F6) &&
_needShow = (Common.Utils.InternalSettings.get(_appPrefix + "settings-show-alt-hints") && !e.shiftKey && e.keyCode == Common.UI.Keys.ALT &&
!Common.Utils.ModalWindow.isVisible() && _isDocReady && _arrAlphabet.length > 0 &&
!(window.PE && $('#pe-preview').is(':visible')));
if (Common.Utils.InternalSettings.get(_appPrefix + "settings-show-alt-hints") && !Common.Utils.isMac && e.altKey && e.keyCode !== 115) {
if (Common.Utils.InternalSettings.get(_appPrefix + "settings-show-alt-hints") && e.altKey && e.keyCode !== 115) {
e.preventDefault();
}
});
@ -664,8 +661,6 @@ Common.UI.HintManager = new(function() {
};
var _clearHints = function (isComplete) {
if (Common.Utils.isIE || Common.UI.isMac && Common.Utils.isGecko)
return;
_hintVisible && _hideHints();
if (_currentHints.length > 0) {
_resetToDefault();

View file

@ -47,16 +47,14 @@ if (Common.UI === undefined) {
}
Common.UI.LayoutManager = new(function() {
var _config,
_licensed;
var _init = function(config, licensed) {
var _config;
var _init = function(config) {
_config = config;
_licensed = licensed;
};
var _applyCustomization = function(config, el, prefix) {
!config && (config = _config);
if (!_licensed || !config) return;
if (!config) return;
for (var name in config) {
if(config.hasOwnProperty(name)) {
@ -73,7 +71,7 @@ Common.UI.LayoutManager = new(function() {
var _isElementVisible = function(value, config, prefix) {
!config && (config = _config);
if (!_licensed || !config) return true;
if (!config) return true;
var res = true;
for (var name in config) {
@ -91,31 +89,10 @@ Common.UI.LayoutManager = new(function() {
return res;
};
var _getInitValue = function(name) {
if (_licensed && _config) {
var arr = name.split('-'),
i = 0,
obj = _config;
for (i=0; i<arr.length; i++) {
if (typeof obj[arr[i]] === 'object' && obj[arr[i]]) {
obj = obj[arr[i]];
} else
break;
}
if (i===arr.length) {
if (typeof obj === 'object' && obj)
return obj.mode;
else
return obj;
}
}
};
return {
init: _init,
applyCustomization: _applyCustomization,
isElementVisible: _isElementVisible,
getInitValue: _getInitValue
isElementVisible: _isElementVisible
}
})();

View file

@ -105,7 +105,6 @@ define([
Common.NotificationCenter.on('app:face', this.onAppShowed.bind(this));
Common.NotificationCenter.on('uitheme:changed', this.updatePluginsButtons.bind(this));
Common.NotificationCenter.on('window:resize', this.updatePluginsButtons.bind(this));
Common.NotificationCenter.on('app:ready', this.onAppReady.bind(this));
},
loadConfig: function(data) {
@ -152,16 +151,6 @@ define([
onAppShowed: function (config) {
},
onAppReady: function (config) {
var me = this;
(new Promise(function (accept, reject) {
accept();
})).then(function(){
me.onChangeProtectDocument();
Common.NotificationCenter.on('protect:doclock', _.bind(me.onChangeProtectDocument, me));
});
},
setApi: function(api) {
this.api = api;
@ -236,10 +225,6 @@ define([
var _group = $('> .group', me.$toolbarPanelPlugins);
var $slot = $('<span class="btn-slot text x-huge"></span>').appendTo(_group);
btn.render($slot);
var docProtection = me.panelPlugins._state.docProtection;
Common.Utils.lockControls(Common.enumLock.docLockView, docProtection.isReadOnly, {array: btn});
Common.Utils.lockControls(Common.enumLock.docLockForms, docProtection.isFormsOnly, {array: btn});
Common.Utils.lockControls(Common.enumLock.docLockComments, docProtection.isCommentsOnly, {array: btn});
}
},
@ -274,10 +259,6 @@ define([
rank = new_rank;
});
_group.appendTo(me.$toolbarPanelPlugins);
var docProtection = me.panelPlugins._state.docProtection;
Common.Utils.lockControls(Common.enumLock.docLockView, docProtection.isReadOnly, {array: me.panelPlugins.lockedControls});
Common.Utils.lockControls(Common.enumLock.docLockForms, docProtection.isFormsOnly, {array: me.panelPlugins.lockedControls});
Common.Utils.lockControls(Common.enumLock.docLockComments, docProtection.isCommentsOnly, {array: me.panelPlugins.lockedControls});
} else {
console.error('toolbar panel isnot created');
}
@ -537,13 +518,10 @@ define([
}
var variationsArr = [],
pluginVisible = false,
isDisplayedInViewer = false;
pluginVisible = false;
item.variations.forEach(function(itemVar){
var visible = (isEdit || itemVar.isViewer && (itemVar.isDisplayedInViewer!==false)) && _.contains(itemVar.EditorsSupport, editor) && !itemVar.isSystem;
if ( visible ) pluginVisible = true;
if (itemVar.isViewer && (itemVar.isDisplayedInViewer!==false))
isDisplayedInViewer = true;
if (item.isUICustomizer ) {
visible && arrUI.push({
@ -593,8 +571,7 @@ define([
groupName: (item.group) ? item.group.name : '',
groupRank: (item.group) ? item.group.rank : 0,
minVersion: item.minVersion,
original: item,
isDisplayedInViewer: isDisplayedInViewer
original: item
}));
}
});
@ -743,19 +720,6 @@ define([
}, funcComplete);
} else
funcComplete();
},
onChangeProtectDocument: function(props) {
if (!props) {
var docprotect = this.getApplication().getController('DocProtection');
props = docprotect ? docprotect.getDocProps() : null;
}
if (props && this.panelPlugins) {
this.panelPlugins._state.docProtection = props;
Common.Utils.lockControls(Common.enumLock.docLockView, props.isReadOnly, {array: this.panelPlugins.lockedControls});
Common.Utils.lockControls(Common.enumLock.docLockForms, props.isFormsOnly, {array: this.panelPlugins.lockedControls});
Common.Utils.lockControls(Common.enumLock.docLockComments, props.isCommentsOnly, {array: this.panelPlugins.lockedControls});
}
}
}, Common.Controllers.Plugins || {}));
});

View file

@ -82,8 +82,7 @@ define([
'reviewchange:view': _.bind(this.onReviewViewClick, this),
'reviewchange:compare': _.bind(this.onCompareClick, this),
'lang:document': _.bind(this.onDocLanguage, this),
'collaboration:coauthmode': _.bind(this.onCoAuthMode, this),
'protect:update': _.bind(this.onChangeProtectDocument, this)
'collaboration:coauthmode': _.bind(this.onCoAuthMode, this)
},
'Common.Views.ReviewChangesDialog': {
'reviewchange:accept': _.bind(this.onAcceptClick, this),
@ -102,18 +101,8 @@ define([
this.collection = this.getApplication().getCollection('Common.Collections.ReviewChanges');
this.userCollection = this.getApplication().getCollection('Common.Collections.Users');
this.viewmode = false;
var filter = Common.localStorage.getKeysFilter();
this.appPrefix = (filter && filter.length) ? filter.split(',')[0] : '';
this._state = { posx: -1000, posy: -1000, popoverVisible: false, previewMode: false, compareSettings: null, wsLock: false, wsProps: [],
disableEditing: false, // disable editing when disconnect/signed file/mail merge preview/review final or original/forms preview
docProtection: {
isReadOnly: false,
isReviewOnly: false,
isFormsOnly: false,
isCommentsOnly: false
}
};
this._state = {posx: -1000, posy: -1000, popoverVisible: false, previewMode: false, compareSettings: null, wsLock: false, wsProps: []};
Common.NotificationCenter.on('reviewchanges:turn', this.onTurnPreview.bind(this));
Common.NotificationCenter.on('spelling:turn', this.onTurnSpelling.bind(this));
@ -175,35 +164,26 @@ define([
SetDisabled: function(state, reviewMode, fillFormMode) {
if (this.dlgChanges)
this.dlgChanges.close();
if (reviewMode) {
if (reviewMode)
this.lockToolbar(Common.enumLock.previewReviewMode, state);
this.dlgChanges && Common.Utils.lockControls(Common.enumLock.previewReviewMode, state, {array: [this.dlgChanges.btnAccept, this.dlgChanges.btnReject]});
} else if (fillFormMode) {
else if (fillFormMode)
this.lockToolbar(Common.enumLock.viewFormMode, state);
this.dlgChanges && Common.Utils.lockControls(Common.enumLock.viewFormMode, state, {array: [this.dlgChanges.btnAccept, this.dlgChanges.btnReject]});
} else {
else
this.lockToolbar(Common.enumLock.viewMode, state);
}
this.setPreviewMode(state);
},
lockToolbar: function (causes, lock, opts) {
this.view && Common.Utils.lockControls(causes, lock, opts, this.view.getButtons());
Common.Utils.lockControls(causes, lock, opts, this.view.getButtons());
},
setPreviewMode: function(mode) { //disable accept/reject in popover
this._state.disableEditing = mode;
this.updatePreviewMode();
},
updatePreviewMode: function() {
var viewmode = this._state.disableEditing || this._state.docProtection.isReadOnly || this._state.docProtection.isFormsOnly || this._state.docProtection.isCommentsOnly;
if (this.viewmode === viewmode) return;
this.viewmode = viewmode;
if (viewmode)
if (this.viewmode === mode) return;
this.viewmode = mode;
if (mode)
this.prevcanReview = this.appConfig.canReview;
this.appConfig.canReview = (viewmode) ? false : this.prevcanReview;
this.appConfig.canReview = (mode) ? false : this.prevcanReview;
var me = this;
this.popoverChanges && this.popoverChanges.each(function (model) {
model.set('hint', !me.appConfig.canReview);
@ -227,16 +207,19 @@ define([
onApiShowChange: function (sdkchange, isShow) {
var btnlock = true,
changes;
if (this.appConfig.canReview && !(this.appConfig.isReviewOnly || this._state.docProtection.isReviewOnly)) {
if (this.appConfig.canReview && !this.appConfig.isReviewOnly) {
if (sdkchange && sdkchange.length>0) {
changes = this.readSDKChange(sdkchange);
btnlock = this.isSelectedChangesLocked(changes, isShow);
}
if (this._state.lock !== btnlock) {
Common.Utils.lockControls(Common.enumLock.reviewChangelock, btnlock, {array: [this.view.btnAccept, this.view.btnReject]});
this.dlgChanges && Common.Utils.lockControls(Common.enumLock.reviewChangelock, btnlock, {array: [this.dlgChanges.btnAccept, this.dlgChanges.btnReject]});
if (this.dlgChanges) {
this.dlgChanges.btnAccept.setDisabled(btnlock);
this.dlgChanges.btnReject.setDisabled(btnlock);
}
this._state.lock = btnlock;
Common.Utils.InternalSettings.set(this.appPrefix + "accept-reject-lock", btnlock);
Common.Utils.InternalSettings.set(this.view.appPrefix + "accept-reject-lock", btnlock);
}
}
@ -502,7 +485,6 @@ define([
}
var date = (item.get_DateTime() == '') ? new Date() : new Date(item.get_DateTime()),
user = me.userCollection.findOriginalUser(item.get_UserId()),
isProtectedReview = me._state.docProtection.isReviewOnly,
change = new Common.Models.ReviewChange({
uid : Common.UI.getId(),
userid : item.get_UserId(),
@ -517,9 +499,8 @@ define([
changedata : item,
scope : me.view,
hint : !me.appConfig.canReview,
docProtection: me._state.docProtection,
goto : (item.get_MoveType() == Asc.c_oAscRevisionsMove.MoveTo || item.get_MoveType() == Asc.c_oAscRevisionsMove.MoveFrom),
editable : (me.appConfig.isReviewOnly || isProtectedReview) && (item.get_UserId() == me.currentUserId) || !(me.appConfig.isReviewOnly || isProtectedReview) && (!me.appConfig.canUseReviewPermissions || AscCommon.UserInfoParser.canEditReview(item.get_UserName()))
editable : me.appConfig.isReviewOnly && (item.get_UserId() == me.currentUserId) || !me.appConfig.isReviewOnly && (!me.appConfig.canUseReviewPermissions || AscCommon.UserInfoParser.canEditReview(item.get_UserName()))
});
arr.push(change);
@ -608,7 +589,7 @@ define([
},
onTurnPreview: function(state, global, fromApi) {
if ( this.appConfig.isReviewOnly) {
if ( this.appConfig.isReviewOnly ) {
this.view.turnChanges(true);
} else
if ( this.appConfig.canReview ) {
@ -622,13 +603,13 @@ define([
},
onApiTrackRevisionsChange: function(localFlag, globalFlag, userId) {
if ( this.appConfig.isReviewOnly || this._state.docProtection.isReviewOnly) {
if ( this.appConfig.isReviewOnly ) {
this.view.turnChanges(true);
} else
if ( this.appConfig.canReview ) {
var global = (localFlag===null),
state = global ? globalFlag : localFlag;
Common.Utils.InternalSettings.set(this.appPrefix + "track-changes", (state ? 0 : 1) + (global ? 2 : 0));
Common.Utils.InternalSettings.set(this.view.appPrefix + "track-changes", (state ? 0 : 1) + (global ? 2 : 0));
this.view.turnChanges(state, global);
if (userId && this.userCollection) {
var rec = this.userCollection.findOriginalUser(userId);
@ -643,20 +624,18 @@ define([
this.view && this.view.turnSpelling(state);
if (Common.UI.FeaturesManager.canChange('spellcheck') && !suspend) {
Common.localStorage.setItem(this.appPrefix + "settings-spellcheck", state ? 1 : 0);
Common.localStorage.setItem(this.view.appPrefix + "settings-spellcheck", state ? 1 : 0);
this.api.asc_setSpellCheck(state);
Common.Utils.InternalSettings.set(this.appPrefix + "settings-spellcheck", state);
Common.Utils.InternalSettings.set(this.view.appPrefix + "settings-spellcheck", state);
}
},
onReviewViewClick: function(menu, item, e) {
this.turnDisplayMode(item.value);
if (!this.appConfig.isEdit && !this.appConfig.isRestrictedEdit)
Common.localStorage.setItem(this.appPrefix + "review-mode", item.value); // for viewer
else if (item.value=='markup' || item.value=='simple') {
Common.localStorage.setItem(this.appPrefix + "review-mode-editor", item.value); // for editor save only markup modes
Common.Utils.InternalSettings.set(this.appPrefix + "review-mode-editor", item.value);
}
Common.localStorage.setItem(this.view.appPrefix + "review-mode", item.value); // for viewer
else if (item.value=='markup' || item.value=='simple')
Common.localStorage.setItem(this.view.appPrefix + "review-mode-editor", item.value); // for editor save only markup modes
Common.NotificationCenter.trigger('edit:complete', this.view);
},
@ -787,14 +766,14 @@ define([
},
onCoAuthMode: function(menu, item, e) {
Common.localStorage.setItem(this.appPrefix + "settings-coauthmode", item.value);
Common.Utils.InternalSettings.set(this.appPrefix + "settings-coauthmode", item.value);
Common.localStorage.setItem(this.view.appPrefix + "settings-coauthmode", item.value);
Common.Utils.InternalSettings.set(this.view.appPrefix + "settings-coauthmode", item.value);
if (this.api) {
this.api.asc_SetFastCollaborative(item.value==1);
if (this.api.SetCollaborativeMarksShowType) {
var value = Common.localStorage.getItem(item.value ? this.appPrefix + "settings-showchanges-fast" : this.appPrefix + "settings-showchanges-strict");
var value = Common.localStorage.getItem(item.value ? this.view.appPrefix + "settings-showchanges-fast" : this.view.appPrefix + "settings-showchanges-strict");
if (value !== null)
this.api.SetCollaborativeMarksShowType(value == 'all' ? Asc.c_oAscCollaborativeMarksShowType.All :
value == 'none' ? Asc.c_oAscCollaborativeMarksShowType.None : Asc.c_oAscCollaborativeMarksShowType.LastChanges);
@ -802,13 +781,13 @@ define([
this.api.SetCollaborativeMarksShowType(item.value ? Asc.c_oAscCollaborativeMarksShowType.None : Asc.c_oAscCollaborativeMarksShowType.LastChanges);
}
value = Common.localStorage.getItem(this.appPrefix + "settings-autosave");
value = Common.localStorage.getItem(this.view.appPrefix + "settings-autosave");
if (value===null && this.appConfig.customization && this.appConfig.customization.autosave===false)
value = 0;
value = (!item.value && value!==null) ? parseInt(value) : 1;
Common.localStorage.setItem(this.appPrefix + "settings-autosave", value);
Common.Utils.InternalSettings.set(this.appPrefix + "settings-autosave", value);
Common.localStorage.setItem(this.view.appPrefix + "settings-autosave", value);
Common.Utils.InternalSettings.set(this.view.appPrefix + "settings-autosave", value);
this.api.asc_setAutoSaveGap(value);
}
Common.NotificationCenter.trigger('edit:complete', this.view);
@ -826,7 +805,7 @@ define([
rightMenu: {clear: disable, disable: true},
statusBar: true,
leftMenu: {disable: false, previewMode: true},
fileMenu: {protect: true, info: true},
fileMenu: {protect: true},
navigation: {disable: false, previewMode: true},
comments: {disable: false, previewMode: true},
chat: false,
@ -850,14 +829,14 @@ define([
onAppReady: function (config) {
var me = this;
(new Promise(function (resolve) {
resolve();
})).then(function () {
if ( config.canReview ) {
if ( config.canReview ) {
(new Promise(function (resolve) {
resolve();
})).then(function () {
// function _setReviewStatus(state, global) {
// me.view.turnChanges(state, global);
// !global && me.api.asc_SetLocalTrackRevisions(state);
// Common.Utils.InternalSettings.set(me.appPrefix + "track-changes", (state ? 0 : 1) + (global ? 2 : 0));
// Common.Utils.InternalSettings.set(me.view.appPrefix + "track-changes", (state ? 0 : 1) + (global ? 2 : 0));
// };
var trackChanges = me.appConfig.customization && me.appConfig.customization.review ? me.appConfig.customization.review.trackChanges : undefined;
@ -869,13 +848,13 @@ define([
me.onApiTrackRevisionsChange(me.api.asc_GetLocalTrackRevisions(), me.api.asc_GetGlobalTrackRevisions());
me.api.asc_HaveRevisionsChanges() && me.view.markChanges(true);
var val = Common.localStorage.getItem(me.appPrefix + "review-mode-editor");
var val = Common.localStorage.getItem(me.view.appPrefix + "review-mode-editor");
if (val===null) {
val = me.appConfig.customization && me.appConfig.customization.review ? me.appConfig.customization.review.reviewDisplay : undefined;
!val && (val = me.appConfig.customization ? me.appConfig.customization.reviewDisplay : undefined);
val = /^(original|final|markup|simple)$/i.test(val) ? val.toLocaleLowerCase() : 'markup';
}
Common.Utils.InternalSettings.set(me.appPrefix + "review-mode-editor", val);
me.turnDisplayMode(val); // load display mode for all modes (viewer or editor)
me.view.turnDisplayMode(val);
@ -883,54 +862,51 @@ define([
(!me.appConfig.customization.review || me.appConfig.customization.review.showReviewChanges===undefined) && me.appConfig.customization.showReviewChanges==true) ) {
me.dlgChanges = (new Common.Views.ReviewChangesDialog({
popoverChanges : me.popoverChanges,
mode : me.appConfig,
docProtection : me._state.docProtection
mode : me.appConfig
}));
var sdk = $('#editor_sdk'),
offset = sdk.offset();
me.dlgChanges.show(Math.max(10, offset.left + sdk.width() - 300), Math.max(10, offset.top + sdk.height() - 150));
}
} else if (config.canViewReview) {
config.canViewReview = (config.isEdit || me.api.asc_HaveRevisionsChanges(true)); // check revisions from all users
if (config.canViewReview) {
var val = Common.localStorage.getItem(me.appPrefix + (config.isEdit || config.isRestrictedEdit ? "review-mode-editor" : "review-mode"));
if (val===null) {
val = me.appConfig.customization && me.appConfig.customization.review ? me.appConfig.customization.review.reviewDisplay : undefined;
!val && (val = me.appConfig.customization ? me.appConfig.customization.reviewDisplay : undefined);
val = /^(original|final|markup|simple)$/i.test(val) ? val.toLocaleLowerCase() : (config.isEdit || config.isRestrictedEdit ? 'markup' : 'original');
}
me.turnDisplayMode(val);
me.view.turnDisplayMode(val);
});
} else if (config.canViewReview) {
config.canViewReview = (config.isEdit || me.api.asc_HaveRevisionsChanges(true)); // check revisions from all users
if (config.canViewReview) {
var val = Common.localStorage.getItem(me.view.appPrefix + (config.isEdit || config.isRestrictedEdit ? "review-mode-editor" : "review-mode"));
if (val===null) {
val = me.appConfig.customization && me.appConfig.customization.review ? me.appConfig.customization.review.reviewDisplay : undefined;
!val && (val = me.appConfig.customization ? me.appConfig.customization.reviewDisplay : undefined);
val = /^(original|final|markup|simple)$/i.test(val) ? val.toLocaleLowerCase() : (config.isEdit || config.isRestrictedEdit ? 'markup' : 'original');
}
me.turnDisplayMode(val);
me.view.turnDisplayMode(val);
}
}
if (me.view && me.view.btnChat) {
me.getApplication().getController('LeftMenu').leftMenu.btnChat.on('toggle', function(btn, state){
if (state !== me.view.btnChat.pressed)
me.view.turnChat(state);
});
}
me.onChangeProtectSheet();
if (me.view) {
me.lockToolbar(Common.enumLock.hideComments, !Common.localStorage.getBool(me.appPrefix + "settings-livecomment", true), {array: [me.view.btnCommentRemove, me.view.btnCommentResolve]});
me.lockToolbar(Common.enumLock['Objects'], !!me._state.wsProps['Objects'], {array: [me.view.btnCommentRemove, me.view.btnCommentResolve]});
}
if (me.view && me.view.btnChat) {
me.getApplication().getController('LeftMenu').leftMenu.btnChat.on('toggle', function(btn, state){
if (state !== me.view.btnChat.pressed)
me.view.turnChat(state);
});
}
me.onChangeProtectSheet();
if (me.view) {
me.lockToolbar(Common.enumLock.hideComments, !Common.localStorage.getBool(me.view.appPrefix + "settings-livecomment", true), {array: [me.view.btnCommentRemove, me.view.btnCommentResolve]});
me.lockToolbar(Common.enumLock['Objects'], !!this._state.wsProps['Objects'], {array: [me.view.btnCommentRemove, me.view.btnCommentResolve]});
}
var val = Common.localStorage.getItem(me.appPrefix + "settings-review-hover-mode");
if (val === null) {
val = me.appConfig.customization && me.appConfig.customization.review ? !!me.appConfig.customization.review.hoverMode : false;
} else
val = !!parseInt(val);
Common.Utils.InternalSettings.set(me.appPrefix + "settings-review-hover-mode", val);
me.appConfig.reviewHoverMode = val;
me.view && me.view.onAppReady(config);
});
var val = Common.localStorage.getItem(me.view.appPrefix + "settings-review-hover-mode");
if (val === null) {
val = me.appConfig.customization && me.appConfig.customization.review ? !!me.appConfig.customization.review.hoverMode : false;
} else
val = !!parseInt(val);
Common.Utils.InternalSettings.set(me.view.appPrefix + "settings-review-hover-mode", val);
me.appConfig.reviewHoverMode = val;
},
applySettings: function(menu) {
this.view && this.view.turnSpelling( Common.localStorage.getBool(this.appPrefix + "settings-spellcheck", true) );
this.view && this.view.turnCoAuthMode( Common.localStorage.getBool(this.appPrefix + "settings-coauthmode", true) );
this.view && this.view.turnSpelling( Common.localStorage.getBool(this.view.appPrefix + "settings-spellcheck", true) );
this.view && this.view.turnCoAuthMode( Common.localStorage.getBool(this.view.appPrefix + "settings-coauthmode", true) );
if ((this.appConfig.canReview || this.appConfig.canViewReview) && this.appConfig.reviewHoverMode)
this.onApiShowChange();
},
@ -995,8 +971,7 @@ define([
},
onCoAuthoringDisconnect: function() {
this.lockToolbar(Common.enumLock.lostConnect, true);
this.dlgChanges && Common.Utils.lockControls(Common.enumLock.lostConnect, true, {array: [this.dlgChanges.btnAccept, this.dlgChanges.btnReject]});
this.lockToolbar(Common.enumLock.lostConnect, true)
},
onUpdateUsers: function() {
@ -1020,7 +995,7 @@ define([
commentsShowHide: function(mode) {
if (!this.view) return;
var value = Common.Utils.InternalSettings.get(this.appPrefix + "settings-livecomment");
var value = Common.Utils.InternalSettings.get(this.view.appPrefix + "settings-livecomment");
(value!==undefined) && this.lockToolbar(Common.enumLock.hideComments, mode != 'show' && !value, {array: [this.view.btnCommentRemove, this.view.btnCommentResolve]});
},
@ -1036,37 +1011,6 @@ define([
this.lockToolbar(Common.enumLock['Objects'], !!this._state.wsProps['Objects'], {array: [this.view.btnCommentRemove, this.view.btnCommentResolve]});
},
onChangeProtectDocument: function(props) {
if (!props) {
var docprotect = this.getApplication().getController('DocProtection');
props = docprotect ? docprotect.getDocProps() : null;
}
if (props) {
this._state.docProtection = props;
this.lockToolbar(Common.enumLock.docLockView, props.isReadOnly);
this.lockToolbar(Common.enumLock.docLockForms, props.isFormsOnly);
this.lockToolbar(Common.enumLock.docLockReview, props.isReviewOnly);
this.lockToolbar(Common.enumLock.docLockComments, props.isCommentsOnly);
if (this.dlgChanges) {
Common.Utils.lockControls(Common.enumLock.docLockView, props.isReadOnly, {array: [this.dlgChanges.btnAccept, this.dlgChanges.btnReject]});
Common.Utils.lockControls(Common.enumLock.docLockForms, props.isFormsOnly, {array: [this.dlgChanges.btnAccept, this.dlgChanges.btnReject]});
Common.Utils.lockControls(Common.enumLock.docLockReview, props.isReviewOnly, {array: [this.dlgChanges.btnAccept, this.dlgChanges.btnReject]});
Common.Utils.lockControls(Common.enumLock.docLockComments, props.isCommentsOnly, {array: [this.dlgChanges.btnAccept, this.dlgChanges.btnReject]});
}
if (this.appConfig.canReview) {
if (props.isReviewOnly) {
this.onTurnPreview(true);
this.onApiShowChange();
} else if (this._state.prevReviewProtected) {
this.onTurnPreview(false);
this.onApiShowChange();
}
this._state.prevReviewProtected = props.isReviewOnly;
}
this.updatePreviewMode();
}
},
textInserted: '<b>Inserted:</b>',
textDeleted: '<b>Deleted:</b>',
textParaInserted: '<b>Paragraph Inserted</b> ',

View file

@ -9,7 +9,7 @@
<div class="btn-goto img-commonctrl"></div>
<% } %>
<% if (!hint) { %>
<% if (scope.appConfig.isReviewOnly || docProtection.isReviewOnly) { %>
<% if (scope.appConfig.isReviewOnly) { %>
<% if (editable) { %>
<div class="btn-delete img-commonctrl"></div>
<% } %>

File diff suppressed because it is too large Load diff

View file

@ -68,7 +68,6 @@ if ( window.desktop ) {
delete params.uitheme;
} else {
localStorage.setItem("ui-theme-id", theme.id);
localStorage.removeItem("ui-theme-use-system");
}
localStorage.removeItem("ui-theme");

View file

@ -979,7 +979,7 @@ Common.Utils.warningDocumentIsLocked = function (opts) {
callback: function(btn){
if (btn == 'edit') {
if ( opts.disablefunc ) opts.disablefunc(false);
app.getController('Main').api.asc_setIsReadOnly(false);
app.getController('Main').api.asc_setLocalRestrictions(Asc.c_oAscLocalRestrictionType.None);
}
}
});
@ -1095,4 +1095,4 @@ Common.Utils.getKeyByValue = function(obj, value) {
return prop;
}
}
};
};

View file

@ -806,19 +806,11 @@ define([
return str_res;
},
pickEMail: function (commentId, message, oldMessage) {
var old_arr = [];
if (oldMessage) {
old_arr = Common.Utils.String.htmlEncode(oldMessage).match(/\B[@+][A-Z0-9._%+-]+@[A-Z0-9._-]+\.[A-Z]+\b/gi);
old_arr = _.map(old_arr, function(str){
return str.slice(1, str.length);
});
}
pickEMail: function (commentId, message) {
var arr = Common.Utils.String.htmlEncode(message).match(/\B[@+][A-Z0-9._%+-]+@[A-Z0-9._-]+\.[A-Z]+\b/gi);
arr = _.map(arr, function(str){
return str.slice(1, str.length);
});
arr = _.difference(arr, old_arr);
(arr.length>0) && Common.Gateway.requestSendNotify({
emails: arr,
actionId: commentId, // comment id

View file

@ -39,29 +39,59 @@
*/
define([
'common/main/lib/view/ExternalEditor'
'common/main/lib/component/Window'
], function () { 'use strict';
Common.Views.ExternalDiagramEditor = Common.Views.ExternalEditor.extend(_.extend({
Common.Views.ExternalDiagramEditor = Common.UI.Window.extend(_.extend({
initialize : function(options) {
var _options = {};
var _inner_height = Common.Utils.innerHeight() - Common.Utils.InternalSettings.get('window-inactive-area-top');
_.extend(_options, {
title: this.textTitle,
storageName: 'diagram-editor',
sdkplaceholder: 'id-diagram-editor-placeholder',
initwidth: 900,
initheight: 700,
minwidth: 730,
minheight: 275
width: 910,
height: (_inner_height - 700)<0 ? _inner_height : 700,
cls: 'advanced-settings-dlg',
header: true,
toolclose: 'hide',
toolcallback: _.bind(this.onToolClose, this)
}, options);
this.template = [
'<div id="id-diagram-editor-container" class="box" style="height:' + (_options.height-85) + 'px;">',
'<div id="id-diagram-editor-placeholder" style="width: 100%;height: 100%;"></div>',
'</div>',
'<div class="separator horizontal"></div>',
'<div class="footer" style="text-align: center;">',
'<button id="id-btn-diagram-editor-apply" class="btn normal dlg-btn primary custom" result="ok" data-hint="1" data-hint-direction="bottom" data-hint-offset="big">' + this.textSave + '</button>',
'<button id="id-btn-diagram-editor-cancel" class="btn normal dlg-btn" result="cancel" data-hint="1" data-hint-direction="bottom" data-hint-offset="big">' + this.textClose + '</button>',
'</div>'
].join('');
_options.tpl = _.template(this.template)(_options);
this.handler = _options.handler;
this._chartData = null;
Common.Views.ExternalEditor.prototype.initialize.call(this, _options);
this._isNewChart = true;
Common.UI.Window.prototype.initialize.call(this, _options);
},
render: function() {
Common.UI.Window.prototype.render.call(this);
this.btnSave = new Common.UI.Button({
el: $('#id-btn-diagram-editor-apply'),
disabled: true
});
this.btnCancel = new Common.UI.Button({
el: $('#id-btn-diagram-editor-cancel')
});
this.$window.find('.dlg-btn').on('click', _.bind(this.onDlgBtnClick, this));
},
show: function() {
this.setPlaceholder();
Common.Views.ExternalEditor.prototype.show.apply(this, arguments);
Common.UI.Window.prototype.show.apply(this, arguments);
},
setChartData: function(data) {
@ -70,6 +100,55 @@ define([
this.fireEvent('setchartdata', this);
},
setEditMode: function(mode) {
this._isNewChart = !mode;
},
isEditMode: function() {
return !this._isNewChart;
},
setControlsDisabled: function(disable) {
this.btnSave.setDisabled(disable);
this.btnCancel.setDisabled(disable);
(disable) ? this.$window.find('.tool.close').addClass('disabled') : this.$window.find('.tool.close').removeClass('disabled');
},
onDlgBtnClick: function(event) {
if ( this.handler ) {
this.handler.call(this, event.currentTarget.attributes['result'].value);
return;
}
this.hide();
},
onToolClose: function() {
if ( this.handler ) {
this.handler.call(this, 'cancel');
return;
}
this.hide();
},
setHeight: function(height) {
if (height >= 0) {
var min = parseInt(this.$window.css('min-height'));
height < min && (height = min);
this.$window.height(height);
var header_height = (this.initConfig.header) ? parseInt(this.$window.find('> .header').css('height')) : 0;
this.$window.find('> .body').css('height', height-header_height);
this.$window.find('> .body > .box').css('height', height-85);
var top = (Common.Utils.innerHeight() - Common.Utils.InternalSettings.get('window-inactive-area-top') - parseInt(height)) / 2;
var left = (Common.Utils.innerWidth() - parseInt(this.initConfig.width)) / 2;
this.$window.css('left',left);
this.$window.css('top', Common.Utils.InternalSettings.get('window-inactive-area-top') + top);
}
},
setPlaceholder: function(placeholder) {
this._placeholder = placeholder;
},
@ -78,6 +157,8 @@ define([
return this._placeholder;
},
textSave: 'Save & Exit',
textClose: 'Close',
textTitle: 'Chart Editor'
}, Common.Views.ExternalDiagramEditor || {}));
});

View file

@ -1,195 +0,0 @@
/*
*
* (c) Copyright Ascensio System SIA 2010-2022
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
/**
* ExternalEditor.js
*
* Created by Julia Radzhabova on 22/06/22
* Copyright (c) 2022 Ascensio System SIA. All rights reserved.
*
*/
define([
'common/main/lib/component/Window'
], function () { 'use strict';
Common.Views.ExternalEditor = Common.UI.Window.extend(_.extend({
initialize : function(options) {
var filter = Common.localStorage.getKeysFilter(),
appPrefix = (filter && filter.length) ? filter.split(',')[0] : '';
this.storageName = appPrefix + (options.storageName || 'external-editor');
var _options = {},
width = options.initwidth || 900,
height = options.initheight || 700;
var value = Common.localStorage.getItem(this.storageName + '-width');
value && (width = parseInt(value));
value = Common.localStorage.getItem(this.storageName + '-height');
value && (height = parseInt(value));
var _inner_height = Common.Utils.innerHeight() - Common.Utils.InternalSettings.get('window-inactive-area-top');
_.extend(_options, {
width: width,
height: (_inner_height - height)<0 ? _inner_height : height,
cls: 'advanced-settings-dlg',
header: true,
toolclose: 'hide',
toolcallback: _.bind(this.onToolClose, this),
resizable: true
}, options);
this._headerFooterHeight = 85;
this.template = [
'<div id="id-editor-container" class="box" style="height:' + (_options.height-this._headerFooterHeight) + 'px; padding: 0 5px;">',
'<div id="' + (_options.sdkplaceholder || '') + '" style="width: 100%;height: 100%;"></div>',
'</div>',
'<div class="separator horizontal"></div>',
'<div class="footer" style="text-align: center;">',
'<button id="id-btn-editor-apply" class="btn normal dlg-btn primary custom" result="ok" data-hint="1" data-hint-direction="bottom" data-hint-offset="big">' + this.textSave + '</button>',
'<button id="id-btn-editor-cancel" class="btn normal dlg-btn" result="cancel" data-hint="1" data-hint-direction="bottom" data-hint-offset="big">' + this.textClose + '</button>',
'</div>'
].join('');
_options.tpl = _.template(this.template)(_options);
this.handler = _options.handler;
this._isNewObject = true;
this.on('resize', _.bind(this.onWindowResize, this));
Common.UI.Window.prototype.initialize.call(this, _options);
},
render: function() {
Common.UI.Window.prototype.render.call(this);
this.boxEl = this.$window.find('.body > .box');
this.btnSave = new Common.UI.Button({
el: this.$window.find('#id-btn-editor-apply'),
disabled: true
});
this.btnCancel = new Common.UI.Button({
el: this.$window.find('#id-btn-editor-cancel')
});
this.$window.find('.dlg-btn').on('click', _.bind(this.onDlgBtnClick, this));
},
show: function() {
Common.UI.Window.prototype.show.apply(this, arguments);
},
setEditMode: function(mode) {
this._isNewObject = !mode;
},
isEditMode: function() {
return !this._isNewObject;
},
setControlsDisabled: function(disable) {
this.btnSave.setDisabled(disable);
this.btnCancel.setDisabled(disable);
(disable) ? this.$window.find('.tool.close').addClass('disabled') : this.$window.find('.tool.close').removeClass('disabled');
},
onDlgBtnClick: function(event) {
if ( this.handler ) {
this.handler.call(this, event.currentTarget.attributes['result'].value);
return;
}
this.hide();
},
onToolClose: function() {
if ( this.handler ) {
this.handler.call(this, 'cancel');
return;
}
this.hide();
},
setHeight: function(height) {
if (height >= 0) {
var min = parseInt(this.$window.css('min-height'));
height < min && (height = min);
this.$window.height(height);
var header_height = (this.initConfig.header) ? parseInt(this.$window.find('> .header').css('height')) : 0;
this.$window.find('> .body').css('height', height-header_height);
this.$window.find('> .body > .box').css('height', height-this._headerFooterHeight);
}
},
setInCenter: function() {
var height = this.$window.height(),
top = (Common.Utils.innerHeight() - Common.Utils.InternalSettings.get('window-inactive-area-top') - parseInt(height)) / 2,
left = (Common.Utils.innerWidth() - parseInt(this.initConfig.width)) / 2;
this.$window.css('left',left);
this.$window.css('top', Common.Utils.InternalSettings.get('window-inactive-area-top') + top);
},
setInnerSize: function(width, height) {
var maxHeight = Common.Utils.innerHeight(),
maxWidth = Common.Utils.innerWidth(),
borders_width = (parseInt(this.$window.css('border-left-width')) + parseInt(this.$window.css('border-right-width'))),
paddings = (parseInt(this.boxEl.css('padding-left')) + parseInt(this.boxEl.css('padding-right')));
height += 90; // add toolbar and statusbar height
if (maxHeight<height + this._headerFooterHeight)
height = maxHeight - this._headerFooterHeight;
if (maxWidth<width + paddings + borders_width)
width = maxWidth - paddings - borders_width;
this.boxEl.css('height', height);
this.setHeight(height + this._headerFooterHeight);
this.setWidth(width + paddings + borders_width);
if (this.getLeft()<0)
this.$window.css('left', 0);
if (this.getTop() < Common.Utils.InternalSettings.get('window-inactive-area-top') )
this.$window.css('top', Common.Utils.InternalSettings.get('window-inactive-area-top'));
},
onWindowResize: function (args) {
if (args && args[1]=='end') {
var value = this.getSize();
Common.localStorage.setItem(this.storageName + '-width', value[0]);
Common.localStorage.setItem(this.storageName + '-height', value[1]);
}
},
textSave: 'Save & Exit',
textClose: 'Close'
}, Common.Views.ExternalEditor || {}));
});

View file

@ -39,24 +39,55 @@
*/
define([
'common/main/lib/view/ExternalEditor'
'common/main/lib/component/Window'
], function () { 'use strict';
Common.Views.ExternalMergeEditor = Common.Views.ExternalEditor.extend(_.extend({
Common.Views.ExternalMergeEditor = Common.UI.Window.extend(_.extend({
initialize : function(options) {
var _options = {};
_.extend(_options, {
title: this.textTitle,
storageName: 'merge-editor',
sdkplaceholder: 'id-merge-editor-placeholder',
initwidth: 900,
initheight: 700,
minwidth: 370,
minheight: 275
width: 910,
height: (Common.Utils.innerHeight()-700)<0 ? Common.Utils.innerHeight(): 700,
cls: 'advanced-settings-dlg',
header: true,
toolclose: 'hide',
toolcallback: _.bind(this.onToolClose, this)
}, options);
this.template = [
'<div id="id-merge-editor-container" class="box" style="height:' + (_options.height-85) + 'px;">',
'<div id="id-merge-editor-placeholder" style="width: 100%;height: 100%;"></div>',
'</div>',
'<div class="separator horizontal"></div>',
'<div class="footer" style="text-align: center;">',
'<button id="id-btn-merge-editor-apply" class="btn normal dlg-btn primary custom" result="ok" data-hint="1" data-hint-direction="bottom" data-hint-offset="big">' + this.textSave + '</button>',
'<button id="id-btn-merge-editor-cancel" class="btn normal dlg-btn" result="cancel" data-hint="1" data-hint-direction="bottom" data-hint-offset="big">' + this.textClose + '</button>',
'</div>'
].join('');
_options.tpl = _.template(this.template)(_options);
this.handler = _options.handler;
this._mergeData = null;
Common.Views.ExternalEditor.prototype.initialize.call(this, _options);
this._isNewMerge = true;
Common.UI.Window.prototype.initialize.call(this, _options);
},
render: function() {
Common.UI.Window.prototype.render.call(this);
this.btnSave = new Common.UI.Button({
el: $('#id-btn-merge-editor-apply'),
disabled: true
});
this.btnCancel = new Common.UI.Button({
el: $('#id-btn-merge-editor-cancel'),
disabled: true
});
this.$window.find('.tool.close').addClass('disabled');
this.$window.find('.dlg-btn').on('click', _.bind(this.onDlgBtnClick, this));
},
setMergeData: function(data) {
@ -65,6 +96,54 @@ define([
this.fireEvent('setmergedata', this);
},
setEditMode: function(mode) {
this._isNewMerge = !mode;
},
isEditMode: function() {
return !this._isNewMerge;
},
setControlsDisabled: function(disable) {
this.btnSave.setDisabled(disable);
this.btnCancel.setDisabled(disable);
(disable) ? this.$window.find('.tool.close').addClass('disabled') : this.$window.find('.tool.close').removeClass('disabled');
},
onDlgBtnClick: function(event) {
var state = event.currentTarget.attributes['result'].value;
if ( this.handler && this.handler.call(this, state) )
return;
this.hide();
},
onToolClose: function() {
if ( this.handler && this.handler.call(this, 'cancel') )
return;
this.hide();
},
setHeight: function(height) {
if (height >= 0) {
var min = parseInt(this.$window.css('min-height'));
height < min && (height = min);
this.$window.height(height);
var header_height = (this.initConfig.header) ? parseInt(this.$window.find('> .header').css('height')) : 0;
this.$window.find('> .body').css('height', height-header_height);
this.$window.find('> .body > .box').css('height', height-85);
var top = (Common.Utils.innerHeight() - parseInt(height)) / 2;
var left = (Common.Utils.innerWidth() - parseInt(this.initConfig.width)) / 2;
this.$window.css('left',left);
this.$window.css('top',top);
}
},
textSave: 'Save & Exit',
textClose: 'Close',
textTitle: 'Mail Merge Recipients'
}, Common.Views.ExternalMergeEditor || {}));
});

View file

@ -39,24 +39,59 @@
*/
define([
'common/main/lib/view/ExternalEditor'
'common/main/lib/component/Window'
], function () { 'use strict';
Common.Views.ExternalOleEditor = Common.Views.ExternalEditor.extend(_.extend({
Common.Views.ExternalOleEditor = Common.UI.Window.extend(_.extend({
initialize : function(options) {
var _options = {};
var _inner_height = Common.Utils.innerHeight() - Common.Utils.InternalSettings.get('window-inactive-area-top');
_.extend(_options, {
title: this.textTitle,
storageName: 'ole-editor',
sdkplaceholder: 'id-ole-editor-placeholder',
initwidth: 900,
initheight: 700,
minwidth: 860,
minheight: 275
width: 910,
height: (_inner_height - 700)<0 ? _inner_height : 700,
cls: 'advanced-settings-dlg',
header: true,
toolclose: 'hide',
toolcallback: _.bind(this.onToolClose, this)
}, options);
this.template = [
'<div id="id-ole-editor-container" class="box" style="height:' + (_options.height-85) + 'px;">',
'<div id="id-ole-editor-placeholder" style="width: 100%;height: 100%;"></div>',
'</div>',
'<div class="separator horizontal"></div>',
'<div class="footer" style="text-align: center;">',
'<button id="id-btn-ole-editor-apply" class="btn normal dlg-btn primary custom" result="ok" data-hint="1" data-hint-direction="bottom" data-hint-offset="big">' + this.textSave + '</button>',
'<button id="id-btn-ole-editor-cancel" class="btn normal dlg-btn" result="cancel" data-hint="1" data-hint-direction="bottom" data-hint-offset="big">' + this.textClose + '</button>',
'</div>'
].join('');
_options.tpl = _.template(this.template)(_options);
this.handler = _options.handler;
this._oleData = null;
Common.Views.ExternalEditor.prototype.initialize.call(this, _options);
this._isNewOle = true;
Common.UI.Window.prototype.initialize.call(this, _options);
},
render: function() {
Common.UI.Window.prototype.render.call(this);
this.btnSave = new Common.UI.Button({
el: $('#id-btn-ole-editor-apply'),
disabled: true
});
this.btnCancel = new Common.UI.Button({
el: $('#id-btn-ole-editor-cancel')
});
this.$window.find('.dlg-btn').on('click', _.bind(this.onDlgBtnClick, this));
},
show: function() {
this.setPlaceholder();
Common.UI.Window.prototype.show.apply(this, arguments);
},
setOleData: function(data) {
@ -65,6 +100,65 @@ define([
this.fireEvent('setoledata', this);
},
setEditMode: function(mode) {
this._isNewOle = !mode;
},
isEditMode: function() {
return !this._isNewOle;
},
setControlsDisabled: function(disable) {
this.btnSave.setDisabled(disable);
this.btnCancel.setDisabled(disable);
(disable) ? this.$window.find('.tool.close').addClass('disabled') : this.$window.find('.tool.close').removeClass('disabled');
},
onDlgBtnClick: function(event) {
if ( this.handler ) {
this.handler.call(this, event.currentTarget.attributes['result'].value);
return;
}
this.hide();
},
onToolClose: function() {
if ( this.handler ) {
this.handler.call(this, 'cancel');
return;
}
this.hide();
},
setHeight: function(height) {
if (height >= 0) {
var min = parseInt(this.$window.css('min-height'));
height < min && (height = min);
this.$window.height(height);
var header_height = (this.initConfig.header) ? parseInt(this.$window.find('> .header').css('height')) : 0;
this.$window.find('> .body').css('height', height-header_height);
this.$window.find('> .body > .box').css('height', height-85);
var top = (Common.Utils.innerHeight() - Common.Utils.InternalSettings.get('window-inactive-area-top') - parseInt(height)) / 2;
var left = (Common.Utils.innerWidth() - parseInt(this.initConfig.width)) / 2;
this.$window.css('left',left);
this.$window.css('top', Common.Utils.InternalSettings.get('window-inactive-area-top') + top);
}
},
setPlaceholder: function(placeholder) {
this._placeholder = placeholder;
},
getPlaceholder: function() {
return this._placeholder;
},
textSave: 'Save & Exit',
textClose: 'Close',
textTitle: 'Spreadsheet Editor'
}, Common.Views.ExternalOleEditor || {}));
});

View file

@ -81,6 +81,7 @@ define([
'<div class="hedset">' +
'<div class="btn-slot" id="slot-hbtn-edit"></div>' +
'<div class="btn-slot" id="slot-hbtn-print"></div>' +
'<div class="btn-slot" id="slot-hbtn-print-quick"></div>' +
'<div class="btn-slot" id="slot-hbtn-download"></div>' +
'</div>' +
'<div class="hedset" data-layout-name="header-users">' +
@ -123,12 +124,12 @@ define([
'<div id="header-logo"><i></i></div>' +
'</section>';
var templateTitleBox = '<section id="box-document-title">' +
var templateTitleBox = '<section id="box-document-title">' +
'<div class="extra"></div>' +
'<div class="hedset">' +
'<div class="btn-slot" id="slot-btn-dt-home"></div>' +
'<div class="btn-slot" id="slot-btn-dt-save" data-layout-name="header-save"></div>' +
'<div class="btn-slot" id="slot-btn-dt-print"></div>' +
'<div class="btn-slot" id="slot-btn-dt-print-quick"></div>' +
'<div class="btn-slot" id="slot-btn-dt-undo"></div>' +
'<div class="btn-slot" id="slot-btn-dt-redo"></div>' +
'</div>' +
@ -333,6 +334,13 @@ define([
});
}
if ( me.btnPrintQuick ) {
me.btnPrintQuick.updateHint(me.tipPrintQuick);
me.btnPrintQuick.on('click', function (e) {
me.fireEvent('print-quick', me);
});
}
if ( me.btnSave ) {
me.btnSave.updateHint(me.tipSave + Common.Utils.String.platformKey('Ctrl+S'));
me.btnSave.on('click', function (e) {
@ -573,6 +581,9 @@ define([
if ( config.canPrint )
this.btnPrint = createTitleButton('toolbar__icon icon--inverse btn-print', $html.findById('#slot-hbtn-print'), undefined, 'bottom', 'big', 'P');
if ( config.canQuickPrint )
this.btnPrintQuick = createTitleButton('toolbar__icon icon--inverse btn-quick-print', $html.findById('#slot-hbtn-print-quick'), undefined, 'bottom', 'big', 'Q');
if ( config.canEdit && config.canRequestEditRights )
this.btnEdit = createTitleButton('toolbar__icon icon--inverse btn-edit', $html.findById('#slot-hbtn-edit'), undefined, 'bottom', 'big');
}
@ -647,6 +658,8 @@ define([
if ( config.canPrint && config.isEdit ) {
me.btnPrint = createTitleButton('toolbar__icon icon--inverse btn-print', $html.findById('#slot-btn-dt-print'), true, undefined, undefined, 'P');
}
if ( config.canQuickPrint && config.isEdit )
me.btnPrintQuick = createTitleButton('toolbar__icon icon--inverse btn-quick-print', $html.findById('#slot-btn-dt-print-quick'), true, undefined, undefined, 'Q');
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');
@ -696,6 +709,7 @@ define([
if (idx>0)
this.fileExtention = this.documentCaption.substring(idx);
this.isModified && (value += '*');
this.readOnly && (value += ' (' + this.textReadOnly + ')');
if ( $labelDocName ) {
this.setDocTitle( value );
}
@ -888,6 +902,11 @@ define([
return initials;
},
setDocumentReadOnly: function (readonly) {
this.readOnly = readonly;
this.setDocumentCaption(this.documentCaption);
},
textBack: 'Go to Documents',
txtRename: 'Rename',
txtAccessRights: 'Change access rights',
@ -911,7 +930,9 @@ define([
textAddFavorite: 'Mark as favorite',
textHideNotes: 'Hide Notes',
tipSearch: 'Search',
textShare: 'Share'
textShare: 'Share',
tipPrintQuick: 'Quick print',
textReadOnly: 'Read only'
}
}(), Common.Views.Header || {}))
});

View file

@ -207,7 +207,6 @@ define([
type: 'password',
showCls: (this.options.iconType==='svg' ? 'svg-icon' : 'toolbar__icon') + ' btn-sheet-view',
hideCls: (this.options.iconType==='svg' ? 'svg-icon' : 'toolbar__icon') + ' hide-password',
maxLength: this.options.maxPasswordLength,
validateOnBlur: false,
showPwdOnClick: true,
validation : function(value) {

View file

@ -101,10 +101,7 @@ define([
this.checkedIndex = i;
}
}
if (this.checkedIndex>=0) {
this.radio[this.checkedIndex].setValue(true);
this.currentCell = this.radio[this.checkedIndex].options.value;
}
(this.checkedIndex>=0) && this.radio[this.checkedIndex].setValue(true);
}
$window.find('.dlg-btn').on('click', _.bind(this.onBtnClick, this));
},

View file

@ -154,8 +154,6 @@ define([
this.$window.css('left',(maxWidth - width - borders_width) / 2);
this.$window.css('top',(maxHeight - height - this._headerFooterHeight) / 2);
this._restoreHeight = this._restoreWidth = undefined;
},
onWindowResize: function() {
@ -164,38 +162,26 @@ define([
win_width = this.getWidth(),
win_height = this.getHeight(),
bordersOffset = (this.resizable) ? 0 : this.bordersOffset;
if (win_height<main_height-bordersOffset*2+0.1 ) {
if (!this.resizable && this._restoreHeight>0 && win_height < this._restoreHeight) {
var height = Math.max(Math.min(this._restoreHeight, main_height-bordersOffset*2), this.initConfig.minheight);
this.setHeight(height);
this.boxEl.css('height', height - this._headerFooterHeight);
}
var top = this.getTop();
if (win_height<main_height-bordersOffset*2+0.1 && win_width<main_width-bordersOffset*2+0.1) {
var left = this.getLeft(),
top = this.getTop();
if (top<bordersOffset) this.$window.css('top', bordersOffset);
else if (top+win_height>main_height-bordersOffset)
this.$window.css('top', main_height-bordersOffset - win_height);
} else {
if (this._restoreHeight===undefined) {
this._restoreHeight = win_height;
}
this.setHeight(Math.max(main_height-bordersOffset*2, this.initConfig.minheight));
this.boxEl.css('height', Math.max(main_height-bordersOffset*2, this.initConfig.minheight) - this._headerFooterHeight);
this.$window.css('top', bordersOffset);
}
if (win_width<main_width-bordersOffset*2+0.1) {
if (!this.resizable && this._restoreWidth>0 && win_width < this._restoreWidth) {
this.setWidth(Math.max(Math.min(this._restoreWidth, main_width-bordersOffset*2), this.initConfig.minwidth));
}
var left = this.getLeft();
if (left<bordersOffset) this.$window.css('left', bordersOffset);
else if (left+win_width>main_width-bordersOffset)
this.$window.css('left', main_width-bordersOffset-win_width);
} else {
if (this._restoreWidth===undefined) {
this._restoreWidth = win_width;
if (win_height>main_height-bordersOffset*2) {
this.setHeight(Math.max(main_height-bordersOffset*2, this.initConfig.minheight));
this.boxEl.css('height', Math.max(main_height-bordersOffset*2, this.initConfig.minheight) - this._headerFooterHeight);
this.$window.css('top', bordersOffset);
}
if (win_width>main_width-bordersOffset*2) {
this.setWidth(Math.max(main_width-bordersOffset*2, this.initConfig.minwidth));
this.$window.css('left', bordersOffset);
}
this.setWidth(Math.max(main_width-bordersOffset*2, this.initConfig.minwidth));
this.$window.css('left', bordersOffset);
}
},

View file

@ -74,16 +74,14 @@ define([
_.extend(this, options);
this._locked = false;
this._state = {
DisabledControls: false,
docProtection: {
isReadOnly: false,
isReviewOnly: false,
isFormsOnly: false,
isCommentsOnly: false
}
DisabledControls: false
};
this.lockedControls = [];
Common.UI.BaseView.prototype.initialize.call(this, arguments);
Common.NotificationCenter.on('app:ready', function (mode) {
Common.Utils.asyncCall(this._onAppReady, this, mode);
}.bind(this));
},
render: function(el) {
@ -155,7 +153,6 @@ define([
if ( !this.storePlugins.isEmpty() ) {
var me = this;
var _group = $('<div class="group"></div>');
var _set = Common.enumLock;
this.storePlugins.each(function (model) {
if (model.get('visible')) {
var modes = model.get('variations'),
@ -170,7 +167,6 @@ define([
split: modes && modes.length > 1,
value: guid,
hint: model.get('name'),
lock: model.get('isDisplayedInViewer') ? [_set.viewMode, _set.previewReviewMode, _set.viewFormMode, _set.selRangeEdit, _set.editFormula] : [_set.viewMode, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.docLockView, _set.docLockForms, _set.docLockComments, _set.selRangeEdit, _set.editFormula],
dataHint: '1',
dataHintDirection: 'bottom',
dataHintOffset: 'small'
@ -183,10 +179,6 @@ define([
me.lockedControls.push(btn);
}
});
var docProtection = me._state.docProtection
Common.Utils.lockControls(Common.enumLock.docLockView, docProtection.isReadOnly, {array: me.lockedControls});
Common.Utils.lockControls(Common.enumLock.docLockForms, docProtection.isFormsOnly, {array: me.lockedControls});
Common.Utils.lockControls(Common.enumLock.docLockComments, docProtection.isCommentsOnly, {array: me.lockedControls});
parent.html(_group);
$('<div class="separator long"></div>').prependTo(parent);
@ -212,16 +204,6 @@ define([
}
},
SetDisabled: function(disable, reviewMode, fillFormMode) {
if (reviewMode) {
Common.Utils.lockControls(Common.enumLock.previewReviewMode, disable, {array: this.lockedControls});
} else if (fillFormMode) {
Common.Utils.lockControls(Common.enumLock.viewFormMode, disable, {array: this.lockedControls});
} else {
Common.Utils.lockControls(Common.enumLock.viewMode, disable, {array: this.lockedControls});
}
},
openInsideMode: function(name, url, frameId) {
if (!this.pluginsPanel) return false;
@ -307,6 +289,9 @@ define([
this.loadMask.hide();
},
_onAppReady: function (mode) {
},
parseIcons: function(icons) {
if (icons.length && typeof icons[0] !== 'string') {
var theme = Common.UI.Themes.currentThemeId().toLowerCase(),
@ -404,7 +389,6 @@ define([
});
});
var _set = Common.enumLock;
var btn = new Common.UI.Button({
cls: 'btn-toolbar x-huge icon-top',
iconImg: icon_url,
@ -413,7 +397,6 @@ define([
split: _menu_items.length > 1,
value: guid,
hint: model.get('name'),
lock: model.get('isDisplayedInViewer') ? [_set.viewMode, _set.previewReviewMode, _set.viewFormMode, _set.selRangeEdit, _set.editFormula] : [_set.viewMode, _set.previewReviewMode, _set.viewFormMode, _set.docLockView, _set.docLockForms, _set.docLockComments, _set.selRangeEdit, _set.editFormula ],
dataHint: '1',
dataHintDirection: 'bottom',
dataHintOffset: 'small'

View file

@ -78,9 +78,6 @@ define([
});
});
this.btnPwd.on('click', function (b, e) {
!b.pressed && me.fireEvent('protect:password', [b, 'delete']);
});
this.btnPwd.menu.on('item:click', function (menu, item, e) {
me.fireEvent('protect:password', [menu, item.value]);
});
@ -135,8 +132,6 @@ define([
cls: 'btn-toolbar x-huge icon-top',
iconCls: 'toolbar__icon btn-ic-protect',
caption: this.txtEncrypt,
split: true,
enableToggle: true,
menu: true,
visible: false,
dataHint : '1',
@ -177,7 +172,7 @@ define([
if ( config.canProtect) {
if ( config.isPasswordSupport) {
me.btnAddPwd.updateHint(me.hintAddPwd);
me.btnPwd.updateHint([me.hintDelPwd, me.hintPwd]);
me.btnPwd.updateHint(me.hintPwd);
me.btnPwd.setMenu(
new Common.UI.Menu({
@ -347,7 +342,6 @@ define([
}
}, this);
this.btnPwd.setVisible(hasPassword);
this.btnPwd.toggle(hasPassword, true);
},
txtEncrypt: 'Encrypt',
@ -359,8 +353,7 @@ define([
txtDeletePwd: 'Delete password',
txtAddPwd: 'Add password',
txtInvisibleSignature: 'Add digital signature',
txtSignatureLine: 'Add Signature line',
hintDelPwd: 'Delete password'
txtSignatureLine: 'Add Signature line'
}
}()), Common.Views.Protection || {}));
});

View file

@ -238,10 +238,6 @@ define([
me.fireEvent('comment:resolveComments', [item.value]);
});
}
Common.NotificationCenter.on('protect:doclock', function (e) {
me.fireEvent('protect:update');
});
me.fireEvent('protect:update');
}
return {
@ -263,7 +259,7 @@ define([
caption: this.txtAccept,
split: !this.appConfig.canUseReviewPermissions,
iconCls: 'toolbar__icon btn-review-save',
lock: [_set.reviewChangelock, _set.isReviewOnly, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.docLockView, _set.docLockForms, _set.docLockComments, _set.docLockReview],
lock: [_set.reviewChangelock, _set.isReviewOnly, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect],
dataHint: '1',
dataHintDirection: 'bottom',
dataHintOffset: 'small'
@ -275,7 +271,7 @@ define([
caption: this.txtReject,
split: !this.appConfig.canUseReviewPermissions,
iconCls: 'toolbar__icon btn-review-deny',
lock: [_set.reviewChangelock, _set.isReviewOnly, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.docLockView, _set.docLockForms, _set.docLockComments, _set.docLockReview],
lock: [_set.reviewChangelock, _set.isReviewOnly, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect],
dataHint: '1',
dataHintDirection: 'bottom',
dataHintOffset: 'small'
@ -288,7 +284,7 @@ define([
caption: this.txtCompare,
split: true,
iconCls: 'toolbar__icon btn-compare',
lock: [_set.hasCoeditingUsers, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.docLockView, _set.docLockForms, _set.docLockComments],
lock: [_set.hasCoeditingUsers, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect],
dataHint: '1',
dataHintDirection: 'bottom',
dataHintOffset: 'small'
@ -298,7 +294,7 @@ define([
this.btnTurnOn = new Common.UI.Button({
cls: 'btn-toolbar x-huge icon-top',
iconCls: 'toolbar__icon btn-ic-review',
lock: [_set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.docLockView, _set.docLockForms, _set.docLockComments, _set.docLockReview],
lock: [_set.previewReviewMode, _set.viewFormMode, _set.lostConnect],
caption: this.txtTurnon,
split: !this.appConfig.isReviewOnly,
enableToggle: true,
@ -313,7 +309,7 @@ define([
this.btnPrev = new Common.UI.Button({
cls: 'btn-toolbar x-huge icon-top',
iconCls: 'toolbar__icon btn-review-prev',
lock: [_set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.docLockView, _set.docLockForms, _set.docLockComments],
lock: [_set.previewReviewMode, _set.viewFormMode, _set.lostConnect],
caption: this.txtPrev,
dataHint: '1',
dataHintDirection: 'bottom',
@ -324,7 +320,7 @@ define([
this.btnNext = new Common.UI.Button({
cls: 'btn-toolbar x-huge icon-top',
iconCls: 'toolbar__icon btn-review-next',
lock: [_set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.docLockView, _set.docLockForms, _set.docLockComments],
lock: [_set.previewReviewMode, _set.viewFormMode, _set.lostConnect],
caption: this.txtNext,
dataHint: '1',
dataHintDirection: 'bottom',
@ -340,7 +336,7 @@ define([
this.btnReviewView = new Common.UI.Button({
cls: 'btn-toolbar x-huge icon-top',
iconCls: 'toolbar__icon btn-ic-reviewview',
lock: [_set.viewFormMode, _set.lostConnect, _set.docLockView, _set.docLockForms, _set.docLockComments],
lock: [_set.viewFormMode, _set.lostConnect],
caption: this.txtView,
menu: new Common.UI.Menu({
cls: 'ppm-toolbar',
@ -408,7 +404,7 @@ define([
this.btnCoAuthMode = new Common.UI.Button({
cls: 'btn-toolbar x-huge icon-top',
iconCls: 'toolbar__icon btn-ic-coedit',
lock: [_set.viewFormMode, _set.lostConnect, _set.docLockView],
lock: [_set.viewFormMode, _set.lostConnect],
caption: this.txtCoAuthMode,
menu: true,
dataHint: '1',
@ -449,13 +445,12 @@ define([
}
if ( this.appConfig.canCoAuthoring && this.appConfig.canComments ) {
this.canComments = true; // fix for loading protected document
this.btnCommentRemove = new Common.UI.Button({
cls: 'btn-toolbar x-huge icon-top',
caption: this.txtCommentRemove,
split: true,
iconCls: 'toolbar__icon btn-rem-comment',
lock: [_set.previewReviewMode, _set.viewFormMode, _set.hideComments, _set['Objects'], _set.lostConnect, _set.docLockView, _set.docLockForms],
lock: [_set.previewReviewMode, _set.viewFormMode, _set.hideComments, _set['Objects'], _set.lostConnect],
dataHint: '1',
dataHintDirection: 'bottom',
dataHintOffset: 'small'
@ -466,13 +461,15 @@ define([
caption: this.txtCommentResolve,
split: true,
iconCls: 'toolbar__icon btn-resolve-all',
lock: [_set.previewReviewMode, _set.viewFormMode, _set.hideComments, _set['Objects'], _set.lostConnect, _set.docLockView, _set.docLockForms],
lock: [_set.previewReviewMode, _set.viewFormMode, _set.hideComments, _set['Objects'], _set.lostConnect],
dataHint: '1',
dataHintDirection: 'bottom',
dataHintOffset: 'small'
});
this.lockedControls.push(this.btnCommentResolve);
}
Common.NotificationCenter.on('app:ready', this.onAppReady.bind(this));
},
render: function (el) {
@ -661,7 +658,7 @@ define([
}
var separator_sharing = !(me.btnSharing || me.btnCoAuthMode) ? me.$el.find('.separator.sharing') : '.separator.sharing',
separator_comments = !(me.btnCommentRemove || me.btnCommentResolve) ? me.$el.find('.separator.comments') : '.separator.comments',
separator_comments = !(config.canComments && config.canCoAuthoring) ? me.$el.find('.separator.comments') : '.separator.comments',
separator_review = !(config.canReview || config.canViewReview) ? me.$el.find('.separator.review') : '.separator.review',
separator_compare = !(config.canReview && config.canFeatureComparison) ? me.$el.find('.separator.compare') : '.separator.compare',
separator_chat = !me.btnChat ? me.$el.find('.separator.chat') : '.separator.chat',
@ -695,7 +692,8 @@ define([
if (!me.btnHistory && separator_last)
me.$el.find(separator_last).hide();
Common.NotificationCenter.trigger('tab:visible', 'review', (config.isEdit || config.canViewReview || me.canComments) && Common.UI.LayoutManager.isElementVisible('toolbar-collaboration'));
Common.NotificationCenter.trigger('tab:visible', 'review', (config.isEdit || config.canViewReview || config.canCoAuthoring && config.canComments) && Common.UI.LayoutManager.isElementVisible('toolbar-collaboration'));
setEvents.call(me);
});
},
@ -733,7 +731,7 @@ define([
var button = new Common.UI.Button({
cls : 'btn-toolbar',
iconCls : 'toolbar__icon btn-ic-review',
lock: [Common.enumLock.viewMode, Common.enumLock.previewReviewMode, Common.enumLock.viewFormMode, Common.enumLock.lostConnect, Common.enumLock.docLockView, Common.enumLock.docLockForms, Common.enumLock.docLockComments, Common.enumLock.docLockReview],
lock: [Common.enumLock.viewMode, Common.enumLock.previewReviewMode, Common.enumLock.viewFormMode, Common.enumLock.lostConnect],
hintAnchor : 'top',
hint : this.tipReview,
split : !this.appConfig.isReviewOnly,
@ -780,7 +778,7 @@ define([
button = new Common.UI.Button({
cls: 'btn-toolbar',
iconCls: 'toolbar__icon btn-ic-docspell',
lock: [Common.enumLock.viewMode, Common.enumLock.viewFormMode, Common.enumLock.previewReviewMode, Common.enumLock.docLockView, Common.enumLock.docLockForms, Common.enumLock.docLockComments],
lock: [Common.enumLock.viewMode, Common.enumLock.viewFormMode, Common.enumLock.previewReviewMode],
hintAnchor : 'top',
hint: this.tipSetSpelling,
enableToggle: true,
@ -796,7 +794,7 @@ define([
button = new Common.UI.Button({
cls: 'btn-toolbar',
iconCls: 'toolbar__icon btn-ic-doclang',
lock: [Common.enumLock.viewMode, Common.enumLock.previewReviewMode, Common.enumLock.viewFormMode, Common.enumLock.noSpellcheckLangs, Common.enumLock.lostConnect, Common.enumLock.docLockView, Common.enumLock.docLockForms, Common.enumLock.docLockComments],
lock: [Common.enumLock.viewMode, Common.enumLock.previewReviewMode, Common.enumLock.viewFormMode, Common.enumLock.noSpellcheckLangs, Common.enumLock.lostConnect],
hintAnchor : 'top',
hint: this.tipSetDocLang,
dataHint: '0',
@ -975,7 +973,6 @@ define([
this.options.tpl = _.template(this.template)(this.options);
this.popoverChanges = this.options.popoverChanges;
this.mode = this.options.mode;
this.docProtection = this.options.docProtection;
var filter = Common.localStorage.getKeysFilter();
this.appPrefix = (filter && filter.length) ? filter.split(',')[0] : '';
@ -986,7 +983,6 @@ define([
render: function() {
Common.UI.Window.prototype.render.call(this);
var _set = Common.enumLock;
this.btnPrev = new Common.UI.Button({
cls: 'dlg-btn iconic',
iconCls: 'img-commonctrl prev',
@ -1007,8 +1003,7 @@ define([
cls : 'btn-toolbar',
caption : this.txtAccept,
split : true,
disabled : this.mode.isReviewOnly || this.docProtection.isReviewOnly || !!Common.Utils.InternalSettings.get(this.appPrefix + "accept-reject-lock"),
lock : [_set.reviewChangelock, _set.isReviewOnly, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.docLockView, _set.docLockForms, _set.docLockComments, _set.docLockReview],
disabled : this.mode.isReviewOnly || !!Common.Utils.InternalSettings.get(this.appPrefix + "accept-reject-lock"),
menu : this.mode.canUseReviewPermissions ? false : new Common.UI.Menu({
items: [
this.mnuAcceptCurrent = new Common.UI.MenuItem({
@ -1028,7 +1023,7 @@ define([
cls : 'btn-toolbar',
caption : this.txtReject,
split : true,
lock : [_set.reviewChangelock, _set.isReviewOnly, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.docLockView, _set.docLockForms, _set.docLockComments, _set.docLockReview],
disabled : this.mode.isReviewOnly || !!Common.Utils.InternalSettings.get(this.appPrefix + "accept-reject-lock"),
menu : this.mode.canUseReviewPermissions ? false : new Common.UI.Menu({
items: [
this.mnuRejectCurrent = new Common.UI.MenuItem({
@ -1043,13 +1038,6 @@ define([
})
});
this.btnReject.render(this.$window.find('#id-review-button-reject'));
var arr = [this.btnAccept, this.btnReject];
Common.Utils.lockControls(Common.enumLock.isReviewOnly, this.mode.isReviewOnly, {array: arr});
Common.Utils.lockControls(Common.enumLock.docLockView, this.docProtection.isReadOnly, {array: arr});
Common.Utils.lockControls(Common.enumLock.docLockForms, this.docProtection.isFormsOnly, {array: arr});
Common.Utils.lockControls(Common.enumLock.docLockReview, this.docProtection.isReviewOnly, {array: arr});
Common.Utils.lockControls(Common.enumLock.docLockComments, this.docProtection.isCommentsOnly, {array: arr});
Common.Utils.lockControls(Common.enumLock.reviewChangelock, !!Common.Utils.InternalSettings.get(this.appPrefix + "accept-reject-lock"), {array: arr});
var me = this;
this.btnPrev.on('click', function (e) {

View file

@ -63,7 +63,10 @@ define([
}, options || {});
this.template = [
'<div class="box" style="height: 250px;">',
'<div class="box" style="height: 260px;">',
'<div class="input-row">',
'<label>' + this.textInfo + '</label>',
'</div>',
'<div class="input-row">',
'<label>' + this.textInfoName + '</label>',
'</div>',
@ -122,7 +125,6 @@ define([
});
me.textareaInstructions = this.$window.find('textarea');
me.textareaInstructions.val(this.textDefInstruction);
me.textareaInstructions.keydown(function (event) {
if (event.keyCode == Common.UI.Keys.RETURN) {
event.stopPropagation();
@ -134,8 +136,7 @@ define([
this.chDate = new Common.UI.CheckBox({
el: $('#id-dlg-sign-settings-date'),
labelText: this.textShowDate,
disabled: this.type=='view',
value: 'checked'
disabled: this.type=='view'
});
$window.find('.dlg-btn').on('click', _.bind(this.onBtnClick, this));
@ -197,14 +198,13 @@ define([
},
textInfo: 'Signer Info',
textInfoName: 'Suggested signer',
textInfoTitle: 'Suggested signer\'s title',
textInfoEmail: 'Suggested signer\'s e-mail',
textInstructions: 'Instructions for signer',
textInfoName: 'Name',
textInfoTitle: 'Signer Title',
textInfoEmail: 'E-mail',
textInstructions: 'Instructions for Signer',
txtEmpty: 'This field is required',
textAllowComment: 'Allow signer to add comment in the signature dialog',
textShowDate: 'Show sign date in signature line',
textTitle: 'Signature Setup',
textDefInstruction: 'Before signing this document, verify that the content you are signing is correct.'
textTitle: 'Signature Setup'
}, Common.Views.SignSettingsDialog || {}))
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 B

View file

@ -1,4 +1,5 @@
<svg style="position: absolute; width: 0; height: 0; overflow: hidden;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 127" version="1.1" width="100" height="127">
<symbol id="svg-format-djvu">
<path 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="#BC8C18"/>
<path 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"/>
<path d="M44.5845 109.635C44.5845 111.045 44.1821 112.125 43.3774 112.875C42.5767 113.625 41.4185 114 39.9028 114H37.4771V105.434H40.1665C41.5649 105.434 42.6509 105.803 43.4243 106.541C44.1978 107.279 44.5845 108.311 44.5845 109.635ZM42.6978 109.682C42.6978 107.842 41.8853 106.922 40.2603 106.922H39.2935V112.5H40.0728C41.8228 112.5 42.6978 111.561 42.6978 109.682ZM45.6919 116.883C45.2349 116.883 44.8423 116.834 44.5142 116.736V115.33C44.7876 115.404 45.0669 115.441 45.3521 115.441C45.6528 115.441 45.8716 115.357 46.0083 115.189C46.1489 115.021 46.2192 114.773 46.2192 114.445V107.449H48.0063V114.709C48.0063 115.404 47.8052 115.939 47.4028 116.314C47.0005 116.693 46.4302 116.883 45.6919 116.883ZM46.1431 105.756C46.1431 105.174 46.4673 104.883 47.1157 104.883C47.7642 104.883 48.0884 105.174 48.0884 105.756C48.0884 106.033 48.0063 106.25 47.8423 106.406C47.6821 106.559 47.4399 106.635 47.1157 106.635C46.4673 106.635 46.1431 106.342 46.1431 105.756ZM54.9146 105.434H56.7485L53.8364 114H51.856L48.9497 105.434H50.7837L52.395 110.531C52.4849 110.832 52.5767 111.184 52.6704 111.586C52.7681 111.984 52.8286 112.262 52.8521 112.418C52.895 112.059 53.0415 111.43 53.2915 110.531L54.9146 105.434ZM62.3325 114L62.0923 113.162H61.9985C61.8071 113.467 61.5356 113.703 61.1841 113.871C60.8325 114.035 60.4321 114.117 59.9829 114.117C59.2134 114.117 58.6333 113.912 58.2427 113.502C57.8521 113.088 57.6567 112.494 57.6567 111.721V107.449H59.4438V111.275C59.4438 111.748 59.5278 112.104 59.6958 112.342C59.8638 112.576 60.1313 112.693 60.4985 112.693C60.9985 112.693 61.3599 112.527 61.5825 112.195C61.8052 111.859 61.9165 111.305 61.9165 110.531V107.449H63.7036V114H62.3325Z" fill="white"/>
@ -13,4 +14,5 @@
<rect x="55" y="74" width="19" height="2" fill="white"/>
<rect x="55" y="74" width="19" height="2" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M80 43.4348H21V82.5653H80V43.4348ZM19 41.4348V84.5653H82V41.4348H19Z" fill="white"/>
</symbol>
</svg>

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View file

@ -1,4 +1,5 @@
<svg style="position: absolute; width: 0; height: 0; overflow: hidden;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 127" version="1.1" width="100" height="127">
<symbol id="svg-format-oxps">
<path 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="#51968F"/>
<circle cx="44.5" cy="62.5" r="2.5" fill="white"/>
<circle cx="54.5" cy="62.5" r="2.5" fill="white"/>
@ -6,4 +7,5 @@
<path d="M42.894 109.705C42.894 111.123 42.5425 112.213 41.8394 112.975C41.1362 113.736 40.1284 114.117 38.8159 114.117C37.5034 114.117 36.4956 113.736 35.7925 112.975C35.0894 112.213 34.7378 111.119 34.7378 109.693C34.7378 108.268 35.0894 107.18 35.7925 106.43C36.4995 105.676 37.5112 105.299 38.8276 105.299C40.144 105.299 41.1499 105.678 41.8452 106.436C42.5444 107.193 42.894 108.283 42.894 109.705ZM36.6421 109.705C36.6421 110.662 36.8237 111.383 37.187 111.867C37.5503 112.352 38.0933 112.594 38.8159 112.594C40.2651 112.594 40.9897 111.631 40.9897 109.705C40.9897 107.775 40.269 106.811 38.8276 106.811C38.105 106.811 37.5601 107.055 37.1929 107.543C36.8257 108.027 36.6421 108.748 36.6421 109.705ZM51.5952 114H49.521L47.5288 110.76L45.5366 114H43.5913L46.4331 109.582L43.7729 105.434H45.7769L47.6226 108.516L49.4331 105.434H51.3901L48.7007 109.682L51.5952 114ZM54.4897 109.465H55.0874C55.646 109.465 56.064 109.355 56.3413 109.137C56.6187 108.914 56.7573 108.592 56.7573 108.17C56.7573 107.744 56.6401 107.43 56.4058 107.227C56.1753 107.023 55.812 106.922 55.3159 106.922H54.4897V109.465ZM58.5913 108.105C58.5913 109.027 58.3022 109.732 57.7241 110.221C57.1499 110.709 56.3315 110.953 55.269 110.953H54.4897V114H52.6733V105.434H55.4097C56.4487 105.434 57.2378 105.658 57.7769 106.107C58.3198 106.553 58.5913 107.219 58.5913 108.105ZM65.2651 111.621C65.2651 112.395 64.9858 113.004 64.4272 113.449C63.8726 113.895 63.0991 114.117 62.1069 114.117C61.1929 114.117 60.3843 113.945 59.6812 113.602V111.914C60.2593 112.172 60.7476 112.354 61.146 112.459C61.5483 112.564 61.9155 112.617 62.2476 112.617C62.646 112.617 62.9507 112.541 63.1616 112.389C63.3765 112.236 63.4839 112.01 63.4839 111.709C63.4839 111.541 63.437 111.393 63.3433 111.264C63.2495 111.131 63.1108 111.004 62.9272 110.883C62.7476 110.762 62.3784 110.568 61.8198 110.303C61.2964 110.057 60.9038 109.82 60.6421 109.594C60.3804 109.367 60.1714 109.104 60.0151 108.803C59.8589 108.502 59.7808 108.15 59.7808 107.748C59.7808 106.99 60.0366 106.395 60.5483 105.961C61.064 105.527 61.7749 105.311 62.6812 105.311C63.1265 105.311 63.5503 105.363 63.9526 105.469C64.3589 105.574 64.7827 105.723 65.2241 105.914L64.6382 107.326C64.1812 107.139 63.8022 107.008 63.5015 106.934C63.2046 106.859 62.9116 106.822 62.6226 106.822C62.2788 106.822 62.0151 106.902 61.8315 107.062C61.6479 107.223 61.5562 107.432 61.5562 107.689C61.5562 107.85 61.5933 107.99 61.6675 108.111C61.7417 108.229 61.8589 108.344 62.019 108.457C62.1831 108.566 62.5679 108.766 63.1733 109.055C63.9741 109.438 64.5229 109.822 64.8198 110.209C65.1167 110.592 65.2651 111.062 65.2651 111.621Z" fill="white"/>
<path d="M62 53V57.8L75.5 62.5L62 67.2V72L80 64.2V60.8L62 53Z" fill="white"/>
<path d="M19 64.2L37 72V67.2L23.5 62.5L37 57.8V53L19 60.8V64.2Z" fill="white"/>
</symbol>
</svg>

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

View file

@ -1,4 +1,5 @@
<svg style="position: absolute; width: 0; height: 0; overflow: hidden;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 127" version="1.1" width="100" height="127">
<symbol id="svg-format-xps">
<path 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="#51968F"/>
<circle cx="44.5" cy="62.5" r="2.5" fill="white"/>
<circle cx="54.5" cy="62.5" r="2.5" fill="white"/>
@ -6,4 +7,5 @@
<path d="M47.3198 114H45.2456L43.2534 110.76L41.2612 114H39.3159L42.1577 109.582L39.4976 105.434H41.5015L43.3472 108.516L45.1577 105.434H47.1147L44.4253 109.682L47.3198 114ZM50.2144 109.465H50.812C51.3706 109.465 51.7886 109.355 52.0659 109.137C52.3433 108.914 52.4819 108.592 52.4819 108.17C52.4819 107.744 52.3647 107.43 52.1304 107.227C51.8999 107.023 51.5366 106.922 51.0405 106.922H50.2144V109.465ZM54.3159 108.105C54.3159 109.027 54.0269 109.732 53.4487 110.221C52.8745 110.709 52.0562 110.953 50.9937 110.953H50.2144V114H48.3979V105.434H51.1343C52.1733 105.434 52.9624 105.658 53.5015 106.107C54.0444 106.553 54.3159 107.219 54.3159 108.105ZM60.9897 111.621C60.9897 112.395 60.7104 113.004 60.1519 113.449C59.5972 113.895 58.8237 114.117 57.8315 114.117C56.9175 114.117 56.1089 113.945 55.4058 113.602V111.914C55.9839 112.172 56.4722 112.354 56.8706 112.459C57.2729 112.564 57.6401 112.617 57.9722 112.617C58.3706 112.617 58.6753 112.541 58.8862 112.389C59.1011 112.236 59.2085 112.01 59.2085 111.709C59.2085 111.541 59.1616 111.393 59.0679 111.264C58.9741 111.131 58.8354 111.004 58.6519 110.883C58.4722 110.762 58.103 110.568 57.5444 110.303C57.021 110.057 56.6284 109.82 56.3667 109.594C56.105 109.367 55.896 109.104 55.7397 108.803C55.5835 108.502 55.5054 108.15 55.5054 107.748C55.5054 106.99 55.7612 106.395 56.2729 105.961C56.7886 105.527 57.4995 105.311 58.4058 105.311C58.8511 105.311 59.2749 105.363 59.6772 105.469C60.0835 105.574 60.5073 105.723 60.9487 105.914L60.3628 107.326C59.9058 107.139 59.5269 107.008 59.2261 106.934C58.9292 106.859 58.6362 106.822 58.3472 106.822C58.0034 106.822 57.7397 106.902 57.5562 107.062C57.3726 107.223 57.2808 107.432 57.2808 107.689C57.2808 107.85 57.3179 107.99 57.3921 108.111C57.4663 108.229 57.5835 108.344 57.7437 108.457C57.9077 108.566 58.2925 108.766 58.8979 109.055C59.6987 109.438 60.2476 109.822 60.5444 110.209C60.8413 110.592 60.9897 111.062 60.9897 111.621Z" fill="white"/>
<path d="M62 53V57.8L75.5 62.5L62 67.2V72L80 64.2V60.8L62 53Z" fill="white"/>
<path d="M19 64.2L37 72V67.2L23.5 62.5L37 57.8V53L19 60.8V64.2Z" fill="white"/>
</symbol>
</svg>

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 169 B

After

Width:  |  Height:  |  Size: 305 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 431 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 338 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 B

After

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 185 B

After

Width:  |  Height:  |  Size: 310 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 392 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 173 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 174 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 297 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 292 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 204 B

After

Width:  |  Height:  |  Size: 295 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 206 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 478 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 189 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 191 B

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 462 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 360 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 B

After

Width:  |  Height:  |  Size: 214 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 195 B

After

Width:  |  Height:  |  Size: 328 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 439 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 185 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 191 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 329 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 346 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 219 B

After

Width:  |  Height:  |  Size: 296 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 164 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 163 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 400 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 365 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 150 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 562 B

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