Change Submit Confirm Message

I want to change the comfirm message that appears when user click on submit how can i change

@saloni Please override this frappe js file code then your problem is resolved

@saloni Please check it out function in your custom app

form.js file code

const FrappeForm = frappe.ui.form.Form

FrappeForm.prototype.savesubmit = function (btn, callback, on_error) {
        var me = this;
        return new Promise((resolve) => {
            // Custom logic before submission (optional)
            console.log("Custom logic before submission");
            
            // Call the original save submit logic
            this.validate_form_action("Submit");

            frappe.confirm(
                // change submit message from your message
               __("Permanently Submit {0}?", [this.docname]),

            function () {
                    frappe.validated = true;
                    me.script_manager.trigger("before_submit").then(function () {
                        if (!frappe.validated) {
                            return me.handle_save_fail(btn, on_error);
                        }

                        me.save(
                            "Submit",
                            function (r) {
                                if (r.exc) {
                                    me.handle_save_fail(btn, on_error);
                                } else {
                                    // Custom action after successful submission (optional)
                                    console.log("Custom action after submit");

                                    frappe.utils.play_sound("submit");
                                    callback && callback();
                                    me.script_manager
                                        .trigger("on_submit")
                                        .then(() => resolve(me))
                                        .then(() => {
                                            if (frappe.route_hooks.after_submit) {
                                                let route_callback =
                                                    frappe.route_hooks.after_submit;
                                                delete frappe.route_hooks.after_submit;
                                                route_callback(me);
                                            }
                                        });
                                }
                            },
                            btn,
                            () => me.handle_save_fail(btn, on_error),
                            resolve
                        );
                    });
                },
                () => me.handle_save_fail(btn, on_error)
            );
        });
};

custom_app_name.bundle.js file create and add the below code and please make sure both form.js and custom_app_name.bundle.js file is put in your custom app public folder

import “./form.js”;

hooks.pt file

app_include_js = [“custom_app_name.bundle.js”]

then run this command

bench build
bench --site site_name clear-website-cache
bench --site site_name clear-cache
bench restart

1 Like

Thanks for reply…
I need to change the confirm messsage only in one doctype

Hello @saloni,

You can write condition for specific doctype as below.

savesubmit(btn, callback, on_error) {
    var me = this;
    return new Promise((resolve) => {
        this.validate_form_action("Submit");

        // Customize the confirmation message for a specific Doctype
        let confirmation_message = __("Permanently Submit {0}?", [this.docname]);
        if (me.doctype === "Custom Doctype Name") {
            confirmation_message = __("Are you sure you want to submit this {0}?", [this.docname]);
        }

        frappe.confirm(
            confirmation_message,
            function () {
                frappe.validated = true;
                me.script_manager.trigger("before_submit").then(function () {
                    if (!frappe.validated) {
                        return me.handle_save_fail(btn, on_error);
                    }

                    me.save(
                        "Submit",
                        function (r) {
                            if (r.exc) {
                                me.handle_save_fail(btn, on_error);
                            } else {
                                frappe.utils.play_sound("submit");
                                callback && callback();
                                me.script_manager
                                    .trigger("on_submit")
                                    .then(() => resolve(me))
                                    .then(() => {
                                        if (frappe.route_hooks.after_submit) {
                                            let route_callback =
                                                frappe.route_hooks.after_submit;
                                            delete frappe.route_hooks.after_submit;
                                            route_callback(me);
                                        }
                                    });
                            }
                        },
                        btn,
                        () => me.handle_save_fail(btn, on_error),
                        resolve
                    );
                });
            },
            () => me.handle_save_fail(btn, on_error)
        );
    });
}

1 Like