7.0.0-beta3 Release (#541)

* 391 Notification refactorings (#441)

* Refactor notifications to allow easier plugins

* Notification refactoring

* Formatting

* Move news to NewsService; cleanup of events

* More refactoring; added send email out for news item and the template

* Formatting

* Formatting

* Fix missing newsRepo (#445)

* Refactor and add importer to Installer module #443 (#444)

* Refactor and add importer to Installer module #443

* Refactor for finances to use in import

* Import groups into roles

* Formatting

* Formatting

* Add interface in installer for import

* Notes about importing

* Check for installer folder

* Formatting

* Fix pirep->user mapping

* Unused import

* Formatting

* Replace importer with AJAX powered; better error handling #443 (#447)

* Replace importer with AJAX powered; better error handling #443

* Formatting

* Fix command line importer

* Remove bootstrap cache (#448)

* Cleanup the bootstrap/cache directory when packaging

* Fix removal of bootstrap cache

* Formatting

* Stricter checks on ACARS API data (#451)

* Stricter checks on ACARS API data

* More checks

* Fix for flight_number check forcing to exist

* Allow nullable on flight_id

* Avoid proc_open use #455 (#456)

* Use PhpExecutableFinder() closes #457 #458 (#460)

* Use DateTimeZone instead of int for creating datetime

closes #461

* Fix CSV imports giving Storage class not found #454 (#462)

* Fix CSV imports giving Storage class not found #454

* Update yarn files for security alert

* Add PHP 7.4 support (#464)

* Add PHP 7.4 to build matrix

* DB fix

* YAML parser fix in test data

* Show versions

* Package updates

* Track used ICAOs

* 7.4 METAR parsing fix

* METAR parser fix

* Formatting

* Add meters to response units

* Call instance for unit conversion

* Return value

* Catch exception for unknown quantity

* Comment fix

* Formatting

* METAR parsing fixes on PHP 7.4

* Package updates

* More random airport ID

* More random airport ID

* Properly disable toolbar

* Semver written out to version file

* Use dev as default identifier

* Fix BindingResolutionError when debug toolbar isn't present (#465)

* Fix BindingResolutionError when debug toolbar isn't present

* Formatting

* Split the importer module out from the installer module (#468)

* Split the importer module out from the installer module

* Cleanup of unused imports

* Move updater into separate module #453

* Remove unused imports/formatting

* Disable the install and importer modules at the end of the setup

* Unused imports; update IJ style

* test explicit stage for php+mysql

* add more to matrix

* Add different MariaDB versions

* undo

* Cleanup Model doc

* Pilots cannot use the dashboard or flights without admin rights (#481)

* Use auth middleware instead of specific groups for logged in state

* Auth check for admin access

* Check user admin access for updates

* Formatting

* Allow nullable field and calculate distance if nulled for flight import #478 (#482)

* Check for no roles being attached #480 (#483)

* Return the flight fares if there are no subfleet fares #488 (#489)

* Return the flight fares if there are no subfleet fares #488

* Formatting

* Formatting

* Account for units when entering fuel amounts #493

* Search for ICAO not working properly (#496)

* /flights and /flights/search direct to the same endpoint

* Properly set the distance/planned_distance on save (#497)

* 491 Installation Error (#495)

* Disable CSRF token

* Add error handling around looking up the theme and set a default

* Note about logs in issue template

* Formatting

* Fix GeoService errors when viewing PIREP #498 (#499)

* Add new command to export a specific PIREP for debugging (#501)

* Set a default model value for airports on PIREP (#500)

* Set a default model value for airports on PIREP

* Fix airport icao reference

* Default airport models

* Catch broader exception writing out config files #491

* style

* Add reference to docs on doc site (#502)

* Properly create/update rows importing #486 (#503)

* Add base Dockerfile for Dockerhub builds (#504)

* New subfleet not being attached to an airline on import #479 (#505)

* Fix subfleet not being attached to an airline on creation in import #479

* Call airline name with optional() around subfleet

* Minor cleanup

* Search flights by subfleet #484 (#506)

* API level search of flights #484

* Add Subfleet to flights page for search

* Make the fuel used optional (#512)

* Add make to Docker container

* Add getRootDomain() to Utils (#514)

* Show admin dropdown for admin-access ability (#515)

* Show admin dropdown for admin-access ability closes #509

* Formatting

* Check user permissions on the routes #508 (#516)

* Check user permissions on the routes #508

* Formatting

* Return default value on exception for setting()

* Correct text for no subfleets #507 (#518)

* Add a public_url() helper #513 (#519)

* Reduce number of queries for update check (#520)

* Try to clear caches before updating (#522)

* Try to clear caches before updating

* Add clear-compiled to maintenance cache list

* Formatting

* Set PIREPs page to public (#526)

Set PIREPs page to public

* Fix live and route map errors #527 (#528)

* Add menu bar for mobile (#529)

* Format all blade templates to 2 spaces #530 (#531)

* Fix PIREP edit endpoint closes #533 (#534)

* Fix import during flight cron #532 (#535)

* PIREPS resource except for show (#536)

* Use optional() around the airport fields (#537)

* Use optional() around the airport fields

* Add null-coalesce around full_name

* Add link to download ACARS config from profile (#539)

* Add link to download ACARS config from profile

* Formatting

* Update xml config file template (#540)
This commit is contained in:
Nabeel S
2020-02-08 13:29:34 -05:00
committed by GitHub
parent a335ed8e9b
commit 073e48c396
515 changed files with 13939 additions and 10717 deletions

View File

@@ -1,11 +1,11 @@
@extends('admin.app')
@section('title', 'Add Flight')
@section('content')
<div class="card border-blue-bottom">
<div class="content">
{{ Form::model($flight, ['route' => ['admin.flights.store']]) }}
@include('admin.flights.fields')
{{ Form::close() }}
</div>
<div class="card border-blue-bottom">
<div class="content">
{{ Form::model($flight, ['route' => ['admin.flights.store']]) }}
@include('admin.flights.fields')
{{ Form::close() }}
</div>
</div>
@endsection

View File

@@ -2,30 +2,30 @@
@section('title', 'Edit Flight')
@section('content')
<div class="card border-blue-bottom">
<div class="content">
{{ Form::model($flight, ['route' => ['admin.flights.update', $flight->id], 'method' => 'patch']) }}
@include('admin.flights.fields')
{{ Form::close() }}
</div>
<div class="card border-blue-bottom">
<div class="content">
{{ Form::model($flight, ['route' => ['admin.flights.update', $flight->id], 'method' => 'patch']) }}
@include('admin.flights.fields')
{{ Form::close() }}
</div>
</div>
<div class="card border-blue-bottom">
<div class="content">
@include('admin.flights.subfleets')
</div>
<div class="card border-blue-bottom">
<div class="content">
@include('admin.flights.subfleets')
</div>
</div>
<div class="card border-blue-bottom">
<div class="content">
@include('admin.flights.flight_fields')
</div>
<div class="card border-blue-bottom">
<div class="content">
@include('admin.flights.flight_fields')
</div>
</div>
<div class="card border-blue-bottom">
<div class="content">
@include('admin.flights.fares')
</div>
<div class="card border-blue-bottom">
<div class="content">
@include('admin.flights.fares')
</div>
</div>
@endsection
@include('admin.flights.scripts')

View File

@@ -1,86 +1,86 @@
<div id="flight_fares_wrapper" class="dataTables_wrapper form-inline dt-bootstrap">
<div class="header">
<h3>fares</h3>
@component('admin.components.info')
Fares assigned to the current flight. These can be overridden, otherwise,
the values used come from the subfleet of the aircraft that the flight is
filed with. Only assign the fares you want to override. They can be set as
a monetary amount, or a percentage.
<a href="http://docs.phpvms.net/concepts/finances"
target="_blank">Read documentation about finances</a>.
@endcomponent
<div class="header">
<h3>fares</h3>
@component('admin.components.info')
Fares assigned to the current flight. These can be overridden, otherwise,
the values used come from the subfleet of the aircraft that the flight is
filed with. Only assign the fares you want to override. They can be set as
a monetary amount, or a percentage.
<a href="http://docs.phpvms.net/concepts/finances"
target="_blank">Read documentation about finances</a>.
@endcomponent
<p class="text-danger">{{ $errors->first('value') }}</p>
</div>
<p class="text-danger">{{ $errors->first('value') }}</p>
</div>
@if(count($flight->fares) === 0)
@include('admin.common.none_added', ['type' => 'fares'])
@if(count($flight->fares) === 0)
@include('admin.common.none_added', ['type' => 'fares'])
@endif
<table id="flight_fares"
class="table table-hover"
role="grid" aria-describedby="aircraft_fares_info">
@if(count($flight->fares))
<thead>
<tr role="row">
<th>Name</th>
<th style="text-align: center;">Code</th>
<th>Capacity</th>
<th>Price</th>
<th>Cost</th>
<th>Actions</th>
</tr>
</thead>
@endif
<table id="flight_fares"
class="table table-hover"
role="grid" aria-describedby="aircraft_fares_info">
@if(count($flight->fares))
<thead>
<tr role="row">
<th>Name</th>
<th style="text-align: center;">Code</th>
<th>Capacity</th>
<th>Price</th>
<th>Cost</th>
<th>Actions</th>
</tr>
</thead>
@endif
<tbody>
@foreach($flight->fares as $atf)
<tr>
<td class="sorting_1">{{ $atf->name }}</td>
<td style="text-align: center;">{{ $atf->code }}</td>
<td>
<a href="#" data-pk="{{ $atf->id }}" data-name="capacity">{{ $atf->pivot->capacity }}</a>
</td>
<td>
<a href="#" data-pk="{{ $atf->id }}" data-name="price">{{ $atf->pivot->price }}</a>
</td>
<td>
<a href="#" data-pk="{{ $atf->id }}" data-name="cost">{{ $atf->pivot->cost }}</a>
</td>
<td style="text-align: center; width:3%;">
{{ Form::open(['url' => '/admin/flights/'.$flight->id.'/fares',
'method' => 'delete',
'class' => 'pjax_fares_form'
])
}}
{{ Form::hidden('fare_id', $atf->id) }}
{{ Form::button('<i class="fa fa-times"></i>',
['type' => 'submit',
'class' => 'btn btn-danger btn-xs']) }}
{{ Form::close() }}
</td>
</tr>
@endforeach
</tbody>
</table>
<hr />
<div class="row">
<div class="col-xs-12">
<div class="text-right">
{{ Form::open(['url' => '/admin/flights/'.$flight->id.'/fares',
'method' => 'post',
'class' => 'pjax_fares_form form-inline'
]) }}
{{ Form::select('fare_id', $avail_fares, null, [
'placeholder' => 'Select Fare',
'class' => 'ac-fare-dropdown form-control input-lg select2',
'style' => 'width: 400px;',
]) }}
{{ Form::button('<i class="glyphicon glyphicon-plus"></i> add', [
'type' => 'submit',
'class' => 'btn btn-success btn-s']
) }}
{{ Form::close() }}
</div>
</div>
<tbody>
@foreach($flight->fares as $atf)
<tr>
<td class="sorting_1">{{ $atf->name }}</td>
<td style="text-align: center;">{{ $atf->code }}</td>
<td>
<a href="#" data-pk="{{ $atf->id }}" data-name="capacity">{{ $atf->pivot->capacity }}</a>
</td>
<td>
<a href="#" data-pk="{{ $atf->id }}" data-name="price">{{ $atf->pivot->price }}</a>
</td>
<td>
<a href="#" data-pk="{{ $atf->id }}" data-name="cost">{{ $atf->pivot->cost }}</a>
</td>
<td style="text-align: center; width:3%;">
{{ Form::open(['url' => '/admin/flights/'.$flight->id.'/fares',
'method' => 'delete',
'class' => 'pjax_fares_form'
])
}}
{{ Form::hidden('fare_id', $atf->id) }}
{{ Form::button('<i class="fa fa-times"></i>',
['type' => 'submit',
'class' => 'btn btn-danger btn-xs']) }}
{{ Form::close() }}
</td>
</tr>
@endforeach
</tbody>
</table>
<hr/>
<div class="row">
<div class="col-xs-12">
<div class="text-right">
{{ Form::open(['url' => '/admin/flights/'.$flight->id.'/fares',
'method' => 'post',
'class' => 'pjax_fares_form form-inline'
]) }}
{{ Form::select('fare_id', $avail_fares, null, [
'placeholder' => 'Select Fare',
'class' => 'ac-fare-dropdown form-control input-lg select2',
'style' => 'width: 400px;',
]) }}
{{ Form::button('<i class="glyphicon glyphicon-plus"></i> add', [
'type' => 'submit',
'class' => 'btn btn-success btn-s']
) }}
{{ Form::close() }}
</div>
</div>
</div>
</div>

View File

@@ -1,249 +1,249 @@
<!-- Airline Id Field -->
<div class="row">
<div class="col-12">
<div class="form-container">
<h6><i class="fas fa-info-circle"></i>
&nbsp;Flight Information
</h6>
<div class="form-container-body">
<div class="row">
<div class="form-group col-sm-3">
{{ Form::label('airline_id', 'Airline:') }}&nbsp;<span
class="required">*</span>
{{ Form::select('airline_id', $airlines, null , ['class' => 'form-control select2']) }}
<p class="text-danger">{{ $errors->first('airline_id') }}</p>
</div>
<div class="col-12">
<div class="form-container">
<h6><i class="fas fa-info-circle"></i>
&nbsp;Flight Information
</h6>
<div class="form-container-body">
<div class="row">
<div class="form-group col-sm-3">
{{ Form::label('airline_id', 'Airline:') }}&nbsp;<span
class="required">*</span>
{{ Form::select('airline_id', $airlines, null , ['class' => 'form-control select2']) }}
<p class="text-danger">{{ $errors->first('airline_id') }}</p>
</div>
<!-- Flight Number Field -->
<div class="form-group col-sm-3">
{{ Form::label('flight_number', 'Flight Number/Code/Leg') }}&nbsp;<span class="required">*</span>
<!-- Flight Number Field -->
<div class="form-group col-sm-3">
{{ Form::label('flight_number', 'Flight Number/Code/Leg') }}&nbsp;<span class="required">*</span>
<div class="input-group input-group-sm mb3">
{{ Form::text('flight_number', null, ['class' => 'form-control', 'style' => 'width: 33%']) }}
{{ Form::text('route_code', null, ['class'=>'form-control', 'placeholder'=>'optional', 'style' => 'width: 33%']) }}
{{ Form::text('route_leg', null, ['class'=>'form-control', 'placeholder'=>'optional', 'style' => 'width: 33%']) }}
</div>
<p class="text-danger">{{ $errors->first('flight_number') }}</p>
<p class="text-danger">{{ $errors->first('route_code') }}</p>
<p class="text-danger">{{ $errors->first('route_leg') }}</p>
</div>
<!-- Route Code Field -->
<div class="form-group col-sm-3">
{{ Form::label('level', 'Flight Type:') }}&nbsp;<span class="required">*</span>
{{ Form::select('flight_type', $flight_types, null, ['class' => 'form-control select2']) }}
<p class="text-danger">{{ $errors->first('flight_type') }}</p>
</div>
<!-- Route Leg Field -->
<div class="form-group col-sm-3">
{{ Form::label('flight_time', 'Flight Time (hours & minutes)') }}
<div class="input-group input-group-sm mb3">
{{ Form::number('hours', null, [
'class' => 'form-control',
'placeholder' => 'hours',
'style' => 'width: 50%',
'min' => '0',
]) }}
{{ Form::number('minutes', null, [
'class' => 'form-control',
'placeholder' => 'minutes',
'style' => 'width: 50%',
'min' => '0',
]) }}
</div>
<p class="text-danger">{{ $errors->first('hours') }}</p>
<p class="text-danger">{{ $errors->first('minutes') }}</p>
</div>
</div>
{{-- NEXT ROW --}}
<div class="row">
<div class="form-group col-sm-4">
{{ Form::label('dpt_airport_id', 'Departure Airport:') }}&nbsp;<span
class="required">*</span>
{{ Form::select('dpt_airport_id', $airports, null , [
'id' => 'dpt_airport_id',
'class' => 'form-control select2'
]) }}
<p class="text-danger">{{ $errors->first('dpt_airport_id') }}</p>
</div>
<!-- Arr Airport Id Field -->
<div class="form-group col-sm-4">
{{ Form::label('arr_airport_id', 'Arrival Airport:') }}&nbsp;<span
class="required">*</span>
{{ Form::select('arr_airport_id', $airports, null , [
'id' => 'arr_airport_id',
'class' => 'form-control select2 select2'
]) }}
<p class="text-danger">{{ $errors->first('arr_airport_id') }}</p>
</div>
<!-- Alt Airport Id Field -->
<div class="form-group col-sm-4">
{{ Form::label('alt_airport_id', 'Alt Airport:') }}
{{ Form::select('alt_airport_id', $alt_airports, null , ['class' => 'form-control select2']) }}
<p class="text-danger">{{ $errors->first('alt_airport_id') }}</p>
</div>
</div>
{{-- NEXT ROW --}}
<div class="row">
<div class="form-group col-sm-3">
{{ Form::label('dpt_time', 'Departure Time:') }}
{{ Form::text('dpt_time', null, ['class' => 'form-control']) }}
<p class="text-danger">{{ $errors->first('dpt_time') }}</p>
</div>
<div class="form-group col-sm-3">
{{ Form::label('arr_time', 'Arrival Time:') }}
{{ Form::text('arr_time', null, ['class' => 'form-control']) }}
<p class="text-danger">{{ $errors->first('arr_time') }}</p>
</div>
<div class="form-group col-sm-3">
{{ Form::label('level', 'Flight Level:') }}
{{ Form::text('level', null, ['class' => 'form-control']) }}
<p class="text-danger">{{ $errors->first('level') }}</p>
</div>
<div class="form-group col-sm-3">
{{ Form::label('distance', 'Distance:') }} <span class="description small">in nautical miles</span>
<a href="#" class="airport_distance_lookup">Calculate</a>
{{ Form::text('distance', null, ['id' => 'distance', 'class' => 'form-control']) }}
<p class="text-danger">{{ $errors->first('distance') }}</p>
</div>
</div>
<div class="input-group input-group-sm mb3">
{{ Form::text('flight_number', null, ['class' => 'form-control', 'style' => 'width: 33%']) }}
{{ Form::text('route_code', null, ['class'=>'form-control', 'placeholder'=>'optional', 'style' => 'width: 33%']) }}
{{ Form::text('route_leg', null, ['class'=>'form-control', 'placeholder'=>'optional', 'style' => 'width: 33%']) }}
</div>
<p class="text-danger">{{ $errors->first('flight_number') }}</p>
<p class="text-danger">{{ $errors->first('route_code') }}</p>
<p class="text-danger">{{ $errors->first('route_leg') }}</p>
</div>
<!-- Route Code Field -->
<div class="form-group col-sm-3">
{{ Form::label('level', 'Flight Type:') }}&nbsp;<span class="required">*</span>
{{ Form::select('flight_type', $flight_types, null, ['class' => 'form-control select2']) }}
<p class="text-danger">{{ $errors->first('flight_type') }}</p>
</div>
<!-- Route Leg Field -->
<div class="form-group col-sm-3">
{{ Form::label('flight_time', 'Flight Time (hours & minutes)') }}
<div class="input-group input-group-sm mb3">
{{ Form::number('hours', null, [
'class' => 'form-control',
'placeholder' => 'hours',
'style' => 'width: 50%',
'min' => '0',
]) }}
{{ Form::number('minutes', null, [
'class' => 'form-control',
'placeholder' => 'minutes',
'style' => 'width: 50%',
'min' => '0',
]) }}
</div>
<p class="text-danger">{{ $errors->first('hours') }}</p>
<p class="text-danger">{{ $errors->first('minutes') }}</p>
</div>
</div>
{{-- NEXT ROW --}}
<div class="row">
<div class="form-group col-sm-4">
{{ Form::label('dpt_airport_id', 'Departure Airport:') }}&nbsp;<span
class="required">*</span>
{{ Form::select('dpt_airport_id', $airports, null , [
'id' => 'dpt_airport_id',
'class' => 'form-control select2'
]) }}
<p class="text-danger">{{ $errors->first('dpt_airport_id') }}</p>
</div>
<!-- Arr Airport Id Field -->
<div class="form-group col-sm-4">
{{ Form::label('arr_airport_id', 'Arrival Airport:') }}&nbsp;<span
class="required">*</span>
{{ Form::select('arr_airport_id', $airports, null , [
'id' => 'arr_airport_id',
'class' => 'form-control select2 select2'
]) }}
<p class="text-danger">{{ $errors->first('arr_airport_id') }}</p>
</div>
<!-- Alt Airport Id Field -->
<div class="form-group col-sm-4">
{{ Form::label('alt_airport_id', 'Alt Airport:') }}
{{ Form::select('alt_airport_id', $alt_airports, null , ['class' => 'form-control select2']) }}
<p class="text-danger">{{ $errors->first('alt_airport_id') }}</p>
</div>
</div>
{{-- NEXT ROW --}}
<div class="row">
<div class="form-group col-sm-3">
{{ Form::label('dpt_time', 'Departure Time:') }}
{{ Form::text('dpt_time', null, ['class' => 'form-control']) }}
<p class="text-danger">{{ $errors->first('dpt_time') }}</p>
</div>
<div class="form-group col-sm-3">
{{ Form::label('arr_time', 'Arrival Time:') }}
{{ Form::text('arr_time', null, ['class' => 'form-control']) }}
<p class="text-danger">{{ $errors->first('arr_time') }}</p>
</div>
<div class="form-group col-sm-3">
{{ Form::label('level', 'Flight Level:') }}
{{ Form::text('level', null, ['class' => 'form-control']) }}
<p class="text-danger">{{ $errors->first('level') }}</p>
</div>
<div class="form-group col-sm-3">
{{ Form::label('distance', 'Distance:') }} <span class="description small">in nautical miles</span>
<a href="#" class="airport_distance_lookup">Calculate</a>
{{ Form::text('distance', null, ['id' => 'distance', 'class' => 'form-control']) }}
<p class="text-danger">{{ $errors->first('distance') }}</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<div class="form-container">
<h6><i class="fas fa-clock"></i>
&nbsp;Scheduling
</h6>
<div class="form-container-body">
<div class="row">
<div class="col-12">
<div class="form-container">
<h6><i class="fas fa-clock"></i>
&nbsp;Scheduling
</h6>
<div class="form-container-body">
<div class="row">
<div class="col-sm-4">
{{ Form::label('start_date', 'Start Date') }}
<span class="description small">optional</span>
{{ Form::text('start_date', null, ['id' => 'start_date', 'class' => 'form-control']) }}
</div>
<div class="col-sm-4">
{{ Form::label('start_date', 'Start Date') }}
<span class="description small">optional</span>
{{ Form::text('start_date', null, ['id' => 'start_date', 'class' => 'form-control']) }}
</div>
<div class="col-sm-4">
{{ Form::label('end_date', 'End Date') }}
<span class="description small">optional</span>
{{ Form::text('end_date', null, ['id' => 'end_date', 'class' => 'form-control']) }}
</div>
<div class="col-sm-4">
{{ Form::label('end_date', 'End Date') }}
<span class="description small">optional</span>
{{ Form::text('end_date', null, ['id' => 'end_date', 'class' => 'form-control']) }}
</div>
<div class="form-group col-sm-4">
{{ Form::label('days', 'Days of Week') }}
<span class="description small">optional</span>
<select id="days_of_week" name="days[]" multiple="multiple" size="7" style="width: 100%;">
<option value="{{\App\Models\Enums\Days::MONDAY}}"
{{in_mask($days, \App\Models\Enums\Days::MONDAY) ? 'selected':'' }}>
@lang('common.days.mon')
</option>
<option value="{{\App\Models\Enums\Days::TUESDAY}}"
{{in_mask($days, \App\Models\Enums\Days::TUESDAY) ? 'selected':'' }}>
@lang('common.days.tues')
</option>
<option value="{{\App\Models\Enums\Days::WEDNESDAY}}"
{{in_mask($days, \App\Models\Enums\Days::WEDNESDAY) ? 'selected':'' }}>
@lang('common.days.wed')
</option>
<option value="{{\App\Models\Enums\Days::THURSDAY}}"
{{in_mask($days, \App\Models\Enums\Days::THURSDAY) ? 'selected':'' }}>
@lang('common.days.thurs')
</option>
<option value="{{\App\Models\Enums\Days::FRIDAY}}"
{{in_mask($days, \App\Models\Enums\Days::FRIDAY) ? 'selected':'' }}>
@lang('common.days.fri')
</option>
<option value="{{\App\Models\Enums\Days::SATURDAY}}"
{{in_mask($days, \App\Models\Enums\Days::SATURDAY) ? 'selected':'false' }}>
@lang('common.days.sat')
</option>
<option value="{{\App\Models\Enums\Days::SUNDAY}}"
{{in_mask($days, \App\Models\Enums\Days::SUNDAY) ? 'selected':'false' }}>
@lang('common.days.sun')
</option>
</select>
</div>
</div>
</div>
<div class="form-group col-sm-4">
{{ Form::label('days', 'Days of Week') }}
<span class="description small">optional</span>
<select id="days_of_week" name="days[]" multiple="multiple" size="7" style="width: 100%;">
<option value="{{\App\Models\Enums\Days::MONDAY}}"
{{in_mask($days, \App\Models\Enums\Days::MONDAY) ? 'selected':'' }}>
@lang('common.days.mon')
</option>
<option value="{{\App\Models\Enums\Days::TUESDAY}}"
{{in_mask($days, \App\Models\Enums\Days::TUESDAY) ? 'selected':'' }}>
@lang('common.days.tues')
</option>
<option value="{{\App\Models\Enums\Days::WEDNESDAY}}"
{{in_mask($days, \App\Models\Enums\Days::WEDNESDAY) ? 'selected':'' }}>
@lang('common.days.wed')
</option>
<option value="{{\App\Models\Enums\Days::THURSDAY}}"
{{in_mask($days, \App\Models\Enums\Days::THURSDAY) ? 'selected':'' }}>
@lang('common.days.thurs')
</option>
<option value="{{\App\Models\Enums\Days::FRIDAY}}"
{{in_mask($days, \App\Models\Enums\Days::FRIDAY) ? 'selected':'' }}>
@lang('common.days.fri')
</option>
<option value="{{\App\Models\Enums\Days::SATURDAY}}"
{{in_mask($days, \App\Models\Enums\Days::SATURDAY) ? 'selected':'false' }}>
@lang('common.days.sat')
</option>
<option value="{{\App\Models\Enums\Days::SUNDAY}}"
{{in_mask($days, \App\Models\Enums\Days::SUNDAY) ? 'selected':'false' }}>
@lang('common.days.sun')
</option>
</select>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<div class="form-container">
<h6><i class="fas fa-map"></i>
&nbsp;Route
</h6>
<div class="form-container-body row">
<!-- Route Field -->
<div class="form-group col-sm-12">
{{ Form::textarea('route', null, [
'class' => 'form-control input-text',
'style' => 'padding: 10px',
]) }}
<p class="text-danger">{{ $errors->first('route') }}</p>
</div>
</div>
<div class="col-lg-12">
<div class="form-container">
<h6><i class="fas fa-map"></i>
&nbsp;Route
</h6>
<div class="form-container-body row">
<!-- Route Field -->
<div class="form-group col-sm-12">
{{ Form::textarea('route', null, [
'class' => 'form-control input-text',
'style' => 'padding: 10px',
]) }}
<p class="text-danger">{{ $errors->first('route') }}</p>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<div class="form-container">
<h6><i class="fas fa-sticky-note"></i>
&nbsp;Remarks
</h6>
<div class="form-container-body row">
<div class="form-group col-sm-12">
{{ Form::textarea('notes', null, [
'class' => 'form-control input-text',
'style' => 'padding: 10px',
]) }}
<p class="text-danger">{{ $errors->first('notes') }}</p>
</div>
</div>
<div class="col-lg-12">
<div class="form-container">
<h6><i class="fas fa-sticky-note"></i>
&nbsp;Remarks
</h6>
<div class="form-container-body row">
<div class="form-group col-sm-12">
{{ Form::textarea('notes', null, [
'class' => 'form-control input-text',
'style' => 'padding: 10px',
]) }}
<p class="text-danger">{{ $errors->first('notes') }}</p>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<!-- Active Field -->
<div class="col-sm-4">
<div class="checkbox">
<label class="checkbox-inline">
{{ Form::label('active', 'Active:') }}
{{ Form::hidden('active', 0, false) }}
{{ Form::checkbox('active') }}
</label>
</div>
<!-- Active Field -->
<div class="col-sm-4">
<div class="checkbox">
<label class="checkbox-inline">
{{ Form::label('active', 'Active:') }}
{{ Form::hidden('active', 0, false) }}
{{ Form::checkbox('active') }}
</label>
</div>
<div class="col-8">
<div class="text-right">
{{ Form::button('Save', ['type' => 'submit', 'class' => 'btn btn-success']) }}
<a href="{{ route('admin.flights.index') }}" class="btn btn-default">Cancel</a>
</div>
</div>
<div class="col-8">
<div class="text-right">
{{ Form::button('Save', ['type' => 'submit', 'class' => 'btn btn-success']) }}
<a href="{{ route('admin.flights.index') }}" class="btn btn-default">Cancel</a>
</div>
</div>
</div>

View File

@@ -1,79 +1,79 @@
<div id="flight_fields_wrapper">
<h3>custom fields</h3><br />
<table class="table table-responsive" id="flight-fields-table">
@if(count($flight->field_values))
<thead>
<th>Name</th>
<th>Value</th>
<th></th>
</thead>
@endif
<tbody>
@php
#
# A little nasty having logic like this in a template, but we need
# to filter out the field values that have already been shown, since
# they were values set because they had a FlightField parent
#
$shown = [];
@endphp
@foreach($flight_fields->concat($flight->field_values) as $field)
@php
if(in_array($field->name, $shown, true)) {
continue;
}
<h3>custom fields</h3><br/>
<table class="table table-responsive" id="flight-fields-table">
@if(count($flight->field_values))
<thead>
<th>Name</th>
<th>Value</th>
<th></th>
</thead>
@endif
<tbody>
@php
#
# A little nasty having logic like this in a template, but we need
# to filter out the field values that have already been shown, since
# they were values set because they had a FlightField parent
#
$shown = [];
@endphp
@foreach($flight_fields->concat($flight->field_values) as $field)
@php
if(in_array($field->name, $shown, true)) {
continue;
}
$shown[] = $field->name;
$val_field = $flight->field_values->where('name', $field->name)->first();
@endphp
<tr>
<td>{{ $field->name }}</td>
<td>
<a class="inline" href="#" data-pk="{{ $val_field['id'] ?? '' }}" data-name="{{ $field->name }}">
{{ $val_field['value'] ?? '' }}
</a>
</td>
<td style="width: 10%; text-align: center;" class="form-inline">
{{ Form::open(['url' => '/admin/flights/'.$flight->id.'/fields',
'method' => 'delete',
'class' => 'pjax_form pjax_flight_fields'
]) }}
{{ Form::hidden('field_id', $val_field['id'] ?? null) }}
<div class='btn-group'>
{{ Form::button('<i class="fa fa-times"></i>',
['type' => 'submit', 'class' => 'btn btn-sm btn-danger btn-icon',
'onclick' => "return confirm('Are you sure?')"]) }}
</div>
{{ Form::close() }}
</td>
</tr>
@endforeach
</tbody>
</table>
<hr/>
<div class="row">
<div class="col-md-12">
<div class="text-right">
{{ Form::open([
'url' => '/admin/flights/'.$flight->id.'/fields',
'method' => 'post',
'class' => 'pjax_form form-inline pjax_flight_fields'
])
}}
$shown[] = $field->name;
$val_field = $flight->field_values->where('name', $field->name)->first();
@endphp
<tr>
<td>{{ $field->name }}</td>
<td>
<a class="inline" href="#" data-pk="{{ $val_field['id'] ?? '' }}" data-name="{{ $field->name }}">
{{ $val_field['value'] ?? '' }}
</a>
</td>
<td style="width: 10%; text-align: center;" class="form-inline">
{{ Form::open(['url' => '/admin/flights/'.$flight->id.'/fields',
'method' => 'delete',
'class' => 'pjax_form pjax_flight_fields'
]) }}
{{ Form::hidden('field_id', $val_field['id'] ?? null) }}
<div class='btn-group'>
{{ Form::button('<i class="fa fa-times"></i>',
['type' => 'submit', 'class' => 'btn btn-sm btn-danger btn-icon',
'onclick' => "return confirm('Are you sure?')"]) }}
</div>
{{ Form::close() }}
</td>
</tr>
@endforeach
</tbody>
</table>
<hr/>
<div class="row">
<div class="col-md-12">
<div class="text-right">
{{ Form::open([
'url' => '/admin/flights/'.$flight->id.'/fields',
'method' => 'post',
'class' => 'pjax_form form-inline pjax_flight_fields'
])
}}
{{ Form::label('name', 'Name:') }}
{{ Form::text('name', null, ['class' => 'form-control']) }}
&nbsp;&nbsp;
{{ Form::label('value', 'Value:') }}
{{ Form::text('value', null, ['class' => 'form-control']) }}
&nbsp;&nbsp;
{{ Form::button('<i class="glyphicon glyphicon-plus"></i> add',
['type' => 'submit',
'class' => 'btn btn-success btn-s']) }}
<p class="text-danger">{{ $errors->first('name') }}</p>
<p class="text-danger">{{ $errors->first('value') }}</p>
{{ Form::close() }}
</div>
</div>
{{ Form::label('name', 'Name:') }}
{{ Form::text('name', null, ['class' => 'form-control']) }}
&nbsp;&nbsp;
{{ Form::label('value', 'Value:') }}
{{ Form::text('value', null, ['class' => 'form-control']) }}
&nbsp;&nbsp;
{{ Form::button('<i class="glyphicon glyphicon-plus"></i> add',
['type' => 'submit',
'class' => 'btn btn-success btn-s']) }}
<p class="text-danger">{{ $errors->first('name') }}</p>
<p class="text-danger">{{ $errors->first('value') }}</p>
{{ Form::close() }}
</div>
</div>
</div>
</div>

View File

@@ -1,5 +1,5 @@
@extends('admin.app')
@section('title', 'Import Flights')
@section('content')
@include('admin.common.import', ['route' => 'admin.flights.import'])
@include('admin.common.import', ['route' => 'admin.flights.import'])
@endsection

View File

@@ -2,30 +2,30 @@
@section('title', 'Flights')
@section('actions')
<li><a href="{{ route('admin.flights.export') }}"><i class="ti-plus"></i>Export to CSV</a></li>
<li><a href="{{ route('admin.flights.import') }}"><i class="ti-plus"></i>Import from CSV</a></li>
<li><a href="{{ route('admin.flightfields.index') }}"><i class="ti-plus"></i>Fields</a></li>
<li>
<a href="{{ route('admin.flights.create') }}">
<i class="ti-plus"></i>
Add Flight</a>
</li>
<li><a href="{{ route('admin.flights.export') }}"><i class="ti-plus"></i>Export to CSV</a></li>
<li><a href="{{ route('admin.flights.import') }}"><i class="ti-plus"></i>Import from CSV</a></li>
<li><a href="{{ route('admin.flightfields.index') }}"><i class="ti-plus"></i>Fields</a></li>
<li>
<a href="{{ route('admin.flights.create') }}">
<i class="ti-plus"></i>
Add Flight</a>
</li>
@endsection
@section('content')
<div class="card">
@include('admin.flights.search')
</div>
<div class="card">
@include('admin.flights.search')
</div>
<div class="card border-blue-bottom">
<div class="content">
@include('admin.flights.table')
</div>
<div class="card border-blue-bottom">
<div class="content">
@include('admin.flights.table')
</div>
</div>
<div class="row">
<div class="col-12 text-center">
{{ $flights->links('admin.pagination.default') }}
</div>
<div class="row">
<div class="col-12 text-center">
{{ $flights->links('admin.pagination.default') }}
</div>
</div>
@endsection

View File

@@ -1,121 +1,120 @@
@section('scripts')
<script>
<script>
const setEditable = () =>
{
const api_key = $('meta[name="api-key"]').attr('content');
const csrf_token = $('meta[name="csrf-token"]').attr('content');
const setEditable = () => {
const api_key = $('meta[name="api-key"]').attr('content');
const csrf_token = $('meta[name="csrf-token"]').attr('content');
$('#flight_fares a').editable({
$('#flight_fares a').editable({
type: 'text',
mode: 'inline',
emptytext: 'inherited',
url: '{{ url('/admin/flights/'.$flight->id.'/fares') }}',
title: 'Enter override value',
ajaxOptions: {
type: 'post',
headers: {
'x-api-key': api_key,
'X-CSRF-TOKEN': csrf_token
}
type: 'post',
headers: {
'x-api-key': api_key,
'X-CSRF-TOKEN': csrf_token
}
},
params: function (params) {
return {
_method: 'put',
fare_id: params.pk,
name: params.name,
value: params.value
}
return {
_method: 'put',
fare_id: params.pk,
name: params.name,
value: params.value
}
}
});
};
});
};
const setFieldsEditable = () => {
const api_key = $('meta[name="api-key"]').attr('content');
const csrf_token = $('meta[name="csrf-token"]').attr('content');
const setFieldsEditable = () => {
const api_key = $('meta[name="api-key"]').attr('content');
const csrf_token = $('meta[name="csrf-token"]').attr('content');
$('#flight_fields_wrapper a.inline').editable({
$('#flight_fields_wrapper a.inline').editable({
type: 'text',
mode: 'inline',
emptytext: 'no value',
url: '{{ url('/admin/flights/'.$flight->id.'/fields') }}',
ajaxOptions: {
type: 'post',
headers: {
'x-api-key': api_key,
'X-CSRF-TOKEN': csrf_token
}
type: 'post',
headers: {
'x-api-key': api_key,
'X-CSRF-TOKEN': csrf_token
}
},
params: function (params) {
return {
_method: 'put',
field_id: params.pk,
name: params.name,
value: params.value
}
return {
_method: 'put',
field_id: params.pk,
name: params.name,
value: params.value
}
}
});
};
$(document).ready(function () {
$("select#days_of_week").select2();
setEditable();
setFieldsEditable();
const start_date_picker = new Pikaday({
field: document.getElementById('start_date'),
minDate: new Date(),
});
const end_date_picker = new Pikaday({
field: document.getElementById('end_date'),
minDate: new Date(),
});
$(document).on('submit', 'form.pjax_flight_fields', function (event) {
event.preventDefault();
$.pjax.submit(event, '#flight_fields_wrapper', {push: false});
});
$(document).on('submit', 'form.pjax_subfleet_form', function (event) {
event.preventDefault();
$.pjax.submit(event, '#subfleet_flight_wrapper', {push: false});
});
$(document).on('submit', 'form.pjax_fares_form', function (event) {
event.preventDefault();
$.pjax.submit(event, '#flight_fares_wrapper', {push: false});
});
$(document).on('pjax:complete', function () {
initPlugins();
setEditable();
setFieldsEditable();
});
$('a.airport_distance_lookup').click(async function (e) {
e.preventDefault();
const fromIcao = $("select#dpt_airport_id option:selected").val();
const toIcao = $("select#arr_airport_id option:selected").val();
console.log('fromIcao="' + fromIcao + '", toIcao="' + toIcao + '"');
if (fromIcao === '' || toIcao === '') {
return;
}
console.log(`Calculating from ${fromIcao} to ${toIcao}`);
let response;
try {
response = await phpvms.calculate_distance(fromIcao, toIcao);
} catch (e) {
console.log('Error calculating distance:', e);
return;
}
$("#distance").val(response.data.distance.nmi);
});
});
};
$(document).ready(function () {
$("select#days_of_week").select2();
setEditable();
setFieldsEditable();
const start_date_picker = new Pikaday({
field: document.getElementById('start_date'),
minDate: new Date(),
});
const end_date_picker = new Pikaday({
field: document.getElementById('end_date'),
minDate: new Date(),
});
$(document).on('submit', 'form.pjax_flight_fields', function (event) {
event.preventDefault();
$.pjax.submit(event, '#flight_fields_wrapper', {push: false});
});
$(document).on('submit', 'form.pjax_subfleet_form', function (event) {
event.preventDefault();
$.pjax.submit(event, '#subfleet_flight_wrapper', {push: false});
});
$(document).on('submit', 'form.pjax_fares_form', function (event) {
event.preventDefault();
$.pjax.submit(event, '#flight_fares_wrapper', {push: false});
});
$(document).on('pjax:complete', function () {
initPlugins();
setEditable();
setFieldsEditable();
});
$('a.airport_distance_lookup').click(async function (e) {
e.preventDefault();
const fromIcao = $("select#dpt_airport_id option:selected").val();
const toIcao = $("select#arr_airport_id option:selected").val();
console.log('fromIcao="' + fromIcao + '", toIcao="' + toIcao + '"');
if (fromIcao === '' || toIcao === '') {
return;
}
console.log(`Calculating from ${fromIcao} to ${toIcao}`);
let response;
try {
response = await phpvms.calculate_distance(fromIcao, toIcao);
} catch (e) {
console.log('Error calculating distance:', e);
return;
}
$("#distance").val(response.data.distance.nmi);
});
});
</script>
</script>
@endsection

View File

@@ -1,23 +1,23 @@
<div class="content">
<div class="row">
<div class="col-sm-12">
<div class="form-group">
{{ Form::open(['route' => 'admin.flights.index', 'method' => 'GET', 'class'=>'form-inline pull-right']) }}
<div class="row">
<div class="col-sm-12">
<div class="form-group">
{{ Form::open(['route' => 'admin.flights.index', 'method' => 'GET', 'class'=>'form-inline pull-right']) }}
{{ Form::label('flight_number', 'Flight Number:') }}
{{ Form::text('flight_number', null, ['class' => 'form-control']) }}
&nbsp;
{{ Form::label('dep_icao', 'Departure:') }}
{{ Form::select('dep_icao', $airports, null , ['class' => 'form-control']) }}
&nbsp;
{{ Form::label('arr_icao', 'Arrival:') }}
{{ Form::select('arr_icao', $airports, null , ['class' => 'form-control']) }}
&nbsp;
{{ Form::submit('find', ['class' => 'btn btn-primary']) }}
&nbsp;
<a href="{{ route('admin.flights.index') }}">clear</a>
{{ Form::close() }}
</div>
</div>
{{ Form::label('flight_number', 'Flight Number:') }}
{{ Form::text('flight_number', null, ['class' => 'form-control']) }}
&nbsp;
{{ Form::label('dpt_airport_id', 'Departure:') }}
{{ Form::select('dpt_airport_id', $airports, null , ['class' => 'form-control']) }}
&nbsp;
{{ Form::label('arr_airport_id', 'Arrival:') }}
{{ Form::select('arr_airport_id', $airports, null , ['class' => 'form-control']) }}
&nbsp;
{{ Form::submit('find', ['class' => 'btn btn-primary']) }}
&nbsp;
<a href="{{ route('admin.flights.index') }}">clear</a>
{{ Form::close() }}
</div>
</div>
</div>
</div>

View File

@@ -1,45 +1,45 @@
@extends('admin.app')
@section('content')
<section class="content-header">
<section class="content-header">
<h1 class="pull-left">{{ $flight->airline->code }}{{ $flight->flight_number }}</h1>
<h1 class="pull-right">
<a class="btn btn-primary pull-right" style="margin-top: -10px;margin-bottom: 5px"
href="{{ route('admin.flights.edit', $flight->id) }}">Edit</a>
<a class="btn btn-primary pull-right" style="margin-top: -10px;margin-bottom: 5px"
href="{{ route('admin.flights.edit', $flight->id) }}">Edit</a>
</h1>
</section>
<section class="content">
</section>
<section class="content">
<div class="clearfix"></div>
<div class="row">
@include('admin.flights.show_fields')
@include('admin.flights.show_fields')
</div>
<div class="box box-primary">
<div class="box-body">
<div class="row">
<div class="col-xs-12">
<h3>assigned subfleets</h3>
<div class="box-body">
@include('admin.flights.subfleets')
</div>
</div>
<div class="box-body">
<div class="row">
<div class="col-xs-12">
<h3>assigned subfleets</h3>
<div class="box-body">
@include('admin.flights.subfleets')
</div>
</div>
</div>
</div>
</div>
</section>
</section>
@endsection
@section('scripts')
<script>
$(document).ready(function () {
$(".select2_dropdown").select2();
<script>
$(document).ready(function () {
$(".select2_dropdown").select2();
$(document).on('submit', 'form.pjax_form', function (event) {
$(document).on('submit', 'form.pjax_form', function (event) {
event.preventDefault();
$.pjax.submit(event, '#subfleet_flight_wrapper', {push: false});
});
});
$(document).on('pjax:complete', function() {
$(document).on('pjax:complete', function () {
$(".select2_dropdown").select2();
});
});
});
</script>
</script>
@endsection

View File

@@ -1,81 +1,81 @@
<div class="form-group col-sm-6">
<div class="box box-solid">
<div class="box-header with-border">
{{--<i class="fa fa-text-width"></i>--}}
<h3 class="box-title">{{ Form::label('dpt_airport_id', 'Dep ICAO') }}</h3>
</div>
<div class="box-body"><p class="lead">
{{ $flight->dpt_airport->icao }} - {{ $flight->dpt_airport->name }}
</p></div>
<div class="box box-solid">
<div class="box-header with-border">
{{--<i class="fa fa-text-width"></i>--}}
<h3 class="box-title">{{ Form::label('dpt_airport_id', 'Dep ICAO') }}</h3>
</div>
<div class="box-body"><p class="lead">
{{ $flight->dpt_airport_id }} - {{ optional($flight->dpt_airport)->name }}
</p></div>
</div>
</div>
<div class="form-group col-sm-6">
<div class="box box-solid">
<div class="box-header with-border">
{{--<i class="fa fa-text-width"></i>--}}
<h3 class="box-title">{{ Form::label('arr_airport_id', 'Arrival ICAO') }}</h3>
</div>
<div class="box-body"><p class="lead">
{{ $flight->arr_airport->icao }} - {{ $flight->arr_airport->name }}
</p>
</div>
<div class="box box-solid">
<div class="box-header with-border">
{{--<i class="fa fa-text-width"></i>--}}
<h3 class="box-title">{{ Form::label('arr_airport_id', 'Arrival ICAO') }}</h3>
</div>
<div class="box-body"><p class="lead">
{{ $flight->arr_airport_id }} - {{ optional($flight->arr_airport)->name }}
</p>
</div>
</div>
</div>
<div class="form-group col-sm-12">
<div class="box box-primary">
<div class="box-body">
<!-- Route Code Field -->
<div class="form-group">
{{ Form::label('route_code', 'Route Code:') }}
{{ $flight->route_code }}
</div>
<div class="box box-primary">
<div class="box-body">
<!-- Route Code Field -->
<div class="form-group">
{{ Form::label('route_code', 'Route Code:') }}
{{ $flight->route_code }}
</div>
<!-- Route Leg Field -->
<div class="form-group">
{{ Form::label('route_leg', 'Route Leg:') }}
{{ $flight->route_leg }}
</div>
<!-- Route Leg Field -->
<div class="form-group">
{{ Form::label('route_leg', 'Route Leg:') }}
{{ $flight->route_leg }}
</div>
<!-- Alt Airport Id Field -->
@if($flight->alt_airport_id)
<div class="form-group">
{{ Form::label('alt_airport_id', 'Alt Airport Id:') }}
<p>{{ $flight->alt_airport->icao }}</p>
</div>
@endif
<!-- Route Field -->
<div class="form-group">
{{ Form::label('route', 'Route:') }}
<p>{{ $flight->route }}</p>
</div>
<!-- Dpt Time Field -->
<div class="form-group">
{{ Form::label('dpt_time', 'Departure Time:') }}
{{ $flight->dpt_time }}
</div>
<!-- Arr Time Field -->
<div class="form-group">
{{ Form::label('arr_time', 'Arrival Time:') }}
{{ $flight->arr_time }}
</div>
<!-- Notes Field -->
<div class="form-group">
{{ Form::label('notes', 'Notes:') }}
<p>{{ $flight->notes }}</p>
</div>
<!-- Active Field -->
<div class="form-group">
{{ Form::label('active', 'Active:') }}
<p>{{ $flight->active }}</p>
</div>
<!-- Alt Airport Id Field -->
@if($flight->alt_airport_id)
<div class="form-group">
{{ Form::label('alt_airport_id', 'Alt Airport Id:') }}
<p>{{ $flight->alt_airport_id }}</p>
</div>
@endif
<!-- Route Field -->
<div class="form-group">
{{ Form::label('route', 'Route:') }}
<p>{{ $flight->route }}</p>
</div>
<!-- Dpt Time Field -->
<div class="form-group">
{{ Form::label('dpt_time', 'Departure Time:') }}
{{ $flight->dpt_time }}
</div>
<!-- Arr Time Field -->
<div class="form-group">
{{ Form::label('arr_time', 'Arrival Time:') }}
{{ $flight->arr_time }}
</div>
<!-- Notes Field -->
<div class="form-group">
{{ Form::label('notes', 'Notes:') }}
<p>{{ $flight->notes }}</p>
</div>
<!-- Active Field -->
<div class="form-group">
{{ Form::label('active', 'Active:') }}
<p>{{ $flight->active }}</p>
</div>
</div>
</div>
</div>

View File

@@ -1,66 +1,66 @@
<div id="subfleet_flight_wrapper">
<div class="header">
<h3>subfleets</h3>
@component('admin.components.info')
The subfleets that are assigned to this flight.
@endcomponent
</div>
<div class="header">
<h3>subfleets</h3>
@component('admin.components.info')
The subfleets that are assigned to this flight.
@endcomponent
</div>
@if(count($flight->subfleets) === 0)
@include('admin.common.none_added', ['type' => 'expenses'])
@if(count($flight->subfleets) === 0)
@include('admin.common.none_added', ['type' => 'subfleets'])
@endif
<table class="table table-responsive" id="aircrafts-table">
@if(count($flight->subfleets))
<thead>
<th>Type</th>
<th>Name</th>
<th style="text-align: center;">Actions</th>
</thead>
@endif
<table class="table table-responsive" id="aircrafts-table">
@if(count($flight->subfleets))
<thead>
<th>Type</th>
<th>Name</th>
<th style="text-align: center;">Actions</th>
</thead>
@endif
<tbody>
@foreach($flight->subfleets as $sf)
<tr>
<td>{{ $sf->type }}</td>
<td>{{ $sf->name }}</td>
<td style="width: 10%; text-align: center;" class="form-inline">
{{ Form::open(['url' => '/admin/flights/'.$flight->id.'/subfleets',
'method' => 'delete',
'class' => 'pjax_subfleet_form']) }}
{{ Form::hidden('subfleet_id', $sf->id) }}
<div class='btn-group'>
{{ Form::button('<i class="fa fa-times"></i>',
['type' => 'submit',
'class' => 'btn btn-danger btn-xs'])
}}
</div>
{{ Form::close() }}
</td>
</tr>
@endforeach
</tbody>
</table>
<hr/>
<div class="row">
<div class="col-xs-12">
<div class="text-right">
{{ Form::open([
'url' => '/admin/flights/'.$flight->id.'/subfleets',
'method' => 'post',
'class' => 'pjax_form form-inline pjax_subfleet_form'
])
}}
{{ Form::select('subfleet_id', $avail_subfleets, null, [
'placeholder' => 'Select Subfleet',
'class' => 'select2 form-control input-lg',
'style' => 'width: 400px;',
])
}}&nbsp;
{{ Form::button('<i class="fas fa-plus"></i> add',
['type' => 'submit',
'class' => 'btn btn-success btn-s']) }}
{{ Form::close() }}
</div>
</div>
<tbody>
@foreach($flight->subfleets as $sf)
<tr>
<td>{{ $sf->type }}</td>
<td>{{ $sf->name }}</td>
<td style="width: 10%; text-align: center;" class="form-inline">
{{ Form::open(['url' => '/admin/flights/'.$flight->id.'/subfleets',
'method' => 'delete',
'class' => 'pjax_subfleet_form']) }}
{{ Form::hidden('subfleet_id', $sf->id) }}
<div class='btn-group'>
{{ Form::button('<i class="fa fa-times"></i>',
['type' => 'submit',
'class' => 'btn btn-danger btn-xs'])
}}
</div>
{{ Form::close() }}
</td>
</tr>
@endforeach
</tbody>
</table>
<hr/>
<div class="row">
<div class="col-xs-12">
<div class="text-right">
{{ Form::open([
'url' => '/admin/flights/'.$flight->id.'/subfleets',
'method' => 'post',
'class' => 'pjax_form form-inline pjax_subfleet_form'
])
}}
{{ Form::select('subfleet_id', $avail_subfleets, null, [
'placeholder' => 'Select Subfleet',
'class' => 'select2 form-control input-lg',
'style' => 'width: 400px;',
])
}}&nbsp;
{{ Form::button('<i class="fas fa-plus"></i> add',
['type' => 'submit',
'class' => 'btn btn-success btn-s']) }}
{{ Form::close() }}
</div>
</div>
</div>
</div>

View File

@@ -1,50 +1,51 @@
<div class="content table-responsive table-full-width">
<table class="table table-hover" id="flights-table">
<table class="table table-hover" id="flights-table">
<thead>
<th>Flight #</th>
<th>Dep</th>
<th>Arr</th>
{{--<th>Route</th>--}}
<th>Dpt Time</th>
<th>Arr Time</th>
<th>Notes</th>
<th style="text-align: center;">Active</th>
<th colspan="3" style="text-align: right;">Action</th>
<th>Flight #</th>
<th>Dep</th>
<th>Arr</th>
{{--<th>Route</th>--}}
<th>Dpt Time</th>
<th>Arr Time</th>
<th>Notes</th>
<th style="text-align: center;">Active</th>
<th colspan="3" style="text-align: right;">Action</th>
</thead>
<tbody>
@foreach($flights as $flight)
<tr>
<td>
<a href="{{ route('admin.flights.edit', [$flight->id]) }}">
{{$flight->ident}}
</a>
</td>
<td>{{ $flight->dpt_airport->icao }}</td>
<td>
{{ $flight->arr_airport->icao }}
@if($flight->alt_airport)
(Alt: {{ $flight->alt_airport->icao }})
@endif
</td>
{{--<td>{{ $flight->route }}</td>--}}
<td>{{ $flight->dpt_time }}</td>
<td>{{ $flight->arr_time }}</td>
<td>{{ $flight->notes }}</td>
<td style="text-align: center;">
@if($flight->active == 1)
<span class="label label-success">@lang('common.active')</span>
@else
<span class="label label-default">@lang('common.inactive')</span>
@endif
</td>
<td style="text-align: right;">
{{ Form::open(['route' => ['admin.flights.destroy', $flight->id], 'method' => 'delete']) }}
<a href="{{ route('admin.flights.edit', [$flight->id]) }}" class='btn btn-sm btn-success btn-icon'><i class="fas fa-pencil-alt"></i></a>
{{ Form::button('<i class="fa fa-times"></i>', ['type' => 'submit', 'class' => 'btn btn-sm btn-danger btn-icon', 'onclick' => "return confirm('Are you sure?')"]) }}
{{ Form::close() }}
</td>
</tr>
<tr>
<td>
<a href="{{ route('admin.flights.edit', [$flight->id]) }}">
{{$flight->ident}}
</a>
</td>
<td>{{ $flight->dpt_airport_id }}</td>
<td>
{{ $flight->arr_airport_id }}
@if($flight->alt_airport)
(Alt: {{ $flight->alt_airport_id }})
@endif
</td>
{{--<td>{{ $flight->route }}</td>--}}
<td>{{ $flight->dpt_time }}</td>
<td>{{ $flight->arr_time }}</td>
<td>{{ $flight->notes }}</td>
<td style="text-align: center;">
@if($flight->active == 1)
<span class="label label-success">@lang('common.active')</span>
@else
<span class="label label-default">@lang('common.inactive')</span>
@endif
</td>
<td style="text-align: right;">
{{ Form::open(['route' => ['admin.flights.destroy', $flight->id], 'method' => 'delete']) }}
<a href="{{ route('admin.flights.edit', [$flight->id]) }}" class='btn btn-sm btn-success btn-icon'><i
class="fas fa-pencil-alt"></i></a>
{{ Form::button('<i class="fa fa-times"></i>', ['type' => 'submit', 'class' => 'btn btn-sm btn-danger btn-icon', 'onclick' => "return confirm('Are you sure?')"]) }}
{{ Form::close() }}
</td>
</tr>
@endforeach
</tbody>
</table>
</table>
</div>