From 3550b4eeb1265980223f38eb249eeba955bc3fe9 Mon Sep 17 00:00:00 2001 From: lukeIam Date: Sat, 30 Nov 2013 21:04:48 +0100 Subject: [PATCH] Webserver: -fix: appcrash if a given server is not reachable -add: scan a qrcode to insert server address (in app) -mod: own folder for phonegap build + created config.xml --- PhoneGap/config.xml | 61 ++++++++++++++++++++++++++++++++++++ PhoneGap/icon.png | Bin 0 -> 30639 bytes Vocaluxe/Vocaluxe.csproj | 3 ++ Vocaluxe/Website/index.html | 5 +++ Vocaluxe/Website/js/main.js | 46 ++++++++++++++++++++++++--- 5 files changed, 111 insertions(+), 4 deletions(-) create mode 100644 PhoneGap/config.xml create mode 100644 PhoneGap/icon.png diff --git a/PhoneGap/config.xml b/PhoneGap/config.xml new file mode 100644 index 00000000..802cde2f --- /dev/null +++ b/PhoneGap/config.xml @@ -0,0 +1,61 @@ + + + + + + Vocaluxe + + + Interact with Vocaluxe via your mobile device. + + + + Vocaluxe Team + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/PhoneGap/icon.png b/PhoneGap/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..43151bf67c1b51faf3ba039eab383d313e63d659 GIT binary patch literal 30639 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

|{0#U&=t}l`PB~YEC8G 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 aJ^Fve`&$odQr(>Z0000 + + xcopy /E /D /Y "$(ProjectDir)\Website" "$(SolutionDir)\PhoneGap" + diff --git a/Vocaluxe/Website/js/main.js b/Vocaluxe/Website/js/main.js index f34c6ee4..bbf75f3a 100644 --- a/Vocaluxe/Website/js/main.js +++ b/Vocaluxe/Website/js/main.js @@ -721,16 +721,27 @@ function pagebeforeshowDiscover() { var address = window.localStorage.getItem("VocaluxeServerAddress"); if (address != null) { serverBaseAddress = ""; - var prom = request({ url: address + "isServerOnline" }, "Checking...").done(function () { + var prom = request({ + url: address + "isServerOnline", + timeout: 10000 + }, "Checking...").done(function () { serverBaseAddress = address; window.localStorage.setItem("VocaluxeServerAddress", address); $.mobile.changePage("#login", { transition: "none" }); + }).fail(function () { + if (typeof window.BarcodeScanner != "undefined") { + $('#discoverReadQr').show(); + } }); $(this).data('promise', prom); return; } + if (typeof window.BarcodeScanner != "undefined") { + $('#discoverReadQr').show(); + } } } else { + $('#discoverReadQr').hide(); $.mobile.changePage("#login", { transition: "none" }); } } @@ -915,8 +926,7 @@ function initDiscoverPageHandler() { $('#discoverServerAddress').keypress(keyPressed); - $('#discoverConnect').click(function () { - var address = $('#discoverServerAddress').prop("value"); + function handleAddress(address) { if (address != null && address != "") { if (address.indexOf("http") != 0) { address = "http://" + address; @@ -925,7 +935,10 @@ function initDiscoverPageHandler() { address = address + '/'; } serverBaseAddress = ""; - request({ url: address + "isServerOnline" }, "Checking...") + request({ + url: address + "isServerOnline", + timeout: 10000 + }, "Checking...") .done(function () { serverBaseAddress = address; window.localStorage.setItem("VocaluxeServerAddress", address); @@ -933,8 +946,31 @@ function initDiscoverPageHandler() { }) .fail(function () { $('#discoverServerAddress').prop("value", ""); + if (document.location.protocol == "file:" + && typeof window.BarcodeScanner != "undefined") { + $('#discoverReadQr').show(); + } }); } + } + + $('#discoverConnect').click(function () { + handleAddress($('#discoverServerAddress').prop("value")); + }); + + try { + window.BarcodeScanner = cordova.require("cordova/plugin/BarcodeScanner"); + } catch (e) { } + + $('#discoverReadQr').hide().click(function () { + window.BarcodeScanner.scan( + function (result) { + handleAddress(result.text); + }, + function () { + showError("Scan faild"); + } + ); }); //Fire pageLoadHandler for discover (first page shown after start) @@ -1195,6 +1231,7 @@ function initTranslation() { 'loginPassword': 'Password:', 'loginButton': 'Login', 'registerButton': 'Create Profile', + 'discoverReadQrButton': 'Scan QRCode', 'mainPageYourProfileLink': 'Your Profile', 'mainPageYourProfileLinkDesc': 'Edit your profile', 'mainPageCurrentSongLink': 'Current Song', @@ -1274,6 +1311,7 @@ function initTranslation() { 'loginPassword': 'Passwort:', 'loginButton': 'Einloggen', 'registerButton': 'Erstelle Profil', + 'discoverReadQrButton': 'Fotografiere QRCode', 'mainPageYourProfileLink': 'Dein Profil', 'mainPageYourProfileLinkDesc': 'Bearbeite dein Profil', 'mainPageCurrentSongLink': 'Aktuelles Lied',