ソースを参照

Merge pull request #12466 from shariquerik/user-permission-not-saved-fix

version-14
Suraj Shetty 3年前
committed by GitHub
コミット
abd421fa02
この署名に対応する既知のキーがデータベースに存在しません GPGキーID: 4AEE18F83AFDEB23
5個のファイルの変更23行の追加19行の削除
  1. +2
    -1
      frappe/core/doctype/user_permission/user_permission.js
  2. +4
    -5
      frappe/custom/doctype/customize_form/customize_form.js
  3. +9
    -5
      frappe/public/js/frappe/form/form.js
  4. +3
    -3
      frappe/public/js/frappe/form/toolbar.js
  5. +5
    -5
      frappe/public/js/frappe/model/model.js

+ 2
- 1
frappe/core/doctype/user_permission/user_permission.js ファイルの表示

@@ -44,8 +44,9 @@ frappe.ui.form.on('User Permission', {

set_applicable_for_constraint: frm => {
frm.toggle_reqd('applicable_for', !frm.doc.apply_to_all_doctypes);

if (frm.doc.apply_to_all_doctypes && frm.doc.applicable_for) {
frm.set_value('applicable_for', null);
frm.set_value('applicable_for', null, null, true);
}
},



+ 4
- 5
frappe/custom/doctype/customize_form/customize_form.js ファイルの表示

@@ -14,7 +14,6 @@ frappe.ui.form.on("Customize Form", {
},

onload: function(frm) {
frm.disable_save();
frm.set_query("doc_type", function() {
return {
translate_values: false,
@@ -110,7 +109,7 @@ frappe.ui.form.on("Customize Form", {
},

refresh: function(frm) {
frm.disable_save();
frm.disable_save(true);
frm.page.clear_icons();

if (frm.doc.doc_type) {
@@ -169,7 +168,7 @@ frappe.ui.form.on("Customize Form", {
doc_type = localStorage.getItem("customize_doctype");
}
if (doc_type) {
setTimeout(() => frm.set_value("doc_type", doc_type), 1000);
setTimeout(() => frm.set_value("doc_type", doc_type, false, true), 1000);
}
},

@@ -341,11 +340,11 @@ frappe.customize_form.confirm = function(msg, frm) {
}

frappe.customize_form.clear_locals_and_refresh = function(frm) {
delete frm.doc.__unsaved;
// clear doctype from locals
frappe.model.clear_doc("DocType", frm.doc.doc_type);
delete frappe.meta.docfield_copy[frm.doc.doc_type];

frm.refresh();
}
};

extend_cscript(cur_frm.cscript, new frappe.model.DocTypeController({frm: cur_frm}));

+ 9
- 5
frappe/public/js/frappe/form/form.js ファイルの表示

@@ -246,10 +246,12 @@ frappe.ui.form.Form = class FrappeForm {
var me = this;

// on main doc
frappe.model.on(me.doctype, "*", function(fieldname, value, doc) {
frappe.model.on(me.doctype, "*", function(fieldname, value, doc, skip_dirty_trigger=false) {
// set input
if (cstr(doc.name) === me.docname) {
me.dirty();
if (!skip_dirty_trigger) {
me.dirty();
}

let field = me.fields_dict[fieldname];
field && field.refresh(fieldname);
@@ -953,10 +955,12 @@ frappe.ui.form.Form = class FrappeForm {
this.toolbar.set_primary_action();
}

disable_save() {
disable_save(set_dirty=false) {
// IMPORTANT: this function should be called in refresh event
this.save_disabled = true;
this.toolbar.current_status = null;
// field changes should make form dirty
this.set_dirty = set_dirty;
this.page.clear_primary_action();
}

@@ -1447,7 +1451,7 @@ frappe.ui.form.Form = class FrappeForm {
return doc;
}

set_value(field, value, if_missing) {
set_value(field, value, if_missing, skip_dirty_trigger=false) {
var me = this;
var _set = function(f, v) {
var fieldobj = me.fields_dict[f];
@@ -1467,7 +1471,7 @@ frappe.ui.form.Form = class FrappeForm {
me.refresh_field(f);
return Promise.resolve();
} else {
return frappe.model.set_value(me.doctype, me.doc.name, f, v);
return frappe.model.set_value(me.doctype, me.doc.name, f, v, me.fieldtype, skip_dirty_trigger);
}
}
} else {


+ 3
- 3
frappe/public/js/frappe/form/toolbar.js ファイルの表示

@@ -534,14 +534,14 @@ frappe.ui.form.Toolbar = class Toolbar {
});
}
show_title_as_dirty() {
if(this.frm.save_disabled)
if (this.frm.save_disabled && !this.frm.set_dirty)
return;

if(this.frm.doc.__unsaved) {
if (this.frm.is_dirty()) {
this.page.set_indicator(__("Not Saved"), "orange");
}

$(this.frm.wrapper).attr("data-state", this.frm.doc.__unsaved ? "dirty" : "clean");
$(this.frm.wrapper).attr("data-state", this.frm.is_dirty() ? "dirty" : "clean");
}

show_jump_to_field_dialog() {


+ 5
- 5
frappe/public/js/frappe/model/model.js ファイルの表示

@@ -412,7 +412,7 @@ $.extend(frappe.model, {
}
},

set_value: function(doctype, docname, fieldname, value, fieldtype) {
set_value: function(doctype, docname, fieldname, value, fieldtype, skip_dirty_trigger=false) {
/* help: Set a value locally (if changed) and execute triggers */

var doc;
@@ -438,11 +438,11 @@ $.extend(frappe.model, {
}

doc[key] = value;
tasks.push(() => frappe.model.trigger(key, value, doc));
tasks.push(() => frappe.model.trigger(key, value, doc, skip_dirty_trigger));
} else {
// execute link triggers (want to reselect to execute triggers)
if(in_list(["Link", "Dynamic Link"], fieldtype) && doc) {
tasks.push(() => frappe.model.trigger(key, value, doc));
tasks.push(() => frappe.model.trigger(key, value, doc, skip_dirty_trigger));
}
}
});
@@ -467,7 +467,7 @@ $.extend(frappe.model, {
frappe.model.events[doctype][fieldname].push(fn);
},

trigger: function(fieldname, value, doc) {
trigger: function(fieldname, value, doc, skip_dirty_trigger=false) {
const tasks = [];

function enqueue_events(events) {
@@ -477,7 +477,7 @@ $.extend(frappe.model, {
if (!fn) continue;

tasks.push(() => {
const return_value = fn(fieldname, value, doc);
const return_value = fn(fieldname, value, doc, skip_dirty_trigger);

// if the trigger returns a promise, return it,
// or use the default promise frappe.after_ajax


読み込み中…
キャンセル
保存