- fixed an error on finance in admin panel

- flight ident now use this format: VA IATA(if empty ICAO) + Flight Number + - + Flight Code (without C) + - + Flight Leg (without L)
- added function __trans_choice in helpers.php for translation
- fixed error in flight edit/insert panel not showing/inserting Tuesday in days
- fixed an error occurring when metar retrieved is empty
- edited now-ui-kit.css to align login fields correctly
- added /public/assets/frontend/js/core/jquery-3.3.1.min.js to fix a missed resource error in authentication pages
- added translations file for en and it locales
- translated all the frontend templates
This commit is contained in:
lordwilbur
2018-05-16 08:47:31 +02:00
committed by Nabeel Shahzad
parent 77a2fd70c3
commit ba8a819c7d
58 changed files with 1126 additions and 262 deletions

View File

@@ -51,7 +51,7 @@ class FinanceController extends Controller
# group by the airline
foreach ($airlines as $airline) {
# Return all the transactions, grouped by the transaction group
$transactions = JournalTransaction::groupBy('transaction_group')
$transactions = JournalTransaction::groupBy('transaction_group', 'currency')
->selectRaw('transaction_group, currency,
SUM(credit) as sum_credits,
SUM(debit) as sum_debits')

View File

@@ -69,7 +69,10 @@ class Airline extends Model
*/
public function getCodeAttribute()
{
return $this->icao;
if ($this->iata && $this->iata !== '')
return $this->iata;
else
return $this->icao;
}
/**

View File

@@ -112,12 +112,12 @@ class Flight extends Model
$flight_id = $this->airline->code;
$flight_id .= $this->flight_number;
if (filled($this->route_leg)) {
$flight_id .= '/L'.$this->route_leg;
if (filled($this->route_code)) {
$flight_id .= '-'.$this->route_code;
}
if (filled($this->route_code)) {
$flight_id .= '/C'.$this->route_code;
if (filled($this->route_leg)) {
$flight_id .= '-'.$this->route_leg;
}
return $flight_id;

View File

@@ -32,7 +32,10 @@ class AviationWeather extends Metar
try {
$res = Http::get($url, []);
$xml = simplexml_load_string($res);
return $xml->data->METAR->raw_text->__toString();
if (count($xml->data->METAR->raw_text) == 0)
return '';
else
return $xml->data->METAR->raw_text->__toString();
} catch (\Exception $e) {
return '';

View File

@@ -481,9 +481,9 @@ class Metar implements \ArrayAccess
$time_diff = floor(($now - $local) / 60);
if ($time_diff < 91) {
$this->set_result_value('observed_age', $time_diff.' min. ago');
$this->set_result_value('observed_age', $time_diff.' '.__trans_choice('min ago', $time_diff));
} else {
$this->set_result_value('observed_age', floor($time_diff / 60).':'.sprintf("%02d", $time_diff % 60).' hr. ago');
$this->set_result_value('observed_age', floor($time_diff / 60).':'.sprintf("%02d", $time_diff % 60).' '.__trans_choice('hr ago', floor($time_diff / 60)));
}
}

View File

@@ -221,3 +221,19 @@ if (!function_exists('_fmt')) {
return $line;
}
}
if (!function_exists('__trans_choice')) {
/**
* Translates the given message based on a count from json key.
*
* @param $key
* @param $number
* @param array $replace
* @param null $locale
* @return string
*/
function __trans_choice($key, $number, array $replace = [], $locale = null)
{
return trans_choice(__($key), $number, $replace, $locale);
}
}

View File

@@ -2089,7 +2089,6 @@ fieldset[disabled]
.form-group .form-control,
.input-group .form-control {
margin-top: 2px;
padding: 4px 14px 4px 14px;
}

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 393 KiB

151
resources/lang/en.json Normal file
View File

@@ -0,0 +1,151 @@
{
"Welcome!": "Welcome!",
"Dashboard": "Dashboard",
"Live Map": "Live Map",
"Pilot": "Pilot|Pilots",
"Flight": "Flight|Flights",
"Login": "Login",
"Register": "Register",
"PIREP": "PIREP|PIREPs",
"Profile": "Profile",
"Downloads": "Downloads",
"Administration": "Administration",
"Log Out": "Esci",
"Welcome Message": "Welcome in Piemonte Virtual Airlines",
"Newest Pilots": "Newest Pilots",
"Total Hours": "Total Hours",
"Your Balance": "Your Balance",
"Current Airport": "Current Airport",
"Your Last Report": "Your Last Report",
"No reports yet.": "No reports yet.",
"File one now.": "File one now.",
"Weather at :ICAO": "Weather at :ICAO",
"Recent Reports": "Recent Reports",
"to": "to",
"Ground Speed": "Ground Speed",
"Altitude": "Altitude",
"Heading": "Heading",
"Status": "Status",
"Flight Time": "Flight Time",
"Distance": "Distance",
"There are no flights.": "There are no flights.",
"Departure": "Departure",
"Arrival": "Arrival",
"Aircraft": "Aircraft",
"GS": "GS",
"Name": "Name",
"Airline": "Airline",
"Location": "Location",
"Hour": "Hour|Hours",
"My Bid": "My Bid|My Bids",
"Search": "Search",
"Flight Number": "Flight Number",
"Departure Airport": "Departure Airport",
"Arrival Airport": "Arrival Airport",
"Find": "Find",
"Reset": "Reset",
"Add/Remove Bid": "Add/Remove Bid",
"DEP": "DEP",
"ARR": "ARR",
"DISTANCE": "DISTANCE",
"LEVEL": "LEVEL",
"ROUTE": "ROUTE",
"Alternate Airport": "Alternate Airport",
"Route": "Route",
"Notes": "Notes",
"File New PIREP": "File New PIREP",
"Pilot Report": "Pilot Report|Pilot Reports",
"Arrived": "Arrived",
"Submit": "Submit",
"Source": "Source",
"Flight Type": "Flight Type",
"Filed Route": "Filed Route",
"Filed On": "Filed On",
"Field": "Field|Fields",
"Value": "Value",
"Fare": "Fare|Fares",
"Class": "Class",
"Count": "Count",
"Flight Level": "Flight Level",
"Once a PIREP has been accepted/rejected, certain fields go into read-only mode.": "Once a PIREP has been accepted/rejected, certain fields go into read-only mode.",
"Flight Informations": "Flight Informations",
"Flight Number/Code/Leg": "Flight Number/Code/Leg",
"Code (optional)": "Code (optional)",
"Leg (optional)": "Leg (optional)",
"Minute": "Minute|Minutes",
"Departure/Arrival Informations": "Departure/Arrival Informations",
"Aircraft Informations": "Aircraft Informations",
"Remarks": "Remarks",
"Date Flown": "Date Flown",
"Departure Time": "Departure Time",
"Arrival Time": "Arrival Time",
"Delete PIREP": "Delete PIREP",
"Save PIREP": "Save PIREP",
"Submit PIREP": "Submit PIREP",
"Edit Flight Report": "Edit Flight Report",
"File New Report": "File New Report",
"New Flight Report": "New Flight Report",
"Flight Hours": "Flight Hours",
"Home Airport": "Home Airport",
"New API Key": "New API Key",
"Edit": "Edit",
"Your Profile": "Your Profile",
"Email": "Email",
"API Key": "API Key",
"don't share this!": "don\'t share this!",
"Timezone": "Timezone",
"Country": "Country",
"Change Password": "Change Password",
"Confirm Password": "Confirm Password",
"Avatar": "Avatar",
"Update Profile": "Update Profile",
"Edit Profile": "Edit Profile",
"Edit Your Profile": "Edit Your Profile",
"Download": "Download|Downloads",
"There are no downloads!": "There are no downloads!",
"Log In": "Log In",
"Create Account": "Create Account",
"Forgot Password": "Forgot Password",
"Full Name": "Full Name",
"Email Address": "Email Address",
"Password": "Password",
"Fill out the captcha": "Fill out the captcha",
"Terms and Conditions": "Terms and Conditions",
"By registering, you agree to the Terms and Conditions.": "By registering, you agree to the Terms and Conditions.",
"Register!": "Register!",
"Reset Password": "Reset Password",
"Send Password Reset Link": "Send Password Reset Link",
"Click here to reset your password": "Click here to reset your password",
"Registration Pending": "Registration Pending",
"Your registration is pending approval. Please check your email!": "Your registration is pending approval. Please check your email!",
"Registration Submitted": "Registration Submitted",
"Registration Confirmation": "Registration Confirmation",
"Your application has been submitted. It requires staff member approval, once a\nstaff member has reviewed your application, you will receive a confirmation email.": "Your application has been submitted. It requires staff member approval, once a\nstaff member has reviewed your application, you will receive a confirmation email.",
"Registration Denied": "Registration Denied",
"Your registration was denied. Please contact an administrator.": "Your registration was denied. Please contact an administrator.",
"Account Suspended": "Account Suspended",
"Your account has been suspended. Please contact an administrator.": "Your account has been suspended. Please contact an administrator.",
"Inbound Flights": "Inbound Flights",
"Outbound Flights": "Outbound Flights",
"No Flight Found": "No Flight Found",
"Ident": "Ident",
"From": "From",
"To": "To",
"Close": "Close",
"News": "News",
"No News Found": "No News Found",
"METAR/TAF data could not be retrieved": "METAR/TAF data could not be retrieved",
"Conditions": "Conditions",
"visibility": "visibility",
"humidity": "humidity",
"dew point": "dew point",
"Barometer": "Barometer",
"Clouds": "Clouds",
"Wind": "Wind",
"from": "from",
"gusts to": "gusts to",
"METAR": "METAR",
"Updated": "Updated",
"hr ago": "hr ago|hrs ago",
"min ago": "min ago|mins ago"
}

150
resources/lang/it.json Normal file
View File

@@ -0,0 +1,150 @@
{
"Welcome!": "Benvenuti!",
"Dashboard": "Dashboard",
"Live Map": "Mappa Live",
"Pilot": "Pilota|Piloti",
"Flight": "Volo|Voli",
"Login": "Accedi",
"Register": "Registrazione",
"PIREP": "PIREP|PIREPs",
"Profile": "Profilo",
"Administration": "Amministrazione",
"Log Out": "Esci",
"Welcome Message": "Benvenuti in Piemonte Virtual Airlines",
"Newest Pilots": "Ultimi Piloti",
"Total Hours": "Ore Totali",
"Your Balance": "Il Tuo Bilancio",
"Current Airport": "Aeroporto Corrente",
"Your Last Report": "Il Tuo Ultimo Rapporto",
"No reports yet.": "Ancora nessun rapporto.",
"File one now.": "Inseriscine uno ora.",
"Weather at :ICAO": "Tempo a :ICAO",
"Recent Reports": "Rapporti Recenti",
"to": "a",
"Ground Speed": "Velocità al Suolo",
"Altitude": "Altitudine",
"Heading": "Direzione",
"Status": "Stato",
"Flight Time": "Tempo di Volo",
"Distance": "Distanza",
"There are no flights.": "Non ci sono voli.",
"Departure": "Partenza",
"Arrival": "Arrivo",
"Aircraft": "Aereo",
"GS": "VS",
"Name": "Nome",
"Airline": "Compagnia Aerea",
"Location": "Posizione",
"Hour": "Ora|Ore",
"My Bid": "La Mia Prenotazione|Le Mie Prenotazioni",
"Search": "Cerca",
"Flight Number": "Numero di Volo",
"Departure Airport": "Aeroporto di Partenza",
"Arrival Airport": "Aeroporto d'Arrivo",
"Find": "Trova",
"Reset": "Resetta",
"Add/Remove Bid": "Aggiungi/Rimuovi Prenotazione",
"DEP": "PAR",
"ARR": "ARR",
"DISTANCE": "DISTANZA",
"LEVEL": "LIVELLO",
"ROUTE": "ROTTA",
"Alternate Airport": "Aeroporto Alternativo",
"Route": "Rotta",
"Notes": "Note",
"File New PIREP": "Inserisci Nuovo PIREP",
"Pilot Report": "Rapporto Pilota|Rapporti Pilota",
"Arrived": "Arrivato",
"Submit": "Invia",
"Source": "Fonte",
"Flight Type": "Tipo di Volo",
"Filed Route": "Rotta Inserita",
"Filed On": "Inserito il",
"Field": "Campo|Campi",
"Value": "Valore",
"Fare": "Tariffa|Tariffe",
"Class": "Classe",
"Count": "Numero",
"Flight Level": "Livello di Volo",
"Once a PIREP has been accepted/rejected, certain fields go into read-only mode.": "Quando un PIREP viene accettato/rifiutato, alcuni campi vanno in modalità di sola lettura.",
"Flight Informations": "Informazioni di Volo",
"Flight Number/Code/Leg": "Numero di Volo/Codice/Tappa",
"Code (optional)": "Codice (facoltativo)",
"Leg (optional)": "Tappa (facoltativo)",
"Minute": "Minuto|Minuti",
"Departure/Arrival Informations": "Informazioni di Partenza/Arrivo",
"Aircraft Informations": "Informazioni sull'Aeromobile",
"Remarks": "Promemoria",
"Date Flown": "Volato in Data",
"Departure Time": "Orario di Partenza",
"Arrival Time": "Orario di Arrivo",
"Delete PIREP": "Cancella PIREP",
"Save PIREP": "Salva PIREP",
"Submit PIREP": "Invia PIREP",
"Edit Flight Report": "Modifica Rapporto di Volo",
"File New Report": "Inserisci Nuovo Rapporto",
"New Flight Report": "Nuovo Rapporto di Volo",
"Flight Hours": "Ore di Volo",
"Home Airport": "Aeroporto di Casa",
"New API Key": "Nuova Chiave API",
"Edit": "Modifica",
"Your Profile": "Il Tuo Profilo",
"Email": "Email",
"API Key": "Chiave API",
"don't share this!": "Non condividerla!",
"Timezone": "Fuso Orario",
"Country": "Paese",
"Change Password": "Cambia Password",
"Confirm Password": "Conferma Password",
"Avatar": "Avatar",
"Update Profile": "Aggiorna Profilo",
"Edit Profile": "Modifica Profilo",
"Edit Your Profile": "Modifica il Tuo Profilo",
"Download": "Download|Downloads",
"There are no downloads!": "Non ci sono downloads!",
"Log In": "Accesso",
"Create Account": "Crea Account",
"Forgot Password": "Password Dimenticata",
"Full Name": "Nome Completo",
"Email Address": "Indirizzo Email",
"Password": "Password",
"Fill out the captcha": "Compila la captcha",
"Terms and Conditions": "Termini e Condizioni di Utilizzo",
"By registering, you agree to the Terms and Conditions.": "Registrandoti accetti i Termini e le Condizioni di Utilizzo.",
"Register!": "Registrati!",
"Reset Password": "Resetta Password",
"Send Password Reset Link": "Invia Link per Resettare la Password",
"Click here to reset your password": "Clicca qui per resettare la tua password",
"Registration Pending": "Registrazione in Sospeso",
"Your registration is pending approval. Please check your email!": "La tua registrazione è in attesa di approvazione. Controlla la tua email per favore!",
"Registration Submitted": "Registrazione Inviata",
"Registration Confirmation": "Conferma di Registrazione",
"Your application has been submitted. It requires staff member approval, once a\nstaff member has reviewed your application, you will receive a confirmation email.": "La tua domanda è stata inviata e richiede l'approvazione di un membro dello staff, appena\nun membro dello staff l'avrà esaminata riceverai un'email di conferma.",
"Registration Denied": "Registrazione Rifiutata",
"Your registration was denied. Please contact an administrator.": "La tua registrazione è stata rifiutata. Contatta un amministratore per favore.",
"Account Suspended": "Account Sospeso",
"Your account has been suspended. Please contact an administrator.": "Il tuo account è stato sospeso. Contatta un amministratore per favore.",
"Inbound Flights": "Voli in Entrata",
"Outbound Flights": "Voli in Uscita",
"No Flight Found": "Nessun Volo Trovato",
"Ident": "Identificativo",
"From": "Da",
"To": "A",
"Close": "Chiudi",
"News": "Novità",
"No News Found": "Nessuna Novità Trovata",
"METAR/TAF data could not be retrieved": "I dati METAR/TAF non sono stati recuperati",
"Conditions": "Condizioni",
"visibility": "visibilità",
"humidity": "umidità",
"dew point": "punto di rugiada",
"Barometer": "Barometro",
"Clouds": "Nuvole",
"Wind": "Vento",
"from": "da",
"gusts to": "raffiche a",
"METAR": "METAR",
"Updated": "Aggiornato",
"hr ago": "ora fa|ore fa",
"min ago": "minuto fa|minuti fa"
}

View File

@@ -0,0 +1,19 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Authentication Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used during authentication for various
| messages that we need to display to the user. You are free to modify
| these language lines according to your application's requirements.
|
*/
'failed' => 'These credentials do not match our records.',
'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
];

