[hub] items searchable via core filters
diff --git a/erpnext/hub_node/__init__.py b/erpnext/hub_node/__init__.py
index 93129d9..dc6c789 100644
--- a/erpnext/hub_node/__init__.py
+++ b/erpnext/hub_node/__init__.py
@@ -15,25 +15,15 @@
 	return hub_settings
 
 @frappe.whitelist()
-def get_items(start=0, limit=20, fields=["*"], category=None, order_by=None, company=None, text=None):
+def get_items(doctype, start=0, limit=20, fields=["*"], filters="{}", order_by=None):
 	connection = get_client_connection()
+	filters = json.loads(filters)
 
-	filters = {}
-
-	if category:
-		filters.update({ 'hub_category': category })
-	if text:
-		filters.update({'item_name': ('like', '%' + text + '%')})
-	if company:
-		filters.update({'company_name': company})
-
-	response = connection.get_list('Hub Item',
+	response = connection.get_list(doctype,
 		limit_start=start, limit_page_length=limit,
 		filters=filters, fields=fields)
 	return response
 
-#
-
 @frappe.whitelist()
 def get_hub_item_meta():
 	connection = get_client_connection()
diff --git a/erpnext/public/js/hub/hub_factory.js b/erpnext/public/js/hub/hub_factory.js
index a341c22..c43dfa5 100644
--- a/erpnext/public/js/hub/hub_factory.js
+++ b/erpnext/public/js/hub/hub_factory.js
@@ -21,7 +21,15 @@
 			console.log("pages?");
 			if (page === 'Item' && !route[2]) {
 				frappe.require(assets['List'], () => {
-					erpnext.hub.pages[page_name] = new erpnext.hub.HubPage({
+					erpnext.hub.pages[page_name] = new erpnext.hub.ItemListing({
+						doctype: 'Hub Settings',
+						parent: this.make_page(true, page_name)
+					});
+					window.hub_page = erpnext.hub.pages[page_name];
+				});
+			} if (page === 'Company' && !route[2]) {
+				frappe.require(assets['List'], () => {
+					erpnext.hub.pages[page_name] = new erpnext.hub.CompanyListing({
 						doctype: 'Hub Settings',
 						parent: this.make_page(true, page_name)
 					});
diff --git a/erpnext/public/js/hub/hub_page.js b/erpnext/public/js/hub/hub_page.js
index 9b6c4f4..20fcf4d 100644
--- a/erpnext/public/js/hub/hub_page.js
+++ b/erpnext/public/js/hub/hub_page.js
@@ -1,6 +1,6 @@
 frappe.provide('erpnext.hub');
 
-erpnext.hub.HubPage = class HubPage extends frappe.views.BaseList {
+erpnext.hub.ItemListing = class ItemListing extends frappe.views.BaseList {
 	setup_defaults() {
 		super.setup_defaults();
 		this.page_title = __('Hub');
@@ -23,16 +23,12 @@
 	}
 
 	setup_fields() {
-		this.fields = ['name', 'hub_item_code', 'image', 'item_name', 'item_code'];
+		this.fields = ['name', 'hub_item_code', 'image', 'item_name', 'item_code', 'company_name'];
 	}
 
-	set_breadcrumbs() {
+	set_breadcrumbs() { }
 
-	}
-
-	setup_side_bar() {
-
-	}
+	setup_side_bar() { }
 
 	setup_filter_area() {
 		this.custom_filter_configs = [
@@ -53,29 +49,41 @@
 		this.filter_area = new FilterArea(this);
 	}
 
-	setup_sort_selector() {
+	setup_sort_selector() { }
 
-	}
+	setup_view() { }
 
-	setup_view() {
-
+	get_filters_for_args() {
+		let filters = {};
+		this.filter_area.get().forEach(f => {
+			let field = f[1] !== 'name' ? f[1] : 'item_name';
+			filters[field] = [f[2], f[3]];
+		});
+		if(this.current_category) {
+			filters['hub_category'] = this.current_category;
+		}
+		return filters;
 	}
 
 	get_args() {
+		console.log('filters', this.get_filters_for_args());
 		return {
+			doctype: 'Hub Item'
 			start: this.start,
 			limit: this.page_length,
-			category: this.category || '',
 			order_by: this.order_by,
-			company: this.company || '',
-			text: this.search_text || '',
-			fields: this.fields
+			fields: this.fields,
+			filters: this.get_filters_for_args()
+
+			// category: this.category || '',
+			// company: this.company || '',
+			// text: this.search_text || '',
 		};
 	}
 
 	update_data(r) {
 		const data = r.message;
-		console.log('update data', data);
+		// console.log('update data', data);
 
 		if (this.start === 0) {
 			this.data = data;
@@ -103,7 +111,7 @@
 
 	render_image_view() {
 		let data = this.data;
-		console.log('this.data render', this.data);
+		// console.log('this.data render', this.data);
 		if (this.start === 0) {
 			this.$result.html('<div class="image-view-container small padding-top">');
 			data = this.data.slice(this.start);
@@ -117,6 +125,8 @@
 		item._name = encodeURI(item.name);
 		const encoded_name = item._name;
 		const title = strip_html(item['item_name' || 'item_code']);
+		console.log(item);
+		const company_name = item['company_name'];
 
 		const route = `#Hub/Item/${item.hub_item_code}`;
 
@@ -137,9 +147,14 @@
 						<h5 class="bold">
 							${ title }
 						</h5>
+						<p>${ company_name }</p>
 					</div>
 				</a>
 			</div>
 		`;
 	}
+};
+
+erpnext.hub.CompanyListing = class CompanyListing extends frappe.views.BaseList {
+
 };
\ No newline at end of file