mirror of
https://github.com/frappe/frappe.git
synced 2024-06-13 09:42:20 +00:00
123 lines
3.2 KiB
JavaScript
123 lines
3.2 KiB
JavaScript
// Copyright (c) 2018, Frappe Technologies and contributors
|
|
// For license information, please see license.txt
|
|
frappe.provide("frappe.auto_repeat");
|
|
|
|
frappe.ui.form.on("Auto Repeat", {
|
|
setup: function (frm) {
|
|
frm.fields_dict["reference_doctype"].get_query = function () {
|
|
return {
|
|
query: "frappe.automation.doctype.auto_repeat.auto_repeat.get_auto_repeat_doctypes",
|
|
};
|
|
};
|
|
|
|
frm.fields_dict["reference_document"].get_query = function () {
|
|
return {
|
|
filters: {
|
|
auto_repeat: "",
|
|
},
|
|
};
|
|
};
|
|
|
|
frm.fields_dict["print_format"].get_query = function () {
|
|
return {
|
|
filters: {
|
|
doc_type: frm.doc.reference_doctype,
|
|
},
|
|
};
|
|
};
|
|
},
|
|
|
|
refresh: function (frm) {
|
|
// auto repeat message
|
|
if (frm.is_new()) {
|
|
let customize_form_link = `<a href="/app/customize-form">${__("Customize Form")}</a>`;
|
|
frm.dashboard.set_headline(
|
|
__('To configure Auto Repeat, enable "Allow Auto Repeat" from {0}.', [
|
|
customize_form_link,
|
|
])
|
|
);
|
|
}
|
|
|
|
// view document button
|
|
if (!frm.is_dirty()) {
|
|
let label = __("View {0}", [__(frm.doc.reference_doctype)]);
|
|
frm.add_custom_button(label, () =>
|
|
frappe.set_route("List", frm.doc.reference_doctype, { auto_repeat: frm.doc.name })
|
|
);
|
|
}
|
|
|
|
// auto repeat schedule
|
|
frappe.auto_repeat.render_schedule(frm);
|
|
|
|
frm.trigger("toggle_submit_on_creation");
|
|
},
|
|
|
|
reference_doctype: function (frm) {
|
|
frm.trigger("toggle_submit_on_creation");
|
|
},
|
|
|
|
toggle_submit_on_creation: function (frm) {
|
|
// submit on creation checkbox
|
|
if (frm.doc.reference_doctype) {
|
|
frappe.model.with_doctype(frm.doc.reference_doctype, () => {
|
|
let meta = frappe.get_meta(frm.doc.reference_doctype);
|
|
frm.toggle_display("submit_on_creation", meta.is_submittable);
|
|
});
|
|
}
|
|
},
|
|
|
|
template: function (frm) {
|
|
if (frm.doc.template) {
|
|
frappe.model.with_doc("Email Template", frm.doc.template, () => {
|
|
let email_template = frappe.get_doc("Email Template", frm.doc.template);
|
|
frm.set_value("subject", email_template.subject);
|
|
frm.set_value("message", email_template.response);
|
|
frm.refresh_field("subject");
|
|
frm.refresh_field("message");
|
|
});
|
|
}
|
|
},
|
|
|
|
get_contacts: function (frm) {
|
|
frm.call("fetch_linked_contacts");
|
|
},
|
|
|
|
preview_message: function (frm) {
|
|
if (frm.doc.message) {
|
|
frappe.call({
|
|
method: "frappe.automation.doctype.auto_repeat.auto_repeat.generate_message_preview",
|
|
args: {
|
|
reference_dt: frm.doc.reference_doctype,
|
|
reference_doc: frm.doc.reference_document,
|
|
subject: frm.doc.subject,
|
|
message: frm.doc.message,
|
|
},
|
|
callback: function (r) {
|
|
if (r.message) {
|
|
frappe.msgprint(r.message.message, r.message.subject);
|
|
}
|
|
},
|
|
});
|
|
} else {
|
|
frappe.msgprint(__("Please setup a message first"), __("Message not setup"));
|
|
}
|
|
},
|
|
});
|
|
|
|
frappe.auto_repeat.render_schedule = function (frm) {
|
|
if (!frm.is_dirty() && frm.doc.status !== "Disabled") {
|
|
frm.call("get_auto_repeat_schedule").then((r) => {
|
|
frm.dashboard.reset();
|
|
frm.dashboard.add_section(
|
|
frappe.render_template("auto_repeat_schedule", {
|
|
schedule_details: r.message || [],
|
|
}),
|
|
__("Auto Repeat Schedule")
|
|
);
|
|
frm.dashboard.show();
|
|
});
|
|
} else {
|
|
frm.dashboard.hide();
|
|
}
|
|
};
|