MOBILE-2567 database: Display confirm before deleting an entry

main
Dani Palou 2018-09-05 11:34:40 +02:00
parent d15165ad98
commit d6af09f799
1 changed files with 30 additions and 23 deletions

View File

@ -13,6 +13,7 @@
// limitations under the License.
import { Injectable } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';
import { CoreContentLinksHandlerBase } from '@core/contentlinks/classes/base-handler';
import { CoreContentLinksAction } from '@core/contentlinks/providers/delegate';
import { AddonModDataProvider } from './data';
@ -31,7 +32,8 @@ export class AddonModDataDeleteLinkHandler extends CoreContentLinksHandlerBase {
pattern = /\/mod\/data\/view\.php.*([\?\&](d|delete)=\d+)/;
constructor(private dataProvider: AddonModDataProvider, private courseProvider: CoreCourseProvider,
private domUtils: CoreDomUtilsProvider, private eventsProvider: CoreEventsProvider) {
private domUtils: CoreDomUtilsProvider, private eventsProvider: CoreEventsProvider,
private translate: TranslateService) {
super();
}
@ -66,11 +68,13 @@ export class AddonModDataDeleteLinkHandler extends CoreContentLinksHandlerBase {
CoreContentLinksAction[] | Promise<CoreContentLinksAction[]> {
return [{
action: (siteId, navCtrl?): void => {
this.domUtils.showConfirm(this.translate.instant('addon.mod_data.confirmdeleterecord')).then(() => {
const modal = this.domUtils.showModalLoading(),
dataId = parseInt(params.d, 10),
entryId = parseInt(params.delete, 10);
this.getActivityCourseIdIfNotSet(dataId, siteId, courseId).then((cId) => {
return this.getActivityCourseIdIfNotSet(dataId, siteId, courseId).then((cId) => {
courseId = cId;
// Delete entry.
@ -93,6 +97,9 @@ export class AddonModDataDeleteLinkHandler extends CoreContentLinksHandlerBase {
}).finally(() => {
modal.dismiss();
});
}).catch(() => {
// Nothing to do.
});
}
}];
}