View File

@@ -0,0 +1,246 @@
<?php
return [
/**
*
* Shared translations.
*
*/
'title' => 'phpVMS Installer',
'next' => 'Next Step',
'back' => 'Previous',
'finish' => 'Install',
'forms' => [
'errorTitle' => 'The Following errors occurred:',
],
/**
*
* Home page translations.
*
*/
'welcome' => [
'templateTitle' => 'Welcome',
'title' => 'phpVMS Installer',
'message' => 'Easy Installation and Setup Wizard.',
'next' => 'Check Requirements',
],
/**
*
* Requirements page translations.
*
*/
'requirements' => [
'templateTitle' => 'Step 1 | Server Requirements',
'title' => 'Server Requirements',
'next' => 'Check Permissions',
],
/**
*
* Permissions page translations.
*
*/
'permissions' => [
'templateTitle' => 'Step 2 | Permissions',
'title' => 'Permissions',
'next' => 'Configure Environment',
],
/**
*
* Environment page translations.
*
*/
'environment' => [
'menu' => [
'templateTitle' => 'Step 3 | Environment Settings',
'title' => 'Environment Settings',
'desc' => 'Please select how you want to configure the apps <code>.env</code> file.',
'wizard-button' => 'Form Wizard Setup',
'classic-button' => 'Classic Text Editor',
],
'wizard' => [
'templateTitle' => 'Step 3 | Environment Settings | Guided Wizard',
'title' => 'Guided <code>.env</code> Wizard',
'tabs' => [
'environment' => 'Environment',
'database' => 'Database',
'application' => 'Application'
],
'form' => [
'name_required' => 'An environment name is required.',
'app_name_label' => 'App Name',
'app_name_placeholder' => 'App Name',
'app_environment_label' => 'App Environment',
'app_environment_label_local' => 'Local',
'app_environment_label_developement' => 'Development',
'app_environment_label_qa' => 'Qa',
'app_environment_label_production' => 'Production',
'app_environment_label_other' => 'Other',
'app_environment_placeholder_other' => 'Enter your environment...',
'app_debug_label' => 'App Debug',
'app_debug_label_true' => 'True',
'app_debug_label_false' => 'False',
'app_log_level_label' => 'App Log Level',
'app_log_level_label_debug' => 'debug',
'app_log_level_label_info' => 'info',
'app_log_level_label_notice' => 'notice',
'app_log_level_label_warning' => 'warning',
'app_log_level_label_error' => 'error',
'app_log_level_label_critical' => 'critical',
'app_log_level_label_alert' => 'alert',
'app_log_level_label_emergency' => 'emergency',
'app_url_label' => 'App Url',
'app_url_placeholder' => 'App Url',
'db_connection_label' => 'Database Connection',
'db_connection_label_mysql' => 'mysql',
'db_connection_label_sqlite' => 'sqlite',
'db_connection_label_pgsql' => 'pgsql',
'db_connection_label_sqlsrv' => 'sqlsrv',
'db_host_label' => 'Database Host',
'db_host_placeholder' => 'Database Host',
'db_port_label' => 'Database Port',
'db_port_placeholder' => 'Database Port',
'db_name_label' => 'Database Name',
'db_name_placeholder' => 'Database Name',
'db_username_label' => 'Database User Name',
'db_username_placeholder' => 'Database User Name',
'db_password_label' => 'Database Password',
'db_password_placeholder' => 'Database Password',
'app_tabs' => [
'more_info' => 'More Info',
'broadcasting_title' => 'Broadcasting, Caching, Session, &amp; Queue',
'broadcasting_label' => 'Broadcast Driver',
'broadcasting_placeholder' => 'Broadcast Driver',
'cache_label' => 'Cache Driver',
'cache_placeholder' => 'Cache Driver',
'session_label' => 'Session Driver',
'session_placeholder' => 'Session Driver',
'queue_label' => 'Queue Driver',
'queue_placeholder' => 'Queue Driver',
'redis_label' => 'Redis Driver',
'redis_host' => 'Redis Host',
'redis_password' => 'Redis Password',
'redis_port' => 'Redis Port',
'mail_label' => 'Mail',
'mail_driver_label' => 'Mail Driver',
'mail_driver_placeholder' => 'Mail Driver',
'mail_host_label' => 'Mail Host',
'mail_host_placeholder' => 'Mail Host',
'mail_port_label' => 'Mail Port',
'mail_port_placeholder' => 'Mail Port',
'mail_username_label' => 'Mail Username',
'mail_username_placeholder' => 'Mail Username',
'mail_password_label' => 'Mail Password',
'mail_password_placeholder' => 'Mail Password',
'mail_encryption_label' => 'Mail Encryption',
'mail_encryption_placeholder' => 'Mail Encryption',
'pusher_label' => 'Pusher',
'pusher_app_id_label' => 'Pusher App Id',
'pusher_app_id_palceholder' => 'Pusher App Id',
'pusher_app_key_label' => 'Pusher App Key',
'pusher_app_key_palceholder' => 'Pusher App Key',
'pusher_app_secret_label' => 'Pusher App Secret',
'pusher_app_secret_palceholder' => 'Pusher App Secret',
],
'buttons' => [
'setup_database' => 'Setup Database',
'setup_application' => 'Setup Application',
'install' => 'Install',
],
],
],
'classic' => [
'templateTitle' => 'Step 3 | Environment Settings | Classic Editor',
'title' => 'Classic Environment Editor',
'save' => 'Save .env',
'back' => 'Use Form Wizard',
'install' => 'Save and Install',
],
'success' => 'Your .env file settings have been saved.',
'errors' => 'Unable to save the .env file, Please create it manually.',
],
'install' => 'Install',
/**
*
* Installed Log translations.
*
*/
'installed' => [
'success_log_message' => 'Laravel Installer successfully INSTALLED on ',
],
/**
*
* Final page translations.
*
*/
'final' => [
'title' => 'Installation Finished',
'templateTitle' => 'Installation Finished',
'finished' => 'Application has been successfully installed.',
'migration' => 'Migration &amp; Seed Console Output:',
'console' => 'Application Console Output:',
'log' => 'Installation Log Entry:',
'env' => 'Final .env File:',
'exit' => 'Click here to exit',
],
/**
*
* Update specific translations
*
*/
'updater' => [
/**
*
* Shared translations.
*
*/
'title' => 'Laravel Updater',
/**
*
* Welcome page translations for update feature.
*
*/
'welcome' => [
'title' => 'Welcome To The Updater',
'message' => 'Welcome to the update wizard.',
],
/**
*
* Welcome page translations for update feature.
*
*/
'overview' => [
'title' => 'Overview',
'message' => 'There is 1 update.|There are :number updates.',
'install_updates' => "Install Updates"
],
/**
*
* Final page translations.
*
*/
'final' => [
'title' => 'Finished',
'finished' => 'Application\'s database has been successfully updated.',
'exit' => 'Click here to exit',
],
'log' => [
'success_message' => 'Laravel Installer successfully UPDATED on ',
],
],
];

