Tracking: Get machines for linked client account (close #1)

master
Skylar Ittner 4 years ago
parent 9c037e8418
commit a7bb09e4ec

@ -54,16 +54,16 @@ Framework7 and FontAwesome both have a .fab class
-webkit-app-region: no-drag;
}
.list ul {
.list.transparent ul {
background-color: rgba(255,255,255,0.65);
}
.list ul li.item-divider {
.list.transparent ul li.item-divider {
background-color: rgba(255,255,255,0.5);
}
.theme-dark .list ul {
.theme-dark .list.transparent ul {
background-color: rgba(0,0,0,0.65);
}
.theme-dark .list ul li.item-divider {
.theme-dark .list.transparent ul li.item-divider {
background-color: rgba(0,0,0,0.5);
}

@ -21,7 +21,15 @@ function setupNewAccount(name) {
}
setStorage("client_uuid", resp.client_uuid);
setStorage("device_uuid", resp.device_uuid);
restartApplication();
app.toast.create({
icon: '<i class="far fa-user-check fa-3x margin"></i>',
text: '<h3 class="no-margin-top">Account Set Up!</h3>',
position: 'center',
closeTimeout: 3000
}).open();
router.navigate("/home", {
transition: "f7-dive"
});
},
function (xhr) {
app.dialog.close();
@ -56,7 +64,15 @@ function setupExistingAccount(email, phone, invoiceid) {
}
setStorage("client_uuid", resp.client_uuid);
setStorage("device_uuid", resp.device_uuid);
restartApplication();
app.toast.create({
icon: '<i class="far fa-user-check fa-3x margin"></i>',
text: '<h3 class="no-margin-top">Account Linked!</h3>',
position: 'center',
closeTimeout: 3000
}).open();
router.navigate("/home", {
transition: "f7-dive"
});
},
function (xhr) {
app.dialog.close();
@ -71,4 +87,10 @@ function setupExistingAccount(email, phone, invoiceid) {
app.dialog.alert("A server error occurred. Try again later. (LINKAC_XHRBADJSON)", "Error");
}
}, "POST");
}
function unlinkAccount() {
localStorage.removeItem("client_uuid");
localStorage.removeItem("device_uuid");
restartApplication();
}

@ -6,11 +6,47 @@
function openTrackingInfoPage(id) {
if (typeof id == "undefined" || id == null || id == "") {
app.input.validate("#deviceid");
return;
}
router.navigate("/track/" + id);
}
function addClientMachineSuggestions() {
$("#client-link-account-message").addClass("display-none");
$("#client-machine-suggestion-list").addClass("display-none");
$("#client-machine-suggestion-list-preloader").addClass("display-none");
$("#client-machine-suggestion-list ul").html("");
if (inStorage("client_uuid")) {
$("#client-machine-suggestion-list-preloader").removeClass("display-none");
apirequest(
SETTINGS.apis.getmachines,
{
clientuuid: getStorage("client_uuid")
},
function (resp) {
if (resp.status == "OK") {
if (resp.machines.length > 0) {
for (var i = 0; i < resp.machines.length; i++) {
var id = resp.machines[i].id;
var type = resp.machines[i].type.label;
var icon = resp.machines[i].icon;
$("#client-machine-suggestion-list ul").append('<li><a class="item-link item-content" href="/track/' + id + '">'
+ '<div class="item-inner"><div class="item-title">'
+ '<i class="' + icon + '"></i> ' + type + " #" + id
+ '</div></div></a></li>');
}
$("#client-machine-suggestion-list").removeClass("display-none");
}
$("#client-machine-suggestion-list-preloader").addClass("display-none");
}
}, "GET");
} else {
$("#client-link-account-message").removeClass("display-none");
}
}
function trackOpenAsync(routeTo, routeFrom, resolve, reject) {
app.dialog.preloader("Loading...");

@ -12,7 +12,7 @@
<span class="if-not-md">Back</span>
</a>
</div>
<div class="title">Setup Account</div>
<div class="title">Link Account</div>
</div>
</div>
@ -21,8 +21,7 @@
<div class="row justify-content-center margin-top">
<div class="col-100 medium-90 xlarge-75 margin-horizontal">
<div class="block text-color-white">
<p>Before we get started, tell us a little bit about yourself.
<span class="taptext">Tap</span><span class="clicktext">Click</span> the option that best describes you.
<p><span class="taptext">Tap</span><span class="clicktext">Click</span> the option that best describes you.
</div>
</div>
<div class="col-100 medium-90 xlarge-75 margin-horizontal">

@ -12,7 +12,7 @@
<span class="if-not-md">Back</span>
</a>
</div>
<div class="title">Setup Account</div>
<div class="title">Link Account</div>
</div>
</div>

@ -19,7 +19,7 @@
<div class="page-content noselect">
<div class="row justify-content-center">
<div class="col-100 medium-60 large-50 xlarge-40 elevation-tablet margin-top-tablet">
<div class="list media-list no-hairlines no-margin-top no-margin-bottom tablet-inset">
<div class="list transparent media-list no-hairlines no-margin-top no-margin-bottom tablet-inset">
<ul>
{{#each settings}}
<li>

@ -22,17 +22,14 @@
<div class="col-100 medium-90 xlarge-75 margin-horizontal">
<div class="card margin">
<div class="card-content text-align-center padding-vertical">
<div>
<div class="card-header display-block no-hairlines">
<h3 class="no-margin">Device ID or Tracking Code</h3>
</div>
</div>
<div class="list">
<ul>
<li class="item-content item-input item-input-outline">
<div class="item-inner">
<div class="item-title item-floating-label">Device ID or Tracking Code</div>
<div class="item-input-wrap">
<input type="text" id="deviceid" placeholder="" autocomplete="off" autocorrect="off" autocapitalize="off" />
<input type="text" id="deviceid" required validate data-error-message="&nbsp;" placeholder="" autocomplete="off" autocorrect="off" autocapitalize="off" />
<span class="input-clear-button"></span>
</div>
</div>
@ -43,6 +40,23 @@
<div class="button" onclick="openTrackingInfoPage($('input[name=\'deviceid\']').val())"><i class="fal fa-search"></i> Track</div>
</div>
</div>
<div class="card-content padding-vertical display-none" id="client-link-account-message">
<div class="block">
<p>Don't like typing? Connect to your Netsyms billing account for one-click tracking.</p>
<a href="/linkaccount" class="button"><i class="far fa-link"></i> Link Account</a>
</div>
</div>
<div class="card-content display-none padding text-align-center" id="client-machine-suggestion-list-preloader">
<div class="preloader"></div>
</div>
<div class="card-content display-none" id="client-machine-suggestion-list">
<h4 class="block">Or <span class="taptext">tap</span><span class="clicktext">click</span> one of your devices:</h4>
<div class="list">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>

@ -20,7 +20,7 @@
<div class="page-content">
<div class="row justify-content-center">
<div class="col-100 medium-60 large-50 xlarge-40">
<div class="list no-hairlines tablet-inset elevation-tablet">
<div class="list transparent no-hairlines tablet-inset elevation-tablet">
<ul>
<li class="item-divider">Info</li>
{{#each info}}

@ -52,7 +52,15 @@ var routes = [
{
path: '/track',
url: './pages/track.html',
name: 'track'
name: 'track',
on: {
pageBeforeIn: function () {
addClientMachineSuggestions();
$("#deviceid").val("0");
app.input.validate("#deviceid");
$("#deviceid").val("");
}
}
},
{
path: '/linkaccount',
@ -102,6 +110,27 @@ var routes = [
name: 'settings',
async: function (routeTo, routeFrom, resolve, reject) {
var settings = [];
if (!inStorage("client_uuid")) {
settings.push(
{
setting: "linkaccount",
title: "Link To Account",
text: "Connect to your Netsyms billing account to enable more features.",
onclick: "router.navigate('/linkaccount')",
link: true
}
);
} else {
settings.push(
{
setting: "linkaccount",
title: "Unlink Account",
text: "Disconnect this device from your Netsyms account.",
onclick: "unlinkAccount()",
link: true
}
);
}
settings.push(
{
setting: "display",

@ -7,6 +7,7 @@
var SETTINGS = {
apis: {
track: "https://track.netsyms.com/public/api.php",
getmachines: "https://apis.netsyms.net/repairapp/getmachines.php",
offers: "https://apis.netsyms.net/repairapp/offers.php",
registernew: "https://apis.netsyms.net/repairapp/registernew.php",
registerexisting: "https://apis.netsyms.net/repairapp/registerexisting.php"

Loading…
Cancel
Save