[PDF] Open pdf-form files in pdf-editor

This commit is contained in:
Julia Radzhabova
2023-12-11 19:39:03 +03:00
parent f18d44056a
commit d2d371c9b1
16 changed files with 857 additions and 219 deletions

View File

@ -143,7 +143,8 @@ define([
this.$layout = $(options.template({
tabsmarkup: _.template(_template_tabs)({items: options.tabs}),
isRTL: Common.UI.isRTL()
isRTL: Common.UI.isRTL(),
config: options.config
}));
config.tabs = options.tabs;

View File

@ -222,7 +222,7 @@ define([
function updateDocNamePosition(config) {
if ( $labelDocName && config) {
var $parent = $labelDocName.parent();
if (!config.isEdit) {
if (!(config.isEdit || isPDFEditor && config.isRestrictedEdit)) {
var _left_width = $parent.position().left,
_right_width = $parent.next().outerWidth();
$parent.css('padding-left', _left_width < _right_width ? Math.max(2, _right_width - _left_width) : 2);
@ -242,7 +242,7 @@ define([
}
}
if (!(config.customization && config.customization.toolbarHideFileName) && (!config.isEdit || config.customization && config.customization.compactHeader)) {
if (!(config.customization && config.customization.toolbarHideFileName) && (!(config.isEdit || isPDFEditor && config.isRestrictedEdit) || config.customization && config.customization.compactHeader)) {
var basis = parseFloat($parent.css('padding-left') || 0) + parseFloat($parent.css('padding-right') || 0) + parseInt($labelDocName.css('min-width') || 50); // 2px - box-shadow
config.isCrypted && (basis += 20);
$parent.css('flex-basis', Math.ceil(basis) + 'px');
@ -262,7 +262,7 @@ define([
}
function onResize() {
if (appConfig && appConfig.isEdit && !(appConfig.customization && appConfig.customization.compactHeader)) {
if (appConfig && (appConfig.isEdit || isPDFEditor && appConfig.isRestrictedEdit) && !(appConfig.customization && appConfig.customization.compactHeader)) {
updateDocNamePosition(appConfig);
}
}
@ -383,7 +383,7 @@ define([
});
}
if ( !mode.isEdit ) {
if ( !(mode.isEdit || isPDFEditor && mode.isRestrictedEdit) ) {
if ( me.btnDownload ) {
me.btnDownload.updateHint(me.tipDownload);
me.btnDownload.on('click', function (e) {
@ -443,7 +443,7 @@ define([
Common.NotificationCenter.trigger('pdf:mode', item.value, _.bind(changePDFMode, me));
});
}
if (appConfig.isEdit && !(appConfig.customization && appConfig.customization.compactHeader))
if ((appConfig.isEdit || isPDFEditor && appConfig.isRestrictedEdit) && !(appConfig.customization && appConfig.customization.compactHeader))
Common.NotificationCenter.on('window:resize', onResize);
}
@ -638,7 +638,7 @@ define([
$html.find('#slot-btn-favorite').hide();
}
if ( !config.isEdit ) {
if ( !(config.isEdit || isPDFEditor && config.isRestrictedEdit)) {
if ( (config.canDownload || config.canDownloadOrigin) && !config.isOffline )
this.btnDownload = createTitleButton('toolbar__icon icon--inverse btn-download', $html.findById('#slot-hbtn-download'), undefined, 'bottom', 'big');
@ -653,7 +653,7 @@ define([
}
me.btnSearch.render($html.find('#slot-btn-search'));
if (!config.isEdit || config.customization && !!config.customization.compactHeader) {
if (!(config.isEdit || isPDFEditor && config.isRestrictedEdit) || config.customization && !!config.customization.compactHeader) {
if (config.user.guest && config.canRenameAnonymous) {
me.btnUserName = new Common.UI.Button({
el: $html.findById('.slot-btn-user-name'),
@ -734,13 +734,15 @@ define([
$btnUserName = $html.find('.color-user-name');
me.setUserName(me.options.userName);
if ( config.canPrint && config.isEdit ) {
if ( config.canPrint && (config.isEdit || isPDFEditor && config.isRestrictedEdit) ) {
me.btnPrint = createTitleButton('toolbar__icon icon--inverse btn-print', $html.findById('#slot-btn-dt-print'), true, undefined, undefined, 'P');
}
if ( config.canQuickPrint && config.isEdit )
if ( config.canQuickPrint && (config.isEdit || isPDFEditor && config.isRestrictedEdit) )
me.btnPrintQuick = createTitleButton('toolbar__icon icon--inverse btn-quick-print', $html.findById('#slot-btn-dt-print-quick'), true, undefined, undefined, 'Q');
me.btnSave = createTitleButton('toolbar__icon icon--inverse btn-save', $html.findById('#slot-btn-dt-save'), true, undefined, undefined, 'S');
if (!isPDFEditor || !config.isForm)
me.btnSave = createTitleButton('toolbar__icon icon--inverse btn-save', $html.findById('#slot-btn-dt-save'), true, undefined, undefined, 'S');
me.btnUndo = createTitleButton('toolbar__icon icon--inverse btn-undo', $html.findById('#slot-btn-dt-undo'), true, undefined, undefined, 'Z');
me.btnRedo = createTitleButton('toolbar__icon icon--inverse btn-redo', $html.findById('#slot-btn-dt-redo'), true, undefined, undefined, 'Y');

View File

@ -41,7 +41,10 @@
define([
'core',
'pdfeditor/main/app/view/DocumentHolder'
'pdfeditor/main/app/view/DocumentHolder',
'common/main/lib/view/ImageFromUrlDialog',
'common/main/lib/view/SelectFileDlg',
'common/main/lib/view/SaveAsDlg'
], function () {
'use strict';
@ -164,6 +167,13 @@ define([
this.api.asc_registerCallback('asc_onShowPDFFormsActions', _.bind(this.onShowFormsPDFActions, this));
this.api.asc_registerCallback('asc_onHidePdfFormsActions', _.bind(this.onHidePdfFormsActions, this));
}
if (this.mode.isRestrictedEdit) {
this.api.asc_registerCallback('asc_onShowContentControlsActions', _.bind(this.onShowContentControlsActions, this));
this.api.asc_registerCallback('asc_onHideContentControlsActions', _.bind(this.onHideContentControlsActions, this));
Common.Gateway.on('insertimage', _.bind(this.insertImage, this));
Common.NotificationCenter.on('storage:image-load', _.bind(this.openImageFromStorage, this)); // try to load image from storage
Common.NotificationCenter.on('storage:image-insert', _.bind(this.insertImageFromStorage, this)); // set loaded image to control
}
this.api.asc_registerCallback('asc_onCoAuthoringDisconnect', _.bind(this.onCoAuthoringDisconnect, this));
Common.NotificationCenter.on('api:disconnect', _.bind(this.onCoAuthoringDisconnect, this));
@ -836,8 +846,8 @@ define([
},
onHidePdfFormsActions: function() {
this.listControlMenu && this.listControlMenu.isVisible() && this.listControlMenu.hide();
var controlsContainer = this.documentHolder.cmpEl.find('#calendar-control-container');
this.listControlMenuPdf && this.listControlMenuPdf.isVisible() && this.listControlMenuPdf.hide();
var controlsContainer = this.documentHolder.cmpEl.find('#calendar-control-container-pdf');
if (controlsContainer.is(':visible'))
controlsContainer.hide();
},
@ -848,7 +858,7 @@ define([
this.onShowListActionsPDF(obj, x, y);
break;
case AscPDF.FIELD_TYPES.text:
this.onShowDateActions(obj, x, y);
this.onShowDateActionsPDF(obj, x, y);
break;
}
},
@ -856,16 +866,16 @@ define([
onShowListActionsPDF: function(obj) {
var isForm = true,
cmpEl = this.documentHolder.cmpEl,
menu = this.listControlMenu,
menu = this.listControlMenuPdf,
menuContainer = menu ? cmpEl.find(Common.Utils.String.format('#menu-container-{0}', menu.id)) : null,
me = this;
me._listObj = obj;
me._listObjPdf = obj;
this._fromShowContentControls = true;
Common.UI.Menu.Manager.hideAll();
if (!menu) {
this.listControlMenu = menu = new Common.UI.Menu({
this.listControlMenuPdf = menu = new Common.UI.Menu({
maxHeight: 207,
menuAlign: 'tr-bl',
items: []
@ -885,7 +895,7 @@ define([
menu.render(menuContainer);
menu.cmpEl.attr({tabindex: "-1"});
menu.on('hide:after', function(){
me.listControlMenu.removeAll();
me.listControlMenuPdf.removeAll();
if (!me._fromShowContentControls)
me.api.asc_UncheckContentControlButtons();
});
@ -925,15 +935,15 @@ define([
this._fromShowContentControls = false;
},
onShowDateActions: function(obj, x, y) {
onShowDateActionsPDF: function(obj, x, y) {
var cmpEl = this.documentHolder.cmpEl,
controlsContainer = cmpEl.find('#calendar-control-container'),
controlsContainer = cmpEl.find('#calendar-control-container-pdf'),
me = this;
this._dateObj = obj;
this._dateObjPdf = obj;
if (controlsContainer.length < 1) {
controlsContainer = $('<div id="calendar-control-container" style="position: absolute;z-index: 1000;"><div id="id-document-calendar-control" style="position: fixed; left: -1000px; top: -1000px;"></div></div>');
controlsContainer = $('<div id="calendar-control-container-pdf" style="position: absolute;z-index: 1000;"><div id="id-document-calendar-control-pdf" style="position: fixed; left: -1000px; top: -1000px;"></div></div>');
cmpEl.append(controlsContainer);
}
@ -945,19 +955,19 @@ define([
controlsContainer.css({left: oGlobalCoords.X, top : oGlobalCoords.Y});
controlsContainer.show();
if (!this.cmpCalendar) {
this.cmpCalendar = new Common.UI.Calendar({
el: cmpEl.find('#id-document-calendar-control'),
if (!this.cmpCalendarPdf) {
this.cmpCalendarPdf = new Common.UI.Calendar({
el: cmpEl.find('#id-document-calendar-control-pdf'),
enableKeyEvents: true,
firstday: 1
});
this.cmpCalendar.on('date:click', function (cmp, date) {
this.cmpCalendarPdf.on('date:click', function (cmp, date) {
var specProps = new AscCommon.CSdtDatePickerPr();
specProps.put_FullDate(new Date(date));
me.api.asc_SetTextFormDatePickerDate(specProps);
controlsContainer.hide();
});
this.cmpCalendar.on('calendar:keydown', function (cmp, e) {
this.cmpCalendarPdf.on('calendar:keydown', function (cmp, e) {
if (e.keyCode==Common.UI.Keys.ESC) {
controlsContainer.hide();
}
@ -969,14 +979,320 @@ define([
});
}
var val = this._dateObj ? this._dateObj.GetValue() : undefined;
var val = this._dateObjPdf ? this._dateObjPdf.GetValue() : undefined;
if (val) {
val = new Date(val);
if (Object.prototype.toString.call(val) !== '[object Date]' || isNaN(val))
val = undefined;
}
!val && (val = new Date());
this.cmpCalendar.setDate(val);
this.cmpCalendarPdf.setDate(val);
// align
var offset = controlsContainer.offset(),
docW = Common.Utils.innerWidth(),
docH = Common.Utils.innerHeight() - 10, // Yep, it's magic number
menuW = this.cmpCalendarPdf.cmpEl.outerWidth(),
menuH = this.cmpCalendarPdf.cmpEl.outerHeight(),
buttonOffset = 22,
left = offset.left - menuW,
top = offset.top;
if (top + menuH > docH) {
top = docH - menuH;
left -= buttonOffset;
}
if (top < 0)
top = 0;
if (left + menuW > docW)
left = docW - menuW;
this.cmpCalendarPdf.cmpEl.css({left: left, top : top});
this._preventClick = true;
},
onShowContentControlsActions: function(obj, x, y) {
if (this._isDisabled) return;
var me = this;
switch (obj.type) {
case Asc.c_oAscContentControlSpecificType.DateTime:
this.onShowDateActions(obj, x, y);
break;
case Asc.c_oAscContentControlSpecificType.Picture:
if (obj.pr && obj.pr.get_Lock) {
var lock = obj.pr.get_Lock();
if (lock == Asc.c_oAscSdtLockType.SdtContentLocked || lock==Asc.c_oAscSdtLockType.ContentLocked)
return;
}
this.onShowImageActions(obj, x, y);
break;
case Asc.c_oAscContentControlSpecificType.DropDownList:
case Asc.c_oAscContentControlSpecificType.ComboBox:
this.onShowListActions(obj, x, y);
break;
}
},
onHideContentControlsActions: function() {
this.listControlMenu && this.listControlMenu.isVisible() && this.listControlMenu.hide();
var controlsContainer = this.documentHolder.cmpEl.find('#calendar-control-container');
if (controlsContainer.is(':visible'))
controlsContainer.hide();
},
onShowImageActions: function(obj, x, y) {
var cmpEl = this.documentHolder.cmpEl,
menu = this.imageControlMenu,
menuContainer = menu ? cmpEl.find(Common.Utils.String.format('#menu-container-{0}', menu.id)) : null,
me = this;
this.internalFormObj = obj && obj.pr ? obj.pr.get_InternalId() : null;
this._fromShowContentControls = true;
Common.UI.Menu.Manager.hideAll();
if (!menu) {
this.imageControlMenu = menu = new Common.UI.Menu({
maxHeight: 207,
menuAlign: 'tl-bl',
items: [
{caption: this.documentHolder.mniImageFromFile, value: 'file'},
{caption: this.documentHolder.mniImageFromUrl, value: 'url'},
{caption: this.documentHolder.mniImageFromStorage, value: 'storage', visible: this.mode.canRequestInsertImage || this.mode.fileChoiceUrl && this.mode.fileChoiceUrl.indexOf("{documentType}")>-1}
]
});
menu.on('item:click', function(menu, item) {
setTimeout(function(){
me.onImageSelect(menu, item);
}, 1);
setTimeout(function(){
me.api.asc_UncheckContentControlButtons();
}, 500);
});
// Prepare menu container
if (!menuContainer || menuContainer.length < 1) {
menuContainer = $(Common.Utils.String.format('<div id="menu-container-{0}" style="position: absolute; z-index: 10000;"><div class="dropdown-toggle" data-toggle="dropdown"></div></div>', menu.id));
cmpEl.append(menuContainer);
}
menu.render(menuContainer);
menu.cmpEl.attr({tabindex: "-1"});
menu.on('hide:after', function(){
if (!me._fromShowContentControls)
me.api.asc_UncheckContentControlButtons();
});
}
menuContainer.css({left: x, top : y});
menuContainer.attr('data-value', 'prevent-canvas-click');
this._preventClick = true;
menu.show();
_.delay(function() {
menu.cmpEl.focus();
}, 10);
this._fromShowContentControls = false;
},
onImageSelect: function(menu, item) {
if (item.value=='url') {
var me = this;
(new Common.Views.ImageFromUrlDialog({
handler: function(result, value) {
if (result == 'ok') {
if (me.api) {
var checkUrl = value.replace(/ /g, '');
if (!_.isEmpty(checkUrl)) {
me.setImageUrl(checkUrl);
}
}
}
}
})).show();
} else if (item.value=='storage') {
Common.NotificationCenter.trigger('storage:image-load', 'control');
} else {
if (this._isFromFile) return;
this._isFromFile = true;
this.api.asc_addImage(this.internalFormObj);
this._isFromFile = false;
}
},
openImageFromStorage: function(type) {
var me = this;
if (this.mode.canRequestInsertImage) {
Common.Gateway.requestInsertImage(type);
} else {
(new Common.Views.SelectFileDlg({
fileChoiceUrl: this.mode.fileChoiceUrl.replace("{fileExt}", "").replace("{documentType}", "ImagesOnly")
})).on('selectfile', function(obj, file){
file && (file.c = type);
!file.images && (file.images = [{fileType: file.fileType, url: file.url}]); // SelectFileDlg uses old format for inserting image
file.url = null;
me.insertImage(file);
}).show();
}
},
setImageUrl: function(url, token) {
this.api.asc_SetContentControlPictureUrl(url, this.internalFormObj && this.internalFormObj.pr ? this.internalFormObj.pr.get_InternalId() : null, token);
},
insertImage: function(data) { // gateway
if (data && (data.url || data.images)) {
data.url && console.log("Obsolete: The 'url' parameter of the 'insertImage' method is deprecated. Please use 'images' parameter instead.");
var arr = [];
if (data.images && data.images.length>0) {
for (var i=0; i<data.images.length; i++) {
data.images[i] && data.images[i].url && arr.push( data.images[i].url);
}
} else
data.url && arr.push(data.url);
data._urls = arr;
}
Common.NotificationCenter.trigger('storage:image-insert', data);
},
insertImageFromStorage: function(data) {
if (data && data._urls && data.c=='control') {
this.setImageUrl(data._urls[0], data.token);
}
},
onShowListActions: function(obj, x, y) {
var type = obj.type,
props = obj.pr,
specProps = (type == Asc.c_oAscContentControlSpecificType.ComboBox) ? props.get_ComboBoxPr() : props.get_DropDownListPr(),
isForm = !!props.get_FormPr(),
cmpEl = this.documentHolder.cmpEl,
menu = this.listControlMenu,
menuContainer = menu ? cmpEl.find(Common.Utils.String.format('#menu-container-{0}', menu.id)) : null,
me = this;
this._listObj = props;
this._fromShowContentControls = true;
Common.UI.Menu.Manager.hideAll();
if (!menu) {
this.listControlMenu = menu = new Common.UI.Menu({
maxHeight: 207,
menuAlign: 'tr-bl',
items: []
});
menu.on('item:click', function(menu, item) {
setTimeout(function(){
(item.value!==-1) && me.api.asc_SelectContentControlListItem(item.value, me._listObj.get_InternalId());
}, 1);
});
// Prepare menu container
if (!menuContainer || menuContainer.length < 1) {
menuContainer = $(Common.Utils.String.format('<div id="menu-container-{0}" style="position: absolute; z-index: 10000;"><div class="dropdown-toggle" data-toggle="dropdown"></div></div>', menu.id));
cmpEl.append(menuContainer);
}
menu.render(menuContainer);
menu.cmpEl.attr({tabindex: "-1"});
menu.on('hide:after', function(){
me.listControlMenu.removeAll();
if (!me._fromShowContentControls)
me.api.asc_UncheckContentControlButtons();
});
}
if (specProps) {
if (isForm){ // for dropdown and combobox form control always add placeholder item
var text = props.get_PlaceholderText();
menu.addItem(new Common.UI.MenuItem({
caption : (text.trim()!=='') ? text : this.documentHolder.txtEmpty,
value : '',
template : _.template([
'<a id="<%= id %>" tabindex="-1" type="menuitem" style="<% if (options.value=="") { %> opacity: 0.6 <% } %>">',
'<%= Common.Utils.String.htmlEncode(caption) %>',
'</a>'
].join(''))
}));
}
var count = specProps.get_ItemsCount();
for (var i=0; i<count; i++) {
(specProps.get_ItemValue(i)!=='' || !isForm) && menu.addItem(new Common.UI.MenuItem({
caption : specProps.get_ItemDisplayText(i),
value : specProps.get_ItemValue(i),
template : _.template([
'<a id="<%= id %>" style="<%= style %>" tabindex="-1" type="menuitem">',
'<%= Common.Utils.String.htmlEncode(caption) %>',
'</a>'
].join(''))
}));
}
if (!isForm && menu.items.length<1) {
menu.addItem(new Common.UI.MenuItem({
caption : this.documentHolder.txtEmpty,
value : -1
}));
}
}
menuContainer.css({left: x, top : y});
menuContainer.attr('data-value', 'prevent-canvas-click');
this._preventClick = true;
menu.show();
_.delay(function() {
menu.cmpEl.focus();
}, 10);
this._fromShowContentControls = false;
},
onShowDateActions: function(obj, x, y) {
var props = obj.pr,
specProps = props.get_DateTimePr(),
cmpEl = this.documentHolder.cmpEl,
controlsContainer = cmpEl.find('#calendar-control-container'),
me = this;
this._dateObj = props;
if (controlsContainer.length < 1) {
controlsContainer = $('<div id="calendar-control-container" style="position: absolute;z-index: 1000;"><div id="id-document-calendar-control" style="position: fixed; left: -1000px; top: -1000px;"></div></div>');
cmpEl.append(controlsContainer);
}
Common.UI.Menu.Manager.hideAll();
controlsContainer.css({left: x, top : y});
controlsContainer.show();
if (!this.cmpCalendar) {
this.cmpCalendar = new Common.UI.Calendar({
el: cmpEl.find('#id-document-calendar-control'),
enableKeyEvents: true,
firstday: 1
});
this.cmpCalendar.on('date:click', function (cmp, date) {
var specProps = me._dateObj.get_DateTimePr();
specProps.put_FullDate(new Date(date));
me.api.asc_SetContentControlDatePickerDate(specProps);
controlsContainer.hide();
me.api.asc_UncheckContentControlButtons();
});
this.cmpCalendar.on('calendar:keydown', function (cmp, e) {
if (e.keyCode==Common.UI.Keys.ESC) {
controlsContainer.hide();
me.api.asc_UncheckContentControlButtons();
}
});
$(document).on('mousedown', function(e) {
if (e.target.localName !== 'canvas' && controlsContainer.is(':visible') && controlsContainer.find(e.target).length==0) {
controlsContainer.hide();
me.api.asc_UncheckContentControlButtons();
}
});
}
var val = specProps ? specProps.get_FullDate() : undefined;
this.cmpCalendar.setDate(val ? new Date(val) : new Date());
// align
var offset = controlsContainer.offset(),

View File

@ -200,7 +200,11 @@ define([
}
/** coauthoring end **/
this.leftMenu.setOptionsPanel('navigation', this.getApplication().getController('Navigation').getView('Navigation'));
if (this.mode.canUseViwerNavigation) {
this.leftMenu.setOptionsPanel('navigation', this.getApplication().getController('Navigation').getView('Navigation'));
} else {
this.leftMenu.btnNavigation.hide();
}
if (this.mode.canUseThumbnails) {
this.leftMenu.setOptionsPanel('thumbnails', this.getApplication().getController('PageThumbnails').getView('PageThumbnails'));

View File

@ -97,8 +97,10 @@ define([
});
this.translationTable = {
'Your text here': this.txtArt,
"Choose an item": this.txtChoose,
"Enter a date": this.txtEnterDate
"Enter a date": this.txtEnterDate,
"Click to load image": this.txtClickToLoad
};
},
@ -449,7 +451,9 @@ define([
docInfo.put_Lang(this.editorConfig.lang);
docInfo.put_Mode(this.editorConfig.mode);
var enable = !this.editorConfig.customization || (this.editorConfig.customization.plugins!==false);
var enable = !this.editorConfig.customization || (this.editorConfig.customization.macros!==false);
docInfo.asc_putIsEnabledMacroses(!!enable);
enable = !this.editorConfig.customization || (this.editorConfig.customization.plugins!==false);
docInfo.asc_putIsEnabledPlugins(!!enable);
// docInfo.put_Review(this.permissions.review);
@ -473,6 +477,7 @@ define([
this.api.asc_registerCallback('asc_onGetEditorPermissions', _.bind(this.onEditorPermissions, this));
this.api.asc_registerCallback('asc_onLicenseChanged', _.bind(this.onLicenseChanged, this));
this.api.asc_registerCallback('asc_onRunAutostartMacroses', _.bind(this.onRunAutostartMacroses, this));
this.api.asc_setDocInfo(docInfo);
this.api.asc_getEditorPermissions(this.editorConfig.licenseUrl, this.editorConfig.customerId);
@ -481,6 +486,12 @@ define([
}
},
onRunAutostartMacroses: function() {
if (!this.editorConfig.customization || (this.editorConfig.customization.macros!==false)) {
this.api.asc_runAutostartMacroses();
}
},
onProcessSaveResult: function(data) {
this.api.asc_OnSaveEnd(data.result);
if (data && data.result === false) {
@ -1000,8 +1011,8 @@ define([
documentHolderController.getView().on('editcomplete', _.bind(me.onEditComplete, me));
if (me.appOptions.isEdit) {
if (me.appOptions.canForcesave) {// use asc_setIsForceSaveOnUserSave only when customization->forcesave = true
if (me.appOptions.isEdit || me.appOptions.isRestrictedEdit) {
if (me.appOptions.isEdit && me.appOptions.canForcesave) {// use asc_setIsForceSaveOnUserSave only when customization->forcesave = true
me.appOptions.forcesave = Common.localStorage.getBool("pdfe-settings-forcesave", me.appOptions.canForcesave);
Common.Utils.InternalSettings.set("pdfe-settings-forcesave", me.appOptions.forcesave);
me.api.asc_setIsForceSaveOnUserSave(me.appOptions.forcesave);
@ -1010,6 +1021,7 @@ define([
if (me.needToUpdateVersion)
Common.NotificationCenter.trigger('api:disconnect');
me.appOptions.isRestrictedEdit && me.api.asc_SetHighlightRequiredFields(true);
var timer_sl = setTimeout(function(){
toolbarController.createDelayedElements();
@ -1065,7 +1077,7 @@ define([
onLicenseChanged: function(params) {
var licType = params.asc_getLicenseType();
if (licType !== undefined && (this.appOptions.canPDFEdit) && this.editorConfig.mode !== 'view' &&
if (licType !== undefined && (this.appOptions.canPDFEdit && this.editorConfig.mode !== 'view' || this.appOptions.isRestrictedEdit) &&
(licType===Asc.c_oLicenseResult.Connections || licType===Asc.c_oLicenseResult.UsersCount || licType===Asc.c_oLicenseResult.ConnectionsOS || licType===Asc.c_oLicenseResult.UsersCountOS
|| licType===Asc.c_oLicenseResult.SuccessLimit && (this.appOptions.trialMode & Asc.c_oLicenseMode.Limited) !== 0))
this._state.licenseType = licType;
@ -1075,6 +1087,9 @@ define([
},
applyLicense: function() {
if (this.appOptions.isForm)
return this.applyLicenseForm();
if (this.appOptions.canSwitchMode && (this.appOptions.canPDFAnnotate || this.appOptions.canPDFEdit) &&
!this.appOptions.isDesktopApp && !this.appOptions.canBrandingExt &&
this.editorConfig && this.editorConfig.customization && (this.editorConfig.customization.loaderName || this.editorConfig.customization.loaderLogo ||
@ -1092,6 +1107,57 @@ define([
}
},
applyLicenseForm: function() {
if (!this.appOptions.isAnonymousSupport && !!this.appOptions.user.anonymous) {
this.api.asc_coAuthoringDisconnect();
Common.NotificationCenter.trigger('api:disconnect');
Common.UI.warning({
title: this.notcriticalErrorTitle,
msg : this.warnLicenseAnonymous,
buttons: ['ok']
});
} else if (this._state.licenseType) {
var license = this._state.licenseType,
buttons = ['ok'],
primary = 'ok';
if ((this.appOptions.trialMode & Asc.c_oLicenseMode.Limited) !== 0 &&
(license===Asc.c_oLicenseResult.SuccessLimit || this.appOptions.permissionsLicense===Asc.c_oLicenseResult.SuccessLimit)) {
license = this.warnLicenseLimitedRenewed;
} else if (license===Asc.c_oLicenseResult.Connections || license===Asc.c_oLicenseResult.UsersCount) {
license = (license===Asc.c_oLicenseResult.Connections) ? this.warnLicenseExceeded : this.warnLicenseUsersExceeded;
} else {
license = (license===Asc.c_oLicenseResult.ConnectionsOS) ? this.warnNoLicense : this.warnNoLicenseUsers;
buttons = [{value: 'buynow', caption: this.textBuyNow}, {value: 'contact', caption: this.textContactUs}];
primary = 'buynow';
}
if (this._state.licenseType!==Asc.c_oLicenseResult.SuccessLimit && this.appOptions.isRestrictedEdit) {
this.api.asc_coAuthoringDisconnect();
Common.NotificationCenter.trigger('api:disconnect');
}
var value = Common.localStorage.getItem("pdfe-license-warning");
value = (value!==null) ? parseInt(value) : 0;
var now = (new Date).getTime();
if (now - value > 86400000) {
Common.UI.info({
maxwidth: 500,
title: this.textNoLicenseTitle,
msg : license,
buttons: buttons,
primary: primary,
callback: function(btn) {
Common.localStorage.setItem("pdfe-license-warning", now);
if (btn == 'buynow')
window.open('{{PUBLISHER_URL}}', "_blank");
else if (btn == 'contact')
window.open('mailto:{{SALES_EMAIL}}', "_blank");
}
});
}
}
},
onOpenDocument: function(progress) {
var elem = document.getElementById('loadmask-text');
var proc = (progress.asc_getCurrentFont() + progress.asc_getCurrentImage())/(progress.asc_getFontsCount() + progress.asc_getImagesCount());
@ -1117,8 +1183,8 @@ define([
if (params.asc_getRights() !== Asc.c_oRights.Edit)
this.permissions.edit = this.permissions.review = false;
var isXpsViewer = /^(?:(djvu|xps|oxps))$/.test(this.document.fileType) || Common.Locale.getDefaultLanguage() === 'ru';
this.appOptions.isXpsViewer = /^(?:(djvu|xps|oxps))$/.test(this.document.fileType) || Common.Locale.getDefaultLanguage() === 'ru';
this.appOptions.isForm = !this.appOptions.isXpsViewer && !!this.document.isForm;
this.appOptions.permissionsLicense = licType;
this.appOptions.canAnalytics = params.asc_getIsAnalyticsEnable();
this.appOptions.canLicense = (licType === Asc.c_oLicenseResult.Success || licType === Asc.c_oLicenseResult.SuccessLimit);
@ -1127,18 +1193,18 @@ define([
this.appOptions.canCoAuthoring = !this.appOptions.isLightVersion;
/** coauthoring end **/
this.appOptions.isOffline = this.api.asc_isOffline();
this.appOptions.canCreateNew = this.appOptions.canCreateNew && !this.appOptions.isOffline;
this.appOptions.canCreateNew = this.appOptions.canCreateNew && !this.appOptions.isOffline && !this.isForm;
this.appOptions.isCrypted = this.api.asc_isCrypto();
this.appOptions.canRequestEditRights = this.editorConfig.canRequestEditRights;
this.appOptions.canSwitchMode = !isXpsViewer && false; // switch between View/pdf comments/pdf edit
this.appOptions.canEdit = !isXpsViewer;
this.appOptions.isEdit = !isXpsViewer;
this.appOptions.canSwitchMode = !this.appOptions.isXpsViewer && !this.appOptions.isForm && false; // switch between View/pdf comments/pdf edit
this.appOptions.canEdit = !this.appOptions.isXpsViewer && !this.appOptions.isForm;
this.appOptions.isEdit = !this.appOptions.isXpsViewer && !this.appOptions.isForm;
this.appOptions.canPDFEdit = false;//(this.permissions.edit !== false) && this.appOptions.canLicense;
this.appOptions.isPDFEdit = false; // this.appOptions.canPDFEdit && this.editorConfig.mode !== 'view'; !! always open in view mode
this.appOptions.canPDFAnnotate = this.appOptions.canSwitchMode && this.appOptions.canLicense && (this.permissions.comment!== false);
this.appOptions.canPDFAnnotate = this.appOptions.canPDFAnnotate && !((typeof (this.editorConfig.customization) == 'object') && this.editorConfig.customization.comments===false);
this.appOptions.isPDFAnnotate = false;// this.appOptions.canLicense && this.appOptions.canPDFAnnotate && !this.appOptions.isPDFEdit && this.editorConfig.mode !== 'view'; !! always open in view mode
this.appOptions.canComments = !isXpsViewer;
this.appOptions.canComments = !this.appOptions.isXpsViewer && !this.appOptions.isForm;
this.appOptions.canViewComments = this.appOptions.canComments;
this.appOptions.canChat = this.appOptions.canLicense && !this.appOptions.isOffline && !(this.permissions.chat===false || (this.permissions.chat===undefined) &&
(typeof (this.editorConfig.customization) == 'object') && this.editorConfig.customization.chat===false);
@ -1167,6 +1233,11 @@ define([
this.appOptions.isPasswordSupport = false;//this.appOptions.isEdit && this.api.asc_isProtectionSupport() && (this.permissions.protect!==false);
this.appOptions.canProtect = (this.permissions.protect!==false);
this.appOptions.canHelp = !((typeof (this.editorConfig.customization) == 'object') && this.editorConfig.customization.help===false);
this.appOptions.canSubmitForms = this.appOptions.canLicense && (typeof (this.editorConfig.customization) == 'object') && !!this.editorConfig.customization.submitForm && !this.appOptions.isOffline;
// TODO: check view mode
this.appOptions.canFillForms = this.appOptions.canLicense && this.appOptions.isForm && ((this.permissions.fillForms===undefined) ? (this.permissions.edit !== false) : this.permissions.fillForms) && (this.editorConfig.mode !== 'view');
this.appOptions.isAnonymousSupport = !!this.api.asc_isAnonymousSupport();
this.appOptions.isRestrictedEdit = !this.appOptions.isEdit && this.appOptions.canFillForms;
if ( !this.appOptions.canCoAuthoring ) {
this.appOptions.canChat = false;
@ -1174,8 +1245,8 @@ define([
this.appOptions.canDownloadOrigin = false;
this.appOptions.canDownload = this.permissions.download !== false;
this.appOptions.canUseSelectHandTools = isXpsViewer;
this.appOptions.canUseThumbnails = this.appOptions.canUseViwerNavigation = true;
this.appOptions.canUseSelectHandTools = this.appOptions.isXpsViewer;
this.appOptions.canUseThumbnails = this.appOptions.canUseViwerNavigation = !this.appOptions.isForm;
this.appOptions.fileKey = this.document.key;
@ -1224,7 +1295,8 @@ define([
this.onLongActionBegin(Asc.c_oAscAsyncActionType.BlockInteraction, LoadingDocument);
}
this.api.asc_setViewMode(!this.appOptions.isEdit);
this.api.asc_setViewMode(!this.appOptions.isEdit && !this.appOptions.isRestrictedEdit);
this.appOptions.isRestrictedEdit && this.api.asc_setRestriction(Asc.c_oAscRestrictionType.OnlyForms);
this.api.asc_LoadDocument();
},
@ -1328,9 +1400,9 @@ define([
onPdfModeApply: function() {
if (!this.api) return;
this._state.fastCoauth = (this.appOptions.isPDFAnnotate || this.appOptions.isPDFEdit) ? Common.Utils.InternalSettings.get("pdfe-settings-coauthmode") : false;
this._state.fastCoauth = (this.appOptions.isPDFAnnotate || this.appOptions.isPDFEdit) ? Common.Utils.InternalSettings.get("pdfe-settings-coauthmode") : this.appOptions.isForm;
this.api.asc_SetFastCollaborative(this._state.fastCoauth);
this.api.asc_setAutoSaveGap(this.appOptions.isPDFAnnotate || this.appOptions.isPDFEdit ? Common.Utils.InternalSettings.get("pdfe-settings-autosave") : 0);
this.api.asc_setAutoSaveGap(this.appOptions.isPDFAnnotate || this.appOptions.isPDFEdit ? Common.Utils.InternalSettings.get("pdfe-settings-autosave") : (this.appOptions.isForm ? 1 : 0));
if (this.appOptions.isPDFAnnotate || this.appOptions.isPDFEdit) {
var value = Common.Utils.InternalSettings.get((this._state.fastCoauth) ? "pdfe-settings-showchanges-fast" : "pdfe-settings-showchanges-strict");
switch(value) {
@ -1340,7 +1412,8 @@ define([
default: value = (this._state.fastCoauth) ? Asc.c_oAscCollaborativeMarksShowType.None : Asc.c_oAscCollaborativeMarksShowType.LastChanges;
}
this.api.SetCollaborativeMarksShowType(value);
}
} else
this.api.SetCollaborativeMarksShowType(Asc.c_oAscCollaborativeMarksShowType.None);
this.getApplication().getController('LeftMenu').leftMenu.getMenu('file').applyMode();
},
@ -1597,6 +1670,10 @@ define([
config.msg = this.errorPasswordIsNotCorrect;
break;
case Asc.c_oAscError.ID.TextFormWrongFormat:
config.msg = this.errorTextFormWrongFormat;
break;
case Asc.c_oAscError.ID.ConvertationOpenFormat:
config.maxwidth = 600;
if (errData === 'pdf')
@ -2456,7 +2533,9 @@ define([
txtValidPdfFormat: 'Field value should match format "{0}".',
txtChoose: 'Choose an item',
txtEnterDate: 'Enter a date',
errorEmailClient: 'No email client could be found'
errorEmailClient: 'No email client could be found',
errorTextFormWrongFormat: 'The value entered does not match the format of the field.',
txtArt: 'Your text here',
}
})(), PDFE.Controllers.Main || {}))
});

View File

@ -166,7 +166,6 @@ define([
var me = this;
toolbar.btnPrint.on('click', _.bind(this.onPrint, this));
toolbar.btnPrint.on('disabled', _.bind(this.onBtnChangeState, this, 'print:disabled'));
toolbar.btnSave.on('click', _.bind(this.tryToSave, this));
toolbar.btnUndo.on('click', _.bind(this.onUndo, this));
toolbar.btnUndo.on('disabled', _.bind(this.onBtnChangeState, this, 'undo:disabled'));
toolbar.btnRedo.on('click', _.bind(this.onRedo, this));
@ -174,23 +173,6 @@ define([
toolbar.btnCopy.on('click', _.bind(this.onCopyPaste, this, 'copy'));
toolbar.btnPaste.on('click', _.bind(this.onCopyPaste, this, 'paste'));
toolbar.btnCut.on('click', _.bind(this.onCopyPaste, this, 'cut'));
toolbar.btnSelectAll.on('click', _.bind(this.onSelectAll, this));
toolbar.btnSelectTool.on('toggle', _.bind(this.onSelectTool, this, 'select'));
toolbar.btnHandTool.on('toggle', _.bind(this.onSelectTool, this, 'hand'));
toolbar.btnAddComment.on('click', function (btn, e) {
Common.NotificationCenter.trigger('app:comment:add', 'toolbar');
});
toolbar.btnStrikeout.on('click', _.bind(this.onBtnStrikeout, this));
toolbar.mnuStrikeoutColorPicker.on('select', _.bind(this.onSelectStrikeoutColor, this));
toolbar.mnuStrikeoutTransparent.on('click', _.bind(this.onStrikeoutTransparentClick, this));
toolbar.btnUnderline.on('click', _.bind(this.onBtnUnderline, this));
toolbar.mnuUnderlineColorPicker.on('select', _.bind(this.onSelectUnderlineColor, this));
toolbar.mnuUnderlineTransparent.on('click', _.bind(this.onUnderlineTransparentClick, this));
toolbar.btnHighlight.on('click', _.bind(this.onBtnHighlight, this));
toolbar.mnuHighlightColorPicker.on('select', _.bind(this.onSelectHighlightColor, this));
toolbar.mnuHighlightTransparent.on('click', _.bind(this.onHighlightTransparentClick, this));
toolbar.chShowComments.on('change', _.bind(this.onShowCommentsChange, this));
// toolbar.btnRotate.on('click', _.bind(this.onRotateClick, this));
toolbar.fieldPages.on('changed:after', _.bind(this.onPagesChanged, this));
toolbar.fieldPages.on('inputleave', function(){ Common.NotificationCenter.trigger('edit:complete', me.toolbar);});
toolbar.fieldPages.cmpEl && toolbar.fieldPages.cmpEl.on('focus', 'input.form-control', function() {
@ -203,26 +185,90 @@ define([
this.onBtnChangeState('undo:disabled', toolbar.btnUndo, toolbar.btnUndo.isDisabled());
this.onBtnChangeState('redo:disabled', toolbar.btnRedo, toolbar.btnRedo.isDisabled());
Common.NotificationCenter.on('leftmenu:save', _.bind(this.tryToSave, this));
Common.NotificationCenter.on('draw:start', _.bind(this.onDrawStart, this));
if (this.mode && this.mode.isEdit) {
toolbar.btnSave.on('click', _.bind(this.tryToSave, this));
toolbar.btnSelectAll.on('click', _.bind(this.onSelectAll, this));
toolbar.btnSelectTool.on('toggle', _.bind(this.onSelectTool, this, 'select'));
toolbar.btnHandTool.on('toggle', _.bind(this.onSelectTool, this, 'hand'));
toolbar.btnAddComment.on('click', function (btn, e) {
Common.NotificationCenter.trigger('app:comment:add', 'toolbar');
});
toolbar.btnStrikeout.on('click', _.bind(this.onBtnStrikeout, this));
toolbar.mnuStrikeoutColorPicker.on('select', _.bind(this.onSelectStrikeoutColor, this));
toolbar.mnuStrikeoutTransparent.on('click', _.bind(this.onStrikeoutTransparentClick, this));
toolbar.btnUnderline.on('click', _.bind(this.onBtnUnderline, this));
toolbar.mnuUnderlineColorPicker.on('select', _.bind(this.onSelectUnderlineColor, this));
toolbar.mnuUnderlineTransparent.on('click', _.bind(this.onUnderlineTransparentClick, this));
toolbar.btnHighlight.on('click', _.bind(this.onBtnHighlight, this));
toolbar.mnuHighlightColorPicker.on('select', _.bind(this.onSelectHighlightColor, this));
toolbar.mnuHighlightTransparent.on('click', _.bind(this.onHighlightTransparentClick, this));
toolbar.chShowComments.on('change', _.bind(this.onShowCommentsChange, this));
// toolbar.btnRotate.on('click', _.bind(this.onRotateClick, this));
Common.NotificationCenter.on('leftmenu:save', _.bind(this.tryToSave, this));
Common.NotificationCenter.on('draw:start', _.bind(this.onDrawStart, this));
}
if (this.mode && this.mode.isRestrictedEdit) {
toolbar.btnClear.on('click', _.bind(this.onClearClick, this));
toolbar.btnPrevForm.on('click', _.bind(this.onGoToForm, this, 'prev'));
toolbar.btnNextForm.on('click', _.bind(this.onGoToForm, this, 'next'));
toolbar.btnSubmit && toolbar.btnSubmit.on('click', _.bind(this.onSubmitClick, this));
toolbar.btnSaveForm && toolbar.btnSaveForm.on('click', _.bind(this.onSaveFormClick, this));
if (toolbar.btnSubmit && !this.api.asc_IsAllRequiredFormsFilled()) {
toolbar.lockToolbar(Common.enumLock.requiredNotFilled, true, {array: [toolbar.btnSubmit]});
if (!Common.localStorage.getItem("pdfe-embed-hide-submittip")) {
var requiredTooltip = new Common.UI.SynchronizeTip({
extCls: 'colored',
placement: 'bottom-right',
target: toolbar.btnSubmit.$el,
text: this.textRequired,
showLink: false,
closable: false,
showButton: true,
textButton: this.textGotIt
});
var onclose = function () {
requiredTooltip.hide();
me.api && me.api.asc_MoveToFillingForm(true, true, true);
toolbar.btnSubmit.updateHint(me.textRequired);
};
requiredTooltip.on('buttonclick', function () {
onclose();
Common.localStorage.setItem("pdfe-embed-hide-submittip", 1);
});
requiredTooltip.on('closeclick', onclose);
requiredTooltip.show();
} else {
toolbar.btnSubmit.updateHint(me.textRequired);
}
}
}
},
setApi: function(api) {
this.api = api;
if (this.mode.isEdit) {
this.toolbar.setApi(api);
if (this.mode.isEdit || this.mode.isRestrictedEdit) {
this.api.asc_registerCallback('asc_onCanUndo', _.bind(this.onApiCanRevert, this, 'undo'));
this.api.asc_registerCallback('asc_onCanRedo', _.bind(this.onApiCanRevert, this, 'redo'));
this.api.asc_registerCallback('asc_onFocusObject', _.bind(this.onApiFocusObject, this));
this.api.asc_registerCallback('asc_onZoomChange', _.bind(this.onApiZoomChange, this));
this.api.asc_registerCallback('asc_onCoAuthoringDisconnect', _.bind(this.onApiCoAuthoringDisconnect, this));
Common.NotificationCenter.on('api:disconnect', _.bind(this.onApiCoAuthoringDisconnect, this));
this.api.asc_registerCallback('asc_onCoAuthoringDisconnect', _.bind(this.onApiCoAuthoringDisconnect, this));
this.api.asc_registerCallback('asc_onCanCopyCut', _.bind(this.onApiCanCopyCut, this));
}
if (this.mode.isEdit) {
this.toolbar.setApi(api);
this.api.asc_registerCallback('asc_onFocusObject', _.bind(this.onApiFocusObject, this));
this.api.asc_registerCallback('asc_onContextMenu', _.bind(this.onContextMenu, this));
this.api.asc_registerCallback('asc_onMarkerFormatChanged', _.bind(this.onApiStartHighlight, this));
}
if (this.mode.isRestrictedEdit) {
this.api.asc_registerCallback('asc_onStartAction', _.bind(this.onLongActionBegin, this));
this.api.asc_registerCallback('asc_onEndAction', _.bind(this.onLongActionEnd, this));
this.api.asc_registerCallback('asc_onError', _.bind(this.onError, this));
this.api.asc_registerCallback('sync_onAllRequiredFormsFilled', _.bind(this.onFillRequiredFields, this));
}
this.api.asc_registerCallback('asc_onCountPages', _.bind(this.onCountPages, this));
this.api.asc_registerCallback('asc_onCurrentPage', _.bind(this.onCurrentPage, this));
this.api.asc_registerCallback('asc_onDownloadUrl', _.bind(this.onDownloadUrl, this));
@ -416,7 +462,7 @@ define([
return;
this.api.asc_Save();
toolbar.btnSave.setDisabled(!toolbar.mode.forcesave && !toolbar.mode.saveAlwaysEnabled);
toolbar.btnSave && toolbar.btnSave.setDisabled(!toolbar.mode.forcesave && !toolbar.mode.saveAlwaysEnabled);
Common.component.Analytics.trackEvent('Save');
Common.component.Analytics.trackEvent('ToolBar', 'Save');
}
@ -439,17 +485,13 @@ define([
defFileName: defFileName
});
me._saveCopyDlg.on('saveaserror', function(obj, err){
var config = {
Common.UI.warning({
closable: false,
title: me.notcriticalErrorTitle,
msg: err,
iconCls: 'warn',
buttons: ['ok'],
callback: function(btn){
Common.NotificationCenter.trigger('edit:complete', me);
}
};
Common.UI.alert(config);
});
}).on('close', function(obj){
me._saveCopyDlg = undefined;
});
@ -695,13 +737,77 @@ define([
// this.api && this.api.asc_Rotate();
},
onFillRequiredFields: function(isFilled) {
this.toolbar && this.toolbar.btnSubmit && this.toolbar.lockToolbar(Common.enumLock.requiredNotFilled, !isFilled, {array: [this.toolbar.btnSubmit]});
},
onClearClick: function() {
this.api && this.api.asc_ClearAllSpecialForms();
Common.NotificationCenter.trigger('edit:complete', this.toolbar);
},
onGoToForm: function(type) {
this.api && this.api.asc_MoveToFillingForm(type=='next');
Common.NotificationCenter.trigger('edit:complete', this.toolbar);
},
onSubmitClick: function() {
this.api && this.api.asc_SendForm();
Common.NotificationCenter.trigger('edit:complete', this.toolbar);
},
onSaveFormClick: function() {
if (this.api && this.mode && this.mode.canDownload) {
if (this.mode.isOffline)
this.api.asc_DownloadAs(new Asc.asc_CDownloadOptions(Asc.c_oAscFileType.PDF));
else {
this._state.isFromToolbarDownloadAs = this.mode.canRequestSaveAs || !!this.mode.saveAsUrl;
this.api.asc_DownloadAs(new Asc.asc_CDownloadOptions(Asc.c_oAscFileType.PDF, this._state.isFromToolbarDownloadAs));
}
}
},
onLongActionBegin: function(type, id) {
if (id==Asc.c_oAscAsyncAction['Submit'] && this.toolbar.btnSubmit) {
this._submitFail = false;
this.submitedTooltip && this.submitedTooltip.hide();
this.toolbar.lockToolbar(Common.enumLock.submit, true, {array: [this.toolbar.btnSubmit]})
}
},
onLongActionEnd: function(type, id) {
if (id==Asc.c_oAscAsyncAction['Submit'] && this.toolbar.btnSubmit) {
this.toolbar.lockToolbar(Common.enumLock.submit, false, {array: [this.toolbar.btnSubmit]})
if (!this.submitedTooltip) {
this.submitedTooltip = new Common.UI.SynchronizeTip({
text: this.textSubmited,
extCls: 'no-arrow',
showLink: false,
target: $('.toolbar'),
placement: 'bottom'
});
this.submitedTooltip.on('closeclick', function () {
this.submitedTooltip.hide();
}, this);
}
!this._submitFail && this.submitedTooltip.show();
}
},
onError: function(id, level, errData) {
if (id==Asc.c_oAscError.ID.Submit) {
this._submitFail = true;
this.submitedTooltip && this.submitedTooltip.hide();
}
},
activateControls: function() {
this.toolbar.lockToolbar(Common.enumLock.disableOnStart, false);
this.toolbar.lockToolbar(Common.enumLock.undoLock, this._state.can_undo!==true, {array: [this.toolbar.btnUndo]});
this.toolbar.lockToolbar(Common.enumLock.redoLock, this._state.can_redo!==true, {array: [this.toolbar.btnRedo]});
this.toolbar.lockToolbar(Common.enumLock.copyLock, this._state.can_copy!==true, {array: [this.toolbar.btnCopy]});
this.toolbar.lockToolbar(Common.enumLock.cutLock, this._state.can_cut!==true, {array: [this.toolbar.btnCut]});
this.toolbar.btnSave.setDisabled(!this.mode.isPDFEdit && !this.mode.isPDFAnnotate && !this.mode.saveAlwaysEnabled);
this.toolbar.btnSave && this.toolbar.btnSave.setDisabled(!this.mode.isPDFEdit && !this.mode.isPDFAnnotate && !this.mode.saveAlwaysEnabled);
this._state.activated = true;
},
@ -713,7 +819,7 @@ define([
},
onApiCoAuthoringDisconnect: function(enableDownload) {
this.mode.isEdit && this.toolbar.setMode({isDisconnected:true, enableDownload: !!enableDownload});
(this.mode.isEdit || this.mode.isRestrictedEdit) && this.toolbar.setMode({isDisconnected:true, enableDownload: !!enableDownload});
this.editMode = false;
this.DisableToolbar(true, true);
},
@ -750,8 +856,8 @@ define([
onAppShowed: function (config) {
var me = this;
var compactview = !config.isEdit;
if ( config.isEdit) {
var compactview = !(config.isEdit || config.isRestrictedEdit);
if ( config.isEdit || config.isRestrictedEdit) {
if ( Common.localStorage.itemExists("pdfe-compact-toolbar") ) {
compactview = Common.localStorage.getBool("pdfe-compact-toolbar");
} else
@ -761,11 +867,8 @@ define([
me.toolbar.render(_.extend({isCompactView: compactview}, config));
if ( config.isEdit ) {
if ( config.isEdit || config.isRestrictedEdit) {
me.toolbar.setMode(config);
me.toolbar.btnSave.on('disabled', _.bind(me.onBtnChangeState, me, 'save:disabled'));
if (!(config.customization && config.customization.compactHeader)) {
// hide 'print' and 'save' buttons group and next separator
me.toolbar.btnPrint.$el.parents('.group').hide().next().hide();
@ -779,6 +882,9 @@ define([
me.toolbar.btnCopy.$el.removeClass('split');
me.toolbar.processPanelVisible(null, true, true);
}
}
if ( config.isEdit ) {
me.toolbar.btnSave.on('disabled', _.bind(me.onBtnChangeState, me, 'save:disabled'));
var drawtab = me.getApplication().getController('Common.Controllers.Draw');
drawtab.setApi(me.api).setMode(config);
@ -857,7 +963,10 @@ define([
txtDownload: 'Download',
txtSaveCopy: 'Save copy',
errorAccessDeny: 'You are trying to perform an action you do not have rights for.<br>Please contact your Document Server administrator.',
txtUntitled: 'Untitled'
txtUntitled: 'Untitled',
textRequired: 'Fill all required fields to send form.',
textGotIt: 'Got it',
textSubmited: '<b>Form submitted successfully</b><br>Click to close the tip.'
}, PDFE.Controllers.Toolbar || {}));
});

View File

@ -159,10 +159,14 @@ define([
.on('combo:blur', _.bind(me.onComboBlur, me, false));
});
me.getApplication().getController('LeftMenu').leftMenu.btnNavigation.on('toggle', function (btn, state) {
if (state !== me.view.btnNavigation.pressed)
me.view.turnNavigation(state);
});
if (me.view.btnNavigation) {
me.getApplication().getController('LeftMenu').leftMenu.btnNavigation.on('toggle', function (btn, state) {
if (state !== me.view.btnNavigation.pressed)
me.view.turnNavigation(state);
});
} else {
me.view.$el.find('.separator-navigation').hide().prev('.group').hide();
}
if (Common.UI.Themes.available()) {
function _fill_themes() {

View File

@ -77,7 +77,7 @@ define([
'render:before' : function (toolbar) {
var config = PDFE.getController('Main').appOptions;
toolbar.setExtra('right', me.header.getPanel('right', config));
if (!config.isEdit || config.customization && !!config.customization.compactHeader)
if (!config.isEdit && !config.isRestrictedEdit || config.customization && !!config.customization.compactHeader)
toolbar.setExtra('left', me.header.getPanel('left', config));
var value = Common.localStorage.getBool("pdfe-settings-quick-print-button", true);
@ -174,7 +174,7 @@ define([
me.viewport.$el.attr('applang', me.appConfig.lang.split(/[\-_]/)[0]);
if ( !config.isEdit || ( !Common.localStorage.itemExists("pdfe-compact-toolbar") &&
if ( !(config.isEdit || config.isRestrictedEdit) || ( !Common.localStorage.itemExists("pdfe-compact-toolbar") &&
config.customization && config.customization.compactToolbar )) {
var panel = me.viewport.vlayout.getItem('toolbar');
if ( panel ) panel.height = _intvars.get('toolbar-height-tabs');
@ -188,7 +188,7 @@ define([
me.viewport.vlayout.getItem('toolbar').el.addClass('style-skip-docname');
}
if ( config.isEdit && !(config.customization && config.customization.compactHeader)) {
if ( (config.isEdit || config.isRestrictedEdit) && !(config.customization && config.customization.compactHeader)) {
var $title = me.viewport.vlayout.getItem('title').el;
$title.html(me.header.getPanel('title', config)).show();
$title.find('.extra').html(me.header.getPanel('left', config));

View File

@ -34,14 +34,29 @@
</div>
</div>
<div class="separator long"></div>
<% if ( typeof config !== "undefined" && config.isEdit) { %>
<div class="group" data-layout-name="toolbar-view-navigation">
<span class="btn-slot text x-huge" id="slot-btn-hand-tool"></span>
<span class="btn-slot text x-huge" id="slot-btn-select-tool"></span>
</div>
<div class="separator long"></div>
<% } %>
</section>
<section class="box-panels">
<section class="panel" data-tab="home">
<% if ( typeof config !== "undefined" && config.isRestrictedEdit) { %>
<div class="group" style="">
<span class="btn-slot text x-huge" id="slot-btn-form-prev"></span>
<span class="btn-slot text x-huge" id="slot-btn-form-next"></span>
<span class="btn-slot text x-huge" id="slot-btn-form-clear"></span>
</div>
<div class="separator long"></div>
<div class="group" style="">
<span class="btn-slot text x-huge" id="slot-btn-form-submit"></span>
<span class="btn-slot text x-huge" id="slot-btn-form-save"></span>
</div>
<div class="separator long"></div>
<% } %>
<div class="group small">
<div class="elset">
<span class="btn-slot" id="slot-btn-pages" style="width: 95px"></span>

View File

@ -258,7 +258,10 @@ define([
textCopy: 'Copy',
addCommentText: 'Add Comment',
txtWarnUrl: 'Clicking this link can be harmful to your device and data.<br>Are you sure you want to continue?'
txtWarnUrl: 'Clicking this link can be harmful to your device and data.<br>Are you sure you want to continue?',
mniImageFromFile: 'Image from File',
mniImageFromUrl: 'Image from URL',
mniImageFromStorage: 'Image from Storage',
}, PDFE.Views.DocumentHolder || {}));
});

View File

@ -658,10 +658,10 @@ define([
this.chAutosave.setCaption(this.textAutoRecover);
}
/** coauthoring begin **/
$('tr.collaboration', this.el)[mode.canCoAuthoring || mode.canViewReview ? 'show' : 'hide']();
$('tr.collaboration', this.el)[mode.canCoAuthoring && !mode.isForm || mode.canViewReview ? 'show' : 'hide']();
$('tr.coauth.changes-mode', this.el)[mode.isEdit && !mode.isOffline && mode.canCoAuthoring && mode.canChangeCoAuthoring && canPDFSave ? 'show' : 'hide']();
$('tr.coauth.changes-show', this.el)[mode.isEdit && !mode.isOffline && mode.canCoAuthoring && canPDFSave ? 'show' : 'hide']();
$('tr.comments', this.el)[mode.canCoAuthoring ? 'show' : 'hide']();
$('tr.comments', this.el)[mode.canCoAuthoring && !mode.isForm ? 'show' : 'hide']();
$('tr.ui-rtl', this.el)[mode.uiRtl ? 'show' : 'hide']();
/** coauthoring end **/

View File

@ -395,6 +395,7 @@ define([
this.mode = mode;
this.btnAbout.panel.setMode(mode);
mode.canUseThumbnails && this.btnThumbnails.show();
mode.canUseViwerNavigation && this.btnNavigation.show();
return this;
},

View File

@ -77,7 +77,9 @@ define([
lostConnect: 'disconnect',
disableOnStart: 'on-start',
firstPage: 'first-page',
lastPage: 'last-page'
lastPage: 'last-page',
requiredNotFilled: 'required-not-filled',
submit: 'submit'
};
for (var key in enumLock) {
if (enumLock.hasOwnProperty(key)) {
@ -126,28 +128,13 @@ define([
{caption: me.textTabFile, action: 'file', extcls: 'canedit', layoutname: 'toolbar-file', haspanel:false, dataHintTitle: 'F'},
{caption: me.textTabHome, action: 'home', extcls: 'canedit', dataHintTitle: 'H'},
{caption: me.textTabComment, action: 'comment', extcls: 'canedit', dataHintTitle: 'C'}
]
],
config: config
}
);
this.btnSaveCls = 'btn-save';
this.btnSaveTip = this.tipSave;// + Common.Utils.String.platformKey('Ctrl+S');
this.btnPrint = new Common.UI.Button({
id: 'id-toolbar-btn-print',
cls: 'btn-toolbar',
iconCls: 'toolbar__icon btn-print no-mask',
lock: [_set.cantPrint, _set.disableOnStart],
signals: ['disabled'],
split: config.canQuickPrint,
menu: config.canQuickPrint,
dataHint: '1',
dataHintDirection: 'bottom',
dataHintTitle: 'P',
printType: 'print'
});
this.toolbarControls.push(this.btnPrint);
this.btnSave = new Common.UI.Button({
id: 'id-toolbar-btn-save',
cls: 'btn-toolbar',
@ -161,73 +148,6 @@ define([
this.toolbarControls.push(this.btnSave);
this.btnCollabChanges = this.btnSave;
this.btnUndo = new Common.UI.Button({
id: 'id-toolbar-btn-undo',
cls: 'btn-toolbar',
iconCls: 'toolbar__icon btn-undo',
lock: [_set.undoLock, _set.previewReviewMode, _set.lostConnect, _set.disableOnStart, _set.docLockView],
signals: ['disabled'],
dataHint: '1',
dataHintDirection: 'bottom',
dataHintTitle: 'Z'
});
this.toolbarControls.push(this.btnUndo);
this.btnRedo = new Common.UI.Button({
id: 'id-toolbar-btn-redo',
cls: 'btn-toolbar',
iconCls: 'toolbar__icon btn-redo',
lock: [_set.redoLock, _set.previewReviewMode, _set.lostConnect, _set.disableOnStart, _set.docLockView],
signals: ['disabled'],
dataHint: '1',
dataHintDirection: 'bottom',
dataHintTitle: 'Y'
});
this.toolbarControls.push(this.btnRedo);
this.btnCopy = new Common.UI.Button({
id: 'id-toolbar-btn-copy',
cls: 'btn-toolbar',
iconCls: 'toolbar__icon btn-copy',
lock: [_set.copyLock, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.disableOnStart],
dataHint: '1',
dataHintDirection: 'top',
dataHintTitle: 'C'
});
this.toolbarControls.push(this.btnCopy);
this.btnPaste = new Common.UI.Button({
id: 'id-toolbar-btn-paste',
cls: 'btn-toolbar',
iconCls: 'toolbar__icon btn-paste',
lock: [_set.paragraphLock, _set.headerLock, _set.richEditLock, _set.plainEditLock, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.disableOnStart, _set.docLockView, _set.docLockComments],
dataHint: '1',
dataHintDirection: 'top',
dataHintTitle: 'V'
});
this.paragraphControls.push(this.btnPaste);
this.btnCut = new Common.UI.Button({
id: 'id-toolbar-btn-cut',
cls: 'btn-toolbar',
iconCls: 'toolbar__icon btn-cut',
lock: [_set.cutLock, _set.paragraphLock, _set.headerLock, _set.richEditLock, _set.plainEditLock, _set.imageLock, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.disableOnStart, _set.docLockView, _set.docLockComments],
dataHint: '1',
dataHintDirection: 'top',
dataHintTitle: 'X'
});
this.paragraphControls.push(this.btnCut);
this.btnSelectAll = new Common.UI.Button({
id: 'id-toolbar-btn-select-all',
cls: 'btn-toolbar',
iconCls: 'toolbar__icon btn-select-all',
lock: [_set.viewFormMode, _set.disableOnStart],
dataHint: '1',
dataHintDirection: 'bottom'
});
this.toolbarControls.push(this.btnSelectAll);
this.btnSelectTool = new Common.UI.Button({
id: 'tlbtn-selecttool',
cls: 'btn-toolbar x-huge icon-top',
@ -346,6 +266,163 @@ define([
});
this.paragraphControls.push(this.btnHighlight);
} else if ( config.isRestrictedEdit ) {
Common.UI.Mixtbar.prototype.initialize.call(this, {
template: _.template(template),
tabs: [
{caption: me.textTabFile, action: 'file', extcls: 'canedit', layoutname: 'toolbar-file', haspanel:false, dataHintTitle: 'F'},
{caption: me.textTabHome, action: 'home', extcls: 'canedit', dataHintTitle: 'H'}
],
config: config
}
);
this.btnClear = new Common.UI.Button({
id: 'id-toolbar-btn-clear',
cls: 'btn-toolbar x-huge icon-top',
iconCls: 'toolbar__icon btn-clear-style',
lock: [_set.disableOnStart],
caption: this.textClear,
dataHint: '1',
dataHintDirection: 'bottom',
dataHintOffset: 'small'
});
this.toolbarControls.push(this.btnClear);
this.btnPrevForm = new Common.UI.Button({
id: 'id-toolbar-btn-prev',
cls: 'btn-toolbar x-huge icon-top',
iconCls: 'toolbar__icon btn-previous-field',
lock: [_set.disableOnStart],
caption: this.capBtnPrev,
dataHint: '1',
dataHintDirection: 'bottom',
dataHintOffset: 'small'
});
this.toolbarControls.push(this.btnPrevForm);
this.btnNextForm = new Common.UI.Button({
id: 'id-toolbar-btn-next',
cls: 'btn-toolbar x-huge icon-top',
iconCls: 'toolbar__icon btn-next-field',
lock: [_set.disableOnStart],
caption: this.capBtnNext,
dataHint: '1',
dataHintDirection: 'bottom',
dataHintOffset: 'small'
});
this.toolbarControls.push(this.btnNextForm);
if (config.canSubmitForms) {
this.btnSubmit = new Common.UI.Button({
id: 'id-toolbar-btn-submit',
cls: 'btn-toolbar x-huge icon-top',
iconCls: 'toolbar__icon btn-submit-form',
lock: [_set.lostConnect, _set.disableOnStart, _set.requiredNotFilled, _set.submit],
caption: this.capBtnSubmit,
dataHint: '1',
dataHintDirection: 'bottom',
dataHintOffset: 'small'
});
this.toolbarControls.push(this.btnSubmit);
} else if (config.canDownload) {
this.btnSaveForm = new Common.UI.Button({
id: 'id-toolbar-btn-download-form',
cls: 'btn-toolbar x-huge icon-top',
lock: [_set.lostConnect, _set.disableOnStart],
iconCls: 'toolbar__icon btn-save-form',
caption: config.canRequestSaveAs || !!config.saveAsUrl ? this.capBtnSaveForm : (config.isOffline ? this.capBtnSaveFormDesktop : this.capBtnDownloadForm),
dataHint: '1',
dataHintDirection: 'bottom',
dataHintOffset: 'small'
});
this.toolbarControls.push(this.btnSaveForm);
}
}
if ( config.isEdit || config.isRestrictedEdit) {
this.btnPrint = new Common.UI.Button({
id: 'id-toolbar-btn-print',
cls: 'btn-toolbar',
iconCls: 'toolbar__icon btn-print no-mask',
lock: [_set.cantPrint, _set.disableOnStart],
signals: ['disabled'],
split: config.canQuickPrint,
menu: config.canQuickPrint,
dataHint: '1',
dataHintDirection: 'bottom',
dataHintTitle: 'P',
printType: 'print'
});
this.toolbarControls.push(this.btnPrint);
this.btnUndo = new Common.UI.Button({
id: 'id-toolbar-btn-undo',
cls: 'btn-toolbar',
iconCls: 'toolbar__icon btn-undo',
lock: [_set.undoLock, _set.previewReviewMode, _set.lostConnect, _set.disableOnStart, _set.docLockView],
signals: ['disabled'],
dataHint: '1',
dataHintDirection: 'bottom',
dataHintTitle: 'Z'
});
this.toolbarControls.push(this.btnUndo);
this.btnRedo = new Common.UI.Button({
id: 'id-toolbar-btn-redo',
cls: 'btn-toolbar',
iconCls: 'toolbar__icon btn-redo',
lock: [_set.redoLock, _set.previewReviewMode, _set.lostConnect, _set.disableOnStart, _set.docLockView],
signals: ['disabled'],
dataHint: '1',
dataHintDirection: 'bottom',
dataHintTitle: 'Y'
});
this.toolbarControls.push(this.btnRedo);
this.btnCopy = new Common.UI.Button({
id: 'id-toolbar-btn-copy',
cls: 'btn-toolbar',
iconCls: 'toolbar__icon btn-copy',
lock: [_set.copyLock, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.disableOnStart],
dataHint: '1',
dataHintDirection: 'top',
dataHintTitle: 'C'
});
this.toolbarControls.push(this.btnCopy);
this.btnPaste = new Common.UI.Button({
id: 'id-toolbar-btn-paste',
cls: 'btn-toolbar',
iconCls: 'toolbar__icon btn-paste',
lock: [_set.paragraphLock, _set.headerLock, _set.richEditLock, _set.plainEditLock, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.disableOnStart, _set.docLockView, _set.docLockComments],
dataHint: '1',
dataHintDirection: 'top',
dataHintTitle: 'V'
});
this.paragraphControls.push(this.btnPaste);
this.btnCut = new Common.UI.Button({
id: 'id-toolbar-btn-cut',
cls: 'btn-toolbar',
iconCls: 'toolbar__icon btn-cut',
lock: [_set.cutLock, _set.paragraphLock, _set.headerLock, _set.richEditLock, _set.plainEditLock, _set.imageLock, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.disableOnStart, _set.docLockView, _set.docLockComments],
dataHint: '1',
dataHintDirection: 'top',
dataHintTitle: 'X'
});
this.paragraphControls.push(this.btnCut);
this.btnSelectAll = new Common.UI.Button({
id: 'id-toolbar-btn-select-all',
cls: 'btn-toolbar',
iconCls: 'toolbar__icon btn-select-all',
lock: [_set.viewFormMode, _set.disableOnStart],
dataHint: '1',
dataHintDirection: 'bottom'
});
this.toolbarControls.push(this.btnSelectAll);
this.fieldPages = new Common.UI.InputFieldFixed({
id: 'id-toolbar-txt-pages',
style : 'width: 100%;',
@ -438,7 +515,7 @@ define([
this.fireEvent('render:before', [this]);
me.isCompactView = mode.isCompactView;
if ( mode.isEdit ) {
if ( mode.isEdit || mode.isRestrictedEdit) {
me.$el.html(me.rendererComponents(me.$layout));
} else {
me.$layout.find('.canedit').hide();
@ -460,9 +537,8 @@ define([
this.showSynchTip = !Common.localStorage.getBool("de-hide-synch");
this.needShowSynchTip = false;
/** coauthoring end **/
me.setTab('home');
}
(mode.isEdit || mode.isRestrictedEdit) && me.setTab('home');
if ( me.isCompactView )
me.setFolded(true);
@ -516,6 +592,11 @@ define([
_injectComponent('#slot-btn-prev-page', this.btnPrevPage);
_injectComponent('#slot-btn-next-page', this.btnNextPage);
_injectComponent('#slot-chk-showcomment', this.chShowComments);
_injectComponent('#slot-btn-form-clear', this.btnClear);
_injectComponent('#slot-btn-form-prev', this.btnPrevForm);
_injectComponent('#slot-btn-form-next', this.btnNextForm);
_injectComponent('#slot-btn-form-submit', this.btnSubmit);
_injectComponent('#slot-btn-form-save', this.btnSaveForm);
this.btnPrint.menu && this.btnPrint.$el.addClass('split');
return $host;
@ -571,7 +652,7 @@ define([
(new Promise( function(resolve, reject) {
resolve();
})).then(function () {
if ( !config.isEdit ) return;
if ( !config.isEdit && !config.isRestrictedEdit) return;
if(me.btnPrint.menu){
me.btnPrint.setMenu(
@ -596,17 +677,17 @@ define([
]
}));
}
if (me.btnStrikeout.menu) {
if (me.btnStrikeout && me.btnStrikeout.menu) {
var arr = me.createPen(me.btnStrikeout, 'strikeout');
me.mnuStrikeoutColorPicker = arr[0];
me.mnuStrikeoutTransparent = arr[1];
}
if (me.btnUnderline.menu) {
if (me.btnUnderline && me.btnUnderline.menu) {
var arr = me.createPen(me.btnUnderline, 'underline');
me.mnuUnderlineColorPicker = arr[0];
me.mnuUnderlineTransparent = arr[1];
}
if (me.btnHighlight.menu) {
if (me.btnHighlight && me.btnHighlight.menu) {
var arr = me.createPen(me.btnHighlight, 'highlight');
me.mnuHighlightColorPicker = arr[0];
me.mnuHighlightTransparent = arr[1];
@ -620,21 +701,30 @@ define([
}
// set hints
if (this.mode.isEdit) {
this.btnSave.updateHint(this.btnSaveTip);
this.btnSelectTool.updateHint(this.tipSelectTool);
this.btnHandTool.updateHint(this.tipHandTool);
this.btnAddComment.updateHint(this.tipAddComment);
this.btnStrikeout.updateHint(this.textStrikeout);
this.btnUnderline.updateHint(this.textUnderline);
this.btnHighlight.updateHint(this.textHighlight);
// this.btnRotate.updateHint(this.tipRotate);
} else if (this.mode.isRestrictedEdit) {
this.btnClear.updateHint(this.textClearFields);
this.btnPrevForm.updateHint(this.tipPrevForm);
this.btnNextForm.updateHint(this.tipNextForm);
this.btnSubmit && this.btnSubmit.updateHint(this.tipSubmit);
this.btnSaveForm && this.btnSaveForm.updateHint(this.mode.canRequestSaveAs || !!this.mode.saveAsUrl ? this.tipSaveForm : this.tipDownloadForm);
}
this.btnPrint.updateHint(this.tipPrint + Common.Utils.String.platformKey('Ctrl+P'));
this.btnSave.updateHint(this.btnSaveTip);
this.btnUndo.updateHint(this.tipUndo + Common.Utils.String.platformKey('Ctrl+Z'));
this.btnRedo.updateHint(this.tipRedo + Common.Utils.String.platformKey('Ctrl+Y'));
this.btnCopy.updateHint(this.tipCopy + Common.Utils.String.platformKey('Ctrl+C'));
this.btnPaste.updateHint(this.tipPaste + Common.Utils.String.platformKey('Ctrl+V'));
this.btnCut.updateHint(this.tipCut + Common.Utils.String.platformKey('Ctrl+X'));
this.btnSelectAll.updateHint(this.tipSelectAll + Common.Utils.String.platformKey('Ctrl+A'));
this.btnSelectTool.updateHint(this.tipSelectTool);
this.btnHandTool.updateHint(this.tipHandTool);
this.btnAddComment.updateHint(this.tipAddComment);
this.btnStrikeout.updateHint(this.textStrikeout);
this.btnUnderline.updateHint(this.textUnderline);
this.btnHighlight.updateHint(this.textHighlight);
// this.btnRotate.updateHint(this.tipRotate);
this.btnFirstPage.updateHint(this.tipFirstPage);
this.btnLastPage.updateHint(this.tipLastPage);
this.btnPrevPage.updateHint(this.tipPrevPage);
@ -786,7 +876,21 @@ define([
tipLastPage: 'Go to the last page',
tipPrevPage: 'Go to the previous page',
tipNextPage: 'Go to the next page',
capBtnShowComments: 'Show Comments'
capBtnShowComments: 'Show Comments',
textClearFields: 'Clear All Fields',
textClear: 'Clear Fields',
capBtnPrev: 'Previous Field',
capBtnNext: 'Next Field',
capBtnSubmit: 'Submit',
tipPrevForm: 'Go to the previous field',
tipNextForm: 'Go to the next field',
tipSubmit: 'Submit form',
textSubmited: 'Form submitted successfully',
capBtnSaveForm: 'Save as pdf',
capBtnSaveFormDesktop: 'Save as...',
tipSaveForm: 'Save a file as a fillable PDF',
capBtnDownloadForm: 'Download as pdf',
tipDownloadForm: 'Download a file as a fillable PDF',
}
})(), PDFE.Views.Toolbar || {}));
});

View File

@ -50,7 +50,7 @@ define([
'<div class="group" data-layout-name="toolbar-view-navigation">' +
'<span class="btn-slot text x-huge" id="slot-btn-navigation"></span>' +
'</div>' +
'<div class="separator long" data-layout-name="toolbar-view-navigation"></div>' +
'<div class="separator long separator-navigation" data-layout-name="toolbar-view-navigation"></div>' +
'<div class="group small">' +
'<div class="elset" style="display: flex;">' +
'<span class="btn-slot slot-field-zoom" style="flex-grow: 1;"></span>' +
@ -95,7 +95,7 @@ define([
setEvents: function () {
var me = this;
me.btnNavigation.on('click', function (btn, e) {
me.btnNavigation && me.btnNavigation.on('click', function (btn, e) {
me.fireEvent('viewtab:navigation', [btn.pressed]);
});
me.btnsFitToPage.forEach(function (btn) {
@ -137,17 +137,19 @@ define([
var me = this;
var _set = Common.enumLock;
this.btnNavigation = new Common.UI.Button({
cls: 'btn-toolbar x-huge icon-top',
iconCls: 'toolbar__icon btn-big-menu-navigation',
lock: [_set.lostConnect, _set.disableOnStart],
caption: this.textOutline,
enableToggle: true,
dataHint: '1',
dataHintDirection: 'bottom',
dataHintOffset: 'small'
});
this.lockedControls.push(this.btnNavigation);
if (!this.appConfig.isForm) {
this.btnNavigation = new Common.UI.Button({
cls: 'btn-toolbar x-huge icon-top',
iconCls: 'toolbar__icon btn-big-menu-navigation',
lock: [_set.lostConnect, _set.disableOnStart],
caption: this.textOutline,
enableToggle: true,
dataHint: '1',
dataHintDirection: 'bottom',
dataHintOffset: 'small'
});
this.lockedControls.push(this.btnNavigation);
}
this.cmbsZoom = [this.getZoomCombo()];
@ -268,7 +270,7 @@ define([
this.$el = $(_.template(template)( {} ));
var $host = this.$el;
this.btnNavigation.render($host.find('#slot-btn-navigation'));
this.btnNavigation && this.btnNavigation.render($host.find('#slot-btn-navigation'));
this.cmbsZoom[0].render($host.find('.slot-field-zoom'));
$host.find('.slot-lbl-zoom').text(this.textZoom);
this.btnsFitToPage[0].render($host.find('.slot-btn-ftp'));
@ -298,7 +300,7 @@ define([
onAppReady: function () {
var me = this;
this.btnNavigation.updateHint(this.tipHeadings);
this.btnNavigation && this.btnNavigation.updateHint(this.tipHeadings);
this.btnInterfaceTheme.updateHint(this.tipInterfaceTheme);
this.btnDarkDocument.updateHint(this.tipDarkDocument);
this.btnsFitToPage.forEach(function (btn) {

View File

@ -314,7 +314,6 @@
document.querySelectorAll('.compact').forEach(function(item){
item.style.display = 'inline-block';
});
document.querySelector('.fat').style.left = '655px';
}
visible && (document.querySelector('.brendpanel').style.display = 'block');

View File

@ -278,7 +278,6 @@
document.querySelectorAll('.compact').forEach(function(item){
item.style.display = 'inline-block';
});
document.querySelector('.fat').style.left = '655px';
}
visible && (document.querySelector('.brendpanel').style.display = 'block');