Compare commits
426 commits
master
...
feature/fi
Author | SHA1 | Date | |
---|---|---|---|
7e8368e65f | |||
fe41feb424 | |||
dcfd578f73 | |||
1c19aac8ba | |||
dcdf6b3894 | |||
6e60e29171 | |||
142e295b70 | |||
90c23f6370 | |||
90d2f75c4c | |||
fcd928823b | |||
e5603b3539 | |||
d2e30f63e1 | |||
5067a87300 | |||
dcd37e4731 | |||
af0456e4c7 | |||
a1122a8a22 | |||
19e54b2dde | |||
ec897aa3d0 | |||
2a0fdb870a | |||
2cd0f46c87 | |||
f905e891d5 | |||
3cc7a739d9 | |||
8d444c0770 | |||
a7474c601d | |||
d14bc9bee7 | |||
c172bf07ac | |||
a50f6d8674 | |||
6f28983db1 | |||
98684a0c8b | |||
33381b79ee | |||
c3d27b5711 | |||
13700873c9 | |||
be04262bf4 | |||
b75c2a061d | |||
5dfb050d35 | |||
0fb35ca332 | |||
a862fc8824 | |||
47dffc8c0f | |||
8b55d647bd | |||
813e0ee1f6 | |||
96de002856 | |||
6be4b26083 | |||
df9a166c54 | |||
c7a67e0431 | |||
76cefaad20 | |||
688cba592a | |||
02d4918eaf | |||
362594c5bf | |||
b111281778 | |||
9af3a79df7 | |||
bfd7448de6 | |||
85364ac614 | |||
1c66765645 | |||
1fad3f9da3 | |||
2311fd7975 | |||
4a4d4d0832 | |||
52b16899d5 | |||
a0bb8ee115 | |||
8de0da306a | |||
36c3aeb576 | |||
075be70c14 | |||
97d106c3fa | |||
a4a8e6dcca | |||
3a22e575e2 | |||
b01dca86e5 | |||
36e40891dd | |||
3ab4211953 | |||
9a6034b611 | |||
ea0d07ad89 | |||
e9b04b91fb | |||
e6a459ac53 | |||
d7f64f49dd | |||
e525e97ede | |||
2870705ddf | |||
72328c0955 | |||
db8816c05f | |||
3309cbf2d2 | |||
a49071c6e3 | |||
411de187d5 | |||
3b2162dc61 | |||
b9b7a9d7e3 | |||
8b438a0c15 | |||
a067234b87 | |||
c6ac57592f | |||
3f1a44c390 | |||
ab7da2fbcc | |||
dd01e61d7d | |||
0ff0ed3a15 | |||
9ee9022c9e | |||
db9040247a | |||
6f1d3f03a9 | |||
a01b33e66a | |||
ccc88bbb78 | |||
3bfca10bcd | |||
95e265d018 | |||
4d87c6d817 | |||
62aa5cffed | |||
6314ed452c | |||
b9c5b2b014 | |||
b65436ed34 | |||
9238abfab6 | |||
fcba6435a9 | |||
72b8f3434f | |||
b21a33601e | |||
65c57c8907 | |||
4ac240a7b1 | |||
9416f27fbc | |||
5b29700cc5 | |||
e0a41415db | |||
adaf850a07 | |||
b18d2731c5 | |||
c739605f27 | |||
cdd90486ed | |||
ef395c554a | |||
5c0b841223 | |||
5edf90c839 | |||
06e4830a4b | |||
69a3409a42 | |||
fbff110ab6 | |||
3d7df44625 | |||
d5a269975c | |||
47afd293fc | |||
c03c7638d9 | |||
9feabc6ac3 | |||
8d28f72669 | |||
b33739c8b2 | |||
72886c7837 | |||
548ea8f2e6 | |||
cec32c8470 | |||
bd6b1c9ab3 | |||
b024ca02a1 | |||
bf6e8931cd | |||
011e141c76 | |||
c984d62e9a | |||
aacbfa787e | |||
d243e2b6d6 | |||
0d2359bdb6 | |||
e276fad40c | |||
b50d78c212 | |||
51eec23f3f | |||
127efb3216 | |||
617ba207bf | |||
8ca9e3831f | |||
1b718a516e | |||
b17377a916 | |||
412f616526 | |||
520762cc68 | |||
3b325b4cf5 | |||
8ca56d8aa2 | |||
52a22a3daf | |||
b393904138 | |||
32e477f3e6 | |||
f013939b4d | |||
0f2568e5b1 | |||
cd64a361ba | |||
c2a7198713 | |||
022c65cf3d | |||
6041671b5f | |||
c88be9df33 | |||
c8ae3cc9c0 | |||
ef1471e9b6 | |||
92e1a57ca3 | |||
58c3ca396c | |||
43f7d68d6f | |||
90a2fb56de | |||
f04c3937ce | |||
7672e7069d | |||
528f48d098 | |||
23bf9a3395 | |||
e2a2052cdc | |||
ed621f0921 | |||
4b32e904e3 | |||
14ae928ce4 | |||
52283a3d2e | |||
be5f7b31bf | |||
eb6bc50a01 | |||
a1bddbb845 | |||
b73380ba27 | |||
198df57eaf | |||
b19aca6235 | |||
857578864d | |||
c7ffd9b8b5 | |||
1b21757754 | |||
68fa3649fb | |||
70540b1eb5 | |||
66259ebf51 | |||
0f1a07cb94 | |||
e07e1305a4 | |||
064fc09574 | |||
621fe72930 | |||
b9d8d1ee8a | |||
d1d92cc97c | |||
96cc66875e | |||
291c29706e | |||
560ecfc366 | |||
8fa0319f5e | |||
caeae837e0 | |||
15f495ee58 | |||
d92096f2a6 | |||
5eeadb99a4 | |||
f598a93033 | |||
83c888729e | |||
cfb73f7cb4 | |||
a2e62b7545 | |||
b4950b3681 | |||
12b205629f | |||
0c2a96d618 | |||
1663f8a367 | |||
ee1c093ac9 | |||
493a6b53b5 | |||
7ed283a202 | |||
dfeea528ac | |||
20f348ac9d | |||
e59a832756 | |||
c67d30f897 | |||
27ff2a57e7 | |||
fd961d81a2 | |||
2388608e54 | |||
041557e6a3 | |||
13cedf86f1 | |||
6f1ee48c6d | |||
e99f6b494e | |||
9adcc64e9b | |||
00d7a665e6 | |||
0d54c6d31e | |||
8908af2153 | |||
8f1f89ee31 | |||
7f703b6294 | |||
f8b95b54ab | |||
f0c85f7135 | |||
8b052cef5a | |||
0c2502056d | |||
cd8211ffde | |||
fba576115c | |||
9f37a4c70d | |||
d920705316 | |||
d5f1e8899c | |||
9aeffb19c5 | |||
91dc833ec8 | |||
c6cd767264 | |||
71434d517d | |||
b898aee927 | |||
8b1bf6f3b6 | |||
f48fb32eac | |||
7fbce6170b | |||
4dcd91e106 | |||
9e8d0e1159 | |||
5e1f09c9e2 | |||
5b6de14a9a | |||
5654841e93 | |||
adefdded97 | |||
ebb58299b7 | |||
238cc71760 | |||
5660dd8cfd | |||
0b877a165a | |||
ca9b1bcf22 | |||
5b0ccb21e4 | |||
aa28b7eeca | |||
1feaa1b7ae | |||
0b2476ecab | |||
8c39eb234b | |||
789305ac87 | |||
32c754c9fe | |||
a98c4e82bc | |||
9d61b0a2d8 | |||
0841aa0e5f | |||
af8715bb46 | |||
96cb176b85 | |||
6fe53f9357 | |||
11f115cac4 | |||
7b951da71d | |||
ff10121f7b | |||
c130f79e7f | |||
6e5de0c8c1 | |||
4e4f6f94bc | |||
4db83376dd | |||
ea2bffa8c2 | |||
36873dc3bc | |||
397b700573 | |||
066aca3d07 | |||
5d14293056 | |||
7c5761c07a | |||
8e0c9709e1 | |||
0ae9d95980 | |||
12450625cc | |||
60ba55c840 | |||
67a0104d73 | |||
350db57523 | |||
832641ec5f | |||
a7f0d259c4 | |||
aa7e70eac2 | |||
3e89118f42 | |||
bf4b5faddb | |||
897f9e606f | |||
b70b9eb243 | |||
f2cc301d7e | |||
39ca6a7e87 | |||
8d6efb6c39 | |||
8bdc8762da | |||
ae4813a5d8 | |||
1788a579c3 | |||
fdc0e5038d | |||
b8419707bf | |||
2221747813 | |||
d824f9dd61 | |||
d73cf9051e | |||
7af5548157 | |||
221f138ae1 | |||
330549d850 | |||
9debf2511e | |||
a964a622b4 | |||
37a6d9568b | |||
9b36d4274f | |||
a7c0bcade1 | |||
ea57a8a361 | |||
dd6b532a56 | |||
fd6bc63637 | |||
20a25d1c98 | |||
75cf200670 | |||
6bc5f3c205 | |||
5a9016928c | |||
f1949ff448 | |||
3dcf0f6f4f | |||
4ab46feb43 | |||
c8350c575a | |||
1afb2c7abb | |||
3bd82d5253 | |||
93af069409 | |||
1cf8b0c9c7 | |||
35655c5546 | |||
3e508e7de3 | |||
62fc23f32f | |||
e6ee9e9ba7 | |||
bd011121c6 | |||
6edc78adc3 | |||
98b44ced4e | |||
47048623e2 | |||
75f01aca9a | |||
d1dfb29cc9 | |||
63cb74fc47 | |||
57b9ec255a | |||
8227926d6d | |||
82ba32c2ec | |||
34979a046a | |||
d440ec5872 | |||
d06d9fd653 | |||
cd9f85f2a4 | |||
00ef0d4e9e | |||
5bc35f0941 | |||
bb5d6cf388 | |||
0926c905fe | |||
c75c9941c0 | |||
9c143ec001 | |||
3ee304d12c | |||
b4dd4a4f91 | |||
bb7613bd44 | |||
381791b62b | |||
dcd7fb90f7 | |||
8e896a40d3 | |||
4236ed0ee7 | |||
837a1bed88 | |||
b62144a886 | |||
6e298a9582 | |||
e0df9797a0 | |||
22c9fddfa8 | |||
a1be884b34 | |||
faf7c75f6e | |||
9475364cfb | |||
0800af0484 | |||
c5669995c6 | |||
22f765387f | |||
39914c9d22 | |||
70cc425501 | |||
8be25036a9 | |||
5b0769f326 | |||
4e2af2ab44 | |||
fbc99d7b5e | |||
7975609bd4 | |||
be9c744100 | |||
cb51144092 | |||
8dfa0e4d3a | |||
30d7928104 | |||
ce7bacd50f | |||
b9698ae77b | |||
da327e5168 | |||
c8c05cf38d | |||
89636b7099 | |||
8ddb38a5b8 | |||
49dc558158 | |||
650f208543 | |||
1800336973 | |||
0d5daecadd | |||
f8d4a3c93b | |||
b59b8b6d66 | |||
e848d63afd | |||
6394f4e110 | |||
09512d4c4f | |||
b6ffd88e79 | |||
4e5c30c46d | |||
a10d566162 | |||
5c4242f454 | |||
de58289ceb | |||
c61a957ec7 | |||
398691700b | |||
454878d3d7 | |||
f15891cd04 | |||
9ffbcf8e9a | |||
f60c3552c6 | |||
0f5a22ebe7 | |||
4d8fde7ea1 | |||
838eac4b8c | |||
e086acd52f | |||
f2eddc5126 | |||
0dd313c7d0 | |||
49ded5c542 | |||
d460ee980c | |||
284e697090 | |||
830b4944ce | |||
c0c6a03279 | |||
77abebdf60 | |||
6c15d65919 | |||
6e197c53c8 | |||
eef4f52565 | |||
d3719967dd | |||
0c040cec70 | |||
8df803bac1 |
|
@ -23,6 +23,7 @@
|
|||
options: <advanced options>,
|
||||
key: 'key',
|
||||
vkey: 'vkey',
|
||||
referenceData: 'data for external paste',
|
||||
info: {
|
||||
owner: 'owner name',
|
||||
folder: 'path to document',
|
||||
|
@ -174,9 +175,12 @@
|
|||
},
|
||||
leftMenu: {
|
||||
navigation: false/true,
|
||||
spellcheck: false/true // spellcheck button in sse
|
||||
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
|
||||
} / false / true, // use instead of customization.leftMenu
|
||||
rightMenu: false/true, // use instead of customization.rightMenu
|
||||
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
|
||||
statusBar: {
|
||||
textLang: false/true // text language button in de/pe
|
||||
docLang: false/true // document language button in de/pe
|
||||
|
@ -264,6 +268,7 @@
|
|||
'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>,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -327,6 +332,7 @@
|
|||
_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;
|
||||
|
||||
|
@ -736,6 +742,13 @@
|
|||
});
|
||||
};
|
||||
|
||||
var _setReferenceData = function(data) {
|
||||
_sendCommand({
|
||||
command: 'setReferenceData',
|
||||
data: data
|
||||
});
|
||||
};
|
||||
|
||||
var _serviceCommand = function(command, data) {
|
||||
_sendCommand({
|
||||
command: 'internalCommand',
|
||||
|
@ -770,7 +783,8 @@
|
|||
setFavorite : _setFavorite,
|
||||
requestClose : _requestClose,
|
||||
grabFocus : _grabFocus,
|
||||
blurFocus : _blurFocus
|
||||
blurFocus : _blurFocus,
|
||||
setReferenceData : _setReferenceData
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<script type="text/javascript" src="../../../vendor/jquery/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/sockjs/sockjs.min.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/socketio/socket.io.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>
|
||||
|
|
174
apps/api/wopi/convert-and-edit-wopi.ejs
Normal file
|
@ -0,0 +1,174 @@
|
|||
<!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>
|
|
@ -312,7 +312,7 @@ div {
|
|||
"events": {
|
||||
"onAppReady": onAppReady,
|
||||
"onDocumentStateChange": fileInfo.EditNotificationPostMessage ? onDocumentStateChange : undefined,
|
||||
'onRequestEditRights': fileInfo.EditModePostMessage || fileInfo.HostEditUrl ? onRequestEditRights : undefined,
|
||||
'onRequestEditRights': fileInfo.EditModePostMessage || (fileInfo.HostEditUrl && !fileInfo.UserCanNotWriteRelative) ? onRequestEditRights : undefined,
|
||||
"onError": onError,
|
||||
"onRequestClose": fileInfo.ClosePostMessage || fileInfo.CloseUrl ? onRequestClose : undefined,
|
||||
"onRequestRename": fileInfo.SupportsRename && fileInfo.UserCanRename ? onRequestRename : undefined,
|
||||
|
|
|
@ -138,6 +138,10 @@ if (window.Common === undefined) {
|
|||
|
||||
'grabFocus': function(data) {
|
||||
$me.trigger('grabfocus', data);
|
||||
},
|
||||
|
||||
'setReferenceData': function(data) {
|
||||
$me.trigger('setreferencedata', data);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -347,6 +351,10 @@ if (window.Common === undefined) {
|
|||
_postMessage({event:'onRequestCreateNew'});
|
||||
},
|
||||
|
||||
requestReferenceData: function (data) {
|
||||
_postMessage({event:'onRequestReferenceData', data: data});
|
||||
},
|
||||
|
||||
pluginsReady: function() {
|
||||
_postMessage({ event: 'onPluginsReady' });
|
||||
},
|
||||
|
|
|
@ -589,6 +589,7 @@
|
|||
height: 100%;
|
||||
|
||||
&.disabled {
|
||||
opacity: @component-disabled-opacity-ie;
|
||||
opacity: @component-disabled-opacity;
|
||||
cursor: default !important;
|
||||
}
|
||||
|
|
|
@ -351,22 +351,37 @@ define([
|
|||
getCaptionWithBreaks: function (caption) {
|
||||
var words = caption.split(' '),
|
||||
newCaption = null,
|
||||
maxWidth = 85 - 4;
|
||||
maxWidth = 160 - 4, //85 - 4
|
||||
containAnd = words.indexOf('&');
|
||||
if (containAnd > -1) { // add & to previous word
|
||||
words[containAnd - 1] += ' &';
|
||||
words.splice(containAnd, 1);
|
||||
}
|
||||
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
|
||||
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];
|
||||
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;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
@ -754,7 +769,7 @@ define([
|
|||
return (this.cmpEl) ? this.cmpEl.is(":visible") : $(this.el).is(":visible");
|
||||
},
|
||||
|
||||
updateHint: function(hint) {
|
||||
updateHint: function(hint, isHtml) {
|
||||
this.options.hint = hint;
|
||||
|
||||
if (!this.rendered) return;
|
||||
|
@ -780,10 +795,12 @@ 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'
|
||||
});
|
||||
|
|
|
@ -407,8 +407,9 @@ define([
|
|||
},
|
||||
|
||||
selectCandidate: function() {
|
||||
var index = this._search.index || 0,
|
||||
var index = (this._search.index && this._search.index != -1) ? 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++) {
|
||||
|
@ -417,6 +418,8 @@ define([
|
|||
if (!itemCandidate) {
|
||||
itemCandidate = item;
|
||||
idxCandidate = i;
|
||||
if(!isFirstCharsEqual)
|
||||
break;
|
||||
}
|
||||
if (this._search.full && i==index || i>index) {
|
||||
itemCandidate = item;
|
||||
|
|
|
@ -56,6 +56,7 @@ define([
|
|||
itemWidth : 80,
|
||||
itemHeight : 40,
|
||||
menuMaxHeight : 300,
|
||||
autoWidth : false,
|
||||
enableKeyEvents : false,
|
||||
beforeOpenHandler : null,
|
||||
additionalMenuItems : null,
|
||||
|
@ -87,11 +88,13 @@ 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.minWidth = this.options.minWidth;
|
||||
this.autoWidth = this.initAutoWidth = (Common.Utils.isIE10 || Common.Utils.isIE11) ? false : this.options.autoWidth;
|
||||
this.delayRenderTips = this.options.delayRenderTips || false;
|
||||
this.itemTemplate = this.options.itemTemplate || _.template([
|
||||
'<div class="style" id="<%= id %>">',
|
||||
|
@ -208,10 +211,12 @@ 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) {
|
||||
|
@ -221,8 +226,26 @@ 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();
|
||||
|
@ -265,7 +288,46 @@ 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;
|
||||
|
||||
|
|
|
@ -328,6 +328,7 @@ 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();
|
||||
|
||||
|
@ -392,18 +393,36 @@ define([
|
|||
|
||||
if (suspendEvents)
|
||||
this.suspendEvents();
|
||||
|
||||
if (!this.multiSelect) {
|
||||
this.extremeSeletedRec = record;
|
||||
if (!this.multiSelect || ( !this.pressedShift && !this.pressedCtrl) || !this.currentSelectedRec || (this.pressedShift && this.currentSelectedRec == record)) {
|
||||
_.each(this.store.where({selected: true}), function(rec){
|
||||
rec.set({selected: false});
|
||||
});
|
||||
|
||||
if (record) {
|
||||
record.set({selected: true});
|
||||
this.currentSelectedRec = record;
|
||||
}
|
||||
} else {
|
||||
if (record)
|
||||
record.set({selected: !record.get('selected')});
|
||||
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 (suspendEvents)
|
||||
|
@ -510,6 +529,35 @@ 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');
|
||||
|
@ -678,13 +726,22 @@ define([
|
|||
onKeyDown: function (e, data) {
|
||||
if ( this.disabled ) return;
|
||||
if (data===undefined) data = e;
|
||||
if (_.indexOf(this.moveKeys, data.keyCode)>-1 || data.keyCode==Common.UI.Keys.RETURN) {
|
||||
|
||||
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) {
|
||||
data.preventDefault();
|
||||
data.stopPropagation();
|
||||
var rec = this.getSelectedRec();
|
||||
if (this.lastSelectedRec===null)
|
||||
var rec =(this.multiSelect) ? this.extremeSeletedRec : 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;
|
||||
|
@ -694,6 +751,7 @@ 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) {
|
||||
|
@ -774,12 +832,20 @@ 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));
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -789,7 +855,11 @@ define([
|
|||
this.scrollToRecord(this.lastSelectedRec);
|
||||
this.lastSelectedRec = null;
|
||||
} else {
|
||||
this.scrollToRecord(this.getSelectedRec());
|
||||
var selectedRec = this.getSelectedRec();
|
||||
if (!this.multiSelect)
|
||||
this.scrollToRecord(selectedRec);
|
||||
else if(selectedRec && selectedRec.length > 0)
|
||||
this.scrollToRecord(selectedRec[selectedRec.length - 1]);
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
@ -472,8 +472,9 @@ define([
|
|||
},
|
||||
|
||||
selectCandidate: function() {
|
||||
var index = this._search.index || 0,
|
||||
var index = (this._search.index && this._search.index != -1) ? 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++) {
|
||||
|
@ -482,6 +483,8 @@ define([
|
|||
if (!itemCandidate) {
|
||||
itemCandidate = item;
|
||||
idxCandidate = i;
|
||||
if(!isFirstCharsEqual)
|
||||
break;
|
||||
}
|
||||
if (this._search.full && i==index || i>index) {
|
||||
itemCandidate = item;
|
||||
|
@ -1051,8 +1054,9 @@ define([
|
|||
},
|
||||
|
||||
selectCandidate: function() {
|
||||
var index = this._search.index || 0,
|
||||
var index = (this._search.index && this._search.index != -1) ? 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++) {
|
||||
|
@ -1061,6 +1065,8 @@ define([
|
|||
if (!itemCandidate) {
|
||||
itemCandidate = item;
|
||||
idxCandidate = i;
|
||||
if(!isFirstCharsEqual)
|
||||
break;
|
||||
}
|
||||
if (this._search.full && i==index || i>index) {
|
||||
itemCandidate = item;
|
||||
|
|
|
@ -793,7 +793,7 @@ define([
|
|||
|
||||
hideMoreBtns: function() {
|
||||
for (var btn in btnsMore) {
|
||||
btnsMore[btn] && btnsMore[btn].toggle(false);
|
||||
btnsMore[btn] && btnsMore[btn].isActive() && btnsMore[btn].toggle(false);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
@ -144,10 +144,20 @@ 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();
|
||||
|
@ -396,9 +406,11 @@ define([
|
|||
reply = null,
|
||||
addReply = null,
|
||||
ascComment = buildCommentData(), // new asc_CCommentData(null),
|
||||
comment = t.findComment(id);
|
||||
comment = t.findComment(id),
|
||||
oldCommentVal = '';
|
||||
|
||||
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'))));
|
||||
|
@ -442,6 +454,7 @@ define([
|
|||
}
|
||||
|
||||
t.api.asc_changeComment(id, ascComment);
|
||||
t.mode && t.mode.canRequestSendNotify && t.view.pickEMail(ascComment.asc_getGuid(), commentVal, oldCommentVal);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -455,7 +468,8 @@ define([
|
|||
reply = null,
|
||||
addReply = null,
|
||||
ascComment = buildCommentData(), // new asc_CCommentData(null),
|
||||
comment = me.findComment(id);
|
||||
comment = me.findComment(id),
|
||||
oldReplyVal = '';
|
||||
|
||||
if (ascComment && comment) {
|
||||
ascComment.asc_putText(comment.get('comment'));
|
||||
|
@ -479,6 +493,7 @@ 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());
|
||||
|
@ -498,7 +513,7 @@ define([
|
|||
}
|
||||
|
||||
me.api.asc_changeComment(id, ascComment);
|
||||
|
||||
me.mode && me.mode.canRequestSendNotify && me.view.pickEMail(ascComment.asc_getGuid(), replyVal, oldReplyVal);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -1645,16 +1660,25 @@ define([
|
|||
},
|
||||
|
||||
setPreviewMode: function(mode) {
|
||||
if (this.viewmode === mode) return;
|
||||
this.viewmode = mode;
|
||||
if (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)
|
||||
this.prevcanComments = this.mode.canComments;
|
||||
this.mode.canComments = (mode) ? false : this.prevcanComments;
|
||||
this.mode.canComments = (viewmode) ? false : this.prevcanComments;
|
||||
this.closeEditing();
|
||||
this.setMode(this.mode);
|
||||
this.updateComments(true);
|
||||
if (this.getPopover())
|
||||
mode ? this.getPopover().hide() : this.getPopover().update(true);
|
||||
viewmode ? this.getPopover().hide() : this.getPopover().update(true);
|
||||
},
|
||||
|
||||
clearCollections: function() {
|
||||
|
@ -1718,6 +1742,27 @@ 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 || {}));
|
||||
|
|
|
@ -45,7 +45,8 @@ define([
|
|||
version: '{{PRODUCT_VERSION}}',
|
||||
eventloading: true,
|
||||
titlebuttons: true,
|
||||
uithemes: true
|
||||
uithemes: true,
|
||||
btnhome: true,
|
||||
};
|
||||
|
||||
var native = window.desktop || window.AscDesktopEditor;
|
||||
|
@ -90,14 +91,12 @@ 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)) {
|
||||
|
@ -248,6 +247,40 @@ 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': e => {
|
||||
native.execCommand('title:dblclick', JSON.stringify({x: e.originalEvent.screenX, y: e.originalEvent.screenY}))
|
||||
},
|
||||
'mousedown': e => {
|
||||
native.execCommand('title:mousedown', JSON.stringify({x: e.originalEvent.screenX, y: e.originalEvent.screenY}))
|
||||
},
|
||||
'mousemove': e => {
|
||||
native.execCommand('title:mousemove', JSON.stringify({x: e.originalEvent.screenX, y: e.originalEvent.screenY}))
|
||||
},
|
||||
'mouseup': e => {
|
||||
native.execCommand('title:mouseup', JSON.stringify({x: e.originalEvent.screenX, y: e.originalEvent.screenY}))
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (!!header.btnSave) {
|
||||
titlebuttons['save'] = {btn: header.btnSave};
|
||||
|
||||
|
@ -281,7 +314,8 @@ define([
|
|||
}
|
||||
|
||||
if ( native.features.singlewindow !== undefined ) {
|
||||
$('#box-document-title .hedset')[native.features.singlewindow ? 'hide' : 'show']();
|
||||
// $('#box-document-title .hedset')[native.features.singlewindow ? 'hide' : 'show']();
|
||||
!!titlebuttons.home && titlebuttons.home.btn.setVisible(native.features.singlewindow);
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -98,12 +98,14 @@ 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 && h<700 || innerHeight<h) {
|
||||
h = Math.min(innerHeight, 700);
|
||||
this.diagramEditorView.setHeight(h);
|
||||
if (innerHeight<h) {
|
||||
this.diagramEditorView.setHeight(innerHeight);
|
||||
}
|
||||
|
||||
if (externalEditor) {
|
||||
|
@ -227,13 +229,21 @@ 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
|
||||
|
|
|
@ -51,7 +51,8 @@ define([
|
|||
var appLang = '{{DEFAULT_LANG}}',
|
||||
customization = undefined,
|
||||
targetApp = '',
|
||||
externalEditor = null;
|
||||
externalEditor = null,
|
||||
isAppFirstOpened = true;
|
||||
|
||||
|
||||
var createExternalEditor = function() {
|
||||
|
@ -96,16 +97,22 @@ 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 && h<700 || innerHeight<h) {
|
||||
h = Math.min(innerHeight, 700);
|
||||
this.mergeEditorView.setHeight(h);
|
||||
if (innerHeight<h) {
|
||||
this.mergeEditorView.setHeight(innerHeight);
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
|
@ -114,6 +121,7 @@ define([
|
|||
createExternalEditor.apply(this);
|
||||
}
|
||||
this.isExternalEditorVisible = true;
|
||||
this.isHandlerCalled = false;
|
||||
}, this),
|
||||
'hide': _.bind(function(cmp){
|
||||
if (externalEditor) {
|
||||
|
@ -139,14 +147,22 @@ define([
|
|||
},
|
||||
|
||||
handler: function(result, value) {
|
||||
externalEditor && externalEditor.serviceCommand('queryClose',{mr:result});
|
||||
return true;
|
||||
if (this.isHandlerCalled) return;
|
||||
this.isHandlerCalled = true;
|
||||
if (this.mergeEditorView._isExternalDocReady)
|
||||
externalEditor && externalEditor.serviceCommand('queryClose',{mr:result});
|
||||
else {
|
||||
this.mergeEditorView.hide();
|
||||
this.isHandlerCalled = false;
|
||||
}
|
||||
},
|
||||
|
||||
setMergeData: function() {
|
||||
externalEditor && externalEditor.serviceCommand('setMergeData', this.mergeEditorView._mergeData);
|
||||
this.mergeEditorView.setEditMode(true);
|
||||
this.mergeEditorView._mergeData = null;
|
||||
if (!isAppFirstOpened) {
|
||||
externalEditor && externalEditor.serviceCommand('setMergeData', this.mergeEditorView._mergeData);
|
||||
this.mergeEditorView.setEditMode(true);
|
||||
this.mergeEditorView._mergeData = null;
|
||||
}
|
||||
},
|
||||
|
||||
loadConfig: function(data) {
|
||||
|
@ -185,6 +201,7 @@ 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);
|
||||
|
@ -207,17 +224,26 @@ 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
|
||||
|
|
|
@ -98,12 +98,14 @@ 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 && h<700 || innerHeight<h) {
|
||||
h = Math.min(innerHeight, 700);
|
||||
this.oleEditorView.setHeight(h);
|
||||
if (innerHeight<h) {
|
||||
this.oleEditorView.setHeight(innerHeight);
|
||||
}
|
||||
|
||||
if (externalEditor) {
|
||||
|
@ -131,8 +133,6 @@ define([
|
|||
}, this)
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
},
|
||||
|
||||
onLaunch: function() {
|
||||
|
@ -228,12 +228,20 @@ 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);
|
||||
|
|
|
@ -121,7 +121,7 @@ Common.UI.HintManager = new(function() {
|
|||
_usedTitles = [],
|
||||
_appPrefix,
|
||||
_staticHints = { // for desktop buttons
|
||||
"btnhome": 'K'
|
||||
// "btnhome": 'K'
|
||||
};
|
||||
|
||||
var _api;
|
||||
|
@ -457,6 +457,8 @@ 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();
|
||||
|
@ -478,7 +480,7 @@ Common.UI.HintManager = new(function() {
|
|||
_clearHints();
|
||||
});
|
||||
$(document).on('keyup', function(e) {
|
||||
if (e.keyCode == Common.UI.Keys.ALT && _needShow && !(window.SSE && window.SSE.getController('Statusbar').getIsDragDrop())) {
|
||||
if ((e.keyCode == Common.UI.Keys.ALT || e.keyCode === 91) && _needShow && !(window.SSE && window.SSE.getController('Statusbar').getIsDragDrop())) {
|
||||
e.preventDefault();
|
||||
if (!_hintVisible) {
|
||||
$('input:focus').blur(); // to change value in inputField
|
||||
|
@ -620,10 +622,11 @@ Common.UI.HintManager = new(function() {
|
|||
}
|
||||
}
|
||||
|
||||
_needShow = (Common.Utils.InternalSettings.get(_appPrefix + "settings-show-alt-hints") && !e.shiftKey && e.keyCode == Common.UI.Keys.ALT &&
|
||||
_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) &&
|
||||
!Common.Utils.ModalWindow.isVisible() && _isDocReady && _arrAlphabet.length > 0 &&
|
||||
!(window.PE && $('#pe-preview').is(':visible')));
|
||||
if (Common.Utils.InternalSettings.get(_appPrefix + "settings-show-alt-hints") && e.altKey && e.keyCode !== 115) {
|
||||
if (Common.Utils.InternalSettings.get(_appPrefix + "settings-show-alt-hints") && !Common.Utils.isMac && e.altKey && e.keyCode !== 115) {
|
||||
e.preventDefault();
|
||||
}
|
||||
});
|
||||
|
@ -661,6 +664,8 @@ 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();
|
||||
|
|
|
@ -47,14 +47,16 @@ if (Common.UI === undefined) {
|
|||
}
|
||||
|
||||
Common.UI.LayoutManager = new(function() {
|
||||
var _config;
|
||||
var _init = function(config) {
|
||||
var _config,
|
||||
_licensed;
|
||||
var _init = function(config, licensed) {
|
||||
_config = config;
|
||||
_licensed = licensed;
|
||||
};
|
||||
|
||||
var _applyCustomization = function(config, el, prefix) {
|
||||
!config && (config = _config);
|
||||
if (!config) return;
|
||||
if (!_licensed || !config) return;
|
||||
|
||||
for (var name in config) {
|
||||
if(config.hasOwnProperty(name)) {
|
||||
|
@ -71,7 +73,7 @@ Common.UI.LayoutManager = new(function() {
|
|||
|
||||
var _isElementVisible = function(value, config, prefix) {
|
||||
!config && (config = _config);
|
||||
if (!config) return true;
|
||||
if (!_licensed || !config) return true;
|
||||
|
||||
var res = true;
|
||||
for (var name in config) {
|
||||
|
@ -89,10 +91,31 @@ 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
|
||||
isElementVisible: _isElementVisible,
|
||||
getInitValue: _getInitValue
|
||||
}
|
||||
})();
|
||||
|
||||
|
|
|
@ -105,6 +105,7 @@ 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) {
|
||||
|
@ -151,6 +152,16 @@ 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;
|
||||
|
||||
|
@ -225,6 +236,10 @@ 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});
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -259,6 +274,10 @@ 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');
|
||||
}
|
||||
|
@ -518,10 +537,13 @@ define([
|
|||
}
|
||||
|
||||
var variationsArr = [],
|
||||
pluginVisible = false;
|
||||
pluginVisible = false,
|
||||
isDisplayedInViewer = 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({
|
||||
|
@ -571,7 +593,8 @@ define([
|
|||
groupName: (item.group) ? item.group.name : '',
|
||||
groupRank: (item.group) ? item.group.rank : 0,
|
||||
minVersion: item.minVersion,
|
||||
original: item
|
||||
original: item,
|
||||
isDisplayedInViewer: isDisplayedInViewer
|
||||
}));
|
||||
}
|
||||
});
|
||||
|
@ -720,6 +743,19 @@ 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 || {}));
|
||||
});
|
||||
|
|
|
@ -82,7 +82,8 @@ 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)
|
||||
'collaboration:coauthmode': _.bind(this.onCoAuthMode, this),
|
||||
'protect:update': _.bind(this.onChangeProtectDocument, this)
|
||||
},
|
||||
'Common.Views.ReviewChangesDialog': {
|
||||
'reviewchange:accept': _.bind(this.onAcceptClick, this),
|
||||
|
@ -101,8 +102,18 @@ 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: []};
|
||||
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
|
||||
}
|
||||
};
|
||||
|
||||
Common.NotificationCenter.on('reviewchanges:turn', this.onTurnPreview.bind(this));
|
||||
Common.NotificationCenter.on('spelling:turn', this.onTurnSpelling.bind(this));
|
||||
|
@ -164,26 +175,35 @@ define([
|
|||
SetDisabled: function(state, reviewMode, fillFormMode) {
|
||||
if (this.dlgChanges)
|
||||
this.dlgChanges.close();
|
||||
if (reviewMode)
|
||||
if (reviewMode) {
|
||||
this.lockToolbar(Common.enumLock.previewReviewMode, state);
|
||||
else if (fillFormMode)
|
||||
this.dlgChanges && Common.Utils.lockControls(Common.enumLock.previewReviewMode, state, {array: [this.dlgChanges.btnAccept, this.dlgChanges.btnReject]});
|
||||
} else if (fillFormMode) {
|
||||
this.lockToolbar(Common.enumLock.viewFormMode, state);
|
||||
else
|
||||
this.dlgChanges && Common.Utils.lockControls(Common.enumLock.viewFormMode, state, {array: [this.dlgChanges.btnAccept, this.dlgChanges.btnReject]});
|
||||
} else {
|
||||
this.lockToolbar(Common.enumLock.viewMode, state);
|
||||
|
||||
}
|
||||
this.setPreviewMode(state);
|
||||
},
|
||||
|
||||
lockToolbar: function (causes, lock, opts) {
|
||||
Common.Utils.lockControls(causes, lock, opts, this.view.getButtons());
|
||||
this.view && Common.Utils.lockControls(causes, lock, opts, this.view.getButtons());
|
||||
},
|
||||
|
||||
setPreviewMode: function(mode) { //disable accept/reject in popover
|
||||
if (this.viewmode === mode) return;
|
||||
this.viewmode = mode;
|
||||
if (mode)
|
||||
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)
|
||||
this.prevcanReview = this.appConfig.canReview;
|
||||
this.appConfig.canReview = (mode) ? false : this.prevcanReview;
|
||||
this.appConfig.canReview = (viewmode) ? false : this.prevcanReview;
|
||||
var me = this;
|
||||
this.popoverChanges && this.popoverChanges.each(function (model) {
|
||||
model.set('hint', !me.appConfig.canReview);
|
||||
|
@ -207,19 +227,16 @@ define([
|
|||
onApiShowChange: function (sdkchange, isShow) {
|
||||
var btnlock = true,
|
||||
changes;
|
||||
if (this.appConfig.canReview && !this.appConfig.isReviewOnly) {
|
||||
if (this.appConfig.canReview && !(this.appConfig.isReviewOnly || this._state.docProtection.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]});
|
||||
if (this.dlgChanges) {
|
||||
this.dlgChanges.btnAccept.setDisabled(btnlock);
|
||||
this.dlgChanges.btnReject.setDisabled(btnlock);
|
||||
}
|
||||
this.dlgChanges && Common.Utils.lockControls(Common.enumLock.reviewChangelock, btnlock, {array: [this.dlgChanges.btnAccept, this.dlgChanges.btnReject]});
|
||||
this._state.lock = btnlock;
|
||||
Common.Utils.InternalSettings.set(this.view.appPrefix + "accept-reject-lock", btnlock);
|
||||
Common.Utils.InternalSettings.set(this.appPrefix + "accept-reject-lock", btnlock);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -485,6 +502,7 @@ 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(),
|
||||
|
@ -499,8 +517,9 @@ 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 && (item.get_UserId() == me.currentUserId) || !me.appConfig.isReviewOnly && (!me.appConfig.canUseReviewPermissions || AscCommon.UserInfoParser.canEditReview(item.get_UserName()))
|
||||
editable : (me.appConfig.isReviewOnly || isProtectedReview) && (item.get_UserId() == me.currentUserId) || !(me.appConfig.isReviewOnly || isProtectedReview) && (!me.appConfig.canUseReviewPermissions || AscCommon.UserInfoParser.canEditReview(item.get_UserName()))
|
||||
});
|
||||
|
||||
arr.push(change);
|
||||
|
@ -589,7 +608,7 @@ define([
|
|||
},
|
||||
|
||||
onTurnPreview: function(state, global, fromApi) {
|
||||
if ( this.appConfig.isReviewOnly ) {
|
||||
if ( this.appConfig.isReviewOnly) {
|
||||
this.view.turnChanges(true);
|
||||
} else
|
||||
if ( this.appConfig.canReview ) {
|
||||
|
@ -603,13 +622,13 @@ define([
|
|||
},
|
||||
|
||||
onApiTrackRevisionsChange: function(localFlag, globalFlag, userId) {
|
||||
if ( this.appConfig.isReviewOnly ) {
|
||||
if ( this.appConfig.isReviewOnly || this._state.docProtection.isReviewOnly) {
|
||||
this.view.turnChanges(true);
|
||||
} else
|
||||
if ( this.appConfig.canReview ) {
|
||||
var global = (localFlag===null),
|
||||
state = global ? globalFlag : localFlag;
|
||||
Common.Utils.InternalSettings.set(this.view.appPrefix + "track-changes", (state ? 0 : 1) + (global ? 2 : 0));
|
||||
Common.Utils.InternalSettings.set(this.appPrefix + "track-changes", (state ? 0 : 1) + (global ? 2 : 0));
|
||||
this.view.turnChanges(state, global);
|
||||
if (userId && this.userCollection) {
|
||||
var rec = this.userCollection.findOriginalUser(userId);
|
||||
|
@ -624,18 +643,20 @@ define([
|
|||
this.view && this.view.turnSpelling(state);
|
||||
|
||||
if (Common.UI.FeaturesManager.canChange('spellcheck') && !suspend) {
|
||||
Common.localStorage.setItem(this.view.appPrefix + "settings-spellcheck", state ? 1 : 0);
|
||||
Common.localStorage.setItem(this.appPrefix + "settings-spellcheck", state ? 1 : 0);
|
||||
this.api.asc_setSpellCheck(state);
|
||||
Common.Utils.InternalSettings.set(this.view.appPrefix + "settings-spellcheck", state);
|
||||
Common.Utils.InternalSettings.set(this.appPrefix + "settings-spellcheck", state);
|
||||
}
|
||||
},
|
||||
|
||||
onReviewViewClick: function(menu, item, e) {
|
||||
this.turnDisplayMode(item.value);
|
||||
if (!this.appConfig.isEdit && !this.appConfig.isRestrictedEdit)
|
||||
Common.localStorage.setItem(this.view.appPrefix + "review-mode", item.value); // for viewer
|
||||
else if (item.value=='markup' || item.value=='simple')
|
||||
Common.localStorage.setItem(this.view.appPrefix + "review-mode-editor", item.value); // for editor save only markup modes
|
||||
Common.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.NotificationCenter.trigger('edit:complete', this.view);
|
||||
},
|
||||
|
||||
|
@ -766,14 +787,14 @@ define([
|
|||
},
|
||||
|
||||
onCoAuthMode: function(menu, item, e) {
|
||||
Common.localStorage.setItem(this.view.appPrefix + "settings-coauthmode", item.value);
|
||||
Common.Utils.InternalSettings.set(this.view.appPrefix + "settings-coauthmode", item.value);
|
||||
Common.localStorage.setItem(this.appPrefix + "settings-coauthmode", item.value);
|
||||
Common.Utils.InternalSettings.set(this.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.view.appPrefix + "settings-showchanges-fast" : this.view.appPrefix + "settings-showchanges-strict");
|
||||
var value = Common.localStorage.getItem(item.value ? this.appPrefix + "settings-showchanges-fast" : this.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);
|
||||
|
@ -781,13 +802,13 @@ define([
|
|||
this.api.SetCollaborativeMarksShowType(item.value ? Asc.c_oAscCollaborativeMarksShowType.None : Asc.c_oAscCollaborativeMarksShowType.LastChanges);
|
||||
}
|
||||
|
||||
value = Common.localStorage.getItem(this.view.appPrefix + "settings-autosave");
|
||||
value = Common.localStorage.getItem(this.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.view.appPrefix + "settings-autosave", value);
|
||||
Common.Utils.InternalSettings.set(this.view.appPrefix + "settings-autosave", value);
|
||||
Common.localStorage.setItem(this.appPrefix + "settings-autosave", value);
|
||||
Common.Utils.InternalSettings.set(this.appPrefix + "settings-autosave", value);
|
||||
this.api.asc_setAutoSaveGap(value);
|
||||
}
|
||||
Common.NotificationCenter.trigger('edit:complete', this.view);
|
||||
|
@ -805,7 +826,7 @@ define([
|
|||
rightMenu: {clear: disable, disable: true},
|
||||
statusBar: true,
|
||||
leftMenu: {disable: false, previewMode: true},
|
||||
fileMenu: {protect: true},
|
||||
fileMenu: {protect: true, info: true},
|
||||
navigation: {disable: false, previewMode: true},
|
||||
comments: {disable: false, previewMode: true},
|
||||
chat: false,
|
||||
|
@ -829,14 +850,14 @@ define([
|
|||
|
||||
onAppReady: function (config) {
|
||||
var me = this;
|
||||
if ( config.canReview ) {
|
||||
(new Promise(function (resolve) {
|
||||
resolve();
|
||||
})).then(function () {
|
||||
(new Promise(function (resolve) {
|
||||
resolve();
|
||||
})).then(function () {
|
||||
if ( config.canReview ) {
|
||||
// function _setReviewStatus(state, global) {
|
||||
// me.view.turnChanges(state, global);
|
||||
// !global && me.api.asc_SetLocalTrackRevisions(state);
|
||||
// Common.Utils.InternalSettings.set(me.view.appPrefix + "track-changes", (state ? 0 : 1) + (global ? 2 : 0));
|
||||
// Common.Utils.InternalSettings.set(me.appPrefix + "track-changes", (state ? 0 : 1) + (global ? 2 : 0));
|
||||
// };
|
||||
|
||||
var trackChanges = me.appConfig.customization && me.appConfig.customization.review ? me.appConfig.customization.review.trackChanges : undefined;
|
||||
|
@ -848,13 +869,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.view.appPrefix + "review-mode-editor");
|
||||
var val = Common.localStorage.getItem(me.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);
|
||||
|
||||
|
@ -862,51 +883,54 @@ 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
|
||||
mode : me.appConfig,
|
||||
docProtection : me._state.docProtection
|
||||
}));
|
||||
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.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');
|
||||
} 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);
|
||||
}
|
||||
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.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]});
|
||||
}
|
||||
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]});
|
||||
}
|
||||
|
||||
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;
|
||||
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);
|
||||
});
|
||||
},
|
||||
|
||||
applySettings: function(menu) {
|
||||
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) );
|
||||
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) );
|
||||
if ((this.appConfig.canReview || this.appConfig.canViewReview) && this.appConfig.reviewHoverMode)
|
||||
this.onApiShowChange();
|
||||
},
|
||||
|
@ -971,7 +995,8 @@ define([
|
|||
},
|
||||
|
||||
onCoAuthoringDisconnect: function() {
|
||||
this.lockToolbar(Common.enumLock.lostConnect, true)
|
||||
this.lockToolbar(Common.enumLock.lostConnect, true);
|
||||
this.dlgChanges && Common.Utils.lockControls(Common.enumLock.lostConnect, true, {array: [this.dlgChanges.btnAccept, this.dlgChanges.btnReject]});
|
||||
},
|
||||
|
||||
onUpdateUsers: function() {
|
||||
|
@ -995,7 +1020,7 @@ define([
|
|||
|
||||
commentsShowHide: function(mode) {
|
||||
if (!this.view) return;
|
||||
var value = Common.Utils.InternalSettings.get(this.view.appPrefix + "settings-livecomment");
|
||||
var value = Common.Utils.InternalSettings.get(this.appPrefix + "settings-livecomment");
|
||||
(value!==undefined) && this.lockToolbar(Common.enumLock.hideComments, mode != 'show' && !value, {array: [this.view.btnCommentRemove, this.view.btnCommentResolve]});
|
||||
},
|
||||
|
||||
|
@ -1011,6 +1036,37 @@ 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> ',
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<div class="btn-goto img-commonctrl"></div>
|
||||
<% } %>
|
||||
<% if (!hint) { %>
|
||||
<% if (scope.appConfig.isReviewOnly) { %>
|
||||
<% if (scope.appConfig.isReviewOnly || docProtection.isReviewOnly) { %>
|
||||
<% if (editable) { %>
|
||||
<div class="btn-delete img-commonctrl"></div>
|
||||
<% } %>
|
||||
|
|
|
@ -68,6 +68,7 @@ if ( window.desktop ) {
|
|||
delete params.uitheme;
|
||||
} else {
|
||||
localStorage.setItem("ui-theme-id", theme.id);
|
||||
localStorage.removeItem("ui-theme-use-system");
|
||||
}
|
||||
|
||||
localStorage.removeItem("ui-theme");
|
||||
|
|
|
@ -1095,4 +1095,4 @@ Common.Utils.getKeyByValue = function(obj, value) {
|
|||
return prop;
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
|
|
|
@ -806,11 +806,19 @@ define([
|
|||
return str_res;
|
||||
},
|
||||
|
||||
pickEMail: function (commentId, message) {
|
||||
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);
|
||||
});
|
||||
}
|
||||
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
|
||||
|
|
|
@ -39,59 +39,29 @@
|
|||
*/
|
||||
|
||||
define([
|
||||
'common/main/lib/component/Window'
|
||||
'common/main/lib/view/ExternalEditor'
|
||||
], function () { 'use strict';
|
||||
|
||||
Common.Views.ExternalDiagramEditor = Common.UI.Window.extend(_.extend({
|
||||
Common.Views.ExternalDiagramEditor = Common.Views.ExternalEditor.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,
|
||||
width: 910,
|
||||
height: (_inner_height - 700)<0 ? _inner_height : 700,
|
||||
cls: 'advanced-settings-dlg',
|
||||
header: true,
|
||||
toolclose: 'hide',
|
||||
toolcallback: _.bind(this.onToolClose, this)
|
||||
storageName: 'diagram-editor',
|
||||
sdkplaceholder: 'id-diagram-editor-placeholder',
|
||||
initwidth: 900,
|
||||
initheight: 700,
|
||||
minwidth: 730,
|
||||
minheight: 275
|
||||
}, 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;
|
||||
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));
|
||||
Common.Views.ExternalEditor.prototype.initialize.call(this, _options);
|
||||
},
|
||||
|
||||
show: function() {
|
||||
this.setPlaceholder();
|
||||
Common.UI.Window.prototype.show.apply(this, arguments);
|
||||
Common.Views.ExternalEditor.prototype.show.apply(this, arguments);
|
||||
},
|
||||
|
||||
setChartData: function(data) {
|
||||
|
@ -100,55 +70,6 @@ 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;
|
||||
},
|
||||
|
@ -157,8 +78,6 @@ define([
|
|||
return this._placeholder;
|
||||
},
|
||||
|
||||
textSave: 'Save & Exit',
|
||||
textClose: 'Close',
|
||||
textTitle: 'Chart Editor'
|
||||
}, Common.Views.ExternalDiagramEditor || {}));
|
||||
});
|
||||
|
|
195
apps/common/main/lib/view/ExternalEditor.js
Normal file
|
@ -0,0 +1,195 @@
|
|||
/*
|
||||
*
|
||||
* (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 || {}));
|
||||
});
|
|
@ -39,55 +39,24 @@
|
|||
*/
|
||||
|
||||
define([
|
||||
'common/main/lib/component/Window'
|
||||
'common/main/lib/view/ExternalEditor'
|
||||
], function () { 'use strict';
|
||||
|
||||
Common.Views.ExternalMergeEditor = Common.UI.Window.extend(_.extend({
|
||||
Common.Views.ExternalMergeEditor = Common.Views.ExternalEditor.extend(_.extend({
|
||||
initialize : function(options) {
|
||||
var _options = {};
|
||||
_.extend(_options, {
|
||||
title: this.textTitle,
|
||||
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)
|
||||
storageName: 'merge-editor',
|
||||
sdkplaceholder: 'id-merge-editor-placeholder',
|
||||
initwidth: 900,
|
||||
initheight: 700,
|
||||
minwidth: 370,
|
||||
minheight: 275
|
||||
}, 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;
|
||||
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));
|
||||
Common.Views.ExternalEditor.prototype.initialize.call(this, _options);
|
||||
},
|
||||
|
||||
setMergeData: function(data) {
|
||||
|
@ -96,54 +65,6 @@ 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 || {}));
|
||||
});
|
|
@ -39,59 +39,24 @@
|
|||
*/
|
||||
|
||||
define([
|
||||
'common/main/lib/component/Window'
|
||||
'common/main/lib/view/ExternalEditor'
|
||||
], function () { 'use strict';
|
||||
|
||||
Common.Views.ExternalOleEditor = Common.UI.Window.extend(_.extend({
|
||||
Common.Views.ExternalOleEditor = Common.Views.ExternalEditor.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,
|
||||
width: 910,
|
||||
height: (_inner_height - 700)<0 ? _inner_height : 700,
|
||||
cls: 'advanced-settings-dlg',
|
||||
header: true,
|
||||
toolclose: 'hide',
|
||||
toolcallback: _.bind(this.onToolClose, this)
|
||||
storageName: 'ole-editor',
|
||||
sdkplaceholder: 'id-ole-editor-placeholder',
|
||||
initwidth: 900,
|
||||
initheight: 700,
|
||||
minwidth: 860,
|
||||
minheight: 275
|
||||
}, 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;
|
||||
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);
|
||||
Common.Views.ExternalEditor.prototype.initialize.call(this, _options);
|
||||
},
|
||||
|
||||
setOleData: function(data) {
|
||||
|
@ -100,65 +65,6 @@ 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 || {}));
|
||||
});
|
||||
|
|
|
@ -123,9 +123,10 @@ 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-undo"></div>' +
|
||||
|
|
|
@ -207,6 +207,7 @@ 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) {
|
||||
|
|
|
@ -101,7 +101,10 @@ define([
|
|||
this.checkedIndex = i;
|
||||
}
|
||||
}
|
||||
(this.checkedIndex>=0) && this.radio[this.checkedIndex].setValue(true);
|
||||
if (this.checkedIndex>=0) {
|
||||
this.radio[this.checkedIndex].setValue(true);
|
||||
this.currentCell = this.radio[this.checkedIndex].options.value;
|
||||
}
|
||||
}
|
||||
$window.find('.dlg-btn').on('click', _.bind(this.onBtnClick, this));
|
||||
},
|
||||
|
|
|
@ -154,6 +154,8 @@ 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() {
|
||||
|
@ -162,26 +164,38 @@ define([
|
|||
win_width = this.getWidth(),
|
||||
win_height = this.getHeight(),
|
||||
bordersOffset = (this.resizable) ? 0 : this.bordersOffset;
|
||||
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 (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 (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 (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);
|
||||
if (this._restoreWidth===undefined) {
|
||||
this._restoreWidth = win_width;
|
||||
}
|
||||
this.setWidth(Math.max(main_width-bordersOffset*2, this.initConfig.minwidth));
|
||||
this.$window.css('left', bordersOffset);
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
@ -74,14 +74,16 @@ define([
|
|||
_.extend(this, options);
|
||||
this._locked = false;
|
||||
this._state = {
|
||||
DisabledControls: false
|
||||
DisabledControls: false,
|
||||
docProtection: {
|
||||
isReadOnly: false,
|
||||
isReviewOnly: false,
|
||||
isFormsOnly: false,
|
||||
isCommentsOnly: 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) {
|
||||
|
@ -153,6 +155,7 @@ 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'),
|
||||
|
@ -167,6 +170,7 @@ 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'
|
||||
|
@ -179,6 +183,10 @@ 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);
|
||||
|
@ -204,6 +212,16 @@ 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;
|
||||
|
||||
|
@ -289,9 +307,6 @@ define([
|
|||
this.loadMask.hide();
|
||||
},
|
||||
|
||||
_onAppReady: function (mode) {
|
||||
},
|
||||
|
||||
parseIcons: function(icons) {
|
||||
if (icons.length && typeof icons[0] !== 'string') {
|
||||
var theme = Common.UI.Themes.currentThemeId().toLowerCase(),
|
||||
|
@ -389,6 +404,7 @@ define([
|
|||
});
|
||||
});
|
||||
|
||||
var _set = Common.enumLock;
|
||||
var btn = new Common.UI.Button({
|
||||
cls: 'btn-toolbar x-huge icon-top',
|
||||
iconImg: icon_url,
|
||||
|
@ -397,6 +413,7 @@ 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'
|
||||
|
|
|
@ -78,6 +78,9 @@ 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]);
|
||||
});
|
||||
|
@ -132,6 +135,8 @@ 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',
|
||||
|
@ -172,7 +177,7 @@ define([
|
|||
if ( config.canProtect) {
|
||||
if ( config.isPasswordSupport) {
|
||||
me.btnAddPwd.updateHint(me.hintAddPwd);
|
||||
me.btnPwd.updateHint(me.hintPwd);
|
||||
me.btnPwd.updateHint([me.hintDelPwd, me.hintPwd]);
|
||||
|
||||
me.btnPwd.setMenu(
|
||||
new Common.UI.Menu({
|
||||
|
@ -342,6 +347,7 @@ define([
|
|||
}
|
||||
}, this);
|
||||
this.btnPwd.setVisible(hasPassword);
|
||||
this.btnPwd.toggle(hasPassword, true);
|
||||
},
|
||||
|
||||
txtEncrypt: 'Encrypt',
|
||||
|
@ -353,7 +359,8 @@ define([
|
|||
txtDeletePwd: 'Delete password',
|
||||
txtAddPwd: 'Add password',
|
||||
txtInvisibleSignature: 'Add digital signature',
|
||||
txtSignatureLine: 'Add Signature line'
|
||||
txtSignatureLine: 'Add Signature line',
|
||||
hintDelPwd: 'Delete password'
|
||||
}
|
||||
}()), Common.Views.Protection || {}));
|
||||
});
|
|
@ -238,6 +238,10 @@ define([
|
|||
me.fireEvent('comment:resolveComments', [item.value]);
|
||||
});
|
||||
}
|
||||
Common.NotificationCenter.on('protect:doclock', function (e) {
|
||||
me.fireEvent('protect:update');
|
||||
});
|
||||
me.fireEvent('protect:update');
|
||||
}
|
||||
|
||||
return {
|
||||
|
@ -259,7 +263,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],
|
||||
lock: [_set.reviewChangelock, _set.isReviewOnly, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.docLockView, _set.docLockForms, _set.docLockComments, _set.docLockReview],
|
||||
dataHint: '1',
|
||||
dataHintDirection: 'bottom',
|
||||
dataHintOffset: 'small'
|
||||
|
@ -271,7 +275,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],
|
||||
lock: [_set.reviewChangelock, _set.isReviewOnly, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.docLockView, _set.docLockForms, _set.docLockComments, _set.docLockReview],
|
||||
dataHint: '1',
|
||||
dataHintDirection: 'bottom',
|
||||
dataHintOffset: 'small'
|
||||
|
@ -284,7 +288,7 @@ define([
|
|||
caption: this.txtCompare,
|
||||
split: true,
|
||||
iconCls: 'toolbar__icon btn-compare',
|
||||
lock: [_set.hasCoeditingUsers, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect],
|
||||
lock: [_set.hasCoeditingUsers, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.docLockView, _set.docLockForms, _set.docLockComments],
|
||||
dataHint: '1',
|
||||
dataHintDirection: 'bottom',
|
||||
dataHintOffset: 'small'
|
||||
|
@ -294,7 +298,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],
|
||||
lock: [_set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.docLockView, _set.docLockForms, _set.docLockComments, _set.docLockReview],
|
||||
caption: this.txtTurnon,
|
||||
split: !this.appConfig.isReviewOnly,
|
||||
enableToggle: true,
|
||||
|
@ -309,7 +313,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],
|
||||
lock: [_set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.docLockView, _set.docLockForms, _set.docLockComments],
|
||||
caption: this.txtPrev,
|
||||
dataHint: '1',
|
||||
dataHintDirection: 'bottom',
|
||||
|
@ -320,7 +324,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],
|
||||
lock: [_set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.docLockView, _set.docLockForms, _set.docLockComments],
|
||||
caption: this.txtNext,
|
||||
dataHint: '1',
|
||||
dataHintDirection: 'bottom',
|
||||
|
@ -336,7 +340,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],
|
||||
lock: [_set.viewFormMode, _set.lostConnect, _set.docLockView, _set.docLockForms, _set.docLockComments],
|
||||
caption: this.txtView,
|
||||
menu: new Common.UI.Menu({
|
||||
cls: 'ppm-toolbar',
|
||||
|
@ -404,7 +408,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],
|
||||
lock: [_set.viewFormMode, _set.lostConnect, _set.docLockView],
|
||||
caption: this.txtCoAuthMode,
|
||||
menu: true,
|
||||
dataHint: '1',
|
||||
|
@ -445,12 +449,13 @@ 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],
|
||||
lock: [_set.previewReviewMode, _set.viewFormMode, _set.hideComments, _set['Objects'], _set.lostConnect, _set.docLockView, _set.docLockForms],
|
||||
dataHint: '1',
|
||||
dataHintDirection: 'bottom',
|
||||
dataHintOffset: 'small'
|
||||
|
@ -461,15 +466,13 @@ define([
|
|||
caption: this.txtCommentResolve,
|
||||
split: true,
|
||||
iconCls: 'toolbar__icon btn-resolve-all',
|
||||
lock: [_set.previewReviewMode, _set.viewFormMode, _set.hideComments, _set['Objects'], _set.lostConnect],
|
||||
lock: [_set.previewReviewMode, _set.viewFormMode, _set.hideComments, _set['Objects'], _set.lostConnect, _set.docLockView, _set.docLockForms],
|
||||
dataHint: '1',
|
||||
dataHintDirection: 'bottom',
|
||||
dataHintOffset: 'small'
|
||||
});
|
||||
this.lockedControls.push(this.btnCommentResolve);
|
||||
}
|
||||
|
||||
Common.NotificationCenter.on('app:ready', this.onAppReady.bind(this));
|
||||
},
|
||||
|
||||
render: function (el) {
|
||||
|
@ -658,7 +661,7 @@ define([
|
|||
}
|
||||
|
||||
var separator_sharing = !(me.btnSharing || me.btnCoAuthMode) ? me.$el.find('.separator.sharing') : '.separator.sharing',
|
||||
separator_comments = !(config.canComments && config.canCoAuthoring) ? me.$el.find('.separator.comments') : '.separator.comments',
|
||||
separator_comments = !(me.btnCommentRemove || me.btnCommentResolve) ? 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',
|
||||
|
@ -692,8 +695,7 @@ define([
|
|||
if (!me.btnHistory && separator_last)
|
||||
me.$el.find(separator_last).hide();
|
||||
|
||||
Common.NotificationCenter.trigger('tab:visible', 'review', (config.isEdit || config.canViewReview || config.canCoAuthoring && config.canComments) && Common.UI.LayoutManager.isElementVisible('toolbar-collaboration'));
|
||||
|
||||
Common.NotificationCenter.trigger('tab:visible', 'review', (config.isEdit || config.canViewReview || me.canComments) && Common.UI.LayoutManager.isElementVisible('toolbar-collaboration'));
|
||||
setEvents.call(me);
|
||||
});
|
||||
},
|
||||
|
@ -731,7 +733,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],
|
||||
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],
|
||||
hintAnchor : 'top',
|
||||
hint : this.tipReview,
|
||||
split : !this.appConfig.isReviewOnly,
|
||||
|
@ -778,7 +780,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],
|
||||
lock: [Common.enumLock.viewMode, Common.enumLock.viewFormMode, Common.enumLock.previewReviewMode, Common.enumLock.docLockView, Common.enumLock.docLockForms, Common.enumLock.docLockComments],
|
||||
hintAnchor : 'top',
|
||||
hint: this.tipSetSpelling,
|
||||
enableToggle: true,
|
||||
|
@ -794,7 +796,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],
|
||||
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],
|
||||
hintAnchor : 'top',
|
||||
hint: this.tipSetDocLang,
|
||||
dataHint: '0',
|
||||
|
@ -973,6 +975,7 @@ 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] : '';
|
||||
|
@ -983,6 +986,7 @@ 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',
|
||||
|
@ -1003,7 +1007,8 @@ define([
|
|||
cls : 'btn-toolbar',
|
||||
caption : this.txtAccept,
|
||||
split : true,
|
||||
disabled : this.mode.isReviewOnly || !!Common.Utils.InternalSettings.get(this.appPrefix + "accept-reject-lock"),
|
||||
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],
|
||||
menu : this.mode.canUseReviewPermissions ? false : new Common.UI.Menu({
|
||||
items: [
|
||||
this.mnuAcceptCurrent = new Common.UI.MenuItem({
|
||||
|
@ -1023,7 +1028,7 @@ define([
|
|||
cls : 'btn-toolbar',
|
||||
caption : this.txtReject,
|
||||
split : true,
|
||||
disabled : this.mode.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],
|
||||
menu : this.mode.canUseReviewPermissions ? false : new Common.UI.Menu({
|
||||
items: [
|
||||
this.mnuRejectCurrent = new Common.UI.MenuItem({
|
||||
|
@ -1038,6 +1043,13 @@ 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) {
|
||||
|
|
|
@ -63,10 +63,7 @@ define([
|
|||
}, options || {});
|
||||
|
||||
this.template = [
|
||||
'<div class="box" style="height: 260px;">',
|
||||
'<div class="input-row">',
|
||||
'<label>' + this.textInfo + '</label>',
|
||||
'</div>',
|
||||
'<div class="box" style="height: 250px;">',
|
||||
'<div class="input-row">',
|
||||
'<label>' + this.textInfoName + '</label>',
|
||||
'</div>',
|
||||
|
@ -125,6 +122,7 @@ 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();
|
||||
|
@ -136,7 +134,8 @@ define([
|
|||
this.chDate = new Common.UI.CheckBox({
|
||||
el: $('#id-dlg-sign-settings-date'),
|
||||
labelText: this.textShowDate,
|
||||
disabled: this.type=='view'
|
||||
disabled: this.type=='view',
|
||||
value: 'checked'
|
||||
});
|
||||
|
||||
$window.find('.dlg-btn').on('click', _.bind(this.onBtnClick, this));
|
||||
|
@ -198,13 +197,14 @@ define([
|
|||
},
|
||||
|
||||
textInfo: 'Signer Info',
|
||||
textInfoName: 'Name',
|
||||
textInfoTitle: 'Signer Title',
|
||||
textInfoEmail: 'E-mail',
|
||||
textInstructions: 'Instructions for Signer',
|
||||
textInfoName: 'Suggested signer',
|
||||
textInfoTitle: 'Suggested signer\'s title',
|
||||
textInfoEmail: 'Suggested signer\'s 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'
|
||||
textTitle: 'Signature Setup',
|
||||
textDefInstruction: 'Before signing this document, verify that the content you are signing is correct.'
|
||||
}, Common.Views.SignSettingsDialog || {}))
|
||||
});
|
|
@ -1,5 +1,4 @@
|
|||
<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"/>
|
||||
|
@ -14,5 +13,4 @@
|
|||
<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.2 KiB After Width: | Height: | Size: 3.1 KiB |
|
@ -1,5 +1,4 @@
|
|||
<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"/>
|
||||
|
@ -7,5 +6,4 @@
|
|||
<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 |
|
@ -1,5 +1,4 @@
|
|||
<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"/>
|
||||
|
@ -7,5 +6,4 @@
|
|||
<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.8 KiB After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 168 B |
Before Width: | Height: | Size: 305 B After Width: | Height: | Size: 169 B |
BIN
apps/common/main/resources/img/toolbar/1.25x/big/smart-art.png
Normal file
After Width: | Height: | Size: 431 B |
BIN
apps/common/main/resources/img/toolbar/1.25x/btn-home.png
Normal file
After Width: | Height: | Size: 338 B |
Before Width: | Height: | Size: 207 B After Width: | Height: | Size: 135 B |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 310 B After Width: | Height: | Size: 185 B |
BIN
apps/common/main/resources/img/toolbar/1.25x/btn-rotate-down.png
Normal file
After Width: | Height: | Size: 173 B |
BIN
apps/common/main/resources/img/toolbar/1.25x/btn-rotate-up.png
Normal file
After Width: | Height: | Size: 174 B |
After Width: | Height: | Size: 297 B |
After Width: | Height: | Size: 292 B |
Before Width: | Height: | Size: 295 B After Width: | Height: | Size: 204 B |
After Width: | Height: | Size: 166 B |
BIN
apps/common/main/resources/img/toolbar/1.25x/btn-text.png
Normal file
After Width: | Height: | Size: 168 B |
BIN
apps/common/main/resources/img/toolbar/1.25x/smart-cycle.png
Normal file
After Width: | Height: | Size: 351 B |
BIN
apps/common/main/resources/img/toolbar/1.25x/smart-hierarchy.png
Normal file
After Width: | Height: | Size: 158 B |
BIN
apps/common/main/resources/img/toolbar/1.25x/smart-list.png
Normal file
After Width: | Height: | Size: 135 B |
BIN
apps/common/main/resources/img/toolbar/1.25x/smart-matrix.png
Normal file
After Width: | Height: | Size: 153 B |
BIN
apps/common/main/resources/img/toolbar/1.25x/smart-process.png
Normal file
After Width: | Height: | Size: 206 B |
BIN
apps/common/main/resources/img/toolbar/1.25x/smart-pyramid.png
Normal file
After Width: | Height: | Size: 142 B |
After Width: | Height: | Size: 478 B |
After Width: | Height: | Size: 189 B |
Before Width: | Height: | Size: 315 B After Width: | Height: | Size: 191 B |
BIN
apps/common/main/resources/img/toolbar/1.5x/big/smart-art.png
Normal file
After Width: | Height: | Size: 462 B |
BIN
apps/common/main/resources/img/toolbar/1.5x/btn-home.png
Normal file
After Width: | Height: | Size: 360 B |
Before Width: | Height: | Size: 214 B After Width: | Height: | Size: 141 B |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 328 B After Width: | Height: | Size: 195 B |
BIN
apps/common/main/resources/img/toolbar/1.5x/btn-rotate-down.png
Normal file
After Width: | Height: | Size: 185 B |
BIN
apps/common/main/resources/img/toolbar/1.5x/btn-rotate-up.png
Normal file
After Width: | Height: | Size: 191 B |
After Width: | Height: | Size: 329 B |
After Width: | Height: | Size: 346 B |
Before Width: | Height: | Size: 296 B After Width: | Height: | Size: 219 B |
After Width: | Height: | Size: 164 B |
BIN
apps/common/main/resources/img/toolbar/1.5x/btn-text.png
Normal file
After Width: | Height: | Size: 163 B |
BIN
apps/common/main/resources/img/toolbar/1.5x/smart-cycle.png
Normal file
After Width: | Height: | Size: 400 B |
BIN
apps/common/main/resources/img/toolbar/1.5x/smart-hierarchy.png
Normal file
After Width: | Height: | Size: 168 B |
BIN
apps/common/main/resources/img/toolbar/1.5x/smart-list.png
Normal file
After Width: | Height: | Size: 136 B |
BIN
apps/common/main/resources/img/toolbar/1.5x/smart-matrix.png
Normal file
After Width: | Height: | Size: 166 B |
BIN
apps/common/main/resources/img/toolbar/1.5x/smart-process.png
Normal file
After Width: | Height: | Size: 365 B |
BIN
apps/common/main/resources/img/toolbar/1.5x/smart-pyramid.png
Normal file
After Width: | Height: | Size: 150 B |
After Width: | Height: | Size: 562 B |
After Width: | Height: | Size: 187 B |
Before Width: | Height: | Size: 339 B After Width: | Height: | Size: 193 B |
BIN
apps/common/main/resources/img/toolbar/1.75x/big/smart-art.png
Normal file
After Width: | Height: | Size: 548 B |
BIN
apps/common/main/resources/img/toolbar/1.75x/btn-home.png
Normal file
After Width: | Height: | Size: 417 B |
Before Width: | Height: | Size: 229 B After Width: | Height: | Size: 139 B |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 351 B After Width: | Height: | Size: 214 B |
BIN
apps/common/main/resources/img/toolbar/1.75x/btn-rotate-down.png
Normal file
After Width: | Height: | Size: 201 B |
BIN
apps/common/main/resources/img/toolbar/1.75x/btn-rotate-up.png
Normal file
After Width: | Height: | Size: 199 B |
After Width: | Height: | Size: 392 B |
After Width: | Height: | Size: 390 B |
Before Width: | Height: | Size: 330 B After Width: | Height: | Size: 244 B |
After Width: | Height: | Size: 168 B |
BIN
apps/common/main/resources/img/toolbar/1.75x/btn-text.png
Normal file
After Width: | Height: | Size: 170 B |