浏览代码

[ux] fixes and rememeber_selected in hooks to set default link values

version-14
Rushabh Mehta 9 年前
父节点
当前提交
5fb331f8e5
共有 9 个文件被更改,包括 53 次插入38 次删除
  1. +10
    -9
      frappe/boot.py
  2. +1
    -1
      frappe/core/doctype/communication/communication.json
  3. +1
    -1
      frappe/public/js/frappe/defaults.js
  4. +4
    -1
      frappe/public/js/frappe/desk.js
  5. +9
    -0
      frappe/public/js/frappe/form/control.js
  6. +4
    -1
      frappe/public/js/frappe/form/quick_entry.js
  7. +21
    -0
      frappe/public/js/frappe/form/save.js
  8. +3
    -0
      frappe/public/js/frappe/model/create_new.js
  9. +0
    -25
      frappe/public/js/legacy/form.js

+ 10
- 9
frappe/boot.py 查看文件

@@ -24,12 +24,12 @@ def get_bootinfo():
get_user(bootinfo) get_user(bootinfo)


# system info # 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': 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.modules = {}
bootinfo.module_list = [] bootinfo.module_list = []
@@ -47,22 +47,23 @@ def get_bootinfo():
bootinfo.home_folder = frappe.db.get_value("File", {"is_home_folder": 1}) bootinfo.home_folder = frappe.db.get_value("File", {"is_home_folder": 1})


# ipinfo # 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 # add docs
bootinfo['docs'] = doclist
bootinfo.docs = doclist


for method in hooks.boot_session or []: for method in hooks.boot_session or []:
frappe.get_attr(method)(bootinfo) frappe.get_attr(method)(bootinfo)
bootinfo.remember_selected = hooks.remember_selected


if bootinfo.lang: if bootinfo.lang:
bootinfo.lang = unicode(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.error_report_email = frappe.get_hooks("error_report_email")
bootinfo.calendars = sorted(frappe.get_hooks("calendars")) bootinfo.calendars = sorted(frappe.get_hooks("calendars"))
bootinfo["lang_dict"] = get_lang_dict()
bootinfo.lang_dict = get_lang_dict()


return bootinfo return bootinfo




+ 1
- 1
frappe/core/doctype/communication/communication.json 查看文件

@@ -939,7 +939,7 @@
"issingle": 0, "issingle": 0,
"istable": 0, "istable": 0,
"max_attachments": 0, "max_attachments": 0,
"modified": "2016-04-29 08:35:56.180787",
"modified": "2016-05-02 11:00:53.679033",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Core", "module": "Core",
"name": "Communication", "name": "Communication",


+ 1
- 1
frappe/public/js/frappe/defaults.js 查看文件

@@ -19,7 +19,7 @@ frappe.defaults = {
// Use User Permission value when only when it has a single value // Use User Permission value when only when it has a single value
d = d[0]; d = d[0];
} else { } else {
d = defaults[frappe.model.scrub(key)];
d = defaults[key] || defaults[frappe.model.scrub(key)];
} }
} }
if(!$.isArray(d)) d = [d]; if(!$.isArray(d)) d = [d];


+ 4
- 1
frappe/public/js/frappe/desk.js 查看文件

@@ -252,7 +252,10 @@ frappe.Application = Class.extend({
}) })
.keydown("meta+s ctrl+s", function(e) { .keydown("meta+s ctrl+s", function(e) {
e.preventDefault(); 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(); cur_frm.save_or_update();
} else if(frappe.container.page.save_action) { } else if(frappe.container.page.save_action) {
frappe.container.page.save_action(); frappe.container.page.save_action();


+ 9
- 0
frappe/public/js/frappe/form/control.js 查看文件

@@ -377,6 +377,8 @@ frappe.ui.form.ControlData = frappe.ui.form.ControlInput.extend({
html_element: "input", html_element: "input",
input_type: "text", input_type: "text",
make_input: function() { make_input: function() {
if(this.$input) return;

this.$input = $("<"+ this.html_element +">") this.$input = $("<"+ this.html_element +">")
.attr("type", this.input_type) .attr("type", this.input_type)
.attr("autocomplete", "off") .attr("autocomplete", "off")
@@ -1258,6 +1260,13 @@ frappe.ui.form.ControlLink = frappe.ui.form.ControlData.extend({
ui.item.action.apply(me); 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) { if(me.frm && me.frm.doc) {
me.selected = true; me.selected = true;
me.parse_validate_and_set_in_model(ui.item.value); me.parse_validate_and_set_in_model(ui.item.value);


+ 4
- 1
frappe/public/js/frappe/form/quick_entry.js 查看文件

@@ -66,7 +66,10 @@ frappe.ui.form.quick_entry = function(doctype, success) {
// delete the old doc // delete the old doc
frappe.model.clear_doc(dialog.doc.doctype, dialog.doc.name); frappe.model.clear_doc(dialog.doc.doctype, dialog.doc.name);
var doc = r.message; var doc = r.message;
if(success) success(doc);
if(success) {
success(doc);
}
frappe.ui.form.update_calling_link(doc.name);
}, },
error: function() { error: function() {
open_doc(); open_doc();


+ 21
- 0
frappe/public/js/frappe/form/save.js 查看文件

@@ -178,6 +178,7 @@ frappe.ui.form.save = function(frm, action, callback, btn) {
}, },
always: function() { always: function() {
frappe.ui.form.is_saving = false; 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(); 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;
}
}


+ 3
- 0
frappe/public/js/frappe/model/create_new.js 查看文件

@@ -121,6 +121,9 @@ $.extend(frappe.model, {


// 2 - look in user defaults // 2 - look in user defaults
var user_default = frappe.defaults.get_user_default(df.fieldname); 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 && var is_allowed_user_default = user_default &&
(!has_user_permissions || user_permissions[df.options].indexOf(user_default)!==-1); (!has_user_permissions || user_permissions[df.options].indexOf(user_default)!==-1);




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

@@ -404,9 +404,6 @@ _f.Frm.prototype.refresh = function(docname) {
// read only (workflow) // read only (workflow)
this.read_only = frappe.workflow.is_read_only(this.doctype, this.docname); 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 // check if doctype is already open
if (!this.opendocs[this.docname]) { if (!this.opendocs[this.docname]) {
this.check_doctype_conflict(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() { _f.Frm.prototype.show_if_needs_refresh = function() {
if(this.doc.__needs_refresh) { if(this.doc.__needs_refresh) {
if(this.doc.__unsaved) { if(this.doc.__unsaved) {
@@ -715,16 +700,6 @@ _f.Frm.prototype._save = function(save_action, callback, btn, on_error) {
on_error(); on_error();
} }
callback && callback(r); 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") { if(save_action != "Update") {


正在加载...
取消
保存