This reverts commit 0ee7c94a9f
.
version-14
@@ -3,15 +3,9 @@ frappe.provide("frappe.views"); | |||||
frappe.views.BaseList = class BaseList { | frappe.views.BaseList = class BaseList { | ||||
constructor(opts) { | constructor(opts) { | ||||
Object.assign(this, opts); | Object.assign(this, opts); | ||||
this.init_page() | |||||
} | } | ||||
show() { | show() { | ||||
this.meta = frappe.get_meta(this.doctype); | |||||
this.set_title(); | |||||
// in loading state? | |||||
if (!this.meta) return; | |||||
frappe.run_serially([ | frappe.run_serially([ | ||||
() => this.init(), | () => this.init(), | ||||
() => this.before_refresh(), | () => this.before_refresh(), | ||||
@@ -40,6 +34,8 @@ frappe.views.BaseList = class BaseList { | |||||
setup_defaults() { | setup_defaults() { | ||||
this.page_name = frappe.get_route_str(); | this.page_name = frappe.get_route_str(); | ||||
this.page_title = this.page_title || frappe.router.doctype_layout || __(this.doctype); | |||||
this.meta = frappe.get_meta(this.doctype); | |||||
this.settings = frappe.listview_settings[this.doctype] || {}; | this.settings = frappe.listview_settings[this.doctype] || {}; | ||||
this.user_settings = frappe.get_user_settings(this.doctype); | this.user_settings = frappe.get_user_settings(this.doctype); | ||||
@@ -154,21 +150,13 @@ frappe.views.BaseList = class BaseList { | |||||
} | } | ||||
} | } | ||||
init_page() { | |||||
setup_page() { | |||||
this.page = this.parent.page; | this.page = this.parent.page; | ||||
this.make_skeleton(); | |||||
this.$page = $(this.parent); | this.$page = $(this.parent); | ||||
!this.hide_card_layout && this.page.main.addClass('frappe-card'); | !this.hide_card_layout && this.page.main.addClass('frappe-card'); | ||||
this.page.page_form.removeClass("row").addClass("flex"); | this.page.page_form.removeClass("row").addClass("flex"); | ||||
this.hide_page_form && this.page.page_form.hide(); | this.hide_page_form && this.page.page_form.hide(); | ||||
this.hide_sidebar && this.$page.addClass('no-list-sidebar'); | this.hide_sidebar && this.$page.addClass('no-list-sidebar'); | ||||
} | |||||
make_skeleton() { | |||||
this.skeleton = $(`<div class='skeleton-bg' style='min-height: 400px'></div>`).prependTo(this.page.main.parent()); | |||||
} | |||||
setup_page() { | |||||
this.setup_page_head(); | this.setup_page_head(); | ||||
} | } | ||||
@@ -179,7 +167,6 @@ frappe.views.BaseList = class BaseList { | |||||
} | } | ||||
set_title() { | set_title() { | ||||
this.page_title = this.page_title || frappe.router.doctype_layout || __(this.doctype); | |||||
this.page.set_title(this.page_title); | this.page.set_title(this.page_title); | ||||
} | } | ||||
@@ -293,7 +280,6 @@ frappe.views.BaseList = class BaseList { | |||||
} | } | ||||
setup_list_wrapper() { | setup_list_wrapper() { | ||||
this.skeleton.remove(); // clear skeleton | |||||
this.$frappe_list = $('<div class="frappe-list">').appendTo( | this.$frappe_list = $('<div class="frappe-list">').appendTo( | ||||
this.page.main | this.page.main | ||||
); | ); | ||||
@@ -8,48 +8,36 @@ frappe.views.ListFactory = class ListFactory extends frappe.views.Factory { | |||||
make (route) { | make (route) { | ||||
var me = this; | var me = this; | ||||
var doctype = route[1]; | var doctype = route[1]; | ||||
const meta_loaded = frappe.get_meta(doctype) ? true : false; | |||||
const page_name = frappe.get_route_str(); | |||||
let view_class = this.get_view_class(route, doctype); | |||||
this.make_list_view_page(page_name, doctype, view_class); | |||||
if (view_class && view_class.load_last_view && view_class.load_last_view()) { | |||||
// view can have custom routing logic | |||||
return; | |||||
} | |||||
frappe.model.with_doctype(doctype, function () { | frappe.model.with_doctype(doctype, function () { | ||||
if (!meta_loaded) { | |||||
frappe.views.list_view[page_name].show(); | |||||
} | |||||
if (locals['DocType'][doctype].issingle) { | if (locals['DocType'][doctype].issingle) { | ||||
frappe.set_re_route('Form', doctype); | frappe.set_re_route('Form', doctype); | ||||
} else { | } else { | ||||
frappe.container.change_to(page_name); | |||||
me.set_cur_list(); | |||||
} | |||||
}); | |||||
} | |||||
// List / Gantt / Kanban / etc | |||||
// File is a special view | |||||
const view_name = doctype !== 'File' ? frappe.utils.to_title_case(route[2] || 'List') : 'File'; | |||||
let view_class = frappe.views[view_name + 'View']; | |||||
if (!view_class) view_class = frappe.views.ListView; | |||||
get_view_class(route, doctype) { | |||||
// List / Gantt / Kanban / etc | |||||
// File is a special view | |||||
const view_name = doctype !== 'File' ? frappe.utils.to_title_case(route[2] || 'List') : 'File'; | |||||
let view_class = frappe.views[view_name + 'View']; | |||||
if (!view_class) view_class = frappe.views.ListView; | |||||
return view_class; | |||||
} | |||||
if (view_class && view_class.load_last_view && view_class.load_last_view()) { | |||||
// view can have custom routing logic | |||||
return; | |||||
} | |||||
make_list_view_page(page_name, doctype, view_class) { | |||||
frappe.provide('frappe.views.list_view.' + doctype); | |||||
frappe.provide('frappe.views.list_view.' + doctype); | |||||
const page_name = frappe.get_route_str(); | |||||
if (!frappe.views.list_view[page_name]) { | |||||
frappe.views.list_view[page_name] = new view_class({ | |||||
doctype: doctype, | |||||
parent: this.make_page(true, page_name) | |||||
}); | |||||
} | |||||
if (!frappe.views.list_view[page_name]) { | |||||
frappe.views.list_view[page_name] = new view_class({ | |||||
doctype: doctype, | |||||
parent: me.make_page(true, page_name) | |||||
}); | |||||
} else { | |||||
frappe.container.change_to(page_name); | |||||
} | |||||
me.set_cur_list(); | |||||
} | |||||
}); | |||||
} | } | ||||
show() { | show() { | ||||
@@ -739,10 +739,6 @@ body { | |||||
animation-duration: 400ms; | animation-duration: 400ms; | ||||
} | } | ||||
.skeleton-bg { | |||||
background-color: var(--skeleton-bg); | |||||
} | |||||
.workspace-skeleton { | .workspace-skeleton { | ||||
transition: ease; | transition: ease; | ||||
.widget-group-title { | .widget-group-title { | ||||
@@ -327,6 +327,10 @@ select.input-xs { | |||||
} | } | ||||
} | } | ||||
// .frappe-card { | |||||
// @include card(); | |||||
// } | |||||
.head-title { | .head-title { | ||||
font-size: var(--text-lg); | font-size: var(--text-lg); | ||||
font-weight: 700; | font-weight: 700; | ||||
@@ -587,4 +591,4 @@ details > summary:focus { | |||||
.chart-container { | .chart-container { | ||||
direction: ltr; | direction: ltr; | ||||
} | } | ||||
*/ | |||||
*/ |