Merge branch 'dev' into downloadThumbnail

This commit is contained in:
Nabeel S 2022-08-23 12:06:43 -04:00 committed by GitHub
commit 3063629449
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
42 changed files with 23951 additions and 11396 deletions

View File

@ -0,0 +1,14 @@
<?php
use App\Contracts\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class() extends Migration {
public function up()
{
Schema::table('airlines', function (Blueprint $table) {
$table->string('callsign')->nullable()->after('name');
});
}
};

View File

@ -48,7 +48,7 @@ class RolesController extends Controller
public function index(Request $request)
{
$this->rolesRepo->pushCriteria(new RequestCriteria($request));
$roles = $this->rolesRepo->findWhere(['read_only' => false]);
$roles = $this->rolesRepo->withCount('users')->findWhere(['read_only' => false]);
return view('admin.roles.index', [
'roles' => $roles,
@ -117,7 +117,7 @@ class RolesController extends Controller
*/
public function edit($id)
{
$role = $this->rolesRepo->findWithoutFail($id);
$role = $this->rolesRepo->withCount('users')->with('users')->findWithoutFail($id);
if (empty($role)) {
Flash::error('Role not found');
@ -126,6 +126,8 @@ class RolesController extends Controller
return view('admin.roles.edit', [
'role' => $role,
'users' => $role->users,
'users_count' => $role->users_count,
'permissions' => $this->permsRepo->all(),
]);
}

View File

@ -16,6 +16,7 @@ use Illuminate\Support\Str;
* @property string icao
* @property string iata
* @property string name
* @property string callsign
* @property string logo
* @property string country
* @property Journal journal
@ -37,6 +38,7 @@ class Airline extends Model
'icao',
'iata',
'name',
'callsign',
'logo',
'country',
'total_flights',
@ -61,11 +63,12 @@ class Airline extends Model
* @var array
*/
public static $rules = [
'country' => 'nullable',
'iata' => 'nullable|max:5',
'icao' => 'required|max:5',
'logo' => 'nullable',
'name' => 'required',
'country' => 'nullable',
'iata' => 'nullable|max:5',
'icao' => 'required|max:5',
'logo' => 'nullable',
'name' => 'required',
'callsign' => 'nullable',
];
/**

View File

@ -23,45 +23,46 @@
"symfony/polyfill-mbstring": "*",
"symfony/polyfill-php80": "*",
"symfony/polyfill-php81": "*",
"symfony/deprecation-contracts": "^v2.5.0",
"symfony/event-dispatcher-contracts": "^2",
"symfony/mailgun-mailer": "^6.0",
"symfony/http-client": "^6.0",
"symfony/yaml": "^6.0",
"symfony/deprecation-contracts": "~v2.5.0",
"symfony/event-dispatcher-contracts": "~2.5.0",
"symfony/mailgun-mailer": "^6.0.0",
"symfony/console": "^6.0.0",
"symfony/http-client": "^6.0.0",
"symfony/yaml": "~6.0.0",
"psr/container": "1.1.1",
"composer/composer": "^2.2.7",
"composer/composer": "~2.3.0",
"composer/installers": "~1.12.0",
"laravel/framework": "~v9.2",
"arrilot/laravel-widgets": "~3.13.0",
"doctrine/dbal": "^3.3.2",
"doctrine/dbal": "~3.3.2",
"guzzlehttp/guzzle": "~7.4.1",
"hashids/hashids": "^4.1.0",
"igaster/laravel-theme": "^2.0",
"intervention/image": "^2.4",
"hashids/hashids": "~4.1.0",
"igaster/laravel-theme": "~2.0.0",
"intervention/image": "~2.4",
"jmikola/geojson": "1.0.*",
"joshbrw/laravel-module-installer": "^2.0",
"laracasts/flash": "^3.2.1",
"laravel/helpers": "^v1.5.0",
"joshbrw/laravel-module-installer": "~2.0.1",
"laracasts/flash": "~3.2.1",
"laravel/helpers": "~v1.5.0",
"laravelcollective/html": "~6.3.0",
"jeremykendall/php-domain-parser": "~5.7.2",
"league/commonmark": "~2.2.2",
"league/csv": "^9.8.0",
"league/geotools": "^1.0.0",
"league/iso3166": "^4.0.0",
"markrogoyski/math-php": "^2.5.0",
"league/csv": "~9.8.0",
"league/geotools": "~1.0.0",
"league/iso3166": "~4.0.0",
"markrogoyski/math-php": "~2.5.0",
"myclabs/deep-copy": "~1.10.0",
"nabeel/vacentral": "~2.1.0",
"nwidart/laravel-modules": "^9.0.0",
"nwidart/laravel-modules": "~9.0.0",
"php-units-of-measure/php-units-of-measure": "~2.1.0",
"phpvms/sample-module": "^1.0",
"phpvms/sample-module": "~1.0",
"prettus/l5-repository": "~2.8.0",
"santigarcor/laratrust": "~7.0.0",
"semver/semver": "~1.1.0",
"spatie/valuestore": "~1.3.1",
"tivie/php-os-detector": "~1.1.0",
"vlucas/phpdotenv": "^5.4.1",
"webpatser/laravel-uuid": "^4.0.1",
"oomphinc/composer-installers-extender": "^2.0",
"vlucas/phpdotenv": "~5.4.1",
"webpatser/laravel-uuid": "~4.0.1",
"oomphinc/composer-installers-extender": "~2.0.0",
"laravel/ui": "^3.4.5",
"madnest/madzipper": "^1.1.0",
"elcobvg/laravel-opcache": "^0.4.1",
@ -69,8 +70,8 @@
"queueworker/sansdaemon": "^1.2.4",
"jpkleemans/attribute-events": "^1.3.0",
"akaunting/laravel-money": "^2.0.1",
"staudenmeir/belongs-to-through": "^v2.12",
"staudenmeir/eloquent-has-many-deep": "1.15",
"staudenmeir/belongs-to-through": "^v2.12.0",
"staudenmeir/eloquent-has-many-deep": "1.15.0",
"spatie/laravel-ignition": "^1.0"
},
"require-dev": {
@ -124,7 +125,8 @@
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
"@php artisan package:discover --ansi",
"@php artisan phpvms:caches"
]
],
"test": "phpunit --verbose"
},
"config": {
"bin-dir": "vendor/bin/",

1399
composer.lock generated

File diff suppressed because it is too large Load Diff

17723
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -2,12 +2,12 @@
"private": true,
"scripts": {
"dev": "npm run development",
"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch-poll": "npm run watch -- --watch-poll",
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
"prod": "npm run production",
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --config=node_modules/laravel-mix/setup/webpack.config.js"
},
"dependencies": {
"@turf/center": "^6.0.1",
@ -46,8 +46,8 @@
"select2": "^4.0.13",
"ssri": "^8.0.1",
"tar": ">=4.4.2",
"webpack": "^5.45.1",
"webpack-cli": "^3.3.12",
"webpack": "^5.0.0",
"webpack-cli": "^4.10.0",
"x-editable": "1.5.1"
},
"devDependencies": {
@ -58,11 +58,12 @@
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-jsx-a11y": "^6.2.3",
"eslint-plugin-react": "^7.21.5",
"sass": "^1.32.13",
"sass-loader": "^8.0.2",
"node-gyp": "~9.1.0",
"sass": "^1.54.5",
"sass-loader": "^12.1.0",
"tailwindcss": "^0.5.3",
"vue-template-compiler": "^2.6.12",
"webpack-bundle-analyzer": "^3.9.0",
"webpack-dev-server": "^1.16.5"
"webpack-dev-server": "^4.10.0"
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,21 +1,23 @@
/* @preserve
* Leaflet 1.7.1, a JS library for interactive maps. http://leafletjs.com
* (c) 2010-2019 Vladimir Agafonkin, (c) 2010-2011 CloudMade
* Leaflet 1.8.0, a JS library for interactive maps. https://leafletjs.com
* (c) 2010-2022 Vladimir Agafonkin, (c) 2010-2011 CloudMade
*/
/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0
Copyright (c) Microsoft Corporation.
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
/*! Leaflet.Geodesic 2.5.4 - (c) Henry Thasler - https://github.com/henrythasler/Leaflet.Geodesic */
/*! Leaflet.Geodesic 2.6.1 - (c) Henry Thasler - https://github.com/henrythasler/Leaflet.Geodesic */
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,21 +1,23 @@
/* @preserve
* Leaflet 1.7.1, a JS library for interactive maps. http://leafletjs.com
* (c) 2010-2019 Vladimir Agafonkin, (c) 2010-2011 CloudMade
* Leaflet 1.8.0, a JS library for interactive maps. https://leafletjs.com
* (c) 2010-2022 Vladimir Agafonkin, (c) 2010-2011 CloudMade
*/
/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0
Copyright (c) Microsoft Corporation.
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
/*! Leaflet.Geodesic 2.5.4 - (c) Henry Thasler - https://github.com/henrythasler/Leaflet.Geodesic */
/*! Leaflet.Geodesic 2.6.1 - (c) Henry Thasler - https://github.com/henrythasler/Leaflet.Geodesic */
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1 @@
/*!
* Determine if an object is a Buffer
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1,38 @@
CKEDITOR.editorConfig=function(e){e.toolbarGroups=[{name:"clipboard",groups:["clipboard","undo"]},{name:"editing",groups:["find","selection","spellchecker"]},{name:"links"},{name:"insert"},{name:"forms"},{name:"tools"},{name:"document",groups:["mode","document","doctools"]},{name:"others"},"/",{name:"basicstyles",groups:["basicstyles","cleanup"]},{name:"paragraph",groups:["list","indent","blocks","align","bidi"]},{name:"styles"},{name:"colors"},{name:"about"}],e.removeButtons="Underline,Subscript,Superscript",e.format_tags="p;h1;h2;h3;pre",e.removeDialogTabs="image:advanced;link:advanced"};
/**
* @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see https://ckeditor.com/legal/ckeditor-oss-license
*/
CKEDITOR.editorConfig = function( config ) {
// Define changes to default configuration here.
// For complete reference see:
// https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html
// The toolbar groups arrangement, optimized for two toolbar rows.
config.toolbarGroups = [
{ name: 'clipboard', groups: [ 'clipboard', 'undo' ] },
{ name: 'editing', groups: [ 'find', 'selection', 'spellchecker' ] },
{ name: 'links' },
{ name: 'insert' },
{ name: 'forms' },
{ name: 'tools' },
{ name: 'document', groups: [ 'mode', 'document', 'doctools' ] },
{ name: 'others' },
'/',
{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
{ name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ] },
{ name: 'styles' },
{ name: 'colors' },
{ name: 'about' }
];
// Remove some buttons provided by the standard plugins, which are
// not needed in the Standard(s) toolbar.
config.removeButtons = 'Underline,Subscript,Superscript';
// Set the most common block elements.
config.format_tags = 'p;h1;h2;h3;pre';
// Simplify the dialog windows.
config.removeDialogTabs = 'image:advanced;link:advanced';
};

View File

@ -1 +1,208 @@
body{font-family:sans-serif,Arial,Verdana,"Trebuchet MS","Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:12px;color:#333;background-color:#fff;margin:20px}.cke_editable{font-size:13px;line-height:1.6;word-wrap:break-word}blockquote{font-style:italic;font-family:Georgia,Times,"Times New Roman",serif;padding:2px 0;border-style:solid;border-color:#ccc;border-width:0}.cke_contents_ltr blockquote{padding-left:20px;padding-right:8px;border-left-width:5px}.cke_contents_rtl blockquote{padding-left:8px;padding-right:20px;border-right-width:5px}a{color:#0782c1}dl,ol,ul{padding:0 40px}h1,h2,h3,h4,h5,h6{font-weight:400;line-height:1.2}hr{border:0;border-top:1px solid #ccc}img.right{border:1px solid #ccc;float:right;margin-left:15px;padding:5px}img.left{border:1px solid #ccc;float:left;margin-right:15px;padding:5px}pre{white-space:pre-wrap;word-wrap:break-word;-moz-tab-size:4;tab-size:4}.marker{background-color:#ff0}span[lang]{font-style:italic}figure{text-align:center;outline:solid 1px #ccc;background:rgba(0,0,0,.05);padding:10px;margin:10px 20px;display:inline-block}figure>figcaption{text-align:center;display:block}a>img{padding:1px;margin:1px;border:none;outline:1px solid #0782C1}.code-featured{border:5px solid red}.math-featured{padding:20px;box-shadow:0 0 2px #c80000;background-color:rgba(255,0,0,.05);margin:10px}.image-clean{border:0;background:0 0;padding:0}.image-clean>figcaption{font-size:.9em;text-align:right}.image-grayscale{background-color:#fff;color:#666}.image-grayscale img,img.image-grayscale{filter:grayscale(100%)}.embed-240p{max-width:426px;max-height:240px;margin:0 auto}.embed-360p{max-width:640px;max-height:360px;margin:0 auto}.embed-480p{max-width:854px;max-height:480px;margin:0 auto}.embed-720p{max-width:1280px;max-height:720px;margin:0 auto}.embed-1080p{max-width:1920px;max-height:1080px;margin:0 auto}
/*
Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
*/
body
{
/* Font */
/* Emoji fonts are added to visualise them nicely in Internet Explorer. */
font-family: sans-serif, Arial, Verdana, "Trebuchet MS", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
font-size: 12px;
/* Text color */
color: #333;
/* Remove the background color to make it transparent. */
background-color: #fff;
margin: 20px;
}
.cke_editable
{
font-size: 13px;
line-height: 1.6;
/* Fix for missing scrollbars with RTL texts. (#10488) */
word-wrap: break-word;
}
blockquote
{
font-style: italic;
font-family: Georgia, Times, "Times New Roman", serif;
padding: 2px 0;
border-style: solid;
border-color: #ccc;
border-width: 0;
}
.cke_contents_ltr blockquote
{
padding-left: 20px;
padding-right: 8px;
border-left-width: 5px;
}
.cke_contents_rtl blockquote
{
padding-left: 8px;
padding-right: 20px;
border-right-width: 5px;
}
a
{
color: #0782C1;
}
ol,ul,dl
{
/* IE7: reset rtl list margin. (#7334) */
*margin-right: 0px;
/* Preserved spaces for list items with text direction different than the list. (#6249,#8049)*/
padding: 0 40px;
}
h1,h2,h3,h4,h5,h6
{
font-weight: normal;
line-height: 1.2;
}
hr
{
border: 0px;
border-top: 1px solid #ccc;
}
img.right
{
border: 1px solid #ccc;
float: right;
margin-left: 15px;
padding: 5px;
}
img.left
{
border: 1px solid #ccc;
float: left;
margin-right: 15px;
padding: 5px;
}
pre
{
white-space: pre-wrap; /* CSS 2.1 */
word-wrap: break-word; /* IE7 */
-moz-tab-size: 4;
tab-size: 4;
}
.marker
{
background-color: Yellow;
}
span[lang]
{
font-style: italic;
}
figure
{
text-align: center;
outline: solid 1px #ccc;
background: rgba(0,0,0,0.05);
padding: 10px;
margin: 10px 20px;
display: inline-block;
}
figure > figcaption
{
text-align: center;
display: block; /* For IE8 */
}
a > img {
padding: 1px;
margin: 1px;
border: none;
outline: 1px solid #0782C1;
}
/* Widget Styles */
.code-featured
{
border: 5px solid red;
}
.math-featured
{
padding: 20px;
box-shadow: 0 0 2px rgba(200, 0, 0, 1);
background-color: rgba(255, 0, 0, 0.05);
margin: 10px;
}
.image-clean
{
border: 0;
background: none;
padding: 0;
}
.image-clean > figcaption
{
font-size: .9em;
text-align: right;
}
.image-grayscale
{
background-color: white;
color: #666;
}
.image-grayscale img, img.image-grayscale
{
filter: grayscale(100%);
}
.embed-240p
{
max-width: 426px;
max-height: 240px;
margin:0 auto;
}
.embed-360p
{
max-width: 640px;
max-height: 360px;
margin:0 auto;
}
.embed-480p
{
max-width: 854px;
max-height: 480px;
margin:0 auto;
}
.embed-720p
{
max-width: 1280px;
max-height: 720px;
margin:0 auto;
}
.embed-1080p
{
max-width: 1920px;
max-height: 1080px;
margin:0 auto;
}

View File

@ -1,39 +1,12 @@
{
"_from": "ckeditor4@4.14.0",
"_id": "ckeditor4@4.14.0",
"_inBundle": false,
"_integrity": "sha512-g5p3bhbxbwB094bE7ss0rOyvG/azYdRjLTyngnPM2+fKZhnPrMVaFDx3SiiWKB+zyvndT3Deu54VTv/z2MQJCA==",
"_location": "/ckeditor4",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
"raw": "ckeditor4@4.14.0",
"name": "ckeditor4",
"escapedName": "ckeditor4",
"rawSpec": "4.14.0",
"saveSpec": null,
"fetchSpec": "4.14.0"
},
"_requiredBy": [
"#USER",
"/"
],
"_resolved": "https://registry.npmjs.org/ckeditor4/-/ckeditor4-4.14.0.tgz",
"_shasum": "bfcbe942599fa0c6f488309ecbfe38b2519f919b",
"_spec": "ckeditor4@4.14.0",
"_where": "/Users/a206675592/dev/nabeelio/phpvms",
"author": {
"name": "CKSource",
"url": "https://cksource.com/"
},
"bugs": {
"url": "https://github.com/ckeditor/ckeditor4/issues"
},
"bundleDependencies": false,
"deprecated": false,
"name": "ckeditor4",
"version": "4.14.0",
"description": "JavaScript WYSIWYG web text editor.",
"homepage": "https://ckeditor.com/ckeditor-4/",
"main": "ckeditor.js",
"repository": {
"type": "git",
"url": "git+https://github.com/ckeditor/ckeditor4-releases.git"
},
"keywords": [
"ckeditor4",
"ckeditor",
@ -45,12 +18,10 @@
"text",
"javascript"
],
"author": "CKSource (https://cksource.com/)",
"license": "(GPL-2.0 OR LGPL-2.1 OR MPL-1.1)",
"main": "ckeditor.js",
"name": "ckeditor4",
"repository": {
"type": "git",
"url": "git+https://github.com/ckeditor/ckeditor4-releases.git"
"bugs": {
"url": "https://github.com/ckeditor/ckeditor4/issues"
},
"version": "4.14.0"
"homepage": "https://ckeditor.com/ckeditor-4/"
}

View File

@ -1 +1,137 @@
CKEDITOR.stylesSet.add("default",[{name:"Italic Title",element:"h2",styles:{"font-style":"italic"}},{name:"Subtitle",element:"h3",styles:{color:"#aaa","font-style":"italic"}},{name:"Special Container",element:"div",styles:{padding:"5px 10px",background:"#eee",border:"1px solid #ccc"}},{name:"Marker",element:"span",attributes:{class:"marker"}},{name:"Big",element:"big"},{name:"Small",element:"small"},{name:"Typewriter",element:"tt"},{name:"Computer Code",element:"code"},{name:"Keyboard Phrase",element:"kbd"},{name:"Sample Text",element:"samp"},{name:"Variable",element:"var"},{name:"Deleted Text",element:"del"},{name:"Inserted Text",element:"ins"},{name:"Cited Work",element:"cite"},{name:"Inline Quotation",element:"q"},{name:"Language: RTL",element:"span",attributes:{dir:"rtl"}},{name:"Language: LTR",element:"span",attributes:{dir:"ltr"}},{name:"Styled Image (left)",element:"img",attributes:{class:"left"}},{name:"Styled Image (right)",element:"img",attributes:{class:"right"}},{name:"Compact Table",element:"table",attributes:{cellpadding:"5",cellspacing:"0",border:"1",bordercolor:"#ccc"},styles:{"border-collapse":"collapse"}},{name:"Borderless Table",element:"table",styles:{"border-style":"hidden","background-color":"#E6E6FA"}},{name:"Square Bulleted List",element:"ul",styles:{"list-style-type":"square"}},{name:"Clean Image",type:"widget",widget:"image",attributes:{class:"image-clean"}},{name:"Grayscale Image",type:"widget",widget:"image",attributes:{class:"image-grayscale"}},{name:"Featured Snippet",type:"widget",widget:"codeSnippet",attributes:{class:"code-featured"}},{name:"Featured Formula",type:"widget",widget:"mathjax",attributes:{class:"math-featured"}},{name:"240p",type:"widget",widget:"embedSemantic",attributes:{class:"embed-240p"},group:"size"},{name:"360p",type:"widget",widget:"embedSemantic",attributes:{class:"embed-360p"},group:"size"},{name:"480p",type:"widget",widget:"embedSemantic",attributes:{class:"embed-480p"},group:"size"},{name:"720p",type:"widget",widget:"embedSemantic",attributes:{class:"embed-720p"},group:"size"},{name:"1080p",type:"widget",widget:"embedSemantic",attributes:{class:"embed-1080p"},group:"size"},{name:"240p ",type:"widget",widget:"embed",attributes:{class:"embed-240p"},group:"size"},{name:"360p ",type:"widget",widget:"embed",attributes:{class:"embed-360p"},group:"size"},{name:"480p ",type:"widget",widget:"embed",attributes:{class:"embed-480p"},group:"size"},{name:"720p ",type:"widget",widget:"embed",attributes:{class:"embed-720p"},group:"size"},{name:"1080p ",type:"widget",widget:"embed",attributes:{class:"embed-1080p"},group:"size"}]);
/**
* Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
*/
// This file contains style definitions that can be used by CKEditor plugins.
//
// The most common use for it is the "stylescombo" plugin which shows the Styles drop-down
// list containing all styles in the editor toolbar. Other plugins, like
// the "div" plugin, use a subset of the styles for their features.
//
// If you do not have plugins that depend on this file in your editor build, you can simply
// ignore it. Otherwise it is strongly recommended to customize this file to match your
// website requirements and design properly.
//
// For more information refer to: https://ckeditor.com/docs/ckeditor4/latest/guide/dev_styles.html#style-rules
CKEDITOR.stylesSet.add( 'default', [
/* Block styles */
// These styles are already available in the "Format" drop-down list ("format" plugin),
// so they are not needed here by default. You may enable them to avoid
// placing the "Format" combo in the toolbar, maintaining the same features.
/*
{ name: 'Paragraph', element: 'p' },
{ name: 'Heading 1', element: 'h1' },
{ name: 'Heading 2', element: 'h2' },
{ name: 'Heading 3', element: 'h3' },
{ name: 'Heading 4', element: 'h4' },
{ name: 'Heading 5', element: 'h5' },
{ name: 'Heading 6', element: 'h6' },
{ name: 'Preformatted Text',element: 'pre' },
{ name: 'Address', element: 'address' },
*/
{ name: 'Italic Title', element: 'h2', styles: { 'font-style': 'italic' } },
{ name: 'Subtitle', element: 'h3', styles: { 'color': '#aaa', 'font-style': 'italic' } },
{
name: 'Special Container',
element: 'div',
styles: {
padding: '5px 10px',
background: '#eee',
border: '1px solid #ccc'
}
},
/* Inline styles */
// These are core styles available as toolbar buttons. You may opt enabling
// some of them in the Styles drop-down list, removing them from the toolbar.
// (This requires the "stylescombo" plugin.)
/*
{ name: 'Strong', element: 'strong', overrides: 'b' },
{ name: 'Emphasis', element: 'em' , overrides: 'i' },
{ name: 'Underline', element: 'u' },
{ name: 'Strikethrough', element: 'strike' },
{ name: 'Subscript', element: 'sub' },
{ name: 'Superscript', element: 'sup' },
*/
{ name: 'Marker', element: 'span', attributes: { 'class': 'marker' } },
{ name: 'Big', element: 'big' },
{ name: 'Small', element: 'small' },
{ name: 'Typewriter', element: 'tt' },
{ name: 'Computer Code', element: 'code' },
{ name: 'Keyboard Phrase', element: 'kbd' },
{ name: 'Sample Text', element: 'samp' },
{ name: 'Variable', element: 'var' },
{ name: 'Deleted Text', element: 'del' },
{ name: 'Inserted Text', element: 'ins' },
{ name: 'Cited Work', element: 'cite' },
{ name: 'Inline Quotation', element: 'q' },
{ name: 'Language: RTL', element: 'span', attributes: { 'dir': 'rtl' } },
{ name: 'Language: LTR', element: 'span', attributes: { 'dir': 'ltr' } },
/* Object styles */
{
name: 'Styled Image (left)',
element: 'img',
attributes: { 'class': 'left' }
},
{
name: 'Styled Image (right)',
element: 'img',
attributes: { 'class': 'right' }
},
{
name: 'Compact Table',
element: 'table',
attributes: {
cellpadding: '5',
cellspacing: '0',
border: '1',
bordercolor: '#ccc'
},
styles: {
'border-collapse': 'collapse'
}
},
{ name: 'Borderless Table', element: 'table', styles: { 'border-style': 'hidden', 'background-color': '#E6E6FA' } },
{ name: 'Square Bulleted List', element: 'ul', styles: { 'list-style-type': 'square' } },
/* Widget styles */
{ name: 'Clean Image', type: 'widget', widget: 'image', attributes: { 'class': 'image-clean' } },
{ name: 'Grayscale Image', type: 'widget', widget: 'image', attributes: { 'class': 'image-grayscale' } },
{ name: 'Featured Snippet', type: 'widget', widget: 'codeSnippet', attributes: { 'class': 'code-featured' } },
{ name: 'Featured Formula', type: 'widget', widget: 'mathjax', attributes: { 'class': 'math-featured' } },
{ name: '240p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-240p' }, group: 'size' },
{ name: '360p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-360p' }, group: 'size' },
{ name: '480p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-480p' }, group: 'size' },
{ name: '720p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-720p' }, group: 'size' },
{ name: '1080p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-1080p' }, group: 'size' },
// Adding space after the style name is an intended workaround. For now, there
// is no option to create two styles with the same name for different widget types. See https://dev.ckeditor.com/ticket/16664.
{ name: '240p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-240p' }, group: 'size' },
{ name: '360p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-360p' }, group: 'size' },
{ name: '480p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-480p' }, group: 'size' },
{ name: '720p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-720p' }, group: 'size' },
{ name: '1080p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-1080p' }, group: 'size' }
] );

