Merge branch 'hotfix'
This commit is contained in:
commit
d58c1c88e2
3 changed files with 34 additions and 19 deletions
|
|
@ -14,7 +14,7 @@ import os, sys, importlib, inspect, json
|
|||
from .exceptions import *
|
||||
from .utils.jinja import get_jenv, get_template, render_template, get_email_from_template
|
||||
|
||||
__version__ = '10.1.9'
|
||||
__version__ = '10.1.10'
|
||||
__title__ = "Frappe Framework"
|
||||
|
||||
local = Local()
|
||||
|
|
|
|||
|
|
@ -103,11 +103,17 @@ $.extend(frappe.model, {
|
|||
// update values in the existing local doc instead of replacing
|
||||
let local_doc = locals[doc.doctype][doc.name];
|
||||
for (let fieldname in doc) {
|
||||
if (local_doc[fieldname] instanceof Array) {
|
||||
let df = frappe.meta.get_field(doc.doctype, fieldname);
|
||||
if (df && df.fieldtype === 'Table') {
|
||||
// table
|
||||
if (!(doc[fieldname] instanceof Array)) {
|
||||
doc[fieldname] = [];
|
||||
}
|
||||
|
||||
if (!(local_doc[fieldname] instanceof Array)) {
|
||||
local_doc[fieldname] = [];
|
||||
}
|
||||
|
||||
// child table, override each row and append new rows if required
|
||||
for (let i=0; i < doc[fieldname].length; i++ ) {
|
||||
let d = doc[fieldname][i];
|
||||
|
|
|
|||
|
|
@ -195,12 +195,14 @@ _f.Frm.prototype.watch_model_updates = function() {
|
|||
frappe.model.on(me.doctype, "*", function(fieldname, value, doc) {
|
||||
// set input
|
||||
if(doc.name===me.docname) {
|
||||
if ((value==='' || value===null) && !doc[value]) {
|
||||
if ((value==='' || value===null) && !doc[fieldname]) {
|
||||
// both the incoming and outgoing values are falsy
|
||||
// the texteditor, summernote, changes nulls to empty strings on render,
|
||||
// so ignore those changes
|
||||
} else {
|
||||
me.dirty();
|
||||
if (value != doc[fieldname]) {
|
||||
me.dirty();
|
||||
}
|
||||
}
|
||||
me.fields_dict[fieldname]
|
||||
&& me.fields_dict[fieldname].refresh(fieldname);
|
||||
|
|
@ -761,53 +763,60 @@ _f.Frm.prototype._save = function(save_action, callback, btn, on_error, resolve)
|
|||
_f.Frm.prototype.savesubmit = function(btn, callback, on_error) {
|
||||
var me = this;
|
||||
|
||||
let handle_fail = () => {
|
||||
$(btn).prop('disabled', false);
|
||||
if (on_error) {
|
||||
on_error();
|
||||
}
|
||||
}
|
||||
|
||||
return new Promise(resolve => {
|
||||
this.validate_form_action("Submit");
|
||||
frappe.confirm(__("Permanently Submit {0}?", [this.docname]), function() {
|
||||
frappe.validated = true;
|
||||
me.script_manager.trigger("before_submit").then(function() {
|
||||
if(!frappe.validated) {
|
||||
if(on_error) {
|
||||
on_error();
|
||||
}
|
||||
handle_fail();
|
||||
return;
|
||||
}
|
||||
|
||||
me.save('Submit', function(r) {
|
||||
if(r.exc) {
|
||||
if (on_error) {
|
||||
on_error();
|
||||
}
|
||||
handle_fail();
|
||||
} else {
|
||||
frappe.utils.play_sound("submit");
|
||||
callback && callback();
|
||||
me.script_manager.trigger("on_submit")
|
||||
.then(() => resolve(me));
|
||||
}
|
||||
}, btn, on_error, resolve);
|
||||
}, btn, () => handle_fail(), resolve);
|
||||
});
|
||||
}, on_error);
|
||||
}, () => handle_fail() );
|
||||
});
|
||||
};
|
||||
|
||||
_f.Frm.prototype.savecancel = function(btn, callback, on_error) {
|
||||
var me = this;
|
||||
|
||||
let handle_fail = () => {
|
||||
$(btn).prop('disabled', false);
|
||||
if (on_error) {
|
||||
on_error();
|
||||
}
|
||||
}
|
||||
|
||||
this.validate_form_action('Cancel');
|
||||
frappe.confirm(__("Permanently Cancel {0}?", [this.docname]), function() {
|
||||
frappe.validated = true;
|
||||
me.script_manager.trigger("before_cancel").then(function() {
|
||||
if(!frappe.validated) {
|
||||
if(on_error) {
|
||||
on_error();
|
||||
}
|
||||
handle_fail();
|
||||
return;
|
||||
}
|
||||
|
||||
var after_cancel = function(r) {
|
||||
if(r.exc) {
|
||||
if (on_error) {
|
||||
on_error();
|
||||
}
|
||||
handle_fail();
|
||||
} else {
|
||||
frappe.utils.play_sound("cancel");
|
||||
me.refresh();
|
||||
|
|
@ -817,7 +826,7 @@ _f.Frm.prototype.savecancel = function(btn, callback, on_error) {
|
|||
};
|
||||
frappe.ui.form.save(me, "cancel", after_cancel, btn);
|
||||
});
|
||||
}, on_error);
|
||||
}, () => handle_fail());
|
||||
};
|
||||
|
||||
// delete the record
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue