|
|
|
/*
|
|
|
|
* 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');
|
|
|
|
}
|
|
|
|
}
|