fix(modals) Fixing DOM issues with modals
This commit is contained in:
parent
2c790ff674
commit
50374038a3
@ -1,7 +1,7 @@
|
||||
<template name="dialogConfirm">
|
||||
{{>dialogForm (extend this
|
||||
{{#dialogForm (extend this
|
||||
dialogClass='modal-sm'
|
||||
title=(choose this.title 'Confirmation')
|
||||
message=(choose this.message 'Are you sure you want to perform this action?')
|
||||
)}}
|
||||
message=(valueIf UI.contentBlock '' (choose this.message 'Are you sure you want to perform this action?'))
|
||||
)}}{{>UI.contentBlock}}{{/dialogForm}}
|
||||
</template>
|
||||
|
||||
@ -7,8 +7,7 @@ Template.dialogSimple.onCreated(() => {
|
||||
const instance = Template.instance();
|
||||
|
||||
instance.close = () => {
|
||||
const $modal = instance.$('.modal');
|
||||
$modal.one('hidden.bs.modal', () => instance.data.promiseResolve()).modal('hide');
|
||||
instance.$('.modal').modal('hide');
|
||||
};
|
||||
|
||||
// Automatically close the modal if a timeout value was given
|
||||
@ -31,6 +30,9 @@ Template.dialogSimple.onRendered(() => {
|
||||
// Create the bootstrap modal
|
||||
$modal.modal(modalOptions);
|
||||
|
||||
// Resolve the promise as soon as the modal is closed
|
||||
$modal.one('hidden.bs.modal', () => instance.data.promiseResolve());
|
||||
|
||||
let position = instance.data.position;
|
||||
|
||||
const { event } = instance.data;
|
||||
|
||||
@ -4,6 +4,9 @@ import { _ } from 'meteor/underscore';
|
||||
import { $ } from 'meteor/jquery';
|
||||
import { OHIF } from 'meteor/ohif:core';
|
||||
|
||||
let zIndexBackdrop = 1060;
|
||||
let zIndexModal = 1061;
|
||||
|
||||
OHIF.ui.showDialog = (templateName, dialogData={}) => {
|
||||
// Check if the given template exists
|
||||
const template = Template[templateName];
|
||||
@ -49,6 +52,20 @@ OHIF.ui.showDialog = (templateName, dialogData={}) => {
|
||||
$modal = $node.find('.modal:first');
|
||||
}
|
||||
|
||||
$modal.one('show.bs.modal', function() {
|
||||
setTimeout(() => {
|
||||
const $modal = $(this);
|
||||
const modal = $modal.data('bs.modal');
|
||||
if (!modal) return;
|
||||
const { $backdrop } = modal;
|
||||
if (!$backdrop) return;
|
||||
$backdrop.css('z-index', zIndexBackdrop);
|
||||
$modal.css('z-index', zIndexModal);
|
||||
zIndexBackdrop += 2;
|
||||
zIndexModal += 2;
|
||||
});
|
||||
});
|
||||
|
||||
// Destroy the created dialog view when the promise is either resolved or rejected
|
||||
const dismissModal = (hideFirst=false) => {
|
||||
if (hideFirst || (dialogData && dialogData.promise && $modal)) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user