From a12372963aa6015532429657728f26bf3da22792 Mon Sep 17 00:00:00 2001 From: Mark Gregory Date: Tue, 7 Jul 2026 12:20:27 +0100 Subject: [PATCH] interim fix for drop downs, BROKEN FIX, interinm fix --- .../Http/Controllers/CompanyController.php | 8 +- .../Providers/CompanyServiceProvider.php | 15 ++ .../Company/Resources/views/index.blade.php | 128 +++++++++++------- Modules/Company/Routes/web.php | 13 ++ Modules/Company/module.json | 14 ++ Modules/Platform/routes/web.php | 4 + 6 files changed, 132 insertions(+), 50 deletions(-) create mode 100644 Modules/Company/Providers/CompanyServiceProvider.php create mode 100644 Modules/Company/Routes/web.php create mode 100644 Modules/Company/module.json diff --git a/Modules/Company/Http/Controllers/CompanyController.php b/Modules/Company/Http/Controllers/CompanyController.php index 0880b292..09ede975 100644 --- a/Modules/Company/Http/Controllers/CompanyController.php +++ b/Modules/Company/Http/Controllers/CompanyController.php @@ -20,7 +20,7 @@ class CompanyController extends Controller 'companies' => Company::query() ->with(['address.country', 'country']) ->withCount(['users', 'warehouses', 'licenseKeys', 'divisions']) - ->latest('id') + ->orderBy('name') ->paginate(20), 'countries' => $this->countries(), ]); @@ -73,7 +73,7 @@ class CompanyController extends Controller 'recentUsers' => $company->users()->latest('id')->limit(5)->get(), 'recentWarehouses' => $company->warehouses()->latest('id')->limit(5)->get(), 'recentLicenseKeys' => $company->licenseKeys()->latest('id')->limit(5)->get(), - 'countries' => Country::query()->active()->orderBy('sort_order')->orderBy('name')->get(['id', 'alpha2', 'name', 'display_name', 'common_name']), + 'countries' => $this->countries(), 'companyUsers' => $company->users()->orderBy('name')->get(['id', 'name', 'email', 'company_id']), 'unassignedWarehouses' => $company->warehouses()->whereNull('division_id')->orderBy('name')->get(), ]); @@ -135,7 +135,7 @@ class CompanyController extends Controller { return Country::query() ->active() - ->ordered() - ->get(['id', 'alpha2', 'name', 'display_name', 'common_name', 'sort_order']); + ->orderByRaw("LOWER(COALESCE(NULLIF(display_name, ''), NULLIF(common_name, ''), name)) ASC") + ->get(['id', 'alpha2', 'name', 'display_name', 'common_name']); } } diff --git a/Modules/Company/Providers/CompanyServiceProvider.php b/Modules/Company/Providers/CompanyServiceProvider.php new file mode 100644 index 00000000..d6c4b1bc --- /dev/null +++ b/Modules/Company/Providers/CompanyServiceProvider.php @@ -0,0 +1,15 @@ +loadRoutesFrom(__DIR__ . '/../Routes/web.php'); + $this->loadViewsFrom(__DIR__ . '/../Resources/views', 'company'); + $this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations'); + } +} diff --git a/Modules/Company/Resources/views/index.blade.php b/Modules/Company/Resources/views/index.blade.php index b4515449..cbf798f3 100644 --- a/Modules/Company/Resources/views/index.blade.php +++ b/Modules/Company/Resources/views/index.blade.php @@ -7,8 +7,6 @@ icon="fa-solid fa-building" /> - - @if (session('status'))
{{ session('status') }} @@ -30,47 +28,85 @@
-
+ @csrf - +
+
+ + + @error('name') +

{{ $message }}

+ @enderror +
- +
+ + + @error('billing_email') +

{{ $message }}

+ @enderror +
- +
+ + + @error('status') +

{{ $message }}

+ @enderror +
-
- +
+ + + @error('country_id') +

{{ $message }}

+ @enderror +
+ +
- -
+
@@ -109,17 +145,17 @@
- - {{ $company->is_system_company ? 'System' : ucfirst($company->status) }} - + + {{ $company->is_system_company ? 'System' : ucfirst($company->status) }} + diff --git a/Modules/Company/Routes/web.php b/Modules/Company/Routes/web.php new file mode 100644 index 00000000..1b4d0da2 --- /dev/null +++ b/Modules/Company/Routes/web.php @@ -0,0 +1,13 @@ +prefix('admin') + ->name('platform.') + ->group(function (): void { + Route::resource('/companies', CompanyController::class); + }); +} diff --git a/Modules/Company/module.json b/Modules/Company/module.json new file mode 100644 index 00000000..75681400 --- /dev/null +++ b/Modules/Company/module.json @@ -0,0 +1,14 @@ +{ + "name": "Company", + "alias": "company", + "version": "1.0.1", + "description": "Tenant company administration module.", + "keywords": ["company", "tenant", "platform-administration"], + "priority": 0, + "providers": [ + "Modules\\Company\\Providers\\CompanyServiceProvider" + ], + "aliases": {}, + "files": [], + "requires": [] +} diff --git a/Modules/Platform/routes/web.php b/Modules/Platform/routes/web.php index a0bf78c9..215514b4 100644 --- a/Modules/Platform/routes/web.php +++ b/Modules/Platform/routes/web.php @@ -6,6 +6,7 @@ use Modules\Platform\app\Http\Controllers\PaymentController; use Modules\Platform\app\Http\Controllers\PlatformDashboardController; use Modules\Platform\app\Http\Controllers\PlatformPriceController; use Modules\Platform\app\Http\Controllers\StripeWebhookController; +use Modules\Company\Http\Controllers\CompanyController; Route::middleware(['auth', 'verified', 'tenant.assigned']) ->prefix('platform') @@ -23,6 +24,9 @@ Route::middleware(['auth', 'verified', 'tenant.assigned', 'platform.admin']) Route::post('/licenses', [LicenseKeyController::class, 'store'])->name('licenses.store'); Route::get('/payments', [PaymentController::class, 'index'])->name('payments.index'); Route::post('/payments', [PaymentController::class, 'store'])->name('payments.store'); + if (! Route::has('platform.companies.index')) { + Route::resource('/companies', CompanyController::class); + } Route::resource('/prices', PlatformPriceController::class)->except(['show']); });