Skip to content
This repository has been archived by the owner on Sep 14, 2023. It is now read-only.

Commit

Permalink
Fixed a lot of bugs and added a few things.
Browse files Browse the repository at this point in the history
  • Loading branch information
BossOfGames committed Jun 1, 2019
1 parent 709b468 commit f5e8c3d
Show file tree
Hide file tree
Showing 26 changed files with 22,876 additions and 12,941 deletions.
2 changes: 1 addition & 1 deletion Modules/FrontEnd/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@
"laravel-mix": "^2.1",
"laravel-mix-merge-manifest": "^0.1.1"
}
}
}
10 changes: 10 additions & 0 deletions Modules/MaterialCrew/Http/Controllers/CrewOpsController.php
Original file line number Diff line number Diff line change
Expand Up @@ -234,4 +234,14 @@ public function lz($num)
{
return (strlen($num) < 2) ? "0{$num}" : $num;
}
public function storePacx(Request $request) {
$data = json_decode($request->input('data'));
//dd($data);
$flight = Flight::find(intval($data->flight));
$flight->pacx_url = $data->report_url;

$flight->save();

return redirect()->action('\Modules\MaterialCrew\Http\Controllers\CrewOpsController@getLogbookDetailed', ['id' => $flight->id]);
}
}
2 changes: 1 addition & 1 deletion Modules/MaterialCrew/Http/routes.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
});

// Events System

