From bdd2013fc9207d6c2e23cc45ddb9f8dc72b9754f Mon Sep 17 00:00:00 2001 From: "Levi Siuzdak (sile)" Date: Tue, 27 Feb 2024 15:25:51 +0100 Subject: [PATCH] [FIX] hr_attendance: work around geolocator for iOS Versions -------- - 17.0+ Steps ----- 1. Use iOS app; 2. click on red dot on top; 3. click check in. Issue ----- Nothing happens. Cause ----- The iOS app cannot request the user's location. Commit 1acd0b6c5d7ce292f670882f6ff48a2ff9db05f0 attempted to fix this by first checking whether `navigator.geolocation` exists, but the cause is likely with its `getCurrentPosition` method instead of its existence. Solution -------- Instead of checking for `navigator.geolocation`, use `isIosApp` to skip the geolocation part when using the iOS app. opw-3734385 closes odoo/odoo#155588 Signed-off-by: Sofie Gvaladze (sgv) --- .../src/components/attendance_menu/attendance_menu.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/addons/hr_attendance/static/src/components/attendance_menu/attendance_menu.js b/addons/hr_attendance/static/src/components/attendance_menu/attendance_menu.js index 0c727b05d7a..8cb26e3d8d1 100644 --- a/addons/hr_attendance/static/src/components/attendance_menu/attendance_menu.js +++ b/addons/hr_attendance/static/src/components/attendance_menu/attendance_menu.js @@ -8,6 +8,7 @@ import { deserializeDateTime } from "@web/core/l10n/dates"; import { registry } from "@web/core/registry"; import { useService } from "@web/core/utils/hooks"; import { useDebounced } from "@web/core/utils/timing"; +import { isIosApp } from "@web/core/browser/feature_detection"; const { DateTime } = luxon; export class ActivityMenu extends Component { @@ -52,7 +53,8 @@ export class ActivityMenu extends Component { } async signInOut() { - if(navigator.geolocation){ + // iOS app lacks permissions to call `getCurrentPosition` + if (!isIosApp()) { navigator.geolocation.getCurrentPosition( async ({coords: {latitude, longitude}}) => { await this.rpc("/hr_attendance/systray_check_in_out", { @@ -66,8 +68,7 @@ export class ActivityMenu extends Component { await this.searchReadEmployee() } ) - } - else{ + } else { await this.rpc("/hr_attendance/systray_check_in_out") await this.searchReadEmployee() }