Skip to content

Commit 1650734

Browse files
committed
Add support for multiple dialogs for 0.8.3
1 parent c9aae9b commit 1650734

File tree

2 files changed

+17
-14
lines changed

2 files changed

+17
-14
lines changed

src/components/dialog/dialog.js

+4-2
Original file line numberDiff line numberDiff line change
@@ -409,7 +409,7 @@ function MdDialogProvider($$interimElementProvider) {
409409
var computeFrom = (options.parent[0] == $document[0].body && $document[0].documentElement
410410
&& $document[0].scrollTop) ? angular.element($document[0].documentElement) : options.parent;
411411
var parentOffset = computeFrom.prop('scrollTop');
412-
options.backdrop = angular.element('<md-backdrop class="md-dialog-backdrop md-opaque">');
412+
options.backdrop = angular.element('<md-backdrop class="md-dialog-backdrop md-opaque" style="z-index: ' + options.zIndex + '">');
413413
$mdTheming.inherit(options.backdrop, options.parent);
414414
$animate.enter(options.backdrop, options.parent);
415415
element.css('top', parentOffset +'px');
@@ -429,7 +429,9 @@ function MdDialogProvider($$interimElementProvider) {
429429
if (options.escapeToClose) {
430430
options.rootElementKeyupCallback = function(e) {
431431
if (e.keyCode === $mdConstant.KEY_CODE.ESCAPE) {
432-
$timeout($mdDialog.cancel);
432+
if (options.stack.indexOf(options.interimElement) == 0) {
433+
$timeout($mdDialog.cancel);
434+
}
433435
}
434436
};
435437
$rootElement.on('keyup', options.rootElementKeyupCallback);

src/core/services/interimElement/interimElement.js

+13-12
Original file line numberDiff line numberDiff line change
@@ -258,17 +258,12 @@ function InterimElementProvider() {
258258
*
259259
*/
260260
function show(options) {
261-
if (stack.length) {
262-
return service.cancel().then(function() {
263-
return show(options);
264-
});
265-
} else {
266-
var interimElement = new InterimElement(options);
267-
stack.push(interimElement);
268-
return interimElement.show().then(function() {
269-
return interimElement.deferred.promise;
270-
});
271-
}
261+
options.zIndex = 80 + stack.length;
262+
var interimElement = new InterimElement(options);
263+
stack.unshift(interimElement);
264+
return interimElement.show().then(function() {
265+
return interimElement.deferred.promise;
266+
});
272267
}
273268

274269
/*
@@ -336,7 +331,7 @@ function InterimElementProvider() {
336331
options.template = processTemplate(options.template);
337332
}
338333

339-
return self = {
334+
self = {
340335
options: options,
341336
deferred: $q.defer(),
342337
show: function() {
@@ -371,6 +366,7 @@ function InterimElementProvider() {
371366
if (!options.parent.length) options.parent = $rootElement;
372367
}
373368

369+
element.css('z-index', options.zIndex);
374370
if (options.themable) $mdTheming(element);
375371
var ret = options.onShow(options.scope, element, options);
376372
return $q.when(ret)
@@ -404,6 +400,11 @@ function InterimElementProvider() {
404400
});
405401
}
406402
};
403+
404+
options.interimElement = self;
405+
options.stack = stack;
406+
407+
return self;
407408
}
408409
};
409410

0 commit comments

Comments
 (0)