allow no queue option for dialogs

This commit is contained in:
Johannes Millan 2017-01-27 03:26:42 +01:00
parent 9d9f7ceda5
commit e38f1fa82b
3 changed files with 29 additions and 16 deletions

View file

@ -128,7 +128,7 @@
if (ev.target.tagName !== 'INPUT' && ev.target.tagName !== 'TEXTAREA') {
// on star
if (ev.key === '*') {
Dialogs('ADD_TASK');
Dialogs('ADD_TASK', undefined, true);
}
}

View file

@ -29,10 +29,11 @@
return dialog;
}
function addToQueue(dialogObj, wrapperPromise) {
function addToQueue(dialogObj, wrapperPromise, isNoQueue) {
dialogQueue.push({
obj: dialogObj,
wrapperPromise
wrapperPromise,
isNoQueue
});
}
@ -44,24 +45,36 @@
let nextDialog = dialogQueue[0];
if (nextDialog) {
$mdDialog.show(nextDialog.obj)
.then((res) => {
nextDialog.wrapperPromise.resolve(res);
removeLastResolvedFromQueue();
openNextInQueue();
}, (err) => {
nextDialog.wrapperPromise.reject(err);
removeLastResolvedFromQueue();
openNextInQueue();
});
// if isNoQueue is set directly remove and open next one
if (nextDialog.isNoQueue) {
removeLastResolvedFromQueue();
openNextInQueue();
$mdDialog.show(nextDialog.obj)
.then((res) => {
nextDialog.wrapperPromise.resolve(res);
}, (err) => {
nextDialog.wrapperPromise.reject(err);
});
} else {
$mdDialog.show(nextDialog.obj)
.then((res) => {
nextDialog.wrapperPromise.resolve(res);
removeLastResolvedFromQueue();
openNextInQueue();
}, (err) => {
nextDialog.wrapperPromise.reject(err);
removeLastResolvedFromQueue();
openNextInQueue();
});
}
}
}
// actual method to call
return function (dialogName, locals) {
return function (dialogName, locals, isNoQueue) {
let wrapperPromise = $q.defer();
const dialogObj = createDialogObject(dialogName, locals);
addToQueue(dialogObj, wrapperPromise);
addToQueue(dialogObj, wrapperPromise, isNoQueue);
// when there are currently no other open dialogs
if (dialogQueue.length === 1) {

View file

@ -53,7 +53,7 @@
// DIRECTIVE METHODS
// -----------------
vm.openAddTask = () => {
Dialogs('ADD_TASK');
Dialogs('ADD_TASK', undefined, true);
};
vm.onTaskDoneChangedUndoneList = (task) => {