View File

@@ -0,0 +1,19 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Pagination Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used by the paginator library to build
| the simple pagination links. You are free to change them to anything
| you want to customize your views to better match your application.
|
*/
'previous' => '&laquo; Previous',
'next' => 'Next &raquo;',
];

View File

@@ -0,0 +1,22 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Password Reset Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are the default lines which match reasons
| that are given by the password broker for a password update attempt
| has failed, such as for an invalid token or invalid new password.
|
*/
'password' => 'Passwords must be at least six characters and match the confirmation.',
'reset' => 'Your password has been reset!',
'sent' => 'We have e-mailed your password reset link!',
'token' => 'This password reset token is invalid.',
'user' => "We can't find a user with that e-mail address.",
];

View File

@@ -0,0 +1,106 @@
<?php
return [
'global' => [
'active' => 'Active',
'inactive' => 'Inactive'
],
'aircraft' => [
'status' => [
'active' => 'Active',
'stored' => 'Stored',
'retired' => 'Retired',
'scrapped' => 'Scrapped',
'written' => 'Written Off',
],
],
'days' => [
'mon' => 'Monday',
'tues' => 'Tuesday',
'wed' => 'Wednesday',
'thurs' => 'Thursday',
'fri' => 'Friday',
'sat' => 'Saturday',
'sun' => 'Sunday',
],
'expenses' => [
'type' => [
'flight' => 'Flight',
'daily' => 'Daily',
'monthly' => 'Monthly',
],
],
'flights' => [
'type' => [
'pass_scheduled' => 'Passenger - Scheduled',
'cargo_scheduled' => 'Cargo - Scheduled',
'charter_pass_only' => 'Charter - Passenger Only',
'addtl_cargo_mail' => 'Additional Cargo/Mail',
'special_vip' => 'Special VIP Flight (FAA/Government)',
'pass_addtl' => 'Passenger - Additional',
'charter_cargo' => 'Charter - Cargo/Mail',
'ambulance' => 'Ambulance Flight',
'training_flight' => 'Training Flight',
'mail_service' => 'Mail Service',
'charter_special' => 'Charter w/ Special Handling',
'positioning' => 'Positioning (Ferry/Delivery/Demo)',
'technical_test' => 'Technical Test',
'military' => 'Military',
'technical_stop' => 'Technical Stop',
],
],
'pireps' => [
'source' => [
'manual' => 'Manual',
'acars' => 'ACARS',
],
'state' => [
'accepted' => 'Accepted',
'pending' => 'Pending Approval',
'rejected' => 'Rejected',
'in_progress' => 'In Progress',
'cancelled' => 'Cancelled',
'deleted' => 'Deleted',
'draft' => 'Draft',
],
'status' => [
'initialized' => 'Initiated',
'scheduled' => 'Scheduled',
'boarding' => 'Boarding',
'ready_start' => 'Ready for start',
'push_tow' => 'Pushback/towing',
'departed' => 'Departed',
'ready_deice' => 'Ready for de-icing',
'deicing' => 'De-icing in progress',
'ground_ret' => 'Ground return',
'taxi' => 'Taxi',
'takeoff' => 'Takeoff',
'initial_clb' => 'Initial Climb',
'enroute' => 'Enroute',
'diverted' => 'Diverted',
'approach' => 'Approach',
'final_appr' => 'Final approach',
'landing' => 'Landing',
'landed' => 'Landed',
'arrived' => 'Arrived',
'cancelled' => 'Cancelled',
'emerg_decent' => 'Emergency decent',
]
],
'users' => [
'state' => [
'pending' => 'Pending',
'active' => 'Active',
'rejected' => 'Rejected',
'on_leave' => 'On Leave',
'suspended' => 'Suspended',
],
],
];

View File

@@ -0,0 +1,120 @@
<?php
return [
/**
* Validation Language Lines
*/
'accepted' => 'The :attribute must be accepted.',
'active_url' => 'The :attribute is not a valid URL.',
'after' => 'The :attribute must be a date after :date.',
'alpha' => 'The :attribute may only contain letters.',
'alpha_dash' => 'The :attribute may only contain letters, numbers, and dashes.',
'alpha_num' => 'The :attribute may only contain letters and numbers.',
'array' => 'The :attribute must be an array.',
'before' => 'The :attribute must be a date before :date.',
'between' => [
'numeric' => 'The :attribute must be between :min and :max.',
'file' => 'The :attribute must be between :min and :max kilobytes.',
'string' => 'The :attribute must be between :min and :max characters.',
'array' => 'The :attribute must have between :min and :max items.',
],
'boolean' => 'The :attribute field must be true or false.',
'confirmed' => 'The :attribute confirmation does not match.',
'date' => 'The :attribute is not a valid date.',
'date_format' => 'The :attribute does not match the format :format.',
'different' => 'The :attribute and :other must be different.',
'digits' => 'The :attribute must be :digits digits.',
'digits_between' => 'The :attribute must be between :min and :max digits.',
'dimensions' => 'The :attribute has invalid image dimensions.',
'distinct' => 'The :attribute field has a duplicate value.',
'email' => 'The :attribute must be a valid email address.',
'exists' => 'The selected :attribute is invalid.',
'file' => 'The :attribute must be a file.',
'filled' => 'The ":attribute" is required.',
'image' => 'The :attribute must be an image.',
'in' => 'The selected :attribute is invalid.',
'in_array' => 'The :attribute field does not exist in :other.',
'integer' => 'The :attribute must be an integer.',
'ip' => 'The :attribute must be a valid IP address.',
'json' => 'The :attribute must be a valid JSON string.',
'max' => [
'numeric' => 'The :attribute may not be greater than :max.',
'file' => 'The :attribute may not be greater than :max kilobytes.',
'string' => 'The :attribute may not be greater than :max characters.',
'array' => 'The :attribute may not have more than :max items.',
],
'mimes' => 'The :attribute must be a file of type: :values.',
'min' => [
'numeric' => 'The :attribute must be at least :min.',
'file' => 'The :attribute must be at least :min kilobytes.',
'string' => 'The :attribute must be at least :min characters.',
'array' => 'The :attribute must have at least :min items.',
],
'not_in' => 'The selected :attribute is invalid.',
'numeric' => 'The :attribute must be a number.',
'present' => 'The :attribute field must be present.',
'regex' => 'The :attribute format is invalid.',
'required' => 'The ":attribute" field is required.',
'required_if' => 'The :attribute field is required when :other is :value.',
'required_unless' => 'The :attribute field is required unless :other is in :values.',
'required_with' => 'The :attribute field is required when :values is present.',
'required_with_all' => 'The :attribute field is required when :values is present.',
'required_without' => 'The :attribute field is required when :values is not present.',
'required_without_all' => 'The :attribute field is required when none of :values are present.',
'same' => 'The :attribute and :other must match.',
'size' => [
'numeric' => 'The :attribute must be :size.',
'file' => 'The :attribute must be :size kilobytes.',
'string' => 'The :attribute must be :size characters.',
'array' => 'The :attribute must contain :size items.',
],
'string' => 'The :attribute must be a string.',
'timezone' => 'The :attribute must be a valid zone.',
'unique' => 'The :attribute has already been taken.',
'url' => 'The :attribute format is invalid.',
/**
* Custom Validation Language Lines
*/
'custom' => [
'airline_id' => [
'required' => 'An airline is required',
'exists' => 'The airline doesn\'t exist',
],
'aircraft_id' => [
'required' => 'An aircraft is required',
'exists' => 'The aircraft doesn\'t exist',
],
'arr_airport_id' => [
'required' => 'An arrival airport is required',
],
'dpt_airport_id' => [
'required' => 'A departure airport is required',
],
'flight_time' => [
'required' => 'Flight time, in minutes, is required',
'integer' => 'Flight time, in minutes, is required',
],
'planned_flight_time' => [
'required' => 'Flight time, in minutes, is required',
'integer' => 'Flight time, in minutes, is required',
],
'source_name' => [
'required' => 'PIREP Source is required',
],
'g-recaptcha-response' => [
'required' => 'Please verify that you are not a robot.',
'captcha' => 'Captcha error! try again later or contact site admin.',
],
],
/**
* Custom Validation Attributes
*/
'attributes' => [],
];

View File

@@ -142,7 +142,7 @@
</div>
<div class="form-group col-sm-4">
{{Form::label('days', 'Days of Week')}}
{{ 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}}"
@@ -150,7 +150,7 @@
@lang('system.days.mon')
</option>
<option value="{{\App\Models\Enums\Days::TUESDAY}}"
{{in_mask($days, \App\Models\Enums\Days::TUESDAY) ? 'select':'' }}>
{{in_mask($days, \App\Models\Enums\Days::TUESDAY) ? 'selected':'' }}>
@lang('system.days.tues')
</option>
<option value="{{\App\Models\Enums\Days::WEDNESDAY}}"

View File

@@ -1,5 +1,5 @@
@extends('app')
@section('title', 'live map')
@section('title', __('Live Map'))
@section('content')
{{ Widget::liveMap() }}

View File

@@ -28,7 +28,7 @@
{{-- There are files uploaded and a user is logged in--}}
@if(count($airport->files) > 0 && Auth::check())
<div class="col-12">
<h3>Downloads</h3>
<h3>{{ __trans_choice('Download', 2) }}</h3>
@include('downloads.table', ['files' => $airport->files])
</div>
@endif
@@ -36,19 +36,19 @@
<div class="row">
<div class="col-6">
<h5>Inbound Flights</h5>
<h5>{{ __('Inbound Flights') }}</h5>
@if(!$inbound_flights)
<div class="jumbotron text-center">
no flights found
{{ __('No Flight Found') }}
</div>
@else
<table class="table table-striped table-condensed">
<thead>
<tr>
<th class="text-left">Ident</th>
<th class="text-left">From</th>
<th>Departure</th>
<th>Arrival</th>
<th class="text-left">{{ __('Ident') }}</th>
<th class="text-left">{{ __('From') }}</th>
<th>{{ __('Departure') }}</th>
<th>{{ __('Arrival') }}</th>
</tr>
</thead>
@foreach($inbound_flights as $flight)
@@ -71,19 +71,19 @@
</div>
<div class="col-6">
<h5>Outbound Flights</h5>
<h5>{{ __('Outbound Flights') }}</h5>
@if(!$outbound_flights)
<div class="jumbotron text-center">
no flights found
{{ __('No Flight Found') }}
</div>
@else
<table class="table table-striped table-condensed">
<thead>
<tr>
<th class="text-left">Ident</th>
<th class="text-left">To</th>
<th>Departure</th>
<th>Arrival</th>
<th class="text-left">{{ __('Ident') }}</th>
<th class="text-left">{{ __('To') }}</th>
<th>{{ __('Departure') }}</th>
<th>{{ __('Arrival') }}</th>
</tr>
</thead>
@foreach($outbound_flights as $flight)

