diff --git a/app/app.py b/app/app.py index e19cf6c..d865f4e 100644 --- a/app/app.py +++ b/app/app.py @@ -507,11 +507,9 @@ def create_app(args): id: translate type: object properties: - translatedText: - oneOf: - - type: string - - type: array - description: Translated text(s) + translatedFileUrl: + type: string + description: Translated file url 400: description: Invalid request schema: @@ -588,7 +586,7 @@ def create_app(args): translated_filename = os.path.basename(translated_file_path) return jsonify( { - "translatedFileUrl": url_for('download_file', filename=translated_filename) + "translatedFileUrl": url_for('download_file', filename=translated_filename, _external=True) } ) except Exception as e: diff --git a/app/static/js/app.js b/app/static/js/app.js index 29c3bd9..a9ce59d 100644 --- a/app/static/js/app.js +++ b/app/static/js/app.js @@ -35,6 +35,7 @@ document.addEventListener('DOMContentLoaded', function(){ translationType: "text", inputFile: false, loadingFileTranslation: false, + translatedFileUrl: "", }, mounted: function(){ var self = this; @@ -317,10 +318,13 @@ document.addEventListener('DOMContentLoaded', function(){ removeFile: function(e) { e.preventDefault() this.inputFile = false; + this.translatedFileUrl = ""; + this.loadingFileTranslation = false; }, translateFile: function(e) { e.preventDefault(); + let self = this; let translateFileRequest = new XMLHttpRequest(); translateFileRequest.open("POST", BaseUrl + "/translate_file", true); @@ -333,12 +337,39 @@ document.addEventListener('DOMContentLoaded', function(){ this.loadingFileTranslation = true - translateFileRequest.onload = () => { + translateFileRequest.onload = function() { if (translateFileRequest.readyState === 4 && translateFileRequest.status === 200) { - this.loadingFileTranslation = false + try{ + self.loadingFileTranslation = false; + + let res = JSON.parse(this.response); + if (res.translatedFileUrl){ + self.translatedFileUrl = res.translatedFileUrl; + + let link = document.createElement("a"); + link.target = "_blank"; + link.href = self.translatedFileUrl; + link.click(); + }else{ + throw new Error(res.error || "Unknown error"); + } + + }catch(e){ + self.error = e.message; + self.loadingFileTranslation = false; + self.inputFile = false; + } } } + + + translateFileRequest.onerror = function() { + self.error = "Error while calling /translate_file"; + self.loadingFileTranslation = false; + self.inputFile = false; + }; + translateFileRequest.send(data); } } diff --git a/app/templates/index.html b/app/templates/index.html index 37f1144..3742ec1 100644 --- a/app/templates/index.html +++ b/app/templates/index.html @@ -203,7 +203,8 @@ - + + Download