diff --git a/erpnext/hub_node/__init__.py b/erpnext/hub_node/__init__.py
index f913239..7d846d1 100644
--- a/erpnext/hub_node/__init__.py
+++ b/erpnext/hub_node/__init__.py
@@ -55,13 +55,15 @@
 
 @frappe.whitelist()
 def publish_selected_items(items_to_publish):
-	# for item_code in json.loads(items_to_publish):
-	# 	frappe.db.set_value('Item', item_code, 'publish_in_hub', 1)
+	for item_code in json.loads(items_to_publish):
+		frappe.db.set_value('Item', item_code, 'publish_in_hub', 1)
 
-	time.sleep(3)
+	# frappe.db.set_value("Hub Settings", "Hub Settings", "sync_in_progress", 1)
+	# time.sleep(10)
+	# frappe.db.set_value("Hub Settings", "Hub Settings", "sync_in_progress", 0)
 
-	# hub_settings = frappe.get_doc('Hub Settings')
-	# hub_settings.sync()
+	hub_settings = frappe.get_doc('Hub Settings')
+	hub_settings.sync()
 
 	return
 
diff --git a/erpnext/hub_node/doctype/hub_settings/hub_settings.py b/erpnext/hub_node/doctype/hub_settings/hub_settings.py
index 551423c..52fdb8c 100644
--- a/erpnext/hub_node/doctype/hub_settings/hub_settings.py
+++ b/erpnext/hub_node/doctype/hub_settings/hub_settings.py
@@ -46,10 +46,12 @@
 		doc = frappe.get_doc({
 			'doctype': 'Data Migration Run',
 			'data_migration_plan': 'Hub Sync',
-			'data_migration_connector': 'Hub Connector'
+			'data_migration_connector': 'Hub Connector',
 		}).insert()
 
+		self.sync_in_progress = 1
 		doc.run()
+		self.sync_in_progress = 0
 
 	def pre_reg(self):
 		site_name = frappe.local.site + ':' + str(frappe.conf.webserver_port)
@@ -86,9 +88,9 @@
 		post_url = hub_url + '/api/method/hub.hub.api.register'
 
 		response = requests.post(post_url, data=data, headers = {'accept': 'application/json'})
-		
+
 		response.raise_for_status()
-		
+
 		if response.ok:
 			message = response.json().get('message')
 		else:
diff --git a/erpnext/public/js/hub/hub_listing.js b/erpnext/public/js/hub/hub_listing.js
index 7a71c11..bde1e8f 100644
--- a/erpnext/public/js/hub/hub_listing.js
+++ b/erpnext/public/js/hub/hub_listing.js
@@ -670,9 +670,9 @@
 
 	setup_events() {
 		this.$wrapper.find('.publish-items').on('click', () => {
+			this.load_publishing_state();
 			this.publish_selected_items()
 				.then(r => {
-					this.load_publishing_state();
 					frappe.msgprint('check');
 				});
 		});
@@ -716,12 +716,6 @@
 			const more_than_one = total_items > 1;
 			this.$wrapper.find('.publish-items')
 				.html(__('Publish ' + total_items + ' item' + (more_than_one ? 's' : '')));
-
-			// if($target.hasClass('active')) {
-			// 	$target.addClass('active');
-			// } else {
-			// 	$target.removeClass('active');
-			// }
 		});
 
 		this.$wrapper.append(items_container);
@@ -737,9 +731,9 @@
 	}
 
 	load_publishing_state() {
-		this.$wrapper.html(`<div>
-			<b>Publishing</b>
-		</div>`);
+		this.$wrapper.html(get_empty_state(
+			'Publishing items ... You will be notified once published.'
+		));
 	}
 
 	publish_selected_items() {
@@ -757,6 +751,12 @@
 	}
 }
 
+function get_empty_state(message) {
+	return `<div class="empty-state flex">
+		<p class="text-muted">${message}</p>
+	</div>`
+}
+
 function get_item_card_container_html(items, title='') {
 	const items_html = (items || []).map(item => get_item_card_html(item)).join('');
 
diff --git a/erpnext/public/less/hub.less b/erpnext/public/less/hub.less
index 8c7392a..bd503fe 100644
--- a/erpnext/public/less/hub.less
+++ b/erpnext/public/less/hub.less
@@ -156,6 +156,11 @@
 		padding: 15px 25px;
 	}
 
+	.empty-state {
+		justify-content: center;
+		padding-top: 159px;
+	}
+
 	.form-container {
 		.frappe-control {
 			max-width: 100% !important;