View File

@@ -1 +1 @@
Click here to reset your password: <a href="{{ $link = url('password/reset', $token).'?email='.urlencode($user->getEmailForPasswordReset()) }}"> {{ $link }} </a>
{{ __('Click here to reset your password') }}: <a href="{{ $link = url('password/reset', $token).'?email='.urlencode($user->getEmailForPasswordReset()) }}"> {{ $link }} </a>

View File

@@ -40,7 +40,7 @@
</div>
</body>
<script src="{{ public_asset('/assets/frontend/js/core/jquery.3.2.1.min.js') }}" type="text/javascript"></script>
<script src="{{ public_asset('/assets/frontend/js/core/jquery-3.3.1.min.js') }}" type="text/javascript"></script>
@yield('scripts')

View File

@@ -1,5 +1,5 @@
@extends('auth.layout')
@section('title', 'Log In')
@section('title', __('Log In'))
@section('content')
<div class="col-md-4 content-center">
@@ -51,16 +51,16 @@
</div>
<div class="footer text-center">
<button href="#pablo" class="btn btn-primary btn-round btn-lg btn-block">login</button>
<button href="#pablo" class="btn btn-primary btn-round btn-lg btn-block">{{ __('Login') }}</button>
</div>
<div class="pull-left">
<h6>
<a href="{{ url('/register') }}" class="link">Create Account</a>
<a href="{{ url('/register') }}" class="link">{{ __('Create Account') }}</a>
</h6>
</div>
<div class="pull-right">
<h6>
<a href="{{ url('/password/reset') }}" class="link">Forgot Password?</a>
<a href="{{ url('/password/reset') }}" class="link">{{ __('Forgot Password') }}?</a>
</h6>
</div>
{{ Form::close() }}

View File

@@ -1,4 +1,5 @@
@extends('app')
@section('title', __('Reset Password'))
<!-- Main Content -->
@section('content')
@@ -6,7 +7,7 @@
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Reset Password</div>
<div class="panel-heading">{{ __('Reset Password') }}</div>
<div class="panel-body">
@if (session('status'))
<div class="alert alert-success">
@@ -18,7 +19,7 @@
{{ csrf_field() }}
<div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
<label for="email" class="col-md-4 control-label">E-Mail Address</label>
<label for="email" class="col-md-4 control-label">{{ __('Email Address') }}</label>
<div class="col-md-6">
<input id="email" type="email" class="form-control" name="email" value="{{ old('email') }}" required>
@@ -34,7 +35,7 @@
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<button type="submit" class="btn btn-primary">
Send Password Reset Link
{{ __('Send Password Reset Link') }}
</button>
</div>
</div>

View File

@@ -1,12 +1,12 @@
@extends('app')
@section('title', 'Reset Password')
@section('title', __('Reset Password'))
@section('content')
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Reset Password</div>
<div class="panel-heading">{{ __('Reset Password') }}</div>
<div class="panel-body">
{{ Form::open([
'url' => url('/password/reset'),
@@ -18,7 +18,7 @@
<input type="hidden" name="token" value="{{ $token }}">
<div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
<label for="email" class="col-md-4 control-label">E-Mail Address</label>
<label for="email" class="col-md-4 control-label">{{ __('Email Address') }}</label>
<div class="col-md-6">
<input id="email" type="email" class="form-control" name="email" value="{{ $email or old('email') }}" required autofocus>
@@ -32,7 +32,7 @@
</div>
<div class="form-group{{ $errors->has('password') ? ' has-error' : '' }}">
<label for="password" class="col-md-4 control-label">Password</label>
<label for="password" class="col-md-4 control-label">{{ __('Password') }}</label>
<div class="col-md-6">
<input id="password" type="password" class="form-control" name="password" required>
@@ -46,7 +46,7 @@
</div>
<div class="form-group{{ $errors->has('password_confirmation') ? ' has-error' : '' }}">
<label for="password-confirm" class="col-md-4 control-label">Confirm Password</label>
<label for="password-confirm" class="col-md-4 control-label">{{ __('Confirm Password') }}</label>
<div class="col-md-6">
<input id="password-confirm" type="password" class="form-control" name="password_confirmation" required>
@@ -61,7 +61,7 @@
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<button type="submit" class="btn btn-primary">
Reset Password
{{ __('Reset Password') }}
</button>
</div>
</div>

View File

@@ -1,12 +1,12 @@
@extends('app')
@section('title', 'registration pending')
@section('title', __('Registration Pending'))
@section('content')
<div class="row">
<div class="col-md-12 " style="text-align: center;">
<div class="flex-center position-ref full-height">
<div class="title m-b-md">
<h2 class="description">your registration is pending approval. please check your email!</h2>
<h2 class="description">{{ __('Your registration is pending approval. Please check your email!') }}</h2>
</div>
</div>
</div>

View File

@@ -1,5 +1,5 @@
@extends('app')
@section('title', 'register')
@section('title', __('Register'))
@section('content')
<div class="row">
@@ -10,8 +10,8 @@
<div class="panel periodic-login">
<div class="panel-body">
<h2>Register</h2>
<label for="name" class="control-label">Full Name</label>
<h2>{{ __('Register') }}</h2>
<label for="name" class="control-label">{{ __('Full Name') }}</label>
<div class="input-group form-group-no-border {{ $errors->has('name') ? 'has-danger' : '' }}">
{{ Form::text('name', null, ['class' => 'form-control']) }}
</div>
@@ -19,7 +19,7 @@
<p class="text-danger">{{ $errors->first('name') }}</p>
@endif
<label for="email" class="control-label">Email Address</label>
<label for="email" class="control-label">{{ __('Email Address') }}</label>
<div class="input-group form-group-no-border {{ $errors->has('email') ? 'has-danger' : '' }}">
{{ Form::text('email', null, ['class' => 'form-control']) }}
</div>
@@ -27,7 +27,7 @@
<p class="text-danger">{{ $errors->first('email') }}</p>
@endif
<label for="airline" class="control-label">Airline</label>
<label for="airline" class="control-label">{{ __('Airline') }}</label>
<div class="input-group form-group-no-border {{ $errors->has('airline') ? 'has-danger' : '' }}">
{{ Form::select('airline_id', $airlines, null , ['class' => 'form-control select2']) }}
</div>
@@ -35,7 +35,7 @@
<p class="text-danger">{{ $errors->first('airline_id') }}</p>
@endif
<label for="home_airport" class="control-label">Home Airport</label>
<label for="home_airport" class="control-label">{{ __('Home Airport') }}</label>
<div class="input-group form-group-no-border {{ $errors->has('home_airport') ? 'has-danger' : '' }}">
{{ Form::select('home_airport_id', $airports, null , ['class' => 'form-control select2']) }}
</div>
@@ -43,7 +43,7 @@
<p class="text-danger">{{ $errors->first('home_airport_id') }}</p>
@endif
<label for="country" class="control-label">Country</label>
<label for="country" class="control-label">{{ __('Country') }}</label>
<div class="input-group form-group-no-border {{ $errors->has('country') ? 'has-danger' : '' }}">
{{ Form::select('country', $countries, null, ['class' => 'form-control select2' ]) }}
</div>
@@ -51,7 +51,7 @@
<p class="text-danger">{{ $errors->first('country') }}</p>
@endif
<label for="timezone" class="control-label">Timezone</label>
<label for="timezone" class="control-label">{{ __('Timezone') }}</label>
<div class="input-group form-group-no-border {{ $errors->has('timezone') ? 'has-danger' : '' }}">
{{ Form::select('timezone', $timezones, null, ['id'=>'timezone', 'class' => 'form-control select2' ]) }}
</div>
@@ -59,7 +59,7 @@
<p class="text-danger">{{ $errors->first('timezone') }}</p>
@endif
<label for="password" class="control-label">Password</label>
<label for="password" class="control-label">{{ __('Password') }}</label>
<div class="input-group form-group-no-border {{ $errors->has('password') ? 'has-danger' : '' }}">
{{ Form::password('password', ['class' => 'form-control']) }}
</div>
@@ -67,7 +67,7 @@
<p class="text-danger">{{ $errors->first('password') }}</p>
@endif
<label for="password_confirmation" class="control-label">Confirm Password</label>
<label for="password_confirmation" class="control-label">{{ __('Confirm Password') }}</label>
<div class="input-group form-group-no-border {{ $errors->has('password_confirmation') ? 'has-danger' : '' }}">
{{ Form::password('password_confirmation', ['class' => 'form-control']) }}
</div>
@@ -76,7 +76,7 @@
@endif
@if(config('captcha.enabled'))
<label for="g-recaptcha-response" class="control-label">Fill out the captcha</label>
<label for="g-recaptcha-response" class="control-label">{{ __('Fill out the captcha') }}</label>
<div class="input-group form-group-no-border {{ $errors->has('g-recaptcha-response') ? 'has-danger' : '' }}">
{!! NoCaptcha::display(config('captcha.attributes')) !!}
</div>
@@ -88,8 +88,8 @@
@include('auth.toc')
<div style="width: 100%; text-align: right; padding-top: 20px;">
By registering, you agree to the Term and Conditions<br /><br />
{{ Form::submit('Register!', ['class' => 'btn btn-primary']) }}
{{ __('By registering, you agree to the Terms and Conditions.') }}<br /><br />
{{ Form::submit(__('Register!'), ['class' => 'btn btn-primary']) }}
</div>
</div>

View File

@@ -1,12 +1,11 @@
@extends('app')
@section('title', 'registration submitted')
@section('title', __('Registration Submitted'))
@section('content')
<div class="container registered-page">
<h3>Registration Confirmation</h3>
<h3>{{ __('Registration Confirmation') }}</h3>
<p>
Your application has been submitted. It requires staff member approval, once a
staff member has reviewed your application, you will receive an email confirmation.
__('Your application has been submitted. It requires staff member approval, once a\nstaff member has reviewed your application, you will receive a confirmation email.') }}
</p>
</div>
@endsection

View File

@@ -1,5 +1,5 @@
@extends('app')
@section('title', 'registration denied')
@section('title', __('Registration Denied'))
@section('content')
<div class="row">
@@ -7,7 +7,7 @@
<div class="flex-center position-ref full-height">
<div class="title m-b-md">
<h2 class="description">
your registration was denied. please contact an administrator
{{ __('Your registration was denied. Please contact an administrator.') }}
</h2>
</div>
</div>

View File

@@ -1,5 +1,5 @@
@extends('app')
@section('title', 'account suspended')
@section('title', __('Account Suspended'))
@section('content')
<div class="row">
@@ -7,7 +7,7 @@
<div class="flex-center position-ref full-height">
<div class="title m-b-md">
<h2 class="description">
your has been suspended. please contact an administrator
{{ __('Your account has been suspended. Please contact an administrator.') }}
</h2>
</div>
</div>

View File

@@ -1,4 +1,4 @@
<h4>Terms and Conditions</h4>
<h4>{{ __('Terms and Conditions') }}</h4>
<textarea class="form-control" style="height: 150px; border: 1px #ccc solid;">
{{ config('app.name') }} offers this Web site, including all information, software,
products and services available from this Web site or offered as part of or in conjunction

View File

@@ -1,5 +1,5 @@
@extends('app')
@section('title', 'dashboard')
@section('title', __('Dashboard'))
@section('content')
<div class="row">
@@ -14,7 +14,7 @@
<i class="fas fa-plane icon"></i>
</div>
<h3 class="header">{{ $user->flights }}</h3>
<h5 class="description">{{ str_plural('flight', $user->flights) }}</h5>
<h5 class="description">{{ __trans_choice('Flight', $user->flights) }}</h5>
</div>
</div>
</div>
@@ -26,11 +26,10 @@
<i class="far fa-clock icon"></i>
</div>
<h3 class="header">{{ \App\Facades\Utils::minutesToTimeString($user->flight_time, false)}}</h3>
<h5 class="description">total hours</h5>
<h5 class="description">{{ __('Total Hours') }}</h5>
</div>
</div>
</div>
<div class="col-sm-3">
<div class="card card-primary text-white dashboard-box">
<div class="card-block text-center">
@@ -38,7 +37,7 @@
<i class="fas fa-money-bill-alt icon"></i>
</div>
<h3 class="header">{{ $user->journal->balance }}</h3>
<h5 class="description">your balance</h5>
<h5 class="description">{{ __('Your Balance') }}</h5>
</div>
</div>
</div>
@@ -54,28 +53,25 @@
@else
<h3 class="header">{{ $user->home_airport_id }}</h3>
@endif
<h5 class="description">current airport</h5>
<h5 class="description">{{ __('Current Airport') }}</h5>
</div>
</div>
</div>
</div>
@if($last_pirep === null)
<div class="card">
<div class="nav nav-tabs" role="tablist" style="background: #067ec1; color: #FFF;">
Your Last Report
{{ __('Your Last Report') }}
</div>
@if($last_pirep === null)
<div class="card-block" style="text-align:center;">
No reports yet. <a href="{{ route('frontend.pireps.create') }}">File one now.</a>
{{ __('No reports yet.') }} <a href="{{ route('frontend.pireps.create') }}">{{ __('File one now.') }}</a>
</div>
</div>
@else
<div class="nav nav-tabs" role="tablist" style="background: #067ec1; color: #FFF;">
Your Last Report
</div>
@include('pireps.pirep_card', ['pirep' => $last_pirep])
@endif
</div>
{{ Widget::latestNews(['count' => 1]) }}
@@ -85,7 +81,7 @@
<div class="col-sm-4">
<div class="card">
<div class="nav nav-tabs" role="tablist" style="background: #067ec1; color: #FFF;">
Weather at {{ $current_airport }}
{{ __('Weather at :ICAO', ['ICAO' => $current_airport]) }}
</div>
<div class="card-block">
<!-- Tab panes -->
@@ -97,7 +93,7 @@
<div class="card">
<div class="nav nav-tabs" role="tablist" style="background: #067ec1; color: #FFF;">
Recent Reports
{{ __('Recent Reports') }}
</div>
<div class="card-block">
<!-- Tab panes -->
@@ -109,7 +105,7 @@
<div class="card">
<div class="nav nav-tabs" role="tablist" style="background: #067ec1; color: #FFF;">
Newest Pilots
{{ __('Newest Pilots') }}
</div>
<div class="card-block">
<!-- Tab panes -->

View File

@@ -1,15 +1,15 @@
@extends('app')
@section('title', 'downloads')
@section('title', __trans_choice('Download', 2))
@section('content')
@include('flash::message')
<div class="row">
<div class="row-sm-12">
<h2>Downloads</h2>
<h2>{{ __trans_choice('Download', 2) }}</h2>
</div>
</div>
@if(!$grouped_files || \count($grouped_files) === 0)
<div class="jumbotron text-center">There are no downloads!</div>
<div class="jumbotron text-center">{{ __('There are no downloads!') }}</div>
@else
@foreach($grouped_files as $group => $files)
<div class="row" style="margin-bottom: 40px;">

View File

@@ -9,7 +9,7 @@
@if($file->description)
- {{$file->description}}
@endif
<span style="margin-left: 20px">{{$file->download_count}} downloads</span>
<span style="margin-left: 20px">{{ $file->download_count.' '.__trans_choice('Download', $file->download_count) }}</span>
</li>
@endforeach
</ul>

View File

@@ -12,7 +12,7 @@
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-default" data-dismiss="modal">{{ __('Close') }}</button>
</div>
</div>
</div>

View File

@@ -1,11 +1,11 @@
@extends('app')
@section('title', 'flights')
@section('title', __trans_choice('Flight', 2))
@section('content')
<div class="row">
@include('flash::message')
<div class="col-md-9">
<h2>{{ $title ?? 'Flights' }}</h2>
<h2>{{ $title ?? __trans_choice('Flight', 2) }}</h2>
@include('flights.table')
</div>
<div class="col-md-3">

View File

@@ -1,7 +1,7 @@
<div class="card">
<div class="card-block" style="min-height: 0px">
<div class="form-group text-right">
<a href="{{ route('frontend.flights.bids') }}">My Bids</a>
<a href="{{ route('frontend.flights.bids') }}">{{ __trans_choice('My Bid', 2) }}</a>
</div>
</div>
</div>

View File

@@ -1,4 +1,4 @@
<h3 class="description">search</h3>
<h3 class="description">{{ __('Search') }}</h3>
<div class="card pull-right">
<div class="card-block" style="min-height: 0px">
<div class="form-group">
@@ -8,23 +8,23 @@
'class'=>'form-inline'
]) }}
<div>
<p>Flight Number</p>
<p>{{ __('Flight Number') }}</p>
{{ Form::text('flight_number', null, ['class' => 'form-control']) }}
</div>
<div style="margin-top: 10px;">
<p>Departure Airport</p>
<p>{{ __('Departure Airport') }}</p>
{{ Form::select('dep_icao', $airports, null , ['class' => 'form-control']) }}
</div>
<div style="margin-top: 10px;">
<p>Arrival Airport</p>
<p>{{ __('Arrival Airport') }}</p>
{{ Form::select('arr_icao', $airports, null , ['class' => 'form-control']) }}
</div>
<div class="clear" style="margin-top: 10px;">
{{ Form::submit('find', ['class' => 'btn btn-primary']) }}&nbsp;
<a href="{{ route('frontend.flights.index') }}">clear</a>
{{ Form::submit(__('Find'), ['class' => 'btn btn-primary']) }}&nbsp;
<a href="{{ route('frontend.flights.index') }}">{{ __('Reset') }}</a>
</div>
{{ Form::close() }}
</div>

