This commit is contained in:
Mark Gregory
2026-06-10 14:32:44 +01:00
parent 219cf518ba
commit 242158e150
147 changed files with 5448 additions and 0 deletions
@@ -0,0 +1,25 @@
<?php
namespace Modules\Configuration\Providers;
use Illuminate\Support\ServiceProvider;
class ConfigurationServiceProvider extends ServiceProvider
{
/**
* Bootstrap the module services.
*/
public function boot(): void
{
$this->loadRoutesFrom(__DIR__ . '/../Routes/web.php');
$this->loadViewsFrom(__DIR__ . '/../Resources/views', 'configuration');
}
/**
* Register the module services.
*/
public function register(): void
{
// Placeholder only.
}
}
+5
View File
@@ -0,0 +1,5 @@
# Configuration
Centralise system settings, warehouse defaults, interface flags, and feature switches.
Contains actual sample Blade views and placeholder service provider/routes only.
@@ -0,0 +1,123 @@
@extends('layouts.app')
@section('title', 'Configuration')
@section('content')
<div class="container-fluid py-4 module-page module-configuration">
<div class="row g-4">
<div class="col-12">
<section class="card border-0 shadow-sm overflow-hidden">
<div class="card-header border-0 text-white module-hero">
<div class="d-flex flex-column flex-lg-row align-items-lg-center justify-content-between gap-3">
<div>
<div class="small text-uppercase opacity-75 fw-semibold mb-2">Replacement module</div>
<h1 class="h2 fw-bold mb-2">Configuration</h1>
<p class="mb-0 opacity-75">Centralise system settings, warehouse defaults, interface flags, and feature switches.</p>
</div>
<div class="module-hero-icon" aria-hidden="true">
<i class="bi bi-gear"></i>
</div>
</div>
</div>
</section>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">01</div>
<h3 class="h6 mb-2">System Settings</h3>
<p class="small text-muted mb-0">Placeholder area for system settings.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">02</div>
<h3 class="h6 mb-2">Feature Flags</h3>
<p class="small text-muted mb-0">Placeholder area for feature flags.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">03</div>
<h3 class="h6 mb-2">Warehouse Defaults</h3>
<p class="small text-muted mb-0">Placeholder area for warehouse defaults.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">04</div>
<h3 class="h6 mb-2">Interface Settings</h3>
<p class="small text-muted mb-0">Placeholder area for interface settings.</p>
</div>
</div>
</div>
<div class="col-12">
<section class="card border-0 shadow-sm">
<div class="card-header bg-white border-bottom">
<div class="d-flex flex-column flex-md-row justify-content-between gap-2">
<div>
<h2 class="h5 mb-1">Configuration workbench</h2>
<p class="small text-muted mb-0">Sample table layout ready to wire into controllers, queries, DataTables, or Livewire.</p>
</div>
<div class="d-flex gap-2">
<button type="button" class="btn btn-outline-secondary btn-sm">Export</button>
<button type="button" class="btn btn-primary btn-sm">Create</button>
</div>
</div>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead class="table-light">
<tr>
<th>Setting</th>
<th>Value</th>
<th>Scope</th>
<th class="text-end">Action</th>
</tr>
</thead>
<tbody>
<tr>
<td>System Settings</td>
<td>Sample 1</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Feature Flags</td>
<td>Sample 2</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Warehouse Defaults</td>
<td>Sample 3</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Interface Settings</td>
<td>Sample 4</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
</div>
</div>
</div>
@endsection
@@ -0,0 +1,4 @@
<a href="{{ route('configuration.index') }}" class="nav-link d-flex align-items-center gap-2">
<i class="bi bi-gear"></i>
<span>Configuration</span>
</a>
+3
View File
@@ -0,0 +1,3 @@
<?php
// API routes can be added here when the module is implemented.
+10
View File
@@ -0,0 +1,10 @@
<?php
use Illuminate\Support\Facades\Route;
Route::middleware(['web', 'auth'])
->prefix('configuration')
->name('configuration.')
->group(function (): void {
Route::view('/', 'configuration::index')->name('index');
});
+11
View File
@@ -0,0 +1,11 @@
{
"name": "Configuration",
"alias": "configuration",
"description": "Centralise system settings, warehouse defaults, interface flags, and feature switches.",
"keywords": [],
"priority": 0,
"providers": [
"Modules\\Configuration\\Providers\\ConfigurationServiceProvider"
],
"files": []
}