feat: Add disable marketplace option in Hub Settings
diff --git a/erpnext/hub_node/doctype/hub_settings/hub_settings.js b/erpnext/hub_node/doctype/hub_settings/hub_settings.js
index 089f499..445f5a8 100644
--- a/erpnext/hub_node/doctype/hub_settings/hub_settings.js
+++ b/erpnext/hub_node/doctype/hub_settings/hub_settings.js
@@ -1,3 +1,5 @@
 frappe.ui.form.on("Hub Settings", {
-	onload_post_render: function() {},
+	refresh: function(frm) {
+		$('#toolbar-user .marketplace-link').toggle(!frm.doc.disable_marketplace);
+	},
 });
diff --git a/erpnext/hub_node/doctype/hub_settings/hub_settings.json b/erpnext/hub_node/doctype/hub_settings/hub_settings.json
index e230515..cd2c5e8 100644
--- a/erpnext/hub_node/doctype/hub_settings/hub_settings.json
+++ b/erpnext/hub_node/doctype/hub_settings/hub_settings.json
@@ -19,6 +19,71 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fieldname": "disable_marketplace", 
+   "fieldtype": "Check", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Disable Marketplace", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 0, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "translatable": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "depends_on": "eval:!doc.disable_marketplace", 
+   "fieldname": "marketplace_settings_section", 
+   "fieldtype": "Section Break", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Marketplace Settings", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 0, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "translatable": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
    "default": "https://hubmarket.org", 
    "fieldname": "hub_url", 
    "fieldtype": "Data", 
@@ -86,7 +151,7 @@
    "columns": 0, 
    "fieldname": "sync_in_progress", 
    "fieldtype": "Check", 
-   "hidden": 0, 
+   "hidden": 1, 
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
@@ -479,8 +544,8 @@
  "issingle": 1, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2018-08-29 17:46:30.413159", 
- "modified_by": "Administrator", 
+ "modified": "2018-08-31 02:40:41.244423", 
+ "modified_by": "ameya@coffee.com", 
  "module": "Hub Node", 
  "name": "Hub Settings", 
  "name_case": "", 
@@ -513,6 +578,5 @@
  "sort_field": "modified", 
  "sort_order": "DESC", 
  "track_changes": 1, 
- "track_seen": 0, 
- "track_views": 0
+ "track_seen": 0
 }
\ No newline at end of file
diff --git a/erpnext/public/js/hub/hub_factory.js b/erpnext/public/js/hub/hub_factory.js
index 57f27f9..5c9178f 100644
--- a/erpnext/public/js/hub/hub_factory.js
+++ b/erpnext/public/js/hub/hub_factory.js
@@ -2,12 +2,20 @@
 
 frappe.views.marketplaceFactory = class marketplaceFactory extends frappe.views.Factory {
 	show() {
-		if (frappe.pages.marketplace) {
-			frappe.container.change_to('marketplace');
-			erpnext.hub.marketplace.refresh();
-		} else {
-			this.make('marketplace');
-		}
+		is_marketplace_disabled()
+			.then(disabled => {
+				if (disabled) {
+					frappe.show_not_found('Marketplace');
+					return;
+				}
+
+				if (frappe.pages.marketplace) {
+					frappe.container.change_to('marketplace');
+					erpnext.hub.marketplace.refresh();
+				} else {
+					this.make('marketplace');
+				}
+			});
 	}
 
 	make(page_name) {
@@ -23,10 +31,22 @@
 	}
 };
 
+function is_marketplace_disabled() {
+	return frappe.model.with_doc('Hub Settings')
+		.then(doc => doc.disable_marketplace);
+}
+
 $(document).on('toolbar_setup', () => {
 	$('#toolbar-user .navbar-reload').after(`
 		<li>
-			<a href="#marketplace/home">${__('Marketplace')}
+			<a class="marketplace-link" href="#marketplace/home">${__('Marketplace')}
 		</li>
 	`);
+
+	is_marketplace_disabled()
+		.then(disabled => {
+			if (disabled) {
+				$('#toolbar-user .marketplace-link').hide();
+			}
+		});
 });