odoo18/addons/hr_expense/static/src/mixins/qrcode.js

47 lines
1.3 KiB
JavaScript

/** @odoo-module **/
import { _t } from "@web/core/l10n/translation";
import { useService } from "@web/core/utils/hooks";
import { onMounted, onPatched, useRef } from "@odoo/owl";
export const ExpenseMobileQRCode = (T) => class ExpenseMobileQRCode extends T {
setup() {
super.setup();
this.root = useRef('root');
this.actionService = useService('action');
onMounted(this.bindAppsIcons);
onPatched(this.bindAppsIcons);
}
bindAppsIcons() {
const apps = this.root.el.querySelectorAll('.o_expense_mobile_app');
if (!apps) {
return;
}
const handler = this.handleClick.bind(this);
for (const app of apps) {
app.addEventListener('click', handler);
}
}
handleClick(ev) {
ev.preventDefault();
ev.stopPropagation();
const url = ev.currentTarget && ev.currentTarget.href;
if (!this.env.isSmall) {
this.actionService.doAction({
name: _t("Download our App"),
type: "ir.actions.client",
tag: 'expense_qr_code_modal',
target: "new",
params: { url },
});
} else {
this.actionService.doAction({ type: "ir.actions.act_url", url });
}
}
};