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.
93 lines
2.8 KiB
JavaScript
93 lines
2.8 KiB
JavaScript
/*
|
|
* This file loads after JQuery and sets up variables and whatnot.
|
|
*/
|
|
|
|
|
|
// Constants
|
|
/**
|
|
* API base URL
|
|
*/
|
|
APIURL = "http://snipe-mobile-api/snipeapi/app/";
|
|
//APIURL = "http://localhost:8000/";
|
|
username = "";
|
|
|
|
/**
|
|
* Get the full URL to call for API things.
|
|
* @param {String} basename The name of the API file, without .php
|
|
* @returns {String} The fully-qualified URL for that API request
|
|
*/
|
|
function mkApiUrl(basename) {
|
|
return APIURL + basename + ".php";
|
|
}
|
|
|
|
/*
|
|
* Runs when the app opens
|
|
*/
|
|
$(document).ready(function () {
|
|
openscreen('login');
|
|
});
|
|
|
|
|
|
function dologin() {
|
|
$('#errorbase').hide();
|
|
$('#loginBtn').html('<i class="fa fa-cog fa-spin"></i> Logging in...');
|
|
$('#loginBtn').attr('disabled', true);
|
|
if ($('#usernameBox').val() === "") {
|
|
$('#errormsg').text("Error: Missing username.");
|
|
$('#errorbase').css('display', 'block');
|
|
}
|
|
$.ajax({
|
|
type: "POST",
|
|
url: mkApiUrl("login"),
|
|
data: {user: $('#usernameBox').val(), pass: $('#passwordBox').val()},
|
|
cache: false,
|
|
crossDomain: true,
|
|
dataType: 'json',
|
|
xhrFields: {
|
|
withCredentials: true
|
|
},
|
|
success: function (data) {
|
|
if (data.status === 'OK') {
|
|
username = $('#usernameBox').val();
|
|
localStorage.setItem("username", username);
|
|
openscreen("home");
|
|
} else {
|
|
$('#loginBtn').html('<i class="fa fa-sign-in"></i> Login');
|
|
$('#loginBtn').attr('disabled', false);
|
|
$('#errormsg').text("Error: " + data.message);
|
|
$('#errorbase').css('display', 'block');
|
|
}
|
|
},
|
|
error: function () {
|
|
$('#loginBtn').html('<i class="fa fa-sign-in"></i> Login');
|
|
$('#loginBtn').attr('disabled', false);
|
|
$('#errormsg').text("Error: Network failure.");
|
|
$('#errorbase').css('display', 'block');
|
|
}
|
|
}
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Switches the app to the given screen.
|
|
* @param {String} screenname The name of the screen to show.
|
|
* @param {String} effect FADE, SLIDE, or nothing
|
|
* @returns {undefined}
|
|
*/
|
|
function openscreen(screenname, effect) {
|
|
if (effect === 'FADE') {
|
|
$('#content-zone').fadeOut('slow', function () {
|
|
$('#content-zone').load("screens/" + screenname + ".html", function () {
|
|
$('#content-zone').fadeIn('slow');
|
|
});
|
|
});
|
|
} else if (effect === 'SLIDE') {
|
|
$('#content-zone').slideToggle('400', function () {
|
|
$('#content-zone').load("screens/" + screenname + ".html", function () {
|
|
$('#content-zone').slideToggle('400');
|
|
});
|
|
});
|
|
} else {
|
|
$('#content-zone').load("screens/" + screenname + ".html");
|
|
}
|
|
} |