Update Stats on Save

This commit is contained in:
portree_kid 2020-07-05 21:18:14 +02:00
parent 64685aa1d1
commit 8fcd1f64fb
4 changed files with 118 additions and 20 deletions

View File

@ -1,3 +1,14 @@
<!--
Copyright 2020 Keith Paterson
This file is part of FG Airports.
FG Airports is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
FG Airports is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with FG Airports. If not, see http://www.gnu.org/licenses/.
-->
<template>
<div>
<el-row>

View File

@ -22,18 +22,33 @@
<ParkingList></ParkingList>
</el-tab-pane>
<el-tab-pane label="Statistics" name="third">
<el-row><el-col :span="8"><span class="label">Traffic :</span></el-col></el-row>
<el-row>
<el-col :span="8">Flights :</el-col>
<el-col :span="4">{{ flights }}</el-col>
<el-col :span="8">Parking Positions :</el-col>
<el-col :span="4">{{ parking }}</el-col>
</el-row>
<el-row>
<el-col :span="8">Groundnet Nodes :</el-col>
<el-col :span="4">{{groundnet}}</el-col>
<el-col :span="8"></el-col>
<el-col :span="4"></el-col>
</el-row>
<el-row><el-col :span="8"><span class="label">GIT/Terrasync :</span></el-col></el-row>
<el-row>
<el-col :span="8">Parking Positions :</el-col>
<el-col :span="4">{{ parking }}</el-col>
<el-col :span="8">Groundnet Nodes :</el-col>
<el-col :span="4">{{groundnet}}</el-col>
</el-row>
<el-row><el-col :span="8"><span class="label">Work :</span></el-col></el-row>
<el-row v-if="wip">
<el-col :span="8">Work Parking Positions :</el-col>
<el-col :span="4">{{ wipparking }}</el-col>
<el-col :span="8">Work Groundnet Nodes :</el-col>
<el-col :span="4">{{wipgroundnet}}</el-col>
</el-row>
<el-row v-if="wip">
<el-col :span="4">Saved :</el-col>
<el-col :span="8" class="text">{{date}}</el-col>
<el-col :span="4">Uploaded :</el-col>
<el-col :span="8" class="text">{{upload_date}}</el-col>
</el-row>
</el-tab-pane>
</el-tabs>
</div>
@ -94,6 +109,34 @@ export default {
parking: function () {
return this.$store.state.Airports.currentAirport.parking
},
wipgroundnet: function () {
return this.$store.state.Airports.currentAirport.wipgroundnet
},
wipparking: function () {
return this.$store.state.Airports.currentAirport.wipparking
},
wip: function () {
// .icao
var wip = this.$store.state.Settings.wip.filter(w => w.icao === this.$store.state.Airports.currentAirport.icao)
if (wip.length > 0) {
return true
}
return false
},
date: function () {
var wip = this.$store.state.Settings.wip.filter(w => w.icao === this.$store.state.Airports.currentAirport.icao)
var d = new Date(wip[0].time)
return d.toLocaleDateString() + ' ' + d.toLocaleTimeString()
},
upload_date: function () {
var wip = this.$store.state.Settings.wip.filter(w => w.icao === this.$store.state.Airports.currentAirport.icao)
if (wip[0].upload !== undefined) {
var d = new Date(wip[0].upload)
return d.toLocaleDateString() + ' ' + d.toLocaleTimeString()
} else {
return '-'
}
},
airport: {
get: function () {
return this.$store.state.Airports.currentAirport !== undefined

View File

@ -142,8 +142,42 @@ You should have received a copy of the GNU General Public License along with FG
saveDefered () {
this.$parent.$parent.$refs.editLayer.save()
this.$parent.$parent.$refs.editLayer.disableEdit()
this.scanGroundnets()
Vue.set(this, 'saveDialogVisible', false)
},
scanGroundnets () {
try {
const winURL = process.env.NODE_ENV === 'development'
? `http://localhost:9080/src/renderer/utils/worker.js`
: `file://${process.resourcesPath}/workers/worker.js`
console.log('make a worker: ', path.resolve(__dirname, 'worker.js'))
var icao = this.$parent.$parent.$refs.editLayer.icao
const worker = new Worker(winURL)
var aptDir = path.join(this.$store.state.Settings.settings.airportsDirectory, icao[0], icao[1], icao[2]);
worker.postMessage(['scan', aptDir ])
// the reply
var store = this.$store
worker.onmessage = function (e) {
if (e.data === 'scanStarted') {
this.progress = 0
this.max = 0
} else if (e.data === 'DONE') {
console.log('DONE')
store.dispatch('getAirports')
worker.terminate()
} else if (e.data.length > 0) {
if (e.data[0] === 'max') {
}
if (e.data[0] === 'progress') {
}
}
}
} catch (err) {
console.error(err)
}
},
pollData () {
var workery = this.worker
var view = this

View File

@ -1,12 +1,15 @@
/* eslint-disable */
// const fs = require('fs');
// const path = require('path');
// const math = require('mathjs');
// const util = require('util');
// const airports = require('./airports.js');
// const homedir = require('os').homedir();
// const apt = require('apt.js');
/*
Copyright 2020 Keith Paterson
This file is part of FG Airports.
FG Airports is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
FG Airports is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with FG Airports. If not, see http://www.gnu.org/licenses/.
*/
/* eslint-disable */
/**
* Iterates over an array with a async function and await
* @param {*} array The array being iterated over
@ -342,7 +345,7 @@ function store(icao, airline, value) {
async function readGroundnet(f, features) {
var promise = new Promise(function (resolve, reject) {
try {
var filename = path.basename(f).match('^([^.]+)\\.([^.]+)\\.([^.]+)');
var filename = path.basename(f).match('^([^.]+)\\.([^.]+)(\\.new)?\\.([^.]+)');
if (filename == null) {
resolve("File didn't match");
}
@ -430,13 +433,20 @@ async function readGroundnet(f, features) {
logger('info', 'groundnet : ' + filename[1]);
if (dat['?xml'].groundnet) {
var nodes = dat['?xml'].groundnet.TaxiNodes;
var parkingnodes = dat['?xml'].groundnet.parkingList;
if (nodes && nodes.node) {
logger('info', nodes);
}
feature['properties']['groundnet'] = nodes && nodes.node ? nodes.node.length : 0;
var nodes = dat['?xml'].groundnet.parkingList;
if(filename [3] === '.new') {
feature['properties']['wipgroundnet'] = nodes && nodes.node ? nodes.node.length : 0;
//debugger;
feature['properties']['parking'] = nodes && nodes.Parking ? nodes.Parking.length : 0;
feature['properties']['wipparking'] = parkingnodes && parkingnodes.Parking ? parkingnodes.Parking.length : 0;
} else {
feature['properties']['groundnet'] = nodes && nodes.node ? nodes.node.length : 0;
//debugger;
feature['properties']['parking'] = parkingnodes && parkingnodes.Parking ? parkingnodes.Parking.length : 0;
}
}
} else if (filename[2] == 'ils') {
logger('info', 'ils : ' + filename[1]);