From c9d3449bd3e44bea3d5fa253e75c1b9f1bfa6410 Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Wed, 11 Jan 2023 22:50:58 +0530 Subject: [PATCH] fix: cmd/ctrl+s to save the form --- .../public/js/form_builder/components/FormBuilder.vue | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/frappe/public/js/form_builder/components/FormBuilder.vue b/frappe/public/js/form_builder/components/FormBuilder.vue index 6145a3cecc..e23fa72fc9 100644 --- a/frappe/public/js/form_builder/components/FormBuilder.vue +++ b/frappe/public/js/form_builder/components/FormBuilder.vue @@ -3,7 +3,7 @@ import Sidebar from "./Sidebar.vue"; import Tabs from "./Tabs.vue"; import { computed, onMounted, watch, ref } from "vue"; import { useStore } from "../store"; -import { onClickOutside } from "@vueuse/core"; +import { onClickOutside, useMagicKeys, whenever } from "@vueuse/core"; let store = useStore(); @@ -14,6 +14,14 @@ let should_render = computed(() => { let container = ref(null); onClickOutside(container, () => store.selected_field = null); +// cmd/ctrl + s to save the form +const { meta_s, ctrl_s } = useMagicKeys(); +whenever(() => meta_s.value || ctrl_s.value, () => { + if (store.dirty) { + store.save_changes(); + } +}); + function setup_change_doctype_dialog() { store.page.$title_area.on("click", () => { let dialog = new frappe.ui.Dialog({