From f3debfab1fd8cc360bd6a9ace9a1d0d856607e2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Mon, 26 Aug 2019 10:12:48 +0200 Subject: [PATCH 1/2] MOBILE-3068 ionic: Close modals before going back --- src/app/app.component.ts | 13 +++++++++++++ src/app/app.scss | 5 +++++ src/components/context-menu/context-menu.ts | 2 +- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/app/app.component.ts b/src/app/app.component.ts index cd0200f8d..96c56a18a 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -65,6 +65,19 @@ export class MoodleMobileApp implements OnInit { app.setElementClass('platform-windows', true); } } + + // Register back button action to allow closing modals before anything else. + this.appProvider.registerBackButtonAction(() => { + // Following function is hidden in Ionic Code, however there's no solution for that. + const portal = app._getActivePortal(); + if (portal) { + portal.pop(); + + return true; + } + + return false; + }, 2000); }); } diff --git a/src/app/app.scss b/src/app/app.scss index 9fbf324f0..529257037 100644 --- a/src/app/app.scss +++ b/src/app/app.scss @@ -1012,6 +1012,11 @@ ion-app.app-root { ion-alert .alert-checkbox-button .alert-checkbox-label { white-space: normal; } + + ion-backdrop { + transition: opacity 100ms ease-in-out; + opacity: .1; + } } @each $color-name, $color-base, $color-contrast in get-colors($colors) { diff --git a/src/components/context-menu/context-menu.ts b/src/components/context-menu/context-menu.ts index ff6413b67..42fca4504 100644 --- a/src/components/context-menu/context-menu.ts +++ b/src/components/context-menu/context-menu.ts @@ -178,7 +178,7 @@ export class CoreContextMenuComponent implements OnInit, OnDestroy { showContextMenu(event: MouseEvent): void { if (!this.expanded) { const popover = this.popoverCtrl.create(CoreContextMenuPopoverComponent, - { title: this.title, items: this.items, id: this.uniqueId }); + { title: this.title, items: this.items, id: this.uniqueId, showBackdrop: true }); popover.onDidDismiss(() => { this.expanded = false; From 330f1741f942c8f7ddd9791f5e4881e59257a930 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Mon, 26 Aug 2019 11:46:20 +0200 Subject: [PATCH 2/2] MOBILE-3068 course: Check action is avalaible before navigating --- src/core/course/providers/helper.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/course/providers/helper.ts b/src/core/course/providers/helper.ts index 36738cff8..73d30973c 100644 --- a/src/core/course/providers/helper.ts +++ b/src/core/course/providers/helper.ts @@ -1170,7 +1170,7 @@ export class CoreCourseHelperProvider { module.handlerData = this.moduleDelegate.getModuleDataFor(module.modname, module, courseId, sectionId); - if (navCtrl) { + if (navCtrl && module.handlerData && module.handlerData.action) { // If the link handler for this module passed through navCtrl, we can use the module's handler to navigate cleanly. // Otherwise, we will redirect below. modal.dismiss();