From 7b7f88ae4f656e61c298652e78d151e72d70f897 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Wed, 5 Nov 2014 19:45:31 +0300 Subject: [PATCH 1/3] WebUI: Fix WebAPI returned data. --- src/webui/extra_translations.h | 3 ++- src/webui/requesthandler.cpp | 3 ++- src/webui/www/public/upload.html | 11 ++++++++--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/webui/extra_translations.h b/src/webui/extra_translations.h index bd9018ca4..840228afe 100644 --- a/src/webui/extra_translations.h +++ b/src/webui/extra_translations.h @@ -65,7 +65,8 @@ static const char *__TRANSLATIONS__[] = { QT_TRANSLATE_NOOP("HttpServer", "Invalid Username or Password."), QT_TRANSLATE_NOOP("HttpServer", "Password"), QT_TRANSLATE_NOOP("HttpServer", "Login"), - QT_TRANSLATE_NOOP("HttpServer", "qBittorrent web User Interface") + QT_TRANSLATE_NOOP("HttpServer", "qBittorrent web User Interface"), + QT_TRANSLATE_NOOP("HttpServer", "Upload Failed!") }; static const struct { const char *source; const char *comment; } __COMMENTED_TRANSLATIONS__[] = { diff --git a/src/webui/requesthandler.cpp b/src/webui/requesthandler.cpp index b53baf8bf..dc4bf0cc8 100644 --- a/src/webui/requesthandler.cpp +++ b/src/webui/requesthandler.cpp @@ -263,11 +263,12 @@ void RequestHandler::action_command_upload() QBtSession::instance()->addTorrent(filePath); // Clean up fsutils::forceRemove(filePath); - print(QLatin1String("")); } else { qWarning() << "I/O Error: Could not create temporary file"; + status(500, "Internal Server Error"); + print(QByteArray("I/O Error: Could not create temporary file."), CONTENT_TYPE_TXT); } } } diff --git a/src/webui/www/public/upload.html b/src/webui/www/public/upload.html index f00f48bfc..f7ded939d 100644 --- a/src/webui/www/public/upload.html +++ b/src/webui/www/public/upload.html @@ -9,10 +9,15 @@ function stateChangeHandler() { if (this.readyState == this.DONE) { - if (this.status == 200) + if (this.status == 200) { window.parent.closeWindows(); - else - alert("Upload Failed!"); + } else { + if (this.responseText != "") { + alert(this.responseText); + } else { + alert("_(Upload Failed!)"); + } + } } } From d85c3170b2e10c2ef4c0bf073309b10d86c69836 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Wed, 5 Nov 2014 20:11:10 +0300 Subject: [PATCH 2/3] WebUI: Add charset attribute to text content types. --- src/webui/abstractrequesthandler.cpp | 2 +- src/webui/httptypes.h | 8 ++++---- src/webui/requesthandler.cpp | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/webui/abstractrequesthandler.cpp b/src/webui/abstractrequesthandler.cpp index fc9479100..0ec2b73c8 100644 --- a/src/webui/abstractrequesthandler.cpp +++ b/src/webui/abstractrequesthandler.cpp @@ -50,7 +50,7 @@ HttpResponse AbstractRequestHandler::run() if (isBanned()) { status(403, "Forbidden"); - print(QObject::tr("Your IP address has been banned after too many failed authentication attempts.")); + print(QObject::tr("Your IP address has been banned after too many failed authentication attempts."), CONTENT_TYPE_TXT); } else { diff --git a/src/webui/httptypes.h b/src/webui/httptypes.h index 614e9a4d2..9eabf577c 100644 --- a/src/webui/httptypes.h +++ b/src/webui/httptypes.h @@ -40,12 +40,12 @@ const QString HEADER_CONTENT_TYPE = "Content-Type"; const QString HEADER_CONTENT_ENCODING = "Content-Encoding"; const QString HEADER_CONTENT_LENGTH = "Content-Length"; -const QString CONTENT_TYPE_CSS = "text/css"; +const QString CONTENT_TYPE_CSS = "text/css; charset=UTF-8"; const QString CONTENT_TYPE_GIF = "image/gif"; -const QString CONTENT_TYPE_HTML = "text/html"; -const QString CONTENT_TYPE_JS = "text/javascript"; +const QString CONTENT_TYPE_HTML = "text/html; charset=UTF-8"; +const QString CONTENT_TYPE_JS = "text/javascript; charset=UTF-8"; const QString CONTENT_TYPE_PNG = "image/png"; -const QString CONTENT_TYPE_TXT = "text/plain"; +const QString CONTENT_TYPE_TXT = "text/plain; charset=UTF-8"; struct HttpEnvironment { diff --git a/src/webui/requesthandler.cpp b/src/webui/requesthandler.cpp index dc4bf0cc8..dea1a42ba 100644 --- a/src/webui/requesthandler.cpp +++ b/src/webui/requesthandler.cpp @@ -268,7 +268,7 @@ void RequestHandler::action_command_upload() { qWarning() << "I/O Error: Could not create temporary file"; status(500, "Internal Server Error"); - print(QByteArray("I/O Error: Could not create temporary file."), CONTENT_TYPE_TXT); + print(QObject::tr("I/O Error: Could not create temporary file."), CONTENT_TYPE_TXT); } } } From cd0bcacd9f8fcb2fcb057dc1c76726e5f9fe4c3b Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Fri, 7 Nov 2014 15:53:11 +0300 Subject: [PATCH 3/3] WebUI: Fix upload window closing on old browsers. --- src/webui/www/public/upload.html | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/webui/www/public/upload.html b/src/webui/www/public/upload.html index f7ded939d..c9bc1218f 100644 --- a/src/webui/www/public/upload.html +++ b/src/webui/www/public/upload.html @@ -49,7 +49,9 @@ window.addEvent('load', function() { // is XHR2 available? var xhr = new XMLHttpRequest(); if (xhr.upload) - $('submitbutton').addClass("invisible"); + $('submitbutton').addClass("invisible"); + else + $('upload_frame').addEvent('load', function(e) { window.parent.closeWindows(); }); }); @@ -60,7 +62,7 @@ window.addEvent('load', function() {
-