[hub] test progress trigger
diff --git a/erpnext/hub_node/__init__.py b/erpnext/hub_node/__init__.py
index 6ac0aba..61676ad 100644
--- a/erpnext/hub_node/__init__.py
+++ b/erpnext/hub_node/__init__.py
@@ -73,14 +73,18 @@
 	if not len(items_to_publish):
 		return
 
-	for item_code in items_to_publish:
-		frappe.db.set_value('Item', item_code, 'publish_in_hub', 1)
+	# 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
 
 	hub_settings = frappe.get_doc('Hub Settings')
-	remote_id = item_sync_preprocess()
-	hub_settings.sync(remote_id)
-
-	return remote_id
+	hub_settings.sync('TEST')
 
 def item_sync_preprocess():
 	# Call Hub to make a new activity
@@ -108,6 +112,7 @@
 
 	if response:
 		frappe.db.set_value('Hub Settings', 'Hub Settings', 'sync_in_progress', 0)
+		frappe.db.set_value('Hub Settings', 'Hub Settings', 'last_sync_datetime', frappe.utils.now())
 	else:
 		frappe.throw('Unable to update remote activity')
 
diff --git a/erpnext/hub_node/doctype/hub_settings/hub_settings.json b/erpnext/hub_node/doctype/hub_settings/hub_settings.json
index 10bb959..a0d8188 100644
--- a/erpnext/hub_node/doctype/hub_settings/hub_settings.json
+++ b/erpnext/hub_node/doctype/hub_settings/hub_settings.json
@@ -538,7 +538,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
-   "depends_on": "publish", 
+   "depends_on": "", 
    "fieldname": "last_sync_datetime", 
    "fieldtype": "Datetime", 
    "hidden": 0, 
@@ -555,7 +555,7 @@
    "precision": "", 
    "print_hide": 0, 
    "print_hide_if_no_value": 0, 
-   "read_only": 1, 
+   "read_only": 0, 
    "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
@@ -675,7 +675,7 @@
  "issingle": 1, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2018-07-30 08:01:09.024358", 
+ "modified": "2018-07-30 10:43:28.818498", 
  "modified_by": "Administrator", 
  "module": "Hub Node", 
  "name": "Hub Settings", 
diff --git a/erpnext/hub_node/doctype/hub_settings/hub_settings.py b/erpnext/hub_node/doctype/hub_settings/hub_settings.py
index 66dd560..727ad62 100644
--- a/erpnext/hub_node/doctype/hub_settings/hub_settings.py
+++ b/erpnext/hub_node/doctype/hub_settings/hub_settings.py
@@ -37,12 +37,31 @@
 				'doctype': 'Data Migration Run',
 				'data_migration_plan': 'Hub Sync',
 				'data_migration_connector': 'Hub Connector',
-				'remote_id': remote_id
+				'remote_id': remote_id,
+				'trigger_name': 'items-sync'
 			}).insert()
 
-			self.sync_in_progress = 1
-			# time.sleep(10)
-			doc.run()
+			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()
 		else:
 			frappe.throw("No remote ID specified")
 
diff --git a/erpnext/public/js/hub/marketplace.js b/erpnext/public/js/hub/marketplace.js
index 28309f3..703da1f 100644
--- a/erpnext/public/js/hub/marketplace.js
+++ b/erpnext/public/js/hub/marketplace.js
@@ -828,6 +828,21 @@
 		this.items_to_publish = [];
 		this.unpublished_items = [];
 		this.fetched_items = [];
+
+		frappe.realtime.on("items-sync", (data) => {
+			this.$wrapper.find('.progress-bar').css('width', data.progress_percent+'%');
+
+			if(data.progress_percent === 100) {
+				setTimeout(() => {
+					hub.settings.sync_in_progress = 0;
+					frappe.db.get_doc('Hub Settings')
+						.then(doc => {
+							hub.settings = doc;
+							this.refresh();
+						});
+				}, 500);
+			}
+		});
 	}
 
 	refresh() {
@@ -853,8 +868,8 @@
 
 		this.setup_publishing_events();
 
-		if(hub.settings.last_sync) {
-			this.show_message(`Last sync was <a href="#marketplace/profile">${hub.settings.last_sync}</a>.
+		if(hub.settings.last_sync_datetime) {
+			this.show_message(`Last sync was <a href="#marketplace/profile">${hub.settings.last_sync_datetime}</a>.
 				<a href="#marketplace/my-products">See your Published Products</a>.`);
 		}
 
@@ -962,7 +977,7 @@
 		const $publish_progress = $(`<div class="sync-progress">
 			<p><b>${__(`Syncing ${items_to_publish.length} Products`)}</b></p>
 			<div class="progress">
-				<div class="progress-bar" style="width: 12.875%"></div>
+				<div class="progress-bar" style="width: 1%"></div>
 			</div>
 
 		</div>`);
@@ -1026,16 +1041,17 @@
 
 		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;
 		})
-		// .then(frappe.call(
-		// 	'erpnext.hub_node.publish_selected_items',
-		// 	{
-		// 		items_to_publish: item_codes_to_publish
-		// 	}
-		// ));
+		.then(frappe.call(
+			'erpnext.hub_node.publish_selected_items',
+			{
+				items_to_publish: item_codes_to_publish
+			}
+		));
 	}
 }