From 9fdfe9dfb1625873c03613fa991b1e7bae7a1996 Mon Sep 17 00:00:00 2001 From: Gogs Date: Thu, 3 Jun 2021 17:00:35 +0200 Subject: [PATCH] AC Form --- README.md | 34 ++- controllers/Aircrafts.php | 17 ++ controllers/aircrafts/_list_toolbar.htm | 18 ++ controllers/aircrafts/config_form.yaml | 10 + controllers/aircrafts/config_list.yaml | 12 + controllers/aircrafts/create.htm | 46 +++ controllers/aircrafts/index.htm | 1 + controllers/aircrafts/preview.htm | 22 ++ controllers/aircrafts/update.htm | 54 ++++ lang/en/lang.php | 1 + models/Aircraft.php | 33 +++ models/AircraftManufacturer.php | 4 + models/AircraftType.php | 4 + models/aircraft/columns.yaml | 49 ++++ models/aircraft/fields.yaml | 23 ++ models/aircrafttype/fields.yaml | 276 +++++++++--------- plugin.yaml | 4 + .../builder_table_create_aircraft_types.php | 4 +- .../builder_table_create_aircrafts copy.php | 64 ++++ updates/version.yaml | 2 + 20 files changed, 533 insertions(+), 145 deletions(-) create mode 100644 controllers/Aircrafts.php create mode 100644 controllers/aircrafts/_list_toolbar.htm create mode 100644 controllers/aircrafts/config_form.yaml create mode 100644 controllers/aircrafts/config_list.yaml create mode 100644 controllers/aircrafts/create.htm create mode 100644 controllers/aircrafts/index.htm create mode 100644 controllers/aircrafts/preview.htm create mode 100644 controllers/aircrafts/update.htm create mode 100644 models/Aircraft.php create mode 100644 models/aircraft/columns.yaml create mode 100644 models/aircraft/fields.yaml create mode 100644 updates/builder_table_create_aircrafts copy.php diff --git a/README.md b/README.md index 406f86f..cf179f9 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,32 @@ -# TODO +# Relations -- Type Creat Form localization -- Remove design phase databaase connection in Schema and Model +## AircraftManufacturers + +- HasMany AircraftType + +## AircraftTypes + +- BelongsTo AircraftManufacturers +- **TODO** BelongsTo Typeratings (External DB) +- HasMany Aircrafts + +## Aircrafts + +- BelongsTo AircraftTypes +- **TODO** BelongsTo Airports (External DB, Multiple) + +--- + +# Todo + +## General + +- Remove design phase database connection in Schema and Model + +## AircraftTypes + +- Form Localization + +## Aircrafts + +- Form Localization diff --git a/controllers/Aircrafts.php b/controllers/Aircrafts.php new file mode 100644 index 0000000..0e6de8a --- /dev/null +++ b/controllers/Aircrafts.php @@ -0,0 +1,17 @@ + + + + diff --git a/controllers/aircrafts/config_form.yaml b/controllers/aircrafts/config_form.yaml new file mode 100644 index 0000000..39a8639 --- /dev/null +++ b/controllers/aircrafts/config_form.yaml @@ -0,0 +1,10 @@ +name: Aircrafts +form: $/germanairlinesva/fleet/models/aircraft/fields.yaml +modelClass: GermanAirlinesVa\Fleet\Models\Aircraft +defaultRedirect: germanairlinesva/fleet/aircrafts +create: + redirect: 'germanairlinesva/fleet/aircrafts/update/:id' + redirectClose: germanairlinesva/fleet/aircrafts +update: + redirect: germanairlinesva/fleet/aircrafts + redirectClose: germanairlinesva/fleet/aircrafts diff --git a/controllers/aircrafts/config_list.yaml b/controllers/aircrafts/config_list.yaml new file mode 100644 index 0000000..dd2ef2b --- /dev/null +++ b/controllers/aircrafts/config_list.yaml @@ -0,0 +1,12 @@ +list: $/germanairlinesva/fleet/models/aircraft/columns.yaml +modelClass: GermanAirlinesVa\Fleet\Models\Aircraft +title: Aircrafts +noRecordsMessage: 'backend::lang.list.no_records' +showSetup: true +showCheckboxes: true +recordsPerPage: 20 +toolbar: + buttons: list_toolbar + search: + prompt: 'backend::lang.list.search_prompt' +recordUrl: 'germanairlinesva/fleet/aircrafts/update/:id' diff --git a/controllers/aircrafts/create.htm b/controllers/aircrafts/create.htm new file mode 100644 index 0000000..41790dd --- /dev/null +++ b/controllers/aircrafts/create.htm @@ -0,0 +1,46 @@ + + + + +fatalError): ?> + + 'layout']) ?> + +
+ formRender() ?> +
+ +
+
+ + + + + +
+
+ + + + +

