From 53d4ddca43b114414f1b81c58944064559a3e823 Mon Sep 17 00:00:00 2001 From: Pruthvi Patel Date: Tue, 18 Jan 2022 13:24:28 +0530 Subject: [PATCH] fix: Recursive routing for Form route (#15539) Co-authored-by: Suraj Shetty <13928957+surajshetty3416@users.noreply.github.com> --- frappe/public/js/frappe/router.js | 7 ++++--- frappe/public/js/frappe/views/formview.js | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/frappe/public/js/frappe/router.js b/frappe/public/js/frappe/router.js index 7874ffcdde..4fcf0dbd14 100644 --- a/frappe/public/js/frappe/router.js +++ b/frappe/public/js/frappe/router.js @@ -282,7 +282,7 @@ frappe.router = { resolve(); }); }, 100); - }); + }).finally(() => frappe.route_flags = {}); }, get_route_from_arguments(route) { @@ -374,8 +374,9 @@ frappe.router = { // change the URL and call the router if (window.location.pathname !== url) { - // push state so the browser looks fine - history.pushState(null, null, url); + // push/replace state so the browser looks fine + const method = frappe.route_flags.replace_route ? "replaceState" : "pushState"; + history[method](null, null, url); // now process the route this.route(); diff --git a/frappe/public/js/frappe/views/formview.js b/frappe/public/js/frappe/views/formview.js index 6708a6ffb1..5da11afd71 100644 --- a/frappe/public/js/frappe/views/formview.js +++ b/frappe/public/js/frappe/views/formview.js @@ -98,6 +98,7 @@ frappe.views.FormFactory = class FormFactory extends frappe.views.Factory { if (new_name===name) { this.render(doctype_layout, name); } else { + frappe.route_flags.replace_route = true; frappe.set_route("Form", doctype_layout, new_name); } }