From e38f1fa82b4c003102cd783da58cb2fdb2f6ea6d Mon Sep 17 00:00:00 2001 From: Johannes Millan Date: Fri, 27 Jan 2017 03:26:42 +0100 Subject: [PATCH] allow no queue option for dialogs --- app/scripts/_app.js | 2 +- app/scripts/dialogs/dialogs-s.js | 41 ++++++++++++++++++---------- app/scripts/work-view/work-view-d.js | 2 +- 3 files changed, 29 insertions(+), 16 deletions(-) diff --git a/app/scripts/_app.js b/app/scripts/_app.js index ed8bc66923..4c5d3f98df 100644 --- a/app/scripts/_app.js +++ b/app/scripts/_app.js @@ -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); } } diff --git a/app/scripts/dialogs/dialogs-s.js b/app/scripts/dialogs/dialogs-s.js index 6fb9fa01de..76110a5049 100644 --- a/app/scripts/dialogs/dialogs-s.js +++ b/app/scripts/dialogs/dialogs-s.js @@ -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) { diff --git a/app/scripts/work-view/work-view-d.js b/app/scripts/work-view/work-view-d.js index f469dea747..4f12771f24 100644 --- a/app/scripts/work-view/work-view-d.js +++ b/app/scripts/work-view/work-view-d.js @@ -53,7 +53,7 @@ // DIRECTIVE METHODS // ----------------- vm.openAddTask = () => { - Dialogs('ADD_TASK'); + Dialogs('ADD_TASK', undefined, true); }; vm.onTaskDoneChangedUndoneList = (task) => {