91 lines
2.2 KiB
JavaScript
91 lines
2.2 KiB
JavaScript
frappe.pages['hub'].on_page_load = function(wrapper) {
|
|
var page = frappe.ui.make_app_page({
|
|
parent: wrapper,
|
|
title: 'Hub',
|
|
single_column: true
|
|
});
|
|
|
|
frappe.hub = new frappe.Hub({page:page});
|
|
|
|
}
|
|
|
|
frappe.pages['hub'].on_page_show = function() {
|
|
frappe.hub.refresh();
|
|
}
|
|
|
|
frappe.Hub = Class.extend({
|
|
init: function(args) {
|
|
$.extend(this, args);
|
|
this.render();
|
|
},
|
|
refresh: function() {
|
|
if(this.hub && this.hub.publish && !this.hub_list) {
|
|
this.setup_list();
|
|
}
|
|
},
|
|
render: function() {
|
|
this.page.main.empty();
|
|
var me = this;
|
|
frappe.model.with_doc("Hub Settings", "Hub Settings", function() {
|
|
me.hub = locals["Hub Settings"]["Hub Settings"];
|
|
if(!me.hub.publish) {
|
|
$(frappe.render_template("register_in_hub", {})).appendTo(me.page.main);
|
|
} else {
|
|
me.setup_list();
|
|
}
|
|
});
|
|
},
|
|
setup_list: function() {
|
|
var me = this;
|
|
$(frappe.render_template("hub_body", {})).appendTo(this.page.main);
|
|
this.hub_list = this.page.main.find(".hub-list");
|
|
this.search = this.page.main.find("input").on("keypress", function(e) {
|
|
if(e.which===13) {
|
|
me.reset();
|
|
}
|
|
});
|
|
this.loading = this.page.main.find(".loading");
|
|
this.done = this.page.main.find(".done");
|
|
this.more = this.page.main.find(".more")
|
|
this.more.find(".btn").on("click", function() { me.next_page() });
|
|
this.reset();
|
|
},
|
|
reset: function() {
|
|
this.hub_list.empty();
|
|
this.start = 0;
|
|
this.page_length = 20;
|
|
this.next_page();
|
|
},
|
|
next_page: function() {
|
|
var me = this;
|
|
this.loading.toggleClass("hide", false);
|
|
frappe.call({
|
|
method: "erpnext.hub_node.get_items",
|
|
args: {
|
|
text: this.get_text(),
|
|
start: this.start,
|
|
limit: this.page_length
|
|
},
|
|
callback: function(r) {
|
|
me.loading.toggleClass("hide", true);
|
|
if(!r.message)
|
|
r.message = [];
|
|
me.start += r.message.length;
|
|
$(frappe.render_template("hub_list", {items: r.message})).appendTo(me.hub_list);
|
|
if(r.message.length && r.message.length===me.page_length) {
|
|
// more
|
|
me.more.removeClass("hide");
|
|
me.done.addClass("hide");
|
|
} else {
|
|
// done
|
|
me.more.addClass("hide");
|
|
me.done.removeClass("hide");
|
|
}
|
|
}
|
|
});
|
|
},
|
|
get_text: function() {
|
|
return this.search.val();
|
|
},
|
|
})
|