Again more iframe dialog handling optimizations (references #2421)

This commit is contained in:
Bernd Bestel 2024-01-13 20:27:35 +01:00
parent fc072b13f2
commit 33d5ec44d2
No known key found for this signature in database
GPG Key ID: 71BD34C0D4891300
7 changed files with 24 additions and 39 deletions

View File

@ -542,9 +542,7 @@ if ($(".custom-file-label").length > 0)
$("<style>").html('.custom-file-label::after { content: "' + __t("Select file") + '"; }').appendTo("head"); $("<style>").html('.custom-file-label::after { content: "' + __t("Select file") + '"; }').appendTo("head");
} }
ResizeResponsiveEmbeds = function(fillEntireViewport = false, iframesOnly = false) ResizeResponsiveEmbeds = function(fillEntireViewport = false)
{
if (!iframesOnly)
{ {
if (!fillEntireViewport) if (!fillEntireViewport)
{ {
@ -555,24 +553,10 @@ ResizeResponsiveEmbeds = function(fillEntireViewport = false, iframesOnly = fals
var maxHeight = $("body").height(); var maxHeight = $("body").height();
} }
$("embed.embed-responsive").attr("height", maxHeight.toString() + "px"); $("embed.embed-responsive").attr("height", maxHeight.toString() + "px");
}
$("iframe.embed-responsive").each(function() $("iframe.embed-responsive").each(function()
{ {
var iframeHeight = $(this)[0].contentWindow.document.body.scrollHeight; $(this).attr("height", $(this)[0].contentWindow.document.body.scrollHeight.toString() + "px");
if (iframeHeight == 0)
{
// Iframe has most likely not finished loading yet => try again later
setTimeout(function()
{
ResizeResponsiveEmbeds(fillEntireViewport, true);
}, 150);
}
else
{
$(this).attr("height", iframeHeight.toString() + "px");
}
}); });
} }
$(window).on('resize', function() $(window).on('resize', function()
@ -719,7 +703,7 @@ $(document).on("click", ".show-as-dialog-link", function(e)
var link = $(e.currentTarget).attr("href"); var link = $(e.currentTarget).attr("href");
bootbox.dialog({ bootbox.dialog({
message: '<iframe height="650px" class="embed-responsive" src="' + link + '"></iframe>', message: '<iframe height="650px" class="embed-responsive" onload="ResizeResponsiveEmbeds();" src="' + link + '"></iframe>',
size: 'large', size: 'large',
backdrop: true, backdrop: true,
closeButton: false, closeButton: false,
@ -805,8 +789,3 @@ $(document).on("click", "#clear-filter-button", function(e)
{ {
$(".tooltip").tooltip("hide"); $(".tooltip").tooltip("hide");
}); });
$(document).on("shown.bs.modal", function(e)
{
ResizeResponsiveEmbeds();
})

View File

@ -927,7 +927,7 @@ $(document).on("click", ".display-recipe-button", function(e)
function(result) function(result)
{ {
bootbox.dialog({ bootbox.dialog({
message: '<iframe height="650px" class="embed-responsive" src="' + U("/recipes?embedded&recipe=") + objectId + '#fullscreen"></iframe>', message: '<iframe height="650px" class="embed-responsive" onload="ResizeResponsiveEmbeds();" src="' + U("/recipes?embedded&recipe=") + objectId + '#fullscreen"></iframe>',
size: 'extra-large', size: 'extra-large',
backdrop: true, backdrop: true,
closeButton: false, closeButton: false,

View File

@ -198,7 +198,7 @@ $("#test-quantityunit-plural-forms-button").on("click", function(e)
$("#save-quantityunit-button").click(); $("#save-quantityunit-button").click();
bootbox.alert({ bootbox.alert({
message: '<iframe height="400px" class="embed-responsive" src="' + U("/quantityunitpluraltesting?embedded&qu=") + Grocy.EditObjectId.toString() + '"></iframe>', message: '<iframe height="400px" class="embed-responsive" onload="ResizeResponsiveEmbeds();" src="' + U("/quantityunitpluraltesting?embedded&qu=") + Grocy.EditObjectId.toString() + '"></iframe>',
closeButton: false, closeButton: false,
size: "large", size: "large",
callback: function(result) callback: function(result)

View File

@ -220,7 +220,7 @@ $(document).on('click', '.recipe-pos-edit-button', function(e)
var recipePosId = $(e.currentTarget).attr('data-recipe-pos-id'); var recipePosId = $(e.currentTarget).attr('data-recipe-pos-id');
bootbox.dialog({ bootbox.dialog({
message: '<iframe height="650px" class="embed-responsive" src="' + U("/recipe/") + Grocy.EditObjectId.toString() + '/pos/' + recipePosId.toString() + '?embedded&product=' + productId.toString() + '"></iframe>', message: '<iframe height="650px" class="embed-responsive" onload="ResizeResponsiveEmbeds();" src="' + U("/recipe/") + Grocy.EditObjectId.toString() + '/pos/' + recipePosId.toString() + '?embedded&product=' + productId.toString() + '"></iframe>',
size: 'large', size: 'large',
backdrop: true, backdrop: true,
closeButton: false, closeButton: false,
@ -266,7 +266,7 @@ $("#recipe-pos-add-button").on("click", function(e)
e.preventDefault(); e.preventDefault();
bootbox.dialog({ bootbox.dialog({
message: '<iframe height="650px" class="embed-responsive" src="' + U("/recipe/") + Grocy.EditObjectId + '/pos/new?embedded"></iframe>', message: '<iframe height="650px" class="embed-responsive" onload="ResizeResponsiveEmbeds();" src="' + U("/recipe/") + Grocy.EditObjectId + '/pos/new?embedded"></iframe>',
size: 'large', size: 'large',
backdrop: true, backdrop: true,
closeButton: false, closeButton: false,

View File

@ -291,7 +291,7 @@ recipesTables.on('select', function(e, dt, type, indexes)
else else
{ {
bootbox.dialog({ bootbox.dialog({
message: '<iframe height="650px" class="embed-responsive" src="' + U("/recipes?embedded&recipe=") + selectedRecipeId + '#fullscreen"></iframe>', message: '<iframe height="650px" class="embed-responsive" onload="ResizeResponsiveEmbeds();" src="' + U("/recipes?embedded&recipe=") + selectedRecipeId + '#fullscreen"></iframe>',
size: 'extra-large', size: 'extra-large',
backdrop: true, backdrop: true,
closeButton: false, closeButton: false,
@ -323,7 +323,7 @@ $(".recipe-gallery-item").on("click", function(e)
else else
{ {
bootbox.dialog({ bootbox.dialog({
message: '<iframe height="650px" class="embed-responsive" src="' + U("/recipes?embedded&recipe=") + selectedRecipeId + '#fullscreen"></iframe>', message: '<iframe height="650px" class="embed-responsive" onload="ResizeResponsiveEmbeds();" src="' + U("/recipes?embedded&recipe=") + selectedRecipeId + '#fullscreen"></iframe>',
size: 'extra-large', size: 'extra-large',
backdrop: true, backdrop: true,
closeButton: false, closeButton: false,

View File

@ -258,6 +258,7 @@ $(document).on('click', '.shopping-list-stock-add-workflow-list-item-button', fu
} }
else else
{ {
$("#shopping-list-stock-add-workflow-purchase-item-count").addClass("d-none");
$("#shopping-list-stock-add-workflow-skip-button").addClass("d-none"); $("#shopping-list-stock-add-workflow-skip-button").addClass("d-none");
} }
}); });
@ -623,3 +624,8 @@ if ($(window).width() < 768 || !Grocy.FeatureFlags.GROCY_FEATURE_FLAG_STOCK)
{ {
$("#filter-container").removeClass("border-bottom"); $("#filter-container").removeClass("border-bottom");
} }
$("#shopping-list-stock-add-workflow-purchase-form-frame").on("load", function()
{
ResizeResponsiveEmbeds();
});

View File

@ -321,8 +321,8 @@
<div class="modal-content text-center"> <div class="modal-content text-center">
<div class="modal-body"> <div class="modal-body">
<iframe id="shopping-list-stock-add-workflow-purchase-form-frame" <iframe id="shopping-list-stock-add-workflow-purchase-form-frame"
class="embed-responsive" class="embed-responsive">
src=""></iframe> </iframe>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<span id="shopping-list-stock-add-workflow-purchase-item-count" <span id="shopping-list-stock-add-workflow-purchase-item-count"