View File

@@ -1,5 +1,5 @@
@extends('app')
@section('title', 'Flight '.$flight->ident)
@section('title', __trans_choice('Flight', 1).' '.$flight->ident)
@section('content')
<div class="row">
@@ -13,7 +13,7 @@
<div class="col-12">
<table class="table">
<tr>
<td>Departure</td>
<td>{{ __('Departure') }}</td>
<td>
{{ $flight->dpt_airport->name }}
(<a href="{{route('frontend.airports.show', [
@@ -24,7 +24,7 @@
</tr>
<tr>
<td>Arrival</td>
<td>{{ __('Arrival') }}</td>
<td>
{{ $flight->arr_airport->name }}
(<a href="{{route('frontend.airports.show', [
@@ -34,7 +34,7 @@
</tr>
@if($flight->alt_airport_id)
<tr>
<td>Alternate Airport</td>
<td>{{ __('Alternate Airport') }}</td>
<td>
{{ $flight->alt_airport->full_name }}
</td>
@@ -42,13 +42,13 @@
@endif
<tr>
<td>Route</td>
<td>{{ __('Route') }}</td>
<td>{{ $flight->route }}</td>
</tr>
@if(filled($flight->notes))
<tr>
<td>Notes</td>
<td>{{ __('Notes') }}</td>
<td>{{ $flight->notes }}</td>
</tr>
@endif

View File

@@ -24,7 +24,7 @@
x-id="{{ $flight->id }}"
x-saved-class="btn-info"
type="button"
title="Add/Remove Bid"
title="{{ __('Add/Remove Bid') }}"
>
<i class="fas fa-map-marker"></i>
</button>
@@ -34,14 +34,14 @@
<div class="row">
<div class="col-sm-5">
{{--<table class="table-condensed"></table>--}}
<span class="title">DEP&nbsp;</span>
<span class="title">{{ __('DEP') }}&nbsp;</span>
{{ $flight->dpt_airport->name }}
(<a href="{{route('frontend.airports.show', [
'id' => $flight->dpt_airport->icao
])}}">{{$flight->dpt_airport->icao}}</a>)
@if($flight->dpt_time), {{ $flight->dpt_time }}@endif
<br />
<span class="title">ARR&nbsp;</span>
<span class="title">{{ __('ARR') }}&nbsp;</span>
{{ $flight->arr_airport->name }}
(<a href="{{route('frontend.airports.show', [
'id' => $flight->arr_airport->icao
@@ -49,19 +49,19 @@
@if($flight->arr_time), {{ $flight->arr_time }}@endif
<br />
@if($flight->distance)
<span class="title">DISTANCE&nbsp;</span>
<span class="title">{{ __('DISTANCE') }}&nbsp;</span>
{{ $flight->distance }} {{ setting('units.distance') }}
@endif
<br />
@if($flight->level)
<span class="title">LEVEL&nbsp;</span>
<span class="title">{{ __('LEVEL') }}&nbsp;</span>
{{ $flight->level }} {{ setting('units.altitude') }}
@endif
</div>
<div class="col-sm-7">
<div class="row">
<div class="col-sm-12">
<span class="title">ROUTE&nbsp;</span>
<span class="title">{{ __('ROUTE') }}&nbsp;</span>
{{ $flight->route }}
</div>
</div>

View File

@@ -1,5 +1,5 @@
@extends('app')
@section('title', 'welcome!')
@section('title', __('Welcome!'))
@section('content')
<div class="row">
@@ -8,10 +8,14 @@
</div>
<div class="row">
<div class="col-sm-12">
<h2 class="description">newest pilots</h2>
<center><h1 class="description">{{ __('Welcome Message') }}</h1></center>
</div>
@foreach($users as $user)
<div class="col-sm-9">
<img src="{{ public_asset('/assets/img/Airplane.jpg') }}" style=""/>
</div>
<div class="col-sm-3 ">
<h2 class="description">{{ __('Newest Pilots') }}</h2>
@foreach($users as $user)
<div class="card card-signup blue-bg">
{{--<div class="card-bg">--}}
{{--<i class="fa fa-user-o" style="opacity: .1;"></i>--}}
@@ -21,8 +25,12 @@
<a href="{{ route('frontend.profile.show', ['id' => $user->id]) }}" class="text-white">{{ $user->name }}</a>
</h3>
<div class="photo-container">
@if ($user->avatar == null)
<img class="rounded-circle"
src="{{ $user->gravatar(123) }}">
@else
<img src="{{ $user->avatar->url }}" style="width: 123px;">
@endif
</div>
</div>
<div class="content content-center">
@@ -35,10 +43,10 @@
</div>
</div>
<div class="footer text-center">
<a href="{{ route('frontend.profile.show', ['id' => $user->id]) }}" class="btn btn-neutral btn-sm">Profile</a>
<a href="{{ route('frontend.profile.show', ['id' => $user->id]) }}" class="btn btn-neutral btn-sm">{{ __('Profile') }}</a>
</div>
</div>
@endforeach
</div>
@endforeach
</div>
@endsection

View File

@@ -3,7 +3,7 @@
<li class="nav-item">
<a class="nav-link" href="{{ route('frontend.dashboard.index') }}">
<i class="fas fa-tachometer-alt"></i>
<p>Dashboard</p>
<p>{{ __('Dashboard') }}</p>
</a>
</li>
@endif
@@ -11,14 +11,14 @@
<li class="nav-item">
<a class="nav-link" href="{{ route('frontend.livemap.index') }}">
<i class="fas fa-globe"></i>
<p>Live Map</p>
<p>{{ __('Live Map') }}</p>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{{ route('frontend.pilots.index') }}">
<i class="fas fa-users"></i>
<p>Pilots</p>
<p>{{ __trans_choice('Pilot', 2) }}</p>
</a>
</li>
@@ -27,7 +27,7 @@
<li class="nav-item">
<a class="nav-link" href="{{ url($link['url']) }}">
<i class="{{ $link['icon'] }}"></i>
<p>{{ $link['title'] }}</p>
<p>{{ __($link['title']) }}</p>
</a>
</li>
@endforeach
@@ -36,13 +36,13 @@
<li class="nav-item">
<a class="nav-link" href="{{ url('/login') }}">
<i class="fas fa-sign-in-alt"></i>
<p>Login</p>
<p>{{ __('Login') }}</p>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{{ url('/register') }}">
<i class="far fa-id-card"></i>
<p>Register</p>
<p>{{ __('Register') }}</p>
</a>
</li>
@@ -51,25 +51,25 @@
<li class="nav-item">
<a class="nav-link" href="{{ route('frontend.flights.index') }}">
<i class="fab fa-avianex"></i>
<p>Flights</p>
<p>{{ __trans_choice('Flight', 2) }}</p>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{{ route('frontend.pireps.index') }}">
<i class="fas fa-cloud-upload-alt"></i>
<p>PIREPs</p>
<p>{{ __trans_choice('PIREP', 2) }}</p>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{{ route('frontend.profile.index') }}">
<i class="far fa-user"></i>
<p>Profile</p>
<p>{{ __('Profile') }}</p>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{{ route('frontend.downloads.index') }}">
<i class="fas fa-download"></i>
<p>Downloads</p>
<p>{{ __trans_choice('Download', 2) }}</p>
</a>
</li>
@@ -77,7 +77,7 @@
<li class="nav-item">
<a class="nav-link" href="{{ url('/admin') }}">
<i class="fas fa-circle-notch"></i>
<p>Admin</p>
<p>{{ __('Administration') }}</p>
</a>
</li>
@endrole
@@ -87,7 +87,7 @@
<li class="nav-item">
<a class="nav-link" href="{{ url($link['url']) }}">
<i class="{{ $link['icon'] }}"></i>
<p>{{ $link['title'] }}</p>
<p>{{ __($link['title']) }}</p>
</a>
</li>
@endforeach
@@ -95,7 +95,7 @@
<li class="nav-item">
<a class="nav-link" href="{{ url('/logout') }}">
<i class="fas fa-sign-out-alt"></i>
<p>Log Out</p>
<p>{{ __('Log Out') }}</p>
</a>
</li>
@endif

View File

@@ -1,10 +1,10 @@
@extends('app')
@section('title', 'File Flight Report')
@section('title', __('File Flight Report'))
@section('content')
<div class="row">
<div class="col-md-12">
<h2>New Flight Report</h2>
<h2>{{ __('New Flight Report') }}</h2>
@include('flash::message')
{{ Form::open(['route' => 'frontend.pireps.store']) }}

View File

@@ -1,9 +1,9 @@
@extends('app')
@section('title', 'Edit Flight Report')
@section('title', __('Edit Flight Report'))
@section('content')
<div class="row">
<div class="col-md-12">
<h2>Edit Flight Report</h2>
<h2>{{ __('Edit Flight Report') }}</h2>
@include('flash::message')
{{ Form::model($pirep, [
'route' => ['frontend.pireps.update', $pirep->id],

View File

@@ -1,7 +1,7 @@
@if($aircraft)
<div class="form-container">
<h6><i class="fas fa-ellipsis-h"></i>
&nbsp;Fares
&nbsp;{{ __('Fare', 2) }}
</h6>
<div class="form-container-body">
@foreach($aircraft->subfleet->fares as $fare)

View File

@@ -12,7 +12,7 @@ flight reports that have been filed. You've been warned!
<div class="row">
<div class="col-sm-12">
@component('components.info')
Once a PIREP has been accepted/rejected, certain fields go into read-only mode.
{{ __('Once a PIREP has been accepted/rejected, certain fields go into read-only mode.') }}
@endcomponent
</div>
</div>
@@ -21,12 +21,12 @@ flight reports that have been filed. You've been warned!
<div class="col-8">
<div class="form-container">
<h6><i class="fas fa-info-circle"></i>
&nbsp;Flight Information
&nbsp;{{ __('Flight Informations') }}
</h6>
<div class="form-container-body">
<div class="row">
<div class="col-sm-4">
{{ Form::label('airline_id', 'Airline') }}
{{ Form::label('airline_id', __('Airline')) }}
@if(!empty($pirep) && $pirep->read_only)
<p>{{ $pirep->airline->name }}</p>
{{ Form::hidden('airline_id') }}
@@ -42,7 +42,7 @@ flight reports that have been filed. You've been warned!
@endif
</div>
<div class="col-sm-4">
{{ Form::label('flight_number', 'Flight Number/Code/Leg') }}
{{ Form::label('flight_number', __('Flight Number/Code/Leg')) }}
@if(!empty($pirep) && $pirep->read_only)
<p>{{ $pirep->ident }}
{{ Form::hidden('flight_number') }}
@@ -52,19 +52,19 @@ flight reports that have been filed. You've been warned!
@else
<div class="input-group input-group-sm mb3">
{{ Form::text('flight_number', null, [
'placeholder' => 'Flight Number',
'placeholder' => __('Flight Number'),
'class' => 'form-control',
'readonly' => (!empty($pirep) && $pirep->read_only),
]) }}
&nbsp;
{{ Form::text('route_code', null, [
'placeholder' => 'Code (optional)',
'placeholder' => __('Code (optional)'),
'class' => 'form-control',
'readonly' => (!empty($pirep) && $pirep->read_only),
]) }}
&nbsp;
{{ Form::text('route_leg', null, [
'placeholder' => 'Leg (optional)',
'placeholder' => __('Leg (optional)'),
'class' => 'form-control',
'readonly' => (!empty($pirep) && $pirep->read_only),
]) }}
@@ -75,7 +75,7 @@ flight reports that have been filed. You've been warned!
@endif
</div>
<div class="col-lg-4">
{{ Form::label('flight_type', 'Flight Type') }}
{{ Form::label('flight_type', __('Flight Type')) }}
@if(!empty($pirep) && $pirep->read_only)
<p>{{ \App\Models\Enums\FlightType::label($pirep->flight_type) }}</p>
{{ Form::hidden('flight_type') }}
@@ -96,10 +96,10 @@ flight reports that have been filed. You've been warned!
<div class="row">
<div class="col-3">
{{ Form::label('hours', 'Flight Time') }}
{{ Form::label('hours', __('Flight Time')) }}
@if(!empty($pirep) && $pirep->read_only)
<p>
{{ $pirep->hours }} hours, {{ $pirep->minutes }} minutes
{{ $pirep->hours.' '.__trans_choice('Hour', $pirep->hours) }}, {{ $pirep->minutes.' '.__trans_choice('Minute', $pirep->minutes) }}
{{ Form::hidden('hours') }}
{{ Form::hidden('minutes') }}
</p>
@@ -107,14 +107,14 @@ flight reports that have been filed. You've been warned!
<div class="input-group input-group-sm" style="max-width: 200px;">
{{ Form::number('hours', null, [
'class' => 'form-control',
'placeholder' => 'hours',
'placeholder' => __trans_choice('Hour', 2),
'min' => '0',
'readonly' => (!empty($pirep) && $pirep->read_only),
]) }}
{{ Form::number('minutes', null, [
'class' => 'form-control',
'placeholder' => 'minutes',
'placeholder' => __trans_choice('Minute', 2),
'min' => 0,
'readonly' => (!empty($pirep) && $pirep->read_only),
]) }}
@@ -126,27 +126,27 @@ flight reports that have been filed. You've been warned!
<div class="col-3">
{{--{{ Form::label('submitted_date', 'Date Flown') }}
{{--{{ Form::label('submitted_date', __('Date Flown')) }}
{{ Form::text('submmitted_date', null, [
'placeholder' => 'Departure TIme',
'placeholder' => __('Departure Date'),
'class' => 'form-control',
'readonly' => $pirep->read_only]) }}--}}
</div>
<div class="col-3">
{{--{{ Form::label('departure_time', 'Departure Time') }}
{{--{{ Form::label('departure_time', __('Departure Time')) }}
{{ Form::text('departure_time', null, [
'placeholder' => 'Departure TIme',
'placeholder' => __('Departure TIme'),
'class' => 'form-control',
'readonly' => $pirep->read_only]) }}--}}
</div>
<div class="col-3">
{{--{{ Form::label('arrival_time', 'Arrival Time') }}
{{--{{ Form::label('arrival_time', __('Arrival Time')) }}
{{ Form::text('arrival_time', null, [
'placeholder' => 'Arrival TIme',
'placeholder' => __('Arrival TIme'),
'class' => 'form-control',
'readonly' => $pirep->read_only]) }}--}}
</div>
@@ -158,12 +158,12 @@ flight reports that have been filed. You've been warned!
<div class="form-container">
<h6><i class="fas fa-globe"></i>
&nbsp;Arrival/Departure Information
&nbsp;{{ __('Departure/Arrival Informations') }}
</h6>
<div class="form-container-body">
<div class="row">
<div class="col-6">
{{ Form::label('dpt_airport_id', 'Departure Airport') }}
{{ Form::label('dpt_airport_id', __('Departure Airport')) }}
@if(!empty($pirep) && $pirep->read_only)
{{ $pirep->dpt_airport->name }}
(<a href="{{route('frontend.airports.show', [
@@ -183,7 +183,7 @@ flight reports that have been filed. You've been warned!
</div>
<div class="col-6">
{{ Form::label('arr_airport_id', 'Arrival Airport') }}
{{ Form::label('arr_airport_id', __('Arrival Airport')) }}
@if(!empty($pirep) && $pirep->read_only)
{{ $pirep->arr_airport->name }}
(<a href="{{route('frontend.airports.show', [
@@ -207,12 +207,12 @@ flight reports that have been filed. You've been warned!
<div class="form-container">
<h6><i class="fab fa-avianex"></i>
&nbsp;Aircraft Information
&nbsp;{{ __('Aircraft Informations') }}
</h6>
<div class="form-container-body">
<div class="row">
<div class="col">
{{ Form::label('aircraft_id', 'Aircraft') }}
{{ Form::label('aircraft_id', __('Aircraft')) }}
@if(!empty($pirep) && $pirep->read_only)
<p>{{ $pirep->aircraft->name }}</p>
{{ Form::hidden('aircraft_id') }}
@@ -234,13 +234,13 @@ flight reports that have been filed. You've been warned!
<div class="form-container">
<h6><i class="far fa-comments"></i>
&nbsp;Route
&nbsp;{{ __('Route') }}
</h6>
<div class="form-container-body">
<div class="row">
<div class="col">
<div class="input-group input-group-sm form-group">
{{ Form::textarea('route', null, ['class' => 'form-control', 'placeholder' => 'Route']) }}
{{ Form::textarea('route', null, ['class' => 'form-control', 'placeholder' => __('Route')]) }}
<p class="text-danger">{{ $errors->first('route') }}</p>
</div>
</div>
@@ -250,13 +250,13 @@ flight reports that have been filed. You've been warned!
<div class="form-container">
<h6><i class="far fa-comments"></i>
&nbsp;Remarks
&nbsp;{{ __('Remarks') }}
</h6>
<div class="form-container-body">
<div class="row">
<div class="col">
<div class="input-group input-group-sm form-group">
{{ Form::textarea('notes', null, ['class' => 'form-control', 'placeholder' => 'Notes']) }}
{{ Form::textarea('notes', null, ['class' => 'form-control', 'placeholder' => __('Notes')]) }}
<p class="text-danger">{{ $errors->first('notes') }}</p>
</div>
</div>
@@ -269,7 +269,7 @@ flight reports that have been filed. You've been warned!
<div class="form-container">
<h6><i class="fab fa-wpforms"></i>
&nbsp;Fields
&nbsp;{{ __trans_choice('Field', 2) }}
</h6>
<div class="form-container-body">
@@ -310,25 +310,25 @@ flight reports that have been filed. You've been warned!
<div class="form-group">
@if(isset($pirep) && !$pirep->read_only)
{{ Form::button('Delete PIREP', [
{{ Form::button(__('Delete PIREP'), [
'name' => 'submit',
'value' => 'cancel',
'value' => 'Delete',
'class' => 'btn btn-warning',
'type' => 'submit'])
}}
@endif
@if(!isset($pirep) || (filled($pirep) && !$pirep->read_only))
{{ Form::button('Save PIREP', [
{{ Form::button(__('Save PIREP'), [
'name' => 'submit',
'value' => 'save',
'value' => 'Save',
'class' => 'btn btn-info',
'type' => 'submit'])
}}
{{ Form::button('Submit PIREP', [
{{ Form::button(__('Submit PIREP'), [
'name' => 'submit',
'value' => 'submit',
'value' => 'Submit',
'class' => 'btn btn-success',
'type' => 'submit'])
}}

View File

@@ -1,5 +1,5 @@
@extends('app')
@section('title', 'pireps')
@section('title', __trans_choice('PIREP', 2))
@section('content')
<div class="row">
@@ -7,9 +7,9 @@
<div style="float:right;">
<a class="btn btn-info pull-right btn-lg"
style="margin-top: -10px;margin-bottom: 5px"
href="{{ route('frontend.pireps.create') }}">File New PIREP</a>
href="{{ route('frontend.pireps.create') }}">{{ __('File New PIREP') }}</a>
</div>
<h2>Pilot Reports</h2>
<h2>{{ __trans_choice('Pilot Report', 2) }}</h2>
@include('flash::message')
@include('pireps.table')
</div>

View File

@@ -5,7 +5,7 @@
<p class="float-right">
<a href="{{ route('frontend.pireps.edit', [
'id' => $pirep->id,
]) }}" class="btn btn-sm btn-info">edit</a>
]) }}" class="btn btn-sm btn-info">{{ __('Edit') }}</a>
</p>
<h5>
<a href="{{ route('frontend.pireps.show', [$pirep->id]) }}">
@@ -41,22 +41,22 @@
<div class="col-sm-6">
<table class="table-condensed" width="100%">
<tr>
<td nowrap><span class="title">Flight Time&nbsp;</span></td>
<td nowrap><span class="title">{{ __('Flight Time') }}&nbsp;</span></td>
<td>{{ Utils::minutesToTimeString($pirep->flight_time) }}</td>
</tr>
<tr>
<td nowrap><span class="title">Aircraft&nbsp;</span></td>
<td nowrap><span class="title">{{ __('Aircraft') }}&nbsp;</span></td>
<td>{{ $pirep->aircraft->name }}
({{ $pirep->aircraft->registration }})</td>
</tr>
@if($pirep->level)
<tr>
<td nowrap><span class="title">Flight Level&nbsp;</span></td>
<td nowrap><span class="title">{{ __('Flight Level') }}&nbsp;</span></td>
<td>{{ $pirep->level }}</td>
</tr>
@endif
<tr>
<td nowrap><span class="title">Filed On:&nbsp;</span></td>
<td nowrap><span class="title">{{ __('Filed On') }}:&nbsp;</span></td>
<td>{{ show_datetime($pirep->created_at) }}</td>
</tr>
</table>

View File

@@ -1,5 +1,5 @@
@extends('app')
@section('title', 'PIREP '.$pirep->ident)
@section('title', __trans_choice('PIREP', 1).' '.$pirep->ident)
@section('content')
<div class="row">
@@ -12,7 +12,7 @@
@if($pirep->state === PirepState::IN_PROGRESS)
@else
Arrived {{$pirep->created_at->diffForHumans()}}
__('Arrived') {{$pirep->created_at->diffForHumans()}}
@endif
</p>
</p>
@@ -89,20 +89,20 @@
action="{{ route('frontend.pireps.edit', ['id' => $pirep->id]) }}"
style="display: inline">
@csrf
<button class="btn btn-info">Edit</button>
<button class="btn btn-info">{{ __('Edit') }}</button>
</form>
&nbsp;
<form method="post"
action="{{ route('frontend.pireps.submit', ['id' => $pirep->id]) }}"
style="display: inline">
@csrf
<button class="btn btn-success">Submit</button>
<button class="btn btn-success">{{ __('Submit') }}</button>
</form>
</div>
@endif
<table class="table table-striped">
<tr>
<td width="30%">State</td>
<td width="30%">{{ __('Status') }}</td>
<td>
<div class="badge badge-info">
{{ PirepStatus::label($pirep->status) }}
@@ -111,31 +111,31 @@
</tr>
<tr>
<td>Source</td>
<td>{{ __('Source') }}</td>
<td>{{ PirepSource::label($pirep->source) }}</td>
</tr>
<tr>
<td>Flight Type</td>
<td>{{ __('Flight Type') }}</td>
<td>{{ \App\Models\Enums\FlightType::label($pirep->flight_type) }}</td>
</tr>
<tr>
<td>Filed Route</td>
<td>{{ __('Filed Route') }}</td>
<td>
{{ $pirep->route }}
</td>
</tr>
<tr>
<td>Notes</td>
<td>{{ __('Notes') }}</td>
<td>
{{ $pirep->notes }}
</td>
</tr>
<tr>
<td>Filed On</td>
<td>{{ __('Filed On') }}</td>
<td>
{{ show_datetime($pirep->created_at) }}
</td>
@@ -148,11 +148,11 @@
@endif
@if(count($pirep->fields) > 0)
<h5>fields</h5>
<h5>{{ __trans_choice('Field', 2) }}</h5>
<table class="table table-hover table-condensed">
<thead>
<th>Name</th>
<th>Value</th>
<th>{{ __('Name') }}</th>
<th>{{ __('Value') }}</th>
</thead>
<tbody>
@foreach($pirep->fields as $field)
@@ -175,11 +175,11 @@
@if(count($pirep->fares) > 0)
<div class="row">
<div class="col-12">
<h5>fares</h5>
<h5>{{ __trans_choice('Fare', 2) }}</h5>
<table class="table table-hover table-condensed">
<thead>
<th>Class</th>
<th>Count</th>
<th>{{ __('Class') }}</th>
<th>{{ __('Count') }}</th>
</thead>
<tbody>
@foreach($pirep->fares as $fare)
@@ -200,7 +200,7 @@
<div class="separator"></div>
<div class="row">
<div class="col-12">
<h5>flight log</h5>
<h5>{{ __('Flight Log') }}</h5>
</div>
<div class="col-12">
<table class="table table-hover table-condensed" id="users-table">

View File

@@ -3,13 +3,13 @@
<table class="table table-condensed table-hover">
<thead>
<tr>
<th>Flight</th>
<th>Departure</th>
<th>Arrival</th>
<th>Aircraft</th>
<th class="text-center">Flight Time</th>
<th class="text-center">Status</th>
<th>Submitted</th>
<th>{{ __trans_choice('Flight', 1) }}</th>
<th>{{ __('Departure') }}</th>
<th>{{ __('Arrival') }}</th>
<th>{{ __('Aircraft') }}</th>
<th class="text-center">{{ __('Flight Time') }}</th>
<th class="text-center">{{ __('Status') }}</th>
<th>{{ __('Submitted') }}</th>
<th></th>
</tr>
</thead>
@@ -58,7 +58,7 @@
@if(!$pirep->read_only)
<a href="{{ route('frontend.pireps.edit', [
'id' => $pirep->id,
]) }}">edit</a>
]) }}">{{ __('Edit') }}</a>
@endif
</td>
</tr>

View File

@@ -1,10 +1,10 @@
@extends('app')
@section('title', 'edit profile')
@section('title', __('Edit Profile'))
@section('content')
<div class="row">
<div class="col-md-12">
<h2 class="description">edit your profile</h2>
<h2 class="description">{{ __('Edit Your Profile') }}</h2>
@include('flash::message')
{{ Form::model($user, ['route' => ['frontend.profile.update', $user->id], 'files' => true, 'method' => 'patch']) }}
@include("profile.fields")

View File

@@ -2,7 +2,7 @@
<div class="col-md-12">
<table class="table">
<tr>
<td>Name</td>
<td>{{ __('Name') }}</td>
<td>
<div class="input-group form-group-no-border{{ $errors->has('name') ? ' has-danger' : '' }}">
{{ Form::text('name', null, ['class' => 'form-control']) }}
@@ -14,7 +14,7 @@
</tr>
<tr>
<td>Email</td>
<td>{{ __('Email') }}</td>
<td>
<div class="input-group form-group-no-border{{ $errors->has('email') ? ' has-danger' : '' }}">
{{ Form::text('email', null, ['class' => 'form-control']) }}
@@ -26,7 +26,7 @@
</tr>
<tr>
<td>Airline</td>
<td>{{ __('Airline') }}</td>
<td>
<div class="input-group form-group-no-border{{ $errors->has('airline') ? ' has-danger' : '' }}">
{{ Form::select('airline_id', $airlines, null , ['class' => 'form-control select2']) }}
@@ -38,7 +38,7 @@
</tr>
<tr>
<td>Home Airport</td>
<td>{{ __('Home Airport') }}</td>
<td>
<div class="input-group form-group-no-border{{ $errors->has('home_airport_id') ? ' has-danger' : '' }}">
{{ Form::select('home_airport_id', $airports, null , ['class' => 'form-control select2']) }}
@@ -50,7 +50,7 @@
</tr>
<tr>
<td>Country</td>
<td>{{ __('Country') }}</td>
<td>
<div class="input-group form-group-no-border{{ $errors->has('country') ? ' has-danger' : '' }}">
{{ Form::select('country', $countries, null, ['class' => 'form-control select2' ]) }}
@@ -62,7 +62,7 @@
</tr>
<tr>
<td>Timezone</td>
<td>{{ __('Timezone') }}</td>
<td>
<div class="input-group form-group-no-border{{ $errors->has('timezone') ? ' has-danger' : '' }}">
{{ Form::select('timezone', $timezones, null, ['class' => 'form-control select2' ]) }}
@@ -74,7 +74,7 @@
</tr>
<tr>
<td>Change Password</td>
<td>{{ __('Change Password') }}</td>
<td>
<div class="input-group form-group-no-border{{ $errors->has('password') ? ' has-danger' : '' }}">
{{ Form::password('password', ['class' => 'form-control']) }}
@@ -83,7 +83,7 @@
<p class="text-danger">{{ $errors->first('password') }}</p>
@endif
<p>Confirm Password:</p>
<p>{{ __('Confirm Password') }}:</p>
<div class="input-group form-group-no-border{{ $errors->has('password_confirmation') ? ' has-danger' : '' }}">
{{ Form::password('password_confirmation', ['class' => 'form-control']) }}
</div>
@@ -92,7 +92,7 @@
@endif
</td>
</tr>
<td>Avatar</td>
<td>{{ __('Avatar') }}</td>
<td>
<div class="input-group form-group-no-border{{ $errors->has('avatar') ? ' has-danger' : '' }}">
{{ Form::file('avatar', null) }}
@@ -106,7 +106,7 @@
</table>
<div style="width: 100%; text-align: right; padding-top: 20px;">
{{ Form::submit('Update Profile', ['class' => 'btn btn-primary']) }}
{{ Form::submit(__('Update Profile'), ['class' => 'btn btn-primary']) }}
</div>
</div>
</div>

View File

@@ -1,5 +1,5 @@
@extends('app')
@section('title', 'profile')
@section('title', __('Profile'))
@section('content')
<div class="row profile-page content-center text-color-dark-beige">
@@ -23,25 +23,25 @@
<div class="content">
<div class="social-description">
<h2>{{ $user->flights}}</h2>
<p>Flights</p>
<p>{{ __trans_choice('Flight', $user->flights) }}</p>
</div>
<div class="social-description">
<h2>{{ \App\Facades\Utils::minutesToTimeString($user->flight_time, false) }}</h2>
<p>Flight Hours</p>
<p>{{ __('Flight Hours') }}</p>
</div>
@if($user->home_airport)
<div class="social-description">
<h2>{{ $user->home_airport->icao }}</h2>
<p>Home Airport</p>
<p>{{ __('Home Airport') }}</p>
</div>
@endif
@if($user->current_airport)
<div class="social-description">
<h2>{{ $user->current_airport->icao }}</h2>
<p>Current Airport</p>
<p>{{ __('Current Airport') }}</p>
</div>
@endif
@@ -58,24 +58,24 @@
<div class="col-sm-12">
<div class="text-right">
<a href="{{ route('frontend.profile.regen_apikey') }}" class="btn btn-warning"
onclick="return confirm('Are you sure? This will reset your API key.')">new api key</a>
onclick="return confirm({{ __('Are you sure? This will reset your API key.') }})">{{ __('New API Key') }}</a>
&nbsp;
<a href="{{ route('frontend.profile.edit', ['id' => $user->id]) }}"
class="btn btn-primary">edit</a>
class="btn btn-primary">{{ __('Edit') }}</a>
</div>
<h3 class="description">your profile</h3>
<h3 class="description">{{ __('Your Profile') }}</h3>
<table class="table table-full-width">
<tr>
<td>Email</td>
<td>{{ __('Email') }}</td>
<td>{{ $user->email }}</td>
</tr>
<tr>
<td>API Key&nbsp;&nbsp;<span class="description">don't share this!</span></td>
<td>{{ __('API Key') }}&nbsp;&nbsp;<span class="description">({{ __('don\'t share this!') }})</span></td>
<td>{{ $user->api_key }}</td>
</tr>
<tr>
<td>Timezone</td>
<td>{{ __('Timezone') }}</td>
<td>{{ $user->timezone }}</td>
</tr>
</table>

View File

@@ -1,10 +1,10 @@
@extends('app')
@section('title', 'Pilots')
@section('title', __trans_choice('Pilot', 2))
@section('content')
<div class="row">
<div class="col-md-12">
<h2>Pilots</h2>
<h2>{{ __trans_choice('Pilot', 2) }}</h2>
@include('users.table')
</div>
</div>

View File

@@ -1,20 +1,24 @@
<table class="table table-hover" id="users-table">
<thead>
<th></th>
<th>Name</th>
<th>{{ __('Name') }}</th>
<th style="text-align: center"></th>
<th style="text-align: center">Airline</th>
<th style="text-align: center">Location</th>
<th style="text-align: center">Flights</th>
<th style="text-align: center">Hours</th>
<th style="text-align: center">{{ __('Airline') }}</th>
<th style="text-align: center">{{ __('Location') }}</th>
<th style="text-align: center">{{ __trans_choice('Flight', 2) }}</th>
<th style="text-align: center">{{ __trans_choice('Hour', 2) }}</th>
</thead>
<tbody>
@foreach($users as $user)
<tr>
<td style="width: 80px;">
<div class="photo-container">
<img class="rounded-circle"
src="{{ $user->gravatar(256) }}&s=256"/>
@if ($user->avatar == null)
<img class="rounded-circle"
src="{{ $user->gravatar(256) }}&s=256"/>
@else
<img src="{{ $user->avatar->url }}">
@endif
</div>
</td>
<td>

View File

@@ -1,11 +1,11 @@
<div class="nav nav-tabs" role="tablist" style="background: #067ec1; color: #FFF;">
News
{{ __('News') }}
</div>
<div class="card border-blue-bottom">
<div class="card-block" style="min-height: 0px">
@if($news->count() === 0)
<div class="text-center text-muted" style="padding: 30px;">
no news items
{{ __('No News Found') }}
</div>
@endif

View File

@@ -37,22 +37,22 @@
</a>
</h3>
<p id="map_flight_info">
{ pirep.dpt_airport.name } ({ pirep.dpt_airport.icao }) to
{ pirep.dpt_airport.name } ({ pirep.dpt_airport.icao }) {{ __('to') }}
{ pirep.arr_airport.name } ({ pirep.arr_airport.icao })
</p>
</div>
<div style="float: right; margin-left: 30px; margin-right: 30px;">
<p id="map_flight_stats_right">
Ground Speed: <span style="font-weight: bold">{ pirep.position.gs }</span><br/>
Altitude: <span style="font-weight: bold">{ pirep.position.altitude }</span><br/>
Heading: <span style="font-weight: bold">{ pirep.position.heading }</span><br/>
{{ __('Ground Speed') }}: <span style="font-weight: bold">{ pirep.position.gs }</span><br/>
{{ __('Altitude') }}: <span style="font-weight: bold">{ pirep.position.altitude }</span><br/>
{{ __('Heading') }}: <span style="font-weight: bold">{ pirep.position.heading }</span><br/>
</p>
</div>
<div style="float: right; margin-left: 30px;">
<p id="map_flight_stats_middle">
Status: <span style="font-weight: bold">{ pirep.status_text }</span><br />
Flight Time: <span style="font-weight: bold">{ pirep.flight_time | time_hm }</span><br />
Distance: <span style="font-weight: bold">{ pirep.position.distance.{{setting('units.distance')}} }</span>
{{ __('Status') }}: <span style="font-weight: bold">{ pirep.status_text }</span><br />
{{ __('Flight Time') }}: <span style="font-weight: bold">{ pirep.flight_time | time_hm }</span><br />
{{ __('Distance') }}: <span style="font-weight: bold">{ pirep.position.distance.{{setting('units.distance')}} }</span>
/ <span style="font-weight: bold">
{ pirep.planned_distance.{{setting('units.distance')}} }</span>
</p>
@@ -74,18 +74,18 @@ and being mindful of the rivets bindings
--}}
<div id="live_flights" class="row">
<div class="col-md-12">
<div rv-hide="has_data" class="jumbotron text-center">There are no flights</div>
<div rv-hide="has_data" class="jumbotron text-center">{{ __('There are no flights.') }}</div>
<table rv-show="has_data" id="live_flights_table" class="table table-striped">
<thead>
<tr class="text-small header">
<td class="text-small">Flight</td>
<td class="text-small">Departure</td>
<td class="text-small">Arrival</td>
<td class="text-small">Aircraft</td>
<td class="text-small">Altitude</td>
<td class="text-small">GS</td>
<td class="text-small">Distance</td>
<td class="text-small">Status</td>
<td class="text-small">{{ __trans_choice('Flight', 1) }}</td>
<td class="text-small">{{ __('Departure') }}</td>
<td class="text-small">{{ __('Arrival') }}</td>
<td class="text-small">{{ __('Aircraft') }}</td>
<td class="text-small">{{ __('Altitude') }}</td>
<td class="text-small">{{ __('GS') }}</td>
<td class="text-small">{{ __('Distance') }}</td>
<td class="text-small">{{ __('Status') }}</td>
</tr>
</thead>
<tbody>

View File

@@ -5,38 +5,38 @@ https://api.checkwx.com/#metar-decoded
--}}
@if(!$metar)
<p>METAR/TAF data could not be retrieved</p>
<p>{{ __('METAR/TAF data could not be retrieved') }}</p>
@else
<table class="table table-striped">
<tr>
<td>Conditions</td>
<td>{{ __('Conditions') }}</td>
<td>
{{ $metar['category'] }}
{{ $metar['temperature'][$unit_temp] }}
°{{strtoupper($unit_temp)}}
@if($metar['visibility'])
, visibility {{ $metar['visibility'][$unit_dist] }} {{$unit_dist}}
, {{ __('visibility') }} {{ $metar['visibility'][$unit_dist] }} {{$unit_dist}}
@endif
@if($metar['humidity'])
, {{ $metar['humidity'] }}% humidity
, {{ $metar['humidity'] }}% {{ __('humidity') }}
@endif
@if($metar['dew_point'])
, dew point
, {{ __('dew point') }}
{{ $metar['dew_point'][$unit_temp] }}
°{{strtoupper($unit_temp)}}
@endif
</td>
</tr>
<tr>
<td>Barometer</td>
<td>{{ __('Barometer') }}</td>
<td>
{{ $metar['barometer'] }} Hg
/ {{ $metar['barometer_in'] * 1000 }} MB
{{ number_format($metar['barometer'], 2) }} hPa
/ {{ number_format($metar['barometer_in'], 2) }} inHg
</td>
</tr>
@if($metar['clouds'])
<tr>
<td>Clouds</td>
<td>{{ __('Clouds') }}</td>
<td>
@if($unit_alt === 'ft')
{{$metar['clouds_report_ft']}}
@@ -47,17 +47,17 @@ https://api.checkwx.com/#metar-decoded
</tr>
@endif
<tr>
<td>Wind</td>
<td>{{ __('Wind') }}</td>
<td>
{{$metar['wind_speed']}} kts from {{$metar['wind_direction_label']}}
{{$metar['wind_speed']}} kts {{ __('from') }} {{$metar['wind_direction_label']}}
({{$metar['wind_direction']}}°)
@if($metar['wind_gust_speed'])
gusts to {{ $metar['wind_gust_speed'] }}
{{ __('gusts to').' '.$metar['wind_gust_speed'] }}
@endif
</td>
</tr>
<tr>
<td>METAR</td>
<td>{{ __('METAR') }}</td>
<td>
<div style="line-height:1.5em;min-height: 3em;">
{{ $metar['raw'] }}
@@ -66,14 +66,14 @@ https://api.checkwx.com/#metar-decoded
</tr>
@if($metar['remarks'])
<tr>
<td>Remarks</td>
<td>{{ __('Remarks') }}</td>
<td>
{{ $metar['remarks'] }}
</td>
</tr>
@endif
<tr>
<td>Updated</td>
<td>{{ __('Updated') }}</td>
<td>{{$metar['observed_time']}} ({{$metar['observed_age']}})</td>
</tr>
</table>