Start making Helena Express app
After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 251 KiB After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 9.0 KiB |
After Width: | Height: | Size: 9.0 KiB |
Before Width: | Height: | Size: 161 KiB |
Before Width: | Height: | Size: 133 KiB |
After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 6.4 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 7.3 KiB |
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 7.6 KiB |
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 9.9 KiB |
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 699 B |
Before Width: | Height: | Size: 251 KiB After Width: | Height: | Size: 28 KiB |
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg class="svg-inline--fa fa-check-circle fa-w-16" aria-hidden="true" data-icon="check-circle" data-prefix="fad" focusable="false" role="img" version="1.1" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><g class="fa-group" fill="#4caf50"><path class="fa-secondary" d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm155.31 195.31l-184 184a16 16 0 0 1-22.62 0l-104-104a16 16 0 0 1 0-22.62l22.62-22.63a16 16 0 0 1 22.63 0L216 308.12l150.06-150.06a16 16 0 0 1 22.63 0l22.62 22.63a16 16 0 0 1 0 22.62z" opacity=".4"/><path class="fa-primary" d="M227.31 387.31a16 16 0 0 1-22.62 0l-104-104a16 16 0 0 1 0-22.62l22.62-22.63a16 16 0 0 1 22.63 0L216 308.12l150.06-150.06a16 16 0 0 1 22.63 0l22.62 22.63a16 16 0 0 1 0 22.62l-184 184z"/></g></svg>
|
After Width: | Height: | Size: 809 B |
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg class="svg-inline--fa fa-exclamation-circle fa-w-16" aria-hidden="true" data-icon="exclamation-circle" data-prefix="fad" focusable="false" role="img" version="1.1" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><g class="fa-group" fill="#ffc107"><path class="fa-secondary" d="M256 8C119 8 8 119.08 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 376a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm38.24-238.41l-12.8 128A16 16 0 0 1 265.52 288h-19a16 16 0 0 1-15.92-14.41l-12.8-128A16 16 0 0 1 233.68 128h44.64a16 16 0 0 1 15.92 17.59z" opacity=".4"/><path class="fa-primary" d="M278.32 128h-44.64a16 16 0 0 0-15.92 17.59l12.8 128A16 16 0 0 0 246.48 288h19a16 16 0 0 0 15.92-14.41l12.8-128A16 16 0 0 0 278.32 128zM256 320a32 32 0 1 0 32 32 32 32 0 0 0-32-32z"/></g></svg>
|
After Width: | Height: | Size: 820 B |
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg class="svg-inline--fa fa-info-circle fa-w-16" aria-hidden="true" data-icon="info-circle" data-prefix="fad" focusable="false" role="img" version="1.1" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><g class="fa-group" fill="#2196f3"><path class="fa-secondary" d="M256 8C119 8 8 119.08 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 110a42 42 0 1 1-42 42 42 42 0 0 1 42-42zm56 254a12 12 0 0 1-12 12h-88a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h12v-64h-12a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h64a12 12 0 0 1 12 12v100h12a12 12 0 0 1 12 12z" opacity=".4"/><path class="fa-primary" d="M256 202a42 42 0 1 0-42-42 42 42 0 0 0 42 42zm44 134h-12V236a12 12 0 0 0-12-12h-64a12 12 0 0 0-12 12v24a12 12 0 0 0 12 12h12v64h-12a12 12 0 0 0-12 12v24a12 12 0 0 0 12 12h88a12 12 0 0 0 12-12v-24a12 12 0 0 0-12-12z"/></g></svg>
|
After Width: | Height: | Size: 870 B |
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg class="svg-inline--fa fa-location-circle fa-w-16" aria-hidden="true" data-icon="location-circle" data-prefix="fad" focusable="false" role="img" version="1.1" viewBox="0 0 496 512" xmlns="http://www.w3.org/2000/svg"><g class="fa-group" fill="#00bcd4"><path class="fa-secondary" d="M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8ZM358.24,177.74,262.29,385.63c-11.2,24-46.38,16-46.38-9.59V288H128c-25.59,0-33.58-35.18-9.59-46.38L326.3,145.71c19.15-8,39.94,12.84,31.94,32Z" opacity=".4"/><path class="fa-primary" d="M118.36,241.7l207.89-95.95c19.2-8,40,12.8,32,32l-96,207.88c-11.2,24-46.38,16-46.38-9.59V288H128c-25.64,0-33.63-35.14-9.64-46.34Z"/></g></svg>
|
After Width: | Height: | Size: 719 B |
Before Width: | Height: | Size: 220 KiB After Width: | Height: | Size: 16 KiB |
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg class="svg-inline--fa fa-info-circle fa-w-16" aria-hidden="true" data-icon="info-circle" data-prefix="fad" focusable="false" role="img" version="1.1" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><g class="fa-group" fill="#673ab7"><path class="fa-secondary" d="m256 8c-137 0-248 111.08-248 248s111 248 248 248 248-111 248-248-111-248-248-248z" fill="#673ab7" opacity=".4"/></g><path class="fa-primary" d="m143.5 148.86h-32.143a5.3571 5.3571 0 0 0-5.3571 5.3571v203.57a5.3571 5.3571 0 0 0 5.3571 5.3572h32.143a5.3571 5.3571 0 0 0 5.3571-5.3572v-203.57a5.3571 5.3571 0 0 0-5.3571-5.3571zm42.857 0h-10.714a5.3571 5.3571 0 0 0-5.3572 5.3571v203.57a5.3571 5.3571 0 0 0 5.3572 5.3572h10.714a5.3571 5.3571 0 0 0 5.3571-5.3572v-203.57a5.3571 5.3571 0 0 0-5.3571-5.3571zm42.857 0h-10.714a5.3571 5.3571 0 0 0-5.3571 5.3571v203.57a5.3571 5.3571 0 0 0 5.3571 5.3572h10.714a5.3571 5.3571 0 0 0 5.3572-5.3572v-203.57a5.3571 5.3571 0 0 0-5.3572-5.3571zm85.714 0h-32.143a5.3571 5.3571 0 0 0-5.3571 5.3571v203.57a5.3571 5.3571 0 0 0 5.3571 5.3572h32.143a5.3571 5.3571 0 0 0 5.3571-5.3572v-203.57a5.3571 5.3571 0 0 0-5.3571-5.3571zm85.714 0h-32.143a5.3571 5.3571 0 0 0-5.3571 5.3571v203.57a5.3571 5.3571 0 0 0 5.3571 5.3572h32.143a5.3571 5.3571 0 0 0 5.3571-5.3572v-203.57a5.3571 5.3571 0 0 0-5.3571-5.3571z" fill="#673ab7"/></svg>
|
After Width: | Height: | Size: 1.3 KiB |
@ -0,0 +1,29 @@
|
||||
/*
|
||||
* 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/.
|
||||
*/
|
||||
|
||||
|
||||
function getAddressQRCode() {
|
||||
var qrstring = $("#addresscodeform #name").val() + "\t"
|
||||
+ $("#addresscodeform #company").val() + "\t"
|
||||
+ $("#addresscodeform #street1").val() + "\t"
|
||||
+ $("#addresscodeform #street2").val() + "\t"
|
||||
+ $("#addresscodeform #city").val() + "\t"
|
||||
+ $("#addresscodeform #state").val() + "\t"
|
||||
+ $("#addresscodeform #zip").val();
|
||||
|
||||
var canvas = document.createElement('canvas');
|
||||
|
||||
bwipjs.toCanvas(canvas, {
|
||||
bcid: 'qrcode', // Barcode type
|
||||
text: qrstring, // Text to encode
|
||||
scale: 5, // 3x scaling factor
|
||||
includetext: false, // Show human-readable text
|
||||
textxalign: 'center', // Always good to set this
|
||||
});
|
||||
document.getElementById("addresscode-barcode").src = canvas.toDataURL('image/png');
|
||||
|
||||
app.popup.create({el: document.getElementById("addresscode-popup")}).open();
|
||||
}
|
@ -1,96 +0,0 @@
|
||||
/*
|
||||
* 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/.
|
||||
*/
|
||||
|
||||
|
||||
function setupNewAccount(name) {
|
||||
app.dialog.preloader("Finishing up...");
|
||||
|
||||
apirequest(
|
||||
SETTINGS.apis.registernew,
|
||||
{
|
||||
name: name
|
||||
},
|
||||
function (resp) {
|
||||
app.dialog.close();
|
||||
if (resp.status == "ERROR") {
|
||||
app.dialog.alert(resp.msg, "Error");
|
||||
return;
|
||||
}
|
||||
setStorage("client_uuid", resp.client_uuid);
|
||||
setStorage("device_uuid", resp.device_uuid);
|
||||
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();
|
||||
try {
|
||||
var error = $.parseJSON(xhr.responseText);
|
||||
if (error && typeof error.msg != 'undefined') {
|
||||
app.dialog.alert(error.msg + " (NEWAC_XHR)", "Error");
|
||||
} else {
|
||||
app.dialog.alert("A server or network error occurred. Try again later. (NEWAC_XHRNOMSG)", "Error");
|
||||
}
|
||||
} catch (ex) {
|
||||
app.dialog.alert("A server error occurred. Try again later. (NEWAC_XHRBADJSON)", "Error");
|
||||
}
|
||||
}, "POST");
|
||||
}
|
||||
|
||||
function setupExistingAccount(email, phone, invoiceid) {
|
||||
app.dialog.preloader("Finding your account...");
|
||||
|
||||
apirequest(
|
||||
SETTINGS.apis.registerexisting,
|
||||
{
|
||||
email: email,
|
||||
phone: phone,
|
||||
invoiceid: invoiceid
|
||||
},
|
||||
function (resp) {
|
||||
app.dialog.close();
|
||||
if (resp.status == "ERROR") {
|
||||
app.dialog.alert(resp.msg, "Error");
|
||||
return;
|
||||
}
|
||||
setStorage("client_uuid", resp.client_uuid);
|
||||
setStorage("device_uuid", resp.device_uuid);
|
||||
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();
|
||||
try {
|
||||
var error = $.parseJSON(xhr.responseText);
|
||||
if (error && typeof error.msg != 'undefined') {
|
||||
app.dialog.alert(error.msg + " (LINKAC_XHR)", "Error");
|
||||
} else {
|
||||
app.dialog.alert("A server or network error occurred. Try again later. (LINKAC_XHRNOMSG)", "Error");
|
||||
}
|
||||
} catch (ex) {
|
||||
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();
|
||||
}
|
@ -1,86 +0,0 @@
|
||||
/*
|
||||
* 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/.
|
||||
*/
|
||||
|
||||
|
||||
function openOffersAsync(routeTo, routeFrom, resolve, reject) {
|
||||
app.dialog.preloader("Fetching latest deals...");
|
||||
|
||||
apirequest(
|
||||
SETTINGS.apis.offers_services,
|
||||
{},
|
||||
function (resp) {
|
||||
app.dialog.close();
|
||||
if (resp.status == "ERROR") {
|
||||
app.dialog.alert(resp.msg, "Error");
|
||||
reject();
|
||||
} else {
|
||||
var context = {
|
||||
offers: []
|
||||
};
|
||||
|
||||
for (var i = 0; i < resp.offers.length; i++) {
|
||||
if (resp.offers[i].valid === true) {
|
||||
// no expiration
|
||||
resp.offers[i].expires = "Limited time offer";
|
||||
} else {
|
||||
resp.offers[i].expires = "Expires " + formatTimestamp("l F j, Y", resp.offers[i].valid.to);
|
||||
}
|
||||
context.offers.push(resp.offers[i]);
|
||||
}
|
||||
|
||||
resolve({
|
||||
templateUrl: "pages/offers.html",
|
||||
}, {
|
||||
context: context
|
||||
});
|
||||
}
|
||||
},
|
||||
function (xhr) {
|
||||
app.dialog.close();
|
||||
var error = $.parseJSON(xhr.responseText);
|
||||
if (error && typeof error.msg != 'undefined') {
|
||||
app.dialog.alert(error.msg, "Error");
|
||||
} else {
|
||||
app.dialog.alert("A server or network error occurred.", "Error");
|
||||
}
|
||||
reject();
|
||||
}, "GET");
|
||||
}
|
||||
|
||||
function openServicesAsync(routeTo, routeFrom, resolve, reject) {
|
||||
app.dialog.preloader("Just a second...");
|
||||
|
||||
apirequest(
|
||||
SETTINGS.apis.offers_services,
|
||||
{},
|
||||
function (resp) {
|
||||
app.dialog.close();
|
||||
if (resp.status == "ERROR") {
|
||||
app.dialog.alert(resp.msg, "Error");
|
||||
reject();
|
||||
} else {
|
||||
var context = {
|
||||
services: resp.services
|
||||
};
|
||||
|
||||
resolve({
|
||||
templateUrl: "pages/services.html",
|
||||
}, {
|
||||
context: context
|
||||
});
|
||||
}
|
||||
},
|
||||
function (xhr) {
|
||||
app.dialog.close();
|
||||
var error = $.parseJSON(xhr.responseText);
|
||||
if (error && typeof error.msg != 'undefined') {
|
||||
app.dialog.alert(error.msg, "Error");
|
||||
} else {
|
||||
app.dialog.alert("A server or network error occurred.", "Error");
|
||||
}
|
||||
reject();
|
||||
}, "GET");
|
||||
}
|
@ -1,60 +0,0 @@
|
||||
<!-- 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/. -->
|
||||
|
||||
<div class="page" data-name="linkaccount">
|
||||
|
||||
<div class="navbar">
|
||||
<div class="navbar-inner text-color-white color-white">
|
||||
<div class="left">
|
||||
<a class="link back" href="#">
|
||||
<i class="icon icon-back"></i>
|
||||
<span class="if-not-md">Back</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="title">Link Account</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="page-content noselect">
|
||||
|
||||
<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><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">
|
||||
<div class="card margin">
|
||||
<div class="card-content text-align-center padding-vertical" onclick='router.navigate("/linkaccount/new")'>
|
||||
<div>
|
||||
<div class="card-header display-block no-hairlines">
|
||||
<h1 class="no-margin"><i class="fad fa-user-plus"></i></h1>
|
||||
<h2 class="no-margin">New Customer</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-content-padding">
|
||||
<p>I haven't done business with Netsyms before.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-100 medium-90 xlarge-75 margin-horizontal">
|
||||
<div class="card margin">
|
||||
<div class="card-content text-align-center padding-vertical" onclick='router.navigate("/linkaccount/existing")'>
|
||||
<div>
|
||||
<div class="card-header display-block no-hairlines">
|
||||
<h1 class="no-margin"><i class="fad fa-user-check"></i></h1>
|
||||
<h2 class="no-margin">Current Customer</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-content-padding">
|
||||
<p>I've received at least one invoice from Netsyms in the past.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
@ -1,72 +0,0 @@
|
||||
<!-- 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/. -->
|
||||
|
||||
<div class="page" data-name="linkaccount_new">
|
||||
|
||||
<div class="navbar">
|
||||
<div class="navbar-inner text-color-white color-white">
|
||||
<div class="left">
|
||||
<a class="link back" href="#">
|
||||
<i class="icon icon-back"></i>
|
||||
<span class="if-not-md">Back</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="title">Link Account</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="page-content noselect">
|
||||
|
||||
<div class="row justify-content-center margin-top">
|
||||
<div class="col-100 medium-90 xlarge-75 margin-horizontal">
|
||||
<div class="card margin">
|
||||
<div class="card-content padding-vertical">
|
||||
<div>
|
||||
<div class="card-header display-block no-hairlines text-align-center">
|
||||
<h2 class="no-margin">Welcome back!<br>Let's find your account.</h2>
|
||||
<p>Fill in as much info as you can.
|
||||
</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">Email</div>
|
||||
<div class="item-input-wrap">
|
||||
<input type="email" id="existingaccount_email" />
|
||||
<span class="input-clear-button"></span>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item-content item-input item-input-outline">
|
||||
<div class="item-inner">
|
||||
<div class="item-title item-floating-label">Phone</div>
|
||||
<div class="item-input-wrap">
|
||||
<input type="tel" id="existingaccount_phone" />
|
||||
<span class="input-clear-button"></span>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item-content item-input item-input-outline">
|
||||
<div class="item-inner">
|
||||
<div class="item-title item-floating-label">Invoice Number</div>
|
||||
<div class="item-input-wrap">
|
||||
<input type="tel" id="existingaccount_invoiceid" />
|
||||
<span class="input-clear-button"></span>
|
||||
<div class="item-input-info">Find it in the dark blue box on any invoice.</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="card-content-padding">
|
||||
<div class="button" onclick="setupExistingAccount($('#existingaccount_email').val(),$('#existingaccount_phone').val(),$('#existingaccount_invoiceid').val())"><i class="far fa-chevron-right"></i> Finish</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
@ -1,46 +0,0 @@
|
||||
<!-- 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/. -->
|
||||
|
||||
<div class="page" data-name="offers">
|
||||
|
||||
<div class="navbar">
|
||||
<div class="navbar-inner text-color-white color-white">
|
||||
<div class="left">
|
||||
<a class="link back" href="#">
|
||||
<i class="icon icon-back"></i>
|
||||
<span class="if-not-md">Back</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="title">Offers</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="page-content noselect">
|
||||
<div class="row justify-content-center margin-top">
|
||||
<div class="col-100 medium-90 xlarge-75 margin-horizontal">
|
||||
<div class="row justify-content-center">
|
||||
{{#each offers}}
|
||||
<div class="col-100 small-50 xlarge-33">
|
||||
<div class="card margin">
|
||||
<div class="card-content text-align-center padding-vertical">
|
||||
<div>
|
||||
<div class="card-header display-block no-hairlines">
|
||||
<h1 class="no-margin"><i class="{{icon}}"></i></h1>
|
||||
<h1 class="no-margin">{{title}}</h1>
|
||||
<small style="opacity: 0.7"><i class="far fa-clock"></i> {{expires}}</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-content-padding">
|
||||
<p>{{text}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
@ -1,53 +0,0 @@
|
||||
<!-- 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/. -->
|
||||
|
||||
<div class="page" data-name="services">
|
||||
|
||||
<div class="navbar">
|
||||
<div class="navbar-inner text-color-white color-white">
|
||||
<div class="left">
|
||||
<a class="link back" href="#">
|
||||
<i class="icon icon-back"></i>
|
||||
<span class="if-not-md">Back</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="title">Services</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="page-content noselect">
|
||||
<div class="row justify-content-center margin-top">
|
||||
<div class="col-100 medium-90 xlarge-75 margin-horizontal">
|
||||
<a name="top"></a>
|
||||
{{#each services}}
|
||||
<h2 class="margin-left display-flex justify-content-space-between">
|
||||
<span>{{cat}}</span>
|
||||
<span onclick="$('.page[data-name=services] .page-content').animate({scrollTop: '0'});" class="margin-top-half"><i class="material-icons">arrow_upward</i></span>
|
||||
</h2>
|
||||
<div class="row justify-content-center">
|
||||
{{#each services}}
|
||||
<div class="col-100 small-50 xlarge-33">
|
||||
<div class="card margin">
|
||||
<div class="card-content text-align-center padding-vertical">
|
||||
<div>
|
||||
<div class="card-header display-block no-hairlines">
|
||||
<h1 class="no-margin"><i class="{{icon}}"></i></h1>
|
||||
<h1 class="no-margin">{{title}}</h1>
|
||||
<small style="opacity: 0.7">{{price}}</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-content-padding">
|
||||
<p>{{text}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|