update
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
/** @odoo-module */
|
||||
|
||||
import { AttendeeCalendarController } from "@calendar/views/attendee_calendar/attendee_calendar_controller";
|
||||
import { patch } from "@web/core/utils/patch";
|
||||
import { useService } from "@web/core/utils/hooks";
|
||||
import { useState, onWillStart } from "@odoo/owl";
|
||||
|
||||
patch(AttendeeCalendarController.prototype, {
|
||||
setup() {
|
||||
super.setup(...arguments);
|
||||
this.orm = useService("orm");
|
||||
this.notification = useService("notification");
|
||||
this.fusionState = useState({
|
||||
accounts: [],
|
||||
syncing: false,
|
||||
});
|
||||
onWillStart(async () => {
|
||||
await this._loadFusionAccounts();
|
||||
});
|
||||
},
|
||||
|
||||
get fusionAccounts() {
|
||||
return this.fusionState.accounts;
|
||||
},
|
||||
|
||||
get fusionSyncing() {
|
||||
return this.fusionState.syncing;
|
||||
},
|
||||
|
||||
async _loadFusionAccounts() {
|
||||
try {
|
||||
const accounts = await this.orm.call(
|
||||
"fusion.calendar.account",
|
||||
"get_user_accounts_status",
|
||||
[],
|
||||
);
|
||||
this.fusionState.accounts = accounts;
|
||||
} catch {
|
||||
this.fusionState.accounts = [];
|
||||
}
|
||||
},
|
||||
|
||||
async onFusionSyncNow() {
|
||||
this.fusionState.syncing = true;
|
||||
try {
|
||||
const result = await this.orm.call(
|
||||
"fusion.calendar.account",
|
||||
"sync_current_user",
|
||||
[],
|
||||
);
|
||||
if (result.success) {
|
||||
this.notification.add(
|
||||
result.message || "Calendar synced successfully.",
|
||||
{ type: "success" },
|
||||
);
|
||||
await this._loadFusionAccounts();
|
||||
await this.model.load();
|
||||
this.render(true);
|
||||
} else {
|
||||
this.notification.add(
|
||||
result.error || "Sync failed.",
|
||||
{ type: "danger" },
|
||||
);
|
||||
}
|
||||
} catch (e) {
|
||||
this.notification.add(
|
||||
"Sync error: " + (e.message || "Unknown error"),
|
||||
{ type: "danger" },
|
||||
);
|
||||
} finally {
|
||||
this.fusionState.syncing = false;
|
||||
}
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user