v5.4.0
|
@ -23,9 +23,11 @@
|
||||||
key: 'key',
|
key: 'key',
|
||||||
vkey: 'vkey',
|
vkey: 'vkey',
|
||||||
info: {
|
info: {
|
||||||
author: 'author name',
|
author: 'author name', // must be deprecated, use owner instead
|
||||||
|
owner: 'owner name',
|
||||||
folder: 'path to document',
|
folder: 'path to document',
|
||||||
created: '<creation date>',
|
created: '<creation date>', // must be deprecated, use uploaded instead
|
||||||
|
uploaded: '<uploaded date>',
|
||||||
sharingSettings: [
|
sharingSettings: [
|
||||||
{
|
{
|
||||||
user: 'user name',
|
user: 'user name',
|
||||||
|
@ -63,6 +65,7 @@
|
||||||
saveAsUrl: 'folder for saving files'
|
saveAsUrl: 'folder for saving files'
|
||||||
licenseUrl: <url for license>,
|
licenseUrl: <url for license>,
|
||||||
customerId: <customer id>,
|
customerId: <customer id>,
|
||||||
|
region: <regional settings> // can be 'en-us' or lang code
|
||||||
|
|
||||||
user: {
|
user: {
|
||||||
id: 'user id',
|
id: 'user id',
|
||||||
|
@ -129,7 +132,6 @@
|
||||||
},
|
},
|
||||||
plugins: {
|
plugins: {
|
||||||
autostart: ['asc.{FFE1F462-1EA2-4391-990D-4CC84940B754}'],
|
autostart: ['asc.{FFE1F462-1EA2-4391-990D-4CC84940B754}'],
|
||||||
url: '../../../../sdkjs-plugins/',
|
|
||||||
pluginsData: [
|
pluginsData: [
|
||||||
"helloworld/config.json",
|
"helloworld/config.json",
|
||||||
"chess/config.json",
|
"chess/config.json",
|
||||||
|
@ -139,7 +141,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
events: {
|
events: {
|
||||||
'onReady': <application ready callback>, // deprecated
|
|
||||||
'onAppReady': <application ready callback>,
|
'onAppReady': <application ready callback>,
|
||||||
'onBack': <back to folder callback>,
|
'onBack': <back to folder callback>,
|
||||||
'onDocumentStateChange': <document state changed callback>
|
'onDocumentStateChange': <document state changed callback>
|
||||||
|
@ -174,7 +175,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
events: {
|
events: {
|
||||||
'onReady': <application ready callback>, // deprecated
|
|
||||||
'onAppReady': <application ready callback>,
|
'onAppReady': <application ready callback>,
|
||||||
'onBack': <back to folder callback>,
|
'onBack': <back to folder callback>,
|
||||||
'onError': <error callback>,
|
'onError': <error callback>,
|
||||||
|
@ -199,12 +199,14 @@
|
||||||
_config.editorConfig.canRequestClose = _config.events && !!_config.events.onRequestClose;
|
_config.editorConfig.canRequestClose = _config.events && !!_config.events.onRequestClose;
|
||||||
_config.editorConfig.canRename = _config.events && !!_config.events.onRequestRename;
|
_config.editorConfig.canRename = _config.events && !!_config.events.onRequestRename;
|
||||||
_config.editorConfig.canMakeActionLink = _config.events && !!_config.events.onMakeActionLink;
|
_config.editorConfig.canMakeActionLink = _config.events && !!_config.events.onMakeActionLink;
|
||||||
|
_config.editorConfig.canRequestUsers = _config.events && !!_config.events.onRequestUsers;
|
||||||
|
_config.editorConfig.canRequestSendNotify = _config.events && !!_config.events.onRequestSendNotify;
|
||||||
_config.editorConfig.mergeFolderUrl = _config.editorConfig.mergeFolderUrl || _config.editorConfig.saveAsUrl;
|
_config.editorConfig.mergeFolderUrl = _config.editorConfig.mergeFolderUrl || _config.editorConfig.saveAsUrl;
|
||||||
|
_config.editorConfig.canRequestSaveAs = _config.events && !!_config.events.onRequestSaveAs;
|
||||||
|
_config.editorConfig.canRequestInsertImage = _config.events && !!_config.events.onRequestInsertImage;
|
||||||
|
_config.editorConfig.canRequestMailMergeRecipients = _config.events && !!_config.events.onRequestMailMergeRecipients;
|
||||||
_config.frameEditorId = placeholderId;
|
_config.frameEditorId = placeholderId;
|
||||||
|
|
||||||
_config.events && !!_config.events.onReady && console.log("Obsolete: The onReady event is deprecated. Please use onAppReady instead.");
|
|
||||||
_config.events && (_config.events.onAppReady = _config.events.onAppReady || _config.events.onReady);
|
|
||||||
|
|
||||||
var onMouseUp = function (evt) {
|
var onMouseUp = function (evt) {
|
||||||
_processMouse(evt);
|
_processMouse(evt);
|
||||||
};
|
};
|
||||||
|
@ -537,6 +539,41 @@
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var _setUsers = function(data) {
|
||||||
|
_sendCommand({
|
||||||
|
command: 'setUsers',
|
||||||
|
data: data
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
var _showSharingSettings = function(data) {
|
||||||
|
_sendCommand({
|
||||||
|
command: 'showSharingSettings',
|
||||||
|
data: data
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
var _setSharingSettings = function(data) {
|
||||||
|
_sendCommand({
|
||||||
|
command: 'setSharingSettings',
|
||||||
|
data: data
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
var _insertImage = function(data) {
|
||||||
|
_sendCommand({
|
||||||
|
command: 'insertImage',
|
||||||
|
data: data
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
var _setMailMergeRecipients = function(data) {
|
||||||
|
_sendCommand({
|
||||||
|
command: 'setMailMergeRecipients',
|
||||||
|
data: data
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
var _processMouse = function(evt) {
|
var _processMouse = function(evt) {
|
||||||
var r = iframe.getBoundingClientRect();
|
var r = iframe.getBoundingClientRect();
|
||||||
var data = {
|
var data = {
|
||||||
|
@ -576,7 +613,12 @@
|
||||||
serviceCommand : _serviceCommand,
|
serviceCommand : _serviceCommand,
|
||||||
attachMouseEvents : _attachMouseEvents,
|
attachMouseEvents : _attachMouseEvents,
|
||||||
detachMouseEvents : _detachMouseEvents,
|
detachMouseEvents : _detachMouseEvents,
|
||||||
destroyEditor : _destroyEditor
|
destroyEditor : _destroyEditor,
|
||||||
|
setUsers : _setUsers,
|
||||||
|
showSharingSettings : _showSharingSettings,
|
||||||
|
setSharingSettings : _setSharingSettings,
|
||||||
|
insertImage : _insertImage,
|
||||||
|
setMailMergeRecipients: _setMailMergeRecipients
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -98,6 +98,26 @@ if (Common === undefined) {
|
||||||
|
|
||||||
'resetFocus': function(data) {
|
'resetFocus': function(data) {
|
||||||
$me.trigger('resetfocus', data);
|
$me.trigger('resetfocus', data);
|
||||||
|
},
|
||||||
|
|
||||||
|
'setUsers': function(data) {
|
||||||
|
$me.trigger('setusers', data);
|
||||||
|
},
|
||||||
|
|
||||||
|
'showSharingSettings': function(data) {
|
||||||
|
$me.trigger('showsharingsettings', data);
|
||||||
|
},
|
||||||
|
|
||||||
|
'setSharingSettings': function(data) {
|
||||||
|
$me.trigger('setsharingsettings', data);
|
||||||
|
},
|
||||||
|
|
||||||
|
'insertImage': function(data) {
|
||||||
|
$me.trigger('insertimage', data);
|
||||||
|
},
|
||||||
|
|
||||||
|
'setMailMergeRecipients': function(data) {
|
||||||
|
$me.trigger('setmailmergerecipients', data);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -238,6 +258,16 @@ if (Common === undefined) {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
requestSaveAs: function(url, title) {
|
||||||
|
_postMessage({
|
||||||
|
event: 'onRequestSaveAs',
|
||||||
|
data: {
|
||||||
|
url: url,
|
||||||
|
title: title
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
collaborativeChanges: function() {
|
collaborativeChanges: function() {
|
||||||
_postMessage({event: 'onCollaborativeChanges'});
|
_postMessage({event: 'onCollaborativeChanges'});
|
||||||
},
|
},
|
||||||
|
@ -262,6 +292,22 @@ if (Common === undefined) {
|
||||||
_postMessage({event:'onMakeActionLink', data: config})
|
_postMessage({event:'onMakeActionLink', data: config})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
requestUsers: function () {
|
||||||
|
_postMessage({event:'onRequestUsers'})
|
||||||
|
},
|
||||||
|
|
||||||
|
requestSendNotify: function (emails) {
|
||||||
|
_postMessage({event:'onRequestSendNotify', data: emails})
|
||||||
|
},
|
||||||
|
|
||||||
|
requestInsertImage: function () {
|
||||||
|
_postMessage({event:'onRequestInsertImage'})
|
||||||
|
},
|
||||||
|
|
||||||
|
requestMailMergeRecipients: function () {
|
||||||
|
_postMessage({event:'onRequestMailMergeRecipients'})
|
||||||
|
},
|
||||||
|
|
||||||
on: function(event, handler){
|
on: function(event, handler){
|
||||||
var localHandler = function(event, data){
|
var localHandler = function(event, data){
|
||||||
handler.call(me, data)
|
handler.call(me, data)
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
newDocumentPage.focus();
|
newDocumentPage.focus();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
, dialogPrint: function(url) {
|
, dialogPrint: function(url, api) {
|
||||||
$('#id-print-frame').remove();
|
$('#id-print-frame').remove();
|
||||||
|
|
||||||
if ( !!url ) {
|
if ( !!url ) {
|
||||||
|
@ -59,10 +59,14 @@
|
||||||
document.body.appendChild(iframePrint);
|
document.body.appendChild(iframePrint);
|
||||||
|
|
||||||
iframePrint.onload = function () {
|
iframePrint.onload = function () {
|
||||||
|
try {
|
||||||
iframePrint.contentWindow.focus();
|
iframePrint.contentWindow.focus();
|
||||||
iframePrint.contentWindow.print();
|
iframePrint.contentWindow.print();
|
||||||
iframePrint.contentWindow.blur();
|
iframePrint.contentWindow.blur();
|
||||||
window.focus();
|
window.focus();
|
||||||
|
} catch (e) {
|
||||||
|
api.asc_DownloadAs(new Asc.asc_CDownloadOptions(Asc.c_oAscFileType.PDF));
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
iframePrint.src = url;
|
iframePrint.src = url;
|
||||||
|
|
|
@ -61,10 +61,10 @@ common.view.modals = new(function() {
|
||||||
'</div>';
|
'</div>';
|
||||||
|
|
||||||
var _tplbody_embed = '<div class="size-manual">' +
|
var _tplbody_embed = '<div class="size-manual">' +
|
||||||
'<span class="caption">Width:</span>' +
|
'<span class="caption">{width}:</span>' +
|
||||||
'<input id="txt-embed-width" class="form-control input-xs" type="text" value="400px">' +
|
'<input id="txt-embed-width" class="form-control input-xs" type="text" value="400px">' +
|
||||||
'<input id="txt-embed-height" class="form-control input-xs right" type="text" value="600px">' +
|
'<input id="txt-embed-height" class="form-control input-xs right" type="text" value="600px">' +
|
||||||
'<span class="right caption">Height:</span>' +
|
'<span class="right caption">{height}:</span>' +
|
||||||
'</div>' +
|
'</div>' +
|
||||||
'<textarea id="txt-embed-url" rows="4" class="form-control" readonly></textarea>';
|
'<textarea id="txt-embed-url" rows="4" class="form-control" readonly></textarea>';
|
||||||
|
|
||||||
|
@ -75,22 +75,29 @@ common.view.modals = new(function() {
|
||||||
var _$dlg;
|
var _$dlg;
|
||||||
if (name == 'share') {
|
if (name == 'share') {
|
||||||
_$dlg = $(tplDialog
|
_$dlg = $(tplDialog
|
||||||
.replace(/\{title}/, 'Share Link')
|
.replace(/\{title}/, this.txtShare)
|
||||||
.replace(/\{body}/, _tplbody_share)
|
.replace(/\{body}/, _tplbody_share)
|
||||||
.replace(/\{footer}/, '<button id="btn-copyshort" type="button" class="btn">Copy to clipboard</button>'))
|
.replace(/\{footer}/, '<button id="btn-copyshort" type="button" class="btn">' + this.txtCopy + '</button>'))
|
||||||
.appendTo(parent)
|
.appendTo(parent)
|
||||||
.attr('id', 'dlg-share');
|
.attr('id', 'dlg-share');
|
||||||
} else
|
} else
|
||||||
if (name == 'embed') {
|
if (name == 'embed') {
|
||||||
_$dlg = $(tplDialog
|
_$dlg = $(tplDialog
|
||||||
.replace(/\{title}/, 'Embed')
|
.replace(/\{title}/, this.txtEmbed)
|
||||||
.replace(/\{body}/, _tplbody_embed)
|
.replace(/\{body}/, _tplbody_embed)
|
||||||
.replace(/\{footer}/, '<button id="btn-copyembed" type="button" class="btn">Copy to clipboard</button>'))
|
.replace(/\{width}/, this.txtWidth)
|
||||||
|
.replace(/\{height}/, this.txtHeight)
|
||||||
|
.replace(/\{footer}/, '<button id="btn-copyembed" type="button" class="btn">' + this.txtCopy + '</button>'))
|
||||||
.appendTo(parent)
|
.appendTo(parent)
|
||||||
.attr('id', 'dlg-embed');
|
.attr('id', 'dlg-embed');
|
||||||
}
|
}
|
||||||
|
|
||||||
return _$dlg;
|
return _$dlg;
|
||||||
}
|
},
|
||||||
|
txtWidth: 'Width',
|
||||||
|
txtHeight: 'Height',
|
||||||
|
txtShare: 'Share Link',
|
||||||
|
txtCopy: 'Copy to clipboard',
|
||||||
|
txtEmbed: 'Embed'
|
||||||
};
|
};
|
||||||
})();
|
})();
|
||||||
|
|
|
@ -35,29 +35,9 @@ if (Common === undefined) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.Locale = new(function() {
|
Common.Locale = new(function() {
|
||||||
|
"use strict";
|
||||||
var l10n = {};
|
var l10n = {};
|
||||||
|
|
||||||
var _createXMLHTTPObject = function() {
|
|
||||||
var xmlhttp;
|
|
||||||
if (typeof XMLHttpRequest != 'undefined') {
|
|
||||||
xmlhttp = new XMLHttpRequest();
|
|
||||||
} else {
|
|
||||||
try {
|
|
||||||
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
|
|
||||||
}
|
|
||||||
catch (e) {
|
|
||||||
try {
|
|
||||||
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
|
|
||||||
}
|
|
||||||
catch (E) {
|
|
||||||
xmlhttp = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return xmlhttp;
|
|
||||||
};
|
|
||||||
|
|
||||||
var _applyLocalization = function() {
|
var _applyLocalization = function() {
|
||||||
try {
|
try {
|
||||||
for (var prop in l10n) {
|
for (var prop in l10n) {
|
||||||
|
@ -98,25 +78,40 @@ Common.Locale = new(function() {
|
||||||
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
|
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
|
||||||
};
|
};
|
||||||
|
|
||||||
try {
|
var _requireLang = function () {
|
||||||
var langParam = _getUrlParameterByName('lang');
|
var lang = (_getUrlParameterByName('lang') || 'en').split(/[\-_]/)[0];
|
||||||
var xhrObj = _createXMLHTTPObject();
|
fetch('locale/' + lang + '.json')
|
||||||
if (xhrObj && langParam) {
|
.then(function(response) {
|
||||||
var lang = langParam.split(/[\-\_]/)[0];
|
if (!response.ok) {
|
||||||
xhrObj.open('GET', 'locale/' + lang + '.json', false);
|
if (lang != 'en')
|
||||||
xhrObj.send('');
|
/* load default lang if fetch failed */
|
||||||
l10n = eval("(" + xhrObj.responseText + ")");
|
return fetch('locale/en.json');
|
||||||
}
|
|
||||||
}
|
throw new Error('server error');
|
||||||
catch (e) {
|
|
||||||
try {
|
|
||||||
xhrObj.open('GET', 'locale/en.json', false);
|
|
||||||
xhrObj.send('');
|
|
||||||
l10n = eval("(" + xhrObj.responseText + ")");
|
|
||||||
}
|
|
||||||
catch (e) {
|
|
||||||
}
|
}
|
||||||
|
return response.json();
|
||||||
|
}).then(function(response) {
|
||||||
|
if ( response.then )
|
||||||
|
return response.json();
|
||||||
|
else {
|
||||||
|
l10n = response;
|
||||||
|
/* to break promises chain */
|
||||||
|
throw new Error('loaded');
|
||||||
}
|
}
|
||||||
|
}).then(function(json) {
|
||||||
|
if ( !!json ) l10n = json;
|
||||||
|
}).catch(function(e) {
|
||||||
|
if ( e.message == 'loaded' ) {
|
||||||
|
|
||||||
|
} else
|
||||||
|
console.log('fetch error: ' + e);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
if ( !window.fetch ) {
|
||||||
|
/* use fetch polifill if native method isn't supported */
|
||||||
|
require(['../vendor/fetch/fetch.umd'], _requireLang);
|
||||||
|
} else _requireLang();
|
||||||
|
|
||||||
return {
|
return {
|
||||||
apply: _applyLocalization,
|
apply: _applyLocalization,
|
||||||
|
|
|
@ -513,8 +513,8 @@ define([
|
||||||
});
|
});
|
||||||
|
|
||||||
el.on('mouseout', function(e) {
|
el.on('mouseout', function(e) {
|
||||||
if (!me.disabled) {
|
|
||||||
me.cmpEl.removeClass('over');
|
me.cmpEl.removeClass('over');
|
||||||
|
if (!me.disabled) {
|
||||||
me.trigger('mouseout', me, e);
|
me.trigger('mouseout', me, e);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -137,6 +137,9 @@ define([
|
||||||
},
|
},
|
||||||
|
|
||||||
setDisabled: function(disabled) {
|
setDisabled: function(disabled) {
|
||||||
|
if (!this.rendered)
|
||||||
|
return;
|
||||||
|
|
||||||
disabled = (disabled===true);
|
disabled = (disabled===true);
|
||||||
if (disabled !== this.disabled) {
|
if (disabled !== this.disabled) {
|
||||||
this.$label.toggleClass('disabled', disabled);
|
this.$label.toggleClass('disabled', disabled);
|
||||||
|
|
|
@ -111,7 +111,7 @@ define([
|
||||||
editable: false,
|
editable: false,
|
||||||
store: new Common.UI.BordersStore(),
|
store: new Common.UI.BordersStore(),
|
||||||
data: data,
|
data: data,
|
||||||
menuStyle: 'min-width: 150px;'
|
menuStyle: 'min-width: 160px;'
|
||||||
}, options));
|
}, options));
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -209,7 +209,7 @@ define([
|
||||||
editable: true,
|
editable: true,
|
||||||
store: new Common.UI.BordersStore(),
|
store: new Common.UI.BordersStore(),
|
||||||
data: data,
|
data: data,
|
||||||
menuStyle: 'min-width: 150px;'
|
menuStyle: 'min-width: 160px;'
|
||||||
}, options));
|
}, options));
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -85,12 +85,13 @@ define([
|
||||||
menuStyle : '',
|
menuStyle : '',
|
||||||
displayField: 'displayValue',
|
displayField: 'displayValue',
|
||||||
valueField : 'value',
|
valueField : 'value',
|
||||||
|
search : false,
|
||||||
scrollAlwaysVisible: false
|
scrollAlwaysVisible: false
|
||||||
},
|
},
|
||||||
|
|
||||||
template: _.template([
|
template: _.template([
|
||||||
'<span class="input-group combobox <%= cls %>" id="<%= id %>" style="<%= style %>">',
|
'<span class="input-group combobox <%= cls %>" id="<%= id %>" style="<%= style %>">',
|
||||||
'<input type="text" class="form-control">',
|
'<input type="text" class="form-control" spellcheck="false">',
|
||||||
'<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"><span class="caret img-commonctrl"></span></button>',
|
'<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"><span class="caret img-commonctrl"></span></button>',
|
||||||
'<ul class="dropdown-menu <%= menuCls %>" style="<%= menuStyle %>" role="menu">',
|
'<ul class="dropdown-menu <%= menuCls %>" style="<%= menuStyle %>" role="menu">',
|
||||||
'<% _.each(items, function(item) { %>',
|
'<% _.each(items, function(item) { %>',
|
||||||
|
@ -119,6 +120,7 @@ define([
|
||||||
this.store = me.options.store || new Common.UI.ComboBoxStore();
|
this.store = me.options.store || new Common.UI.ComboBoxStore();
|
||||||
this.displayField = me.options.displayField;
|
this.displayField = me.options.displayField;
|
||||||
this.valueField = me.options.valueField;
|
this.valueField = me.options.valueField;
|
||||||
|
this.search = me.options.search;
|
||||||
this.scrollAlwaysVisible = me.options.scrollAlwaysVisible;
|
this.scrollAlwaysVisible = me.options.scrollAlwaysVisible;
|
||||||
me.rendered = me.options.rendered || false;
|
me.rendered = me.options.rendered || false;
|
||||||
|
|
||||||
|
@ -295,12 +297,14 @@ define([
|
||||||
if (itemTop < 0 || itemTop + itemHeight > listHeight) {
|
if (itemTop < 0 || itemTop + itemHeight > listHeight) {
|
||||||
$list.scrollTop($list.scrollTop() + itemTop + itemHeight - (listHeight/2));
|
$list.scrollTop($list.scrollTop() + itemTop + itemHeight - (listHeight/2));
|
||||||
}
|
}
|
||||||
|
setTimeout(function(){$selected.find('a').focus();}, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.scroller)
|
if (this.scroller)
|
||||||
this.scroller.update({alwaysVisibleY: this.scrollAlwaysVisible});
|
this.scroller.update({alwaysVisibleY: this.scrollAlwaysVisible});
|
||||||
|
|
||||||
this.trigger('show:after', this, e);
|
this.trigger('show:after', this, e);
|
||||||
|
this._search = {};
|
||||||
},
|
},
|
||||||
|
|
||||||
onBeforeHideMenu: function(e) {
|
onBeforeHideMenu: function(e) {
|
||||||
|
@ -332,6 +336,57 @@ define([
|
||||||
this.closeMenu();
|
this.closeMenu();
|
||||||
this.onAfterHideMenu(e);
|
this.onAfterHideMenu(e);
|
||||||
return false;
|
return false;
|
||||||
|
} else if (this.search && e.keyCode > 64 && e.keyCode < 91 && e.key){
|
||||||
|
var me = this;
|
||||||
|
clearTimeout(this._search.timer);
|
||||||
|
this._search.timer = setTimeout(function () { me._search = {}; }, 1000);
|
||||||
|
|
||||||
|
(!this._search.text) && (this._search.text = '');
|
||||||
|
(!this._search.char) && (this._search.char = e.key);
|
||||||
|
(this._search.char !== e.key) && (this._search.full = true);
|
||||||
|
this._search.text += e.key;
|
||||||
|
if (this._search.index===undefined) {
|
||||||
|
var $items = this.cmpEl.find('ul > li').find('> a');
|
||||||
|
this._search.index = $items.index($items.filter(':focus'));
|
||||||
|
}
|
||||||
|
this.selectCandidate();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
selectCandidate: function() {
|
||||||
|
var index = this._search.index || 0,
|
||||||
|
re = new RegExp('^' + ((this._search.full) ? this._search.text : this._search.char), 'i'),
|
||||||
|
itemCandidate, idxCandidate;
|
||||||
|
|
||||||
|
for (var i=0; i<this.store.length; i++) {
|
||||||
|
var item = this.store.at(i);
|
||||||
|
if (re.test(item.get(this.displayField))) {
|
||||||
|
if (!itemCandidate) {
|
||||||
|
itemCandidate = item;
|
||||||
|
idxCandidate = i;
|
||||||
|
}
|
||||||
|
if (this._search.full && i==index || i>index) {
|
||||||
|
itemCandidate = item;
|
||||||
|
idxCandidate = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (itemCandidate) {
|
||||||
|
this._search.index = idxCandidate;
|
||||||
|
var item = $('#' + itemCandidate.get('id') + ' a', $(this.el));
|
||||||
|
if (this.scroller) {
|
||||||
|
this.scroller.update({alwaysVisibleY: this.scrollAlwaysVisible});
|
||||||
|
var $list = $(this.el).find('ul');
|
||||||
|
var itemTop = item.position().top,
|
||||||
|
itemHeight = item.height(),
|
||||||
|
listHeight = $list.height();
|
||||||
|
if (itemTop < 0 || itemTop + itemHeight > listHeight) {
|
||||||
|
$list.scrollTop($list.scrollTop() + itemTop + itemHeight - (listHeight/2));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
item.focus();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -56,7 +56,7 @@ define([
|
||||||
thumbContext = thumbCanvas.getContext('2d'),
|
thumbContext = thumbCanvas.getContext('2d'),
|
||||||
thumbPath = '../../../../sdkjs/common/Images/fonts_thumbnail.png',
|
thumbPath = '../../../../sdkjs/common/Images/fonts_thumbnail.png',
|
||||||
thumbPath2x = '../../../../sdkjs/common/Images/fonts_thumbnail@2x.png',
|
thumbPath2x = '../../../../sdkjs/common/Images/fonts_thumbnail@2x.png',
|
||||||
listItemHeight = 36;
|
listItemHeight = 26;
|
||||||
|
|
||||||
if (typeof window['AscDesktopEditor'] === 'object') {
|
if (typeof window['AscDesktopEditor'] === 'object') {
|
||||||
thumbPath = window['AscDesktopEditor'].getFontsSprite();
|
thumbPath = window['AscDesktopEditor'].getFontsSprite();
|
||||||
|
@ -76,7 +76,7 @@ define([
|
||||||
'<li class="divider">',
|
'<li class="divider">',
|
||||||
'<% _.each(items, function(item) { %>',
|
'<% _.each(items, function(item) { %>',
|
||||||
'<li id="<%= item.id %>">',
|
'<li id="<%= item.id %>">',
|
||||||
'<a class="font-item" tabindex="-1" type="menuitem" style="vertical-align:middle; margin: 0 0 0 -10px; height:<%=scope.getListItemHeight()%>px;"/>',
|
'<a class="font-item" tabindex="-1" type="menuitem" style="height:<%=scope.getListItemHeight()%>px;"/>',
|
||||||
'</li>',
|
'</li>',
|
||||||
'<% }); %>',
|
'<% }); %>',
|
||||||
'</ul>',
|
'</ul>',
|
||||||
|
@ -93,9 +93,12 @@ define([
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
this.recent = _.isNumber(options.recent) ? options.recent : 3;
|
this.recent = _.isNumber(options.recent) ? options.recent : 5;
|
||||||
|
|
||||||
Common.NotificationCenter.on('fonts:change', _.bind(this.onApiChangeFont, this));
|
var filter = Common.localStorage.getKeysFilter();
|
||||||
|
this.appPrefix = (filter && filter.length) ? filter.split(',')[0] : '';
|
||||||
|
|
||||||
|
// Common.NotificationCenter.on('fonts:change', _.bind(this.onApiChangeFont, this));
|
||||||
Common.NotificationCenter.on('fonts:load', _.bind(this.fillFonts, this));
|
Common.NotificationCenter.on('fonts:load', _.bind(this.fillFonts, this));
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -115,8 +118,6 @@ define([
|
||||||
this._input.on('focus', _.bind(function() {this.inFormControl = true;}, this));
|
this._input.on('focus', _.bind(function() {this.inFormControl = true;}, this));
|
||||||
this._input.on('blur', _.bind(function() {this.inFormControl = false;}, this));
|
this._input.on('blur', _.bind(function() {this.inFormControl = false;}, this));
|
||||||
|
|
||||||
this._modalParents = this.cmpEl.closest('.asc-window');
|
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -322,6 +323,13 @@ define([
|
||||||
if (me.recent > 0) {
|
if (me.recent > 0) {
|
||||||
me.store.on('add', me.onInsertItem, me);
|
me.store.on('add', me.onInsertItem, me);
|
||||||
me.store.on('remove', me.onRemoveItem, me);
|
me.store.on('remove', me.onRemoveItem, me);
|
||||||
|
|
||||||
|
Common.Utils.InternalSettings.set(me.appPrefix + "-settings-recent-fonts", Common.localStorage.getItem(me.appPrefix + "-settings-recent-fonts"));
|
||||||
|
var arr = Common.Utils.InternalSettings.get(me.appPrefix + "-settings-recent-fonts");
|
||||||
|
arr = arr ? arr.split(';') : [];
|
||||||
|
arr.reverse().forEach(function(item) {
|
||||||
|
item && me.addItemToRecent(me.store.findWhere({name: item}), true);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -339,8 +347,6 @@ define([
|
||||||
var name = (_.isFunction(font.get_Name) ? font.get_Name() : font.asc_getName());
|
var name = (_.isFunction(font.get_Name) ? font.get_Name() : font.asc_getName());
|
||||||
|
|
||||||
if (this.getRawValue() !== name) {
|
if (this.getRawValue() !== name) {
|
||||||
if (this._modalParents.length > 0) return;
|
|
||||||
|
|
||||||
var record = this.store.findWhere({
|
var record = this.store.findWhere({
|
||||||
name: name
|
name: name
|
||||||
});
|
});
|
||||||
|
@ -364,17 +370,17 @@ define([
|
||||||
},
|
},
|
||||||
|
|
||||||
itemClicked: function (e) {
|
itemClicked: function (e) {
|
||||||
|
Common.UI.ComboBox.prototype.itemClicked.apply(this, arguments);
|
||||||
|
|
||||||
var el = $(e.target).closest('li');
|
var el = $(e.target).closest('li');
|
||||||
var record = this.store.findWhere({id: el.attr('id')});
|
var record = this.store.findWhere({id: el.attr('id')});
|
||||||
this.addItemToRecent(record);
|
this.addItemToRecent(record);
|
||||||
|
|
||||||
Common.UI.ComboBox.prototype.itemClicked.apply(this, arguments);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
onInsertItem: function(item) {
|
onInsertItem: function(item) {
|
||||||
$(this.el).find('ul').prepend(_.template([
|
$(this.el).find('ul').prepend(_.template([
|
||||||
'<li id="<%= item.id %>">',
|
'<li id="<%= item.id %>">',
|
||||||
'<a class="font-item" tabindex="-1" type="menuitem" style="vertical-align:middle; margin: 0 0 0 -10px; height:<%=scope.getListItemHeight()%>px;"/>',
|
'<a class="font-item" tabindex="-1" type="menuitem" style="height:<%=scope.getListItemHeight()%>px;"/>',
|
||||||
'</li>'
|
'</li>'
|
||||||
].join(''))({
|
].join(''))({
|
||||||
item: item.attributes,
|
item: item.attributes,
|
||||||
|
@ -387,6 +393,10 @@ define([
|
||||||
},
|
},
|
||||||
|
|
||||||
onBeforeShowMenu: function(e) {
|
onBeforeShowMenu: function(e) {
|
||||||
|
if (this.store.length<1) {
|
||||||
|
e.preventDefault();
|
||||||
|
return;
|
||||||
|
}
|
||||||
Common.UI.ComboBox.prototype.onBeforeShowMenu.apply(this, arguments);
|
Common.UI.ComboBox.prototype.onBeforeShowMenu.apply(this, arguments);
|
||||||
|
|
||||||
if (!this.getSelectedRecord() && !!this.getRawValue()) {
|
if (!this.getSelectedRecord() && !!this.getRawValue()) {
|
||||||
|
@ -419,11 +429,12 @@ define([
|
||||||
Common.UI.ComboBox.prototype.onAfterHideMenu.apply(this, arguments);
|
Common.UI.ComboBox.prototype.onAfterHideMenu.apply(this, arguments);
|
||||||
},
|
},
|
||||||
|
|
||||||
addItemToRecent: function(record) {
|
addItemToRecent: function(record, silent) {
|
||||||
if (this.recent<1) return;
|
if (this.recent<1) return;
|
||||||
|
|
||||||
if (record.get('type') != FONT_TYPE_RECENT &&
|
var font = this.store.findWhere({name: record.get('name'),type:FONT_TYPE_RECENT});
|
||||||
!this.store.findWhere({name: record.get('name'),type:FONT_TYPE_RECENT})) {
|
font && this.store.remove(font);
|
||||||
|
|
||||||
var fonts = this.store.where({type:FONT_TYPE_RECENT});
|
var fonts = this.store.where({type:FONT_TYPE_RECENT});
|
||||||
if (!(fonts.length < this.recent)) {
|
if (!(fonts.length < this.recent)) {
|
||||||
this.store.remove(fonts[this.recent - 1]);
|
this.store.remove(fonts[this.recent - 1]);
|
||||||
|
@ -432,6 +443,15 @@ define([
|
||||||
var new_record = record.clone();
|
var new_record = record.clone();
|
||||||
new_record.set({'type': FONT_TYPE_RECENT, 'id': Common.UI.getId(), cloneid: record.id});
|
new_record.set({'type': FONT_TYPE_RECENT, 'id': Common.UI.getId(), cloneid: record.id});
|
||||||
this.store.add(new_record, {at:0});
|
this.store.add(new_record, {at:0});
|
||||||
|
|
||||||
|
if (!silent) {
|
||||||
|
var arr = [];
|
||||||
|
this.store.where({type:FONT_TYPE_RECENT}).forEach(function(item){
|
||||||
|
arr.push(item.get('name'));
|
||||||
|
});
|
||||||
|
arr = arr.join(';');
|
||||||
|
Common.localStorage.setItem(this.appPrefix + "-settings-recent-fonts", arr);
|
||||||
|
Common.Utils.InternalSettings.set(this.appPrefix + "-settings-recent-fonts", arr);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -245,11 +245,7 @@ define([
|
||||||
var picker = this.menuPicker;
|
var picker = this.menuPicker;
|
||||||
if (picker) {
|
if (picker) {
|
||||||
var record = picker.getSelectedRec();
|
var record = picker.getSelectedRec();
|
||||||
|
|
||||||
if (record) {
|
|
||||||
record = record[0];
|
|
||||||
this.fillComboView(record || picker.store.at(0), !!record, true);
|
this.fillComboView(record || picker.store.at(0), !!record, true);
|
||||||
}
|
|
||||||
|
|
||||||
picker.onResize();
|
picker.onResize();
|
||||||
}
|
}
|
||||||
|
@ -311,7 +307,7 @@ define([
|
||||||
},
|
},
|
||||||
|
|
||||||
onAfterHideMenu: function(e, isFromInputControl) {
|
onAfterHideMenu: function(e, isFromInputControl) {
|
||||||
this.menuPicker.selectedBeforeHideRec = this.menuPicker.getSelectedRec()[0]; // for DataView - onKeyDown - Return key
|
this.menuPicker.selectedBeforeHideRec = this.menuPicker.getSelectedRec(); // for DataView - onKeyDown - Return key
|
||||||
(this.showLast) ? this.menuPicker.showLastSelected() : this.menuPicker.deselectAll();
|
(this.showLast) ? this.menuPicker.showLastSelected() : this.menuPicker.deselectAll();
|
||||||
this.trigger('hide:after', this, e, isFromInputControl);
|
this.trigger('hide:after', this, e, isFromInputControl);
|
||||||
},
|
},
|
||||||
|
@ -387,12 +383,9 @@ define([
|
||||||
var picker = this.menuPicker;
|
var picker = this.menuPicker;
|
||||||
if (picker) {
|
if (picker) {
|
||||||
var record = picker.getSelectedRec();
|
var record = picker.getSelectedRec();
|
||||||
if (record) {
|
|
||||||
record = record[0];
|
|
||||||
this.fillComboView(record || picker.store.at(0), false);
|
this.fillComboView(record || picker.store.at(0), false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
isDisabled: function() {
|
isDisabled: function() {
|
||||||
|
@ -421,10 +414,11 @@ define([
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
me.fieldPicker.store.reset([]); // remove all
|
var indexRec = store.indexOf(record);
|
||||||
|
if (indexRec < 0)
|
||||||
|
return;
|
||||||
|
|
||||||
var indexRec = store.indexOf(record),
|
var countRec = store.length,
|
||||||
countRec = store.length,
|
|
||||||
maxViewCount = Math.floor(Math.max(fieldPickerEl.width(), me.minWidth) / (me.itemWidth + (me.itemMarginLeft || 0) + (me.itemMarginRight || 0) + (me.itemPaddingLeft || 0) + (me.itemPaddingRight || 0) +
|
maxViewCount = Math.floor(Math.max(fieldPickerEl.width(), me.minWidth) / (me.itemWidth + (me.itemMarginLeft || 0) + (me.itemMarginRight || 0) + (me.itemPaddingLeft || 0) + (me.itemPaddingRight || 0) +
|
||||||
(me.itemBorderLeft || 0) + (me.itemBorderRight || 0))),
|
(me.itemBorderLeft || 0) + (me.itemBorderRight || 0))),
|
||||||
newStyles = [];
|
newStyles = [];
|
||||||
|
@ -432,9 +426,6 @@ define([
|
||||||
if (fieldPickerEl.height() / me.itemHeight > 2)
|
if (fieldPickerEl.height() / me.itemHeight > 2)
|
||||||
maxViewCount *= Math.floor(fieldPickerEl.height() / me.itemHeight);
|
maxViewCount *= Math.floor(fieldPickerEl.height() / me.itemHeight);
|
||||||
|
|
||||||
if (indexRec < 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
indexRec = Math.floor(indexRec / maxViewCount) * maxViewCount;
|
indexRec = Math.floor(indexRec / maxViewCount) * maxViewCount;
|
||||||
if (countRec - indexRec < maxViewCount)
|
if (countRec - indexRec < maxViewCount)
|
||||||
indexRec = Math.max(countRec - maxViewCount, 0);
|
indexRec = Math.max(countRec - maxViewCount, 0);
|
||||||
|
@ -442,7 +433,7 @@ define([
|
||||||
newStyles.push(store.at(index));
|
newStyles.push(store.at(index));
|
||||||
}
|
}
|
||||||
|
|
||||||
me.fieldPicker.store.add(newStyles);
|
me.fieldPicker.store.reset(newStyles);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (forceSelect) {
|
if (forceSelect) {
|
||||||
|
|
|
@ -151,7 +151,7 @@ define([
|
||||||
|
|
||||||
var tip = el.data('bs.tooltip');
|
var tip = el.data('bs.tooltip');
|
||||||
if (tip) {
|
if (tip) {
|
||||||
if (tip.dontShow===undefined)
|
if (tip.dontShow===undefined && el.is(':hover'))
|
||||||
tip.dontShow = true;
|
tip.dontShow = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -389,17 +389,7 @@ define([
|
||||||
},
|
},
|
||||||
|
|
||||||
getSelectedRec: function() {
|
getSelectedRec: function() {
|
||||||
if (this.multiSelect) {
|
return (this.multiSelect) ? this.store.where({selected: true}) : this.store.findWhere({selected: true});
|
||||||
|
|
||||||
var items = [];
|
|
||||||
_.each(this.store.where({selected: true}), function(rec){
|
|
||||||
items.push(rec);
|
|
||||||
});
|
|
||||||
|
|
||||||
return items;
|
|
||||||
}
|
|
||||||
|
|
||||||
return this.store.where({selected: true});
|
|
||||||
},
|
},
|
||||||
|
|
||||||
onAddItem: function(record, store, opts) {
|
onAddItem: function(record, store, opts) {
|
||||||
|
@ -601,7 +591,7 @@ define([
|
||||||
if (_.indexOf(this.moveKeys, data.keyCode)>-1 || data.keyCode==Common.UI.Keys.RETURN) {
|
if (_.indexOf(this.moveKeys, data.keyCode)>-1 || data.keyCode==Common.UI.Keys.RETURN) {
|
||||||
data.preventDefault();
|
data.preventDefault();
|
||||||
data.stopPropagation();
|
data.stopPropagation();
|
||||||
var rec = this.getSelectedRec()[0];
|
var rec = this.getSelectedRec();
|
||||||
if (this.lastSelectedRec===null)
|
if (this.lastSelectedRec===null)
|
||||||
this.lastSelectedRec = rec;
|
this.lastSelectedRec = rec;
|
||||||
if (data.keyCode==Common.UI.Keys.RETURN) {
|
if (data.keyCode==Common.UI.Keys.RETURN) {
|
||||||
|
@ -699,8 +689,7 @@ define([
|
||||||
this.scrollToRecord(this.lastSelectedRec);
|
this.scrollToRecord(this.lastSelectedRec);
|
||||||
this.lastSelectedRec = null;
|
this.lastSelectedRec = null;
|
||||||
} else {
|
} else {
|
||||||
var rec = this.getSelectedRec()[0];
|
this.scrollToRecord(this.getSelectedRec());
|
||||||
if (rec) this.scrollToRecord(rec);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -239,6 +239,8 @@ define([
|
||||||
},
|
},
|
||||||
|
|
||||||
onKeyDown: function(e) {
|
onKeyDown: function(e) {
|
||||||
|
this.trigger('keydown:before', this, e);
|
||||||
|
|
||||||
if (e.isDefaultPrevented())
|
if (e.isDefaultPrevented())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
@ -76,6 +76,11 @@
|
||||||
* Arrow of the {Common.UI.MenuItem} menu items
|
* Arrow of the {Common.UI.MenuItem} menu items
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
|
* @property {Boolean/Number} restoreHeight
|
||||||
|
*
|
||||||
|
* Adjust to the browser height and restore to restoreHeight when it's Number
|
||||||
|
*
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (Common === undefined)
|
if (Common === undefined)
|
||||||
|
@ -143,7 +148,9 @@ define([
|
||||||
menuAlign : 'tl-bl',
|
menuAlign : 'tl-bl',
|
||||||
menuAlignEl : null,
|
menuAlignEl : null,
|
||||||
offset : [0, 0],
|
offset : [0, 0],
|
||||||
cyclic : true
|
cyclic : true,
|
||||||
|
search : false,
|
||||||
|
scrollAlwaysVisible: true
|
||||||
},
|
},
|
||||||
|
|
||||||
template: _.template([
|
template: _.template([
|
||||||
|
@ -162,6 +169,13 @@ define([
|
||||||
this.offset = [0, 0];
|
this.offset = [0, 0];
|
||||||
this.menuAlign = this.options.menuAlign;
|
this.menuAlign = this.options.menuAlign;
|
||||||
this.menuAlignEl = this.options.menuAlignEl;
|
this.menuAlignEl = this.options.menuAlignEl;
|
||||||
|
this.scrollAlwaysVisible = this.options.scrollAlwaysVisible;
|
||||||
|
this.search = this.options.search;
|
||||||
|
|
||||||
|
if (this.options.restoreHeight) {
|
||||||
|
this.options.restoreHeight = (typeof (this.options.restoreHeight) == "number") ? this.options.restoreHeight : (this.options.maxHeight ? this.options.maxHeight : 100000);
|
||||||
|
!this.options.maxHeight && (this.options.maxHeight = this.options.restoreHeight);
|
||||||
|
}
|
||||||
|
|
||||||
if (!this.options.cyclic) this.options.cls += ' no-cyclic';
|
if (!this.options.cyclic) this.options.cls += ' no-cyclic';
|
||||||
|
|
||||||
|
@ -217,6 +231,7 @@ define([
|
||||||
|
|
||||||
var rootEl = this.cmpEl.parent(),
|
var rootEl = this.cmpEl.parent(),
|
||||||
menuRoot = (rootEl.attr('role') === 'menu') ? rootEl : rootEl.find('[role=menu]');
|
menuRoot = (rootEl.attr('role') === 'menu') ? rootEl : rootEl.find('[role=menu]');
|
||||||
|
this.menuRoot = menuRoot;
|
||||||
|
|
||||||
if (menuRoot) {
|
if (menuRoot) {
|
||||||
if (!me.rendered) {
|
if (!me.rendered) {
|
||||||
|
@ -228,8 +243,17 @@ define([
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.options.maxHeight) {
|
||||||
|
menuRoot.css({'max-height': me.options.maxHeight});
|
||||||
|
this.scroller = new Common.UI.Scroller({
|
||||||
|
el: $(this.el).find('.dropdown-menu '),
|
||||||
|
minScrollbarLength: 30,
|
||||||
|
suppressScrollX: true,
|
||||||
|
alwaysVisibleY: this.scrollAlwaysVisible
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
menuRoot.css({
|
menuRoot.css({
|
||||||
'max-height': me.options.maxHeight||'none',
|
|
||||||
position : 'fixed',
|
position : 'fixed',
|
||||||
right : 'auto',
|
right : 'auto',
|
||||||
left : -1000,
|
left : -1000,
|
||||||
|
@ -243,7 +267,6 @@ define([
|
||||||
this.parentEl.on('hide.bs.dropdown', _.bind(me.onBeforeHideMenu, me));
|
this.parentEl.on('hide.bs.dropdown', _.bind(me.onBeforeHideMenu, me));
|
||||||
this.parentEl.on('hidden.bs.dropdown', _.bind(me.onAfterHideMenu, me));
|
this.parentEl.on('hidden.bs.dropdown', _.bind(me.onAfterHideMenu, me));
|
||||||
this.parentEl.on('keydown.after.bs.dropdown', _.bind(me.onAfterKeydownMenu, me));
|
this.parentEl.on('keydown.after.bs.dropdown', _.bind(me.onAfterKeydownMenu, me));
|
||||||
menuRoot.on('scroll', _.bind(me.onScroll, me));
|
|
||||||
|
|
||||||
menuRoot.hover(
|
menuRoot.hover(
|
||||||
function(e) { me.isOver = true;},
|
function(e) { me.isOver = true;},
|
||||||
|
@ -294,10 +317,7 @@ define([
|
||||||
me.items.splice(index, 0, item);
|
me.items.splice(index, 0, item);
|
||||||
|
|
||||||
if (this.rendered) {
|
if (this.rendered) {
|
||||||
var menuRoot = (el.attr('role') === 'menu')
|
var menuRoot = this.menuRoot;
|
||||||
? el
|
|
||||||
: el.find('[role=menu]');
|
|
||||||
|
|
||||||
if (menuRoot) {
|
if (menuRoot) {
|
||||||
if (index < 0) {
|
if (index < 0) {
|
||||||
menuRoot.append(item.render().el);
|
menuRoot.append(item.render().el);
|
||||||
|
@ -313,64 +333,6 @@ define([
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
doLayout: function() {
|
|
||||||
if (this.options.maxHeight > 0) {
|
|
||||||
if (!this.rendered) {
|
|
||||||
this.mustLayout = true;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var me = this,
|
|
||||||
el = this.cmpEl;
|
|
||||||
|
|
||||||
var menuRoot = (el.attr('role') === 'menu') ? el : el.find('[role=menu]');
|
|
||||||
|
|
||||||
if (!menuRoot.is(':visible')) {
|
|
||||||
var pos = [menuRoot.css('left'), menuRoot.css('top')];
|
|
||||||
menuRoot.css({
|
|
||||||
left : '-1000px',
|
|
||||||
top : '-1000px',
|
|
||||||
display : 'block'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
var $items = menuRoot.find('li');
|
|
||||||
|
|
||||||
if ($items.height() * $items.length > this.options.maxHeight) {
|
|
||||||
var scroll = '<div class="menu-scroll top"></div>';
|
|
||||||
menuRoot.prepend(scroll);
|
|
||||||
|
|
||||||
scroll = '<div class="menu-scroll bottom"></div>';
|
|
||||||
menuRoot.append(scroll);
|
|
||||||
|
|
||||||
menuRoot.css({
|
|
||||||
'box-shadow' : 'none',
|
|
||||||
'overflow-y' : 'hidden',
|
|
||||||
'padding-top' : '18px'
|
|
||||||
// 'padding-bottom' : '18px'
|
|
||||||
});
|
|
||||||
|
|
||||||
menuRoot.find('> li:last-of-type').css('margin-bottom',18);
|
|
||||||
|
|
||||||
var addEvent = function( elem, type, fn ) {
|
|
||||||
elem.addEventListener ? elem.addEventListener( type, fn, false ) : elem.attachEvent( "on" + type, fn );
|
|
||||||
};
|
|
||||||
|
|
||||||
var eventname=(/Firefox/i.test(navigator.userAgent))? 'DOMMouseScroll' : 'mousewheel';
|
|
||||||
addEvent(menuRoot[0], eventname, _.bind(this.onMouseWheel,this));
|
|
||||||
menuRoot.find('.menu-scroll').on('click', _.bind(this.onScrollClick, this));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pos) {
|
|
||||||
menuRoot.css({
|
|
||||||
display : '',
|
|
||||||
left : pos[0],
|
|
||||||
top : pos[1]
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
addItem: function(item) {
|
addItem: function(item) {
|
||||||
this.insertItem(-1, item);
|
this.insertItem(-1, item);
|
||||||
},
|
},
|
||||||
|
@ -405,19 +367,12 @@ define([
|
||||||
item.off('click').off('toggle');
|
item.off('click').off('toggle');
|
||||||
item.remove();
|
item.remove();
|
||||||
});
|
});
|
||||||
this.rendered && this.cmpEl.find('.menu-scroll').off('click').remove();
|
|
||||||
|
|
||||||
me.items = [];
|
me.items = [];
|
||||||
},
|
},
|
||||||
|
|
||||||
onBeforeShowMenu: function(e) {
|
onBeforeShowMenu: function(e) {
|
||||||
Common.NotificationCenter.trigger('menu:show');
|
Common.NotificationCenter.trigger('menu:show');
|
||||||
|
|
||||||
if (this.mustLayout) {
|
|
||||||
delete this.mustLayout;
|
|
||||||
this.doLayout.call(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
this.trigger('show:before', this, e);
|
this.trigger('show:before', this, e);
|
||||||
this.alignPosition();
|
this.alignPosition();
|
||||||
},
|
},
|
||||||
|
@ -425,10 +380,8 @@ define([
|
||||||
onAfterShowMenu: function(e) {
|
onAfterShowMenu: function(e) {
|
||||||
this.trigger('show:after', this, e);
|
this.trigger('show:after', this, e);
|
||||||
if (this.scroller) {
|
if (this.scroller) {
|
||||||
if (this.options.restoreHeight)
|
this.scroller.update({alwaysVisibleY: this.scrollAlwaysVisible});
|
||||||
this.scroller.update();
|
var menuRoot = this.menuRoot,
|
||||||
|
|
||||||
var menuRoot = (this.cmpEl.attr('role') === 'menu') ? this.cmpEl : this.cmpEl.find('[role=menu]'),
|
|
||||||
$selected = menuRoot.find('> li .checked');
|
$selected = menuRoot.find('> li .checked');
|
||||||
if ($selected.length) {
|
if ($selected.length) {
|
||||||
var itemTop = $selected.position().top,
|
var itemTop = $selected.position().top,
|
||||||
|
@ -437,16 +390,10 @@ define([
|
||||||
if (itemTop < 0 || itemTop + itemHeight > listHeight) {
|
if (itemTop < 0 || itemTop + itemHeight > listHeight) {
|
||||||
menuRoot.scrollTop(menuRoot.scrollTop() + itemTop + itemHeight - (listHeight/2));
|
menuRoot.scrollTop(menuRoot.scrollTop() + itemTop + itemHeight - (listHeight/2));
|
||||||
}
|
}
|
||||||
|
setTimeout(function(){$selected.focus();}, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
this._search = {};
|
||||||
if (this.$el.find('> ul > .menu-scroll').length) {
|
|
||||||
var el = this.$el.find('li .checked')[0];
|
|
||||||
if (el) {
|
|
||||||
var offset = el.offsetTop - this.options.maxHeight / 2;
|
|
||||||
this.scrollMenu(offset < 0 ? 0 : offset);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
onBeforeHideMenu: function(e) {
|
onBeforeHideMenu: function(e) {
|
||||||
|
@ -462,6 +409,10 @@ define([
|
||||||
},
|
},
|
||||||
|
|
||||||
onAfterKeydownMenu: function(e) {
|
onAfterKeydownMenu: function(e) {
|
||||||
|
this.trigger('keydown:before', this, e);
|
||||||
|
if (e.isDefaultPrevented())
|
||||||
|
return;
|
||||||
|
|
||||||
if (e.keyCode == Common.UI.Keys.RETURN) {
|
if (e.keyCode == Common.UI.Keys.RETURN) {
|
||||||
var li = $(e.target).closest('li');
|
var li = $(e.target).closest('li');
|
||||||
if (li.length<=0) li = $(e.target).parent().find('li .dataview');
|
if (li.length<=0) li = $(e.target).parent().find('li .dataview');
|
||||||
|
@ -477,24 +428,57 @@ define([
|
||||||
} else if (e.keyCode == Common.UI.Keys.ESC) {
|
} else if (e.keyCode == Common.UI.Keys.ESC) {
|
||||||
// Common.NotificationCenter.trigger('menu:afterkeydown', e);
|
// Common.NotificationCenter.trigger('menu:afterkeydown', e);
|
||||||
// return false;
|
// return false;
|
||||||
|
} else if (this.search && e.keyCode > 64 && e.keyCode < 91 && e.key){
|
||||||
|
var me = this;
|
||||||
|
clearTimeout(this._search.timer);
|
||||||
|
this._search.timer = setTimeout(function () { me._search = {}; }, 1000);
|
||||||
|
|
||||||
|
(!this._search.text) && (this._search.text = '');
|
||||||
|
(!this._search.char) && (this._search.char = e.key);
|
||||||
|
(this._search.char !== e.key) && (this._search.full = true);
|
||||||
|
this._search.text += e.key;
|
||||||
|
if (this._search.index===undefined) {
|
||||||
|
var $items = this.menuRoot.find('> li').find('> a');
|
||||||
|
this._search.index = $items.index($items.filter(':focus'));
|
||||||
|
}
|
||||||
|
this.selectCandidate();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
onScroll: function(item, e) {
|
selectCandidate: function() {
|
||||||
if (this.scroller) return;
|
var index = this._search.index || 0,
|
||||||
|
re = new RegExp('^' + ((this._search.full) ? this._search.text : this._search.char), 'i'),
|
||||||
|
itemCandidate, idxCandidate;
|
||||||
|
|
||||||
var menuRoot = (this.cmpEl.attr('role') === 'menu')
|
for (var i=0; i<this.items.length; i++) {
|
||||||
? this.cmpEl
|
var item = this.items[i];
|
||||||
: this.cmpEl.find('[role=menu]'),
|
if (re.test(item.caption)) {
|
||||||
scrollTop = menuRoot.scrollTop(),
|
if (!itemCandidate) {
|
||||||
top = menuRoot.find('.menu-scroll.top'),
|
itemCandidate = item;
|
||||||
bottom = menuRoot.find('.menu-scroll.bottom');
|
idxCandidate = i;
|
||||||
if (this.fromKeyDown) {
|
}
|
||||||
top.css('top', scrollTop + 'px');
|
if (this._search.full && i==index || i>index) {
|
||||||
bottom.css('bottom', (-scrollTop) + 'px');
|
itemCandidate = item;
|
||||||
|
idxCandidate = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (itemCandidate) {
|
||||||
|
this._search.index = idxCandidate;
|
||||||
|
var item = itemCandidate.cmpEl.find('a');
|
||||||
|
if (this.scroller) {
|
||||||
|
this.scroller.update({alwaysVisibleY: this.scrollAlwaysVisible});
|
||||||
|
var itemTop = item.position().top,
|
||||||
|
itemHeight = item.height(),
|
||||||
|
listHeight = this.menuRoot.height();
|
||||||
|
if (itemTop < 0 || itemTop + itemHeight > listHeight) {
|
||||||
|
this.menuRoot.scrollTop(this.menuRoot.scrollTop() + itemTop + itemHeight - (listHeight/2));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
item.focus();
|
||||||
}
|
}
|
||||||
top.toggleClass('disabled', scrollTop<1);
|
|
||||||
bottom.toggleClass('disabled', scrollTop + this.options.maxHeight > menuRoot[0].scrollHeight-1);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
onItemClick: function(item, e) {
|
onItemClick: function(item, e) {
|
||||||
|
@ -514,32 +498,6 @@ define([
|
||||||
this.trigger('item:toggle', this, item, state, e);
|
this.trigger('item:toggle', this, item, state, e);
|
||||||
},
|
},
|
||||||
|
|
||||||
onScrollClick: function(e) {
|
|
||||||
if (/disabled/.test(e.currentTarget.className)) return false;
|
|
||||||
|
|
||||||
this.scrollMenu(/top/.test(e.currentTarget.className));
|
|
||||||
return false;
|
|
||||||
},
|
|
||||||
|
|
||||||
onMouseWheel: function(e) {
|
|
||||||
this.scrollMenu(((e.detail && -e.detail) || e.wheelDelta) > 0);
|
|
||||||
},
|
|
||||||
|
|
||||||
scrollMenu: function(up) {
|
|
||||||
this.fromKeyDown = false;
|
|
||||||
var menuRoot = (this.cmpEl.attr('role') === 'menu')
|
|
||||||
? this.cmpEl
|
|
||||||
: this.cmpEl.find('[role=menu]'),
|
|
||||||
value = typeof(up)==='boolean'
|
|
||||||
? menuRoot.scrollTop() + (up ? -20 : 20)
|
|
||||||
: up;
|
|
||||||
|
|
||||||
menuRoot.scrollTop(value);
|
|
||||||
|
|
||||||
menuRoot.find('.menu-scroll.top').css('top', menuRoot.scrollTop() + 'px');
|
|
||||||
menuRoot.find('.menu-scroll.bottom').css('bottom', (-menuRoot.scrollTop()) + 'px');
|
|
||||||
},
|
|
||||||
|
|
||||||
setOffset: function(offsetX, offsetY) {
|
setOffset: function(offsetX, offsetY) {
|
||||||
this.offset[0] = _.isUndefined(offsetX) ? this.offset[0] : offsetX;
|
this.offset[0] = _.isUndefined(offsetX) ? this.offset[0] : offsetX;
|
||||||
this.offset[1] = _.isUndefined(offsetY) ? this.offset[1] : offsetY;
|
this.offset[1] = _.isUndefined(offsetY) ? this.offset[1] : offsetY;
|
||||||
|
@ -550,10 +508,8 @@ define([
|
||||||
return this.offset;
|
return this.offset;
|
||||||
},
|
},
|
||||||
|
|
||||||
alignPosition: function() {
|
alignPosition: function(fixedAlign, fixedOffset) {
|
||||||
var menuRoot = (this.cmpEl.attr('role') === 'menu')
|
var menuRoot = this.menuRoot,
|
||||||
? this.cmpEl
|
|
||||||
: this.cmpEl.find('[role=menu]'),
|
|
||||||
menuParent = this.menuAlignEl || menuRoot.parent(),
|
menuParent = this.menuAlignEl || menuRoot.parent(),
|
||||||
m = this.menuAlign.match(/^([a-z]+)-([a-z]+)/),
|
m = this.menuAlign.match(/^([a-z]+)-([a-z]+)/),
|
||||||
offset = menuParent.offset(),
|
offset = menuParent.offset(),
|
||||||
|
@ -590,15 +546,24 @@ define([
|
||||||
if (typeof (this.options.restoreHeight) == "number") {
|
if (typeof (this.options.restoreHeight) == "number") {
|
||||||
if (top + menuH > docH) {
|
if (top + menuH > docH) {
|
||||||
menuRoot.css('max-height', (docH - top) + 'px');
|
menuRoot.css('max-height', (docH - top) + 'px');
|
||||||
menuH = menuRoot.outerHeight();
|
(!this.scroller) && (this.scroller = new Common.UI.Scroller({
|
||||||
} else if ( top + menuH < docH && menuRoot.height() < this.options.restoreHeight ) {
|
el: $(this.el).find('.dropdown-menu '),
|
||||||
|
minScrollbarLength: 30,
|
||||||
|
suppressScrollX: true,
|
||||||
|
alwaysVisibleY: this.scrollAlwaysVisible
|
||||||
|
}));
|
||||||
|
} else if ( top + menuH < docH && menuRoot.height() < this.options.restoreHeight) {
|
||||||
menuRoot.css('max-height', (Math.min(docH - top, this.options.restoreHeight)) + 'px');
|
menuRoot.css('max-height', (Math.min(docH - top, this.options.restoreHeight)) + 'px');
|
||||||
menuH = menuRoot.outerHeight();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (top + menuH > docH)
|
if (top + menuH > docH) {
|
||||||
|
if (fixedAlign && typeof fixedAlign == 'string') { // how to align if menu height > window height
|
||||||
|
m = fixedAlign.match(/^([a-z]+)-([a-z]+)/);
|
||||||
|
top = offset.top - posMenu[m[1]][1] + posParent[m[2]][1] + this.offset[1] + (fixedOffset || 0);
|
||||||
|
} else
|
||||||
top = docH - menuH;
|
top = docH - menuH;
|
||||||
|
}
|
||||||
|
|
||||||
if (top < 0)
|
if (top < 0)
|
||||||
top = 0;
|
top = 0;
|
||||||
|
@ -607,7 +572,7 @@ define([
|
||||||
if (this.options.additionalAlign)
|
if (this.options.additionalAlign)
|
||||||
this.options.additionalAlign.call(this, menuRoot, left, top);
|
this.options.additionalAlign.call(this, menuRoot, left, top);
|
||||||
else
|
else
|
||||||
menuRoot.css({left: left, top: top});
|
menuRoot.css({left: Math.ceil(left), top: Math.ceil(top)});
|
||||||
},
|
},
|
||||||
|
|
||||||
clearAll: function() {
|
clearAll: function() {
|
||||||
|
|
|
@ -286,6 +286,7 @@ define([
|
||||||
if ( $tp.length ) {
|
if ( $tp.length ) {
|
||||||
$tp.addClass('active');
|
$tp.addClass('active');
|
||||||
}
|
}
|
||||||
|
this.fireEvent('tab:active', [tab]);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -54,7 +54,11 @@ define([
|
||||||
maxValue: 100,
|
maxValue: 100,
|
||||||
values: [0, 100],
|
values: [0, 100],
|
||||||
colorValues: ['#000000', '#ffffff'],
|
colorValues: ['#000000', '#ffffff'],
|
||||||
currentThumb: 0
|
currentThumb: 0,
|
||||||
|
thumbTemplate: '<div class="thumb img-commonctrl" style="">' +
|
||||||
|
'<div class="thumb-top"></div>' +
|
||||||
|
'<div class="thumb-bottom"></div>' +
|
||||||
|
'</div>'
|
||||||
},
|
},
|
||||||
|
|
||||||
disabled: false,
|
disabled: false,
|
||||||
|
@ -63,38 +67,20 @@ define([
|
||||||
'<div class="slider multi-slider-gradient">',
|
'<div class="slider multi-slider-gradient">',
|
||||||
'<div class="track"></div>',
|
'<div class="track"></div>',
|
||||||
'<% _.each(items, function(item) { %>',
|
'<% _.each(items, function(item) { %>',
|
||||||
'<div class="thumb img-commonctrl" style="">',
|
'<%= thumbTemplate %>',
|
||||||
'<div class="thumb-top"></div>',
|
|
||||||
'<div class="thumb-bottom"></div>',
|
|
||||||
'</div>',
|
|
||||||
'<% }); %>',
|
'<% }); %>',
|
||||||
'</div>'
|
'</div>'
|
||||||
].join('')),
|
].join('')),
|
||||||
|
|
||||||
initialize : function(options) {
|
initialize : function(options) {
|
||||||
this.styleStr = '';
|
this.styleStr = {};
|
||||||
if (Common.Utils.isChrome && Common.Utils.chromeVersion<10 || Common.Utils.isSafari && Common.Utils.safariVersion<5.1)
|
|
||||||
this.styleStr = '-webkit-gradient(linear, left top, right top, color-stop({1}%,{0}), color-stop({3}%,{2})); /* Chrome,Safari4+ */';
|
|
||||||
else if (Common.Utils.isChrome || Common.Utils.isSafari)
|
|
||||||
this.styleStr = '-webkit-linear-gradient(left, {0} {1}%, {2} {3}%)';
|
|
||||||
else if (Common.Utils.isGecko)
|
|
||||||
this.styleStr = '-moz-linear-gradient(left, {0} {1}%, {2} {3}%)';
|
|
||||||
else if (Common.Utils.isOpera && Common.Utils.operaVersion>11.0)
|
|
||||||
this.styleStr = '-o-linear-gradient(left, {0} {1}%, {2} {3}%)';
|
|
||||||
else if (Common.Utils.isIE)
|
|
||||||
this.styleStr = '-ms-linear-gradient(left, {0} {1}%, {2} {3}%)';
|
|
||||||
|
|
||||||
this.colorValues = this.options.colorValues;
|
|
||||||
|
|
||||||
Common.UI.MultiSlider.prototype.initialize.call(this, options);
|
Common.UI.MultiSlider.prototype.initialize.call(this, options);
|
||||||
},
|
},
|
||||||
|
|
||||||
render : function(parentEl) {
|
render : function(parentEl) {
|
||||||
Common.UI.MultiSlider.prototype.render.call(this, parentEl);
|
Common.UI.MultiSlider.prototype.render.call(this, parentEl);
|
||||||
|
|
||||||
var me = this,
|
var me = this;
|
||||||
style = '';
|
|
||||||
|
|
||||||
me.trackEl = me.cmpEl.find('.track');
|
me.trackEl = me.cmpEl.find('.track');
|
||||||
|
|
||||||
for (var i=0; i<me.thumbs.length; i++) {
|
for (var i=0; i<me.thumbs.length; i++) {
|
||||||
|
@ -102,33 +88,24 @@ define([
|
||||||
me.trigger('thumbdblclick', me);
|
me.trigger('thumbdblclick', me);
|
||||||
});
|
});
|
||||||
me.thumbs[i].thumbcolor = me.thumbs[i].thumb.find('> div');
|
me.thumbs[i].thumbcolor = me.thumbs[i].thumb.find('> div');
|
||||||
|
me.setColorValue(me.options.colorValues[i], i);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (me.styleStr!=='') {
|
me.changeSliderStyle();
|
||||||
style = Common.Utils.String.format(me.styleStr, me.colorValues[0], 0, me.colorValues[1], 100);
|
me.changeGradientStyle();
|
||||||
me.trackEl.css('background', style);
|
|
||||||
}
|
|
||||||
if (Common.Utils.isIE) {
|
|
||||||
style = Common.Utils.String.format('progid:DXImageTransform.Microsoft.gradient( startColorstr={0}, endColorstr={1},GradientType=1 )',
|
|
||||||
me.colorValues[0], me.colorValues[1]);
|
|
||||||
me.trackEl.css('filter', style);
|
|
||||||
}
|
|
||||||
style = Common.Utils.String.format('linear-gradient(to right, {0} {1}%, {2} {3}%)', me.colorValues[0], 0, me.colorValues[1], 100);
|
|
||||||
me.trackEl.css('background', style);
|
|
||||||
|
|
||||||
me.on('change', _.bind(me.changeGradientStyle, me));
|
me.on('change', _.bind(me.changeGradientStyle, me));
|
||||||
},
|
},
|
||||||
|
|
||||||
setColorValue: function(color, index) {
|
setColorValue: function(color, index) {
|
||||||
var ind = (index!==undefined) ? index : this.currentThumb;
|
var ind = (index!==undefined) ? index : this.currentThumb;
|
||||||
this.colorValues[ind] = color;
|
this.thumbs[ind].colorValue = color;
|
||||||
this.thumbs[ind].thumbcolor.css('background-color', color);
|
this.thumbs[ind].thumbcolor.css('background-color', color);
|
||||||
this.changeGradientStyle();
|
this.changeGradientStyle();
|
||||||
},
|
},
|
||||||
|
|
||||||
getColorValue: function(index) {
|
getColorValue: function(index) {
|
||||||
var ind = (index!==undefined) ? index : this.currentThumb;
|
var ind = (index!==undefined) ? index : this.currentThumb;
|
||||||
return this.colorValues[ind];
|
return this.thumbs[ind].colorValue;
|
||||||
},
|
},
|
||||||
|
|
||||||
setValue: function(index, value) {
|
setValue: function(index, value) {
|
||||||
|
@ -136,32 +113,88 @@ define([
|
||||||
this.changeGradientStyle();
|
this.changeGradientStyle();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getColorValues: function() {
|
||||||
|
var values = [];
|
||||||
|
_.each (this.thumbs, function(thumb) {
|
||||||
|
values.push(thumb.colorValue);
|
||||||
|
});
|
||||||
|
|
||||||
|
return values;
|
||||||
|
},
|
||||||
|
|
||||||
changeGradientStyle: function() {
|
changeGradientStyle: function() {
|
||||||
if (!this.rendered) return;
|
if (!this.rendered) return;
|
||||||
var style;
|
var style;
|
||||||
if (this.styleStr!=='') {
|
if (this.styleStr.specific) {
|
||||||
style = Common.Utils.String.format(this.styleStr, this.colorValues[0], this.getValue(0), this.colorValues[1], this.getValue(1));
|
style = Common.Utils.String.format(this.styleStr.specific, this.getColorValues().concat(this.getValues()));
|
||||||
this.trackEl.css('background', style);
|
this.trackEl.css('background', style);
|
||||||
}
|
}
|
||||||
if (Common.Utils.isIE) {
|
if (Common.Utils.isIE) {
|
||||||
style = Common.Utils.String.format('progid:DXImageTransform.Microsoft.gradient( startColorstr={0}, endColorstr={1},GradientType=1 )',
|
style = Common.Utils.String.format('progid:DXImageTransform.Microsoft.gradient( startColorstr={0}, endColorstr={1},GradientType=1 )',
|
||||||
this.colorValues[0], this.colorValues[1]);
|
this.getColorValue(0), this.getColorValue(this.thumbs.length-1));
|
||||||
this.trackEl.css('filter', style);
|
this.trackEl.css('filter', style);
|
||||||
}
|
}
|
||||||
style = Common.Utils.String.format('linear-gradient(to right, {0} {1}%, {2} {3}%)', this.colorValues[0], this.getValue(0), this.colorValues[1], this.getValue(1));
|
if (this.styleStr.common) {
|
||||||
|
style = Common.Utils.String.format(this.styleStr.common, this.getColorValues().concat(this.getValues()));
|
||||||
this.trackEl.css('background', style);
|
this.trackEl.css('background', style);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
sortThumbs: function() {
|
sortThumbs: function() {
|
||||||
var recalc_indexes = Common.UI.MultiSlider.prototype.sortThumbs.call(this),
|
var recalc_indexes = Common.UI.MultiSlider.prototype.sortThumbs.call(this);
|
||||||
new_colors = [],
|
this.trigger('sortthumbs', this, recalc_indexes);
|
||||||
me = this;
|
|
||||||
_.each (recalc_indexes, function(recalc_index) {
|
|
||||||
new_colors.push(me.colorValues[recalc_index]);
|
|
||||||
});
|
|
||||||
this.colorValues = new_colors;
|
|
||||||
this.trigger('sortthumbs', me, recalc_indexes);
|
|
||||||
return recalc_indexes;
|
return recalc_indexes;
|
||||||
|
},
|
||||||
|
|
||||||
|
addThumb: function() {
|
||||||
|
Common.UI.MultiSlider.prototype.addThumb.call(this);
|
||||||
|
|
||||||
|
var me = this,
|
||||||
|
index = me.thumbs.length-1;
|
||||||
|
me.thumbs[index].thumb.on('dblclick', null, function() {
|
||||||
|
me.trigger('thumbdblclick', me);
|
||||||
|
});
|
||||||
|
me.thumbs[index].thumbcolor = me.thumbs[index].thumb.find('> div');
|
||||||
|
(index>0) && this.setColorValue(this.getColorValue(index-1), index);
|
||||||
|
me.changeSliderStyle();
|
||||||
|
},
|
||||||
|
|
||||||
|
removeThumb: function(index) {
|
||||||
|
if (index===undefined) index = this.thumbs.length-1;
|
||||||
|
if (index>0) {
|
||||||
|
this.thumbs[index].thumb.remove();
|
||||||
|
this.thumbs.splice(index, 1);
|
||||||
|
this.changeSliderStyle();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
changeSliderStyle: function() {
|
||||||
|
this.styleStr = {
|
||||||
|
specific: '',
|
||||||
|
common: 'linear-gradient(to right'
|
||||||
|
};
|
||||||
|
|
||||||
|
if (Common.Utils.isChrome && Common.Utils.chromeVersion<10 || Common.Utils.isSafari && Common.Utils.safariVersion<5.1)
|
||||||
|
this.styleStr.specific = '-webkit-gradient(linear, left top, right top'; /* Chrome,Safari4+ */
|
||||||
|
else if (Common.Utils.isChrome || Common.Utils.isSafari)
|
||||||
|
this.styleStr.specific = '-webkit-linear-gradient(left';
|
||||||
|
else if (Common.Utils.isGecko)
|
||||||
|
this.styleStr.specific = '-moz-linear-gradient(left';
|
||||||
|
else if (Common.Utils.isOpera && Common.Utils.operaVersion>11.0)
|
||||||
|
this.styleStr.specific = '-o-linear-gradient(left';
|
||||||
|
else if (Common.Utils.isIE)
|
||||||
|
this.styleStr.specific = '-ms-linear-gradient(left';
|
||||||
|
|
||||||
|
for (var i=0; i<this.thumbs.length; i++) {
|
||||||
|
this.styleStr.common += ', {' + i + '} {' + (this.thumbs.length + i) + '}%';
|
||||||
|
if (Common.Utils.isChrome && Common.Utils.chromeVersion<10 || Common.Utils.isSafari && Common.Utils.safariVersion<5.1)
|
||||||
|
this.styleStr.specific += ', color-stop({' + (this.thumbs.length + i) + '}%,{' + i + '})';
|
||||||
|
else
|
||||||
|
this.styleStr.specific += ', {' + i + '} {' + (this.thumbs.length + i) + '}%';
|
||||||
|
|
||||||
|
}
|
||||||
|
this.styleStr.specific += ')';
|
||||||
|
this.styleStr.common += ')';
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -107,6 +107,9 @@ define([
|
||||||
},
|
},
|
||||||
|
|
||||||
setDisabled: function(disabled) {
|
setDisabled: function(disabled) {
|
||||||
|
if (!this.rendered)
|
||||||
|
return;
|
||||||
|
|
||||||
if (disabled !== this.disabled) {
|
if (disabled !== this.disabled) {
|
||||||
this.$radio.toggleClass('disabled', disabled);
|
this.$radio.toggleClass('disabled', disabled);
|
||||||
(disabled) ? this.$radio.attr({disabled: disabled}) : this.$radio.removeAttr('disabled');
|
(disabled) ? this.$radio.attr({disabled: disabled}) : this.$radio.removeAttr('disabled');
|
||||||
|
|
|
@ -165,7 +165,12 @@ define([
|
||||||
$(this.el).find('.ps-scrollbar-y-rail').removeClass('always-visible-y');
|
$(this.el).find('.ps-scrollbar-y-rail').removeClass('always-visible-y');
|
||||||
$(this.el).find('.ps-scrollbar-y').addClass('always-visible-y');
|
$(this.el).find('.ps-scrollbar-y').addClass('always-visible-y');
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
isVisible: function() {
|
||||||
|
return $(this.el).find('.ps-scrollbar-y-rail').is(':visible');
|
||||||
}
|
}
|
||||||
|
|
||||||
}), {
|
}), {
|
||||||
isMouseCapture: function() {
|
isMouseCapture: function() {
|
||||||
return mouseCapture
|
return mouseCapture
|
||||||
|
|
|
@ -277,7 +277,8 @@ define([
|
||||||
width: 100,
|
width: 100,
|
||||||
minValue: 0,
|
minValue: 0,
|
||||||
maxValue: 100,
|
maxValue: 100,
|
||||||
values: [0, 100]
|
values: [0, 100],
|
||||||
|
thumbTemplate: '<div class="thumb" style=""></div>'
|
||||||
},
|
},
|
||||||
|
|
||||||
disabled: false,
|
disabled: false,
|
||||||
|
@ -290,7 +291,7 @@ define([
|
||||||
'<div class="track-right" style=""></div>',
|
'<div class="track-right" style=""></div>',
|
||||||
'</div>',
|
'</div>',
|
||||||
'<% _.each(items, function(item) { %>',
|
'<% _.each(items, function(item) { %>',
|
||||||
'<div class="thumb" style=""></div>',
|
'<%= thumbTemplate %>',
|
||||||
'<% }); %>',
|
'<% }); %>',
|
||||||
'</div>'
|
'</div>'
|
||||||
].join('')),
|
].join('')),
|
||||||
|
@ -317,7 +318,8 @@ define([
|
||||||
|
|
||||||
if (!me.rendered) {
|
if (!me.rendered) {
|
||||||
this.cmpEl = $(this.template({
|
this.cmpEl = $(this.template({
|
||||||
items: this.options.values
|
items: this.options.values,
|
||||||
|
thumbTemplate: this.options.thumbTemplate
|
||||||
}));
|
}));
|
||||||
|
|
||||||
if (parentEl) {
|
if (parentEl) {
|
||||||
|
@ -353,8 +355,8 @@ define([
|
||||||
if (need_sort)
|
if (need_sort)
|
||||||
me.sortThumbs();
|
me.sortThumbs();
|
||||||
|
|
||||||
$(document).off('mouseup', onMouseUp);
|
$(document).off('mouseup', me.binding.onMouseUp);
|
||||||
$(document).off('mousemove', onMouseMove);
|
$(document).off('mousemove', me.binding.onMouseMove);
|
||||||
|
|
||||||
me._dragstart = undefined;
|
me._dragstart = undefined;
|
||||||
me.trigger('changecomplete', me, value, lastValue);
|
me.trigger('changecomplete', me, value, lastValue);
|
||||||
|
@ -399,8 +401,8 @@ define([
|
||||||
(index == idx) ? item.thumb.css('z-index', 500) : item.thumb.css('z-index', '');
|
(index == idx) ? item.thumb.css('z-index', 500) : item.thumb.css('z-index', '');
|
||||||
});
|
});
|
||||||
|
|
||||||
$(document).on('mouseup', null, e.data, onMouseUp);
|
$(document).on('mouseup', null, e.data, me.binding.onMouseUp);
|
||||||
$(document).on('mousemove', null, e.data, onMouseMove);
|
$(document).on('mousemove', null, e.data, me.binding.onMouseMove);
|
||||||
};
|
};
|
||||||
|
|
||||||
var onTrackMouseDown = function (e) {
|
var onTrackMouseDown = function (e) {
|
||||||
|
@ -443,6 +445,12 @@ define([
|
||||||
return index;
|
return index;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.binding = {
|
||||||
|
onMouseUp: _.bind(onMouseUp, this),
|
||||||
|
onMouseMove: _.bind(onMouseMove, this),
|
||||||
|
onMouseDown: _.bind(onMouseDown, this)
|
||||||
|
};
|
||||||
|
|
||||||
this.$thumbs = el.find('.thumb');
|
this.$thumbs = el.find('.thumb');
|
||||||
_.each(this.$thumbs, function(item, index) {
|
_.each(this.$thumbs, function(item, index) {
|
||||||
var thumb = $(item);
|
var thumb = $(item);
|
||||||
|
@ -451,7 +459,7 @@ define([
|
||||||
index: index
|
index: index
|
||||||
});
|
});
|
||||||
me.setValue(index, me.options.values[index]);
|
me.setValue(index, me.options.values[index]);
|
||||||
thumb.on('mousedown', null, me.thumbs[index], onMouseDown);
|
thumb.on('mousedown', null, me.thumbs[index], me.binding.onMouseDown);
|
||||||
});
|
});
|
||||||
me.setActiveThumb(0, true);
|
me.setActiveThumb(0, true);
|
||||||
|
|
||||||
|
@ -481,7 +489,6 @@ define([
|
||||||
this.setThumbPosition(index, Math.round((value-this.minValue)*this.delta));
|
this.setThumbPosition(index, Math.round((value-this.minValue)*this.delta));
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
getValue: function(index) {
|
getValue: function(index) {
|
||||||
return this.thumbs[index].value;
|
return this.thumbs[index].value;
|
||||||
},
|
},
|
||||||
|
@ -511,6 +518,35 @@ define([
|
||||||
thumb.index = index;
|
thumb.index = index;
|
||||||
});
|
});
|
||||||
return recalc_indexes;
|
return recalc_indexes;
|
||||||
|
},
|
||||||
|
|
||||||
|
setThumbs: function(count) {
|
||||||
|
var length = this.thumbs.length;
|
||||||
|
if (length==count) return;
|
||||||
|
|
||||||
|
for (var i=0; i<Math.abs(count-length); i++)
|
||||||
|
(length<count) ? this.addThumb() : this.removeThumb();
|
||||||
|
},
|
||||||
|
|
||||||
|
addThumb: function() {
|
||||||
|
var el = this.cmpEl,
|
||||||
|
thumb = $(this.options.thumbTemplate),
|
||||||
|
index = this.thumbs.length;
|
||||||
|
el.append(thumb);
|
||||||
|
this.thumbs.push({
|
||||||
|
thumb: thumb,
|
||||||
|
index: index
|
||||||
|
});
|
||||||
|
(index>0) && this.setValue(index, this.getValue(index-1));
|
||||||
|
thumb.on('mousedown', null, this.thumbs[index], this.binding.onMouseDown);
|
||||||
|
},
|
||||||
|
|
||||||
|
removeThumb: function(index) {
|
||||||
|
if (index===undefined) index = this.thumbs.length-1;
|
||||||
|
if (index>0) {
|
||||||
|
this.thumbs[index].thumb.remove();
|
||||||
|
this.thumbs.splice(index, 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -164,7 +164,7 @@ define([
|
||||||
'<% if (closable!==false) %>' +
|
'<% if (closable!==false) %>' +
|
||||||
'<div class="tool close img-commonctrl"></div>' +
|
'<div class="tool close img-commonctrl"></div>' +
|
||||||
'<% %>' +
|
'<% %>' +
|
||||||
'<span class="title"><%= title %></span> ' +
|
'<div class="title"><%= title %></div> ' +
|
||||||
'</div>' +
|
'</div>' +
|
||||||
'<% } %>' +
|
'<% } %>' +
|
||||||
'<div class="body"><%= tpl %></div>' +
|
'<div class="body"><%= tpl %></div>' +
|
||||||
|
@ -639,7 +639,10 @@ define([
|
||||||
show: function(x,y) {
|
show: function(x,y) {
|
||||||
if (this.initConfig.modal) {
|
if (this.initConfig.modal) {
|
||||||
var mask = _getMask();
|
var mask = _getMask();
|
||||||
if (this.options.animate !== false) {
|
if (this.options.animate === false || this.options.animate && this.options.animate.mask === false) { // animate.mask = false -> don't animate mask
|
||||||
|
mask.attr('counter', parseInt(mask.attr('counter'))+1);
|
||||||
|
mask.show();
|
||||||
|
} else {
|
||||||
var opacity = mask.css('opacity');
|
var opacity = mask.css('opacity');
|
||||||
mask.css('opacity', 0);
|
mask.css('opacity', 0);
|
||||||
mask.attr('counter', parseInt(mask.attr('counter'))+1);
|
mask.attr('counter', parseInt(mask.attr('counter'))+1);
|
||||||
|
@ -648,9 +651,6 @@ define([
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
mask.css(_getTransformation(opacity));
|
mask.css(_getTransformation(opacity));
|
||||||
}, 1);
|
}, 1);
|
||||||
} else {
|
|
||||||
mask.attr('counter', parseInt(mask.attr('counter'))+1);
|
|
||||||
mask.show();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.NotificationCenter.trigger('modal:show', this);
|
Common.NotificationCenter.trigger('modal:show', this);
|
||||||
|
|
|
@ -252,6 +252,7 @@ define([
|
||||||
ascComment.asc_putUserId(comment.get('userid'));
|
ascComment.asc_putUserId(comment.get('userid'));
|
||||||
ascComment.asc_putUserName(comment.get('username'));
|
ascComment.asc_putUserName(comment.get('username'));
|
||||||
ascComment.asc_putSolved(!comment.get('resolved'));
|
ascComment.asc_putSolved(!comment.get('resolved'));
|
||||||
|
ascComment.asc_putGuid(comment.get('guid'));
|
||||||
|
|
||||||
if (!_.isUndefined(ascComment.asc_putDocumentFlag)) {
|
if (!_.isUndefined(ascComment.asc_putDocumentFlag)) {
|
||||||
ascComment.asc_putDocumentFlag(comment.get('unattached'));
|
ascComment.asc_putDocumentFlag(comment.get('unattached'));
|
||||||
|
@ -344,6 +345,7 @@ define([
|
||||||
ascComment.asc_putUserId(t.currentUserId);
|
ascComment.asc_putUserId(t.currentUserId);
|
||||||
ascComment.asc_putUserName(t.currentUserName);
|
ascComment.asc_putUserName(t.currentUserName);
|
||||||
ascComment.asc_putSolved(comment.get('resolved'));
|
ascComment.asc_putSolved(comment.get('resolved'));
|
||||||
|
ascComment.asc_putGuid(comment.get('guid'));
|
||||||
|
|
||||||
if (!_.isUndefined(ascComment.asc_putDocumentFlag)) {
|
if (!_.isUndefined(ascComment.asc_putDocumentFlag)) {
|
||||||
ascComment.asc_putDocumentFlag(comment.get('unattached'));
|
ascComment.asc_putDocumentFlag(comment.get('unattached'));
|
||||||
|
@ -400,6 +402,7 @@ define([
|
||||||
ascComment.asc_putUserId(comment.get('userid'));
|
ascComment.asc_putUserId(comment.get('userid'));
|
||||||
ascComment.asc_putUserName(comment.get('username'));
|
ascComment.asc_putUserName(comment.get('username'));
|
||||||
ascComment.asc_putSolved(comment.get('resolved'));
|
ascComment.asc_putSolved(comment.get('resolved'));
|
||||||
|
ascComment.asc_putGuid(comment.get('guid'));
|
||||||
|
|
||||||
if (!_.isUndefined(ascComment.asc_putDocumentFlag)) {
|
if (!_.isUndefined(ascComment.asc_putDocumentFlag)) {
|
||||||
ascComment.asc_putDocumentFlag(comment.get('unattached'));
|
ascComment.asc_putDocumentFlag(comment.get('unattached'));
|
||||||
|
@ -462,6 +465,7 @@ define([
|
||||||
ascComment.asc_putUserId(comment.get('userid'));
|
ascComment.asc_putUserId(comment.get('userid'));
|
||||||
ascComment.asc_putUserName(comment.get('username'));
|
ascComment.asc_putUserName(comment.get('username'));
|
||||||
ascComment.asc_putSolved(comment.get('resolved'));
|
ascComment.asc_putSolved(comment.get('resolved'));
|
||||||
|
ascComment.asc_putGuid(comment.get('guid'));
|
||||||
|
|
||||||
if (!_.isUndefined(ascComment.asc_putDocumentFlag)) {
|
if (!_.isUndefined(ascComment.asc_putDocumentFlag)) {
|
||||||
ascComment.asc_putDocumentFlag(comment.get('unattached'));
|
ascComment.asc_putDocumentFlag(comment.get('unattached'));
|
||||||
|
@ -495,6 +499,7 @@ define([
|
||||||
ascComment.asc_addReply(addReply);
|
ascComment.asc_addReply(addReply);
|
||||||
|
|
||||||
me.api.asc_changeComment(id, ascComment);
|
me.api.asc_changeComment(id, ascComment);
|
||||||
|
me.mode && me.mode.canRequestUsers && me.view.pickEMail(ascComment.asc_getGuid(), replyVal);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -519,6 +524,7 @@ define([
|
||||||
ascComment.asc_putUserId(comment.get('userid'));
|
ascComment.asc_putUserId(comment.get('userid'));
|
||||||
ascComment.asc_putUserName(comment.get('username'));
|
ascComment.asc_putUserName(comment.get('username'));
|
||||||
ascComment.asc_putSolved(comment.get('resolved'));
|
ascComment.asc_putSolved(comment.get('resolved'));
|
||||||
|
ascComment.asc_putGuid(comment.get('guid'));
|
||||||
|
|
||||||
if (!_.isUndefined(ascComment.asc_putDocumentFlag)) {
|
if (!_.isUndefined(ascComment.asc_putDocumentFlag)) {
|
||||||
ascComment.asc_putDocumentFlag(comment.get('unattached'));
|
ascComment.asc_putDocumentFlag(comment.get('unattached'));
|
||||||
|
@ -1125,7 +1131,9 @@ define([
|
||||||
if (_.isUndefined(this.popover)) {
|
if (_.isUndefined(this.popover)) {
|
||||||
this.popover = Common.Views.ReviewPopover.prototype.getPopover({
|
this.popover = Common.Views.ReviewPopover.prototype.getPopover({
|
||||||
commentsStore : this.popoverComments,
|
commentsStore : this.popoverComments,
|
||||||
renderTo : this.sdkViewName
|
renderTo : this.sdkViewName,
|
||||||
|
canRequestUsers: (this.mode) ? this.mode.canRequestUsers : undefined,
|
||||||
|
canRequestSendNotify: (this.mode) ? this.mode.canRequestSendNotify : undefined
|
||||||
});
|
});
|
||||||
this.popover.setCommentsStore(this.popoverComments);
|
this.popover.setCommentsStore(this.popoverComments);
|
||||||
}
|
}
|
||||||
|
@ -1190,6 +1198,7 @@ define([
|
||||||
groupname = id.substr(0, id.lastIndexOf('_')+1).match(/^(doc|sheet[0-9_]+)_/);
|
groupname = id.substr(0, id.lastIndexOf('_')+1).match(/^(doc|sheet[0-9_]+)_/);
|
||||||
var comment = new Common.Models.Comment({
|
var comment = new Common.Models.Comment({
|
||||||
uid : id,
|
uid : id,
|
||||||
|
guid : data.asc_getGuid(),
|
||||||
userid : data.asc_getUserId(),
|
userid : data.asc_getUserId(),
|
||||||
username : data.asc_getUserName(),
|
username : data.asc_getUserName(),
|
||||||
usercolor : (user) ? user.get('color') : null,
|
usercolor : (user) ? user.get('color') : null,
|
||||||
|
@ -1345,7 +1354,7 @@ define([
|
||||||
|
|
||||||
this.api.asc_addComment(comment);
|
this.api.asc_addComment(comment);
|
||||||
this.view.showEditContainer(false);
|
this.view.showEditContainer(false);
|
||||||
|
this.mode && this.mode.canRequestUsers && this.view.pickEMail(comment.asc_getGuid(), commentVal);
|
||||||
if (!_.isUndefined(this.api.asc_SetDocumentPlaceChangedEnabled)) {
|
if (!_.isUndefined(this.api.asc_SetDocumentPlaceChangedEnabled)) {
|
||||||
this.api.asc_SetDocumentPlaceChangedEnabled(false);
|
this.api.asc_SetDocumentPlaceChangedEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
|
@ -125,6 +125,12 @@ define([
|
||||||
if ( opts == 'preloader:hide' ) {
|
if ( opts == 'preloader:hide' ) {
|
||||||
app.execCommand('editor:onready', '');
|
app.execCommand('editor:onready', '');
|
||||||
return true;
|
return true;
|
||||||
|
} else
|
||||||
|
if ( opts == 'create:new' ) {
|
||||||
|
if (config.createUrl == 'desktop://create.new') {
|
||||||
|
app.LocalFileCreate(!!window.SSE ? 2 : !!window.PE ? 1 : 0);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -48,10 +48,10 @@ define([
|
||||||
'common/main/lib/collection/Fonts'
|
'common/main/lib/collection/Fonts'
|
||||||
], function () { 'use strict';
|
], function () { 'use strict';
|
||||||
Common.Controllers.Fonts = Backbone.Controller.extend((function() {
|
Common.Controllers.Fonts = Backbone.Controller.extend((function() {
|
||||||
var FONT_TYPE_USERUSED = 4;
|
var FONT_TYPE_RECENT = 4;
|
||||||
|
|
||||||
function isFontSaved(store, rec) {
|
function isFontSaved(store, rec) {
|
||||||
var out = rec.get('type') == FONT_TYPE_USERUSED,
|
var out = rec.get('type') == FONT_TYPE_RECENT,
|
||||||
i = -1,
|
i = -1,
|
||||||
c = store.length,
|
c = store.length,
|
||||||
su,
|
su,
|
||||||
|
@ -59,7 +59,7 @@ define([
|
||||||
while (!out && ++i < c) {
|
while (!out && ++i < c) {
|
||||||
su = store.at(i);
|
su = store.at(i);
|
||||||
|
|
||||||
if (su.get('type') != FONT_TYPE_USERUSED)
|
if (su.get('type') != FONT_TYPE_RECENT)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
out = su.get('name') == n;
|
out = su.get('name') == n;
|
||||||
|
@ -78,7 +78,7 @@ define([
|
||||||
// name: data.name,
|
// name: data.name,
|
||||||
// imgidx: data.imgidx,
|
// imgidx: data.imgidx,
|
||||||
// cloneid: node.querySelector('img').id,
|
// cloneid: node.querySelector('img').id,
|
||||||
// type: FONT_TYPE_USERUSED
|
// type: FONT_TYPE_RECENT
|
||||||
// };
|
// };
|
||||||
// combo.getStore().insert(0,[font]);
|
// combo.getStore().insert(0,[font]);
|
||||||
//
|
//
|
||||||
|
@ -93,7 +93,7 @@ define([
|
||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
// font = combo.getStore().getAt(5);
|
// font = combo.getStore().getAt(5);
|
||||||
// if (font.data.type==FONT_TYPE_USERUSED) {
|
// if (font.data.type==FONT_TYPE_RECENT) {
|
||||||
// combo.getStore().remove(font);
|
// combo.getStore().remove(font);
|
||||||
// } else {
|
// } else {
|
||||||
// var plugin = combo.getPlugin('scrollpane');
|
// var plugin = combo.getPlugin('scrollpane');
|
||||||
|
|
|
@ -113,7 +113,7 @@ define([
|
||||||
Common.Gateway.requestRestore(record.get('revision'));
|
Common.Gateway.requestRestore(record.get('revision'));
|
||||||
else {
|
else {
|
||||||
this.isFromSelectRevision = record.get('revision');
|
this.isFromSelectRevision = record.get('revision');
|
||||||
this.api.asc_DownloadAs(Asc.c_oAscFileType.DOCX, true);
|
this.api.asc_DownloadAs(new Asc.asc_CDownloadOptions(Asc.c_oAscFileType.DOCX, true));
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,6 +45,9 @@ define([
|
||||||
|
|
||||||
Common.Controllers.Plugins = Backbone.Controller.extend(_.extend({
|
Common.Controllers.Plugins = Backbone.Controller.extend(_.extend({
|
||||||
models: [],
|
models: [],
|
||||||
|
appOptions: {},
|
||||||
|
configPlugins: {autostart:[]},// {config: 'from editor config', plugins: 'loaded plugins', UIplugins: 'loaded customization plugins', autostart: 'autostart guids'}
|
||||||
|
serverPlugins: {autostart:[]},// {config: 'from editor config', plugins: 'loaded plugins', autostart: 'autostart guids'}
|
||||||
collections: [
|
collections: [
|
||||||
'Common.Collections.Plugins'
|
'Common.Collections.Plugins'
|
||||||
],
|
],
|
||||||
|
@ -95,7 +98,54 @@ define([
|
||||||
|
|
||||||
|
|
||||||
this._moveOffset = {x:0, y:0};
|
this._moveOffset = {x:0, y:0};
|
||||||
this.autostart = null;
|
this.autostart = [];
|
||||||
|
|
||||||
|
Common.Gateway.on('init', this.loadConfig.bind(this));
|
||||||
|
Common.NotificationCenter.on('app:face', this.onAppShowed.bind(this));
|
||||||
|
},
|
||||||
|
|
||||||
|
loadConfig: function(data) {
|
||||||
|
var me = this;
|
||||||
|
me.configPlugins.config = data.config.plugins;
|
||||||
|
me.editor = !!window.DE ? 'word' : !!window.PE ? 'slide' : 'cell';
|
||||||
|
},
|
||||||
|
|
||||||
|
loadPlugins: function() {
|
||||||
|
if (this.configPlugins.config) {
|
||||||
|
this.getPlugins(this.configPlugins.config.pluginsData)
|
||||||
|
.then(function(loaded)
|
||||||
|
{
|
||||||
|
me.configPlugins.plugins = loaded;
|
||||||
|
me.mergePlugins();
|
||||||
|
})
|
||||||
|
.catch(function(err)
|
||||||
|
{
|
||||||
|
me.configPlugins.plugins = false;
|
||||||
|
});
|
||||||
|
} else
|
||||||
|
this.configPlugins.plugins = false;
|
||||||
|
|
||||||
|
var server_plugins_url = '../../../../plugins.json',
|
||||||
|
me = this;
|
||||||
|
Common.Utils.loadConfig(server_plugins_url, function (obj) {
|
||||||
|
if ( obj != 'error' ) {
|
||||||
|
me.serverPlugins.config = obj;
|
||||||
|
me.getPlugins(me.serverPlugins.config.pluginsData)
|
||||||
|
.then(function(loaded)
|
||||||
|
{
|
||||||
|
me.serverPlugins.plugins = loaded;
|
||||||
|
me.mergePlugins();
|
||||||
|
})
|
||||||
|
.catch(function(err)
|
||||||
|
{
|
||||||
|
me.serverPlugins.plugins = false;
|
||||||
|
});
|
||||||
|
} else
|
||||||
|
me.serverPlugins.plugins = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
onAppShowed: function (config) {
|
||||||
},
|
},
|
||||||
|
|
||||||
setApi: function(api) {
|
setApi: function(api) {
|
||||||
|
@ -106,14 +156,18 @@ define([
|
||||||
this.api.asc_registerCallback("asc_onPluginResize", _.bind(this.onPluginResize, this));
|
this.api.asc_registerCallback("asc_onPluginResize", _.bind(this.onPluginResize, this));
|
||||||
this.api.asc_registerCallback("asc_onPluginMouseUp", _.bind(this.onPluginMouseUp, this));
|
this.api.asc_registerCallback("asc_onPluginMouseUp", _.bind(this.onPluginMouseUp, this));
|
||||||
this.api.asc_registerCallback("asc_onPluginMouseMove", _.bind(this.onPluginMouseMove, this));
|
this.api.asc_registerCallback("asc_onPluginMouseMove", _.bind(this.onPluginMouseMove, this));
|
||||||
|
this.api.asc_registerCallback('asc_onPluginsReset', _.bind(this.resetPluginsList, this));
|
||||||
|
this.api.asc_registerCallback('asc_onPluginsInit', _.bind(this.onPluginsInit, this));
|
||||||
|
|
||||||
|
this.loadPlugins();
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
|
|
||||||
setMode: function(mode) {
|
setMode: function(mode) {
|
||||||
if (mode.canPlugins) {
|
this.appOptions = mode;
|
||||||
this.updatePluginsList();
|
this.customPluginsComplete = !this.appOptions.canBrandingExt;
|
||||||
}
|
if (this.appOptions.canBrandingExt)
|
||||||
|
this.getAppCustomPlugins(this.configPlugins);
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -138,7 +192,7 @@ define([
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
updatePluginsList: function() {
|
refreshPluginsList: function() {
|
||||||
var me = this;
|
var me = this;
|
||||||
var storePlugins = this.getApplication().getCollection('Common.Collections.Plugins'),
|
var storePlugins = this.getApplication().getCollection('Common.Collections.Plugins'),
|
||||||
arr = [];
|
arr = [];
|
||||||
|
@ -147,6 +201,7 @@ define([
|
||||||
plugin.set_Name(item.get('name'));
|
plugin.set_Name(item.get('name'));
|
||||||
plugin.set_Guid(item.get('guid'));
|
plugin.set_Guid(item.get('guid'));
|
||||||
plugin.set_BaseUrl(item.get('baseUrl'));
|
plugin.set_BaseUrl(item.get('baseUrl'));
|
||||||
|
|
||||||
var variations = item.get('variations'),
|
var variations = item.get('variations'),
|
||||||
variationsArr = [];
|
variationsArr = [];
|
||||||
variations.forEach(function(itemVar){
|
variations.forEach(function(itemVar){
|
||||||
|
@ -168,8 +223,10 @@ define([
|
||||||
variation.set_Size(itemVar.get('size'));
|
variation.set_Size(itemVar.get('size'));
|
||||||
variation.set_InitOnSelectionChanged(itemVar.get('initOnSelectionChanged'));
|
variation.set_InitOnSelectionChanged(itemVar.get('initOnSelectionChanged'));
|
||||||
variation.set_Events(itemVar.get('events'));
|
variation.set_Events(itemVar.get('events'));
|
||||||
|
|
||||||
variationsArr.push(variation);
|
variationsArr.push(variation);
|
||||||
});
|
});
|
||||||
|
|
||||||
plugin.set_Variations(variationsArr);
|
plugin.set_Variations(variationsArr);
|
||||||
item.set('pluginObj', plugin);
|
item.set('pluginObj', plugin);
|
||||||
arr.push(plugin);
|
arr.push(plugin);
|
||||||
|
@ -193,6 +250,7 @@ define([
|
||||||
|
|
||||||
onResetPlugins: function (collection) {
|
onResetPlugins: function (collection) {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
me.appOptions.canPlugins = !collection.isEmpty();
|
||||||
if ( me.$toolbarPanelPlugins ) {
|
if ( me.$toolbarPanelPlugins ) {
|
||||||
me.$toolbarPanelPlugins.empty();
|
me.$toolbarPanelPlugins.empty();
|
||||||
|
|
||||||
|
@ -217,6 +275,8 @@ define([
|
||||||
rank = new_rank;
|
rank = new_rank;
|
||||||
});
|
});
|
||||||
_group.appendTo(me.$toolbarPanelPlugins);
|
_group.appendTo(me.$toolbarPanelPlugins);
|
||||||
|
} else {
|
||||||
|
console.error('toolbar panel isnot created');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -357,7 +417,7 @@ define([
|
||||||
else if (this.panelPlugins.iframePlugin)
|
else if (this.panelPlugins.iframePlugin)
|
||||||
this.panelPlugins.closeInsideMode();
|
this.panelPlugins.closeInsideMode();
|
||||||
this.panelPlugins.closedPluginMode(plugin.get_Guid());
|
this.panelPlugins.closedPluginMode(plugin.get_Guid());
|
||||||
this.runAutoStartPlugins(this.autostart);
|
this.runAutoStartPlugins();
|
||||||
},
|
},
|
||||||
|
|
||||||
onPluginResize: function(size, minSize, maxSize, callback ) {
|
onPluginResize: function(size, minSize, maxSize, callback ) {
|
||||||
|
@ -396,13 +456,229 @@ define([
|
||||||
Common.NotificationCenter.trigger('frame:mousemove', { pageX: x*Common.Utils.zoom()+this._moveOffset.x, pageY: y*Common.Utils.zoom()+this._moveOffset.y });
|
Common.NotificationCenter.trigger('frame:mousemove', { pageX: x*Common.Utils.zoom()+this._moveOffset.x, pageY: y*Common.Utils.zoom()+this._moveOffset.y });
|
||||||
},
|
},
|
||||||
|
|
||||||
runAutoStartPlugins: function(autostart) {
|
onPluginsInit: function(pluginsdata) {
|
||||||
if (autostart && autostart.length>0) {
|
!(pluginsdata instanceof Array) && (pluginsdata = pluginsdata["pluginsData"]);
|
||||||
var guid = autostart.shift();
|
this.parsePlugins(pluginsdata)
|
||||||
this.autostart = autostart;
|
},
|
||||||
this.api.asc_pluginRun(guid, 0, '');
|
|
||||||
|
runAutoStartPlugins: function() {
|
||||||
|
if (this.autostart && this.autostart.length > 0) {
|
||||||
|
this.api.asc_pluginRun(this.autostart.shift(), 0, '');
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
resetPluginsList: function() {
|
||||||
|
this.getApplication().getCollection('Common.Collections.Plugins').reset();
|
||||||
|
},
|
||||||
|
|
||||||
|
applyUICustomization: function () {
|
||||||
|
var me = this;
|
||||||
|
return new Promise(function(resolve, reject) {
|
||||||
|
var timer_sl = setInterval(function() {
|
||||||
|
if ( me.customPluginsComplete ) {
|
||||||
|
clearInterval(timer_sl);
|
||||||
|
try {
|
||||||
|
me.configPlugins.UIplugins && me.configPlugins.UIplugins.forEach(function (c) {
|
||||||
|
if ( c.code ) eval(c.code);
|
||||||
|
});
|
||||||
|
} catch (e) {}
|
||||||
|
resolve();
|
||||||
|
}
|
||||||
|
}, 10);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
parsePlugins: function(pluginsdata, uiCustomize) {
|
||||||
|
var me = this;
|
||||||
|
var pluginStore = this.getApplication().getCollection('Common.Collections.Plugins'),
|
||||||
|
isEdit = me.appOptions.isEdit,
|
||||||
|
editor = me.editor;
|
||||||
|
if ( pluginsdata instanceof Array ) {
|
||||||
|
var arr = [], arrUI = [],
|
||||||
|
lang = me.appOptions.lang.split(/[\-_]/)[0];
|
||||||
|
pluginsdata.forEach(function(item){
|
||||||
|
if ( arr.some(function(i) {
|
||||||
|
return (i.get('baseUrl') == item.baseUrl || i.get('guid') == item.guid);
|
||||||
|
}
|
||||||
|
) || pluginStore.findWhere({baseUrl: item.baseUrl}) || pluginStore.findWhere({guid: item.guid}))
|
||||||
|
{
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var variationsArr = [],
|
||||||
|
pluginVisible = false;
|
||||||
|
item.variations.forEach(function(itemVar){
|
||||||
|
var visible = (isEdit || itemVar.isViewer && (itemVar.isDisplayedInViewer!==false)) && _.contains(itemVar.EditorsSupport, editor) && !itemVar.isSystem;
|
||||||
|
if ( visible ) pluginVisible = true;
|
||||||
|
|
||||||
|
if (item.isUICustomizer ) {
|
||||||
|
visible && arrUI.push({
|
||||||
|
url: item.baseUrl + itemVar.url
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
var model = new Common.Models.PluginVariation(itemVar);
|
||||||
|
var description = itemVar.description;
|
||||||
|
if (typeof itemVar.descriptionLocale == 'object')
|
||||||
|
description = itemVar.descriptionLocale[lang] || itemVar.descriptionLocale['en'] || description || '';
|
||||||
|
|
||||||
|
_.each(itemVar.buttons, function(b, index){
|
||||||
|
if (typeof b.textLocale == 'object')
|
||||||
|
b.text = b.textLocale[lang] || b.textLocale['en'] || b.text || '';
|
||||||
|
b.visible = (isEdit || b.isViewer !== false);
|
||||||
|
});
|
||||||
|
|
||||||
|
model.set({
|
||||||
|
description: description,
|
||||||
|
index: variationsArr.length,
|
||||||
|
url: itemVar.url,
|
||||||
|
icons: itemVar.icons,
|
||||||
|
buttons: itemVar.buttons,
|
||||||
|
visible: visible
|
||||||
|
});
|
||||||
|
|
||||||
|
variationsArr.push(model);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (variationsArr.length > 0 && !item.isUICustomizer) {
|
||||||
|
var name = item.name;
|
||||||
|
if (typeof item.nameLocale == 'object')
|
||||||
|
name = item.nameLocale[lang] || item.nameLocale['en'] || name || '';
|
||||||
|
|
||||||
|
arr.push(new Common.Models.Plugin({
|
||||||
|
name : name,
|
||||||
|
guid: item.guid,
|
||||||
|
baseUrl : item.baseUrl,
|
||||||
|
variations: variationsArr,
|
||||||
|
currentVariation: 0,
|
||||||
|
visible: pluginVisible,
|
||||||
|
groupName: (item.group) ? item.group.name : '',
|
||||||
|
groupRank: (item.group) ? item.group.rank : 0
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if ( uiCustomize!==false ) // from ui customizer in editor config or desktop event
|
||||||
|
me.configPlugins.UIplugins = arrUI;
|
||||||
|
|
||||||
|
if ( !uiCustomize && pluginStore)
|
||||||
|
{
|
||||||
|
arr = pluginStore.models.concat(arr);
|
||||||
|
arr.sort(function(a, b){
|
||||||
|
var rank_a = a.get('groupRank'),
|
||||||
|
rank_b = b.get('groupRank');
|
||||||
|
if (rank_a < rank_b)
|
||||||
|
return (rank_a==0) ? 1 : -1;
|
||||||
|
if (rank_a > rank_b)
|
||||||
|
return (rank_b==0) ? -1 : 1;
|
||||||
|
return 0;
|
||||||
|
});
|
||||||
|
pluginStore.reset(arr);
|
||||||
|
this.appOptions.canPlugins = !pluginStore.isEmpty();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (!uiCustomize){
|
||||||
|
this.appOptions.canPlugins = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!uiCustomize)
|
||||||
|
this.getApplication().getController('LeftMenu').enablePlugins();
|
||||||
|
|
||||||
|
if (this.appOptions.canPlugins) {
|
||||||
|
this.refreshPluginsList();
|
||||||
|
this.runAutoStartPlugins();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
getPlugins: function(pluginsData, fetchFunction) {
|
||||||
|
if (!pluginsData || pluginsData.length<1)
|
||||||
|
return Promise.resolve([]);
|
||||||
|
|
||||||
|
fetchFunction = fetchFunction || function (url) {
|
||||||
|
return fetch(url)
|
||||||
|
.then(function(response) {
|
||||||
|
if ( response.ok ) return response.json();
|
||||||
|
else return Promise.reject(url);
|
||||||
|
}).then(function(json) {
|
||||||
|
json.baseUrl = url.substring(0, url.lastIndexOf("config.json"));
|
||||||
|
return json;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
var loaded = [];
|
||||||
|
return pluginsData.map(fetchFunction).reduce(function (previousPromise, currentPromise) {
|
||||||
|
return previousPromise
|
||||||
|
.then(function()
|
||||||
|
{
|
||||||
|
return currentPromise;
|
||||||
|
})
|
||||||
|
.then(function(item)
|
||||||
|
{
|
||||||
|
loaded.push(item);
|
||||||
|
return Promise.resolve(item);
|
||||||
|
})
|
||||||
|
.catch(function(item)
|
||||||
|
{
|
||||||
|
return Promise.resolve(item);
|
||||||
|
});
|
||||||
|
|
||||||
|
}, Promise.resolve())
|
||||||
|
.then(function ()
|
||||||
|
{
|
||||||
|
return Promise.resolve(loaded);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
mergePlugins: function() {
|
||||||
|
if (this.serverPlugins.plugins !== undefined && this.configPlugins.plugins !== undefined) { // undefined - plugins are loading
|
||||||
|
var autostart = [],
|
||||||
|
arr = [],
|
||||||
|
plugins = this.configPlugins,
|
||||||
|
warn = false;
|
||||||
|
if (plugins.plugins && plugins.plugins.length>0) {
|
||||||
|
arr = plugins.plugins;
|
||||||
|
var val = plugins.config.autostart || plugins.config.autoStartGuid;
|
||||||
|
if (typeof (val) == 'string')
|
||||||
|
val = [val];
|
||||||
|
warn = !!plugins.config.autoStartGuid;
|
||||||
|
autostart = val || [];
|
||||||
|
}
|
||||||
|
plugins = this.serverPlugins;
|
||||||
|
if (plugins.plugins && plugins.plugins.length>0) {
|
||||||
|
arr = arr.concat(plugins.plugins);
|
||||||
|
var val = plugins.config.autostart || plugins.config.autoStartGuid;
|
||||||
|
if (typeof (val) == 'string')
|
||||||
|
val = [val];
|
||||||
|
(warn || plugins.config.autoStartGuid) && console.warn("Obsolete: The autoStartGuid parameter is deprecated. Please check the documentation for new plugin connection configuration.");
|
||||||
|
autostart = autostart.concat(val || []);
|
||||||
|
}
|
||||||
|
this.autostart = autostart;
|
||||||
|
this.parsePlugins(arr, false);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
getAppCustomPlugins: function (plugins) {
|
||||||
|
var me = this,
|
||||||
|
funcComplete = function() {me.customPluginsComplete = true;};
|
||||||
|
if ( plugins.config ) {
|
||||||
|
this.getPlugins(plugins.config.UIpluginsData)
|
||||||
|
.then(function(loaded)
|
||||||
|
{
|
||||||
|
me.parsePlugins(loaded, true);
|
||||||
|
me.getPlugins(plugins.UIplugins, function(item) {
|
||||||
|
return fetch(item.url)
|
||||||
|
.then(function(response) {
|
||||||
|
if ( response.ok ) return response.text();
|
||||||
|
else return Promise.reject();
|
||||||
|
})
|
||||||
|
.then(function(text) {
|
||||||
|
item.code = text;
|
||||||
|
return text;
|
||||||
|
});
|
||||||
|
}).then(funcComplete, funcComplete);
|
||||||
|
}, funcComplete);
|
||||||
|
} else
|
||||||
|
funcComplete();
|
||||||
|
}
|
||||||
}, Common.Controllers.Plugins || {}));
|
}, Common.Controllers.Plugins || {}));
|
||||||
});
|
});
|
||||||
|
|
|
@ -545,7 +545,7 @@ define([
|
||||||
|
|
||||||
Common.localStorage.setItem(this.view.appPrefix + "settings-spellcheck", state ? 1 : 0);
|
Common.localStorage.setItem(this.view.appPrefix + "settings-spellcheck", state ? 1 : 0);
|
||||||
this.api.asc_setSpellCheck(state);
|
this.api.asc_setSpellCheck(state);
|
||||||
Common.Utils.InternalSettings.set("de-settings-spellcheck", state);
|
Common.Utils.InternalSettings.set(this.view.appPrefix + "settings-spellcheck", state);
|
||||||
},
|
},
|
||||||
|
|
||||||
onReviewViewClick: function(menu, item, e) {
|
onReviewViewClick: function(menu, item, e) {
|
||||||
|
@ -670,13 +670,13 @@ define([
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else if (config.canViewReview) {
|
} else if (config.canViewReview) {
|
||||||
config.canViewReview = me.api.asc_HaveRevisionsChanges(true); // check revisions from all users
|
config.canViewReview = (config.isEdit || me.api.asc_HaveRevisionsChanges(true)); // check revisions from all users
|
||||||
if (config.canViewReview) {
|
if (config.canViewReview) {
|
||||||
var val = Common.localStorage.getItem(me.view.appPrefix + "review-mode");
|
var val = Common.localStorage.getItem(me.view.appPrefix + "review-mode");
|
||||||
if (val===null)
|
if (val===null)
|
||||||
val = me.appConfig.customization && /^(original|final|markup)$/i.test(me.appConfig.customization.reviewDisplay) ? me.appConfig.customization.reviewDisplay.toLocaleLowerCase() : 'original';
|
val = me.appConfig.customization && /^(original|final|markup)$/i.test(me.appConfig.customization.reviewDisplay) ? me.appConfig.customization.reviewDisplay.toLocaleLowerCase() : 'original';
|
||||||
me.turnDisplayMode(config.isRestrictedEdit ? 'markup' : val); // load display mode only in viewer
|
me.turnDisplayMode((config.isEdit || config.isRestrictedEdit) ? 'markup' : val); // load display mode only in viewer
|
||||||
me.view.turnDisplayMode(config.isRestrictedEdit ? 'markup' : val);
|
me.view.turnDisplayMode((config.isEdit || config.isRestrictedEdit) ? 'markup' : val);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -41,8 +41,8 @@
|
||||||
function onDropDownKeyDown(e) {
|
function onDropDownKeyDown(e) {
|
||||||
var $this = $(this),
|
var $this = $(this),
|
||||||
$parent = $this.parent(),
|
$parent = $this.parent(),
|
||||||
beforeEvent = jQuery.Event('keydown.before.bs.dropdown'),
|
beforeEvent = jQuery.Event('keydown.before.bs.dropdown', {keyCode: e.keyCode}),
|
||||||
afterEvent = jQuery.Event('keydown.after.bs.dropdown');
|
afterEvent = jQuery.Event('keydown.after.bs.dropdown', {keyCode: e.keyCode});
|
||||||
|
|
||||||
$parent.trigger(beforeEvent);
|
$parent.trigger(beforeEvent);
|
||||||
|
|
||||||
|
@ -111,17 +111,9 @@ function patchDropDownKeyDown(e) {
|
||||||
var mnu = $('> [role=menu]', li),
|
var mnu = $('> [role=menu]', li),
|
||||||
$subitems = mnu.find('> li:not(.divider):not(.disabled):visible > a'),
|
$subitems = mnu.find('> li:not(.divider):not(.disabled):visible > a'),
|
||||||
$dataviews = mnu.find('> li:not(.divider):not(.disabled):visible .dataview'),
|
$dataviews = mnu.find('> li:not(.divider):not(.disabled):visible .dataview'),
|
||||||
focusIdx = 0;
|
$internal_menu = mnu.find('> li:not(.divider):not(.disabled):visible ul.internal-menu');
|
||||||
if (mnu.find('> .menu-scroll').length>0) {
|
if ($subitems.length>0 && $dataviews.length<1 && $internal_menu.length<1)
|
||||||
var offset = mnu.scrollTop();
|
($subitems.index($subitems.filter(':focus'))<0) && $subitems.eq(0).focus();
|
||||||
for (var i=0; i<$subitems.length; i++) {
|
|
||||||
if ($subitems[i].offsetTop > offset) {
|
|
||||||
focusIdx = i; break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($subitems.length>0 && $dataviews.length<1)
|
|
||||||
$subitems.eq(focusIdx).focus();
|
|
||||||
}, 250);
|
}, 250);
|
||||||
}
|
}
|
||||||
} else if (e.keyCode == 37) { // left
|
} else if (e.keyCode == 37) { // left
|
||||||
|
|
|
@ -53,6 +53,7 @@ define([
|
||||||
Common.Models.Comment = Backbone.Model.extend({
|
Common.Models.Comment = Backbone.Model.extend({
|
||||||
defaults: {
|
defaults: {
|
||||||
uid : 0, // asc
|
uid : 0, // asc
|
||||||
|
guid : '',
|
||||||
userid : 0,
|
userid : 0,
|
||||||
username : 'Guest',
|
username : 'Guest',
|
||||||
usercolor : null,
|
usercolor : null,
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
<div oo_editor_input="true" tabindex="-1" class="user-message user-select"><%=scope.pickLink(comment)%></div>
|
<div oo_editor_input="true" tabindex="-1" class="user-message user-select"><%=scope.pickLink(comment)%></div>
|
||||||
<% } else { %>
|
<% } else { %>
|
||||||
<div class="inner-edit-ct">
|
<div class="inner-edit-ct">
|
||||||
<textarea class="msg-reply user-select" maxlength="maxCommLength" spellcheck="false"><%=comment%></textarea>
|
<textarea class="msg-reply user-select" maxlength="maxCommLength" spellcheck="false" <% if (!!dummy) { %> placeholder="textMention"<% } %>><%=comment%></textarea>
|
||||||
<% if (hideAddReply) { %>
|
<% if (hideAddReply) { %>
|
||||||
<button class="btn normal dlg-btn primary btn-inner-edit" id="id-comments-change-popover">textAdd</button>
|
<button class="btn normal dlg-btn primary btn-inner-edit" id="id-comments-change-popover">textAdd</button>
|
||||||
<% } else { %>
|
<% } else { %>
|
||||||
|
|
|
@ -446,10 +446,12 @@ Common.util.LanguageInfo = new(function() {
|
||||||
},
|
},
|
||||||
|
|
||||||
getLocalLanguageCode: function(name) {
|
getLocalLanguageCode: function(name) {
|
||||||
|
if (name) {
|
||||||
for (var code in localLanguageName) {
|
for (var code in localLanguageName) {
|
||||||
if (localLanguageName[code][0].toLowerCase()===name.toLowerCase())
|
if (localLanguageName[code][0].toLowerCase()===name.toLowerCase())
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -90,6 +90,7 @@ Common.Utils = _.extend(new(function() {
|
||||||
hostnameRe = /^(((https?)|(ftps?)):\/\/)?([\-\wа-яё]*:?[\-\wа-яё]*@)?(([\-\wа-яё]+\.)+[\wа-яё\-]{2,}(:\d+)?(\/[%\-\wа-яё]*(\.[\wа-яё]{2,})?(([\wа-яё\-\.\?\\\/+@&#;:`'~=%!,\(\)]*)(\.[\wа-яё]{2,})?)*)*\/?)/i,
|
hostnameRe = /^(((https?)|(ftps?)):\/\/)?([\-\wа-яё]*:?[\-\wа-яё]*@)?(([\-\wа-яё]+\.)+[\wа-яё\-]{2,}(:\d+)?(\/[%\-\wа-яё]*(\.[\wа-яё]{2,})?(([\wа-яё\-\.\?\\\/+@&#;:`'~=%!,\(\)]*)(\.[\wа-яё]{2,})?)*)*\/?)/i,
|
||||||
localRe = /^(((https?)|(ftps?)):\/\/)([\-\wа-яё]*:?[\-\wа-яё]*@)?(([\-\wа-яё]+)(:\d+)?(\/[%\-\wа-яё]*(\.[\wа-яё]{2,})?(([\wа-яё\-\.\?\\\/+@&#;:`'~=%!,\(\)]*)(\.[\wа-яё]{2,})?)*)*\/?)/i,
|
localRe = /^(((https?)|(ftps?)):\/\/)([\-\wа-яё]*:?[\-\wа-яё]*@)?(([\-\wа-яё]+)(:\d+)?(\/[%\-\wа-яё]*(\.[\wа-яё]{2,})?(([\wа-яё\-\.\?\\\/+@&#;:`'~=%!,\(\)]*)(\.[\wа-яё]{2,})?)*)*\/?)/i,
|
||||||
emailStrongRe = /(mailto:)?([a-z0-9'\._-]+@[a-z0-9\.-]+\.[a-z0-9]{2,4})([a-яё0-9\._%+-=\?:&]*)/ig,
|
emailStrongRe = /(mailto:)?([a-z0-9'\._-]+@[a-z0-9\.-]+\.[a-z0-9]{2,4})([a-яё0-9\._%+-=\?:&]*)/ig,
|
||||||
|
emailAddStrongRe = /(mailto:|\s[@]|\s[+])?([a-z0-9'\._-]+@[a-z0-9\.-]+\.[a-z0-9]{2,4})([a-яё0-9\._%+-=\?:&]*)/ig,
|
||||||
ipStrongRe = /(((https?)|(ftps?)):\/\/([\-\wа-яё]*:?[\-\wа-яё]*@)?)(((1[0-9]{2}|2[0-4][0-9]|25[0-5]|[1-9][0-9]|[0-9])\.){3}(1[0-9]{2}|2[0-4][0-9]|25[0-5]|[1-9][0-9]|[0-9]))(:\d+)?(\/[%\-\wа-яё]*(\.[\wа-яё]{2,})?(([\wа-яё\-\.\?\\\/+@&#;:`~=%!,\(\)]*)(\.[\wа-яё]{2,})?)*)*\/?/ig,
|
ipStrongRe = /(((https?)|(ftps?)):\/\/([\-\wа-яё]*:?[\-\wа-яё]*@)?)(((1[0-9]{2}|2[0-4][0-9]|25[0-5]|[1-9][0-9]|[0-9])\.){3}(1[0-9]{2}|2[0-4][0-9]|25[0-5]|[1-9][0-9]|[0-9]))(:\d+)?(\/[%\-\wа-яё]*(\.[\wа-яё]{2,})?(([\wа-яё\-\.\?\\\/+@&#;:`~=%!,\(\)]*)(\.[\wа-яё]{2,})?)*)*\/?/ig,
|
||||||
hostnameStrongRe = /((((https?)|(ftps?)):\/\/([\-\wа-яё]*:?[\-\wа-яё]*@)?)|(([\-\wа-яё]*:?[\-\wа-яё]*@)?www\.))((([\-\wа-яё]+\.)+[\wа-яё\-]{2,}|([\-\wа-яё]+))(:\d+)?(\/[%\-\wа-яё]*(\.[\wа-яё]{2,})?(([\wа-яё\-\.\?\\\/+@&#;:`~=%!,\(\)]*)(\.[\wа-яё]{2,})?)*)*\/?)/ig,
|
hostnameStrongRe = /((((https?)|(ftps?)):\/\/([\-\wа-яё]*:?[\-\wа-яё]*@)?)|(([\-\wа-яё]*:?[\-\wа-яё]*@)?www\.))((([\-\wа-яё]+\.)+[\wа-яё\-]{2,}|([\-\wа-яё]+))(:\d+)?(\/[%\-\wа-яё]*(\.[\wа-яё]{2,})?(([\wа-яё\-\.\?\\\/+@&#;:`~=%!,\(\)]*)(\.[\wа-яё]{2,})?)*)*\/?)/ig,
|
||||||
documentSettingsType = {
|
documentSettingsType = {
|
||||||
|
@ -207,6 +208,7 @@ Common.Utils = _.extend(new(function() {
|
||||||
hostnameRe: hostnameRe,
|
hostnameRe: hostnameRe,
|
||||||
localRe: localRe,
|
localRe: localRe,
|
||||||
emailStrongRe: emailStrongRe,
|
emailStrongRe: emailStrongRe,
|
||||||
|
emailAddStrongRe: emailAddStrongRe,
|
||||||
ipStrongRe: ipStrongRe,
|
ipStrongRe: ipStrongRe,
|
||||||
hostnameStrongRe: hostnameStrongRe,
|
hostnameStrongRe: hostnameStrongRe,
|
||||||
documentSettingsType: documentSettingsType,
|
documentSettingsType: documentSettingsType,
|
||||||
|
@ -542,6 +544,8 @@ Common.Utils.String = new (function() {
|
||||||
return {
|
return {
|
||||||
format: function(format) {
|
format: function(format) {
|
||||||
var args = _.toArray(arguments).slice(1);
|
var args = _.toArray(arguments).slice(1);
|
||||||
|
if (args.length && typeof args[0] == 'object')
|
||||||
|
args = args[0];
|
||||||
return format.replace(/\{(\d+)\}/g, function(s, i) {
|
return format.replace(/\{(\d+)\}/g, function(s, i) {
|
||||||
return args[i];
|
return args[i];
|
||||||
});
|
});
|
||||||
|
@ -684,16 +688,7 @@ Common.Utils.applyCustomizationPlugins = function(plugins) {
|
||||||
Common.Utils.fillUserInfo = function(info, lang, defname) {
|
Common.Utils.fillUserInfo = function(info, lang, defname) {
|
||||||
var _user = info || {};
|
var _user = info || {};
|
||||||
!_user.id && (_user.id = ('uid-' + Date.now()));
|
!_user.id && (_user.id = ('uid-' + Date.now()));
|
||||||
if (_.isEmpty(_user.name)) {
|
_user.fullname = _.isEmpty(_user.name) ? defname : _user.name;
|
||||||
_.isEmpty(_user.firstname) && _.isEmpty(_user.lastname) && (_user.firstname = defname);
|
|
||||||
if (_.isEmpty(_user.firstname))
|
|
||||||
_user.fullname = _user.lastname;
|
|
||||||
else if (_.isEmpty(_user.lastname))
|
|
||||||
_user.fullname = _user.firstname;
|
|
||||||
else
|
|
||||||
_user.fullname = /^ru/.test(lang) ? _user.lastname + ' ' + _user.firstname : _user.firstname + ' ' + _user.lastname;
|
|
||||||
} else
|
|
||||||
_user.fullname = _user.name;
|
|
||||||
return _user;
|
return _user;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -734,21 +729,18 @@ Common.Utils.getConfigJson = function (url) {
|
||||||
return null;
|
return null;
|
||||||
};
|
};
|
||||||
|
|
||||||
Common.Utils.getConfigJson = function (url) {
|
Common.Utils.loadConfig = function(url, callback) {
|
||||||
if ( url ) {
|
"use strict";
|
||||||
try {
|
|
||||||
var xhrObj = Common.Utils.createXhr();
|
|
||||||
if ( xhrObj ) {
|
|
||||||
xhrObj.open('GET', url, false);
|
|
||||||
xhrObj.send('');
|
|
||||||
|
|
||||||
return JSON.parse(xhrObj.responseText);
|
fetch(url)
|
||||||
}
|
.then(function(response){
|
||||||
} catch (e) {}
|
if ( response.ok )
|
||||||
}
|
return response.json();
|
||||||
|
else return 'error';
|
||||||
return null;
|
}).then(function(json){
|
||||||
}
|
callback(json);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
Common.Utils.asyncCall = function (callback, scope, args) {
|
Common.Utils.asyncCall = function (callback, scope, args) {
|
||||||
(new Promise(function (resolve, reject) {
|
(new Promise(function (resolve, reject) {
|
||||||
|
@ -784,6 +776,76 @@ Common.Utils.InternalSettings = new(function() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Common.Utils.lockControls = function(causes, lock, opts, defControls) {
|
||||||
|
!opts && (opts = {});
|
||||||
|
|
||||||
|
var controls = opts.array || defControls;
|
||||||
|
opts.merge && (controls = _.union(defControls,controls));
|
||||||
|
|
||||||
|
function doLock(cmp, cause) {
|
||||||
|
if ( cmp && _.contains(cmp.options.lock, cause) ) {
|
||||||
|
var index = cmp.keepState.indexOf(cause);
|
||||||
|
if (lock) {
|
||||||
|
if (index < 0) {
|
||||||
|
cmp.keepState.push(cause);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (!(index < 0)) {
|
||||||
|
cmp.keepState.splice(index, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_.each(controls, function(item) {
|
||||||
|
if (item && _.isFunction(item.setDisabled)) {
|
||||||
|
!item.keepState && (item.keepState = []);
|
||||||
|
if (opts.clear && opts.clear.length > 0 && item.keepState.length > 0) {
|
||||||
|
item.keepState = _.difference(item.keepState, opts.clear);
|
||||||
|
}
|
||||||
|
|
||||||
|
_.isArray(causes) ? _.each(causes, function(c) {doLock(item, c)}) : doLock(item, causes);
|
||||||
|
|
||||||
|
if (!(item.keepState.length > 0)) {
|
||||||
|
item.isDisabled() && item.setDisabled(false);
|
||||||
|
} else {
|
||||||
|
!item.isDisabled() && item.setDisabled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
Common.Utils.injectButtons = function($slots, id, iconCls, caption, lock, split, menu, toggle) {
|
||||||
|
var btnsArr = createButtonSet();
|
||||||
|
btnsArr.setDisabled(true);
|
||||||
|
id = id || ("id-toolbar-" + iconCls);
|
||||||
|
$slots.each(function(index, el) {
|
||||||
|
var _cls = 'btn-toolbar';
|
||||||
|
/x-huge/.test(el.className) && (_cls += ' x-huge icon-top');
|
||||||
|
|
||||||
|
var button = new Common.UI.Button({
|
||||||
|
id: id + index,
|
||||||
|
cls: _cls,
|
||||||
|
iconCls: iconCls,
|
||||||
|
caption: caption,
|
||||||
|
split: split || false,
|
||||||
|
menu: menu || false,
|
||||||
|
enableToggle: toggle || false,
|
||||||
|
lock: lock,
|
||||||
|
disabled: true
|
||||||
|
}).render( $slots.eq(index) );
|
||||||
|
|
||||||
|
btnsArr.add(button);
|
||||||
|
});
|
||||||
|
return btnsArr;
|
||||||
|
};
|
||||||
|
|
||||||
|
Common.Utils.injectComponent = function ($slot, cmp) {
|
||||||
|
if (cmp && $slot.length) {
|
||||||
|
cmp.rendered ? $slot.append(cmp.$el) : cmp.render($slot);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
Common.Utils.InternalSettings.set('toolbar-height-tabs', 32);
|
Common.Utils.InternalSettings.set('toolbar-height-tabs', 32);
|
||||||
Common.Utils.InternalSettings.set('toolbar-height-tabs-top-title', 28);
|
Common.Utils.InternalSettings.set('toolbar-height-tabs-top-title', 28);
|
||||||
Common.Utils.InternalSettings.set('toolbar-height-controls', 67);
|
Common.Utils.InternalSettings.set('toolbar-height-controls', 67);
|
||||||
|
|
|
@ -700,6 +700,24 @@ define([
|
||||||
return str_res;
|
return str_res;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
pickEMail: function (commentId, message) {
|
||||||
|
var arr = Common.Utils.String.htmlEncode(message).match(/\B[@+][A-Z0-9._%+-]+@[A-Z0-9._]+\.[A-Z]+\b/gi);
|
||||||
|
arr = _.map(arr, function(str){
|
||||||
|
return str.slice(1, str.length);
|
||||||
|
});
|
||||||
|
(arr.length>0) && Common.Gateway.requestSendNotify({
|
||||||
|
emails: arr,
|
||||||
|
actionId: commentId, // comment id
|
||||||
|
actionLink: {
|
||||||
|
action: {
|
||||||
|
type: "comment",
|
||||||
|
data: commentId
|
||||||
|
}
|
||||||
|
},
|
||||||
|
message: message //comment text
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
textComments : 'Comments',
|
textComments : 'Comments',
|
||||||
textAnonym : 'Guest',
|
textAnonym : 'Guest',
|
||||||
textAddCommentToDoc : 'Add Comment to Document',
|
textAddCommentToDoc : 'Add Comment to Document',
|
||||||
|
|
|
@ -85,7 +85,7 @@ define([
|
||||||
this.cmbLanguage = new Common.UI.ComboBox({
|
this.cmbLanguage = new Common.UI.ComboBox({
|
||||||
el: $window.find('#id-document-language'),
|
el: $window.find('#id-document-language'),
|
||||||
cls: 'input-group-nr',
|
cls: 'input-group-nr',
|
||||||
menuStyle: 'min-width: 318px; max-height: 300px;',
|
menuStyle: 'min-width: 318px; max-height: 285px;',
|
||||||
editable: false,
|
editable: false,
|
||||||
template: _.template([
|
template: _.template([
|
||||||
'<span class="input-group combobox <%= cls %> combo-langs" id="<%= id %>" style="<%= style %>">',
|
'<span class="input-group combobox <%= cls %> combo-langs" id="<%= id %>" style="<%= style %>">',
|
||||||
|
@ -104,7 +104,8 @@ define([
|
||||||
'</ul>',
|
'</ul>',
|
||||||
'</span>'
|
'</span>'
|
||||||
].join('')),
|
].join('')),
|
||||||
data: this.options.languages
|
data: this.options.languages,
|
||||||
|
search: true
|
||||||
});
|
});
|
||||||
|
|
||||||
if (this.cmbLanguage.scroller) this.cmbLanguage.scroller.update({alwaysVisibleY: true});
|
if (this.cmbLanguage.scroller) this.cmbLanguage.scroller.update({alwaysVisibleY: true});
|
||||||
|
@ -130,8 +131,8 @@ define([
|
||||||
},
|
},
|
||||||
|
|
||||||
onLangSelect: function(cmb, rec, e) {
|
onLangSelect: function(cmb, rec, e) {
|
||||||
cmb.$el.find('.input-icon').toggleClass('spellcheck-lang', rec.spellcheck);
|
cmb.$el.find('.input-icon').toggleClass('spellcheck-lang', rec && rec.spellcheck);
|
||||||
cmb._input.css('padding-left', rec.spellcheck ? 25 : 3);
|
cmb._input.css('padding-left', rec && rec.spellcheck ? 25 : 3);
|
||||||
},
|
},
|
||||||
|
|
||||||
onPrimary: function() {
|
onPrimary: function() {
|
||||||
|
|
|
@ -339,14 +339,14 @@ define([
|
||||||
|
|
||||||
switch (this.type) {
|
switch (this.type) {
|
||||||
case Common.Utils.importTextType.CSV:
|
case Common.Utils.importTextType.CSV:
|
||||||
this.api.asc_decodeBuffer(this.preview, new Asc.asc_CCSVAdvancedOptions(encoding, delimiter, delimiterChar), _.bind(this.previewCallback, this));
|
this.api.asc_decodeBuffer(this.preview, new Asc.asc_CTextOptions(encoding, delimiter, delimiterChar), _.bind(this.previewCallback, this));
|
||||||
break;
|
break;
|
||||||
case Common.Utils.importTextType.TXT:
|
case Common.Utils.importTextType.TXT:
|
||||||
this.api.asc_decodeBuffer(this.preview, new Asc.asc_CTXTAdvancedOptions(encoding), _.bind(this.previewCallback, this));
|
this.api.asc_decodeBuffer(this.preview, new Asc.asc_CTextOptions(encoding), _.bind(this.previewCallback, this));
|
||||||
break;
|
break;
|
||||||
case Common.Utils.importTextType.Paste:
|
case Common.Utils.importTextType.Paste:
|
||||||
case Common.Utils.importTextType.Columns:
|
case Common.Utils.importTextType.Columns:
|
||||||
this.api.asc_TextImport(new Asc.asc_CCSVAdvancedOptions(encoding, delimiter, delimiterChar), _.bind(this.previewCallback, this), this.type == Common.Utils.importTextType.Paste);
|
this.api.asc_TextImport(new Asc.asc_CTextOptions(encoding, delimiter, delimiterChar), _.bind(this.previewCallback, this), this.type == Common.Utils.importTextType.Paste);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -426,6 +426,7 @@ define([
|
||||||
|
|
||||||
onCmbDelimiterSelect: function(combo, record){
|
onCmbDelimiterSelect: function(combo, record){
|
||||||
this.inputDelimiter.setVisible(record.value == -1);
|
this.inputDelimiter.setVisible(record.value == -1);
|
||||||
|
(record.value == -1) && this.inputDelimiter.cmpEl.find('input').focus();
|
||||||
if (this.preview)
|
if (this.preview)
|
||||||
this.updatePreview();
|
this.updatePreview();
|
||||||
},
|
},
|
||||||
|
|
|
@ -100,14 +100,23 @@ define([
|
||||||
|
|
||||||
this.commentsStore = options.commentsStore;
|
this.commentsStore = options.commentsStore;
|
||||||
this.reviewStore = options.reviewStore;
|
this.reviewStore = options.reviewStore;
|
||||||
|
this.canRequestUsers = options.canRequestUsers;
|
||||||
|
this.canRequestSendNotify = options.canRequestSendNotify;
|
||||||
|
this.externalUsers = [];
|
||||||
this._state = {commentsVisible: false, reviewVisible: false};
|
this._state = {commentsVisible: false, reviewVisible: false};
|
||||||
|
|
||||||
_options.tpl = _.template(this.template)(_options);
|
_options.tpl = _.template(this.template)(_options);
|
||||||
|
|
||||||
this.arrow = {margin: 20, width: 12, height: 34};
|
this.arrow = {margin: 20, width: 10, height: 30};
|
||||||
this.sdkBounds = {width: 0, height: 0, padding: 10, paddingTop: 20};
|
this.sdkBounds = {width: 0, height: 0, padding: 10, paddingTop: 20};
|
||||||
|
|
||||||
Common.UI.Window.prototype.initialize.call(this, _options);
|
Common.UI.Window.prototype.initialize.call(this, _options);
|
||||||
|
|
||||||
|
if (this.canRequestUsers) {
|
||||||
|
Common.Gateway.on('setusers', _.bind(this.setUsers, this));
|
||||||
|
Common.NotificationCenter.on('mentions:clearusers', _.bind(this.clearUsers, this));
|
||||||
|
}
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
render: function (comments, review) {
|
render: function (comments, review) {
|
||||||
|
@ -234,7 +243,8 @@ define([
|
||||||
textEdit: me.textEdit,
|
textEdit: me.textEdit,
|
||||||
textReply: me.textReply,
|
textReply: me.textReply,
|
||||||
textClose: me.textClose,
|
textClose: me.textClose,
|
||||||
maxCommLength: Asc.c_oAscMaxCellOrCommentLength
|
maxCommLength: Asc.c_oAscMaxCellOrCommentLength,
|
||||||
|
textMention: me.canRequestSendNotify ? me.textMention : ''
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
});
|
});
|
||||||
|
@ -457,6 +467,25 @@ define([
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this.emailMenu = new Common.UI.Menu({
|
||||||
|
maxHeight: 190,
|
||||||
|
cyclic: false,
|
||||||
|
items: []
|
||||||
|
}).on('render:after', function(mnu) {
|
||||||
|
this.scroller = new Common.UI.Scroller({
|
||||||
|
el: $(this.el).find('.dropdown-menu '),
|
||||||
|
useKeyboard: this.enableKeyEvents && !this.handleSelect,
|
||||||
|
minScrollbarLength : 40,
|
||||||
|
alwaysVisibleY: true
|
||||||
|
});
|
||||||
|
}).on('show:after', function () {
|
||||||
|
this.scroller.update({alwaysVisibleY: true});
|
||||||
|
me.$window.css({zIndex: '1001'});
|
||||||
|
}).on('hide:after', function () {
|
||||||
|
me.$window.css({zIndex: '990'});
|
||||||
|
});
|
||||||
|
|
||||||
me.on({
|
me.on({
|
||||||
'show': function () {
|
'show': function () {
|
||||||
me.commentsView.autoHeightTextBox();
|
me.commentsView.autoHeightTextBox();
|
||||||
|
@ -753,6 +782,10 @@ define([
|
||||||
topPos = Math.min(sdkBoundsTop + sdkBoundsHeight - outerHeight, this.arrowPosY + sdkBoundsTop - this.arrow.height);
|
topPos = Math.min(sdkBoundsTop + sdkBoundsHeight - outerHeight, this.arrowPosY + sdkBoundsTop - this.arrow.height);
|
||||||
topPos = Math.max(topPos, sdkBoundsTopPos);
|
topPos = Math.max(topPos, sdkBoundsTopPos);
|
||||||
|
|
||||||
|
if (parseInt(arrowView.css('top')) + this.arrow.height > outerHeight) {
|
||||||
|
arrowView.css({top: (outerHeight-this.arrow.height) + 'px'});
|
||||||
|
}
|
||||||
|
|
||||||
this.$window.css('top', topPos + 'px');
|
this.$window.css('top', topPos + 'px');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -821,7 +854,7 @@ define([
|
||||||
commentsView.css({height: sdkBoundsHeight - sdkPanelHeight - 3 + 'px'});
|
commentsView.css({height: sdkBoundsHeight - sdkPanelHeight - 3 + 'px'});
|
||||||
|
|
||||||
// arrowPosY = Math.max(this.arrow.margin, this.arrowPosY - sdkPanelHeight - this.arrow.width);
|
// arrowPosY = Math.max(this.arrow.margin, this.arrowPosY - sdkPanelHeight - this.arrow.width);
|
||||||
arrowPosY = Math.min(arrowPosY, sdkBoundsHeight - (sdkPanelHeight + this.arrow.margin + this.arrow.width));
|
arrowPosY = Math.min(arrowPosY, sdkBoundsHeight - (sdkPanelHeight + this.arrow.margin + this.arrow.height));
|
||||||
|
|
||||||
arrowView.css({top: arrowPosY + 'px'});
|
arrowView.css({top: arrowPosY + 'px'});
|
||||||
this.scroller.scrollTop(scrollPos);
|
this.scroller.scrollTop(scrollPos);
|
||||||
|
@ -838,8 +871,8 @@ define([
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
arrowPosY = Math.max(this.arrow.margin, this.arrowPosY - (sdkBoundsHeight - outerHeight) - this.arrow.width);
|
arrowPosY = Math.max(this.arrow.margin, this.arrowPosY - (sdkBoundsHeight - outerHeight) - this.arrow.height);
|
||||||
arrowPosY = Math.min(arrowPosY, outerHeight - this.arrow.margin - this.arrow.width);
|
arrowPosY = Math.min(arrowPosY, outerHeight - this.arrow.margin - this.arrow.height);
|
||||||
|
|
||||||
arrowView.css({top: arrowPosY + 'px'});
|
arrowView.css({top: arrowPosY + 'px'});
|
||||||
}
|
}
|
||||||
|
@ -918,6 +951,47 @@ define([
|
||||||
|
|
||||||
me.e = event;
|
me.e = event;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (this.canRequestUsers) {
|
||||||
|
textBox && textBox.keydown(function (event) {
|
||||||
|
if ( event.keyCode == Common.UI.Keys.SPACE ||
|
||||||
|
event.keyCode == Common.UI.Keys.HOME || event.keyCode == Common.UI.Keys.END || event.keyCode == Common.UI.Keys.RIGHT ||
|
||||||
|
event.keyCode == Common.UI.Keys.LEFT || event.keyCode == Common.UI.Keys.UP) {
|
||||||
|
// hide email menu
|
||||||
|
me.onEmailListMenu();
|
||||||
|
} else if (event.keyCode == Common.UI.Keys.DOWN) {
|
||||||
|
if (me.emailMenu && me.emailMenu.rendered && me.emailMenu.isVisible())
|
||||||
|
_.delay(function() {
|
||||||
|
var selected = me.emailMenu.cmpEl.find('li:not(.divider):first');
|
||||||
|
selected = selected.find('a');
|
||||||
|
selected.focus();
|
||||||
|
}, 10);
|
||||||
|
}
|
||||||
|
me.e = event;
|
||||||
|
});
|
||||||
|
textBox && textBox.on('input', function (event) {
|
||||||
|
var $this = $(this),
|
||||||
|
start = this.selectionStart,
|
||||||
|
val = $this.val().replace(/[\n]$/, ""),
|
||||||
|
left = 0, right = val.length-1;
|
||||||
|
for (var i=start-1; i>=0; i--) {
|
||||||
|
if (val.charCodeAt(i) == 32 /*space*/ || val.charCodeAt(i) == 13 || val.charCodeAt(i) == 10 || val.charCodeAt(i) == 9) {
|
||||||
|
left = i+1; break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (var i=start; i<=right; i++) {
|
||||||
|
if (val.charCodeAt(i) == 32 || val.charCodeAt(i) == 13 || val.charCodeAt(i) == 10 || val.charCodeAt(i) == 9) {
|
||||||
|
right = i-1; break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var str = val.substring(left, right+1),
|
||||||
|
res = str.match(/^(?:[@]|[+](?!1))(\S*)/);
|
||||||
|
if (res && res.length>1) {
|
||||||
|
str = res[1]; // send to show email menu
|
||||||
|
me.onEmailListMenu(str, left, right);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
hideTips: function () {
|
hideTips: function () {
|
||||||
|
@ -955,6 +1029,17 @@ define([
|
||||||
this.commentsView.setStore(this.commentsStore);
|
this.commentsView.setStore(this.commentsStore);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
setUsers: function(data) {
|
||||||
|
this.externalUsers = data.users || [];
|
||||||
|
this.isUsersLoading = false;
|
||||||
|
this._state.emailSearch && this.onEmailListMenu(this._state.emailSearch.str, this._state.emailSearch.left, this._state.emailSearch.right);
|
||||||
|
this._state.emailSearch = null;
|
||||||
|
},
|
||||||
|
|
||||||
|
clearUsers: function() {
|
||||||
|
this.externalUsers = [];
|
||||||
|
},
|
||||||
|
|
||||||
getPopover: function(options) {
|
getPopover: function(options) {
|
||||||
if (!this.popover)
|
if (!this.popover)
|
||||||
this.popover = new Common.Views.ReviewPopover(options);
|
this.popover = new Common.Views.ReviewPopover(options);
|
||||||
|
@ -979,6 +1064,107 @@ define([
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
onEmailListMenu: function(str, left, right, show) {
|
||||||
|
var me = this,
|
||||||
|
users = me.externalUsers,
|
||||||
|
menu = me.emailMenu;
|
||||||
|
|
||||||
|
if (users.length<1) {
|
||||||
|
this._state.emailSearch = {
|
||||||
|
str: str,
|
||||||
|
left: left,
|
||||||
|
right: right
|
||||||
|
};
|
||||||
|
|
||||||
|
if (this.isUsersLoading) return;
|
||||||
|
|
||||||
|
this.isUsersLoading = true;
|
||||||
|
Common.Gateway.requestUsers();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (typeof str == 'string') {
|
||||||
|
var menuContainer = me.$window.find(Common.Utils.String.format('#menu-container-{0}', menu.id)),
|
||||||
|
textbox = this.commentsView.getTextBox(),
|
||||||
|
textboxDom = textbox ? textbox[0] : null,
|
||||||
|
showPoint = textboxDom ? [textboxDom.offsetLeft, textboxDom.offsetTop + textboxDom.clientHeight + 3] : [0, 0];
|
||||||
|
|
||||||
|
if (!menu.rendered) {
|
||||||
|
// Prepare menu container
|
||||||
|
if (menuContainer.length < 1) {
|
||||||
|
menuContainer = $(Common.Utils.String.format('<div id="menu-container-{0}" style="position: absolute; z-index: 10000;"><div class="dropdown-toggle" data-toggle="dropdown"></div></div>', menu.id));
|
||||||
|
me.$window.append(menuContainer);
|
||||||
|
}
|
||||||
|
|
||||||
|
menu.render(menuContainer);
|
||||||
|
menu.cmpEl.css('min-width', textboxDom ? textboxDom.clientWidth : 220);
|
||||||
|
menu.cmpEl.attr({tabindex: "-1"});
|
||||||
|
menu.on('hide:after', function(){
|
||||||
|
setTimeout(function(){
|
||||||
|
var tb = me.commentsView.getTextBox();
|
||||||
|
tb && tb.focus();
|
||||||
|
}, 10);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var i = 0; i < menu.items.length; i++) {
|
||||||
|
menu.removeItem(menu.items[i]);
|
||||||
|
i--;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (users.length>0) {
|
||||||
|
str = str.toLowerCase();
|
||||||
|
if (str.length>0) {
|
||||||
|
users = _.filter(users, function(item) {
|
||||||
|
return (item.email && 0 === item.email.toLowerCase().indexOf(str) || item.name && 0 === item.name.toLowerCase().indexOf(str))
|
||||||
|
});
|
||||||
|
}
|
||||||
|
var tpl = _.template('<a id="<%= id %>" tabindex="-1" type="menuitem" style="font-size: 12px;"><div><%= Common.Utils.String.htmlEncode(caption) %></div><div style="color: #909090;"><%= Common.Utils.String.htmlEncode(options.value) %></div></a>'),
|
||||||
|
divider = false;
|
||||||
|
_.each(users, function(menuItem, index) {
|
||||||
|
if (divider && !menuItem.hasAccess) {
|
||||||
|
divider = false;
|
||||||
|
menu.addItem(new Common.UI.MenuItem({caption: '--'}));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (menuItem.email && menuItem.name) {
|
||||||
|
var mnu = new Common.UI.MenuItem({
|
||||||
|
caption : menuItem.name,
|
||||||
|
value : menuItem.email,
|
||||||
|
template : tpl
|
||||||
|
}).on('click', function(item, e) {
|
||||||
|
me.insertEmailToTextbox(item.options.value, left, right);
|
||||||
|
});
|
||||||
|
menu.addItem(mnu);
|
||||||
|
if (menuItem.hasAccess)
|
||||||
|
divider = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (menu.items.length>0) {
|
||||||
|
menuContainer.css({left: showPoint[0], top : showPoint[1]});
|
||||||
|
menu.menuAlignEl = textbox;
|
||||||
|
menu.show();
|
||||||
|
menu.cmpEl.css('display', '');
|
||||||
|
menu.alignPosition('bl-tl', -5);
|
||||||
|
menu.scroller.update({alwaysVisibleY: true});
|
||||||
|
} else {
|
||||||
|
menu.rendered && menu.cmpEl.css('display', 'none');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
menu.rendered && menu.cmpEl.css('display', 'none');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
insertEmailToTextbox: function(str, left, right) {
|
||||||
|
var textBox = this.commentsView.getTextBox(),
|
||||||
|
val = textBox.val();
|
||||||
|
textBox.val(val.substring(0, left) + '+' + str + val.substring(right+1, val.length));
|
||||||
|
setTimeout(function(){
|
||||||
|
textBox[0].selectionStart = textBox[0].selectionEnd = left + str.length + 1;
|
||||||
|
}, 10);
|
||||||
|
},
|
||||||
|
|
||||||
textAddReply : 'Add Reply',
|
textAddReply : 'Add Reply',
|
||||||
textAdd : "Add",
|
textAdd : "Add",
|
||||||
textCancel : 'Cancel',
|
textCancel : 'Cancel',
|
||||||
|
@ -987,6 +1173,7 @@ define([
|
||||||
textClose : 'Close',
|
textClose : 'Close',
|
||||||
textResolve : 'Resolve',
|
textResolve : 'Resolve',
|
||||||
textOpenAgain : "Open Again",
|
textOpenAgain : "Open Again",
|
||||||
textFollowMove : 'Follow Move'
|
textFollowMove : 'Follow Move',
|
||||||
|
textMention : '+mention will provide access to the document and send an email'
|
||||||
}, Common.Views.ReviewPopover || {}))
|
}, Common.Views.ReviewPopover || {}))
|
||||||
});
|
});
|
|
@ -249,6 +249,7 @@
|
||||||
this.txtSearch.addClass('clear');
|
this.txtSearch.addClass('clear');
|
||||||
this.btnOptions.hide();
|
this.btnOptions.hide();
|
||||||
}
|
}
|
||||||
|
this.menuLookin && this.menuLookin.menu.items[1].setDisabled(false);
|
||||||
|
|
||||||
this.setHeight(170);
|
this.setHeight(170);
|
||||||
} else {
|
} else {
|
||||||
|
@ -261,6 +262,7 @@
|
||||||
$inputs.eq(1).hide();
|
$inputs.eq(1).hide();
|
||||||
this.$window.find('.btn[result=replace]').hide();
|
this.$window.find('.btn[result=replace]').hide();
|
||||||
this.$window.find('.btn[result=replaceall]').hide();
|
this.$window.find('.btn[result=replaceall]').hide();
|
||||||
|
this.menuLookin && this.menuLookin.menu.items[1].setDisabled(false);
|
||||||
this.setHeight(200);
|
this.setHeight(200);
|
||||||
} else {
|
} else {
|
||||||
$inputs.eq(2).show();
|
$inputs.eq(2).show();
|
||||||
|
@ -268,6 +270,10 @@
|
||||||
$inputs.eq(1).show();
|
$inputs.eq(1).show();
|
||||||
this.$window.find('.btn[result=replace]').show();
|
this.$window.find('.btn[result=replace]').show();
|
||||||
this.$window.find('.btn[result=replaceall]').show();
|
this.$window.find('.btn[result=replaceall]').show();
|
||||||
|
if (this.menuLookin) {
|
||||||
|
this.menuLookin.menu.items[0].setChecked(true);
|
||||||
|
this.menuLookin.menu.items[1].setDisabled(true);
|
||||||
|
}
|
||||||
this.setHeight(230);
|
this.setHeight(230);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -293,8 +299,8 @@
|
||||||
getSettings: function() {
|
getSettings: function() {
|
||||||
return {
|
return {
|
||||||
textsearch: this.txtSearch.val(),
|
textsearch: this.txtSearch.val(),
|
||||||
casesensitive: this.miMatchCase.checked,
|
matchcase: this.miMatchCase.checked,
|
||||||
wholewords: this.miMatchWord.checked };
|
matchword: this.miMatchWord.checked };
|
||||||
},
|
},
|
||||||
|
|
||||||
textTitle : 'Search & Replace',
|
textTitle : 'Search & Replace',
|
||||||
|
|
BIN
apps/common/main/resources/img/controls/toolbar-menu-ru.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
apps/common/main/resources/img/controls/toolbar-menu-ru@2x.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 50 KiB |
605
apps/common/main/resources/img/toolbar/shapetypes.svg
Normal file
|
@ -0,0 +1,605 @@
|
||||||
|
<svg aria-hidden="true" style="position: absolute; width: 0; height: 0; overflow: hidden;" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<symbol id="svg-icon-accentBorderCallout1" viewBox="0 0 20 20">
|
||||||
|
<path d="M17 6h-6v7h6v-7zM18 5v9h-8v-9h8z"></path>
|
||||||
|
<path d="M8 5h1v9h-1v-3.715l-4.631 5.052-0.737-0.676 5.369-5.857v-3.805z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-accentBorderCallout2" viewBox="0 0 20 20">
|
||||||
|
<path d="M18 6h-6v7h6v-7zM19 5v9h-8v-9h8z"></path>
|
||||||
|
<path d="M9 5h1v9h-1v-4h-3.703l-2.858 5.239-0.878-0.479 3.142-5.761h4.297v-4z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-accentBorderCallout3" viewBox="0 0 20 20">
|
||||||
|
<path d="M17 6h-6v7h6v-7zM18 5v9h-8v-9h8z"></path>
|
||||||
|
<path d="M8 5h1v9h-1v-4h-4v3.27l3.325 2.85-0.651 0.759-3.675-3.15v-4.73h5v-4z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-accentCallout1" viewBox="0 0 20 20">
|
||||||
|
<path d="M12 5h-2v1h2v-1zM11 7h-1v2h1v-2zM17 7h1v2h-1v-2zM11 10h-1v2h1v-2zM17 10h1v2h-1v-2zM12 14v-1h-2v1h2zM13 13h2v1h-2v-1zM18 14v-1h-2v1h2zM13 5h2v1h-2v-1zM18 5h-2v1h2v-1z"></path>
|
||||||
|
<path d="M8 5h1v9h-1v-3.715l-4.631 5.052-0.737-0.676 5.369-5.857v-3.805z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-accentCallout2" viewBox="0 0 20 20">
|
||||||
|
<path d="M9 5h1v9h-1v-4h-3.703l-2.858 5.239-0.878-0.479 3.142-5.761h4.297v-4z"></path>
|
||||||
|
<path d="M13 5h-2v1h2v-1zM12 7h-1v2h1v-2zM18 7h1v2h-1v-2zM12 10h-1v2h1v-2zM18 10h1v2h-1v-2zM13 14v-1h-2v1h2zM14 13h2v1h-2v-1zM19 14v-1h-2v1h2zM14 5h2v1h-2v-1zM19 5h-2v1h2v-1z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-accentCallout3" viewBox="0 0 20 20">
|
||||||
|
<path d="M8 4h1v9h-1v-4h-4v3.293l3.354 3.353-0.707 0.707-3.646-3.646v-4.707h5v-4z"></path>
|
||||||
|
<path d="M12 4h-2v1h2v-1zM11 6h-1v2h1v-2zM17 6h1v2h-1v-2zM11 9h-1v2h1v-2zM17 9h1v2h-1v-2zM12 13v-1h-2v1h2zM13 12h2v1h-2v-1zM18 13v-1h-2v1h2zM13 4h2v1h-2v-1zM18 4h-2v1h2v-1z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-actionButtonBackPrevious" viewBox="0 0 20 20">
|
||||||
|
<path d="M17 17h-14v-14h14v14zM18 18v-16h-16v16h16z"></path>
|
||||||
|
<path d="M14 15v-10l-9 5 9 5zM13 13.301l-5.941-3.301 5.941-3.3v6.601z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-actionButtonBeginning" viewBox="0 0 20 20">
|
||||||
|
<path d="M17 3h-14v14h14v-14zM18 2v16h-16v-16h16z"></path>
|
||||||
|
<path d="M15 5v10l-8-5 8-5zM14 6.804l-5.113 3.196 5.113 3.196v-6.392z"></path>
|
||||||
|
<path d="M5 5h1v10h-1v-10z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-actionButtonBlank" viewBox="0 0 20 20">
|
||||||
|
<path d="M17 3h-14v14h14v-14zM18 2v16h-16v-16h16z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-actionButtonDocument" viewBox="0 0 20 20">
|
||||||
|
<path d="M17 3h-14v14h14v-14zM18 2v16h-16v-16h16z"></path>
|
||||||
|
<path d="M11 5h-5v10h8v-7l-3-3zM11 6.5l1.5 1.5h-1.5v-1.5zM13 14h-6v-8h3v3h3v5z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-actionButtonEnd" viewBox="0 0 20 20">
|
||||||
|
<path d="M3 17h14v-14h-14v14zM2 18v-16h16v16h-16z"></path>
|
||||||
|
<path d="M5 15v-10l8 5-8 5zM6 13.196l5.113-3.196-5.113-3.196v6.392z"></path>
|
||||||
|
<path d="M15 15h-1v-10h1v10z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-actionButtonForwardNext" viewBox="0 0 20 20">
|
||||||
|
<path fill="none" stroke="#444" style="stroke: var(--color1, #444)" stroke-linejoin="miter" stroke-linecap="butt" stroke-miterlimit="10" stroke-width="1" d="M17.5 17.5v-15h-15v15h15z"></path>
|
||||||
|
<path fill="none" stroke="#444" style="stroke: var(--color1, #444)" stroke-linejoin="miter" stroke-linecap="butt" stroke-miterlimit="10" stroke-width="1" d="M13.97 10l-7.47-4.15v8.3l7.47-4.15z"></path>
|
||||||
|
<path d="M3 3h14v14h-14v-14zM2 2v16h16v-16h-16z"></path>
|
||||||
|
<path d="M6 5v10l9-5-9-5zM7 6.7l5.941 3.3-5.941 3.301v-6.601z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-actionButtonHelp" viewBox="0 0 20 20">
|
||||||
|
<path fill="none" stroke="#444" style="stroke: var(--color1, #444)" stroke-linejoin="miter" stroke-linecap="butt" stroke-miterlimit="10" stroke-width="1" d="M2.5 17.5v-15h15v15h-15z"></path>
|
||||||
|
<path d="M8.809 11.261v-0.533c-0.006-0.447 0.092-0.889 0.286-1.28 0.095-0.32 0.476-0.64 0.952-1.067 0.346-0.198 0.641-0.492 0.857-0.854 0.172-0.203 0.273-0.468 0.286-0.747 0.013-0.153-0.017-0.307-0.085-0.441s-0.172-0.241-0.296-0.306c-0.116-0.116-0.252-0.204-0.399-0.259s-0.303-0.076-0.458-0.061c-0.768 0.078-1.513 0.332-2.19 0.747l-0.762-1.6c0.956-0.607 2.044-0.902 3.142-0.854 0.742-0.047 1.477 0.178 2.094 0.64 0.251 0.232 0.451 0.526 0.583 0.859s0.193 0.697 0.178 1.061c0.019 0.483-0.080 0.962-0.286 1.387-0.336 0.541-0.755 1.011-1.238 1.387-0.292 0.196-0.549 0.449-0.762 0.747-0.082 0.099-0.142 0.218-0.175 0.348s-0.038 0.267-0.015 0.399v0.427h-1.714zM8.618 13.715c-0.012-0.157 0.008-0.315 0.057-0.463s0.127-0.281 0.228-0.391c0.116-0.116 0.252-0.204 0.399-0.259s0.303-0.076 0.458-0.061c0.14-0.006 0.279 0.019 0.41 0.074s0.251 0.139 0.352 0.246c0.118 0.099 0.214 0.228 0.28 0.376s0.101 0.312 0.101 0.477c-0.010 0.364-0.146 0.708-0.381 0.96-0.102 0.108-0.221 0.191-0.352 0.246s-0.27 0.080-0.41 0.074c-0.155 0.015-0.311-0.006-0.458-0.061s-0.283-0.143-0.399-0.259c-0.103-0.13-0.182-0.282-0.231-0.447s-0.068-0.34-0.055-0.513z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-actionButtonHome" viewBox="0 0 20 20">
|
||||||
|
<path d="M17 3h-14v14h14v-14zM18 2v16h-16v-16h16z"></path>
|
||||||
|
<path d="M12 14v-3h-4v3h1v-2h2v2h1z"></path>
|
||||||
|
<path d="M5 9v6h10v-10h-2v2l-3-2.5-5 4.5zM14 10v4h-8v-4h8zM13.838 9h-7.343l3.53-3.177 3.813 3.177z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-actionButtonInformation" viewBox="0 0 20 20">
|
||||||
|
<path d="M17 3v14h-14v-14h14zM2 2v16h16v-16h-16z"></path>
|
||||||
|
<path d="M10 15c2.761 0 5-2.239 5-5s-2.239-5-5-5c-2.761 0-5 2.239-5 5s2.239 5 5 5zM16 10c0 3.314-2.686 6-6 6s-6-2.686-6-6c0-3.314 2.686-6 6-6s6 2.686 6 6z"></path>
|
||||||
|
<path d="M11.007 7.017l-1.999-0.009-0.009 0.995 1.999 0.009 0.009-0.995z"></path>
|
||||||
|
<path d="M8 9h3v2h1v1h-4v-1h1v-1h-1v-1z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-actionButtonMovie" viewBox="0 0 20 20">
|
||||||
|
<path d="M17 3h-14v14h14v-14zM18 2v16h-16v-16h16z"></path>
|
||||||
|
<path d="M14 7v1h-1v-1h-8v4h1v-1h1v3h6v-2h1v1h1v-5h-1zM6 9v-1h4v1h-4zM12 12h-4v-2h3v-2h1v4zM14 10h-1v-1h1v1z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-actionButtonReturn" viewBox="0 0 20 20">
|
||||||
|
<path d="M17 3h-14v14h14v-14zM18 2v16h-16v-16h16z"></path>
|
||||||
|
<path d="M12.5 5l3.5 4h-2v1.5c0 2.485-2.015 4.5-4.5 4.5s-4.5-2.015-4.5-4.5v-1.5h3v1.5c0 0.828 0.672 1.5 1.5 1.5s1.5-0.672 1.5-1.5v-1.5h-2l3.5-4zM13 9v-1h1l-1.5-1.5-1.5 1.5h1v2.5c0 1.381-1.119 2.5-2.5 2.5s-2.5-1.119-2.5-2.5v-0.5h-1v0.5c0 1.933 1.567 3.5 3.5 3.5s3.5-1.567 3.5-3.5v-1.5z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-actionButtonSound" viewBox="0 0 20 20">
|
||||||
|
<path d="M17 3h-14v14h14v-14zM18 2v16h-16v-16h16z"></path>
|
||||||
|
<path d="M8 8h-3v4h3l3 3v-10l-3 3zM10 12.5l-1.5-1.5h-2.5v-2h2.5l1.5-1.5v5z"></path>
|
||||||
|
<path d="M15 9h-3v1h3v-1z"></path>
|
||||||
|
<path d="M13.556 4l-1.556 1.556 0.707 0.707 1.556-1.556-0.707-0.707z"></path>
|
||||||
|
<path d="M14.263 14.556l-1.556-1.556-0.707 0.707 1.556 1.556 0.707-0.707z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-arc" viewBox="0 0 20 20">
|
||||||
|
<path d="M3.491 4.163c-0.581-0.068-1.088-0.105-1.491-0.124v-1.040c0.432 0.020 0.98 0.058 1.611 0.132 1.582 0.185 3.701 0.594 5.827 1.491s4.279 2.291 5.9 4.455c1.477 1.972 2.49 4.555 2.662 7.923h-1.035c-0.171-3.152-1.119-5.517-2.453-7.299-1.482-1.979-3.465-3.274-5.474-4.121s-4.026-1.238-5.546-1.417z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-bentArrow" viewBox="0 0 20 20">
|
||||||
|
<path d="M13 8v2l3.333-2.5-3.333-2.5v2h-7c-1.105 0-2 0.895-2 2v7h1v-6c0-1.105 0.895-2 2-2h6zM12 3l6 4.5-6 4.5v-3h-5c-0.552 0-1 0.448-1 1v7h-3v-8c0-1.657 1.343-3 3-3h6v-3z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-bentConnector5" viewBox="0 0 20 20">
|
||||||
|
<path d="M9 5h-7v-1h8v11h8v1h-9v-11z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-bentConnector5WithArrow" viewBox="0 0 20 20">
|
||||||
|
<path d="M2 4h6v11h7.793l-1.147 1.146 0.707 0.707 2.353-2.354-2.353-2.354-0.707 0.707 1.147 1.146h-6.793v-11h-7v1z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-bentConnector5WithTwoArrows" viewBox="0 0 20 20">
|
||||||
|
<path d="M4.646 1.646l0.707 0.707-1.646 1.646h6.293v11h6.293l-1.146-1.146 0.707-0.707 2.353 2.353-2.353 2.354-0.707-0.707 1.146-1.147h-7.293v-11h-5.293l1.646 1.646-0.707 0.707-2.854-2.854 2.854-2.854z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-bentUpArrow" viewBox="0 0 20 20">
|
||||||
|
<path d="M14 8v9h-11v-3h8v-6h-3l4.5-5 4.5 5h-3zM13 16v-9h1.755l-2.255-2.505-2.255 2.505h1.755v8h-8v1h9z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-bevel" viewBox="0 0 20 20">
|
||||||
|
<path d="M14.293 15h-8.586l-2 2h12.586l-2-2zM5 14.293v-8.586l-2-2v12.586l2-2zM14.293 5l2-2h-12.586l2 2h8.586zM15 5.707v8.586l2 2v-12.586l-2 2zM2 2h16v16h-16v-16zM14 14v-8h-8v8h8z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-blockArc" viewBox="0 0 20 20">
|
||||||
|
<path d="M17.938 13c0.041 0.328 0.062 0.661 0.062 1h-4c0-2.209-1.791-4-4-4s-4 1.791-4 4h-4c0-0.339 0.021-0.672 0.062-1 0.492-3.946 3.858-7 7.938-7s7.446 3.054 7.938 7zM3.071 13h2.029c0.463-2.282 2.481-4 4.9-4s4.437 1.718 4.9 4h2.029c-0.485-3.392-3.403-6-6.929-6s-6.444 2.608-6.929 6z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-borderCallout1" viewBox="0 0 20 20">
|
||||||
|
<path d="M9 5h9v9h-10v-3.715l-4.631 5.052-0.737-0.676 5.369-5.857v-3.805h1zM9 13h8v-7h-8v7z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-borderCallout2" viewBox="0 0 20 20">
|
||||||
|
<path d="M10 5h9v9h-10v-4h-3.703l-2.858 5.239-0.878-0.479 3.142-5.761h4.297v-4h1zM10 13h8v-7h-8v7z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-borderCallout3" viewBox="0 0 20 20">
|
||||||
|
<path d="M9 5h9v9h-10v-4h-4v3.27l3.325 2.85-0.651 0.759-3.675-3.15v-4.73h5v-4h1zM9 13h8v-7h-8v7z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-bracePair" viewBox="0 0 20 20">
|
||||||
|
<path d="M13 16.125c0.438-0.171 0.81-0.493 1.057-0.916s0.355-0.922 0.307-1.418v-1.556c-0.042-0.457 0.049-0.918 0.261-1.318s0.533-0.721 0.921-0.918c-0.388-0.198-0.71-0.518-0.921-0.918s-0.303-0.86-0.261-1.318v-1.458c0-1.361-0.454-2.139-1.364-2.431l0.182-0.875c0.695 0.202 1.324 0.606 1.818 1.167 0.382 0.636 0.573 1.383 0.546 2.139v1.458c0 1.167 0.545 1.75 1.454 1.75v0.972c-0.909 0-1.454 0.583-1.454 1.75v1.458c0.027 0.756-0.163 1.502-0.546 2.139-0.507 0.543-1.132 0.944-1.818 1.167l-0.182-0.875z"></path>
|
||||||
|
<path d="M7.4 3.9c-0.482 0.176-0.891 0.507-1.163 0.942s-0.39 0.948-0.337 1.458v1.6c0.046 0.471-0.054 0.944-0.287 1.355s-0.586 0.741-1.013 0.945c0.427 0.203 0.781 0.533 1.013 0.945s0.333 0.885 0.287 1.355v1.5c0 1.4 0.5 2.2 1.5 2.5l-0.2 0.9c-0.764-0.208-1.457-0.623-2-1.2-0.421-0.655-0.63-1.423-0.6-2.2v-1.5c0-1.2-0.6-1.8-1.6-1.8v-1c1 0 1.6-0.6 1.6-1.8v-1.5c-0.030-0.777 0.179-1.545 0.6-2.2 0.558-0.558 1.245-0.971 2-1.2l0.2 0.9z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-callout1" viewBox="0 0 20 20">
|
||||||
|
<path d="M8 5h1v1h-1v-1zM8 7h1v2h-1v1h1v2h-1v-1.715l-4.631 5.052-0.737-0.676 5.369-5.857v-1.805zM8 13v1h1v-1h-1zM10 5h2v1h-2v-1zM18 7h-1v2h1v-2zM18 10h-1v2h1v-2zM12 13v1h-2v-1h2zM15 13h-2v1h2v-1zM18 13v1h-2v-1h2zM15 5h-2v1h2v-1zM16 5h2v1h-2v-1z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-callout2" viewBox="0 0 20 20">
|
||||||
|
<path d="M9 5h1v1h-1v-1zM9 7h1v2h-1v-2zM9 10h-3.703l-2.858 5.239-0.878-0.479 3.142-5.761h4.297v1zM9 10h1v2h-1v-2zM9 13h1v1h-1v-1zM11 5h2v1h-2v-1zM19 7h-1v2h1v-2zM19 10h-1v2h1v-2zM13 13v1h-2v-1h2zM16 13h-2v1h2v-1zM19 13v1h-2v-1h2zM16 5h-2v1h2v-1zM17 5h2v1h-2v-1z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-callout3" viewBox="0 0 20 20">
|
||||||
|
<path d="M8 4h1v1h-1v-1zM8 6h1v2h-1v1h-4v3.293l3.354 3.353-0.707 0.707-3.646-3.646v-4.707h5v-2zM8 9v2h1v-2h-1zM8 13v-1h1v1h-1zM10 4h2v1h-2v-1zM18 6h-1v2h1v-2zM18 9h-1v2h1v-2zM12 12v1h-2v-1h2zM15 12h-2v1h2v-1zM18 12v1h-2v-1h2zM15 4h-2v1h2v-1zM16 4h2v1h-2v-1z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-can" viewBox="0 0 20 20">
|
||||||
|
<path d="M10 17c1.228 0 2.321-0.253 3.070-0.622 0.813-0.401 0.93-0.769 0.93-0.878v-10.5c-0.912 0.607-2.364 1-4 1s-3.088-0.393-4-1v10.5c0 0.109 0.117 0.477 0.93 0.878 0.749 0.369 1.842 0.622 3.070 0.622zM6 3.5c0 0.108 0.113 0.474 0.912 0.873 0.739 0.369 1.829 0.627 3.088 0.627s2.35-0.257 3.088-0.627c0.798-0.399 0.912-0.766 0.912-0.873 0-0.109-0.117-0.477-0.93-0.878-0.749-0.369-1.842-0.622-3.070-0.622s-2.321 0.252-3.070 0.622c-0.813 0.401-0.93 0.769-0.93 0.878zM5 3.5c0-1.381 2.239-2.5 5-2.5 2.694 0 4.89 1.065 4.996 2.399 0.003 0.034 0.004 0.067 0.004 0.101v12c0 1.4-2.3 2.5-5 2.5s-5-1.1-5-2.5v-12z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-chevron" viewBox="0 0 20 20">
|
||||||
|
<path d="M3 15l5.891-5.5-5.891-5.5h8l6 5.5-6 5.5h-8zM5.536 5l4.82 4.5-4.82 4.5h5.075l4.909-4.5-4.909-4.5h-5.075z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-chord" viewBox="0 0 20 20">
|
||||||
|
<path d="M7.333 3.231l9.436 9.435c-0.464 1.076-1.185 2.022-2.098 2.755s-1.993 1.232-3.144 1.452c-1.151 0.22-2.338 0.156-3.458-0.189s-2.139-0.957-2.968-1.786c-0.829-0.828-1.442-1.847-1.786-2.967s-0.409-2.307-0.189-3.458c0.22-1.151 0.719-2.23 1.452-3.144s1.68-1.634 2.756-2.098zM7.538 2c-1.614 0.57-3.012 1.625-4.003 3.020s-1.528 3.062-1.535 4.774c-0 1.951 0.695 3.839 1.96 5.324s3.020 2.47 4.946 2.779c1.927 0.309 3.901-0.079 5.567-1.094s2.917-2.591 3.526-4.445l-10.462-10.358z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-circularArrow" viewBox="0 0 20 20">
|
||||||
|
<path d="M13 11.4h-2.108l2.608 3.825 2.608-3.825h-2.108v-2.4c0-2.761-2.239-5-5-5s-5 2.239-5 5v6h1v-6c0-2.209 1.791-4 4-4s4 1.791 4 4v2.4zM18 10.4l-4.5 6.6-4.5-6.6h3v-1.4c0-1.657-1.343-3-3-3s-3 1.343-3 3v7h-3v-7c0-3.314 2.686-6 6-6s6 2.686 6 6v1.4h3z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-cloud" viewBox="0 0 20 20">
|
||||||
|
<path d="M12.001 7.224l0.749-0.192c0.079-0.020 0.163-0.031 0.251-0.031 0.552 0 1 0.448 1 1l-0 0.018-0.020 1.174 1.162-0.166c0.117-0.017 0.236-0.025 0.359-0.025 1.381 0 2.5 1.119 2.5 2.5s-1.119 2.5-2.5 2.5c-0.511 0-0.983-0.152-1.377-0.413l-0.963-0.637-0.493 1.044c-0.562 1.188-1.769 2.007-3.167 2.007-1.118 0-2.114-0.523-2.756-1.343l-0.646-0.824-0.793 0.683c-0.351 0.302-0.805 0.484-1.304 0.484-1.105 0-2-0.895-2-2 0-0.707 0.366-1.329 0.924-1.686l0.796-0.51-0.464-0.824c-0.163-0.289-0.256-0.622-0.256-0.98 0-1.105 0.895-2 2-2 0.117 0 0.231 0.010 0.342 0.029l0.695 0.119 0.346-0.615c0.515-0.917 1.495-1.533 2.618-1.533 1.128 0 2.113 0.623 2.626 1.548l0.375 0.676zM16 8.035c-0.163-0.023-0.33-0.035-0.5-0.035s-0.337 0.012-0.5 0.035c0-0.012 0-0.024 0-0.035 0-0.208-0.032-0.409-0.091-0.598-0.254-0.812-1.013-1.402-1.909-1.402-0.172 0-0.34 0.022-0.499 0.063-0.682-1.23-1.994-2.063-3.501-2.063-1.498 0-2.804 0.824-3.49 2.043-0.166-0.028-0.336-0.043-0.51-0.043-1.657 0-3 1.343-3 3 0 0.535 0.14 1.037 0.385 1.471-0.833 0.533-1.385 1.466-1.385 2.529 0 1.657 1.343 3 3 3 0.648 0 1.248-0.205 1.738-0.555 0.075-0.054 0.148-0.111 0.218-0.171 0.086 0.109 0.176 0.214 0.271 0.315 0.82 0.868 1.983 1.411 3.272 1.411 1.44 0 2.722-0.676 3.545-1.728 0.205-0.262 0.382-0.547 0.526-0.851 0.275 0.182 0.578 0.327 0.901 0.426 0.325 0.1 0.671 0.154 1.029 0.154 1.933 0 3.5-1.567 3.5-3.5 0-1.763-1.304-3.222-3-3.465z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-cloudCallout" viewBox="0 0 20 20">
|
||||||
|
<path d="M5 15v-1h-1v2h2v-1h-1z"></path>
|
||||||
|
<path d="M3 17v-1h-1v2h2v-1h-1z"></path>
|
||||||
|
<path d="M14.613 7.795l0.689 0.437c0.422 0.268 0.698 0.736 0.698 1.268 0 0.828-0.672 1.5-1.5 1.5-0.232 0-0.448-0.052-0.642-0.143l-0.75-0.356-0.488 0.672c-0.365 0.503-0.955 0.827-1.62 0.827-0.695 0-1.307-0.353-1.667-0.895l-0.833-1.252-0.833 1.252c-0.36 0.542-0.973 0.895-1.667 0.895-1.105 0-2-0.895-2-2 0-0.752 0.414-1.408 1.032-1.751l1.128-0.625-0.886-0.937c-0.17-0.18-0.273-0.421-0.273-0.687 0-0.552 0.448-1 1-1 0.056 0 0.111 0.005 0.163 0.013l0.748 0.122 0.32-0.687c0.398-0.857 1.266-1.448 2.269-1.448 1.030 0 1.917 0.623 2.3 1.518l0.361 0.843 0.871-0.286c0.146-0.048 0.303-0.074 0.469-0.074 0.828 0 1.5 0.672 1.5 1.5 0 0.189-0.035 0.368-0.097 0.533l-0.29 0.762zM3.764 8c-0.475 0.531-0.764 1.232-0.764 2 0 1.657 1.343 3 3 3 0.675 0 1.299-0.223 1.8-0.6 0.273-0.205 0.51-0.456 0.7-0.741 0.19 0.285 0.427 0.536 0.7 0.741 0.501 0.377 1.125 0.6 1.8 0.6 0.999 0 1.885-0.489 2.43-1.24 0.324 0.154 0.687 0.24 1.070 0.24 1.381 0 2.5-1.119 2.5-2.5 0-0.889-0.464-1.669-1.162-2.112 0.105-0.276 0.162-0.575 0.162-0.888 0-1.381-1.119-2.5-2.5-2.5-0.273 0-0.535 0.044-0.781 0.124-0.534-1.249-1.775-2.124-3.219-2.124-1.406 0-2.619 0.83-3.175 2.026-0.106-0.017-0.214-0.026-0.325-0.026-1.105 0-2 0.895-2 2 0 0.174 0.022 0.342 0.064 0.503 0.086 0.332 0.255 0.63 0.484 0.872-0.295 0.164-0.56 0.376-0.783 0.625z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-corner" viewBox="0 0 20 20">
|
||||||
|
<path d="M10 11h8v7h-16v-16h8v9zM17 12h-8v-9h-6v14h14v-5z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-cube" viewBox="0 0 20 20">
|
||||||
|
<path d="M6 3l-4 4v11h11l4-4v-11h-11zM6.5 4h9l-3 3h-9l3-3zM3 17v-9h9v9h-9zM13 16.5v-8.5l3-3v8.5l-3 3z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-curvedConnector3" viewBox="0 0 20 20">
|
||||||
|
<path d="M6 4h3.5c1.235 0 2.421 0.909 2.792 2.171 0.389 1.323-0.131 2.9-2.002 4.235-1.63 1.164-1.859 2.337-1.623 3.139 0.254 0.863 1.068 1.454 1.833 1.454h3.5v1h-3.5c-1.235 0-2.421-0.909-2.792-2.171-0.389-1.323 0.131-2.899 2.002-4.235 1.63-1.164 1.859-2.337 1.623-3.14-0.254-0.863-1.068-1.454-1.833-1.454h-3.5v-1z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-curvedConnector3WithArrow" viewBox="0 0 20 20">
|
||||||
|
<path d="M9.5 4h-3.5v1h3.5c0.765 0 1.579 0.591 1.833 1.454 0.236 0.802 0.006 1.975-1.623 3.14-1.87 1.336-2.391 2.913-2.002 4.235 0.371 1.262 1.557 2.171 2.792 2.171h2.793l-1.146 1.147 0.707 0.707 2.353-2.354-2.353-2.353-0.707 0.707 1.146 1.146h-2.793c-0.765 0-1.579-0.591-1.833-1.454-0.236-0.802-0.006-1.976 1.623-3.139 1.87-1.336 2.391-2.913 2.002-4.235-0.371-1.262-1.557-2.171-2.792-2.171z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-curvedConnector3WithTwoArrows" viewBox="0 0 20 20">
|
||||||
|
<path d="M7.646 1.646l0.707 0.707-1.646 1.646h2.793c1.235 0 2.421 0.909 2.792 2.171 0.389 1.323-0.131 2.9-2.002 4.235-1.63 1.164-1.859 2.337-1.623 3.139 0.254 0.863 1.068 1.454 1.833 1.454h2.793l-1.146-1.146 0.707-0.707 2.353 2.353-2.353 2.354-0.707-0.707 1.146-1.147h-2.793c-1.235 0-2.421-0.909-2.792-2.171-0.389-1.323 0.131-2.899 2.002-4.235 1.63-1.164 1.859-2.337 1.623-3.14-0.254-0.863-1.068-1.454-1.833-1.454h-2.793l1.646 1.646-0.707 0.707-2.854-2.854 2.854-2.854z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-curvedDownArrow" viewBox="0 0 20 20">
|
||||||
|
<path d="M2 14l0.022-0.521c0.104-2.449 0.913-4.923 1.965-6.295 1.034-1.349 2.364-2.183 3.534-2.183h4c0.464 0 0.937 0.2 1.369 0.492 0.439 0.296 0.878 0.715 1.284 1.22 0.776 0.967 1.461 2.289 1.795 3.788h2.031l-4 4.5-4-4.5h2.019c-0.031-0.984-0.291-2.103-0.783-2.98-0.524-0.934-1.26-1.52-2.214-1.52-0.417 0-0.804 0.199-1.172 0.611-0.374 0.419-0.701 1.029-0.971 1.762-0.539 1.462-0.808 3.782-0.857 5.145l-0.017 0.482h-4.004zM6.983 6.087c-0.666 0.201-1.473 0.754-2.202 1.705-0.85 1.109-1.546 3.203-1.725 5.208h1.991c0.091-1.368 0.371-3.557 0.893-4.973 0.268-0.726 0.609-1.408 1.042-1.94zM11.343 6c0.3 0.303 0.554 0.655 0.765 1.030 0.624 1.112 0.914 2.5 0.914 3.67v0.8h-0.793l1.771 2.086 1.815-2.086h-0.793v-0.65c-0.288-1.398-0.921-2.632-1.627-3.512-0.357-0.445-0.724-0.789-1.063-1.017-0.346-0.234-0.623-0.321-0.809-0.321h-0.179z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-curvedLeftArrow" viewBox="0 0 20 20">
|
||||||
|
<path d="M6 2l0.521 0.022c2.449 0.104 4.923 0.913 6.296 1.965 1.348 1.034 2.183 2.364 2.183 3.534v4c0 0.464-0.201 0.937-0.492 1.369-0.297 0.439-0.715 0.878-1.22 1.284-0.967 0.776-2.289 1.461-3.788 1.795l-0 2.031-4.5-4 4.5-4v2.019c0.984-0.031 2.103-0.291 2.98-0.783 0.934-0.524 1.52-1.26 1.52-2.214 0-0.417-0.199-0.804-0.611-1.172-0.419-0.374-1.029-0.701-1.762-0.971-1.462-0.539-3.782-0.808-5.145-0.857l-0.482-0.017v-4.004zM13.913 6.983c-0.201-0.666-0.754-1.473-1.705-2.202-1.109-0.85-3.203-1.546-5.208-1.725v1.991c1.368 0.091 3.557 0.371 4.973 0.893 0.726 0.268 1.408 0.609 1.94 1.042zM14 11.343c-0.303 0.3-0.655 0.554-1.030 0.765-1.112 0.624-2.5 0.914-3.67 0.914h-0.8v-0.793l-2.086 1.771 2.086 1.815v-0.793h0.65c1.398-0.288 2.632-0.921 3.512-1.627 0.445-0.357 0.789-0.724 1.017-1.063 0.234-0.346 0.321-0.623 0.321-0.809v-0.179z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-curvedRightArrow" viewBox="0 0 20 20">
|
||||||
|
<path d="M14 2l-0.521 0.022c-2.449 0.104-4.923 0.913-6.295 1.965-1.349 1.034-2.183 2.364-2.183 3.534v4c0 0.464 0.2 0.937 0.492 1.369 0.296 0.439 0.715 0.878 1.22 1.284 0.967 0.776 2.289 1.461 3.788 1.795v2.031l4.5-4-4.5-4v2.019c-0.984-0.031-2.103-0.291-2.98-0.783-0.934-0.524-1.52-1.26-1.52-2.214 0-0.417 0.199-0.804 0.611-1.172 0.419-0.374 1.029-0.701 1.762-0.971 1.462-0.539 3.782-0.808 5.145-0.857l0.482-0.017v-4.004zM6.087 6.983c0.201-0.666 0.754-1.473 1.705-2.202 1.109-0.85 3.203-1.546 5.208-1.725v1.991c-1.368 0.091-3.557 0.371-4.973 0.893-0.726 0.268-1.408 0.609-1.94 1.042zM6 11.343c0.303 0.3 0.655 0.554 1.030 0.765 1.112 0.624 2.5 0.914 3.67 0.914h0.8v-0.793l2.086 1.771-2.086 1.815v-0.793h-0.65c-1.398-0.288-2.632-0.921-3.512-1.627-0.445-0.357-0.789-0.724-1.017-1.063-0.234-0.346-0.321-0.623-0.321-0.809v-0.179z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-curvedUpArrow" viewBox="0 0 20 20">
|
||||||
|
<path d="M2 6l0.022 0.521c0.104 2.449 0.913 4.923 1.965 6.296 1.034 1.348 2.364 2.183 3.534 2.183h4c0.464 0 0.937-0.2 1.369-0.492 0.439-0.297 0.878-0.715 1.284-1.22 0.776-0.967 1.461-2.289 1.795-3.788l2.031-0-4-4.5-4 4.5h2.019c-0.031 0.984-0.291 2.103-0.783 2.98-0.524 0.934-1.26 1.52-2.214 1.52-0.417 0-0.804-0.199-1.172-0.611-0.374-0.419-0.701-1.029-0.971-1.762-0.539-1.462-0.808-3.782-0.857-5.145l-0.017-0.482h-4.004zM6.983 13.913c-0.666-0.201-1.473-0.754-2.202-1.705-0.85-1.108-1.546-3.203-1.725-5.208h1.991c0.091 1.368 0.371 3.557 0.893 4.973 0.268 0.726 0.609 1.408 1.042 1.94zM11.343 14c0.3-0.303 0.554-0.655 0.765-1.030 0.624-1.112 0.914-2.5 0.914-3.67v-0.8h-0.793l1.771-2.086 1.815 2.086h-0.793v0.65c-0.288 1.398-0.921 2.632-1.627 3.512-0.357 0.445-0.724 0.789-1.063 1.017-0.346 0.234-0.623 0.321-0.809 0.321h-0.179z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-decagon" viewBox="0 0 20 20">
|
||||||
|
<path d="M7.214 17h5.572l4.214-4.214v-5.572l-4.214-4.214h-5.572l-4.214 4.214v5.572l4.214 4.214zM13.2 18h-6.4l-4.8-4.8v-6.4l4.8-4.8h6.4l4.8 4.8v6.4l-4.8 4.8z"></path>
|
||||||
|
<path d="M9 7v6h4v-6h-4zM12 12h-2v-4h2v4z"></path>
|
||||||
|
<path d="M7 7v1h-1v1h1v4h1v-6h-1z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-diagStripe" viewBox="0 0 20 20">
|
||||||
|
<path d="M3 12.414l9.414-9.414h4.586v0.586l-13.414 13.414h-0.586v-4.586zM2 12v6h2l14-14v-2h-6l-10 10z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-diamond" viewBox="0 0 20 20">
|
||||||
|
<path d="M10 3.414l6.586 6.586-6.586 6.586-6.586-6.586 6.586-6.586zM2 10l8 8 8-8-8-8-8 8z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-dodecagon" viewBox="0 0 20 20">
|
||||||
|
<path d="M7.214 17h5.572l4.214-4.214v-5.572l-4.214-4.214h-5.572l-4.214 4.214v5.572l4.214 4.214zM13.2 18h-6.4l-4.8-4.8v-6.4l4.8-4.8h6.4l4.8 4.8v6.4l-4.8 4.8z"></path>
|
||||||
|
<path d="M8 8v1h-1v1h1v3h1v-5h-1z"></path>
|
||||||
|
<path d="M12.682 8.318c0.183 0.183 0.296 0.424 0.318 0.682v1h-1v-1h-2v-1h2c0.258 0.023 0.499 0.135 0.682 0.318zM11 11v-1h1v1h-1zM11 11v1h2v1h-3v-2h1z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-donut" viewBox="0 0 20 20">
|
||||||
|
<path d="M10 17c-3.866 0-7-3.134-7-7s3.134-7 7-7c3.866 0 7 3.134 7 7s-3.134 7-7 7zM10 18c4.418 0 8-3.582 8-8s-3.582-8-8-8c-4.418 0-8 3.582-8 8s3.582 8 8 8z"></path>
|
||||||
|
<path d="M10 14c-2.209 0-4-1.791-4-4s1.791-4 4-4c2.209 0 4 1.791 4 4s-1.791 4-4 4zM10 15c2.761 0 5-2.239 5-5s-2.239-5-5-5c-2.761 0-5 2.239-5 5s2.239 5 5 5z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-doubleWave" viewBox="0 0 20 20">
|
||||||
|
<path d="M3 14.041c0.167-0.027 0.334-0.041 0.5-0.041 0.603 0 1.123 0.202 1.55 0.433 0.367 0.199 0.724 0.454 1.029 0.671 0.039 0.028 0.076 0.055 0.113 0.081 0.725 0.515 1.233 0.815 1.809 0.815 0.361 0 0.577-0.080 0.737-0.174 0.186-0.109 0.346-0.264 0.594-0.521 0.013-0.014 0.027-0.028 0.041-0.042 0.221-0.229 0.531-0.551 0.932-0.8 0.461-0.286 1.010-0.463 1.696-0.463 0.688 0 1.232 0.179 1.683 0.488 0.357 0.245 0.633 0.565 0.817 0.778 0.023 0.027 0.045 0.053 0.066 0.076 0.207 0.237 0.347 0.374 0.524 0.473 0.163 0.091 0.427 0.186 0.911 0.186 0.216 0 0.502-0.107 0.75-0.306 0.118-0.094 0.197-0.186 0.239-0.251 0.004-0.007 0.008-0.013 0.011-0.018v-8.465c-0.166 0.026-0.333 0.039-0.5 0.039-0.606 0-1.121-0.204-1.542-0.439-0.346-0.193-0.685-0.442-0.973-0.652-0.047-0.034-0.092-0.068-0.136-0.099-0.686-0.499-1.202-0.809-1.849-0.809-0.56 0-0.803 0.218-1.293 0.707-0.009 0.009-0.017 0.017-0.026 0.026-0.51 0.511-1.266 1.267-2.681 1.267-0.688 0-1.232-0.179-1.683-0.488-0.357-0.245-0.633-0.565-0.817-0.778-0.023-0.027-0.045-0.053-0.066-0.076-0.207-0.237-0.347-0.374-0.524-0.473-0.163-0.091-0.427-0.186-0.911-0.186-0.315 0-0.61 0.098-0.802 0.232-0.185 0.129-0.198 0.228-0.198 0.268v8.541zM3 15.059c-0.355 0.080-0.711 0.238-1 0.441v-10c0-0.9 1-1.5 2-1.5 1.32 0 1.803 0.557 2.26 1.083 0.409 0.471 0.796 0.917 1.74 0.917 1 0 1.5-0.5 2-1s1-1 2-1c1.072 0 1.856 0.574 2.585 1.108 0.631 0.462 1.219 0.892 1.915 0.892 0.164 0 0.332-0.019 0.5-0.056 0.345-0.075 0.69-0.226 1-0.444v10c0 0.6-1 1.5-2 1.5-1.32 0-1.803-0.557-2.26-1.083-0.408-0.471-0.796-0.917-1.74-0.917-0.984 0-1.452 0.484-1.927 0.976-0.491 0.508-0.99 1.024-2.073 1.024-0.984 0-1.765-0.556-2.502-1.082-0.661-0.471-1.288-0.918-1.998-0.918-0.161 0-0.331 0.021-0.5 0.059z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-downArrow" viewBox="0 0 20 20">
|
||||||
|
<path d="M8 9h-3l5.5 7.333 5.5-7.333h-3v-6h-5v6zM18 8l-7.5 10-7.5-10h4v-6h7v6h4z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-downArrowCallout" viewBox="0 0 20 20">
|
||||||
|
<path d="M12 10h4v-7h-11v7h4v4h-1.413l2.913 2.648 2.913-2.648h-1.413v-4zM16 13l-5.5 5-5.5-5h3v-2h-4v-9h13v9h-4v2h3z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-ellipse" viewBox="0 0 20 20">
|
||||||
|
<path d="M10 5c3.9 0 7 2.2 7 5s-3.1 5-7 5c-3.9 0-7-2.2-7-5s3.1-5 7-5zM10 4c-4.4 0-8 2.7-8 6s3.6 6 8 6c4.4 0 8-2.7 8-6s-3.6-6-8-6z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-ellipseRibbon" viewBox="0 0 20 20">
|
||||||
|
<path d="M4.566 9l-1.8-3h3.234v6h-3.234l1.8-3zM7 8.436c0.848 0.364 1.897 0.564 3 0.564s2.152-0.199 3-0.564v4.314c0 0.1-0.082 0.393-0.662 0.719-0.548 0.308-1.373 0.531-2.338 0.531s-1.79-0.222-2.338-0.531c-0.58-0.326-0.662-0.62-0.662-0.719v-4.314zM14 6h3.234l-1.8 3 1.8 3h-3.234v-6zM13.976 13h5.024l-2.4-4 2.4-4h-7c-0.552 0-1 0.448-1 1v1.937c-0.32 0.041-0.655 0.063-1 0.063s-0.68-0.022-1-0.063v-1.937c0-0.552-0.448-1-1-1h-7l2.4 4-2.4 4h5.024c0.221 1.125 1.917 2 3.976 2s3.754-0.875 3.976-2z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-ellipseRibbon2" viewBox="0 0 20 20">
|
||||||
|
<path d="M15.434 11l1.8 3h-3.234v-6h3.234l-1.8 3zM13 11.563c-0.848-0.364-1.897-0.563-3-0.563s-2.152 0.199-3 0.563v-4.313c0-0.1 0.082-0.393 0.662-0.719 0.548-0.308 1.373-0.531 2.338-0.531s1.79 0.222 2.338 0.531c0.579 0.326 0.662 0.62 0.662 0.719v4.313zM6 14h-3.234l1.8-3-1.8-3h3.234v6zM6.024 7h-5.024l2.4 4-2.4 4h7c0.552 0 1-0.448 1-1v-1.937c0.32-0.041 0.655-0.063 1-0.063s0.68 0.022 1 0.063v1.937c0 0.552 0.448 1 1 1h7l-2.4-4 2.4-4h-5.024c-0.221-1.125-1.917-2-3.976-2s-3.754 0.875-3.976 2z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-flowChartAlternateProcess" viewBox="0 0 20 20">
|
||||||
|
<path d="M14 5h-8c-1.657 0-3 1.343-3 3v4c0 1.657 1.343 3 3 3h8c1.657 0 3-1.343 3-3v-4c0-1.657-1.343-3-3-3zM6 4h8c2.209 0 4 1.791 4 4v4c0 2.209-1.791 4-4 4h-8c-2.209 0-4-1.791-4-4v-4c0-2.209 1.791-4 4-4z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-flowChartCollate" viewBox="0 0 20 20">
|
||||||
|
<path d="M5 17l4.5-7-4.5-7h9l-4.5 7 4.5 7h-9zM9.5 8.151l2.668-4.151h-5.337l2.668 4.151zM9.5 11.849l-2.668 4.151h5.337l-2.668-4.151z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-flowChartConnector" viewBox="0 0 20 20">
|
||||||
|
<path d="M10 15c2.761 0 5-2.239 5-5s-2.239-5-5-5c-2.761 0-5 2.239-5 5s2.239 5 5 5zM16 10c0 3.314-2.686 6-6 6s-6-2.686-6-6c0-3.314 2.686-6 6-6s6 2.686 6 6z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-flowChartDecision" viewBox="0 0 20 20">
|
||||||
|
<path d="M3 9.5l7.5-4.5 7.5 4.5-7.5 4.5-7.5-4.5zM4.944 9.5l5.556 3.334 5.556-3.334-5.556-3.334-5.556 3.334z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-flowChartDelay" viewBox="0 0 20 20">
|
||||||
|
<path d="M9.999 4c3.252 0.007 5.976 2.727 6.001 6.005 0.009 3.285-2.732 5.988-6.001 5.995h-5.999l-0-12h5.999zM10 3h-7l0 14h7c3.813-0.007 7.012-3.151 7-7-0.027-3.822-3.193-6.993-7-7z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-flowChartDisplay" viewBox="0 0 20 20">
|
||||||
|
<path d="M7.6 16l-3.467-6.5 3.467-6.5h5.87c0.769 0 1.629 0.524 2.352 1.727 0.71 1.183 1.179 2.874 1.179 4.773s-0.468 3.59-1.179 4.773c-0.722 1.203-1.583 1.727-2.352 1.727h-5.87zM3 9.5l4 7.5h6.47c2.517 0 4.53-3.4 4.53-7.5s-2.013-7.5-4.53-7.5h-6.47l-4 7.5z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-flowChartDocument" viewBox="0 0 20 20">
|
||||||
|
<path d="M17 5h-14v8.679c0.307 0.4 0.804 0.93 1.435 1.385 0.763 0.55 1.644 0.936 2.565 0.936 1.674 0 2.79-0.518 4.24-1.192 0.064-0.030 0.129-0.060 0.194-0.090l0.030-0.014c1.499-0.695 3.203-1.485 5.537-1.666v-8.038zM18 14c-2.639 0-4.443 0.836-6.146 1.625-0.077 0.036-0.153 0.071-0.229 0.106-1.43 0.665-2.726 1.268-4.626 1.268-2.4 0-4.333-2-5-3v-10h16v10z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-flowChartExtract" viewBox="0 0 20 20">
|
||||||
|
<path d="M3 16l6.5-13 6.5 13h-13zM4.618 15h9.764l-4.882-9.764-4.882 9.764z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-flowChartInputOutput" viewBox="0 0 20 20">
|
||||||
|
<path d="M2 16l4.966-12h11.034l-5.076 12h-10.924zM3.496 15h8.765l4.23-10h-8.857l-4.138 10z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-flowChartInternalStorage" viewBox="0 0 20 20">
|
||||||
|
<path d="M16 4h-12v12h12v-12zM17 3v14h-14v-14h14z"></path>
|
||||||
|
<path d="M6 3h-1v14h1v-14z"></path>
|
||||||
|
<path d="M17 5h-14v1h14v-1z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-flowChartMagneticDisk" viewBox="0 0 20 20">
|
||||||
|
<path d="M15.998 7.985c0.382-0.162 0.718-0.34 1-0.53v6.737c0 0 0 0 0 0-0.049 0.047-0.131 0.115-0.26 0.199-0.371 0.242-0.956 0.51-1.701 0.759-1.484 0.496-3.389 0.85-4.984 0.85s-3.501-0.354-5-0.851c-0.495-0.164-0.924-0.337-1.271-0.506-0.18-0.088-0.338-0.175-0.472-0.26-0.148-0.094-0.244-0.17-0.301-0.225-0.003-0.003-0.006-0.006-0.009-0.008v-6.697c0.282 0.191 0.618 0.369 1 0.531 1.466 0.623 3.611 1.016 6 1.016s4.532-0.392 5.998-1.015zM2.439 14.988c0.098 0.080 0.21 0.16 0.336 0.24 0.487 0.308 1.171 0.607 1.963 0.87 1.584 0.525 3.597 0.902 5.315 0.902s3.731-0.377 5.301-0.902c0.785-0.263 1.459-0.562 1.931-0.87 0.021-0.014 0.042-0.028 0.062-0.041 0.097-0.066 0.181-0.13 0.253-0.191 0.032-0.027 0.062-0.054 0.090-0.082 0.184-0.177 0.293-0.353 0.308-0.524 0.002-0.027 0.002-0.055 0-0.082v-8.243c0.001-0.022 0.002-0.043 0.002-0.065s-0.001-0.043-0.002-0.065v-0.027l-0.003-0.008c-0.008-0.096-0.029-0.19-0.061-0.284-0.467-1.371-3.403-2.453-7.084-2.599-0.261-0.011-0.527-0.017-0.798-0.017h-0.053c-4.070 0-7.431 1.14-7.935 2.615-0.041 0.121-0.064 0.245-0.065 0.37-0 0.005-0 0.010-0 0.015l0 0.015-0 8.292c0 0.103 0.035 0.209 0.101 0.316 0.009 0.014 0.018 0.028 0.028 0.043 0.006 0.009 0.013 0.018 0.020 0.027 0.043 0.058 0.094 0.116 0.154 0.173 0.042 0.040 0.087 0.081 0.136 0.121zM3.003 6.249l-0.003-0.247-0-0.002c0-0.026 0.010-0.17 0.292-0.419 0.281-0.249 0.744-0.519 1.402-0.766 1.309-0.491 3.185-0.815 5.306-0.815h0.053c0.257 0 0.509 0.005 0.756 0.016l0.003 0c1.885 0.075 3.519 0.405 4.664 0.865 0.575 0.231 0.982 0.477 1.236 0.703 0.256 0.228 0.285 0.369 0.288 0.403l0 0.002 0 0.002 0 0.008-0 0.008-0.002 0.028v0.212l-0.559 0.378c-1.124 0.759-3.51 1.374-6.439 1.374-2.93 0-5.317-0.616-6.44-1.375l-0.557-0.376zM2.948 14.092c-0 0-0 0 0 0s0 0.001 0.001 0.002c0 0.001 0.001 0.002 0.002 0.003z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-flowChartMagneticDrum" viewBox="0 0 20 20">
|
||||||
|
<path d="M12.015 15.998c0.162 0.382 0.34 0.718 0.531 1h-6.737c0 0 0 0 0 0-0.047-0.049-0.115-0.131-0.199-0.26-0.242-0.371-0.51-0.956-0.759-1.701-0.496-1.484-0.85-3.389-0.85-4.984s0.354-3.501 0.851-5c0.164-0.495 0.337-0.924 0.506-1.271 0.088-0.18 0.175-0.338 0.26-0.472 0.094-0.148 0.17-0.244 0.225-0.301 0.003-0.003 0.006-0.006 0.008-0.009h6.697c-0.191 0.282-0.369 0.618-0.531 1-0.623 1.466-1.016 3.611-1.016 6s0.393 4.532 1.015 5.998zM5.012 2.439c-0.080 0.098-0.16 0.21-0.24 0.336-0.308 0.487-0.607 1.171-0.87 1.963-0.525 1.584-0.902 3.597-0.902 5.315s0.377 3.731 0.902 5.301c0.262 0.785 0.562 1.459 0.87 1.931 0.014 0.021 0.028 0.042 0.041 0.062 0.066 0.097 0.13 0.181 0.191 0.253 0.027 0.032 0.054 0.062 0.082 0.090 0.177 0.184 0.353 0.293 0.524 0.308 0.028 0.002 0.055 0.002 0.082 0h8.243c0.022 0.001 0.043 0.002 0.065 0.002s0.043-0.001 0.065-0.002h0.027l0.008-0.003c0.096-0.008 0.19-0.029 0.284-0.061 1.371-0.467 2.453-3.403 2.599-7.084 0.011-0.261 0.017-0.527 0.017-0.798v-0.053c0-4.070-1.14-7.431-2.615-7.935-0.121-0.041-0.244-0.064-0.37-0.065-0.005-0-0.010-0-0.015-0l-0.015 0-8.292-0c-0.103 0-0.209 0.035-0.316 0.101-0.014 0.009-0.029 0.018-0.043 0.028-0.009 0.006-0.018 0.013-0.027 0.020-0.058 0.043-0.115 0.094-0.173 0.154-0.040 0.042-0.081 0.087-0.121 0.136zM13.751 3.003l0.249-0.003c0.026 0 0.17 0.010 0.419 0.292 0.249 0.281 0.519 0.744 0.766 1.402 0.491 1.309 0.815 3.185 0.815 5.306v0.053c0 0.257-0.005 0.509-0.016 0.756l-0 0.003c-0.075 1.885-0.405 3.519-0.865 4.664-0.231 0.575-0.477 0.982-0.703 1.236-0.228 0.256-0.369 0.285-0.403 0.288l-0.002 0-0.002 0-0.008 0-0.008-0-0.028-0.002h-0.212l-0.378-0.559c-0.759-1.124-1.374-3.51-1.374-6.439 0-2.93 0.616-5.317 1.375-6.44l0.376-0.557zM5.908 2.948c0-0 0-0 0 0s-0.001 0-0.002 0.001c-0.001 0-0.002 0.001-0.003 0.002z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-flowChartMagneticTape" viewBox="0 0 20 20">
|
||||||
|
<path d="M13.829 15h3.171v1h-7c-3.314 0-6-2.686-6-6s2.686-6 6-6c3.314 0 6 2.686 6 6 0 1.276-0.397 2.456-1.075 3.428l-1.097 1.572zM16.326 13c0.432-0.909 0.674-1.926 0.674-3 0-3.866-3.134-7-7-7s-7 3.134-7 7c0 3.866 3.134 7 7 7h8v-3h-2.255c0.22-0.315 0.415-0.65 0.581-1z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-flowChartManualInput" viewBox="0 0 20 20">
|
||||||
|
<path d="M3 9.735l14-4.375v9.64h-14v-5.265zM2 9v7h16v-12l-16 5z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-flowChartManualOperation" viewBox="0 0 20 20">
|
||||||
|
<path d="M6.721 15l-3.333-10h13.196l-3.556 10h-6.307zM6 16h7.733l4.267-12h-16l4 12z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-flowChartMerge" viewBox="0 0 20 20">
|
||||||
|
<path d="M16 3l-6.5 13-6.5-13h13zM14.382 4h-9.764l4.882 9.764 4.882-9.764z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-flowChartMultidocument" viewBox="0 0 20 20">
|
||||||
|
<path d="M13 9v5c-1.61 0.094-3.179 0.538-4.6 1.3-0.718 0.455-1.55 0.698-2.4 0.7-0.568 0.044-1.138-0.052-1.661-0.278s-0.982-0.577-1.339-1.022v-5.7h10zM14 8h-12v7c0.419 0.668 1.014 1.208 1.72 1.561s1.494 0.505 2.28 0.439c3 0 3-2 8-2v-7z"></path>
|
||||||
|
<path d="M4 6v2h1v-1h10v6h-1v1h2v-8h-12z"></path>
|
||||||
|
<path d="M6 4v2h1v-1h10v7h-1v1h2v-9h-12z"></path>
|
||||||
|
<path d="M6 5.998h-2v1.998h-2v6.992c0.419 0.667 1.014 1.207 1.72 1.559s1.494 0.504 2.28 0.438c1.309 0 2.047-0.381 2.879-0.809 1.074-0.554 2.303-1.188 5.121-1.188v-0.999h2v-0.999h2v-8.99h-12v1.998zM7 5.998v-0.999h10v6.992h-1v-5.993h-9zM14 7.995h-9v-0.999h10v5.993h-1v-4.994zM13 8.994v4.994c-1.61 0.094-3.179 0.537-4.6 1.298-0.718 0.455-1.55 0.697-2.4 0.699-0.568 0.044-1.138-0.052-1.661-0.278s-0.982-0.577-1.339-1.021v-5.694h10z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-flowChartOffpageConnector" viewBox="0 0 20 20">
|
||||||
|
<path d="M6 9.948l4.5 3.75 4.5-3.75v-4.948h-9v4.948zM16 10.417l-5.5 4.583-5.5-4.583v-6.417h11v6.417z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-flowChartOnlineStorage" viewBox="0 0 20 20">
|
||||||
|
<path d="M5.318 12.682c-0.844-0.844-1.318-1.988-1.318-3.182s0.474-2.338 1.318-3.182 1.989-1.318 3.182-1.318h5.964c-0.208 0.278-0.397 0.57-0.566 0.876-0.613 1.11-0.934 2.357-0.934 3.624s0.321 2.515 0.934 3.624c0.169 0.306 0.358 0.598 0.566 0.876h-5.964c-1.193 0-2.338-0.474-3.182-1.318zM8.5 4c-1.459 0-2.858 0.579-3.889 1.611s-1.611 2.43-1.611 3.889c0 1.459 0.579 2.858 1.611 3.889s2.43 1.611 3.889 1.611h8.5c-0.45-0.283-0.861-0.619-1.226-1-0.389-0.406-0.726-0.862-1-1.359-0.531-0.962-0.809-2.043-0.809-3.141s0.278-2.179 0.809-3.141c0.274-0.496 0.611-0.953 1-1.359 0.365-0.381 0.777-0.717 1.226-1h-8.5z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-flowChartOr" viewBox="0 0 20 20">
|
||||||
|
<path d="M10 15.981c-3.191-0.243-5.738-2.79-5.981-5.981h5.981v5.981zM4.019 9c0.243-3.191 2.79-5.738 5.981-5.981v5.981h-5.981zM16.981 10c-0.243 3.191-2.79 5.738-5.981 5.981v-5.981h5.981zM16.981 9h-5.981v-5.981c3.191 0.243 5.738 2.79 5.981 5.981zM17.984 9c-0.257-3.909-3.509-7-7.484-7-4.142 0-7.5 3.358-7.5 7.5s3.358 7.5 7.5 7.5c3.974 0 7.226-3.091 7.484-7h0.016v-1h-0.016z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-flowChartPredefinedProcess" viewBox="0 0 20 20">
|
||||||
|
<path d="M17 5h-14v10h14v-10zM18 4v12h-16v-12h16z"></path>
|
||||||
|
<path d="M5 4h-1v12h1v-12z"></path>
|
||||||
|
<path d="M16 4h-1v12h1v-12z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-flowChartPreparation" viewBox="0 0 20 20">
|
||||||
|
<path d="M7.378 14l-4.035-4.5 4.035-4.5h5.244l4.035 4.5-4.035 4.5h-5.244zM2 9.5l4.932 5.5h6.137l4.932-5.5-4.932-5.5h-6.137l-4.932 5.5z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-flowChartProcess" viewBox="0 0 20 20">
|
||||||
|
<path d="M17 5h-14v10h14v-10zM18 4v12h-16v-12h16z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-flowChartPunchedCard" viewBox="0 0 20 20">
|
||||||
|
<path d="M3 8.448l3.417-3.448h10.583v10h-14v-6.552zM2 8.036v7.964h16v-12h-12l-4 4.036z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-flowChartPunchedTape" viewBox="0 0 20 20">
|
||||||
|
<path d="M3 12.594v-6.591c0.321 0.163 0.65 0.301 0.972 0.418 1.029 0.373 2.145 0.579 3.028 0.579 1.45 0 2.503-0.565 3.376-1.033 0.053-0.028 0.105-0.057 0.157-0.084 0.907-0.484 1.724-0.882 2.967-0.882 1.106 0 1.814 0.219 2.338 0.501 0.435 0.235 0.78 0.53 1.162 0.892v6.57c-0.953-0.558-2.121-0.963-3.5-0.963-1.737 0-2.915 0.589-3.916 1.090l-0.032 0.016c-0.992 0.496-1.808 0.894-3.053 0.894-1.391 0-2.068-0.232-2.486-0.482-0.339-0.203-0.542-0.42-0.845-0.743-0.053-0.057-0.109-0.117-0.17-0.18zM2 13c0.127 0.127 0.246 0.254 0.363 0.379 0.804 0.859 1.518 1.621 4.137 1.621 1.5 0 2.5-0.5 3.5-1s2-1 3.5-1c1.418 0 2.585 0.503 3.5 1.152 0.376 0.266 0.709 0.557 1 0.848v-9.033c-0.013-0.013-0.027-0.026-0.040-0.039-0.987-0.955-1.993-1.928-4.46-1.928-2 0-2.59 0.547-3.565 1.068-0.89 0.476-1.742 0.932-2.935 0.932-1.123 0-2.805-0.402-4-1.142-0.402-0.249-0.748-0.536-1-0.858v9z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-flowChartSort" viewBox="0 0 20 20">
|
||||||
|
<path d="M6.357 10h8.287l-4.143-4.52-4.143 4.52zM16 10v1l-5.5 6-5.5-6v-1l5.5-6 5.5 6zM6.357 11l4.143 4.52 4.143-4.52h-8.287z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-flowChartSummingJunction" viewBox="0 0 20 20">
|
||||||
|
<path d="M14.729 15.436l-4.229-4.229-4.229 4.229c1.137 0.975 2.614 1.564 4.229 1.564s3.092-0.589 4.229-1.564zM15.436 14.729c0.975-1.137 1.564-2.614 1.564-4.229s-0.589-3.092-1.564-4.229l-4.229 4.229 4.229 4.229zM14.729 5.564c-1.137-0.975-2.614-1.564-4.229-1.564s-3.092 0.589-4.229 1.564l4.229 4.229 4.229-4.229zM5.564 6.271c-0.975 1.137-1.564 2.614-1.564 4.229s0.589 3.092 1.564 4.229l4.229-4.229-4.229-4.229zM18 10.5c0 4.142-3.358 7.5-7.5 7.5s-7.5-3.358-7.5-7.5c0-4.142 3.358-7.5 7.5-7.5s7.5 3.358 7.5 7.5z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-flowChartTerminator" viewBox="0 0 20 20">
|
||||||
|
<path d="M3.934 12.099c-0.606-0.568-0.934-1.325-0.934-2.099s0.327-1.531 0.934-2.099c0.608-0.57 1.447-0.901 2.333-0.901h7.467c0.887 0 1.725 0.331 2.333 0.901 0.606 0.568 0.934 1.325 0.934 2.099s-0.327 1.531-0.934 2.099c-0.608 0.57-1.447 0.901-2.333 0.901h-7.467c-0.886 0-1.725-0.331-2.333-0.901zM3.25 12.828c0.8 0.75 1.885 1.172 3.017 1.172h7.467c1.132 0 2.217-0.421 3.017-1.172s1.25-1.767 1.25-2.828c0-1.061-0.449-2.078-1.25-2.828s-1.885-1.172-3.017-1.172h-7.467c-1.132 0-2.217 0.421-3.017 1.172s-1.25 1.768-1.25 2.828c0 1.061 0.45 2.078 1.25 2.828z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-foldedCorner" viewBox="0 0 20 20">
|
||||||
|
<path d="M16 12v-8h-12v12h8v-4h4zM17 12v2l-3 3h-11v-14h14v9zM16 13h-3v3h0.6l2.4-2.4v-0.6z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-frame" viewBox="0 0 20 20">
|
||||||
|
<path d="M17 3v14h-14v-14h14zM4 16h12v-12h-12v12zM18 2h-16v16h16v-16zM5 15v-10h10v10h-10z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-halfFrame" viewBox="0 0 20 20">
|
||||||
|
<path d="M5 5v10l-3 3v-16h16l-3 3h-10zM4 14.586v-10.586h10.586l1-1h-12.586v12.586l1-1z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-heart" viewBox="0 0 20 20">
|
||||||
|
<path d="M15.902 10.516l0.010-0.010c1.451-1.488 1.451-3.912 0-5.4-1.438-1.474-3.758-1.474-5.196-0l-0.716 0.734-0.716-0.734c-1.438-1.474-3.758-1.474-5.196 0-1.451 1.488-1.451 3.912 0 5.4l0.009 0.009 0.002 0.002 5.901 6.051 5.902-6.052zM10 18l-6.627-6.796c-1.83-1.877-1.83-4.92 0-6.796 1.773-1.818 4.614-1.875 6.454-0.17 0.059 0.055 0.117 0.111 0.174 0.17 0.057-0.058 0.115-0.115 0.174-0.17 1.84-1.705 4.68-1.649 6.454 0.17 1.83 1.877 1.83 4.92 0 6.796l-0.011 0.011-6.617 6.785z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-heptagon" viewBox="0 0 20 20">
|
||||||
|
<path d="M7.003 17l-3.924-5.108 1.399-6.2 5.544-2.575 5.197 2.786 1.685 6.021-3.807 5.076h-6.094zM2 12.129l4.51 5.871h7.087l4.403-5.871-1.933-6.906-6.013-3.223-6.443 2.993-1.611 7.137z"></path>
|
||||||
|
<path d="M11 7h-3v1h3v1h1v-2h-1z"></path>
|
||||||
|
<path d="M11 9h-1v2h1v-2z"></path>
|
||||||
|
<path d="M10 11h-1v2h1v-2z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-hexagon" viewBox="0 0 20 20">
|
||||||
|
<path d="M6.531 16l-3.383-6 3.383-6h6.74l3.566 6-3.566 6h-6.74zM2 10l3.947 7h7.893l4.16-7-4.16-7h-7.893l-3.947 7z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-homePlate" viewBox="0 0 20 20">
|
||||||
|
<path d="M4 5v9h7.367l4.257-4.5-4.257-4.5h-7.367zM11.797 4l5.203 5.5-5.203 5.5h-8.797v-11h8.797z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-horizontalScroll" viewBox="0 0 20 20">
|
||||||
|
<path d="M4 7c0.552 0 1 0.448 1 1s-0.448 1-1 1c-0.552 0-1-0.448-1-1s0.448-1 1-1zM5 6h-1c-1.105 0-2 0.895-2 2v8c0 1.105 0.895 2 2 2s2-0.895 2-2h10c1.105 0 2-0.895 2-2v-9c0-1.105-0.895-2-2-2s-2 0.895-2 2v1h-9zM17 5c0 0.552-0.448 1-1 1s-1-0.448-1-1c0-0.552 0.448-1 1-1s1 0.448 1 1zM17 7v7c0 0.552-0.448 1-1 1h-10v-8h11zM4 10c0.364 0 0.706-0.097 1-0.268v6.268c0 0.552-0.448 1-1 1s-1-0.448-1-1v-6.268c0.294 0.17 0.636 0.268 1 0.268z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-irregularSeal1" viewBox="0 0 20 20">
|
||||||
|
<path d="M9.199 11.387l1.801 3.002v-2.237l3.802-0.634-2.321-1.161 2.048-2.731-2.529 0.613v-2.631l-1.908 3.179-2.092-2.79v2h-3l2.731 2.048-1.428 0.952h1.978l-0.435 1.74 1.353-1.353zM6 16l1-4h-4l3-2-4-3h5v-4l3 4 3-5v4.97l4-0.97-3 4 4 2-6 1v5l-3-5-3 3z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-irregularSeal2" viewBox="0 0 20 20">
|
||||||
|
<path d="M7.030 12.617v2.956l2.968-2.99 1.157 1.157-0.599-2.395 3.827 1.531-1.251-1.876h1.566l-1.5-1 1.5-1h-1.174l1.572-3.929-3.095 1.547v-1.315l-0.658 0.986-1.342-0.671v3l-3.261-1.63 0.691 2.012h-2.474l2.479 1.894-1.648 2.133 1.242-0.41zM2 8h4.030l-1.030-3 4 2v-3l2 1 2-3v3l4-2-2 5h3l-3 2 3 2h-3l2 3-5-2 1 4-3-3-3.97 4v-4l-3.030 1 3.030-3.922-4.030-3.078z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-leftArrow" viewBox="0 0 20 20">
|
||||||
|
<path d="M11 8v-3l-7.333 5.5 7.333 5.5v-3h6v-5h-6zM12 18l-10-7.5 10-7.5v4h6v7h-6v4z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-leftArrowCallout" viewBox="0 0 20 20">
|
||||||
|
<path d="M10 12v4h7v-11h-7v4h-4v-1.413l-2.649 2.913 2.649 2.913v-1.413h4zM7 16l-5-5.5 5-5.5v3h2v-4h9v13h-9v-4h-2v3z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-leftBrace" viewBox="0 0 20 20">
|
||||||
|
<path d="M11.4 3.9c-0.482 0.176-0.891 0.507-1.163 0.942s-0.39 0.948-0.337 1.458v1.6c0.046 0.471-0.054 0.944-0.287 1.355s-0.586 0.741-1.013 0.945c0.427 0.203 0.781 0.533 1.013 0.945s0.333 0.885 0.287 1.355v1.5c0 1.4 0.5 2.2 1.5 2.5l-0.2 0.9c-0.764-0.208-1.457-0.623-2-1.2-0.421-0.655-0.63-1.423-0.6-2.2v-1.5c0-1.2-0.6-1.8-1.6-1.8v-1c1 0 1.6-0.6 1.6-1.8v-1.5c-0.030-0.777 0.179-1.545 0.6-2.2 0.558-0.558 1.245-0.971 2-1.2l0.2 0.9z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-leftBracket" viewBox="0 0 20 20">
|
||||||
|
<path d="M10.001 16.998c-0.53 0-1.039-0.211-1.414-0.586s-0.586-0.884-0.586-1.414v-8.998c0-0.53 0.211-1.039 0.586-1.414s0.883-0.586 1.414-0.586h1.999v-1h-1.999c-0.398-0.014-0.794 0.054-1.164 0.2s-0.706 0.366-0.988 0.648c-0.281 0.281-0.502 0.618-0.647 0.988s-0.214 0.766-0.2 1.164v8.998c-0.014 0.398 0.054 0.794 0.2 1.164s0.366 0.707 0.647 0.988c0.281 0.281 0.618 0.502 0.988 0.648s0.766 0.214 1.164 0.2h1.999v-1h-1.999z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-leftRightArrow" viewBox="0 0 20 20">
|
||||||
|
<path d="M13 13v2.149l3.719-4.649-3.719-4.649v2.149h-6v-2.149l-3.719 4.649 3.719 4.649v-2.149h6zM8 18l-6-7.5 6-7.5v4h4v-4l6 7.5-6 7.5v-4h-4v4z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-leftRightArrowCallout" viewBox="0 0 20 20">
|
||||||
|
<path d="M8 12h-4v0.37l-1.662-1.87 1.662-1.87v0.37h4v-5h4v5h4v-0.37l1.662 1.87-1.662 1.87v-0.37h-4v5h-4v-5zM1 10.5l4 4.5v-2h2v5h6v-5h2v2l4-4.5-4-4.5v2h-2v-5h-6v5h-2v-2l-4 4.5z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-leftRightUpArrow" viewBox="0 0 20 20">
|
||||||
|
<path d="M10.5 3l3.5 4h-2v5h3v-2l4 3.5-4 3.5v-2h-9v2l-4-3.5 4-3.5v2h3v-5h-2l3.5-4zM11.796 6l-1.296-1.481-1.296 1.481h0.796v7h-5v-0.796l-1.481 1.296 1.481 1.296v-0.796h11v0.796l1.481-1.296-1.481-1.296v0.796h-5v-7h0.796z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-leftUpArrow" viewBox="0 0 20 20">
|
||||||
|
<path d="M13 12h-6v-1.755l-2.505 2.255 2.505 2.255v-1.755h7v-7h1.755l-2.255-2.505-2.255 2.505h1.755v6zM9 7l4.5-5 4.5 5h-3v7h-7v3l-5-4.5 5-4.5v3h4v-4h-3z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-lightningBolt" viewBox="0 0 20 20">
|
||||||
|
<path d="M8.933 3.3l2.133 2.8-1.493 0.6 4.053 3.9-0.96 0.4 2.347 4-3.307-1.9 1.28-0.6-5.227-3.2 1.707-0.9-5.227-3.3 4.693-1.8zM9 2l-7 3 5.333 3.3-1.707 0.9 5.227 3.2-1.387 0.6 8.533 5-3.84-6.5 1.173-0.6-3.947-3.8 1.28-0.6-3.667-4.5z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-line" viewBox="0 0 20 20">
|
||||||
|
<path d="M16.647 17.354l-14-14 0.707-0.707 14 14-0.707 0.707z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-lineWithArrow" viewBox="0 0 20 20">
|
||||||
|
<path d="M16 15.293v-2.293h1v4h-4v-1h2.293l-12.646-12.646 0.707-0.707 12.646 12.646z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-lineWithTwoArrows" viewBox="0 0 20 20">
|
||||||
|
<path d="M3 3v4h1v-2.293l11.293 11.293h-2.293v1h4v-4h-1v2.293l-11.293-11.293h2.293v-1h-4zM4 4v0z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-mathDivide" viewBox="0 0 20 20">
|
||||||
|
<path fill="#444" style="fill: var(--color1, #444)" d="M16 9h-11v2h11v-2zM17 8v4h-13v-4h13z"></path>
|
||||||
|
<path fill="#fff" style="fill: var(--color2, #fff)" d="M10.5 7c0.828 0 1.5-0.672 1.5-1.5s-0.672-1.5-1.5-1.5c-0.828 0-1.5 0.672-1.5 1.5s0.672 1.5 1.5 1.5z"></path>
|
||||||
|
<path fill="#444" style="fill: var(--color1, #444)" d="M10.5 6c0.276 0 0.5-0.224 0.5-0.5s-0.224-0.5-0.5-0.5c-0.276 0-0.5 0.224-0.5 0.5s0.224 0.5 0.5 0.5zM12 5.5c0 0.828-0.672 1.5-1.5 1.5s-1.5-0.672-1.5-1.5 0.672-1.5 1.5-1.5c0.828 0 1.5 0.672 1.5 1.5z"></path>
|
||||||
|
<path fill="#fff" style="fill: var(--color2, #fff)" d="M10.5 16c0.828 0 1.5-0.672 1.5-1.5s-0.672-1.5-1.5-1.5c-0.828 0-1.5 0.672-1.5 1.5s0.672 1.5 1.5 1.5z"></path>
|
||||||
|
<path fill="#444" style="fill: var(--color1, #444)" d="M10.5 15c0.276 0 0.5-0.224 0.5-0.5s-0.224-0.5-0.5-0.5c-0.276 0-0.5 0.224-0.5 0.5s0.224 0.5 0.5 0.5zM12 14.5c0 0.828-0.672 1.5-1.5 1.5s-1.5-0.672-1.5-1.5 0.672-1.5 1.5-1.5c0.828 0 1.5 0.672 1.5 1.5z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-mathEqual" viewBox="0 0 20 20">
|
||||||
|
<path d="M16 6h-12v2h12v-2zM17 5v4h-14v-4h14z"></path>
|
||||||
|
<path d="M16 11h-12v2h12v-2zM17 10v4h-14v-4h14z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-mathMinus" viewBox="0 0 20 20">
|
||||||
|
<path d="M16 9h-12v2h12v-2zM17 8v4h-14v-4h14z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-mathMultiply" viewBox="0 0 20 20">
|
||||||
|
<path d="M7.717 9.947l-3.717-3.717 2.23-2.23 3.717 3.717 3.823-3.717 2.23 2.23-3.717 3.717 3.717 3.823-2.23 2.23-3.823-3.717-3.717 3.717-2.23-2.23 3.717-3.823zM5.414 6.23l3.707 3.707-3.717 3.823 0.826 0.826 3.707-3.707 3.823 3.717 0.836-0.836-3.717-3.823 3.707-3.707-0.826-0.826-3.823 3.717-3.707-3.707-0.816 0.816z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-mathNotEqual" viewBox="0 0 20 20">
|
||||||
|
<path d="M3 17l10-13h4l-10 13h-4zM5.031 16h1.477l8.462-11h-1.477l-8.462 11z"></path>
|
||||||
|
<path d="M8.877 11h-5.877v4h2.8l3.077-4zM7.277 15l3.077-4h6.646v4h-9.723zM6.846 12l-1.538 2h-1.308v-2h2.846zM9.308 14h6.692v-2h-5.154l-1.539 2z"></path>
|
||||||
|
<path d="M12.723 6h-9.723v4h6.646l3.077-4zM11.123 10l3.077-4h2.8v4h-5.877zM10.692 7l-1.538 2h-5.154v-2h6.692zM13.154 9h2.846v-2h-1.308l-1.538 2z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-mathPlus" viewBox="0 0 20 20">
|
||||||
|
<path d="M12 12v5h-4v-5h-5v-4h5v-5h4v5h5v4h-5zM11 16v-5h5v-2h-5v-5h-2v5h-5v2h5v5h2z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-moon" viewBox="0 0 20 20">
|
||||||
|
<path d="M15.24 17.68c-0.46 0.133-0.922 0.221-1.381 0.267-4.528 0.448-8.797-3.223-8.859-7.947 0-4.766 4.348-8.399 8.861-7.948 0.459 0.046 0.921 0.134 1.379 0.268-0.384 0.232-0.746 0.493-1.086 0.778-2.011 1.69-3.213 4.245-3.181 6.902-0.032 2.656 1.169 5.21 3.179 6.9 0.34 0.286 0.703 0.547 1.087 0.78zM12.767 16.974c-1.784-1.846-2.822-4.363-2.794-6.974-0.028-2.612 1.011-5.131 2.798-6.977-3.566 0.175-6.767 3.168-6.771 6.971 0.053 3.787 3.207 6.796 6.767 6.98z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-noSmoking" viewBox="0 0 20 20">
|
||||||
|
<path d="M15.657 4.343c3.124 3.124 3.124 8.19 0 11.314s-8.189 3.124-11.314 0c-3.124-3.124-3.124-8.19 0-11.314s8.19-3.124 11.314 0zM13.864 11.036c0.356-1.335 0.011-2.818-1.036-3.864s-2.53-1.392-3.864-1.036l4.9 4.9zM14.656 11.827c-0.126 0.323-0.288 0.635-0.484 0.931l-6.93-6.93c0.296-0.196 0.608-0.357 0.931-0.484 1.794-0.703 3.913-0.33 5.363 1.12s1.823 3.568 1.12 5.363zM6.136 8.964l4.9 4.901c-1.335 0.356-2.818 0.010-3.864-1.036s-1.392-2.53-1.036-3.864zM5.344 8.173c-0.703 1.794-0.33 3.913 1.12 5.363s3.568 1.823 5.363 1.12c0.323-0.127 0.635-0.288 0.931-0.484l-6.93-6.93c-0.196 0.296-0.357 0.608-0.484 0.931zM14.95 14.95c2.734-2.734 2.734-7.166 0-9.899s-7.166-2.734-9.899 0-2.734 7.166 0 9.899c2.734 2.734 7.166 2.734 9.899 0z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-notchedRightArrow" viewBox="0 0 20 20">
|
||||||
|
<path d="M11 13.016h-5.832l2.147-2.516-2.147-2.516h5.832v-2.676l5.538 5.192-5.538 5.192v-2.676zM3 14.016h7v3.984l8-7.5-8-7.5v3.984h-7l3 3.516-3 3.516z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-octagon" viewBox="0 0 20 20">
|
||||||
|
<path fill="none" stroke="#444" style="stroke: var(--color1, #444)" stroke-linejoin="miter" stroke-linecap="butt" stroke-miterlimit="4" stroke-width="1" d="M7.007 17.5l-4.507-4.507v-5.986l4.507-4.507h5.986l4.507 4.507v5.986l-4.507 4.507h-5.986z"></path>
|
||||||
|
<path d="M8 6v7h4v-7h-4zM11 12h-2v-2h2v2zM11 9h-2v-2h2v2z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-parallelogram" viewBox="0 0 20 20">
|
||||||
|
<path d="M16.5 6l-4.2 10h-8.8l4.2-10h8.8zM18 5h-11l-5 12h11l5-12z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-pentagon" viewBox="0 0 20 20">
|
||||||
|
<path d="M10 3.203l6.811 4.561-2.733 8.235h-8.156l-2.733-8.235 6.811-4.561zM18 7.357l-8-5.357-8 5.357 3.2 9.643h9.6l3.2-9.643z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-pie" viewBox="0 0 20 20">
|
||||||
|
<path d="M10 10h8c0 0.336-0.021 0.669-0.063 1-0.155 1.228-0.593 2.408-1.286 3.445-0.879 1.316-2.128 2.341-3.59 2.946s-3.070 0.764-4.622 0.455c-1.552-0.309-2.977-1.071-4.096-2.189s-1.881-2.544-2.189-4.096c-0.309-1.552-0.15-3.16 0.455-4.622s1.631-2.711 2.946-3.59c1.037-0.693 2.217-1.131 3.445-1.286 0.331-0.042 0.664-0.063 1-0.063v8zM16.928 11h-7.928v-7.928c-1.029 0.149-2.017 0.525-2.889 1.108-1.151 0.769-2.048 1.862-2.578 3.142s-0.668 2.687-0.398 4.044c0.27 1.358 0.937 2.605 1.916 3.584s2.226 1.646 3.584 1.916 2.765 0.132 4.044-0.398c1.279-0.53 2.372-1.427 3.142-2.578 0.582-0.872 0.959-1.86 1.108-2.889z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-plaque" viewBox="0 0 20 20">
|
||||||
|
<path d="M6.765 17c-0.36-0.956-1.024-1.762-1.559-2.334-0.616-0.659-1.372-1.154-2.206-1.44v-6.451c0.834-0.286 1.591-0.781 2.206-1.44 0.534-0.573 1.198-1.379 1.559-2.334h6.47c0.36 0.956 1.024 1.762 1.559 2.334 0.616 0.659 1.372 1.154 2.206 1.44v6.451c-0.834 0.287-1.591 0.781-2.206 1.44-0.534 0.573-1.198 1.379-1.559 2.334h-6.47zM2 14c0.937 0.157 1.804 0.629 2.475 1.348s1.378 1.648 1.525 2.652h8c0.147-1.004 0.854-1.933 1.525-2.652s1.538-1.191 2.475-1.348v-8c-0.938-0.157-1.804-0.629-2.475-1.348s-1.378-1.647-1.525-2.652h-8c-0.147 1.004-0.854 1.933-1.525 2.652s-1.538 1.191-2.475 1.348v8z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-plus" viewBox="0 0 20 20">
|
||||||
|
<path d="M13 13v5h-6v-5h-5v-6h5v-5h6v5h5v6h-5zM12 17v-5h5v-4h-5v-5h-4v5h-5v4h5v5h4z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-polyline1" viewBox="0 0 20 20">
|
||||||
|
<path d="M7.224 4.929c0.155-0.38 0.276-0.966 0.276-1.929h1c0 1.037-0.129 1.764-0.349 2.306-0.226 0.556-0.535 0.883-0.821 1.133-0.084 0.073-0.157 0.134-0.221 0.188-0.17 0.141-0.282 0.235-0.383 0.383-0.115 0.168-0.225 0.436-0.225 0.991 0 0.595 0.073 1.001 0.177 1.249 0.1 0.238 0.194 0.264 0.23 0.27 0.074 0.012 0.258-0.007 0.581-0.23 0.312-0.214 0.69-0.575 1.123-1.104 1.027-1.283 1.981-1.999 2.828-2.244 0.889-0.257 1.647 0.018 2.092 0.643 0.826 1.157 0.423 3.213-1.255 4.332-1.087 0.725-1.63 1.351-1.865 1.845-0.223 0.47-0.178 0.84-0.028 1.14 0.162 0.324 0.468 0.604 0.814 0.808 0.182 0.107 0.354 0.181 0.496 0.227-0.214-0.676-0.29-1.247-0.256-1.722 0.038-0.527 0.212-0.959 0.506-1.264 0.295-0.307 0.678-0.45 1.056-0.45 0.662 0 1.188 0.297 1.516 0.756 0.319 0.446 0.432 1.017 0.354 1.564-0.123 0.857-0.708 1.663-1.735 2.006 0.206 0.423 0.466 0.891 0.789 1.408l-0.848 0.53c-0.401-0.642-0.72-1.23-0.966-1.766-0.036 0.001-0.073 0.001-0.11 0.001-0.373 0-0.868-0.17-1.308-0.428-0.45-0.265-0.926-0.672-1.202-1.223-0.287-0.574-0.336-1.267 0.019-2.016 0.344-0.724 1.051-1.474 2.214-2.249 1.322-0.881 1.419-2.325 0.995-2.918-0.179-0.251-0.484-0.413-1.001-0.263-0.559 0.162-1.354 0.695-2.326 1.91l-0.003 0.004-0-0c-0.466 0.57-0.913 1.008-1.332 1.297-0.408 0.281-0.862 0.467-1.312 0.392-0.488-0.081-0.807-0.437-0.988-0.87-0.177-0.424-0.254-0.981-0.254-1.635 0-0.695 0.14-1.177 0.4-1.556 0.188-0.274 0.442-0.484 0.637-0.645 0.049-0.041 0.094-0.078 0.134-0.113 0.213-0.187 0.405-0.392 0.554-0.757zM12.739 14.904c0.739-0.214 1.072-0.746 1.141-1.224 0.047-0.327-0.027-0.632-0.177-0.842-0.141-0.197-0.365-0.337-0.703-0.337-0.122 0-0.239 0.044-0.335 0.143-0.097 0.101-0.204 0.294-0.229 0.642-0.027 0.379 0.046 0.91 0.303 1.618z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-polyline2" viewBox="0 0 20 20">
|
||||||
|
<path d="M12.8 6.1c-0.37 0.348-0.628 0.786-0.742 1.264s-0.081 0.975 0.096 1.436c0.564 1.352 2.15 1.283 3.525 1.223 0.272-0.012 0.537-0.023 0.783-0.023 0.135 0.020 0.26 0.079 0.357 0.168s0.16 0.206 0.182 0.332v4c-0.046 0.383-0.231 0.74-0.525 1.013s-0.678 0.444-1.091 0.487h-11.846c-0.135-0.020-0.26-0.079-0.357-0.168s-0.16-0.206-0.181-0.332v-7.3l3.446-3.2h7.323v0.3l-0.969 0.8zM16 11.011c-0.080 0.003-0.162 0.007-0.247 0.011-0.144 0.006-0.297 0.013-0.464 0.019-0.433 0.014-0.924 0.019-1.406-0.039-0.971-0.117-2.114-0.526-2.652-1.815l-0.006-0.013-0.005-0.013c-0.249-0.648-0.296-1.352-0.134-2.027 0.097-0.406 0.266-0.787 0.496-1.131h-4.743l-2.839 2.636v6.364h11.324c0.187-0.028 0.351-0.109 0.471-0.22 0.114-0.106 0.18-0.231 0.205-0.355v-3.414z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-quadArrow" viewBox="0 0 20 20">
|
||||||
|
<path d="M10.547 1.095l3.513 3.953h-2.013v3h3v-2.013l3.953 3.513-3.953 3.513v-2.013h-3v3h2.013l-3.513 3.953-3.513-3.953h2.013v-3h-3v2.013l-3.953-3.513 3.953-3.513v2.013h3v-3h-2.013l3.513-3.953zM9.261 4.047h0.787v5h-5v-0.787l-1.447 1.287 1.447 1.287v-0.787h5v5h-0.787l1.287 1.447 1.287-1.447h-0.787v-5h5v0.787l1.447-1.287-1.447-1.287v0.787h-5v-5h0.787l-1.287-1.447-1.287 1.447z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-quadArrowCallout" viewBox="0 0 20 20">
|
||||||
|
<path d="M7 15h2v-2h-2v-2h-2v2l-3-3.5 3-3.5v2h2v-2h2v-2h-2l3.5-3 3.5 3h-2v2h2v2h2v-2l3 3.5-3 3.5v-2h-2v2h-2v2h2l-3.5 3-3.5-3zM10.5 16.683l0.797-0.683h-0.297v-4h2v-2h4v0.297l0.683-0.797-0.683-0.797v0.297h-4v-2h-2v-4h0.297l-0.797-0.683-0.797 0.683h0.297v4h-2v2h-4v-0.297l-0.683 0.797 0.683 0.797v-0.297h4v2h2v4h-0.297l0.797 0.683z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-rect" viewBox="0 0 20 20">
|
||||||
|
<path d="M17 5v10h-14v-10h14zM18 4h-16v12h16v-12z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-rect-1" viewBox="0 0 20 20">
|
||||||
|
<path d="M17 5v10h-14v-10h14zM18 4h-16v12h16v-12z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-ribbon" viewBox="0 0 20 20">
|
||||||
|
<path d="M15.434 9l1.8-3h-3.234v6h3.234l-1.8-3zM13 8h-6v6h6v-6zM19 5l-2.4 4 2.4 4h-5v1c0 0.552-0.448 1-1 1h-6c-0.552 0-1-0.448-1-1v-1h-5l2.4-4-2.4-4h7c0.552 0 1 0.448 1 1v1h2v-1c0-0.552 0.448-1 1-1h7zM2.766 6l1.8 3-1.8 3h3.234v-6h-3.234z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-ribbon2" viewBox="0 0 20 20">
|
||||||
|
<path d="M13 12v-6h-6v6h6zM6 8h-3.234l1.8 3-1.8 3h3.234v-6zM1 15l2.4-4-2.4-4h5v-1c0-0.552 0.448-1 1-1h6c0.552 0 1 0.448 1 1v1h5l-2.4 4 2.4 4h-7c-0.552 0-1-0.448-1-1v-1h-2v1c0 0.552-0.448 1-1 1h-7zM17.234 14l-1.8-3 1.8-3h-3.234v6h3.234z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-rightArrow" viewBox="0 0 20 20">
|
||||||
|
<path d="M9 13v3l7.333-5.5-7.333-5.5v3h-6v5h6zM8 3l10 7.5-10 7.5v-4h-6v-7h6v-4z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-rightArrowCallout" viewBox="0 0 20 20">
|
||||||
|
<path d="M10 9v-4h-7v11h7v-4h4v1.413l2.648-2.913-2.648-2.913v1.413h-4zM13 5l5 5.5-5 5.5v-3h-2v4h-9v-13h9v4h2v-3z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-rightBrace" viewBox="0 0 20 20">
|
||||||
|
<path d="M8 16.5c0.482-0.176 0.891-0.507 1.163-0.942s0.39-0.948 0.337-1.458v-1.6c-0.046-0.471 0.054-0.944 0.287-1.355s0.586-0.741 1.013-0.945c-0.427-0.203-0.781-0.533-1.013-0.945s-0.333-0.885-0.287-1.355v-1.5c0-1.4-0.5-2.2-1.5-2.5l0.2-0.9c0.764 0.208 1.457 0.623 2 1.2 0.421 0.655 0.63 1.423 0.6 2.2v1.5c0 1.2 0.6 1.8 1.6 1.8v1c-1 0-1.6 0.6-1.6 1.8v1.5c0.030 0.777-0.179 1.545-0.6 2.2-0.558 0.558-1.245 0.971-2 1.2l-0.2-0.9z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-rightBracket" viewBox="0 0 20 20">
|
||||||
|
<path d="M8.999 3.002h-1.999v1h1.999c0.53 0 1.039 0.211 1.414 0.586s0.586 0.884 0.586 1.414v8.998c0 0.53-0.211 1.039-0.586 1.414s-0.883 0.586-1.414 0.586h-1.999v1h1.999c0.398 0.014 0.794-0.054 1.164-0.2s0.706-0.366 0.988-0.648c0.281-0.281 0.502-0.618 0.648-0.988s0.214-0.766 0.2-1.164v-8.998c0.014-0.398-0.054-0.794-0.2-1.164s-0.366-0.706-0.648-0.988c-0.281-0.281-0.617-0.502-0.988-0.648s-0.766-0.214-1.164-0.2z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-round1Rect" viewBox="0 0 20 20">
|
||||||
|
<path d="M15 5c1.105 0 2 0.895 2 2v8h-14v-10h12zM2 4v12h16v-9c0-1.657-1.343-3-3-3h-13z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-round2DiagRect" viewBox="0 0 20 20">
|
||||||
|
<path d="M17 5v8c0 1.105-0.895 2-2 2h-12v-8c0-1.105 0.895-2 2-2h12zM5 4c-1.657 0-3 1.343-3 3v9h13c1.657 0 3-1.343 3-3v-9h-13z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-round2SameRect" viewBox="0 0 20 20">
|
||||||
|
<path d="M15 5c1.105 0 2 0.895 2 2v8h-14v-8c0-1.105 0.895-2 2-2h10zM5 4c-1.657 0-3 1.343-3 3v9h16v-9c0-1.657-1.343-3-3-3h-10z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-roundRect" viewBox="0 0 20 20">
|
||||||
|
<path d="M15 5c1.105 0 2 0.895 2 2v6c0 1.105-0.895 2-2 2h-10c-1.105 0-2-0.895-2-2v-6c0-1.105 0.895-2 2-2h10zM5 4c-1.657 0-3 1.343-3 3v6c0 1.657 1.343 3 3 3h10c1.657 0 3-1.343 3-3v-6c0-1.657-1.343-3-3-3h-10z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-rtTriangle" viewBox="0 0 20 20">
|
||||||
|
<path d="M4 5.4l10.6 10.6h-10.6v-10.6zM3 3v14h14l-14-14z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-smileyFace" viewBox="0 0 20 20">
|
||||||
|
<path d="M10 16.5c3.59 0 6.5-2.91 6.5-6.5s-2.91-6.5-6.5-6.5c-3.59 0-6.5 2.91-6.5 6.5s2.91 6.5 6.5 6.5zM17.5 10c0 4.142-3.358 7.5-7.5 7.5s-7.5-3.358-7.5-7.5c0-4.142 3.358-7.5 7.5-7.5s7.5 3.358 7.5 7.5z"></path>
|
||||||
|
<path d="M7.5 7c-0.276 0-0.5 0.224-0.5 0.5s0.224 0.5 0.5 0.5c0.276 0 0.5-0.224 0.5-0.5s-0.224-0.5-0.5-0.5zM6 7.5c0-0.828 0.672-1.5 1.5-1.5s1.5 0.672 1.5 1.5c0 0.828-0.672 1.5-1.5 1.5s-1.5-0.672-1.5-1.5z"></path>
|
||||||
|
<path d="M12.5 7c-0.276 0-0.5 0.224-0.5 0.5s0.224 0.5 0.5 0.5c0.276 0 0.5-0.224 0.5-0.5s-0.224-0.5-0.5-0.5zM11 7.5c0-0.828 0.672-1.5 1.5-1.5s1.5 0.672 1.5 1.5c0 0.828-0.672 1.5-1.5 1.5s-1.5-0.672-1.5-1.5z"></path>
|
||||||
|
<path d="M5.416 12c0.772 1.766 2.534 3 4.584 3s3.812-1.234 4.584-3h-1.119c-0.692 1.196-1.984 2-3.465 2s-2.773-0.804-3.465-2h-1.119z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-snip1Rect" viewBox="0 0 20 20">
|
||||||
|
<path d="M3 5v10h14v-6.586l-3.414-3.414h-10.586zM14 4l4 4v8h-16v-12h12z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-snip2DiagRect" viewBox="0 0 20 20">
|
||||||
|
<path d="M6.414 15h10.586v-6.586l-3.414-3.414h-10.586v6.586l3.414 3.414zM6 16l-4-4v-8h12l4 4v8h-12z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-snip2SameRect" viewBox="0 0 20 20">
|
||||||
|
<path d="M6.414 5h7.172l3.414 3.414v6.586h-14v-6.586l3.414-3.414zM14 4h-8l-4 4v8h16v-8l-4-4z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-snipRoundRect" viewBox="0 0 20 20">
|
||||||
|
<path d="M3 7c0-1.105 0.895-2 2-2h8.586l3.414 3.414v6.586h-14v-8zM14 4h-9c-1.657 0-3 1.343-3 3v9h16v-8l-4-4z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-spline" viewBox="0 0 20 20">
|
||||||
|
<path d="M2.471 12.168c0-0 0-0-0.471-0.168s-0.471-0.168-0.471-0.168l0.001-0.002 0.002-0.005 0.006-0.016 0.023-0.062c0.020-0.053 0.049-0.131 0.087-0.229 0.076-0.196 0.188-0.475 0.331-0.809 0.286-0.667 0.701-1.561 1.213-2.457 0.51-0.893 1.129-1.811 1.831-2.512 0.692-0.692 1.532-1.24 2.479-1.24 0.776 0 1.418 0.196 1.945 0.562 0.521 0.362 0.895 0.867 1.181 1.43 0.455 0.897 0.728 2.037 0.993 3.148 0.059 0.248 0.118 0.495 0.179 0.738 0.344 1.375 0.746 2.651 1.505 3.588 0.731 0.902 1.832 1.534 3.698 1.534v1c-2.135 0-3.534-0.744-4.474-1.904-0.912-1.126-1.354-2.6-1.698-3.975-0.068-0.272-0.132-0.539-0.195-0.8-0.265-1.104-0.503-2.096-0.899-2.876-0.238-0.468-0.516-0.823-0.86-1.062-0.338-0.235-0.775-0.383-1.374-0.383-0.553 0-1.151 0.327-1.771 0.947-0.611 0.611-1.18 1.443-1.669 2.301-0.488 0.853-0.885 1.71-1.162 2.355-0.138 0.322-0.245 0.59-0.318 0.777-0.036 0.093-0.064 0.166-0.082 0.216l-0.020 0.056-0.005 0.013-0.001 0.004z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-star4" viewBox="0 0 20 20">
|
||||||
|
<path d="M12.5 7.5l5.5 2-5.5 2-2 5.5-2-5.5-5.5-2 5.5-2 2-5.5 2 5.5zM15.074 9.5l-3.354-1.22-1.22-3.354-1.22 3.354-3.354 1.22 3.354 1.22 1.22 3.354 1.22-3.354 3.354-1.22z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-star5" viewBox="0 0 20 20">
|
||||||
|
<path d="M12.5 7.997h6l-5 3.503 2 6-5-3.5-5 3.5 2-6-5-3.503h6l2-5.997 2 5.997zM15.33 8.997h-3.551l-1.279-3.836-1.279 3.836h-3.551l3.015 2.112-1.279 3.837 3.094-2.166 3.094 2.166-1.279-3.837 3.015-2.112z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-star6" viewBox="0 0 20 20">
|
||||||
|
<path d="M8 12h-2.826l2.143-2.5-2.143-2.5h2.826l2.5-3.333 2.5 3.333h2.826l-2.143 2.5 2.143 2.5h-3.38l-2.021 3.233-2.425-3.233zM3 13h4.5l3 4 2.5-4h5l-3-3.5 3-3.5h-4.5l-3-4-3 4h-4.5l3 3.5-3 3.5z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-star7" viewBox="0 0 20 20">
|
||||||
|
<path d="M10.5 13.321l2.747 1.717-0.337-2.697 3.129-1.173-2.224-1.854 1.169-3.116-3.021 0.378-1.463-2.559-1.463 2.559-3.020-0.378 1.169 3.116-2.224 1.854 3.129 1.173-0.337 2.697 2.747-1.717zM6.5 17l0.5-4-4-1.5 3-2.5-1.5-4 4 0.5 2-3.5 2 3.5 4-0.5-1.5 4 3 2.5-4 1.5 0.5 4-4-2.5-4 2.5z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-star8" viewBox="0 0 20 20">
|
||||||
|
<path fill="none" stroke="#444" style="stroke: var(--color1, #444)" stroke-linejoin="miter" stroke-linecap="butt" stroke-miterlimit="4" stroke-width="1" d="M10.5 1.781l2.266 2.719h2.734v2.734l2.719 2.266-2.719 2.266v2.734h-2.734l-2.266 2.719-2.266-2.719h-2.734v-2.734l-2.719-2.266 2.719-2.266v-2.734h2.734l2.266-2.719z"></path>
|
||||||
|
<path d="M9 7v5h3v-5h-3zM11 11h-1v-1h1v1zM11 9h-1v-1h1v1z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-star10" viewBox="0 0 20 20">
|
||||||
|
<path d="M8.413 14.607l1.587 1.855 1.587-1.855 2.419 0.616 0.189-2.498 2.231-0.76-1.355-1.966 1.355-1.966-2.231-0.76-0.189-2.498-2.419 0.616-1.587-1.855-1.587 1.855-2.42-0.616-0.189 2.498-2.231 0.76 1.355 1.966-1.355 1.966 2.231 0.76 0.189 2.498 2.42-0.616zM5.086 16.487l-0.229-3.027-2.857-0.973 1.714-2.487-1.714-2.486 2.857-0.973 0.229-3.027 2.971 0.757 1.943-2.27 1.943 2.27 2.971-0.757 0.229 3.027 2.857 0.973-1.714 2.486 1.714 2.487-2.857 0.973-0.229 3.027-2.971-0.757-1.943 2.27-1.943-2.27-2.971 0.757z"></path>
|
||||||
|
<path d="M10 8v5h3v-5h-3zM12 12h-1v-3h1v3z"></path>
|
||||||
|
<path d="M8 8v1h-1v1h1v3h1v-5h-1z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-star12" viewBox="0 0 20 20">
|
||||||
|
<path d="M10.5 1l1.54 2.753 2.71-1.614-0.043 3.154 3.154-0.043-1.614 2.71 2.753 1.54-2.753 1.54 1.614 2.71-3.154-0.043 0.043 3.154-2.71-1.614-1.54 2.753-1.54-2.753-2.71 1.614 0.043-3.154-3.154 0.043 1.614-2.71-2.753-1.54 2.753-1.54-1.614-2.71 3.154 0.043-0.043-3.154 2.71 1.614 1.54-2.753zM13.726 3.913l-2.057 1.225-1.169-2.089-1.169 2.089-2.057-1.225 0.032 2.394-2.394-0.032 1.225 2.057-2.089 1.169 2.089 1.169-1.225 2.057 2.394-0.032-0.032 2.394 2.057-1.225 1.169 2.089 1.169-2.089 2.057 1.225-0.032-2.394 2.394 0.032-1.225-2.057 2.089-1.169-2.089-1.169 1.225-2.057-2.394 0.032 0.032-2.394z"></path>
|
||||||
|
<path d="M8 7v1h-1v1h1v3h1v-5h-1z"></path>
|
||||||
|
<path d="M12.682 7.318c0.183 0.183 0.296 0.424 0.318 0.682v1h-1v-1h-2v-1h2c0.258 0.023 0.499 0.135 0.682 0.318zM11 10v-1h1v1h-1zM11 10v1h2v1h-3v-2h1z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-star16" viewBox="0 0 20 20">
|
||||||
|
<path d="M12.26 2.932l2.49-0.793 0.558 2.553 2.553 0.558-0.793 2.49 1.932 1.76-1.932 1.76 0.793 2.49-2.553 0.558-0.558 2.553-2.49-0.793-1.76 1.932-1.76-1.932-2.49 0.793-0.558-2.553-2.553-0.558 0.793-2.49-1.932-1.76 1.932-1.76-0.793-2.49 2.553-0.558 0.558-2.553 2.49 0.793 1.76-1.932 1.76 1.932zM14.008 3.425l-2.055 0.654-1.453-1.594-1.453 1.594-2.055-0.654-0.461 2.107-2.107 0.461 0.654 2.055-1.594 1.453 1.594 1.453-0.654 2.055 2.107 0.461 0.461 2.107 2.055-0.654 1.453 1.594 1.452-1.594 2.055 0.654 0.461-2.107 2.107-0.461-0.654-2.055 1.594-1.453-1.594-1.453 0.654-2.055-2.107-0.461-0.461-2.107z"></path>
|
||||||
|
<path d="M8 7v1h-1v1h1v3h1v-5h-1z"></path>
|
||||||
|
<path d="M13 8v-1h-2c-0.258 0.023-0.499 0.135-0.682 0.318s-0.296 0.424-0.318 0.682v4h3v-3h-2v-1h2zM12 10v1h-1v-1h1z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-star24" viewBox="0 0 20 20">
|
||||||
|
<path d="M12.26 2.932l2.49-0.793 0.558 2.553 2.553 0.558-0.793 2.49 1.932 1.76-1.932 1.76 0.793 2.49-2.553 0.558-0.558 2.553-2.49-0.793-1.76 1.932-1.76-1.932-2.49 0.793-0.558-2.553-2.553-0.558 0.793-2.49-1.932-1.76 1.932-1.76-0.793-2.49 2.553-0.558 0.558-2.553 2.49 0.793 1.76-1.932 1.76 1.932zM14.008 3.425l-2.055 0.654-1.453-1.594-1.453 1.594-2.055-0.654-0.461 2.107-2.107 0.461 0.654 2.055-1.594 1.453 1.594 1.453-0.654 2.055 2.107 0.461 0.461 2.107 2.055-0.654 1.453 1.594 1.452-1.594 2.055 0.654 0.461-2.107 2.107-0.461-0.654-2.055 1.594-1.453-1.594-1.453 0.654-2.055-2.107-0.461-0.461-2.107z"></path>
|
||||||
|
<path d="M9.682 7.318c0.183 0.183 0.295 0.424 0.318 0.682v1h-1v-1h-2v-1h2c0.258 0.023 0.499 0.135 0.682 0.318zM8 10v-1h1v1h-1zM8 10v1h2v1h-3v-2h1z"></path>
|
||||||
|
<path d="M13 7v2h-1v-2h-1v3h2v2h1v-5h-1z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-star32" viewBox="0 0 20 20">
|
||||||
|
<path d="M12.26 2.932l2.49-0.793 0.558 2.553 2.553 0.558-0.793 2.49 1.932 1.76-1.932 1.76 0.793 2.49-2.553 0.558-0.558 2.553-2.49-0.793-1.76 1.932-1.76-1.932-2.49 0.793-0.558-2.553-2.553-0.558 0.793-2.49-1.932-1.76 1.932-1.76-0.793-2.49 2.553-0.558 0.558-2.553 2.49 0.793 1.76-1.932 1.76 1.932zM14.008 3.425l-2.055 0.654-1.453-1.594-1.453 1.594-2.055-0.654-0.461 2.107-2.107 0.461 0.654 2.055-1.594 1.453 1.594 1.453-0.654 2.055 2.107 0.461 0.461 2.107 2.055-0.654 1.453 1.594 1.452-1.594 2.055 0.654 0.461-2.107 2.107-0.461-0.654-2.055 1.594-1.453-1.594-1.453 0.654-2.055-2.107-0.461-0.461-2.107z"></path>
|
||||||
|
<path d="M13.682 7.318c0.183 0.183 0.296 0.424 0.318 0.682v1h-1v-1h-2v-1h2c0.258 0.023 0.499 0.135 0.682 0.318zM12 10v-1h1v1h-1zM12 10v1h2v1h-3v-2h1z"></path>
|
||||||
|
<path d="M7 7v1h2v1h-2v1h2v1h-2v1h3v-5h-3z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-stripedRightArrow" viewBox="0 0 20 20">
|
||||||
|
<path d="M11 12v2.692l5.538-5.192-5.538-5.192v2.692h-4v5h4zM10 2l8 7.5-8 7.5v-4h-4v-7h4v-4z"></path>
|
||||||
|
<path d="M5 6h-1v7h1v-7z"></path>
|
||||||
|
<path d="M3 6h-1v7h1v-7z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-sun" viewBox="0 0 20 20">
|
||||||
|
<path d="M10 6.136c0.764 0 1.511 0.227 2.147 0.651s1.131 1.028 1.423 1.734c0.292 0.706 0.369 1.483 0.22 2.232s-0.517 1.438-1.057 1.978c-0.54 0.54-1.229 0.908-1.978 1.057s-1.526 0.073-2.232-0.22c-0.706-0.292-1.309-0.788-1.734-1.423s-0.651-1.382-0.651-2.147c0-1.025 0.407-2.007 1.132-2.732s1.707-1.132 2.732-1.132zM10 5c-0.989 0-1.956 0.293-2.778 0.843s-1.463 1.33-1.842 2.244c-0.378 0.914-0.477 1.919-0.285 2.889s0.669 1.861 1.368 2.56c0.699 0.699 1.59 1.175 2.56 1.368s1.975 0.094 2.889-0.285c0.914-0.378 1.694-1.019 2.244-1.842s0.843-1.789 0.843-2.778c0-1.326-0.527-2.598-1.464-3.536s-2.209-1.464-3.536-1.464z"></path>
|
||||||
|
<path d="M10 2l-1.5 1.5h3l-1.5-1.5z"></path>
|
||||||
|
<path d="M16.5 3.5h-2l2 2v-2z"></path>
|
||||||
|
<path d="M3.5 3.5v2l2-2h-2z"></path>
|
||||||
|
<path d="M10 18l1.5-1.5h-3l1.5 1.5z"></path>
|
||||||
|
<path d="M18 10l-1.5-1.5v3l1.5-1.5z"></path>
|
||||||
|
<path d="M2 10l1.5 1.5v-3l-1.5 1.5z"></path>
|
||||||
|
<path d="M3.5 16.5h2l-2-2v2z"></path>
|
||||||
|
<path d="M16.5 16.5v-2l-2 2h2z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-teardrop" viewBox="0 0 20 20">
|
||||||
|
<path d="M10 17.998c-2.113-0.028-4.132-0.879-5.626-2.373s-2.346-3.513-2.374-5.626c0.028-2.113 0.879-4.132 2.374-5.626s3.513-2.346 5.626-2.373h8v8.959c-0.213 1.961-1.152 3.77-2.633 5.073s-3.395 2.004-5.367 1.966zM3 9.999c0.028 1.848 0.774 3.612 2.081 4.919 1.31 1.31 3.080 2.057 4.932 2.081l-0.013 1 0.019-1c1.722 0.033 3.394-0.579 4.687-1.717 1.28-1.126 2.097-2.686 2.293-4.378v-7.903h-6.993c-1.85 0.026-3.618 0.772-4.926 2.081-1.307 1.307-2.053 3.071-2.081 4.919z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-textRect" viewBox="0 0 20 20">
|
||||||
|
<path d="M17 4v11h-14v-11h14zM18 3h-16v13h16v-13z"></path>
|
||||||
|
<path d="M15 6h-4v1h4v-1z"></path>
|
||||||
|
<path d="M15 9h-4v1h4v-1z"></path>
|
||||||
|
<path d="M15 12h-10v1h10v-1z"></path>
|
||||||
|
<path d="M9.947 10.276l-0.894 0.447-0.362-0.724h-2.382l-0.362 0.724-0.894-0.447 2.447-4.894 2.447 4.894zM8.191 9l-0.691-1.382-0.691 1.382h1.382z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-trapezoid" viewBox="0 0 20 20">
|
||||||
|
<path d="M13.3 5l3.3 11h-13.2l3.3-11h6.6zM14 4h-8l-4 13h16l-4-13z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-triangle" viewBox="0 0 20 20">
|
||||||
|
<path d="M10 5l6.187 10h-12.373l6.187-10zM10 3l-8 13h16l-8-13z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-upArrow" viewBox="0 0 20 20">
|
||||||
|
<path d="M13 11h3l-5.5-7.333-5.5 7.333h3v6h5v-6zM3 12l7.5-10 7.5 10h-4v6h-7v-6h-4z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-upArrowCallout" viewBox="0 0 20 20">
|
||||||
|
<path d="M9 10h-4v7h11v-7h-4v-4h1.413l-2.913-2.649-2.913 2.649h1.413v4zM5 7l5.5-5 5.5 5h-3v2h4v9h-13v-9h4v-2h-3z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-upDownArrow" viewBox="0 0 20 20">
|
||||||
|
<path d="M7 13h-2.149l4.649 3.719 4.649-3.719h-2.149v-6h2.149l-4.649-3.719-4.649 3.719h2.149v6zM2 8l7.5-6 7.5 6h-4v4h4l-7.5 6-7.5-6h4v-4h-4z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-uturnArrow" viewBox="0 0 20 20">
|
||||||
|
<path d="M13 10.4h-2.108l2.608 3.825 2.608-3.825h-2.108v-2.4c0-2.761-2.239-5-5-5s-5 2.239-5 5v9h1v-9c0-2.209 1.791-4 4-4s4 1.791 4 4v2.4zM18 9.4l-4.5 6.6-4.5-6.6h3v-1.4c0-1.657-1.343-3-3-3s-3 1.343-3 3v10h-3v-10c0-3.314 2.686-6 6-6s6 2.686 6 6v1.4h3z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-verticalScroll" viewBox="0 0 20 20">
|
||||||
|
<path fill="none" stroke="#000" style="stroke: var(--color3, #000)" stroke-linejoin="miter" stroke-linecap="butt" stroke-miterlimit="4" stroke-width="1" d="M6.5 5.5h9v10.5c0 0.828-0.672 1.5-1.5 1.5h-7.5v-12z"></path>
|
||||||
|
<path fill="none" stroke="#000" style="stroke: var(--color3, #000)" stroke-linejoin="miter" stroke-linecap="butt" stroke-miterlimit="4" stroke-width="1" d="M6.5 4c0-0.828 0.672-1.5 1.5-1.5h8c0.828 0 1.5 0.672 1.5 1.5s-0.672 1.5-1.5 1.5h-9.5v-1.5z"></path>
|
||||||
|
<path fill="none" stroke="#000" style="stroke: var(--color3, #000)" stroke-linejoin="miter" stroke-linecap="butt" stroke-miterlimit="4" stroke-width="1" d="M9.5 4c0 0.828-0.672 1.5-1.5 1.5s-1.5-0.672-1.5-1.5c0-0.828 0.672-1.5 1.5-1.5s1.5 0.672 1.5 1.5z"></path>
|
||||||
|
<path fill="none" stroke="#000" style="stroke: var(--color3, #000)" stroke-linejoin="miter" stroke-linecap="butt" stroke-miterlimit="4" stroke-width="1" d="M6.5 16c0 0.828-0.672 1.5-1.5 1.5s-1.5-0.672-1.5-1.5c0-0.828 0.672-1.5 1.5-1.5s1.5 0.672 1.5 1.5z"></path>
|
||||||
|
<path fill="#000" style="fill: var(--color3, #000)" d="M5 14h2v1h-2v-1z"></path>
|
||||||
|
<path fill="#000" style="fill: var(--color3, #000)" d="M5 17h2v1h-2v-1z"></path>
|
||||||
|
<path fill="#444" style="fill: var(--color1, #444)" d="M7 4c0 0.552 0.448 1 1 1s1-0.448 1-1c0-0.552-0.448-1-1-1s-1 0.448-1 1zM6 5v-1c0-1.105 0.895-2 2-2h8c1.105 0 2 0.895 2 2s-0.895 2-2 2v10c0 1.105-0.895 2-2 2h-9c-1.105 0-2-0.895-2-2s0.895-2 2-2h1v-9zM5 17c0.552 0 1-0.448 1-1s-0.448-1-1-1c-0.552 0-1 0.448-1 1s0.448 1 1 1zM7 17h7c0.552 0 1-0.448 1-1v-10h-8v11zM10 4c0 0.364-0.097 0.706-0.268 1h6.268c0.552 0 1-0.448 1-1s-0.448-1-1-1h-6.268c0.17 0.294 0.268 0.636 0.268 1z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-wave" viewBox="0 0 20 20">
|
||||||
|
<path d="M17 12.594v-6.591c-0.321 0.163-0.65 0.301-0.972 0.418-1.029 0.373-2.145 0.579-3.028 0.579-1.45 0-2.503-0.565-3.376-1.033-0.053-0.028-0.105-0.057-0.157-0.084-0.907-0.484-1.724-0.882-2.967-0.882-1.106 0-1.814 0.219-2.338 0.501-0.435 0.235-0.78 0.53-1.162 0.892v6.57c0.953-0.558 2.121-0.963 3.5-0.963 1.736 0 2.915 0.589 3.916 1.090l0.032 0.016c0.992 0.496 1.808 0.894 3.053 0.894 1.391 0 2.068-0.232 2.486-0.482 0.339-0.203 0.542-0.42 0.845-0.743 0.053-0.057 0.109-0.117 0.169-0.18zM18 13c-0.127 0.127-0.246 0.254-0.363 0.379-0.804 0.859-1.518 1.621-4.137 1.621-1.5 0-2.5-0.5-3.5-1s-2-1-3.5-1c-1.418 0-2.585 0.503-3.5 1.152-0.376 0.266-0.709 0.557-1 0.848v-9.033c0.013-0.013 0.027-0.026 0.040-0.039 0.987-0.955 1.993-1.928 4.46-1.928 2 0 2.59 0.547 3.565 1.068 0.89 0.476 1.742 0.932 2.935 0.932 1.123 0 2.805-0.402 4-1.142 0.402-0.249 0.748-0.536 1-0.858v9z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-wedgeEllipseCallout" viewBox="0 0 20 20">
|
||||||
|
<path d="M8 13.053v1.889l1.954-1.535h0.346c1.453 0 3.185-0.46 4.527-1.339 1.329-0.87 2.172-2.070 2.172-3.569 0-1.16-0.629-2.26-1.799-3.107-1.172-0.848-2.836-1.393-4.701-1.393-1.827 0-3.49 0.627-4.682 1.534-1.213 0.924-1.818 2.036-1.818 2.966 0 1.044 0.388 1.745 1.003 2.363 0.513 0.515 1.13 0.927 1.844 1.404 0.231 0.154 0.471 0.315 0.722 0.488l0.431 0.298zM7 17v-3.422c-0.215-0.149-0.433-0.294-0.651-0.44-1.687-1.126-3.349-2.235-3.349-4.638 0-2.696 3.4-5.5 7.5-5.5s7.5 2.389 7.5 5.5c0 3.871-4.433 5.907-7.7 5.907l-3.3 2.593z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-wedgeRectCallout" viewBox="0 0 20 20">
|
||||||
|
<path d="M5.468 13l2.032 2.438 2.032-2.438h6.468v-9h-12v9h1.468zM7.5 17l-2.5-3h-2v-11h14v11h-7l-2.5 3z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-icon-wedgeRoundRectCallout" viewBox="0 0 20 20">
|
||||||
|
<path d="M7.468 13l2.032 2.438 2.032-2.438h2.468c1.105 0 2-0.895 2-2v-5c0-1.105-0.895-2-2-2h-8c-1.105 0-2 0.895-2 2v5c0 1.105 0.895 2 2 2h1.468zM9.5 17l-2.5-3h-1c-1.657 0-3-1.343-3-3v-5c0-1.657 1.343-3 3-3h8c1.657 0 3 1.343 3 3v5c0 1.657-1.343 3-3 3h-2l-2.5 3z"></path>
|
||||||
|
</symbol>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 77 KiB |
|
@ -198,6 +198,10 @@
|
||||||
|
|
||||||
.btn.small;
|
.btn.small;
|
||||||
|
|
||||||
|
&.bg-white {
|
||||||
|
background-color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
&:before,
|
&:before,
|
||||||
&:after {
|
&:after {
|
||||||
content: "";
|
content: "";
|
||||||
|
@ -404,7 +408,7 @@
|
||||||
|
|
||||||
&.split {
|
&.split {
|
||||||
|
|
||||||
&.over,
|
&.over:not(.disabled),
|
||||||
&.open {
|
&.open {
|
||||||
box-shadow: inset 0 0 0 1px @color-gray;
|
box-shadow: inset 0 0 0 1px @color-gray;
|
||||||
|
|
||||||
|
@ -413,7 +417,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.over {
|
&.over:not(.disabled) {
|
||||||
button {
|
button {
|
||||||
&:not(.active) {
|
&:not(.active) {
|
||||||
&:hover {
|
&:hover {
|
||||||
|
|
|
@ -99,4 +99,11 @@
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.font-item {
|
||||||
|
vertical-align:middle;
|
||||||
|
margin: 0 0 0 -10px;
|
||||||
|
padding-top: 0;
|
||||||
|
padding-bottom: 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,15 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.internal-menu {
|
||||||
|
border: none;
|
||||||
|
border-radius: 0;
|
||||||
|
.box-shadow(none);
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
li {
|
li {
|
||||||
& > a {
|
& > a {
|
||||||
padding: 5px 20px;
|
padding: 5px 20px;
|
||||||
|
@ -60,47 +69,4 @@
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.menu-scroll {
|
|
||||||
position: absolute;
|
|
||||||
background-color: @dropdown-bg;
|
|
||||||
height: 16px;
|
|
||||||
width: 100%;
|
|
||||||
cursor: pointer;
|
|
||||||
|
|
||||||
&.top {
|
|
||||||
top: 0;
|
|
||||||
|
|
||||||
&::before {
|
|
||||||
content: '';
|
|
||||||
position: absolute;
|
|
||||||
left: 48%;
|
|
||||||
top: 7px;
|
|
||||||
border-top: none;
|
|
||||||
border-bottom: 3px solid;
|
|
||||||
border-right: 3px solid transparent;
|
|
||||||
border-left: 3px solid transparent;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&.bottom {
|
|
||||||
bottom: 0;
|
|
||||||
|
|
||||||
&::before {
|
|
||||||
content: '';
|
|
||||||
position: absolute;
|
|
||||||
left: 48%;
|
|
||||||
top: 7px;
|
|
||||||
border-bottom: none;
|
|
||||||
border-top: 3px solid;
|
|
||||||
border-right: 3px solid transparent;
|
|
||||||
border-left: 3px solid transparent;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&.disabled {
|
|
||||||
opacity: 0.3;
|
|
||||||
cursor: default;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -301,7 +301,7 @@
|
||||||
|
|
||||||
.style-off-tabs {
|
.style-off-tabs {
|
||||||
.toolbar {
|
.toolbar {
|
||||||
@underscore_height: 2px;
|
@underscore_height: 3px;
|
||||||
|
|
||||||
.tabs, .extra {
|
.tabs, .extra {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
|
@ -329,6 +329,7 @@
|
||||||
|
|
||||||
&.active {
|
&.active {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
|
font-weight: bold;
|
||||||
|
|
||||||
&:after {
|
&:after {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
|
@ -343,6 +344,17 @@
|
||||||
|
|
||||||
> a {
|
> a {
|
||||||
color: @gray-deep;
|
color: @gray-deep;
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
display:block;
|
||||||
|
content:attr(data-title);
|
||||||
|
font-weight:bold;
|
||||||
|
height:1px;
|
||||||
|
color:transparent;
|
||||||
|
overflow:hidden;
|
||||||
|
visibility:hidden;
|
||||||
|
margin-bottom:-1px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -502,3 +514,64 @@
|
||||||
.button-normal-icon(~'x-huge .btn-bookmarks', 56, @toolbar-big-icon-size);
|
.button-normal-icon(~'x-huge .btn-bookmarks', 56, @toolbar-big-icon-size);
|
||||||
.button-normal-icon(btn-blankpage, 57, @toolbar-big-icon-size);
|
.button-normal-icon(btn-blankpage, 57, @toolbar-big-icon-size);
|
||||||
.button-normal-icon(btn-print-area, 58, @toolbar-big-icon-size);
|
.button-normal-icon(btn-print-area, 58, @toolbar-big-icon-size);
|
||||||
|
.button-normal-icon(btn-cell-group, 59, @toolbar-big-icon-size);
|
||||||
|
.button-normal-icon(btn-cell-ungroup, 60, @toolbar-big-icon-size);
|
||||||
|
.button-normal-icon(btn-to-columns, 61, @toolbar-big-icon-size);
|
||||||
|
.button-normal-icon(btn-watermark, 63, @toolbar-big-icon-size);
|
||||||
|
.button-normal-icon(btn-color-schema, 64, @toolbar-big-icon-size);
|
||||||
|
.button-normal-icon(btn-ins-formula, 65, @toolbar-big-icon-size);
|
||||||
|
.button-normal-icon(btn-autosumm, 66, @toolbar-big-icon-size);
|
||||||
|
.button-normal-icon(btn-recent, 67, @toolbar-big-icon-size);
|
||||||
|
.button-normal-icon(btn-finance, 68, @toolbar-big-icon-size);
|
||||||
|
.button-normal-icon(btn-logic, 69, @toolbar-big-icon-size);
|
||||||
|
.button-normal-icon(btn-func-text, 70, @toolbar-big-icon-size);
|
||||||
|
.button-normal-icon(btn-datetime, 71, @toolbar-big-icon-size);
|
||||||
|
.button-normal-icon(btn-lookup, 72, @toolbar-big-icon-size);
|
||||||
|
.button-normal-icon(btn-func-math, 73, @toolbar-big-icon-size);
|
||||||
|
.button-normal-icon(btn-more, 74, @toolbar-big-icon-size);
|
||||||
|
.button-normal-icon(btn-pagenum, 75, @toolbar-big-icon-size);
|
||||||
|
|
||||||
|
[applang=ru] {
|
||||||
|
.btn-toolbar {
|
||||||
|
&:not(.x-huge) {
|
||||||
|
.icon:not(svg) {
|
||||||
|
&.btn-bold, &.btn-italic, &.btn-strikeout, &.btn-underline, &.btn-ic-docspell, &.btn-sort-down, &.btn-sort-up, &.btn-currency-style {
|
||||||
|
.background-ximage('@{common-image-path}/controls/toolbar-menu-ru.png', '@{common-image-path}/controls/toolbar-menu-ru@2x.png', 60px);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-toolbarmenu.btn-ic-docspell {
|
||||||
|
.background-ximage('@{common-image-path}/controls/toolbar-menu-ru.png', '@{common-image-path}/controls/toolbar-menu-ru@2x.png', 60px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.button-normal-icon(btn-notes, 77, @toolbar-big-icon-size);
|
||||||
|
.button-normal-icon(btn-controls, 78, @toolbar-big-icon-size);
|
||||||
|
|
||||||
|
.button-normal-icon(btn-bold, 0, @toolbar-icon-size);
|
||||||
|
.button-normal-icon(btn-italic, 1, @toolbar-icon-size);
|
||||||
|
.button-normal-icon(btn-strikeout, 2, @toolbar-icon-size);
|
||||||
|
.button-normal-icon(btn-underline, 3, @toolbar-icon-size);
|
||||||
|
.button-normal-icon(btn-ic-docspell, 4, @toolbar-icon-size);
|
||||||
|
.button-normal-icon(btn-sort-down, 5, @toolbar-icon-size);
|
||||||
|
.button-normal-icon(btn-sort-up, 6, @toolbar-icon-size);
|
||||||
|
.button-normal-icon(btn-currency-style, 7, @toolbar-icon-size);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.item-shape {
|
||||||
|
.icon {
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
svg.icon {
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
fill: #444444;
|
||||||
|
}
|
||||||
|
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
}
|
||||||
|
|
|
@ -85,6 +85,12 @@
|
||||||
&.resizing {
|
&.resizing {
|
||||||
cursor: inherit !important;
|
cursor: inherit !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
> .body {
|
> .body {
|
||||||
|
|
956
apps/common/mobile/lib/controller/Collaboration.js
Normal file
|
@ -0,0 +1,956 @@
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* (c) Copyright Ascensio System SIA 2010-2019
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Collaboration.js
|
||||||
|
*
|
||||||
|
* Created by Julia Svinareva on 12/7/19
|
||||||
|
* Copyright (c) 2019 Ascensio System SIA. All rights reserved.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (Common === undefined)
|
||||||
|
var Common = {};
|
||||||
|
|
||||||
|
Common.Controllers = Common.Controllers || {};
|
||||||
|
|
||||||
|
define([
|
||||||
|
'core',
|
||||||
|
'jquery',
|
||||||
|
'underscore',
|
||||||
|
'backbone',
|
||||||
|
'common/mobile/lib/view/Collaboration'
|
||||||
|
], function (core, $, _, Backbone) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
Common.Controllers.Collaboration = Backbone.Controller.extend(_.extend((function() {
|
||||||
|
// Private
|
||||||
|
var rootView,
|
||||||
|
_userId,
|
||||||
|
editUsers = [],
|
||||||
|
editor = !!window.DE ? 'DE' : !!window.PE ? 'PE' : 'SSE',
|
||||||
|
displayMode = "markup",
|
||||||
|
canViewReview,
|
||||||
|
arrChangeReview = [],
|
||||||
|
dateChange = [],
|
||||||
|
_fileKey;
|
||||||
|
|
||||||
|
|
||||||
|
return {
|
||||||
|
models: [],
|
||||||
|
collections: [],
|
||||||
|
views: [
|
||||||
|
'Common.Views.Collaboration'
|
||||||
|
],
|
||||||
|
|
||||||
|
initialize: function() {
|
||||||
|
var me = this;
|
||||||
|
me.addListeners({
|
||||||
|
'Common.Views.Collaboration': {
|
||||||
|
'page:show' : me.onPageShow
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Common.NotificationCenter.on('comments:filterchange', _.bind(this.onFilterChange, this));
|
||||||
|
},
|
||||||
|
|
||||||
|
setApi: function(api) {
|
||||||
|
this.api = api;
|
||||||
|
this.api.asc_registerCallback('asc_onAuthParticipantsChanged', _.bind(this.onChangeEditUsers, this));
|
||||||
|
this.api.asc_registerCallback('asc_onParticipantsChanged', _.bind(this.onChangeEditUsers, this));
|
||||||
|
this.api.asc_registerCallback('asc_onAddComment', _.bind(this.onApiAddComment, this));
|
||||||
|
this.api.asc_registerCallback('asc_onAddComments', _.bind(this.onApiAddComments, this));
|
||||||
|
this.api.asc_registerCallback('asc_onChangeCommentData', _.bind(this.onApiChangeCommentData, this));
|
||||||
|
this.api.asc_registerCallback('asc_onRemoveComment', _.bind(this.onApiRemoveComment, this));
|
||||||
|
if (editor === 'DE') {
|
||||||
|
this.api.asc_registerCallback('asc_onShowRevisionsChange', _.bind(this.changeReview, this));
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onLaunch: function () {
|
||||||
|
this.createView('Common.Views.Collaboration').render();
|
||||||
|
},
|
||||||
|
|
||||||
|
setMode: function(mode) {
|
||||||
|
this.appConfig = mode;
|
||||||
|
_userId = mode.user.id;
|
||||||
|
if (editor === 'DE') {
|
||||||
|
_fileKey = mode.fileKey;
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
showModal: function() {
|
||||||
|
var me = this,
|
||||||
|
isAndroid = Framework7.prototype.device.android === true,
|
||||||
|
modalView,
|
||||||
|
appPrefix = !!window.DE ? DE : !!window.PE ? PE : SSE,
|
||||||
|
mainView = appPrefix.getController('Editor').getView('Editor').f7View;
|
||||||
|
|
||||||
|
uiApp.closeModal();
|
||||||
|
|
||||||
|
if (Common.SharedSettings.get('phone')) {
|
||||||
|
modalView = $$(uiApp.pickerModal(
|
||||||
|
'<div class="picker-modal settings container-collaboration">' +
|
||||||
|
'<div class="view collaboration-root-view navbar-through">' +
|
||||||
|
this.getView('Common.Views.Collaboration').rootLayout() +
|
||||||
|
'</div>' +
|
||||||
|
'</div>'
|
||||||
|
)).on('opened', function () {
|
||||||
|
if (_.isFunction(me.api.asc_OnShowContextMenu)) {
|
||||||
|
me.api.asc_OnShowContextMenu()
|
||||||
|
}
|
||||||
|
}).on('close', function (e) {
|
||||||
|
mainView.showNavbar();
|
||||||
|
}).on('closed', function () {
|
||||||
|
if (_.isFunction(me.api.asc_OnHideContextMenu)) {
|
||||||
|
me.api.asc_OnHideContextMenu()
|
||||||
|
}
|
||||||
|
});
|
||||||
|
mainView.hideNavbar();
|
||||||
|
} else {
|
||||||
|
modalView = uiApp.popover(
|
||||||
|
'<div class="popover settings container-collaboration">' +
|
||||||
|
'<div class="popover-angle"></div>' +
|
||||||
|
'<div class="popover-inner">' +
|
||||||
|
'<div class="content-block">' +
|
||||||
|
'<div class="view popover-view collaboration-root-view navbar-through">' +
|
||||||
|
this.getView('Common.Views.Collaboration').rootLayout() +
|
||||||
|
'</div>' +
|
||||||
|
'</div>' +
|
||||||
|
'</div>' +
|
||||||
|
'</div>',
|
||||||
|
$$('#toolbar-collaboration')
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Framework7.prototype.device.android === true) {
|
||||||
|
$$('.view.collaboration-root-view.navbar-through').removeClass('navbar-through').addClass('navbar-fixed');
|
||||||
|
$$('.view.collaboration-root-view .navbar').prependTo('.view.collaboration-root-view > .pages > .page');
|
||||||
|
}
|
||||||
|
|
||||||
|
rootView = uiApp.addView('.collaboration-root-view', {
|
||||||
|
dynamicNavbar: true,
|
||||||
|
domCache: true
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!Common.SharedSettings.get('phone')) {
|
||||||
|
this.picker = $$(modalView);
|
||||||
|
var $overlay = $('.modal-overlay');
|
||||||
|
|
||||||
|
$$(this.picker).on('opened', function () {
|
||||||
|
$overlay.on('removeClass', function () {
|
||||||
|
if (!$overlay.hasClass('modal-overlay-visible')) {
|
||||||
|
$overlay.addClass('modal-overlay-visible')
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}).on('close', function () {
|
||||||
|
$overlay.off('removeClass');
|
||||||
|
$overlay.removeClass('modal-overlay-visible')
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
Common.NotificationCenter.trigger('collaborationcontainer:show');
|
||||||
|
this.onPageShow(this.getView('Common.Views.Collaboration'));
|
||||||
|
|
||||||
|
appPrefix.getController('Toolbar').getView('Toolbar').hideSearch();
|
||||||
|
},
|
||||||
|
|
||||||
|
rootView : function() {
|
||||||
|
return rootView;
|
||||||
|
},
|
||||||
|
|
||||||
|
onPageShow: function(view, pageId) {
|
||||||
|
var me = this;
|
||||||
|
|
||||||
|
if ('#reviewing-settings-view' == pageId) {
|
||||||
|
me.initReviewingSettingsView();
|
||||||
|
Common.Utils.addScrollIfNeed('.page[data-page=reviewing-settings-view]', '.page[data-page=reviewing-settings-view] .page-content');
|
||||||
|
} else if ('#display-mode-view' == pageId) {
|
||||||
|
me.initDisplayMode();
|
||||||
|
Common.Utils.addScrollIfNeed('.page[data-page=display-mode-view]', '.page[data-page=display-mode-view] .page-content');
|
||||||
|
} else if('#change-view' == pageId) {
|
||||||
|
me.initChange();
|
||||||
|
Common.Utils.addScrollIfNeed('.page[data-page=change-view]', '.page[data-page=change-view] .page-content');
|
||||||
|
} else if('#edit-users-view' == pageId) {
|
||||||
|
me.initEditUsers();
|
||||||
|
Common.Utils.addScrollIfNeed('.page[data-page=edit-users-view]', '.page[data-page=edit-users-view] .page-content');
|
||||||
|
} else if ('#comments-view' == pageId) {
|
||||||
|
me.initComments();
|
||||||
|
Common.Utils.addScrollIfNeed('.page[data-page=comments-view]', '.page[data-page=comments-view] .page-content');
|
||||||
|
} else {
|
||||||
|
if(editor === 'DE' && !this.appConfig.canReview && !canViewReview) {
|
||||||
|
$('#reviewing-settings').hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
//Edit users
|
||||||
|
|
||||||
|
onChangeEditUsers: function(users) {
|
||||||
|
editUsers = users;
|
||||||
|
},
|
||||||
|
|
||||||
|
initEditUsers: function() {
|
||||||
|
var usersArray = [];
|
||||||
|
_.each(editUsers, function(item){
|
||||||
|
var fio = item.asc_getUserName().split(' ');
|
||||||
|
var initials = fio[0].substring(0, 1).toUpperCase();
|
||||||
|
if (fio.length > 1) {
|
||||||
|
initials += fio[fio.length - 1].substring(0, 1).toUpperCase();
|
||||||
|
}
|
||||||
|
if(!item.asc_getView()) {
|
||||||
|
var userAttr = {
|
||||||
|
color: item.asc_getColor(),
|
||||||
|
id: item.asc_getId(),
|
||||||
|
idOriginal: item.asc_getIdOriginal(),
|
||||||
|
name: item.asc_getUserName(),
|
||||||
|
view: item.asc_getView(),
|
||||||
|
initial: initials
|
||||||
|
};
|
||||||
|
if(item.asc_getIdOriginal() == _userId) {
|
||||||
|
usersArray.unshift(userAttr);
|
||||||
|
} else {
|
||||||
|
usersArray.push(userAttr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
var userSort = _.chain(usersArray).groupBy('idOriginal').value();
|
||||||
|
var templateUserItem = _.template([
|
||||||
|
'<% _.each(users, function (user) { %>',
|
||||||
|
'<li id="<%= user[0].id %>" class="<% if (user[0].view) {%> viewmode <% } %> item-content">' +
|
||||||
|
'<div class="user-name item-inner">' +
|
||||||
|
'<div class="color" style="background-color: <%= user[0].color %>;"><%= user[0].initial %></div>'+
|
||||||
|
'<label><%= user[0].name %></label>' +
|
||||||
|
'<% if (user.length>1) { %><label class="length"> (<%= user.length %>)</label><% } %>' +
|
||||||
|
'</div>'+
|
||||||
|
'</li>',
|
||||||
|
'<% }); %>'].join(''));
|
||||||
|
var templateUserList = _.template(
|
||||||
|
'<div class="item-content"><div class="item-inner">' +
|
||||||
|
this.textEditUser +
|
||||||
|
'</div></div>' +
|
||||||
|
'<ul>' +
|
||||||
|
templateUserItem({users: userSort}) +
|
||||||
|
'</ul>');
|
||||||
|
$('#user-list').html(templateUserList());
|
||||||
|
},
|
||||||
|
|
||||||
|
//Review
|
||||||
|
|
||||||
|
initReviewingSettingsView: function () {
|
||||||
|
var me = this;
|
||||||
|
$('#settings-review input:checkbox').attr('checked', this.appConfig.isReviewOnly || Common.localStorage.getBool("de-mobile-track-changes-" + (_fileKey || '')));
|
||||||
|
$('#settings-review input:checkbox').single('change', _.bind(me.onTrackChanges, me));
|
||||||
|
$('#settings-accept-all').single('click', _.bind(me.onAcceptAllClick, me));
|
||||||
|
$('#settings-reject-all').single('click', _.bind(me.onRejectAllClick, me));
|
||||||
|
if(this.appConfig.isReviewOnly || displayMode == "final" || displayMode == "original" ) {
|
||||||
|
$('#settings-accept-all').addClass('disabled');
|
||||||
|
$('#settings-reject-all').addClass('disabled');
|
||||||
|
$('#settings-review').addClass('disabled');
|
||||||
|
} else {
|
||||||
|
$('#settings-accept-all').removeClass('disabled');
|
||||||
|
$('#settings-reject-all').removeClass('disabled');
|
||||||
|
$('#settings-review').removeClass('disabled');
|
||||||
|
}
|
||||||
|
if (!this.appConfig.canReview) {
|
||||||
|
$('#settings-review').hide();
|
||||||
|
$('#settings-accept-all').hide();
|
||||||
|
$('#settings-reject-all').hide();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onTrackChanges: function(e) {
|
||||||
|
var $checkbox = $(e.currentTarget),
|
||||||
|
state = $checkbox.is(':checked');
|
||||||
|
if ( this.appConfig.isReviewOnly ) {
|
||||||
|
$checkbox.attr('checked', true);
|
||||||
|
} else {
|
||||||
|
this.api.asc_SetTrackRevisions(state);
|
||||||
|
var prefix = !!window.DE ? 'de' : !!window.PE ? 'pe' : 'sse';
|
||||||
|
Common.localStorage.setItem(prefix + "-mobile-track-changes-" + (_fileKey || ''), state ? 1 : 0);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onAcceptAllClick: function() {
|
||||||
|
if (this.api) {
|
||||||
|
this.api.asc_AcceptAllChanges();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onRejectAllClick: function() {
|
||||||
|
if (this.api) {
|
||||||
|
this.api.asc_RejectAllChanges();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
initDisplayMode: function() {
|
||||||
|
var me = this;
|
||||||
|
$('input:radio').single('change', _.bind(me.onReviewViewClick, me));
|
||||||
|
var value = displayMode;
|
||||||
|
if (value == null || value === "markup") {
|
||||||
|
$('input[value="markup"]').attr('checked', true);
|
||||||
|
} else if (value === 'final') {
|
||||||
|
$('input[value="final"]').attr('checked', true);
|
||||||
|
} else if (value === 'original') {
|
||||||
|
$('input[value="original"]').attr('checked', true);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
getDisplayMode: function() {
|
||||||
|
return displayMode;
|
||||||
|
},
|
||||||
|
|
||||||
|
setCanViewReview: function(config) {
|
||||||
|
canViewReview = config;
|
||||||
|
},
|
||||||
|
|
||||||
|
onReviewViewClick: function(event) {
|
||||||
|
var value = $(event.currentTarget).val();
|
||||||
|
this.turnDisplayMode(value);
|
||||||
|
!this.appConfig.canReview && Common.localStorage.setItem("de-view-review-mode", value);
|
||||||
|
},
|
||||||
|
|
||||||
|
turnDisplayMode: function(value, suppressEvent) {
|
||||||
|
displayMode = value.toLocaleLowerCase();
|
||||||
|
if (this.api) {
|
||||||
|
if (displayMode === 'final')
|
||||||
|
this.api.asc_BeginViewModeInReview(true);
|
||||||
|
|
||||||
|
else if (displayMode === 'original')
|
||||||
|
this.api.asc_BeginViewModeInReview(false);
|
||||||
|
else
|
||||||
|
this.api.asc_EndViewModeInReview();
|
||||||
|
}
|
||||||
|
!suppressEvent && this.initReviewingSettingsView();
|
||||||
|
DE.getController('Toolbar').setDisplayMode(displayMode);
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
initChange: function() {
|
||||||
|
var goto = false;
|
||||||
|
if(arrChangeReview.length == 0) {
|
||||||
|
this.api.asc_GetNextRevisionsChange();
|
||||||
|
}
|
||||||
|
if(arrChangeReview.length == 0) {
|
||||||
|
$('#current-change').css('display','none');
|
||||||
|
} else {
|
||||||
|
$('#current-change #date-change').html(arrChangeReview[0].date);
|
||||||
|
$('#current-change #user-name').html(arrChangeReview[0].user);
|
||||||
|
$('#current-change #text-change').html(arrChangeReview[0].changetext);
|
||||||
|
goto = arrChangeReview[0].goto;
|
||||||
|
}
|
||||||
|
if (goto) {
|
||||||
|
$('#btn-goto-change').show();
|
||||||
|
} else {
|
||||||
|
$('#btn-goto-change').hide();
|
||||||
|
}
|
||||||
|
$('#btn-prev-change').single('click', _.bind(this.onPrevChange, this));
|
||||||
|
$('#btn-next-change').single('click', _.bind(this.onNextChange, this));
|
||||||
|
$('#btn-accept-change').single('click', _.bind(this.onAcceptCurrentChange, this));
|
||||||
|
$('#btn-reject-change').single('click', _.bind(this.onRejectCurrentChange, this));
|
||||||
|
$('#btn-goto-change').single('click', _.bind(this.onGotoNextChange, this));
|
||||||
|
|
||||||
|
if(this.appConfig.isReviewOnly) {
|
||||||
|
$('#btn-accept-change').remove();
|
||||||
|
$('#btn-reject-change').remove();
|
||||||
|
if(arrChangeReview.length != 0 && arrChangeReview[0].editable) {
|
||||||
|
$('.accept-reject').html('<div id="btn-delete-change"><i class="icon icon-delete-change"></i></div>');
|
||||||
|
$('#btn-delete-change').single('click', _.bind(this.onDeleteChange, this));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(displayMode == "final" || displayMode == "original") {
|
||||||
|
$('#btn-accept-change').addClass('disabled');
|
||||||
|
$('#btn-reject-change').addClass('disabled');
|
||||||
|
$('#btn-prev-change').addClass('disabled');
|
||||||
|
$('#btn-next-change').addClass('disabled');
|
||||||
|
}
|
||||||
|
if (!this.appConfig.canReview) {
|
||||||
|
$('#btn-accept-change').addClass('disabled');
|
||||||
|
$('#btn-reject-change').addClass('disabled');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onPrevChange: function() {
|
||||||
|
this.api.asc_GetPrevRevisionsChange();
|
||||||
|
},
|
||||||
|
|
||||||
|
onNextChange: function() {
|
||||||
|
this.api.asc_GetNextRevisionsChange();
|
||||||
|
},
|
||||||
|
|
||||||
|
onAcceptCurrentChange: function() {
|
||||||
|
var me = this;
|
||||||
|
if (this.api) {
|
||||||
|
this.api.asc_AcceptChanges(dateChange[0]);
|
||||||
|
setTimeout(function () {
|
||||||
|
me.api.asc_GetNextRevisionsChange();
|
||||||
|
}, 10);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onRejectCurrentChange: function() {
|
||||||
|
var me = this;
|
||||||
|
if (this.api) {
|
||||||
|
this.api.asc_RejectChanges(dateChange[0]);
|
||||||
|
setTimeout(function () {
|
||||||
|
me.api.asc_GetNextRevisionsChange();
|
||||||
|
}, 10);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
updateInfoChange: function() {
|
||||||
|
if($("[data-page=change-view]").length > 0) {
|
||||||
|
if (arrChangeReview.length == 0) {
|
||||||
|
$('#current-change #date-change').empty();
|
||||||
|
$('#current-change #user-name').empty();
|
||||||
|
$('#current-change #text-change').empty();
|
||||||
|
$('#current-change').hide();
|
||||||
|
$('#btn-goto-change').hide();
|
||||||
|
$('#btn-delete-change').hide();
|
||||||
|
} else {
|
||||||
|
$('#current-change').show();
|
||||||
|
this.initChange();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
changeReview: function (data) {
|
||||||
|
if (data && data.length>0) {
|
||||||
|
var me = this, arr = [];
|
||||||
|
_.each(data, function (item) {
|
||||||
|
var changetext = '', proptext = '',
|
||||||
|
value = item.get_Value(),
|
||||||
|
movetype = item.get_MoveType(),
|
||||||
|
settings = false;
|
||||||
|
switch (item.get_Type()) {
|
||||||
|
case Asc.c_oAscRevisionsChangeType.TextAdd:
|
||||||
|
changetext = (movetype==Asc.c_oAscRevisionsMove.NoMove) ? me.textInserted : me.textParaMoveTo;
|
||||||
|
if (typeof value == 'object') {
|
||||||
|
_.each(value, function (obj) {
|
||||||
|
if (typeof obj === 'string')
|
||||||
|
changetext += (' ' + Common.Utils.String.htmlEncode(obj));
|
||||||
|
else {
|
||||||
|
switch (obj) {
|
||||||
|
case 0:
|
||||||
|
changetext += (' <' + me.textImage + '>');
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
changetext += (' <' + me.textShape + '>');
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
changetext += (' <' + me.textChart + '>');
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
changetext += (' <' + me.textEquation + '>');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else if (typeof value === 'string') {
|
||||||
|
changetext += (' ' + Common.Utils.String.htmlEncode(value));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case Asc.c_oAscRevisionsChangeType.TextRem:
|
||||||
|
changetext = (movetype==Asc.c_oAscRevisionsMove.NoMove) ? me.textDeleted : (item.is_MovedDown() ? me.textParaMoveFromDown : me.textParaMoveFromUp);
|
||||||
|
if (typeof value == 'object') {
|
||||||
|
_.each(value, function (obj) {
|
||||||
|
if (typeof obj === 'string')
|
||||||
|
changetext += (' ' + Common.Utils.String.htmlEncode(obj));
|
||||||
|
else {
|
||||||
|
switch (obj) {
|
||||||
|
case 0:
|
||||||
|
changetext += (' <' + me.textImage + '>');
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
changetext += (' <' + me.textShape + '>');
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
changetext += (' <' + me.textChart + '>');
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
changetext += (' <' + me.textEquation + '>');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else if (typeof value === 'string') {
|
||||||
|
changetext += (' ' + Common.Utils.String.htmlEncode(value));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case Asc.c_oAscRevisionsChangeType.ParaAdd:
|
||||||
|
changetext = me.textParaInserted;
|
||||||
|
break;
|
||||||
|
case Asc.c_oAscRevisionsChangeType.ParaRem:
|
||||||
|
changetext = me.textParaDeleted;
|
||||||
|
break;
|
||||||
|
case Asc.c_oAscRevisionsChangeType.TextPr:
|
||||||
|
changetext = '<b>' + me.textFormatted;
|
||||||
|
if (value.Get_Bold() !== undefined)
|
||||||
|
proptext += ((value.Get_Bold() ? '' : me.textNot) + me.textBold + ', ');
|
||||||
|
if (value.Get_Italic() !== undefined)
|
||||||
|
proptext += ((value.Get_Italic() ? '' : me.textNot) + me.textItalic + ', ');
|
||||||
|
if (value.Get_Underline() !== undefined)
|
||||||
|
proptext += ((value.Get_Underline() ? '' : me.textNot) + me.textUnderline + ', ');
|
||||||
|
if (value.Get_Strikeout() !== undefined)
|
||||||
|
proptext += ((value.Get_Strikeout() ? '' : me.textNot) + me.textStrikeout + ', ');
|
||||||
|
if (value.Get_DStrikeout() !== undefined)
|
||||||
|
proptext += ((value.Get_DStrikeout() ? '' : me.textNot) + me.textDStrikeout + ', ');
|
||||||
|
if (value.Get_Caps() !== undefined)
|
||||||
|
proptext += ((value.Get_Caps() ? '' : me.textNot) + me.textCaps + ', ');
|
||||||
|
if (value.Get_SmallCaps() !== undefined)
|
||||||
|
proptext += ((value.Get_SmallCaps() ? '' : me.textNot) + me.textSmallCaps + ', ');
|
||||||
|
if (value.Get_VertAlign() !== undefined)
|
||||||
|
proptext += (((value.Get_VertAlign() == 1) ? me.textSuperScript : ((value.Get_VertAlign() == 2) ? me.textSubScript : me.textBaseline)) + ', ');
|
||||||
|
if (value.Get_Color() !== undefined)
|
||||||
|
proptext += (me.textColor + ', ');
|
||||||
|
if (value.Get_Highlight() !== undefined)
|
||||||
|
proptext += (me.textHighlight + ', ');
|
||||||
|
if (value.Get_Shd() !== undefined)
|
||||||
|
proptext += (me.textShd + ', ');
|
||||||
|
if (value.Get_FontFamily() !== undefined)
|
||||||
|
proptext += (value.Get_FontFamily() + ', ');
|
||||||
|
if (value.Get_FontSize() !== undefined)
|
||||||
|
proptext += (value.Get_FontSize() + ', ');
|
||||||
|
if (value.Get_Spacing() !== undefined)
|
||||||
|
proptext += (me.textSpacing + ' ' + Common.Utils.Metric.fnRecalcFromMM(value.Get_Spacing()).toFixed(2) + ' ' + Common.Utils.Metric.getCurrentMetricName() + ', ');
|
||||||
|
if (value.Get_Position() !== undefined)
|
||||||
|
proptext += (me.textPosition + ' ' + Common.Utils.Metric.fnRecalcFromMM(value.Get_Position()).toFixed(2) + ' ' + Common.Utils.Metric.getCurrentMetricName() + ', ');
|
||||||
|
if (value.Get_Lang() !== undefined)
|
||||||
|
proptext += (Common.util.LanguageInfo.getLocalLanguageName(value.Get_Lang())[1] + ', ');
|
||||||
|
|
||||||
|
if (!_.isEmpty(proptext)) {
|
||||||
|
changetext += ': ';
|
||||||
|
proptext = proptext.substring(0, proptext.length - 2);
|
||||||
|
}
|
||||||
|
changetext += '</b>';
|
||||||
|
changetext += proptext;
|
||||||
|
break;
|
||||||
|
case Asc.c_oAscRevisionsChangeType.ParaPr:
|
||||||
|
changetext = '<b>' + me.textParaFormatted;
|
||||||
|
if (value.Get_ContextualSpacing())
|
||||||
|
proptext += ((value.Get_ContextualSpacing() ? me.textContextual : me.textNoContextual) + ', ');
|
||||||
|
if (value.Get_IndLeft() !== undefined)
|
||||||
|
proptext += (me.textIndentLeft + ' ' + Common.Utils.Metric.fnRecalcFromMM(value.Get_IndLeft()).toFixed(2) + ' ' + Common.Utils.Metric.getCurrentMetricName() + ', ');
|
||||||
|
if (value.Get_IndRight() !== undefined)
|
||||||
|
proptext += (me.textIndentRight + ' ' + Common.Utils.Metric.fnRecalcFromMM(value.Get_IndRight()).toFixed(2) + ' ' + Common.Utils.Metric.getCurrentMetricName() + ', ');
|
||||||
|
if (value.Get_IndFirstLine() !== undefined)
|
||||||
|
proptext += (me.textFirstLine + ' ' + Common.Utils.Metric.fnRecalcFromMM(value.Get_IndFirstLine()).toFixed(2) + ' ' + Common.Utils.Metric.getCurrentMetricName() + ', ');
|
||||||
|
if (value.Get_Jc() !== undefined) {
|
||||||
|
switch (value.Get_Jc()) {
|
||||||
|
case 0:
|
||||||
|
proptext += (me.textRight + ', ');
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
proptext += (me.textLeft + ', ');
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
proptext += (me.textCenter + ', ');
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
proptext += (me.textJustify + ', ');
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (value.Get_KeepLines() !== undefined)
|
||||||
|
proptext += ((value.Get_KeepLines() ? me.textKeepLines : me.textNoKeepLines) + ', ');
|
||||||
|
if (value.Get_KeepNext())
|
||||||
|
proptext += ((value.Get_KeepNext() ? me.textKeepNext : me.textNoKeepNext) + ', ');
|
||||||
|
if (value.Get_PageBreakBefore())
|
||||||
|
proptext += ((value.Get_PageBreakBefore() ? me.textBreakBefore : me.textNoBreakBefore) + ', ');
|
||||||
|
if (value.Get_SpacingLineRule() !== undefined && value.Get_SpacingLine() !== undefined) {
|
||||||
|
proptext += me.textLineSpacing;
|
||||||
|
proptext += (((value.Get_SpacingLineRule() == c_paragraphLinerule.LINERULE_LEAST) ? me.textAtLeast : ((value.Get_SpacingLineRule() == c_paragraphLinerule.LINERULE_AUTO) ? me.textMultiple : me.textExact)) + ' ');
|
||||||
|
proptext += (((value.Get_SpacingLineRule() == c_paragraphLinerule.LINERULE_AUTO) ? value.Get_SpacingLine() : Common.Utils.Metric.fnRecalcFromMM(value.Get_SpacingLine()).toFixed(2) + ' ' + Common.Utils.Metric.getCurrentMetricName()) + ', ');
|
||||||
|
}
|
||||||
|
if (value.Get_SpacingBeforeAutoSpacing())
|
||||||
|
proptext += (me.textSpacingBefore + ' ' + me.textAuto + ', ');
|
||||||
|
else if (value.Get_SpacingBefore() !== undefined)
|
||||||
|
proptext += (me.textSpacingBefore + ' ' + Common.Utils.Metric.fnRecalcFromMM(value.Get_SpacingBefore()).toFixed(2) + ' ' + Common.Utils.Metric.getCurrentMetricName() + ', ');
|
||||||
|
if (value.Get_SpacingAfterAutoSpacing())
|
||||||
|
proptext += (me.textSpacingAfter + ' ' + me.textAuto + ', ');
|
||||||
|
else if (value.Get_SpacingAfter() !== undefined)
|
||||||
|
proptext += (me.textSpacingAfter + ' ' + Common.Utils.Metric.fnRecalcFromMM(value.Get_SpacingAfter()).toFixed(2) + ' ' + Common.Utils.Metric.getCurrentMetricName() + ', ');
|
||||||
|
if (value.Get_WidowControl())
|
||||||
|
proptext += ((value.Get_WidowControl() ? me.textWidow : me.textNoWidow) + ', ');
|
||||||
|
if (value.Get_Tabs() !== undefined)
|
||||||
|
proptext += proptext += (me.textTabs + ', ');
|
||||||
|
if (value.Get_NumPr() !== undefined)
|
||||||
|
proptext += proptext += (me.textNum + ', ');
|
||||||
|
if (value.Get_PStyle() !== undefined) {
|
||||||
|
var style = me.api.asc_GetStyleNameById(value.Get_PStyle());
|
||||||
|
if (!_.isEmpty(style)) proptext += (style + ', ');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!_.isEmpty(proptext)) {
|
||||||
|
changetext += ': ';
|
||||||
|
proptext = proptext.substring(0, proptext.length - 2);
|
||||||
|
}
|
||||||
|
changetext += '</b>';
|
||||||
|
changetext += proptext;
|
||||||
|
break;
|
||||||
|
case Asc.c_oAscRevisionsChangeType.TablePr:
|
||||||
|
changetext = me.textTableChanged;
|
||||||
|
break;
|
||||||
|
case Asc.c_oAscRevisionsChangeType.RowsAdd:
|
||||||
|
changetext = me.textTableRowsAdd;
|
||||||
|
break;
|
||||||
|
case Asc.c_oAscRevisionsChangeType.RowsRem:
|
||||||
|
changetext = me.textTableRowsDel;
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
var date = (item.get_DateTime() == '') ? new Date() : new Date(item.get_DateTime()),
|
||||||
|
user = item.get_UserName(),
|
||||||
|
goto = (item.get_MoveType() == Asc.c_oAscRevisionsMove.MoveTo || item.get_MoveType() == Asc.c_oAscRevisionsMove.MoveFrom);
|
||||||
|
date = me.dateToLocaleTimeString(date);
|
||||||
|
var editable = (item.get_UserId() == _userId);
|
||||||
|
|
||||||
|
|
||||||
|
arr.push({date: date, user: user, changetext: changetext, goto: goto, editable: editable});
|
||||||
|
});
|
||||||
|
arrChangeReview = arr;
|
||||||
|
dateChange = data;
|
||||||
|
} else {
|
||||||
|
arrChangeReview = [];
|
||||||
|
dateChange = [];
|
||||||
|
}
|
||||||
|
this.updateInfoChange();
|
||||||
|
},
|
||||||
|
|
||||||
|
dateToLocaleTimeString: function (date) {
|
||||||
|
function format(date) {
|
||||||
|
var strTime,
|
||||||
|
hours = date.getHours(),
|
||||||
|
minutes = date.getMinutes(),
|
||||||
|
ampm = hours >= 12 ? 'pm' : 'am';
|
||||||
|
|
||||||
|
hours = hours % 12;
|
||||||
|
hours = hours ? hours : 12; // the hour '0' should be '12'
|
||||||
|
minutes = minutes < 10 ? '0'+minutes : minutes;
|
||||||
|
strTime = hours + ':' + minutes + ' ' + ampm;
|
||||||
|
|
||||||
|
return strTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
// MM/dd/yyyy hh:mm AM
|
||||||
|
return (date.getMonth() + 1) + '/' + (date.getDate()) + '/' + date.getFullYear() + ' ' + format(date);
|
||||||
|
},
|
||||||
|
|
||||||
|
onDeleteChange: function() {
|
||||||
|
if (this.api) {
|
||||||
|
this.api.asc_RejectChanges(dateChange[0]);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onGotoNextChange: function() {
|
||||||
|
if (this.api) {
|
||||||
|
this.api.asc_FollowRevisionMove(dateChange[0]);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
//Comments
|
||||||
|
|
||||||
|
groupCollectionComments: [],
|
||||||
|
collectionComments: [],
|
||||||
|
groupCollectionFilter: [],
|
||||||
|
filter: [],
|
||||||
|
|
||||||
|
initComments: function() {
|
||||||
|
this.getView('Common.Views.Collaboration').renderComments((this.groupCollectionFilter.length !== 0) ? this.groupCollectionFilter : (this.collectionComments.length !== 0) ? this.collectionComments : false);
|
||||||
|
$('.comment-quote').single('click', _.bind(this.onSelectComment, this));
|
||||||
|
},
|
||||||
|
|
||||||
|
readSDKReplies: function (data) {
|
||||||
|
var i = 0,
|
||||||
|
replies = [],
|
||||||
|
date = null;
|
||||||
|
var repliesCount = data.asc_getRepliesCount();
|
||||||
|
if (repliesCount) {
|
||||||
|
for (i = 0; i < repliesCount; ++i) {
|
||||||
|
date = (data.asc_getReply(i).asc_getOnlyOfficeTime()) ? new Date(this.stringOOToLocalDate(data.asc_getReply(i).asc_getOnlyOfficeTime())) :
|
||||||
|
((data.asc_getReply(i).asc_getTime() == '') ? new Date() : new Date(this.stringUtcToLocalDate(data.asc_getReply(i).asc_getTime())));
|
||||||
|
|
||||||
|
var user = _.findWhere(editUsers, {idOriginal: data.asc_getReply(i).asc_getUserId()});
|
||||||
|
replies.push({
|
||||||
|
userid : data.asc_getReply(i).asc_getUserId(),
|
||||||
|
username : data.asc_getReply(i).asc_getUserName(),
|
||||||
|
usercolor : (user) ? user.asc_getColor() : null,
|
||||||
|
date : this.dateToLocaleTimeString(date),
|
||||||
|
reply : data.asc_getReply(i).asc_getText(),
|
||||||
|
time : date.getTime()
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return replies;
|
||||||
|
},
|
||||||
|
|
||||||
|
readSDKComment: function(id, data) {
|
||||||
|
var date = (data.asc_getOnlyOfficeTime()) ? new Date(this.stringOOToLocalDate(data.asc_getOnlyOfficeTime())) :
|
||||||
|
((data.asc_getTime() == '') ? new Date() : new Date(this.stringUtcToLocalDate(data.asc_getTime())));
|
||||||
|
var user = _.findWhere(editUsers, {idOriginal: data.asc_getUserId()}),
|
||||||
|
groupname = id.substr(0, id.lastIndexOf('_')+1).match(/^(doc|sheet[0-9_]+)_/);
|
||||||
|
var comment = {
|
||||||
|
uid : id,
|
||||||
|
userid : data.asc_getUserId(),
|
||||||
|
username : data.asc_getUserName(),
|
||||||
|
usercolor : (user) ? user.asc_getColor() : null,
|
||||||
|
date : this.dateToLocaleTimeString(date),
|
||||||
|
quote : data.asc_getQuoteText(),
|
||||||
|
comment : data.asc_getText(),
|
||||||
|
resolved : data.asc_getSolved(),
|
||||||
|
unattached : !_.isUndefined(data.asc_getDocumentFlag) ? data.asc_getDocumentFlag() : false,
|
||||||
|
time : date.getTime(),
|
||||||
|
replys : [],
|
||||||
|
groupName : (groupname && groupname.length>1) ? groupname[1] : null
|
||||||
|
}
|
||||||
|
if (comment) {
|
||||||
|
var replies = this.readSDKReplies(data);
|
||||||
|
if (replies.length) {
|
||||||
|
comment.replys = replies;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return comment;
|
||||||
|
},
|
||||||
|
|
||||||
|
onApiChangeCommentData: function(id, data) {
|
||||||
|
var me = this,
|
||||||
|
i = 0,
|
||||||
|
date = null,
|
||||||
|
replies = null,
|
||||||
|
repliesCount = 0,
|
||||||
|
dateReply = null,
|
||||||
|
comment = _.findWhere(me.collectionComments, {uid: id}) || this.findCommentInGroup(id);
|
||||||
|
|
||||||
|
if (comment) {
|
||||||
|
|
||||||
|
date = (data.asc_getOnlyOfficeTime()) ? new Date(this.stringOOToLocalDate(data.asc_getOnlyOfficeTime())) :
|
||||||
|
((data.asc_getTime() == '') ? new Date() : new Date(this.stringUtcToLocalDate(data.asc_getTime())));
|
||||||
|
|
||||||
|
var user = _.findWhere(editUsers, {idOriginal: data.asc_getUserId()});
|
||||||
|
comment.comment = data.asc_getText();
|
||||||
|
comment.userid = data.asc_getUserId();
|
||||||
|
comment.username = data.asc_getUserName();
|
||||||
|
comment.usercolor = (user) ? user.asc_getColor() : null;
|
||||||
|
comment.resolved = data.asc_getSolved();
|
||||||
|
comment.quote = data.asc_getQuoteText();
|
||||||
|
comment.time = date.getTime();
|
||||||
|
comment.date = me.dateToLocaleTimeString(date);
|
||||||
|
|
||||||
|
replies = _.clone(comment.replys);
|
||||||
|
|
||||||
|
replies.length = 0;
|
||||||
|
|
||||||
|
repliesCount = data.asc_getRepliesCount();
|
||||||
|
for (i = 0; i < repliesCount; ++i) {
|
||||||
|
|
||||||
|
dateReply = (data.asc_getReply(i).asc_getOnlyOfficeTime()) ? new Date(this.stringOOToLocalDate(data.asc_getReply(i).asc_getOnlyOfficeTime())) :
|
||||||
|
((data.asc_getReply(i).asc_getTime() == '') ? new Date() : new Date(this.stringUtcToLocalDate(data.asc_getReply(i).asc_getTime())));
|
||||||
|
|
||||||
|
user = _.findWhere(editUsers, {idOriginal: data.asc_getReply(i).asc_getUserId()});
|
||||||
|
replies.push({
|
||||||
|
userid : data.asc_getReply(i).asc_getUserId(),
|
||||||
|
username : data.asc_getReply(i).asc_getUserName(),
|
||||||
|
usercolor : (user) ? user.asc_getColor() : null,
|
||||||
|
date : me.dateToLocaleTimeString(dateReply),
|
||||||
|
reply : data.asc_getReply(i).asc_getText(),
|
||||||
|
time : dateReply.getTime()
|
||||||
|
});
|
||||||
|
}
|
||||||
|
comment.replys = replies;
|
||||||
|
if($('.page-comments').length > 0) {
|
||||||
|
this.initComments();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onApiAddComment: function (id, data) {
|
||||||
|
var comment = this.readSDKComment(id, data);
|
||||||
|
if (comment) {
|
||||||
|
comment.groupName ? this.addCommentToGroupCollection(comment) : this.collectionComments.push(comment);
|
||||||
|
}
|
||||||
|
if($('.page-comments').length > 0) {
|
||||||
|
this.initComments();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onApiAddComments: function (data) {
|
||||||
|
for (var i = 0; i < data.length; ++i) {
|
||||||
|
var comment = this.readSDKComment(data[i].asc_getId(), data[i]);
|
||||||
|
comment.groupName ? this.addCommentToGroupCollection(comment) : this.collectionComments.push(comment);
|
||||||
|
}
|
||||||
|
if($('.page-comments').length > 0) {
|
||||||
|
this.initComments();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
stringOOToLocalDate: function (date) {
|
||||||
|
if (typeof date === 'string')
|
||||||
|
return parseInt(date);
|
||||||
|
return 0;
|
||||||
|
},
|
||||||
|
|
||||||
|
addCommentToGroupCollection: function (comment) {
|
||||||
|
var groupname = comment.groupName;
|
||||||
|
if (!this.groupCollectionComments[groupname])
|
||||||
|
this.groupCollectionComments[groupname] = [];
|
||||||
|
this.groupCollectionComments[groupname].push(comment);
|
||||||
|
if (this.filter.indexOf(groupname) != -1) {
|
||||||
|
this.groupCollectionFilter.push(comment);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
findCommentInGroup: function (id) {
|
||||||
|
for (var name in this.groupCollectionComments) {
|
||||||
|
var store = this.groupCollectionComments[name],
|
||||||
|
model = _.findWhere(store, {uid: id});
|
||||||
|
if (model) return model;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onApiRemoveComment: function (id) {
|
||||||
|
function remove (collection, key) {
|
||||||
|
if(collection instanceof Array) {
|
||||||
|
var index = collection.indexOf(key);
|
||||||
|
if(index != -1) {
|
||||||
|
collection.splice(index, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (this.groupCollectionComments) {
|
||||||
|
for (var name in this.groupCollectionComments) {
|
||||||
|
var store = this.groupCollectionComments[name],
|
||||||
|
comment = _.findWhere(store, {uid: id});
|
||||||
|
if (comment) {
|
||||||
|
remove(this.groupCollectionComments[name], comment);
|
||||||
|
if (this.filter.indexOf(name) != -1) {
|
||||||
|
remove(this.groupCollectionFilter, comment);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (this.collectionComments.length > 0) {
|
||||||
|
var comment = _.findWhere(this.collectionComments, {uid: id});
|
||||||
|
if (comment) {
|
||||||
|
remove(this.collectionComments, comment);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if($('.page-comments').length > 0) {
|
||||||
|
this.initComments();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onFilterChange: function (filter) {
|
||||||
|
if (filter) {
|
||||||
|
var me = this,
|
||||||
|
comments = [];
|
||||||
|
this.filter = filter;
|
||||||
|
filter.forEach(function(item){
|
||||||
|
if (!me.groupCollectionComments[item])
|
||||||
|
me.groupCollectionComments[item] = [];
|
||||||
|
comments = comments.concat(me.groupCollectionComments[item]);
|
||||||
|
});
|
||||||
|
this.groupCollectionFilter = comments;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onSelectComment: function (e) {
|
||||||
|
var id = $(e.currentTarget).data('id');
|
||||||
|
this.api.asc_selectComment(id);
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
textInserted: '<b>Inserted:</b>',
|
||||||
|
textDeleted: '<b>Deleted:</b>',
|
||||||
|
textParaInserted: '<b>Paragraph Inserted</b> ',
|
||||||
|
textParaDeleted: '<b>Paragraph Deleted</b> ',
|
||||||
|
textFormatted: 'Formatted',
|
||||||
|
textParaFormatted: '<b>Paragraph Formatted</b>',
|
||||||
|
textNot: 'Not ',
|
||||||
|
textBold: 'Bold',
|
||||||
|
textItalic: 'Italic',
|
||||||
|
textStrikeout: 'Strikeout',
|
||||||
|
textUnderline: 'Underline',
|
||||||
|
textColor: 'Font color',
|
||||||
|
textBaseline: 'Baseline',
|
||||||
|
textSuperScript: 'Superscript',
|
||||||
|
textSubScript: 'Subscript',
|
||||||
|
textHighlight: 'Highlight color',
|
||||||
|
textSpacing: 'Spacing',
|
||||||
|
textDStrikeout: 'Double strikeout',
|
||||||
|
textCaps: 'All caps',
|
||||||
|
textSmallCaps: 'Small caps',
|
||||||
|
textPosition: 'Position',
|
||||||
|
textShd: 'Background color',
|
||||||
|
textContextual: 'Don\'t add interval between paragraphs of the same style',
|
||||||
|
textNoContextual: 'Add interval between paragraphs of the same style',
|
||||||
|
textIndentLeft: 'Indent left',
|
||||||
|
textIndentRight: 'Indent right',
|
||||||
|
textFirstLine: 'First line',
|
||||||
|
textRight: 'Align right',
|
||||||
|
textLeft: 'Align left',
|
||||||
|
textCenter: 'Align center',
|
||||||
|
textJustify: 'Align justify',
|
||||||
|
textBreakBefore: 'Page break before',
|
||||||
|
textKeepNext: 'Keep with next',
|
||||||
|
textKeepLines: 'Keep lines together',
|
||||||
|
textNoBreakBefore: 'No page break before',
|
||||||
|
textNoKeepNext: 'Don\'t keep with next',
|
||||||
|
textNoKeepLines: 'Don\'t keep lines together',
|
||||||
|
textLineSpacing: 'Line Spacing: ',
|
||||||
|
textMultiple: 'multiple',
|
||||||
|
textAtLeast: 'at least',
|
||||||
|
textExact: 'exactly',
|
||||||
|
textSpacingBefore: 'Spacing before',
|
||||||
|
textSpacingAfter: 'Spacing after',
|
||||||
|
textAuto: 'auto',
|
||||||
|
textWidow: 'Widow control',
|
||||||
|
textNoWidow: 'No widow control',
|
||||||
|
textTabs: 'Change tabs',
|
||||||
|
textNum: 'Change numbering',
|
||||||
|
textEquation: 'Equation',
|
||||||
|
textImage: 'Image',
|
||||||
|
textChart: 'Chart',
|
||||||
|
textShape: 'Shape',
|
||||||
|
textTableChanged: '<b>Table Settings Changed</b>',
|
||||||
|
textTableRowsAdd: '<b>Table Rows Added<b/>',
|
||||||
|
textTableRowsDel: '<b>Table Rows Deleted<b/>',
|
||||||
|
textParaMoveTo: '<b>Moved:</b>',
|
||||||
|
textParaMoveFromUp: '<b>Moved Up:</b>',
|
||||||
|
textParaMoveFromDown: '<b>Moved Down:</b>',
|
||||||
|
textEditUser: 'Document is currently being edited by several users.'
|
||||||
|
|
||||||
|
}
|
||||||
|
})(), Common.Controllers.Collaboration || {}))
|
||||||
|
});
|
310
apps/common/mobile/lib/controller/Plugins.js
Normal file
|
@ -0,0 +1,310 @@
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* (c) Copyright Ascensio System SIA 2010-2019
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Plugins.js
|
||||||
|
*
|
||||||
|
* Created by Julia Svinareva on 8/7/19
|
||||||
|
* Copyright (c) 2019 Ascensio System SIA. All rights reserved.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (Common === undefined)
|
||||||
|
var Common = {};
|
||||||
|
|
||||||
|
Common.Controllers = Common.Controllers || {};
|
||||||
|
|
||||||
|
define([
|
||||||
|
'core',
|
||||||
|
'jquery',
|
||||||
|
'underscore',
|
||||||
|
'backbone'
|
||||||
|
], function (core, $, _, Backbone) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
Common.Controllers.Plugins = Backbone.Controller.extend(_.extend((function() {
|
||||||
|
// Private
|
||||||
|
var modal;
|
||||||
|
|
||||||
|
return {
|
||||||
|
configPlugins: {autostart:[]},// {config: 'from editor config', plugins: 'loaded plugins', UIplugins: 'loaded customization plugins', autostart: 'autostart guids'}
|
||||||
|
serverPlugins: {autostart:[]},
|
||||||
|
models: [],
|
||||||
|
collections: [],
|
||||||
|
views: [
|
||||||
|
],
|
||||||
|
|
||||||
|
initialize: function() {
|
||||||
|
var me = this;
|
||||||
|
},
|
||||||
|
|
||||||
|
setApi: function(api) {
|
||||||
|
this.api = api;
|
||||||
|
this.api.asc_registerCallback("asc_onPluginShow", _.bind(this.showPluginModal, this));
|
||||||
|
this.api.asc_registerCallback("asc_onPluginClose", _.bind(this.pluginClose, this));
|
||||||
|
this.api.asc_registerCallback("asc_onPluginResize", _.bind(this.pluginResize, this));
|
||||||
|
this.api.asc_registerCallback('asc_onPluginsInit', _.bind(this.registerPlugins, this));
|
||||||
|
},
|
||||||
|
|
||||||
|
onLaunch: function () {
|
||||||
|
Common.Gateway.on('init', this.loadConfig.bind(this));
|
||||||
|
},
|
||||||
|
|
||||||
|
setMode: function(mode) {
|
||||||
|
this.appConfig = mode;
|
||||||
|
this.loadPlugins();
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
showPluginModal: function(plugin, variationIndex, frameId, urlAddition) {
|
||||||
|
var me = this,
|
||||||
|
isAndroid = Framework7.prototype.device.android === true;
|
||||||
|
|
||||||
|
var variation = plugin.get_Variations()[variationIndex];
|
||||||
|
if (variation.get_Visual()) {
|
||||||
|
var url = variation.get_Url();
|
||||||
|
url = ((plugin.get_BaseUrl().length == 0) ? url : plugin.get_BaseUrl()) + url;
|
||||||
|
if (urlAddition)
|
||||||
|
url += urlAddition;
|
||||||
|
var isCustomWindow = variation.get_CustomWindow(),
|
||||||
|
arrBtns = variation.get_Buttons(),
|
||||||
|
newBtns = [],
|
||||||
|
size = variation.get_Size(); //size[0] - width, size[1] - height
|
||||||
|
if (_.isArray(arrBtns)) {
|
||||||
|
_.each(arrBtns, function(b, index){
|
||||||
|
if ((me.appConfig.isEdit || b.isViewer !== false))
|
||||||
|
newBtns[index] = {
|
||||||
|
text: b.text,
|
||||||
|
attributes: {result: index}
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
uiApp.closeModal();
|
||||||
|
|
||||||
|
modal = uiApp.modal({
|
||||||
|
title: '',
|
||||||
|
text: '',
|
||||||
|
afterText:
|
||||||
|
'<div id="plugin-frame" class="">'+
|
||||||
|
'</div>',
|
||||||
|
buttons: isCustomWindow ? undefined : newBtns
|
||||||
|
});
|
||||||
|
$('#plugin-frame').html('<div class="preloader"></div>');
|
||||||
|
me.iframe = document.createElement("iframe");
|
||||||
|
me.iframe.id = frameId;
|
||||||
|
me.iframe.name = 'pluginFrameEditor';
|
||||||
|
me.iframe.width = '100%';
|
||||||
|
me.iframe.height = '100%';
|
||||||
|
me.iframe.align = "top";
|
||||||
|
me.iframe.frameBorder = 0;
|
||||||
|
me.iframe.scrolling = "no";
|
||||||
|
me.iframe.src = url;
|
||||||
|
setTimeout(function () {
|
||||||
|
$('#plugin-frame').html(me.iframe);
|
||||||
|
}, 100);
|
||||||
|
$$(modal).find('.modal-button').on('click', _.bind(me.onDlgBtnClick, me));
|
||||||
|
$$(modal).css({
|
||||||
|
margin: '0',
|
||||||
|
width: '90%',
|
||||||
|
left: '5%',
|
||||||
|
height: 'auto',
|
||||||
|
top: '20px'
|
||||||
|
});
|
||||||
|
$$(modal).find('.modal-inner').css({padding: '0'});
|
||||||
|
if (Common.SharedSettings.get('phone')) {
|
||||||
|
var height = Math.min(size[1], 240);
|
||||||
|
$$(modal).find('#plugin-frame').css({height: height + 'px'});
|
||||||
|
} else {
|
||||||
|
var height = Math.min(size[1], 500);
|
||||||
|
$$(modal).find('#plugin-frame').css({height: height + 'px'});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Framework7.prototype.device.android === true) {
|
||||||
|
$$('.view.collaboration-root-view.navbar-through').removeClass('navbar-through').addClass('navbar-fixed');
|
||||||
|
$$('.view.collaboration-root-view .navbar').prependTo('.view.collaboration-root-view > .pages > .page');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onDlgBtnClick: function (e) {
|
||||||
|
var index = $(e.currentTarget).index();
|
||||||
|
this.api.asc_pluginButtonClick(index);
|
||||||
|
},
|
||||||
|
|
||||||
|
pluginClose: function (plugin) {
|
||||||
|
if (this.iframe) {
|
||||||
|
this.iframe = null;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
pluginResize: function(size) {
|
||||||
|
if (Common.SharedSettings.get('phone')) {
|
||||||
|
var height = Math.min(size[1], 240);
|
||||||
|
$$(modal).find('#plugin-frame').css({height: height + 'px'});
|
||||||
|
} else {
|
||||||
|
var height = Math.min(size[1], 500);
|
||||||
|
$$(modal).find('#plugin-frame').css({height: height + 'px'});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
loadConfig: function(data) {
|
||||||
|
this.configPlugins.config = data.config.plugins;
|
||||||
|
},
|
||||||
|
|
||||||
|
loadPlugins: function() {
|
||||||
|
var me = this;
|
||||||
|
if (me.configPlugins.config) {
|
||||||
|
me.getPlugins(me.configPlugins.config.pluginsData)
|
||||||
|
.then(function(loaded)
|
||||||
|
{
|
||||||
|
me.configPlugins.plugins = loaded;
|
||||||
|
me.mergePlugins();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
me.configPlugins.plugins = false;
|
||||||
|
}
|
||||||
|
var server_plugins_url = '../../../../plugins.json';
|
||||||
|
Common.Utils.loadConfig(server_plugins_url, function (obj) {
|
||||||
|
if ( obj != 'error' ) {
|
||||||
|
me.serverPlugins.config = obj;
|
||||||
|
me.getPlugins(me.serverPlugins.config.pluginsData)
|
||||||
|
.then(function(loaded)
|
||||||
|
{
|
||||||
|
me.serverPlugins.plugins = loaded;
|
||||||
|
me.mergePlugins();
|
||||||
|
});
|
||||||
|
} else
|
||||||
|
me.serverPlugins.plugins = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
mergePlugins: function() {
|
||||||
|
var me = this;
|
||||||
|
if (me.serverPlugins.plugins !== undefined && me.configPlugins.plugins !== undefined) {
|
||||||
|
var arr = [],
|
||||||
|
plugins = this.configPlugins;
|
||||||
|
if (plugins.plugins && plugins.plugins.length>0) {
|
||||||
|
arr = plugins.plugins;
|
||||||
|
}
|
||||||
|
plugins = this.serverPlugins;
|
||||||
|
if (plugins.plugins && plugins.plugins.length>0) {
|
||||||
|
arr = arr.concat(plugins.plugins);
|
||||||
|
}
|
||||||
|
this.registerPlugins(arr);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
registerPlugins: function(plugins) {
|
||||||
|
var me = this;
|
||||||
|
var arr = [];
|
||||||
|
plugins.forEach(function(item){
|
||||||
|
var plugin = new Asc.CPlugin();
|
||||||
|
plugin.set_Name(item['name']);
|
||||||
|
plugin.set_Guid(item['guid']);
|
||||||
|
plugin.set_BaseUrl(item['baseUrl']);
|
||||||
|
|
||||||
|
var variations = item['variations'],
|
||||||
|
variationsArr = [];
|
||||||
|
variations.forEach(function(itemVar){
|
||||||
|
var variation = new Asc.CPluginVariation();
|
||||||
|
variation.set_Description(itemVar['description']);
|
||||||
|
variation.set_Url(itemVar['url']);
|
||||||
|
variation.set_Icons(itemVar['icons']);
|
||||||
|
variation.set_Visual(itemVar['isVisual']);
|
||||||
|
variation.set_CustomWindow(itemVar['isCustomWindow']);
|
||||||
|
variation.set_System(itemVar['isSystem']);
|
||||||
|
variation.set_Viewer(itemVar['isViewer']);
|
||||||
|
variation.set_EditorsSupport(itemVar['EditorsSupport']);
|
||||||
|
variation.set_Modal(itemVar['isModal']);
|
||||||
|
variation.set_InsideMode(itemVar['isInsideMode']);
|
||||||
|
variation.set_InitDataType(itemVar['initDataType']);
|
||||||
|
variation.set_InitData(itemVar['initData']);
|
||||||
|
variation.set_UpdateOleOnResize(itemVar['isUpdateOleOnResize']);
|
||||||
|
variation.set_Buttons(itemVar['buttons']);
|
||||||
|
variation.set_Size(itemVar['size']);
|
||||||
|
variation.set_InitOnSelectionChanged(itemVar['initOnSelectionChanged']);
|
||||||
|
variation.set_Events(itemVar['events']);
|
||||||
|
|
||||||
|
variationsArr.push(variation);
|
||||||
|
});
|
||||||
|
|
||||||
|
plugin["set_Variations"](variationsArr);
|
||||||
|
arr.push(plugin);
|
||||||
|
});
|
||||||
|
me.api.asc_pluginsRegister('', arr);
|
||||||
|
},
|
||||||
|
|
||||||
|
getPlugins: function(pluginsData, fetchFunction) {
|
||||||
|
if (!pluginsData || pluginsData.length<1)
|
||||||
|
return Promise.resolve([]);
|
||||||
|
|
||||||
|
fetchFunction = fetchFunction || function (url) {
|
||||||
|
return fetch(url)
|
||||||
|
.then(function(response) {
|
||||||
|
if ( response.ok ) return response.json();
|
||||||
|
else return Promise.reject(url);
|
||||||
|
}).then(function(json) {
|
||||||
|
json.baseUrl = url.substring(0, url.lastIndexOf("config.json"));
|
||||||
|
return json;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
var loaded = [];
|
||||||
|
return pluginsData.map(fetchFunction).reduce(function (previousPromise, currentPromise) {
|
||||||
|
return previousPromise
|
||||||
|
.then(function()
|
||||||
|
{
|
||||||
|
return currentPromise;
|
||||||
|
})
|
||||||
|
.then(function(item)
|
||||||
|
{
|
||||||
|
loaded.push(item);
|
||||||
|
return Promise.resolve(item);
|
||||||
|
})
|
||||||
|
.catch(function(item)
|
||||||
|
{
|
||||||
|
return Promise.resolve(item);
|
||||||
|
});
|
||||||
|
|
||||||
|
}, Promise.resolve())
|
||||||
|
.then(function ()
|
||||||
|
{
|
||||||
|
return Promise.resolve(loaded);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
textCancel: 'Cancel',
|
||||||
|
textLoading: 'Loading'
|
||||||
|
}
|
||||||
|
})(), Common.Controllers.Plugins || {}))
|
||||||
|
});
|
239
apps/common/mobile/lib/template/Collaboration.template
Normal file
|
@ -0,0 +1,239 @@
|
||||||
|
<!-- Root view -->
|
||||||
|
<div id="collaboration-root-view">
|
||||||
|
<div class="navbar">
|
||||||
|
<div class="navbar-inner">
|
||||||
|
<div class="center sliding"><%= scope.textCollaboration %></div>
|
||||||
|
<div class="right sliding close-collaboration"><% if (phone) { %><a href="#" class="link icon-only close-picker"><i class="icon icon-expand-down"></i></a><% } %></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="pages">
|
||||||
|
<div class="page" data-page="collaboration-root-view">
|
||||||
|
<div class="page-content">
|
||||||
|
<div class="list-block">
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a id="list-edit-users" class="item-link" data-page="#edit-users-view">
|
||||||
|
<div class="item-content">
|
||||||
|
<div class="item-inner">
|
||||||
|
<div class="item-title"><%= scope.textEditUsers %></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a id="comments-settings" class="item-link" data-page="#comments-view">
|
||||||
|
<div class="item-content">
|
||||||
|
<div class="item-inner">
|
||||||
|
<div class="item-title"><%= scope.textСomments %></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<% if (editor === 'DE') { %>
|
||||||
|
<li>
|
||||||
|
<a id="reviewing-settings" class="item-link" data-page="#reviewing-settings-view">
|
||||||
|
<div class="item-content">
|
||||||
|
<div class="item-inner">
|
||||||
|
<div class="item-title"><%= scope.textReviewing %></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<% } %>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Editable Users view -->
|
||||||
|
<div id="edit-users-view">
|
||||||
|
<div class="navbar">
|
||||||
|
<div class="navbar-inner">
|
||||||
|
<div class="left sliding"><a href="#" class="back link"> <i class="icon icon-back"></i><% if (!android) { %><span><%= scope.textBack %></span><% } %></a></div>
|
||||||
|
<div class="center sliding"><%= scope.textEditUsers %></div>
|
||||||
|
<div class="right sliding"><% if (phone) { %><a href="#" class="link icon-only close-picker"><i class="icon icon-expand-down"></i></a><% } %></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="pages">
|
||||||
|
<div class="page page-change" data-page="edit-users-view">
|
||||||
|
<div class="page-content">
|
||||||
|
<div id="user-list" class="list-block">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Reviewing Settings view -->
|
||||||
|
<div id="reviewing-settings-view">
|
||||||
|
<div class="navbar">
|
||||||
|
<div class="navbar-inner">
|
||||||
|
<div class="left sliding"><a href="#" class="back link"> <i class="icon icon-back"></i><% if (!android) { %><span><%= scope.textBack %></span><% } %></a></div>
|
||||||
|
<div class="center sliding"><%= scope.textReviewing %></div>
|
||||||
|
<div class="right sliding"><% if (phone) { %><a href="#" class="link icon-only close-picker"><i class="icon icon-expand-down"></i></a><% } %></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="pages">
|
||||||
|
<div class="page" data-page="reviewing-settings-view">
|
||||||
|
<div class="page-content">
|
||||||
|
<div class="list-block">
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<div id="settings-review" class="item-content">
|
||||||
|
<div class="item-inner">
|
||||||
|
<div class="item-title"><%= scope.textReview %></div>
|
||||||
|
<div class="item-after">
|
||||||
|
<label class="label-switch">
|
||||||
|
<input type="checkbox">
|
||||||
|
<div class="checkbox"></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a id="display-mode-settings" class="item-link" data-page="#display-mode-view">
|
||||||
|
<div class="item-content">
|
||||||
|
<div class="item-inner">
|
||||||
|
<div class="item-title"><%= scope.textDisplayMode %></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a id="change-settings" class="item-link" data-page="#change-view">
|
||||||
|
<div class="item-content">
|
||||||
|
<div class="item-inner">
|
||||||
|
<div class="item-title"><%= scope.textChange %></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div id="settings-accept-all" class="item-content">
|
||||||
|
<div class="item-inner">
|
||||||
|
<div class="item-title"><%= scope.textAcceptAllChanges %></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div id="settings-reject-all" class="item-content">
|
||||||
|
<div class="item-inner">
|
||||||
|
<div class="item-title"><%= scope.textRejectAllChanges %></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Display Mode view -->
|
||||||
|
<div id="display-mode-view">
|
||||||
|
<div class="navbar">
|
||||||
|
<div class="navbar-inner">
|
||||||
|
<div class="left sliding"><a href="#" class="back link"> <i class="icon icon-back"></i><% if (!android) { %><span><%= scope.textBack %></span><% } %></a></div>
|
||||||
|
<div class="center sliding"><%= scope.textDisplayMode %></div>
|
||||||
|
<div class="right sliding"><% if (phone) { %><a href="#" class="link icon-only close-picker"><i class="icon icon-expand-down"></i></a><% } %></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="pages">
|
||||||
|
<div class="page" data-page="display-mode-view">
|
||||||
|
<div class="page-content">
|
||||||
|
<div class="list-block">
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<label class="label-radio item-content">
|
||||||
|
<input type="radio" name="doc-orientation" value="markup">
|
||||||
|
<% if (android) { %><div class="item-media"><i class="icon icon-form-radio"></i></div><% } %>
|
||||||
|
<div class="item-inner">
|
||||||
|
<div class="item-title"><%= scope.textMarkup %></div>
|
||||||
|
</div>
|
||||||
|
</label>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<label class="label-radio item-content">
|
||||||
|
<input type="radio" name="doc-orientation" value="final">
|
||||||
|
<% if (android) { %><div class="item-media"><i class="icon icon-form-radio"></i></div><% } %>
|
||||||
|
<div class="item-inner">
|
||||||
|
<div class="item-title"><%= scope.textFinal %></div>
|
||||||
|
</div>
|
||||||
|
</label>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<label class="label-radio item-content">
|
||||||
|
<input type="radio" name="doc-orientation" value="original">
|
||||||
|
<% if (android) { %><div class="item-media"><i class="icon icon-form-radio"></i></div><% } %>
|
||||||
|
<div class="item-inner">
|
||||||
|
<div class="item-title"><%= scope.textOriginal %></div>
|
||||||
|
</div>
|
||||||
|
</label>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Change view -->
|
||||||
|
<div id="change-view">
|
||||||
|
<div class="navbar">
|
||||||
|
<div class="navbar-inner">
|
||||||
|
<div class="left sliding"><a href="#" class="back link"> <i class="icon icon-back"></i><% if (!android) { %><span><%= scope.textBack %></span><% } %></a></div>
|
||||||
|
<div class="center sliding"><%= scope.textChange %></div>
|
||||||
|
<div class="right sliding"><% if (phone) { %><a href="#" class="link icon-only close-picker"><i class="icon icon-expand-down"></i></a><% } %></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="pages">
|
||||||
|
<div class="page page-change" data-page="change-view">
|
||||||
|
<div class="page-content">
|
||||||
|
<div class="content-block block-btn">
|
||||||
|
<span class="next-prev">
|
||||||
|
<a href="#" id="btn-prev-change" class="link icon-only"><i class="icon icon-prev-change"></i></a>
|
||||||
|
<a href="#" id="btn-next-change" class="link icon-only"><i class="icon icon-next-change"></i></a>
|
||||||
|
</span>
|
||||||
|
<span class="right-buttons">
|
||||||
|
<a href="#" id="btn-goto-change" class="link icon-only" style="display: none;"><i class="icon icon-goto"></i></a>
|
||||||
|
<span class="accept-reject">
|
||||||
|
<a href="#" id="btn-accept-change" class="link icon-only"><i class="icon icon-accept"></i></a>
|
||||||
|
<a href="#" id="btn-reject-change" class="link icon-only"><i class="icon icon-reject"></i></a>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div id="current-change" class="content-block block-description">
|
||||||
|
<p id="user-name"></p>
|
||||||
|
<p id="date-change"></p>
|
||||||
|
<p id="text-change"></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Comments view -->
|
||||||
|
<div id="comments-view">
|
||||||
|
<div class="navbar">
|
||||||
|
<div class="navbar-inner">
|
||||||
|
<div class="left sliding"><a href="#" class="back link"> <i class="icon icon-back"></i><% if (!android) { %><span><%= scope.textBack %></span><% } %></a></div>
|
||||||
|
<div class="center sliding"><%= scope.textСomments %></div>
|
||||||
|
<div class="right sliding"><% if (phone) { %><a href="#" class="link icon-only close-picker"><i class="icon icon-expand-down"></i></a><% } %></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="pages">
|
||||||
|
<div class="page page-comments" data-page="comments-view">
|
||||||
|
<div class="page-content">
|
||||||
|
<div class="list-block">
|
||||||
|
<ul id="comments-list"></ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
215
apps/common/mobile/lib/view/Collaboration.js
Normal file
|
@ -0,0 +1,215 @@
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* (c) Copyright Ascensio System SIA 2010-2019
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Collaboration.js
|
||||||
|
*
|
||||||
|
* Created by Julia Svinareva on 12/7/19
|
||||||
|
* Copyright (c) 2019 Ascensio System SIA. All rights reserved.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (Common === undefined)
|
||||||
|
var Common = {};
|
||||||
|
|
||||||
|
Common.Views = Common.Views || {};
|
||||||
|
|
||||||
|
define([
|
||||||
|
'text!common/mobile/lib/template/Collaboration.template',
|
||||||
|
'jquery',
|
||||||
|
'underscore',
|
||||||
|
'backbone'
|
||||||
|
], function (settingsTemplate, $, _, Backbone) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
Common.Views.Collaboration = Backbone.View.extend(_.extend((function() {
|
||||||
|
// private
|
||||||
|
|
||||||
|
return {
|
||||||
|
|
||||||
|
template: _.template(settingsTemplate),
|
||||||
|
|
||||||
|
events: {
|
||||||
|
//
|
||||||
|
},
|
||||||
|
|
||||||
|
initialize: function() {
|
||||||
|
Common.NotificationCenter.on('collaborationcontainer:show', _.bind(this.initEvents, this));
|
||||||
|
this.on('page:show', _.bind(this.updateItemHandlers, this));
|
||||||
|
},
|
||||||
|
|
||||||
|
initEvents: function () {
|
||||||
|
var me = this;
|
||||||
|
|
||||||
|
Common.Utils.addScrollIfNeed('.view[data-page=collaboration-root-view] .pages', '.view[data-page=collaboration-root-view] .page');
|
||||||
|
me.updateItemHandlers();
|
||||||
|
},
|
||||||
|
|
||||||
|
initControls: function() {
|
||||||
|
//
|
||||||
|
},
|
||||||
|
|
||||||
|
// Render layout
|
||||||
|
render: function() {
|
||||||
|
this.layout = $('<div/>').append(this.template({
|
||||||
|
android : Common.SharedSettings.get('android'),
|
||||||
|
phone : Common.SharedSettings.get('phone'),
|
||||||
|
orthography: Common.SharedSettings.get('sailfish'),
|
||||||
|
scope : this,
|
||||||
|
editor : !!window.DE ? 'DE' : !!window.PE ? 'PE' : 'SSE'
|
||||||
|
}));
|
||||||
|
|
||||||
|
return this;
|
||||||
|
},
|
||||||
|
|
||||||
|
updateItemHandlers: function () {
|
||||||
|
var selectorsDynamicPage = [
|
||||||
|
'.page[data-page=collaboration-root-view]',
|
||||||
|
'.page[data-page=reviewing-settings-view]'
|
||||||
|
].map(function (selector) {
|
||||||
|
return selector + ' a.item-link[data-page]';
|
||||||
|
}).join(', ');
|
||||||
|
|
||||||
|
$(selectorsDynamicPage).single('click', _.bind(this.onItemClick, this));
|
||||||
|
},
|
||||||
|
|
||||||
|
onItemClick: function (e) {
|
||||||
|
var $target = $(e.currentTarget),
|
||||||
|
page = $target.data('page');
|
||||||
|
|
||||||
|
if (page && page.length > 0 ) {
|
||||||
|
this.showPage(page);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
rootLayout: function () {
|
||||||
|
if (this.layout) {
|
||||||
|
var $layour = this.layout.find('#collaboration-root-view'),
|
||||||
|
isPhone = Common.SharedSettings.get('phone');
|
||||||
|
|
||||||
|
return $layour.html();
|
||||||
|
}
|
||||||
|
|
||||||
|
return '';
|
||||||
|
},
|
||||||
|
|
||||||
|
showPage: function(templateId, animate) {
|
||||||
|
var me = this;
|
||||||
|
var prefix = !!window.DE ? DE : !!window.PE ? PE : SSE;
|
||||||
|
var rootView = prefix.getController('Common.Controllers.Collaboration').rootView();
|
||||||
|
|
||||||
|
|
||||||
|
if (rootView && this.layout) {
|
||||||
|
var $content = this.layout.find(templateId);
|
||||||
|
|
||||||
|
// Android fix for navigation
|
||||||
|
if (Framework7.prototype.device.android) {
|
||||||
|
$content.find('.page').append($content.find('.navbar'));
|
||||||
|
}
|
||||||
|
|
||||||
|
rootView.router.load({
|
||||||
|
content: $content.html(),
|
||||||
|
animatePages: animate !== false
|
||||||
|
});
|
||||||
|
|
||||||
|
this.fireEvent('page:show', [this, templateId]);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
renderComments: function (comments) {
|
||||||
|
var $pageComments = $('.page-comments .page-content');
|
||||||
|
if (!comments) {
|
||||||
|
if ($('.comment').length > 0) {
|
||||||
|
$('.comment').remove();
|
||||||
|
}
|
||||||
|
var template = '<div id="no-comments" style="text-align: center; margin-top: 35px;">' + this.textNoComments + '</div>';
|
||||||
|
$pageComments.append(_.template(template));
|
||||||
|
} else {
|
||||||
|
if ($('#no-comments').length > 0) {
|
||||||
|
$('#no-comments').remove();
|
||||||
|
}
|
||||||
|
var $listComments = $('#comments-list'),
|
||||||
|
items = [];
|
||||||
|
_.each(comments, function (comment) {
|
||||||
|
var itemTemplate = [
|
||||||
|
'<li class="comment item-content">',
|
||||||
|
'<div class="item-inner">',
|
||||||
|
'<p class="user-name"><%= item.username %></p>',
|
||||||
|
'<p class="comment-date"><%= item.date %></p>',
|
||||||
|
'<% if(item.quote) {%>',
|
||||||
|
'<p class="comment-quote" data-id="<%= item.uid %>"><%= item.quote %></p>',
|
||||||
|
'<% } %>',
|
||||||
|
'<p class="comment-text"><%= item.comment %></p>',
|
||||||
|
'<% if(replys > 0) {%>',
|
||||||
|
'<ul class="list-reply">',
|
||||||
|
'<% _.each(item.replys, function (reply) { %>',
|
||||||
|
'<li class="reply-item">',
|
||||||
|
'<p class="user-name"><%= reply.username %></p>',
|
||||||
|
'<p class="reply-date"><%= reply.date %></p>',
|
||||||
|
'<p class="reply-text"><%= reply.reply %></p>',
|
||||||
|
'</li>',
|
||||||
|
'<% }); %>',
|
||||||
|
'</ul>',
|
||||||
|
'<% } %>',
|
||||||
|
'</div>',
|
||||||
|
'</li>'
|
||||||
|
].join('');
|
||||||
|
items.push(_.template(itemTemplate)({
|
||||||
|
android: Framework7.prototype.device.android,
|
||||||
|
item: comment,
|
||||||
|
replys: comment.replys.length,
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
$listComments.html(items);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
textCollaboration: 'Collaboration',
|
||||||
|
textReviewing: 'Review',
|
||||||
|
textСomments: 'Сomments',
|
||||||
|
textBack: 'Back',
|
||||||
|
textReview: 'Track Changes',
|
||||||
|
textAcceptAllChanges: 'Accept All Changes',
|
||||||
|
textRejectAllChanges: 'Reject All Changes',
|
||||||
|
textDisplayMode: 'Display Mode',
|
||||||
|
textMarkup: 'Markup',
|
||||||
|
textFinal: 'Final',
|
||||||
|
textOriginal: 'Original',
|
||||||
|
textChange: 'Review Change',
|
||||||
|
textEditUsers: 'Users',
|
||||||
|
textNoComments: "This document doesn\'t contain comments"
|
||||||
|
}
|
||||||
|
})(), Common.Views.Collaboration || {}))
|
||||||
|
});
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
BIN
apps/common/mobile/resources/img/controls/flags.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
BIN
apps/common/mobile/resources/img/controls/flags@2x.png
Normal file
After Width: | Height: | Size: 16 KiB |
|
@ -32,7 +32,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.logo {
|
.logo {
|
||||||
background: url('../../../../common/mobile/resources/img/about/onlyoffice.svg') no-repeat center;
|
background: url('../../../../common/mobile/resources/img/about/logo.svg') no-repeat center;
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
}
|
}
|
||||||
}
|
}
|
157
apps/common/mobile/resources/less/ios/_collaboration.less
Normal file
|
@ -0,0 +1,157 @@
|
||||||
|
.page-change {
|
||||||
|
.block-description {
|
||||||
|
background-color: #fff;
|
||||||
|
padding-top: 15px;
|
||||||
|
padding-bottom: 15px;
|
||||||
|
margin: 0;
|
||||||
|
max-width: 100%;
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
#user-name {
|
||||||
|
font-size: 17px;
|
||||||
|
line-height: 22px;
|
||||||
|
color: #000000;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
#date-change {
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 18px;
|
||||||
|
color: #6d6d72;
|
||||||
|
margin: 0;
|
||||||
|
margin-top: 3px;
|
||||||
|
}
|
||||||
|
#text-change {
|
||||||
|
color: #000000;
|
||||||
|
font-size: 15px;
|
||||||
|
line-height: 20px;
|
||||||
|
margin: 0;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
.block-btn, .content-block.block-btn:first-child {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: space-around;
|
||||||
|
margin: 26px 0;
|
||||||
|
|
||||||
|
#btn-next-change, #btn-reject-change {
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
#btn-goto-change {
|
||||||
|
margin-right: 20px;
|
||||||
|
}
|
||||||
|
.right-buttons {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.link {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.navbar .center-collaboration {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-around;
|
||||||
|
}
|
||||||
|
.container-collaboration {
|
||||||
|
.navbar .right.close-collaboration {
|
||||||
|
position: absolute;
|
||||||
|
right: 10px;
|
||||||
|
}
|
||||||
|
.page-content .list-block:first-child {
|
||||||
|
margin-top: -1px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Edit users
|
||||||
|
@initialEditUser: #373737;
|
||||||
|
|
||||||
|
#user-list {
|
||||||
|
.item-content {
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
.item-inner {
|
||||||
|
justify-content: flex-start;
|
||||||
|
padding-left: 15px;
|
||||||
|
}
|
||||||
|
.length {
|
||||||
|
margin-left: 4px;
|
||||||
|
}
|
||||||
|
.color {
|
||||||
|
min-width: 40px;
|
||||||
|
min-height: 40px;
|
||||||
|
margin-right: 20px;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 50px;
|
||||||
|
line-height: 40px;
|
||||||
|
color: @initialEditUser;
|
||||||
|
font-weight: 500;
|
||||||
|
|
||||||
|
}
|
||||||
|
ul:before {
|
||||||
|
content: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Comments
|
||||||
|
.page-comments {
|
||||||
|
.list-block .item-inner {
|
||||||
|
display: block;
|
||||||
|
padding: 16px 0;
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
p {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
.user-name {
|
||||||
|
font-size: 17px;
|
||||||
|
line-height: 22px;
|
||||||
|
color: #000000;
|
||||||
|
margin: 0;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.comment-date, .reply-date {
|
||||||
|
font-size: 12px;
|
||||||
|
line-height: 18px;
|
||||||
|
color: #6d6d72;
|
||||||
|
margin: 0;
|
||||||
|
margin-top: 0px;
|
||||||
|
}
|
||||||
|
.comment-text, .reply-text {
|
||||||
|
color: #000000;
|
||||||
|
font-size: 15px;
|
||||||
|
line-height: 25px;
|
||||||
|
margin: 0;
|
||||||
|
max-width: 100%;
|
||||||
|
padding-right: 15px;
|
||||||
|
}
|
||||||
|
.reply-item {
|
||||||
|
margin-top: 15px;
|
||||||
|
.user-name {
|
||||||
|
padding-top: 16px;
|
||||||
|
}
|
||||||
|
&:before {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
left: auto;
|
||||||
|
bottom: 0;
|
||||||
|
right: auto;
|
||||||
|
top: 0;
|
||||||
|
height: 1px;
|
||||||
|
width: 100%;
|
||||||
|
background-color: @listBlockBorderColor;
|
||||||
|
display: block;
|
||||||
|
z-index: 15;
|
||||||
|
-webkit-transform-origin: 50% 100%;
|
||||||
|
transform-origin: 50% 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.comment-quote {
|
||||||
|
color: @themeColor;
|
||||||
|
border-left: 1px solid @themeColor;
|
||||||
|
padding-left: 10px;
|
||||||
|
margin: 5px 0;
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.settings.popup .list-block ul.list-reply:last-child:after, .settings.popover .list-block ul.list-reply:last-child:after {
|
||||||
|
display: none;
|
||||||
|
}
|
25
apps/common/mobile/resources/less/ios/_color-schema.less
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
.color-schemes-menu {
|
||||||
|
cursor: pointer;
|
||||||
|
display: block;
|
||||||
|
background-color: #fff;
|
||||||
|
.item-content {
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
.item-inner {
|
||||||
|
justify-content: flex-start;
|
||||||
|
padding-left: 16px;
|
||||||
|
}
|
||||||
|
.color-schema-block {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.color {
|
||||||
|
min-width: 26px;
|
||||||
|
min-height: 26px;
|
||||||
|
margin: 0 2px 0 0;
|
||||||
|
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset;
|
||||||
|
}
|
||||||
|
.text {
|
||||||
|
margin-left: 20px;
|
||||||
|
color: #212121;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,6 +1,8 @@
|
||||||
// Container
|
// Container
|
||||||
.phone.ios {
|
.phone.ios {
|
||||||
.container-edit {
|
.container-edit,
|
||||||
|
.container-collaboration,
|
||||||
|
.container-filter {
|
||||||
.navbar {
|
.navbar {
|
||||||
.hairline(top, @toolbarBorderColor);
|
.hairline(top, @toolbarBorderColor);
|
||||||
}
|
}
|
||||||
|
@ -15,7 +17,9 @@
|
||||||
|
|
||||||
.container-edit,
|
.container-edit,
|
||||||
.container-add,
|
.container-add,
|
||||||
.container-settings {
|
.container-settings,
|
||||||
|
.container-collaboration,
|
||||||
|
.container-filter {
|
||||||
&.popover {
|
&.popover {
|
||||||
width: 360px;
|
width: 360px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,6 +33,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.logo {
|
.logo {
|
||||||
background: url('../../../../common/mobile/resources/img/about/onlyoffice.svg') no-repeat center;
|
background: url('../../../../common/mobile/resources/img/about/logo.svg') no-repeat center;
|
||||||
}
|
}
|
||||||
}
|
}
|
156
apps/common/mobile/resources/less/material/_collaboration.less
Normal file
|
@ -0,0 +1,156 @@
|
||||||
|
.page-change {
|
||||||
|
.block-description {
|
||||||
|
background-color: #fff;
|
||||||
|
padding-top: 15px;
|
||||||
|
padding-bottom: 15px;
|
||||||
|
margin: 0;
|
||||||
|
max-width: 100%;
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
#user-name {
|
||||||
|
font-size: 17px;
|
||||||
|
line-height: 22px;
|
||||||
|
color: #000000;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
#date-change {
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 18px;
|
||||||
|
color: #6d6d72;
|
||||||
|
margin: 0;
|
||||||
|
margin-top: 3px;
|
||||||
|
}
|
||||||
|
#text-change {
|
||||||
|
color: #000000;
|
||||||
|
font-size: 15px;
|
||||||
|
line-height: 20px;
|
||||||
|
margin: 0;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
.block-btn {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: space-around;
|
||||||
|
margin: 0;
|
||||||
|
padding: 26px 0;
|
||||||
|
background-color: #EFEFF4;
|
||||||
|
|
||||||
|
#btn-next-change, #btn-reject-change {
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
#btn-goto-change {
|
||||||
|
margin-right: 20px;
|
||||||
|
}
|
||||||
|
.right-buttons {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.link {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.container-collaboration {
|
||||||
|
.navbar .right.close-collaboration {
|
||||||
|
position: absolute;
|
||||||
|
right: 5px;
|
||||||
|
}
|
||||||
|
.page-content .list-block:first-child {
|
||||||
|
margin-top: -1px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Edit users
|
||||||
|
@initialEditUser: #373737;
|
||||||
|
|
||||||
|
#user-list {
|
||||||
|
.item-content {
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
.item-inner {
|
||||||
|
justify-content: flex-start;
|
||||||
|
padding-left: 15px;
|
||||||
|
}
|
||||||
|
.length {
|
||||||
|
margin-left: 4px;
|
||||||
|
}
|
||||||
|
.color {
|
||||||
|
min-width: 40px;
|
||||||
|
min-height: 40px;
|
||||||
|
margin-right: 20px;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 50px;
|
||||||
|
line-height: 40px;
|
||||||
|
color: @initialEditUser;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
ul:before {
|
||||||
|
content: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Comments
|
||||||
|
.page-comments {
|
||||||
|
.list-block .item-inner {
|
||||||
|
display: block;
|
||||||
|
padding: 16px 0;
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
p {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
.user-name {
|
||||||
|
font-size: 17px;
|
||||||
|
line-height: 22px;
|
||||||
|
color: #000000;
|
||||||
|
margin: 0;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.comment-date, .reply-date {
|
||||||
|
font-size: 12px;
|
||||||
|
line-height: 18px;
|
||||||
|
color: #6d6d72;
|
||||||
|
margin: 0;
|
||||||
|
margin-top: 0px;
|
||||||
|
}
|
||||||
|
.comment-text, .reply-text {
|
||||||
|
color: #000000;
|
||||||
|
font-size: 15px;
|
||||||
|
line-height: 25px;
|
||||||
|
margin: 0;
|
||||||
|
max-width: 100%;
|
||||||
|
padding-right: 15px;
|
||||||
|
}
|
||||||
|
.reply-item {
|
||||||
|
margin-top: 15px;
|
||||||
|
.user-name {
|
||||||
|
padding-top: 16px;
|
||||||
|
}
|
||||||
|
&:before {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
left: auto;
|
||||||
|
bottom: 0;
|
||||||
|
right: auto;
|
||||||
|
top: 0;
|
||||||
|
height: 1px;
|
||||||
|
width: 100%;
|
||||||
|
background-color: @listBlockBorderColor;
|
||||||
|
display: block;
|
||||||
|
z-index: 15;
|
||||||
|
-webkit-transform-origin: 50% 100%;
|
||||||
|
transform-origin: 50% 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.comment-quote {
|
||||||
|
color: @themeColor;
|
||||||
|
border-left: 1px solid @themeColor;
|
||||||
|
padding-left: 10px;
|
||||||
|
margin: 5px 0;
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.settings.popup .list-block ul.list-reply:last-child:after, .settings.popover .list-block ul.list-reply:last-child:after {
|
||||||
|
display: none;
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
.color-schemes-menu {
|
||||||
|
cursor: pointer;
|
||||||
|
display: block;
|
||||||
|
background-color: #fff;
|
||||||
|
.item-content {
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
.item-inner {
|
||||||
|
justify-content: flex-start;
|
||||||
|
padding-left: 16px;
|
||||||
|
}
|
||||||
|
.color-schema-block {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.color {
|
||||||
|
min-width: 26px;
|
||||||
|
min-height: 26px;
|
||||||
|
margin: 0 2px 0 0;
|
||||||
|
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset;
|
||||||
|
}
|
||||||
|
.text {
|
||||||
|
margin-left: 20px;
|
||||||
|
color: #212121;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,7 +1,9 @@
|
||||||
// Container
|
// Container
|
||||||
|
|
||||||
.phone.android {
|
.phone.android {
|
||||||
.container-edit {
|
.container-edit,
|
||||||
|
.container-collaboration,
|
||||||
|
.container-filter {
|
||||||
|
|
||||||
.page-content {
|
.page-content {
|
||||||
.list-block:first-child {
|
.list-block:first-child {
|
||||||
|
@ -13,7 +15,9 @@
|
||||||
|
|
||||||
.container-edit,
|
.container-edit,
|
||||||
.container-add,
|
.container-add,
|
||||||
.container-settings {
|
.container-settings,
|
||||||
|
.container-collaboration,
|
||||||
|
.container-filter {
|
||||||
&.popover {
|
&.popover {
|
||||||
width: 360px;
|
width: 360px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -164,7 +164,7 @@
|
||||||
15% { background: #f4f4f4; top:0; opacity:1; }
|
15% { background: #f4f4f4; top:0; opacity:1; }
|
||||||
20% { background: #f4f4f4; top:0; opacity:0; }
|
20% { background: #f4f4f4; top:0; opacity:0; }
|
||||||
25% { background: #f4f4f4; top:0; opacity:0; }
|
25% { background: #f4f4f4; top:0; opacity:0; }
|
||||||
45% { background: #EFEFEF; top:0; opacity:0,2; }
|
45% { background: #EFEFEF; top:0; opacity:0.2; }
|
||||||
100% { top:100px; background: #55bce6; }
|
100% { top:100px; background: #55bce6; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -175,7 +175,7 @@
|
||||||
15% { background: #f4f4f4; top:0; opacity:1; }
|
15% { background: #f4f4f4; top:0; opacity:1; }
|
||||||
20% { background: #f4f4f4; top:0; opacity:0; }
|
20% { background: #f4f4f4; top:0; opacity:0; }
|
||||||
25% { background: #fff; top:0; opacity:0; }
|
25% { background: #fff; top:0; opacity:0; }
|
||||||
45% { background: #EFEFEF; top:0; opacity:0,2; }
|
45% { background: #EFEFEF; top:0; opacity:0.2; }
|
||||||
100% { top:100px; background: #55bce6; }
|
100% { top:100px; background: #55bce6; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -249,6 +249,18 @@
|
||||||
else if ( lang == 'ru') loading = 'Загрузка...';
|
else if ( lang == 'ru') loading = 'Загрузка...';
|
||||||
else if ( lang == 'sl') loading = 'Nalaganje...';
|
else if ( lang == 'sl') loading = 'Nalaganje...';
|
||||||
else if ( lang == 'tr') loading = 'Yükleniyor...';
|
else if ( lang == 'tr') loading = 'Yükleniyor...';
|
||||||
|
else if ( lang == 'bg') loading = 'Зареждане...';
|
||||||
|
else if ( lang == 'cs') loading = 'Nahrávám...';
|
||||||
|
else if ( lang == 'hu') loading = 'Betöltés...';
|
||||||
|
else if ( lang == 'ja') loading = '読み込み中...';
|
||||||
|
else if ( lang == 'ko') loading = '로드 중...';
|
||||||
|
else if ( lang == 'lv') loading = 'Ieladēšana ...';
|
||||||
|
else if ( lang == 'nl') loading = 'Laden...';
|
||||||
|
else if ( lang == 'pl') loading = 'Ładowanie...';
|
||||||
|
else if ( lang == 'sk') loading = 'Nahrávam...';
|
||||||
|
else if ( lang == 'uk') loading = 'Завантаження...';
|
||||||
|
else if ( lang == 'vi') loading = 'Đang tải...';
|
||||||
|
else if ( lang == 'zh') loading = '加载中...';
|
||||||
|
|
||||||
document.write(
|
document.write(
|
||||||
'<div id="loading-mask" class="loadmask">' +
|
'<div id="loading-mask" class="loadmask">' +
|
||||||
|
@ -330,6 +342,7 @@
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<!--application-->
|
<!--application-->
|
||||||
|
<script type="text/javascript" src="../../common/locale.js"></script>
|
||||||
<script type="text/javascript" src="../../common/Gateway.js"></script>
|
<script type="text/javascript" src="../../common/Gateway.js"></script>
|
||||||
<script type="text/javascript" src="../../common/Analytics.js"></script>
|
<script type="text/javascript" src="../../common/Analytics.js"></script>
|
||||||
<script type="text/javascript" src="../../common/embed/lib/util/utils.js"></script>
|
<script type="text/javascript" src="../../common/embed/lib/util/utils.js"></script>
|
||||||
|
|
|
@ -162,7 +162,7 @@
|
||||||
15% { background: #f4f4f4; top:0; opacity:1; }
|
15% { background: #f4f4f4; top:0; opacity:1; }
|
||||||
20% { background: #f4f4f4; top:0; opacity:0; }
|
20% { background: #f4f4f4; top:0; opacity:0; }
|
||||||
25% { background: #f4f4f4; top:0; opacity:0; }
|
25% { background: #f4f4f4; top:0; opacity:0; }
|
||||||
45% { background: #EFEFEF; top:0; opacity:0,2; }
|
45% { background: #EFEFEF; top:0; opacity:0.2; }
|
||||||
100% { top:100px; background: #55bce6; }
|
100% { top:100px; background: #55bce6; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -173,7 +173,7 @@
|
||||||
15% { background: #f4f4f4; top:0; opacity:1; }
|
15% { background: #f4f4f4; top:0; opacity:1; }
|
||||||
20% { background: #f4f4f4; top:0; opacity:0; }
|
20% { background: #f4f4f4; top:0; opacity:0; }
|
||||||
25% { background: #fff; top:0; opacity:0; }
|
25% { background: #fff; top:0; opacity:0; }
|
||||||
45% { background: #EFEFEF; top:0; opacity:0,2; }
|
45% { background: #EFEFEF; top:0; opacity:0.2; }
|
||||||
100% { top:100px; background: #55bce6; }
|
100% { top:100px; background: #55bce6; }
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -241,6 +241,18 @@
|
||||||
else if ( lang == 'ru') loading = 'Загрузка...';
|
else if ( lang == 'ru') loading = 'Загрузка...';
|
||||||
else if ( lang == 'sl') loading = 'Nalaganje...';
|
else if ( lang == 'sl') loading = 'Nalaganje...';
|
||||||
else if ( lang == 'tr') loading = 'Yükleniyor...';
|
else if ( lang == 'tr') loading = 'Yükleniyor...';
|
||||||
|
else if ( lang == 'bg') loading = 'Зареждане...';
|
||||||
|
else if ( lang == 'cs') loading = 'Nahrávám...';
|
||||||
|
else if ( lang == 'hu') loading = 'Betöltés...';
|
||||||
|
else if ( lang == 'ja') loading = '読み込み中...';
|
||||||
|
else if ( lang == 'ko') loading = '로드 중...';
|
||||||
|
else if ( lang == 'lv') loading = 'Ieladēšana ...';
|
||||||
|
else if ( lang == 'nl') loading = 'Laden...';
|
||||||
|
else if ( lang == 'pl') loading = 'Ładowanie...';
|
||||||
|
else if ( lang == 'sk') loading = 'Nahrávam...';
|
||||||
|
else if ( lang == 'uk') loading = 'Завантаження...';
|
||||||
|
else if ( lang == 'vi') loading = 'Đang tải...';
|
||||||
|
else if ( lang == 'zh') loading = '加载中...';
|
||||||
|
|
||||||
document.write(
|
document.write(
|
||||||
'<div id="loading-mask" class="loadmask">' +
|
'<div id="loading-mask" class="loadmask">' +
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
var ApplicationController = new(function(){
|
DE.ApplicationController = new(function(){
|
||||||
var me,
|
var me,
|
||||||
api,
|
api,
|
||||||
config = {},
|
config = {},
|
||||||
|
@ -51,7 +51,7 @@ var ApplicationController = new(function(){
|
||||||
// -------------------------
|
// -------------------------
|
||||||
|
|
||||||
if (typeof isBrowserSupported !== 'undefined' && !isBrowserSupported()){
|
if (typeof isBrowserSupported !== 'undefined' && !isBrowserSupported()){
|
||||||
Common.Gateway.reportError(undefined, 'Your browser is not supported.');
|
Common.Gateway.reportError(undefined, this.unsupportedBrowserErrorText);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@ var ApplicationController = new(function(){
|
||||||
|
|
||||||
function onCountPages(count) {
|
function onCountPages(count) {
|
||||||
maxPages = count;
|
maxPages = count;
|
||||||
$('#pages').text('of ' + count);
|
$('#pages').text(me.textOf + " " + count);
|
||||||
}
|
}
|
||||||
|
|
||||||
function onCurrentPage(number) {
|
function onCurrentPage(number) {
|
||||||
|
@ -134,10 +134,10 @@ var ApplicationController = new(function(){
|
||||||
switch (id)
|
switch (id)
|
||||||
{
|
{
|
||||||
case Asc.c_oAscAsyncAction['Print']:
|
case Asc.c_oAscAsyncAction['Print']:
|
||||||
text = 'Downloading document...';
|
text = me.downloadTextText;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
text = 'Please wait...';
|
text = me.waitText;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -204,11 +204,11 @@ var ApplicationController = new(function(){
|
||||||
|
|
||||||
function onPrint() {
|
function onPrint() {
|
||||||
if ( permissions.print!==false )
|
if ( permissions.print!==false )
|
||||||
api.asc_Print($.browser.chrome || $.browser.safari || $.browser.opera);
|
api.asc_Print(new Asc.asc_CDownloadOptions(null, $.browser.chrome || $.browser.safari || $.browser.opera));
|
||||||
}
|
}
|
||||||
|
|
||||||
function onPrintUrl(url) {
|
function onPrintUrl(url) {
|
||||||
common.utils.dialogPrint(url);
|
common.utils.dialogPrint(url, api);
|
||||||
}
|
}
|
||||||
|
|
||||||
function hidePreloader() {
|
function hidePreloader() {
|
||||||
|
@ -248,18 +248,18 @@ var ApplicationController = new(function(){
|
||||||
Common.Gateway.on('processmouse', onProcessMouse);
|
Common.Gateway.on('processmouse', onProcessMouse);
|
||||||
Common.Gateway.on('downloadas', onDownloadAs);
|
Common.Gateway.on('downloadas', onDownloadAs);
|
||||||
|
|
||||||
ApplicationView.tools.get('#idt-fullscreen')
|
DE.ApplicationView.tools.get('#idt-fullscreen')
|
||||||
.on('click', function(){
|
.on('click', function(){
|
||||||
common.utils.openLink(embedConfig.fullscreenUrl);
|
common.utils.openLink(embedConfig.fullscreenUrl);
|
||||||
});
|
});
|
||||||
|
|
||||||
ApplicationView.tools.get('#idt-download')
|
DE.ApplicationView.tools.get('#idt-download')
|
||||||
.on('click', function(){
|
.on('click', function(){
|
||||||
if ( !!embedConfig.saveUrl ){
|
if ( !!embedConfig.saveUrl ){
|
||||||
common.utils.openLink(embedConfig.saveUrl);
|
common.utils.openLink(embedConfig.saveUrl);
|
||||||
} else
|
} else
|
||||||
if (api && permissions.print!==false){
|
if (api && permissions.print!==false){
|
||||||
api.asc_Print($.browser.chrome || $.browser.safari || $.browser.opera);
|
api.asc_Print(new Asc.asc_CDownloadOptions(null, $.browser.chrome || $.browser.safari || $.browser.opera));
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.Analytics.trackEvent('Save');
|
Common.Analytics.trackEvent('Save');
|
||||||
|
@ -354,14 +354,14 @@ var ApplicationController = new(function(){
|
||||||
|
|
||||||
function onOpenDocument(progress) {
|
function onOpenDocument(progress) {
|
||||||
var proc = (progress.asc_getCurrentFont() + progress.asc_getCurrentImage())/(progress.asc_getFontsCount() + progress.asc_getImagesCount());
|
var proc = (progress.asc_getCurrentFont() + progress.asc_getCurrentImage())/(progress.asc_getFontsCount() + progress.asc_getImagesCount());
|
||||||
$('#loadmask-text').html('Loading document: ' + Math.min(Math.round(proc * 100), 100) + '%');
|
$('#loadmask-text').html(me.textLoadingDocument + ': ' + Math.min(Math.round(proc * 100), 100) + '%');
|
||||||
}
|
}
|
||||||
|
|
||||||
function onError(id, level, errData) {
|
function onError(id, level, errData) {
|
||||||
if (id == Asc.c_oAscError.ID.LoadingScriptError) {
|
if (id == Asc.c_oAscError.ID.LoadingScriptError) {
|
||||||
$('#id-critical-error-title').text(me.criticalErrorTitle);
|
$('#id-critical-error-title').text(me.criticalErrorTitle);
|
||||||
$('#id-critical-error-message').text(me.scriptLoadError);
|
$('#id-critical-error-message').text(me.scriptLoadError);
|
||||||
$('#id-critical-error-close').off().on('click', function(){
|
$('#id-critical-error-close').text(me.txtClose).off().on('click', function(){
|
||||||
window.location.reload();
|
window.location.reload();
|
||||||
});
|
});
|
||||||
$('#id-critical-error-dialog').css('z-index', 20002).modal('show');
|
$('#id-critical-error-dialog').css('z-index', 20002).modal('show');
|
||||||
|
@ -410,8 +410,7 @@ var ApplicationController = new(function(){
|
||||||
|
|
||||||
$('#id-critical-error-title').text(me.criticalErrorTitle);
|
$('#id-critical-error-title').text(me.criticalErrorTitle);
|
||||||
$('#id-critical-error-message').text(message);
|
$('#id-critical-error-message').text(message);
|
||||||
$('#id-critical-error-close').off();
|
$('#id-critical-error-close').text(me.txtClose).off().on('click', function(){
|
||||||
$('#id-critical-error-close').on('click', function(){
|
|
||||||
window.location.reload();
|
window.location.reload();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -420,8 +419,7 @@ var ApplicationController = new(function(){
|
||||||
|
|
||||||
$('#id-critical-error-title').text(me.notcriticalErrorTitle);
|
$('#id-critical-error-title').text(me.notcriticalErrorTitle);
|
||||||
$('#id-critical-error-message').text(message);
|
$('#id-critical-error-message').text(message);
|
||||||
$('#id-critical-error-close').off();
|
$('#id-critical-error-close').text(me.txtClose).off().on('click', function(){
|
||||||
$('#id-critical-error-close').on('click', function(){
|
|
||||||
$('#id-critical-error-dialog').modal('hide');
|
$('#id-critical-error-dialog').modal('hide');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -434,7 +432,7 @@ var ApplicationController = new(function(){
|
||||||
function onExternalMessage(error) {
|
function onExternalMessage(error) {
|
||||||
if (error) {
|
if (error) {
|
||||||
hidePreloader();
|
hidePreloader();
|
||||||
$('#id-error-mask-title').text('Error');
|
$('#id-error-mask-title').text(me.criticalErrorTitle);
|
||||||
$('#id-error-mask-text').text(error.msg);
|
$('#id-error-mask-text').text(error.msg);
|
||||||
$('#id-error-mask').css('display', 'block');
|
$('#id-error-mask').css('display', 'block');
|
||||||
|
|
||||||
|
@ -460,7 +458,7 @@ var ApplicationController = new(function(){
|
||||||
Common.Gateway.reportError(Asc.c_oAscError.ID.AccessDeny, me.errorAccessDeny);
|
Common.Gateway.reportError(Asc.c_oAscError.ID.AccessDeny, me.errorAccessDeny);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (api) api.asc_DownloadAs(Asc.c_oAscFileType.DOCX, true);
|
if (api) api.asc_DownloadAs(new Asc.asc_CDownloadOptions(Asc.c_oAscFileType.DOCX, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Helpers
|
// Helpers
|
||||||
|
@ -541,14 +539,20 @@ var ApplicationController = new(function(){
|
||||||
create : createController,
|
create : createController,
|
||||||
errorDefaultMessage : 'Error code: %1',
|
errorDefaultMessage : 'Error code: %1',
|
||||||
unknownErrorText : 'Unknown error.',
|
unknownErrorText : 'Unknown error.',
|
||||||
convertationTimeoutText : 'Convertation timeout exceeded.',
|
convertationTimeoutText : 'Conversion timeout exceeded.',
|
||||||
convertationErrorText : 'Convertation failed.',
|
convertationErrorText : 'Conversion failed.',
|
||||||
downloadErrorText : 'Download failed.',
|
downloadErrorText : 'Download failed.',
|
||||||
criticalErrorTitle : 'Error',
|
criticalErrorTitle : 'Error',
|
||||||
notcriticalErrorTitle : 'Warning',
|
notcriticalErrorTitle : 'Warning',
|
||||||
scriptLoadError: 'The connection is too slow, some of the components could not be loaded. Please reload the page.',
|
scriptLoadError: 'The connection is too slow, some of the components could not be loaded. Please reload the page.',
|
||||||
errorFilePassProtect: 'The file is password protected and cannot be opened.',
|
errorFilePassProtect: 'The file is password protected and cannot be opened.',
|
||||||
errorAccessDeny: 'You are trying to perform an action you do not have rights for.<br>Please contact your Document Server administrator.',
|
errorAccessDeny: 'You are trying to perform an action you do not have rights for.<br>Please contact your Document Server administrator.',
|
||||||
errorUserDrop: 'The file cannot be accessed right now.'
|
errorUserDrop: 'The file cannot be accessed right now.',
|
||||||
|
unsupportedBrowserErrorText: 'Your browser is not supported.',
|
||||||
|
textOf: 'of',
|
||||||
|
downloadTextText: 'Downloading document...',
|
||||||
|
waitText: 'Please, wait...',
|
||||||
|
textLoadingDocument: 'Loading document',
|
||||||
|
txtClose: 'Close'
|
||||||
}
|
}
|
||||||
})();
|
})();
|
|
@ -30,7 +30,11 @@
|
||||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
var ApplicationView = new(function(){
|
if (DE === undefined) {
|
||||||
|
var DE = {};
|
||||||
|
}
|
||||||
|
|
||||||
|
DE.ApplicationView = new(function(){
|
||||||
var $btnTools;
|
var $btnTools;
|
||||||
|
|
||||||
// Initialize view
|
// Initialize view
|
||||||
|
@ -41,10 +45,10 @@ var ApplicationView = new(function(){
|
||||||
$btnTools.addClass('dropdown-toggle').attr('data-toggle', 'dropdown').attr('aria-expanded', 'true');
|
$btnTools.addClass('dropdown-toggle').attr('data-toggle', 'dropdown').attr('aria-expanded', 'true');
|
||||||
$btnTools.parent().append(
|
$btnTools.parent().append(
|
||||||
'<ul class="dropdown-menu">' +
|
'<ul class="dropdown-menu">' +
|
||||||
'<li><a id="idt-download"><span class="mi-icon svg-icon download"></span>Download</a></li>' +
|
'<li><a id="idt-download"><span class="mi-icon svg-icon download"></span>' + this.txtDownload + '</a></li>' +
|
||||||
'<li><a id="idt-share" data-toggle="modal"><span class="mi-icon svg-icon share"></span>Share</a></li>' +
|
'<li><a id="idt-share" data-toggle="modal"><span class="mi-icon svg-icon share"></span>' + this.txtShare + '</a></li>' +
|
||||||
'<li><a id="idt-embed" data-toggle="modal"><span class="mi-icon svg-icon embed"></span>Embed</a></li>' +
|
'<li><a id="idt-embed" data-toggle="modal"><span class="mi-icon svg-icon embed"></span>' + this.txtEmbed + '</a></li>' +
|
||||||
'<li><a id="idt-fullscreen"><span class="mi-icon svg-icon fullscr"></span>Full Screen</a></li>' +
|
'<li><a id="idt-fullscreen"><span class="mi-icon svg-icon fullscr"></span>' + this.txtFullScreen + '</a></li>' +
|
||||||
'</ul>');
|
'</ul>');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,6 +60,11 @@ var ApplicationView = new(function(){
|
||||||
create: createView
|
create: createView
|
||||||
, tools: {
|
, tools: {
|
||||||
get: getTools
|
get: getTools
|
||||||
}
|
},
|
||||||
|
|
||||||
|
txtDownload: 'Download',
|
||||||
|
txtShare: 'Share',
|
||||||
|
txtEmbed: 'Embed',
|
||||||
|
txtFullScreen: 'Full Screen'
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
+function ($) {
|
+function ($) {
|
||||||
ApplicationView.create();
|
Common.Locale.apply();
|
||||||
ApplicationController.create();
|
DE.ApplicationView.create();
|
||||||
|
DE.ApplicationController.create();
|
||||||
}();
|
}();
|
||||||
|
|
28
apps/documenteditor/embed/locale/bg.json
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
"common.view.modals.txtCopy": "Копиране в клипборда",
|
||||||
|
"common.view.modals.txtEmbed": "Вграждане",
|
||||||
|
"common.view.modals.txtHeight": "Височина",
|
||||||
|
"common.view.modals.txtShare": "Споделяне на връзка",
|
||||||
|
"common.view.modals.txtWidth": "Широчина",
|
||||||
|
"DE.ApplicationController.convertationErrorText": "Конвертирането е неуспешно.",
|
||||||
|
"DE.ApplicationController.convertationTimeoutText": "Превишава се времето на изтичане на реализациите.",
|
||||||
|
"DE.ApplicationController.criticalErrorTitle": "Грешка",
|
||||||
|
"DE.ApplicationController.downloadErrorText": "Изтеглянето се провали.",
|
||||||
|
"DE.ApplicationController.downloadTextText": "Документът се изтегли ...",
|
||||||
|
"DE.ApplicationController.errorAccessDeny": "Опитвате се да извършите действие, за което нямате права. <br> Моля, свържете се с администратора на сървъра за документи.",
|
||||||
|
"DE.ApplicationController.errorDefaultMessage": "Код на грешка: %1",
|
||||||
|
"DE.ApplicationController.errorFilePassProtect": "Файлът е защитен с парола и не може да бъде отворен.",
|
||||||
|
"DE.ApplicationController.errorUserDrop": "Файлът не може да бъде достъпен в момента.",
|
||||||
|
"DE.ApplicationController.notcriticalErrorTitle": "Внимание",
|
||||||
|
"DE.ApplicationController.scriptLoadError": "Връзката е твърде бавна, някои от компонентите не могат да бъдат заредени. Моля, презаредете страницата.",
|
||||||
|
"DE.ApplicationController.textLoadingDocument": "Зареждане на документ",
|
||||||
|
"DE.ApplicationController.textOf": "на",
|
||||||
|
"DE.ApplicationController.txtClose": "Затвори",
|
||||||
|
"DE.ApplicationController.unknownErrorText": "Неизвестна грешка.",
|
||||||
|
"DE.ApplicationController.unsupportedBrowserErrorText": "Вашият браузър не се поддържа.",
|
||||||
|
"DE.ApplicationController.waitText": "Моля изчакай...",
|
||||||
|
"DE.ApplicationView.txtDownload": "Изтегли",
|
||||||
|
"DE.ApplicationView.txtEmbed": "Вграждане",
|
||||||
|
"DE.ApplicationView.txtFullScreen": "Цял екран",
|
||||||
|
"DE.ApplicationView.txtShare": "Дял"
|
||||||
|
}
|
24
apps/documenteditor/embed/locale/cs.json
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
{
|
||||||
|
"common.view.modals.txtCopy": "Zkopírovat do schránky",
|
||||||
|
"common.view.modals.txtHeight": "Výška",
|
||||||
|
"common.view.modals.txtWidth": "Šířka",
|
||||||
|
"DE.ApplicationController.convertationErrorText": "Konverze selhala.",
|
||||||
|
"DE.ApplicationController.convertationTimeoutText": "Vypršel čas konverze.",
|
||||||
|
"DE.ApplicationController.criticalErrorTitle": "Chyba",
|
||||||
|
"DE.ApplicationController.downloadErrorText": "Stahování selhalo.",
|
||||||
|
"DE.ApplicationController.downloadTextText": "Stahování dokumentu...",
|
||||||
|
"DE.ApplicationController.errorAccessDeny": "Pokoušíte se provést akci, na kterou nemáte oprávnění.<br>Prosím, kontaktujte administrátora vašeho Dokumentového serveru.",
|
||||||
|
"DE.ApplicationController.errorDefaultMessage": "Kód chyby: %1",
|
||||||
|
"DE.ApplicationController.errorFilePassProtect": "Dokument je chráněn heslem a nelze otevřít.",
|
||||||
|
"DE.ApplicationController.errorUserDrop": "Tento soubor není nyní přístupný.",
|
||||||
|
"DE.ApplicationController.notcriticalErrorTitle": "Varování",
|
||||||
|
"DE.ApplicationController.textLoadingDocument": "Načítání dokumentu",
|
||||||
|
"DE.ApplicationController.textOf": "z",
|
||||||
|
"DE.ApplicationController.txtClose": "Zavřít",
|
||||||
|
"DE.ApplicationController.unknownErrorText": "Neznámá chyba.",
|
||||||
|
"DE.ApplicationController.unsupportedBrowserErrorText": "Váš prohlížeč není podporován.",
|
||||||
|
"DE.ApplicationController.waitText": "Prosím, čekejte...",
|
||||||
|
"DE.ApplicationView.txtDownload": "Stáhnout",
|
||||||
|
"DE.ApplicationView.txtFullScreen": "Celá obrazovka",
|
||||||
|
"DE.ApplicationView.txtShare": "Sdílet"
|
||||||
|
}
|
28
apps/documenteditor/embed/locale/de.json
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
"common.view.modals.txtCopy": "In die Zwischenablage kopieren",
|
||||||
|
"common.view.modals.txtEmbed": "Einbetten",
|
||||||
|
"common.view.modals.txtHeight": "Höhe",
|
||||||
|
"common.view.modals.txtShare": "Link teilen",
|
||||||
|
"common.view.modals.txtWidth": "Breite",
|
||||||
|
"DE.ApplicationController.convertationErrorText": "Konvertierung ist fehlgeschlagen.",
|
||||||
|
"DE.ApplicationController.convertationTimeoutText": "Timeout für die Konvertierung wurde überschritten.",
|
||||||
|
"DE.ApplicationController.criticalErrorTitle": "Fehler",
|
||||||
|
"DE.ApplicationController.downloadErrorText": "Herunterladen ist fehlgeschlagen.",
|
||||||
|
"DE.ApplicationController.downloadTextText": "Dokument wird heruntergeladen...",
|
||||||
|
"DE.ApplicationController.errorAccessDeny": "Sie haben versucht die Änderungen im Dokument, zu dem Sie keine Berechtigungen haben, vorzunehemen.<br>Wenden Sie sich an Ihren Serveradministrator.",
|
||||||
|
"DE.ApplicationController.errorDefaultMessage": "Fehlercode: %1",
|
||||||
|
"DE.ApplicationController.errorFilePassProtect": "Das Dokument ist kennwortgeschützt und kann nicht geöffnet werden.",
|
||||||
|
"DE.ApplicationController.errorUserDrop": "Kein Zugriff auf diese Datei ist möglich.",
|
||||||
|
"DE.ApplicationController.notcriticalErrorTitle": "Warnung",
|
||||||
|
"DE.ApplicationController.scriptLoadError": "Die Verbindung ist zu langsam, einige der Komponenten konnten nicht geladen werden. Bitte laden Sie die Seite erneut.",
|
||||||
|
"DE.ApplicationController.textLoadingDocument": "Dokument wird geladen...",
|
||||||
|
"DE.ApplicationController.textOf": "von",
|
||||||
|
"DE.ApplicationController.txtClose": "Schließen",
|
||||||
|
"DE.ApplicationController.unknownErrorText": "Unbekannter Fehler.",
|
||||||
|
"DE.ApplicationController.unsupportedBrowserErrorText": "Ihr Webbrowser wird nicht unterstützt.",
|
||||||
|
"DE.ApplicationController.waitText": "Bitte warten...",
|
||||||
|
"DE.ApplicationView.txtDownload": "Herunterladen",
|
||||||
|
"DE.ApplicationView.txtEmbed": "Einbetten",
|
||||||
|
"DE.ApplicationView.txtFullScreen": "Vollbild-Modus",
|
||||||
|
"DE.ApplicationView.txtShare": "Freigeben"
|
||||||
|
}
|
28
apps/documenteditor/embed/locale/en.json
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
"common.view.modals.txtCopy": "Copy to clipboard",
|
||||||
|
"common.view.modals.txtEmbed": "Embed",
|
||||||
|
"common.view.modals.txtHeight": "Height",
|
||||||
|
"common.view.modals.txtShare": "Share Link",
|
||||||
|
"common.view.modals.txtWidth": "Width",
|
||||||
|
"DE.ApplicationController.convertationErrorText": "Conversion failed.",
|
||||||
|
"DE.ApplicationController.convertationTimeoutText": "Conversion timeout exceeded.",
|
||||||
|
"DE.ApplicationController.criticalErrorTitle": "Error",
|
||||||
|
"DE.ApplicationController.downloadErrorText": "Download failed.",
|
||||||
|
"DE.ApplicationController.downloadTextText": "Downloading document...",
|
||||||
|
"DE.ApplicationController.errorAccessDeny": "You are trying to perform an action you do not have rights for.<br>Please contact your Document Server administrator.",
|
||||||
|
"DE.ApplicationController.errorDefaultMessage": "Error code: %1",
|
||||||
|
"DE.ApplicationController.errorFilePassProtect": "The file is password protected and cannot be opened.",
|
||||||
|
"DE.ApplicationController.errorUserDrop": "The file cannot be accessed right now.",
|
||||||
|
"DE.ApplicationController.notcriticalErrorTitle": "Warning",
|
||||||
|
"DE.ApplicationController.scriptLoadError": "The connection is too slow, some of the components could not be loaded. Please reload the page.",
|
||||||
|
"DE.ApplicationController.textLoadingDocument": "Loading document",
|
||||||
|
"DE.ApplicationController.textOf": "of",
|
||||||
|
"DE.ApplicationController.txtClose": "Close",
|
||||||
|
"DE.ApplicationController.unknownErrorText": "Unknown error.",
|
||||||
|
"DE.ApplicationController.unsupportedBrowserErrorText": "Your browser is not supported.",
|
||||||
|
"DE.ApplicationController.waitText": "Please, wait...",
|
||||||
|
"DE.ApplicationView.txtDownload": "Download",
|
||||||
|
"DE.ApplicationView.txtEmbed": "Embed",
|
||||||
|
"DE.ApplicationView.txtFullScreen": "Full Screen",
|
||||||
|
"DE.ApplicationView.txtShare": "Share"
|
||||||
|
}
|
28
apps/documenteditor/embed/locale/es.json
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
"common.view.modals.txtCopy": "Copiar al portapapeles",
|
||||||
|
"common.view.modals.txtEmbed": "Incorporar",
|
||||||
|
"common.view.modals.txtHeight": "Altura",
|
||||||
|
"common.view.modals.txtShare": "Compartir enlace",
|
||||||
|
"common.view.modals.txtWidth": "Ancho",
|
||||||
|
"DE.ApplicationController.convertationErrorText": "Fallo de conversión.",
|
||||||
|
"DE.ApplicationController.convertationTimeoutText": "Límite de tiempo de conversión está superado.",
|
||||||
|
"DE.ApplicationController.criticalErrorTitle": "Error",
|
||||||
|
"DE.ApplicationController.downloadErrorText": "Fallo en descarga.",
|
||||||
|
"DE.ApplicationController.downloadTextText": "Cargando documento...",
|
||||||
|
"DE.ApplicationController.errorAccessDeny": "Usted no tiene permisos para realizar la acción que está intentando hacer.<br> Por favor, contacte con su Administrador del Servidor de Documentos.",
|
||||||
|
"DE.ApplicationController.errorDefaultMessage": "Código de error: %1",
|
||||||
|
"DE.ApplicationController.errorFilePassProtect": "El archivo está protegido por una contraseña y no puede ser abierto.",
|
||||||
|
"DE.ApplicationController.errorUserDrop": "No se puede acceder al archivo ahora mismo.",
|
||||||
|
"DE.ApplicationController.notcriticalErrorTitle": "Aviso",
|
||||||
|
"DE.ApplicationController.scriptLoadError": "La conexión a Internet es demasiado lenta, no se podía cargar algunos componentes. Por favor, recargue la página.",
|
||||||
|
"DE.ApplicationController.textLoadingDocument": "Cargando documento",
|
||||||
|
"DE.ApplicationController.textOf": "de",
|
||||||
|
"DE.ApplicationController.txtClose": "Cerrar",
|
||||||
|
"DE.ApplicationController.unknownErrorText": "Error desconocido.",
|
||||||
|
"DE.ApplicationController.unsupportedBrowserErrorText": "Su navegador no está soportado.",
|
||||||
|
"DE.ApplicationController.waitText": "Por favor, espere...",
|
||||||
|
"DE.ApplicationView.txtDownload": "Descargar",
|
||||||
|
"DE.ApplicationView.txtEmbed": "Incorporar",
|
||||||
|
"DE.ApplicationView.txtFullScreen": "Pantalla Completa",
|
||||||
|
"DE.ApplicationView.txtShare": "Compartir"
|
||||||
|
}
|
28
apps/documenteditor/embed/locale/fr.json
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
"common.view.modals.txtCopy": "Copier dans le Presse-papiers",
|
||||||
|
"common.view.modals.txtEmbed": "Incorporer",
|
||||||
|
"common.view.modals.txtHeight": "Hauteur",
|
||||||
|
"common.view.modals.txtShare": "Partager un lien",
|
||||||
|
"common.view.modals.txtWidth": "Largeur",
|
||||||
|
"DE.ApplicationController.convertationErrorText": "Échec de la conversion.",
|
||||||
|
"DE.ApplicationController.convertationTimeoutText": "Délai d'attente de la conversion dépassé ",
|
||||||
|
"DE.ApplicationController.criticalErrorTitle": "Erreur",
|
||||||
|
"DE.ApplicationController.downloadErrorText": "Échec du téléchargement.",
|
||||||
|
"DE.ApplicationController.downloadTextText": "Téléchargement du document...",
|
||||||
|
"DE.ApplicationController.errorAccessDeny": "Vous tentez d'exéсuter une action pour laquelle vous ne disposez pas des droits.<br>Veuillez contacter l'administrateur de Document Server.",
|
||||||
|
"DE.ApplicationController.errorDefaultMessage": "Code d'erreur: %1",
|
||||||
|
"DE.ApplicationController.errorFilePassProtect": "Le fichier est protégé par le mot de passe et ne peut pas être ouvert.",
|
||||||
|
"DE.ApplicationController.errorUserDrop": "Impossible d'accéder au fichier.",
|
||||||
|
"DE.ApplicationController.notcriticalErrorTitle": "Avertissement",
|
||||||
|
"DE.ApplicationController.scriptLoadError": "La connexion est trop lente, certains éléments ne peuvent pas être chargés. Veuillez recharger la page.",
|
||||||
|
"DE.ApplicationController.textLoadingDocument": "Chargement du document",
|
||||||
|
"DE.ApplicationController.textOf": "de",
|
||||||
|
"DE.ApplicationController.txtClose": "Fermer",
|
||||||
|
"DE.ApplicationController.unknownErrorText": "Erreur inconnue.",
|
||||||
|
"DE.ApplicationController.unsupportedBrowserErrorText": "Votre navigateur n'est pas pris en charge.",
|
||||||
|
"DE.ApplicationController.waitText": "Veuillez patienter...",
|
||||||
|
"DE.ApplicationView.txtDownload": "Télécharger",
|
||||||
|
"DE.ApplicationView.txtEmbed": "Incorporer",
|
||||||
|
"DE.ApplicationView.txtFullScreen": "Plein écran",
|
||||||
|
"DE.ApplicationView.txtShare": "Partager"
|
||||||
|
}
|
28
apps/documenteditor/embed/locale/hu.json
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
"common.view.modals.txtCopy": "Másolás a vágólapra",
|
||||||
|
"common.view.modals.txtEmbed": "Beágyaz",
|
||||||
|
"common.view.modals.txtHeight": "Magasság",
|
||||||
|
"common.view.modals.txtShare": "Hivatkozás megosztása",
|
||||||
|
"common.view.modals.txtWidth": "Szélesség",
|
||||||
|
"DE.ApplicationController.convertationErrorText": "Az átalakítás nem sikerült.",
|
||||||
|
"DE.ApplicationController.convertationTimeoutText": "Időtúllépés az átalakítás során.",
|
||||||
|
"DE.ApplicationController.criticalErrorTitle": "Hiba",
|
||||||
|
"DE.ApplicationController.downloadErrorText": "Sikertelen letöltés.",
|
||||||
|
"DE.ApplicationController.downloadTextText": "Dokumentum letöltése...",
|
||||||
|
"DE.ApplicationController.errorAccessDeny": "Olyan műveletet próbál végrehajtani, melyre nincs jogosultsága.<br>Vegye fel a kapcsolatot a Document Server adminisztrátorával.",
|
||||||
|
"DE.ApplicationController.errorDefaultMessage": "Hibakód: %1",
|
||||||
|
"DE.ApplicationController.errorFilePassProtect": "A dokumentum jelszóval védett, és nem nyitható meg.",
|
||||||
|
"DE.ApplicationController.errorUserDrop": "A dokumentum jelenleg nem elérhető",
|
||||||
|
"DE.ApplicationController.notcriticalErrorTitle": "Figyelmeztetés",
|
||||||
|
"DE.ApplicationController.scriptLoadError": "A kapcsolat túl lassú, néhány komponens nem töltődött be. Frissítse az oldalt.",
|
||||||
|
"DE.ApplicationController.textLoadingDocument": "Dokumentum betöltése",
|
||||||
|
"DE.ApplicationController.textOf": "of",
|
||||||
|
"DE.ApplicationController.txtClose": "Bezár",
|
||||||
|
"DE.ApplicationController.unknownErrorText": "Ismeretlen hiba.",
|
||||||
|
"DE.ApplicationController.unsupportedBrowserErrorText": "A böngészője nem támogatott.",
|
||||||
|
"DE.ApplicationController.waitText": "Kérjük várjon...",
|
||||||
|
"DE.ApplicationView.txtDownload": "Letöltés",
|
||||||
|
"DE.ApplicationView.txtEmbed": "Beágyaz",
|
||||||
|
"DE.ApplicationView.txtFullScreen": "Teljes képernyő",
|
||||||
|
"DE.ApplicationView.txtShare": "Megosztás"
|
||||||
|
}
|
28
apps/documenteditor/embed/locale/it.json
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
"common.view.modals.txtCopy": "Copia negli appunti",
|
||||||
|
"common.view.modals.txtEmbed": "Incorpora",
|
||||||
|
"common.view.modals.txtHeight": "Altezza",
|
||||||
|
"common.view.modals.txtShare": "Condividi collegamento",
|
||||||
|
"common.view.modals.txtWidth": "Larghezza",
|
||||||
|
"DE.ApplicationController.convertationErrorText": "Conversione fallita.",
|
||||||
|
"DE.ApplicationController.convertationTimeoutText": "È stato superato il tempo limite della conversione.",
|
||||||
|
"DE.ApplicationController.criticalErrorTitle": "Errore",
|
||||||
|
"DE.ApplicationController.downloadErrorText": "Scaricamento fallito",
|
||||||
|
"DE.ApplicationController.downloadTextText": "Scaricamento del documento in corso...",
|
||||||
|
"DE.ApplicationController.errorAccessDeny": "Stai tentando di eseguire un'azione per la quale non disponi di permessi sufficienti.<br>Si prega di contattare l'amministratore del Server dei Documenti.",
|
||||||
|
"DE.ApplicationController.errorDefaultMessage": "Codice errore: %1",
|
||||||
|
"DE.ApplicationController.errorFilePassProtect": "Il file è protetto da una password. Impossibile aprirlo.",
|
||||||
|
"DE.ApplicationController.errorUserDrop": "Impossibile accedere al file subito.",
|
||||||
|
"DE.ApplicationController.notcriticalErrorTitle": "Avviso",
|
||||||
|
"DE.ApplicationController.scriptLoadError": "La connessione è troppo lenta, alcuni componenti non possono essere caricati. Si prega di ricaricare la pagina.",
|
||||||
|
"DE.ApplicationController.textLoadingDocument": "Caricamento del documento",
|
||||||
|
"DE.ApplicationController.textOf": "di",
|
||||||
|
"DE.ApplicationController.txtClose": "Chiudi",
|
||||||
|
"DE.ApplicationController.unknownErrorText": "Errore sconosciuto.",
|
||||||
|
"DE.ApplicationController.unsupportedBrowserErrorText": "Il tuo browser non è supportato.",
|
||||||
|
"DE.ApplicationController.waitText": "Per favore, attendi...",
|
||||||
|
"DE.ApplicationView.txtDownload": "Scarica",
|
||||||
|
"DE.ApplicationView.txtEmbed": "Incorpora",
|
||||||
|
"DE.ApplicationView.txtFullScreen": "Schermo intero",
|
||||||
|
"DE.ApplicationView.txtShare": "Condividi"
|
||||||
|
}
|
21
apps/documenteditor/embed/locale/ja.json
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"common.view.modals.txtHeight": "高さ",
|
||||||
|
"common.view.modals.txtWidth": "幅",
|
||||||
|
"DE.ApplicationController.convertationErrorText": "変換に失敗しました",
|
||||||
|
"DE.ApplicationController.convertationTimeoutText": "変換のタイムアウトを超過しました。",
|
||||||
|
"DE.ApplicationController.criticalErrorTitle": "エラー",
|
||||||
|
"DE.ApplicationController.downloadErrorText": "ダウンロードに失敗しました",
|
||||||
|
"DE.ApplicationController.downloadTextText": "ドキュメントのダウンロード中...",
|
||||||
|
"DE.ApplicationController.errorDefaultMessage": "エラー コード: %1",
|
||||||
|
"DE.ApplicationController.errorFilePassProtect": "ドキュメントがパスワードで保護されているため開くことができません",
|
||||||
|
"DE.ApplicationController.errorUserDrop": "今、ファイルにアクセスすることはできません。",
|
||||||
|
"DE.ApplicationController.notcriticalErrorTitle": "警告",
|
||||||
|
"DE.ApplicationController.textLoadingDocument": "ドキュメントを読み込んでいます",
|
||||||
|
"DE.ApplicationController.textOf": "から",
|
||||||
|
"DE.ApplicationController.txtClose": "閉じる",
|
||||||
|
"DE.ApplicationController.unknownErrorText": "不明なエラー",
|
||||||
|
"DE.ApplicationController.unsupportedBrowserErrorText": "お使いのブラウザがサポートされていません。",
|
||||||
|
"DE.ApplicationView.txtDownload": "ダウンロード",
|
||||||
|
"DE.ApplicationView.txtFullScreen": "全画面表示",
|
||||||
|
"DE.ApplicationView.txtShare": "シェア"
|
||||||
|
}
|
28
apps/documenteditor/embed/locale/ko.json
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
"common.view.modals.txtCopy": "클립보드로 복사",
|
||||||
|
"common.view.modals.txtEmbed": "퍼가기",
|
||||||
|
"common.view.modals.txtHeight": "높이",
|
||||||
|
"common.view.modals.txtShare": "링크 공유",
|
||||||
|
"common.view.modals.txtWidth": "너비",
|
||||||
|
"DE.ApplicationController.convertationErrorText": "변환 실패",
|
||||||
|
"DE.ApplicationController.convertationTimeoutText": "전환 시간 초과를 초과했습니다.",
|
||||||
|
"DE.ApplicationController.criticalErrorTitle": "오류",
|
||||||
|
"DE.ApplicationController.downloadErrorText": "다운로드하지 못했습니다.",
|
||||||
|
"DE.ApplicationController.downloadTextText": "문서 다운로드 중 ...",
|
||||||
|
"DE.ApplicationController.errorAccessDeny": "권한이없는 작업을 수행하려고합니다. <br> Document Server 관리자에게 문의하십시오.",
|
||||||
|
"DE.ApplicationController.errorDefaultMessage": "오류 코드 : %1",
|
||||||
|
"DE.ApplicationController.errorFilePassProtect": "이 문서는 암호로 보호되어있어 열 수 없습니다.",
|
||||||
|
"DE.ApplicationController.errorUserDrop": "파일에 지금 액세스 할 수 없습니다.",
|
||||||
|
"DE.ApplicationController.notcriticalErrorTitle": "경고",
|
||||||
|
"DE.ApplicationController.scriptLoadError": "연결 속도가 느려, 일부 요소들이 로드되지 않았습니다. 페이지를 다시 새로 고침해주세요.",
|
||||||
|
"DE.ApplicationController.textLoadingDocument": "문서로드 중",
|
||||||
|
"DE.ApplicationController.textOf": "중",
|
||||||
|
"DE.ApplicationController.txtClose": "완료",
|
||||||
|
"DE.ApplicationController.unknownErrorText": "알 수없는 오류.",
|
||||||
|
"DE.ApplicationController.unsupportedBrowserErrorText": "사용중인 브라우저가 지원되지 않습니다.",
|
||||||
|
"DE.ApplicationController.waitText": "잠시만 기달려주세요...",
|
||||||
|
"DE.ApplicationView.txtDownload": "다운로드",
|
||||||
|
"DE.ApplicationView.txtEmbed": "퍼가기",
|
||||||
|
"DE.ApplicationView.txtFullScreen": "전체 화면",
|
||||||
|
"DE.ApplicationView.txtShare": "공유"
|
||||||
|
}
|
22
apps/documenteditor/embed/locale/lv.json
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"common.view.modals.txtCopy": "Nokopēts starpliktuvē",
|
||||||
|
"common.view.modals.txtHeight": "Augstums",
|
||||||
|
"common.view.modals.txtWidth": "Platums",
|
||||||
|
"DE.ApplicationController.convertationErrorText": "Konversija neizdevās.",
|
||||||
|
"DE.ApplicationController.convertationTimeoutText": "Konversijas taimauts pārsniegts.",
|
||||||
|
"DE.ApplicationController.criticalErrorTitle": "Kļūda",
|
||||||
|
"DE.ApplicationController.downloadErrorText": "Lejuplāde neizdevās.",
|
||||||
|
"DE.ApplicationController.downloadTextText": "Lejuplādē dokumentu...",
|
||||||
|
"DE.ApplicationController.errorAccessDeny": "Jūs mēģināt veikt darbību, kuru nedrīkstat veikt.<br>Lūdzu, sazinieties ar savu dokumentu servera administratoru.",
|
||||||
|
"DE.ApplicationController.errorDefaultMessage": "Kļūdas kods: %1",
|
||||||
|
"DE.ApplicationController.errorFilePassProtect": "Fails ir aizsargāts ar paroli un to nevar atvērt.",
|
||||||
|
"DE.ApplicationController.errorUserDrop": "Failam šobrīd nevar piekļūt.",
|
||||||
|
"DE.ApplicationController.notcriticalErrorTitle": "Brīdinājums",
|
||||||
|
"DE.ApplicationController.textLoadingDocument": "Ielādē dokumentu",
|
||||||
|
"DE.ApplicationController.textOf": "no",
|
||||||
|
"DE.ApplicationController.txtClose": "Aizvērt",
|
||||||
|
"DE.ApplicationController.unknownErrorText": "Nezināma kļūda.",
|
||||||
|
"DE.ApplicationController.unsupportedBrowserErrorText": "Jūsu pārlūkprogramma nav atbalstīta.",
|
||||||
|
"DE.ApplicationView.txtDownload": "Lejupielādēt",
|
||||||
|
"DE.ApplicationView.txtShare": "Dalīties"
|
||||||
|
}
|
23
apps/documenteditor/embed/locale/nl.json
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
"common.view.modals.txtCopy": "Kopieer naar klembord",
|
||||||
|
"common.view.modals.txtHeight": "Hoogte",
|
||||||
|
"common.view.modals.txtWidth": "Breedte",
|
||||||
|
"DE.ApplicationController.convertationTimeoutText": "Time-out voor conversie overschreden.",
|
||||||
|
"DE.ApplicationController.criticalErrorTitle": "Fout",
|
||||||
|
"DE.ApplicationController.downloadErrorText": "Download mislukt.",
|
||||||
|
"DE.ApplicationController.downloadTextText": "Document wordt gedownload...",
|
||||||
|
"DE.ApplicationController.errorAccessDeny": "U probeert een actie uit te voeren waarvoor u geen rechten hebt.<br>Neem contact op met de beheerder van de documentserver.",
|
||||||
|
"DE.ApplicationController.errorDefaultMessage": "Foutcode: %1",
|
||||||
|
"DE.ApplicationController.errorFilePassProtect": "Het bestand is beschermd met een wachtwoord en kan niet worden geopend.",
|
||||||
|
"DE.ApplicationController.errorUserDrop": "Toegang tot het bestand is op dit moment niet mogelijk.",
|
||||||
|
"DE.ApplicationController.notcriticalErrorTitle": "Waarschuwing",
|
||||||
|
"DE.ApplicationController.scriptLoadError": "De verbinding is te langzaam, sommige componenten konden niet geladen worden. Laad de pagina opnieuw.",
|
||||||
|
"DE.ApplicationController.textLoadingDocument": "Document wordt geladen",
|
||||||
|
"DE.ApplicationController.textOf": "van",
|
||||||
|
"DE.ApplicationController.txtClose": "Sluiten",
|
||||||
|
"DE.ApplicationController.unknownErrorText": "Onbekende fout.",
|
||||||
|
"DE.ApplicationController.unsupportedBrowserErrorText": "Uw browser wordt niet ondersteund.",
|
||||||
|
"DE.ApplicationView.txtDownload": "Downloaden",
|
||||||
|
"DE.ApplicationView.txtFullScreen": "Volledig scherm",
|
||||||
|
"DE.ApplicationView.txtShare": "Delen"
|
||||||
|
}
|
23
apps/documenteditor/embed/locale/pl.json
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
"common.view.modals.txtCopy": "Skopiuj do schowka",
|
||||||
|
"common.view.modals.txtHeight": "Wysokość",
|
||||||
|
"common.view.modals.txtWidth": "Szerokość",
|
||||||
|
"DE.ApplicationController.convertationTimeoutText": "Przekroczono limit czasu konwersji.",
|
||||||
|
"DE.ApplicationController.criticalErrorTitle": "Błąd",
|
||||||
|
"DE.ApplicationController.downloadErrorText": "Pobieranie nieudane.",
|
||||||
|
"DE.ApplicationController.downloadTextText": "Pobieranie dokumentu...",
|
||||||
|
"DE.ApplicationController.errorAccessDeny": "Próbujesz wykonać działanie, na które nie masz uprawnień.<br>Proszę skontaktować się z administratorem serwera dokumentów.",
|
||||||
|
"DE.ApplicationController.errorDefaultMessage": "Kod błędu: %1",
|
||||||
|
"DE.ApplicationController.errorFilePassProtect": "Dokument jest chroniony hasłem i nie może być otwarty.",
|
||||||
|
"DE.ApplicationController.errorUserDrop": "Nie można uzyskać dostępu do tego pliku.",
|
||||||
|
"DE.ApplicationController.notcriticalErrorTitle": "Ostrzeżenie",
|
||||||
|
"DE.ApplicationController.textLoadingDocument": "Ładowanie dokumentu",
|
||||||
|
"DE.ApplicationController.textOf": "z",
|
||||||
|
"DE.ApplicationController.txtClose": "Zamknij",
|
||||||
|
"DE.ApplicationController.unknownErrorText": "Nieznany błąd.",
|
||||||
|
"DE.ApplicationController.unsupportedBrowserErrorText": "Twoja przeglądarka nie jest wspierana.",
|
||||||
|
"DE.ApplicationController.waitText": "Proszę czekać...",
|
||||||
|
"DE.ApplicationView.txtDownload": "Pobierz",
|
||||||
|
"DE.ApplicationView.txtFullScreen": "Pełny ekran",
|
||||||
|
"DE.ApplicationView.txtShare": "Udostępnij"
|
||||||
|
}
|
22
apps/documenteditor/embed/locale/pt.json
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"common.view.modals.txtCopy": "Copiar para a área de transferência",
|
||||||
|
"common.view.modals.txtHeight": "Altura",
|
||||||
|
"common.view.modals.txtWidth": "Largura",
|
||||||
|
"DE.ApplicationController.convertationTimeoutText": "Tempo limite de conversão excedido.",
|
||||||
|
"DE.ApplicationController.criticalErrorTitle": "Erro",
|
||||||
|
"DE.ApplicationController.downloadErrorText": "Falha ao baixar",
|
||||||
|
"DE.ApplicationController.downloadTextText": "Baixando documento...",
|
||||||
|
"DE.ApplicationController.errorAccessDeny": "Você está tentando executar uma ação para a qual não tem direitos.<br>Entre em contato com o administrador do Document Server.",
|
||||||
|
"DE.ApplicationController.errorDefaultMessage": "Código do erro: %1",
|
||||||
|
"DE.ApplicationController.errorFilePassProtect": "O documento é protegido por senha e não pode ser aberto.",
|
||||||
|
"DE.ApplicationController.errorUserDrop": "O arquivo não pode ser acessado agora.",
|
||||||
|
"DE.ApplicationController.notcriticalErrorTitle": "Aviso",
|
||||||
|
"DE.ApplicationController.textLoadingDocument": "Carregando documento",
|
||||||
|
"DE.ApplicationController.textOf": "de",
|
||||||
|
"DE.ApplicationController.txtClose": "Fechar",
|
||||||
|
"DE.ApplicationController.unknownErrorText": "Erro desconhecido.",
|
||||||
|
"DE.ApplicationController.unsupportedBrowserErrorText": "Seu navegador não é suportado.",
|
||||||
|
"DE.ApplicationController.waitText": "Aguarde...",
|
||||||
|
"DE.ApplicationView.txtDownload": "Baixar",
|
||||||
|
"DE.ApplicationView.txtShare": "Compartilhar"
|
||||||
|
}
|
28
apps/documenteditor/embed/locale/ru.json
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
"common.view.modals.txtCopy": "Скопировать в буфер",
|
||||||
|
"common.view.modals.txtEmbed": "Встроить",
|
||||||
|
"common.view.modals.txtHeight": "Высота",
|
||||||
|
"common.view.modals.txtShare": "Поделиться ссылкой",
|
||||||
|
"common.view.modals.txtWidth": "Ширина",
|
||||||
|
"DE.ApplicationController.convertationErrorText": "Конвертация не удалась.",
|
||||||
|
"DE.ApplicationController.convertationTimeoutText": "Превышено время ожидания конвертации.",
|
||||||
|
"DE.ApplicationController.criticalErrorTitle": "Ошибка",
|
||||||
|
"DE.ApplicationController.downloadErrorText": "Загрузка не удалась.",
|
||||||
|
"DE.ApplicationController.downloadTextText": "Загрузка документа...",
|
||||||
|
"DE.ApplicationController.errorAccessDeny": "Вы пытаетесь выполнить действие, на которое у вас нет прав.<br>Пожалуйста, обратитесь к администратору Сервера документов.",
|
||||||
|
"DE.ApplicationController.errorDefaultMessage": "Код ошибки: %1",
|
||||||
|
"DE.ApplicationController.errorFilePassProtect": "Файл защищен паролем и не может быть открыт.",
|
||||||
|
"DE.ApplicationController.errorUserDrop": "В настоящий момент файл недоступен.",
|
||||||
|
"DE.ApplicationController.notcriticalErrorTitle": "Внимание",
|
||||||
|
"DE.ApplicationController.scriptLoadError": "Слишком медленное подключение, некоторые компоненты не удалось загрузить. Пожалуйста, обновите страницу.",
|
||||||
|
"DE.ApplicationController.textLoadingDocument": "Загрузка документа",
|
||||||
|
"DE.ApplicationController.textOf": "из",
|
||||||
|
"DE.ApplicationController.txtClose": "Закрыть",
|
||||||
|
"DE.ApplicationController.unknownErrorText": "Неизвестная ошибка.",
|
||||||
|
"DE.ApplicationController.unsupportedBrowserErrorText": "Ваш браузер не поддерживается.",
|
||||||
|
"DE.ApplicationController.waitText": "Пожалуйста, подождите...",
|
||||||
|
"DE.ApplicationView.txtDownload": "Скачать файл",
|
||||||
|
"DE.ApplicationView.txtEmbed": "Встроить",
|
||||||
|
"DE.ApplicationView.txtFullScreen": "Во весь экран",
|
||||||
|
"DE.ApplicationView.txtShare": "Поделиться"
|
||||||
|
}
|
23
apps/documenteditor/embed/locale/sk.json
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
"common.view.modals.txtCopy": "Skopírovať do schránky",
|
||||||
|
"common.view.modals.txtHeight": "Výška",
|
||||||
|
"common.view.modals.txtWidth": "Šírka",
|
||||||
|
"DE.ApplicationController.convertationTimeoutText": "Prekročený čas konverzie.",
|
||||||
|
"DE.ApplicationController.criticalErrorTitle": "Chyba",
|
||||||
|
"DE.ApplicationController.downloadErrorText": "Sťahovanie zlyhalo.",
|
||||||
|
"DE.ApplicationController.downloadTextText": "Sťahovanie dokumentu...",
|
||||||
|
"DE.ApplicationController.errorAccessDeny": "Pokúšate sa vykonať akciu, na ktorú nemáte práva.<br>Prosím, kontaktujte svojho správcu dokumentového servera.",
|
||||||
|
"DE.ApplicationController.errorDefaultMessage": "Kód chyby: %1",
|
||||||
|
"DE.ApplicationController.errorFilePassProtect": "Dokument je chránený heslom a nie je možné ho otvoriť.",
|
||||||
|
"DE.ApplicationController.errorUserDrop": "K súboru nie je možné práve teraz získať prístup.",
|
||||||
|
"DE.ApplicationController.notcriticalErrorTitle": "Upozornenie",
|
||||||
|
"DE.ApplicationController.textLoadingDocument": "Načítavanie dokumentu",
|
||||||
|
"DE.ApplicationController.textOf": "z",
|
||||||
|
"DE.ApplicationController.txtClose": "Zatvoriť",
|
||||||
|
"DE.ApplicationController.unknownErrorText": "Neznáma chyba.",
|
||||||
|
"DE.ApplicationController.unsupportedBrowserErrorText": "Váš prehliadač nie je podporovaný.",
|
||||||
|
"DE.ApplicationController.waitText": "Prosím čakajte...",
|
||||||
|
"DE.ApplicationView.txtDownload": "Stiahnuť",
|
||||||
|
"DE.ApplicationView.txtFullScreen": "Celá obrazovka",
|
||||||
|
"DE.ApplicationView.txtShare": "Zdieľať"
|
||||||
|
}
|
21
apps/documenteditor/embed/locale/sl.json
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"common.view.modals.txtCopy": "Kopiraj v odložišče",
|
||||||
|
"common.view.modals.txtHeight": "Višina",
|
||||||
|
"common.view.modals.txtWidth": "Širina",
|
||||||
|
"DE.ApplicationController.convertationErrorText": "Pretvorba ni uspela.",
|
||||||
|
"DE.ApplicationController.convertationTimeoutText": "Pretvorbena prekinitev presežena.",
|
||||||
|
"DE.ApplicationController.criticalErrorTitle": "Napaka",
|
||||||
|
"DE.ApplicationController.downloadErrorText": "Prenos ni uspel.",
|
||||||
|
"DE.ApplicationController.downloadTextText": "Prenašanje dokumenta...",
|
||||||
|
"DE.ApplicationController.errorDefaultMessage": "Koda napake: %1",
|
||||||
|
"DE.ApplicationController.errorFilePassProtect": "Dokument je zaščiten z geslom in ga ni mogoče odpreti.",
|
||||||
|
"DE.ApplicationController.errorUserDrop": "Do datoteke v tem trenutku ni možno dostopati.",
|
||||||
|
"DE.ApplicationController.notcriticalErrorTitle": "Opozorilo",
|
||||||
|
"DE.ApplicationController.textLoadingDocument": "Nalaganje dokumenta",
|
||||||
|
"DE.ApplicationController.textOf": "od",
|
||||||
|
"DE.ApplicationController.txtClose": "Zapri",
|
||||||
|
"DE.ApplicationController.unknownErrorText": "Neznana napaka.",
|
||||||
|
"DE.ApplicationController.unsupportedBrowserErrorText": "Vaš brskalnik ni podprt.",
|
||||||
|
"DE.ApplicationView.txtDownload": "Prenesi",
|
||||||
|
"DE.ApplicationView.txtShare": "Deli"
|
||||||
|
}
|
28
apps/documenteditor/embed/locale/tr.json
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
"common.view.modals.txtCopy": "Panoya kopyala",
|
||||||
|
"common.view.modals.txtEmbed": "Gömülü",
|
||||||
|
"common.view.modals.txtHeight": "Yükseklik",
|
||||||
|
"common.view.modals.txtShare": "Bağlantıyı Paylaş",
|
||||||
|
"common.view.modals.txtWidth": "Genişlik",
|
||||||
|
"DE.ApplicationController.convertationErrorText": "Değişim başarısız oldu.",
|
||||||
|
"DE.ApplicationController.convertationTimeoutText": "Değişim süresi aşıldı.",
|
||||||
|
"DE.ApplicationController.criticalErrorTitle": "Hata",
|
||||||
|
"DE.ApplicationController.downloadErrorText": "Yükleme başarısız oldu.",
|
||||||
|
"DE.ApplicationController.downloadTextText": "Döküman yükleniyor...",
|
||||||
|
"DE.ApplicationController.errorAccessDeny": "Hakkınız olmayan bir eylem gerçekleştirmeye çalışıyorsunuz.<br>Lütfen Belge Sunucu yöneticinize başvurun.",
|
||||||
|
"DE.ApplicationController.errorDefaultMessage": "Hata kodu: %1",
|
||||||
|
"DE.ApplicationController.errorFilePassProtect": "Döküman şifre korumalı ve açılamadı",
|
||||||
|
"DE.ApplicationController.errorUserDrop": "Belgeye şu an erişilemiyor.",
|
||||||
|
"DE.ApplicationController.notcriticalErrorTitle": "Uyarı",
|
||||||
|
"DE.ApplicationController.scriptLoadError": "Bağlantı çok yavaş, bileşenlerin bazıları yüklenemedi. Lütfen sayfayı yenileyin.",
|
||||||
|
"DE.ApplicationController.textLoadingDocument": "Döküman yükleniyor",
|
||||||
|
"DE.ApplicationController.textOf": "'in",
|
||||||
|
"DE.ApplicationController.txtClose": "Kapat",
|
||||||
|
"DE.ApplicationController.unknownErrorText": "Bilinmeyen hata.",
|
||||||
|
"DE.ApplicationController.unsupportedBrowserErrorText": "Tarayıcınız desteklenmiyor.",
|
||||||
|
"DE.ApplicationController.waitText": "Lütfen bekleyin...",
|
||||||
|
"DE.ApplicationView.txtDownload": "İndir",
|
||||||
|
"DE.ApplicationView.txtEmbed": "Gömülü",
|
||||||
|
"DE.ApplicationView.txtFullScreen": "Tam Ekran",
|
||||||
|
"DE.ApplicationView.txtShare": "Paylaş"
|
||||||
|
}
|
22
apps/documenteditor/embed/locale/uk.json
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"common.view.modals.txtCopy": "Копіювати в буфер обміну",
|
||||||
|
"common.view.modals.txtHeight": "Висота",
|
||||||
|
"common.view.modals.txtWidth": "Ширина",
|
||||||
|
"DE.ApplicationController.convertationTimeoutText": "Термін переходу перевищено.",
|
||||||
|
"DE.ApplicationController.criticalErrorTitle": "Помилка",
|
||||||
|
"DE.ApplicationController.downloadErrorText": "Завантаження не вдалося",
|
||||||
|
"DE.ApplicationController.downloadTextText": "Завантаження документу...",
|
||||||
|
"DE.ApplicationController.errorAccessDeny": "Ви намагаєтеся виконати дію, на яку у вас немає прав. <br> Будь ласка, зв'яжіться з адміністратором вашого Сервера документів.",
|
||||||
|
"DE.ApplicationController.errorDefaultMessage": "Код помилки: %1",
|
||||||
|
"DE.ApplicationController.errorFilePassProtect": "Документ захищений паролем і його неможливо відкрити.",
|
||||||
|
"DE.ApplicationController.errorUserDrop": "На даний момент файл не доступний.",
|
||||||
|
"DE.ApplicationController.notcriticalErrorTitle": "Застереження",
|
||||||
|
"DE.ApplicationController.textLoadingDocument": "Завантаження документа",
|
||||||
|
"DE.ApplicationController.textOf": "з",
|
||||||
|
"DE.ApplicationController.txtClose": "Закрити",
|
||||||
|
"DE.ApplicationController.unknownErrorText": "Невідома помилка.",
|
||||||
|
"DE.ApplicationController.unsupportedBrowserErrorText": "Ваш браузер не підтримується",
|
||||||
|
"DE.ApplicationView.txtDownload": "Завантажити",
|
||||||
|
"DE.ApplicationView.txtFullScreen": "Повноекранний режим",
|
||||||
|
"DE.ApplicationView.txtShare": "Доступ"
|
||||||
|
}
|
22
apps/documenteditor/embed/locale/vi.json
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"common.view.modals.txtCopy": "Sao chép vào khay nhớ tạm",
|
||||||
|
"common.view.modals.txtHeight": "Chiều cao",
|
||||||
|
"common.view.modals.txtWidth": "Chiều rộng",
|
||||||
|
"DE.ApplicationController.convertationTimeoutText": "Đã quá thời gian chờ chuyển đổi.",
|
||||||
|
"DE.ApplicationController.criticalErrorTitle": "Lỗi",
|
||||||
|
"DE.ApplicationController.downloadErrorText": "Tải về không thành công.",
|
||||||
|
"DE.ApplicationController.downloadTextText": "Đang tải tài liệu...",
|
||||||
|
"DE.ApplicationController.errorAccessDeny": "Bạn đang cố gắng thực hiện hành động mà bạn không có quyền.<br>Vui lòng liên hệ với quản trị viên Server Tài liệu của bạn.",
|
||||||
|
"DE.ApplicationController.errorDefaultMessage": "Mã lỗi: %1",
|
||||||
|
"DE.ApplicationController.errorFilePassProtect": "Tài liệu được bảo vệ bằng mật khẩu và không thể mở được.",
|
||||||
|
"DE.ApplicationController.errorUserDrop": "Không thể truy cập file ngay lúc này.",
|
||||||
|
"DE.ApplicationController.notcriticalErrorTitle": "Cảnh báo",
|
||||||
|
"DE.ApplicationController.textLoadingDocument": "Đang tải tài liệu",
|
||||||
|
"DE.ApplicationController.textOf": "trên",
|
||||||
|
"DE.ApplicationController.txtClose": "Đóng",
|
||||||
|
"DE.ApplicationController.unknownErrorText": "Lỗi không xác định.",
|
||||||
|
"DE.ApplicationController.unsupportedBrowserErrorText": "Trình duyệt của bạn không được hỗ trợ.",
|
||||||
|
"DE.ApplicationView.txtDownload": "Tải về",
|
||||||
|
"DE.ApplicationView.txtFullScreen": "Toàn màn hình",
|
||||||
|
"DE.ApplicationView.txtShare": "Chia sẻ"
|
||||||
|
}
|
28
apps/documenteditor/embed/locale/zh.json
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
"common.view.modals.txtCopy": "复制到剪贴板",
|
||||||
|
"common.view.modals.txtEmbed": "嵌入",
|
||||||
|
"common.view.modals.txtHeight": "高度",
|
||||||
|
"common.view.modals.txtShare": "分享链接",
|
||||||
|
"common.view.modals.txtWidth": "宽度",
|
||||||
|
"DE.ApplicationController.convertationErrorText": "转换失败",
|
||||||
|
"DE.ApplicationController.convertationTimeoutText": "转换超时",
|
||||||
|
"DE.ApplicationController.criticalErrorTitle": "错误",
|
||||||
|
"DE.ApplicationController.downloadErrorText": "下载失败",
|
||||||
|
"DE.ApplicationController.downloadTextText": "正在下载文件...",
|
||||||
|
"DE.ApplicationController.errorAccessDeny": "您正在尝试执行您没有权限的操作。<br>请联系您的文档服务器管理员.",
|
||||||
|
"DE.ApplicationController.errorDefaultMessage": "错误代码:%1",
|
||||||
|
"DE.ApplicationController.errorFilePassProtect": "该文档受密码保护,无法被打开。",
|
||||||
|
"DE.ApplicationController.errorUserDrop": "该文件现在无法访问。",
|
||||||
|
"DE.ApplicationController.notcriticalErrorTitle": "警告",
|
||||||
|
"DE.ApplicationController.scriptLoadError": "连接速度过慢,部分组件无法被加载。请重新加载页面。",
|
||||||
|
"DE.ApplicationController.textLoadingDocument": "文件加载中…",
|
||||||
|
"DE.ApplicationController.textOf": "的",
|
||||||
|
"DE.ApplicationController.txtClose": "关闭",
|
||||||
|
"DE.ApplicationController.unknownErrorText": "示知错误",
|
||||||
|
"DE.ApplicationController.unsupportedBrowserErrorText": "你的浏览器不支持",
|
||||||
|
"DE.ApplicationController.waitText": "请稍候...",
|
||||||
|
"DE.ApplicationView.txtDownload": "下载",
|
||||||
|
"DE.ApplicationView.txtEmbed": "嵌入",
|
||||||
|
"DE.ApplicationView.txtFullScreen": "全屏",
|
||||||
|
"DE.ApplicationView.txtShare": "共享"
|
||||||
|
}
|
|
@ -46,6 +46,19 @@ var c_paragraphLinerule = {
|
||||||
LINERULE_EXACT: 2
|
LINERULE_EXACT: 2
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var c_paragraphSpecial = {
|
||||||
|
NONE_SPECIAL: 0,
|
||||||
|
FIRST_LINE: 1,
|
||||||
|
HANGING: 2
|
||||||
|
};
|
||||||
|
|
||||||
|
var c_paragraphTextAlignment = {
|
||||||
|
RIGHT: 0,
|
||||||
|
LEFT: 1,
|
||||||
|
CENTERED: 2,
|
||||||
|
JUSTIFIED: 3
|
||||||
|
};
|
||||||
|
|
||||||
var c_pageNumPosition = {
|
var c_pageNumPosition = {
|
||||||
PAGE_NUM_POSITION_TOP: 0x01,
|
PAGE_NUM_POSITION_TOP: 0x01,
|
||||||
PAGE_NUM_POSITION_BOTTOM: 0x02,
|
PAGE_NUM_POSITION_BOTTOM: 0x02,
|
||||||
|
|
|
@ -237,7 +237,7 @@ define([
|
||||||
if ( isopts ) close_menu = false;
|
if ( isopts ) close_menu = false;
|
||||||
else this.clickSaveCopyAsFormat(undefined);
|
else this.clickSaveCopyAsFormat(undefined);
|
||||||
break;
|
break;
|
||||||
case 'print': this.api.asc_Print(Common.Utils.isChrome || Common.Utils.isSafari || Common.Utils.isOpera); break;
|
case 'print': this.api.asc_Print(new Asc.asc_CDownloadOptions(null, Common.Utils.isChrome || Common.Utils.isSafari || Common.Utils.isOpera)); break;
|
||||||
case 'exit': Common.NotificationCenter.trigger('goback'); break;
|
case 'exit': Common.NotificationCenter.trigger('goback'); break;
|
||||||
case 'edit':
|
case 'edit':
|
||||||
this.getApplication().getController('Statusbar').setStatusCaption(this.requestEditRightsText);
|
this.getApplication().getController('Statusbar').setStatusCaption(this.requestEditRightsText);
|
||||||
|
@ -302,13 +302,39 @@ define([
|
||||||
buttons: ['ok', 'cancel'],
|
buttons: ['ok', 'cancel'],
|
||||||
callback: _.bind(function(btn){
|
callback: _.bind(function(btn){
|
||||||
if (btn == 'ok') {
|
if (btn == 'ok') {
|
||||||
this.api.asc_DownloadAs(format);
|
if (format == Asc.c_oAscFileType.TXT)
|
||||||
|
Common.NotificationCenter.trigger('download:advanced', Asc.c_oAscAdvancedOptionsID.TXT, this.api.asc_getAdvancedOptions(), 2, new Asc.asc_CDownloadOptions(format));
|
||||||
|
else
|
||||||
|
this.api.asc_DownloadAs(new Asc.asc_CDownloadOptions(format));
|
||||||
|
menu.hide();
|
||||||
|
}
|
||||||
|
}, this)
|
||||||
|
});
|
||||||
|
} else if (format == Asc.c_oAscFileType.DOCX) {
|
||||||
|
if (!Common.Utils.InternalSettings.get("de-settings-compatible") && !Common.localStorage.getBool("de-hide-save-compatible") && this.api.asc_isCompatibilityMode()) {
|
||||||
|
Common.UI.warning({
|
||||||
|
closable: false,
|
||||||
|
width: 600,
|
||||||
|
title: this.notcriticalErrorTitle,
|
||||||
|
msg: this.txtCompatible,
|
||||||
|
buttons: ['ok', 'cancel'],
|
||||||
|
dontshow: true,
|
||||||
|
callback: _.bind(function(btn, dontshow){
|
||||||
|
if (dontshow) Common.localStorage.setItem("de-hide-save-compatible", 1);
|
||||||
|
if (btn == 'ok') {
|
||||||
|
this.api.asc_DownloadAs(new Asc.asc_CDownloadOptions(format));
|
||||||
menu.hide();
|
menu.hide();
|
||||||
}
|
}
|
||||||
}, this)
|
}, this)
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
this.api.asc_DownloadAs(format);
|
var opts = new Asc.asc_CDownloadOptions(Asc.c_oAscFileType.DOCX);
|
||||||
|
opts.asc_setCompatible(!!Common.Utils.InternalSettings.get("de-settings-compatible"));
|
||||||
|
this.api.asc_DownloadAs(opts);
|
||||||
|
menu.hide();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.api.asc_DownloadAs(new Asc.asc_CDownloadOptions(format));
|
||||||
menu.hide();
|
menu.hide();
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
|
@ -326,14 +352,42 @@ define([
|
||||||
callback: _.bind(function(btn){
|
callback: _.bind(function(btn){
|
||||||
if (btn == 'ok') {
|
if (btn == 'ok') {
|
||||||
this.isFromFileDownloadAs = ext;
|
this.isFromFileDownloadAs = ext;
|
||||||
this.api.asc_DownloadAs(format, true);
|
if (format == Asc.c_oAscFileType.TXT)
|
||||||
|
Common.NotificationCenter.trigger('download:advanced', Asc.c_oAscAdvancedOptionsID.TXT, this.api.asc_getAdvancedOptions(), 2, new Asc.asc_CDownloadOptions(format, true));
|
||||||
|
else
|
||||||
|
this.api.asc_DownloadAs(new Asc.asc_CDownloadOptions(format, true));
|
||||||
|
menu.hide();
|
||||||
|
}
|
||||||
|
}, this)
|
||||||
|
});
|
||||||
|
} else if (format == Asc.c_oAscFileType.DOCX) {
|
||||||
|
if (!Common.Utils.InternalSettings.get("de-settings-compatible") && !Common.localStorage.getBool("de-hide-save-compatible") && this.api.asc_isCompatibilityMode()) {
|
||||||
|
Common.UI.warning({
|
||||||
|
closable: false,
|
||||||
|
width: 600,
|
||||||
|
title: this.notcriticalErrorTitle,
|
||||||
|
msg: this.txtCompatible,
|
||||||
|
buttons: ['ok', 'cancel'],
|
||||||
|
dontshow: true,
|
||||||
|
callback: _.bind(function(btn, dontshow){
|
||||||
|
if (dontshow) Common.localStorage.setItem("de-hide-save-compatible", 1);
|
||||||
|
if (btn == 'ok') {
|
||||||
|
this.isFromFileDownloadAs = ext;
|
||||||
|
this.api.asc_DownloadAs(new Asc.asc_CDownloadOptions(format, true));
|
||||||
menu.hide();
|
menu.hide();
|
||||||
}
|
}
|
||||||
}, this)
|
}, this)
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
this.isFromFileDownloadAs = ext;
|
this.isFromFileDownloadAs = ext;
|
||||||
this.api.asc_DownloadAs(format, true);
|
var opts = new Asc.asc_CDownloadOptions(Asc.c_oAscFileType.DOCX, true);
|
||||||
|
opts.asc_setCompatible(!!Common.Utils.InternalSettings.get("de-settings-compatible"));
|
||||||
|
this.api.asc_DownloadAs(opts);
|
||||||
|
menu.hide();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.isFromFileDownloadAs = ext;
|
||||||
|
this.api.asc_DownloadAs(new Asc.asc_CDownloadOptions(format, true));
|
||||||
menu.hide();
|
menu.hide();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -354,6 +408,9 @@ define([
|
||||||
defFileName = defFileName.substring(0, idx) + this.isFromFileDownloadAs;
|
defFileName = defFileName.substring(0, idx) + this.isFromFileDownloadAs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (me.mode.canRequestSaveAs) {
|
||||||
|
Common.Gateway.requestSaveAs(url, defFileName);
|
||||||
|
} else {
|
||||||
me._saveCopyDlg = new Common.Views.SaveAsDlg({
|
me._saveCopyDlg = new Common.Views.SaveAsDlg({
|
||||||
saveFolderUrl: me.mode.saveAsUrl,
|
saveFolderUrl: me.mode.saveAsUrl,
|
||||||
saveFileUrl: url,
|
saveFileUrl: url,
|
||||||
|
@ -376,6 +433,7 @@ define([
|
||||||
});
|
});
|
||||||
me._saveCopyDlg.show();
|
me._saveCopyDlg.show();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
this.isFromFileDownloadAs = false;
|
this.isFromFileDownloadAs = false;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -436,8 +494,10 @@ define([
|
||||||
},
|
},
|
||||||
|
|
||||||
onCreateNew: function(menu, type) {
|
onCreateNew: function(menu, type) {
|
||||||
|
if ( !Common.Controllers.Desktop.process('create:new') ) {
|
||||||
var newDocumentPage = window.open(type == 'blank' ? this.mode.createUrl : type, "_blank");
|
var newDocumentPage = window.open(type == 'blank' ? this.mode.createUrl : type, "_blank");
|
||||||
if (newDocumentPage) newDocumentPage.focus();
|
if (newDocumentPage) newDocumentPage.focus();
|
||||||
|
}
|
||||||
|
|
||||||
if (menu) {
|
if (menu) {
|
||||||
menu.hide();
|
menu.hide();
|
||||||
|
@ -820,6 +880,8 @@ define([
|
||||||
leavePageText: 'All unsaved changes in this document will be lost.<br> Click \'Cancel\' then \'Save\' to save them. Click \'OK\' to discard all the unsaved changes.',
|
leavePageText: 'All unsaved changes in this document will be lost.<br> Click \'Cancel\' then \'Save\' to save them. Click \'OK\' to discard all the unsaved changes.',
|
||||||
warnDownloadAs : 'If you continue saving in this format all features except the text will be lost.<br>Are you sure you want to continue?',
|
warnDownloadAs : 'If you continue saving in this format all features except the text will be lost.<br>Are you sure you want to continue?',
|
||||||
warnDownloadAsRTF : 'If you continue saving in this format some of the formatting might be lost.<br>Are you sure you want to continue?',
|
warnDownloadAsRTF : 'If you continue saving in this format some of the formatting might be lost.<br>Are you sure you want to continue?',
|
||||||
txtUntitled: 'Untitled'
|
txtUntitled: 'Untitled',
|
||||||
|
txtCompatible: 'The document will be saved to the new format. It will allow to use all the editor features, but might affect the document layout.<br>Use the \'Compatibility\' option of the advanced settings if you want to make the files compatible with older MS Word versions.'
|
||||||
|
|
||||||
}, DE.Controllers.LeftMenu || {}));
|
}, DE.Controllers.LeftMenu || {}));
|
||||||
});
|
});
|
|
@ -78,6 +78,9 @@ define([
|
||||||
this._state = {
|
this._state = {
|
||||||
prcontrolsdisable:undefined
|
prcontrolsdisable:undefined
|
||||||
};
|
};
|
||||||
|
Common.Gateway.on('setactionlink', function (url) {
|
||||||
|
console.log('url with actions: ' + url);
|
||||||
|
}.bind(this));
|
||||||
},
|
},
|
||||||
|
|
||||||
setApi: function (api) {
|
setApi: function (api) {
|
||||||
|
@ -146,22 +149,14 @@ define([
|
||||||
control_plain = (control_props) ? (control_props.get_ContentControlType()==Asc.c_oAscSdtLevelType.Inline) : false;
|
control_plain = (control_props) ? (control_props.get_ContentControlType()==Asc.c_oAscSdtLevelType.Inline) : false;
|
||||||
|
|
||||||
var need_disable = paragraph_locked || in_equation || in_image || in_header || control_plain;
|
var need_disable = paragraph_locked || in_equation || in_image || in_header || control_plain;
|
||||||
_.each (this.view.btnsNotes, function(item){
|
this.view.btnsNotes.setDisabled(need_disable);
|
||||||
item.setDisabled(need_disable);
|
|
||||||
}, this);
|
|
||||||
|
|
||||||
need_disable = paragraph_locked || header_locked || in_header || control_plain;
|
need_disable = paragraph_locked || header_locked || in_header || control_plain;
|
||||||
this.view.btnBookmarks.setDisabled(need_disable);
|
this.view.btnBookmarks.setDisabled(need_disable);
|
||||||
},
|
},
|
||||||
|
|
||||||
onApiCanAddHyperlink: function(value) {
|
onApiCanAddHyperlink: function(value) {
|
||||||
var need_disable = !value || this._state.prcontrolsdisable;
|
this.toolbar.editMode && this.view.btnsHyperlink.setDisabled(!value || this._state.prcontrolsdisable);
|
||||||
|
|
||||||
if ( this.toolbar.editMode ) {
|
|
||||||
_.each (this.view.btnsHyperlink, function(item){
|
|
||||||
item.setDisabled(need_disable);
|
|
||||||
}, this);
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
onHyperlinkClick: function(btn) {
|
onHyperlinkClick: function(btn) {
|
||||||
|
@ -299,7 +294,9 @@ define([
|
||||||
if (settings) {
|
if (settings) {
|
||||||
me.api.asc_SetFootnoteProps(settings.props, settings.applyToAll);
|
me.api.asc_SetFootnoteProps(settings.props, settings.applyToAll);
|
||||||
if (result == 'insert')
|
if (result == 'insert')
|
||||||
|
setTimeout(function() {
|
||||||
me.api.asc_AddFootnote(settings.custom);
|
me.api.asc_AddFootnote(settings.custom);
|
||||||
|
}, 1);
|
||||||
}
|
}
|
||||||
Common.NotificationCenter.trigger('edit:complete', me.toolbar);
|
Common.NotificationCenter.trigger('edit:complete', me.toolbar);
|
||||||
},
|
},
|
||||||
|
|
|
@ -195,14 +195,13 @@ define([
|
||||||
|
|
||||||
Common.NotificationCenter.on('api:disconnect', _.bind(this.onCoAuthoringDisconnect, this));
|
Common.NotificationCenter.on('api:disconnect', _.bind(this.onCoAuthoringDisconnect, this));
|
||||||
Common.NotificationCenter.on('goback', _.bind(this.goBack, this));
|
Common.NotificationCenter.on('goback', _.bind(this.goBack, this));
|
||||||
|
Common.NotificationCenter.on('download:advanced', _.bind(this.onAdvancedOptions, this));
|
||||||
|
|
||||||
this.isShowOpenDialog = false;
|
this.isShowOpenDialog = false;
|
||||||
|
|
||||||
// Initialize api gateway
|
// Initialize api gateway
|
||||||
this.editorConfig = {};
|
this.editorConfig = {};
|
||||||
this.appOptions = {};
|
this.appOptions = {};
|
||||||
this.plugins = undefined;
|
|
||||||
this.UICustomizePlugins = [];
|
|
||||||
Common.Gateway.on('init', _.bind(this.loadConfig, this));
|
Common.Gateway.on('init', _.bind(this.loadConfig, this));
|
||||||
Common.Gateway.on('showmessage', _.bind(this.onExternalMessage, this));
|
Common.Gateway.on('showmessage', _.bind(this.onExternalMessage, this));
|
||||||
Common.Gateway.on('opendocument', _.bind(this.loadDocument, this));
|
Common.Gateway.on('opendocument', _.bind(this.loadDocument, this));
|
||||||
|
@ -230,11 +229,13 @@ define([
|
||||||
});
|
});
|
||||||
|
|
||||||
$(document.body).on('blur', 'input, textarea', function(e) {
|
$(document.body).on('blur', 'input, textarea', function(e) {
|
||||||
if (!me.isModalShowed) {
|
if (!me.isModalShowed && !me.getApplication().getController('LeftMenu').getView('LeftMenu').getMenu('file').isVisible()) {
|
||||||
if (/form-control/.test(e.target.className))
|
if (/form-control/.test(e.target.className))
|
||||||
me.inFormControl = false;
|
me.inFormControl = false;
|
||||||
if (!e.relatedTarget ||
|
if (!e.relatedTarget ||
|
||||||
!/area_id/.test(e.target.id) && ($(e.target).parent().find(e.relatedTarget).length<1 || e.target.localName == 'textarea') /* Check if focus in combobox goes from input to it's menu button or menu items, or from comment editing area to Ok/Cancel button */
|
!/area_id/.test(e.target.id)
|
||||||
|
&& !(e.target.localName == 'input' && $(e.target).parent().find(e.relatedTarget).length>0) /* Check if focus in combobox goes from input to it's menu button or menu items, or from comment editing area to Ok/Cancel button */
|
||||||
|
&& !(e.target.localName == 'textarea' && $(e.target).closest('.asc-window').find(e.relatedTarget).length>0) /* Check if focus in comment goes from textarea to it's email menu */
|
||||||
&& (e.relatedTarget.localName != 'input' || !/form-control/.test(e.relatedTarget.className)) /* Check if focus goes to text input with class "form-control" */
|
&& (e.relatedTarget.localName != 'input' || !/form-control/.test(e.relatedTarget.className)) /* Check if focus goes to text input with class "form-control" */
|
||||||
&& (e.relatedTarget.localName != 'textarea' || /area_id/.test(e.relatedTarget.id))) /* Check if focus goes to textarea, but not to "area_id" */ {
|
&& (e.relatedTarget.localName != 'textarea' || /area_id/.test(e.relatedTarget.id))) /* Check if focus goes to textarea, but not to "area_id" */ {
|
||||||
if (Common.Utils.isIE && e.originalEvent && e.originalEvent.target && /area_id/.test(e.originalEvent.target.id) && (e.originalEvent.target === e.originalEvent.srcElement))
|
if (Common.Utils.isIE && e.originalEvent && e.originalEvent.target && /area_id/.test(e.originalEvent.target.id) && (e.originalEvent.target === e.originalEvent.srcElement))
|
||||||
|
@ -316,7 +317,7 @@ define([
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
me.defaultTitleText = me.defaultTitleText || '{{APP_TITLE_TEXT}}';
|
me.defaultTitleText = '{{APP_TITLE_TEXT}}';
|
||||||
me.warnNoLicense = me.warnNoLicense.replace('%1', '{{COMPANY_NAME}}');
|
me.warnNoLicense = me.warnNoLicense.replace('%1', '{{COMPANY_NAME}}');
|
||||||
me.warnNoLicenseUsers = me.warnNoLicenseUsers.replace('%1', '{{COMPANY_NAME}}');
|
me.warnNoLicenseUsers = me.warnNoLicenseUsers.replace('%1', '{{COMPANY_NAME}}');
|
||||||
me.textNoLicenseTitle = me.textNoLicenseTitle.replace('%1', '{{COMPANY_NAME}}');
|
me.textNoLicenseTitle = me.textNoLicenseTitle.replace('%1', '{{COMPANY_NAME}}');
|
||||||
|
@ -328,7 +329,7 @@ define([
|
||||||
this.editorConfig.user =
|
this.editorConfig.user =
|
||||||
this.appOptions.user = Common.Utils.fillUserInfo(this.editorConfig.user, this.editorConfig.lang, this.textAnonymous);
|
this.appOptions.user = Common.Utils.fillUserInfo(this.editorConfig.user, this.editorConfig.lang, this.textAnonymous);
|
||||||
this.appOptions.isDesktopApp = this.editorConfig.targetApp == 'desktop';
|
this.appOptions.isDesktopApp = this.editorConfig.targetApp == 'desktop';
|
||||||
this.appOptions.canCreateNew = !_.isEmpty(this.editorConfig.createUrl) && !this.appOptions.isDesktopApp;
|
this.appOptions.canCreateNew = !_.isEmpty(this.editorConfig.createUrl);
|
||||||
this.appOptions.canOpenRecent = this.editorConfig.recent !== undefined && !this.appOptions.isDesktopApp;
|
this.appOptions.canOpenRecent = this.editorConfig.recent !== undefined && !this.appOptions.isDesktopApp;
|
||||||
this.appOptions.templates = this.editorConfig.templates;
|
this.appOptions.templates = this.editorConfig.templates;
|
||||||
this.appOptions.recent = this.editorConfig.recent;
|
this.appOptions.recent = this.editorConfig.recent;
|
||||||
|
@ -345,8 +346,12 @@ define([
|
||||||
&& (typeof (this.editorConfig.customization.goback) == 'object') && !_.isEmpty(this.editorConfig.customization.goback.url);
|
&& (typeof (this.editorConfig.customization.goback) == 'object') && !_.isEmpty(this.editorConfig.customization.goback.url);
|
||||||
this.appOptions.canBack = this.appOptions.canBackToFolder === true;
|
this.appOptions.canBack = this.appOptions.canBackToFolder === true;
|
||||||
this.appOptions.canPlugins = false;
|
this.appOptions.canPlugins = false;
|
||||||
this.plugins = this.editorConfig.plugins;
|
|
||||||
this.appOptions.canMakeActionLink = this.editorConfig.canMakeActionLink;
|
this.appOptions.canMakeActionLink = this.editorConfig.canMakeActionLink;
|
||||||
|
this.appOptions.canRequestUsers = this.editorConfig.canRequestUsers;
|
||||||
|
this.appOptions.canRequestSendNotify = this.editorConfig.canRequestSendNotify;
|
||||||
|
this.appOptions.canRequestSaveAs = this.editorConfig.canRequestSaveAs;
|
||||||
|
this.appOptions.canRequestInsertImage = this.editorConfig.canRequestInsertImage;
|
||||||
|
this.appOptions.canRequestMailMergeRecipients = this.editorConfig.canRequestMailMergeRecipients;
|
||||||
|
|
||||||
appHeader = this.getApplication().getController('Viewport').getView('Common.Views.Header');
|
appHeader = this.getApplication().getController('Viewport').getView('Common.Views.Header');
|
||||||
appHeader.setCanBack(this.appOptions.canBackToFolder === true, (this.appOptions.canBackToFolder) ? this.editorConfig.customization.goback.text : '')
|
appHeader.setCanBack(this.appOptions.canBackToFolder === true, (this.appOptions.canBackToFolder) ? this.editorConfig.customization.goback.text : '')
|
||||||
|
@ -389,7 +394,6 @@ define([
|
||||||
docInfo.put_Token(data.doc.token);
|
docInfo.put_Token(data.doc.token);
|
||||||
docInfo.put_Permissions(_permissions);
|
docInfo.put_Permissions(_permissions);
|
||||||
// docInfo.put_Review(this.permissions.review);
|
// docInfo.put_Review(this.permissions.review);
|
||||||
// docInfo.put_OfflineApp(this.editorConfig.nativeApp === true); // used in sdk for testing
|
|
||||||
|
|
||||||
var type = /^(?:(pdf|djvu|xps))$/.exec(data.doc.fileType);
|
var type = /^(?:(pdf|djvu|xps))$/.exec(data.doc.fileType);
|
||||||
if (type && typeof type[1] === 'string') {
|
if (type && typeof type[1] === 'string') {
|
||||||
|
@ -463,7 +467,7 @@ define([
|
||||||
|
|
||||||
if ( !_format || _supported.indexOf(_format) < 0 )
|
if ( !_format || _supported.indexOf(_format) < 0 )
|
||||||
_format = Asc.c_oAscFileType.DOCX;
|
_format = Asc.c_oAscFileType.DOCX;
|
||||||
this.api.asc_DownloadAs(_format, true);
|
this.api.asc_DownloadAs(new Asc.asc_CDownloadOptions(_format, true));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -890,6 +894,9 @@ define([
|
||||||
Common.Utils.InternalSettings.set("de-settings-spellcheck", value);
|
Common.Utils.InternalSettings.set("de-settings-spellcheck", value);
|
||||||
me.api.asc_setSpellCheck(value);
|
me.api.asc_setSpellCheck(value);
|
||||||
|
|
||||||
|
value = Common.localStorage.getBool("de-settings-compatible", false);
|
||||||
|
Common.Utils.InternalSettings.set("de-settings-compatible", value);
|
||||||
|
|
||||||
Common.Utils.InternalSettings.set("de-settings-showsnaplines", me.api.get_ShowSnapLines());
|
Common.Utils.InternalSettings.set("de-settings-showsnaplines", me.api.get_ShowSnapLines());
|
||||||
|
|
||||||
function checkWarns() {
|
function checkWarns() {
|
||||||
|
@ -969,9 +976,6 @@ define([
|
||||||
application.getController('Common.Controllers.ExternalMergeEditor').setApi(this.api).loadConfig({config:this.editorConfig, customization: this.editorConfig.customization});
|
application.getController('Common.Controllers.ExternalMergeEditor').setApi(this.api).loadConfig({config:this.editorConfig, customization: this.editorConfig.customization});
|
||||||
|
|
||||||
pluginsController.setApi(me.api);
|
pluginsController.setApi(me.api);
|
||||||
me.requestPlugins('../../../../plugins.json');
|
|
||||||
me.api.asc_registerCallback('asc_onPluginsInit', _.bind(me.updatePluginsList, me));
|
|
||||||
me.api.asc_registerCallback('asc_onPluginsReset', _.bind(me.resetPluginsList, me));
|
|
||||||
|
|
||||||
documentHolderController.setApi(me.api);
|
documentHolderController.setApi(me.api);
|
||||||
documentHolderController.createDelayedElements();
|
documentHolderController.createDelayedElements();
|
||||||
|
@ -1197,10 +1201,8 @@ define([
|
||||||
appHeader.setBranding(this.editorConfig.customization);
|
appHeader.setBranding(this.editorConfig.customization);
|
||||||
|
|
||||||
this.appOptions.canRename && appHeader.setCanRename(true);
|
this.appOptions.canRename && appHeader.setCanRename(true);
|
||||||
|
|
||||||
this.appOptions.canBrandingExt = params.asc_getCanBranding() && (typeof this.editorConfig.customization == 'object' || this.editorConfig.plugins);
|
this.appOptions.canBrandingExt = params.asc_getCanBranding() && (typeof this.editorConfig.customization == 'object' || this.editorConfig.plugins);
|
||||||
if (this.appOptions.canBrandingExt)
|
this.getApplication().getController('Common.Controllers.Plugins').setMode(this.appOptions);
|
||||||
this.updatePlugins(this.plugins, true);
|
|
||||||
|
|
||||||
if (this.appOptions.canComments)
|
if (this.appOptions.canComments)
|
||||||
Common.NotificationCenter.on('comments:cleardummy', _.bind(this.onClearDummyComment, this));
|
Common.NotificationCenter.on('comments:cleardummy', _.bind(this.onClearDummyComment, this));
|
||||||
|
@ -1682,6 +1684,7 @@ define([
|
||||||
},
|
},
|
||||||
|
|
||||||
hidePreloader: function() {
|
hidePreloader: function() {
|
||||||
|
var promise;
|
||||||
if (!this._state.customizationDone) {
|
if (!this._state.customizationDone) {
|
||||||
this._state.customizationDone = true;
|
this._state.customizationDone = true;
|
||||||
if (this.appOptions.customization) {
|
if (this.appOptions.customization) {
|
||||||
|
@ -1693,14 +1696,17 @@ define([
|
||||||
Common.Utils.applyCustomization(this.appOptions.customization, mapCustomizationElements);
|
Common.Utils.applyCustomization(this.appOptions.customization, mapCustomizationElements);
|
||||||
if (this.appOptions.canBrandingExt) {
|
if (this.appOptions.canBrandingExt) {
|
||||||
Common.Utils.applyCustomization(this.appOptions.customization, mapCustomizationExtElements);
|
Common.Utils.applyCustomization(this.appOptions.customization, mapCustomizationExtElements);
|
||||||
Common.Utils.applyCustomizationPlugins(this.UICustomizePlugins);
|
promise = this.getApplication().getController('Common.Controllers.Plugins').applyUICustomization();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Common.NotificationCenter.trigger('layout:changed', 'main');
|
Common.NotificationCenter.trigger('layout:changed', 'main');
|
||||||
$('#loading-mask').hide().remove();
|
|
||||||
|
|
||||||
|
(promise || (new Promise(function(resolve, reject) {
|
||||||
|
resolve();
|
||||||
|
}))).then(function() {
|
||||||
|
$('#loading-mask').hide().remove();
|
||||||
Common.Controllers.Desktop.process('preloader:hide');
|
Common.Controllers.Desktop.process('preloader:hide');
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
onDownloadUrl: function(url) {
|
onDownloadUrl: function(url) {
|
||||||
|
@ -1809,7 +1815,6 @@ define([
|
||||||
|
|
||||||
_.each(shapes[index], function(shape, idx){
|
_.each(shapes[index], function(shape, idx){
|
||||||
store.add({
|
store.add({
|
||||||
imageUrl : shape.Image,
|
|
||||||
data : {shapeType: shape.Type},
|
data : {shapeType: shape.Type},
|
||||||
tip : me['txtShape_' + shape.Type] || (me.textShape + ' ' + (idx+1)),
|
tip : me['txtShape_' + shape.Type] || (me.textShape + ' ' + (idx+1)),
|
||||||
allowSelected : true,
|
allowSelected : true,
|
||||||
|
@ -1877,7 +1882,10 @@ define([
|
||||||
Common.Utils.ThemeColor.setColors(colors, standart_colors);
|
Common.Utils.ThemeColor.setColors(colors, standart_colors);
|
||||||
if (window.styles_loaded) {
|
if (window.styles_loaded) {
|
||||||
this.updateThemeColors();
|
this.updateThemeColors();
|
||||||
this.fillTextArt(this.api.asc_getTextArtPreviews());
|
var me = this;
|
||||||
|
setTimeout(function(){
|
||||||
|
me.fillTextArt(me.api.asc_getTextArtPreviews());
|
||||||
|
}, 1);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -1947,25 +1955,28 @@ define([
|
||||||
this.getApplication().getController('Toolbar').getView().updateMetricUnit();
|
this.getApplication().getController('Toolbar').getView().updateMetricUnit();
|
||||||
},
|
},
|
||||||
|
|
||||||
onAdvancedOptions: function(advOptions, mode) {
|
onAdvancedOptions: function(type, advOptions, mode, formatOptions) {
|
||||||
if (this._state.openDlg) return;
|
if (this._state.openDlg) return;
|
||||||
|
|
||||||
var type = advOptions.asc_getOptionId(),
|
var me = this;
|
||||||
me = this;
|
|
||||||
if (type == Asc.c_oAscAdvancedOptionsID.TXT) {
|
if (type == Asc.c_oAscAdvancedOptionsID.TXT) {
|
||||||
me._state.openDlg = new Common.Views.OpenDialog({
|
me._state.openDlg = new Common.Views.OpenDialog({
|
||||||
title: Common.Views.OpenDialog.prototype.txtTitle.replace('%1', 'TXT'),
|
title: Common.Views.OpenDialog.prototype.txtTitle.replace('%1', 'TXT'),
|
||||||
closable: (mode==2), // if save settings
|
closable: (mode==2), // if save settings
|
||||||
type: Common.Utils.importTextType.TXT,
|
type: Common.Utils.importTextType.TXT,
|
||||||
preview: advOptions.asc_getOptions().asc_getData(),
|
preview: advOptions.asc_getData(),
|
||||||
codepages: advOptions.asc_getOptions().asc_getCodePages(),
|
codepages: advOptions.asc_getCodePages(),
|
||||||
settings: advOptions.asc_getOptions().asc_getRecommendedSettings(),
|
settings: advOptions.asc_getRecommendedSettings(),
|
||||||
api: me.api,
|
api: me.api,
|
||||||
handler: function (result, encoding) {
|
handler: function (result, encoding) {
|
||||||
me.isShowOpenDialog = false;
|
me.isShowOpenDialog = false;
|
||||||
if (result == 'ok') {
|
if (result == 'ok') {
|
||||||
if (me && me.api) {
|
if (me && me.api) {
|
||||||
me.api.asc_setAdvancedOptions(type, new Asc.asc_CTXTAdvancedOptions(encoding));
|
if (mode==2) {
|
||||||
|
formatOptions && formatOptions.asc_setAdvancedOptions(new Asc.asc_CTextOptions(encoding));
|
||||||
|
me.api.asc_DownloadAs(formatOptions);
|
||||||
|
} else
|
||||||
|
me.api.asc_setAdvancedOptions(type, new Asc.asc_CTextOptions(encoding));
|
||||||
me.loadMask && me.loadMask.show();
|
me.loadMask && me.loadMask.show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2004,7 +2015,7 @@ define([
|
||||||
},
|
},
|
||||||
|
|
||||||
onTryUndoInFastCollaborative: function() {
|
onTryUndoInFastCollaborative: function() {
|
||||||
if (!window.localStorage.getBool("de-hide-try-undoredo"))
|
if (!Common.localStorage.getBool("de-hide-try-undoredo"))
|
||||||
Common.UI.info({
|
Common.UI.info({
|
||||||
width: 500,
|
width: 500,
|
||||||
msg: this.textTryUndoRedo,
|
msg: this.textTryUndoRedo,
|
||||||
|
@ -2014,7 +2025,7 @@ define([
|
||||||
customButtonText: this.textStrict,
|
customButtonText: this.textStrict,
|
||||||
dontshow: true,
|
dontshow: true,
|
||||||
callback: _.bind(function(btn, dontshow){
|
callback: _.bind(function(btn, dontshow){
|
||||||
if (dontshow) window.localStorage.setItem("de-hide-try-undoredo", 1);
|
if (dontshow) Common.localStorage.setItem("de-hide-try-undoredo", 1);
|
||||||
if (btn == 'custom') {
|
if (btn == 'custom') {
|
||||||
Common.localStorage.setItem("de-settings-coauthmode", 0);
|
Common.localStorage.setItem("de-settings-coauthmode", 0);
|
||||||
Common.Utils.InternalSettings.set("de-settings-coauthmode", false);
|
Common.Utils.InternalSettings.set("de-settings-coauthmode", false);
|
||||||
|
@ -2072,7 +2083,7 @@ define([
|
||||||
if (!this.appOptions.canPrint || this.isModalShowed) return;
|
if (!this.appOptions.canPrint || this.isModalShowed) return;
|
||||||
|
|
||||||
if (this.api)
|
if (this.api)
|
||||||
this.api.asc_Print(Common.Utils.isChrome || Common.Utils.isSafari || Common.Utils.isOpera); // if isChrome or isSafari or isOpera == true use asc_onPrintUrl event
|
this.api.asc_Print(new Asc.asc_CDownloadOptions(null, Common.Utils.isChrome || Common.Utils.isSafari || Common.Utils.isOpera)); // if isChrome or isSafari or isOpera == true use asc_onPrintUrl event
|
||||||
Common.component.Analytics.trackEvent('Print');
|
Common.component.Analytics.trackEvent('Print');
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -2092,153 +2103,19 @@ define([
|
||||||
this.iframePrint.style.bottom = "0";
|
this.iframePrint.style.bottom = "0";
|
||||||
document.body.appendChild(this.iframePrint);
|
document.body.appendChild(this.iframePrint);
|
||||||
this.iframePrint.onload = function() {
|
this.iframePrint.onload = function() {
|
||||||
|
try {
|
||||||
me.iframePrint.contentWindow.focus();
|
me.iframePrint.contentWindow.focus();
|
||||||
me.iframePrint.contentWindow.print();
|
me.iframePrint.contentWindow.print();
|
||||||
me.iframePrint.contentWindow.blur();
|
me.iframePrint.contentWindow.blur();
|
||||||
window.focus();
|
window.focus();
|
||||||
|
} catch (e) {
|
||||||
|
me.api.asc_DownloadAs(new Asc.asc_CDownloadOptions(Asc.c_oAscFileType.PDF));
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
if (url) this.iframePrint.src = url;
|
if (url) this.iframePrint.src = url;
|
||||||
},
|
},
|
||||||
|
|
||||||
requestPlugins: function(pluginsPath) { // request plugins
|
|
||||||
if (!pluginsPath) return;
|
|
||||||
|
|
||||||
var config_plugins = (this.plugins && this.plugins.pluginsData && this.plugins.pluginsData.length>0) ? this.updatePlugins(this.plugins, false) : null, // return plugins object
|
|
||||||
request_plugins = this.updatePlugins( Common.Utils.getConfigJson(pluginsPath), false );
|
|
||||||
|
|
||||||
this.updatePluginsList({
|
|
||||||
autostart: (config_plugins&&config_plugins.autostart ? config_plugins.autostart : []).concat(request_plugins&&request_plugins.autostart ? request_plugins.autostart : []),
|
|
||||||
pluginsData: (config_plugins ? config_plugins.pluginsData : []).concat(request_plugins ? request_plugins.pluginsData : [])
|
|
||||||
}, false);
|
|
||||||
},
|
|
||||||
|
|
||||||
updatePlugins: function(plugins, uiCustomize) { // plugins from config
|
|
||||||
if (!plugins) return;
|
|
||||||
|
|
||||||
var pluginsData = (uiCustomize) ? plugins.UIpluginsData : plugins.pluginsData;
|
|
||||||
if (!pluginsData || pluginsData.length<1) return;
|
|
||||||
|
|
||||||
var arr = [];
|
|
||||||
pluginsData.forEach(function(item){
|
|
||||||
var value = Common.Utils.getConfigJson(item);
|
|
||||||
if (value) {
|
|
||||||
value.baseUrl = item.substring(0, item.lastIndexOf("config.json"));
|
|
||||||
arr.push(value);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
if (arr.length>0) {
|
|
||||||
var autostart = plugins.autostart || plugins.autoStartGuid;
|
|
||||||
if (typeof (autostart) == 'string')
|
|
||||||
autostart = [autostart];
|
|
||||||
plugins.autoStartGuid && console.warn("Obsolete: The autoStartGuid parameter is deprecated. Please check the documentation for new plugin connection configuration.");
|
|
||||||
|
|
||||||
if (uiCustomize)
|
|
||||||
this.updatePluginsList({
|
|
||||||
autostart: autostart,
|
|
||||||
pluginsData: arr
|
|
||||||
}, !!uiCustomize);
|
|
||||||
else return {
|
|
||||||
autostart: autostart,
|
|
||||||
pluginsData: arr
|
|
||||||
};
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
updatePluginsList: function(plugins, uiCustomize) {
|
|
||||||
var pluginStore = this.getApplication().getCollection('Common.Collections.Plugins'),
|
|
||||||
isEdit = this.appOptions.isEdit;
|
|
||||||
if (plugins) {
|
|
||||||
var arr = [], arrUI = [],
|
|
||||||
lang = this.appOptions.lang.split(/[\-\_]/)[0];
|
|
||||||
plugins.pluginsData.forEach(function(item){
|
|
||||||
if (_.find(arr, function(arritem) {
|
|
||||||
return (arritem.get('baseUrl') == item.baseUrl || arritem.get('guid') == item.guid);
|
|
||||||
}) || pluginStore.findWhere({baseUrl: item.baseUrl}) || pluginStore.findWhere({guid: item.guid}))
|
|
||||||
return;
|
|
||||||
|
|
||||||
var variationsArr = [],
|
|
||||||
pluginVisible = false;
|
|
||||||
item.variations.forEach(function(itemVar){
|
|
||||||
var visible = (isEdit || itemVar.isViewer && (itemVar.isDisplayedInViewer!==false)) && _.contains(itemVar.EditorsSupport, 'word') && !itemVar.isSystem;
|
|
||||||
if ( visible ) pluginVisible = true;
|
|
||||||
|
|
||||||
if (item.isUICustomizer ) {
|
|
||||||
visible && arrUI.push(item.baseUrl + itemVar.url);
|
|
||||||
} else {
|
|
||||||
var model = new Common.Models.PluginVariation(itemVar);
|
|
||||||
var description = itemVar.description;
|
|
||||||
if (typeof itemVar.descriptionLocale == 'object')
|
|
||||||
description = itemVar.descriptionLocale[lang] || itemVar.descriptionLocale['en'] || description || '';
|
|
||||||
|
|
||||||
_.each(itemVar.buttons, function(b, index){
|
|
||||||
if (typeof b.textLocale == 'object')
|
|
||||||
b.text = b.textLocale[lang] || b.textLocale['en'] || b.text || '';
|
|
||||||
b.visible = (isEdit || b.isViewer !== false);
|
|
||||||
});
|
|
||||||
|
|
||||||
model.set({
|
|
||||||
description: description,
|
|
||||||
index: variationsArr.length,
|
|
||||||
url: itemVar.url,
|
|
||||||
icons: itemVar.icons,
|
|
||||||
buttons: itemVar.buttons,
|
|
||||||
visible: visible
|
|
||||||
});
|
|
||||||
|
|
||||||
variationsArr.push(model);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
if (variationsArr.length>0 && !item.isUICustomizer) {
|
|
||||||
var name = item.name;
|
|
||||||
if (typeof item.nameLocale == 'object')
|
|
||||||
name = item.nameLocale[lang] || item.nameLocale['en'] || name || '';
|
|
||||||
|
|
||||||
arr.push(new Common.Models.Plugin({
|
|
||||||
name : name,
|
|
||||||
guid: item.guid,
|
|
||||||
baseUrl : item.baseUrl,
|
|
||||||
variations: variationsArr,
|
|
||||||
currentVariation: 0,
|
|
||||||
visible: pluginVisible,
|
|
||||||
groupName: (item.group) ? item.group.name : '',
|
|
||||||
groupRank: (item.group) ? item.group.rank : 0
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
if ( uiCustomize!==false ) // from ui customizer in editor config or desktop event
|
|
||||||
this.UICustomizePlugins = arrUI;
|
|
||||||
|
|
||||||
if ( !uiCustomize && pluginStore) {
|
|
||||||
arr = pluginStore.models.concat(arr);
|
|
||||||
arr.sort(function(a, b){
|
|
||||||
var rank_a = a.get('groupRank'),
|
|
||||||
rank_b = b.get('groupRank');
|
|
||||||
if (rank_a < rank_b)
|
|
||||||
return (rank_a==0) ? 1 : -1;
|
|
||||||
if (rank_a > rank_b)
|
|
||||||
return (rank_b==0) ? -1 : 1;
|
|
||||||
return 0;
|
|
||||||
});
|
|
||||||
pluginStore.reset(arr);
|
|
||||||
this.appOptions.canPlugins = !pluginStore.isEmpty();
|
|
||||||
}
|
|
||||||
} else if (!uiCustomize){
|
|
||||||
this.appOptions.canPlugins = false;
|
|
||||||
}
|
|
||||||
if (!uiCustomize) this.getApplication().getController('LeftMenu').enablePlugins();
|
|
||||||
if (this.appOptions.canPlugins) {
|
|
||||||
this.getApplication().getController('Common.Controllers.Plugins').setMode(this.appOptions).runAutoStartPlugins(plugins.autostart);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
resetPluginsList: function() {
|
|
||||||
this.getApplication().getCollection('Common.Collections.Plugins').reset();
|
|
||||||
},
|
|
||||||
|
|
||||||
onClearDummyComment: function() {
|
onClearDummyComment: function() {
|
||||||
this.dontCloseDummyComment = false;
|
this.dontCloseDummyComment = false;
|
||||||
},
|
},
|
||||||
|
@ -2247,6 +2124,17 @@ define([
|
||||||
this.beforeShowDummyComment = true;
|
this.beforeShowDummyComment = true;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
DisableMailMerge: function() {
|
||||||
|
this.appOptions.mergeFolderUrl = "";
|
||||||
|
var toolbarController = this.getApplication().getController('Toolbar');
|
||||||
|
toolbarController && toolbarController.DisableMailMerge();
|
||||||
|
},
|
||||||
|
|
||||||
|
DisableVersionHistory: function() {
|
||||||
|
this.editorConfig.canUseHistory = false;
|
||||||
|
this.appOptions.canUseHistory = false;
|
||||||
|
},
|
||||||
|
|
||||||
leavePageText: 'You have unsaved changes in this document. Click \'Stay on this Page\' then \'Save\' to save them. Click \'Leave this Page\' to discard all the unsaved changes.',
|
leavePageText: 'You have unsaved changes in this document. Click \'Stay on this Page\' then \'Save\' to save them. Click \'Leave this Page\' to discard all the unsaved changes.',
|
||||||
criticalErrorTitle: 'Error',
|
criticalErrorTitle: 'Error',
|
||||||
notcriticalErrorTitle: 'Warning',
|
notcriticalErrorTitle: 'Warning',
|
||||||
|
|
|
@ -99,7 +99,7 @@ define([
|
||||||
$('.statusbar #label-zoom').css('min-width', 80);
|
$('.statusbar #label-zoom').css('min-width', 80);
|
||||||
|
|
||||||
if ( cfg.isEdit ) {
|
if ( cfg.isEdit ) {
|
||||||
var review = DE.getController('Common.Controllers.ReviewChanges').getView();
|
var review = me.getApplication().getController('Common.Controllers.ReviewChanges').getView();
|
||||||
if (cfg.canReview) {
|
if (cfg.canReview) {
|
||||||
me.btnTurnReview = review.getButton('turn', 'statusbar');
|
me.btnTurnReview = review.getButton('turn', 'statusbar');
|
||||||
me.btnTurnReview.render(me.statusbar.$layout.find('#btn-doc-review'));
|
me.btnTurnReview.render(me.statusbar.$layout.find('#btn-doc-review'));
|
||||||
|
|
|
@ -55,7 +55,8 @@ define([
|
||||||
'documenteditor/main/app/view/PageSizeDialog',
|
'documenteditor/main/app/view/PageSizeDialog',
|
||||||
'documenteditor/main/app/controller/PageLayout',
|
'documenteditor/main/app/controller/PageLayout',
|
||||||
'documenteditor/main/app/view/CustomColumnsDialog',
|
'documenteditor/main/app/view/CustomColumnsDialog',
|
||||||
'documenteditor/main/app/view/ControlSettingsDialog'
|
'documenteditor/main/app/view/ControlSettingsDialog',
|
||||||
|
'documenteditor/main/app/view/WatermarkSettingsDialog'
|
||||||
], function () {
|
], function () {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
@ -151,7 +152,7 @@ define([
|
||||||
if ( !_format || _supported.indexOf(_format) < 0 )
|
if ( !_format || _supported.indexOf(_format) < 0 )
|
||||||
_format = Asc.c_oAscFileType.PDF;
|
_format = Asc.c_oAscFileType.PDF;
|
||||||
|
|
||||||
_main.api.asc_DownloadAs(_format);
|
_main.api.asc_DownloadAs(new Asc.asc_CDownloadOptions(_format));
|
||||||
},
|
},
|
||||||
'go:editor': function() {
|
'go:editor': function() {
|
||||||
Common.Gateway.requestEditRights();
|
Common.Gateway.requestEditRights();
|
||||||
|
@ -304,10 +305,12 @@ define([
|
||||||
toolbar.btnColumns.menu.on('item:click', _.bind(this.onColumnsSelect, this));
|
toolbar.btnColumns.menu.on('item:click', _.bind(this.onColumnsSelect, this));
|
||||||
toolbar.btnPageOrient.menu.on('item:click', _.bind(this.onPageOrientSelect, this));
|
toolbar.btnPageOrient.menu.on('item:click', _.bind(this.onPageOrientSelect, this));
|
||||||
toolbar.btnPageMargins.menu.on('item:click', _.bind(this.onPageMarginsSelect, this));
|
toolbar.btnPageMargins.menu.on('item:click', _.bind(this.onPageMarginsSelect, this));
|
||||||
|
toolbar.btnWatermark.menu.on('item:click', _.bind(this.onWatermarkSelect, this));
|
||||||
toolbar.btnClearStyle.on('click', _.bind(this.onClearStyleClick, this));
|
toolbar.btnClearStyle.on('click', _.bind(this.onClearStyleClick, this));
|
||||||
toolbar.btnCopyStyle.on('toggle', _.bind(this.onCopyStyleToggle, this));
|
toolbar.btnCopyStyle.on('toggle', _.bind(this.onCopyStyleToggle, this));
|
||||||
toolbar.mnuPageSize.on('item:click', _.bind(this.onPageSizeClick, this));
|
toolbar.mnuPageSize.on('item:click', _.bind(this.onPageSizeClick, this));
|
||||||
toolbar.mnuColorSchema.on('item:click', _.bind(this.onColorSchemaClick, this));
|
toolbar.mnuColorSchema.on('item:click', _.bind(this.onColorSchemaClick, this));
|
||||||
|
toolbar.mnuColorSchema.on('show:after', _.bind(this.onColorSchemaShow, this));
|
||||||
toolbar.btnMailRecepients.on('click', _.bind(this.onSelectRecepientsClick, this));
|
toolbar.btnMailRecepients.on('click', _.bind(this.onSelectRecepientsClick, this));
|
||||||
toolbar.mnuInsertChartPicker.on('item:click', _.bind(this.onSelectChart, this));
|
toolbar.mnuInsertChartPicker.on('item:click', _.bind(this.onSelectChart, this));
|
||||||
toolbar.mnuPageNumberPosPicker.on('item:click', _.bind(this.onInsertPageNumberClick, this));
|
toolbar.mnuPageNumberPosPicker.on('item:click', _.bind(this.onInsertPageNumberClick, this));
|
||||||
|
@ -321,6 +324,8 @@ define([
|
||||||
toolbar.btnInsertEquation.on('click', _.bind(this.onInsertEquationClick, this));
|
toolbar.btnInsertEquation.on('click', _.bind(this.onInsertEquationClick, this));
|
||||||
toolbar.mnuNoControlsColor.on('click', _.bind(this.onNoControlsColor, this));
|
toolbar.mnuNoControlsColor.on('click', _.bind(this.onNoControlsColor, this));
|
||||||
toolbar.mnuControlsColorPicker.on('select', _.bind(this.onSelectControlsColor, this));
|
toolbar.mnuControlsColorPicker.on('select', _.bind(this.onSelectControlsColor, this));
|
||||||
|
Common.Gateway.on('insertimage', _.bind(this.insertImage, this));
|
||||||
|
Common.Gateway.on('setmailmergerecipients', _.bind(this.setMailMergeRecipients, this));
|
||||||
$('#id-toolbar-menu-new-control-color').on('click', _.bind(this.onNewControlsColor, this));
|
$('#id-toolbar-menu-new-control-color').on('click', _.bind(this.onNewControlsColor, this));
|
||||||
|
|
||||||
$('#id-save-style-plus, #id-save-style-link', toolbar.$el).on('click', this.onMenuSaveStyle.bind(this));
|
$('#id-save-style-plus, #id-save-style-link', toolbar.$el).on('click', this.onMenuSaveStyle.bind(this));
|
||||||
|
@ -371,6 +376,7 @@ define([
|
||||||
this.api.asc_registerCallback('asc_onContextMenu', _.bind(this.onContextMenu, this));
|
this.api.asc_registerCallback('asc_onContextMenu', _.bind(this.onContextMenu, this));
|
||||||
this.api.asc_registerCallback('asc_onShowParaMarks', _.bind(this.onShowParaMarks, this));
|
this.api.asc_registerCallback('asc_onShowParaMarks', _.bind(this.onShowParaMarks, this));
|
||||||
this.api.asc_registerCallback('asc_onChangeSdtGlobalSettings', _.bind(this.onChangeSdtGlobalSettings, this));
|
this.api.asc_registerCallback('asc_onChangeSdtGlobalSettings', _.bind(this.onChangeSdtGlobalSettings, this));
|
||||||
|
Common.NotificationCenter.on('fonts:change', _.bind(this.onApiChangeFont, this));
|
||||||
} else if (this.mode.isRestrictedEdit) {
|
} else if (this.mode.isRestrictedEdit) {
|
||||||
this.api.asc_registerCallback('asc_onFocusObject', _.bind(this.onApiFocusObjectRestrictedEdit, this));
|
this.api.asc_registerCallback('asc_onFocusObject', _.bind(this.onApiFocusObjectRestrictedEdit, this));
|
||||||
this.api.asc_registerCallback('asc_onCoAuthoringDisconnect', _.bind(this.onApiCoAuthoringDisconnect, this));
|
this.api.asc_registerCallback('asc_onCoAuthoringDisconnect', _.bind(this.onApiCoAuthoringDisconnect, this));
|
||||||
|
@ -400,6 +406,10 @@ define([
|
||||||
this.toolbar.collapse();
|
this.toolbar.collapse();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
onApiChangeFont: function(font) {
|
||||||
|
!this.getApplication().getController('Main').isModalShowed && this.toolbar.cmbFontName.onApiChangeFont(font);
|
||||||
|
},
|
||||||
|
|
||||||
onApiFontSize: function(size) {
|
onApiFontSize: function(size) {
|
||||||
if (this._state.fontsize !== size) {
|
if (this._state.fontsize !== size) {
|
||||||
this.toolbar.cmbFontSize.setValue(size);
|
this.toolbar.cmbFontSize.setValue(size);
|
||||||
|
@ -818,6 +828,8 @@ define([
|
||||||
if ( this.btnsComment && this.btnsComment.length > 0 )
|
if ( this.btnsComment && this.btnsComment.length > 0 )
|
||||||
this.btnsComment.setDisabled(need_disable);
|
this.btnsComment.setDisabled(need_disable);
|
||||||
|
|
||||||
|
toolbar.btnWatermark.setDisabled(header_locked);
|
||||||
|
|
||||||
this._state.in_equation = in_equation;
|
this._state.in_equation = in_equation;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -957,7 +969,7 @@ define([
|
||||||
|
|
||||||
onPrint: function(e) {
|
onPrint: function(e) {
|
||||||
if (this.api)
|
if (this.api)
|
||||||
this.api.asc_Print(Common.Utils.isChrome || Common.Utils.isSafari || Common.Utils.isOpera); // if isChrome or isSafari or isOpera == true use asc_onPrintUrl event
|
this.api.asc_Print(new Asc.asc_CDownloadOptions(null, Common.Utils.isChrome || Common.Utils.isSafari || Common.Utils.isOpera)); // if isChrome or isSafari or isOpera == true use asc_onPrintUrl event
|
||||||
|
|
||||||
Common.NotificationCenter.trigger('edit:complete', this.toolbar);
|
Common.NotificationCenter.trigger('edit:complete', this.toolbar);
|
||||||
|
|
||||||
|
@ -1418,14 +1430,24 @@ define([
|
||||||
}
|
}
|
||||||
})).show();
|
})).show();
|
||||||
} else if (item.value === 'storage') {
|
} else if (item.value === 'storage') {
|
||||||
|
if (this.toolbar.mode.canRequestInsertImage) {
|
||||||
|
Common.Gateway.requestInsertImage();
|
||||||
|
} else {
|
||||||
(new Common.Views.SelectFileDlg({
|
(new Common.Views.SelectFileDlg({
|
||||||
fileChoiceUrl: this.toolbar.mode.fileChoiceUrl.replace("{fileExt}", "").replace("{documentType}", "ImagesOnly")
|
fileChoiceUrl: this.toolbar.mode.fileChoiceUrl.replace("{fileExt}", "").replace("{documentType}", "ImagesOnly")
|
||||||
})).on('selectfile', function(obj, file){
|
})).on('selectfile', function(obj, file){
|
||||||
me.toolbar.fireEvent('insertimage', me.toolbar);
|
me.insertImage(file);
|
||||||
me.api.AddImageUrl(file.url, undefined, true);// for loading from storage
|
|
||||||
Common.component.Analytics.trackEvent('ToolBar', 'Image');
|
|
||||||
}).show();
|
}).show();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
insertImage: function(data) {
|
||||||
|
if (data && data.url) {
|
||||||
|
this.toolbar.fireEvent('insertimage', this.toolbar);
|
||||||
|
this.api.AddImageUrl(data.url, undefined, data.token);// for loading from storage
|
||||||
|
Common.component.Analytics.trackEvent('ToolBar', 'Image');
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
onBtnInsertTextClick: function(btn, e) {
|
onBtnInsertTextClick: function(btn, e) {
|
||||||
|
@ -1570,6 +1592,14 @@ define([
|
||||||
Common.NotificationCenter.trigger('edit:complete', this.toolbar);
|
Common.NotificationCenter.trigger('edit:complete', this.toolbar);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
onColorSchemaShow: function(menu) {
|
||||||
|
if (this.api) {
|
||||||
|
var value = this.api.asc_GetCurrentColorSchemeName();
|
||||||
|
var item = _.find(menu.items, function(item) { return item.value == value; });
|
||||||
|
(item) ? item.setChecked(true) : menu.clearAll();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
onDropCapSelect: function(menu, item) {
|
onDropCapSelect: function(menu, item) {
|
||||||
if (_.isUndefined(item.value))
|
if (_.isUndefined(item.value))
|
||||||
return;
|
return;
|
||||||
|
@ -1900,6 +1930,41 @@ define([
|
||||||
Common.component.Analytics.trackEvent('ToolBar', 'Blank Page');
|
Common.component.Analytics.trackEvent('ToolBar', 'Blank Page');
|
||||||
},
|
},
|
||||||
|
|
||||||
|
onWatermarkSelect: function(menu, item) {
|
||||||
|
if (this.api) {
|
||||||
|
if (item.value == 'remove')
|
||||||
|
this.api.asc_WatermarkRemove();
|
||||||
|
else {
|
||||||
|
var me = this;
|
||||||
|
if (_.isUndefined(me.fontstore)) {
|
||||||
|
me.fontstore = new Common.Collections.Fonts();
|
||||||
|
var fonts = me.toolbar.cmbFontName.store.toJSON();
|
||||||
|
var arr = [];
|
||||||
|
_.each(fonts, function(font, index){
|
||||||
|
if (!font.cloneid) {
|
||||||
|
arr.push(_.clone(font));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
me.fontstore.add(arr);
|
||||||
|
}
|
||||||
|
|
||||||
|
(new DE.Views.WatermarkSettingsDialog({
|
||||||
|
props: me.api.asc_GetWatermarkProps(),
|
||||||
|
api: me.api,
|
||||||
|
fontStore: me.fontstore,
|
||||||
|
handler: function(result, value) {
|
||||||
|
if (result == 'ok') {
|
||||||
|
me.api.asc_SetWatermarkProps(value);
|
||||||
|
}
|
||||||
|
Common.NotificationCenter.trigger('edit:complete', me.toolbar);
|
||||||
|
}
|
||||||
|
})).show();
|
||||||
|
}
|
||||||
|
Common.NotificationCenter.trigger('edit:complete', this.toolbar);
|
||||||
|
Common.component.Analytics.trackEvent('ToolBar', 'Edit ' + item.value);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
onListStyleSelect: function(combo, record) {
|
onListStyleSelect: function(combo, record) {
|
||||||
this._state.prstyle = undefined;
|
this._state.prstyle = undefined;
|
||||||
if (this.api)
|
if (this.api)
|
||||||
|
@ -2281,7 +2346,7 @@ define([
|
||||||
store: shapeGroup.get('groupStore'),
|
store: shapeGroup.get('groupStore'),
|
||||||
parentMenu: menuItem.menu,
|
parentMenu: menuItem.menu,
|
||||||
showLast: false,
|
showLast: false,
|
||||||
itemTemplate: _.template('<div class="item-shape"><img src="<%= imageUrl %>" id="<%= id %>"></div>')
|
itemTemplate: _.template('<div class="item-shape" id="<%= id %>"><svg width="20" height="20" class=\"icon\"><use xlink:href=\"#svg-icon-<%= data.shapeType %>\"></use></svg></div>')
|
||||||
});
|
});
|
||||||
|
|
||||||
shapePicker.on('item:click', function(picker, item, record, e) {
|
shapePicker.on('item:click', function(picker, item, record, e) {
|
||||||
|
@ -2550,7 +2615,7 @@ define([
|
||||||
this.toolbar.btnRedo.setDisabled(this._state.can_redo!==true);
|
this.toolbar.btnRedo.setDisabled(this._state.can_redo!==true);
|
||||||
this.toolbar.btnCopy.setDisabled(this._state.can_copycut!==true);
|
this.toolbar.btnCopy.setDisabled(this._state.can_copycut!==true);
|
||||||
this.toolbar.btnPrint.setDisabled(!this.toolbar.mode.canPrint);
|
this.toolbar.btnPrint.setDisabled(!this.toolbar.mode.canPrint);
|
||||||
if (this.toolbar.mode.fileChoiceUrl)
|
if (!this._state.mmdisable && (this.toolbar.mode.fileChoiceUrl || this.toolbar.mode.canRequestMailMergeRecipients))
|
||||||
this.toolbar.btnMailRecepients.setDisabled(false);
|
this.toolbar.btnMailRecepients.setDisabled(false);
|
||||||
this._state.activated = true;
|
this._state.activated = true;
|
||||||
|
|
||||||
|
@ -2558,6 +2623,11 @@ define([
|
||||||
this.onApiPageSize(props.get_W(), props.get_H());
|
this.onApiPageSize(props.get_W(), props.get_H());
|
||||||
},
|
},
|
||||||
|
|
||||||
|
DisableMailMerge: function() {
|
||||||
|
this._state.mmdisable = true;
|
||||||
|
this.toolbar && this.toolbar.btnMailRecepients && this.toolbar.btnMailRecepients.setDisabled(true);
|
||||||
|
},
|
||||||
|
|
||||||
updateThemeColors: function() {
|
updateThemeColors: function() {
|
||||||
var updateColors = function(picker, defaultColorIndex) {
|
var updateColors = function(picker, defaultColorIndex) {
|
||||||
if (picker) {
|
if (picker) {
|
||||||
|
@ -2616,17 +2686,17 @@ define([
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
listStyles.menuPicker.store.reset([]); // remove all
|
var arr = [];
|
||||||
|
|
||||||
var mainController = this.getApplication().getController('Main');
|
var mainController = this.getApplication().getController('Main');
|
||||||
_.each(styles.get_MergedStyles(), function(style){
|
_.each(styles.get_MergedStyles(), function(style){
|
||||||
listStyles.menuPicker.store.add({
|
arr.push({
|
||||||
imageUrl: style.asc_getImage(),
|
imageUrl: style.asc_getImage(),
|
||||||
title : style.get_Name(),
|
title : style.get_Name(),
|
||||||
tip : mainController.translationTable[style.get_Name()] || style.get_Name(),
|
tip : mainController.translationTable[style.get_Name()] || style.get_Name(),
|
||||||
id : Common.UI.getId()
|
id : Common.UI.getId()
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
listStyles.menuPicker.store.reset(arr); // remove all
|
||||||
|
|
||||||
if (listStyles.menuPicker.store.length > 0 && listStyles.rendered){
|
if (listStyles.menuPicker.store.length > 0 && listStyles.rendered){
|
||||||
var styleRec;
|
var styleRec;
|
||||||
|
@ -2748,22 +2818,28 @@ define([
|
||||||
onSelectRecepientsClick: function() {
|
onSelectRecepientsClick: function() {
|
||||||
if (this._mailMergeDlg) return;
|
if (this._mailMergeDlg) return;
|
||||||
|
|
||||||
|
if (this.toolbar.mode.canRequestMailMergeRecipients) {
|
||||||
|
Common.Gateway.requestMailMergeRecipients();
|
||||||
|
} else {
|
||||||
var me = this;
|
var me = this;
|
||||||
me._mailMergeDlg = new Common.Views.SelectFileDlg({
|
me._mailMergeDlg = new Common.Views.SelectFileDlg({
|
||||||
fileChoiceUrl: this.toolbar.mode.fileChoiceUrl.replace("{fileExt}", "xlsx").replace("{documentType}", "")
|
fileChoiceUrl: this.toolbar.mode.fileChoiceUrl.replace("{fileExt}", "xlsx").replace("{documentType}", "")
|
||||||
});
|
});
|
||||||
me._mailMergeDlg.on('selectfile', function(obj, recepients){
|
me._mailMergeDlg.on('selectfile', function(obj, recepients){
|
||||||
me.api.asc_StartMailMerge(recepients);
|
me.setMailMergeRecipients(recepients);
|
||||||
if (!me.mergeEditor)
|
|
||||||
me.mergeEditor = me.getApplication().getController('Common.Controllers.ExternalMergeEditor').getView('Common.Views.ExternalMergeEditor');
|
|
||||||
if (me.mergeEditor)
|
|
||||||
me.mergeEditor.setEditMode(false);
|
|
||||||
|
|
||||||
}).on('close', function(obj){
|
}).on('close', function(obj){
|
||||||
me._mailMergeDlg = undefined;
|
me._mailMergeDlg = undefined;
|
||||||
});
|
});
|
||||||
|
|
||||||
me._mailMergeDlg.show();
|
me._mailMergeDlg.show();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
setMailMergeRecipients: function(recepients) {
|
||||||
|
this.api.asc_StartMailMerge(recepients);
|
||||||
|
if (!this.mergeEditor)
|
||||||
|
this.mergeEditor = this.getApplication().getController('Common.Controllers.ExternalMergeEditor').getView('Common.Views.ExternalMergeEditor');
|
||||||
|
if (this.mergeEditor)
|
||||||
|
this.mergeEditor.setEditMode(false);
|
||||||
},
|
},
|
||||||
|
|
||||||
createDelayedElements: function() {
|
createDelayedElements: function() {
|
||||||
|
@ -2827,22 +2903,7 @@ define([
|
||||||
me.appOptions = config;
|
me.appOptions = config;
|
||||||
|
|
||||||
if ( config.canCoAuthoring && config.canComments ) {
|
if ( config.canCoAuthoring && config.canComments ) {
|
||||||
this.btnsComment = createButtonSet();
|
this.btnsComment = Common.Utils.injectButtons(this.toolbar.$el.find('.slot-comment'), 'tlbtn-addcomment-', 'btn-menu-comments', this.toolbar.capBtnComment);
|
||||||
var slots = me.toolbar.$el.find('.slot-comment');
|
|
||||||
slots.each(function(index, el) {
|
|
||||||
var _cls = 'btn-toolbar';
|
|
||||||
/x-huge/.test(el.className) && (_cls += ' x-huge icon-top');
|
|
||||||
|
|
||||||
var button = new Common.UI.Button({
|
|
||||||
id: 'tlbtn-addcomment-' + index,
|
|
||||||
cls: _cls,
|
|
||||||
iconCls: 'btn-menu-comments',
|
|
||||||
caption: me.toolbar.capBtnComment
|
|
||||||
}).render( slots.eq(index) );
|
|
||||||
|
|
||||||
me.btnsComment.add(button);
|
|
||||||
});
|
|
||||||
|
|
||||||
if ( this.btnsComment.length ) {
|
if ( this.btnsComment.length ) {
|
||||||
var _comments = DE.getController('Common.Controllers.Comments').getView();
|
var _comments = DE.getController('Common.Controllers.Comments').getView();
|
||||||
this.btnsComment.forEach(function (btn) {
|
this.btnsComment.forEach(function (btn) {
|
||||||
|
|
|
@ -154,6 +154,8 @@ define([
|
||||||
var $filemenu = $('.toolbar-fullview-panel');
|
var $filemenu = $('.toolbar-fullview-panel');
|
||||||
$filemenu.css('top', _intvars.get('toolbar-height-tabs'));
|
$filemenu.css('top', _intvars.get('toolbar-height-tabs'));
|
||||||
|
|
||||||
|
me.viewport.$el.attr('applang', me.appConfig.lang.split(/[\-_]/)[0]);
|
||||||
|
|
||||||
if ( !config.isEdit ||
|
if ( !config.isEdit ||
|
||||||
( !Common.localStorage.itemExists("de-compact-toolbar") &&
|
( !Common.localStorage.itemExists("de-compact-toolbar") &&
|
||||||
config.customization && config.customization.compactToolbar )) {
|
config.customization && config.customization.compactToolbar )) {
|
||||||
|
|
|
@ -1,23 +1,66 @@
|
||||||
<div id="id-adv-paragraph-indents" class="settings-panel active">
|
<div id="id-adv-paragraph-indents" class="settings-panel active">
|
||||||
<div class="inner-content">
|
<div class="inner-content">
|
||||||
<table cols="3" style="width: 100%;">
|
<div>
|
||||||
<tr>
|
<div class="padding-large" style="display: inline-block;">
|
||||||
<td class="padding-large">
|
<label class="input-label"><%= scope.textAlign %></label>
|
||||||
<label class="input-label"><%= scope.strIndentsFirstLine %></label>
|
<div id="paragraphadv-spin-text-alignment"></div>
|
||||||
<div id="paragraphadv-spin-first-line" style="width: 85px;"></div>
|
</div>
|
||||||
</td>
|
<div class="padding-large text-only" style="float: right;">
|
||||||
<td class="padding-large">
|
<label class="input-label"><%= scope.strIndentsOutlinelevel %></label>
|
||||||
|
<div id="paragraphadv-spin-outline-level"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div><label class="header" style="padding-bottom: 4px;"><%= scope.strIndent %></label></div>
|
||||||
|
<div>
|
||||||
|
<div class="padding-large" style="display: inline-block;">
|
||||||
<label class="input-label"><%= scope.strIndentsLeftText %></label>
|
<label class="input-label"><%= scope.strIndentsLeftText %></label>
|
||||||
<div id="paragraphadv-spin-indent-left"></div>
|
<div id="paragraphadv-spin-indent-left"></div>
|
||||||
</td>
|
</div>
|
||||||
<td class="padding-large">
|
<div class="padding-large" style="display: inline-block;">
|
||||||
<label class="input-label"><%= scope.strIndentsRightText %></label>
|
<label class="input-label"><%= scope.strIndentsRightText %></label>
|
||||||
<div id="paragraphadv-spin-indent-right"></div>
|
<div id="paragraphadv-spin-indent-right"></div>
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="separator horizontal padding-large text-only"></div>
|
<div class="padding-large" style="display: inline-block;">
|
||||||
|
<div>
|
||||||
|
<label class="input-label"><%= scope.strIndentsSpecial %></label>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div id="paragraphadv-spin-special" style="display: inline-block;"></div>
|
||||||
|
<div id="paragraphadv-spin-special-by" style="display: inline-block;"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div><label class="header" style="padding-bottom: 4px;"><%= scope.strSpacing %></label></div>
|
||||||
|
<div>
|
||||||
|
<div style="display: inline-block;">
|
||||||
|
<label class="input-label"><%= scope.strIndentsSpacingBefore %></label>
|
||||||
|
<div id="paragraphadv-spin-spacing-before"></div>
|
||||||
|
</div>
|
||||||
|
<div style="display: inline-block;">
|
||||||
|
<label class="input-label"><%= scope.strIndentsSpacingAfter %></label>
|
||||||
|
<div id="paragraphadv-spin-spacing-after"></div>
|
||||||
|
</div>
|
||||||
|
<div style="display: inline-block;">
|
||||||
|
<div>
|
||||||
|
<label class="input-label"><%= scope.strIndentsLineSpacing %></label>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div id="paragraphadv-spin-line-rule" style="display: inline-block;"></div>
|
||||||
|
<div id="paragraphadv-spin-line-height" style="display: inline-block;"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="text-only" style="padding-top: 8px;">
|
||||||
|
<div id="paragraphadv-checkbox-add-interval"></div>
|
||||||
|
</div>
|
||||||
|
<div class="padding-large" style="padding-top: 16px; display: none;">
|
||||||
|
<div style="border: 1px solid #cbcbcb; width: 350px;">
|
||||||
|
<div id="paragraphadv-indent-preview" style="height: 58px; position: relative;"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="id-adv-paragraph-line" class="settings-panel">
|
||||||
<div class="inner-content text-only" style="padding-right: 0px;" >
|
<div class="inner-content text-only" style="padding-right: 0px;" >
|
||||||
<table cols="2" style="width: 100%;">
|
<table cols="2" style="width: 100%;">
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -44,15 +87,15 @@
|
||||||
<div style="width: 100%;" class="padding-small">
|
<div style="width: 100%;" class="padding-small">
|
||||||
<label class="input-label"><%= scope.textBorderWidth %></label>
|
<label class="input-label"><%= scope.textBorderWidth %></label>
|
||||||
<div id="paragraphadv-combo-border-size" style="display: inline-block; vertical-align: middle; width: 93px;"></div>
|
<div id="paragraphadv-combo-border-size" style="display: inline-block; vertical-align: middle; width: 93px;"></div>
|
||||||
<div style="display: inline-block; float:right;vertical-align: middle;">
|
<div style="display: inline-block; vertical-align: middle; padding-left: 20px;">
|
||||||
<label class="input-label" ><%= scope.textBorderColor %></label>
|
<label class="input-label" ><%= scope.textBorderColor %></label>
|
||||||
<div id="paragraphadv-border-color-btn" style="display: inline-block;"></div>
|
<div id="paragraphadv-border-color-btn" style="display: inline-block;"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<label class="input-label padding-small" style="width: 100%;"><%= scope.textBorderDesc %></label>
|
<label class="input-label padding-small" style="width: 100%;"><%= scope.textBorderDesc %></label>
|
||||||
<div style="width: 100%;" class="padding-large">
|
<div style="width: 100%;" class="padding-large">
|
||||||
<div id="id-deparagraphstyler" style="display: inline-block; vertical-align: middle; width: 200px; height: 170px;outline: 1px solid #ccc;"></div>
|
<div id="id-deparagraphstyler" style="display: inline-block; vertical-align: middle; width: 200px; height: 170px;outline: 1px solid #ccc; margin-top: 2px;"></div>
|
||||||
<div style="display: inline-block; float:right;vertical-align: middle; width: 76px; text-align: right; height: 170px; padding-top: 10px;">
|
<div style="display: inline-block; vertical-align: top; width: 76px; text-align: right; height: 170px; padding-top: 0px; margin-left: 9px;">
|
||||||
<div id="paragraphadv-button-border-top" style="display: inline-block;"></div>
|
<div id="paragraphadv-button-border-top" style="display: inline-block;"></div>
|
||||||
<div id="paragraphadv-button-border-inner-hor" style="display: inline-block;"></div>
|
<div id="paragraphadv-button-border-inner-hor" style="display: inline-block;"></div>
|
||||||
<div id="paragraphadv-button-border-bottom" style="display: inline-block;"></div>
|
<div id="paragraphadv-button-border-bottom" style="display: inline-block;"></div>
|
||||||
|
@ -70,76 +113,53 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="id-adv-paragraph-font" class="settings-panel">
|
<div id="id-adv-paragraph-font" class="settings-panel">
|
||||||
<div class="inner-content">
|
<div class="inner-content" style="width: 100%;">
|
||||||
<table cols="2" style="width: 100%;">
|
<div class="padding-small">
|
||||||
<tr>
|
|
||||||
<td colspan=2 class="padding-small">
|
|
||||||
<label class="header"><%= scope.textEffects %></label>
|
<label class="header"><%= scope.textEffects %></label>
|
||||||
</td>
|
</div>
|
||||||
</tr>
|
<div>
|
||||||
<tr>
|
<div class="padding-large" style="display: inline-block;">
|
||||||
<td class="padding-small">
|
<div class="padding-small" id="paragraphadv-checkbox-strike"></div>
|
||||||
<div id="paragraphadv-checkbox-strike"></div>
|
<div class="padding-small" id="paragraphadv-checkbox-double-strike"></div>
|
||||||
</td>
|
|
||||||
<td class="padding-small">
|
|
||||||
<div id="paragraphadv-checkbox-subscript"></div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="padding-small">
|
|
||||||
<div id="paragraphadv-checkbox-double-strike"></div>
|
|
||||||
</td>
|
|
||||||
<td class="padding-small">
|
|
||||||
<div id="paragraphadv-checkbox-small-caps"></div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="padding-large">
|
|
||||||
<div id="paragraphadv-checkbox-superscript"></div>
|
<div id="paragraphadv-checkbox-superscript"></div>
|
||||||
</td>
|
</div>
|
||||||
<td class="padding-large">
|
<div class="padding-large" style="display: inline-block; padding-left: 40px;">
|
||||||
|
<div class="padding-small" id="paragraphadv-checkbox-subscript"></div>
|
||||||
|
<div class="padding-small" id="paragraphadv-checkbox-small-caps"></div>
|
||||||
<div id="paragraphadv-checkbox-all-caps"></div>
|
<div id="paragraphadv-checkbox-all-caps"></div>
|
||||||
</td>
|
</div>
|
||||||
</tr>
|
</div>
|
||||||
<tr>
|
<div class="padding-small">
|
||||||
<td colspan=2 class="padding-small">
|
|
||||||
<label class="header"><%= scope.textCharacterSpacing %></label>
|
<label class="header"><%= scope.textCharacterSpacing %></label>
|
||||||
</td>
|
</div>
|
||||||
</tr>
|
<div class="padding-large">
|
||||||
<tr>
|
<div style="display: inline-block;">
|
||||||
<td class="padding-large" width="50%">
|
|
||||||
<label class="input-label"><%= scope.textSpacing %></label>
|
<label class="input-label"><%= scope.textSpacing %></label>
|
||||||
<div id="paragraphadv-spin-spacing"></div>
|
<div id="paragraphadv-spin-spacing"></div>
|
||||||
</td>
|
</div>
|
||||||
<td class="padding-large text-only" width="50%">
|
<div class="text-only" style="display: inline-block; margin-left: 15px;">
|
||||||
<label class="input-label"><%= scope.textPosition %></label>
|
<label class="input-label"><%= scope.textPosition %></label>
|
||||||
<div id="paragraphadv-spin-position"></div>
|
<div id="paragraphadv-spin-position"></div>
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan=2>
|
|
||||||
<div style="border: 1px solid #cbcbcb;">
|
|
||||||
<div id="paragraphadv-font-img" style="width: 300px; height: 80px; position: relative;"></div>
|
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</div>
|
||||||
</tr>
|
<div style="border: 1px solid #cbcbcb;">
|
||||||
</table>
|
<div id="paragraphadv-font-img" style="width: 300px; height: 80px; position: relative; margin: 0 auto;"></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="id-adv-paragraph-tabs" class="settings-panel">
|
<div id="id-adv-paragraph-tabs" class="settings-panel">
|
||||||
<div class="inner-content">
|
<div class="inner-content">
|
||||||
<div class="padding-small" style="display: inline-block;">
|
<div class="padding-large">
|
||||||
|
<label class="input-label"><%= scope.textDefault %></label>
|
||||||
|
<div id="paraadv-spin-default-tab"></div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="padding-large" style="display: inline-block; margin-right: 9px;">
|
||||||
<label class="input-label"><%= scope.textTabPosition %></label>
|
<label class="input-label"><%= scope.textTabPosition %></label>
|
||||||
<div id="paraadv-spin-tab"></div>
|
<div id="paraadv-spin-tab"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="padding-small" style="display: inline-block; float: right;">
|
<div class="padding-large" style=" display: inline-block; margin-right: 9px;">
|
||||||
<label class="input-label"><%= scope.textDefault %></label>
|
|
||||||
<div id="paraadv-spin-default-tab"></div>
|
|
||||||
</div>
|
|
||||||
<div class="padding-large">
|
|
||||||
<div id="paraadv-list-tabs" style="width:180px; height: 94px;"></div>
|
|
||||||
</div>
|
|
||||||
<div class="padding-large" style="display: inline-block;margin-right: 7px;">
|
|
||||||
<label class="input-label"><%= scope.textAlign %></label>
|
<label class="input-label"><%= scope.textAlign %></label>
|
||||||
<div id="paraadv-cmb-align"></div>
|
<div id="paraadv-cmb-align"></div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -147,37 +167,40 @@
|
||||||
<label class="input-label"><%= scope.textLeader %></label>
|
<label class="input-label"><%= scope.textLeader %></label>
|
||||||
<div id="paraadv-cmb-leader"></div>
|
<div id="paraadv-cmb-leader"></div>
|
||||||
</div>
|
</div>
|
||||||
<div style="margin-bottom: 45px;"></div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<button type="button" class="btn btn-text-default" id="paraadv-button-add-tab" style="width:90px;margin-right: 4px;"><%= scope.textSet %></button>
|
<div colspan=3 class="padding-large">
|
||||||
<button type="button" class="btn btn-text-default" id="paraadv-button-remove-tab" style="width:90px;margin-right: 4px;"><%= scope.textRemove %></button>
|
<div id="paraadv-list-tabs" style="width:348px; height: 110px;"></div>
|
||||||
<button type="button" class="btn btn-text-default" id="paraadv-button-remove-all" style="width:90px;margin-right: 4px;"><%= scope.textRemoveAll %></button>
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<button type="button" class="btn btn-text-default" id="paraadv-button-add-tab" style="width:108px;margin-right: 9px; display: inline-block;"><%= scope.textSet %></button>
|
||||||
|
<button type="button" class="btn btn-text-default" id="paraadv-button-remove-tab" style="width:108px;margin-right: 9px; display: inline-block;"><%= scope.textRemove %></button>
|
||||||
|
<button type="button" class="btn btn-text-default" id="paraadv-button-remove-all" style="width:108px;display: inline-block;"><%= scope.textRemoveAll %></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="id-adv-paragraph-margins" class="settings-panel">
|
<div id="id-adv-paragraph-margins" class="settings-panel">
|
||||||
<div class="inner-content">
|
<div class="inner-content">
|
||||||
<table cols="2" style="width: 100%;">
|
<div>
|
||||||
<tr>
|
<div class="padding-small" style="display: inline-block;">
|
||||||
<td class="padding-small" width="50%">
|
|
||||||
<label class="input-label"><%= scope.textTop %></label>
|
<label class="input-label"><%= scope.textTop %></label>
|
||||||
<div id="paraadv-number-margin-top"></div>
|
<div id="paraadv-number-margin-top"></div>
|
||||||
</td>
|
</div>
|
||||||
<td class="padding-small" width="50%">
|
<div class="padding-small" style="display: inline-block; padding-left: 15px;">
|
||||||
<label class="input-label"><%= scope.textLeft %></label>
|
<label class="input-label"><%= scope.textLeft %></label>
|
||||||
<div id="paraadv-number-margin-left"></div>
|
<div id="paraadv-number-margin-left"></div>
|
||||||
</td>
|
</div>
|
||||||
</tr>
|
</div>
|
||||||
<tr>
|
<div>
|
||||||
<td class="padding-small" width="50%">
|
<div class="padding-small" style="display: inline-block;">
|
||||||
<label class="input-label"><%= scope.textBottom %></label>
|
<label class="input-label"><%= scope.textBottom %></label>
|
||||||
<div id="paraadv-number-margin-bottom"></div>
|
<div id="paraadv-number-margin-bottom"></div>
|
||||||
</td>
|
</div>
|
||||||
<td class="padding-small" width="50%">
|
<div class="padding-small" style="display: inline-block; padding-left: 15px;">
|
||||||
<label class="input-label"><%= scope.textRight %></label>
|
<label class="input-label"><%= scope.textRight %></label>
|
||||||
<div id="paraadv-number-margin-right"></div>
|
<div id="paraadv-number-margin-right"></div>
|
||||||
</td>
|
</div>
|
||||||
</tr>
|
</div>
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -177,6 +177,16 @@
|
||||||
<div id="shape-btn-change" style="display: inline-block; float:right;"></div>
|
<div id="shape-btn-change" style="display: inline-block; float:right;"></div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="padding-small" colspan=2>
|
||||||
|
<div class="separator horizontal"></div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="padding-small" colspan=2>
|
||||||
|
<div id="shape-checkbox-shadow"></div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
<tr class="shape-only">
|
<tr class="shape-only">
|
||||||
<td class="padding-small">
|
<td class="padding-small">
|
||||||
<div class="separator horizontal"></div>
|
<div class="separator horizontal"></div>
|
||||||
|
|
|
@ -134,6 +134,10 @@
|
||||||
<span class="btn-slot text x-huge" id="slot-img-movebkwd"></span>
|
<span class="btn-slot text x-huge" id="slot-img-movebkwd"></span>
|
||||||
<span class="btn-slot text x-huge" id="slot-img-wrapping"></span>
|
<span class="btn-slot text x-huge" id="slot-img-wrapping"></span>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="separator long"></div>
|
||||||
|
<div class="group">
|
||||||
|
<span class="btn-slot text x-huge" id="slot-btn-watermark"></span>
|
||||||
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<section class="panel" data-tab="links">
|
<section class="panel" data-tab="links">
|
||||||
<div class="group">
|
<div class="group">
|
||||||
|
|
|
@ -0,0 +1,71 @@
|
||||||
|
<table cols="1">
|
||||||
|
<tr><td class="padding-small">
|
||||||
|
<div id="watermark-radio-none"></div>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td class="padding-small">
|
||||||
|
<div id="watermark-radio-text"></div>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td class="padding-large">
|
||||||
|
<table id="watermark-tbl-text" cols="2" style="margin-left: 22px;">
|
||||||
|
<tr>
|
||||||
|
<td class="padding-small" style="width: 142px;">
|
||||||
|
<label style="display:block;" class="input-label"><%= scope.textLanguage %></label>
|
||||||
|
<div id="watermark-combo-lang" style="width: 100%;"></div>
|
||||||
|
</td>
|
||||||
|
<td class="padding-small" style="width: 215px; padding-left: 5px;">
|
||||||
|
<label style="display:block;" class="input-label"><%= scope.textText %></label>
|
||||||
|
<div id="watermark-combo-text" style="width: 100%;"></div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="padding-large" colspan="2">
|
||||||
|
<label style="display:block;" class="input-label"><%= scope.textFont %></label>
|
||||||
|
<div id="watermark-fonts" class="input-row" style="display: inline-block; vertical-align: middle;"></div>
|
||||||
|
<div id="watermark-font-size" class="input-row" style="display: inline-block; vertical-align: middle; margin-left: 2px;"></div>
|
||||||
|
<div id="watermark-textcolor" style="display: inline-block;margin-left: 6px;"></div>
|
||||||
|
<div id="watermark-bold" style="display: inline-block;margin-left: 2px;"></div><div id="watermark-italic" style="display: inline-block;margin-left: 6px;"></div>
|
||||||
|
<div id="watermark-underline" style="display: inline-block;margin-left: 6px;"></div><div id="watermark-strikeout" style="display: inline-block;margin-left: 6px;"></div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="padding-small" colspan="2">
|
||||||
|
<div id="watermark-chb-transparency"></div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="2">
|
||||||
|
<label style="display:block;margin-bottom: 3px;"><%= scope.textLayout %></label>
|
||||||
|
<div id="watermark-radio-diag" style="display: inline-block;"></div>
|
||||||
|
<div id="watermark-radio-hor" style="display: inline-block;margin-left: 15px;"></div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td class="padding-small">
|
||||||
|
<div id="watermark-radio-image"></div>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td class="padding-small">
|
||||||
|
<table id="watermark-tbl-image" cols="3" style="margin-left: 22px;">
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: top;">
|
||||||
|
<button type="button" class="btn btn-text-default" id="watermark-from-file" style="width:90px;"><%= scope.textFromFile %></button>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: top;">
|
||||||
|
<button type="button" class="btn btn-text-default" id="watermark-from-url" style="width:90px;margin-left: 15px;"><%= scope.textFromUrl %></button>
|
||||||
|
</td>
|
||||||
|
<td rowspan="2">
|
||||||
|
<div style="width: 80px; height: 70px; padding: 9px 14px; border: 1px solid #AFAFAF; border-radius: 2px; background: #ffffff;margin-left: 15px;">
|
||||||
|
<div id="watermark-texture-img" style="width: 50px;height: 50px;"></div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: bottom;">
|
||||||
|
<label class="input-label" style=""><%= scope.textScale %></label>
|
||||||
|
<div id="watermark-combo-scale" style="width: 90px;"></div>
|
||||||
|
</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
|
@ -314,9 +314,7 @@ define([
|
||||||
|
|
||||||
gotoBookmark: function(btn, eOpts){
|
gotoBookmark: function(btn, eOpts){
|
||||||
var rec = this.bookmarksList.getSelectedRec();
|
var rec = this.bookmarksList.getSelectedRec();
|
||||||
if (rec.length>0) {
|
rec && this.props.asc_SelectBookmark(rec.get('value'));
|
||||||
this.props.asc_SelectBookmark(rec[0].get('value'));
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
addBookmark: function(btn, eOpts){
|
addBookmark: function(btn, eOpts){
|
||||||
|
@ -333,11 +331,11 @@ define([
|
||||||
|
|
||||||
deleteBookmark: function(btn, eOpts){
|
deleteBookmark: function(btn, eOpts){
|
||||||
var rec = this.bookmarksList.getSelectedRec();
|
var rec = this.bookmarksList.getSelectedRec();
|
||||||
if (rec.length>0) {
|
if (rec) {
|
||||||
this.props.asc_RemoveBookmark(rec[0].get('value'));
|
this.props.asc_RemoveBookmark(rec.get('value'));
|
||||||
var store = this.bookmarksList.store;
|
var store = this.bookmarksList.store;
|
||||||
var idx = _.indexOf(store.models, rec[0]);
|
var idx = _.indexOf(store.models, rec);
|
||||||
store.remove(rec[0]);
|
store.remove(rec);
|
||||||
this.txtName.setValue('');
|
this.txtName.setValue('');
|
||||||
this.btnAdd.setDisabled(true);
|
this.btnAdd.setDisabled(true);
|
||||||
this.btnGoto.setDisabled(true);
|
this.btnGoto.setDisabled(true);
|
||||||
|
@ -350,13 +348,11 @@ define([
|
||||||
if (btn.cmpEl && btn.cmpEl.parent().hasClass('open')) return;
|
if (btn.cmpEl && btn.cmpEl.parent().hasClass('open')) return;
|
||||||
|
|
||||||
var rec = this.bookmarksList.getSelectedRec();
|
var rec = this.bookmarksList.getSelectedRec();
|
||||||
if (rec.length>0) {
|
rec && Common.Gateway.requestMakeActionLink({
|
||||||
Common.Gateway.requestMakeActionLink({
|
|
||||||
action: {
|
action: {
|
||||||
type: "bookmark", data: rec[0].get('value')
|
type: "bookmark", data: rec.get('value')
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
onRadioSort: function(field, newValue, eOpts) {
|
onRadioSort: function(field, newValue, eOpts) {
|
||||||
|
|
|
@ -167,7 +167,7 @@ define([
|
||||||
|
|
||||||
if (this._isChartStylesChanged) {
|
if (this._isChartStylesChanged) {
|
||||||
if (rec)
|
if (rec)
|
||||||
this.cmbChartStyle.fillComboView(this.cmbChartStyle.menuPicker.getSelectedRec()[0],true);
|
this.cmbChartStyle.fillComboView(this.cmbChartStyle.menuPicker.getSelectedRec(),true);
|
||||||
else
|
else
|
||||||
this.cmbChartStyle.fillComboView(this.cmbChartStyle.menuPicker.store.at(0), true);
|
this.cmbChartStyle.fillComboView(this.cmbChartStyle.menuPicker.store.at(0), true);
|
||||||
}
|
}
|
||||||
|
@ -486,16 +486,16 @@ define([
|
||||||
if (count>0 && count==styles.length) {
|
if (count>0 && count==styles.length) {
|
||||||
var data = stylesStore.models;
|
var data = stylesStore.models;
|
||||||
_.each(styles, function(style, index){
|
_.each(styles, function(style, index){
|
||||||
data[index].set('imageUrl', style.asc_getImageUrl());
|
data[index].set('imageUrl', style.asc_getImage());
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
var stylearray = [],
|
var stylearray = [],
|
||||||
selectedIdx = -1;
|
selectedIdx = -1;
|
||||||
_.each(styles, function(item, index){
|
_.each(styles, function(item, index){
|
||||||
stylearray.push({
|
stylearray.push({
|
||||||
imageUrl: item.asc_getImageUrl(),
|
imageUrl: item.asc_getImage(),
|
||||||
data : item.asc_getStyle(),
|
data : item.asc_getName(),
|
||||||
tip : me.textStyle + ' ' + item.asc_getStyle()
|
tip : me.textStyle + ' ' + item.asc_getName()
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
stylesStore.reset(stylearray, {silent: false});
|
stylesStore.reset(stylearray, {silent: false});
|
||||||
|
|