frappe.provide('hub'); frappe.provide('erpnext.hub'); erpnext.hub.Marketplace = class Marketplace { constructor({ parent }) { this.$parent = $(parent); this.page = parent.page; frappe.db.get_doc('Hub Settings') .then(doc => { this.hub_settings = doc; this.registered = doc.registered; this.setup_header(); this.make_sidebar(); this.make_body(); this.setup_events(); this.refresh(); }); } setup_header() { this.page.set_title(__('Marketplace')); } setup_events() { this.$parent.on('click', '[data-route]', (e) => { const $target = $(e.currentTarget); const route = $target.data().route; frappe.set_route(route); e.stopPropagation(); }); } make_sidebar() { this.$sidebar = this.$parent.find('.layout-side-section').addClass('hidden-xs'); this.make_sidebar_nav_buttons(); this.make_sidebar_categories(); } make_sidebar_nav_buttons() { let $nav_group = this.$sidebar.find('[data-nav-buttons]'); if (!$nav_group.length) { $nav_group = $('