Merge pull request #910 from ONLYOFFICE/fix/de-fill-forms

Fix/de fill forms
This commit is contained in:
Julia Radzhabova 2021-06-02 00:35:58 +03:00 committed by GitHub
commit 46b4a68ec4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 124 additions and 12 deletions

View file

@ -683,9 +683,13 @@
border: 1px solid rgba(0,0,0,0.15); border: 1px solid rgba(0,0,0,0.15);
color: #333; color: #333;
font-weight: bold; font-weight: bold;
line-height: 26px;
font-size: 11px; font-size: 11px;
box-shadow: 0 6px 12px rgba(0,0,0,0.175); box-shadow: 0 6px 12px rgba(0,0,0,0.175);
padding: 5px 12px;
white-space: pre-wrap;
text-align: left;
word-wrap: break-word;
} }
.tooltip-arrow { .tooltip-arrow {
@ -712,4 +716,64 @@
-webkit-box-shadow: 0 4px 15px -2px rgba(0, 0, 0, 0.5); -webkit-box-shadow: 0 4px 15px -2px rgba(0, 0, 0, 0.5);
box-shadow: 0 4px 15px -2px rgba(0, 0, 0, 0.5); box-shadow: 0 4px 15px -2px rgba(0, 0, 0, 0.5);
font-size: 11px; font-size: 11px;
}
.required-tooltip {
position: absolute;
z-index: 1000;
padding: 15px;
border-radius: 5px;
background-color: @btnColored;
color: #fff;
-webkit-box-shadow: 0 4px 15px -2px rgba(0, 0, 0, 0.5);
box-shadow: 0 4px 15px -2px rgba(0, 0, 0, 0.5);
font-size: 11px;
&.bottom-left {
border-top-right-radius: 0;
margin: 15px 0 0 0;
.tip-arrow {
position: absolute;
overflow: hidden;
right: 0;
top: -15px;
width: 15px;
height: 15px;
.box-shadow(8px 5px 8px -5px rgba(0, 0, 0, 0.2));
&:after {
content: '';
position: absolute;
top: 8px;
left: 8px;
background-color: @btnColored;
width: 15px;
height: 15px;
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-webkit-transform: rotate(45deg);
-o-transform: rotate(45deg);
transform: rotate(45deg);
.box-shadow(0 0 8px -1px rgba(0, 0, 0, 0.2));
}
}
}
.close-div {
display: inline-block;
border: 1px solid #fff;
border-radius: 2px;
padding: 3px 12px;
margin-top: 10px;
}
}
.tooltip {
.tooltip-inner {
.toolbar & {
font-weight: normal;
}
}
} }

View file

@ -198,7 +198,7 @@
<span id="title-doc-name"></span> <span id="title-doc-name"></span>
</div> </div>
<div class="group right"> <div class="group right">
<button id="id-btn-submit" class="control-btn has-caption margin-right-small colored"><span class="caption"></span></button> <div id="id-submit-group" style="display: inline-block;"><button id="id-btn-submit" class="control-btn has-caption margin-right-small colored"><span class="caption"></span></button></div>
<div id="id-pages" class="item margin-right-small"><input id="page-number" class="form-control input-xs masked" type="text" value="0"><span class="text" id="pages" tabindex="-1">of 0</span></div> <div id="id-pages" class="item margin-right-small"><input id="page-number" class="form-control input-xs masked" type="text" value="0"><span class="text" id="pages" tabindex="-1">of 0</span></div>
<div id="box-tools" class="dropdown"> <div id="box-tools" class="dropdown">
<button class="control-btn svg-icon more-vertical"></button> <button class="control-btn svg-icon more-vertical"></button>

View file

@ -190,7 +190,7 @@
<span id="title-doc-name"></span> <span id="title-doc-name"></span>
</div> </div>
<div class="group right"> <div class="group right">
<button id="id-btn-submit" class="control-btn has-caption margin-right-small colored"><span class="caption"></span></button> <div id="id-submit-group" style="display: inline-block;"><button id="id-btn-submit" class="control-btn has-caption margin-right-small colored"><span class="caption"></span></button></div>
<div id="id-pages" class="item margin-right-small"><input id="page-number" class="form-control input-xs masked" type="text" value="0"><span class="text" id="pages" tabindex="-1">of 0</span></div> <div id="id-pages" class="item margin-right-small"><input id="page-number" class="form-control input-xs masked" type="text" value="0"><span class="text" id="pages" tabindex="-1">of 0</span></div>
<div id="box-tools" class="dropdown"> <div id="box-tools" class="dropdown">
<button class="control-btn svg-icon more-vertical"></button> <button class="control-btn svg-icon more-vertical"></button>

