Added factory.js and minor fixes for loading Single DocTypes
This commit is contained in:
parent
d6e1bb090d
commit
35fd8d99f7
4 changed files with 43 additions and 32 deletions
|
|
@ -80,7 +80,12 @@ class Document(BaseDocument):
|
|||
|
||||
def load_from_db(self):
|
||||
if not getattr(self, "_metaclass", False) and self.meta.issingle:
|
||||
self.update(frappe.db.get_singles_dict(self.doctype))
|
||||
single_doc = frappe.db.get_singles_dict(self.doctype)
|
||||
if not single_doc:
|
||||
single_doc = frappe.new_doc(self.doctype).as_dict()
|
||||
single_doc["name"] = self.doctype
|
||||
|
||||
self.update(single_doc)
|
||||
self.init_valid_columns()
|
||||
self._fix_numeric_types()
|
||||
|
||||
|
|
|
|||
|
|
@ -107,6 +107,7 @@
|
|||
"public/js/frappe/ui/tags.js",
|
||||
|
||||
"public/js/frappe/views/container.js",
|
||||
"public/js/frappe/views/factory.js",
|
||||
"public/js/frappe/views/pageview.js",
|
||||
"public/js/frappe/views/doclistview.js",
|
||||
"public/js/frappe/views/sidebar_stats.js",
|
||||
|
|
|
|||
|
|
@ -73,34 +73,3 @@ frappe.views.Container = Class.extend({
|
|||
return this.page;
|
||||
}
|
||||
});
|
||||
|
||||
frappe.views.Factory = Class.extend({
|
||||
init: function(opts) {
|
||||
$.extend(this, opts);
|
||||
},
|
||||
show: function() {
|
||||
var page_name = frappe.get_route_str(),
|
||||
me = this;
|
||||
if(frappe.pages[page_name]) {
|
||||
frappe.container.change_to(frappe.pages[page_name]);
|
||||
} else {
|
||||
var route = frappe.get_route();
|
||||
if(route[1]) {
|
||||
me.make(route);
|
||||
} else {
|
||||
frappe.show_not_found(route);
|
||||
}
|
||||
}
|
||||
},
|
||||
make_page: function(double_column) {
|
||||
var page_name = frappe.get_route_str(),
|
||||
page = frappe.container.add_page(page_name);
|
||||
|
||||
frappe.ui.make_app_page({
|
||||
parent: page,
|
||||
single_column: !double_column
|
||||
});
|
||||
frappe.container.change_to(page_name);
|
||||
return page;
|
||||
}
|
||||
})
|
||||
|
|
|
|||
36
frappe/public/js/frappe/views/factory.js
Normal file
36
frappe/public/js/frappe/views/factory.js
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
|
||||
// MIT License. See license.txt
|
||||
|
||||
frappe.provide('frappe.pages');
|
||||
frappe.provide('frappe.views');
|
||||
|
||||
frappe.views.Factory = Class.extend({
|
||||
init: function(opts) {
|
||||
$.extend(this, opts);
|
||||
},
|
||||
show: function() {
|
||||
var page_name = frappe.get_route_str(),
|
||||
me = this;
|
||||
if(frappe.pages[page_name] && page_name.indexOf("Form/")===-1) {
|
||||
frappe.container.change_to(frappe.pages[page_name]);
|
||||
} else {
|
||||
var route = frappe.get_route();
|
||||
if(route[1]) {
|
||||
me.make(route);
|
||||
} else {
|
||||
frappe.show_not_found(route);
|
||||
}
|
||||
}
|
||||
},
|
||||
make_page: function(double_column) {
|
||||
var page_name = frappe.get_route_str(),
|
||||
page = frappe.container.add_page(page_name);
|
||||
|
||||
frappe.ui.make_app_page({
|
||||
parent: page,
|
||||
single_column: !double_column
|
||||
});
|
||||
frappe.container.change_to(page_name);
|
||||
return page;
|
||||
}
|
||||
});
|
||||
Loading…
Add table
Reference in a new issue