feat: implement centralized dashboard landing page and move procurement dashboard
This commit is contained in:
@@ -110,6 +110,10 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex items-center gap-4">
|
<div class="flex items-center gap-4">
|
||||||
|
<a href="/" class="px-3 py-2 text-xs font-medium rounded-lg bg-white/5 hover:bg-white/10 transition-colors border border-white/10 flex items-center gap-1.5 text-slate-300">
|
||||||
|
<svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 19l-7-7m0 0l7-7m-7 7h18"/></svg>
|
||||||
|
Hub
|
||||||
|
</a>
|
||||||
<span id="last-updated" class="text-xs text-slate-500"></span>
|
<span id="last-updated" class="text-xs text-slate-500"></span>
|
||||||
<button onclick="loadAllData()" class="px-4 py-2 text-xs font-medium rounded-lg bg-red-700 hover:bg-red-600 transition-colors flex items-center gap-2 border border-red-600/30">
|
<button onclick="loadAllData()" class="px-4 py-2 text-xs font-medium rounded-lg bg-red-700 hover:bg-red-600 transition-colors flex items-center gap-2 border border-red-600/30">
|
||||||
<svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"/></svg>
|
<svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"/></svg>
|
||||||
|
|||||||
153
src/resources/views/landing.blade.php
Normal file
153
src/resources/views/landing.blade.php
Normal file
@@ -0,0 +1,153 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Stargas Dashboards</title>
|
||||||
|
<!-- Tailwind via Vite -->
|
||||||
|
@vite(['resources/css/app.css', 'resources/js/app.js'])
|
||||||
|
<!-- Inter Font -->
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
|
||||||
|
|
||||||
|
<style>
|
||||||
|
/* Animated gradient background — Stargas dark theme */
|
||||||
|
body {
|
||||||
|
background: linear-gradient(135deg, #0a0a0a 0%, #1a0a0a 30%, #0d0d0d 60%, #0a0a0a 100%);
|
||||||
|
min-height: 100vh;
|
||||||
|
font-family: 'Inter', sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Glass card effect */
|
||||||
|
.glass {
|
||||||
|
background: rgba(255, 255, 255, 0.04);
|
||||||
|
backdrop-filter: blur(12px);
|
||||||
|
border: 1px solid rgba(227, 25, 55, 0.12);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Dashboard card hover glow */
|
||||||
|
.dashboard-card {
|
||||||
|
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||||
|
}
|
||||||
|
.dashboard-card:hover {
|
||||||
|
transform: translateY(-4px);
|
||||||
|
box-shadow: 0 12px 40px rgba(227, 25, 55, 0.25);
|
||||||
|
border-color: rgba(227, 25, 55, 0.4);
|
||||||
|
background: rgba(255, 255, 255, 0.06);
|
||||||
|
}
|
||||||
|
|
||||||
|
.disabled-card {
|
||||||
|
opacity: 0.6;
|
||||||
|
cursor: not-allowed;
|
||||||
|
border-style: dashed;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Stargas accent line */
|
||||||
|
.stargas-accent {
|
||||||
|
background: linear-gradient(90deg, #E31937, #FFD700, #E31937);
|
||||||
|
height: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Fade in animation */
|
||||||
|
.fade-in {
|
||||||
|
animation: fadeIn 0.8s ease-out forwards;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
@keyframes fadeIn {
|
||||||
|
to { opacity: 1; transform: translateY(0); }
|
||||||
|
from { opacity: 0; transform: translateY(20px); }
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body class="text-white antialiased">
|
||||||
|
<!-- Stargas Accent Line -->
|
||||||
|
<div class="stargas-accent"></div>
|
||||||
|
|
||||||
|
<main class="max-w-[1200px] mx-auto px-6 py-16">
|
||||||
|
|
||||||
|
<!-- Hero Section -->
|
||||||
|
<div class="flex flex-col items-center justify-center text-center mb-16 fade-in" style="animation-delay: 100ms">
|
||||||
|
<div class="w-32 h-32 rounded-3xl glass flex items-center justify-center mb-8 p-4 bg-white/5 border-red-500/30 shadow-[0_0_50px_rgba(227,25,55,0.15)]">
|
||||||
|
<img src="/images/stargas-logo.svg" alt="Stargas Energies" class="w-full h-auto drop-shadow-lg">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h1 class="text-4xl md:text-5xl font-bold tracking-tight mb-4">
|
||||||
|
Systems <span class="bg-gradient-to-r from-red-500 to-yellow-500 text-transparent bg-clip-text">Hub</span>
|
||||||
|
</h1>
|
||||||
|
<p class="text-slate-400 max-w-xl mx-auto text-lg">
|
||||||
|
Select a module below to access real-time analytics and powerful management tools for your division.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Dashboard Grid -->
|
||||||
|
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 max-w-5xl mx-auto">
|
||||||
|
|
||||||
|
<!-- Active: Procurement Dashboard -->
|
||||||
|
<a href="/procurement" class="dashboard-card glass rounded-2xl p-6 flex flex-col group fade-in relative overflow-hidden block" style="animation-delay: 200ms">
|
||||||
|
<div class="absolute top-0 right-0 p-4">
|
||||||
|
<span class="inline-flex items-center rounded-md bg-green-500/10 px-2 py-1 text-xs font-medium text-green-400 ring-1 ring-inset ring-green-500/20">Active</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="w-14 h-14 rounded-xl bg-gradient-to-br from-red-600 to-red-900 flex items-center justify-center mb-6 shadow-lg shadow-red-900/40 group-hover:scale-110 transition-transform duration-300">
|
||||||
|
<svg class="w-7 h-7 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"/></svg>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2 class="text-xl font-bold text-white mb-2 group-hover:text-red-400 transition-colors">Procurement</h2>
|
||||||
|
<p class="text-sm text-slate-400 mb-6 flex-grow">
|
||||||
|
Track supplier spend, analyze product margins, and monitor purchasing trends across the organization.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div class="text-sm font-medium text-red-500 flex items-center gap-1 mt-auto">
|
||||||
|
Access Dashboard
|
||||||
|
<svg class="w-4 h-4 transform group-hover:translate-x-1 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 8l4 4m0 0l-4 4m4-4H3"/></svg>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<!-- Placeholder: Sales Dashboard -->
|
||||||
|
<div class="glass disabled-card rounded-2xl p-6 flex flex-col fade-in relative" style="animation-delay: 300ms">
|
||||||
|
<div class="absolute top-0 right-0 p-4">
|
||||||
|
<span class="inline-flex items-center rounded-md bg-slate-500/10 px-2 py-1 text-xs font-medium text-slate-400 ring-1 ring-inset ring-slate-500/20">Coming Soon</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="w-14 h-14 rounded-xl bg-slate-800 flex items-center justify-center mb-6">
|
||||||
|
<svg class="w-7 h-7 text-slate-500" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/></svg>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2 class="text-xl font-bold text-slate-300 mb-2">Sales Analytics</h2>
|
||||||
|
<p class="text-sm text-slate-500 flex-grow">
|
||||||
|
Monitor revenue streams, customer acquisition costs, and identify top performing regions.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div class="text-sm font-medium text-slate-600 flex items-center gap-1 mt-auto">
|
||||||
|
In Development
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Placeholder: Inventory Operations -->
|
||||||
|
<div class="glass disabled-card rounded-2xl p-6 flex flex-col fade-in relative" style="animation-delay: 400ms">
|
||||||
|
<div class="absolute top-0 right-0 p-4">
|
||||||
|
<span class="inline-flex items-center rounded-md bg-slate-500/10 px-2 py-1 text-xs font-medium text-slate-400 ring-1 ring-inset ring-slate-500/20">Planned</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="w-14 h-14 rounded-xl bg-slate-800 flex items-center justify-center mb-6">
|
||||||
|
<svg class="w-7 h-7 text-slate-500" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M20 7l-8-4-8 4m16 0l-8 4m8-4v10l-8 4m0-10L4 7m8 4v10M4 7v10l8 4"/></svg>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2 class="text-xl font-bold text-slate-300 mb-2">Inventory Control</h2>
|
||||||
|
<p class="text-sm text-slate-500 flex-grow">
|
||||||
|
Real-time stock levels, movement history, category tracking and predictive reordering.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div class="text-sm font-medium text-slate-600 flex items-center gap-1 mt-auto">
|
||||||
|
Future Roadmap
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mt-24 text-center text-xs text-slate-600 fade-in" style="animation-delay: 500ms">
|
||||||
|
© <script>document.write(new Date().getFullYear())</script> Stargas Energies. All Rights Reserved.
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -3,7 +3,11 @@
|
|||||||
use App\Http\Controllers\DashboardController;
|
use App\Http\Controllers\DashboardController;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
|
|
||||||
Route::get('/', [DashboardController::class, 'index']);
|
Route::get('/', function() {
|
||||||
|
return view('landing');
|
||||||
|
});
|
||||||
|
|
||||||
|
Route::get('/procurement', [DashboardController::class, 'index']);
|
||||||
|
|
||||||
// Dashboard API endpoints
|
// Dashboard API endpoints
|
||||||
Route::prefix('api/dashboard')->group(function () {
|
Route::prefix('api/dashboard')->group(function () {
|
||||||
|
|||||||
Reference in New Issue
Block a user