2016-04-01 13:17:09 +00:00
|
|
|
/*
|
|
|
|
*
|
2019-01-17 13:05:03 +00:00
|
|
|
* (c) Copyright Ascensio System SIA 2010-2019
|
2016-04-01 13:17:09 +00:00
|
|
|
*
|
|
|
|
* This program is a free software product. You can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
|
|
|
* version 3 as published by the Free Software Foundation. In accordance with
|
|
|
|
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
|
|
|
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
|
|
|
* of any third-party rights.
|
|
|
|
*
|
|
|
|
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
|
|
|
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
|
|
|
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
|
|
|
*
|
2019-01-17 13:00:34 +00:00
|
|
|
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
|
|
|
* street, Riga, Latvia, EU, LV-1050.
|
2016-04-01 13:17:09 +00:00
|
|
|
*
|
|
|
|
* The interactive user interfaces in modified source and object code versions
|
|
|
|
* of the Program must display Appropriate Legal Notices, as required under
|
|
|
|
* Section 5 of the GNU AGPL version 3.
|
|
|
|
*
|
|
|
|
* Pursuant to Section 7(b) of the License you must retain the original Product
|
|
|
|
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
|
|
|
* grant you any rights under trademark law for use of our trademarks.
|
|
|
|
*
|
|
|
|
* All the Product's GUI elements, including illustrations and icon sets, as
|
|
|
|
* well as technical writing content are licensed under the terms of the
|
|
|
|
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
|
|
|
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
|
|
|
*
|
|
|
|
*/
|
2016-03-11 00:48:53 +00:00
|
|
|
/**
|
|
|
|
* FileMenuPanels.js
|
|
|
|
*
|
|
|
|
* Contains views for menu 'File'
|
|
|
|
*
|
|
|
|
* Created by Maxim Kadushkin on 20 February 2014
|
2018-03-01 12:16:38 +00:00
|
|
|
* Copyright (c) 2018 Ascensio System SIA. All rights reserved.
|
2016-03-11 00:48:53 +00:00
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
define([
|
|
|
|
'common/main/lib/view/DocumentAccessDialog',
|
2020-07-03 12:15:17 +00:00
|
|
|
'common/main/lib/view/AutoCorrectDialog',
|
2016-03-11 00:48:53 +00:00
|
|
|
'common/main/lib/component/CheckBox'
|
|
|
|
], function () {
|
|
|
|
'use strict';
|
|
|
|
|
|
|
|
!PE.Views.FileMenuPanels && (PE.Views.FileMenuPanels = {});
|
|
|
|
|
|
|
|
PE.Views.FileMenuPanels.ViewSaveAs = Common.UI.BaseView.extend({
|
|
|
|
el: '#panel-saveas',
|
|
|
|
menu: undefined,
|
|
|
|
|
|
|
|
formats: [[
|
2018-01-25 07:33:59 +00:00
|
|
|
{name: 'PPTX', imgCls: 'pptx', type: Asc.c_oAscFileType.PPTX},
|
2016-04-05 11:52:34 +00:00
|
|
|
{name: 'PDF', imgCls: 'pdf', type: Asc.c_oAscFileType.PDF},
|
2017-04-21 08:17:14 +00:00
|
|
|
{name: 'ODP', imgCls: 'odp', type: Asc.c_oAscFileType.ODP}
|
2019-02-21 13:10:37 +00:00
|
|
|
],[
|
|
|
|
{name: 'POTX', imgCls: 'potx', type: Asc.c_oAscFileType.POTX},
|
|
|
|
{name: 'PDFA', imgCls: 'pdfa', type: Asc.c_oAscFileType.PDFA},
|
|
|
|
{name: 'OTP', imgCls: 'otp', type: Asc.c_oAscFileType.OTP}
|
2021-07-20 18:30:09 +00:00
|
|
|
], [
|
2021-10-21 09:13:51 +00:00
|
|
|
{name: 'PPSX', imgCls: 'ppsx', type: Asc.c_oAscFileType.PPSX},
|
2021-07-30 15:57:45 +00:00
|
|
|
{name: 'PNG', imgCls: 'png', type: Asc.c_oAscFileType.PNG},
|
|
|
|
{name: 'JPG', imgCls: 'jpg', type: Asc.c_oAscFileType.JPG}
|
2021-10-21 09:13:51 +00:00
|
|
|
], [
|
|
|
|
{name: 'PPTM', imgCls: 'pptm', type: Asc.c_oAscFileType.PPTM}
|
2016-03-11 00:48:53 +00:00
|
|
|
]],
|
|
|
|
|
|
|
|
|
|
|
|
template: _.template([
|
|
|
|
'<table><tbody>',
|
|
|
|
'<% _.each(rows, function(row) { %>',
|
|
|
|
'<tr>',
|
|
|
|
'<% _.each(row, function(item) { %>',
|
2021-07-20 18:30:09 +00:00
|
|
|
'<% if (item.type!==Asc.c_oAscFileType.PPTM || fileType=="pptm") { %>',
|
2022-03-28 02:32:04 +00:00
|
|
|
'<td><div><div class="btn-doc-format" format="<%= item.type %>" data-hint="2" data-hint-direction="left-top" data-hint-offset="4, 4">',
|
|
|
|
'<div class="svg-format-<%= item.imgCls %>"></div>',
|
|
|
|
'</div></div></td>',
|
2021-07-20 18:30:09 +00:00
|
|
|
'<% } %>',
|
2016-03-11 00:48:53 +00:00
|
|
|
'<% }) %>',
|
|
|
|
'</tr>',
|
|
|
|
'<% }) %>',
|
|
|
|
'</tbody></table>'
|
|
|
|
].join('')),
|
|
|
|
|
|
|
|
initialize: function(options) {
|
|
|
|
Common.UI.BaseView.prototype.initialize.call(this,arguments);
|
|
|
|
|
|
|
|
this.menu = options.menu;
|
2021-07-20 18:30:09 +00:00
|
|
|
this.fileType = options.fileType;
|
2016-03-11 00:48:53 +00:00
|
|
|
},
|
|
|
|
|
|
|
|
render: function() {
|
2021-07-20 18:30:09 +00:00
|
|
|
this.$el.html(this.template({rows:this.formats, fileType: (this.fileType || 'pptx').toLowerCase()}));
|
2016-03-11 00:48:53 +00:00
|
|
|
$('.btn-doc-format',this.el).on('click', _.bind(this.onFormatClick,this));
|
|
|
|
|
|
|
|
if (_.isUndefined(this.scroller)) {
|
|
|
|
this.scroller = new Common.UI.Scroller({
|
2019-08-22 14:43:51 +00:00
|
|
|
el: this.$el,
|
2020-06-11 11:00:23 +00:00
|
|
|
suppressScrollX: true,
|
|
|
|
alwaysVisibleY: true
|
2016-03-11 00:48:53 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
return this;
|
|
|
|
},
|
|
|
|
|
2020-06-11 11:00:23 +00:00
|
|
|
show: function() {
|
|
|
|
Common.UI.BaseView.prototype.show.call(this,arguments);
|
|
|
|
this.scroller && this.scroller.update();
|
|
|
|
},
|
|
|
|
|
2016-03-11 00:48:53 +00:00
|
|
|
onFormatClick: function(e) {
|
2018-04-24 11:54:29 +00:00
|
|
|
var type = e.currentTarget.attributes['format'];
|
|
|
|
if (!_.isUndefined(type) && this.menu) {
|
|
|
|
this.menu.fireEvent('saveas:format', [this.menu, parseInt(type.value)]);
|
2016-03-11 00:48:53 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2018-09-27 12:25:15 +00:00
|
|
|
PE.Views.FileMenuPanels.ViewSaveCopy = Common.UI.BaseView.extend({
|
|
|
|
el: '#panel-savecopy',
|
|
|
|
menu: undefined,
|
|
|
|
|
|
|
|
formats: [[
|
|
|
|
{name: 'PPTX', imgCls: 'pptx', type: Asc.c_oAscFileType.PPTX, ext: '.pptx'},
|
|
|
|
{name: 'PDF', imgCls: 'pdf', type: Asc.c_oAscFileType.PDF, ext: '.pdf'},
|
|
|
|
{name: 'ODP', imgCls: 'odp', type: Asc.c_oAscFileType.ODP, ext: '.odp'}
|
2019-02-21 13:10:37 +00:00
|
|
|
],[
|
|
|
|
{name: 'POTX', imgCls: 'potx', type: Asc.c_oAscFileType.POTX, ext: '.potx'},
|
|
|
|
{name: 'PDFA', imgCls: 'pdfa', type: Asc.c_oAscFileType.PDFA, ext: '.pdf'},
|
|
|
|
{name: 'OTP', imgCls: 'otp', type: Asc.c_oAscFileType.OTP, ext: '.otp'}
|
2021-07-20 18:30:09 +00:00
|
|
|
], [
|
2021-10-21 09:13:51 +00:00
|
|
|
{name: 'PPSX', imgCls: 'ppsx', type: Asc.c_oAscFileType.PPSX, ext: '.ppsx'},
|
2021-12-23 17:10:00 +00:00
|
|
|
{name: 'PNG', imgCls: 'png', type: Asc.c_oAscFileType.PNG, ext: '.zip'},
|
|
|
|
{name: 'JPG', imgCls: 'jpg', type: Asc.c_oAscFileType.JPG, ext: '.zip'}
|
2021-10-21 09:13:51 +00:00
|
|
|
], [
|
|
|
|
{name: 'PPTM', imgCls: 'pptm', type: Asc.c_oAscFileType.PPTM, ext: '.pptm'}
|
2018-09-27 12:25:15 +00:00
|
|
|
]],
|
|
|
|
|
|
|
|
template: _.template([
|
|
|
|
'<table><tbody>',
|
|
|
|
'<% _.each(rows, function(row) { %>',
|
|
|
|
'<tr>',
|
|
|
|
'<% _.each(row, function(item) { %>',
|
2021-07-20 18:30:09 +00:00
|
|
|
'<% if (item.type!==Asc.c_oAscFileType.PPTM || fileType=="pptm") { %>',
|
2022-03-28 02:32:04 +00:00
|
|
|
'<td><div><div class="btn-doc-format" format="<%= item.type %>", format-ext="<%= item.ext %>" data-hint="2" data-hint-direction="left-top" data-hint-offset="4, 4">',
|
|
|
|
'<div class="svg-format-<%= item.imgCls %>"></div>',
|
|
|
|
'</div></div></td>',
|
2021-07-20 18:30:09 +00:00
|
|
|
'<% } %>',
|
2018-09-27 12:25:15 +00:00
|
|
|
'<% }) %>',
|
|
|
|
'</tr>',
|
|
|
|
'<% }) %>',
|
|
|
|
'</tbody></table>'
|
|
|
|
].join('')),
|
|
|
|
|
|
|
|
initialize: function(options) {
|
|
|
|
Common.UI.BaseView.prototype.initialize.call(this,arguments);
|
|
|
|
|
|
|
|
this.menu = options.menu;
|
2021-07-20 18:30:09 +00:00
|
|
|
this.fileType = options.fileType;
|
2018-09-27 12:25:15 +00:00
|
|
|
},
|
|
|
|
|
|
|
|
render: function() {
|
2021-07-20 18:30:09 +00:00
|
|
|
this.$el.html(this.template({rows:this.formats, fileType: (this.fileType || 'pptx').toLowerCase()}));
|
2018-09-27 12:25:15 +00:00
|
|
|
$('.btn-doc-format',this.el).on('click', _.bind(this.onFormatClick,this));
|
|
|
|
|
|
|
|
if (_.isUndefined(this.scroller)) {
|
|
|
|
this.scroller = new Common.UI.Scroller({
|
2019-08-22 14:43:51 +00:00
|
|
|
el: this.$el,
|
2020-06-11 11:00:23 +00:00
|
|
|
suppressScrollX: true,
|
|
|
|
alwaysVisibleY: true
|
2018-09-27 12:25:15 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
return this;
|
|
|
|
},
|
|
|
|
|
2020-06-11 11:00:23 +00:00
|
|
|
show: function() {
|
|
|
|
Common.UI.BaseView.prototype.show.call(this,arguments);
|
|
|
|
this.scroller && this.scroller.update();
|
|
|
|
},
|
|
|
|
|
2018-09-27 12:25:15 +00:00
|
|
|
onFormatClick: function(e) {
|
|
|
|
var type = e.currentTarget.attributes['format'],
|
|
|
|
ext = e.currentTarget.attributes['format-ext'];
|
|
|
|
if (!_.isUndefined(type) && !_.isUndefined(ext) && this.menu) {
|
|
|
|
this.menu.fireEvent('savecopy:format', [this.menu, parseInt(type.value), ext.value]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2016-03-11 00:48:53 +00:00
|
|
|
PE.Views.FileMenuPanels.Settings = Common.UI.BaseView.extend(_.extend({
|
|
|
|
el: '#panel-settings',
|
|
|
|
menu: undefined,
|
|
|
|
|
|
|
|
template: _.template([
|
2020-08-07 10:51:26 +00:00
|
|
|
'<div class="flex-settings">',
|
2022-02-16 22:02:01 +00:00
|
|
|
'<table style="margin: 10px 14px auto;"><tbody>',
|
2022-02-19 17:18:22 +00:00
|
|
|
'<tr class="editsave">',
|
2022-02-16 00:58:04 +00:00
|
|
|
'<td colspan="2" class="group-name top"><label><%= scope.txtEditingSaving %></label></td>',
|
|
|
|
'</tr>',
|
|
|
|
'<tr class="autosave">',
|
|
|
|
'<td colspan="2"><span id="fms-chb-autosave"></span></td>',
|
|
|
|
'</tr>',
|
2022-02-16 22:02:01 +00:00
|
|
|
'<tr class="forcesave">',
|
|
|
|
'<td colspan="2" class="right"><span id="fms-chb-forcesave"></span></td>',
|
|
|
|
'</tr>',
|
2022-02-16 00:58:04 +00:00
|
|
|
'<tr class="edit">',
|
|
|
|
'<td colspan="2"><div id="fms-chb-paste-settings"></div></td>',
|
|
|
|
'</tr>',
|
2022-02-25 02:02:26 +00:00
|
|
|
'<tr class ="editsave divider-group"></tr>',
|
2022-02-16 00:58:04 +00:00
|
|
|
'<tr class="coauth changes">',
|
|
|
|
'<td colspan="2" class="group-name"><label><%= scope.txtCollaboration %></label></td>',
|
|
|
|
'</tr>',
|
|
|
|
'<tr class="coauth changes">',
|
|
|
|
'<td colspan="2" class="subgroup-name"><label><%= scope.strCoAuthMode %></label></td>',
|
|
|
|
'</tr>',
|
|
|
|
'<tr class="coauth changes">',
|
|
|
|
'<td colspan="2"><div style="display: flex;">',
|
|
|
|
'<div id="fms-rb-coauth-mode-fast"></div>',
|
|
|
|
'<span style ="display: flex; flex-direction: column;"><label><%= scope.strFast %></label>',
|
2022-02-19 17:18:22 +00:00
|
|
|
'<label class="comment-text"><%= scope.txtFastTip %></label></span>',
|
2022-02-16 00:58:04 +00:00
|
|
|
'</div></td>',
|
|
|
|
'</tr>',
|
|
|
|
'<tr class="coauth changes">',
|
|
|
|
'<td colspan="2"><div style="display: flex;">',
|
|
|
|
'<div id="fms-rb-coauth-mode-strict"></div>',
|
|
|
|
'<span style ="display: flex; flex-direction: column;"><label><%= scope.strStrict %></label>',
|
2022-02-19 17:18:22 +00:00
|
|
|
'<label class="comment-text"><%= scope.txtStrictTip %></label></span>',
|
2022-02-16 00:58:04 +00:00
|
|
|
'</div></td>',
|
|
|
|
'</tr>',
|
2022-02-25 02:02:26 +00:00
|
|
|
'<tr class ="coauth changes divider-group"></tr>',
|
2022-04-05 19:36:00 +00:00
|
|
|
'<tr class="live-viewer">',
|
2022-04-06 13:16:39 +00:00
|
|
|
'<td colspan="2" class="group-name"><label><%= scope.txtCollaboration %></label></td>',
|
|
|
|
'</tr>',
|
|
|
|
'<tr class="live-viewer">',
|
|
|
|
'<td colspan="2"><div id="fms-chb-live-viewer"></div></td>',
|
|
|
|
'</tr>',
|
|
|
|
'<tr class ="live-viewer divider-group"></tr>',
|
2022-02-19 17:18:22 +00:00
|
|
|
'<tr class="edit">',
|
2022-02-16 00:58:04 +00:00
|
|
|
'<td colspan="2" class="group-name"><label><%= scope.txtProofing %></label></td>',
|
|
|
|
'</tr>',
|
2021-11-01 22:51:09 +00:00
|
|
|
'<tr class="edit spellcheck">',
|
2022-02-16 00:58:04 +00:00
|
|
|
'<td colspan="2"><div id="fms-chb-spell-check"></div></td>',
|
|
|
|
'</tr>',
|
2022-03-29 14:51:33 +00:00
|
|
|
'<tr class="edit spellcheck">',
|
|
|
|
'<td colspan="2"><span id="fms-chb-ignore-uppercase-words"></span></td>',
|
|
|
|
'</tr>',
|
|
|
|
'<tr class="edit spellcheck">',
|
|
|
|
'<td colspan="2"><span id="fms-chb-ignore-numbers-words"></span></td>',
|
|
|
|
'</tr>',
|
2020-07-03 12:15:17 +00:00
|
|
|
'<tr class="edit">',
|
2022-02-16 00:58:04 +00:00
|
|
|
'<td colspan="2"><button type="button" class="btn btn-text-default" id="fms-btn-auto-correct" style="width:auto; display: inline-block;padding-right: 10px;padding-left: 10px;" data-hint="2" data-hint-direction="bottom" data-hint-offset="medium"><%= scope.txtAutoCorrect %></button></div></td>',
|
|
|
|
'</tr>',
|
2022-02-25 02:02:26 +00:00
|
|
|
'<tr class ="edit divider-group"></tr>',
|
2022-02-19 17:18:22 +00:00
|
|
|
'<tr>',
|
2022-02-16 00:58:04 +00:00
|
|
|
'<td colspan="2" class="group-name"><label><%= scope.txtWorkspace %></label></td>',
|
|
|
|
'</tr>',
|
2017-04-11 11:05:56 +00:00
|
|
|
'<tr class="edit">',
|
2022-02-16 22:02:01 +00:00
|
|
|
'<td colspan="2"><span id="fms-chb-align-guides"></span></td>',
|
2022-02-16 00:58:04 +00:00
|
|
|
'</tr>',
|
|
|
|
'<tr class="edit">',
|
2022-02-16 22:02:01 +00:00
|
|
|
'<td colspan="2"><div id="fms-chb-input-mode"></div></td>',
|
2022-02-16 00:58:04 +00:00
|
|
|
'</tr>',
|
2022-05-17 15:55:18 +00:00
|
|
|
'<tr>',
|
|
|
|
'<td colspan="2"><div id="fms-chb-use-alt-key"></div></td>',
|
|
|
|
'</tr>',
|
2022-02-16 00:58:04 +00:00
|
|
|
|
2021-02-16 12:08:39 +00:00
|
|
|
'<tr class="themes">',
|
2022-02-16 00:58:04 +00:00
|
|
|
'<td><label><%= scope.strTheme %></label></td>',
|
|
|
|
'<td><span id="fms-cmb-theme"></span></td>',
|
|
|
|
'</tr>',
|
|
|
|
'<tr class="edit">',
|
|
|
|
'<td><label><%= scope.strUnit %></label></td>',
|
|
|
|
'<td><span id="fms-cmb-unit"></span></td>',
|
|
|
|
'</tr>',
|
2016-03-11 00:48:53 +00:00
|
|
|
'<tr>',
|
2022-02-16 00:58:04 +00:00
|
|
|
'<td><label><%= scope.strZoom %></label></td>',
|
|
|
|
'<td><div id="fms-cmb-zoom" class="input-group-nr"></div></td>',
|
|
|
|
'</tr>',
|
2019-02-28 12:01:47 +00:00
|
|
|
'<tr>',
|
2022-02-16 00:58:04 +00:00
|
|
|
'<td><label><%= scope.strFontRender %></label></td>',
|
|
|
|
'<td><span id="fms-cmb-font-render"></span></td>',
|
|
|
|
'</tr>',
|
2020-05-22 14:55:35 +00:00
|
|
|
'<tr class="macros">',
|
2022-02-16 00:58:04 +00:00
|
|
|
'<td><label><%= scope.strMacrosSettings %></label></td>',
|
|
|
|
'<td><div><div id="fms-cmb-macros"></div></div></td>',
|
|
|
|
'</tr>',
|
2022-02-25 02:02:26 +00:00
|
|
|
'<tr class ="divider-group"></tr>',
|
2020-11-17 21:38:48 +00:00
|
|
|
'<tr class="fms-btn-apply">',
|
2022-02-16 22:02:01 +00:00
|
|
|
'<td style="padding-top:15px; padding-bottom: 15px;"><button class="btn normal dlg-btn primary" data-hint="2" data-hint-direction="bottom" data-hint-offset="medium"><%= scope.okButtonText %></button></td>',
|
|
|
|
'<td></td>',
|
2020-11-17 21:38:48 +00:00
|
|
|
'</tr>',
|
2020-08-06 20:17:32 +00:00
|
|
|
'</tbody></table>',
|
|
|
|
'</div>',
|
2020-11-17 21:38:48 +00:00
|
|
|
'<div class="fms-flex-apply hidden">',
|
2022-02-16 22:02:01 +00:00
|
|
|
'<table style="margin: 10px 14px;"><tbody>',
|
2016-03-11 00:48:53 +00:00
|
|
|
'<tr>',
|
2022-02-16 22:02:01 +00:00
|
|
|
'<td><button class="btn normal dlg-btn primary" data-hint="2" data-hint-direction="bottom" data-hint-offset="big"><%= scope.okButtonText %></button></td>',
|
|
|
|
'<td></td>',
|
2016-03-11 00:48:53 +00:00
|
|
|
'</tr>',
|
2020-08-06 20:17:32 +00:00
|
|
|
'</tbody></table>',
|
|
|
|
'</div>'
|
2016-03-11 00:48:53 +00:00
|
|
|
].join('')),
|
|
|
|
|
|
|
|
initialize: function(options) {
|
|
|
|
Common.UI.BaseView.prototype.initialize.call(this,arguments);
|
|
|
|
|
|
|
|
this.menu = options.menu;
|
|
|
|
},
|
|
|
|
|
2019-08-22 14:43:51 +00:00
|
|
|
render: function(node) {
|
|
|
|
var me = this;
|
|
|
|
var $markup = $(this.template({scope: this}));
|
2016-03-11 00:48:53 +00:00
|
|
|
|
2017-04-26 08:34:55 +00:00
|
|
|
this.chSpell = new Common.UI.CheckBox({
|
2019-08-22 14:43:51 +00:00
|
|
|
el: $markup.findById('#fms-chb-spell-check'),
|
2022-02-16 00:58:04 +00:00
|
|
|
labelText: this.txtSpellCheck,
|
2021-06-21 17:49:45 +00:00
|
|
|
dataHint: '2',
|
|
|
|
dataHintDirection: 'left',
|
|
|
|
dataHintOffset: 'small'
|
2022-03-29 14:51:33 +00:00
|
|
|
}).on('change', function(field, newValue, oldValue, eOpts){
|
|
|
|
me.chIgnoreUppercase.setDisabled(field.getValue()!=='checked');
|
|
|
|
me.chIgnoreNumbers.setDisabled(field.getValue()!=='checked');
|
|
|
|
});
|
|
|
|
|
|
|
|
this.chIgnoreUppercase = new Common.UI.CheckBox({
|
|
|
|
el: $markup.findById('#fms-chb-ignore-uppercase-words'),
|
|
|
|
labelText: this.strIgnoreWordsInUPPERCASE,
|
|
|
|
dataHint: '2',
|
|
|
|
dataHintDirection: 'left',
|
|
|
|
dataHintOffset: 'small'
|
|
|
|
});
|
|
|
|
|
|
|
|
this.chIgnoreNumbers = new Common.UI.CheckBox({
|
|
|
|
el: $markup.findById('#fms-chb-ignore-numbers-words'),
|
|
|
|
labelText: this.strIgnoreWordsWithNumbers,
|
|
|
|
dataHint: '2',
|
|
|
|
dataHintDirection: 'left',
|
|
|
|
dataHintOffset: 'small'
|
2017-04-26 08:34:55 +00:00
|
|
|
});
|
|
|
|
|
2016-03-11 00:48:53 +00:00
|
|
|
this.chInputMode = new Common.UI.CheckBox({
|
2019-08-22 14:43:51 +00:00
|
|
|
el: $markup.findById('#fms-chb-input-mode'),
|
2022-02-16 00:58:04 +00:00
|
|
|
labelText: this.txtHieroglyphs,
|
2021-06-21 17:49:45 +00:00
|
|
|
dataHint: '2',
|
|
|
|
dataHintDirection: 'left',
|
|
|
|
dataHintOffset: 'small'
|
2016-03-11 00:48:53 +00:00
|
|
|
});
|
|
|
|
|
2022-05-17 15:55:18 +00:00
|
|
|
this.chUseAltKey = new Common.UI.CheckBox({
|
|
|
|
el: $markup.findById('#fms-chb-use-alt-key'),
|
|
|
|
labelText: Common.Utils.isMac ? this.txtUseOptionKey : this.txtUseAltKey,
|
|
|
|
dataHint: '2',
|
|
|
|
dataHintDirection: 'left',
|
|
|
|
dataHintOffset: 'small'
|
|
|
|
});
|
2022-09-22 17:12:05 +00:00
|
|
|
Common.Utils.isIE && this.chUseAltKey.$el.parent().parent().hide();
|
2022-05-17 15:55:18 +00:00
|
|
|
|
2016-03-11 00:48:53 +00:00
|
|
|
this.cmbZoom = new Common.UI.ComboBox({
|
2019-08-22 14:43:51 +00:00
|
|
|
el : $markup.findById('#fms-cmb-zoom'),
|
2022-03-01 12:59:21 +00:00
|
|
|
style : 'width: 160px;',
|
2016-03-11 00:48:53 +00:00
|
|
|
editable : false,
|
2022-02-25 11:31:23 +00:00
|
|
|
menuCls : 'menu-aligned',
|
2016-03-11 00:48:53 +00:00
|
|
|
cls : 'input-group-nr',
|
2022-03-01 12:59:21 +00:00
|
|
|
menuStyle : 'min-width:100%; max-height: 157px;',
|
2016-03-11 00:48:53 +00:00
|
|
|
data : [
|
|
|
|
{ value: -1, displayValue: this.txtFitSlide },
|
2016-09-13 08:28:21 +00:00
|
|
|
{ value: -2, displayValue: this.txtFitWidth },
|
2016-03-11 00:48:53 +00:00
|
|
|
{ value: 50, displayValue: "50%" },
|
|
|
|
{ value: 60, displayValue: "60%" },
|
|
|
|
{ value: 70, displayValue: "70%" },
|
|
|
|
{ value: 80, displayValue: "80%" },
|
|
|
|
{ value: 90, displayValue: "90%" },
|
|
|
|
{ value: 100, displayValue: "100%" },
|
|
|
|
{ value: 110, displayValue: "110%" },
|
|
|
|
{ value: 120, displayValue: "120%" },
|
|
|
|
{ value: 150, displayValue: "150%" },
|
|
|
|
{ value: 175, displayValue: "175%" },
|
2021-12-01 15:27:40 +00:00
|
|
|
{ value: 200, displayValue: "200%" },
|
|
|
|
{ value: 300, displayValue: "300%" },
|
|
|
|
{ value: 400, displayValue: "400%" },
|
|
|
|
{ value: 500, displayValue: "500%" }
|
2021-06-21 17:49:45 +00:00
|
|
|
],
|
|
|
|
dataHint: '2',
|
|
|
|
dataHintDirection: 'bottom',
|
|
|
|
dataHintOffset: 'big'
|
2016-03-11 00:48:53 +00:00
|
|
|
});
|
|
|
|
|
2022-02-16 00:58:04 +00:00
|
|
|
this.rbCoAuthModeFast = new Common.UI.RadioBox({
|
|
|
|
el : $markup.findById('#fms-rb-coauth-mode-fast'),
|
|
|
|
name : 'coauth-mode',
|
|
|
|
dataHint : '2',
|
|
|
|
dataHintDirection: 'left',
|
|
|
|
dataHintOffset: 'small'
|
|
|
|
}).on('change', function () {
|
|
|
|
me.chAutosave.setValue(1);
|
|
|
|
});
|
2022-02-19 17:18:22 +00:00
|
|
|
this.rbCoAuthModeFast.$el.parent().on('click', function (){me.rbCoAuthModeFast.setValue(true);});
|
2022-02-16 00:58:04 +00:00
|
|
|
|
|
|
|
this.rbCoAuthModeStrict = new Common.UI.RadioBox({
|
|
|
|
el : $markup.findById('#fms-rb-coauth-mode-strict'),
|
|
|
|
name : 'coauth-mode',
|
|
|
|
dataHint : '2',
|
|
|
|
dataHintDirection: 'left',
|
|
|
|
dataHintOffset: 'small'
|
|
|
|
});
|
2022-02-19 17:18:22 +00:00
|
|
|
this.rbCoAuthModeStrict.$el.parent().on('click', function (){me.rbCoAuthModeStrict.setValue(true);});
|
2022-02-16 00:58:04 +00:00
|
|
|
|
2022-04-05 19:36:00 +00:00
|
|
|
this.chLiveViewer = new Common.UI.CheckBox({
|
|
|
|
el: $markup.findById('#fms-chb-live-viewer'),
|
|
|
|
labelText: this.strShowOthersChanges,
|
|
|
|
dataHint: '2',
|
|
|
|
dataHintDirection: 'left',
|
|
|
|
dataHintOffset: 'small'
|
|
|
|
});
|
|
|
|
|
2016-03-11 00:48:53 +00:00
|
|
|
this.chAutosave = new Common.UI.CheckBox({
|
2019-08-22 14:43:51 +00:00
|
|
|
el: $markup.findById('#fms-chb-autosave'),
|
2022-02-16 00:58:04 +00:00
|
|
|
labelText: this.textAutoSave,
|
2021-06-21 17:49:45 +00:00
|
|
|
dataHint: '2',
|
|
|
|
dataHintDirection: 'left',
|
|
|
|
dataHintOffset: 'small'
|
2019-08-22 14:43:51 +00:00
|
|
|
}).on('change', function(field, newValue, oldValue, eOpts){
|
2022-02-16 00:58:04 +00:00
|
|
|
if (field.getValue()!=='checked' && me.rbCoAuthModeFast.getValue()) {
|
|
|
|
me.rbCoAuthModeStrict.setValue(1);
|
2016-03-25 07:48:19 +00:00
|
|
|
}
|
2019-08-22 14:43:51 +00:00
|
|
|
});
|
2016-03-11 00:48:53 +00:00
|
|
|
|
2017-04-11 11:05:56 +00:00
|
|
|
this.chForcesave = new Common.UI.CheckBox({
|
2019-08-22 14:43:51 +00:00
|
|
|
el: $markup.findById('#fms-chb-forcesave'),
|
2022-02-16 22:02:01 +00:00
|
|
|
labelText: this.textForceSave,
|
2021-06-21 17:49:45 +00:00
|
|
|
dataHint: '2',
|
|
|
|
dataHintDirection: 'left',
|
|
|
|
dataHintOffset: 'small'
|
2017-04-11 11:05:56 +00:00
|
|
|
});
|
|
|
|
|
2016-03-11 00:48:53 +00:00
|
|
|
this.chAlignGuides = new Common.UI.CheckBox({
|
2019-08-22 14:43:51 +00:00
|
|
|
el: $markup.findById('#fms-chb-align-guides'),
|
2022-02-16 00:58:04 +00:00
|
|
|
labelText: this.textAlignGuides,
|
2021-06-21 17:49:45 +00:00
|
|
|
dataHint: '2',
|
|
|
|
dataHintDirection: 'left',
|
|
|
|
dataHintOffset: 'small'
|
2016-03-11 00:48:53 +00:00
|
|
|
});
|
|
|
|
|
2020-02-17 13:43:02 +00:00
|
|
|
var itemsTemplate =
|
|
|
|
_.template([
|
|
|
|
'<% _.each(items, function(item) { %>',
|
2021-12-14 13:46:44 +00:00
|
|
|
'<li id="<%= item.id %>" data-value="<%= item.value %>" <% if (item.value === "custom") { %> class="border-top" style="margin-top: 5px;padding-top: 5px;" <% } %> ><a tabindex="-1" type="menuitem" <% if (typeof(item.checked) !== "undefined" && item.checked) { %> class="checked" <% } %> ><%= scope.getDisplayValue(item) %></a></li>',
|
2020-02-17 13:43:02 +00:00
|
|
|
'<% }); %>'
|
|
|
|
].join(''));
|
2019-02-28 12:01:47 +00:00
|
|
|
this.cmbFontRender = new Common.UI.ComboBox({
|
2019-08-22 14:43:51 +00:00
|
|
|
el : $markup.findById('#fms-cmb-font-render'),
|
2022-03-01 12:59:21 +00:00
|
|
|
style : 'width: 160px;',
|
2019-02-28 12:01:47 +00:00
|
|
|
editable : false,
|
2022-02-25 11:31:23 +00:00
|
|
|
menuCls : 'menu-aligned',
|
2022-03-01 12:59:21 +00:00
|
|
|
menuStyle : 'min-width:100%;',
|
2019-02-28 12:01:47 +00:00
|
|
|
cls : 'input-group-nr',
|
2020-02-17 13:43:02 +00:00
|
|
|
itemsTemplate: itemsTemplate,
|
2019-02-28 12:01:47 +00:00
|
|
|
data : [
|
|
|
|
{ value: Asc.c_oAscFontRenderingModeType.hintingAndSubpixeling, displayValue: this.txtWin },
|
|
|
|
{ value: Asc.c_oAscFontRenderingModeType.noHinting, displayValue: this.txtMac },
|
2020-02-17 13:43:02 +00:00
|
|
|
{ value: Asc.c_oAscFontRenderingModeType.hinting, displayValue: this.txtNative },
|
|
|
|
{ value: 'custom', displayValue: this.txtCacheMode }
|
2021-06-21 17:49:45 +00:00
|
|
|
],
|
|
|
|
dataHint: '2',
|
|
|
|
dataHintDirection: 'bottom',
|
|
|
|
dataHintOffset: 'big'
|
2019-02-28 12:01:47 +00:00
|
|
|
});
|
2020-02-17 13:43:02 +00:00
|
|
|
this.cmbFontRender.on('selected', _.bind(this.onFontRenderSelected, this));
|
2019-02-28 12:01:47 +00:00
|
|
|
|
2016-03-11 00:48:53 +00:00
|
|
|
this.cmbUnit = new Common.UI.ComboBox({
|
2019-08-22 14:43:51 +00:00
|
|
|
el : $markup.findById('#fms-cmb-unit'),
|
2022-03-01 12:59:21 +00:00
|
|
|
style : 'width: 160px;',
|
2016-03-11 00:48:53 +00:00
|
|
|
editable : false,
|
2022-02-25 11:31:23 +00:00
|
|
|
menuCls : 'menu-aligned',
|
2022-03-01 12:59:21 +00:00
|
|
|
menuStyle : 'min-width:100%;',
|
2016-03-11 00:48:53 +00:00
|
|
|
cls : 'input-group-nr',
|
|
|
|
data : [
|
|
|
|
{ value: Common.Utils.Metric.c_MetricUnits['cm'], displayValue: this.txtCm },
|
2016-04-06 15:17:40 +00:00
|
|
|
{ value: Common.Utils.Metric.c_MetricUnits['pt'], displayValue: this.txtPt },
|
|
|
|
{ value: Common.Utils.Metric.c_MetricUnits['inch'], displayValue: this.txtInch }
|
2021-06-21 17:49:45 +00:00
|
|
|
],
|
|
|
|
dataHint: '2',
|
|
|
|
dataHintDirection: 'bottom',
|
|
|
|
dataHintOffset: 'big'
|
2016-03-11 00:48:53 +00:00
|
|
|
});
|
|
|
|
|
2020-05-22 14:55:35 +00:00
|
|
|
this.cmbMacros = new Common.UI.ComboBox({
|
|
|
|
el : $markup.findById('#fms-cmb-macros'),
|
2022-03-01 12:59:21 +00:00
|
|
|
style : 'width: 160px;',
|
2020-05-22 14:55:35 +00:00
|
|
|
editable : false,
|
2020-11-17 21:38:48 +00:00
|
|
|
menuCls : 'menu-aligned',
|
2022-03-01 12:59:21 +00:00
|
|
|
menuStyle : 'min-width:100%;',
|
2020-05-22 14:55:35 +00:00
|
|
|
cls : 'input-group-nr',
|
|
|
|
data : [
|
|
|
|
{ value: 2, displayValue: this.txtStopMacros, descValue: this.txtStopMacrosDesc },
|
|
|
|
{ value: 0, displayValue: this.txtWarnMacros, descValue: this.txtWarnMacrosDesc },
|
|
|
|
{ value: 1, displayValue: this.txtRunMacros, descValue: this.txtRunMacrosDesc }
|
2021-06-21 17:49:45 +00:00
|
|
|
],
|
2022-02-16 00:58:04 +00:00
|
|
|
itemsTemplate: _.template([
|
|
|
|
'<% _.each(items, function(item) { %>',
|
|
|
|
'<li id="<%= item.id %>" data-value="<%- item.value %>"><a tabindex="-1" type="menuitem" style ="display: flex; flex-direction: column;">',
|
|
|
|
'<label><%= scope.getDisplayValue(item) %></label><label class="comment-text"><%= item.descValue %></label></a></li>',
|
|
|
|
'<% }); %>'
|
|
|
|
].join('')),
|
2021-06-21 17:49:45 +00:00
|
|
|
dataHint: '2',
|
|
|
|
dataHintDirection: 'bottom',
|
|
|
|
dataHintOffset: 'big'
|
2020-05-22 14:55:35 +00:00
|
|
|
}).on('selected', function(combo, record) {
|
|
|
|
me.lblMacrosDesc.text(record.descValue);
|
|
|
|
});
|
|
|
|
this.lblMacrosDesc = $markup.findById('#fms-lbl-macros');
|
|
|
|
|
2020-06-04 08:51:14 +00:00
|
|
|
this.chPaste = new Common.UI.CheckBox({
|
|
|
|
el: $markup.findById('#fms-chb-paste-settings'),
|
2021-06-21 17:49:45 +00:00
|
|
|
labelText: this.strPasteButton,
|
|
|
|
dataHint: '2',
|
|
|
|
dataHintDirection: 'left',
|
|
|
|
dataHintOffset: 'small'
|
2020-06-04 08:51:14 +00:00
|
|
|
});
|
|
|
|
|
2020-07-03 12:15:17 +00:00
|
|
|
this.btnAutoCorrect = new Common.UI.Button({
|
|
|
|
el: $markup.findById('#fms-btn-auto-correct')
|
|
|
|
});
|
|
|
|
this.btnAutoCorrect.on('click', _.bind(this.autoCorrect, this));
|
|
|
|
|
2021-02-06 10:06:33 +00:00
|
|
|
this.cmbTheme = new Common.UI.ComboBox({
|
|
|
|
el : $markup.findById('#fms-cmb-theme'),
|
2022-03-01 12:59:21 +00:00
|
|
|
style : 'width: 160px;',
|
2021-02-06 10:06:33 +00:00
|
|
|
editable : false,
|
2022-02-25 11:31:23 +00:00
|
|
|
menuCls : 'menu-aligned',
|
2022-03-01 12:59:21 +00:00
|
|
|
menuStyle : 'min-width:100%;',
|
2021-02-06 10:06:33 +00:00
|
|
|
cls : 'input-group-nr',
|
2021-07-01 13:47:01 +00:00
|
|
|
dataHint : '2',
|
2021-06-21 17:49:45 +00:00
|
|
|
dataHintDirection: 'bottom',
|
|
|
|
dataHintOffset: 'big'
|
2021-02-06 10:06:33 +00:00
|
|
|
});
|
|
|
|
|
2020-11-17 21:38:48 +00:00
|
|
|
$markup.find('.btn.primary').each(function(index, el){
|
|
|
|
(new Common.UI.Button({
|
|
|
|
el: $(el)
|
|
|
|
})).on('click', _.bind(me.applySettings, me));
|
2016-03-11 00:48:53 +00:00
|
|
|
});
|
|
|
|
|
2020-08-07 10:51:26 +00:00
|
|
|
this.pnlSettings = $markup.find('.flex-settings').addBack().filter('.flex-settings');
|
2020-11-17 21:38:48 +00:00
|
|
|
this.pnlApply = $markup.find('.fms-flex-apply').addBack().filter('.fms-flex-apply');
|
|
|
|
this.pnlTable = this.pnlSettings.find('table');
|
|
|
|
this.trApply = $markup.find('.fms-btn-apply');
|
2020-08-06 20:17:32 +00:00
|
|
|
|
2019-08-22 14:43:51 +00:00
|
|
|
this.$el = $(node).html($markup);
|
|
|
|
|
2016-03-11 00:48:53 +00:00
|
|
|
if (_.isUndefined(this.scroller)) {
|
|
|
|
this.scroller = new Common.UI.Scroller({
|
2020-08-06 20:17:32 +00:00
|
|
|
el: this.pnlSettings,
|
2020-06-11 11:00:23 +00:00
|
|
|
suppressScrollX: true,
|
|
|
|
alwaysVisibleY: true
|
2016-03-11 00:48:53 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2020-08-06 20:17:32 +00:00
|
|
|
Common.NotificationCenter.on({
|
|
|
|
'window:resize': function() {
|
|
|
|
me.isVisible() && me.updateScroller();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2016-03-11 00:48:53 +00:00
|
|
|
return this;
|
|
|
|
},
|
|
|
|
|
|
|
|
show: function() {
|
|
|
|
Common.UI.BaseView.prototype.show.call(this,arguments);
|
|
|
|
|
|
|
|
this.updateSettings();
|
2020-08-06 20:17:32 +00:00
|
|
|
this.updateScroller();
|
|
|
|
},
|
|
|
|
|
|
|
|
updateScroller: function() {
|
|
|
|
if (this.scroller) {
|
2020-11-17 21:38:48 +00:00
|
|
|
Common.UI.Menu.Manager.hideAll();
|
|
|
|
var scrolled = this.$el.height()< this.pnlTable.height() + 25 + this.pnlApply.height();
|
|
|
|
this.pnlApply.toggleClass('hidden', !scrolled);
|
|
|
|
this.trApply.toggleClass('hidden', scrolled);
|
|
|
|
this.pnlSettings.css('overflow', scrolled ? 'hidden' : 'visible');
|
2020-08-06 20:17:32 +00:00
|
|
|
this.scroller.update();
|
|
|
|
this.pnlSettings.toggleClass('bordered', this.scroller.isVisible());
|
|
|
|
}
|
2016-03-11 00:48:53 +00:00
|
|
|
},
|
|
|
|
|
|
|
|
setMode: function(mode) {
|
|
|
|
this.mode = mode;
|
2021-04-02 19:36:08 +00:00
|
|
|
|
|
|
|
var fast_coauth = Common.Utils.InternalSettings.get("pe-settings-coauthmode");
|
|
|
|
|
2022-02-19 17:18:22 +00:00
|
|
|
$('tr.editsave', this.el)[mode.isEdit || mode.canForcesave ?'show':'hide']();
|
2016-03-11 00:48:53 +00:00
|
|
|
$('tr.edit', this.el)[mode.isEdit?'show':'hide']();
|
2021-04-02 19:36:08 +00:00
|
|
|
$('tr.autosave', this.el)[mode.isEdit && (mode.canChangeCoAuthoring || !fast_coauth) ? 'show' : 'hide']();
|
2016-03-18 13:48:33 +00:00
|
|
|
if (this.mode.isDesktopApp && this.mode.isOffline) {
|
2022-02-19 17:18:22 +00:00
|
|
|
this.chAutosave.setCaption(this.textAutoRecover);
|
2016-03-11 00:48:53 +00:00
|
|
|
}
|
2017-04-11 11:05:56 +00:00
|
|
|
$('tr.forcesave', this.el)[mode.canForcesave ? 'show' : 'hide']();
|
2016-03-11 00:48:53 +00:00
|
|
|
/** coauthoring begin **/
|
2021-04-02 19:36:08 +00:00
|
|
|
$('tr.coauth.changes', this.el)[mode.isEdit && !mode.isOffline && mode.canCoAuthoring && mode.canChangeCoAuthoring ? 'show' : 'hide']();
|
2016-03-11 00:48:53 +00:00
|
|
|
/** coauthoring end **/
|
2022-04-19 15:59:18 +00:00
|
|
|
$('tr.live-viewer', this.el)[mode.canLiveView && !mode.isOffline && mode.canChangeCoAuthoring ? 'show' : 'hide']();
|
2020-05-22 14:55:35 +00:00
|
|
|
$('tr.macros', this.el)[(mode.customization && mode.customization.macros===false) ? 'hide' : 'show']();
|
2021-11-01 22:51:09 +00:00
|
|
|
$('tr.spellcheck', this.el)[mode.isEdit && Common.UI.FeaturesManager.canChange('spellcheck') ? 'show' : 'hide']();
|
2021-02-16 12:08:39 +00:00
|
|
|
|
|
|
|
if ( !Common.UI.Themes.available() ) {
|
|
|
|
$('tr.themes, tr.themes + tr.divider', this.el).hide();
|
|
|
|
}
|
2016-03-11 00:48:53 +00:00
|
|
|
},
|
|
|
|
|
2020-07-03 12:15:17 +00:00
|
|
|
setApi: function(o) {
|
|
|
|
this.api = o;
|
|
|
|
return this;
|
|
|
|
},
|
|
|
|
|
2016-03-11 00:48:53 +00:00
|
|
|
updateSettings: function() {
|
2022-03-29 14:51:33 +00:00
|
|
|
if (Common.UI.FeaturesManager.canChange('spellcheck')) {
|
2021-11-01 22:51:09 +00:00
|
|
|
this.chSpell.setValue(Common.Utils.InternalSettings.get("pe-settings-spellcheck"));
|
2022-03-29 14:51:33 +00:00
|
|
|
this.chIgnoreUppercase.setValue(Common.Utils.InternalSettings.get("pe-spellcheck-ignore-uppercase-words"));
|
|
|
|
this.chIgnoreNumbers.setValue(Common.Utils.InternalSettings.get("pe-spellcheck-ignore-numbers-words"));
|
|
|
|
}
|
2017-04-26 08:34:55 +00:00
|
|
|
|
2017-10-04 15:44:01 +00:00
|
|
|
this.chInputMode.setValue(Common.Utils.InternalSettings.get("pe-settings-inputmode"));
|
2016-03-11 00:48:53 +00:00
|
|
|
|
2022-05-17 15:55:18 +00:00
|
|
|
this.chUseAltKey.setValue(Common.Utils.InternalSettings.get("pe-settings-use-alt-key"));
|
|
|
|
|
2017-10-04 15:44:01 +00:00
|
|
|
var value = Common.Utils.InternalSettings.get("pe-settings-zoom");
|
2016-09-13 08:28:21 +00:00
|
|
|
value = (value!==null) ? parseInt(value) : (this.mode.customization && this.mode.customization.zoom ? parseInt(this.mode.customization.zoom) : -1);
|
2016-03-11 00:48:53 +00:00
|
|
|
var item = this.cmbZoom.store.findWhere({value: value});
|
2016-09-13 08:28:21 +00:00
|
|
|
this.cmbZoom.setValue(item ? parseInt(item.get('value')) : (value>0 ? value+'%' : 100));
|
2016-03-11 00:48:53 +00:00
|
|
|
|
|
|
|
/** coauthoring begin **/
|
2017-10-04 15:44:01 +00:00
|
|
|
var fast_coauth = Common.Utils.InternalSettings.get("pe-settings-coauthmode");
|
2022-02-16 00:58:04 +00:00
|
|
|
this.rbCoAuthModeFast.setValue(fast_coauth);
|
|
|
|
this.rbCoAuthModeStrict.setValue(!fast_coauth);
|
2016-03-11 00:48:53 +00:00
|
|
|
/** coauthoring end **/
|
2022-04-05 19:36:00 +00:00
|
|
|
this.chLiveViewer.setValue(Common.Utils.InternalSettings.get("pe-settings-coauthmode"));
|
2016-03-11 00:48:53 +00:00
|
|
|
|
2019-02-28 12:01:47 +00:00
|
|
|
value = Common.Utils.InternalSettings.get("pe-settings-fontrender");
|
|
|
|
item = this.cmbFontRender.store.findWhere({value: parseInt(value)});
|
2020-02-17 08:57:44 +00:00
|
|
|
this.cmbFontRender.setValue(item ? item.get('value') : Asc.c_oAscFontRenderingModeType.hintingAndSubpixeling);
|
2020-02-17 13:43:02 +00:00
|
|
|
this._fontRender = this.cmbFontRender.getValue();
|
|
|
|
|
|
|
|
value = Common.Utils.InternalSettings.get("pe-settings-cachemode");
|
|
|
|
item = this.cmbFontRender.store.findWhere({value: 'custom'});
|
|
|
|
item && value && item.set('checked', !!value);
|
|
|
|
item && value && this.cmbFontRender.cmpEl.find('#' + item.get('id') + ' a').addClass('checked');
|
2019-02-28 12:01:47 +00:00
|
|
|
|
2017-10-04 15:44:01 +00:00
|
|
|
value = Common.Utils.InternalSettings.get("pe-settings-unit");
|
|
|
|
item = this.cmbUnit.store.findWhere({value: value});
|
2016-04-08 08:55:15 +00:00
|
|
|
this.cmbUnit.setValue(item ? parseInt(item.get('value')) : Common.Utils.Metric.getDefaultMetric());
|
2016-03-11 00:48:53 +00:00
|
|
|
this._oldUnits = this.cmbUnit.getValue();
|
|
|
|
|
2017-10-04 15:44:01 +00:00
|
|
|
value = Common.Utils.InternalSettings.get("pe-settings-autosave");
|
|
|
|
this.chAutosave.setValue(value == 1);
|
2016-03-11 00:48:53 +00:00
|
|
|
|
2017-04-11 11:05:56 +00:00
|
|
|
if (this.mode.canForcesave) {
|
2017-10-04 15:44:01 +00:00
|
|
|
this.chForcesave.setValue(Common.Utils.InternalSettings.get("pe-settings-forcesave"));
|
2017-04-11 11:05:56 +00:00
|
|
|
}
|
|
|
|
|
2017-10-04 15:44:01 +00:00
|
|
|
this.chAlignGuides.setValue(Common.Utils.InternalSettings.get("pe-settings-showsnaplines"));
|
2020-05-22 14:55:35 +00:00
|
|
|
|
|
|
|
item = this.cmbMacros.store.findWhere({value: Common.Utils.InternalSettings.get("pe-macros-mode")});
|
|
|
|
this.cmbMacros.setValue(item ? item.get('value') : 0);
|
|
|
|
this.lblMacrosDesc.text(item ? item.get('descValue') : this.txtWarnMacrosDesc);
|
2020-06-04 08:51:14 +00:00
|
|
|
|
|
|
|
this.chPaste.setValue(Common.Utils.InternalSettings.get("pe-settings-paste-button"));
|
2021-02-06 10:06:33 +00:00
|
|
|
|
2021-04-18 14:32:39 +00:00
|
|
|
var data = [];
|
|
|
|
for (var t in Common.UI.Themes.map()) {
|
|
|
|
data.push({value: t, displayValue: Common.UI.Themes.get(t).text});
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( data.length ) {
|
|
|
|
this.cmbTheme.setData(data);
|
|
|
|
item = this.cmbTheme.store.findWhere({value: Common.UI.Themes.currentThemeId()});
|
|
|
|
this.cmbTheme.setValue(item ? item.get('value') : Common.UI.Themes.defaultThemeId());
|
|
|
|
}
|
2016-03-11 00:48:53 +00:00
|
|
|
},
|
|
|
|
|
|
|
|
applySettings: function() {
|
2021-02-06 10:06:33 +00:00
|
|
|
Common.UI.Themes.setTheme(this.cmbTheme.getValue());
|
2022-03-29 14:51:33 +00:00
|
|
|
if (Common.UI.FeaturesManager.canChange('spellcheck') && this.mode.isEdit) {
|
2021-11-01 22:51:09 +00:00
|
|
|
Common.localStorage.setItem("pe-settings-spellcheck", this.chSpell.isChecked() ? 1 : 0);
|
2022-03-29 14:51:33 +00:00
|
|
|
Common.localStorage.setBool("pe-spellcheck-ignore-uppercase-words", this.chIgnoreUppercase.isChecked());
|
|
|
|
Common.localStorage.setBool("pe-spellcheck-ignore-numbers-words", this.chIgnoreNumbers.isChecked());
|
|
|
|
}
|
2016-03-11 00:48:53 +00:00
|
|
|
Common.localStorage.setItem("pe-settings-inputmode", this.chInputMode.isChecked() ? 1 : 0);
|
2022-05-17 15:55:18 +00:00
|
|
|
Common.localStorage.setItem("pe-settings-use-alt-key", this.chUseAltKey.isChecked() ? 1 : 0);
|
|
|
|
Common.Utils.InternalSettings.set("pe-settings-use-alt-key", Common.localStorage.getBool("pe-settings-use-alt-key"));
|
2016-03-11 00:48:53 +00:00
|
|
|
Common.localStorage.setItem("pe-settings-zoom", this.cmbZoom.getValue());
|
2017-10-04 15:44:01 +00:00
|
|
|
Common.Utils.InternalSettings.set("pe-settings-zoom", Common.localStorage.getItem("pe-settings-zoom"));
|
2016-03-11 00:48:53 +00:00
|
|
|
/** coauthoring begin **/
|
2021-04-02 19:36:08 +00:00
|
|
|
if (this.mode.isEdit && !this.mode.isOffline && this.mode.canCoAuthoring && this.mode.canChangeCoAuthoring) {
|
2022-07-18 12:35:54 +00:00
|
|
|
Common.localStorage.setItem("pe-settings-coauthmode", this.rbCoAuthModeFast.getValue() ? 1 : 0);
|
2022-04-19 15:59:18 +00:00
|
|
|
} else if (this.mode.canLiveView && !this.mode.isOffline && this.mode.canChangeCoAuthoring) { // viewer
|
2022-04-05 19:36:00 +00:00
|
|
|
Common.localStorage.setItem("pe-settings-view-coauthmode", this.chLiveViewer.isChecked() ? 1 : 0);
|
2016-03-11 00:48:53 +00:00
|
|
|
}
|
|
|
|
/** coauthoring end **/
|
2019-02-28 12:01:47 +00:00
|
|
|
Common.localStorage.setItem("pe-settings-fontrender", this.cmbFontRender.getValue());
|
2020-02-17 13:43:02 +00:00
|
|
|
var item = this.cmbFontRender.store.findWhere({value: 'custom'});
|
|
|
|
Common.localStorage.setItem("pe-settings-cachemode", item && !item.get('checked') ? 0 : 1);
|
2016-03-11 00:48:53 +00:00
|
|
|
Common.localStorage.setItem("pe-settings-unit", this.cmbUnit.getValue());
|
2022-04-05 19:36:00 +00:00
|
|
|
if (this.mode.isEdit && (this.mode.canChangeCoAuthoring || !Common.Utils.InternalSettings.get("pe-settings-coauthmode")))
|
2021-04-02 19:36:08 +00:00
|
|
|
Common.localStorage.setItem("pe-settings-autosave", this.chAutosave.isChecked() ? 1 : 0);
|
2017-04-11 11:05:56 +00:00
|
|
|
if (this.mode.canForcesave)
|
|
|
|
Common.localStorage.setItem("pe-settings-forcesave", this.chForcesave.isChecked() ? 1 : 0);
|
2022-09-29 11:58:43 +00:00
|
|
|
|
|
|
|
Common.localStorage.setBool("pe-settings-showsnaplines", this.chAlignGuides.isChecked());
|
2017-10-04 15:44:01 +00:00
|
|
|
|
2020-05-22 14:55:35 +00:00
|
|
|
Common.localStorage.setItem("pe-macros-mode", this.cmbMacros.getValue());
|
2020-06-05 10:08:32 +00:00
|
|
|
Common.Utils.InternalSettings.set("pe-macros-mode", this.cmbMacros.getValue());
|
2020-05-22 14:55:35 +00:00
|
|
|
|
2020-06-04 08:51:14 +00:00
|
|
|
Common.localStorage.setItem("pe-settings-paste-button", this.chPaste.isChecked() ? 1 : 0);
|
|
|
|
|
2016-03-11 00:48:53 +00:00
|
|
|
Common.localStorage.save();
|
|
|
|
|
|
|
|
if (this.menu) {
|
|
|
|
this.menu.fireEvent('settings:apply', [this.menu]);
|
|
|
|
|
|
|
|
if (this._oldUnits !== this.cmbUnit.getValue())
|
|
|
|
Common.NotificationCenter.trigger('settings:unitschanged', this);
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
2020-02-17 13:43:02 +00:00
|
|
|
onFontRenderSelected: function(combo, record) {
|
|
|
|
if (record.value == 'custom') {
|
|
|
|
var item = combo.store.findWhere({value: 'custom'});
|
|
|
|
item && item.set('checked', !record.checked);
|
|
|
|
combo.cmpEl.find('#' + record.id + ' a').toggleClass('checked', !record.checked);
|
|
|
|
combo.setValue(this._fontRender);
|
|
|
|
}
|
|
|
|
this._fontRender = combo.getValue();
|
|
|
|
},
|
|
|
|
|
2020-07-03 12:15:17 +00:00
|
|
|
autoCorrect: function() {
|
2020-10-29 12:12:49 +00:00
|
|
|
if (this.dlgAutoCorrect && this.dlgAutoCorrect.isVisible()) return;
|
|
|
|
this.dlgAutoCorrect = new Common.Views.AutoCorrectDialog({
|
2020-07-24 17:58:17 +00:00
|
|
|
api: this.api
|
2020-10-29 12:12:49 +00:00
|
|
|
});
|
|
|
|
this.dlgAutoCorrect.show();
|
2020-07-03 12:15:17 +00:00
|
|
|
},
|
|
|
|
|
2016-03-11 00:48:53 +00:00
|
|
|
strZoom: 'Default Zoom Value',
|
|
|
|
okButtonText: 'Apply',
|
2016-10-04 09:47:18 +00:00
|
|
|
txtFitSlide: 'Fit to Slide',
|
2019-02-28 12:01:47 +00:00
|
|
|
txtWin: 'as Windows',
|
|
|
|
txtMac: 'as OS X',
|
|
|
|
txtNative: 'Native',
|
|
|
|
strFontRender: 'Font Hinting',
|
2016-03-11 00:48:53 +00:00
|
|
|
strUnit: 'Unit of Measurement',
|
|
|
|
txtCm: 'Centimeter',
|
|
|
|
txtPt: 'Point',
|
|
|
|
textAutoSave: 'Autosave',
|
|
|
|
txtAll: 'View All',
|
|
|
|
txtLast: 'View Last',
|
|
|
|
textAlignGuides: 'Alignment Guides',
|
|
|
|
strCoAuthMode: 'Co-editing mode',
|
|
|
|
strFast: 'Fast',
|
|
|
|
strStrict: 'Strict',
|
|
|
|
textAutoRecover: 'Autorecover',
|
2016-09-13 08:28:21 +00:00
|
|
|
txtInch: 'Inch',
|
2017-04-11 11:05:56 +00:00
|
|
|
txtFitWidth: 'Fit to Width',
|
|
|
|
textForceSave: 'Save to Server',
|
2017-04-26 08:34:55 +00:00
|
|
|
txtSpellCheck: 'Spell Checking',
|
2020-05-22 14:55:35 +00:00
|
|
|
txtCacheMode: 'Default cache mode',
|
|
|
|
strMacrosSettings: 'Macros Settings',
|
|
|
|
txtWarnMacros: 'Show Notification',
|
|
|
|
txtRunMacros: 'Enable All',
|
|
|
|
txtStopMacros: 'Disable All',
|
|
|
|
txtWarnMacrosDesc: 'Disable all macros with notification',
|
|
|
|
txtRunMacrosDesc: 'Enable all macros without notification',
|
2020-06-04 08:51:14 +00:00
|
|
|
txtStopMacrosDesc: 'Disable all macros without notification',
|
2020-07-03 12:15:17 +00:00
|
|
|
strPasteButton: 'Show Paste Options button when content is pasted',
|
|
|
|
txtProofing: 'Proofing',
|
2021-02-06 10:06:33 +00:00
|
|
|
strTheme: 'Theme',
|
|
|
|
txtThemeLight: 'Light',
|
|
|
|
txtThemeDark: 'Dark',
|
2022-02-16 00:58:04 +00:00
|
|
|
txtAutoCorrect: 'AutoCorrect options...',
|
|
|
|
txtEditingSaving: 'Editing and saving',
|
|
|
|
txtCollaboration: 'Collaboration',
|
|
|
|
txtWorkspace: 'Workspace',
|
2022-02-16 22:02:01 +00:00
|
|
|
txtHieroglyphs: 'Hieroglyphs',
|
2022-05-17 15:55:18 +00:00
|
|
|
txtUseAltKey: 'Use Alt key to navigate the user interface using the keyboard',
|
|
|
|
txtUseOptionKey: 'Use Option key to navigate the user interface using the keyboard',
|
2022-02-16 22:02:01 +00:00
|
|
|
txtFastTip: 'Real-time co-editing. All changes are saved automatically',
|
2022-03-29 14:51:33 +00:00
|
|
|
txtStrictTip: 'Use the \'Save\' button to sync the changes you and others make',
|
|
|
|
strIgnoreWordsInUPPERCASE: 'Ignore words in UPPERCASE',
|
2022-04-06 13:16:39 +00:00
|
|
|
strIgnoreWordsWithNumbers: 'Ignore words with numbers',
|
|
|
|
strShowOthersChanges: 'Show changes from other users'
|
2016-03-11 00:48:53 +00:00
|
|
|
}, PE.Views.FileMenuPanels.Settings || {}));
|
|
|
|
|
|
|
|
PE.Views.FileMenuPanels.RecentFiles = Common.UI.BaseView.extend({
|
|
|
|
el: '#panel-recentfiles',
|
|
|
|
menu: undefined,
|
|
|
|
|
|
|
|
template: _.template([
|
|
|
|
'<div id="id-recent-view" style="margin: 20px 0;"></div>'
|
|
|
|
].join('')),
|
|
|
|
|
|
|
|
initialize: function(options) {
|
|
|
|
Common.UI.BaseView.prototype.initialize.call(this,arguments);
|
|
|
|
|
|
|
|
this.menu = options.menu;
|
|
|
|
this.recent = options.recent;
|
|
|
|
},
|
|
|
|
|
|
|
|
render: function() {
|
2019-08-22 14:43:51 +00:00
|
|
|
this.$el.html(this.template());
|
2016-03-11 00:48:53 +00:00
|
|
|
|
|
|
|
this.viewRecentPicker = new Common.UI.DataView({
|
|
|
|
el: $('#id-recent-view'),
|
|
|
|
store: new Common.UI.DataViewStore(this.recent),
|
|
|
|
itemTemplate: _.template([
|
|
|
|
'<div class="recent-wrap">',
|
2020-06-11 16:36:37 +00:00
|
|
|
'<div class="recent-icon">',
|
2022-03-31 14:27:57 +00:00
|
|
|
'<div>',
|
|
|
|
'<div class="svg-file-recent"></div>',
|
|
|
|
'</div>',
|
2020-06-11 16:36:37 +00:00
|
|
|
'</div>',
|
2020-04-30 15:35:30 +00:00
|
|
|
'<div class="file-name"><% if (typeof title !== "undefined") {%><%= Common.Utils.String.htmlEncode(title || "") %><% } %></div>',
|
|
|
|
'<div class="file-info"><% if (typeof folder !== "undefined") {%><%= Common.Utils.String.htmlEncode(folder || "") %><% } %></div>',
|
2016-03-11 00:48:53 +00:00
|
|
|
'</div>'
|
|
|
|
].join(''))
|
|
|
|
});
|
|
|
|
|
|
|
|
this.viewRecentPicker.on('item:click', _.bind(this.onRecentFileClick, this));
|
|
|
|
|
|
|
|
if (_.isUndefined(this.scroller)) {
|
|
|
|
this.scroller = new Common.UI.Scroller({
|
2019-08-22 14:43:51 +00:00
|
|
|
el: this.$el,
|
2020-06-11 11:00:23 +00:00
|
|
|
suppressScrollX: true,
|
|
|
|
alwaysVisibleY: true
|
2016-03-11 00:48:53 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
return this;
|
|
|
|
},
|
|
|
|
|
2020-06-11 11:00:23 +00:00
|
|
|
show: function() {
|
|
|
|
Common.UI.BaseView.prototype.show.call(this,arguments);
|
|
|
|
this.scroller && this.scroller.update();
|
|
|
|
},
|
|
|
|
|
2016-03-11 00:48:53 +00:00
|
|
|
onRecentFileClick: function(view, itemview, record){
|
|
|
|
if ( this.menu )
|
|
|
|
this.menu.fireEvent('recent:open', [this.menu, record.get('url')]);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
PE.Views.FileMenuPanels.CreateNew = Common.UI.BaseView.extend(_.extend({
|
|
|
|
el: '#panel-createnew',
|
|
|
|
menu: undefined,
|
|
|
|
|
|
|
|
events: function() {
|
|
|
|
return {
|
|
|
|
'click .blank-document-btn':_.bind(this._onBlankDocument, this),
|
|
|
|
'click .thumb-list .thumb-wrap': _.bind(this._onDocumentTemplate, this)
|
|
|
|
};
|
|
|
|
},
|
|
|
|
|
|
|
|
template: _.template([
|
2021-08-19 00:03:22 +00:00
|
|
|
'<h3 style="margin-top: 20px;"><%= scope.txtCreateNew %></h3>',
|
2016-03-11 00:48:53 +00:00
|
|
|
'<div class="thumb-list">',
|
2021-08-24 15:30:55 +00:00
|
|
|
'<% if (blank) { %> ',
|
2021-08-23 20:13:08 +00:00
|
|
|
'<div class="blank-document">',
|
2021-11-23 17:29:56 +00:00
|
|
|
'<div class="blank-document-btn" data-hint="2" data-hint-direction="left-top" data-hint-offset="10, 1">',
|
2022-03-31 05:54:36 +00:00
|
|
|
'<div class="btn-blank-format"><div class="svg-format-blank"></div></div>',
|
2021-08-23 00:24:48 +00:00
|
|
|
'</div>',
|
2021-08-24 11:52:58 +00:00
|
|
|
'<div class="title"><%= scope.txtBlank %></div>',
|
2021-08-23 00:24:48 +00:00
|
|
|
'</div>',
|
2021-08-24 15:30:55 +00:00
|
|
|
'<% } %>',
|
2021-08-19 00:03:22 +00:00
|
|
|
'<% _.each(docs, function(item, index) { %>',
|
2021-11-23 17:29:56 +00:00
|
|
|
'<div class="thumb-wrap" template="<%= item.url %>" data-hint="2" data-hint-direction="left-top" data-hint-offset="22, 13">',
|
2021-08-19 00:03:22 +00:00
|
|
|
'<div class="thumb" ',
|
2021-08-23 00:24:48 +00:00
|
|
|
'<% if (!_.isEmpty(item.image)) {%> ',
|
2020-04-30 15:35:30 +00:00
|
|
|
' style="background-image: url(<%= item.image %>);">',
|
2021-08-19 00:03:22 +00:00
|
|
|
' <%} else {' +
|
2022-03-31 05:54:36 +00:00
|
|
|
'print(\"><div class=\'btn-blank-format\'><div class=\'svg-file-template\'></div></div>\")' +
|
2021-08-19 00:03:22 +00:00
|
|
|
' } %>',
|
2018-04-17 12:07:30 +00:00
|
|
|
'</div>',
|
2020-05-06 15:24:20 +00:00
|
|
|
'<div class="title"><%= Common.Utils.String.htmlEncode(item.title || item.name || "") %></div>',
|
2016-03-11 00:48:53 +00:00
|
|
|
'</div>',
|
|
|
|
'<% }) %>',
|
|
|
|
'</div>'
|
|
|
|
].join('')),
|
2021-08-24 10:38:19 +00:00
|
|
|
|
2016-03-11 00:48:53 +00:00
|
|
|
initialize: function(options) {
|
|
|
|
Common.UI.BaseView.prototype.initialize.call(this,arguments);
|
|
|
|
|
|
|
|
this.menu = options.menu;
|
2021-08-24 15:30:55 +00:00
|
|
|
this.docs = options.docs;
|
|
|
|
this.blank = !!options.blank;
|
2016-03-11 00:48:53 +00:00
|
|
|
},
|
|
|
|
|
|
|
|
render: function() {
|
2019-08-22 14:43:51 +00:00
|
|
|
this.$el.html(this.template({
|
2016-03-11 00:48:53 +00:00
|
|
|
scope: this,
|
2021-08-24 15:30:55 +00:00
|
|
|
docs: this.docs,
|
|
|
|
blank: this.blank
|
2016-03-11 00:48:53 +00:00
|
|
|
}));
|
2021-08-24 15:30:55 +00:00
|
|
|
var docs = (this.blank ? [{title: this.txtBlank}] : []).concat(this.docs);
|
2021-08-23 20:13:08 +00:00
|
|
|
var thumbsElm= this.$el.find('.thumb-wrap, .blank-document');
|
2021-08-19 02:41:12 +00:00
|
|
|
_.each(thumbsElm, function (tmb, index){
|
2021-08-19 22:19:56 +00:00
|
|
|
$(tmb).find('.title').tooltip({
|
2021-08-19 02:41:12 +00:00
|
|
|
title : docs[index].title,
|
2021-08-24 09:04:32 +00:00
|
|
|
placement : 'cursor'
|
2021-08-19 02:41:12 +00:00
|
|
|
});
|
|
|
|
});
|
2016-03-11 00:48:53 +00:00
|
|
|
|
|
|
|
if (_.isUndefined(this.scroller)) {
|
|
|
|
this.scroller = new Common.UI.Scroller({
|
2019-08-22 14:43:51 +00:00
|
|
|
el: this.$el,
|
2020-06-11 11:00:23 +00:00
|
|
|
suppressScrollX: true,
|
|
|
|
alwaysVisibleY: true
|
2016-03-11 00:48:53 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
return this;
|
|
|
|
},
|
|
|
|
|
2020-06-11 11:00:23 +00:00
|
|
|
show: function() {
|
|
|
|
Common.UI.BaseView.prototype.show.call(this,arguments);
|
|
|
|
this.scroller && this.scroller.update();
|
|
|
|
},
|
|
|
|
|
2016-03-11 00:48:53 +00:00
|
|
|
_onBlankDocument: function() {
|
|
|
|
if ( this.menu )
|
|
|
|
this.menu.fireEvent('create:new', [this.menu, 'blank']);
|
|
|
|
},
|
|
|
|
|
|
|
|
_onDocumentTemplate: function(e) {
|
|
|
|
if ( this.menu )
|
|
|
|
this.menu.fireEvent('create:new', [this.menu, e.currentTarget.attributes['template'].value]);
|
|
|
|
},
|
|
|
|
|
2021-08-24 11:52:58 +00:00
|
|
|
txtBlank: 'Blank presentation',
|
|
|
|
txtCreateNew: 'Create New'
|
2016-03-11 00:48:53 +00:00
|
|
|
}, PE.Views.FileMenuPanels.CreateNew || {}));
|
|
|
|
|
|
|
|
PE.Views.FileMenuPanels.DocumentInfo = Common.UI.BaseView.extend(_.extend({
|
|
|
|
el: '#panel-info',
|
|
|
|
menu: undefined,
|
|
|
|
|
|
|
|
initialize: function(options) {
|
|
|
|
Common.UI.BaseView.prototype.initialize.call(this,arguments);
|
|
|
|
this.rendered = false;
|
|
|
|
|
|
|
|
this.template = _.template([
|
2020-08-07 10:51:26 +00:00
|
|
|
'<div class="flex-settings">',
|
2020-08-06 20:17:32 +00:00
|
|
|
'<table class="main" style="margin: 30px 0 0;">',
|
2019-05-16 12:59:39 +00:00
|
|
|
'<tr>',
|
|
|
|
'<td class="left"><label>' + this.txtPlacement + '</label></td>',
|
|
|
|
'<td class="right"><label id="id-info-placement">-</label></td>',
|
|
|
|
'</tr>',
|
|
|
|
'<tr>',
|
|
|
|
'<td class="left"><label>' + this.txtOwner + '</label></td>',
|
|
|
|
'<td class="right"><label id="id-info-owner">-</label></td>',
|
|
|
|
'</tr>',
|
|
|
|
'<tr>',
|
|
|
|
'<td class="left"><label>' + this.txtUploaded + '</label></td>',
|
|
|
|
'<td class="right"><label id="id-info-uploaded">-</label></td>',
|
|
|
|
'</tr>',
|
|
|
|
'<tr class="divider general"></tr>',
|
|
|
|
'<tr class="divider general"></tr>',
|
|
|
|
// '<tr>',
|
|
|
|
// '<td class="left"><label>' + this.txtEditTime + '</label></td>',
|
|
|
|
// '<td class="right"><label id="id-info-edittime"></label></td>',
|
|
|
|
// '</tr>',
|
2016-03-11 00:48:53 +00:00
|
|
|
'<tr>',
|
|
|
|
'<td class="left"><label>' + this.txtTitle + '</label></td>',
|
2019-05-16 12:59:39 +00:00
|
|
|
'<td class="right"><div id="id-info-title"></div></td>',
|
|
|
|
'</tr>',
|
2019-08-09 07:04:43 +00:00
|
|
|
'<tr>',
|
|
|
|
'<td class="left"><label>' + this.txtSubject + '</label></td>',
|
|
|
|
'<td class="right"><div id="id-info-subject"></div></td>',
|
|
|
|
'</tr>',
|
2019-05-16 12:59:39 +00:00
|
|
|
'<tr>',
|
|
|
|
'<td class="left"><label>' + this.txtComment + '</label></td>',
|
|
|
|
'<td class="right"><div id="id-info-comment"></div></td>',
|
2016-03-11 00:48:53 +00:00
|
|
|
'</tr>',
|
2019-05-16 12:59:39 +00:00
|
|
|
'<tr class="divider"></tr>',
|
|
|
|
'<tr class="divider"></tr>',
|
|
|
|
'<tr>',
|
|
|
|
'<td class="left"><label>' + this.txtModifyDate + '</label></td>',
|
|
|
|
'<td class="right"><label id="id-info-modify-date"></label></td>',
|
2016-03-11 00:48:53 +00:00
|
|
|
'</tr>',
|
2019-05-16 12:59:39 +00:00
|
|
|
'<tr>',
|
|
|
|
'<td class="left"><label>' + this.txtModifyBy + '</label></td>',
|
|
|
|
'<td class="right"><label id="id-info-modify-by"></label></td>',
|
2016-03-11 00:48:53 +00:00
|
|
|
'</tr>',
|
2019-05-16 12:59:39 +00:00
|
|
|
'<tr class="divider modify">',
|
|
|
|
'<tr class="divider modify">',
|
|
|
|
'<tr>',
|
|
|
|
'<td class="left"><label>' + this.txtCreated + '</label></td>',
|
|
|
|
'<td class="right"><label id="id-info-date"></label></td>',
|
|
|
|
'</tr>',
|
|
|
|
'<tr>',
|
2018-11-06 09:58:02 +00:00
|
|
|
'<td class="left"><label>' + this.txtAppName + '</label></td>',
|
2019-05-16 12:59:39 +00:00
|
|
|
'<td class="right"><label id="id-info-appname"></label></td>',
|
2018-11-06 09:58:02 +00:00
|
|
|
'</tr>',
|
2019-05-16 12:59:39 +00:00
|
|
|
'<tr>',
|
|
|
|
'<td class="left" style="vertical-align: top;"><label style="margin-top: 3px;">' + this.txtAuthor + '</label></td>',
|
|
|
|
'<td class="right" style="vertical-align: top;"><div id="id-info-author">',
|
|
|
|
'<table>',
|
|
|
|
'<tr>',
|
|
|
|
'<td><div id="id-info-add-author"><input type="text" spellcheck="false" class="form-control" placeholder="' + this.txtAddAuthor +'"></div></td>',
|
|
|
|
'</tr>',
|
|
|
|
'</table>',
|
|
|
|
'</div></td>',
|
2016-03-11 00:48:53 +00:00
|
|
|
'</tr>',
|
2020-08-06 20:17:32 +00:00
|
|
|
'<tr style="height: 5px;"></tr>',
|
|
|
|
'</table>',
|
|
|
|
'</div>',
|
|
|
|
'<div id="fms-flex-apply">',
|
|
|
|
'<table class="main" style="margin: 10px 0;">',
|
2019-09-06 14:38:29 +00:00
|
|
|
'<tr>',
|
|
|
|
'<td class="left"></td>',
|
2021-06-21 17:49:45 +00:00
|
|
|
'<td class="right"><button id="fminfo-btn-apply" class="btn normal dlg-btn primary" data-hint="2" data-hint-direction="bottom" data-hint-offset="medium"><%= scope.okButtonText %></button></td>',
|
2019-09-06 14:38:29 +00:00
|
|
|
'</tr>',
|
2020-08-06 20:17:32 +00:00
|
|
|
'</table>',
|
|
|
|
'</div>'
|
2016-03-11 00:48:53 +00:00
|
|
|
].join(''));
|
|
|
|
|
|
|
|
this.menu = options.menu;
|
2019-06-21 11:34:40 +00:00
|
|
|
this.coreProps = null;
|
|
|
|
this.authors = [];
|
2019-08-28 08:46:56 +00:00
|
|
|
this._locked = false;
|
2016-03-11 00:48:53 +00:00
|
|
|
},
|
|
|
|
|
2019-08-22 14:43:51 +00:00
|
|
|
render: function(node) {
|
2019-05-16 12:59:39 +00:00
|
|
|
var me = this;
|
2019-09-18 14:54:16 +00:00
|
|
|
var $markup = $(me.template({scope: me}));
|
2019-05-16 12:59:39 +00:00
|
|
|
|
|
|
|
// server info
|
2019-08-22 14:43:51 +00:00
|
|
|
this.lblPlacement = $markup.findById('#id-info-placement');
|
|
|
|
this.lblOwner = $markup.findById('#id-info-owner');
|
|
|
|
this.lblUploaded = $markup.findById('#id-info-uploaded');
|
2019-05-16 12:59:39 +00:00
|
|
|
|
|
|
|
// edited info
|
2019-06-21 13:35:23 +00:00
|
|
|
var keyDownBefore = function(input, e){
|
|
|
|
if (e.keyCode === Common.UI.Keys.ESC) {
|
|
|
|
var newVal = input._input.val(),
|
|
|
|
oldVal = input.getValue();
|
|
|
|
if (newVal !== oldVal) {
|
|
|
|
input.setValue(oldVal);
|
|
|
|
e.stopPropagation();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2019-05-16 12:59:39 +00:00
|
|
|
this.inputTitle = new Common.UI.InputField({
|
2019-08-22 14:43:51 +00:00
|
|
|
el : $markup.findById('#id-info-title'),
|
2019-05-16 12:59:39 +00:00
|
|
|
style : 'width: 200px;',
|
|
|
|
placeHolder : this.txtAddText,
|
2021-06-21 17:49:45 +00:00
|
|
|
validateOnBlur: false,
|
|
|
|
dataHint: '2',
|
|
|
|
dataHintDirection: 'left',
|
|
|
|
dataHintOffset: 'small'
|
2019-06-21 13:35:23 +00:00
|
|
|
}).on('keydown:before', keyDownBefore);
|
2019-05-16 12:59:39 +00:00
|
|
|
this.inputSubject = new Common.UI.InputField({
|
2019-08-22 14:43:51 +00:00
|
|
|
el : $markup.findById('#id-info-subject'),
|
2019-05-16 12:59:39 +00:00
|
|
|
style : 'width: 200px;',
|
|
|
|
placeHolder : this.txtAddText,
|
2021-06-21 17:49:45 +00:00
|
|
|
validateOnBlur: false,
|
|
|
|
dataHint: '2',
|
|
|
|
dataHintDirection: 'left',
|
|
|
|
dataHintOffset: 'small'
|
2019-06-21 13:35:23 +00:00
|
|
|
}).on('keydown:before', keyDownBefore);
|
2019-05-16 12:59:39 +00:00
|
|
|
this.inputComment = new Common.UI.InputField({
|
2019-08-22 14:43:51 +00:00
|
|
|
el : $markup.findById('#id-info-comment'),
|
2019-05-16 12:59:39 +00:00
|
|
|
style : 'width: 200px;',
|
|
|
|
placeHolder : this.txtAddText,
|
2021-06-21 17:49:45 +00:00
|
|
|
validateOnBlur: false,
|
|
|
|
dataHint: '2',
|
|
|
|
dataHintDirection: 'left',
|
|
|
|
dataHintOffset: 'small'
|
2019-06-21 13:35:23 +00:00
|
|
|
}).on('keydown:before', keyDownBefore);
|
2019-05-16 12:59:39 +00:00
|
|
|
|
|
|
|
// modify info
|
2019-08-22 14:43:51 +00:00
|
|
|
this.lblModifyDate = $markup.findById('#id-info-modify-date');
|
|
|
|
this.lblModifyBy = $markup.findById('#id-info-modify-by');
|
2019-05-16 12:59:39 +00:00
|
|
|
|
|
|
|
// creation info
|
2019-08-22 14:43:51 +00:00
|
|
|
this.lblDate = $markup.findById('#id-info-date');
|
|
|
|
this.lblApplication = $markup.findById('#id-info-appname');
|
|
|
|
this.tblAuthor = $markup.findById('#id-info-author table');
|
|
|
|
this.trAuthor = $markup.findById('#id-info-add-author').closest('tr');
|
2022-07-22 12:35:24 +00:00
|
|
|
this.authorTpl = '<tr><td><div style="display: inline-block;width: 200px;"><input type="text" spellcheck="false" class="form-control" readonly="true" value="{0}" ></div><div class="tool close img-commonctrl img-colored" data-hint="2" data-hint-direction="right" data-hint-offset="small"></div></td></tr>';
|
2019-05-16 12:59:39 +00:00
|
|
|
|
|
|
|
this.tblAuthor.on('click', function(e) {
|
2019-08-22 14:43:51 +00:00
|
|
|
var btn = $markup.find(e.target);
|
2019-06-21 12:19:56 +00:00
|
|
|
if (btn.hasClass('close') && !btn.hasClass('disabled')) {
|
2019-05-16 12:59:39 +00:00
|
|
|
var el = btn.closest('tr'),
|
|
|
|
idx = me.tblAuthor.find('tr').index(el);
|
|
|
|
el.remove();
|
2019-06-21 11:34:40 +00:00
|
|
|
me.authors.splice(idx, 1);
|
2020-08-06 20:17:32 +00:00
|
|
|
me.updateScroller(true);
|
2019-05-16 12:59:39 +00:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
this.inputAuthor = new Common.UI.InputField({
|
2019-08-22 14:43:51 +00:00
|
|
|
el : $markup.findById('#id-info-add-author'),
|
2019-05-16 12:59:39 +00:00
|
|
|
style : 'width: 200px;',
|
|
|
|
validateOnBlur: false,
|
2021-06-21 17:49:45 +00:00
|
|
|
placeHolder: this.txtAddAuthor,
|
|
|
|
dataHint: '2',
|
|
|
|
dataHintDirection: 'left',
|
|
|
|
dataHintOffset: 'small'
|
2019-09-06 14:38:29 +00:00
|
|
|
}).on('changed:after', function(input, newValue, oldValue, e) {
|
2019-06-21 12:37:11 +00:00
|
|
|
if (newValue == oldValue) return;
|
|
|
|
|
2019-05-16 12:59:39 +00:00
|
|
|
var val = newValue.trim();
|
|
|
|
if (!!val && val !== oldValue.trim()) {
|
2019-09-06 14:38:29 +00:00
|
|
|
var isFromApply = e && e.relatedTarget && (e.relatedTarget.id == 'fminfo-btn-apply');
|
2019-05-16 12:59:39 +00:00
|
|
|
val.split(/\s*[,;]\s*/).forEach(function(item){
|
|
|
|
var str = item.trim();
|
|
|
|
if (str) {
|
2019-06-21 11:34:40 +00:00
|
|
|
me.authors.push(item);
|
2019-09-06 14:38:29 +00:00
|
|
|
if (!isFromApply) {
|
|
|
|
var div = $(Common.Utils.String.format(me.authorTpl, Common.Utils.String.htmlEncode(str)));
|
|
|
|
me.trAuthor.before(div);
|
2020-08-06 20:17:32 +00:00
|
|
|
me.updateScroller();
|
2019-09-06 14:38:29 +00:00
|
|
|
}
|
2019-05-16 12:59:39 +00:00
|
|
|
}
|
|
|
|
});
|
2019-09-06 14:38:29 +00:00
|
|
|
!isFromApply && me.inputAuthor.setValue('');
|
2019-05-16 12:59:39 +00:00
|
|
|
}
|
2019-06-21 13:35:23 +00:00
|
|
|
}).on('keydown:before', keyDownBefore);
|
2016-03-11 00:48:53 +00:00
|
|
|
|
2019-09-06 14:38:29 +00:00
|
|
|
this.btnApply = new Common.UI.Button({
|
2019-10-08 09:11:07 +00:00
|
|
|
el: $markup.findById('#fminfo-btn-apply')
|
2019-09-06 14:38:29 +00:00
|
|
|
});
|
|
|
|
this.btnApply.on('click', _.bind(this.applySettings, this));
|
|
|
|
|
2020-08-07 10:51:26 +00:00
|
|
|
this.pnlInfo = $markup.find('.flex-settings').addBack().filter('.flex-settings');
|
2020-08-06 20:17:32 +00:00
|
|
|
this.pnlApply = $markup.findById('#fms-flex-apply');
|
|
|
|
|
2016-03-11 00:48:53 +00:00
|
|
|
this.rendered = true;
|
|
|
|
|
|
|
|
this.updateInfo(this.doc);
|
|
|
|
|
2019-08-22 14:43:51 +00:00
|
|
|
this.$el = $(node).html($markup);
|
2016-03-11 00:48:53 +00:00
|
|
|
if (_.isUndefined(this.scroller)) {
|
|
|
|
this.scroller = new Common.UI.Scroller({
|
2020-08-06 20:17:32 +00:00
|
|
|
el: this.pnlInfo,
|
2020-06-11 11:00:23 +00:00
|
|
|
suppressScrollX: true,
|
|
|
|
alwaysVisibleY: true
|
2016-03-11 00:48:53 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2020-08-06 20:17:32 +00:00
|
|
|
Common.NotificationCenter.on({
|
|
|
|
'window:resize': function() {
|
|
|
|
me.isVisible() && me.updateScroller();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2016-03-11 00:48:53 +00:00
|
|
|
return this;
|
|
|
|
},
|
|
|
|
|
|
|
|
show: function() {
|
|
|
|
Common.UI.BaseView.prototype.show.call(this,arguments);
|
2019-05-16 12:59:39 +00:00
|
|
|
|
|
|
|
this.updateFileInfo();
|
2020-08-06 20:17:32 +00:00
|
|
|
this.scroller && this.scroller.scrollTop(0);
|
|
|
|
this.updateScroller();
|
2016-03-11 00:48:53 +00:00
|
|
|
},
|
|
|
|
|
|
|
|
hide: function() {
|
|
|
|
Common.UI.BaseView.prototype.hide.call(this,arguments);
|
|
|
|
},
|
|
|
|
|
2020-08-06 20:17:32 +00:00
|
|
|
updateScroller: function(destroy) {
|
|
|
|
if (this.scroller) {
|
2020-08-11 16:33:58 +00:00
|
|
|
this.scroller.update(destroy ? {} : undefined);
|
2020-08-06 20:17:32 +00:00
|
|
|
this.pnlInfo.toggleClass('bordered', this.scroller.isVisible());
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
2016-03-11 00:48:53 +00:00
|
|
|
updateInfo: function(doc) {
|
|
|
|
this.doc = doc;
|
|
|
|
if (!this.rendered)
|
|
|
|
return;
|
|
|
|
|
2019-05-16 12:59:39 +00:00
|
|
|
var visible = false;
|
2016-03-11 00:48:53 +00:00
|
|
|
doc = doc || {};
|
|
|
|
if (doc.info) {
|
2019-05-16 12:59:39 +00:00
|
|
|
// server info
|
2016-03-11 00:48:53 +00:00
|
|
|
if (doc.info.folder )
|
|
|
|
this.lblPlacement.text( doc.info.folder );
|
2019-05-16 12:59:39 +00:00
|
|
|
visible = this._ShowHideInfoItem(this.lblPlacement, doc.info.folder!==undefined && doc.info.folder!==null) || visible;
|
2021-02-04 13:05:49 +00:00
|
|
|
var value = doc.info.owner;
|
2019-07-30 09:05:48 +00:00
|
|
|
if (value)
|
|
|
|
this.lblOwner.text(value);
|
|
|
|
visible = this._ShowHideInfoItem(this.lblOwner, !!value) || visible;
|
2021-02-04 13:05:49 +00:00
|
|
|
value = doc.info.uploaded;
|
2019-07-30 09:05:48 +00:00
|
|
|
if (value)
|
|
|
|
this.lblUploaded.text(value);
|
|
|
|
visible = this._ShowHideInfoItem(this.lblUploaded, !!value) || visible;
|
2016-03-11 00:48:53 +00:00
|
|
|
} else
|
|
|
|
this._ShowHideDocInfo(false);
|
2019-05-16 12:59:39 +00:00
|
|
|
$('tr.divider.general', this.el)[visible?'show':'hide']();
|
|
|
|
|
2018-11-06 09:58:02 +00:00
|
|
|
var appname = (this.api) ? this.api.asc_getAppProps() : null;
|
|
|
|
if (appname) {
|
2020-11-02 13:48:44 +00:00
|
|
|
appname = (appname.asc_getApplication() || '') + (appname.asc_getAppVersion() ? ' ' : '') + (appname.asc_getAppVersion() || '');
|
2018-11-06 09:58:02 +00:00
|
|
|
this.lblApplication.text(appname);
|
|
|
|
}
|
2019-05-16 12:59:39 +00:00
|
|
|
this._ShowHideInfoItem(this.lblApplication, !!appname);
|
|
|
|
|
2019-06-21 11:34:40 +00:00
|
|
|
this.coreProps = (this.api) ? this.api.asc_getCoreProps() : null;
|
|
|
|
if (this.coreProps) {
|
|
|
|
var value = this.coreProps.asc_getCreated();
|
2022-08-11 21:41:22 +00:00
|
|
|
if (value) {
|
|
|
|
var lang = (this.mode.lang || 'en').replace('_', '-').toLowerCase();
|
|
|
|
try {
|
|
|
|
this.lblDate.text(value.toLocaleString(lang, {year: 'numeric', month: '2-digit', day: '2-digit'}) + ' ' + value.toLocaleString(lang, {timeStyle: 'short'}));
|
|
|
|
} catch (e) {
|
|
|
|
lang = 'en';
|
|
|
|
this.lblDate.text(value.toLocaleString(lang, {year: 'numeric', month: '2-digit', day: '2-digit'}) + ' ' + value.toLocaleString(lang, {timeStyle: 'short'}));
|
|
|
|
}
|
|
|
|
}
|
2019-05-16 12:59:39 +00:00
|
|
|
this._ShowHideInfoItem(this.lblDate, !!value);
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
updateFileInfo: function() {
|
|
|
|
if (!this.rendered)
|
|
|
|
return;
|
|
|
|
|
|
|
|
var me = this,
|
|
|
|
props = (this.api) ? this.api.asc_getCoreProps() : null,
|
|
|
|
value;
|
|
|
|
|
2019-06-21 11:34:40 +00:00
|
|
|
this.coreProps = props;
|
2019-05-16 12:59:39 +00:00
|
|
|
// var app = (this.api) ? this.api.asc_getAppProps() : null;
|
|
|
|
// if (app) {
|
|
|
|
// value = app.asc_getTotalTime();
|
|
|
|
// if (value)
|
|
|
|
// this.lblEditTime.text(value + ' ' + this.txtMinutes);
|
|
|
|
// }
|
|
|
|
// this._ShowHideInfoItem(this.lblEditTime, !!value);
|
|
|
|
|
|
|
|
if (props) {
|
|
|
|
var visible = false;
|
|
|
|
value = props.asc_getModified();
|
2022-08-11 21:41:22 +00:00
|
|
|
if (value) {
|
|
|
|
var lang = (this.mode.lang || 'en').replace('_', '-').toLowerCase();
|
|
|
|
try {
|
|
|
|
this.lblModifyDate.text(value.toLocaleString(lang, {year: 'numeric', month: '2-digit', day: '2-digit'}) + ' ' + value.toLocaleString(lang, {timeStyle: 'short'}));
|
|
|
|
} catch (e) {
|
|
|
|
lang = 'en';
|
|
|
|
this.lblModifyDate.text(value.toLocaleString(lang, {year: 'numeric', month: '2-digit', day: '2-digit'}) + ' ' + value.toLocaleString(lang, {timeStyle: 'short'}));
|
|
|
|
}
|
|
|
|
}
|
2019-05-16 12:59:39 +00:00
|
|
|
visible = this._ShowHideInfoItem(this.lblModifyDate, !!value) || visible;
|
|
|
|
value = props.asc_getLastModifiedBy();
|
|
|
|
if (value)
|
2021-03-26 11:29:16 +00:00
|
|
|
this.lblModifyBy.text(AscCommon.UserInfoParser.getParsedName(value));
|
2019-05-16 12:59:39 +00:00
|
|
|
visible = this._ShowHideInfoItem(this.lblModifyBy, !!value) || visible;
|
|
|
|
$('tr.divider.modify', this.el)[visible?'show':'hide']();
|
|
|
|
|
|
|
|
value = props.asc_getTitle();
|
|
|
|
this.inputTitle.setValue(value || '');
|
|
|
|
value = props.asc_getSubject();
|
|
|
|
this.inputSubject.setValue(value || '');
|
|
|
|
value = props.asc_getDescription();
|
|
|
|
this.inputComment.setValue(value || '');
|
|
|
|
|
2019-09-06 14:38:29 +00:00
|
|
|
this.inputAuthor.setValue('');
|
2019-05-16 12:59:39 +00:00
|
|
|
this.tblAuthor.find('tr:not(:last-of-type)').remove();
|
2019-06-21 11:34:40 +00:00
|
|
|
this.authors = [];
|
2019-05-16 12:59:39 +00:00
|
|
|
value = props.asc_getCreator();//"123\"\"\"\<\>,456";
|
|
|
|
value && value.split(/\s*[,;]\s*/).forEach(function(item) {
|
|
|
|
var div = $(Common.Utils.String.format(me.authorTpl, Common.Utils.String.htmlEncode(item)));
|
|
|
|
me.trAuthor.before(div);
|
2019-06-21 11:34:40 +00:00
|
|
|
me.authors.push(item);
|
2019-05-16 12:59:39 +00:00
|
|
|
});
|
2019-08-28 08:46:56 +00:00
|
|
|
this.tblAuthor.find('.close').toggleClass('hidden', !this.mode.isEdit);
|
2019-10-31 07:16:53 +00:00
|
|
|
!this.mode.isEdit && this._ShowHideInfoItem(this.tblAuthor, !!this.authors.length);
|
2019-05-16 12:59:39 +00:00
|
|
|
}
|
2019-08-28 08:46:56 +00:00
|
|
|
this.SetDisabled();
|
2016-03-11 00:48:53 +00:00
|
|
|
},
|
|
|
|
|
2019-05-16 12:59:39 +00:00
|
|
|
_ShowHideInfoItem: function(el, visible) {
|
|
|
|
el.closest('tr')[visible?'show':'hide']();
|
|
|
|
return visible;
|
2016-03-11 00:48:53 +00:00
|
|
|
},
|
|
|
|
|
|
|
|
_ShowHideDocInfo: function(visible) {
|
2019-05-16 12:59:39 +00:00
|
|
|
this._ShowHideInfoItem(this.lblPlacement, visible);
|
|
|
|
this._ShowHideInfoItem(this.lblOwner, visible);
|
|
|
|
this._ShowHideInfoItem(this.lblUploaded, visible);
|
2016-03-11 00:48:53 +00:00
|
|
|
},
|
|
|
|
|
|
|
|
setMode: function(mode) {
|
2019-08-28 08:46:56 +00:00
|
|
|
this.mode = mode;
|
|
|
|
this.inputAuthor.setVisible(mode.isEdit);
|
2020-08-06 20:17:32 +00:00
|
|
|
this.pnlApply.toggleClass('hidden', !mode.isEdit);
|
2019-08-28 08:46:56 +00:00
|
|
|
this.tblAuthor.find('.close').toggleClass('hidden', !mode.isEdit);
|
2019-10-31 07:16:53 +00:00
|
|
|
if (!mode.isEdit) {
|
|
|
|
this.inputTitle._input.attr('placeholder', '');
|
|
|
|
this.inputSubject._input.attr('placeholder', '');
|
|
|
|
this.inputComment._input.attr('placeholder', '');
|
|
|
|
this.inputAuthor._input.attr('placeholder', '');
|
|
|
|
}
|
2019-08-28 08:46:56 +00:00
|
|
|
this.SetDisabled();
|
2016-03-11 00:48:53 +00:00
|
|
|
return this;
|
|
|
|
},
|
|
|
|
|
2018-11-06 09:58:02 +00:00
|
|
|
setApi: function(o) {
|
|
|
|
this.api = o;
|
2019-06-21 12:19:56 +00:00
|
|
|
this.api.asc_registerCallback('asc_onLockCore', _.bind(this.onLockCore, this));
|
2018-11-06 09:58:02 +00:00
|
|
|
this.updateInfo(this.doc);
|
|
|
|
return this;
|
|
|
|
},
|
|
|
|
|
2019-06-21 12:19:56 +00:00
|
|
|
onLockCore: function(lock) {
|
2019-08-28 08:46:56 +00:00
|
|
|
this._locked = lock;
|
|
|
|
this.updateFileInfo();
|
|
|
|
},
|
|
|
|
|
|
|
|
SetDisabled: function() {
|
|
|
|
var disable = !this.mode.isEdit || this._locked;
|
|
|
|
this.inputTitle.setDisabled(disable);
|
|
|
|
this.inputSubject.setDisabled(disable);
|
|
|
|
this.inputComment.setDisabled(disable);
|
|
|
|
this.inputAuthor.setDisabled(disable);
|
|
|
|
this.tblAuthor.find('.close').toggleClass('disabled', this._locked);
|
|
|
|
this.tblAuthor.toggleClass('disabled', disable);
|
2019-09-06 14:38:29 +00:00
|
|
|
this.btnApply.setDisabled(this._locked);
|
|
|
|
},
|
|
|
|
|
|
|
|
applySettings: function() {
|
|
|
|
if (this.coreProps && this.api) {
|
|
|
|
this.coreProps.asc_putTitle(this.inputTitle.getValue());
|
|
|
|
this.coreProps.asc_putSubject(this.inputSubject.getValue());
|
|
|
|
this.coreProps.asc_putDescription(this.inputComment.getValue());
|
|
|
|
this.coreProps.asc_putCreator(this.authors.join(';'));
|
|
|
|
this.api.asc_setCoreProps(this.coreProps);
|
|
|
|
}
|
|
|
|
this.menu.hide();
|
2019-06-21 12:19:56 +00:00
|
|
|
},
|
|
|
|
|
2019-05-16 12:59:39 +00:00
|
|
|
txtPlacement: 'Location',
|
|
|
|
txtOwner: 'Owner',
|
|
|
|
txtUploaded: 'Uploaded',
|
|
|
|
txtAppName: 'Application',
|
|
|
|
txtEditTime: 'Total Editing time',
|
|
|
|
txtTitle: 'Title',
|
|
|
|
txtSubject: 'Subject',
|
|
|
|
txtComment: 'Comment',
|
|
|
|
txtModifyDate: 'Last Modified',
|
|
|
|
txtModifyBy: 'Last Modified By',
|
|
|
|
txtCreated: 'Created',
|
2016-03-11 00:48:53 +00:00
|
|
|
txtAuthor: 'Author',
|
2019-05-16 12:59:39 +00:00
|
|
|
txtAddAuthor: 'Add Author',
|
|
|
|
txtAddText: 'Add Text',
|
2019-09-06 14:38:29 +00:00
|
|
|
txtMinutes: 'min',
|
|
|
|
okButtonText: 'Apply'
|
2016-03-11 00:48:53 +00:00
|
|
|
}, PE.Views.FileMenuPanels.DocumentInfo || {}));
|
|
|
|
|
|
|
|
PE.Views.FileMenuPanels.DocumentRights = Common.UI.BaseView.extend(_.extend({
|
|
|
|
el: '#panel-rights',
|
|
|
|
menu: undefined,
|
|
|
|
|
|
|
|
initialize: function(options) {
|
|
|
|
Common.UI.BaseView.prototype.initialize.call(this,arguments);
|
|
|
|
this.rendered = false;
|
|
|
|
|
|
|
|
this.template = _.template([
|
2020-08-06 20:17:32 +00:00
|
|
|
'<table class="main" style="margin: 30px 0;">',
|
2016-03-11 00:48:53 +00:00
|
|
|
'<tr class="rights">',
|
|
|
|
'<td class="left" style="vertical-align: top;"><label>' + this.txtRights + '</label></td>',
|
|
|
|
'<td class="right"><div id="id-info-rights"></div></td>',
|
|
|
|
'</tr>',
|
|
|
|
'<tr class="edit-rights">',
|
|
|
|
'<td class="left"></td><td class="right"><button id="id-info-btn-edit" class="btn normal dlg-btn primary custom" style="margin-right: 10px;">' + this.txtBtnAccessRights + '</button></td>',
|
|
|
|
'</tr>',
|
|
|
|
'</table>'
|
|
|
|
].join(''));
|
|
|
|
|
|
|
|
this.templateRights = _.template([
|
|
|
|
'<table>',
|
|
|
|
'<% _.each(users, function(item) { %>',
|
|
|
|
'<tr>',
|
2022-07-25 18:38:45 +00:00
|
|
|
'<td><span class="userLink img-commonctrl <% if (item.isLink) { %>sharedLink<% } %>"></span><span><%= Common.Utils.String.htmlEncode(item.user) %></span></td>',
|
2016-03-11 00:48:53 +00:00
|
|
|
'<td><%= Common.Utils.String.htmlEncode(item.permissions) %></td>',
|
|
|
|
'</tr>',
|
|
|
|
'<% }); %>',
|
|
|
|
'</table>'
|
|
|
|
].join(''));
|
|
|
|
|
|
|
|
this.menu = options.menu;
|
|
|
|
},
|
|
|
|
|
2019-08-22 14:43:51 +00:00
|
|
|
render: function(node) {
|
|
|
|
var $markup = $(this.template());
|
2016-03-11 00:48:53 +00:00
|
|
|
|
2019-08-22 14:43:51 +00:00
|
|
|
this.cntRights = $markup.findById('#id-info-rights');
|
2016-03-11 00:48:53 +00:00
|
|
|
this.btnEditRights = new Common.UI.Button({
|
2019-08-22 14:43:51 +00:00
|
|
|
el: $markup.findById('#id-info-btn-edit')
|
2016-03-11 00:48:53 +00:00
|
|
|
});
|
|
|
|
this.btnEditRights.on('click', _.bind(this.changeAccessRights, this));
|
|
|
|
|
|
|
|
this.rendered = true;
|
|
|
|
|
|
|
|
this.updateInfo(this.doc);
|
|
|
|
|
2019-08-22 14:43:51 +00:00
|
|
|
this.$el = $(node).html($markup);
|
|
|
|
|
2016-03-11 00:48:53 +00:00
|
|
|
if (_.isUndefined(this.scroller)) {
|
|
|
|
this.scroller = new Common.UI.Scroller({
|
2019-08-22 14:43:51 +00:00
|
|
|
el: this.$el,
|
2020-06-11 11:00:23 +00:00
|
|
|
suppressScrollX: true,
|
|
|
|
alwaysVisibleY: true
|
2016-03-11 00:48:53 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2019-10-09 10:23:40 +00:00
|
|
|
Common.NotificationCenter.on('collaboration:sharingupdate', this.updateSharingSettings.bind(this));
|
2019-08-22 14:43:51 +00:00
|
|
|
Common.NotificationCenter.on('collaboration:sharingdeny', this.onLostEditRights.bind(this));
|
2017-10-12 09:22:31 +00:00
|
|
|
|
2016-03-11 00:48:53 +00:00
|
|
|
return this;
|
|
|
|
},
|
|
|
|
|
|
|
|
show: function() {
|
|
|
|
Common.UI.BaseView.prototype.show.call(this,arguments);
|
2020-06-11 11:00:23 +00:00
|
|
|
this.scroller && this.scroller.update();
|
2016-03-11 00:48:53 +00:00
|
|
|
},
|
|
|
|
|
|
|
|
hide: function() {
|
|
|
|
Common.UI.BaseView.prototype.hide.call(this,arguments);
|
|
|
|
},
|
|
|
|
|
|
|
|
updateInfo: function(doc) {
|
|
|
|
this.doc = doc;
|
|
|
|
if (!this.rendered)
|
|
|
|
return;
|
|
|
|
|
|
|
|
doc = doc || {};
|
|
|
|
|
|
|
|
if (doc.info) {
|
|
|
|
if (doc.info.sharingSettings)
|
|
|
|
this.cntRights.html(this.templateRights({users: doc.info.sharingSettings}));
|
|
|
|
this._ShowHideInfoItem('rights', doc.info.sharingSettings!==undefined && doc.info.sharingSettings!==null && doc.info.sharingSettings.length>0);
|
2019-11-28 13:54:14 +00:00
|
|
|
this._ShowHideInfoItem('edit-rights', (!!this.sharingSettingsUrl && this.sharingSettingsUrl.length || this.mode.canRequestSharingSettings) && this._readonlyRights!==true);
|
2016-03-11 00:48:53 +00:00
|
|
|
} else
|
|
|
|
this._ShowHideDocInfo(false);
|
|
|
|
},
|
|
|
|
|
|
|
|
_ShowHideInfoItem: function(cls, visible) {
|
|
|
|
$('tr.'+cls, this.el)[visible?'show':'hide']();
|
|
|
|
},
|
|
|
|
|
|
|
|
_ShowHideDocInfo: function(visible) {
|
|
|
|
this._ShowHideInfoItem('rights', visible);
|
|
|
|
this._ShowHideInfoItem('edit-rights', visible);
|
|
|
|
},
|
|
|
|
|
|
|
|
setMode: function(mode) {
|
2019-11-28 13:54:14 +00:00
|
|
|
this.mode = mode;
|
2016-03-11 00:48:53 +00:00
|
|
|
this.sharingSettingsUrl = mode.sharingSettingsUrl;
|
|
|
|
return this;
|
|
|
|
},
|
|
|
|
|
|
|
|
changeAccessRights: function(btn,event,opts) {
|
2019-10-09 10:23:40 +00:00
|
|
|
Common.NotificationCenter.trigger('collaboration:sharing');
|
2019-07-11 15:00:11 +00:00
|
|
|
},
|
|
|
|
|
|
|
|
updateSharingSettings: function(rights) {
|
|
|
|
this._ShowHideInfoItem('rights', this.doc.info.sharingSettings!==undefined && this.doc.info.sharingSettings!==null && this.doc.info.sharingSettings.length>0);
|
|
|
|
this.cntRights.html(this.templateRights({users: this.doc.info.sharingSettings}));
|
|
|
|
},
|
|
|
|
|
2016-03-11 00:48:53 +00:00
|
|
|
onLostEditRights: function() {
|
|
|
|
this._readonlyRights = true;
|
|
|
|
if (!this.rendered)
|
|
|
|
return;
|
|
|
|
|
|
|
|
this._ShowHideInfoItem('edit-rights', false);
|
|
|
|
},
|
|
|
|
|
|
|
|
txtRights: 'Persons who have rights',
|
|
|
|
txtBtnAccessRights: 'Change access rights'
|
|
|
|
}, PE.Views.FileMenuPanels.DocumentRights || {}));
|
|
|
|
|
|
|
|
PE.Views.FileMenuPanels.Help = Common.UI.BaseView.extend({
|
|
|
|
el: '#panel-help',
|
|
|
|
menu: undefined,
|
|
|
|
|
|
|
|
template: _.template([
|
|
|
|
'<div style="width:100%; height:100%; position: relative;">',
|
2018-01-15 14:08:35 +00:00
|
|
|
'<div id="id-help-contents" style="position: absolute; width:220px; top: 0; bottom: 0;" class="no-padding"></div>',
|
|
|
|
'<div id="id-help-frame" style="position: absolute; left: 220px; top: 0; right: 0; bottom: 0;" class="no-padding"></div>',
|
2016-03-11 00:48:53 +00:00
|
|
|
'</div>'
|
|
|
|
].join('')),
|
|
|
|
|
|
|
|
initialize: function(options) {
|
|
|
|
Common.UI.BaseView.prototype.initialize.call(this,arguments);
|
|
|
|
|
|
|
|
this.menu = options.menu;
|
2021-05-11 22:33:51 +00:00
|
|
|
this.urlPref = 'resources/help/{{DEFAULT_LANG}}/';
|
2020-08-25 16:38:52 +00:00
|
|
|
this.openUrl = null;
|
2016-03-11 00:48:53 +00:00
|
|
|
|
|
|
|
this.en_data = [
|
2018-01-15 14:32:17 +00:00
|
|
|
{"src": "ProgramInterface/ProgramInterface.htm", "name": "Introducing Presentation Editor user interface", "headername": "Program Interface"},
|
|
|
|
{"src": "ProgramInterface/FileTab.htm", "name": "File tab"},
|
|
|
|
{"src": "ProgramInterface/HomeTab.htm", "name": "Home Tab"},
|
|
|
|
{"src": "ProgramInterface/InsertTab.htm", "name": "Insert tab"},
|
|
|
|
{"src": "ProgramInterface/PluginsTab.htm", "name": "Plugins tab"},
|
|
|
|
{"src": "UsageInstructions/OpenCreateNew.htm", "name": "Create a new presentation or open an existing one", "headername": "Basic operations" },
|
|
|
|
{"src": "UsageInstructions/CopyPasteUndoRedo.htm", "name": "Copy/paste data, undo/redo your actions"},
|
|
|
|
{"src": "UsageInstructions/ManageSlides.htm", "name": "Manage slides", "headername": "Working with slides"},
|
|
|
|
{"src": "UsageInstructions/SetSlideParameters.htm", "name": "Set slide parameters"},
|
|
|
|
{"src": "UsageInstructions/ApplyTransitions.htm", "name": "Apply transitions" },
|
|
|
|
{"src": "UsageInstructions/PreviewPresentation.htm", "name": "Preview your presentation" },
|
|
|
|
{"src": "UsageInstructions/InsertText.htm", "name": "Insert and format your text", "headername": "Text formatting"},
|
|
|
|
{"src": "UsageInstructions/AddHyperlinks.htm", "name": "Add hyperlinks"},
|
|
|
|
{"src": "UsageInstructions/CreateLists.htm", "name": "Create lists" },
|
|
|
|
{"src": "UsageInstructions/CopyClearFormatting.htm", "name": "Copy/clear formatting"},
|
|
|
|
{"src": "UsageInstructions/InsertAutoshapes.htm", "name": "Insert and format autoshapes", "headername": "Operations on objects"},
|
|
|
|
{"src": "UsageInstructions/InsertImages.htm", "name": "Insert and adjust images"},
|
|
|
|
{"src": "UsageInstructions/InsertCharts.htm", "name": "Insert and edit charts" },
|
|
|
|
{"src": "UsageInstructions/InsertTables.htm", "name": "Insert and format tables" },
|
|
|
|
{"src": "UsageInstructions/FillObjectsSelectColor.htm", "name": "Fill objects and select colors"},
|
|
|
|
{"src": "UsageInstructions/ManipulateObjects.htm", "name": "Manipulate objects on a slide"},
|
|
|
|
{"src": "UsageInstructions/AlignArrangeObjects.htm", "name": "Align and arrange objects on a slide"},
|
|
|
|
{"src": "UsageInstructions/InsertEquation.htm", "name": "Insert equations", "headername": "Math equations" },
|
|
|
|
{"src": "HelpfulHints/CollaborativeEditing.htm", "name": "Collaborative presentation editing", "headername": "Presentation co-editing" },
|
|
|
|
{"src": "UsageInstructions/ViewPresentationInfo.htm", "name": "View presentation information", "headername": "Tools and settings"},
|
|
|
|
{"src": "UsageInstructions/SavePrintDownload.htm", "name": "Save/print/download your presentation" },
|
|
|
|
{"src": "HelpfulHints/AdvancedSettings.htm", "name": "Advanced settings of Presentation Editor"},
|
|
|
|
{"src": "HelpfulHints/Navigation.htm", "name": "View settings and navigation tools"},
|
|
|
|
{"src": "HelpfulHints/Search.htm", "name": "Search function"},
|
|
|
|
{"src": "HelpfulHints/SpellChecking.htm", "name": "Spell-checking"},
|
|
|
|
{"src": "HelpfulHints/About.htm", "name": "About Presentation Editor", "headername": "Helpful hints"},
|
|
|
|
{"src": "HelpfulHints/SupportedFormats.htm", "name": "Supported formats of electronic presentations"},
|
|
|
|
{"src": "HelpfulHints/KeyboardShortcuts.htm", "name": "Keyboard shortcuts"}
|
2016-03-11 00:48:53 +00:00
|
|
|
];
|
|
|
|
|
|
|
|
if (Common.Utils.isIE) {
|
|
|
|
window.onhelp = function () { return false; }
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
render: function() {
|
|
|
|
var me = this;
|
2019-08-22 14:43:51 +00:00
|
|
|
this.$el.html(this.template());
|
2016-03-11 00:48:53 +00:00
|
|
|
|
|
|
|
this.viewHelpPicker = new Common.UI.DataView({
|
|
|
|
el: $('#id-help-contents'),
|
|
|
|
store: new Common.UI.DataViewStore([]),
|
|
|
|
keyMoveDirection: 'vertical',
|
|
|
|
itemTemplate: _.template([
|
|
|
|
'<div id="<%= id %>" class="help-item-wrap">',
|
|
|
|
'<div class="caption"><%= name %></div>',
|
|
|
|
'</div>'
|
|
|
|
].join(''))
|
|
|
|
});
|
|
|
|
this.viewHelpPicker.on('item:add', function(dataview, itemview, record) {
|
|
|
|
if (record.has('headername')) {
|
|
|
|
$(itemview.el).before('<div class="header-name">' + record.get('headername') + '</div>');
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
this.viewHelpPicker.on('item:select', function(dataview, itemview, record) {
|
2020-08-25 16:38:52 +00:00
|
|
|
me.onSelectItem(record.get('src'));
|
2016-03-11 00:48:53 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
this.iFrame = document.createElement('iframe');
|
|
|
|
|
|
|
|
this.iFrame.src = "";
|
|
|
|
this.iFrame.align = "top";
|
|
|
|
this.iFrame.frameBorder = "0";
|
|
|
|
this.iFrame.width = "100%";
|
|
|
|
this.iFrame.height = "100%";
|
|
|
|
Common.Gateway.on('internalcommand', function(data) {
|
|
|
|
if (data.type == 'help:hyperlink') {
|
|
|
|
var src = data.data;
|
|
|
|
var rec = me.viewHelpPicker.store.find(function(record){
|
|
|
|
return (src.indexOf(record.get('src'))>0);
|
|
|
|
});
|
|
|
|
if (rec) {
|
|
|
|
me.viewHelpPicker.selectRecord(rec, true);
|
|
|
|
me.viewHelpPicker.scrollToRecord(rec);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
$('#id-help-frame').append(this.iFrame);
|
|
|
|
|
|
|
|
return this;
|
|
|
|
},
|
|
|
|
|
|
|
|
setLangConfig: function(lang) {
|
|
|
|
var me = this;
|
|
|
|
var store = this.viewHelpPicker.store;
|
|
|
|
if (lang) {
|
2018-01-24 11:40:59 +00:00
|
|
|
lang = lang.split(/[\-\_]/)[0];
|
2016-03-11 00:48:53 +00:00
|
|
|
var config = {
|
|
|
|
dataType: 'json',
|
|
|
|
error: function () {
|
2021-05-11 22:33:51 +00:00
|
|
|
if ( me.urlPref.indexOf('resources/help/{{DEFAULT_LANG}}/')<0 ) {
|
|
|
|
me.urlPref = 'resources/help/{{DEFAULT_LANG}}/';
|
|
|
|
store.url = 'resources/help/{{DEFAULT_LANG}}/Contents.json';
|
2016-03-11 00:48:53 +00:00
|
|
|
store.fetch(config);
|
|
|
|
} else {
|
2022-06-09 07:39:27 +00:00
|
|
|
if ( Common.Controllers.Desktop.isActive() ) {
|
|
|
|
if ( store.contentLang === '{{DEFAULT_LANG}}' || !Common.Controllers.Desktop.helpUrl() )
|
|
|
|
me.iFrame.src = '../../common/main/resources/help/download.html';
|
|
|
|
else {
|
|
|
|
store.contentLang = store.contentLang === lang ? '{{DEFAULT_LANG}}' : lang;
|
2022-09-16 13:32:15 +00:00
|
|
|
me.urlPref = Common.Controllers.Desktop.helpUrl() + '/' + store.contentLang + '/';
|
2022-07-07 13:29:19 +00:00
|
|
|
store.url = me.urlPref + 'Contents.json';
|
2022-06-09 07:39:27 +00:00
|
|
|
store.fetch(config);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
me.urlPref = 'resources/help/{{DEFAULT_LANG}}/';
|
|
|
|
store.reset(me.en_data);
|
|
|
|
}
|
2016-03-11 00:48:53 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
success: function () {
|
2020-08-25 16:38:52 +00:00
|
|
|
var rec = me.openUrl ? store.find(function(record){
|
|
|
|
return (me.openUrl.indexOf(record.get('src'))>=0);
|
|
|
|
}) : store.at(0);
|
|
|
|
if (rec) {
|
|
|
|
me.viewHelpPicker.selectRecord(rec, true);
|
|
|
|
me.viewHelpPicker.scrollToRecord(rec);
|
|
|
|
}
|
|
|
|
me.onSelectItem(me.openUrl ? me.openUrl : rec.get('src'));
|
2016-03-11 00:48:53 +00:00
|
|
|
}
|
|
|
|
};
|
|
|
|
store.url = 'resources/help/' + lang + '/Contents.json';
|
|
|
|
store.fetch(config);
|
|
|
|
this.urlPref = 'resources/help/' + lang + '/';
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
2020-08-25 16:38:52 +00:00
|
|
|
show: function (url) {
|
2016-03-11 00:48:53 +00:00
|
|
|
Common.UI.BaseView.prototype.show.call(this);
|
|
|
|
if (!this._scrollerInited) {
|
|
|
|
this.viewHelpPicker.scroller.update();
|
|
|
|
this._scrollerInited = true;
|
|
|
|
}
|
2020-08-25 16:38:52 +00:00
|
|
|
if (url) {
|
|
|
|
if (this.viewHelpPicker.store.length>0) {
|
|
|
|
var rec = this.viewHelpPicker.store.find(function(record){
|
|
|
|
return (url.indexOf(record.get('src'))>=0);
|
|
|
|
});
|
|
|
|
if (rec) {
|
|
|
|
this.viewHelpPicker.selectRecord(rec, true);
|
|
|
|
this.viewHelpPicker.scrollToRecord(rec);
|
|
|
|
}
|
|
|
|
this.onSelectItem(url);
|
|
|
|
} else
|
|
|
|
this.openUrl = url;
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
onSelectItem: function(src) {
|
|
|
|
this.iFrame.src = this.urlPref + src;
|
2016-03-11 00:48:53 +00:00
|
|
|
}
|
|
|
|
});
|
2017-09-13 08:57:30 +00:00
|
|
|
|
|
|
|
PE.Views.FileMenuPanels.ProtectDoc = Common.UI.BaseView.extend(_.extend({
|
|
|
|
el: '#panel-protect',
|
|
|
|
menu: undefined,
|
|
|
|
|
|
|
|
template: _.template([
|
2017-11-17 14:23:38 +00:00
|
|
|
'<label id="id-fms-lbl-protect-header" style="font-size: 18px;"><%= scope.strProtect %></label>',
|
|
|
|
'<div id="id-fms-password">',
|
|
|
|
'<label class="header"><%= scope.strEncrypt %></label>',
|
|
|
|
'<div id="fms-btn-add-pwd" style="width:190px;"></div>',
|
|
|
|
'<table id="id-fms-view-pwd" cols="2" width="300">',
|
|
|
|
'<tr>',
|
2018-04-27 13:14:18 +00:00
|
|
|
'<td colspan="2"><label style="cursor: default;"><%= scope.txtEncrypted %></label></td>',
|
2017-11-17 14:23:38 +00:00
|
|
|
'</tr>',
|
|
|
|
'<tr>',
|
|
|
|
'<td><div id="fms-btn-change-pwd" style="width:190px;"></div></td>',
|
|
|
|
'<td align="right"><div id="fms-btn-delete-pwd" style="width:190px; margin-left:20px;"></div></td>',
|
|
|
|
'</tr>',
|
|
|
|
'</table>',
|
|
|
|
'</div>',
|
|
|
|
'<div id="id-fms-signature">',
|
|
|
|
'<label class="header"><%= scope.strSignature %></label>',
|
|
|
|
'<div id="fms-btn-invisible-sign" style="width:190px; margin-bottom: 20px;"></div>',
|
|
|
|
'<div id="id-fms-signature-view"></div>',
|
|
|
|
'</div>'
|
2017-09-13 08:57:30 +00:00
|
|
|
].join('')),
|
|
|
|
|
|
|
|
initialize: function(options) {
|
|
|
|
Common.UI.BaseView.prototype.initialize.call(this,arguments);
|
|
|
|
|
|
|
|
this.menu = options.menu;
|
|
|
|
|
2017-11-17 14:23:38 +00:00
|
|
|
var me = this;
|
|
|
|
this.templateSignature = _.template([
|
|
|
|
'<table cols="2" width="300" class="<% if (!hasSigned) { %>hidden<% } %>"">',
|
|
|
|
'<tr>',
|
2018-04-27 13:14:18 +00:00
|
|
|
'<td colspan="2"><label style="cursor: default;"><%= tipText %></label></td>',
|
2017-11-17 14:23:38 +00:00
|
|
|
'</tr>',
|
|
|
|
'<tr>',
|
2021-12-03 12:38:00 +00:00
|
|
|
'<td><label class="link signature-view-link" data-hint="2" data-hint-direction="bottom" data-hint-offset="medium">' + me.txtView + '</label></td>',
|
|
|
|
'<td align="right"><label class="link signature-edit-link <% if (!hasSigned) { %>hidden<% } %>" data-hint="2" data-hint-direction="bottom" data-hint-offset="medium">' + me.txtEdit + '</label></td>',
|
2017-11-17 14:23:38 +00:00
|
|
|
'</tr>',
|
2017-09-13 08:57:30 +00:00
|
|
|
'</table>'
|
|
|
|
].join(''));
|
|
|
|
},
|
|
|
|
|
|
|
|
render: function() {
|
2019-08-22 14:43:51 +00:00
|
|
|
this.$el.html(this.template({scope: this}));
|
2017-09-13 08:57:30 +00:00
|
|
|
|
2017-11-17 14:23:38 +00:00
|
|
|
var protection = PE.getController('Common.Controllers.Protection').getView();
|
|
|
|
|
|
|
|
this.btnAddPwd = protection.getButton('add-password');
|
|
|
|
this.btnAddPwd.render(this.$el.find('#fms-btn-add-pwd'));
|
|
|
|
this.btnAddPwd.on('click', _.bind(this.closeMenu, this));
|
2017-09-13 08:57:30 +00:00
|
|
|
|
2017-11-17 14:23:38 +00:00
|
|
|
this.btnChangePwd = protection.getButton('change-password');
|
|
|
|
this.btnChangePwd.render(this.$el.find('#fms-btn-change-pwd'));
|
|
|
|
this.btnChangePwd.on('click', _.bind(this.closeMenu, this));
|
2017-09-13 08:57:30 +00:00
|
|
|
|
2017-11-17 14:23:38 +00:00
|
|
|
this.btnDeletePwd = protection.getButton('del-password');
|
|
|
|
this.btnDeletePwd.render(this.$el.find('#fms-btn-delete-pwd'));
|
|
|
|
this.btnDeletePwd.on('click', _.bind(this.closeMenu, this));
|
2017-09-13 08:57:30 +00:00
|
|
|
|
2018-08-01 16:08:24 +00:00
|
|
|
this.cntPassword = $('#id-fms-password');
|
|
|
|
this.cntPasswordView = $('#id-fms-view-pwd');
|
2017-11-17 14:23:38 +00:00
|
|
|
|
|
|
|
this.btnAddInvisibleSign = protection.getButton('signature');
|
|
|
|
this.btnAddInvisibleSign.render(this.$el.find('#fms-btn-invisible-sign'));
|
|
|
|
this.btnAddInvisibleSign.on('click', _.bind(this.closeMenu, this));
|
|
|
|
|
|
|
|
this.cntSignature = $('#id-fms-signature');
|
|
|
|
this.cntSignatureView = $('#id-fms-signature-view');
|
2017-09-13 08:57:30 +00:00
|
|
|
if (_.isUndefined(this.scroller)) {
|
|
|
|
this.scroller = new Common.UI.Scroller({
|
2019-08-22 14:43:51 +00:00
|
|
|
el: this.$el,
|
2020-06-11 11:00:23 +00:00
|
|
|
suppressScrollX: true,
|
|
|
|
alwaysVisibleY: true
|
2017-09-13 08:57:30 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2017-11-17 14:23:38 +00:00
|
|
|
this.$el.on('click', '.signature-edit-link', _.bind(this.onEdit, this));
|
|
|
|
this.$el.on('click', '.signature-view-link', _.bind(this.onView, this));
|
|
|
|
|
2017-09-13 08:57:30 +00:00
|
|
|
return this;
|
|
|
|
},
|
|
|
|
|
|
|
|
show: function() {
|
|
|
|
Common.UI.BaseView.prototype.show.call(this,arguments);
|
|
|
|
this.updateSignatures();
|
2017-11-17 14:23:38 +00:00
|
|
|
this.updateEncrypt();
|
2020-06-11 11:00:23 +00:00
|
|
|
this.scroller && this.scroller.update();
|
2017-09-13 08:57:30 +00:00
|
|
|
},
|
|
|
|
|
|
|
|
setMode: function(mode) {
|
|
|
|
this.mode = mode;
|
2018-08-01 16:08:24 +00:00
|
|
|
this.cntSignature.toggleClass('hidden', !this.mode.isSignatureSupport);
|
|
|
|
this.cntPassword.toggleClass('hidden', !this.mode.isPasswordSupport);
|
2017-09-13 08:57:30 +00:00
|
|
|
},
|
|
|
|
|
|
|
|
setApi: function(o) {
|
|
|
|
this.api = o;
|
|
|
|
return this;
|
|
|
|
},
|
|
|
|
|
2017-11-17 14:23:38 +00:00
|
|
|
closeMenu: function() {
|
|
|
|
this.menu && this.menu.hide();
|
|
|
|
},
|
|
|
|
|
|
|
|
onEdit: function() {
|
|
|
|
this.menu && this.menu.hide();
|
|
|
|
|
|
|
|
var me = this;
|
|
|
|
Common.UI.warning({
|
|
|
|
title: this.notcriticalErrorTitle,
|
|
|
|
msg: this.txtEditWarning,
|
|
|
|
buttons: ['ok', 'cancel'],
|
|
|
|
primary: 'ok',
|
|
|
|
callback: function(btn) {
|
|
|
|
if (btn == 'ok') {
|
|
|
|
me.api.asc_RemoveAllSignatures();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
onView: function() {
|
|
|
|
this.menu && this.menu.hide();
|
|
|
|
PE.getController('RightMenu').rightmenu.SetActivePane(Common.Utils.documentSettingsType.Signature, true);
|
2017-09-13 08:57:30 +00:00
|
|
|
},
|
|
|
|
|
|
|
|
updateSignatures: function(){
|
|
|
|
var valid = this.api.asc_getSignatures(),
|
2017-11-17 14:23:38 +00:00
|
|
|
hasValid = false,
|
|
|
|
hasInvalid = false;
|
2017-09-13 08:57:30 +00:00
|
|
|
|
|
|
|
_.each(valid, function(item, index){
|
2017-11-17 14:23:38 +00:00
|
|
|
if (item.asc_getValid()==0)
|
|
|
|
hasValid = true;
|
|
|
|
else
|
|
|
|
hasInvalid = true;
|
2017-09-13 08:57:30 +00:00
|
|
|
});
|
2017-11-10 08:59:05 +00:00
|
|
|
|
2017-11-17 14:23:38 +00:00
|
|
|
// hasValid = true;
|
|
|
|
// hasInvalid = true;
|
2017-11-10 08:59:05 +00:00
|
|
|
|
2017-11-17 14:23:38 +00:00
|
|
|
var tipText = (hasInvalid) ? this.txtSignedInvalid : (hasValid ? this.txtSigned : "");
|
|
|
|
this.cntSignatureView.html(this.templateSignature({tipText: tipText, hasSigned: (hasValid || hasInvalid)}));
|
|
|
|
},
|
2017-11-10 08:59:05 +00:00
|
|
|
|
2017-11-17 14:23:38 +00:00
|
|
|
updateEncrypt: function() {
|
2018-08-01 16:08:24 +00:00
|
|
|
this.cntPasswordView.toggleClass('hidden', this.btnAddPwd.isVisible());
|
2017-09-13 08:57:30 +00:00
|
|
|
},
|
|
|
|
|
2017-11-19 08:02:09 +00:00
|
|
|
strProtect: 'Protect Presentation',
|
2017-12-06 11:37:06 +00:00
|
|
|
strSignature: 'With Signature',
|
2017-11-17 14:23:38 +00:00
|
|
|
txtView: 'View signatures',
|
2017-11-19 08:02:09 +00:00
|
|
|
txtEdit: 'Edit presentation',
|
|
|
|
txtSigned: 'Valid signatures has been added to the presentation. The presentation is protected from editing.',
|
|
|
|
txtSignedInvalid: 'Some of the digital signatures in presentation are invalid or could not be verified. The presentation is protected from editing.',
|
2017-11-17 14:23:38 +00:00
|
|
|
notcriticalErrorTitle: 'Warning',
|
2017-11-19 08:02:09 +00:00
|
|
|
txtEditWarning: 'Editing will remove the signatures from the presentation.<br>Are you sure you want to continue?',
|
2017-12-06 11:37:06 +00:00
|
|
|
strEncrypt: 'With Password',
|
2017-11-19 08:02:09 +00:00
|
|
|
txtEncrypted: 'This presentation has been protected by password'
|
2017-09-13 08:57:30 +00:00
|
|
|
|
|
|
|
}, PE.Views.FileMenuPanels.ProtectDoc || {}));
|
|
|
|
|
2016-03-11 00:48:53 +00:00
|
|
|
});
|