diff --git a/database/migrations/2026_04_05_092130_fix_timezones.php b/database/migrations/2026_04_05_092130_fix_timezones.php new file mode 100644 index 0000000..0b568e4 --- /dev/null +++ b/database/migrations/2026_04_05_092130_fix_timezones.php @@ -0,0 +1,51 @@ + 'Antarctica/Macquarie', + 1012 => 'America/Iqaluit', + 1129 => 'America/Iqaluit', + 1153 => 'America/Iqaluit', + 9241 => 'Asia/Anadyr', + 9245 => 'Asia/Anadyr', + 9364 => 'Europe/Moscow', + 9365 => 'Asia/Krasnoyarsk', + 11018 => 'Asia/Ulaanbaatar', + 11019 => 'Asia/Ulaanbaatar', + ]; + + public function up(): void + { + // 1. Populate timezones for the specific airports that were missing them + foreach ($this->timezones as $id => $timezone) { + DB::table('airports') + ->where('id', $id) + ->whereNull('timezone') + ->update(['timezone' => $timezone]); + } + + // 2. Make the timezone column non-nullable + Schema::table('airports', function (Blueprint $table) { + $table->string('timezone')->nullable(false)->change(); + }); + } + + public function down(): void + { + // 1. Revert the column back to nullable first + Schema::table('airports', function (Blueprint $table) { + $table->string('timezone')->nullable()->change(); + }); + + // 2. Null out only the rows we populated + DB::table('airports') + ->whereIn('id', array_keys($this->timezones)) + ->update(['timezone' => null]); + } +}; diff --git a/resources/css/app.css b/resources/css/app.css index 9c59507..7fa94f6 100644 --- a/resources/css/app.css +++ b/resources/css/app.css @@ -13,6 +13,21 @@ } +a { + color: var(--accent); + text-decoration: none; +} + +a:visited { + color: var(--accent); +} + +a:hover { + text-decoration: underline; + text-decoration-color: rgba(56, 189, 248, 0.4); + text-underline-offset: 3px; +} + .glass { background: rgba(17, 24, 39, 0.2); /* --surface at 60% */ -webkit-backdrop-filter: blur(12px) saturate(180%); diff --git a/resources/js/Components/FlightsGoneBy/AppLink.vue b/resources/js/Components/FlightsGoneBy/AppLink.vue new file mode 100644 index 0000000..380092e --- /dev/null +++ b/resources/js/Components/FlightsGoneBy/AppLink.vue @@ -0,0 +1,33 @@ + + + + + + diff --git a/resources/js/Components/FlightsGoneBy/GlassBox.vue b/resources/js/Components/FlightsGoneBy/GlassBox.vue index 0383863..42834b5 100644 --- a/resources/js/Components/FlightsGoneBy/GlassBox.vue +++ b/resources/js/Components/FlightsGoneBy/GlassBox.vue @@ -15,8 +15,7 @@ defineProps<{ diff --git a/resources/js/Components/FlightsGoneBy/MainHeader.vue b/resources/js/Components/FlightsGoneBy/MainHeader.vue index 85600e7..dbc15e4 100644 --- a/resources/js/Components/FlightsGoneBy/MainHeader.vue +++ b/resources/js/Components/FlightsGoneBy/MainHeader.vue @@ -1,54 +1,170 @@ diff --git a/resources/js/Components/FlightsGoneBy/Radar.vue b/resources/js/Components/FlightsGoneBy/Radar.vue index cb2ac91..1c5457c 100644 --- a/resources/js/Components/FlightsGoneBy/Radar.vue +++ b/resources/js/Components/FlightsGoneBy/Radar.vue @@ -78,13 +78,11 @@ /* In your component diff --git a/resources/js/app.ts b/resources/js/app.ts index 35e228e..6e0546d 100644 --- a/resources/js/app.ts +++ b/resources/js/app.ts @@ -9,7 +9,7 @@ import vuetify from './plugins/vuetify'; import '@mdi/font/css/materialdesignicons.css' import 'flag-icons/css/flag-icons.min.css' -const appName = import.meta.env.VITE_APP_NAME || 'Laravel'; +const appName = document.querySelector('meta[name="app-name"]')?.getAttribute('content') || 'Laravel'; createInertiaApp({ title: (title) => `${title} | ${appName}`, diff --git a/resources/views/app.blade.php b/resources/views/app.blade.php index 9703d04..b59c91d 100644 --- a/resources/views/app.blade.php +++ b/resources/views/app.blade.php @@ -4,6 +4,7 @@ + {{ config('app.name', 'Laravel') }}