[hub] remove test code
diff --git a/erpnext/hub_node/__init__.py b/erpnext/hub_node/__init__.py
index 61676ad..f3a0098 100644
--- a/erpnext/hub_node/__init__.py
+++ b/erpnext/hub_node/__init__.py
@@ -73,18 +73,14 @@
 	if not len(items_to_publish):
 		return
 
-	# TODO: sync
-	# for item_code in items_to_publish:
-	# 	frappe.db.set_value('Item', item_code, 'publish_in_hub', 1)
-
-	# hub_settings = frappe.get_doc('Hub Settings')
-	# remote_id = item_sync_preprocess()
-	# hub_settings.sync(remote_id)
-
-	# return remote_id
+	for item_code in items_to_publish:
+		frappe.db.set_value('Item', item_code, 'publish_in_hub', 1)
 
 	hub_settings = frappe.get_doc('Hub Settings')
-	hub_settings.sync('TEST')
+	remote_id = item_sync_preprocess()
+	hub_settings.sync(remote_id)
+
+	return remote_id
 
 def item_sync_preprocess():
 	# Call Hub to make a new activity
diff --git a/erpnext/hub_node/doctype/hub_settings/hub_settings.py b/erpnext/hub_node/doctype/hub_settings/hub_settings.py
index 727ad62..81264dd 100644
--- a/erpnext/hub_node/doctype/hub_settings/hub_settings.py
+++ b/erpnext/hub_node/doctype/hub_settings/hub_settings.py
@@ -41,27 +41,8 @@
 				'trigger_name': 'items-sync'
 			}).insert()
 
-			time.sleep(2)
-			frappe.publish_realtime('items-sync', {"progress_percent": 20})
-			print("=======================")
-
-			time.sleep(2)
-			frappe.publish_realtime('items-sync', {"progress_percent": 40})
-			print("=======================")
-
-			time.sleep(1)
-			frappe.publish_realtime('items-sync', {"progress_percent": 80})
-			print("=======================")
-
-			time.sleep(2)
-			frappe.publish_realtime('items-sync', {"progress_percent": 100})
-			print("=======================")
-
-			frappe.db.set_value('Hub Settings', 'Hub Settings', 'last_sync_datetime', frappe.utils.now())
-
-			# TODO: sync
-			# self.sync_in_progress = 1
-			# doc.run()
+			self.sync_in_progress = 1
+			doc.run()
 		else:
 			frappe.throw("No remote ID specified")
 
diff --git a/erpnext/public/js/hub/marketplace.js b/erpnext/public/js/hub/marketplace.js
index 703da1f..543a0b3 100644
--- a/erpnext/public/js/hub/marketplace.js
+++ b/erpnext/public/js/hub/marketplace.js
@@ -832,7 +832,7 @@
 		frappe.realtime.on("items-sync", (data) => {
 			this.$wrapper.find('.progress-bar').css('width', data.progress_percent+'%');
 
-			if(data.progress_percent === 100) {
+			if(data.progress_percent === 100 || data.progress_percent === '100') {
 				setTimeout(() => {
 					hub.settings.sync_in_progress = 0;
 					frappe.db.get_doc('Hub Settings')
@@ -1039,13 +1039,7 @@
 		});
 		this.items_to_publish = items_to_publish;
 
-		return frappe.db.set_value("Hub Settings", "Hub Settings", {
-			custom_data: JSON.stringify(items_to_publish),
-			// TODO: sync
-			// sync_in_progress: 1
-		}).then(() => {
-			hub.settings.sync_in_progress = 1;
-		})
+		return this.set_sync(items_to_publish)
 		.then(frappe.call(
 			'erpnext.hub_node.publish_selected_items',
 			{
@@ -1053,6 +1047,22 @@
 			}
 		));
 	}
+
+	set_sync(items_to_publish) {
+		hub.settings.sync_in_progress = 1;
+		return frappe.db.set_value("Hub Settings", "Hub Settings", {
+			custom_data: JSON.stringify(items_to_publish),
+			sync_in_progress: 1
+		})
+	}
+
+	reset_sync()  {
+		hub.settings.sync_in_progress = 0;
+		return frappe.db.set_value("Hub Settings", "Hub Settings", {
+			custom_data: '',
+			sync_in_progress: 0
+		})
+	}
 }
 
 erpnext.hub.PublishedProducts = class PublishedProducts extends SubPage {