Merge branch 'develop' into feature/combine

This commit is contained in:
Julia Radzhabova 2023-01-11 18:25:19 +03:00
commit eec6542ee9
467 changed files with 14896 additions and 3799 deletions

View file

@ -28,12 +28,12 @@
html {
height: 100%;
width: 100%;
font-family: Arial, Helvetica, "Helvetica Neue", sans-serif;
}
body {
background: #fff;
color: #333;
font-family: Arial, Tahoma,sans-serif;
font-size: 12px;
font-weight: normal;
height: 100%;
@ -45,58 +45,157 @@ body {
.form {
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
div {
margin: 0;
padding: 0;
}
.app-error-panel {
position: absolute;
width: 100%;
height: 100%;
top: 0;
background-color: #f4f4f4;
z-index: 10;
}
.message-block {
display: inline-block;
vertical-align: middle;
width: 100%;
}
.message-inner {
width: 550px;
margin: auto;
padding: 30px;
background-color: #e3e3e3;
text-align: center;
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: flex-end;
}
.title {
font-size: 24px;
margin: 0 0 14px;
font-style: normal;
font-weight: 400;
font-size: 18px;
line-height: 160%;
display: flex;
align-items: center;
text-align: center;
color: #333333;
}
.text {
font-size: 16px;
.description {
font-style: normal;
font-weight: 400;
font-size: 14px;
line-height: 160%;
display: flex;
align-items: center;
text-align: center;
margin-top: 8px;
color: #333333;
}
.icon {
margin-top: 49px;
width: 34px;
height: 48px;
}
.icon-succes {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAwCAYAAAB0WahSAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAENSURBVHgB7ZnBDYJAEEX/oN4pQTvQmxcTO7EEsQLtQKyA2AF2QOLFm5ZAB3InZB0WRDOJXCQbNPMSkmX3wGMyn8NAYEywHMMUES+nfPlwRwzKNxReUqolro4F3slYZjZkib2VIByBQUBhksEBtgAodjBYwYwiMuuFsSeUT8oSwSEs43Mh7rzMvOema4nqmU31fQ89QUUkKiLpjciw7bD5xnQEHc706ew3KtL2Bl2jzSrR1Eg0NRJtVommRqKpkWizSjQ1Ek2NRJtV8n+p+bafNDUSbVaJikhURFKK2FmnHb46ppo+v0Ru1W6xN8F8DEfUU+dtdYNTb34KeDyGTkGDGWvFcAu3hElKiXL8/gBwm2fFT+wjuQAAAABJRU5ErkJggg==");
}
.icon-error {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAwCAYAAAB0WahSAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAEBSURBVHgB7ZfRDYIwEIavtAM4QkfpA3uoE6gTiJswCIl99NEJSNyAAUhqz0BiGoOoVyjmvoTk6EP7c/ffAQDM0snz3OEFkciAiQBF2bg0DBmfGPIb8yZjVgEz02cuo5gBFHsomJmqqt5XhepFN2YfnqzMYhC9m1+1EfWn4dAZyXTN4EAbNWyISCYjLCRk0CNTdE0Pd00ImzXk/7rmVz9x14SwWUNYSAgLCUEhDQbGmBVMzPOZKOSKgVJqDxMjpVx3ocXfCeODc7dwaNu2tNY2EBHMhH/wnQ8LvHfObR6T04vBhSPMw8lP8EJiVNe11VrfhBBYMw3xwYxf/LX1IkpcuAMGtltNGCBFYAAAAABJRU5ErkJggg==");
}
#error .icon {
margin-bottom: 107px;
}
.spiner-image {
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAyMCI+PGNpcmNsZSBjeD0iMTAiIGN5PSIxMCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjNDQ0IiBzdHJva2Utd2lkdGg9IjEuNSIgcj0iNy4yNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTYwJSwgNDAlIiAvPjwvc3ZnPg==");
margin-top: 49px;
width: 48px;
height: 48px;
}
#spiner {
animation-duration: .8s;
animation-name: rotation;
animation-iteration-count: infinite;
animation-timing-function: linear;
}
@keyframes rotation {
from {
transform: rotate(0);
}
to {
transform: rotate(360deg);
}
}
.button {
margin-top: 50px;
cursor: pointer;
display: inline-block;
border-width: 0px;
border-radius: 3px;
font-weight: 600;
line-height: 133%;
letter-spacing: 0.04em;
padding: 19px 24px;
text-align: center;
text-transform: uppercase;
}
button:disabled, button[disabled]{
cursor: default;
}
.button.gray {
color: #AAAAAA;
background: #444444;
}
.button.orange {
color: #FFFFFF;
border: 1px solid #FF6F3D;
background: #FF6F3D;
}
.button.orange:not(:disabled):hover {
background: #ff7a4b;
}
.button.orange:disabled, .button.orange[disabled]{
background: #EDC2B3;
border: 1px solid #EDC2B3;
cursor: default;
}
</style>
</head>
<body>
<div id="progress">
Converting your file so you can edit it...
<a id="btn_end" style="display: none;">
<button type="button">Click here to open the converted file</button>
</a>
<div class="form">
<div id="progress">
<div class="content">
<div class="title">Converting your file so you can edit it...</div>
<i id="spiner" class="spiner-image"></i>
<button class="button orange" disabled>Open converted file</button>
</div>
</div>
<div id="success" style="display: none;">
<div class="content">
<div class="title">Converting your file so you can edit it...</div>
<i class="icon icon-succes"></i>
<button class="button orange" id="btn_end">Open converted file</button>
</div>
</div>
<div id="error" style="display: none;">
<div class="content">
<div class="title">Conversion failed</div>
<div class="description">Sorry, we weren't able to convert the file for editing.</div>
<i class="icon icon-error"></i>
</div>
</div>
</div>
</div>
<div id="error" style="display: none;">
Conversion failed<br/>Sorry, we weren't able to convert the file for editing.<br/>Try again Go back
</div>
<script type="text/javascript" language="javascript">
function redirect(url) {
@ -140,10 +239,9 @@ div {
}
function success(url) {
// redirect(url);
let btn = document.getElementById('btn_end');
btn.style.display = 'block';
btn.onclick = function() {
document.getElementById('progress').style.display = 'none';
document.getElementById('success').style.display = 'block';
document.getElementById('btn_end').onclick = function() {
redirect(url);
};
}

View file

@ -202,6 +202,13 @@
text-overflow: ellipsis;
}
}
.separator {
height: 22px;
margin: 0 9px;
border-left: 1px solid @border-divider-ie;
border-left: 1px solid @border-divider;
}
}
.margin-right-small {

View file

@ -171,10 +171,15 @@ Common.Locale = new(function() {
} else require(polyfills, _requireLang);
} else _requireLang();
const _isCurrentRtl = function () {
return false;
};
return {
apply: _applyLocalization,
get: _get,
getCurrentLanguage: _getCurrentLanguage,
isCurrentLanguageRtl: _isCurrentRtl,
getDefaultLanguage: _getDefaultLanguage
};

View file

@ -91,7 +91,7 @@ define([
auto.push({
id: id + '-color-auto',
caption: (typeof options.auto == 'object') ? options.auto.caption || this.textAutoColor : this.textAutoColor,
template: _.template('<a tabindex="-1" type="menuitem"><span class="menu-item-icon color-auto" style="background-image: none; width: 12px; height: 12px; margin: 1px 7px 0 1px; background-color: #' + this.autocolor + ';"></span><%= caption %></a>')
template: _.template('<a tabindex="-1" type="menuitem"><span class="menu-item-icon color-auto" style="background-color: #' + this.autocolor + ';"></span><%= caption %></a>')
});
auto.push({caption: '--'});
}

View file

@ -190,10 +190,17 @@ define([
'<ul class="dropdown-menu <%= menuCls %>" style="<%= menuStyle %>" role="menu">',
'<% _.each(items, function(item) { %>',
'<li id="<%= item.id %>" data-value="<%= item.value %>"><a tabindex="-1" type="menuitem">',
'<% if (!isRTL) { %>',
'<span><%= item.displayValue %></span>',
'<% if (item.offsety!==undefined) { %>',
'<img src="data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" align="right" style="background-position: 0 -<%= item.offsety %>px;">',
'<% } %>',
'<% } else { %>',
'<% if (item.offsety!==undefined) { %>',
'<img src="data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" align="left" style="background-position: 0 -<%= item.offsety %>px;">',
'<% } %>',
'<span><%= item.displayValue %></span>',
'<% } %>',
'</a></li>',
'<% }); %>',
'</ul>',
@ -234,7 +241,7 @@ define([
Common.UI.ComboBorderType = Common.UI.ComboBorderSize.extend(_.extend({
template: _.template([
'<div class="input-group combobox combo-border-size input-group-nr <%= cls %>" id="<%= id %>" style="<%= style %>">',
'<div class="input-group combobox combo-border-size combo-border-type input-group-nr <%= cls %>" id="<%= id %>" style="<%= style %>">',
'<div class="form-control" style="<%= style %>" data-hint="<%= dataHint %>" data-hint-direction="<%= dataHintDirection %>" data-hint-offset="<%= dataHintOffset %>">',
'<i class="image"></i>',
'</div>',
@ -244,10 +251,10 @@ define([
'</button>',
'<ul class="dropdown-menu <%= menuCls %>" style="<%= menuStyle %>" role="menu">',
'<% _.each(items, function(item) { %>',
'<li id="<%= item.id %>" data-value="<%= item.value %>"><a tabindex="-1" type="menuitem" style="padding: 2px 0 2px 10px;">',
'<li id="<%= item.id %>" data-value="<%= item.value %>"><a tabindex="-1" type="menuitem">',
'<span style="margin-top: 0;"></span>',
'<% if (item.offsety!==undefined) { %>',
'<img src="data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" align="left" style="background-position: 0 -<%= item.offsety %>px;">',
'<img src="data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" style="background-position: 0 -<%= item.offsety %>px;">',
'<% } %>',
'</a></li>',
'<% }); %>',
@ -300,9 +307,9 @@ define([
Common.UI.ComboBoxColor = Common.UI.ComboBox.extend(_.extend({
template: _.template([
'<div class="input-group combobox combo-color input-group-nr <%= cls %>" id="<%= id %>" style="<%= style %>">',
'<div class="form-control" style="padding:2px 14px 2px 3px; <%= style %> display: block;">',
'<div style="display: inline-block;overflow: hidden;width: 100%;height: 100%;"></div>',
'<div class="input-group combobox combo-color combobox-color input-group-nr <%= cls %>" id="<%= id %>" style="<%= style %>">',
'<div class="form-control" style="<%= style %>">',
'<div></div>',
'</div>',
'<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">',
'<span class="caret"></span>',
@ -313,7 +320,7 @@ define([
'<li id="<%= item.id %>" data-value="<%= item.value %>"><a tabindex="-1" type="menuitem"><%= scope.getDisplayValue(item) %></a></li>',
'<% } else { %>',
'<li id="<%= item.id %>" data-value="<%= item.value %>">',
'<a tabindex="-1" type="menuitem" style="padding: 5px;"><div style="height: 15px;<%= item.styleStr %>"><%= scope.getDisplayValue(item) %></div></a>',
'<a tabindex="-1" type="menuitem"><div style="<%= item.styleStr %>"><%= scope.getDisplayValue(item) %></div></a>',
'</li>',
'<% } %>',
'<% }); %>',
@ -380,7 +387,7 @@ define([
'<li id="<%= item.id %>" data-value="<%= item.value %>"><a tabindex="-1" type="menuitem"><%= scope.getDisplayValue(item) %></a></li>',
'<% } else { %>',
'<li id="<%= item.id %>" data-value="<%= item.value %>">',
'<a tabindex="-1" type="menuitem" style="padding: 5px;"><div style="height: 15px;<%= item.styleStr %>"><%= scope.getDisplayValue(item) %></div></a>',
'<a tabindex="-1" type="menuitem""><div style="<%= item.styleStr %>"><%= scope.getDisplayValue(item) %></div></a>',
'</li>',
'<% } %>',
'<% }); %>'
@ -407,9 +414,9 @@ define([
Common.UI.ComboBoxIcons= Common.UI.ComboBox.extend(_.extend({
template: _.template([
'<div class="input-group combobox combo-color input-group-nr <%= cls %>" id="<%= id %>" style="<%= style %>">',
'<div class="form-control" style="padding:2px 0 2px 3px; <%= style %> display: block;">',
'<div style="display: inline-block;overflow: hidden;width: 100%;height: 100%;"></div>',
'<div class="input-group combobox combobox-icons combo-color input-group-nr <%= cls %>" id="<%= id %>" style="<%= style %>">',
'<div class="form-control" style="<%= style %>">',
'<div></div>',
'</div>',
'<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">',
'<span class="caret"></span>',
@ -420,9 +427,9 @@ define([
'<li id="<%= item.id %>" data-value="<%= item.value %>"><a tabindex="-1" type="menuitem"><%= scope.getDisplayValue(item) %></a></li>',
'<% } else { %>',
'<li id="<%= item.id %>" data-value="<%= item.value %>">',
'<a tabindex="-1" type="menuitem" style="padding: 5px;">',
'<a tabindex="-1" type="menuitem">',
'<% _.each(item.data.iconSet, function(icon) { %>',
'<img src="<%= item.data.icons.at(icon-1).get(\'icon\') %>" style="width:16px;height:16px;margin-right: 5px;">',
'<img src="<%= item.data.icons.at(icon-1).get(\'icon\') %>">',
'<% }) %>',
'</a>',
'</li>',
@ -454,7 +461,7 @@ define([
if (record.get('value')!=-1) {
var str = '';
_.each(record.get('data').iconSet, function(icon) {
str += '<img src="' + record.get('data').icons.at(icon-1).get("icon") + '" style="width:16px;height:16px;margin-right: 5px;">';
str += '<img src="' + record.get('data').icons.at(icon-1).get("icon") + '">';
});
formcontrol[0].innerHTML = str;
formcontrol.css({'margin-top': '0'});
@ -495,7 +502,7 @@ define([
'<li id="<%= item.id %>" data-value="<%= item.value %>">',
'<a tabindex="-1" type="menuitem" style="padding: 5px;">',
'<% _.each(item.data.iconSet, function(icon) { %>',
'<img src="<%= item.data.icons.at(icon-1).get(\'icon\') %>" style="width:16px;height:16px;margin-right: 5px;">',
'<img src="<%= item.data.icons.at(icon-1).get(\'icon\') %>">',
'<% }) %>',
'</a>',
'</li>',

View file

@ -153,7 +153,8 @@ define([
scope : me,
dataHint : this.options.dataHint,
dataHintDirection: this.options.dataHintDirection,
dataHintOffset: this.options.dataHintOffset
dataHintOffset: this.options.dataHintOffset,
isRTL : Common.UI.isRTL()
}));
if (this.itemsTemplate)
this.cmpEl.find('ul').html(
@ -311,7 +312,10 @@ define([
var $list = this.cmpEl.find('ul');
if ($list.hasClass('menu-absolute')) {
var offset = this.cmpEl.offset();
$list.css({left: offset.left, top: offset.top + this.cmpEl.outerHeight() + 2});
var left = offset.left;
if (left + $list.outerWidth()>Common.Utils.innerWidth())
left += (this.cmpEl.outerWidth() - $list.outerWidth());
$list.css({left: left, top: offset.top + this.cmpEl.outerHeight() + 2});
} else if ($list.hasClass('menu-aligned')) {
var offset = this.cmpEl.offset();
$list.toggleClass('show-top', offset.top + this.cmpEl.outerHeight() + $list.outerHeight() > Common.Utils.innerHeight());
@ -710,8 +714,8 @@ define([
this.options.updateFormControl.call(this, this._selectedItem);
},
setValue: function(value) {
Common.UI.ComboBox.prototype.setValue.call(this, value);
setValue: function(value, defValue) {
Common.UI.ComboBox.prototype.setValue.call(this, value, defValue);
if (this.options.updateFormControl)
this.options.updateFormControl.call(this, this._selectedItem);
},

View file

@ -115,7 +115,7 @@ define([
this.openButton = new Common.UI.Button({
cls: 'open-menu',
menu: new Common.UI.Menu({
menuAlign: 'tl-tl',
menuAlign: Common.UI.isRTL() ? 'tr-tr' : 'tl-tl',
offset: [0, 3],
items: [
{template: _.template('<div class="menu-picker-container"></div>')}
@ -299,7 +299,7 @@ define([
var itemMargins = parseFloat(itemEl.css('margin-left')) + parseFloat(itemEl.css('margin-right'));
var fieldPickerEl = this.fieldPicker.$el;
var fieldPickerPadding = parseFloat(fieldPickerEl.css('padding-right'));
var fieldPickerPadding = parseFloat(fieldPickerEl.css(Common.UI.isRTL() ? 'padding-left' : 'padding-right'));
var fieldPickerBorder = parseFloat(fieldPickerEl.css('border-width'));
var dataviewPaddings = parseFloat(this.fieldPicker.$el.find('.dataview').css('padding-left')) + parseFloat(this.fieldPicker.$el.find('.dataview').css('padding-right'));

View file

@ -368,7 +368,10 @@ define([
if (menu.cmpEl) {
menu.menuAlignEl = this.cmpEl;
var offset = this.cmpEl.width() - this.openButton.$el.width() - this.menuWidth + 1;
menu.setOffset(Math.min(offset, 0));
if (Common.UI.isRTL()) {
offset = this.openButton.$el.width() - 1;
}
menu.setOffset(Common.UI.isRTL() ? offset : Math.min(offset, 0));
}
if (this.options.hint) {

View file

@ -53,12 +53,13 @@ define([
minRows : 5,
minColumns : 5,
maxRows : 20,
maxColumns : 20
maxColumns : 20,
direction : undefined // 'left', 'right'
},
template:_.template([
'<div style="width: 100%; height: 100%;">',
'<div class="dimension-picker-status">0x0</div>',
'<div dir="ltr" class="dimension-picker-status">0x0</div>',
'<div class="dimension-picker-observecontainer">',
'<div class="dimension-picker-mousecatcher"></div>',
'<div class="dimension-picker-unhighlighted"></div>',
@ -84,12 +85,24 @@ define([
me.maxRows = me.options.maxRows;
me.maxColumns = me.options.maxColumns;
me.direction = me.options.direction;
if (Common.UI.isRTL() && !me.direction) {
me.direction = 'right';
}
me.curColumns = 0;
me.curRows = 0;
var onMouseMove = function(event){
var offsetX;
if (me.direction === 'right' && me.areaMouseCatcher) {
var width = me.areaMouseCatcher.width();
offsetX = event.offsetX === undefined ? (width - event.originalEvent.layerX) : (width - event.offsetX)*Common.Utils.zoom()
} else {
offsetX = event.offsetX === undefined ? event.originalEvent.layerX : event.offsetX*Common.Utils.zoom();
}
me.setTableSize(
Math.ceil((event.offsetX === undefined ? event.originalEvent.layerX : event.offsetX*Common.Utils.zoom()) / me.itemSize),
Math.ceil(offsetX / me.itemSize),
Math.ceil((event.offsetY === undefined ? event.originalEvent.layerY : event.offsetY*Common.Utils.zoom()) / me.itemSize),
event
);
@ -104,27 +117,31 @@ define([
};
if (rootEl){
var areaMouseCatcher = rootEl.find('.dimension-picker-mousecatcher');
me.areaMouseCatcher = rootEl.find('.dimension-picker-mousecatcher');
me.areaUnHighLighted = rootEl.find('.dimension-picker-unhighlighted');
me.areaHighLighted = rootEl.find('.dimension-picker-highlighted');
me.areaStatus = rootEl.find('.dimension-picker-status');
rootEl.css({width: me.minColumns + 'em'});
areaMouseCatcher.css('z-index', 1);
areaMouseCatcher.width(me.maxColumns + 'em').height(me.maxRows + 'em');
me.areaMouseCatcher.css('z-index', 1);
me.areaMouseCatcher.width(me.maxColumns + 'em').height(me.maxRows + 'em');
me.areaUnHighLighted.width(me.minColumns + 'em').height(me.minRows + 'em');
me.areaStatus.html(me.curColumns + ' x ' + me.curRows);
me.areaStatus.html(!Common.UI.isRTL() ? this.curColumns + ' x ' + this.curRows : this.curRows + ' x ' + this.curColumns);
me.areaStatus.width(me.areaUnHighLighted.width());
areaMouseCatcher.on('mousemove', onMouseMove);
me.areaMouseCatcher.on('mousemove', onMouseMove);
me.areaHighLighted.on('mousemove', onMouseMove);
me.areaUnHighLighted.on('mousemove', onMouseMove);
areaMouseCatcher.on('mouseleave', onMouseLeave);
me.areaMouseCatcher.on('mouseleave', onMouseLeave);
me.areaHighLighted.on('mouseleave', onMouseLeave);
me.areaUnHighLighted.on('mouseleave', onMouseLeave);
areaMouseCatcher.on('click', onHighLightedMouseClick);
me.areaMouseCatcher.on('click', onHighLightedMouseClick);
me.areaHighLighted.on('click', onHighLightedMouseClick);
me.areaUnHighLighted.on('click', onHighLightedMouseClick);
if (me.direction === 'right') {
me.areaHighLighted.css({left: 'auto', right: '0'});
}
}
},
@ -157,7 +174,7 @@ define([
);
this.cmpEl.width(this.areaUnHighLighted.width());
this.areaStatus.html(this.curColumns + ' x ' + this.curRows);
this.areaStatus.html(!Common.UI.isRTL() ? this.curColumns + ' x ' + this.curRows : this.curRows + ' x ' + this.curColumns);
this.areaStatus.width(this.areaUnHighLighted.width());
this.trigger('change', this, this.curColumns, this.curRows, event);

View file

@ -261,7 +261,7 @@ define([
var panel = e.data.panel;
this.resize.type = e.data.type;
this.resize.$el = panel.el;
this.resize.min = panel.minpos;
this.resize.min = panel.minpos > 0 ? panel.minpos : this.resize.$el.parent().width() + panel.minpos;
this.resize.fmin = panel.fmin;
this.resize.fmax = panel.fmax;
this.resize.behaviour = panel.behaviour;
@ -365,15 +365,15 @@ define([
oldValue = parseInt(panel.css(prop));
} else {
panel = this.resize.$el.next();
next = this.resize.$el.next();
next = this.resize.$el.prev();
oldValue = parseInt(panel.css(prop));
value = panel.parent()[prop]() - (value + this.resize[prop]);
}
if (this.resize.type == 'vertical')
value -= panel.position().top;
if (this.resize.type == 'horizontal')
value -= panel.position().left;
// if (this.resize.type == 'horizontal')
// value -= panel.position().left;
panel.css(prop, value + 'px');

View file

@ -173,6 +173,18 @@ define([
this.search = this.options.search;
this.outerMenu = this.options.outerMenu;
if (Common.UI.isRTL()) {
if (this.menuAlign === 'tl-tr') {
this.menuAlign = 'tr-tl';
} else if (this.menuAlign === 'tl-bl') {
this.menuAlign = 'tr-br';
} else if (this.menuAlign === 'tr-br') {
this.menuAlign = 'tl-bl';
} else if (this.menuAlign === 'bl-tl') {
this.menuAlign = 'br-tr';
}
}
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);
@ -645,14 +657,19 @@ define([
var left = offset.left - posMenu[m[1]][0] + posParent[m[2]][0] + this.offset[0];
var top = offset.top - posMenu[m[1]][1] + posParent[m[2]][1] + this.offset[1];
if (left + menuW > docW)
if (left + menuW > docW) {
if (menuParent.is('li.dropdown-submenu')) {
left = offset.left - menuW + 2;
} else {
left = docW - menuW;
}
if (left < 0)
left = 0;
} else if (left < 0) {
if (menuParent.is('li.dropdown-submenu')) {
left = offset.left + parentW - 2;
} else {
left = 0;
}
}
if (this.options.restoreHeightAndTop) { // can change top position, if top<0 - then change menu height
var cg = Common.Utils.croppedGeometry();
@ -716,6 +733,14 @@ define([
}
},
getChecked: function() {
for (var i=0; i<this.items.length; i++) {
var item = this.items[i];
if (item.isChecked && item.isChecked())
return item;
}
},
clearAll: function() {
_.each(this.items, function(item){
if (item.setChecked)
@ -779,6 +804,18 @@ define([
this.scrollAlwaysVisible = this.options.scrollAlwaysVisible;
this.search = this.options.search;
if (Common.UI.isRTL()) {
if (this.menuAlign === 'tl-tr') {
this.menuAlign = 'tr-tl';
} else if (this.menuAlign === 'tl-bl') {
this.menuAlign = 'tr-br';
} else if (this.menuAlign === 'tr-br') {
this.menuAlign = 'tl-bl';
} else if (this.menuAlign === 'bl-tl') {
this.menuAlign = 'br-tr';
}
}
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);
@ -1131,12 +1168,19 @@ define([
var left = offset.left - posMenu[m[1]][0] + posParent[m[2]][0] + this.offset[0];
var top = offset.top - posMenu[m[1]][1] + posParent[m[2]][1] + this.offset[1];
if (left + menuW > docW)
if (left + menuW > docW) {
if (menuParent.is('li.dropdown-submenu')) {
left = offset.left - menuW + 2;
} else {
left = docW - menuW;
}
} else if (left < 0) {
if (menuParent.is('li.dropdown-submenu')) {
left = offset.left + parentW - 2;
} else {
left = 0;
}
}
if (this.options.restoreHeight) {
if (typeof (this.options.restoreHeight) == "number") {

View file

@ -56,7 +56,7 @@ define([
var onScrollTabs = function(opts, e) {
var sv = $boxTabs.scrollLeft();
if ( sv || opts == 'right' ) {
if (sv || opts == 'right' || Common.UI.isRTL() && opts == 'left') {
$boxTabs.animate({scrollLeft: opts == 'left' ? sv - 100 : sv + 100}, 200);
}
};
@ -93,6 +93,7 @@ define([
Common.UI.BaseView.prototype.initialize.call(this, options);
var _template_tabs =
!Common.UI.isRTL() ?
'<section class="tabs">' +
'<a class="scroll left" data-hint="0" data-hint-direction="bottom" data-hint-offset="-7, 0" data-hint-title="V"></a>' +
'<ul>' +
@ -108,6 +109,22 @@ define([
'<% } %>' +
'</ul>' +
'<a class="scroll right" data-hint="0" data-hint-direction="bottom" data-hint-offset="-7, 0" data-hint-title="R"></a>' +
'</section>' :
'<section class="tabs">' +
'<a class="scroll right" data-hint="0" data-hint-direction="bottom" data-hint-offset="-7, 0" data-hint-title="R"></a>' +
'<ul>' +
'<% for(var i in items) { %>' +
'<% if (typeof items[i] == "object") { %>' +
'<li class="ribtab' +
'<% if (items[i].haspanel===false) print(" x-lone") %>' +
'<% if (items[i].extcls) print(\' \' + items[i].extcls) %>"' +
'<% if (typeof items[i].layoutname == "string") print(" data-layout-name=" + \' \' + items[i].layoutname) + \' \' %>>' +
'<a data-tab="<%= items[i].action %>" data-title="<%= items[i].caption %>" data-hint="0" data-hint-direction="bottom" data-hint-offset="small" <% if (typeof items[i].dataHintTitle !== "undefined") { %> data-hint-title="<%= items[i].dataHintTitle %>" <% } %>><%= items[i].caption %></a>' +
'</li>' +
'<% } %>' +
'<% } %>' +
'</ul>' +
'<a class="scroll left" data-hint="0" data-hint-direction="bottom" data-hint-offset="-7, 0" data-hint-title="V"></a>' +
'</section>';
this.$layout = $(options.template({
@ -365,13 +382,13 @@ define([
var _left_bound_ = Math.round($boxTabs.offset().left),
_right_bound_ = Math.round(_left_bound_ + $boxTabs.width());
var tab = this.$tabs.filter(':visible:first').get(0);
var tab = this.$tabs.filter(Common.UI.isRTL() ? ':visible:last' : ':visible:first').get(0);
if ( !tab ) return false;
var rect = tab.getBoundingClientRect();
if ( !(Math.round(rect.left) < _left_bound_) ) {
tab = this.$tabs.filter(':visible:last').get(0);
tab = this.$tabs.filter(Common.UI.isRTL() ? ':visible:first' : ':visible:last').get(0);
rect = tab.getBoundingClientRect();
if (!(Math.round(rect.right) > _right_bound_))
@ -393,7 +410,9 @@ define([
function _fc() {
var $active = panel || me.$panels.filter('.active');
if ( $active && $active.length ) {
var _maxright = $active.parents('.box-controls').width();
var _maxright = $active.parents('.box-controls').width(),
_staticPanelWidth = $active.parents('.box-controls').find('.panel.static').outerWidth();
if (!_staticPanelWidth) _staticPanelWidth = 0;
var data = $active.data(),
_rightedge = data.rightedge,
_btns = data.buttons,
@ -403,7 +422,7 @@ define([
me.setMoreButton($active.attr('data-tab'), $active);
}
if ( !_rightedge ) {
_rightedge = $active.get(0).getBoundingClientRect().right;
_rightedge = $active.outerWidth() + _staticPanelWidth;
}
if ( !_btns ) {
_btns = [];
@ -421,12 +440,12 @@ define([
data.flex = _flex;
}
if ( (_rightedge > _maxright)) {
if (_rightedge > _maxright) {
if (!more_section.is(':visible') ) {
if (_flex.length>0) {
for (var i=0; i<_flex.length; i++) {
var item = _flex[i].el;
_rightedge = $active.get(0).getBoundingClientRect().right;
_rightedge = $active.outerWidth() + _staticPanelWidth;
if (item.outerWidth() > parseInt(item.css('min-width'))) {
data.rightedge = _rightedge;
return;
@ -438,7 +457,7 @@ define([
var btn = _btns[i];
if ( !btn.hasClass('compactwidth') && !btn.hasClass('slot-btn-more')) {
btn.addClass('compactwidth');
_rightedge = $active.get(0).getBoundingClientRect().right;
_rightedge = $active.outerWidth() + _staticPanelWidth;
if (_rightedge <= _maxright)
break;
}
@ -453,10 +472,10 @@ define([
var btn = _btns[i];
if ( btn.hasClass('compactwidth') ) {
btn.removeClass('compactwidth');
_rightedge = $active.get(0).getBoundingClientRect().right;
if ( _rightedge > _maxright) {
_rightedge = $active.outerWidth() + _staticPanelWidth;
if (_rightedge > _maxright) {
btn.addClass('compactwidth');
_rightedge = $active.get(0).getBoundingClientRect().right;
_rightedge = $active.outerWidth() + _staticPanelWidth;
break;
}
}
@ -506,7 +525,7 @@ define([
var me = this;
if (!btnsMore[tab]) {
var top = panel.position().top;
var box = $('<div class="more-box" style="position: absolute;right: 0; top:'+ top +'px; padding-left: 12px;padding-right: 6px;display: none;">' +
var box = $('<div class="more-box" style="top:'+ top +'px;">' +
'<div class="separator long" style="position: relative;display: table-cell;"></div>' +
'<div class="group" style=""><span class="btn-slot text x-huge slot-btn-more"></span></div>' +
'</div>');
@ -533,7 +552,7 @@ define([
var panel = this.$panels.filter('[data-tab=' + tab + ']');
if ( panel.length ) {
var data = panel.data();
data.buttons = data.flex = data.rightedge = undefined;
data.buttons = data.flex = data.rightedge = data.leftedge = undefined;
panel.find('.more-box').remove();
}
if (btnsMore[tab]) {
@ -554,8 +573,10 @@ define([
var more_section_width = parseInt(more_section.css('width')) || 0,
box_controls_width = $active.parents('.box-controls').width(),
_maxright = box_controls_width,
_rightedge = $active.get(0).getBoundingClientRect().right,
_staticPanelWidth = $active.parents('.box-controls').find('.panel.static').outerWidth(),
_maxright = box_controls_width;
if (!_staticPanelWidth) _staticPanelWidth = 0;
var _rightedge = $active.outerWidth() + _staticPanelWidth,
delta = (this._prevBoxWidth) ? (_maxright - this._prevBoxWidth) : -1,
hideAllMenus = false;
this._prevBoxWidth = _maxright;
@ -567,7 +588,7 @@ define([
if ( (reset || delta<0) && (_rightedge > _maxright)) { // from toolbar to more section
if (!more_section.is(':visible') ) {
more_section.css('display', "");
more_section.css('display', "block");
_maxright -= parseInt(more_section.css('width'));
}
var last_separator = null,
@ -589,11 +610,12 @@ define([
this.$moreBar.prepend(item);
hideAllMenus = true;
} else if (item.hasClass('group')) {
_rightedge = $active.get(0).getBoundingClientRect().right;
//_rightedge = $active.get(0).getBoundingClientRect().right;
_rightedge = $active.outerWidth() + _staticPanelWidth;
if (_rightedge <= _maxright) // stop moving items
break;
var offset = item.offset(),
var rect = item.get(0).getBoundingClientRect(),
item_width = item.outerWidth(),
children = item.children();
if (!item.attr('inner-width') && item.attr('group-state') !== 'open') {
@ -603,7 +625,7 @@ define([
child.attr('inner-width', child.outerWidth());
}
}
if ((offset.left > _maxright || children.length==1) && item.attr('group-state') != 'open') {
if (((rect.left > _maxright || Common.UI.isRTL() && box_controls_width - rect.right > _maxright) || children.length==1) && item.attr('group-state') != 'open') {
// move group
this.$moreBar.prepend(item);
if (last_separator) {
@ -611,7 +633,7 @@ define([
last_separator.removeAttr('hidden-on-resize');
}
hideAllMenus = true;
} else if ( offset.left+item_width > _maxright ) {
} else if ((Common.UI.isRTL() ? box_controls_width - rect.right : rect.left)+item_width > _maxright ) {
// move buttons from group
for (var j=children.length-1; j>=0; j--) {
var child = $(children[j]);
@ -624,9 +646,9 @@ define([
hideAllMenus = true;
break;
} else {
var child_offset = child.offset(),
var child_rect = child.get(0).getBoundingClientRect(),
child_width = child.outerWidth();
if (child_offset.left+child_width>_maxright) {
if ((Common.UI.isRTL() ? box_controls_width - child_rect.right : child_rect.left)+child_width>_maxright) {
if (!last_group) {
last_group = $('<div></div>');
last_group.addClass(items[i].className);
@ -689,7 +711,7 @@ define([
// from more panel to toolbar
for (var i=0; i<items.length; i++) {
var item = $(items[i]);
_rightedge = $active.get(0).getBoundingClientRect().right;
_rightedge = $active.outerWidth() + _staticPanelWidth;
if (!item.is(':visible') && item.attr('data-hidden-tb-item')) { // move invisible items as is
item.removeAttr('data-hidden-tb-item');
more_section.before(item);
@ -724,7 +746,7 @@ define([
for (var j=0; j<children.length; j++) {
if (islast && j==children.length-1)
_maxright = box_controls_width; // try to move last item from last group
_rightedge = $active.get(0).getBoundingClientRect().right;
_rightedge = $active.outerWidth() + _staticPanelWidth;
var child = $(children[j]);
if (child.hasClass('elset')) { // don't add group - no enough space
need_break = true;
@ -809,7 +831,8 @@ define([
right = Common.Utils.innerWidth() - (showxy.left - parentxy.left + target.width()),
top = showxy.top - parentxy.top + target.height() + 10;
moreContainer.css({right: right, left: 'auto', top : top, 'max-width': Common.Utils.innerWidth() + 'px'});
var styles = Common.UI.isRTL() ? {left: '6px', right: 'auto', top : top, 'max-width': Common.Utils.innerWidth() + 'px'} : {right: right, left: 'auto', top : top, 'max-width': Common.Utils.innerWidth() + 'px'}
moreContainer.css(styles);
moreContainer.show();
},

View file

@ -156,7 +156,7 @@ define([
$(document).off('mousemove', onMouseMove);
me._dragstart = undefined;
me.trigger('changecomplete', me, me.value, me.lastValue);
me.trigger('changecomplete', me, Common.UI.isRTL() ? me.maxValue - me.value : me.value, me.lastValue);
};
var onMouseMove = function (e) {
@ -175,7 +175,7 @@ define([
me.value = pos/me.delta + me.minValue;
if (Math.abs(me.value-me.lastValue)>0.001)
me.trigger('change', me, me.value, me.lastValue);
me.trigger('change', me, Common.UI.isRTL() ? me.maxValue - me.value : me.value, me.lastValue);
};
var onMouseDown = function (e) {
@ -201,8 +201,8 @@ define([
me.lastValue = me.value;
me.value = pos/me.delta + me.minValue;
me.trigger('change', me, me.value, me.lastValue);
me.trigger('changecomplete', me, me.value, me.lastValue);
me.trigger('change', me, Common.UI.isRTL() ? me.maxValue - me.value : me.value, me.lastValue);
me.trigger('changecomplete', me, Common.UI.isRTL() ? me.maxValue - me.value : me.value, me.lastValue);
};
var updateslider;
@ -211,7 +211,7 @@ define([
me.lastValue = me.value;
me.value = Math.max(me.minValue, Math.min(me.maxValue, me.value + ((increase) ? me.step : -me.step)));
me.setThumbPosition(Math.round((me.value-me.minValue)*me.delta));
me.trigger('change', me, me.value, me.lastValue);
me.trigger('change', me, Common.UI.isRTL() ? me.maxValue - me.value : me.value, me.lastValue);
};
var onKeyDown = function (e) {
@ -234,7 +234,7 @@ define([
clearInterval(updateslider);
moveThumb(e.keyCode==Common.UI.Keys.UP || e.keyCode==Common.UI.Keys.RIGHT);
el.on('keydown', 'input', onKeyDown);
me.trigger('changecomplete', me, me.value, me.lastValue);
me.trigger('changecomplete', me, Common.UI.isRTL() ? me.maxValue - me.value : me.value, me.lastValue);
}
};
@ -264,7 +264,7 @@ define([
setValue: function(value) {
this.lastValue = this.value;
this.value = Math.max(this.minValue, Math.min(this.maxValue, value));
this.setThumbPosition(Math.round((value-this.minValue)*this.delta));
this.setThumbPosition(Math.round(((Common.UI.isRTL() ? this.maxValue - value : value)-this.minValue)*this.delta));
},
getValue: function() {

View file

@ -74,7 +74,9 @@ define([
render: function() {
var el = this.template(this);
this.$el = $(el);
this.$el.find('span').tooltip({
title: this.label,
placement: 'cursor'});
this.rendered = true;
this.disable(this.disabled);
return this;

View file

@ -569,8 +569,8 @@ define([
checkInvisible: function(suppress) {
var result = {
first: !this.isTabVisible(0),
last: !this.isTabVisible(this.tabs.length-1)
first: !this.isTabVisible(Common.UI.isRTL() ? this.tabs.length-1 : 0),
last: !this.isTabVisible(Common.UI.isRTL() ? 0 : this.tabs.length-1)
};
!suppress && this.fireEvent('tab:invisible', this, result);

View file

@ -56,7 +56,8 @@ define([
maxlength : undefined,
placeHolder : '',
spellcheck : false,
disabled: false
disabled: false,
resize: false
},
template: _.template([
@ -133,6 +134,7 @@ define([
this._input.on('blur', _.bind(this.onInputChanged, this));
this._input.on('keydown', _.bind(this.onKeyDown, this));
if (this.maxLength) this._input.attr('maxlength', this.maxLength);
if (!this.resize) this._input.css('resize', 'none');
if (this.disabled)
this.setDisabled(this.disabled);
@ -140,6 +142,9 @@ define([
me.rendered = true;
if (me.value)
me.setValue(me.value);
return this;
},

View file

@ -64,11 +64,11 @@ define([
template :
_.template(
'<div style="padding: 4px 0 0 12px;">' +
'<div class="palette-inner">' +
'<% var me = this; var idx = 0; %>' +
'<% $(colors).each(function(num, item) { %>' +
'<% if (me.isBlankSeparator(item)) { %> <div class="palette-color-spacer" style="width:100%;height:8px;float:left;"></div>' +
'<% } else if (me.isSeparator(item)) { %> </div><div class="divider" style="width:100%;float:left;"></div><div style="padding: 12px;">' +
'<% if (me.isBlankSeparator(item)) { %> <div class="palette-color-spacer"></div>' +
'<% } else if (me.isSeparator(item)) { %> </div><div class="divider"></div><div style="padding: 12px;">' +
'<% } else if (me.isColor(item)) { %> ' +
'<a class="palette-color color-<%=item%>" style="background:#<%=item%>" idx="<%=idx++%>">' +
'<em><span style="background:#<%=item%>;" unselectable="on">&#160;</span></em>' +
@ -79,7 +79,7 @@ define([
'</a>' +
'<% } else if (me.isEffect(item)) { %>' +
'<% if (idx>0 && me.columns>0 && idx%me.columns===0) { %> ' +
'<div style="width:100%;height:0;float:left;"></div>' +
'<div class="color-divider"></div>' +
'<% } %>' +
'<a effectid="<%=item.effectId%>" effectvalue="<%=item.effectValue%>" class="palette-color-effect color-<%=item.color%>" style="background:#<%=item.color%>" idx="<%=idx++%>">' +
'<em><span style="background:#<%=item.color%>;" unselectable="on">&#160;</span></em>' +
@ -90,8 +90,8 @@ define([
'<% }); %>' +
'</div>' +
'<% if (me.options.dynamiccolors!==undefined) { %>' +
'<div class="palette-color-dynamiccolors" style="padding: 4px 0 0 12px">' +
'<div class="palette-color-spacer" style="width:100%;height:8px;float:left;"></div>' +
'<div class="palette-color-dynamiccolors">' +
'<div class="palette-color-spacer"></div>' +
'<div class="palette-color-caption"><%=me.textRecentColors%></div>' +
'<% for (var i=0; i<me.options.dynamiccolors; i++) { %>' +
'<a class="color-dynamic-<%=i%> dynamic-empty-color <%= me.emptyColorsClass %>" color="" idx="<%=idx++%>">' +

View file

@ -170,7 +170,7 @@ define([
initialize : function(options) {
options.store = options.store || new Common.UI.TreeViewStore();
options.emptyItemText = options.emptyItemText || '';
options.itemTemplate = options.itemTemplate || _.template([
options.itemTemplate = options.itemTemplate || !Common.UI.isRTL() ? _.template([
'<div id="<%= id %>" class="tree-item <% if (!isVisible) { %>' + 'hidden' + '<% } %>" style="display: block;padding-left: <%= level*16 + 24 %>px;">',
'<% if (hasSubItems) { %>',
'<div class="tree-caret img-commonctrl ' + '<% if (!isExpanded) { %>' + 'up' + '<% } %>' + '" style="margin-left: <%= level*16 %>px;"></div>',
@ -183,6 +183,19 @@ define([
'<div class="name"><%= Common.Utils.String.htmlEncode(name) %></div>',
'<% } %>',
'</div>'
].join('')) : _.template([
'<div id="<%= id %>" class="tree-item <% if (!isVisible) { %>' + 'hidden' + '<% } %>" style="display: block;padding-right: <%= level*16 + 24 %>px;">',
'<% if (hasSubItems) { %>',
'<div class="tree-caret img-commonctrl ' + '<% if (!isExpanded) { %>' + 'up' + '<% } %>' + '" style="margin-right: <%= level*16 %>px;"></div>',
'<% } %>',
'<% if (isNotHeader) { %>',
'<div class="name not-header"><%= Common.Utils.String.htmlEncode(name) %></div>',
'<% } else if (isEmptyItem) { %>',
'<div class="name empty">' + options.emptyItemText + '</div>',
'<% } else { %>',
'<div class="name"><%= Common.Utils.String.htmlEncode(name) %></div>',
'<% } %>',
'</div>'
].join(''));
Common.UI.DataView.prototype.initialize.call(this, options);
},

View file

@ -476,7 +476,7 @@ define([
var template = '<div class="info-box">' +
'<% if (typeof iconCls !== "undefined") { %><div class="icon <%= iconCls %>"></div><% } %>' +
'<div class="text" <% if (typeof iconCls == "undefined") { %> style="padding-left:10px;" <% } %>><span><%= msg %></span>' +
'<div class="text" dir="ltr" <% if (typeof iconCls == "undefined") { %> style="padding-left:10px;" <% } %>><span><%= msg %></span>' +
'<% if (dontshow) { %><div class="dont-show-checkbox"></div><% } %>' +
'</div>' +
'</div>' +
@ -511,7 +511,8 @@ define([
text_cnt.height(Math.max(text.height(), icon_height) + ((check.length>0) ? (check.height() + parseInt(check.css('margin-top'))) : 0));
body.height(parseInt(text_cnt.css('height')) + parseInt(footer.css('height')));
var span_el = check.find('span');
window.setSize(Math.max(text.width(), span_el.length>0 ? span_el.position().left + span_el.width() : 0) + text.position().left + parseInt(text_cnt.css('padding-right')),
window.setSize(Math.max(text.width(), span_el.length>0 ? span_el.position().left + span_el.width() : 0) + text.position().left + parseInt(text_cnt.css('padding-right')) +
(Common.UI.isRTL() && icon.length > 0 ? icon.width() + parseInt(icon.css('margin-right')) + parseInt(icon.css('margin-left')) : 0),
parseInt(body.css('height')) + parseInt(header.css('height')));
} else {
text.css('white-space', 'normal');

View file

@ -62,7 +62,8 @@ define([
'btn-save-coauth': 'coauth',
'btn-synch': 'synch' };
var nativevars;
var nativevars,
helpUrl;
if ( !!native ) {
native.features = native.features || {};
@ -236,6 +237,188 @@ define([
}
}
const _checkHelpAvailable = function () {
const me = this;
const build_url = function (arg1, arg2, arg3) {
const re_ls = /\/$/;
return (re_ls.test(arg1) ? arg1 : arg1 + '/') + arg2 + arg3;
}
fetch(build_url('resources/help/', Common.Locale.getDefaultLanguage(), '/Contents.json'))
.then(function (response) {
if ( response.ok ) {
/* local help avail */
fetch(build_url('resources/help/', Common.Locale.getCurrentLanguage(), '/Contents.json'))
.then(function (response){
if ( response.ok )
helpUrl = build_url('resources/help/', Common.Locale.getCurrentLanguage(), '');
})
.catch(function (e) {
helpUrl = build_url('resources/help/', Common.Locale.getDefaultLanguage(), '');
})
}
}).catch(function (e) {
if ( me.helpUrl() ) {
fetch(build_url(me.helpUrl(), Common.Locale.getDefaultLanguage(), '/Contents.json'))
.then(function (response) {
if ( response.ok ) {
/* remote help avail */
fetch(build_url(me.helpUrl(), Common.Locale.getCurrentLanguage(), '/Contents.json'))
.then(function (response) {
if ( response.ok ) {
helpUrl = build_url(me.helpUrl(), Common.Locale.getCurrentLanguage(), '');
}
})
.catch(function (e) {
helpUrl = build_url(me.helpUrl(), Common.Locale.getDefaultLanguage(), '');
});
}
})
}
});
}
const _onAppReady = function (opts) {
_.extend(config, opts);
!!native && native.execCommand('doc:onready', '');
$('.toolbar').addClass('editor-native-color');
}
const _onDocumentReady = function () {
if ( config.isEdit ) {
function get_locked_message (t) {
switch (t) {
// case Asc.c_oAscLocalRestrictionType.Nosafe:
case Asc.c_oAscLocalRestrictionType.ReadOnly:
return Common.Locale.get("tipFileReadOnly",{name:"Common.Translation", default: "Document is read only. You can make changes and save its local copy later."});
default: return Common.Locale.get("tipFileLocked",{name:"Common.Translation", default: "Document is locked for editing. You can make changes and save its local copy later."});
}
}
const header = webapp.getController('Viewport').getView('Common.Views.Header');
const api = webapp.getController('Main').api;
const locktype = api.asc_getLocalRestrictions ? api.asc_getLocalRestrictions() : Asc.c_oAscLocalRestrictionType.None;
if ( Asc.c_oAscLocalRestrictionType.None !== locktype ) {
features.readonly = true;
header.setDocumentReadOnly(true);
api.asc_setLocalRestrictions(Asc.c_oAscLocalRestrictionType.None);
(new Common.UI.SynchronizeTip({
extCls: 'no-arrow',
placement: 'bottom',
target: $('.toolbar'),
text: get_locked_message(locktype),
showLink: false,
})).on('closeclick', function () {
this.close();
}).show();
native.execCommand('webapps:features', JSON.stringify(features));
api.asc_registerCallback('asc_onDocumentName', function () {
if ( features.readonly ) {
if ( api.asc_getLocalRestrictions() == Asc.c_oAscLocalRestrictionType.None ) {
features.readonly = false;
header.setDocumentReadOnly(false);
native.execCommand('webapps:features', JSON.stringify(features));
}
}
});
}
_checkHelpAvailable.call(this);
}
}
const _onHidePreloader = function (mode) {
features.viewmode = !mode.isEdit;
features.crypted = mode.isCrypted;
native.execCommand('webapps:features', JSON.stringify(features));
titlebuttons = {};
if ( mode.isEdit ) {
var header = webapp.getController('Viewport').getView('Common.Views.Header');
{
header.btnHome = (new Common.UI.Button({
cls: 'btn-header',
iconCls: 'toolbar__icon icon--inverse btn-home',
visible: false,
hint: 'Show Main window',
dataHint:'0',
dataHintDirection: 'right',
dataHintOffset: '10, -18',
dataHintTitle: 'K'
})).render($('#box-document-title #slot-btn-dt-home'));
titlebuttons['home'] = {btn: header.btnHome};
header.btnHome.on('click', function (e) {
native.execCommand('title:button', JSON.stringify({click: "home"}));
});
$('#id-box-doc-name').on({
'dblclick': function (e) {
native.execCommand('title:dblclick', JSON.stringify({x: e.originalEvent.screenX, y: e.originalEvent.screenY}))
},
'mousedown': function (e) {
native.execCommand('title:mousedown', JSON.stringify({x: e.originalEvent.screenX, y: e.originalEvent.screenY}))
},
'mousemove': function (e) {
native.execCommand('title:mousemove', JSON.stringify({x: e.originalEvent.screenX, y: e.originalEvent.screenY}))
},
'mouseup': function (e) {
native.execCommand('title:mouseup', JSON.stringify({x: e.originalEvent.screenX, y: e.originalEvent.screenY}))
}
});
}
if (!!header.btnSave) {
titlebuttons['save'] = {btn: header.btnSave};
var iconname = /\s?([^\s]+)$/.exec(titlebuttons.save.btn.$icon.attr('class'));
!!iconname && iconname.length && (titlebuttons.save.icon = btnsave_icons[iconname]);
}
if (!!header.btnPrint)
titlebuttons['print'] = {btn: header.btnPrint};
if (!!header.btnPrintQuick) {
titlebuttons['quickprint'] = {
btn: header.btnPrintQuick,
visible: header.btnPrintQuick.isVisible(),
};
}
if (!!header.btnUndo)
titlebuttons['undo'] = {btn: header.btnUndo};
if (!!header.btnRedo)
titlebuttons['redo'] = {btn: header.btnRedo};
for (var i in titlebuttons) {
titlebuttons[i].btn.options.signals = ['disabled'];
titlebuttons[i].btn.on('disabled', _onTitleButtonDisabled.bind(this, i));
}
if (!!titlebuttons.save) {
titlebuttons.save.btn.options.signals.push('icon:changed');
titlebuttons.save.btn.on('icon:changed', _onSaveIconChanged.bind(this));
}
}
if ( !!config.callback_editorconfig ) {
config.callback_editorconfig();
delete config.callback_editorconfig;
}
if ( native.features.singlewindow !== undefined ) {
// $('#box-document-title .hedset')[native.features.singlewindow ? 'hide' : 'show']();
!!titlebuttons.home && titlebuttons.home.btn.setVisible(native.features.singlewindow);
}
}
return {
init: function (opts) {
_.extend(config, opts);
@ -244,136 +427,13 @@ define([
let is_win_xp = nativevars && nativevars.os === 'winxp';
Common.UI.Themes.setAvailable(!is_win_xp);
Common.NotificationCenter.on('app:ready', function (opts) {
_.extend(config, opts);
!!native && native.execCommand('doc:onready', '');
$('.toolbar').addClass('editor-native-color');
});
Common.NotificationCenter.on('document:ready', function () {
if ( config.isEdit ) {
function get_locked_message (t) {
switch (t) {
// case Asc.c_oAscLocalRestrictionType.Nosafe:
case Asc.c_oAscLocalRestrictionType.ReadOnly:
return Common.Locale.get("tipFileReadOnly",{name:"Common.Translation", default: "Document is read only. You can make changes and save its local copy later."});
default: return Common.Locale.get("tipFileLocked",{name:"Common.Translation", default: "Document is locked for editing. You can make changes and save its local copy later."});
}
}
const header = webapp.getController('Viewport').getView('Common.Views.Header');
const api = webapp.getController('Main').api;
const locktype = api.asc_getLocalRestrictions ? api.asc_getLocalRestrictions() : Asc.c_oAscLocalRestrictionType.None;
if ( Asc.c_oAscLocalRestrictionType.None !== locktype ) {
features.readonly = true;
header.setDocumentReadOnly(true);
api.asc_setLocalRestrictions(Asc.c_oAscLocalRestrictionType.None);
(new Common.UI.SynchronizeTip({
extCls: 'no-arrow',
placement: 'bottom',
target: $('.toolbar'),
text: get_locked_message(locktype),
showLink: false,
})).on('closeclick', function () {
this.close();
}).show();
}
}
});
Common.NotificationCenter.on('app:face', function (mode) {
features.viewmode = !mode.isEdit;
features.crypted = mode.isCrypted;
native.execCommand('webapps:features', JSON.stringify(features));
titlebuttons = {};
if ( mode.isEdit ) {
var header = webapp.getController('Viewport').getView('Common.Views.Header');
{
header.btnHome = (new Common.UI.Button({
cls: 'btn-header',
iconCls: 'toolbar__icon icon--inverse btn-home',
visible: false,
hint: 'Show Main window',
dataHint:'0',
dataHintDirection: 'right',
dataHintOffset: '10, -18',
dataHintTitle: 'K'
})).render($('#box-document-title #slot-btn-dt-home'));
titlebuttons['home'] = {btn: header.btnHome};
header.btnHome.on('click', function (e) {
native.execCommand('title:button', JSON.stringify({click: "home"}));
});
$('#id-box-doc-name').on({
'dblclick': function (e) {
native.execCommand('title:dblclick', JSON.stringify({x: e.originalEvent.screenX, y: e.originalEvent.screenY}))
},
'mousedown': function (e) {
native.execCommand('title:mousedown', JSON.stringify({x: e.originalEvent.screenX, y: e.originalEvent.screenY}))
},
'mousemove': function (e) {
native.execCommand('title:mousemove', JSON.stringify({x: e.originalEvent.screenX, y: e.originalEvent.screenY}))
},
'mouseup': function (e) {
native.execCommand('title:mouseup', JSON.stringify({x: e.originalEvent.screenX, y: e.originalEvent.screenY}))
}
});
}
if (!!header.btnSave) {
titlebuttons['save'] = {btn: header.btnSave};
var iconname = /\s?([^\s]+)$/.exec(titlebuttons.save.btn.$icon.attr('class'));
!!iconname && iconname.length && (titlebuttons.save.icon = btnsave_icons[iconname]);
}
if (!!header.btnPrint)
titlebuttons['print'] = {btn: header.btnPrint};
if (!!header.btnPrintQuick) {
titlebuttons['quickprint'] = {
btn: header.btnPrintQuick,
visible: header.btnPrintQuick.isVisible(),
};
}
if (!!header.btnUndo)
titlebuttons['undo'] = {btn: header.btnUndo};
if (!!header.btnRedo)
titlebuttons['redo'] = {btn: header.btnRedo};
for (var i in titlebuttons) {
titlebuttons[i].btn.options.signals = ['disabled'];
titlebuttons[i].btn.on('disabled', _onTitleButtonDisabled.bind(this, i));
}
if (!!titlebuttons.save) {
titlebuttons.save.btn.options.signals.push('icon:changed');
titlebuttons.save.btn.on('icon:changed', _onSaveIconChanged.bind(this));
}
}
if ( !!config.callback_editorconfig ) {
config.callback_editorconfig();
delete config.callback_editorconfig;
}
if ( native.features.singlewindow !== undefined ) {
// $('#box-document-title .hedset')[native.features.singlewindow ? 'hide' : 'show']();
!!titlebuttons.home && titlebuttons.home.btn.setVisible(native.features.singlewindow);
}
});
Common.NotificationCenter.on({
'app:ready': _onAppReady,
'document:ready': _onDocumentReady.bind(this),
'app:face': _onHidePreloader.bind(this),
'modal:show': _onModalDialog.bind(this, 'open'),
'modal:close': _onModalDialog.bind(this, 'close'),
'modal:hide': _onModalDialog.bind(this, 'hide'),
'uitheme:changed' : function (name) {
if (Common.localStorage.getBool('ui-theme-use-system', false)) {
native.execCommand("uitheme:changed", JSON.stringify({name:'theme-system'}));
@ -449,6 +509,9 @@ define([
}
},
helpUrl: function () {
if ( helpUrl )
return helpUrl;
if ( !!nativevars && nativevars.helpUrl ) {
var webapp = window.SSE ? 'spreadsheeteditor' :
window.PE ? 'presentationeditor' : 'documenteditor';
@ -457,6 +520,9 @@ define([
return undefined;
},
isHelpAvailable: function () {
return !!helpUrl;
},
getDefaultPrinterName: function () {
return nativevars ? nativevars.defaultPrinterName : '';
},

View file

@ -324,7 +324,7 @@ Common.UI.HintManager = new(function() {
index++;
}
var title = el.attr('data-hint-title');
if (!title) {
if (!title && !(index > _arrLetters.length)) {
el.attr('data-hint-title', _arrLetters[index].toUpperCase());
index++;
}

View file

@ -263,7 +263,7 @@ define([
} else {
_group.appendTo(me.$toolbarPanelPlugins);
$('<div class="separator long invisible"></div>').appendTo(me.$toolbarPanelPlugins);
_group = $('<div class="group" style="padding-left: 0;"></div>');
_group = $('<div class="group" style="' + (Common.UI.isRTL() ? 'padding-right: 0;' : 'padding-left: 0;') + '"></div>');
}
var btn = me.panelPlugins.createPluginButton(model);

View file

@ -147,6 +147,23 @@ define([
},
onAppReady: function (config) {
var me = this;
(new Promise(function (accept, reject) {
accept();
})).then(function(){
me.onChangeProtectDocument();
Common.NotificationCenter.on('protect:doclock', _.bind(me.onChangeProtectDocument, me));
});
},
onChangeProtectDocument: function(props) {
if (!props) {
var docprotect = this.getApplication().getController('DocProtection');
props = docprotect ? docprotect.getDocProps() : null;
}
if (props && this.view) {
this.view._state.docProtection = props;
}
},
addPassword: function() {

View file

@ -1084,12 +1084,13 @@ define([
Common.Utils.lockControls(Common.enumLock.docLockReview, props.isReviewOnly, {array: [this.dlgChanges.btnAccept, this.dlgChanges.btnReject]});
Common.Utils.lockControls(Common.enumLock.docLockComments, props.isCommentsOnly, {array: [this.dlgChanges.btnAccept, this.dlgChanges.btnReject]});
}
if (this.appConfig.canReview) {
if (!this.appConfig.isReviewOnly) {
// protection in document is more important than permissions.review, call asc_SetLocalTrackRevisions even if canReview is false
if (props.isReviewOnly) {
this.onTurnPreview(true);
this.api.asc_SetLocalTrackRevisions(true);
this.onApiShowChange();
} else if (this._state.prevReviewProtected) {
this.onTurnPreview(false);
this.api.asc_SetLocalTrackRevisions(false);
this.onApiShowChange();
}
this._state.prevReviewProtected = props.isReviewOnly;

View file

@ -12,7 +12,7 @@
</div>
<div id="comments-header" class="">
<label><%=textComments%></label>
<div id="comments-btn-close" style="float:right;margin-left: 4px;"></div>
<div id="comments-btn-sort" style="float:right;"></div>
<div id="comments-btn-close"></div>
<div id="comments-btn-sort"></div>
</div>
</div>

View file

@ -2,7 +2,7 @@
<div id="id-hsb-colorpicker" style="vertical-align:top;">
</div>
<div class="color-info" style="">
<div style="margin-left:15px;">
<div class="color-preview">
<label class="color-label"><%= txtNew %></label>
<div id="field-new-color" class="color-cnt top"></div>
<div id="field-start-color" class="color-cnt bottom"></div>

View file

@ -3,6 +3,7 @@
<label id="search-adv-title"></label>
<div id="search-btn-close"></div>
</div>
<div id="search-container">
<div id="search-adv-settings">
<table cols="1">
<tbody>
@ -60,4 +61,5 @@
</div>
<div id="search-results" class="ps-container oo">
</div>
</div>
</div>

View file

@ -1,3 +1,17 @@
var checkLocalStorage = (function () {
try {
var storage = window['localStorage'];
return true;
}
catch(e) {
return false;
}
})();
if ( checkLocalStorage && localStorage.getItem("ui-rtl") === '1' ) {
document.body.setAttribute('dir', 'rtl');
document.body.classList.add('rtl');
}
function checkScaling() {
var matches = {
@ -42,16 +56,6 @@ var params = (function() {
return urlParams;
})();
var checkLocalStorage = (function () {
try {
var storage = window['localStorage'];
return true;
}
catch(e) {
return false;
}
})();
if ( window.desktop ) {
var theme = desktop.theme

View file

@ -1096,3 +1096,12 @@ Common.Utils.getKeyByValue = function(obj, value) {
}
}
};
Common.UI.isRTL = function () {
if ( window.isrtl == undefined ) {
window.isrtl = Common.localStorage.itemExists('ui-rtl') ?
Common.localStorage.getBool("ui-rtl") : Common.Locale.isCurrentLanguageRtl();
}
return window.isrtl;
};

View file

@ -51,6 +51,7 @@ define([
height: 157,
style: 'min-width: 230px;',
cls: 'modal-dlg',
id: 'window-insert-table',
split: false,
buttons: ['ok', 'cancel']
},
@ -63,10 +64,10 @@ define([
this.template = [
'<div class="box">',
'<div class="input-row">',
'<label class="text columns-text" style="width: 130px;">' + this.txtColumns + '</label><div class="columns-val" style="float: right;"></div>',
'<label class="text columns-text" style="width: 130px;">' + this.txtColumns + '</label><div class="columns-val"></div>',
'</div>',
'<div class="input-row" style="margin-top: 10px;">',
'<label class="text rows-text" style="width: 130px;">' + this.txtRows + '</label><div class="rows-val" style="float: right;"></div>',
'<label class="text rows-text" style="width: 130px;">' + this.txtRows + '</label><div class="rows-val"></div>',
'</div>',
'</div>'
].join('');

View file

@ -93,7 +93,7 @@ define([
'<ul class="dropdown-menu <%= menuCls %>" style="<%= menuStyle %>" role="menu">',
'<% _.each(items, function(item) { %>',
'<li id="<%= item.id %>" data-value="<%= item.value %>">',
'<a tabindex="-1" type="menuitem" style="padding-left: 28px !important;" langval="<%= item.value %>">',
'<a tabindex="-1" type="menuitem" langval="<%= item.value %>">',
'<i class="icon <% if (item.spellcheck) { %> toolbar__icon btn-ic-docspell spellcheck-lang <% } %>"></i>',
'<%= scope.getDisplayValue(item) %>',
'</a>',
@ -137,7 +137,7 @@ define([
onLangSelect: function(cmb, rec, e) {
cmb.$el.find('.input-icon').toggleClass('spellcheck-lang', rec && rec.spellcheck);
cmb._input.css('padding-left', rec && rec.spellcheck ? 25 : 3);
cmb._input.css(Common.UI.isRTL() ? 'padding-right' : 'padding-left', rec && rec.spellcheck ? 25 : 3);
},
onPrimary: function() {

View file

@ -64,6 +64,7 @@ define([
height: 261,
style: 'min-width: 240px;',
cls: 'modal-dlg',
id: 'window-list-settings',
split: false,
buttons: ['ok', 'cancel']
},
@ -78,35 +79,35 @@ define([
this.template = [
'<div class="box">',
'<div style="margin-bottom: 16px;">',
'<button type="button" class="btn btn-text-default auto" id="id-dlg-list-bullet" style="border-top-right-radius: 0;border-bottom-right-radius: 0;">', this.textBulleted,'</button>',
'<button type="button" class="btn btn-text-default auto" id="id-dlg-list-numbering" style="border-top-left-radius: 0;border-bottom-left-radius: 0;border-left-width: 0;margin-left: -1px;">', this.textNumbering,'</button>',
'<button type="button" class="btn btn-text-default auto" id="id-dlg-list-bullet">', this.textBulleted,'</button>',
'<button type="button" class="btn btn-text-default auto" id="id-dlg-list-numbering">', this.textNumbering,'</button>',
'</div>',
'<div style="height:120px;">',
'<table cols="3">',
'<tr>',
'<td style="padding-right: 5px;padding-bottom: 8px;min-width: 50px;">',
'<td class="padding-right" style="padding-bottom: 8px;min-width: 50px;">',
'<label class="text">' + this.txtType + '</label>',
'</td>',
'<td style="padding-right: 5px;padding-bottom: 8px;width: 105px;">',
'<td class="padding-right" style="padding-bottom: 8px;width: 105px;">',
'<div id="id-dlg-list-numbering-format" class="input-group-nr" style="width: 105px;"></div>',
'<div id="id-dlg-list-bullet-format" class="input-group-nr" style="width: 105px;"></div>',
'</td>',
'<td style="padding-bottom: 8px;"></td>',
'</tr>',
'<tr class="image">',
'<td style="padding-right: 5px;padding-bottom: 8px;min-width: 50px;">',
'<td class="padding-right" style="padding-bottom: 8px;min-width: 50px;">',
'<label class="text">' + this.txtImport + '</label>',
'</td>',
'<td style="padding-right: 5px;padding-bottom: 8px;width: 105px;">',
'<td class="padding-right" style="padding-bottom: 8px;width: 105px;">',
'<div id="id-dlg-list-image" style="width: 105px;"></div>',
'</td>',
'<td style="padding-bottom: 8px;"></td>',
'</tr>',
'<tr>',
'<td style="padding-right: 5px;padding-bottom: 8px;min-width: 50px;">',
'<td class="padding-right" style="padding-bottom: 8px;min-width: 50px;">',
'<label class="text">' + this.txtSize + '</label>',
'</td>',
'<td style="padding-right: 5px;padding-bottom: 8px;width: 105px;">',
'<td class="padding-right" style="padding-bottom: 8px;width: 105px;">',
'<div id="id-dlg-list-size"></div>',
'</td>',
'<td style="padding-bottom: 8px;">',
@ -114,19 +115,19 @@ define([
'</td>',
'</tr>',
'<tr class="numbering">',
'<td style="padding-right: 5px;padding-bottom: 8px;min-width: 50px;">',
'<td class="padding-right" style="padding-bottom: 8px;min-width: 50px;">',
'<label class="text" style="white-space: nowrap;">' + this.txtStart + '</label>',
'</td>',
'<td style="padding-right: 5px;padding-bottom: 8px;width: 105px;">',
'<td class="padding-right" style="padding-bottom: 8px;width: 105px;">',
'<div id="id-dlg-list-start"></div>',
'</td>',
'<td style="padding-bottom: 8px;"></td>',
'</tr>',
'<tr class="color">',
'<td style="padding-right: 5px;padding-bottom: 8px;min-width: 50px;">',
'<td class="padding-right" style="padding-bottom: 8px;min-width: 50px;">',
'<label class="text">' + this.txtColor + '</label>',
'</td>',
'<td style="padding-right: 5px;padding-bottom: 8px;width: 105px;">',
'<td class="padding-right" style="padding-bottom: 8px;width: 105px;">',
'<div id="id-dlg-list-color"></div>',
'</td>',
'<td style="padding-bottom: 8px;"></td>',

View file

@ -87,10 +87,17 @@ define([
}
if (me.appConfig.isSignatureSupport) {
if (this.btnSignature.menu)
if (this.btnSignature.menu) {
this.btnSignature.menu.on('item:click', function (menu, item, e) {
me.fireEvent('protect:signature', [item.value, false]);
});
this.btnSignature.menu.on('show:after', function (menu, e) {
if (me._state) {
var isProtected = me._state.docProtection ? me._state.docProtection.isReadOnly || me._state.docProtection.isFormsOnly || me._state.docProtection.isCommentsOnly : false;
menu.items && menu.items[1].setDisabled(isProtected || me._state.disabled);
}
});
}
this.btnsInvisibleSignature.forEach(function(button) {
button.on('click', function (b, e) {
@ -310,13 +317,14 @@ define([
SetDisabled: function (state, canProtect) {
this._state.disabled = state;
this._state.invisibleSignDisabled = state && !canProtect;
var isProtected = this._state.docProtection ? this._state.docProtection.isReadOnly || this._state.docProtection.isFormsOnly || this._state.docProtection.isCommentsOnly : false;
this.btnsInvisibleSignature && this.btnsInvisibleSignature.forEach(function(button) {
if ( button ) {
button.setDisabled(state && !canProtect);
}
}, this);
if (this.btnSignature && this.btnSignature.menu) {
this.btnSignature.menu.items && this.btnSignature.menu.items[1].setDisabled(state); // disable adding signature line
this.btnSignature.menu.items && this.btnSignature.menu.items[1].setDisabled(state || isProtected); // disable adding signature line
this.btnSignature.setDisabled(state && !canProtect); // disable adding any signature
}
this.btnsAddPwd.concat(this.btnsDelPwd, this.btnsChangePwd).forEach(function(button) {

View file

@ -615,7 +615,7 @@ define([
}
me.btnSharing && me.btnSharing.updateHint(me.tipSharing);
me.btnHistory && me.btnHistory.updateHint(me.tipHistory);
me.btnChat && me.btnChat.updateHint(me.txtChat + Common.Utils.String.platformKey('Alt+Q'));
me.btnChat && me.btnChat.updateHint(me.txtChat + (!Common.Utils.isMac ? Common.Utils.String.platformKey('Alt+Q') : ''));
if (me.btnCoAuthMode) {
me.btnCoAuthMode.setMenu(

View file

@ -176,6 +176,13 @@ define([
this.$resultsContainer = $('#search-results');
this.$resultsContainer.hide();
this.$searchContainer = $('#search-container');
this.$searchContainer.scroller = new Common.UI.Scroller({
el : $('#search-container'),
useKeyboard : true,
minScrollbarLength: 40
});
Common.NotificationCenter.on('search:updateresults', _.bind(this.disableNavButtons, this));
if (window.SSE) {
this.cmbWithin = new Common.UI.ComboBox({
@ -327,10 +334,23 @@ define([
ChangeSettings: function(props) {
},
updateScrollers: function () {
this.$resultsContainer.scroller.update({alwaysVisibleY: true});
this.$searchContainer.scroller.update({alwaysVisibleY: true});
setTimeout(_.bind(function () {
if (this.$searchContainer.find('> .ps-scrollbar-y-rail').is(':visible')) {
this.$resultsContainer.find('.ps-scrollbar-y-rail').addClass('set-left');
} else {
this.$resultsContainer.find('.ps-scrollbar-y-rail').removeClass('set-left');
}
}, this), 100);
},
updateResultsContainerHeight: function () {
if (this.$resultsContainer) {
this.$resultsContainer.outerHeight($('#search-box').outerHeight() - $('#search-header').outerHeight() - $('#search-adv-settings').outerHeight());
this.$resultsContainer.scroller.update({alwaysVisibleY: true});
this.$resultsContainer.outerHeight(Math.max($('#search-box').outerHeight() - $('#search-header').outerHeight() - $('#search-adv-settings').outerHeight(), 112));
this.updateScrollers();
}
},

View file

@ -79,7 +79,7 @@ define([
'<div class="input-row">',
'<label>' + this.textInstructions + '</label>',
'</div>',
'<textarea id="id-dlg-sign-settings-instructions" class="form-control" style="width: 100%;height: 35px;margin-bottom: 10px;resize: none;"></textarea>',
'<div id="id-dlg-sign-settings-instructions">',
'<div id="id-dlg-sign-settings-date"></div>',
'</div>',
'<div class="footer center">',
@ -121,15 +121,12 @@ define([
disabled : this.type=='view'
});
me.textareaInstructions = this.$window.find('textarea');
me.textareaInstructions.val(this.textDefInstruction);
me.textareaInstructions.keydown(function (event) {
if (event.keyCode == Common.UI.Keys.RETURN) {
event.stopPropagation();
}
me.textareaInstructions = new Common.UI.TextareaField({
el : $window.find('#id-dlg-sign-settings-instructions'),
style : 'width: 100%; height: 35px;margin-bottom: 10px;',
value : this.textDefInstruction,
disabled : this.type=='view'
});
(this.type=='view') ? this.textareaInstructions.attr('disabled', 'disabled') : this.textareaInstructions.removeAttr('disabled');
this.textareaInstructions.toggleClass('disabled', this.type=='view');
this.chDate = new Common.UI.CheckBox({
el: $('#id-dlg-sign-settings-date'),
@ -160,7 +157,7 @@ define([
value = props.asc_getEmail();
me.inputEmail.setValue(value ? value : '');
value = props.asc_getInstructions();
me.textareaInstructions.val(value ? value : '');
me.textareaInstructions.setValue(value ? value : '');
me.chDate.setValue(props.asc_getShowDate());
me._currentGuid = props.asc_getGuid();
@ -174,7 +171,7 @@ define([
props.asc_setSigner1(me.inputName.getValue());
props.asc_setSigner2(me.inputTitle.getValue());
props.asc_setEmail(me.inputEmail.getValue());
props.asc_setInstructions(me.textareaInstructions.val());
props.asc_setInstructions(me.textareaInstructions.getValue());
props.asc_setShowDate(me.chDate.getValue()=='checked');
(me._currentGuid!==undefined) && props.asc_setGuid(me._currentGuid);

View file

@ -411,17 +411,17 @@ define([
this.template = [
'<div class="box">',
'<div style="margin-bottom: 16px;" class="'+ (this.special ? '' : 'hidden') +'">',
'<button type="button" class="btn btn-text-default auto" id="symbol-table-symbols" style="border-top-right-radius: 0;border-bottom-right-radius: 0;">', this.textSymbols,'</button>',
'<button type="button" class="btn btn-text-default auto" id="symbol-table-special" style="border-top-left-radius: 0;border-bottom-left-radius: 0;border-left-width: 0;margin-left: -1px;">', this.textSpecial,'</button>',
'<button type="button" class="btn btn-text-default auto" id="symbol-table-symbols">', this.textSymbols,'</button>',
'<button type="button" class="btn btn-text-default auto" id="symbol-table-special">', this.textSpecial,'</button>',
'</div>',
'<div id="symbol-table-pnl-symbols">',
'<table cols="2" style="width: 100%;max-width: 497px;">',
'<tr>',
'<td style="padding-right: 5px;padding-bottom: 8px;width: 50%;">',
'<td class="padding-right" style="padding-bottom: 8px;width: 50%;">',
'<label class="input-label">' + this.textFont + '</label>',
'<div id="symbol-table-cmb-fonts"></div>',
'</td>',
'<td style="padding-left: 5px;padding-bottom: 8px;">',
'<td class="padding-left" style="padding-bottom: 8px;">',
'<label class="input-label">' + this.textRange + '</label>',
'<div id="symbol-table-cmb-range"></div>',
'</td>',
@ -450,17 +450,17 @@ define([
'</table>',
'<table cols="2" style="width: 100%;max-width: 497px;">',
'<tr>',
'<td style="padding-right: 5px; width: 50%;">',
'<td class="padding-right" style="width: 50%;">',
'<label class="input-label">' + this.textCode + '</label>',
'</td>',
'<td style="padding-left: 5px;">',
'<td class="padding-left">',
'</td>',
'</tr>',
'<tr>',
'<td style="padding-right: 5px;">',
'<td class="padding-right">',
'<div id="symbol-table-text-code" oo_editor_input="true"></div>',
'</td>',
'<td style="padding-left: 5px;">',
'<td class="padding-left">',
'<div id="symbol-table-label-font" style="overflow: hidden; text-overflow: ellipsis;white-space: nowrap;max-width: 160px;"></div>',
'</td>',
'</tr>',
@ -471,7 +471,7 @@ define([
'<tr>',
'<td>',
'<label>' + this.textCharacter + '</label>',
'<label id="symbol-table-lbl-shortcut" style="float: right; width: 107px;">' + this.textShortcut + '</label>',
'<label id="symbol-table-lbl-shortcut" style="width: 107px;">' + this.textShortcut + '</label>',
'</td>',
'</tr>',
'<tr>',
@ -1093,7 +1093,7 @@ define([
oCell.css('border-bottom', 'none');
oRecentsDiv.append(oCell);
if(i === (nCols - 1)){
oCell.css('border-right', 'none');
oCell.css(Common.UI.isRTL() ? 'border-left' : 'border-right', 'none');
}
}
},

View file

@ -22,6 +22,11 @@
line-height: normal;
height: auto;
white-space: normal;
.rtl & {
text-align: right;
padding: 9px 12px 9px 2px;
}
}
}
@ -89,3 +94,52 @@
width:44px;
height:20px;
}
#window-list-settings {
#id-dlg-list-bullet {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
.rtl & {
.border-radius(@border-radius-small);
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
}
#id-dlg-list-numbering {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
border-left-width: 0;
margin-left: -1px;
.rtl & {
border: @scaled-one-px-value solid @border-regular-control;
.border-radius(@border-radius-small);
margin-left: 0;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
border-right-width: 0;
margin-right: -1px;
}
}
.padding-right {
padding-right: 5px;
.rtl & {
padding-right: 0;
padding-left: 5px;
}
}
}
#window-insert-table {
.columns-val, .rows-val {
float: right;
.rtl & {
float: left;
}
}
}

View file

@ -260,6 +260,10 @@
.caret {
margin: 0 1px 0 4px;
.rtl & {
margin: 0 4px 0 1px;
}
}
}
}
@ -477,6 +481,10 @@
&.align-left {
text-align: left;
.rtl & {
text-align: right;
}
}
}
@ -532,12 +540,40 @@
> .btn {
+ .dropdown-toggle {
padding: 0 4px 0 3px;
.rtl & {
padding: 0 3px 0 4px;
}
}
.rtl & {
float: right;
}
&:first-child:not(:last-child):not(.dropdown-toggle) {
.rtl & {
.border-radius(@border-radius-small);
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
}
}
> .dropdown-toggle:first-child {
.inner-box-caret {
padding: 0 4px 0 3px;
.rtl & {
padding: 0 3px 0 4px;
}
}
}
> .dropdown-toggle:not(first-child) {
.rtl & {
.border-radius(@border-radius-small);
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
}
@ -675,6 +711,11 @@
border:@scaled-one-px-value solid @border-regular-control;
.border-radius(@border-radius-small);
.rtl & {
padding: @scaled-one-px-value-ie @scaled-one-px-value-ie @scaled-one-px-value-ie 11px;
padding: @scaled-one-px-value @scaled-one-px-value @scaled-one-px-value 11px ;
}
span:nth-child(1) {
float: left;
width: 100%;
@ -688,6 +729,11 @@
position: absolute;
right: 0;
top: 2px;
.rtl & {
right: auto;
left: 0;
}
}
&,
@ -713,6 +759,12 @@
height: 34px;
transform: translate(16px, -9px) rotate(62deg);
left: 0;
.rtl & {
left: auto;
right: 0;
transform: translate(-16px, -9px) rotate(62deg);
}
}
}
@ -734,13 +786,26 @@
// for color button auto color
.dropdown-menu {
li > a.selected,
li > a:hover {
li > a {
span.color-auto {
outline: @scaled-one-px-value-ie solid @icon-normal-ie;
outline: @scaled-one-px-value solid @icon-normal;
border: @scaled-one-px-value-ie solid @background-normal-ie;
border: @scaled-one-px-value solid @background-normal;
background-image: none;
width: 12px;
height: 12px;
margin: 1px 7px 0 1px;
.rtl & {
margin: 1px 1px 0 7px;
}
}
&.selected,
&:hover {
span.color-auto {
outline: @scaled-one-px-value-ie solid @icon-normal-ie;
outline: @scaled-one-px-value solid @icon-normal;
border: @scaled-one-px-value-ie solid @background-normal-ie;
border: @scaled-one-px-value solid @background-normal;
}
}
}
}
@ -862,6 +927,11 @@
position: absolute;
right: 5px;
margin-top: 5px;
.rtl & {
right: auto;
left: 5px;
}
}
&:hover:not(.disabled),
@ -904,6 +974,12 @@
&:not(.dropdown-toggle) {
border-right: none;
.rtl & {
border: @scaled-one-px-value-ie solid @border-regular-control-ie;
border: @scaled-one-px-value solid @border-regular-control;
border-left: none;
}
}
&:hover:not(.disabled),
@ -1004,6 +1080,11 @@
border: @scaled-one-px-value-ie solid @border-regular-control-ie;
border: @scaled-one-px-value solid @border-regular-control;
position: relative;
.rtl & {
margin-right: 0;
margin-left: 3px;
}
}
&.sheet-template-table {

View file

@ -20,6 +20,11 @@
margin-top: 5px;
margin-bottom: 5px;
right: 4px !important;
.rtl & {
right: unset !important;
left: 4px !important;
}
}
#chat-title {
@ -60,6 +65,10 @@
height: 12px;
border: 1px solid @border-toolbar-ie;
border: 1px solid @border-toolbar;
.rtl & {
margin: 0 0 3px 5px;
}
}
.name {
@ -119,6 +128,10 @@
border: 1px solid @border-toolbar;
margin: 0 5px 3px 0;
vertical-align: middle;
.rtl & {
margin: 0 0 3px 5px;
}
}
.message {

View file

@ -6,6 +6,11 @@
position: relative;
min-height: 1em;
.rtl & {
padding-left: 0;
padding-right: 22px;
}
input[type=checkbox] {
display: none;
@ -21,6 +26,11 @@
left: 0;
margin-top: auto;
.rtl & {
left: auto;
right: 0;
}
+ span {
outline: @scaled-one-px-value-ie dotted transparent;
outline: @scaled-one-px-value dotted transparent;

View file

@ -14,6 +14,11 @@
li {
a {
white-space: normal;
padding: 2px 0 2px 10px;
.rtl & {
padding: 2px 10px 2px 0;
}
}
span {
@ -28,6 +33,9 @@
height:20px;
background-color: transparent;
image-rendering: pixelated;
.rtl & {
float: left;
}
}
}
@ -61,6 +69,16 @@
background-image: ~"url(@{common-image-const-path}/combo-border-size/BorderSize@2x.png)";
}
}
&.combo-border-type {
.rtl & li img {
float: right;
}
}
&:not(.combo-border-type) .dropdown-menu li a {
padding: 5px 20px;
}
}
.combo-color {

View file

@ -15,6 +15,10 @@
background-color: @background-normal-ie;
background-color: @background-normal;
.rtl & {
float: right;
}
.dataview {
padding: 1px;
}
@ -24,6 +28,10 @@
display: inline-block;
float: right;
.rtl & {
float: left;
}
button {
border-radius:0 @border-radius-small @border-radius-small 0;
border: @scaled-one-px-value-ie solid @border-regular-control-ie;
@ -31,6 +39,10 @@
background-color: @background-normal-ie;
background-color: @background-normal;
.rtl & {
border-radius:@border-radius-small 0 0 @border-radius-small;
}
&.dropdown-toggle {
.inner-box-caret {
padding: 0 1px 0 0;
@ -101,6 +113,16 @@
.border-left-radius(0);
.rtl & {
margin-right: 0;
padding-right: 0;
margin-left: -@combo-dataview-button-width;
padding-left: @combo-dataview-button-width;
.border-radius(@border-radius-small);
.border-right-radius(0);
}
.dataview {
@minus-px: calc(-1px / @pixel-ratio-factor);
height: @combo-dataview-height;
@ -243,6 +265,13 @@
margin-right: -@combo-dataview-button-width;
padding-right: @combo-dataview-button-width;
.rtl & {
margin-right: 0;
padding-right: 0;
margin-left: -@combo-dataview-button-width;
padding-left: @combo-dataview-button-width;
}
.dataview {
padding: 2px;
}
@ -281,6 +310,13 @@
.view {
margin-right: -@combo-dataview-button-width;
padding-right: @combo-dataview-button-width;
.rtl & {
margin-right: 0;
padding-right: 0;
margin-left: -@combo-dataview-button-width;
padding-left: @combo-dataview-button-width;
}
}
.button {
@ -291,6 +327,10 @@
.item {
margin: @combo-dataview-item-margins 0 @combo-dataview-item-margins @combo-dataview-item-margins;
.box-shadow(none);
.rtl & {
margin: @combo-dataview-item-margins @combo-dataview-item-margins @combo-dataview-item-margins 0;
}
}
&.disabled {
@ -337,6 +377,11 @@
margin-left: 4px;
.box-shadow(0 0 0 @scaled-one-px-value-ie @border-regular-control-ie);
.box-shadow(0 0 0 @scaled-one-px-value @border-regular-control);
.rtl & {
margin: 2px 0 2px 2px;
margin-right: 4px;
}
}
&.disabled {
@ -361,6 +406,11 @@
position: absolute;
padding-right: 12px;
.rtl & {
padding-right: 0;
padding-left: 12px;
}
.more-container & {
position: static;
}
@ -390,6 +440,11 @@
.group-description {
padding: 3px 0 3px 10px;
.font-weight-bold();
.rtl & {
padding: 3px 10px 3px 0;
text-align: right;
}
}
}
}
@ -412,6 +467,13 @@
.view {
margin-right: -@combo-dataview-button-width;
padding-right: calc(@combo-dataview-button-width - @scaled-one-px-value);
.rtl & {
margin-right: 0;
padding-right: 0;
margin-left: -@combo-dataview-button-width;
padding-left: calc(@combo-dataview-button-width - @scaled-one-px-value);
}
}
.view .dataview, .dropdown-menu {

View file

@ -17,11 +17,28 @@
border-top-right-radius: 2px !important;
border-bottom-right-radius: 2px !important;
.rtl & {
border-top-left-radius: 2px !important;
border-bottom-left-radius: 2px !important;
}
}
&.input-group-nr > .btn {
.rtl & {
border-top-right-radius: 0 !important;
border-bottom-right-radius: 0 !important;
}
}
&.input-group-nr > .form-control {
padding-right: 7px + 2 * @padding-base-horizontal;
.font-size-normal();
.rtl & {
padding-right: 3px;
padding-left: 7px + 2 * @padding-base-horizontal;
}
}
.form-control {
@ -40,6 +57,12 @@
line-height: 20px;
padding-left: 2px;
}
.rtl & {
border: @scaled-one-px-value-ie solid @border-regular-control-ie;
border: @scaled-one-px-value solid @border-regular-control;
border-left: 0;
}
}
.btn {
@ -53,6 +76,16 @@
position: absolute;
top: 0;
right: 0;
.rtl & {
border: @scaled-one-px-value-ie solid;
border: @scaled-one-px-value solid;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
border-right: 0;
right: unset;
left: 0;
}
}
.btn-default:not(.disabled),
@ -62,6 +95,11 @@
border-color: @border-regular-control-ie;
border-color: @border-regular-control;
padding-right: 5px;
.rtl & {
padding-right: 3px;
padding-left: 5px;
}
}
.btn-default.disabled {
@ -69,6 +107,11 @@
border-top-color: transparent;
border-bottom-color: transparent;
.rtl & {
border-left-color: @border-regular-control-ie;
border-left-color: @border-regular-control;
}
&:hover, &:focus {
background-color: transparent;
border-right-color: @border-regular-control-ie;
@ -178,6 +221,10 @@
.dropdown-menu.menu-absolute {
position: fixed;
.rtl & {
right: unset;
}
}
.dropdown-menu.show-top {
@ -192,6 +239,57 @@
}
}
}
&.combobox-icons {
.form-control {
padding:2px 0 2px 3px;
display: block;
div {
display: inline-block;
overflow: hidden;
width: 100%;
height: 100%;
}
}
li a {
padding: 5px;
img {
width:16px;
height:16px;
margin-right: 5px;
.rtl & {
margin-right: 0;
margin-left: 5px;
}
}
}
}
&.combobox-color {
.form-control {
display: block;
padding: 2px 14px 2px 3px;
div {
display: inline-block;
overflow: hidden;
width: 100%;
height: 100%;
}
.rtl & {
padding: 2px 3px 2px 14px;
}
}
li a {
padding: 5px;
div {
height: 15px;
}
}
}
}
.open > .combobox.combo-dataview-menu {

View file

@ -23,6 +23,25 @@
.font-weight-bold();
margin-top: 2px;
}
#comments-btn-close {
float: right;
margin-left: 4px;
.rtl & {
float: left;
margin-left: 0;
margin-right: 4px;
}
}
#comments-btn-sort {
float: right;
.rtl & {
float: left;
}
}
}
.messages-ct {
@ -44,6 +63,11 @@
margin-top: 5px;
margin-bottom: 5px;
right: 4px !important;
.rtl & {
right: unset !important;
left: 4px !important;
}
}
.dataview-ct.inner {
@ -110,9 +134,19 @@
.btn {
&.add {
margin-left: 20px;
.rtl & {
margin-left: 0;
margin-right: 20px;
}
}
&.cancel {
margin-left: 7px;
.rtl & {
margin-left: 0;
margin-right: 7px;
}
}
}
}
@ -175,6 +209,10 @@
padding: 10px 65px 0 0px;
height: 26px;
cursor: default;
.rtl & {
padding: 10px 0px 0 65px;
}
}
.color {
@ -184,6 +222,10 @@
border: @scaled-one-px-value solid @border-toolbar;
margin: 0 5px 3px 0;
vertical-align: middle;
.rtl & {
margin: 0 0 3px 5px;
}
}
.user-name-colored {
@ -273,6 +315,12 @@
top: 0;
margin: 11px 21px 10px 10px;
height: 20px;
.rtl & {
right: unset;
left: 0;
margin: 11px 10px 10px 21px;
}
}
.btns-reply-ct {
@ -281,6 +329,11 @@
top: 0;
height: 30px;
margin-top: 11px;
.rtl & {
right: unset;
left: 0;
}
}
.reply-item-ct {
@ -292,6 +345,10 @@
div[class^=btn-] {
float: left;
cursor: pointer;
.rtl & {
float: right;
}
}
.btn-edit,.btn-delete, .btn-resolve, .icon-resolve, .btn-resolve-check, .btn-accept, .btn-reject, .btn-goto {
@ -299,6 +356,10 @@
height: 16px;
margin: 0 0 0 5px;
background-color: transparent;
.rtl & {
margin: 0 5px 0 0;
}
}
.icon-resolve {

View file

@ -57,6 +57,11 @@ label {
.tool-menu-btns {
border-right: @scaled-one-px-value-ie solid @border-toolbar-ie;
border-right: @scaled-one-px-value solid @border-toolbar;
.rtl & {
border-left: @scaled-one-px-value solid @border-toolbar;
border-right: 0 none;
}
}
}
@ -69,6 +74,14 @@ label {
background-color: @background-toolbar;
right: 0;
overflow: hidden;
.rtl & {
left: 0;
right: auto;
border-right: @scaled-one-px-value solid @border-toolbar;
border-left: 0 none;
}
}
}
}
@ -91,6 +104,13 @@ label {
border-right: @scaled-one-px-value-ie solid @border-toolbar-ie;
border-right: @scaled-one-px-value solid @border-toolbar;
.rtl & {
padding-right: 40px;
padding-left: 0;
border-left: @scaled-one-px-value solid @border-toolbar;
border-right: 0 none;
}
#left-panel-chat {
height: 100%;
}
@ -114,6 +134,11 @@ label {
border-left: @scaled-one-px-value-ie solid @border-toolbar-ie;
border-left: @scaled-one-px-value solid @border-toolbar;
line-height: 15px;
.rtl & {
border-right: @scaled-one-px-value solid @border-toolbar;
border-left: 0 none;
}
}
.statusbar {
@ -146,6 +171,13 @@ label {
border-right: @scaled-one-px-value solid @border-toolbar;
background-color: @background-toolbar-ie;
background-color: @background-toolbar;
.rtl & {
float: right;
border-right: none;
border-left: @scaled-one-px-value-ie solid @border-toolbar-ie;
border-left: @scaled-one-px-value solid @border-toolbar;
}
}
.flex-settings {
@ -229,6 +261,11 @@ label {
color: @text-normal-ie;
color: @text-normal;
}
.rtl & {
left: unset;
right: 0;
}
}
textarea {
@ -298,7 +335,32 @@ body {
&.pixel-ratio__1_75 {
image-rendering: crisp-edges; // FF only
}
font-family: @font-family-sans-serif;
font-family: @font-family-base;
}
.rtl .ps-scrollbar-y-rail {
right: unset !important;
left: 1px !important;
.ps-scrollbar-y {
left: 0 !important;
}
}
.menu-margins {
.margin-vertical {
display: inline-block;
margin-right: 20px;
min-width: 80px;
.rtl & {
margin-right: 0;
margin-left: 20px;
}
}
.margin-horizontal {
display: inline-block;
}
label {
display: block;
}
}

View file

@ -27,6 +27,10 @@
.box-shadow(0 0 0 @scaled-one-px-value-ie @border-regular-control-ie);
.box-shadow(0 0 0 @scaled-one-px-value @border-regular-control);
.rtl & {
float: right;
}
&:hover,
&.selected {
.box-shadow(0 0 0 2px @border-preview-select-ie);
@ -42,10 +46,25 @@
clear: left;
overflow: hidden;
.rtl & {
clear: right;
}
&.inline {
display: inline-block;
.rtl & {
float: right;
clear: none;
}
&.margin .group-items-container {
margin-right: 20px;
.rtl & {
margin-right: 0;
margin-left: 20px;
}
}
}
@ -62,6 +81,10 @@
float: left;
margin: 2px 4px 4px;
.rtl & {
float: right;
}
&:not(.disabled) {
cursor: pointer;
}
@ -99,9 +122,20 @@
.menu-insert-shape, .menu-change-shape {
width: 362px;
padding: 10px 5px 10px 10px !important;
.rtl & {
padding: 10px 10px 10px 5px !important;
}
.group-description {
padding: 3px 0 3px 4px;
.rtl & {
padding: 3px 4px 3px 0;
text-align: right;
}
}
.dataview .grouped-data .group-items-container .item {
box-shadow: none;
margin: 2px 2px 2px;

View file

@ -53,6 +53,10 @@
background-color: @highlight-button-hover-ie;
background-color: @highlight-button-hover;
}
.rtl & {
text-align: right;
}
}
&.over > a {
@ -77,6 +81,12 @@
float: left;
margin-left: -18px;
background-position: @menu-check-offset-x @menu-check-offset-y;
.rtl & {
float: right;
margin-left: 0;
margin-right: -18px;
}
}
&.custom-scale:before {
margin-top: 3px;
@ -96,6 +106,11 @@
margin: -2px 5px 0 -15px;
background-repeat: no-repeat;
opacity: @component-normal-icon-opacity;
.rtl & {
float: right;
margin: -2px -15px 0 5px;
}
}
.no-checkmark.checked {
@ -138,9 +153,16 @@
li {
& > a {
padding-left: 28px;
.rtl & {
padding-left: 20px;
padding-right: 28px;
}
}
.menu-item-icon {
margin: -2px 0 0 -24px;
.rtl & {
margin: -2px -24px 0 0;
}
}
.checked:not(.no-checkmark):before {
margin-left: -22px;

View file

@ -8,6 +8,10 @@
margin-left: -1px;
border-radius:@border-radius-base;
.rtl & {
margin-left: 1px;
}
&.pull-right {
right: 100%;
left: auto;
@ -27,6 +31,16 @@
border-left-color: @icon-normal;
margin-top: 5px;
margin-right: -7px;
.rtl & {
float: left;
margin-right: 0;
margin-left: -7px;
border-color: transparent;
border-width: 3px 3px 3px 0;
border-right-color: @icon-normal-ie;
border-right-color: @icon-normal;
}
}
&.over:not(.disabled) > .dropdown-menu {

View file

@ -57,6 +57,10 @@
&:before {
height: 64px;
transform: translate(29px, -22px) rotate(73deg);
.rtl & {
transform: translate(-29px, -22px) rotate(73deg);
}
}
}
}
@ -78,4 +82,13 @@
}
}
}
.color-preview {
margin-left: 15px;
.rtl & {
margin-left: 0;
margin-right: 15px;
}
}
}

View file

@ -82,6 +82,12 @@
margin-left: calc(-4px - @scaled-one-px-value);
position: absolute;
background-position: -168px -200px;
.rtl & {
margin-left: 0;
margin-right: -4px;
margin-right: calc(-3px - @scaled-one-px-value);
}
}
.empty-color {

View file

@ -50,6 +50,11 @@
height: 16px;
background-position: @input-error-offset-x @input-error-offset-y;
filter: none;
.rtl & {
right: unset;
left: 3px;
}
}
}
@ -58,6 +63,10 @@
.input-error {
float: left;
position: relative;
.rtl & {
float: right;
}
}
&.form-control:focus,
@ -138,14 +147,30 @@ textarea.form-control:focus {
height: 20px;
height: calc(22px - @scaled-one-px-value * 2);
}
.rtl & {
right: unset;
left: @scaled-one-px-value-ie;
left: @scaled-one-px-value;
}
}
.input-error {
&:before {
right: 22px;
.rtl & {
right: unset;
left: 22px;
}
}
}
input {
padding-right: 20px;
.rtl & {
padding-right: 3px;
padding-left: 20px;
}
}
}

View file

@ -8,6 +8,9 @@
li {
.icon.spellcheck-lang {
margin: -3px 4px 0 -24px;
.rtl & {
margin: -3px -24px 0 4px;
}
}
&.selected, a.checked {
@ -39,6 +42,13 @@ li {
li .icon.lang-flag {
margin-top: 1px;
}
li a {
padding-left: 28px !important;
.rtl & {
padding-left: 0 !important;
padding-right: 28px !important;
}
}
}
.input-icon {
@ -46,10 +56,18 @@ li {
&.spellcheck-lang { // spell check indicator
left: 2px;
top: 1px;
.rtl & {
left: auto;
right: 2px;
}
}
&.lang-flag { // language flags
left: 5px;
top: 5px;
.rtl & {
left: auto;
right: 5px;
}
}
}
}

View file

@ -10,6 +10,12 @@
svg {
margin-right: 8px;
.rtl & {
margin-right: 0;
margin-left: 8px;
}
.rb-circle {
fill: @background-normal-ie;
fill: @background-normal;

View file

@ -132,14 +132,15 @@
#search-btn-close {
float: right;
.rtl & {
float: left;
}
}
}
#search-adv-settings {
position: absolute;
left: 0;
right: 0;
top: 45px;
position: relative;
padding: 10px 15px 0 15px;
table {
@ -170,6 +171,11 @@
.search-nav-btns {
display: inline-block;
float: right;
.rtl & {
float: left;
}
div {
display: inline-block;
}
@ -200,6 +206,11 @@
cursor: pointer;
margin-left: 15px;
.rtl & {
margin-left: 0;
margin-right: 15px;
}
.search-options-txt {
display: inline-block;
padding: 5px 0;
@ -214,6 +225,13 @@
left: 0;
cursor: pointer;
margin-left: 8px;
.rtl & {
margin-left: 0;
margin-right: 8px;
left: unset;
right: 0;
}
}
}
@ -234,14 +252,15 @@
}
.search-options-caret {
transform: rotate(270deg);
.rtl & {
transform: rotate(90deg);
}
}
}
#search-results {
position: absolute;
left: 0;
right: 0;
bottom: 0;
position: relative;
width: 100%;
border-top: @scaled-one-px-value-ie solid @border-toolbar-ie;
border-top: @scaled-one-px-value solid @border-toolbar;
@ -268,6 +287,21 @@
font-style: italic;
}
}
.ps-scrollbar-y-rail {
&.set-left {
right: 11px !important;
}
}
}
#search-container {
position: absolute;
overflow: hidden;
top: 45px;
left: 0;
right: 0;
bottom: 0;
}
}

View file

@ -15,6 +15,12 @@
padding: 0;
width: 0;
.rtl & {
border-left: none;
border-right: @scaled-one-px-value-ie solid @border-divider-ie;
border-right: @scaled-one-px-value solid @border-divider;
}
&.horizontal {
height: 0;
display: block;

View file

@ -9,6 +9,12 @@
padding-left: 1px;
padding-right: @trigger-width + 2px;
.rtl & {
text-align: left;
padding-left: @trigger-width + 2px;
padding-right: 1px;
}
&:focus {
// border-color: @border-preview-select;
}
@ -46,6 +52,12 @@
border-bottom: @scaled-one-px-value-ie solid transparent;
border-bottom: @scaled-one-px-value solid transparent;
font-size: 11px; // must be const value
.rtl & {
right: unset;
left: 1px;
}
i {
display: inline-block;
width: 4px;

View file

@ -24,6 +24,12 @@
cursor: default;
overflow:hidden;
display: inline-block;
.rtl & {
border-right: none;
border-left: @scaled-one-px-value-ie solid @border-regular-control-ie;
border-left: @scaled-one-px-value solid @border-regular-control;
}
}
.cell-selected{
@ -58,3 +64,60 @@
overflow:hidden;
}
}
#symbol-table-symbols {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
.rtl & {
.border-radius(@border-radius-small);
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
}
#symbol-table-special {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
border-left-width: 0;
margin-left: -1px;
.rtl & {
border: @scaled-one-px-value solid @border-regular-control;
.border-radius(@border-radius-small);
margin-left: 0;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
border-right-width: 0;
margin-right: -1px;
}
}
#symbol-table-pnl-symbols {
.padding-right {
padding-right: 5px;
.rtl & {
padding-right: 0;
padding-left: 5px;
}
}
.padding-left {
padding-left: 5px;
.rtl & {
padding-left: 0;
padding-right: 5px;
}
}
}
#symbol-table-lbl-shortcut {
float: right;
.rtl & {
float: left;
}
}

View file

@ -32,6 +32,10 @@
outline: 0 none;
cursor: pointer;
.rtl & {
float: right;
}
em span {
border: @scaled-one-px-value-ie solid @border-color-shading-ie;
border: @scaled-one-px-value solid @border-color-shading;
@ -66,10 +70,48 @@
}
}
.palette-inner {
padding: 4px 0 0 12px;
.rtl & {
padding: 4px 12px 0 0;
}
}
.palette-color-caption {
width:100%;
float:left;
.font-size-normal();
.rtl & {
float: right;
text-align: right;
}
}
.palette-color-spacer {
width: 100%;
height: 8px;
float: left;
.rtl & {
float: right;
}
}
.palette-color-dynamiccolors {
padding: 4px 0 0 12px;
.rtl & {
padding: 4px 12px 0 0;
}
}
.divider {
width: 100%;
float: left;
}
.color-divider {
width:100%;
height:0;
float:left;
}
}

View file

@ -169,6 +169,11 @@
&:after {
transform: rotate(135deg);
margin-left: 8px;
.rtl & {
margin-left: 0;
margin-right: 4px;
}
}
}
&.right{
@ -178,6 +183,11 @@
&:after {
transform: rotate(-45deg);
margin-left: 4px;
.rtl & {
margin-left: 0;
margin-right: 8px;
}
}
}
@ -211,6 +221,11 @@
-ms-flex: 1;
padding-right: 6px;
.rtl & {
padding-right: 0;
padding-left: 6px;
}
.panel:not(.active) {
display: none;
}
@ -245,6 +260,9 @@
padding: 12px 10px 7px 0;
border-radius: 0;
z-index:999;
.rtl & {
padding: 12px 0 7px 10px;
}
.compactwidth {
.btn-group, .btn-toolbar {
&.x-huge {
@ -280,6 +298,18 @@
.more-box {
background-color: @background-toolbar-ie;
background-color: @background-toolbar;
position: absolute;
right: 0;
padding-left: 12px;
padding-right: 6px;
display: none;
.rtl & {
right: unset;
left: 0;
padding-left: 6px;
padding-right: 12px;
}
}
background-color: @background-toolbar-ie;
@ -296,11 +326,26 @@
padding-left: 6px;
font-size: 0;
.rtl & {
padding-left: 0;
padding-right: 6px;
}
&.small {
padding-left: 10px;
.rtl & {
padding-left: 0;
padding-right: 10px;
}
+ .separator:not(.invisible) {
margin-left: 10px;
.rtl & {
margin-left: 0;
margin-right: 10px;
}
}
}
@ -695,6 +740,10 @@
height: 46px;
.view {
padding-right: 14px;
.rtl & {
padding-right: 0;
padding-left: 14px;
}
}
.dataview.field-picker {
height: 100%;
@ -704,17 +753,22 @@
margin: 0;
-webkit-box-shadow: none;
box-shadow: none;
&:hover {
background-color: @highlight-button-hover-ie;
background-color: @highlight-button-hover;
}
&.active {
background-color: @highlight-button-pressed-ie;
background-color: @highlight-button-pressed;
}
svg.icon {
fill: @icon-normal-pressed-ie;
fill: @icon-normal-pressed;
&:not(.disabled) {
.item {
&:hover {
background-color: @highlight-button-hover-ie;
background-color: @highlight-button-hover;
}
&.active {
background-color: @highlight-button-pressed-ie;
background-color: @highlight-button-pressed;
svg.icon {
fill: @icon-normal-pressed-ie;
fill: @icon-normal-pressed;
}
}
}
}
@ -764,13 +818,27 @@
.menu-insertchart {
margin: 5px 5px 0 10px;
.rtl & {
margin: 5px 10px 0 5px;
}
.group-description {
padding-left: 4px;
.rtl & {
padding: 0;
padding-right: 4px;
text-align: right;
}
}
.group-items-container {
float: left;
position: relative;
.rtl & {
float: right;
}
}
}
@ -795,6 +863,10 @@
&.colors {
display: inline-block;
margin-right: 15px;
.rtl & {
margin-right: 0;
margin-left: 15px;
}
}
&.color {
@ -865,8 +937,22 @@
.menu-iconsets {
margin: 5px 5px 0 10px;
.rtl & {
margin: 5px 10px 0 5px;
}
.group-description {
text-align: right;
}
.group-items-container > div {
margin-right: 8px !important;
.rtl & {
margin-right: 4px !important;
margin-left: 8px !important;
}
&:not(:hover),
&:not(.selected) {
.box-shadow(none);
@ -875,6 +961,10 @@
.item-iconset {
img {
margin: 2px;
.rtl & {
float: right;
}
}
width: 100px;

View file

@ -79,8 +79,17 @@
left: 0;
cursor: pointer;
.rtl & {
left: unset;
right: 0;
}
&.up {
transform: rotate(270deg);
.rtl & {
transform: rotate(90deg);
}
}
}
}

View file

@ -205,6 +205,11 @@
.icon {
float: left;
margin: 0 0 0 10px;
.rtl & {
float: right;
margin: 0 10px 0 10px;
}
}
min-height: 90px;
@ -215,9 +220,18 @@
padding: 20px 20px 20px 10px;
height: 50px;
.rtl & {
padding: 20px 10px 20px 20px;
}
.text {
padding-left: 60px;
.rtl & {
padding-left: 0;
padding-right: 60px;
}
span {
.font-size-medium();
white-space: nowrap;
@ -256,6 +270,11 @@
button {
&:not(:first-child) {
margin-left: 10px;
.rtl & {
margin-left: 0;
margin-right: 10px;
}
}
}
}
@ -314,6 +333,11 @@
button {
&:not(:first-child) {
margin-left: 10px;
.rtl & {
margin-left: 0;
margin-right: 10px;
}
}
}
}

View file

@ -28,7 +28,7 @@ const SharingSettingsController = props => {
if (msgData?.needUpdate) {
setSharingSettings(msgData.sharingSettings);
}
f7.views.current.router.back();
props.f7router.back();
}
}
};

View file

@ -92,8 +92,10 @@ class CommentsController extends Component {
}
addComment (id, data) {
const comment = this.readSDKComment(id, data);
if (comment) {
this.storeComments.addComment(comment);
this.changeShowComments([comment.uid]);
}
}
addComments (data) {
@ -294,6 +296,7 @@ class AddCommentController extends Component {
!!comment.asc_putDocumentFlag && comment.asc_putDocumentFlag(documentFlag);
api.asc_addComment(comment);
Common.Notifications.trigger('viewcomment');
}
}
render() {

View file

@ -10,6 +10,7 @@ export class storeComments {
showComments: observable,
changeShowComment: action,
removeShowComment: action,
addComment: action,
removeComment: action,

View file

@ -2,6 +2,7 @@ import React, { Fragment } from 'react';
import { observer, inject } from "mobx-react";
import { Page, Navbar, Link } from "framework7-react";
import { useTranslation } from "react-i18next";
import { Device } from '../../utils/device';
const PageAbout = props => {
const { t } = useTranslation();
@ -18,7 +19,7 @@ const PageAbout = props => {
const infoCustomer = customer ? customer.info : null;
const logoCustomer = customer ? customer.logo : null;
const publisherUrl = __PUBLISHER_URL__,
const publisherUrl = __PUBLISHER_URL__,
publisherPrintUrl = publisherUrl.replace(/https?:\/{2}|\/$/g,"");
const publisherName = __PUBLISHER_NAME__.replace(/\\"/g, '"');
@ -31,93 +32,87 @@ const PageAbout = props => {
const nameEditor = (_t.textEditor || editors[editorType]).toUpperCase();
return (
<Page className="about">
<Page className={"about" + (!Device.phone ? " about_tablet" : Device.ios ? " about_ios" : " about_android")}>
<Navbar title={_t.textAbout} backLink={_t.textBack} />
{licInfo && typeof licInfo == 'object' && typeof(customer) == 'object' ? (
<Fragment>
<div className="content-block">
<div className="logo-block">
{logoCustomer && logoCustomer.length ? (
<div id="settings-about-logo" className="settings-about-logo">
<div id="settings-about-logo" className="logo-block__elem">
<img src={logoCustomer} alt="" />
</div>
) : null}
</div>
<div className="content-block">
<h3>{nameEditor}</h3>
<h3>{_t.textVersion} {__PRODUCT_VERSION__}</h3>
<div className="about__editor">
<p className="about__text">{nameEditor}</p>
<p className="about__text">{_t.textVersion} {__PRODUCT_VERSION__}</p>
</div>
<div className="content-block">
{nameCustomer && nameCustomer.length ? (
<h3 id="settings-about-name" className="vendor">{nameCustomer}</h3>
) : null}
{addressCustomer && addressCustomer.length ? (
<p>
<label>{_t.textAddress}:</label>
{mailCustomer || phoneCustomer ? (
<div className="about__customer">
{mailCustomer && mailCustomer.length ? (
<p className="about__text">
<Link id="settings-about-email" external={true} href={"mailto:"+mailCustomer}>{mailCustomer}</Link>
</p>
) : null}
{phoneCustomer && phoneCustomer.length ? (
<p className="about__text">
<Link id="settings-about-tel" external={true} href={"tel:"+phoneCustomer}>{phoneCustomer}</Link>
</p>
) : null}
</div>
) : null}
{addressCustomer && addressCustomer.length ? (
<div className="about__customer">
<p className="about__text">
<Link id="settings-about-address" external={true}>{addressCustomer}</Link>
</p>
</div>
) : null}
{nameCustomer || infoCustomer || urlCustomer ? (
<div className="about__customer">
{nameCustomer && nameCustomer.length ? (
<p id="settings-about-name" className="about__text">{nameCustomer}</p>
) : null}
{infoCustomer && infoCustomer.length ? (
<p className="about__text">{infoCustomer}</p>
) : null}
{urlCustomer && urlCustomer.length ? (
<p className="about__text">
<Link id="settings-about-url" external={true} target="_blank"
href={!/^https?:\/{2}/i.test(urlCustomer) ? "http:\/\/" : '' + urlCustomer}>
{urlCustomer}
</Link>
</p>
) : null}
{mailCustomer && mailCustomer.length ? (
<p>
<label>{_t.textEmail}:</label>
<Link id="settings-about-email" external={true} href={"mailto:"+mailCustomer}>{mailCustomer}</Link>
</p>
) : null}
{phoneCustomer && phoneCustomer.length ? (
<p>
<label>{_t.textTel}:</label>
<Link id="settings-about-tel" external={true} href={"tel:"+phoneCustomer}>{phoneCustomer}</Link>
</p>
) : null}
{urlCustomer && urlCustomer.length ? (
<p>
<Link id="settings-about-url" external={true} target="_blank"
href={!/^https?:\/{2}/i.test(urlCustomer) ? "http:\/\/" : '' + urlCustomer}>
{urlCustomer}
</Link>
</p>
) : null}
{infoCustomer && infoCustomer.length ? (
<p>
<label id="settings-about-info">{infoCustomer}</label>
</p>
) : null}
</div>
<div className="content-block" id="settings-about-licensor">
<div className="content-block-inner"></div>
<p>
<label>{_t.textPoweredBy}</label>
</div>
) : null}
<div className="about__contacts">
<p className="about__text" id="settings-about-address">
{__PUBLISHER_ADDRESS__}
</p>
<h3 className="vendor">{publisherName}</h3>
<p>
</div>
<div className="about__licensor" id="settings-about-licensor">
<p className="about__text">{publisherName}</p>
<p className="about__text">
<Link external={true} target="_blank" href={publisherUrl}>{publisherPrintUrl}</Link>
</p>
</div>
</Fragment>
) : (
<Fragment>
<div className="content-block">
<div className="logo"></div>
<div className="about__logo"></div>
<div className="about__editor">
<p className="about__text">{nameEditor}</p>
<p className="about__text">{_t.textVersion} {__PRODUCT_VERSION__}</p>
</div>
<div className="content-block">
<h3>{nameEditor}</h3>
<h3>{_t.textVersion} {__PRODUCT_VERSION__}</h3>
<div className="about__contacts">
<p className="about__text" id="settings-about-address">
{__PUBLISHER_ADDRESS__}
</p>
</div>
<div className="content-block">
<h3 id="settings-about-name" className="vendor">{publisherName}</h3>
<p>
<label>{_t.textAddress}:</label>
<a id="settings-about-address" className="external">{__PUBLISHER_ADDRESS__}</a>
</p>
<p>
<label>{_t.textEmail}:</label>
<Link id="settings-about-email" external={true} href={`mailto:${__SUPPORT_EMAIL__}`}>{__SUPPORT_EMAIL__}</Link>
</p>
<p>
<label>{_t.textTel}:</label>
<Link id="settings-about-tel" external={true} href={`tel:${__PUBLISHER_PHONE__}`}>{__PUBLISHER_PHONE__}</Link>
</p>
<p>
<div className="about__licensor">
<p className="about__text" id="settings-about-name">{publisherName}</p>
<p className="about__text">
<Link id="settings-about-url" external={true} target="_blank" href={publisherUrl}>{publisherPrintUrl}</Link>
</p>
</div>

View file

@ -7,20 +7,11 @@ const ViewSharingSettings = props => {
const sharingSettingsUrl = props.sharingSettingsUrl;
const _t = t('Common.Collaboration', {returnObjects: true});
function resizeHeightIframe(selector) {
const iFrame = document.querySelector(selector);
iFrame.height = iFrame.contentWindow.document.body.scrollHeight;
};
useEffect(() => {
resizeHeightIframe('#sharing-placeholder iframe');
}, []);
return (
<Page>
<Navbar title={t('Common.Collaboration.textSharingSettings')} backLink={_t.textBack} />
<div id="sharing-placeholder" className="sharing-placeholder">
<iframe width="100%" frameBorder={0} scrolling="0" align="top" src={sharingSettingsUrl}></iframe>
<iframe width="100%" height="500" frameBorder={0} scrolling="0" align="top" src={sharingSettingsUrl}></iframe>
</div>
</Page>
)

View file

@ -92,6 +92,9 @@ const PageCollaboration = inject('storeAppOptions', 'users')(observer(props => {
const { t } = useTranslation();
const _t = t('Common.Collaboration', {returnObjects: true});
const appOptions = props.storeAppOptions;
const documentInfo = props.documentInfo;
const dataDoc = documentInfo && documentInfo.dataDoc;
const fileType = dataDoc && dataDoc.fileType;
const sharingSettingsUrl = appOptions.sharingSettingsUrl;
const isViewer = appOptions.isViewer;
@ -108,7 +111,7 @@ const PageCollaboration = inject('storeAppOptions', 'users')(observer(props => {
}
</Navbar>
<List>
{sharingSettingsUrl &&
{(sharingSettingsUrl && fileType !== 'oform') &&
<ListItem title={t('Common.Collaboration.textSharingSettings')} link="/sharing-settings/">
<Icon slot="media" icon="icon-sharing-settings"></Icon>
</ListItem>
@ -148,10 +151,10 @@ class CollaborationView extends Component {
return (
show_popover ?
<Popover id="coauth-popover" className="popover__titled" onPopoverClosed={() => this.props.onclosed()} closeByOutsideClick={false}>
<PageCollaboration style={{height: '410px'}} page={this.props.page}/>
<PageCollaboration documentInfo={this.props.documentInfo} style={{height: '410px'}} page={this.props.page}/>
</Popover> :
<Sheet className="coauth__sheet" push onSheetClosed={() => this.props.onclosed()}>
<PageCollaboration page={this.props.page}/>
<PageCollaboration documentInfo={this.props.documentInfo} page={this.props.page}/>
</Sheet>
)
}
@ -177,9 +180,9 @@ const Collaboration = props => {
};
return (
<CollaborationView usePopover={!Device.phone} onclosed={onviewclosed} page={props.page}/>
<CollaborationView usePopover={!Device.phone} documentInfo={props.storeDocumentInfo} onclosed={onviewclosed} page={props.page}/>
)
};
export {PageCollaboration}
export default Collaboration;
const CollaborationDocument = inject('storeDocumentInfo')(observer(Collaboration));
export {Collaboration, CollaborationDocument};

View file

@ -791,10 +791,12 @@ const CommentList = inject("storeComments", "storeAppOptions", "storeReview")(ob
{isEdit && !viewMode &&
<Link className={`btn-add-reply${(wsProps?.Objects || isViewer) && !canEditComments ? ' disabled' : ''}`} href='#' onClick={() => {onCommentMenuClick('addReply', comment);}}>{_t.textAddReply}</Link>
}
<div className='comment-navigation row'>
<Link href='#' onClick={onViewPrevComment}><Icon slot='media' icon='icon-prev'/></Link>
<Link href='#' onClick={onViewNextComment}><Icon slot='media' icon='icon-next'/></Link>
</div>
{comments.length > 1 &&
<div className='comment-navigation row'>
<Link href='#' onClick={onViewPrevComment}><Icon slot='media' icon='icon-prev'/></Link>
<Link href='#' onClick={onViewNextComment}><Icon slot='media' icon='icon-next'/></Link>
</div>
}
</Toolbar>
<div className='pages'>
<Page className='page-current-comment'>

View file

@ -127,7 +127,9 @@ body.theme-type-dark {
:root .theme-type-dark {
--f7-navbar-bg-color: #232323;
--f7-bars-bg-color-rgb: 35,35,35;
--f7-subnavbar-bg-color: #232323;
--f7-bars-translucent-opacity: 1;
}
.md .word-editor {

View file

@ -0,0 +1,24 @@
<svg width="187" height="80" viewBox="0 0 187 80" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M107.133 71.7924C107.133 73.5073 106.683 74.8051 105.784 75.6859C104.884 76.562 103.563 77 101.82 77H99.3738V66.7804H102.135C103.766 66.7804 105.005 67.2068 105.854 68.0596C106.706 68.9124 107.133 70.1567 107.133 71.7924ZM106.357 71.8203C106.357 70.357 105.984 69.2573 105.238 68.521C104.498 67.78 103.407 67.4095 101.967 67.4095H100.087V76.3709H101.778C104.831 76.3709 106.357 74.854 106.357 71.8203Z" fill="white"/>
<path d="M118.072 71.8762C118.072 73.4979 117.667 74.7818 116.856 75.7278C116.045 76.6691 114.927 77.1398 113.501 77.1398C112.08 77.1398 110.963 76.6691 110.153 75.7278C109.342 74.7818 108.936 73.4933 108.936 71.8623C108.936 70.2359 109.344 68.9567 110.16 68.0247C110.98 67.088 112.098 66.6197 113.515 66.6197C114.941 66.6197 116.057 67.0903 116.863 68.0317C117.669 68.9683 118.072 70.2499 118.072 71.8762ZM109.712 71.8762C109.712 73.3395 110.038 74.4719 110.691 75.2734C111.343 76.0703 112.28 76.4688 113.501 76.4688C114.731 76.4688 115.67 76.0726 116.318 75.2804C116.97 74.4882 117.296 73.3535 117.296 71.8762C117.296 70.4037 116.97 69.2759 116.318 68.493C115.67 67.7055 114.736 67.3117 113.515 67.3117C112.299 67.3117 111.36 67.7078 110.698 68.5C110.041 69.2922 109.712 70.4176 109.712 71.8762Z" fill="white"/>
<path d="M124.79 67.2767C123.508 67.2767 122.499 67.6868 121.763 68.507C121.027 69.3272 120.659 70.4503 120.659 71.8762C120.659 73.3348 121.006 74.4672 121.7 75.2734C122.395 76.0796 123.387 76.4827 124.678 76.4827C125.536 76.4827 126.323 76.3732 127.041 76.1542V76.7833C126.365 77.021 125.522 77.1398 124.51 77.1398C123.075 77.1398 121.945 76.6761 121.12 75.7488C120.295 74.8214 119.883 73.5259 119.883 71.8623C119.883 70.8231 120.079 69.9074 120.47 69.1151C120.866 68.3229 121.432 67.7125 122.169 67.2837C122.91 66.8503 123.769 66.6336 124.748 66.6336C125.745 66.6336 126.638 66.82 127.425 67.1929L127.139 67.8359C126.393 67.4631 125.61 67.2767 124.79 67.2767Z" fill="white"/>
<path d="M136.834 66.7804V73.3931C136.834 74.5674 136.494 75.4855 135.813 76.1472C135.133 76.8089 134.185 77.1398 132.968 77.1398C131.785 77.1398 130.86 76.8089 130.193 76.1472C129.532 75.4808 129.201 74.5535 129.201 73.3651V66.7804H129.921V73.3931C129.921 74.3764 130.193 75.143 130.738 75.6929C131.284 76.2381 132.055 76.5107 133.052 76.5107C134.026 76.5107 134.781 76.2427 135.317 75.7068C135.853 75.1663 136.121 74.4183 136.121 73.463V66.7804H136.834Z" fill="white"/>
<path d="M144.118 77L140.308 67.5633H140.252C140.289 68.1412 140.308 68.733 140.308 69.3388V77H139.623V66.7804H140.727L144.348 75.7697H144.39L148.011 66.7804H149.088V77H148.368V69.2549C148.368 68.7144 148.396 68.1552 148.451 67.5773H148.396L144.572 77H144.118Z" fill="white"/>
<path d="M157.567 77H151.982V66.7804H157.567V67.4375H152.694V71.303H157.294V71.9601H152.694V76.3429H157.567V77Z" fill="white"/>
<path d="M167.311 77H166.591L160.537 67.9268H160.482C160.537 69.008 160.565 69.8235 160.565 70.3734V77H159.88V66.7804H160.593L166.64 75.8396H166.682C166.64 75.0008 166.619 74.204 166.619 73.449V66.7804H167.311V77Z" fill="white"/>
<path d="M172.875 77H172.155V67.4515H168.835V66.7804H176.195V67.4515H172.875V77Z" fill="white"/>
<path d="M183.36 74.3647C183.36 75.2175 183.046 75.8932 182.417 76.3919C181.792 76.8905 180.96 77.1398 179.921 77.1398C178.672 77.1398 177.715 77.0023 177.048 76.7274V76.0144C177.784 76.3266 178.723 76.4827 179.865 76.4827C180.704 76.4827 181.368 76.2917 181.857 75.9095C182.351 75.5228 182.598 75.0171 182.598 74.3927C182.598 74.0059 182.517 73.6867 182.354 73.435C182.191 73.1787 181.925 72.9457 181.557 72.736C181.189 72.5263 180.648 72.3003 179.935 72.058C178.891 71.6992 178.169 71.3124 177.768 70.8976C177.372 70.4782 177.174 69.9213 177.174 69.227C177.174 68.4627 177.472 67.8406 178.069 67.3606C178.67 66.876 179.441 66.6336 180.382 66.6336C181.342 66.6336 182.244 66.8154 183.088 67.1789L182.829 67.794C181.981 67.4398 181.17 67.2628 180.396 67.2628C179.641 67.2628 179.04 67.4375 178.593 67.787C178.146 68.1365 177.922 68.6118 177.922 69.213C177.922 69.5905 177.989 69.9004 178.125 70.1427C178.264 70.385 178.49 70.604 178.803 70.7998C179.115 70.9908 179.651 71.2215 180.41 71.4918C181.207 71.7667 181.806 72.0347 182.207 72.2956C182.608 72.552 182.899 72.8455 183.081 73.1764C183.267 73.5026 183.36 73.8987 183.36 74.3647Z" fill="white"/>
<path d="M84.7491 66.0992H91.4194V67.7954H87.0331V70.4894H91.0301V72.1606H87.0331V75.1788H91.4194V76.8501H84.7491V66.0992Z" fill="white"/>
<path d="M82.9323 66.3491V68.2199C82.543 68.0952 82.1277 67.9954 81.7124 67.9205C81.2712 67.8457 80.804 67.8208 80.3109 67.8208C79.117 67.8208 78.2086 68.17 77.5857 68.8684C76.9628 69.5668 76.6254 70.4648 76.6254 71.5374C76.6254 72.5601 76.9109 73.4331 77.5078 74.1316C78.1048 74.83 78.9613 75.1792 80.1033 75.1792C80.4926 75.1792 80.9078 75.1543 81.375 75.1044C81.8422 75.0545 82.3094 74.9298 82.8025 74.7053L82.9582 76.5262C82.8804 76.5511 82.7766 76.601 82.6468 76.626C82.517 76.6509 82.3613 76.7008 82.1796 76.7507C81.8682 76.8006 81.5307 76.8754 81.1155 76.9253C80.7002 76.9752 80.259 77.0001 79.7918 77.0001C79.7399 77.0001 79.662 77.0001 79.6101 77.0001C79.5582 77.0001 79.4804 77.0001 79.4285 76.9752C78.1307 76.9003 76.9628 76.4514 75.8727 75.5783C74.8086 74.7302 74.2635 73.3833 74.2635 71.5624C74.2635 69.7913 74.7826 68.4444 75.8468 67.4716C76.9109 66.4987 78.3124 66.0248 80.0773 66.0248C80.5445 66.0248 80.9598 66.0498 81.3491 66.0747C81.7384 66.0996 82.1277 66.1745 82.4911 66.2493C82.5689 66.2742 82.6468 66.2992 82.7506 66.2992C82.7506 66.3241 82.8544 66.3491 82.9323 66.3491Z" fill="white"/>
<path d="M70.0331 76.8501V66.0992H72.3171V76.8501H70.0331Z" fill="white"/>
<path d="M62.4803 66.0992H68.7353V67.9201H64.7384V70.5393H68.5536V72.3352H64.7384V76.8501H62.4803V66.0992Z" fill="white"/>
<path d="M54.5383 66.0992H60.8193V67.9201H56.8223V70.5393H60.6116V72.3352H56.8223V76.8501H54.5383V66.0992Z" fill="white"/>
<path d="M42.0803 71.4877C42.0803 69.6668 42.6254 68.2948 43.7154 67.3719C44.8055 66.449 46.0773 66 47.5307 66C48.9842 66 50.2559 66.449 51.346 67.3719C52.4361 68.2948 52.9811 69.6668 52.9811 71.4877C52.9811 73.3086 52.4361 74.6805 51.346 75.6034C50.2559 76.5263 48.9842 76.9753 47.5307 76.9753C46.0773 76.9753 44.8055 76.5263 43.7154 75.6034C42.6254 74.6805 42.0803 73.3086 42.0803 71.4877ZM44.4422 71.4877C44.4422 72.7348 44.6757 73.6827 45.1689 74.2564C45.662 74.8551 46.1811 75.2043 46.778 75.3789C46.9078 75.4038 47.0376 75.4288 47.1674 75.4537C47.2971 75.4787 47.4269 75.4787 47.5307 75.4787C47.6605 75.4787 47.7903 75.4787 47.92 75.4537C48.0498 75.4288 48.1796 75.4038 48.3093 75.3789C48.8803 75.2292 49.3994 74.8551 49.8926 74.2564C50.3597 73.6578 50.6193 72.7598 50.6193 71.5126C50.6193 70.2654 50.3857 69.3674 49.8926 68.7688C49.4254 68.1701 48.8803 67.8209 48.3093 67.6463C48.1796 67.5964 48.0498 67.5715 47.92 67.5715C47.7903 67.5465 47.6605 67.5465 47.5307 67.5465C47.4009 67.5465 47.2712 67.5465 47.1674 67.5715C47.0376 67.5964 46.9078 67.6214 46.778 67.6463C46.2071 67.796 45.662 68.1701 45.1689 68.7688C44.7017 69.3425 44.4422 70.2405 44.4422 71.4877Z" fill="white"/>
<path d="M31.9322 66.1002H34.5536L36.8376 69.8917L37.201 70.6151H37.2529L37.6162 69.8917L39.9521 66.1002H42.3399L38.317 72.4859V76.851H36.033V72.4609L31.9322 66.1002Z" fill="white"/>
<path d="M26.5856 66.1002H28.8436V75.0551H33.3077V76.851H26.5856V66.1002Z" fill="white"/>
<path d="M14.6206 66.1002H17.5534L21.4206 72.885L22.0176 74.3317H22.0695L22.0176 72.436V66.1002H24.2756V76.851H21.3428L17.4496 69.8169L16.8786 68.6196H16.8267L16.8786 70.5402V76.851H14.6206V66.1002Z" fill="white"/>
<path d="M2.5 71.4881C2.5 69.6672 3.04504 68.2953 4.13512 67.3724C5.2252 66.4494 6.49696 66.0004 7.9504 66.0004C9.40384 66.0004 10.6756 66.4494 11.7657 67.3724C12.8558 68.2953 13.4008 69.6672 13.4008 71.4881C13.4008 73.309 12.8558 74.6809 11.7657 75.6038C10.6756 76.5268 9.40384 76.9758 7.9504 76.9758C6.49696 76.9758 5.2252 76.5268 4.13512 75.6038C3.07099 74.6809 2.5 73.309 2.5 71.4881ZM4.88779 71.4881C4.88779 72.7353 5.12138 73.6832 5.61451 74.2569C6.10764 74.8555 6.62673 75.2047 7.22368 75.3793C7.35345 75.4043 7.48322 75.4292 7.61299 75.4542C7.74276 75.4791 7.87254 75.4791 7.97635 75.4791C8.10613 75.4791 8.2359 75.4791 8.36567 75.4542C8.49544 75.4292 8.62521 75.4043 8.75498 75.3793C9.32598 75.2297 9.84506 74.8555 10.3382 74.2569C10.8054 73.6582 11.0649 72.7602 11.0649 71.513C11.0649 70.2658 10.8313 69.3679 10.3382 68.7692C9.87101 68.1706 9.32598 67.8213 8.75498 67.6467C8.62521 67.5969 8.49544 67.5719 8.36567 67.5719C8.2359 67.547 8.10613 67.547 7.97635 67.547C7.84658 67.547 7.71681 67.547 7.61299 67.5719C7.48322 67.5969 7.35345 67.6218 7.22368 67.6467C6.65268 67.7964 6.10764 68.1706 5.61451 68.7692C5.12138 69.3429 4.88779 70.2409 4.88779 71.4881Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M90.6387 51.3873L67.9496 41.0935C66.0168 40.1948 66.0168 38.806 67.9496 37.989L75.8487 34.3944L90.5546 41.0935C92.4874 41.9922 95.5966 41.9922 97.4454 41.0935L112.151 34.3944L120.05 37.989C121.983 38.8877 121.983 40.2765 120.05 41.0935L97.3613 51.3873C95.5966 52.2042 92.4874 52.2042 90.6387 51.3873Z" fill="#FF6F3D"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M90.5651 38.6492L67.9452 28.3434C66.0183 27.4437 66.0183 26.0533 67.9452 25.2353L75.6527 21.7183L90.5651 28.507C92.492 29.4067 95.5918 29.4067 97.4349 28.507L112.347 21.7183L120.055 25.2353C121.982 26.135 121.982 27.5255 120.055 28.3434L97.4349 38.6492C95.508 39.5489 92.4082 39.5489 90.5651 38.6492Z" fill="#95C038"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M90.5651 26.0433L67.9452 15.8859C66.0183 14.9991 66.0183 13.6286 67.9452 12.8225L90.5651 2.66507C92.492 1.77831 95.5918 1.77831 97.4349 2.66507L120.055 12.8225C121.982 13.7093 121.982 15.0797 120.055 15.8859L97.4349 26.0433C95.508 26.8494 92.4082 26.8494 90.5651 26.0433Z" fill="#5DC0E8"/>
</svg>

After

Width:  |  Height:  |  Size: 9.6 KiB

View file

@ -0,0 +1,24 @@
<svg width="187" height="80" viewBox="0 0 187 80" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M107.133 71.7924C107.133 73.5073 106.683 74.8051 105.784 75.6859C104.884 76.562 103.563 77 101.82 77H99.3738V66.7804H102.135C103.766 66.7804 105.005 67.2068 105.854 68.0596C106.706 68.9124 107.133 70.1567 107.133 71.7924ZM106.357 71.8203C106.357 70.357 105.984 69.2573 105.238 68.521C104.498 67.78 103.407 67.4095 101.967 67.4095H100.087V76.3709H101.778C104.831 76.3709 106.357 74.854 106.357 71.8203Z" fill="black" fill-opacity="0.6"/>
<path d="M118.072 71.8762C118.072 73.4979 117.667 74.7818 116.856 75.7278C116.045 76.6691 114.927 77.1398 113.501 77.1398C112.08 77.1398 110.963 76.6691 110.153 75.7278C109.342 74.7818 108.936 73.4933 108.936 71.8623C108.936 70.2359 109.344 68.9567 110.16 68.0247C110.98 67.088 112.098 66.6197 113.515 66.6197C114.941 66.6197 116.057 67.0903 116.863 68.0317C117.669 68.9683 118.072 70.2499 118.072 71.8762ZM109.712 71.8762C109.712 73.3395 110.038 74.4719 110.691 75.2734C111.343 76.0703 112.28 76.4688 113.501 76.4688C114.731 76.4688 115.67 76.0726 116.318 75.2804C116.97 74.4882 117.296 73.3535 117.296 71.8762C117.296 70.4037 116.97 69.2759 116.318 68.493C115.67 67.7055 114.736 67.3117 113.515 67.3117C112.299 67.3117 111.36 67.7078 110.698 68.5C110.041 69.2922 109.712 70.4176 109.712 71.8762Z" fill="black" fill-opacity="0.6"/>
<path d="M124.79 67.2767C123.508 67.2767 122.499 67.6868 121.763 68.507C121.027 69.3272 120.659 70.4503 120.659 71.8762C120.659 73.3348 121.006 74.4672 121.7 75.2734C122.395 76.0796 123.387 76.4827 124.678 76.4827C125.536 76.4827 126.323 76.3732 127.041 76.1542V76.7833C126.365 77.021 125.522 77.1398 124.51 77.1398C123.075 77.1398 121.945 76.6761 121.12 75.7488C120.295 74.8214 119.883 73.5259 119.883 71.8623C119.883 70.8231 120.079 69.9074 120.47 69.1151C120.866 68.3229 121.432 67.7125 122.169 67.2837C122.91 66.8503 123.769 66.6336 124.748 66.6336C125.745 66.6336 126.638 66.82 127.425 67.1929L127.139 67.8359C126.393 67.4631 125.61 67.2767 124.79 67.2767Z" fill="black" fill-opacity="0.6"/>
<path d="M136.834 66.7804V73.3931C136.834 74.5674 136.494 75.4855 135.813 76.1472C135.133 76.8089 134.185 77.1398 132.968 77.1398C131.785 77.1398 130.86 76.8089 130.193 76.1472C129.532 75.4808 129.201 74.5535 129.201 73.3651V66.7804H129.921V73.3931C129.921 74.3764 130.193 75.143 130.738 75.6929C131.284 76.2381 132.055 76.5107 133.052 76.5107C134.026 76.5107 134.781 76.2427 135.317 75.7068C135.853 75.1663 136.121 74.4183 136.121 73.463V66.7804H136.834Z" fill="black" fill-opacity="0.6"/>
<path d="M144.118 77L140.308 67.5633H140.252C140.289 68.1412 140.308 68.733 140.308 69.3388V77H139.623V66.7804H140.727L144.348 75.7697H144.39L148.011 66.7804H149.088V77H148.368V69.2549C148.368 68.7144 148.396 68.1552 148.451 67.5773H148.396L144.572 77H144.118Z" fill="black" fill-opacity="0.6"/>
<path d="M157.567 77H151.982V66.7804H157.567V67.4375H152.694V71.303H157.294V71.9601H152.694V76.3429H157.567V77Z" fill="black" fill-opacity="0.6"/>
<path d="M167.311 77H166.591L160.537 67.9268H160.482C160.537 69.008 160.565 69.8235 160.565 70.3734V77H159.88V66.7804H160.593L166.64 75.8396H166.682C166.64 75.0008 166.619 74.204 166.619 73.449V66.7804H167.311V77Z" fill="black" fill-opacity="0.6"/>
<path d="M172.875 77H172.155V67.4515H168.835V66.7804H176.195V67.4515H172.875V77Z" fill="black" fill-opacity="0.6"/>
<path d="M183.36 74.3647C183.36 75.2175 183.046 75.8932 182.417 76.3919C181.792 76.8905 180.96 77.1398 179.921 77.1398C178.672 77.1398 177.715 77.0023 177.048 76.7274V76.0144C177.784 76.3266 178.723 76.4827 179.865 76.4827C180.704 76.4827 181.368 76.2917 181.857 75.9095C182.351 75.5228 182.598 75.0171 182.598 74.3927C182.598 74.0059 182.517 73.6867 182.354 73.435C182.191 73.1787 181.925 72.9457 181.557 72.736C181.189 72.5263 180.648 72.3003 179.935 72.058C178.891 71.6992 178.169 71.3124 177.768 70.8976C177.372 70.4782 177.174 69.9213 177.174 69.227C177.174 68.4627 177.472 67.8406 178.069 67.3606C178.67 66.876 179.441 66.6336 180.382 66.6336C181.342 66.6336 182.244 66.8154 183.088 67.1789L182.829 67.794C181.981 67.4398 181.17 67.2628 180.396 67.2628C179.641 67.2628 179.04 67.4375 178.593 67.787C178.146 68.1365 177.922 68.6118 177.922 69.213C177.922 69.5905 177.989 69.9004 178.125 70.1427C178.264 70.385 178.49 70.604 178.803 70.7998C179.115 70.9908 179.651 71.2215 180.41 71.4918C181.207 71.7667 181.806 72.0347 182.207 72.2956C182.608 72.552 182.899 72.8455 183.081 73.1764C183.267 73.5026 183.36 73.8987 183.36 74.3647Z" fill="black" fill-opacity="0.6"/>
<path d="M84.7491 66.0992H91.4193V67.7954H87.0331V70.4894H91.03V72.1606H87.0331V75.1788H91.4193V76.8501H84.7491V66.0992Z" fill="#333333"/>
<path d="M82.9323 66.3491V68.2199C82.543 68.0952 82.1278 67.9954 81.7125 67.9205C81.2713 67.8457 80.8041 67.8208 80.311 67.8208C79.1171 67.8208 78.2087 68.17 77.5858 68.8684C76.9629 69.5668 76.6255 70.4648 76.6255 71.5374C76.6255 72.5601 76.9109 73.4331 77.5079 74.1316C78.1048 74.83 78.9613 75.1792 80.1033 75.1792C80.4926 75.1792 80.9079 75.1543 81.3751 75.1044C81.8423 75.0545 82.3094 74.9298 82.8026 74.7053L82.9583 76.5262C82.8804 76.5511 82.7766 76.601 82.6468 76.626C82.5171 76.6509 82.3613 76.7008 82.1797 76.7507C81.8682 76.8006 81.5308 76.8754 81.1155 76.9253C80.7003 76.9752 80.259 77.0001 79.7919 77.0001C79.74 77.0001 79.6621 77.0001 79.6102 77.0001C79.5583 77.0001 79.4804 77.0001 79.4285 76.9752C78.1308 76.9003 76.9629 76.4514 75.8728 75.5783C74.8087 74.7302 74.2636 73.3833 74.2636 71.5624C74.2636 69.7913 74.7827 68.4444 75.8468 67.4716C76.9109 66.4987 78.3125 66.0248 80.0774 66.0248C80.5445 66.0248 80.9598 66.0498 81.3491 66.0747C81.7384 66.0996 82.1278 66.1745 82.4911 66.2493C82.569 66.2742 82.6468 66.2992 82.7507 66.2992C82.7507 66.3241 82.8545 66.3491 82.9323 66.3491Z" fill="#333333"/>
<path d="M70.0331 76.8501V66.0992H72.3171V76.8501H70.0331Z" fill="#333333"/>
<path d="M62.4804 66.0992H68.7354V67.9201H64.7384V70.5393H68.5537V72.3352H64.7384V76.8501H62.4804V66.0992Z" fill="#333333"/>
<path d="M54.5383 66.0992H60.8193V67.9201H56.8223V70.5393H60.6116V72.3352H56.8223V76.8501H54.5383V66.0992Z" fill="#333333"/>
<path d="M42.0803 71.4877C42.0803 69.6668 42.6254 68.2948 43.7154 67.3719C44.8055 66.449 46.0773 66 47.5307 66C48.9842 66 50.2559 66.449 51.346 67.3719C52.4361 68.2948 52.9811 69.6668 52.9811 71.4877C52.9811 73.3086 52.4361 74.6805 51.346 75.6034C50.2559 76.5263 48.9842 76.9753 47.5307 76.9753C46.0773 76.9753 44.8055 76.5263 43.7154 75.6034C42.6254 74.6805 42.0803 73.3086 42.0803 71.4877ZM44.4422 71.4877C44.4422 72.7348 44.6757 73.6827 45.1689 74.2564C45.662 74.8551 46.1811 75.2043 46.778 75.3789C46.9078 75.4038 47.0376 75.4288 47.1674 75.4537C47.2971 75.4787 47.4269 75.4787 47.5307 75.4787C47.6605 75.4787 47.7903 75.4787 47.92 75.4537C48.0498 75.4288 48.1796 75.4038 48.3093 75.3789C48.8803 75.2292 49.3994 74.8551 49.8926 74.2564C50.3597 73.6578 50.6193 72.7598 50.6193 71.5126C50.6193 70.2654 50.3857 69.3674 49.8926 68.7688C49.4254 68.1701 48.8803 67.8209 48.3093 67.6463C48.1796 67.5964 48.0498 67.5715 47.92 67.5715C47.7903 67.5465 47.6605 67.5465 47.5307 67.5465C47.4009 67.5465 47.2712 67.5465 47.1674 67.5715C47.0376 67.5964 46.9078 67.6214 46.778 67.6463C46.2071 67.796 45.662 68.1701 45.1689 68.7688C44.7017 69.3425 44.4422 70.2405 44.4422 71.4877Z" fill="#333333"/>
<path d="M31.9322 66.1002H34.5536L36.8376 69.8917L37.201 70.6151H37.2529L37.6162 69.8917L39.9521 66.1002H42.3399L38.317 72.4859V76.851H36.033V72.4609L31.9322 66.1002Z" fill="#333333"/>
<path d="M26.5855 66.1002H28.8435V75.0551H33.3077V76.851H26.5855V66.1002Z" fill="#333333"/>
<path d="M14.6206 66.1002H17.5534L21.4206 72.885L22.0176 74.3317H22.0695L22.0176 72.436V66.1002H24.2756V76.851H21.3428L17.4496 69.8169L16.8786 68.6196H16.8267L16.8786 70.5402V76.851H14.6206V66.1002Z" fill="#333333"/>
<path d="M2.5 71.4881C2.5 69.6672 3.04504 68.2953 4.13512 67.3724C5.2252 66.4494 6.49696 66.0004 7.9504 66.0004C9.40384 66.0004 10.6756 66.4494 11.7657 67.3724C12.8558 68.2953 13.4008 69.6672 13.4008 71.4881C13.4008 73.309 12.8558 74.6809 11.7657 75.6038C10.6756 76.5268 9.40384 76.9758 7.9504 76.9758C6.49696 76.9758 5.2252 76.5268 4.13512 75.6038C3.07099 74.6809 2.5 73.309 2.5 71.4881ZM4.88779 71.4881C4.88779 72.7353 5.12138 73.6832 5.61451 74.2569C6.10764 74.8555 6.62673 75.2047 7.22368 75.3793C7.35345 75.4043 7.48322 75.4292 7.61299 75.4542C7.74276 75.4791 7.87254 75.4791 7.97635 75.4791C8.10613 75.4791 8.2359 75.4791 8.36567 75.4542C8.49544 75.4292 8.62521 75.4043 8.75498 75.3793C9.32598 75.2297 9.84506 74.8555 10.3382 74.2569C10.8054 73.6582 11.0649 72.7602 11.0649 71.513C11.0649 70.2658 10.8313 69.3679 10.3382 68.7692C9.87101 68.1706 9.32598 67.8213 8.75498 67.6467C8.62521 67.5969 8.49544 67.5719 8.36567 67.5719C8.2359 67.547 8.10613 67.547 7.97635 67.547C7.84658 67.547 7.71681 67.547 7.61299 67.5719C7.48322 67.5969 7.35345 67.6218 7.22368 67.6467C6.65268 67.7964 6.10764 68.1706 5.61451 68.7692C5.12138 69.3429 4.88779 70.2409 4.88779 71.4881Z" fill="#333333"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M90.6387 51.3873L67.9496 41.0935C66.0168 40.1948 66.0168 38.806 67.9496 37.989L75.8487 34.3944L90.5546 41.0935C92.4874 41.9922 95.5966 41.9922 97.4454 41.0935L112.151 34.3944L120.05 37.989C121.983 38.8877 121.983 40.2765 120.05 41.0935L97.3613 51.3873C95.5966 52.2042 92.4874 52.2042 90.6387 51.3873Z" fill="#FF6F3D"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M90.5651 38.6492L67.9452 28.3434C66.0183 27.4437 66.0183 26.0533 67.9452 25.2353L75.6527 21.7183L90.5651 28.507C92.492 29.4067 95.5918 29.4067 97.4349 28.507L112.347 21.7183L120.055 25.2353C121.982 26.135 121.982 27.5255 120.055 28.3434L97.4349 38.6492C95.508 39.5489 92.4082 39.5489 90.5651 38.6492Z" fill="#95C038"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M90.5651 26.0433L67.9452 15.8859C66.0183 14.9991 66.0183 13.6286 67.9452 12.8225L90.5651 2.66507C92.492 1.77831 95.5918 1.77831 97.4349 2.66507L120.055 12.8225C121.982 13.7093 121.982 15.0797 120.055 15.8859L97.4349 26.0433C95.508 26.8494 92.4082 26.8494 90.5651 26.0433Z" fill="#5DC0E8"/>
</svg>

After

Width:  |  Height:  |  Size: 9.8 KiB

View file

@ -4,63 +4,75 @@
.about {
.page-content {
text-align: center /*rtl:ignore*/;
}
.content-block:first-child {
margin: 15px 0 /*rtl:append20px*/;
}
.content-block {
margin: 0 auto 15px;
a {
color: @text-normal;
}
}
.settings-about-logo {
display: flex;
justify-content: center;
img {
max-width: 100%;
height: auto;
}
flex-direction: column;
}
h3 {
font-weight: normal;
margin: 0;
color: @text-secondary;
&.vendor {
color: @text-normal;
font-weight: bold;
margin-top: 15px;
}
&_ios {
padding-top: 120px;
padding-bottom: 30px;
}
p > label {
color: @text-normal;
margin-right: 5px;
color: @text-secondary;
&_android {
padding-top: 60px;
padding-bottom: 16px;
}
.logo {
display: inline-block;
width: 100%;
height: 55px;
background: ~"url(@{common-image-path}/about/logo_s.svg) no-repeat center";
}
.theme-type-dark {
.about .logo {
background: ~"url(@{common-image-path}/about/logo-white_s.svg) no-repeat center";
}
&_tablet {
padding-top: 12px;
padding-bottom: 12px;
}
&__text {
font-style: normal;
font-weight: 400;
font-size: 12px;
line-height: 16px;
text-align: center;
color: @text-normal;
margin: 0;
}
a {
color: @brandColor;
}
.logo-block {
&__elem {
display: flex;
justify-content: center;
img {
max-width: 100%;
height: auto;
}
}
}
&__logo {
width: 100%;
height: 80px;
background: ~"url(@{common-image-path}/about/logo-new.svg) no-repeat center";
}
&__editor {
flex-grow: 1;
margin-top: 20px;
}
&__contacts {
text-align: center;
padding-left: 72px;
padding-right: 72px;
}
&__licensor, &__customer {
text-align: center;
margin-top: 12px;
}
}
.theme-type-dark {
.about .logo {
background: ~"url(@{common-image-path}/about/logo-white_s.svg) no-repeat center";
.about__logo {
background: ~"url(@{common-image-path}/about/logo-new-white.svg) no-repeat center";
}
}

View file

@ -366,12 +366,6 @@
}
}
.about {
.logo {
margin-top: 20px;
}
}
.content-block {
color: @blockTitleColor;
}
@ -511,8 +505,8 @@
}
.actions-button-text {
height: 57px;
line-height: 57px;
// height: 57px;
// line-height: 57px;
font-size: 20px;
color: @text-normal;
white-space: normal;

View file

@ -279,17 +279,6 @@
}
}
.about {
.content-block {
margin: 0 auto 15px;
p:last-child a{
color: var(--brand-word);
text-decoration: underline;
}
}
}
.content-block {
margin: 32px 0;
padding: 0 16px;

View file

@ -603,6 +603,9 @@ define([
me.view.btnPrev.setVisible(false);
me.view.btnNext.setVisible(false);
me.view.btnClear.setVisible(false);
me.view.btnUndo.setVisible(false);
me.view.btnRedo.setVisible(false);
me.view.btnRedo.$el.next().hide();
} else {
me.view.btnPrev.on('click', function(){
me.api.asc_MoveToFillingForm(false);
@ -626,6 +629,12 @@ define([
}
}
});
me.view.btnUndo.on('click', function(){
me.api.Undo(false);
});
me.view.btnRedo.on('click', function(){
me.api.Redo(false);
});
this.api.asc_setRestriction(Asc.c_oAscRestrictionType.OnlyForms);
this.api.asc_SetFastCollaborative(true);
@ -1363,6 +1372,8 @@ define([
if (this.appOptions.canFillForms) {
this.api.asc_registerCallback('asc_onShowContentControlsActions', _.bind(this.onShowContentControlsActions, this));
this.api.asc_registerCallback('asc_onHideContentControlsActions', _.bind(this.onHideContentControlsActions, this));
this.api.asc_registerCallback('asc_onCanUndo', _.bind(this.onApiCanRevert, this, 'undo'));
this.api.asc_registerCallback('asc_onCanRedo', _.bind(this.onApiCanRevert, this, 'redo'));
this.api.asc_SetHighlightRequiredFields(true);
Common.Gateway.on('insertimage', _.bind(this.insertImage, this));
Common.NotificationCenter.on('storage:image-load', _.bind(this.openImageFromStorage, this)); // try to load image from storage
@ -1800,9 +1811,10 @@ define([
this.textMenu.items[0].setDisabled(disabled || !this.api.asc_getCanUndo()); // undo
this.textMenu.items[1].setDisabled(disabled || !this.api.asc_getCanRedo()); // redo
this.textMenu.items[3].setDisabled(disabled || !cancopy); // cut
this.textMenu.items[4].setDisabled(!cancopy); // copy
this.textMenu.items[5].setDisabled(disabled) // paste;
this.textMenu.items[3].setDisabled(disabled); // clear
this.textMenu.items[5].setDisabled(disabled || !cancopy); // cut
this.textMenu.items[6].setDisabled(!cancopy); // copy
this.textMenu.items[7].setDisabled(disabled) // paste;
this.showPopupMenu(this.textMenu, {}, event);
}
@ -1832,6 +1844,14 @@ define([
}
}
break;
case 'clear':
if (this.api) {
var props = this.api.asc_IsContentControl() ? this.api.asc_GetContentControlProperties() : null;
if (props) {
this.api.asc_ClearContentControl(props.get_InternalId());
}
}
break;
}
},
@ -1839,6 +1859,8 @@ define([
this._state.isDisconnected = true;
this._isDisabled = true;
this.view && this.view.btnClear && this.view.btnClear.setDisabled(true);
this.view && this.view.btnUndo && this.view.btnUndo.setDisabled(true);
this.view && this.view.btnRedo && this.view.btnRedo.setDisabled(true);
if (!enableDownload) {
this.appOptions.canPrint = this.appOptions.canDownload = false;
this.view && this.view.btnDownload.setDisabled(true);
@ -1852,6 +1874,12 @@ define([
}
},
onApiCanRevert: function(which, can) {
if (!this.view) return;
(which=='undo') ? this.view.btnUndo.setDisabled(!can) : this.view.btnRedo.setDisabled(!can);
},
errorDefaultMessage : 'Error code: %1',
unknownErrorText : 'Unknown error.',
convertationTimeoutText : 'Conversion timeout exceeded.',

View file

@ -89,6 +89,20 @@ define([
});
this.btnPrev.render($('#id-btn-prev-field'));
this.btnUndo = new Common.UI.Button({
cls: 'btn-toolbar',
iconCls: 'svg-icon undo',
hint: this.tipUndo + Common.Utils.String.platformKey('Ctrl+Z')
});
this.btnUndo.render($('#id-btn-undo'));
this.btnRedo = new Common.UI.Button({
cls: 'btn-toolbar',
iconCls: 'svg-icon redo',
hint: this.tipRedo + Common.Utils.String.platformKey('Ctrl+Y')
});
this.btnRedo.render($('#id-btn-redo'));
this.btnSubmit = new Common.UI.Button({
cls: 'btn-text-default colored margin-left-small margin-right-small',
caption: this.textSubmit
@ -121,6 +135,8 @@ define([
{ caption: this.textUndo, value: 'undo', iconCls: 'mi-icon svg-icon undo' },
{ caption: this.textRedo, value: 'redo', iconCls: 'mi-icon svg-icon redo' },
{ caption: '--' },
{ caption: this.textClearField, value: 'clear', iconCls: 'mi-icon svg-icon clear-style' },
{ caption: '--' },
{ caption: this.textCut, value: 'cut', iconCls: 'mi-icon svg-icon cut' },
{ caption: this.textCopy, value: 'copy', iconCls: 'mi-icon svg-icon copy' },
{ caption: this.textPaste, value: 'paste', iconCls: 'mi-icon svg-icon paste' }
@ -150,7 +166,10 @@ define([
textZoom: 'Zoom',
textFitToPage: 'Fit to Page',
textFitToWidth: 'Fit to Width',
txtSearch: 'Search'
txtSearch: 'Search',
tipUndo: 'Undo',
tipRedo: 'Redo',
textClearField: 'Clear field'
}, DE.Views.ApplicationView || {}));
});

View file

@ -259,7 +259,10 @@
<div class="toolbar" id="toolbar">
<div class="group left">
<div class="margin-right-large"><a id="header-logo" class="brand-logo" href="http://www.onlyoffice.com/" target="_blank"></a></div>
<span id="id-btn-prev-field" class="margin-right-small"></span>
<span id="id-btn-undo" class="margin-right-small"></span>
<span id="id-btn-redo" class="margin-right-small"></span>
<div class="separator"></div>
<span id="id-btn-prev-field" class="margin-left-small margin-right-small"></span>
<span id="id-btn-next-field" class="margin-right-large"></span>
<span id="id-btn-clear-fields"></span>
</div>

View file

@ -241,7 +241,10 @@
<div class="toolbar" id="toolbar">
<div class="group left">
<div class="margin-right-large"><a id="header-logo" class="brand-logo" href="http://www.onlyoffice.com/" target="_blank"></a></div>
<span id="id-btn-prev-field" class="margin-right-small"></span>
<span id="id-btn-undo" class="margin-right-small"></span>
<span id="id-btn-redo" class="margin-right-small"></span>
<div class="separator"></div>
<span id="id-btn-prev-field" class="margin-left-small margin-right-small"></span>
<span id="id-btn-next-field" class="margin-right-large"></span>
<span id="id-btn-clear-fields"></span>
</div>

View file

@ -73,12 +73,12 @@
"Common.Views.OpenDialog.txtPreview": "Προεπισκόπηση",
"Common.Views.OpenDialog.txtProtected": "Μόλις βάλετε το συνθηματικό και ανοίξετε το αρχείο, το τρέχον συνθηματικό αρχείου θα αρχικοποιηθεί.",
"Common.Views.OpenDialog.txtTitle": "Διαλέξτε %1 επιλογές",
"Common.Views.OpenDialog.txtTitleProtected": "Προστατευμένο Αρχείο",
"Common.Views.OpenDialog.txtTitleProtected": "Προστατευμένο αρχείο",
"Common.Views.SaveAsDlg.textLoading": "Γίνεται φόρτωση",
"Common.Views.SaveAsDlg.textTitle": "Φάκελος για αποθήκευση",
"Common.Views.SelectFileDlg.textLoading": "Γίνεται φόρτωση",
"Common.Views.SelectFileDlg.textTitle": "Επιλογή Πηγής Δεδομένων",
"Common.Views.ShareDialog.textTitle": "Διαμοιρασμός Συνδέσμου",
"Common.Views.SelectFileDlg.textTitle": "Επιλογή πηγής δεδομένων",
"Common.Views.ShareDialog.textTitle": "Διαμοιρασμός συνδέσμου",
"Common.Views.ShareDialog.txtCopy": "Αντιγραφή στο πρόχειρο",
"Common.Views.ShareDialog.warnCopy": "Σφάλμα φυλλομετρητή! Χρησιμοποιείστε τη συντόμευση [Ctrl]+[C]",
"DE.Controllers.ApplicationController.convertationErrorText": "Αποτυχία μετατροπής.",

View file

@ -159,6 +159,7 @@
"DE.Controllers.ApplicationController.warnNoLicense": "You've reached the limit for simultaneous connections to %1 editors. This document will be opened for viewing only.<br>Contact %1 sales team for personal upgrade terms.",
"DE.Controllers.ApplicationController.warnNoLicenseUsers": "You've reached the user limit for %1 editors. Contact %1 sales team for personal upgrade terms.",
"DE.Views.ApplicationView.textClear": "Clear All Fields",
"DE.Views.ApplicationView.textClearField": "Clear field",
"DE.Views.ApplicationView.textCopy": "Copy",
"DE.Views.ApplicationView.textCut": "Cut",
"DE.Views.ApplicationView.textFitToPage": "Fit to Page",
@ -170,6 +171,8 @@
"DE.Views.ApplicationView.textSubmit": "Submit",
"DE.Views.ApplicationView.textUndo": "Undo",
"DE.Views.ApplicationView.textZoom": "Zoom",
"DE.Views.ApplicationView.tipRedo": "Redo",
"DE.Views.ApplicationView.tipUndo": "Undo",
"DE.Views.ApplicationView.txtDarkMode": "Dark mode",
"DE.Views.ApplicationView.txtDownload": "Download",
"DE.Views.ApplicationView.txtDownloadDocx": "Download as docx",

View file

@ -159,6 +159,7 @@
"DE.Controllers.ApplicationController.warnNoLicense": "Դուք հասել եք %1 խմբագրիչներին միաժամանակ միանալու սահմանափակմանը։ Այս փաստաթուղթը կբացվի միայն ընթերցման համար։<br>Ծրագրի նորացման անհատական պայմանները քննարկելու համար գրեք վաճառքի %1 բաժին։",
"DE.Controllers.ApplicationController.warnNoLicenseUsers": "Դուք հասել եք %1 խմբագրիչներին միաժամանակ միանալու սահմանափակմանը։ Ծրագրի նորացման անհատական պայմանները քննարկելու համար գրեք վաճառքի %1 բաժին։",
"DE.Views.ApplicationView.textClear": "Մաքրել բոլոր դաշտերը",
"DE.Views.ApplicationView.textClearField": "Մաքուր դաշտ",
"DE.Views.ApplicationView.textCopy": "Պատճենել",
"DE.Views.ApplicationView.textCut": "Կտրել",
"DE.Views.ApplicationView.textFitToPage": "Հարմարեցնել էջին",
@ -170,6 +171,8 @@
"DE.Views.ApplicationView.textSubmit": "Հաստատել",
"DE.Views.ApplicationView.textUndo": "Հետարկել",
"DE.Views.ApplicationView.textZoom": "Խոշորացնել",
"DE.Views.ApplicationView.tipRedo": "Վերարկել",
"DE.Views.ApplicationView.tipUndo": "Հետարկել",
"DE.Views.ApplicationView.txtDarkMode": "Մուգ ռեժիմ",
"DE.Views.ApplicationView.txtDownload": "Ներբեռնել",
"DE.Views.ApplicationView.txtDownloadDocx": "Ներբեռնել որպես docx",

View file

@ -77,7 +77,7 @@
"Common.Views.SaveAsDlg.textLoading": "A carregar",
"Common.Views.SaveAsDlg.textTitle": "Pasta para guardar",
"Common.Views.SelectFileDlg.textLoading": "A carregar",
"Common.Views.SelectFileDlg.textTitle": "Selecione a origem dos dados",
"Common.Views.SelectFileDlg.textTitle": "Selecione a fonte dos dados",
"Common.Views.ShareDialog.textTitle": "Partilhar ligação",
"Common.Views.ShareDialog.txtCopy": "Copiar para a área de transferência",
"Common.Views.ShareDialog.warnCopy": "Erro do navegador! Utilize a tecla de atalho [Ctrl] + [C]",

View file

@ -159,6 +159,7 @@
"DE.Controllers.ApplicationController.warnNoLicense": "Você atingiu o limite de conexões simultâneas para editores %1. Este documento será aberto apenas para visualização.<br>Entre em contato com a equipe de vendas da %1 para obter os termos de atualização pessoais.",
"DE.Controllers.ApplicationController.warnNoLicenseUsers": "Você atingiu o limite de usuários para editores %1.<br>Entre em contato com a equipe de vendas da %1 para obter os termos de atualização pessoais.",
"DE.Views.ApplicationView.textClear": "Limpar todos os campos",
"DE.Views.ApplicationView.textClearField": "Limpar campo",
"DE.Views.ApplicationView.textCopy": "Copiar",
"DE.Views.ApplicationView.textCut": "Cortar",
"DE.Views.ApplicationView.textFitToPage": "Ajustar a página",
@ -170,6 +171,8 @@
"DE.Views.ApplicationView.textSubmit": "Enviar",
"DE.Views.ApplicationView.textUndo": "Desfazer",
"DE.Views.ApplicationView.textZoom": "Zoom",
"DE.Views.ApplicationView.tipRedo": "Refazer",
"DE.Views.ApplicationView.tipUndo": "Desfazer",
"DE.Views.ApplicationView.txtDarkMode": "Modo escuro",
"DE.Views.ApplicationView.txtDownload": "Download",
"DE.Views.ApplicationView.txtDownloadDocx": "Baixar como docx",

View file

@ -159,6 +159,7 @@
"DE.Controllers.ApplicationController.warnNoLicense": "Вы достигли лимита на одновременные подключения к редакторам %1. Этот документ будет открыт на просмотр.<br>Напишите в отдел продаж %1, чтобы обсудить индивидуальные условия лицензирования.",
"DE.Controllers.ApplicationController.warnNoLicenseUsers": "Вы достигли лимита на количество пользователей редакторов %1. Напишите в отдел продаж %1, чтобы обсудить индивидуальные условия обновления.",
"DE.Views.ApplicationView.textClear": "Очистить все поля",
"DE.Views.ApplicationView.textClearField": "Очистить поле",
"DE.Views.ApplicationView.textCopy": "Копировать",
"DE.Views.ApplicationView.textCut": "Вырезать",
"DE.Views.ApplicationView.textFitToPage": "По размеру страницы",
@ -170,6 +171,8 @@
"DE.Views.ApplicationView.textSubmit": "Отправить",
"DE.Views.ApplicationView.textUndo": "Отменить",
"DE.Views.ApplicationView.textZoom": "Масштаб",
"DE.Views.ApplicationView.tipRedo": "Повторить",
"DE.Views.ApplicationView.tipUndo": "Отменить",
"DE.Views.ApplicationView.txtDarkMode": "Темный режим",
"DE.Views.ApplicationView.txtDownload": "Скачать файл",
"DE.Views.ApplicationView.txtDownloadDocx": "Скачать как docx",

View file

@ -104,7 +104,6 @@ require.config({
sdk: {
deps: [
'jquery',
'underscore',
'allfonts',
'xregexp',
'socketio'
@ -124,6 +123,7 @@ require.config({
});
require([
'sdk',
'backbone',
'bootstrap',
'core',

View file

@ -86,6 +86,7 @@ define([
this.setApi(api);
},
setApi: function (api) {
this.userCollection = this.getApplication().getCollection('Common.Collections.Users');
if (api) {
this.api = api;
this.api.asc_registerCallback('asc_onChangeDocumentProtection',_.bind(this.onChangeProtectDocument, this));
@ -95,6 +96,7 @@ define([
setMode: function(mode) {
this.appConfig = mode;
this.currentUserId = mode.user.id;
this.appConfig.isEdit && (this.view = this.createView('DocProtection', {
mode: mode
@ -138,10 +140,10 @@ define([
props = me.api.asc_getDocumentProtection();
if (props && props.asc_getIsPassword()) {
var win = new Common.Views.OpenDialog({
title: me.view.txtWBUnlockTitle,
title: me.view.txtUnlockTitle,
closable: true,
type: Common.Utils.importTextType.DRM,
txtOpenFile: me.view.txtWBUnlockDescription,
txtOpenFile: me.view.txtDocUnlockDescription,
validatePwd: false,
maxPasswordLength: 15,
handler: function (result, value) {
@ -168,8 +170,8 @@ define([
},
onAppReady: function (config) {
if (!this.view) return;
if (!this.api) return;
var me = this;
(new Promise(function (resolve) {
resolve();
@ -178,12 +180,47 @@ define([
type = props ? props.asc_getEditType() : Asc.c_oAscEDocProtect.None,
isProtected = (type === Asc.c_oAscEDocProtect.ReadOnly || type === Asc.c_oAscEDocProtect.Comments ||
type === Asc.c_oAscEDocProtect.TrackedChanges || type === Asc.c_oAscEDocProtect.Forms);
me.view.btnProtectDoc.toggle(!!isProtected, true);
me.view && me.view.btnProtectDoc.toggle(!!isProtected, true);
if (isProtected) {
var str;
switch (type) {
case Asc.c_oAscEDocProtect.ReadOnly:
str = me.txtIsProtectedView;
break;
case Asc.c_oAscEDocProtect.Comments:
str = me.txtIsProtectedComment;
break;
case Asc.c_oAscEDocProtect.Forms:
str = me.txtIsProtectedForms;
break;
case Asc.c_oAscEDocProtect.TrackedChanges:
str = me.txtIsProtectedTrack;
break;
}
me._protectionTip = new Common.UI.SynchronizeTip({
extCls: 'no-arrow',
placement: 'bottom',
target: $('.toolbar'),
text: str,
showLink: false,
style: 'max-width: 400px;'
});
me._protectionTip.on('closeclick', function () {
this.close();
}).show();
}
props && me.applyRestrictions(type);
});
},
onChangeProtectDocument: function() {
onChangeProtectDocument: function(userId) {
if (this._protectionTip && this._protectionTip.isVisible()) {
this._protectionTip.close();
this._protectionTip = undefined;
}
var props = this.getDocProps(true),
isProtected = props && (props.isReadOnly || props.isCommentsOnly || props.isFormsOnly || props.isReviewOnly);
this.view && this.view.btnProtectDoc.toggle(isProtected, true);
@ -204,6 +241,27 @@ define([
if (this._docProtectDlg && this._docProtectDlg.isVisible())
this._docProtectDlg.SetDisabled(!!this._state.lockDocProtect || isProtected);
Common.NotificationCenter.trigger('protect:doclock', props);
if (userId && this.userCollection) {
var recUser = this.userCollection.findOriginalUser(userId);
if (recUser && (recUser.get('idOriginal') !== this.currentUserId)) {
var str = this.txtWasUnprotected;
switch (this._state.docProtection.type) {
case Asc.c_oAscEDocProtect.ReadOnly:
str = this.txtWasProtectedView;
break;
case Asc.c_oAscEDocProtect.Comments:
str = this.txtWasProtectedComment;
break;
case Asc.c_oAscEDocProtect.Forms:
str = this.txtWasProtectedForms;
break;
case Asc.c_oAscEDocProtect.TrackedChanges:
str = this.txtWasProtectedTrack;
break;
}
str && Common.NotificationCenter.trigger('showmessage', {msg: str}, {timeout: 5000, hideCloseTip: true});
}
}
},
getDocProps: function(update) {
@ -246,7 +304,17 @@ define([
if (this._docProtectDlg && this._docProtectDlg.isVisible())
this._docProtectDlg.SetDisabled(state || this._state.docProtection && (this._state.docProtection.isReadOnly || this._state.docProtection.isFormsOnly ||
this._state.docProtection.isCommentsOnly || this._state.docProtection.isReviewOnly));
}
},
txtWasProtectedView: 'Document has been protected by another user.\nYou may only view this document.',
txtWasProtectedTrack: 'Document has been protected by another user.\nYou may edit this document, but all changes will be tracked.',
txtWasProtectedComment: 'Document has been protected by another user.\nYou may only insert comments to this document.',
txtWasProtectedForms: 'Document has been protected by another user.\nYou may only fill in forms in this document.',
txtWasUnprotected: 'Document has been unprotected.',
txtIsProtectedView: 'Document is protected. You may only view this document.',
txtIsProtectedTrack: 'Document is protected. You may edit this document, but all changes will be tracked.',
txtIsProtectedComment: 'Document is protected. You may only insert comments to this document.',
txtIsProtectedForms: 'Document is protected. You may only fill in forms in this document.'
}, DE.Controllers.DocProtection || {}));
});

View file

@ -148,7 +148,7 @@ define([
};
var keymap = {};
me.hkComments = 'alt+h';
me.hkComments = Common.Utils.isMac ? 'command+alt+a' : 'alt+h';
keymap[me.hkComments] = function() {
if (me.api.can_AddQuotedComment()!==false) {
me.addComment();
@ -214,6 +214,9 @@ define([
this.api.asc_registerCallback('asc_onUnLockDocumentProps', _.bind(this.onApiUnLockDocumentProps, this));
this.api.asc_registerCallback('asc_onShowMathTrack', _.bind(this.onShowMathTrack, this));
this.api.asc_registerCallback('asc_onHideMathTrack', _.bind(this.onHideMathTrack, this));
this.api.asc_registerPlaceholderCallback(AscCommon.PlaceholderButtonType.Image, _.bind(this.onInsertImage, this));
this.api.asc_registerPlaceholderCallback(AscCommon.PlaceholderButtonType.ImageUrl, _.bind(this.onInsertImageUrl, this));
}
this.api.asc_registerCallback('asc_onCoAuthoringDisconnect', _.bind(this.onCoAuthoringDisconnect, this));
Common.NotificationCenter.on('api:disconnect', _.bind(this.onCoAuthoringDisconnect, this));
@ -2502,6 +2505,29 @@ define([
}
},
onInsertImage: function(obj, x, y) {
if (this.api)
this.api.asc_addImage(obj);
this.editComplete();
},
onInsertImageUrl: function(obj, x, y) {
var me = this;
(new Common.Views.ImageFromUrlDialog({
handler: function(result, value) {
if (result == 'ok') {
if (me.api) {
var checkUrl = value.replace(/ /g, '');
if (!_.isEmpty(checkUrl)) {
me.api.AddImageUrl([checkUrl], undefined, undefined, obj);
}
}
}
me.editComplete();
}
})).show();
},
editComplete: function() {
this.documentHolder && this.documentHolder.fireEvent('editcomplete', this.documentHolder);
}

View file

@ -41,7 +41,9 @@
define([
'core',
'documenteditor/main/app/view/FormsTab'
'documenteditor/main/app/view/FormsTab',
'documenteditor/main/app/view/RolesManagerDlg',
'documenteditor/main/app/view/SaveFormDlg'
], function () {
'use strict';
@ -57,7 +59,10 @@ define([
initialize: function () {
},
onLaunch: function () {
this._state = {};
this._state = {
lastViewRole: undefined, // last selected role in the preview mode
lastRoleInList: undefined // last role in the roles list
};
},
setApi: function (api) {
@ -66,12 +71,13 @@ define([
this.api.asc_registerCallback('asc_onFocusObject', this.onApiFocusObject.bind(this));
this.api.asc_registerCallback('asc_onCoAuthoringDisconnect',_.bind(this.onCoAuthoringDisconnect, this));
Common.NotificationCenter.on('api:disconnect', _.bind(this.onCoAuthoringDisconnect, this));
this.api.asc_registerCallback('asc_onChangeSpecialFormsGlobalSettings', _.bind(this.onChangeSpecialFormsGlobalSettings, this));
// this.api.asc_registerCallback('asc_onChangeSpecialFormsGlobalSettings', _.bind(this.onChangeSpecialFormsGlobalSettings, this));
Common.NotificationCenter.on('app:ready', this.onAppReady.bind(this));
this.api.asc_registerCallback('asc_onStartAction', _.bind(this.onLongActionBegin, this));
this.api.asc_registerCallback('asc_onEndAction', _.bind(this.onLongActionEnd, this));
this.api.asc_registerCallback('asc_onError', _.bind(this.onError, this));
this.api.asc_registerCallback('asc_onDownloadUrl', _.bind(this.onDownloadUrl, this));
this.api.asc_registerCallback('asc_onUpdateOFormRoles', _.bind(this.onRefreshRolesList, this));
// this.api.asc_registerCallback('asc_onShowContentControlsActions',_.bind(this.onShowContentControlsActions, this));
// this.api.asc_registerCallback('asc_onHideContentControlsActions',_.bind(this.onHideContentControlsActions, this));
@ -91,12 +97,13 @@ define([
'FormsTab': {
'forms:insert': this.onControlsSelect,
'forms:clear': this.onClearClick,
'forms:no-color': this.onNoControlsColor,
'forms:select-color': this.onSelectControlsColor,
// 'forms:no-color': this.onNoControlsColor,
// 'forms:select-color': this.onSelectControlsColor,
'forms:mode': this.onModeClick,
'forms:goto': this.onGoTo,
'forms:submit': this.onSubmitClick,
'forms:save': this.onSaveFormClick
'forms:save': this.onSaveFormClick,
'forms:manager': this.onManagerClick
},
'Toolbar': {
'tab:active': this.onActiveTab
@ -126,7 +133,8 @@ define([
var pr, i = -1, type,
paragraph_locked = false,
header_locked = false;
header_locked = false,
shape_pr = undefined;
while (++i < selectedObjects.length) {
type = selectedObjects[i].get_ObjectType();
@ -136,6 +144,9 @@ define([
paragraph_locked = pr.get_Locked();
} else if (type === Asc.c_oAscTypeSelectElement.Header) {
header_locked = pr.get_Locked();
} else if (type === Asc.c_oAscTypeSelectElement.Image) {
if (pr && pr.get_ShapeProperties())
shape_pr = pr.get_ShapeProperties();
}
}
var in_control = this.api.asc_IsContentControl();
@ -145,34 +156,41 @@ define([
(lock_type===undefined) && (lock_type = Asc.c_oAscSdtLockType.Unlocked);
var content_locked = lock_type==Asc.c_oAscSdtLockType.SdtContentLocked || lock_type==Asc.c_oAscSdtLockType.ContentLocked;
var arr = [ this.view.btnTextField, this.view.btnComboBox, this.view.btnDropDown, this.view.btnCheckBox,
this.view.btnRadioBox, this.view.btnImageField, this.view.btnEmailField, this.view.btnPhoneField, this.view.btnComplexField ];
this.view.btnRadioBox, this.view.btnImageField, this.view.btnEmailField, this.view.btnPhoneField, this.view.btnComplexField,
this.view.btnCreditCard, this.view.btnZipCode, this.view.btnDateTime];
Common.Utils.lockControls(Common.enumLock.paragraphLock, paragraph_locked, {array: arr});
Common.Utils.lockControls(Common.enumLock.headerLock, header_locked, {array: arr});
Common.Utils.lockControls(Common.enumLock.controlPlain, control_plain, {array: arr});
Common.Utils.lockControls(Common.enumLock.contentLock, content_locked, {array: arr});
Common.Utils.lockControls(Common.enumLock.complexForm, in_control && !!control_props && !!control_props.get_ComplexFormPr(), {array: [this.view.btnComplexField, this.view.btnImageField]});
var in_smart_art = shape_pr && shape_pr.asc_getFromSmartArt(),
in_smart_art_internal = shape_pr && shape_pr.asc_getFromSmartArtInternal();
Common.Utils.lockControls(Common.enumLock.inSmartart, in_smart_art, {array: arr});
Common.Utils.lockControls(Common.enumLock.inSmartartInternal, in_smart_art_internal, {array: arr});
},
onChangeSpecialFormsGlobalSettings: function() {
if (this.view && this.view.mnuFormsColorPicker) {
var clr = this.api.asc_GetSpecialFormsHighlightColor(),
show = !!clr;
this.view.mnuNoFormsColor.setChecked(!show, true);
this.view.mnuFormsColorPicker.clearSelection();
if (clr) {
clr = Common.Utils.ThemeColor.getHexColor(clr.get_r(), clr.get_g(), clr.get_b());
this.view.mnuFormsColorPicker.selectByRGB(clr, true);
}
this.view.btnHighlight.currentColor = clr;
this.view.btnHighlight.setColor(this.view.btnHighlight.currentColor || 'transparent');
}
},
// onChangeSpecialFormsGlobalSettings: function() {
// if (this.view && this.view.mnuFormsColorPicker) {
// var clr = this.api.asc_GetSpecialFormsHighlightColor(),
// show = !!clr;
// this.view.mnuNoFormsColor.setChecked(!show, true);
// this.view.mnuFormsColorPicker.clearSelection();
// if (clr) {
// clr = Common.Utils.ThemeColor.getHexColor(clr.get_r(), clr.get_g(), clr.get_b());
// this.view.mnuFormsColorPicker.selectByRGB(clr, true);
// }
// this.view.btnHighlight.currentColor = clr;
// this.view.btnHighlight.setColor(this.view.btnHighlight.currentColor || 'transparent');
// }
// },
onControlsSelect: function(type, options) {
if (!(this.toolbar.mode && this.toolbar.mode.canFeatureContentControl && this.toolbar.mode.canFeatureForms)) return;
var oPr,
oFormPr = new AscCommon.CSdtFormPr();
oFormPr.put_Role(Common.Utils.InternalSettings.get('de-last-form-role') || this._state.lastRoleInList);
this.toolbar.toolbar.fireEvent('insertcontrol', this.toolbar.toolbar);
if (type == 'picture')
this.api.asc_AddContentControlPicture(oFormPr);
@ -182,6 +200,8 @@ define([
this.api.asc_AddContentControlCheckBox(oPr, oFormPr);
} else if (type == 'combobox' || type == 'dropdown')
this.api.asc_AddContentControlList(type == 'combobox', oPr, oFormPr);
else if (type == 'datetime')
this.api.asc_AddContentControlDatePicker(); // !!!! change for datetime form
else if (type == 'text') {
var props = new AscCommon.CContentControlPr();
oPr = new AscCommon.CSdtTextFormPr();
@ -192,6 +212,8 @@ define([
oPr.put_MaskFormat(options.mask);
if (options.placeholder)
props.put_PlaceholderText(options.placeholder);
if (options.fixed!==undefined)
oFormPr.put_Fixed && oFormPr.put_Fixed(options.fixed);
}
props.put_TextFormPr(oPr);
props.put_FormPr(oFormPr);
@ -207,19 +229,23 @@ define([
Common.NotificationCenter.trigger('edit:complete', this.toolbar);
},
onModeClick: function(state) {
onModeClick: function(state, lastViewRole) {
if (this.api) {
this.disableEditing(state);
this.api.asc_setRestriction(state ? Asc.c_oAscRestrictionType.OnlyForms : Asc.c_oAscRestrictionType.None);
this.view && this.view.setPreviewMode(state); // send role name - lastViewRole
var role = new AscCommon.CRestrictionSettings();
role.put_OFormRole(lastViewRole);
this.api.asc_setRestriction(state ? Asc.c_oAscRestrictionType.OnlyForms : Asc.c_oAscRestrictionType.None, role);
this.api.asc_SetPerformContentControlActionByClick(state);
this.api.asc_SetHighlightRequiredFields(state);
state && (this._state.lastViewRole = lastViewRole);
}
Common.NotificationCenter.trigger('edit:complete', this.toolbar);
},
changeViewFormMode: function(state) {
if (this.view && (state !== this.view.btnViewForm.isActive())) {
this.view.btnViewForm.toggle(state, true);
if (this.view && (state !== this.view.btnViewFormRoles.isActive())) {
this.view.btnViewFormRoles.toggle(state, true);
this.onModeClick(state);
}
},
@ -231,21 +257,21 @@ define([
Common.NotificationCenter.trigger('edit:complete', this.toolbar);
},
onNoControlsColor: function(item) {
if (!item.isChecked())
this.api.asc_SetSpecialFormsHighlightColor(201, 200, 255);
else
this.api.asc_SetSpecialFormsHighlightColor();
Common.NotificationCenter.trigger('edit:complete', this.toolbar);
},
// onNoControlsColor: function(item) {
// if (!item.isChecked())
// this.api.asc_SetSpecialFormsHighlightColor(201, 200, 255);
// else
// this.api.asc_SetSpecialFormsHighlightColor();
// Common.NotificationCenter.trigger('edit:complete', this.toolbar);
// },
onSelectControlsColor: function(color) {
var clr = Common.Utils.ThemeColor.getRgbColor(color);
if (this.api) {
this.api.asc_SetSpecialFormsHighlightColor(clr.get_r(), clr.get_g(), clr.get_b());
}
Common.NotificationCenter.trigger('edit:complete', this.toolbar);
},
// onSelectControlsColor: function(color) {
// var clr = Common.Utils.ThemeColor.getRgbColor(color);
// if (this.api) {
// this.api.asc_SetSpecialFormsHighlightColor(clr.get_r(), clr.get_g(), clr.get_b());
// }
// Common.NotificationCenter.trigger('edit:complete', this.toolbar);
// },
onGoTo: function(type) {
if (this.api)
@ -271,8 +297,10 @@ define([
},
onSaveFormClick: function() {
this.isFromFormSaveAs = this.appConfig.canRequestSaveAs || !!this.appConfig.saveAsUrl;
this.api.asc_DownloadAs(new Asc.asc_CDownloadOptions(Asc.c_oAscFileType.OFORM, this.isFromFormSaveAs));
this.showRolesList(function() {
this.isFromFormSaveAs = this.appConfig.canRequestSaveAs || !!this.appConfig.saveAsUrl;
this.api.asc_DownloadAs(new Asc.asc_CDownloadOptions(Asc.c_oAscFileType.OFORM, this.isFromFormSaveAs));
});
},
onDownloadUrl: function(url, fileType) {
@ -379,12 +407,13 @@ define([
(new Promise(function (accept, reject) {
accept();
})).then(function(){
if (config.canEditContentControl && me.view.btnHighlight) {
var clr = me.api.asc_GetSpecialFormsHighlightColor();
clr && (clr = Common.Utils.ThemeColor.getHexColor(clr.get_r(), clr.get_g(), clr.get_b()));
me.view.btnHighlight.currentColor = clr;
}
// if (config.canEditContentControl && me.view.btnHighlight) {
// var clr = me.api.asc_GetSpecialFormsHighlightColor();
// clr && (clr = Common.Utils.ThemeColor.getHexColor(clr.get_r(), clr.get_g(), clr.get_b()));
// me.view.btnHighlight.currentColor = clr;
// }
config.isEdit && config.canFeatureContentControl && config.isFormCreator && me.showCreateFormTip(); // show tip only when create form in docxf
me.onRefreshRolesList();
me.onChangeProtectDocument();
});
},
@ -435,6 +464,42 @@ define([
}
},
onRefreshRolesList: function(roles) {
if (!roles) {
var oform = this.api.asc_GetOForm();
oform && (roles = oform.asc_getAllRoles());
}
this._state.lastRoleInList = (roles && roles.length>0) ? roles[roles.length-1].asc_getSettings().asc_getName() : undefined;
this.view && this.view.fillRolesMenu(roles, this._state.lastViewRole);
},
onManagerClick: function() {
var me = this;
this.api.asc_GetOForm() && (new DE.Views.RolesManagerDlg({
api: me.api,
handler: function(result, settings) {
Common.NotificationCenter.trigger('edit:complete', me.toolbar);
},
props : undefined
})).on('close', function(win){
}).show();
},
showRolesList: function(callback) {
var me = this,
oform = this.api.asc_GetOForm();
oform && (new DE.Views.SaveFormDlg({
handler: function(result, settings) {
if (result=='ok')
callback.call(me);
else
Common.NotificationCenter.trigger('edit:complete', me.toolbar);
},
roles: oform.asc_getAllRoles()
})).show();
},
onActiveTab: function(tab) {
if (tab !== 'forms') {
this.tipSaveForm && this.tipSaveForm.close();

View file

@ -130,21 +130,22 @@ define([
isCommentsOnly: false
}
};
Common.util.Shortcuts.delegateShortcuts({
shortcuts: {
'command+shift+s,ctrl+shift+s': _.bind(this.onShortcut, this, 'save'),
'command+f,ctrl+f': _.bind(this.onShortcut, this, 'search'),
'ctrl+h': _.bind(this.onShortcut, this, 'replace'),
'alt+f': _.bind(this.onShortcut, this, 'file'),
'esc': _.bind(this.onShortcut, this, 'escape'),
/** coauthoring begin **/
'alt+q': _.bind(this.onShortcut, this, 'chat'),
'command+shift+h,ctrl+shift+h': _.bind(this.onShortcut, this, 'comments'),
/** coauthoring end **/
'f1': _.bind(this.onShortcut, this, 'help')
}
});
var keymap = {
'command+shift+s,ctrl+shift+s': _.bind(this.onShortcut, this, 'save'),
'command+f,ctrl+f': _.bind(this.onShortcut, this, 'search'),
'ctrl+h': _.bind(this.onShortcut, this, 'replace'),
'esc': _.bind(this.onShortcut, this, 'escape'),
/** coauthoring begin **/
'command+shift+h,ctrl+shift+h': _.bind(this.onShortcut, this, 'comments'),
/** coauthoring end **/
'f1': _.bind(this.onShortcut, this, 'help')
};
if (!Common.Utils.isMac) {
keymap['alt+f'] = _.bind(this.onShortcut, this, 'file');
keymap['alt+q'] = _.bind(this.onShortcut, this, 'chat');
}
Common.util.Shortcuts.delegateShortcuts({shortcuts:keymap});
Common.util.Shortcuts.suspendEvents();
},
@ -602,7 +603,7 @@ define([
},
updatePreviewMode: function() {
var viewmode = this._state.disableEditing || this._state.docProtection.isReadOnly || this._state.docProtection.isFormsOnly;
var viewmode = this._state.disableEditing || this._state.docProtection.isReadOnly || this._state.docProtection.isFormsOnly || this._state.docProtection.isCommentsOnly;
if (this.viewmode === viewmode) return;
this.viewmode = viewmode;

View file

@ -207,6 +207,14 @@ define([
case '2': this.api.SetFontRenderingMode(2); break;
}
if ( !Common.Utils.isIE ) {
if ( /^https?:\/\//.test('{{HELP_CENTER_WEB_DE}}') ) {
const _url_obj = new URL('{{HELP_CENTER_WEB_DE}}');
_url_obj.searchParams.set('lang', Common.Locale.getCurrentLanguage());
Common.Utils.InternalSettings.set("url-help-center", _url_obj.toString());
}
}
this.api.asc_registerCallback('asc_onError', _.bind(this.onError, this));
this.api.asc_registerCallback('asc_onDocumentContentReady', _.bind(this.onDocumentContentReady, this));
this.api.asc_registerCallback('asc_onOpenDocumentProgress', _.bind(this.onOpenDocument, this));
@ -434,6 +442,7 @@ define([
this.appOptions.canFeatureComparison = true;
this.appOptions.canFeatureContentControl = true;
this.appOptions.canFeatureForms = !!this.api.asc_isSupportFeature("forms");
this.appOptions.uiRtl = Common.localStorage.getBool("ui-rtl");
this.appOptions.mentionShare = !((typeof (this.appOptions.customization) == 'object') && (this.appOptions.customization.mentionShare==false));
@ -1515,8 +1524,7 @@ define([
this.appOptions.canEditStyles = this.appOptions.canLicense && this.appOptions.canEdit;
this.appOptions.canPrint = (this.permissions.print !== false);
this.appOptions.canPreviewPrint = this.appOptions.canPrint && !Common.Utils.isMac && this.appOptions.isDesktopApp;
this.appOptions.canQuickPrint = this.appOptions.canPrint && !Common.Utils.isMac && this.appOptions.isDesktopApp &&
!(this.editorConfig.customization && this.editorConfig.customization.compactHeader);
this.appOptions.canQuickPrint = this.appOptions.canPrint && !Common.Utils.isMac && this.appOptions.isDesktopApp;
this.appOptions.canRename = this.editorConfig.canRename;
this.appOptions.buildVersion = params.asc_getBuildVersion();
this.appOptions.canForcesave = this.appOptions.isEdit && !this.appOptions.isOffline && (typeof (this.editorConfig.customization) == 'object' && !!this.editorConfig.customization.forcesave);
@ -1545,7 +1553,7 @@ define([
this.appOptions.canEditContentControl = (this.permissions.modifyContentControl!==false);
this.appOptions.canHelp = !((typeof (this.editorConfig.customization) == 'object') && this.editorConfig.customization.help===false);
this.appOptions.canSubmitForms = false; // this.appOptions.canLicense && (typeof (this.editorConfig.customization) == 'object') && !!this.editorConfig.customization.submitForm;
this.appOptions.canFillForms = this.appOptions.canLicense && ((this.permissions.fillForms===undefined) ? this.appOptions.isEdit : this.permissions.fillForms) && (this.editorConfig.mode !== 'view');
this.appOptions.canFillForms = this.appOptions.canLicense && (this.appOptions.isEdit ? true : this.permissions.fillForms) && (this.editorConfig.mode !== 'view');
this.appOptions.isRestrictedEdit = !this.appOptions.isEdit && (this.appOptions.canComments || this.appOptions.canFillForms);
if (this.appOptions.isRestrictedEdit && this.appOptions.canComments && this.appOptions.canFillForms) // must be one restricted mode, priority for filling forms
this.appOptions.canComments = false;

View file

@ -525,6 +525,7 @@ define([
paperOrientation: size ? (size['H'] > size['W'] ? 'portrait' : 'landscape') : null
});
this.printSettings.menu.hide();
if ( print ) {
var opts = new Asc.asc_CDownloadOptions(null, Common.Utils.isChrome || Common.Utils.isOpera || Common.Utils.isGecko && Common.Utils.firefoxVersion>86);
opts.asc_setAdvancedOptions(this.adjPrintParams);
@ -534,7 +535,6 @@ define([
opts.asc_setAdvancedOptions(this.adjPrintParams);
this.api.asc_DownloadAs(opts);
}
this.printSettings.menu.hide();
},
inputPagesChanging: function (input, value) {

View file

@ -171,6 +171,7 @@ define([
isProtected = this._state.docProtection.isReadOnly || this._state.docProtection.isFormsOnly || this._state.docProtection.isCommentsOnly;
var control_props = this.api.asc_IsContentControl() ? this.api.asc_GetContentControlProperties() : null,
is_form = control_props && control_props.get_FormPr(),
control_lock = false;
for (i=0; i<SelectedObjects.length; i++)
{
@ -202,7 +203,7 @@ define([
}
}
control_lock = control_lock || value.get_Locked();
} else if (settingsType == Common.Utils.documentSettingsType.Paragraph) {
} else if (settingsType == Common.Utils.documentSettingsType.Paragraph && !(is_form && is_form.get_Fixed())) {
this._settings[settingsType].panel.isChart = isChart;
this._settings[settingsType].panel.isSmartArtInternal = isSmartArtInternal;
can_add_table = value.get_CanAddTable();
@ -214,18 +215,23 @@ define([
if (!this._settings[Common.Utils.documentSettingsType.MailMerge].locked) // lock MailMerge-InsertField, если хотя бы один объект locked
this._settings[Common.Utils.documentSettingsType.MailMerge].locked = value.get_Locked() || isProtected;
if (!this._settings[Common.Utils.documentSettingsType.Signature].locked) // lock Signature, если хотя бы один объект locked
this._settings[Common.Utils.documentSettingsType.Signature].locked = value.get_Locked() || isProtected;
this._settings[Common.Utils.documentSettingsType.Signature].locked = value.get_Locked();
}
if (control_props && control_props.get_FormPr() && this.rightmenu.formSettings) {
if(is_form && is_form.get_Fixed()) {
this._settings[Common.Utils.documentSettingsType.Paragraph].hidden = 1;
}
if (is_form && this.rightmenu.formSettings) {
var spectype = control_props.get_SpecificType();
if (spectype==Asc.c_oAscContentControlSpecificType.CheckBox || spectype==Asc.c_oAscContentControlSpecificType.Picture || spectype==Asc.c_oAscContentControlSpecificType.Complex ||
spectype==Asc.c_oAscContentControlSpecificType.ComboBox || spectype==Asc.c_oAscContentControlSpecificType.DropDownList || spectype==Asc.c_oAscContentControlSpecificType.None) {
spectype==Asc.c_oAscContentControlSpecificType.ComboBox || spectype==Asc.c_oAscContentControlSpecificType.DropDownList || spectype==Asc.c_oAscContentControlSpecificType.None ||
spectype==Asc.c_oAscContentControlSpecificType.DateTime) {
settingsType = Common.Utils.documentSettingsType.Form;
this._settings[settingsType].props = control_props;
this._settings[settingsType].locked = control_lock || isProtected;
this._settings[settingsType].hidden = 0;
if (control_props.get_FormPr().get_Fixed())
if (is_form.get_Fixed())
this._settings[Common.Utils.documentSettingsType.TextArt].hidden = 1;
}
}
@ -265,6 +271,9 @@ define([
if (!this._settings[Common.Utils.documentSettingsType.MailMerge].hidden)
this._settings[Common.Utils.documentSettingsType.MailMerge].panel.setLocked(this._settings[Common.Utils.documentSettingsType.MailMerge].locked);
if (!this._settings[Common.Utils.documentSettingsType.Signature].hidden)
this._settings[Common.Utils.documentSettingsType.Signature].panel.setProtected(isProtected);
if (!this.rightmenu.minimizedMode || open) {
var active;
@ -428,6 +437,7 @@ define([
this._settings[type].hidden = disabled ? 1 : 0;
this._settings[type].btn.setDisabled(disabled);
this._settings[type].panel.setLocked(this._settings[type].locked);
this._settings[type].panel.setProtected(this._state.docProtection ? this._state.docProtection.isReadOnly || this._state.docProtection.isFormsOnly || this._state.docProtection.isCommentsOnly : false);
},
SetDisabled: function(disabled, allowMerge, allowSignature) {
@ -463,7 +473,8 @@ define([
} else {
var selectedElements = this.api.getSelectedElements();
if (selectedElements.length > 0)
this.onFocusObject(selectedElements, false, !Common.Utils.InternalSettings.get("de-hide-right-settings"));
this.onFocusObject(selectedElements, false, !Common.Utils.InternalSettings.get("de-hide-right-settings") && // user didn't close panel
!Common.Utils.InternalSettings.get("de-hidden-rightmenu")); // user didn't hide right menu
}
}
},
@ -496,11 +507,17 @@ define([
}
},
onRightMenuHide: function (view, status) {
onRightMenuHide: function (view, status) { // status = true when show panel
if (this.rightmenu) {
!status && this.rightmenu.clearSelection();
status ? this.rightmenu.show() : this.rightmenu.hide();
Common.localStorage.setBool('de-hidden-rightmenu', !status);
Common.Utils.InternalSettings.set("de-hidden-rightmenu", !status);
if (status) {
var selectedElements = this.api.getSelectedElements();
if (selectedElements.length > 0)
this.onFocusObject(selectedElements, false, !Common.Utils.InternalSettings.get("de-hide-right-settings"));
}
}
Common.NotificationCenter.trigger('layout:changed', 'main');

View file

@ -124,7 +124,7 @@ define([
for (var l = 0; l < text.length; l++) {
var charCode = text.charCodeAt(l),
char = text.charAt(l);
if (AscCommon.IsPunctuation(charCode) !== undefined || char.trim() === '') {
if (AscCommon.IsPunctuation(charCode) || char.trim() === '') {
isPunctuation = true;
break;
}
@ -333,7 +333,7 @@ define([
onEndTextAroundSearch: function () {
if (this.view) {
this._state.isStartedAddingResults = false;
this.view.$resultsContainer.scroller.update({alwaysVisibleY: true});
this.view.updateScrollers();
}
},

View file

@ -377,6 +377,7 @@ define([
Common.Gateway.on('setmailmergerecipients', _.bind(this.setMailMergeRecipients, this));
$('#id-toolbar-menu-new-control-color').on('click', _.bind(this.onNewControlsColor, this));
toolbar.listStylesAdditionalMenuItem.on('click', this.onMenuSaveStyle.bind(this));
toolbar.btnPrint.menu && toolbar.btnPrint.menu.on('item:click', _.bind(this.onPrintMenu, this));
this.onSetupCopyStyleButton();
this.onBtnChangeState('undo:disabled', toolbar.btnUndo, toolbar.btnUndo.isDisabled());
@ -843,8 +844,8 @@ define([
toolbar.btnInsDateTime, toolbar.btnBlankPage, toolbar.btnInsertEquation, toolbar.btnInsertSymbol ])});
this.toolbar.lockToolbar(Common.enumLock.inChart, in_chart, {array: toolbar.textOnlyControls.concat([toolbar.btnClearStyle, toolbar.btnInsertEquation])});
this.toolbar.lockToolbar(Common.enumLock.inSmartart, in_smart_art, {array: toolbar.textOnlyControls.concat([toolbar.btnClearStyle])});
this.toolbar.lockToolbar(Common.enumLock.inSmartartInternal, in_smart_art_internal, {array: toolbar.textOnlyControls.concat([toolbar.btnClearStyle, toolbar.btnDecLeftOffset, toolbar.btnIncLeftOffset])});
this.toolbar.lockToolbar(Common.enumLock.inSmartart, in_smart_art, {array: toolbar.textOnlyControls.concat([toolbar.btnClearStyle, toolbar.btnContentControls])});
this.toolbar.lockToolbar(Common.enumLock.inSmartartInternal, in_smart_art_internal, {array: toolbar.textOnlyControls.concat([toolbar.btnClearStyle, toolbar.btnDecLeftOffset, toolbar.btnIncLeftOffset, toolbar.btnContentControls])});
this.toolbar.lockToolbar(Common.enumLock.inEquation, in_equation, {array: toolbar.btnsPageBreak.concat([toolbar.btnDropCap, toolbar.btnInsertTable, toolbar.btnBlankPage, toolbar.btnInsertShape,
toolbar.btnInsertText, toolbar.btnInsertTextArt, toolbar.btnInsertImage, toolbar.btnInsertSmartArt, toolbar.btnSuperscript, toolbar.btnSubscript, toolbar.btnEditHeader])});
@ -854,16 +855,22 @@ define([
control_plain = (in_control&&control_props) ? (control_props.get_ContentControlType()==Asc.c_oAscSdtLevelType.Inline) : false;
(lock_type===undefined) && (lock_type = Asc.c_oAscSdtLockType.Unlocked);
var content_locked = lock_type==Asc.c_oAscSdtLockType.SdtContentLocked || lock_type==Asc.c_oAscSdtLockType.ContentLocked;
var if_form = control_props && control_props.get_FormPr();
if (!toolbar.btnContentControls.isDisabled()) {
var control_disable = control_plain || content_locked,
if_form = control_props && control_props.get_FormPr();
var control_disable = control_plain || content_locked;
for (var i=0; i<7; i++)
toolbar.btnContentControls.menu.items[i].setDisabled(control_disable);
toolbar.btnContentControls.menu.items[8].setDisabled(!in_control || lock_type==Asc.c_oAscSdtLockType.SdtContentLocked || lock_type==Asc.c_oAscSdtLockType.SdtLocked || if_form);
toolbar.btnContentControls.menu.items[10].setDisabled(!in_control || if_form);
}
this.toolbar.lockToolbar(Common.enumLock.fixedForm, if_form && if_form.get_Fixed() && in_para, {array: [
toolbar.btnAlignLeft, toolbar.btnAlignCenter, toolbar.btnAlignRight, toolbar.btnAlignJust,
toolbar.btnMarkers, toolbar.btnNumbers, toolbar.btnMultilevels,
toolbar.btnDecLeftOffset, toolbar.btnIncLeftOffset,
toolbar.btnLineSpace
]});
this.toolbar.lockToolbar(Common.enumLock.controlPlain, control_plain, {array: [toolbar.btnInsertTable, toolbar.btnInsertImage, toolbar.btnInsertChart, toolbar.btnInsertText, toolbar.btnInsertTextArt,
toolbar.btnInsertShape, toolbar.btnInsertSmartArt, toolbar.btnInsertEquation, toolbar.btnDropCap, toolbar.btnColumns, toolbar.mnuInsertPageNum ]});
if (enable_dropcap && frame_pr) {
@ -1070,11 +1077,31 @@ define([
},
onPrint: function(e) {
Common.NotificationCenter.trigger('file:print', this.toolbar);
Common.NotificationCenter.trigger('edit:complete', this.toolbar);
if (this.toolbar.btnPrint.options.printType == 'print') {
Common.NotificationCenter.trigger('file:print', this.toolbar);
Common.NotificationCenter.trigger('edit:complete', this.toolbar);
} else {
var _main = this.getApplication().getController('Main');
_main.onPrintQuick();
}
Common.component.Analytics.trackEvent('Print');
Common.component.Analytics.trackEvent('ToolBar', 'Print');
},
onPrintMenu: function (btn, e){
var oldType = this.toolbar.btnPrint.options.printType;
var newType = e.value;
if(newType != oldType) {
this.toolbar.btnPrint.changeIcon({
next: e.options.iconClsForMainBtn,
curr: this.toolbar.btnPrint.menu.items.filter(function(item){return item.value == oldType;})[0].options.iconClsForMainBtn
});
this.toolbar.btnPrint.updateHint([e.caption + e.options.platformKey]);
this.toolbar.btnPrint.options.printType = newType;
}
this.onPrint(e);
},
onSave: function(e) {
@ -3145,7 +3172,8 @@ define([
toolbar.onCollaborativeChanges();
}
}
disable ? Common.util.Shortcuts.suspendEvents('alt+h') : Common.util.Shortcuts.resumeEvents('alt+h');
var hkComments = Common.Utils.isMac ? 'command+alt+a' : 'alt+h';
disable ? Common.util.Shortcuts.suspendEvents(hkComments) : Common.util.Shortcuts.resumeEvents(hkComments);
},
onSelectRecepientsClick: function(menu, item, e) {

View file

@ -220,7 +220,7 @@ define([
this.viewport.hlayout.doLayout();
break;
case 'history':
var panel = this.viewport.hlayout.items[1];
var panel = this.viewport.hlayout.getItem('history');
if (panel.resize.el) {
this.boxSdk.css('border-left', '');
panel.resize.el.show();
@ -228,7 +228,7 @@ define([
this.viewport.hlayout.doLayout();
break;
case 'leftmenu':
var panel = this.viewport.hlayout.items[0];
var panel = this.viewport.hlayout.getItem('left');
if (panel.resize.el) {
if (panel.el.width() > 40) {
this.boxSdk.css('border-left', '');

View file

@ -4,6 +4,17 @@
<label class="header padding-small" id="form-settings-name"><%= scope.textField %></label>
</td>
</tr>
<tr>
<td class="padding-small">
<label class="input-label"><%= scope.textFillRoles %></label>
<div id="form-combo-roles" style="width: 100%;"></div>
</td>
</tr>
<tr>
<td class="padding-small">
<div class="separator horizontal"></div>
</td>
</tr>
<tr class="form-keyfield">
<td class="padding-small">
<label class="input-label"><%= scope.textKey %></label>
@ -48,7 +59,12 @@
</tr>
<tr class="form-textfield-mask">
<td class="padding-small">
<div id="form-txt-mask"></div>
<div id="form-txt-mask" style="width: 100%;"></div>
</td>
</tr>
<tr class="form-textfield-regexp">
<td class="padding-small">
<div id="form-txt-regexp"></div>
</td>
</tr>
<tr class="form-textfield">
@ -83,6 +99,20 @@
</td>
</tr>
</table>
<table cols="1">
<tr class="form-datetime">
<td class="padding-small">
<label class="input-label"><%= scope.textDateFormat %></label>
<div id="form-cmb-date-format" style="width: 100%;"></div>
</td>
</tr>
<tr class="form-datetime">
<td class="padding-small">
<label class="input-label"><%= scope.textLang %></label>
<div id="form-cmb-date-lang" style="width: 100%;"></div>
</td>
</tr>
</table>
<table cols="1">
<tr class="form-fixed">
<td class="padding-small">

View file

@ -52,9 +52,9 @@
</tr>
<tr>
<td class="padding-small">
<div id="headerfooter-button-top-left" style="display: inline-block; margin-right:5px;"></div>
<div id="headerfooter-button-top-center" style="display: inline-block; margin-right:5px;"></div>
<div id="headerfooter-button-top-right" style="display: inline-block; margin-right:5px;"></div>
<div id="headerfooter-button-top-left"></div>
<div id="headerfooter-button-top-center"></div>
<div id="headerfooter-button-top-right"></div>
</td>
</tr>
<tr>
@ -64,9 +64,9 @@
</tr>
<tr>
<td class="padding-small">
<div id="headerfooter-button-bottom-left" style="display: inline-block; margin-right:5px;"></div>
<div id="headerfooter-button-bottom-center" style="display: inline-block; margin-right:5px;"></div>
<div id="headerfooter-button-bottom-right" style="display: inline-block; margin-right:5px;"></div>
<div id="headerfooter-button-bottom-left"></div>
<div id="headerfooter-button-bottom-center"></div>
<div id="headerfooter-button-bottom-right"></div>
</td>
</tr>
<tr>
@ -86,9 +86,9 @@
</tr>
<tr>
<td class="padding-small">
<div id="headerfooter-radio-prev" style="margin-bottom: 5px;"></div>
<div id="headerfooter-radio-from" style="display: inline-block;vertical-align: middle; margin-right: 2px;"></div>
<div id="headerfooter-spin-from" style="display: inline-block;vertical-align: middle;"></div>
<div id="headerfooter-radio-prev"></div>
<div id="headerfooter-radio-from"></div>
<div id="headerfooter-spin-from"></div>
</td>
</tr>
<tr class="finish-cell"></tr>

View file

@ -41,15 +41,15 @@
<td class="padding-small" width="50%">
<label class="input-label"><%= scope.textRotate90 %></label>
<div>
<div id="image-button-270" style="display: inline-block;margin-right: 4px;"></div>
<div id="image-button-90" style="display: inline-block;"></div>
<div id="image-button-270"></div>
<div id="image-button-90"></div>
</div>
</td>
<td class="padding-small" width="50%">
<label class="input-label"><%= scope.textFlip %></label>
<div>
<div id="image-button-fliph" style="display: inline-block;margin-right: 4px;"></div>
<div id="image-button-flipv" style="display: inline-block;"></div>
<div id="image-button-fliph"></div>
<div id="image-button-flipv"></div>
</div>
</td>
</tr>

View file

@ -41,7 +41,7 @@
<td style="vertical-align: bottom; padding-bottom: 19px;">
<div id="shape-radio-hsizepc"></div>
</td>
<td class="padding-large" style="padding-right: 15px;">
<td class="padding-large padding-right">
<label class="input-label"><%= scope.textRelativeWH %></label>
<div id="shape-advanced-spin-width-rel"></div>
</td>
@ -68,7 +68,7 @@
<td style="vertical-align: bottom; padding-bottom: 19px;">
<div id="shape-radio-vsizepc"></div>
</td>
<td class="padding-large" style="padding-right: 15px;">
<td class="padding-large padding-right">
<label class="input-label"><%= scope.textRelativeWH %></label>
<div id="shape-advanced-spin-height-rel"></div>
</td>
@ -94,7 +94,7 @@
<div class="inner-content padding-large">
<div style="width: 100%;">
<label class="input-label"><%= scope.textAngle %></label>
<div id="image-advanced-spin-angle" style="display: inline-block; margin-left: 5px;"></div>
<div id="image-advanced-spin-angle" style="display: inline-block;"></div>
</div>
</div>
<div class="separator horizontal padding-large"></div>
@ -102,7 +102,7 @@
<table cols="2">
<tr>
<td rowspan="2" class="padding-small" style="vertical-align: top;">
<label class="input-label" style="margin-right: 15px;vertical-align: top;"><%= scope.textFlipped %></label>
<label class="input-label flipped" style="vertical-align: top;"><%= scope.textFlipped %></label>
</td>
<td class="padding-small">
<div id="image-advanced-checkbox-hor"></div>
@ -120,14 +120,14 @@
<div class="inner-content padding-large">
<label class="header padding-small"><%= scope.textWrap %></label>
<div class="padding-small">
<div id="image-advanced-button-wrap-inline" style="display: inline-block; margin-right:7px;"></div>
<div id="image-advanced-button-wrap-square" style="display: inline-block; margin-right:7px;"></div>
<div id="image-advanced-button-wrap-tight" style="display: inline-block; margin-right:7px;"></div>
<div id="image-advanced-button-wrap-through" style="display: inline-block; margin-right:7px;"></div>
<div id="image-advanced-button-wrap-inline" class="margin-right" style="display: inline-block;"></div>
<div id="image-advanced-button-wrap-square" class="margin-right" style="display: inline-block;"></div>
<div id="image-advanced-button-wrap-tight" class="margin-right" style="display: inline-block;"></div>
<div id="image-advanced-button-wrap-through" class="margin-right" style="display: inline-block;"></div>
</div>
<div class="padding-small">
<div id="image-advanced-button-wrap-topbottom" style="display: inline-block; margin-right:7px;"></div>
<div id="image-advanced-button-wrap-infront" style="display: inline-block; margin-right:7px;"></div>
<div id="image-advanced-button-wrap-topbottom" class="margin-right" style="display: inline-block;"></div>
<div id="image-advanced-button-wrap-infront" class="margin-right" style="display: inline-block;"></div>
<div id="image-advanced-button-wrap-behind" style="display: inline-block;"></div>
</div>
</div>

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