diff --git a/erpnext/hub_node/__init__.py b/erpnext/hub_node/__init__.py index 6ac0aba626..f3a00984af 100644 --- a/erpnext/hub_node/__init__.py +++ b/erpnext/hub_node/__init__.py @@ -108,6 +108,7 @@ def item_sync_postprocess(obj): 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 10bb959dff..a0d8188d44 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 66dd560388..81264dd90e 100644 --- a/erpnext/hub_node/doctype/hub_settings/hub_settings.py +++ b/erpnext/hub_node/doctype/hub_settings/hub_settings.py @@ -37,11 +37,11 @@ class HubSettings(Document): '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() else: frappe.throw("No remote ID specified") diff --git a/erpnext/public/js/hub/marketplace.js b/erpnext/public/js/hub/marketplace.js index 2c2a29d525..83c13a078d 100644 --- a/erpnext/public/js/hub/marketplace.js +++ b/erpnext/public/js/hub/marketplace.js @@ -861,6 +861,21 @@ erpnext.hub.Publish = class Publish extends SubPage { 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 || 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() { @@ -886,8 +901,8 @@ erpnext.hub.Publish = class Publish extends SubPage { this.setup_publishing_events(); - if(hub.settings.last_sync) { - this.show_message(`Last sync was ${hub.settings.last_sync}. + if(hub.settings.last_sync_datetime) { + this.show_message(`Last sync was ${hub.settings.last_sync_datetime}. See your Published Products.`); } @@ -995,7 +1010,7 @@ erpnext.hub.Publish = class Publish extends SubPage { const $publish_progress = $(`

${__(`Syncing ${items_to_publish.length} Products`)}

-
+
`); @@ -1057,18 +1072,29 @@ erpnext.hub.Publish = class Publish extends SubPage { }); this.items_to_publish = items_to_publish; + return this.set_sync(items_to_publish) + .then(frappe.call( + 'erpnext.hub_node.publish_selected_items', + { + items_to_publish: item_codes_to_publish + } + )); + } + + 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 - }).then(() => { - hub.settings.sync_in_progress = 1; + 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 }) - // .then(frappe.call( - // 'erpnext.hub_node.publish_selected_items', - // { - // items_to_publish: item_codes_to_publish - // } - // )); } }