Sfoglia il codice sorgente

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

version-14
Rushabh Mehta 9 anni fa
parent
commit
5fb331f8e5
9 ha cambiato i file con 53 aggiunte e 38 eliminazioni
  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 Vedi File

@@ -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



+ 1
- 1
frappe/core/doctype/communication/communication.json Vedi File

@@ -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",


+ 1
- 1
frappe/public/js/frappe/defaults.js Vedi File

@@ -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];


+ 4
- 1
frappe/public/js/frappe/desk.js Vedi File

@@ -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();


+ 9
- 0
frappe/public/js/frappe/form/control.js Vedi File

@@ -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);


+ 4
- 1
frappe/public/js/frappe/form/quick_entry.js Vedi File

@@ -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();


+ 21
- 0
frappe/public/js/frappe/form/save.js Vedi File

@@ -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;
}
}


+ 3
- 0
frappe/public/js/frappe/model/create_new.js Vedi File

@@ -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);



+ 0
- 25
frappe/public/js/legacy/form.js Vedi File

@@ -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") {


Caricamento…
Annulla
Salva