View file

@ -299,7 +299,7 @@
<span id="title-doc-name"></span> <span id="title-doc-name"></span>
</div> </div>
<div class="group right"> <div class="group right">
<button id="id-btn-submit" class="control-btn has-caption margin-right-small colored"><span class="caption"></span></button> <div id="id-submit-group" style="display: inline-block;"><button id="id-btn-submit" class="control-btn has-caption margin-right-small colored"><span class="caption"></span></button></div>
<div id="id-pages" class="item margin-right-small"><input id="page-number" class="form-control input-xs masked" type="text" value="0"><span class="text" id="pages" tabindex="-1">of 0</span></div> <div id="id-pages" class="item margin-right-small"><input id="page-number" class="form-control input-xs masked" type="text" value="0"><span class="text" id="pages" tabindex="-1">of 0</span></div>
<div id="box-tools" class="dropdown"> <div id="box-tools" class="dropdown">
<button class="control-btn svg-icon more-vertical"></button> <button class="control-btn svg-icon more-vertical"></button>

View file

@ -291,7 +291,7 @@
<span id="title-doc-name"></span> <span id="title-doc-name"></span>
</div> </div>
<div class="group right"> <div class="group right">
<button id="id-btn-submit" class="control-btn has-caption margin-right-small colored"><span class="caption"></span></button> <div id="id-submit-group" style="display: inline-block;"><button id="id-btn-submit" class="control-btn has-caption margin-right-small colored"><span class="caption"></span></button></div>
<div id="id-pages" class="item margin-right-small"><input id="page-number" class="form-control input-xs masked" type="text" value="0"><span class="text" id="pages" tabindex="-1">of 0</span></div> <div id="id-pages" class="item margin-right-small"><input id="page-number" class="form-control input-xs masked" type="text" value="0"><span class="text" id="pages" tabindex="-1">of 0</span></div>
<div id="box-tools" class="dropdown"> <div id="box-tools" class="dropdown">
<button class="control-btn svg-icon more-vertical"></button> <button class="control-btn svg-icon more-vertical"></button>

View file