Route::post('/pacx', 'CrewOpsController@storePacx');
Route::group(['prefix' => '/events', 'as' => 'events.'], function () {
Route::get('/', 'EventsController@index')->name('index');
Route::get('/create', 'EventsController@create')->name('create');
Expand Down
1 change: 1 addition & 0 deletions Modules/MaterialCrew/Resources/assets/js/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ Vue.http.interceptors.push((request, next) => {
Vue.component('AirlineList', require('./components/AirlineList.vue'));
Vue.component('airport-wx', require('./components/AirportWX.vue'));
Vue.component('flight-widget', require('./components/FlightWidget.vue'));
Vue.component('pacx-flight-log', require('./components/PacxFlightLog'));

const app = new Vue({
el: '#app'
Expand Down
106 changes: 106 additions & 0 deletions Modules/MaterialCrew/Resources/assets/js/components/PacxFlightLog.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
<template>
<div>
<div class="white-text card-offset-title">TFDi PACX Flight Report</div>
<div v-if="!url">
<div class="card grey darken-4">
<div class="card-content">
<div class="input-field col s6">
<input id="first_name" v-model="report_url" type="text" class="validate">
<label for="first_name">Flight Report URL</label>
</div>
<form method="post" v-bind:action="'/flightops/pacx'">
<input type="hidden" name="_token" v-bind:value="csrfToken"/>
<input type="hidden" name="data" v-bind:value="JSON.stringify({ report_url, flight })"/>
<div style="margin: 1rem auto; text-align: center;">
<button class="btn" type="submit">Add Report</button>
</div>
</form>
</div>
</div>
</div>
<div v-if="flight_log">
<div class="row" v-if="flight_log">
<div class="col l6 s12">
<div class="card grey darken-4 white-text">
<div class="card-content">
<ul class="collection with-header">
<li class="collection-item"><div>Satisfaction<div class="secondary-content">{{ flight_log.SatisfactionString._text }}</div></div></li>
<li class="collection-item"><div>Est Departure<div class="secondary-content">{{ flight_log.EstimatedDepartureTime._text }}</div></div></li>
<li class="collection-item"><div>Act Departure<div class="secondary-content">{{ flight_log.ActualDepartureTime._text }}</div></div></li>
<li class="collection-item"><div>Est Flight<div class="secondary-content">{{ flight_log.EstimatedFlightTime._text }}</div></div></li>
<li class="collection-item"><div>Act Flight<div class="secondary-content">{{ flight_log.ActualFlightTime._text }}</div></div></li>
<li class="collection-item"><div>Est Arrival<div class="secondary-content">{{ flight_log.EstimatedArrivalTime._text }}</div></div></li>
<li class="collection-item"><div>Act Arrival<div class="secondary-content">{{ flight_log.ActualArrivalTime._text }}</div></div></li>
</ul>
</div>
</div>
</div>
<div class="col l6 s12">
<div class="card grey darken-4 white-text">
<div class="card-content">
<h4>Comments</h4>
<p v-for="c in flight_log.Comments.Comment">{{c._text }}</p>
</div>
</div>
</div>
<div class="col l10 offset-l1">
<div class="card-offset-title">Passenger Manifest</div>
<div class="card grey darken-4 white-text" style="max-height: 400px; overflow-y: scroll;">
<div class="card-content">
<table>
<thead>
<tr>
<td>First Name</td>
<td>Last Name</td>
<td>Age</td>
<td>Trip Purpose</td>
</tr>
</thead>
<tbody>
<tr v-for="p in flight_log.Passengers.Passenger">
<td>{{ p.FirstName._text }}</td>
<td>{{ p.LastName._text }}</td>
<td>{{ p.Age._text }}</td>
<td>{{ p.TripPurpose._text }}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</template>

<script>
import axios from 'axios'
import x2js from 'xml-js'
export default {
name: "PacxFlightLog",
data() {
return {
flight_log: null,
report_url: "",
csrfToken: window.Laravel.csrfToken
}
},
created() {
if (this.url) {
axios.get(this.url+'/xml').then(res => {
let log = x2js.xml2js(res.data, {compact: true});
console.log(log);
this.flight_log = log.PACX.FlightReport;
});
}
},
props: {
url: String,
flight: String
}
}
</script>

<style scoped>
</style>
43 changes: 10 additions & 33 deletions Modules/MaterialCrew/Resources/views/logbook/show.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,26 +6,12 @@
@endsection

@section('content')
<div class="z-depth-2" style="position: relative; width: 100%; height: 300px; overflow: hidden; background: url('{{ Auth::user()->cover_url }}'), url(http://i.imgur.com/3UZDNCM.png); background-repeat: no-repeat;
background-position: center;
background-size: cover;">
<div style="height: 100%; background: linear-gradient(rgba(255,0,0,0), rgba(255,0,0,0), rgba(69,69,69,0.9))">
</div>
<div class="container" style="position: inherit;">
<div style="position: absolute; right: 0; bottom: 1rem;">
<div id="status" class="card">
<div id="status-text" class="card-content white-text"></div>
</div>
</div>
</div>
<h3 class="white-text" style="position: absolute; bottom: 0; left: 2rem;">{{ $p->airline->icao }}{{ $p->flightnum }} Details</h3>
</div>
<div class="container">
<div class="container-fluid">
<div class="row">
<div class="col l6 s12">
<div class="card">
<div class="card grey darken-3 white-text">
<div class="card-content">
<h4>Crew Information</h4>
<h4>Crew</h4>
<div id="captain">
<ul class="collection with-header">
<li class="collection-item"><div>Username<div class="secondary-content">{{ $p->user->username }}</div></div></li>
Expand All @@ -38,7 +24,9 @@
</div>
</div>
</div>
<div style="margin-top: 2rem;" class="card">
</div>
<div class="col l6 s12">
<div class="card grey darken-3 white-text">
<div class="card-content">
<h4>Flight Information</h4>
<ul class="tabs tabs-fixed-width">
Expand Down Expand Up @@ -71,19 +59,8 @@
</div>
</div>
</div>
<div class="col l6 s12">
<div class="card">
<div class="card-content">
<span class="card-title">Flight Details</span>
<div id="map" style="width: auto; height: 40vh;"></div>
</div>
</div>
</div>
<div class="col l6 s12">

</div>

</div>
<pacx-flight-log url="{!! $p->pacx_url !!}" flight="{{$p->id}}"></pacx-flight-log>
</div>
@endsection

Expand All @@ -108,9 +85,9 @@
$("#status-text").append('STATUS: <b>DENIED</b>');
break;
}
if(data.acars_client = "smartCARS") {
if (data.flight_data !== null) {
var logSplit = data.flight_data.split("*");
if(data.acars_client === "smartCARS") {
if (data.sc_log !== null) {
var logSplit = data.sc_log.split("*");
$.each(logSplit, function (index, value) {
$("#scLogs").append('<li class="collection-item"><div>' + value + '</div></li>')
});
Expand Down
26 changes: 21 additions & 5 deletions Modules/MaterialCrew/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,28 @@
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
},
"devDependencies": {
"cross-env": "^5.1.4",
"laravel-mix": "^2.1",
"laravel-mix-merge-manifest": "^0.1.1"
"accounting": "^0.4.1",
"axios": "^0.17",
"bootstrap": "^4.1.3",
"cross-env": "^5.2.0",
"jquery": "^3.4.1",
"laravel-mix": "^1.0",
"laravel-mix-merge-manifest": "^0.1.2",
"vue": "^2.6.10",
"vue-events": "^3.1.0",
"vuetable-2": "^1.7.5"
},
"dependencies": {
"axios": "^0.18.0",
"vue-axios": "^2.1.3"
"bootstrap-sass": "^3.3.7",
"node-sass": "^4.12.0",
"vue-persist": "^0.4.0",
"vue-resource": "^1.5.1",
"vue-router": "^3.0.6",
"vue-template-compiler": "^2.6.10",
"vue2-leaflet": "^1.2.3",
"vueify": "^9.4.1",
"vuex": "^3.1.1",
"vuex-persist": "^1.8.0",
"xml-js": "^1.6.11"
}
}
7 changes: 1 addition & 6 deletions Modules/MaterialCrew/webpack.mix.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
const { mix } = require('laravel-mix');
require('laravel-mix-merge-manifest');

mix.setPublicPath('../../public').mergeManifest();

mix.setPublicPath('../../public');
mix.js(__dirname + '/Resources/assets/js/app.js', 'js/materialcrew.js')
.sass( __dirname + '/Resources/assets/sass/materialize.scss', 'css/materialcrew.css');

if (mix.inProduction()) {
mix.version();
}
2 changes: 1 addition & 1 deletion app/Http/Controllers/Admin/UsersController.php
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ public function update(Request $request, $id)
} else {
$user->ivao = null;
}

$user->username = $request->username;
if ($request->admin == 1) {
$user->admin = $request->admin;
} else {
Expand Down
5 changes: 5 additions & 0 deletions app/User.php
Original file line number Diff line number Diff line change
Expand Up @@ -110,4 +110,9 @@ public function hasAirline($airline)
return $this->airlines->contains($airline);
}

public function ext_hours()
{
return $this->hasMany('App\Models\ExtHour');
}

}
Loading

0 comments on commit f5e8c3d

Please sign in to comment.