From 097a366f2851c630e1a89473d00acefef074eb8a Mon Sep 17 00:00:00 2001 From: Himanshu Warekar Date: Mon, 12 Aug 2019 09:05:34 +0530 Subject: [PATCH] fix: show alerts while uploading --- .../doctype/google_drive/google_drive.py | 6 +++++- frappe/public/js/frappe/form/print.js | 13 ++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/frappe/integrations/doctype/google_drive/google_drive.py b/frappe/integrations/doctype/google_drive/google_drive.py index 09ea54feab..c87be2317a 100644 --- a/frappe/integrations/doctype/google_drive/google_drive.py +++ b/frappe/integrations/doctype/google_drive/google_drive.py @@ -197,11 +197,12 @@ def upload_document_to_google_drive(doctype, docname, g_drive, format, letterhea media = MediaFileUpload(get_absolute_path(fileurl), mimetype="application/pdf", resumable=True) try: + display_upload_status("orange", _("Uploading file to Google Drive.")) google_drive_object.files().create(body=file_metadata, media_body=media, fields="id").execute() except HttpError as e: frappe.msgprint(_("Google Drive - Could not upload file - Error Code {0}").format(e)) - return _("{0} {1} uploaded to Google Drive successfully.").format(doctype, docname) + display_upload_status("green", _("File Uploaded to Google Drive.")) @frappe.whitelist() def upload_system_backup_to_google_drive(g_drive): @@ -233,6 +234,9 @@ def upload_system_backup_to_google_drive(g_drive): return _("Google Drive Backup Successful.") +def display_upload_status(indicator, message): + frappe.publish_realtime("upload_google_drive", dict(indicator=indicator, message=message), user=frappe.session.user) + def daily_backup(): g_drive = frappe.db.exists("Google Drive", {"enable": 1, "enable_system_backup": 1, "frequency": "Daily"}) if g_drive: diff --git a/frappe/public/js/frappe/form/print.js b/frappe/public/js/frappe/form/print.js index 5e4e3e5816..6a650971ca 100644 --- a/frappe/public/js/frappe/form/print.js +++ b/frappe/public/js/frappe/form/print.js @@ -457,6 +457,14 @@ frappe.ui.form.PrintPreview = Class.extend({ }, google_drive_upload: function() { var me = this; + + frappe.realtime.on("upload_google_drive", (data) => { + frappe.show_alert({ + indicator: data.indicator, + message: data.message + }); + }); + this.wrapper.find(".btn-upload-drive").click(function () { let uploader = new frappe.ui.Dialog({ title: __("Upload File to Google Drive"), @@ -485,8 +493,8 @@ frappe.ui.form.PrintPreview = Class.extend({ frappe.show_alert({ indicator: "red", - message: __("Uploading to Google Drive.") - }) + message: __("Preparing file to upload.") + }); frappe.call({ method: "frappe.integrations.doctype.google_drive.google_drive.upload_document_to_google_drive", @@ -498,7 +506,6 @@ frappe.ui.form.PrintPreview = Class.extend({ letterhead: me.with_letterhead() ? "0" : "1" }, callback: function(r) { - frappe.msgprint(r.message); uploader.enable_primary_action(); } })