feat: toggle between read and edit mode
This commit is contained in:
parent
3a35a22d5a
commit
df22b98f0c
1 changed files with 17 additions and 13 deletions
|
|
@ -2,21 +2,23 @@ frappe.ui.form.on("Note", {
|
|||
refresh: function (frm) {
|
||||
if (!frm.is_new()) {
|
||||
frm.is_note_editable = false;
|
||||
frm.events.set_editable(frm, frm.is_note_editable);
|
||||
|
||||
if (frm.has_perm("write")) {
|
||||
frm.add_custom_button(__("Editing mode"), function () {
|
||||
frm.is_note_editable = !frm.is_note_editable;
|
||||
frm.events.set_editable(frm, frm.is_note_editable);
|
||||
});
|
||||
}
|
||||
frm.events.set_editable(frm);
|
||||
}
|
||||
},
|
||||
set_editable: function (frm, editable) {
|
||||
set_editable: function (frm) {
|
||||
if (frm.has_perm("write")) {
|
||||
const read_label = __("Read mode");
|
||||
const edit_label = __("Edit mode");
|
||||
frm.remove_custom_button(frm.is_note_editable ? edit_label : read_label);
|
||||
frm.add_custom_button(frm.is_note_editable ? read_label : edit_label, function () {
|
||||
frm.is_note_editable = !frm.is_note_editable;
|
||||
frm.events.set_editable(frm);
|
||||
});
|
||||
}
|
||||
// toggle "read_only" for content and "hidden" of all other fields
|
||||
|
||||
// content read_only
|
||||
frm.set_df_property("content", "read_only", editable ? 0 : 1);
|
||||
frm.set_df_property("content", "read_only", frm.is_note_editable ? 0 : 1);
|
||||
|
||||
// hide all other fields
|
||||
for (const field of frm.meta.fields) {
|
||||
|
|
@ -24,14 +26,16 @@ frappe.ui.form.on("Note", {
|
|||
frm.set_df_property(
|
||||
field.fieldname,
|
||||
"hidden",
|
||||
editable && !field.hidden && frm.get_perm(field.permlevel, "write") ? 0 : 1
|
||||
frm.is_note_editable && !field.hidden && frm.get_perm(field.permlevel, "write")
|
||||
? 0
|
||||
: 1
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// no label, description for content either
|
||||
frm.get_field("content").toggle_label(editable);
|
||||
frm.get_field("content").toggle_description(editable);
|
||||
frm.get_field("content").toggle_label(frm.is_note_editable);
|
||||
frm.get_field("content").toggle_description(frm.is_note_editable);
|
||||
},
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue