first commit

This commit is contained in:
Sthope 2022-02-27 18:53:29 +01:00
parent f6cbcac12e
commit 4db28eb1a2
14 changed files with 270 additions and 41 deletions

59
package-lock.json generated
View File

@ -15,12 +15,17 @@
"datatables.net": "^1.10.19",
"datatables.net-bs": "^1.10.19",
"faker": "^3.1.0",
"fs": "^0.0.1-security",
"googleapis": "^95.0.0",
"hideseek": "^0.7.0",
"http-server": "^0.9.0",
"http2": "^3.3.7",
"jquery": "^2.2.2",
"mdi": "^2.2.43",
"moment": "^2.12.0",
"net": "^1.0.2",
"readline": "^1.3.0",
"tls": "^0.0.1",
"vue": "^2.2.2",
"vue-date-picker": "^1.0.2",
"vue-resource": "^1.0.3",
@ -5367,6 +5372,11 @@
"readable-stream": "^2.0.0"
}
},
"node_modules/fs": {
"version": "0.0.1-security",
"resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
"integrity": "sha1-invTcYa23d84E/I4WLV+yq9eQdQ="
},
"node_modules/fs-extra": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
@ -7118,6 +7128,15 @@
"npm": ">=1.3.7"
}
},
"node_modules/http2": {
"version": "3.3.7",
"resolved": "https://registry.npmjs.org/http2/-/http2-3.3.7.tgz",
"integrity": "sha512-puSi8M8WNlFJm9Pk4c/Mbz9Gwparuj3gO9/RRO5zv6piQ0FY+9Qywp0PdWshYgsMJSalixFY7eC6oPu0zRxLAQ==",
"deprecated": "Use the built-in module in node 9.0.0 or newer, instead",
"engines": {
"node": ">=0.12.0 <9.0.0"
}
},
"node_modules/https-browserify": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
@ -9062,6 +9081,11 @@
"node": ">= 0.6"
}
},
"node_modules/net": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/net/-/net-1.0.2.tgz",
"integrity": "sha1-0XV+yaf7I3HYPPR1XOPifhCCk4g="
},
"node_modules/netmask": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz",
@ -11049,6 +11073,11 @@
"node": ">=0.6"
}
},
"node_modules/readline": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz",
"integrity": "sha1-xYDXfvLPyHUrEySYBg3JeTp6wBw="
},
"node_modules/readline2": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz",
@ -12422,6 +12451,11 @@
"node": ">=0.6.0"
}
},
"node_modules/tls": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/tls/-/tls-0.0.1.tgz",
"integrity": "sha1-CrK/WWjXHfL4wOFRXSSiJAuYqsg="
},
"node_modules/tmp": {
"version": "0.0.31",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz",
@ -18272,6 +18306,11 @@
"readable-stream": "^2.0.0"
}
},
"fs": {
"version": "0.0.1-security",
"resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
"integrity": "sha1-invTcYa23d84E/I4WLV+yq9eQdQ="
},
"fs-extra": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
@ -19745,6 +19784,11 @@
"sshpk": "^1.7.0"
}
},
"http2": {
"version": "3.3.7",
"resolved": "https://registry.npmjs.org/http2/-/http2-3.3.7.tgz",
"integrity": "sha512-puSi8M8WNlFJm9Pk4c/Mbz9Gwparuj3gO9/RRO5zv6piQ0FY+9Qywp0PdWshYgsMJSalixFY7eC6oPu0zRxLAQ=="
},
"https-browserify": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
@ -21414,6 +21458,11 @@
"integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=",
"dev": true
},
"net": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/net/-/net-1.0.2.tgz",
"integrity": "sha1-0XV+yaf7I3HYPPR1XOPifhCCk4g="
},
"netmask": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz",
@ -23112,6 +23161,11 @@
"set-immediate-shim": "^1.0.1"
}
},
"readline": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz",
"integrity": "sha1-xYDXfvLPyHUrEySYBg3JeTp6wBw="
},
"readline2": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz",
@ -24309,6 +24363,11 @@
"setimmediate": "^1.0.4"
}
},
"tls": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/tls/-/tls-0.0.1.tgz",
"integrity": "sha1-CrK/WWjXHfL4wOFRXSSiJAuYqsg="
},
"tmp": {
"version": "0.0.31",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz",

View File

@ -21,18 +21,23 @@
"datatables.net": "^1.10.19",
"datatables.net-bs": "^1.10.19",
"faker": "^3.1.0",
"fs": "^0.0.1-security",
"googleapis": "^95.0.0",
"hideseek": "^0.7.0",
"http-server": "^0.9.0",
"http2": "^3.3.7",
"jquery": "^2.2.2",
"mdi": "^2.2.43",
"moment": "^2.12.0",
"net": "^1.0.2",
"readline": "^1.3.0",
"tls": "^0.0.1",
"vue": "^2.2.2",
"vue-date-picker": "^1.0.2",
"vue-resource": "^1.0.3",
"vue-router": "^2.2.0",
"vuex": "^2.0.0",
"vuex-router-sync": "^4.1.2",
"googleapis": "^95.0.0",
"mdi": "^2.2.43"
"vuex-router-sync": "^4.1.2"
},
"devDependencies": {
"autoprefixer": "^6.7.2",

View File

@ -18,7 +18,7 @@
<li class="header">CPHA</li>
<router-link tag="li" class="pageLink" to="/personalfinances">
<a>
<i class="mdi mdi-money"></i>
<i class="fa fa-money"></i>
<span class="page">Personal Finances</span>
</a>
</router-link>
@ -38,7 +38,9 @@
</span>
</a>
<ul class="treeview-menu">
<li><a href="#"><i class="fa fa-cog"></i> Configurations</a></li>
<router-link tag="li" class="pageLink" to="/configurations">
<li><a href="#"><i class="fa fa-cog"></i> Configurations</a></li>
</router-link>
<li><a href="#"><i class="fa fa-google"></i> Google</a></li>
<li><a href="#"><i class="fa fa-connectdevelop"></i> MQTT / Home Assistant</a></li>
<li><a href="#"><i class="fa fa-server"></i> Backup/Restore</a></li>

View File

@ -0,0 +1,125 @@
<template>
<div>
<h1 class="text-center">Settings</h1>
<section class="content">
<div class="row">
<div class="col-md-12">
<div class="box box-info">
<!-- Input Addons -->
<div class="box-header with-border">
<h3 class="box-title">Inputs</h3>
</div>
<div class="box-body">
<!-- calendar group -->
<div class="input-group">
<span class="input-group-addon">
<i class="fa fa-fw fa-calendar"></i>
</span>
<datepicker :readonly="true" format="MMM/D/YYYY" id="dateInput" width="100%"></datepicker>
</div>
<br />
<br />
<!-- with characthers -->
<div class="input-group">
<span class="input-group-addon">
<i class="fa fa-fw fa-at" aria-hidden="true"></i>
</span>
<input class="form-control" placeholder="Username" type="text">
</div>
<br />
<div class="input-group">
<span class="input-group-addon">
<i class="fa fa-fw fa-usd" aria-hidden="true"></i>
</span>
<input class="form-control" type="text">
<span class="input-group-addon">.00</span>
</div>
<br />
<!-- with icons from font awesome -->
<h4>With icons</h4>
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-fw fa-envelope"></i></span>
<input class="form-control" placeholder="Email" type="email">
</div>
<br />
<div class="input-group">
<input class="form-control" type="text">
<span class="input-group-addon"><i class="fa fa-fw fa-check"></i></span>
</div>
<br>
<!-- Success/Error heads up input -->
<h4>With border indicator</h4>
<div class="form-group has-success">
<label class="control-label" for="inputSuccess"><i class="fa fa-fw fa-check"></i> Input with success</label>
<input class="form-control" id="inputSuccess" placeholder="Enter ..." type="text">
<span class="help-block">Help block with success</span>
</div>
<br />
<div class="form-group has-error">
<label class="control-label" for="inputError"><i class="fa fa-fw fa-times-circle-o"></i> Input with error</label>
<input class="form-control" id="inputError" placeholder="Enter ..." type="text">
<span class="help-block">Help block with error</span>
</div>
<!-- select examples -->
<h4>Select Options</h4>
<div class="form-group">
<label>Select</label>
<select class="form-control">
<option>option 1</option>
<option>option 2</option>
<option>option 3</option>
<option>option 4</option>
<option>option 5</option>
</select>
</div>
<br />
<div class="form-group">
<label>Select Multiple</label>
<select multiple="" class="form-control">
<option>option 1</option>
<option>option 2</option>
<option>option 3</option>
<option>option 4</option>
<option>option 5</option>
</select>
</div>
<!-- /input-group -->
</div>
<!-- /.box-body -->
</div>
</div>
</div>
</section>
</div>
</template>
<script>
require('moment')
import datepicker from 'vue-date-picker'
export default {
name: 'Settings',
components: { datepicker },
computed: {
datetime () {
return new Date()
}
},
methods: {
clearInput (vueModel) {
vueModel = ''
}
}
}
</script>
<style>
.datetime-picker input {
height: 4em !important;
}
</style>

View File

@ -4,17 +4,17 @@
<!-- Info boxes -->
<div class="col-md-3 col-sm-6 col-xs-12">
<info-box color-class="bg-aqua"
:icon-classes="['ion', 'ion-ios-gear-outline']"
text="CPU Traffic"
number="90%"></info-box>
<info-box color-class="bg-green"
:icon-classes="['ion', 'ion-cash']"
text="Total Income"
number="5868.26€"></info-box>
</div>
<!-- /.col -->
<div class="col-md-3 col-sm-6 col-xs-12">
<info-box color-class="bg-red"
:icon-classes="['fa', 'fa-google-plus']"
text="Likes"
number="41,410"></info-box>
:icon-classes="['ion', 'ion-ios-cart-outline']"
text="Total Expenses"
number="1854.54€"></info-box>
</div>
<!-- /.col -->
@ -22,17 +22,17 @@
<div class="clearfix visible-sm-block"></div>
<div class="col-md-3 col-sm-6 col-xs-12">
<info-box color-class="bg-green"
:icon-classes="['ion', 'ion-ios-cart-outline']"
text="Sales"
number="760"></info-box>
<info-box color-class="bg-aqua"
:icon-classes="['ion', 'ion-card']"
text="Total Saved"
number="13580.21€"></info-box>
</div>
<!-- /.col -->
<div class="col-md-3 col-sm-6 col-xs-12">
<info-box color-class="bg-yellow"
:icon-classes="['ion', 'ion-ios-people-outline']"
text="New Members"
number="2,000"></info-box>
text="Members"
number="2"></info-box>
</div>
<!-- /.col -->
@ -46,66 +46,63 @@
<div class="box-body">
<div class="col-sm-6 col-xs-12">
<p class="text-center">
<strong>Web Traffic Overview</strong>
<strong>Income vs Expenses</strong>
</p>
<canvas id="trafficBar" ></canvas>
<canvas id="iveBar" ></canvas>
</div>
<hr class="visible-xs-block">
<div class="col-sm-6 col-xs-12">
<p class="text-center">
<strong>Language Overview</strong>
<strong>Income</strong>
</p>
<canvas id="languagePie"></canvas>
<canvas id="incomePie"></canvas>
</div>
</div>
</div>
<!-- <div class="text-center">
<small><b>Pro Tip</b> Don't forget to star us on github!</small>
</div> -->
</div>
</div>
<!-- /.row -->
<!-- Main row -->
<div class="row">
<div class="col-md-3 col-sm-6 col-xs-12">
<!-- <div class="row"> -->
<!-- <div class="col-md-3 col-sm-6 col-xs-12">
<process-info-box color-class="bg-yellow"
:icon-classes="['ion', 'ion-ios-pricetag-outline']"
text="Inventory"
number="5,200"
:progress="50"
description="50% increase since May"></process-info-box>
</div>
</div> -->
<!-- /.col -->
<div class="col-md-3 col-sm-6 col-xs-12">
<!-- <div class="col-md-3 col-sm-6 col-xs-12">
<process-info-box color-class="bg-green"
:icon-classes="['ion', 'ion-ios-heart-outline']"
text="Mentions"
number="92,050"
:progress="20"
description="20% increase in 30 days"></process-info-box>
</div>
</div> -->
<!-- /.col -->
<div class="col-md-3 col-sm-6 col-xs-12">
<!-- <div class="col-md-3 col-sm-6 col-xs-12">
<process-info-box color-class="bg-red"
:icon-classes="['ion', 'ion-ios-cloud-download-outline']"
text="Downloads"
number="114,381"
:progress="70"
description="70% increase since yesterday"></process-info-box>
</div>
</div> -->
<!-- /.col -->
<div class="col-md-3 col-sm-6 col-xs-12">
<!-- <div class="col-md-3 col-sm-6 col-xs-12">
<process-info-box color-class="bg-aqua"
:icon-classes="['ion', 'ion-ios-chatbubble-outline']"
text="Direct Messages"
number="163,921"
:progress="40"
description="40% increase compared to last year"></process-info-box>
</div>
</div> -->
<!-- /.col -->
<!-- </div> -->
</div>
<!-- /.row -->
</section>
<!-- /.content -->
@ -148,20 +145,20 @@ export default {
},
mounted () {
this.$nextTick(() => {
var ctx = document.getElementById('trafficBar').getContext('2d')
var ctx = document.getElementById('iveBar').getContext('2d')
var config = {
type: 'line',
data: {
labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
datasets: [{
label: 'CoPilot',
label: 'Income',
fill: false,
borderColor: '#284184',
pointBackgroundColor: '#284184',
backgroundColor: 'rgba(0, 0, 0, 0)',
data: this.coPilotNumbers
}, {
label: 'Personal Site',
label: 'Expenses',
borderColor: '#4BC0C0',
pointBackgroundColor: '#4BC0C0',
backgroundColor: 'rgba(0, 0, 0, 0)',
@ -186,11 +183,11 @@ export default {
new Chart(ctx, config) // eslint-disable-line no-new
var pieChartCanvas = document.getElementById('languagePie').getContext('2d')
var pieChartCanvas = document.getElementById('incomePie').getContext('2d')
var pieConfig = {
type: 'pie',
data: {
labels: ['HTML', 'JavaScript', 'CSS'],
labels: ['Person1', 'Person2', 'Others'],
datasets: [{
data: [56.6, 37.7, 4.1],
backgroundColor: ['#00a65a', '#f39c12', '#00c0ef'],

View File

@ -11,6 +11,7 @@ import AccessView from './components/views/Access.vue'
import ServerView from './components/views/Server.vue'
import CryptosView from './components/views/Cryptos.vue'
import PersonalFinancesView from './components/views/PersonalFinances.vue'
import ConfigurationsView from './components/views/Configurations.vue'
// Routes
const routes = [
@ -65,6 +66,11 @@ const routes = [
component: CryptosView,
name: 'Cryptos',
meta: {description: 'List of popular javascript repos', requiresAuth: false}
}, {
path: 'configurations',
component: ConfigurationsView,
name: 'Configurations',
meta: {description: 'List of popular javascript repos', requiresAuth: false}
}
]
}, {

View File

@ -1 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 170 170" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;"><g id="Layer.-1"><path d="M82.574,102.829l-44.006,25.533l17.688,-40.831l26.318,15.298Zm6.347,-70.93l41.688,96.463l-73.569,-42.757l23.216,-53.706c1.45,-1.426 2.888,-2.021 4.315,-1.783c1.45,-0.261 2.9,0.333 4.35,1.783" style="fill:#fff;stroke:#fff;stroke-width:0.75px;"/><path d="M138.669,30.794c14.906,14.906 22.36,32.879 22.36,53.919c0,21.064 -7.454,39.049 -22.36,53.956c-14.906,14.905 -32.891,22.359 -53.955,22.359c-21.04,0 -39.014,-7.454 -53.92,-22.359c-14.906,-14.907 -22.359,-32.892 -22.359,-53.956c0,-21.04 7.453,-39.013 22.359,-53.919c14.906,-14.906 32.88,-22.359 53.92,-22.359c21.064,0 39.049,7.453 53.955,22.359l0,0Z" style="fill:none;stroke:#fff;stroke-width:8.56px;stroke-linecap:round;stroke-miterlimit:3;"/></g></svg>
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="150.000000pt" height="150.000000pt" viewBox="0 0 150.000000 150.000000"
preserveAspectRatio="xMidYMid meet">
<g transform="translate(0.000000,150.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 438 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

View File

@ -3167,6 +3167,11 @@
"resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
"version" "1.0.0"
"fs@^0.0.1-security":
"integrity" "sha1-invTcYa23d84E/I4WLV+yq9eQdQ="
"resolved" "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz"
"version" "0.0.1-security"
"ftp@~0.3.10":
"integrity" "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0="
"resolved" "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz"
@ -3774,6 +3779,11 @@
"jsprim" "^1.2.2"
"sshpk" "^1.7.0"
"http2@^3.3.7":
"integrity" "sha512-puSi8M8WNlFJm9Pk4c/Mbz9Gwparuj3gO9/RRO5zv6piQ0FY+9Qywp0PdWshYgsMJSalixFY7eC6oPu0zRxLAQ=="
"resolved" "https://registry.npmjs.org/http2/-/http2-3.3.7.tgz"
"version" "3.3.7"
"https-browserify@^1.0.0":
"integrity" "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM="
"resolved" "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz"
@ -5132,6 +5142,11 @@
"resolved" "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz"
"version" "0.6.1"
"net@^1.0.2":
"integrity" "sha1-0XV+yaf7I3HYPPR1XOPifhCCk4g="
"resolved" "https://registry.npmjs.org/net/-/net-1.0.2.tgz"
"version" "1.0.2"
"netmask@~1.0.4":
"integrity" "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU="
"resolved" "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz"
@ -6293,6 +6308,11 @@
"readable-stream" "^2.0.2"
"set-immediate-shim" "^1.0.1"
"readline@^1.3.0":
"integrity" "sha1-xYDXfvLPyHUrEySYBg3JeTp6wBw="
"resolved" "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz"
"version" "1.3.0"
"readline2@^1.0.1":
"integrity" "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU="
"resolved" "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz"
@ -7178,6 +7198,11 @@
dependencies:
"setimmediate" "^1.0.4"
"tls@^0.0.1":
"integrity" "sha1-CrK/WWjXHfL4wOFRXSSiJAuYqsg="
"resolved" "https://registry.npmjs.org/tls/-/tls-0.0.1.tgz"
"version" "0.0.1"
"tmp@0.0.31", "tmp@0.0.x":
"integrity" "sha1-jzirlDjhcxXl29izZX6L+yd65Kc="
"resolved" "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz"