From 6f002a7c320350182886b2b88845d5aa6875cf30 Mon Sep 17 00:00:00 2001 From: Jacques Kang Date: Wed, 25 Nov 2015 21:20:58 +0100 Subject: [PATCH 1/3] Add IonicPopupConfirmPromise confirm(options) Show a simple confirm popup with a Cancel and OK button. Resolves the promise with true if the user presses the OK button, and false if the user presses the Cancel button. (Ref: http://ionicframework.com/docs/api/service/$ionicPopup/) --- ionic/ionic.d.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ionic/ionic.d.ts b/ionic/ionic.d.ts index 688a253ed..3014d25a8 100644 --- a/ionic/ionic.d.ts +++ b/ionic/ionic.d.ts @@ -246,10 +246,13 @@ declare module ionic { interface IonicPopupService { show(options: IonicPopupFullOptions): IonicPopupPromise; alert(options: IonicPopupAlertOptions): IonicPopupPromise; - confirm(options: IonicPopupConfirmOptions): IonicPopupPromise; + confirm(options: IonicPopupConfirmOptions): IonicPopupConfirmPromise; prompt(options: IonicPopupPromptOptions): IonicPopupPromise; } + interface IonicPopupConfirmPromise extends ng.IPromise { + close(value?: boolean): void; + } interface IonicPopupPromise extends ng.IPromise { close(value?: any): any; } From c000d73be493f203342c3a6d699fc5702a248272 Mon Sep 17 00:00:00 2001 From: Jacques Kang Date: Wed, 25 Nov 2015 21:24:39 +0100 Subject: [PATCH 2/3] Update test for $ionicPopup.confirm() --- ionic/ionic-tests.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ionic/ionic-tests.ts b/ionic/ionic-tests.ts index ee8647b08..cfb882530 100644 --- a/ionic/ionic-tests.ts +++ b/ionic/ionic-tests.ts @@ -249,7 +249,7 @@ class IonicTestController { okType: "okType", cancelText: "Cancel", cancelType: "cancelType" - }).then(() => console.log("popover shown")) + }).then((result) => console.log(result === true ? "confirmed": "cancelled")) this.$ionicPopup.confirm({ title: "title", subTitle: "subTitle", From 770a3bb179aab719b753a62001d8cb96c95cb98b Mon Sep 17 00:00:00 2001 From: Jacques Kang Date: Wed, 25 Nov 2015 21:55:00 +0100 Subject: [PATCH 3/3] Improve IonicActionSheetOptions Ref: http://ionicframework.com/docs/api/service/$ionicActionSheet/ --- ionic/ionic-tests.ts | 12 +++++++++--- ionic/ionic.d.ts | 9 ++++++--- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/ionic/ionic-tests.ts b/ionic/ionic-tests.ts index cfb882530..c68846715 100644 --- a/ionic/ionic-tests.ts +++ b/ionic/ionic-tests.ts @@ -84,13 +84,19 @@ class IonicTestController { private testActionSheet(): void { var closeActionSheetFn: ()=>void = this.$ionicActionSheet.show({ - buttons: [], + buttons: [{ text: 'A button' }], titleText: "titleText", cancelText: "cancelText", destructiveText: "destructiveText", cancel: ()=>{ console.log("cancel"); }, - buttonClicked: ()=>{ console.log("buttonClicked"); }, - destructiveButtonClicked: ()=>{ console.log("destructiveButtonClicked"); }, + buttonClicked: (index)=>{ + console.log("buttonClicked"); + return index === 0; + }, + destructiveButtonClicked: ()=>{ + console.log("destructiveButtonClicked"); + return false; + }, cancelOnStateChange: true, cssClass: "cssClass" }); diff --git a/ionic/ionic.d.ts b/ionic/ionic.d.ts index 3014d25a8..bb009df51 100644 --- a/ionic/ionic.d.ts +++ b/ionic/ionic.d.ts @@ -102,14 +102,17 @@ declare module ionic { interface IonicActionSheetService { show(options: IonicActionSheetOptions): ()=>void; } + interface IonicActionSheetButton { + text: string; + } interface IonicActionSheetOptions { - buttons?: Array; + buttons?: Array; titleText?: string; cancelText?: string; destructiveText?: string; cancel?: ()=>any; - buttonClicked?: (index: any)=>any; - destructiveButtonClicked?: ()=>any; + buttonClicked?: (index: number)=>boolean; + destructiveButtonClicked?: ()=>boolean; cancelOnStateChange?: boolean; cssClass?: string; }