瀏覽代碼

[fix] attach document and docfields to layout fields list before triggering refresh event via script manager. Fixes #1158

version-14
Anand Doshi 10 年之前
父節點
當前提交
68c3b10350
共有 2 個檔案被更改,包括 22 行新增13 行删除
  1. +19
    -13
      frappe/public/js/frappe/form/layout.js
  2. +3
    -0
      frappe/public/js/legacy/form.js

+ 19
- 13
frappe/public/js/frappe/form/layout.js 查看文件

@@ -37,19 +37,8 @@ frappe.ui.form.Layout = Class.extend({
this.wrapper.find(".empty-form-alert").remove(); this.wrapper.find(".empty-form-alert").remove();
} }


for(var i=0, l=this.fields_list.length; i<l; i++) {
var fieldobj = this.fields_list[i];
if(me.doc) {
fieldobj.doc = me.doc;
fieldobj.doctype = me.doc.doctype;
fieldobj.docname = me.doc.name;
fieldobj.df = frappe.meta.get_docfield(me.doc.doctype,
fieldobj.df.fieldname, me.frm.doc.name);
// on form change, permissions can change
fieldobj.perm = me.frm.perm;
};
fieldobj.refresh && fieldobj.refresh();
}
// NOTE this might seem redundant at first, but it needs to be executed when frm.refresh_fields is called
me.attach_doc_and_docfields(true);


if(this.frm && this.frm.wrapper) { if(this.frm && this.frm.wrapper) {
$(this.frm.wrapper).trigger("refresh-fields"); $(this.frm.wrapper).trigger("refresh-fields");
@@ -72,6 +61,23 @@ frappe.ui.form.Layout = Class.extend({
// refresh sections // refresh sections
this.refresh_sections(); this.refresh_sections();
}, },
attach_doc_and_docfields: function(refresh) {
var me = this;
for(var i=0, l=this.fields_list.length; i<l; i++) {
var fieldobj = this.fields_list[i];
if(me.doc) {
fieldobj.doc = me.doc;
fieldobj.doctype = me.doc.doctype;
fieldobj.docname = me.doc.name;
fieldobj.df = frappe.meta.get_docfield(me.doc.doctype,
fieldobj.df.fieldname, me.frm.doc.name);

// on form change, permissions can change
fieldobj.perm = me.frm.perm;
};
refresh && fieldobj.refresh && fieldobj.refresh();
}
},
render: function() { render: function() {
var me = this; var me = this;




+ 3
- 0
frappe/public/js/legacy/form.js 查看文件

@@ -400,6 +400,9 @@ _f.Frm.prototype.refresh = function(docname) {


_f.Frm.prototype.render_form = function() { _f.Frm.prototype.render_form = function() {
if(!this.meta.istable) { if(!this.meta.istable) {
this.layout.doc = this.doc;
this.layout.attach_doc_and_docfields()

this.sidebar = new frappe.ui.form.Sidebar({ this.sidebar = new frappe.ui.form.Sidebar({
frm: this, frm: this,
page: this.page page: this.page


Loading…
取消
儲存