Merge pull request #4398 from mabashian/3644-launch-outside-click

Prevent clicks outside of prompt modal from closing the modal without saving

Reviewed-by: https://github.com/softwarefactory-project-zuul[bot]
This commit is contained in:
softwarefactory-project-zuul[bot]
2019-07-30 22:18:54 +00:00
committed by GitHub
2 changed files with 1 additions and 33 deletions

View File

@@ -1,30 +1,7 @@
const templateUrl = require('~components/dialog/dialog.partial.html'); const templateUrl = require('~components/dialog/dialog.partial.html');
const overlayClass = 'at-Dialog';
function DialogController () {
const vm = this || {};
vm.handleClick = ({ target }) => {
if (!vm.onClose) {
return;
}
const targetElement = $(target);
if (targetElement.hasClass(overlayClass)) {
vm.onClose();
}
};
}
DialogController.$inject = [
'$element',
];
export default { export default {
templateUrl, templateUrl,
controller: DialogController,
controllerAs: 'vm', controllerAs: 'vm',
transclude: true, transclude: true,
bindings: { bindings: {

View File

@@ -12,11 +12,10 @@ function atModalLink (scope, el, attrs, controllers) {
}); });
} }
function AtModalController ($timeout, eventService, strings) { function AtModalController (strings) {
const vm = this; const vm = this;
let overlay; let overlay;
let listeners;
vm.strings = strings; vm.strings = strings;
@@ -33,10 +32,6 @@ function AtModalController ($timeout, eventService, strings) {
vm.modal.title = title; vm.modal.title = title;
vm.modal.message = message; vm.modal.message = message;
listeners = eventService.addListeners([
[overlay, 'click', vm.clickToHide]
]);
overlay.style.display = 'block'; overlay.style.display = 'block';
overlay.style.opacity = 1; overlay.style.opacity = 1;
}; };
@@ -44,8 +39,6 @@ function AtModalController ($timeout, eventService, strings) {
vm.hide = () => { vm.hide = () => {
overlay.style.opacity = 0; overlay.style.opacity = 0;
eventService.remove(listeners);
setTimeout(() => { setTimeout(() => {
overlay.style.display = 'none'; overlay.style.display = 'none';
}, DEFAULT_ANIMATION_DURATION); }, DEFAULT_ANIMATION_DURATION);
@@ -63,8 +56,6 @@ function AtModalController ($timeout, eventService, strings) {
} }
AtModalController.$inject = [ AtModalController.$inject = [
'$timeout',
'EventService',
'ComponentsStrings' 'ComponentsStrings'
]; ];