diff --git a/apps/api/documents/api.js b/apps/api/documents/api.js
index e689381f5c..4764619edc 100644
--- a/apps/api/documents/api.js
+++ b/apps/api/documents/api.js
@@ -477,7 +477,7 @@
}
}
- var type = /^(?:(pdf|djvu|xps|oxps))$/.exec(_config.document.fileType);
+ var type = /^(?:(djvu|xps|oxps))$/.exec(_config.document.fileType);
if (type && typeof type[1] === 'string') {
_config.editorConfig.canUseHistory = false;
}
@@ -960,46 +960,53 @@
'word': 'documenteditor',
'cell': 'spreadsheeteditor',
'slide': 'presentationeditor',
- 'pdf': 'pdfeditor'
+ 'pdf': 'pdfeditor',
+ 'common': 'common'
},
- appType = 'word';
-
- if (typeof config.documentType === 'string') {
- appType = config.documentType.toLowerCase();
- if (config.type !== 'mobile' && config.type !== 'embedded' && !!config.document && typeof config.document.fileType === 'string') {
- var type = /^(?:(pdf|djvu|xps|oxps))$/.exec(config.document.fileType);
- if (type && typeof type[1] === 'string')
- appType = 'pdf';
- }
- } else
- if (!!config.document && typeof config.document.fileType === 'string') {
- var type = /^(?:(xls|xlsx|ods|csv|xlst|xlsy|gsheet|xlsm|xlt|xltm|xltx|fods|ots|xlsb)|(pps|ppsx|ppt|pptx|odp|pptt|ppty|gslides|pot|potm|potx|ppsm|pptm|fodp|otp)|(pdf|djvu|xps|oxps))$/
- .exec(config.document.fileType);
- if (type) {
- if (typeof type[1] === 'string') appType = 'cell'; else
- if (typeof type[2] === 'string') appType = 'slide'; else
- if (typeof type[3] === 'string' && config.type !== 'mobile' && config.type !== 'embedded') appType = 'pdf';
- }
+ appType = 'word',
+ type,
+ fillForms = false,
+ isForm = false;
+ if (config.document) {
+ if (typeof config.document.fileType === 'string')
+ type = /^(?:(pdf)|(djvu|xps|oxps)|(xls|xlsx|ods|csv|xlst|xlsy|gsheet|xlsm|xlt|xltm|xltx|fods|ots|xlsb)|(pps|ppsx|ppt|pptx|odp|pptt|ppty|gslides|pot|potm|potx|ppsm|pptm|fodp|otp))$/
+ .exec(config.document.fileType);
+
+ if (config.document.permissions)
+ fillForms = (config.document.permissions.fillForms===undefined ? config.document.permissions.edit !== false : config.document.permissions.fillForms) &&
+ config.editorConfig && (config.editorConfig.mode !== 'view');
}
- if (appType === 'pdf' && (config.type === 'mobile' || config.type === 'embedded')) {
- appType = 'word';
+ if (type && typeof type[2] === 'string') { // djvu|xps|oxps
+ appType = config.type === 'mobile' || config.type === 'embedded' ? 'word' : 'pdf';
+ } else if (type && typeof type[1] === 'string') { // pdf - need check
+ isForm = config.document ? config.document.isForm : undefined;
+ if (config.type === 'embedded')
+ appType = fillForms && isForm===undefined ? 'common' : 'word';
+ else if (config.type !== 'mobile')
+ appType = isForm===undefined ? 'common' : isForm ? 'word' : 'pdf';
+ } else {
+ if (typeof config.documentType === 'string')
+ appType = config.documentType.toLowerCase();
+ else {
+ if (type && typeof type[3] === 'string') appType = 'cell'; else
+ if (type && typeof type[4] === 'string') appType = 'slide';
+ }
}
+ path += appMap[appType];
- path += appMap[appType] + "/";
- const path_type = config.type === "mobile"
- ? "mobile" : (config.type === "embedded")
- ? "embed" : "main";
+ const path_type = config.type === "mobile" ? "mobile" :
+ config.type === "embedded" ? (fillForms && isForm ? "forms" : "embed") : "main";
+ if (appType !== 'common')
+ path += "/" + path_type;
- path += path_type;
var index = "/index.html";
- if (config.editorConfig && path_type!=="forms") {
+ if (config.editorConfig && path_type!=="forms" && appType!=='common') {
var customization = config.editorConfig.customization;
if ( typeof(customization) == 'object' && ( customization.toolbarNoTabs ||
- (config.editorConfig.targetApp!=='desktop') && (customization.loaderName || customization.loaderLogo))) {
+ (config.editorConfig.targetApp!=='desktop') && (customization.loaderName || customization.loaderLogo))) {
index = "/index_loader.html";
} else if (config.editorConfig.mode === 'editdiagram' || config.editorConfig.mode === 'editmerge' || config.editorConfig.mode === 'editole')
index = "/index_internal.html";
-
}
path += index;
return path;
@@ -1036,6 +1043,9 @@
if (config.editorConfig && (config.editorConfig.mode == 'editdiagram' || config.editorConfig.mode == 'editmerge' || config.editorConfig.mode == 'editole'))
params += "&internal=true";
+ if (config.type)
+ params += "&type=" + config.type;
+
if (config.frameEditorId)
params += "&frameEditorId=" + config.frameEditorId;
@@ -1064,6 +1074,12 @@
if (config.document && config.document.fileType)
params += "&fileType=" + config.document.fileType;
+ if (config.editorConfig) {
+ var customization = config.editorConfig.customization;
+ if ( customization && typeof(customization) == 'object' && ( customization.toolbarNoTabs || (config.editorConfig.targetApp!=='desktop') && (customization.loaderName || customization.loaderLogo))) {
+ params += "&indexPostfix=_loader";
+ }
+ }
return params;
}
diff --git a/apps/common/index.html b/apps/common/index.html
new file mode 100644
index 0000000000..0a15bcbaab
--- /dev/null
+++ b/apps/common/index.html
@@ -0,0 +1,62 @@
+
+
+
+ ONLYOFFICE Documents
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/common/index.html.deploy b/apps/common/index.html.deploy
new file mode 100644
index 0000000000..444d04e20e
--- /dev/null
+++ b/apps/common/index.html.deploy
@@ -0,0 +1,62 @@
+
+
+
+ ONLYOFFICE Documents
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/common/main/lib/view/Header.js b/apps/common/main/lib/view/Header.js
index 2152728c54..13b5840449 100644
--- a/apps/common/main/lib/view/Header.js
+++ b/apps/common/main/lib/view/Header.js
@@ -203,13 +203,13 @@ define([
} else {
$panelUsers['hide']();
}
- updateDocNamePosition(appConfig);
+ updateDocNamePosition();
}
function onLostEditRights() {
_readonlyRights = true;
this.btnShare && this.btnShare.setVisible(false);
- updateDocNamePosition(appConfig);
+ updateDocNamePosition();
}
function onUsersClick(e) {
@@ -223,14 +223,15 @@ define([
}
function updateDocNamePosition(config) {
+ config = config || appConfig;
if ( $labelDocName && config) {
var $parent = $labelDocName.parent();
- if (!(config.isEdit || isPDFEditor && config.isRestrictedEdit)) {
+ if (!config.twoLevelHeader) {
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);
$parent.css('padding-right', _left_width < _right_width ? 2 : Math.max(2, _left_width - _right_width));
- } else if (!(config.customization && config.customization.compactHeader)) {
+ } else if (!config.compactHeader) {
var _left_width = $parent.position().left,
_right_width = $parent.next().outerWidth(),
outerWidth = $labelDocName.outerWidth(),
@@ -245,7 +246,7 @@ define([
}
}
- if (!(config.customization && config.customization.toolbarHideFileName) && (!(config.isEdit || isPDFEditor && config.isRestrictedEdit) || config.customization && config.customization.compactHeader)) {
+ if (!(config.customization && config.customization.toolbarHideFileName) && (!config.twoLevelHeader || config.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');
@@ -285,9 +286,8 @@ define([
}
function onResize() {
- if (appConfig && (appConfig.isEdit || isPDFEditor && appConfig.isRestrictedEdit) && !(appConfig.customization && appConfig.customization.compactHeader)) {
- updateDocNamePosition(appConfig);
- }
+ if (appConfig && appConfig.twoLevelHeader && !appConfig.compactHeader)
+ updateDocNamePosition();
}
function onAppShowed(config) {
@@ -336,7 +336,7 @@ define([
});
me.btnShare.updateHint(me.tipAccessRights);
me.btnShare.setVisible(!_readonlyRights && appConfig && (appConfig.sharingSettingsUrl && appConfig.sharingSettingsUrl.length || appConfig.canRequestSharingSettings));
- updateDocNamePosition(appConfig);
+ updateDocNamePosition();
}
if ( me.logo )
@@ -367,7 +367,7 @@ define([
});
$btnUsers.on('click', onUsersClick.bind(me));
$panelUsers[(appConfig && (editingUsers > 1 && (appConfig.isEdit || appConfig.isRestrictedEdit) || editingUsers > 0 && appConfig.canLiveView)) ? 'show' : 'hide']();
- updateDocNamePosition(appConfig);
+ updateDocNamePosition();
}
if (appConfig.user.guest && appConfig.canRenameAnonymous) {
@@ -413,7 +413,7 @@ define([
});
}
- if ( !(mode.isEdit || isPDFEditor && mode.isRestrictedEdit) ) {
+ if ( !appConfig.twoLevelHeader ) {
if ( me.btnDownload ) {
me.btnDownload.updateHint(me.tipDownload);
me.btnDownload.on('click', function (e) {
@@ -505,7 +505,7 @@ define([
Common.NotificationCenter.trigger('doc:mode-apply', item.value, true);
});
}
- if ((appConfig.isEdit || isPDFEditor && appConfig.isRestrictedEdit) && !(appConfig.customization && appConfig.customization.compactHeader))
+ if (appConfig.twoLevelHeader && !appConfig.compactHeader)
Common.NotificationCenter.on('window:resize', onResize);
}
@@ -629,7 +629,7 @@ define([
Common.NotificationCenter.on({
'app:ready': function(mode) {Common.Utils.asyncCall(onAppReady, me, mode);},
'app:face': function(mode) {Common.Utils.asyncCall(onAppShowed, me, mode);},
- 'tab:visible': function() {Common.Utils.asyncCall(updateDocNamePosition, me, appConfig);},
+ 'tab:visible': function() {Common.Utils.asyncCall(updateDocNamePosition, me);},
'collaboration:sharingdeny': function(mode) {Common.Utils.asyncCall(onLostEditRights, me, mode);}
});
Common.NotificationCenter.on('uitheme:changed', this.changeLogo.bind(this));
@@ -706,7 +706,7 @@ define([
$html.find('#slot-btn-favorite').hide();
}
- if ( !(config.isEdit || isPDFEditor && config.isRestrictedEdit)) {
+ if ( !config.twoLevelHeader) {
if ( (config.canDownload || config.canDownloadOrigin) && !config.isOffline )
this.btnDownload = createTitleButton('toolbar__icon icon--inverse btn-download', $html.findById('#slot-hbtn-download'), undefined, 'bottom', 'big');
@@ -721,7 +721,7 @@ define([
}
me.btnSearch.render($html.find('#slot-btn-search'));
- if (!(config.isEdit || isPDFEditor && config.isRestrictedEdit) || config.customization && !!config.customization.compactHeader) {
+ if (!config.twoLevelHeader || config.compactHeader) {
if (config.user.guest && config.canRenameAnonymous) {
me.btnUserName = new Common.UI.Button({
el: $html.findById('.slot-btn-user-name'),
@@ -823,13 +823,13 @@ define([
if ( config.canCloseEditor )
me.btnClose = createTitleButton('toolbar__icon icon--inverse btn-close', $html.findById('#slot-btn-close'), false, 'left', '10, 10');
- if ( config.canPrint && (config.isEdit || isPDFEditor && config.isRestrictedEdit) ) {
+ if ( config.canPrint && config.twoLevelHeader ) {
me.btnPrint = createTitleButton('toolbar__icon icon--inverse btn-print', $html.findById('#slot-btn-dt-print'), true, undefined, undefined, 'P');
}
- if ( config.canQuickPrint && (config.isEdit || isPDFEditor && config.isRestrictedEdit) )
+ if ( config.canQuickPrint && config.twoLevelHeader )
me.btnPrintQuick = createTitleButton('toolbar__icon icon--inverse btn-quick-print', $html.findById('#slot-btn-dt-print-quick'), true, undefined, undefined, 'Q');
- if (!isPDFEditor || !config.isForm)
+ if (!isPDFEditor && !(config.isPDFForm && config.canFillForms && config.isRestrictedEdit) || 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',
[Common.enumLock.undoLock, Common.enumLock.fileMenuOpened]);
@@ -901,7 +901,7 @@ define([
this.btnGoBack[value ? 'show' : 'hide']();
if (value)
this.btnGoBack.updateHint((text && typeof text == 'string') ? text : this.textBack);
- updateDocNamePosition(appConfig);
+ updateDocNamePosition();
return this;
},
@@ -914,7 +914,7 @@ define([
this.btnFavorite[value!==undefined && value!==null ? 'show' : 'hide']();
this.btnFavorite.changeIcon(!!value ? {next: 'btn-in-favorite', curr: 'btn-favorite'} : {next: 'btn-favorite', curr: 'btn-in-favorite'});
this.btnFavorite.updateHint(!value ? this.textAddFavorite : this.textRemoveFavorite);
- updateDocNamePosition(appConfig);
+ updateDocNamePosition();
return this;
},
diff --git a/apps/common/main/resources/less/asc-mixins.less b/apps/common/main/resources/less/asc-mixins.less
index cedc33457b..07d7a9a666 100644
--- a/apps/common/main/resources/less/asc-mixins.less
+++ b/apps/common/main/resources/less/asc-mixins.less
@@ -844,3 +844,23 @@
// }
// }
//}
+
+.header-background-color {
+ background-color: @header-background-color-ie;
+ background-color: @header-background-color;
+
+ .pdf-form & {
+ background-color: @header-background-color-pdf-ie;
+ background-color: @header-background-color-pdf;
+ }
+}
+
+.header-border-color {
+ border-color: @header-background-color-ie !important;
+ border-color: @header-background-color !important;
+
+ .pdf-form & {
+ border-color: @header-background-color-pdf-ie !important;
+ border-color: @header-background-color-pdf !important;
+ }
+}
diff --git a/apps/common/main/resources/less/calendar.less b/apps/common/main/resources/less/calendar.less
index 97fe8653b2..57e3b47873 100644
--- a/apps/common/main/resources/less/calendar.less
+++ b/apps/common/main/resources/less/calendar.less
@@ -1,6 +1,3 @@
-@calendar-bg-color: @header-background-color-ie;
-@calendar-bg-color: @header-background-color;
-
.calendar-window {
border-radius: 0;
box-shadow: none;
diff --git a/apps/common/main/resources/less/header.less b/apps/common/main/resources/less/header.less
index fd5e028c57..078a0f7035 100644
--- a/apps/common/main/resources/less/header.less
+++ b/apps/common/main/resources/less/header.less
@@ -403,6 +403,10 @@
background-color: @icon-toolbar-header;
color: @toolbar-header-text-on-background-ie;
color: @toolbar-header-text-on-background;
+ .pdf-form & {
+ color: @toolbar-header-text-on-background-pdf-ie;
+ color: @toolbar-header-text-on-background-pdf;
+ }
vertical-align: middle;
background-size: cover;
background-position: center;
@@ -517,8 +521,7 @@
}
#box-document-title {
- background-color: @header-background-color-ie;
- background-color: @header-background-color;
+ .header-background-color();
display: flex;
height: 100%;
color: @text-toolbar-header-ie;
diff --git a/apps/common/main/resources/less/synchronize-tip.less b/apps/common/main/resources/less/synchronize-tip.less
index 2300df36c6..5154cda520 100644
--- a/apps/common/main/resources/less/synchronize-tip.less
+++ b/apps/common/main/resources/less/synchronize-tip.less
@@ -29,13 +29,10 @@
&.theme-color {
.asc-synchronizetip {
- background-color: @header-background-color-ie;
- background-color: @header-background-color;
+ .header-background-color();
color: @text-toolbar-header-ie;
color: @text-toolbar-header;
- border-color: @header-background-color-ie;
- border-color: @header-background-color;
-
+ .header-border-color();
.close {
&:before, &:after {
background-color: @text-toolbar-header-ie;
@@ -45,14 +42,11 @@
}
.tip-arrow:before {
- background-color: @header-background-color-ie;
- background-color: @header-background-color;
- border-color: @header-background-color-ie !important;
- border-color: @header-background-color !important;
+ .header-background-color();
+ .header-border-color();
}
.tip-arrow:after {
- border-color: @header-background-color-ie !important;
- border-color: @header-background-color !important;
+ .header-border-color();
}
}
diff --git a/apps/common/main/resources/less/toolbar.less b/apps/common/main/resources/less/toolbar.less
index 249778a258..8b19f96f98 100644
--- a/apps/common/main/resources/less/toolbar.less
+++ b/apps/common/main/resources/less/toolbar.less
@@ -38,9 +38,7 @@
align-items: stretch;
.extra {
- background-color: @header-background-color-ie;
- background-color: @header-background-color;
-
+ .header-background-color();
box-shadow: inset 0 @minus-px 0 0 @border-toolbar-active-panel-top;
}
@@ -60,8 +58,7 @@
.tabs {
//flex-grow: 1;
- background-color: @header-background-color-ie;
- background-color: @header-background-color;
+ .header-background-color();
position: relative;
overflow: hidden;
display: flex;
@@ -174,6 +171,10 @@
&.left{
box-shadow: 5px 0 20px 5px @header-background-color-ie;
box-shadow: 18px calc(@tabs-scroller-height - @scaled-one-px-value) 0 10px @border-toolbar-active-panel-top, 5px 0 20px 5px @header-background-color;
+ .pdf-form & {
+ box-shadow: 5px 0 20px 5px @header-background-color-pdf-ie;
+ box-shadow: 18px calc(@tabs-scroller-height - @scaled-one-px-value) 0 10px @border-toolbar-active-panel-top, 5px 0 20px 5px @header-background-color-pdf;
+ }
&:after {
transform: rotate(135deg);
@@ -188,6 +189,10 @@
&.right{
box-shadow: -5px 0 20px 5px @header-background-color-ie;
box-shadow: -10px calc(@tabs-scroller-height - @scaled-one-px-value) 0 10px @border-toolbar-active-panel-top, -5px 0 20px 5px @header-background-color;
+ .pdf-form & {
+ box-shadow: -5px 0 20px 5px @header-background-color-pdf-ie;
+ box-shadow: -10px calc(@tabs-scroller-height - @scaled-one-px-value) 0 10px @border-toolbar-active-panel-top, -5px 0 20px 5px @header-background-color-pdf;
+ }
&:after {
transform: rotate(-45deg);
@@ -466,7 +471,7 @@
.toolbar {
@underscore_height: 3px;
- .tabs, .extra {
+ .tabs, .box-tabs .extra {
background-color: transparent;
box-shadow: inset 0 -1px 0 0 @border-regular-control-ie;
box-shadow: inset 0 -1px 0 0 @border-regular-control;
@@ -652,8 +657,7 @@
&.editor-native-color {
.tabs li:after {
- border-color: @header-background-color-ie;
- border-color: @header-background-color;
+ .header-border-color();
}
}
}
diff --git a/apps/common/main/resources/less/variables.less b/apps/common/main/resources/less/variables.less
index d02a0fef86..2d03274209 100644
--- a/apps/common/main/resources/less/variables.less
+++ b/apps/common/main/resources/less/variables.less
@@ -40,6 +40,11 @@
@brand-danger: #d9534f;
@brand-info: #5bc0de;
+@header-background-color-pdf-ie: @toolbar-header-pdf-ie;
+@header-background-color-pdf: var(--toolbar-header-pdf);
+@toolbar-header-text-on-background-pdf-ie: @text-toolbar-header-on-background-pdf-ie;
+@toolbar-header-text-on-background-pdf: var(--text-toolbar-header-on-background-pdf);
+
// Scaffolding
// -------------------------
diff --git a/apps/documenteditor/main/app/controller/DocumentHolder.js b/apps/documenteditor/main/app/controller/DocumentHolder.js
index c0fa8ad4a3..dd6d84316f 100644
--- a/apps/documenteditor/main/app/controller/DocumentHolder.js
+++ b/apps/documenteditor/main/app/controller/DocumentHolder.js
@@ -265,7 +265,7 @@ define([
var me = this,
view = me.documentHolder;
- if (type=='view') {
+ if (type==='view') {
view.menuViewCopy.on('click', _.bind(me.onCutCopyPaste, me));
view.menuViewPaste.on('click', _.bind(me.onCutCopyPaste, me));
view.menuViewCut.on('click', _.bind(me.onCutCopyPaste, me));
@@ -277,9 +277,17 @@ define([
view.menuSignatureRemove.on('click', _.bind(me.onSignatureClick, me));
view.menuViewPrint.on('click', _.bind(me.onPrintSelection, me));
return;
- } else if (type=='pdf') {
+ } else if (type==='pdf') {
view.menuPDFViewCopy.on('click', _.bind(me.onCutCopyPaste, me));
return;
+ } else if (type==='forms') {
+ view.menuPDFFormsUndo.on('click', _.bind(me.onUndo, me));
+ view.menuPDFFormsRedo.on('click', _.bind(me.onRedo, me));
+ view.menuPDFFormsClear.on('click', _.bind(me.onClear, me));
+ view.menuPDFFormsCut.on('click', _.bind(me.onCutCopyPaste, me));
+ view.menuPDFFormsCopy.on('click', _.bind(me.onCutCopyPaste, me));
+ view.menuPDFFormsPaste.on('click', _.bind(me.onCutCopyPaste, me));
+ return;
}
// type == 'edit'
@@ -605,12 +613,50 @@ define([
return (!noobject) ? {menu_to_show: menu_to_show, menu_props: menu_props} : null;
},
+ fillFormsMenuProps: function(selectedElements) {
+ if (!selectedElements || !_.isArray(selectedElements)) return;
+
+ var documentHolder = this.documentHolder;
+ if (!documentHolder.formsPDFMenu)
+ documentHolder.createDelayedElementsPDFForms();
+ var menu_props = {},
+ menu_to_show = documentHolder.formsPDFMenu,
+ noobject = true;
+ for (var i = 0; i ' +
'' +
'' +
+ '' +
+ '' +
+ '' +
'' +
'' +
'
' +
@@ -393,7 +409,7 @@ define([
cls: 'btn-toolbar x-huge icon-top',
iconCls: 'toolbar__icon btn-clear-style',
caption: this.textClear,
- visible: false,
+ visible: this.appConfig.isRestrictedEdit && this.appConfig.canFillForms && this.appConfig.isPDFForm,
dataHint: '1',
dataHintDirection: 'bottom',
dataHintOffset: 'small'
@@ -404,7 +420,7 @@ define([
iconCls: 'toolbar__icon btn-previous-field',
lock: [ _set.previewReviewMode, _set.lostConnect, _set.disableOnStart, _set.docLockView, _set.docLockComments, _set.viewMode],
caption: this.capBtnPrev,
- visible: false,
+ visible: this.appConfig.isRestrictedEdit && this.appConfig.canFillForms && this.appConfig.isPDFForm,
// disabled: this.appConfig.isEdit && this.appConfig.canFeatureContentControl && this.appConfig.canFeatureForms, // disable only for edit mode
dataHint: '1',
dataHintDirection: 'bottom',
@@ -417,7 +433,7 @@ define([
iconCls: 'toolbar__icon btn-next-field',
lock: [ _set.previewReviewMode, _set.lostConnect, _set.disableOnStart, _set.docLockView, _set.docLockComments, _set.viewMode],
caption: this.capBtnNext,
- visible: false,
+ visible: this.appConfig.isRestrictedEdit && this.appConfig.canFillForms && this.appConfig.isPDFForm,
// disabled: this.appConfig.isEdit && this.appConfig.canFeatureContentControl && this.appConfig.canFeatureForms, // disable only for edit mode,
dataHint: '1',
dataHintDirection: 'bottom',
@@ -429,7 +445,7 @@ define([
this.btnSubmit = new Common.UI.Button({
cls: 'btn-toolbar x-huge icon-top',
iconCls: 'toolbar__icon btn-submit-form',
- lock: [_set.lostConnect, _set.disableOnStart],
+ lock: [_set.lostConnect, _set.disableOnStart, _set.requiredNotFilled, _set.submit],
caption: this.capBtnSubmit,
// disabled: this.appConfig.isEdit && this.appConfig.canFeatureContentControl && this.appConfig.canFeatureForms, // disable only for edit mode,
dataHint: '1',
@@ -437,13 +453,12 @@ define([
dataHintOffset: 'small'
});
!(this.appConfig.isRestrictedEdit && this.appConfig.canFillForms) && this.paragraphControls.push(this.btnSubmit);
- }
- if (this.appConfig.canDownloadForms) {
+ } else if (this.appConfig.canDownloadForms) {
this.btnSaveForm = new Common.UI.Button({
cls: 'btn-toolbar x-huge icon-top',
lock: [_set.lostConnect, _set.disableOnStart],
iconCls: 'toolbar__icon btn-save-form',
- caption: this.appConfig.canRequestSaveAs || !!this.appConfig.saveAsUrl || this.appConfig.isOffline ? this.capBtnSaveForm : this.capBtnDownloadForm,
+ caption: this.appConfig.canRequestSaveAs || !!this.appConfig.saveAsUrl ? this.capBtnSaveForm : (this.appConfig.isOffline ? this.capBtnSaveFormDesktop : this.capBtnDownloadForm),
// disabled: this.appConfig.isEdit && this.appConfig.canFeatureContentControl && this.appConfig.canFeatureForms, // disable only for edit mode,
dataHint: '1',
dataHintDirection: 'bottom',
@@ -538,9 +553,6 @@ define([
this.$el = $(_.template(template)( {} ));
var $host = this.$el;
- this.appConfig.canSubmitForms && this.btnSubmit.render($host.find('#slot-btn-form-submit'));
- this.appConfig.canDownloadForms && this.btnSaveForm.render($host.find('#slot-btn-form-save'));
-
if (this.appConfig.isRestrictedEdit && this.appConfig.canFillForms) {
} else {
this.btnTextField.render($host.find('#slot-btn-form-field'));
@@ -565,6 +577,10 @@ define([
this.btnPrevForm.render($host.find('#slot-btn-form-prev'));
this.btnNextForm.render($host.find('#slot-btn-form-next'));
+ this.btnSubmit && this.btnSubmit.render($host.find('#slot-btn-form-submit'));
+ this.btnSaveForm && this.btnSaveForm.render($host.find('#slot-btn-form-save'));
+ (this.btnSubmit || this.btnSaveForm) && $host.find('.save-separator').show();
+
return this.$el;
},
@@ -696,8 +712,8 @@ define([
tipHelpRoles: 'Use the Manage Roles feature to group fields by purpose and assign the responsible team members.',
tipSaveFile: 'Click “Save as pdf” to save the form in the format ready for filling.',
tipRolesLink: 'Learn more about roles',
- tipFieldsLink: 'Learn more about field parameters'
-
+ tipFieldsLink: 'Learn more about field parameters',
+ capBtnSaveFormDesktop: 'Save as...'
}
}()), DE.Views.FormsTab || {}));
});
\ No newline at end of file
diff --git a/apps/documenteditor/main/app/view/Toolbar.js b/apps/documenteditor/main/app/view/Toolbar.js
index 46f664b4e9..4166e14e30 100644
--- a/apps/documenteditor/main/app/view/Toolbar.js
+++ b/apps/documenteditor/main/app/view/Toolbar.js
@@ -2923,7 +2923,7 @@ define([
createSynchTip: function () {
this.synchTooltip = new Common.UI.SynchronizeTip({
- extCls: (this.mode.customization && !!this.mode.customization.compactHeader) ? undefined : 'inc-index',
+ extCls: (this.mode.compactHeader) ? undefined : 'inc-index',
placement: this.mode.isDesktopApp ? 'bottom-right' : 'right-bottom',
target: this.btnCollabChanges.$el
});
diff --git a/apps/documenteditor/main/index.html b/apps/documenteditor/main/index.html
index 3f95d647ef..8008cf8a51 100644
--- a/apps/documenteditor/main/index.html
+++ b/apps/documenteditor/main/index.html
@@ -59,6 +59,11 @@
background: var(--toolbar-header-document, #446995);
}
+ .pdf-form .loadmask > .brendpanel {
+ background: #AA5252;
+ background: var(--toolbar-header-pdf, #AA5252);
+ }
+
.loadmask > .brendpanel > div {
display: flex;
align-items: center;
@@ -256,10 +261,12 @@
lang = (params["lang"] || 'en').split(/[\-\_]/)[0],
hideLogo = params["headerlogo"]==='',
logo = params["headerlogo"] ? encodeUrlParam(params["headerlogo"]) : null,
- logoDark = params["headerlogodark"] ? encodeUrlParam(params["headerlogodark"]) : null;
+ logoDark = params["headerlogodark"] ? encodeUrlParam(params["headerlogodark"]) : null,
+ isForm = params["isForm"]==='true';
window.frameEditorId = params["frameEditorId"];
window.parentOrigin = params["parentOrigin"];
+ window.isPDFForm = isForm;
if(/MSIE \d|Trident.*rv:/.test(navigator.userAgent)) {
document.write('
@@ -259,6 +266,7 @@
view = params["mode"] == 'view',
visible = true;
+ isForm && document.body.classList.add('pdf-form');
(compact || view || notoolbar) && document.querySelector('.brendpanel > :nth-child(2)').remove();
if (compact || view) {
diff --git a/apps/documenteditor/main/index_loader.html b/apps/documenteditor/main/index_loader.html
index 6bb5a21201..701351df10 100644
--- a/apps/documenteditor/main/index_loader.html
+++ b/apps/documenteditor/main/index_loader.html
@@ -219,9 +219,11 @@
customer = params["customer"] ? ('' + encodeUrlParam(params["customer"]) + '
') : '',
margin = (customer !== '') ? 50 : 20,
loading = 'Loading...',
- logo = params["logo"] ? ((params["logo"] !== 'none') ? ('
') : '') : null;
+ logo = params["logo"] ? ((params["logo"] !== 'none') ? ('
') : '') : null,
+ isForm = params["isForm"]==='true';
window.frameEditorId = params["frameEditorId"];
window.parentOrigin = params["parentOrigin"];
+ window.isPDFForm = isForm;
if ( lang == 'de') loading = 'Ladevorgang...';
else if ( lang == 'es') loading = 'Cargando...';
else if ( lang == 'fr') loading = 'Chargement en cours...';
@@ -267,7 +269,9 @@
-
+
diff --git a/apps/documenteditor/main/index_loader.html.deploy b/apps/documenteditor/main/index_loader.html.deploy
index 3f42947d24..88dfd295c5 100644
--- a/apps/documenteditor/main/index_loader.html.deploy
+++ b/apps/documenteditor/main/index_loader.html.deploy
@@ -241,11 +241,12 @@
customer = params["customer"] ? ('' + encodeUrlParam(params["customer"]) + '
') : '',
margin = (customer !== '') ? 50 : 20,
loading = 'Loading...',
- logo = params["logo"] ? ((params["logo"] !== 'none') ? ('
') : '') : null;
+ logo = params["logo"] ? ((params["logo"] !== 'none') ? ('
') : '') : null,
+ isForm = params["isForm"]==='true';
window.frameEditorId = params["frameEditorId"];
window.parentOrigin = params["parentOrigin"];
-
+ window.isPDFForm = isForm;
if ( lang == 'de') loading = 'Ladevorgang...';
else if ( lang == 'es') loading = 'Cargando...';
else if ( lang == 'fr') loading = 'Chargement en cours...';
@@ -290,7 +291,9 @@
-
+