Deprecate 'overrideSettings'

* Deprecate and log warning to console when 'overrideSettings' is used
 * Change confirmation dialog be 'fixed' e.g relative to viewport instead of
   and arbitrary relative parent element
 * Same for the overlay mask
 * Set minimum height on body element, to fit confirmation dialog
 * Remove the minimum height on close dialog

Fixes HFP-574
pull/40/head
Tom Arild Jakobsen 2017-05-08 14:17:29 +02:00
parent fb76e09e8c
commit 481322e6ae
3 changed files with 18 additions and 19 deletions

View File

@ -315,7 +315,7 @@ H5P.ConfirmationDialog = (function (EventDispatcher) {
if (resizeIFrame && options.instance) {
var minHeight = parseInt(popup.offsetHeight, 10) +
exitButtonOffset + (2 * shadowOffset);
wrapperElement.style.minHeight = minHeight + 'px';
self.setViewPortMinimumHeight(minHeight);
options.instance.trigger('resize');
resizeIFrame = false;
}
@ -340,10 +340,20 @@ H5P.ConfirmationDialog = (function (EventDispatcher) {
setTimeout(function () {
popupBackground.classList.add('hidden');
wrapperElement.removeChild(popupBackground);
self.setViewPortMinimumHeight(null);
}, 100);
return this;
};
/**
* Sets the minimum height of the view port
*
* @param {number|null} minHeight
*/
this.setViewPortMinimumHeight = function(minHeight) {
document.body.style.minHeight = (typeof minHeight === 'number') ? (minHeight + 'px') : minHeight;
};
}
ConfirmationDialog.prototype = Object.create(EventDispatcher.prototype);

View File

@ -1000,24 +1000,13 @@ H5P.findCopyrights = function (info, parameters, contentId) {
continue; // Do not check
}
/*
* TODO: Make parameters clean again
* Some content types adds jQuery or other objects to parameters
* in order to determine override settings for sub-content-types.
* For instance Question Set tells Multiple Choice that it should
* attach Multi Choice's confirmation dialog to a Question Set
* jQuery element, so that the confirmation dialog will not be restricted
* to the space confined by Multi Choice.
* Ideally this should not be added to parameters, we must make a better
* solution. We should likely be adding these to sub-content through
* functions/setters instead of passing them down as params.
*
* This solution is implemented as a hack that will ignore all parameters
* inside a "overrideSettings" field, this should suffice for now since
* all overridden objects are added to this field, however this is not very
* robust solution and will very likely lead to problems in the future.
/**
* @deprecated This hack should be removed after 2017-11-01
* The code that was using this was removed by HFP-574
*/
if (field === 'overrideSettings') {
console.warn("The semantics field 'overrideSettings' is DEPRECATED and should not be used.");
console.warn(parameters);
continue;
}

View File

@ -1,5 +1,5 @@
.h5p-confirmation-dialog-background {
position: absolute;
position: fixed;
height: 100%;
width: 100%;
left: 0;
@ -30,7 +30,7 @@
}
.h5p-confirmation-dialog-popup {
position: absolute;
position: fixed;
display: flex;
flex-direction: column;
justify-content: center;