@ -43,7 +43,7 @@ DE.ApplicationController = new(function(){
labelDocName, labelDocName,
appOptions = {}, appOptions = {},
btnSubmit, btnSubmit,
_submitFail, $submitedTooltip; _submitFail, $submitedTooltip, $requiredTooltip;
// Initialize analytics // Initialize analytics
// ------------------------- // -------------------------
@ -166,6 +166,7 @@ DE.ApplicationController = new(function(){
_submitFail = false; _submitFail = false;
$submitedTooltip && $submitedTooltip.hide(); $submitedTooltip && $submitedTooltip.hide();
btnSubmit.attr({disabled: true}); btnSubmit.attr({disabled: true});
btnSubmit.css("pointer-events", "none");
break; break;
default: default:
text = me.waitText; text = me.waitText;
@ -181,12 +182,15 @@ DE.ApplicationController = new(function(){
function onLongActionEnd(type, id){ function onLongActionEnd(type, id){
if (id==Asc.c_oAscAsyncAction['Submit']) { if (id==Asc.c_oAscAsyncAction['Submit']) {
btnSubmit.removeAttr('disabled'); btnSubmit.removeAttr('disabled');
if (!$submitedTooltip) { btnSubmit.css("pointer-events", "auto");
$submitedTooltip = $('<div class="submit-tooltip" style="display:none;">' + me.textSubmited + '</div>'); if (!_submitFail) {
$(document.body).append($submitedTooltip); if (!$submitedTooltip) {
$submitedTooltip.on('click', function() {$submitedTooltip.hide();}); $submitedTooltip = $('<div class="submit-tooltip" style="display:none;">' + me.textSubmited + '</div>');
$(document.body).append($submitedTooltip);
$submitedTooltip.on('click', function() {$submitedTooltip.hide();});
}
$submitedTooltip.show();
} }
!_submitFail && $submitedTooltip.show();
} }
hideMask(); hideMask();
} }
@ -251,6 +255,14 @@ DE.ApplicationController = new(function(){
common.utils.dialogPrint(url, api); common.utils.dialogPrint(url, api);
} }
function onFillRequiredFields() {
if (btnSubmit) {
btnSubmit.removeAttr('disabled');
btnSubmit.css("pointer-events", "auto");
}
$requiredTooltip && $requiredTooltip.hide();
}
function hidePreloader() { function hidePreloader() {
$('#loading-mask').fadeOut('slow'); $('#loading-mask').fadeOut('slow');
} }
@ -326,6 +338,7 @@ DE.ApplicationController = new(function(){
api.asc_registerCallback('asc_onDownloadUrl', onDownloadUrl); api.asc_registerCallback('asc_onDownloadUrl', onDownloadUrl);
api.asc_registerCallback('asc_onPrint', onPrint); api.asc_registerCallback('asc_onPrint', onPrint);
api.asc_registerCallback('asc_onPrintUrl', onPrintUrl); api.asc_registerCallback('asc_onPrintUrl', onPrintUrl);
api.asc_registerCallback('asc_onFillRequiredFields', onFillRequiredFields);
Common.Gateway.on('processmouse', onProcessMouse); Common.Gateway.on('processmouse', onProcessMouse);
Common.Gateway.on('downloadas', onDownloadAs); Common.Gateway.on('downloadas', onDownloadAs);
@ -406,6 +419,37 @@ DE.ApplicationController = new(function(){
$pagenum.focus(); $pagenum.focus();
}); });
// TODO: add asc_hasRequiredFields to sdk
/*
if (appOptions.canSubmitForms && api.asc_hasRequiredFields()) {
var sgroup = $('#id-submit-group');
btnSubmit.attr({disabled: true});
btnSubmit.css("pointer-events", "none");
if (!common.localStorage.getItem("de-embed-hide-submittip")) {
var offset = btnSubmit.offset();
$requiredTooltip = $('<div class="required-tooltip bottom-left" style="display:none;"><div class="tip-arrow bottom-left"></div><div>' + me.textRequired + '</div><div class="close-div">' + me.textGotIt + '</div></div>');
$(document.body).append($requiredTooltip);
$requiredTooltip.css({top : offset.top + btnSubmit.height() + 'px', left: offset.left + btnSubmit.outerWidth()/2 - $requiredTooltip.outerWidth() + 'px'});
$requiredTooltip.find('.close-div').on('click', function() {
$requiredTooltip.hide();
common.localStorage.setItem("de-embed-hide-submittip", 1);
sgroup.attr('data-toggle', 'tooltip');
sgroup.tooltip({
title : me.textRequired,
placement : 'bottom'
});
});
$requiredTooltip.show();
} else {
sgroup.attr('data-toggle', 'tooltip');
sgroup.tooltip({
title : me.textRequired,
placement : 'bottom'
});
}
}
*/
var documentMoveTimer; var documentMoveTimer;
var ismoved = false; var ismoved = false;
$(document).mousemove(function(event){ $(document).mousemove(function(event){
@ -757,6 +801,8 @@ DE.ApplicationController = new(function(){
errorSubmit: 'Submit failed.', errorSubmit: 'Submit failed.',
errorEditingDownloadas: 'An error occurred during the work with the document.<br>Use the \'Download as...\' option to save the file backup copy to your computer hard drive.', errorEditingDownloadas: 'An error occurred during the work with the document.<br>Use the \'Download as...\' option to save the file backup copy to your computer hard drive.',
textGuest: 'Guest', textGuest: 'Guest',
textAnonymous: 'Anonymous' textAnonymous: 'Anonymous',
textRequired: 'Fill all required fields to send form.',
textGotIt: 'Got it'
} }
})(); })();

View file

@ -31,6 +31,8 @@
"DE.ApplicationController.unknownErrorText": "Unknown error.", "DE.ApplicationController.unknownErrorText": "Unknown error.",
"DE.ApplicationController.unsupportedBrowserErrorText": "Your browser is not supported.", "DE.ApplicationController.unsupportedBrowserErrorText": "Your browser is not supported.",
"DE.ApplicationController.waitText": "Please, wait...", "DE.ApplicationController.waitText": "Please, wait...",
"DE.ApplicationController.textRequired": "Fill all required fields to send form.",
"DE.ApplicationController.textGotIt": "Got it",
"DE.ApplicationView.txtDownload": "Download", "DE.ApplicationView.txtDownload": "Download",
"DE.ApplicationView.txtDownloadDocx": "Download as docx", "DE.ApplicationView.txtDownloadDocx": "Download as docx",
"DE.ApplicationView.txtDownloadPdf": "Download as pdf", "DE.ApplicationView.txtDownloadPdf": "Download as pdf",