fatalError)) ?>

+

+ \ No newline at end of file diff --git a/controllers/aircrafts/index.htm b/controllers/aircrafts/index.htm new file mode 100644 index 0000000..ea43a36 --- /dev/null +++ b/controllers/aircrafts/index.htm @@ -0,0 +1 @@ +listRender() ?> diff --git a/controllers/aircrafts/preview.htm b/controllers/aircrafts/preview.htm new file mode 100644 index 0000000..e6c1809 --- /dev/null +++ b/controllers/aircrafts/preview.htm @@ -0,0 +1,22 @@ + + + + +fatalError): ?> + +
+ formRenderPreview() ?> +
+ + +

fatalError) ?>

+ + +

+ + + +

\ No newline at end of file diff --git a/controllers/aircrafts/update.htm b/controllers/aircrafts/update.htm new file mode 100644 index 0000000..949d258 --- /dev/null +++ b/controllers/aircrafts/update.htm @@ -0,0 +1,54 @@ + + + + +fatalError): ?> + + 'layout']) ?> + +
+ formRender() ?> +
+ +
+
+ + + + + + + +
+
+ + + +

fatalError)) ?>

+

+ \ No newline at end of file diff --git a/lang/en/lang.php b/lang/en/lang.php index 848e231..9cb9e2e 100644 --- a/lang/en/lang.php +++ b/lang/en/lang.php @@ -14,5 +14,6 @@ 'main' => 'GA Fleet', 'manufacturers' => 'Aircraft Manufacturers', 'types' => 'Aircraft Types', + 'aircrafts' => 'Aircrafts', ], ]; \ No newline at end of file diff --git a/models/Aircraft.php b/models/Aircraft.php new file mode 100644 index 0000000..c367dc4 --- /dev/null +++ b/models/Aircraft.php @@ -0,0 +1,33 @@ + 'GermanAirlinesVa\Fleet\Models\AircraftType', + ]; +} diff --git a/models/AircraftManufacturer.php b/models/AircraftManufacturer.php index baa521c..1476d05 100644 --- a/models/AircraftManufacturer.php +++ b/models/AircraftManufacturer.php @@ -26,4 +26,8 @@ class AircraftManufacturer extends Model * @var array Validation rules */ public $rules = []; + + public $hasMany = [ + 'aircraft_types' => 'GermanAirlinesVa\Fleet\Models\AircraftType', + ]; } diff --git a/models/AircraftType.php b/models/AircraftType.php index de304aa..57ae90a 100644 --- a/models/AircraftType.php +++ b/models/AircraftType.php @@ -30,4 +30,8 @@ class AircraftType extends Model public $belongsTo = [ 'aircraft_manufacturer' => 'GermanAirlinesVa\Fleet\Models\AircraftManufacturer', ]; + + public $hasMany = [ + 'aircrafts' => 'GermanAirlinesVa\Fleet\Models\Aircraft', + ]; } diff --git a/models/aircraft/columns.yaml b/models/aircraft/columns.yaml new file mode 100644 index 0000000..1188edf --- /dev/null +++ b/models/aircraft/columns.yaml @@ -0,0 +1,49 @@ +columns: + id: + label: id + type: text + aircraft_type_id: + label: aircraft_type_id + type: text + home_airport_id: + label: home_airport_id + type: text + airport_id: + label: airport_id + type: text + name: + label: name + type: text + registration: + label: registration + type: text + in_use: + label: in_use + type: text + total_miles: + label: total_miles + type: text + total_fuel: + label: total_fuel + type: text + total_flight_time: + label: total_flight_time + type: text + total_expenses: + label: total_expenses + type: text + current_check: + label: current_check + type: text + last_a_check: + label: last_a_check + type: text + last_b_check: + label: last_b_check + type: text + last_c_check: + label: last_c_check + type: text + last_d_check: + label: last_d_check + type: text diff --git a/models/aircraft/fields.yaml b/models/aircraft/fields.yaml new file mode 100644 index 0000000..6867f6e --- /dev/null +++ b/models/aircraft/fields.yaml @@ -0,0 +1,23 @@ +fields: + aircraft_type: + label: Type + nameFrom: type + descriptionFrom: description + span: auto + required: 1 + type: relation + registration: + label: Registration + span: auto + required: 1 + type: text + name: + label: Name + span: auto + required: 1 + type: text + home_airport_id: + label: 'Home Base' + span: auto + required: 1 + type: number diff --git a/models/aircrafttype/fields.yaml b/models/aircrafttype/fields.yaml index 9aeccc9..b254cd5 100644 --- a/models/aircrafttype/fields.yaml +++ b/models/aircrafttype/fields.yaml @@ -1,141 +1,137 @@ tabs: - fields: - aircraft_manufacturer: - label: Manufacturer - nameFrom: name - descriptionFrom: description - span: auto - required: 1 - type: relation - tab: Operational - typerating_id: - label: Typerating - span: auto - required: 1 - type: number - tab: Operational - only_charter: - label: 'Charter Only' - options: - 'No': 'no' - 'Yes': 'yes' - showSearch: true - span: auto - required: 1 - type: dropdown - tab: Operational - type: - label: Type - span: auto - required: 1 - type: text - tab: Operational - simbrief_type: - label: 'SimBrief Type' - span: auto - required: 1 - type: text - tab: Operational - dom: - label: DOM - span: auto - required: 1 - type: number - tab: Weights - mpld: - label: 'Max Payload' - span: auto - required: 1 - type: number - tab: Weights - mzfm: - label: 'Max ZFM' - span: auto - required: 1 - type: number - tab: Weights - fuel_capacity: - label: 'Fuel Capacity' - span: auto - required: 1 - type: number - tab: Weights - mtom: - label: 'Max TOM' - span: auto - required: 1 - type: number - tab: Weights - mlam: - label: 'Max LAM' - span: auto - required: 1 - type: number - tab: Weights - description: - label: Description - size: large - span: auto - required: 1 - type: richeditor - tab: Informational - wingspan: - label: Wingspan - span: auto - required: 1 - type: text - tab: Informational - length: - label: Length - span: auto - required: 1 - type: text - tab: Informational - cruise_speed: - label: 'Cruise Speed' - span: auto - required: 1 - type: text - tab: Informational - range: - label: Range - span: auto - required: 1 - type: text - tab: Informational - engines: - label: Engines - span: auto - required: 1 - type: text - tab: Informational - max_fl: - label: 'Max FL' - span: auto - required: 1 - type: number - tab: Informational - capacity_flight_crew: - label: 'Flight Crew' - span: auto - required: 1 - type: number - tab: Informational - capacity_cabin_crew: - label: 'Cabin Crew' - span: auto - required: 1 - type: number - tab: Informational - capacity_passengers: - label: Passengers - span: auto - required: 1 - type: number - tab: Informational - capacity_cargo: - label: Cargo - span: auto - required: 1 - type: number - tab: Informational + fields: + aircraft_manufacturer: + label: Manufacturer + nameFrom: name + descriptionFrom: description + span: auto + required: 1 + type: relation + tab: Operational + typerating_id: + label: Typerating + span: auto + required: 1 + type: number + tab: Operational + only_charter: + label: 'Charter Only' + span: auto + required: 1 + type: switch + tab: Operational + type: + label: Type + span: auto + required: 1 + type: text + tab: Operational + simbrief_type: + label: 'SimBrief Type' + span: auto + required: 1 + type: text + tab: Operational + dom: + label: DOM + span: auto + required: 1 + type: number + tab: Weights + mpld: + label: 'Max Payload' + span: auto + required: 1 + type: number + tab: Weights + mzfm: + label: 'Max ZFM' + span: auto + required: 1 + type: number + tab: Weights + fuel_capacity: + label: 'Fuel Capacity' + span: auto + required: 1 + type: number + tab: Weights + mtom: + label: 'Max TOM' + span: auto + required: 1 + type: number + tab: Weights + mlam: + label: 'Max LAM' + span: auto + required: 1 + type: number + tab: Weights + description: + label: Description + size: large + span: auto + required: 1 + type: richeditor + tab: Informational + wingspan: + label: Wingspan + span: auto + required: 1 + type: text + tab: Informational + length: + label: Length + span: auto + required: 1 + type: text + tab: Informational + cruise_speed: + label: 'Cruise Speed' + span: auto + required: 1 + type: text + tab: Informational + range: + label: Range + span: auto + required: 1 + type: text + tab: Informational + engines: + label: Engines + span: auto + required: 1 + type: text + tab: Informational + max_fl: + label: 'Max FL' + span: auto + required: 1 + type: number + tab: Informational + capacity_flight_crew: + label: 'Flight Crew' + span: auto + required: 1 + type: number + tab: Informational + capacity_cabin_crew: + label: 'Cabin Crew' + span: auto + required: 1 + type: number + tab: Informational + capacity_passengers: + label: Passengers + span: auto + required: 1 + type: number + tab: Informational + capacity_cargo: + label: Cargo + span: auto + required: 1 + type: number + tab: Informational diff --git a/plugin.yaml b/plugin.yaml index ea40908..0fcf967 100644 --- a/plugin.yaml +++ b/plugin.yaml @@ -18,3 +18,7 @@ navigation: label: 'germanairlinesva.fleet::lang.menu.types' url: germanairlinesva/fleet/aircrafttypes icon: icon-paper-plane + side-menu-item3: + label: 'germanairlinesva.fleet::lang.menu.aircrafts' + url: germanairlinesva/fleet/aircrafts + icon: icon-plane diff --git a/updates/builder_table_create_aircraft_types.php b/updates/builder_table_create_aircraft_types.php index 66be62e..13b87c8 100644 --- a/updates/builder_table_create_aircraft_types.php +++ b/updates/builder_table_create_aircraft_types.php @@ -19,10 +19,10 @@ class BuilderTableCreateGermanAirlinesVaAircraftTypes extends Migration ->on('aircraft_manufacturers'); $table->bigInteger('typerating_id')->unsigned(); //$table - // ->foreign('typerating_manufacturer_id') + // ->foreign('typerating_id') // ->references('id') // ->on('typeratings'); - $table->enum('only_charter', ['yes', 'no']); + $table->boolean('only_charter'); $table->string('type'); $table->text('description'); $table->string('simbrief_type'); diff --git a/updates/builder_table_create_aircrafts copy.php b/updates/builder_table_create_aircrafts copy.php new file mode 100644 index 0000000..de5e086 --- /dev/null +++ b/updates/builder_table_create_aircrafts copy.php @@ -0,0 +1,64 @@ +create('aircrafts', function ($table) { + //Schema::create('germanairlinesva_fleet_aircrafts', function ($table) { + $table->engine = 'InnoDB'; + $table->bigIncrements('id')->unsigned(); + $table->bigInteger('aircraft_type_id')->unsigned(); + $table + ->foreign('aircraft_type_id') + ->references('id') + ->on('aircraft_types'); + $table->bigInteger('home_airport_id')->unsigned(); + //$table + // ->foreign('home_airport_id') + // ->references('id') + // ->on('airports'); + $table + ->bigInteger('airport_id') + ->unsigned() + ->nullable(); + //$table + // ->foreign('airport_id') + // ->references('id') + // ->on('airports'); + $table->string('name'); + $table->string('registration'); + $table->boolean('in_use')->default(true); + $table + ->double('total_miles') + ->unsigned() + ->default(0); + $table + ->double('total_fuel') + ->unsigned() + ->default(0); + $table + ->double('total_flight_time') + ->unsigned() + ->default(0); + $table + ->double('total_expenses') + ->unsigned() + ->default(0); + $table->enum('current_check', ['a', 'b', 'c', 'd'])->nullable(); + $table->datetime('last_a_check')->default(DB::raw('NOW()')); + $table->datetime('last_b_check')->default(DB::raw('NOW()')); + $table->datetime('last_c_check')->default(DB::raw('NOW()')); + $table->datetime('last_d_check')->default(DB::raw('NOW()')); + }); + } + + public function down() + { + Schema::connection('germanairlinesva_fleet')->dropIfExists('aircrafts'); + //Schema::dropIfExists('germanairlinesva_fleet_aircrafts'); + } +} diff --git a/updates/version.yaml b/updates/version.yaml index 24273b8..12b6161 100644 --- a/updates/version.yaml +++ b/updates/version.yaml @@ -5,3 +5,5 @@ - builder_table_create_aircraft_manufacturers.php - 'Created table aircraft_types' - builder_table_create_aircraft_types.php + - 'Created table aircrafts' + - builder_table_create_aircrafts.php