feat(desk): Make desk early on in pageview, use Container

This commit is contained in:
Prateeksha Singh 2019-01-28 12:00:33 +05:30
parent d315c8d038
commit 59ea5c7296

View file

@ -41,6 +41,23 @@ frappe.views.pageview = {
show: function(name) {
if(!name) {
name = (frappe.boot ? frappe.boot.home_page : window.page_name);
if(name === "desktop") {
let page = frappe.container.add_page('desktop');
console.log('frappe.container.page',JSON.parse(JSON.stringify(page)), JSON.parse(JSON.stringify(frappe.container.page)));
let container = $('<div class="modules-container"></div>').appendTo(page);
frappe.container.change_to('desktop');
frappe.require('/assets/js/frappe-vue.min.js', () => {
Vue.prototype.__ = window.__;
new Vue({
el: container[0],
render: h => h(Modules)
});
});
return;
}
}
frappe.model.with_doctype("Page", function() {
frappe.views.pageview.with_page(name, function(r) {
@ -83,23 +100,13 @@ frappe.views.Page = Class.extend({
frappe.dom.set_style(this.pagedoc.style || '');
}
if(this.name === "desktop") {
frappe.require('/assets/js/frappe-vue.min.js', () => {
Vue.prototype.__ = window.__;
new Vue({
el: this.wrapper,
render: h => h(Modules)
});
});
} else {
this.trigger_page_event('on_page_load');
// set events
$(this.wrapper).on('show', function() {
window.cur_frm = null;
me.trigger_page_event('on_page_show');
me.trigger_page_event('refresh');
});
}
this.trigger_page_event('on_page_load');
// set events
$(this.wrapper).on('show', function() {
window.cur_frm = null;
me.trigger_page_event('on_page_show');
me.trigger_page_event('refresh');
});
},
trigger_page_event: function(eventname) {
var me = this;
@ -155,3 +162,41 @@ frappe.show_message_page = function(opts) {
frappe.container.change_to(opts.page_name);
};
frappe.views.ModulesFactory = class ModulesFactory extends frappe.views.Factory {
show() {
if (frappe.pages.modules) {
frappe.container.change_to('modules');
} else {
this.make('modules');
}
}
make(page_name) {
///
}
};
// frappe.provide('frappe.modules');
// frappe.modules.Home = class {
// constructor({ parent }) {
// this.$parent = $(parent);
// this.page = parent.page;
// this.setup_header();
// this.make_body();
// }
// make_body() {
// this.$modules_container = this.$parent.find('.layout-main');
// frappe.require('/assets/js/frappe-vue.min.js', () => {
// Vue.prototype.__ = window.__;
// new Vue({
// el: this.$modules_container[0],
// render: h => h(Modules)
// });
// });
// }
// setup_header() {
// this.page.set_title(__('Modules'));
// }
// };