[ux] fixes and rememeber_selected in hooks to set default link values
This commit is contained in:
parent
d0d1c9094e
commit
5fb331f8e5
9 changed files with 53 additions and 38 deletions
|
|
@ -24,12 +24,12 @@ def get_bootinfo():
|
|||
get_user(bootinfo)
|
||||
|
||||
# system info
|
||||
bootinfo['sysdefaults'] = frappe.defaults.get_defaults()
|
||||
bootinfo['server_date'] = frappe.utils.nowdate()
|
||||
bootinfo.sysdefaults = frappe.defaults.get_defaults()
|
||||
bootinfo.server_date = frappe.utils.nowdate()
|
||||
|
||||
if frappe.session['user'] != 'Guest':
|
||||
bootinfo['user_info'] = get_fullnames()
|
||||
bootinfo['sid'] = frappe.session['sid'];
|
||||
bootinfo.user_info = get_fullnames()
|
||||
bootinfo.sid = frappe.session['sid'];
|
||||
|
||||
bootinfo.modules = {}
|
||||
bootinfo.module_list = []
|
||||
|
|
@ -47,22 +47,23 @@ def get_bootinfo():
|
|||
bootinfo.home_folder = frappe.db.get_value("File", {"is_home_folder": 1})
|
||||
|
||||
# ipinfo
|
||||
if frappe.session['data'].get('ipinfo'):
|
||||
bootinfo['ipinfo'] = frappe.session['data']['ipinfo']
|
||||
if frappe.session.data.get('ipinfo'):
|
||||
bootinfo.ipinfo = frappe.session['data']['ipinfo']
|
||||
|
||||
# add docs
|
||||
bootinfo['docs'] = doclist
|
||||
bootinfo.docs = doclist
|
||||
|
||||
for method in hooks.boot_session or []:
|
||||
frappe.get_attr(method)(bootinfo)
|
||||
bootinfo.remember_selected = hooks.remember_selected
|
||||
|
||||
if bootinfo.lang:
|
||||
bootinfo.lang = unicode(bootinfo.lang)
|
||||
bootinfo['versions'] = {k: v['version'] for k, v in get_versions().items()}
|
||||
bootinfo.versions = {k: v['version'] for k, v in get_versions().items()}
|
||||
|
||||
bootinfo.error_report_email = frappe.get_hooks("error_report_email")
|
||||
bootinfo.calendars = sorted(frappe.get_hooks("calendars"))
|
||||
bootinfo["lang_dict"] = get_lang_dict()
|
||||
bootinfo.lang_dict = get_lang_dict()
|
||||
|
||||
return bootinfo
|
||||
|
||||
|
|
|
|||
|
|
@ -939,7 +939,7 @@
|
|||
"issingle": 0,
|
||||
"istable": 0,
|
||||
"max_attachments": 0,
|
||||
"modified": "2016-04-29 08:35:56.180787",
|
||||
"modified": "2016-05-02 11:00:53.679033",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Core",
|
||||
"name": "Communication",
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ frappe.defaults = {
|
|||
// Use User Permission value when only when it has a single value
|
||||
d = d[0];
|
||||
} else {
|
||||
d = defaults[frappe.model.scrub(key)];
|
||||
d = defaults[key] || defaults[frappe.model.scrub(key)];
|
||||
}
|
||||
}
|
||||
if(!$.isArray(d)) d = [d];
|
||||
|
|
|
|||
|
|
@ -252,7 +252,10 @@ frappe.Application = Class.extend({
|
|||
})
|
||||
.keydown("meta+s ctrl+s", function(e) {
|
||||
e.preventDefault();
|
||||
if(cur_frm) {
|
||||
if(cur_dialog) {
|
||||
// trigger primary
|
||||
cur_dialog.get_primary_btn().trigger("click");
|
||||
} else if(cur_frm) {
|
||||
cur_frm.save_or_update();
|
||||
} else if(frappe.container.page.save_action) {
|
||||
frappe.container.page.save_action();
|
||||
|
|
|
|||
|
|
@ -377,6 +377,8 @@ frappe.ui.form.ControlData = frappe.ui.form.ControlInput.extend({
|
|||
html_element: "input",
|
||||
input_type: "text",
|
||||
make_input: function() {
|
||||
if(this.$input) return;
|
||||
|
||||
this.$input = $("<"+ this.html_element +">")
|
||||
.attr("type", this.input_type)
|
||||
.attr("autocomplete", "off")
|
||||
|
|
@ -1258,6 +1260,13 @@ frappe.ui.form.ControlLink = frappe.ui.form.ControlData.extend({
|
|||
ui.item.action.apply(me);
|
||||
}
|
||||
|
||||
// if remember_selected hook is set, add this value
|
||||
// to defaults so you do not need to set it again
|
||||
// unless it is changed.
|
||||
if(frappe.boot.remember_selected && frappe.boot.remember_selected.indexOf(me.df.options)!==-1) {
|
||||
frappe.boot.user.defaults[me.df.options] = ui.item.value;
|
||||
}
|
||||
|
||||
if(me.frm && me.frm.doc) {
|
||||
me.selected = true;
|
||||
me.parse_validate_and_set_in_model(ui.item.value);
|
||||
|
|
|
|||
|
|
@ -66,7 +66,10 @@ frappe.ui.form.quick_entry = function(doctype, success) {
|
|||
// delete the old doc
|
||||
frappe.model.clear_doc(dialog.doc.doctype, dialog.doc.name);
|
||||
var doc = r.message;
|
||||
if(success) success(doc);
|
||||
if(success) {
|
||||
success(doc);
|
||||
}
|
||||
frappe.ui.form.update_calling_link(doc.name);
|
||||
},
|
||||
error: function() {
|
||||
open_doc();
|
||||
|
|
|
|||
|
|
@ -178,6 +178,7 @@ frappe.ui.form.save = function(frm, action, callback, btn) {
|
|||
},
|
||||
always: function() {
|
||||
frappe.ui.form.is_saving = false;
|
||||
frappe.ui.form.update_calling_link(opts.args.doc.name);
|
||||
}
|
||||
})
|
||||
};
|
||||
|
|
@ -188,3 +189,23 @@ frappe.ui.form.save = function(frm, action, callback, btn) {
|
|||
save();
|
||||
}
|
||||
}
|
||||
|
||||
frappe.ui.form.update_calling_link = function(name) {
|
||||
if(frappe._from_link) {
|
||||
// set value
|
||||
frappe.model.set_value(frappe._from_link.doctype,
|
||||
frappe._from_link.docname, frappe._from_link.df.fieldname, name);
|
||||
|
||||
// refresh field
|
||||
frappe._from_link.refresh();
|
||||
|
||||
// if from form, switch
|
||||
if(frappe._from_link.frm) {
|
||||
frappe.set_route("Form", frappe._from_link.frm.doctype, frappe._from_link.frm.docname);
|
||||
setTimeout(function() { frappe.utils.scroll_to(frappe._from_link_scrollY); }, 100);
|
||||
}
|
||||
|
||||
frappe._from_link = null;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -121,6 +121,9 @@ $.extend(frappe.model, {
|
|||
|
||||
// 2 - look in user defaults
|
||||
var user_default = frappe.defaults.get_user_default(df.fieldname);
|
||||
if(!user_default && df.fieldtype==='Link') {
|
||||
user_default = frappe.defaults.get_user_default(df.options);
|
||||
}
|
||||
var is_allowed_user_default = user_default &&
|
||||
(!has_user_permissions || user_permissions[df.options].indexOf(user_default)!==-1);
|
||||
|
||||
|
|
|
|||
|
|
@ -404,9 +404,6 @@ _f.Frm.prototype.refresh = function(docname) {
|
|||
// read only (workflow)
|
||||
this.read_only = frappe.workflow.is_read_only(this.doctype, this.docname);
|
||||
|
||||
// set new doc name if created via link field
|
||||
this.set_new_docname_from_link();
|
||||
|
||||
// check if doctype is already open
|
||||
if (!this.opendocs[this.docname]) {
|
||||
this.check_doctype_conflict(this.docname);
|
||||
|
|
@ -464,18 +461,6 @@ _f.Frm.prototype.refresh = function(docname) {
|
|||
}
|
||||
}
|
||||
|
||||
_f.Frm.prototype.set_new_docname_from_link = function() {
|
||||
if(frappe._from_link && frappe._new_docname_from_link) {
|
||||
frappe.model.set_value(frappe._from_link.doctype,
|
||||
frappe._from_link.docname, frappe._from_link.df.fieldname, frappe._new_docname_from_link);
|
||||
|
||||
frappe._from_link.refresh();
|
||||
|
||||
frappe._from_link = null;
|
||||
frappe._new_docname_from_link = null;
|
||||
}
|
||||
}
|
||||
|
||||
_f.Frm.prototype.show_if_needs_refresh = function() {
|
||||
if(this.doc.__needs_refresh) {
|
||||
if(this.doc.__unsaved) {
|
||||
|
|
@ -715,16 +700,6 @@ _f.Frm.prototype._save = function(save_action, callback, btn, on_error) {
|
|||
on_error();
|
||||
}
|
||||
callback && callback(r);
|
||||
|
||||
if(frappe._from_link) {
|
||||
if(me.doctype===frappe._from_link.df.options) {
|
||||
frappe.set_route("Form", frappe._from_link.frm.doctype, frappe._from_link.frm.docname);
|
||||
|
||||
frappe._new_docname_from_link = me.docname;
|
||||
|
||||
setTimeout(function() { frappe.utils.scroll_to(frappe._from_link_scrollY); }, 100);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(save_action != "Update") {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue