From d5f704a67cc2d5940c34568c644c282c039109b2 Mon Sep 17 00:00:00 2001 From: "Lina (liew)" Date: Fri, 15 Mar 2024 10:58:38 +0100 Subject: [PATCH] [FIX] portal: add loading on sign button Show a loading spinner and disable sign button on orders to indicate that the request is processing avoiding users clicking multiple times and getting an error, that the order does not require signing opw-3709064 closes odoo/odoo#157836 Signed-off-by: Valentin Chevalier --- addons/portal/static/src/signature_form/signature_form.js | 7 +++++++ addons/portal/static/src/signature_form/signature_form.xml | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/addons/portal/static/src/signature_form/signature_form.js b/addons/portal/static/src/signature_form/signature_form.js index 5da333a1387..5fdb283fd98 100644 --- a/addons/portal/static/src/signature_form/signature_form.js +++ b/addons/portal/static/src/signature_form/signature_form.js @@ -1,6 +1,7 @@ /** @odoo-module **/ import { Component, onMounted, useRef, useState } from "@odoo/owl"; +import dom from "@web/legacy/js/core/dom"; import { _t } from "@web/core/l10n/translation"; import { registry } from "@web/core/registry"; import { redirect } from "@web/core/utils/urls"; @@ -62,10 +63,16 @@ class SignatureForm extends Component { * @returns {Promise} */ async onClickSubmit() { + const button = document.querySelector('.o_portal_sign_submit') + const icon = button.removeChild(button.firstChild) + const restoreBtnLoading = dom.addButtonLoadingEffect(button); + const name = this.signature.name; const signature = this.signature.getSignatureImage()[1]; const data = await this.rpc(this.props.callUrl, { name, signature }); if (data.force_refresh) { + restoreBtnLoading(); + button.prepend(icon) if (data.redirect_url) { redirect(data.redirect_url); } else { diff --git a/addons/portal/static/src/signature_form/signature_form.xml b/addons/portal/static/src/signature_form/signature_form.xml index d0af26a32d7..71b9631361d 100644 --- a/addons/portal/static/src/signature_form/signature_form.xml +++ b/addons/portal/static/src/signature_form/signature_form.xml @@ -22,7 +22,7 @@