File diff suppressed because it is too large Load Diff

View File

@ -33,6 +33,7 @@ export default (_opts) => {
positions: null,
render_elem: 'map',
aircraft_icon: '/assets/img/acars/aircraft.png',
flown_route_color: ACTUAL_ROUTE_COLOR,
units: 'nmi',
}, _opts);
@ -76,7 +77,7 @@ export default (_opts) => {
layerSelFlight = new L.Geodesic([], {
weight: 5,
opacity: 0.9,
color: ACTUAL_ROUTE_COLOR,
color: opts.flown_route_color,
wrap: false,
}).addTo(map);

View File

@ -27,20 +27,6 @@ export const onFeaturePointClick = (feature, layer) => {
layer.bindPopup(popup_html);
};
/**
* Show each point as a marker
* @param feature
* @param latlng
* @returns {*}
*/
export const pointToLayer = (feature, latlng) => leaflet.circleMarker(latlng, {
radius: 5,
fillColor: CIRCLE_COLOR,
color: '#000',
weight: 1,
opacity: 1,
fillOpacity: 0.8,
});
/**
*
@ -57,12 +43,30 @@ export default (_opts) => {
live_map: false,
aircraft_icon: '/assets/img/acars/aircraft.png',
refresh_interval: 10,
flown_route_color: ACTUAL_ROUTE_COLOR,
circle_color: CIRCLE_COLOR,
flightplan_route_color: PLAN_ROUTE_COLOR,
metar_wms: {
url: '',
params: {},
},
}, _opts);
/**
* Show each point as a marker
* @param feature
* @param latlng
* @returns {*}
*/
const pointToLayer = (feature, latlng) => leaflet.circleMarker(latlng, {
radius: 5,
fillColor: opts.circle_color,
color: '#000',
weight: 1,
opacity: 1,
fillOpacity: 0.8,
});
const aircraftIcon = leaflet.icon({
iconUrl: opts.aircraft_icon,
iconSize: [42, 42],
@ -79,7 +83,7 @@ export default (_opts) => {
const plannedRouteLayer = new L.Geodesic([], {
weight: 4,
opacity: 0.9,
color: PLAN_ROUTE_COLOR,
color: opts.flightplan_route_color,
steps: 50,
wrap: false,
}).addTo(map);
@ -98,7 +102,7 @@ export default (_opts) => {
onEachFeature: onFeaturePointClick,
pointToLayer,
style: {
color: PLAN_ROUTE_COLOR,
color: opts.flightplan_route_color,
weight: 3,
opacity: 0.65,
},
@ -115,7 +119,7 @@ export default (_opts) => {
const actualRouteLayer = new L.Geodesic([], {
weight: 3,
opacity: 0.9,
color: ACTUAL_ROUTE_COLOR,
color: opts.flown_route_color,
steps: 50,
wrap: false,
}).addTo(map);
@ -134,7 +138,7 @@ export default (_opts) => {
onEachFeature: onFeaturePointClick,
pointToLayer,
style: {
color: ACTUAL_ROUTE_COLOR,
color: opts.flown_route_color,
weight: 3,
opacity: 0.65,
},

View File

@ -1,31 +1,32 @@
<div class="row">
<!-- Code Field -->
<div class="form-group col-sm-6">
{{ Form::label('icao', 'Code:') }}&nbsp;<span class="required">*</span>
<div class="form-group col-sm-4">
{{ Form::label('icao', 'ICAO (3LD):') }}&nbsp;<span class="required">*</span>
{{ Form::text('icao', null, ['class' => 'form-control']) }}
<p class="text-danger">{{ $errors->first('icao') }}</p>
</div>
<div class="form-group col-sm-4">
{{ Form::label('iata', 'IATA (2LD):') }}
{{ Form::text('iata', null, ['class' => 'form-control']) }}
<p class="text-danger">{{ $errors->first('iata') }}</p>
</div>
<div class="form-group col-sm-4">
{{ Form::label('callsign', 'Radio Callsign:') }}
{{ Form::text('callsign', null, ['class' => 'form-control']) }}
<p class="text-danger">{{ $errors->first('callsign') }}</p>
</div>
</div>
<!-- Name Field -->
<div class="form-group col-sm-6">
<div class="row">
<div class="form-group col-sm-4">
{{ Form::label('name', 'Name:') }}&nbsp;<span class="required">*</span>
{{ Form::text('name', null, ['class' => 'form-control']) }}
<p class="text-danger">{{ $errors->first('name') }}</p>
</div>
</div>
<div class="row">
<div class="form-group col-sm-6">
{{ Form::label('iata', 'IATA:') }}
{{ Form::text('iata', null, ['class' => 'form-control']) }}
<p class="text-danger">{{ $errors->first('iata') }}</p>
</div>
<div class="form-group col-sm-6">
<div class="form-group col-sm-8">
{{ Form::label('logo', 'Logo URL:') }}
{{ Form::text('logo', null, ['class' => 'form-control']) }}
<p class="text-danger">{{ $errors->first('logo') }}</p>
</div>
</div>
<div class="row">
@ -34,7 +35,6 @@
{{ Form::select('country', $countries, null, ['class' => 'form-control select2' ]) }}
<p class="text-danger">{{ $errors->first('country') }}</p>
</div>
<div class="form-group col-sm-6">
{{ Form::label('active', 'Active:') }}
<br/>
@ -44,8 +44,8 @@
</label>
</div>
</div>
<div class="row">
<!-- Submit Field -->
<div class="form-group col-sm-12">
<div class="pull-right">
{{ Form::button('Save', ['type' => 'submit', 'class' => 'btn btn-success']) }}

View File

@ -1,12 +1,14 @@
<table class="table table-hover table-responsive" id="roles-table">
<thead>
<th>Name</th>
<th></th>
<th class="text-center">Members</th>
<th class="text-right">Actions</th>
</thead>
<tbody>
@foreach($roles as $role)
<tr>
<td>{{ $role->display_name }}</td>
<td class="text-center">{{ $role->users_count }}</td>
<td class="text-right">
{{ Form::open(['route' => ['admin.roles.destroy', $role->id], 'method' => 'delete']) }}
<a href="{{ route('admin.roles.edit', [$role->id]) }}"

View File

@ -2,15 +2,20 @@
<!-- Code Field -->
<div class="form-group col-sm-12">
<div class="form-container">
<h6><i class="fas fa-users"></i>
&nbsp;Users
<h6>
<i class="fas fa-users mr-2"></i>
@if($users_count > 0) {{ $users_count.' users are assigned to this role' }} @else No Users @endif
</h6>
<div class="form-container-body">
<div class="row">
<div class="col-sm-12">
TO DO
@if($users_count > 0)
<div class="row">
<div class="col-sm-12">
@foreach($users as $u)
&nbsp;&bull;&nbsp;<a href="{{ route('admin.users.edit', [$u->id]) }}">{{ $u->ident.' '.$u->name }}</a>
@endforeach
</div>
</div>
</div>
@endif
</div>
</div>
</div>

View File

@ -127,7 +127,7 @@
</div>
{{-- Prepare Form Fields For SimBrief --}}
<input type="hidden" name="acdata" value="{'paxwgt':{{ round($pax_weight + $bag_weight) }}}">
<input type="hidden" name="acdata" value="{'paxwgt':{{ round($pax_weight) }}, 'bagwgt': {{ round($bag_weight) }}}">
@if($tpaxfig)
<input type="hidden" name="pax" value="{{ $tpaxfig }}">
@elseif(!$tpaxfig && $tcargoload)

View File

@ -15,9 +15,12 @@
actual_route_line: {!! json_encode($map_features['actual_route_line']) !!},
actual_route_points: {!! json_encode($map_features['actual_route_points']) !!},
aircraft_icon: '{!! public_asset('/assets/img/acars/aircraft.png') !!}',
flown_route_color: '#067ec1',
circle_color: '#056093',
flightplan_route_color: '#8B008B',
leafletOptions: {
scrollWheelZoom: false,
}
},
});
</script>
@endsection

View File

@ -116,6 +116,7 @@ and being mindful of the rivets bindings
aircraft_icon: '{!! public_asset('/assets/img/acars/aircraft.png') !!}',
refresh_interval: {{ setting('acars.update_interval', 60) }},
units: '{{ setting('units.distance') }}',
flown_route_color: '#067ec1',
leafletOptions: {
scrollWheelZoom: false,
}