diff --git a/scripts/langindex.json b/scripts/langindex.json index d5a8c1769..5200cc6d6 100644 --- a/scripts/langindex.json +++ b/scripts/langindex.json @@ -502,6 +502,7 @@ "addon.mod_data.foundrecords": "data", "addon.mod_data.gettinglocation": "local_moodlemobileapp", "addon.mod_data.latlongboth": "data", + "addon.mod_data.locationpermissiondenied": "local_moodlemobileapp", "addon.mod_data.menuchoose": "data", "addon.mod_data.modulenameplural": "data", "addon.mod_data.more": "data", diff --git a/src/addon/mod/data/fields/latlong/component/latlong.ts b/src/addon/mod/data/fields/latlong/component/latlong.ts index 2e154961e..869f19c63 100644 --- a/src/addon/mod/data/fields/latlong/component/latlong.ts +++ b/src/addon/mod/data/fields/latlong/component/latlong.ts @@ -117,9 +117,19 @@ export class AddonModDataFieldLatlongComponent extends AddonModDataFieldPluginCo this.form.controls['f_' + this.field.id + '_0'].setValue(result.coords.latitude); this.form.controls['f_' + this.field.id + '_1'].setValue(result.coords.longitude); }).catch((error) => { + if (this.isPermissionDeniedError(error)) { + this.domUtils.showErrorModal('addon.mod_data.locationpermissiondenied', true); + + return; + } + this.domUtils.showErrorModalDefault(error, 'Error getting location'); }).finally(() => { modal.dismiss(); }); } + + protected isPermissionDeniedError(error?: any): boolean { + return error && 'code' in error && 'PERMISSION_DENIED' in error && error.code === error.PERMISSION_DENIED; + } } diff --git a/src/addon/mod/data/lang/en.json b/src/addon/mod/data/lang/en.json index 54de61215..de89c6bca 100644 --- a/src/addon/mod/data/lang/en.json +++ b/src/addon/mod/data/lang/en.json @@ -22,6 +22,7 @@ "foundrecords": "Found records: {{$a.num}}/{{$a.max}} (Reset filters)", "gettinglocation": "Getting location", "latlongboth": "Both latitude and longitude are required.", + "locationpermissiondenied": "Permission to access your location has been denied.", "menuchoose": "Choose...", "modulenameplural": "Databases", "more": "More", diff --git a/src/assets/lang/en.json b/src/assets/lang/en.json index 93693ba6f..e0fb0fd71 100644 --- a/src/assets/lang/en.json +++ b/src/assets/lang/en.json @@ -501,6 +501,7 @@ "addon.mod_data.foundrecords": "Found records: {{$a.num}}/{{$a.max}} (Reset filters)", "addon.mod_data.gettinglocation": "Getting location", "addon.mod_data.latlongboth": "Both latitude and longitude are required.", + "addon.mod_data.locationpermissiondenied": "Permission to access your location has been denied.", "addon.mod_data.menuchoose": "Choose...", "addon.mod_data.modulenameplural": "Databases", "addon.mod_data.more": "More",