You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
MobileApp/www/js/setup1.js

196 lines
6.9 KiB
JavaScript

/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
setupusername = "";
setuppassword = "";
setupsynckey = "";
setupsyncurl = "";
netsymscomurl = "https://apps.netsyms.com/account/mobile/index.php";
netsymsbizurl = "https://BIZID.netsyms.biz/accounthub/mobile/index.php";
if (localStorage.getItem("firstrun") === null) {
$("#setuptitle").text("Setup");
$(".firstrun-only").css("display", "");
}
$('#use-security-checkbox-li').click(function () {
// Event fires before the checkbox is changed, so we need to do the opposite
if ($("#use-security").prop("checked")) {
$('#protocol-select').text("http://");
} else {
$('#protocol-select').text("https://");
}
});
/* Detect if the user typed "http[s]://" into the URL box and correct for it */
$("#syncurl").blur(function () {
if ($('#syncurl').val().toLowerCase().startsWith("https://")) {
$('#syncurl').val($('#syncurl').val().replace(/https\:\/\//ig, ""));
$('#protocol-select').text("https://");
$('#use-security').prop('checked', true);
} else if ($('#syncurl').val().toLowerCase().startsWith("http://")) {
$('#syncurl').val($('#syncurl').val().replace(/http\:\/\//ig, ""));
$('#protocol-select').text("http://");
$('#use-security').prop('checked', false);
}
});
$("#key").on("keyup", function () {
if (window.getSelection().toString() !== '') {
return;
}
var text = $('#key').val().replace(/\s+/g, '');
var formatted = "";
for (var i = 1; i <= text.length; i++) {
formatted = formatted + text[i - 1];
if (i % 5 == 0 && i > 1 && i < text.length) {
// add a space every 5 characters,
// unless it's the first character
// or the last character
formatted = formatted + " ";
}
}
$('#key').val(formatted.toUpperCase());
});
$('#username').on("keyup", function () {
$('#username').val($('#username').val().toLowerCase());
});
function manualsetup() {
if ($('#syncurl').val().toLowerCase().startsWith("http")) {
var syncurl = $('#syncurl').val();
} else {
var syncurl = $('#protocol-select').text() + $('#syncurl').val();
}
var username = $('#username').val();
var key = $('#key').val().replace(/\s+/g, '');
checkAndSave(syncurl, username, key);
}
function manualshow() {
$('#manual_setup').css('display', 'block');
}
function checkAndSave(syncurl, username, key) {
app.preloader.show();
$.post(syncurl, {
username: username,
key: key,
action: "check_key"
}, function (data) {
app.preloader.hide();
if (data.status === 'OK') {
setupusername = username;
setupsyncurl = syncurl;
setupsynckey = key;
router.navigate({
name: 'setup2'
});
} else {
navigator.notification.alert(data.msg, null, "Error", 'Dismiss');
}
}, "json").fail(function () {
app.preloader.hide();
navigator.notification.alert("Could not connect to the server. Try again.", null, "Error", 'Dismiss');
});
}
function personalsetup() {
app.preloader.show();
var username = $("#personal_username").val();
var password = $("#personal_password").val();
$.post(netsymscomurl, {
username: username,
password: password,
key: "NOKEY",
desc: device.platform + " " + device.model + " " + device.serial,
action: "generatesynccode"
}, function (result) {
app.preloader.hide();
if (result.status == "OK") {
var code = result.code;
var accid = addaccount(username, password, netsymscomurl, code);
switchaccount(accid, false);
localStorage.setItem("firstrun", "1");
navigator.notification.alert("Account connected!", null, "Success", 'Continue');
restartApplication();
} else if (result.status == "ERROR") {
navigator.notification.alert(result.msg, null, "Error", 'Dismiss');
} else {
navigator.notification.alert("Something went wrong, please try again.", null, "Error", 'Dismiss');
}
}, "json").fail(function () {
app.preloader.hide();
navigator.notification.alert("Something went wrong, please try again.", null, "Error", 'Dismiss');
});
}
function businesssetup() {
app.preloader.show();
var username = $("#personal_username").val();
var password = $("#personal_password").val();
var url = netsymsbizurl.replace("BIZID", $("#bizid").val());
$.post(url, {
username: username,
password: password,
key: "NOKEY",
desc: device.platform + " " + device.model + " " + device.serial,
action: "generatesynccode"
}, function (result) {
app.preloader.hide();
if (result.status == "OK") {
var code = result.code;
var accid = addaccount(username, password, url, code);
switchaccount(accid, false);
localStorage.setItem("firstrun", "1");
navigator.notification.alert("Account connected!", null, "Success", 'Continue');
restartApplication();
} else if (result.status == "ERROR") {
navigator.notification.alert(result.msg, null, "Error", 'Dismiss');
} else {
navigator.notification.alert("Something went wrong, please try again.", null, "Error", 'Dismiss');
}
}, "json").fail(function () {
app.preloader.hide();
navigator.notification.alert("Something went wrong, please try again.", null, "Error", 'Dismiss');
});
}
function scanCode() {
try {
cordova.plugins.barcodeScanner.scan(
function (result) {
if (!result.cancelled) {
if (!result.text.startsWith("bizsync://")) {
navigator.notification.alert("Invalid sync code. Try again.", null, "Error", 'Dismiss');
return;
}
var url = result.text.replace("bizsync://", "");
var parts = url.split("/");
var syncurl = parts[0].replace(/\\/g, "/");
var username = parts[1];
var key = parts[2];
checkAndSave(syncurl, username, key);
}
},
function (error) {
navigator.notification.alert("Scanning failed: " + error, null, "Error", 'Dismiss');
},
{
"showFlipCameraButton": false,
"prompt": "Scan mobile sync QR code."
}
);
} catch (ex) {
navigator.notification.alert(ex.message, null, "Error", 'Dismiss');
}
}