major update for UI
This commit is contained in:
@@ -1,9 +1,5 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', 'Analytics')
|
||||
|
||||
@section('content')
|
||||
<div class="container-fluid py-4 module-page module-analytics">
|
||||
<x-layouts::app :title="__('Analytics')">
|
||||
<div class="container-fluid py-4 module-page module-analytics">
|
||||
<div class="row g-4">
|
||||
<div class="col-12">
|
||||
<section class="card border-0 shadow-sm overflow-hidden">
|
||||
@@ -120,4 +116,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
</x-layouts::app>
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', 'Audit')
|
||||
|
||||
@section('content')
|
||||
<div class="container-fluid py-4 module-page module-audit">
|
||||
<x-layouts::app :title="__('Audit')">
|
||||
<div class="container-fluid py-4 module-page module-audit">
|
||||
<div class="row g-4">
|
||||
<div class="col-12">
|
||||
<section class="card border-0 shadow-sm overflow-hidden">
|
||||
@@ -120,4 +116,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
</x-layouts::app>
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', 'Carrier Management')
|
||||
|
||||
@section('content')
|
||||
<div class="container-fluid py-4 module-page module-carrier-management">
|
||||
<x-layouts::app :title="__('Carrier Management')">
|
||||
<div class="container-fluid py-4 module-page module-carrier-management">
|
||||
<div class="row g-4">
|
||||
<div class="col-12">
|
||||
<section class="card border-0 shadow-sm overflow-hidden">
|
||||
@@ -120,4 +116,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
</x-layouts::app>
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', 'Configuration')
|
||||
|
||||
@section('content')
|
||||
<div class="container-fluid py-4 module-page module-configuration">
|
||||
<x-layouts::app :title="__('Configuration')">
|
||||
<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">
|
||||
@@ -120,4 +116,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
</x-layouts::app>
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', 'Document Archive')
|
||||
|
||||
@section('content')
|
||||
<div class="container-fluid py-4 module-page module-document-archive">
|
||||
<x-layouts::app :title="__('Document Archive')">
|
||||
<div class="container-fluid py-4 module-page module-document-archive">
|
||||
<div class="row g-4">
|
||||
<div class="col-12">
|
||||
<section class="card border-0 shadow-sm overflow-hidden">
|
||||
@@ -120,4 +116,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
</x-layouts::app>
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', 'Inventory Management')
|
||||
|
||||
@section('content')
|
||||
<div class="container-fluid py-4 module-page module-inventory-management">
|
||||
<x-layouts::app :title="__('Inventory Management')">
|
||||
<div class="container-fluid py-4 module-page module-inventory-management">
|
||||
<div class="row g-4">
|
||||
<div class="col-12">
|
||||
<section class="card border-0 shadow-sm overflow-hidden">
|
||||
@@ -120,4 +116,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
</x-layouts::app>
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', 'M3 Integration')
|
||||
|
||||
@section('content')
|
||||
<div class="container-fluid py-4 module-page module-m3-integration">
|
||||
<x-layouts::app :title="__('M3 Integration')">
|
||||
<div class="container-fluid py-4 module-page module-m3-integration">
|
||||
<div class="row g-4">
|
||||
<div class="col-12">
|
||||
<section class="card border-0 shadow-sm overflow-hidden">
|
||||
@@ -120,4 +116,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
</x-layouts::app>
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', 'Replenishment')
|
||||
|
||||
@section('content')
|
||||
<div class="container-fluid py-4 module-page module-replenishment">
|
||||
<x-layouts::app :title="__('Replenishment')">
|
||||
<div class="container-fluid py-4 module-page module-replenishment">
|
||||
<div class="row g-4">
|
||||
<div class="col-12">
|
||||
<section class="card border-0 shadow-sm overflow-hidden">
|
||||
@@ -120,4 +116,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
</x-layouts::app>
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', 'Reporting')
|
||||
|
||||
@section('content')
|
||||
<div class="container-fluid py-4 module-page module-reporting">
|
||||
<x-layouts::app :title="__('Reporting')">
|
||||
<div class="container-fluid py-4 module-page module-reporting">
|
||||
<div class="row g-4">
|
||||
<div class="col-12">
|
||||
<section class="card border-0 shadow-sm overflow-hidden">
|
||||
@@ -120,4 +116,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
</x-layouts::app>
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', 'Security')
|
||||
|
||||
@section('content')
|
||||
<div class="container-fluid py-4 module-page module-security">
|
||||
<x-layouts::app :title="__('Security')">
|
||||
<div class="container-fluid py-4 module-page module-security">
|
||||
<div class="row g-4">
|
||||
<div class="col-12">
|
||||
<section class="card border-0 shadow-sm overflow-hidden">
|
||||
@@ -120,4 +116,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
</x-layouts::app>
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', 'Sentinel Integration')
|
||||
|
||||
@section('content')
|
||||
<div class="container-fluid py-4 module-page module-sentinel-integration">
|
||||
<x-layouts::app :title="__('Sentinel Integration')">
|
||||
<div class="container-fluid py-4 module-page module-sentinel-integration">
|
||||
<div class="row g-4">
|
||||
<div class="col-12">
|
||||
<section class="card border-0 shadow-sm overflow-hidden">
|
||||
@@ -120,4 +116,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
</x-layouts::app>
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', 'Shipping')
|
||||
|
||||
@section('content')
|
||||
<div class="container-fluid py-4 module-page module-shipping">
|
||||
<x-layouts::app :title="__('Shipping')">
|
||||
<div class="container-fluid py-4 module-page module-shipping">
|
||||
<div class="row g-4">
|
||||
<div class="col-12">
|
||||
<section class="card border-0 shadow-sm overflow-hidden">
|
||||
@@ -120,4 +116,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
</x-layouts::app>
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', 'Transportation')
|
||||
|
||||
@section('content')
|
||||
<div class="container-fluid py-4 module-page module-transportation">
|
||||
<x-layouts::app :title="__('Transportation')">
|
||||
<div class="container-fluid py-4 module-page module-transportation">
|
||||
<div class="row g-4">
|
||||
<div class="col-12">
|
||||
<section class="card border-0 shadow-sm overflow-hidden">
|
||||
@@ -120,4 +116,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
</x-layouts::app>
|
||||
|
||||
+1
-1
@@ -61,7 +61,7 @@
|
||||
"App\\": "app/",
|
||||
"Database\\Factories\\": "database/factories/",
|
||||
"Database\\Seeders\\": "database/seeders/",
|
||||
"Modules\\": "modules/"
|
||||
"Modules\\": "Modules/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
|
||||
+15
-2
@@ -1,5 +1,18 @@
|
||||
{
|
||||
"Analytics": true,
|
||||
"Audit": true,
|
||||
"CarrierManagement": true,
|
||||
"Configuration": true,
|
||||
"DocumentArchive": true,
|
||||
"InternalApi": true,
|
||||
"InventoryManagement": true,
|
||||
"M3Integration": true,
|
||||
"Platform": true,
|
||||
"Warehouse": true,
|
||||
"InternalApi": true
|
||||
"Replenishment": true,
|
||||
"Reporting": true,
|
||||
"Security": true,
|
||||
"SentinelIntegration": true,
|
||||
"Shipping": true,
|
||||
"Transportation": true,
|
||||
"Warehouse": true
|
||||
}
|
||||
|
||||
@@ -10,93 +10,167 @@
|
||||
|
||||
<aside class="wms-sidebar" data-wms-sidebar aria-label="{{ __('Main navigation') }}">
|
||||
<div class="wms-sidebar-header">
|
||||
<a href="{{ auth()->user()?->isMpbaPlatformAdmin() ? route('platform.dashboard') : route('dashboard') }}" wire:navigate class="wms-brand" aria-label="{{ __('Warehouse Management System') }}">
|
||||
<span class="wms-brand-mark">
|
||||
<span class="wms-brand-mark-inner">W</span>
|
||||
</span>
|
||||
|
||||
<a href="{{ auth()->user()?->isMpbaPlatformAdmin() && Route::has('platform.dashboard') ? route('platform.dashboard') : route('dashboard') }}" wire:navigate class="wms-brand" aria-label="{{ __('Warehouse Management System') }}">
|
||||
<span class="wms-brand-mark"><span class="wms-brand-mark-inner">W</span></span>
|
||||
<span class="wms-brand-copy" data-wms-sidebar-label>
|
||||
<span class="wms-brand-title">{{ __('Warehouse Management System') }}</span>
|
||||
<span class="wms-brand-subtitle">MPBA</span>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<button
|
||||
type="button"
|
||||
class="wms-sidebar-toggle"
|
||||
data-wms-sidebar-toggle
|
||||
aria-label="{{ __('Collapse sidebar') }}"
|
||||
aria-expanded="true"
|
||||
>
|
||||
<button type="button" class="wms-sidebar-toggle" data-wms-sidebar-toggle aria-label="{{ __('Collapse sidebar') }}" aria-expanded="true">
|
||||
<span class="wms-toggle-expanded">‹</span>
|
||||
<span class="wms-toggle-collapsed">›</span>
|
||||
</button>
|
||||
|
||||
<button
|
||||
type="button"
|
||||
class="wms-mobile-close"
|
||||
data-wms-mobile-close
|
||||
aria-label="{{ __('Close navigation') }}"
|
||||
>
|
||||
×
|
||||
</button>
|
||||
<button type="button" class="wms-mobile-close" data-wms-mobile-close aria-label="{{ __('Close navigation') }}">×</button>
|
||||
</div>
|
||||
|
||||
<nav class="wms-sidebar-nav" aria-label="{{ __('Operations') }}">
|
||||
<nav class="wms-sidebar-nav" aria-label="{{ __('Main navigation') }}">
|
||||
<div class="wms-sidebar-group">
|
||||
<div class="wms-sidebar-heading" data-wms-sidebar-label>{{ __('Operations') }}</div>
|
||||
<div class="wms-sidebar-heading" data-wms-sidebar-label>{{ __('Platform') }}</div>
|
||||
|
||||
@if(auth()->user()?->isMpbaPlatformAdmin())
|
||||
@if(auth()->user()?->isMpbaPlatformAdmin() && Route::has('platform.dashboard'))
|
||||
<a href="{{ route('platform.dashboard') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('platform.dashboard')) is-active @endif" title="{{ __('Platform') }}">
|
||||
<i class="fa-solid fa-screwdriver-wrench wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label>{{ __('Platform') }}</span>
|
||||
</a>
|
||||
@else
|
||||
@elseif(Route::has('dashboard'))
|
||||
<a href="{{ route('dashboard') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('dashboard')) is-active @endif" title="{{ __('Dashboard') }}">
|
||||
<i class="fa-solid fa-gauge-high wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label>{{ __('Dashboard') }}</span>
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="wms-sidebar-group">
|
||||
<div class="wms-sidebar-heading" data-wms-sidebar-label>{{ __('Operations') }}</div>
|
||||
|
||||
@if(Route::has('analytics.index'))
|
||||
<a href="{{ route('analytics.index') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('analytics.*')) is-active @endif" title="{{ __('Analytics') }}">
|
||||
<i class="fa-solid fa-chart-line wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label>{{ __('Analytics') }}</span>
|
||||
</a>
|
||||
@endif
|
||||
@if(Route::has('inventory-management.index'))
|
||||
<a href="{{ route('inventory-management.index') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('inventory-management.*')) is-active @endif" title="{{ __('Inventory') }}">
|
||||
<i class="fa-solid fa-boxes-stacked wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label>{{ __('Inventory') }}</span>
|
||||
</a>
|
||||
@endif
|
||||
@if(Route::has('replenishment.index'))
|
||||
<a href="{{ route('replenishment.index') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('replenishment.*')) is-active @endif" title="{{ __('Replenishment') }}">
|
||||
<i class="fa-solid fa-arrows-rotate wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label>{{ __('Replenishment') }}</span>
|
||||
</a>
|
||||
@endif
|
||||
@if(Route::has('shipping.index'))
|
||||
<a href="{{ route('shipping.index') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('shipping.*')) is-active @endif" title="{{ __('Shipping') }}">
|
||||
<i class="fa-solid fa-truck-fast wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label>{{ __('Shipping') }}</span>
|
||||
</a>
|
||||
@endif
|
||||
@if(Route::has('transportation.index'))
|
||||
<a href="{{ route('transportation.index') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('transportation.*')) is-active @endif" title="{{ __('Transportation') }}">
|
||||
<i class="fa-solid fa-truck-ramp-box wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label>{{ __('Transportation') }}</span>
|
||||
</a>
|
||||
@endif
|
||||
@if(Route::has('carrier-management.index'))
|
||||
<a href="{{ route('carrier-management.index') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('carrier-management.*')) is-active @endif" title="{{ __('Carriers') }}">
|
||||
<i class="fa-solid fa-route wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label>{{ __('Carriers') }}</span>
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="wms-sidebar-group">
|
||||
<div class="wms-sidebar-heading" data-wms-sidebar-label>{{ __('Integration & Reporting') }}</div>
|
||||
|
||||
@if(Route::has('m3-integration.index'))
|
||||
<a href="{{ route('m3-integration.index') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('m3-integration.*')) is-active @endif" title="{{ __('M3 Integration') }}">
|
||||
<i class="fa-solid fa-plug-circle-bolt wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label>{{ __('M3 Integration') }}</span>
|
||||
</a>
|
||||
@endif
|
||||
@if(Route::has('sentinel-integration.index'))
|
||||
<a href="{{ route('sentinel-integration.index') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('sentinel-integration.*')) is-active @endif" title="{{ __('Sentinel') }}">
|
||||
<i class="fa-solid fa-satellite-dish wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label>{{ __('Sentinel') }}</span>
|
||||
</a>
|
||||
@endif
|
||||
@if(Route::has('document-archive.index'))
|
||||
<a href="{{ route('document-archive.index') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('document-archive.*')) is-active @endif" title="{{ __('Documents') }}">
|
||||
<i class="fa-solid fa-box-archive wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label>{{ __('Documents') }}</span>
|
||||
</a>
|
||||
@endif
|
||||
@if(Route::has('reporting.index'))
|
||||
<a href="{{ route('reporting.index') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('reporting.*')) is-active @endif" title="{{ __('Reporting') }}">
|
||||
<i class="fa-solid fa-file-lines wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label>{{ __('Reporting') }}</span>
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="wms-sidebar-group">
|
||||
<div class="wms-sidebar-heading" data-wms-sidebar-label>{{ __('Administration') }}</div>
|
||||
|
||||
@if(Route::has('warehouses.index'))
|
||||
<a href="{{ route('warehouses.index') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('warehouses.*')) is-active @endif" title="{{ __('Warehouses') }}">
|
||||
<i class="fa-solid fa-warehouse wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label>{{ __('Warehouses') }}</span>
|
||||
</a>
|
||||
@endif
|
||||
@if(Route::has('warehouse-rules.index'))
|
||||
<a href="{{ route('warehouse-rules.index') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('warehouse-rules.*')) is-active @endif" title="{{ __('Validation Rules') }}">
|
||||
<i class="fa-solid fa-shield-halved wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label>{{ __('Validation Rules') }}</span>
|
||||
</a>
|
||||
@endif
|
||||
@if(Route::has('configuration.index'))
|
||||
<a href="{{ route('configuration.index') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('configuration.*')) is-active @endif" title="{{ __('Configuration') }}">
|
||||
<i class="fa-solid fa-sliders wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label>{{ __('Configuration') }}</span>
|
||||
</a>
|
||||
@endif
|
||||
@if(Route::has('security.index'))
|
||||
<a href="{{ route('security.index') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('security.*')) is-active @endif" title="{{ __('Security') }}">
|
||||
<i class="fa-solid fa-user-shield wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label>{{ __('Security') }}</span>
|
||||
</a>
|
||||
@endif
|
||||
@if(Route::has('audit.index'))
|
||||
<a href="{{ route('audit.index') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('audit.*')) is-active @endif" title="{{ __('Audit') }}">
|
||||
<i class="fa-solid fa-clipboard-check wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label>{{ __('Audit') }}</span>
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
@if(auth()->user()?->isMpbaPlatformAdmin())
|
||||
<div class="wms-sidebar-group">
|
||||
<div class="wms-sidebar-heading" data-wms-sidebar-label>{{ __('Administration') }}</div>
|
||||
<div class="wms-sidebar-group">
|
||||
<div class="wms-sidebar-heading" data-wms-sidebar-label>{{ __('Platform Administration') }}</div>
|
||||
|
||||
<a href="{{ route('warehouses.index') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('warehouses.*')) is-active @endif" title="{{ __('Warehouses') }}">
|
||||
<i class="fa-solid fa-warehouse wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label>{{ __('Warehouses') }}</span>
|
||||
</a>
|
||||
<a href="{{ route('warehouse-rules.index') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('warehouse-rules.*')) is-active @endif" title="{{ __('Validation Rules') }}">
|
||||
<i class="fa-solid fa-shield-halved wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label>{{ __('Validation Rules') }}</span>
|
||||
</a>
|
||||
<a href="{{ route('platform.companies.index') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('platform.companies.*')) is-active @endif" title="{{ __('Companies') }}">
|
||||
<i class="fa-solid fa-building wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label>{{ __('Companies') }}</span>
|
||||
</a>
|
||||
|
||||
<a href="{{ route('platform.licenses.index') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('platform.licenses.*')) is-active @endif" title="{{ __('Licences') }}">
|
||||
<i class="fa-solid fa-key wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label>{{ __('Licences') }}</span>
|
||||
</a>
|
||||
|
||||
<a href="{{ route('platform.payments.index') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('platform.payments.*')) is-active @endif" title="{{ __('Payments') }}">
|
||||
<i class="fa-solid fa-credit-card wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label>{{ __('Payments') }}</span>
|
||||
</a>
|
||||
</div>
|
||||
@else
|
||||
<div class="wms-sidebar-group">
|
||||
<div class="wms-sidebar-heading" data-wms-sidebar-label>{{ __('Administration') }}</div>
|
||||
|
||||
<a href="{{ route('warehouses.index') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('warehouses.*')) is-active @endif" title="{{ __('Warehouses') }}">
|
||||
<i class="fa-solid fa-warehouse wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label>{{ __('Warehouses') }}</span>
|
||||
</a>
|
||||
</div>
|
||||
@if(Route::has('platform.companies.index'))
|
||||
<a href="{{ route('platform.companies.index') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('platform.companies.*')) is-active @endif" title="{{ __('Companies') }}">
|
||||
<i class="fa-solid fa-building wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label>{{ __('Companies') }}</span>
|
||||
</a>
|
||||
@endif
|
||||
@if(Route::has('platform.licenses.index'))
|
||||
<a href="{{ route('platform.licenses.index') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('platform.licenses.*')) is-active @endif" title="{{ __('Licences') }}">
|
||||
<i class="fa-solid fa-key wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label>{{ __('Licences') }}</span>
|
||||
</a>
|
||||
@endif
|
||||
@if(Route::has('platform.payments.index'))
|
||||
<a href="{{ route('platform.payments.index') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('platform.payments.*')) is-active @endif" title="{{ __('Payments') }}">
|
||||
<i class="fa-solid fa-credit-card wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label>{{ __('Payments') }}</span>
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
</nav>
|
||||
|
||||
@@ -115,11 +189,7 @@
|
||||
<flux:menu.radio.group>
|
||||
<div class="p-0 text-sm font-normal">
|
||||
<div class="flex items-center gap-2 px-1 py-1.5 text-start text-sm">
|
||||
<flux:avatar
|
||||
:name="auth()->user()?->name ?? 'User'"
|
||||
:initials="auth()->user()?->initials() ?? 'U'"
|
||||
/>
|
||||
|
||||
<flux:avatar :name="auth()->user()?->name ?? 'User'" :initials="auth()->user()?->initials() ?? 'U'" />
|
||||
<div class="grid flex-1 text-start text-sm leading-tight">
|
||||
<flux:heading class="truncate">{{ auth()->user()?->name ?? __('User') }}</flux:heading>
|
||||
<flux:text class="truncate">{{ auth()->user()?->email ?? '' }}</flux:text>
|
||||
@@ -127,108 +197,71 @@
|
||||
</div>
|
||||
</div>
|
||||
</flux:menu.radio.group>
|
||||
|
||||
<flux:menu.separator />
|
||||
|
||||
<flux:menu.radio.group>
|
||||
<flux:menu.item :href="route('profile.edit')" icon="cog" wire:navigate>
|
||||
{{ __('Settings') }}
|
||||
</flux:menu.item>
|
||||
</flux:menu.radio.group>
|
||||
|
||||
<flux:menu.item :href="route('profile.edit')" icon="cog" wire:navigate>{{ __('Settings') }}</flux:menu.item>
|
||||
<flux:menu.separator />
|
||||
|
||||
<form method="POST" action="{{ route('logout') }}" class="w-full">
|
||||
@csrf
|
||||
<flux:menu.item
|
||||
as="button"
|
||||
type="submit"
|
||||
icon="arrow-right-start-on-rectangle"
|
||||
class="w-full cursor-pointer"
|
||||
data-test="logout-button"
|
||||
>
|
||||
{{ __('Log out') }}
|
||||
</flux:menu.item>
|
||||
<flux:menu.item as="button" type="submit" icon="arrow-right-start-on-rectangle" class="w-full cursor-pointer" data-test="logout-button">{{ __('Log out') }}</flux:menu.item>
|
||||
</form>
|
||||
</flux:menu>
|
||||
</flux:dropdown>
|
||||
|
||||
<flux:dropdown position="top" align="start">
|
||||
<button type="button" class="wms-user-rail-button" title="{{ __('Account') }}">
|
||||
{{ auth()->user()?->initials() ?? 'U' }}
|
||||
</button>
|
||||
|
||||
<button type="button" class="wms-user-rail-button" title="{{ __('Account') }}">{{ auth()->user()?->initials() ?? 'U' }}</button>
|
||||
<flux:menu>
|
||||
<flux:menu.item :href="route('profile.edit')" icon="cog" wire:navigate>{{ __('Settings') }}</flux:menu.item>
|
||||
<flux:menu.separator />
|
||||
<form method="POST" action="{{ route('logout') }}" class="w-full">
|
||||
@csrf
|
||||
<flux:menu.item as="button" type="submit" icon="arrow-right-start-on-rectangle" class="w-full cursor-pointer">
|
||||
{{ __('Log out') }}
|
||||
</flux:menu.item>
|
||||
<flux:menu.item as="button" type="submit" icon="arrow-right-start-on-rectangle" class="w-full cursor-pointer">{{ __('Log out') }}</flux:menu.item>
|
||||
</form>
|
||||
</flux:menu>
|
||||
</flux:dropdown>
|
||||
</div>
|
||||
</aside>
|
||||
|
||||
<div class="wms-main-column">
|
||||
<header class="wms-mobile-header">
|
||||
<button type="button" class="wms-mobile-menu" data-wms-mobile-open aria-label="{{ __('Open navigation') }}">
|
||||
<div class="wms-main-panel">
|
||||
<header class="wms-topbar">
|
||||
<button type="button" class="wms-mobile-menu-button" data-wms-mobile-open aria-label="{{ __('Open navigation') }}">
|
||||
<i class="fa-solid fa-bars" aria-hidden="true"></i>
|
||||
</button>
|
||||
|
||||
<a href="{{ auth()->user()?->isMpbaPlatformAdmin() ? route('platform.dashboard') : route('dashboard') }}" wire:navigate class="wms-mobile-title">
|
||||
{{ __('Warehouse Management System') }}
|
||||
</a>
|
||||
<div>
|
||||
<div class="wms-topbar-eyebrow">{{ __('MPBA') }}</div>
|
||||
<h1 class="wms-topbar-title">{{ $title ?? __('Warehouse Management System') }}</h1>
|
||||
</div>
|
||||
|
||||
<flux:dropdown position="top" align="end">
|
||||
<flux:profile
|
||||
:initials="auth()->user()?->initials() ?? 'U'"
|
||||
icon-trailing="chevron-down"
|
||||
/>
|
||||
<div class="wms-topbar-actions">
|
||||
<div class="wms-health-pill" title="{{ __('System status') }}">
|
||||
<i class="fa-solid fa-heart-pulse" aria-hidden="true"></i>
|
||||
<span>{{ __('OK') }}</span>
|
||||
</div>
|
||||
|
||||
<flux:menu>
|
||||
<flux:menu.radio.group>
|
||||
<div class="p-0 text-sm font-normal">
|
||||
<div class="flex items-center gap-2 px-1 py-1.5 text-start text-sm">
|
||||
<flux:avatar
|
||||
:name="auth()->user()?->name ?? 'User'"
|
||||
:initials="auth()->user()?->initials() ?? 'U'"
|
||||
/>
|
||||
|
||||
<div class="grid flex-1 text-start text-sm leading-tight">
|
||||
<flux:heading class="truncate">{{ auth()->user()?->name ?? __('User') }}</flux:heading>
|
||||
<flux:text class="truncate">{{ auth()->user()?->email ?? '' }}</flux:text>
|
||||
<flux:dropdown position="bottom" align="end">
|
||||
<flux:profile :initials="auth()->user()?->initials() ?? 'U'" icon-trailing="chevron-down" />
|
||||
<flux:menu>
|
||||
<flux:menu.radio.group>
|
||||
<div class="p-0 text-sm font-normal">
|
||||
<div class="flex items-center gap-2 px-1 py-1.5 text-start text-sm">
|
||||
<flux:avatar :name="auth()->user()?->name ?? 'User'" :initials="auth()->user()?->initials() ?? 'U'" />
|
||||
<div class="grid flex-1 text-start text-sm leading-tight">
|
||||
<flux:heading class="truncate">{{ auth()->user()?->name ?? __('User') }}</flux:heading>
|
||||
<flux:text class="truncate">{{ auth()->user()?->email ?? '' }}</flux:text>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</flux:menu.radio.group>
|
||||
|
||||
<flux:menu.separator />
|
||||
|
||||
<flux:menu.radio.group>
|
||||
<flux:menu.item :href="route('profile.edit')" icon="cog" wire:navigate>
|
||||
{{ __('Settings') }}
|
||||
</flux:menu.item>
|
||||
</flux:menu.radio.group>
|
||||
|
||||
<flux:menu.separator />
|
||||
|
||||
<form method="POST" action="{{ route('logout') }}" class="w-full">
|
||||
@csrf
|
||||
<flux:menu.item
|
||||
as="button"
|
||||
type="submit"
|
||||
icon="arrow-right-start-on-rectangle"
|
||||
class="w-full cursor-pointer"
|
||||
data-test="logout-button"
|
||||
>
|
||||
{{ __('Log out') }}
|
||||
</flux:menu.item>
|
||||
</form>
|
||||
</flux:menu>
|
||||
</flux:dropdown>
|
||||
</flux:menu.radio.group>
|
||||
<flux:menu.separator />
|
||||
<flux:menu.item :href="route('profile.edit')" icon="cog" wire:navigate>{{ __('Settings') }}</flux:menu.item>
|
||||
<flux:menu.separator />
|
||||
<form method="POST" action="{{ route('logout') }}" class="w-full">
|
||||
@csrf
|
||||
<flux:menu.item as="button" type="submit" icon="arrow-right-start-on-rectangle" class="w-full cursor-pointer" data-test="logout-button">{{ __('Log out') }}</flux:menu.item>
|
||||
</form>
|
||||
</flux:menu>
|
||||
</flux:dropdown>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main class="wms-content">
|
||||
@@ -238,9 +271,7 @@
|
||||
</div>
|
||||
|
||||
@persist('toast')
|
||||
<flux:toast.group>
|
||||
<flux:toast />
|
||||
</flux:toast.group>
|
||||
<flux:toast.group><flux:toast /></flux:toast.group>
|
||||
@endpersist
|
||||
|
||||
@fluxScripts
|
||||
@@ -252,9 +283,7 @@
|
||||
function applySidebarState() {
|
||||
const root = document.documentElement;
|
||||
const saved = localStorage.getItem(STORAGE_KEY) || 'expanded';
|
||||
|
||||
root.dataset.wmsSidebar = saved === 'collapsed' ? 'collapsed' : 'expanded';
|
||||
|
||||
document.querySelectorAll('[data-wms-sidebar-toggle]').forEach((button) => {
|
||||
const expanded = root.dataset.wmsSidebar !== 'collapsed';
|
||||
button.setAttribute('aria-expanded', expanded ? 'true' : 'false');
|
||||
@@ -262,62 +291,38 @@
|
||||
});
|
||||
}
|
||||
|
||||
function closeMobileSidebar() {
|
||||
document.documentElement.dataset.wmsMobileSidebar = 'closed';
|
||||
}
|
||||
|
||||
function openMobileSidebar() {
|
||||
document.documentElement.dataset.wmsMobileSidebar = 'open';
|
||||
}
|
||||
function closeMobileSidebar() { document.documentElement.dataset.wmsMobileSidebar = 'closed'; }
|
||||
function openMobileSidebar() { document.documentElement.dataset.wmsMobileSidebar = 'open'; }
|
||||
|
||||
function bindSidebarControls() {
|
||||
applySidebarState();
|
||||
|
||||
document.querySelectorAll('[data-wms-sidebar-toggle]').forEach((button) => {
|
||||
if (button.dataset.wmsBound === '1') {
|
||||
return;
|
||||
}
|
||||
|
||||
if (button.dataset.wmsBound === '1') return;
|
||||
button.dataset.wmsBound = '1';
|
||||
|
||||
button.addEventListener('click', function () {
|
||||
const root = document.documentElement;
|
||||
const next = root.dataset.wmsSidebar === 'collapsed' ? 'expanded' : 'collapsed';
|
||||
|
||||
root.dataset.wmsSidebar = next;
|
||||
localStorage.setItem(STORAGE_KEY, next);
|
||||
applySidebarState();
|
||||
});
|
||||
});
|
||||
|
||||
document.querySelectorAll('[data-wms-mobile-open]').forEach((button) => {
|
||||
if (button.dataset.wmsBound === '1') {
|
||||
return;
|
||||
}
|
||||
|
||||
if (button.dataset.wmsBound === '1') return;
|
||||
button.dataset.wmsBound = '1';
|
||||
button.addEventListener('click', openMobileSidebar);
|
||||
});
|
||||
|
||||
document.querySelectorAll('[data-wms-mobile-close]').forEach((button) => {
|
||||
if (button.dataset.wmsBound === '1') {
|
||||
return;
|
||||
}
|
||||
|
||||
if (button.dataset.wmsBound === '1') return;
|
||||
button.dataset.wmsBound = '1';
|
||||
button.addEventListener('click', closeMobileSidebar);
|
||||
});
|
||||
|
||||
document.querySelectorAll('.wms-sidebar-link[wire\\:navigate]').forEach((link) => {
|
||||
if (link.dataset.wmsMobileBound === '1') {
|
||||
return;
|
||||
}
|
||||
|
||||
if (link.dataset.wmsMobileBound === '1') return;
|
||||
link.dataset.wmsMobileBound = '1';
|
||||
link.addEventListener('click', closeMobileSidebar);
|
||||
});
|
||||
}
|
||||
|
||||
document.addEventListener('DOMContentLoaded', bindSidebarControls);
|
||||
document.addEventListener('livewire:navigated', bindSidebarControls);
|
||||
})();
|
||||
|
||||
@@ -0,0 +1,140 @@
|
||||
<?php if (isset($component)) { $__componentOriginal81a506f898233b9e7d58286e6bea3c18 = $component; } ?>
|
||||
<?php if (isset($attributes)) { $__attributesOriginal81a506f898233b9e7d58286e6bea3c18 = $attributes; } ?>
|
||||
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('Analytics')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
|
||||
<?php $component->withName('layouts::app'); ?>
|
||||
<?php if ($component->shouldRender()): ?>
|
||||
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
|
||||
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
|
||||
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
|
||||
<?php endif; ?>
|
||||
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Analytics'))]); ?>
|
||||
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
|
||||
|
||||
<div class="container-fluid py-4 module-page module-analytics">
|
||||
<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">Analytics</h1>
|
||||
<p class="mb-0 opacity-75">Display KPIs, warehouse performance trends, executive summaries, and OTTC analysis.</p>
|
||||
</div>
|
||||
|
||||
<div class="module-hero-icon" aria-hidden="true">
|
||||
<i class="bi bi-graph-up-arrow"></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">KPI1 Bar</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for kpi1 bar.</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">KPI1 Line</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for kpi1 line.</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">OTTC</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for ottc.</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">Warehouse Performance</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for warehouse performance.</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">Analytics 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>Metric</th>
|
||||
<th>Today</th>
|
||||
<th>Week</th>
|
||||
<th class="text-end">Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>KPI1 Bar</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>KPI1 Line</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>OTTC</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>Warehouse Performance</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>
|
||||
<?php echo $__env->renderComponent(); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
|
||||
<?php $attributes = $__attributesOriginal81a506f898233b9e7d58286e6bea3c18; ?>
|
||||
<?php unset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($__componentOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
|
||||
<?php $component = $__componentOriginal81a506f898233b9e7d58286e6bea3c18; ?>
|
||||
<?php unset($__componentOriginal81a506f898233b9e7d58286e6bea3c18); ?>
|
||||
<?php endif; ?>
|
||||
<?php /**PATH /Users/mag/Sites/WMS/Core/modules/Analytics/Providers/../Resources/views/index.blade.php ENDPATH**/ ?>
|
||||
@@ -0,0 +1,140 @@
|
||||
<?php if (isset($component)) { $__componentOriginal81a506f898233b9e7d58286e6bea3c18 = $component; } ?>
|
||||
<?php if (isset($attributes)) { $__attributesOriginal81a506f898233b9e7d58286e6bea3c18 = $attributes; } ?>
|
||||
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('Audit')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
|
||||
<?php $component->withName('layouts::app'); ?>
|
||||
<?php if ($component->shouldRender()): ?>
|
||||
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
|
||||
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
|
||||
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
|
||||
<?php endif; ?>
|
||||
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Audit'))]); ?>
|
||||
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
|
||||
|
||||
<div class="container-fluid py-4 module-page module-audit">
|
||||
<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">Audit</h1>
|
||||
<p class="mb-0 opacity-75">Review activity logs, data changes, interface events, and administrative actions.</p>
|
||||
</div>
|
||||
|
||||
<div class="module-hero-icon" aria-hidden="true">
|
||||
<i class="bi bi-clipboard-check"></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">Activity Log</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for activity log.</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">Data Changes</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for data changes.</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">API Audit</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for api audit.</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">User Actions</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for user actions.</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">Audit 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>When</th>
|
||||
<th>User</th>
|
||||
<th>Action</th>
|
||||
<th class="text-end">Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Activity Log</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>Data Changes</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>API Audit</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>User Actions</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>
|
||||
<?php echo $__env->renderComponent(); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
|
||||
<?php $attributes = $__attributesOriginal81a506f898233b9e7d58286e6bea3c18; ?>
|
||||
<?php unset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($__componentOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
|
||||
<?php $component = $__componentOriginal81a506f898233b9e7d58286e6bea3c18; ?>
|
||||
<?php unset($__componentOriginal81a506f898233b9e7d58286e6bea3c18); ?>
|
||||
<?php endif; ?>
|
||||
<?php /**PATH /Users/mag/Sites/WMS/Core/modules/Audit/Providers/../Resources/views/index.blade.php ENDPATH**/ ?>
|
||||
@@ -0,0 +1,140 @@
|
||||
<?php if (isset($component)) { $__componentOriginal81a506f898233b9e7d58286e6bea3c18 = $component; } ?>
|
||||
<?php if (isset($attributes)) { $__attributesOriginal81a506f898233b9e7d58286e6bea3c18 = $attributes; } ?>
|
||||
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('Inventory Management')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
|
||||
<?php $component->withName('layouts::app'); ?>
|
||||
<?php if ($component->shouldRender()): ?>
|
||||
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
|
||||
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
|
||||
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
|
||||
<?php endif; ?>
|
||||
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Inventory Management'))]); ?>
|
||||
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
|
||||
|
||||
<div class="container-fluid py-4 module-page module-inventory-management">
|
||||
<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">Inventory Management</h1>
|
||||
<p class="mb-0 opacity-75">Track inventory movement, stock visibility, pallet quantities, and product availability.</p>
|
||||
</div>
|
||||
|
||||
<div class="module-hero-icon" aria-hidden="true">
|
||||
<i class="bi bi-boxes"></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">Stock Overview</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for stock overview.</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">Pallet Quantity Rules</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for pallet quantity rules.</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">Inventory Exceptions</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for inventory exceptions.</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">Product Movement</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for product movement.</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">Inventory Management 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>Part Number</th>
|
||||
<th>Description</th>
|
||||
<th>Pallet Qty</th>
|
||||
<th class="text-end">Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Stock Overview</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>Pallet Quantity Rules</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>Inventory Exceptions</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>Product Movement</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>
|
||||
<?php echo $__env->renderComponent(); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
|
||||
<?php $attributes = $__attributesOriginal81a506f898233b9e7d58286e6bea3c18; ?>
|
||||
<?php unset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($__componentOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
|
||||
<?php $component = $__componentOriginal81a506f898233b9e7d58286e6bea3c18; ?>
|
||||
<?php unset($__componentOriginal81a506f898233b9e7d58286e6bea3c18); ?>
|
||||
<?php endif; ?>
|
||||
<?php /**PATH /Users/mag/Sites/WMS/Core/modules/InventoryManagement/Providers/../Resources/views/index.blade.php ENDPATH**/ ?>
|
||||
@@ -0,0 +1,140 @@
|
||||
<?php if (isset($component)) { $__componentOriginal81a506f898233b9e7d58286e6bea3c18 = $component; } ?>
|
||||
<?php if (isset($attributes)) { $__attributesOriginal81a506f898233b9e7d58286e6bea3c18 = $attributes; } ?>
|
||||
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('Sentinel Integration')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
|
||||
<?php $component->withName('layouts::app'); ?>
|
||||
<?php if ($component->shouldRender()): ?>
|
||||
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
|
||||
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
|
||||
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
|
||||
<?php endif; ?>
|
||||
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Sentinel Integration'))]); ?>
|
||||
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
|
||||
|
||||
<div class="container-fluid py-4 module-page module-sentinel-integration">
|
||||
<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">Sentinel Integration</h1>
|
||||
<p class="mb-0 opacity-75">Track Sentinel API activity, inbound receiver events, and interface status.</p>
|
||||
</div>
|
||||
|
||||
<div class="module-hero-icon" aria-hidden="true">
|
||||
<i class="bi bi-broadcast"></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">Sentinel Receiver</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for sentinel receiver.</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">API Activity</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for api activity.</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">Interface Health</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for interface health.</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">Payload Archive</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for payload archive.</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">Sentinel Integration 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>Endpoint</th>
|
||||
<th>Reference</th>
|
||||
<th>HTTP</th>
|
||||
<th class="text-end">Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Sentinel Receiver</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>API Activity</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>Interface Health</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>Payload Archive</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>
|
||||
<?php echo $__env->renderComponent(); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
|
||||
<?php $attributes = $__attributesOriginal81a506f898233b9e7d58286e6bea3c18; ?>
|
||||
<?php unset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($__componentOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
|
||||
<?php $component = $__componentOriginal81a506f898233b9e7d58286e6bea3c18; ?>
|
||||
<?php unset($__componentOriginal81a506f898233b9e7d58286e6bea3c18); ?>
|
||||
<?php endif; ?>
|
||||
<?php /**PATH /Users/mag/Sites/WMS/Core/modules/SentinelIntegration/Providers/../Resources/views/index.blade.php ENDPATH**/ ?>
|
||||
@@ -0,0 +1,140 @@
|
||||
<?php if (isset($component)) { $__componentOriginal81a506f898233b9e7d58286e6bea3c18 = $component; } ?>
|
||||
<?php if (isset($attributes)) { $__attributesOriginal81a506f898233b9e7d58286e6bea3c18 = $attributes; } ?>
|
||||
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('Replenishment')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
|
||||
<?php $component->withName('layouts::app'); ?>
|
||||
<?php if ($component->shouldRender()): ?>
|
||||
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
|
||||
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
|
||||
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
|
||||
<?php endif; ?>
|
||||
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Replenishment'))]); ?>
|
||||
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
|
||||
|
||||
<div class="container-fluid py-4 module-page module-replenishment">
|
||||
<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">Replenishment</h1>
|
||||
<p class="mb-0 opacity-75">Configure replenishment thresholds, review stock gaps, and monitor refill activity.</p>
|
||||
</div>
|
||||
|
||||
<div class="module-hero-icon" aria-hidden="true">
|
||||
<i class="bi bi-arrow-repeat"></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">Replenishment Rules</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for replenishment rules.</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">Minimum Stock</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for minimum stock.</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">Suggested Transfers</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for suggested transfers.</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">Exception Queue</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for exception queue.</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">Replenishment 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>Item</th>
|
||||
<th>Minimum</th>
|
||||
<th>Current</th>
|
||||
<th class="text-end">Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Replenishment Rules</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>Minimum Stock</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>Suggested Transfers</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>Exception Queue</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>
|
||||
<?php echo $__env->renderComponent(); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
|
||||
<?php $attributes = $__attributesOriginal81a506f898233b9e7d58286e6bea3c18; ?>
|
||||
<?php unset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($__componentOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
|
||||
<?php $component = $__componentOriginal81a506f898233b9e7d58286e6bea3c18; ?>
|
||||
<?php unset($__componentOriginal81a506f898233b9e7d58286e6bea3c18); ?>
|
||||
<?php endif; ?>
|
||||
<?php /**PATH /Users/mag/Sites/WMS/Core/modules/Replenishment/Providers/../Resources/views/index.blade.php ENDPATH**/ ?>
|
||||
@@ -3,7 +3,6 @@
|
||||
<?php # [BlazeFolded]:{flux::menu.radio.group}:{/Users/mag/Sites/WMS/Core/vendor/livewire/flux/src/../stubs/resources/views/flux/menu/radio/group.blade.php}:{1776985208} ?>
|
||||
<?php # [BlazeFolded]:{flux::menu.separator}:{/Users/mag/Sites/WMS/Core/vendor/livewire/flux/src/../stubs/resources/views/flux/menu/separator.blade.php}:{1776985208} ?>
|
||||
<?php # [BlazeFolded]:{flux::menu.item}:{/Users/mag/Sites/WMS/Core/vendor/livewire/flux/src/../stubs/resources/views/flux/menu/item.blade.php}:{1776985208} ?>
|
||||
<?php # [BlazeFolded]:{flux::menu.radio.group}:{/Users/mag/Sites/WMS/Core/vendor/livewire/flux/src/../stubs/resources/views/flux/menu/radio/group.blade.php}:{1776985208} ?>
|
||||
<?php # [BlazeFolded]:{flux::menu.separator}:{/Users/mag/Sites/WMS/Core/vendor/livewire/flux/src/../stubs/resources/views/flux/menu/separator.blade.php}:{1776985208} ?>
|
||||
<?php # [BlazeFolded]:{flux::menu.item}:{/Users/mag/Sites/WMS/Core/vendor/livewire/flux/src/../stubs/resources/views/flux/menu/item.blade.php}:{1776985208} ?>
|
||||
<?php # [BlazeFolded]:{flux::menu}:{/Users/mag/Sites/WMS/Core/vendor/livewire/flux/src/../stubs/resources/views/flux/menu/index.blade.php}:{1776985208} ?>
|
||||
@@ -18,7 +17,6 @@
|
||||
<?php # [BlazeFolded]:{flux::menu.radio.group}:{/Users/mag/Sites/WMS/Core/vendor/livewire/flux/src/../stubs/resources/views/flux/menu/radio/group.blade.php}:{1776985208} ?>
|
||||
<?php # [BlazeFolded]:{flux::menu.separator}:{/Users/mag/Sites/WMS/Core/vendor/livewire/flux/src/../stubs/resources/views/flux/menu/separator.blade.php}:{1776985208} ?>
|
||||
<?php # [BlazeFolded]:{flux::menu.item}:{/Users/mag/Sites/WMS/Core/vendor/livewire/flux/src/../stubs/resources/views/flux/menu/item.blade.php}:{1776985208} ?>
|
||||
<?php # [BlazeFolded]:{flux::menu.radio.group}:{/Users/mag/Sites/WMS/Core/vendor/livewire/flux/src/../stubs/resources/views/flux/menu/radio/group.blade.php}:{1776985208} ?>
|
||||
<?php # [BlazeFolded]:{flux::menu.separator}:{/Users/mag/Sites/WMS/Core/vendor/livewire/flux/src/../stubs/resources/views/flux/menu/separator.blade.php}:{1776985208} ?>
|
||||
<?php # [BlazeFolded]:{flux::menu.item}:{/Users/mag/Sites/WMS/Core/vendor/livewire/flux/src/../stubs/resources/views/flux/menu/item.blade.php}:{1776985208} ?>
|
||||
<?php # [BlazeFolded]:{flux::menu}:{/Users/mag/Sites/WMS/Core/vendor/livewire/flux/src/../stubs/resources/views/flux/menu/index.blade.php}:{1776985208} ?>
|
||||
@@ -37,93 +35,167 @@
|
||||
|
||||
<aside class="wms-sidebar" data-wms-sidebar aria-label="<?php echo e(__('Main navigation')); ?>">
|
||||
<div class="wms-sidebar-header">
|
||||
<a href="<?php echo e(auth()->user()?->isMpbaPlatformAdmin() ? route('platform.dashboard') : route('dashboard')); ?>" wire:navigate class="wms-brand" aria-label="<?php echo e(__('Warehouse Management System')); ?>">
|
||||
<span class="wms-brand-mark">
|
||||
<span class="wms-brand-mark-inner">W</span>
|
||||
</span>
|
||||
|
||||
<a href="<?php echo e(auth()->user()?->isMpbaPlatformAdmin() && Route::has('platform.dashboard') ? route('platform.dashboard') : route('dashboard')); ?>" wire:navigate class="wms-brand" aria-label="<?php echo e(__('Warehouse Management System')); ?>">
|
||||
<span class="wms-brand-mark"><span class="wms-brand-mark-inner">W</span></span>
|
||||
<span class="wms-brand-copy" data-wms-sidebar-label>
|
||||
<span class="wms-brand-title"><?php echo e(__('Warehouse Management System')); ?></span>
|
||||
<span class="wms-brand-subtitle">MPBA</span>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<button
|
||||
type="button"
|
||||
class="wms-sidebar-toggle"
|
||||
data-wms-sidebar-toggle
|
||||
aria-label="<?php echo e(__('Collapse sidebar')); ?>"
|
||||
aria-expanded="true"
|
||||
>
|
||||
<button type="button" class="wms-sidebar-toggle" data-wms-sidebar-toggle aria-label="<?php echo e(__('Collapse sidebar')); ?>" aria-expanded="true">
|
||||
<span class="wms-toggle-expanded">‹</span>
|
||||
<span class="wms-toggle-collapsed">›</span>
|
||||
</button>
|
||||
|
||||
<button
|
||||
type="button"
|
||||
class="wms-mobile-close"
|
||||
data-wms-mobile-close
|
||||
aria-label="<?php echo e(__('Close navigation')); ?>"
|
||||
>
|
||||
×
|
||||
</button>
|
||||
<button type="button" class="wms-mobile-close" data-wms-mobile-close aria-label="<?php echo e(__('Close navigation')); ?>">×</button>
|
||||
</div>
|
||||
|
||||
<nav class="wms-sidebar-nav" aria-label="<?php echo e(__('Operations')); ?>">
|
||||
<nav class="wms-sidebar-nav" aria-label="<?php echo e(__('Main navigation')); ?>">
|
||||
<div class="wms-sidebar-group">
|
||||
<div class="wms-sidebar-heading" data-wms-sidebar-label><?php echo e(__('Operations')); ?></div>
|
||||
<div class="wms-sidebar-heading" data-wms-sidebar-label><?php echo e(__('Platform')); ?></div>
|
||||
|
||||
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if(auth()->user()?->isMpbaPlatformAdmin()): ?>
|
||||
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if(auth()->user()?->isMpbaPlatformAdmin() && Route::has('platform.dashboard')): ?>
|
||||
<a href="<?php echo e(route('platform.dashboard')); ?>" wire:navigate class="wms-sidebar-link <?php if(request()->routeIs('platform.dashboard')): ?> is-active <?php endif; ?>" title="<?php echo e(__('Platform')); ?>">
|
||||
<i class="fa-solid fa-screwdriver-wrench wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label><?php echo e(__('Platform')); ?></span>
|
||||
</a>
|
||||
<?php else: ?>
|
||||
<?php elseif(Route::has('dashboard')): ?>
|
||||
<a href="<?php echo e(route('dashboard')); ?>" wire:navigate class="wms-sidebar-link <?php if(request()->routeIs('dashboard')): ?> is-active <?php endif; ?>" title="<?php echo e(__('Dashboard')); ?>">
|
||||
<i class="fa-solid fa-gauge-high wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label><?php echo e(__('Dashboard')); ?></span>
|
||||
</a>
|
||||
<?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
|
||||
</div>
|
||||
|
||||
<div class="wms-sidebar-group">
|
||||
<div class="wms-sidebar-heading" data-wms-sidebar-label><?php echo e(__('Operations')); ?></div>
|
||||
|
||||
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if(Route::has('analytics.index')): ?>
|
||||
<a href="<?php echo e(route('analytics.index')); ?>" wire:navigate class="wms-sidebar-link <?php if(request()->routeIs('analytics.*')): ?> is-active <?php endif; ?>" title="<?php echo e(__('Analytics')); ?>">
|
||||
<i class="fa-solid fa-chart-line wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label><?php echo e(__('Analytics')); ?></span>
|
||||
</a>
|
||||
<?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
|
||||
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if(Route::has('inventory-management.index')): ?>
|
||||
<a href="<?php echo e(route('inventory-management.index')); ?>" wire:navigate class="wms-sidebar-link <?php if(request()->routeIs('inventory-management.*')): ?> is-active <?php endif; ?>" title="<?php echo e(__('Inventory')); ?>">
|
||||
<i class="fa-solid fa-boxes-stacked wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label><?php echo e(__('Inventory')); ?></span>
|
||||
</a>
|
||||
<?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
|
||||
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if(Route::has('replenishment.index')): ?>
|
||||
<a href="<?php echo e(route('replenishment.index')); ?>" wire:navigate class="wms-sidebar-link <?php if(request()->routeIs('replenishment.*')): ?> is-active <?php endif; ?>" title="<?php echo e(__('Replenishment')); ?>">
|
||||
<i class="fa-solid fa-arrows-rotate wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label><?php echo e(__('Replenishment')); ?></span>
|
||||
</a>
|
||||
<?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
|
||||
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if(Route::has('shipping.index')): ?>
|
||||
<a href="<?php echo e(route('shipping.index')); ?>" wire:navigate class="wms-sidebar-link <?php if(request()->routeIs('shipping.*')): ?> is-active <?php endif; ?>" title="<?php echo e(__('Shipping')); ?>">
|
||||
<i class="fa-solid fa-truck-fast wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label><?php echo e(__('Shipping')); ?></span>
|
||||
</a>
|
||||
<?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
|
||||
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if(Route::has('transportation.index')): ?>
|
||||
<a href="<?php echo e(route('transportation.index')); ?>" wire:navigate class="wms-sidebar-link <?php if(request()->routeIs('transportation.*')): ?> is-active <?php endif; ?>" title="<?php echo e(__('Transportation')); ?>">
|
||||
<i class="fa-solid fa-truck-ramp-box wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label><?php echo e(__('Transportation')); ?></span>
|
||||
</a>
|
||||
<?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
|
||||
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if(Route::has('carrier-management.index')): ?>
|
||||
<a href="<?php echo e(route('carrier-management.index')); ?>" wire:navigate class="wms-sidebar-link <?php if(request()->routeIs('carrier-management.*')): ?> is-active <?php endif; ?>" title="<?php echo e(__('Carriers')); ?>">
|
||||
<i class="fa-solid fa-route wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label><?php echo e(__('Carriers')); ?></span>
|
||||
</a>
|
||||
<?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
|
||||
</div>
|
||||
|
||||
<div class="wms-sidebar-group">
|
||||
<div class="wms-sidebar-heading" data-wms-sidebar-label><?php echo e(__('Integration & Reporting')); ?></div>
|
||||
|
||||
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if(Route::has('m3-integration.index')): ?>
|
||||
<a href="<?php echo e(route('m3-integration.index')); ?>" wire:navigate class="wms-sidebar-link <?php if(request()->routeIs('m3-integration.*')): ?> is-active <?php endif; ?>" title="<?php echo e(__('M3 Integration')); ?>">
|
||||
<i class="fa-solid fa-plug-circle-bolt wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label><?php echo e(__('M3 Integration')); ?></span>
|
||||
</a>
|
||||
<?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
|
||||
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if(Route::has('sentinel-integration.index')): ?>
|
||||
<a href="<?php echo e(route('sentinel-integration.index')); ?>" wire:navigate class="wms-sidebar-link <?php if(request()->routeIs('sentinel-integration.*')): ?> is-active <?php endif; ?>" title="<?php echo e(__('Sentinel')); ?>">
|
||||
<i class="fa-solid fa-satellite-dish wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label><?php echo e(__('Sentinel')); ?></span>
|
||||
</a>
|
||||
<?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
|
||||
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if(Route::has('document-archive.index')): ?>
|
||||
<a href="<?php echo e(route('document-archive.index')); ?>" wire:navigate class="wms-sidebar-link <?php if(request()->routeIs('document-archive.*')): ?> is-active <?php endif; ?>" title="<?php echo e(__('Documents')); ?>">
|
||||
<i class="fa-solid fa-box-archive wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label><?php echo e(__('Documents')); ?></span>
|
||||
</a>
|
||||
<?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
|
||||
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if(Route::has('reporting.index')): ?>
|
||||
<a href="<?php echo e(route('reporting.index')); ?>" wire:navigate class="wms-sidebar-link <?php if(request()->routeIs('reporting.*')): ?> is-active <?php endif; ?>" title="<?php echo e(__('Reporting')); ?>">
|
||||
<i class="fa-solid fa-file-lines wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label><?php echo e(__('Reporting')); ?></span>
|
||||
</a>
|
||||
<?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
|
||||
</div>
|
||||
|
||||
<div class="wms-sidebar-group">
|
||||
<div class="wms-sidebar-heading" data-wms-sidebar-label><?php echo e(__('Administration')); ?></div>
|
||||
|
||||
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if(Route::has('warehouses.index')): ?>
|
||||
<a href="<?php echo e(route('warehouses.index')); ?>" wire:navigate class="wms-sidebar-link <?php if(request()->routeIs('warehouses.*')): ?> is-active <?php endif; ?>" title="<?php echo e(__('Warehouses')); ?>">
|
||||
<i class="fa-solid fa-warehouse wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label><?php echo e(__('Warehouses')); ?></span>
|
||||
</a>
|
||||
<?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
|
||||
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if(Route::has('warehouse-rules.index')): ?>
|
||||
<a href="<?php echo e(route('warehouse-rules.index')); ?>" wire:navigate class="wms-sidebar-link <?php if(request()->routeIs('warehouse-rules.*')): ?> is-active <?php endif; ?>" title="<?php echo e(__('Validation Rules')); ?>">
|
||||
<i class="fa-solid fa-shield-halved wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label><?php echo e(__('Validation Rules')); ?></span>
|
||||
</a>
|
||||
<?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
|
||||
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if(Route::has('configuration.index')): ?>
|
||||
<a href="<?php echo e(route('configuration.index')); ?>" wire:navigate class="wms-sidebar-link <?php if(request()->routeIs('configuration.*')): ?> is-active <?php endif; ?>" title="<?php echo e(__('Configuration')); ?>">
|
||||
<i class="fa-solid fa-sliders wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label><?php echo e(__('Configuration')); ?></span>
|
||||
</a>
|
||||
<?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
|
||||
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if(Route::has('security.index')): ?>
|
||||
<a href="<?php echo e(route('security.index')); ?>" wire:navigate class="wms-sidebar-link <?php if(request()->routeIs('security.*')): ?> is-active <?php endif; ?>" title="<?php echo e(__('Security')); ?>">
|
||||
<i class="fa-solid fa-user-shield wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label><?php echo e(__('Security')); ?></span>
|
||||
</a>
|
||||
<?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
|
||||
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if(Route::has('audit.index')): ?>
|
||||
<a href="<?php echo e(route('audit.index')); ?>" wire:navigate class="wms-sidebar-link <?php if(request()->routeIs('audit.*')): ?> is-active <?php endif; ?>" title="<?php echo e(__('Audit')); ?>">
|
||||
<i class="fa-solid fa-clipboard-check wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label><?php echo e(__('Audit')); ?></span>
|
||||
</a>
|
||||
<?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
|
||||
</div>
|
||||
|
||||
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if(auth()->user()?->isMpbaPlatformAdmin()): ?>
|
||||
<div class="wms-sidebar-group">
|
||||
<div class="wms-sidebar-heading" data-wms-sidebar-label><?php echo e(__('Administration')); ?></div>
|
||||
<div class="wms-sidebar-group">
|
||||
<div class="wms-sidebar-heading" data-wms-sidebar-label><?php echo e(__('Platform Administration')); ?></div>
|
||||
|
||||
<a href="<?php echo e(route('warehouses.index')); ?>" wire:navigate class="wms-sidebar-link <?php if(request()->routeIs('warehouses.*')): ?> is-active <?php endif; ?>" title="<?php echo e(__('Warehouses')); ?>">
|
||||
<i class="fa-solid fa-warehouse wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label><?php echo e(__('Warehouses')); ?></span>
|
||||
</a>
|
||||
<a href="<?php echo e(route('warehouse-rules.index')); ?>" wire:navigate class="wms-sidebar-link <?php if(request()->routeIs('warehouse-rules.*')): ?> is-active <?php endif; ?>" title="<?php echo e(__('Validation Rules')); ?>">
|
||||
<i class="fa-solid fa-shield-halved wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label><?php echo e(__('Validation Rules')); ?></span>
|
||||
</a>
|
||||
<a href="<?php echo e(route('platform.companies.index')); ?>" wire:navigate class="wms-sidebar-link <?php if(request()->routeIs('platform.companies.*')): ?> is-active <?php endif; ?>" title="<?php echo e(__('Companies')); ?>">
|
||||
<i class="fa-solid fa-building wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label><?php echo e(__('Companies')); ?></span>
|
||||
</a>
|
||||
|
||||
<a href="<?php echo e(route('platform.licenses.index')); ?>" wire:navigate class="wms-sidebar-link <?php if(request()->routeIs('platform.licenses.*')): ?> is-active <?php endif; ?>" title="<?php echo e(__('Licences')); ?>">
|
||||
<i class="fa-solid fa-key wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label><?php echo e(__('Licences')); ?></span>
|
||||
</a>
|
||||
|
||||
<a href="<?php echo e(route('platform.payments.index')); ?>" wire:navigate class="wms-sidebar-link <?php if(request()->routeIs('platform.payments.*')): ?> is-active <?php endif; ?>" title="<?php echo e(__('Payments')); ?>">
|
||||
<i class="fa-solid fa-credit-card wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label><?php echo e(__('Payments')); ?></span>
|
||||
</a>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
<div class="wms-sidebar-group">
|
||||
<div class="wms-sidebar-heading" data-wms-sidebar-label><?php echo e(__('Administration')); ?></div>
|
||||
|
||||
<a href="<?php echo e(route('warehouses.index')); ?>" wire:navigate class="wms-sidebar-link <?php if(request()->routeIs('warehouses.*')): ?> is-active <?php endif; ?>" title="<?php echo e(__('Warehouses')); ?>">
|
||||
<i class="fa-solid fa-warehouse wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label><?php echo e(__('Warehouses')); ?></span>
|
||||
</a>
|
||||
</div>
|
||||
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if(Route::has('platform.companies.index')): ?>
|
||||
<a href="<?php echo e(route('platform.companies.index')); ?>" wire:navigate class="wms-sidebar-link <?php if(request()->routeIs('platform.companies.*')): ?> is-active <?php endif; ?>" title="<?php echo e(__('Companies')); ?>">
|
||||
<i class="fa-solid fa-building wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label><?php echo e(__('Companies')); ?></span>
|
||||
</a>
|
||||
<?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
|
||||
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if(Route::has('platform.licenses.index')): ?>
|
||||
<a href="<?php echo e(route('platform.licenses.index')); ?>" wire:navigate class="wms-sidebar-link <?php if(request()->routeIs('platform.licenses.*')): ?> is-active <?php endif; ?>" title="<?php echo e(__('Licences')); ?>">
|
||||
<i class="fa-solid fa-key wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label><?php echo e(__('Licences')); ?></span>
|
||||
</a>
|
||||
<?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
|
||||
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if(Route::has('platform.payments.index')): ?>
|
||||
<a href="<?php echo e(route('platform.payments.index')); ?>" wire:navigate class="wms-sidebar-link <?php if(request()->routeIs('platform.payments.*')): ?> is-active <?php endif; ?>" title="<?php echo e(__('Payments')); ?>">
|
||||
<i class="fa-solid fa-credit-card wms-sidebar-icon" aria-hidden="true"></i>
|
||||
<span data-wms-sidebar-label><?php echo e(__('Payments')); ?></span>
|
||||
</a>
|
||||
<?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
|
||||
</div>
|
||||
<?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
|
||||
</nav>
|
||||
|
||||
@@ -153,7 +225,6 @@
|
||||
<?php $__blaze->pushData(['name' => auth()->user()?->name ?? 'User','initials' => auth()->user()?->initials() ?? 'U']); ?>
|
||||
<?php _110c1c2a55a80ff8b2b4fbed62b1a7d3($__blaze, ['name' => auth()->user()?->name ?? 'User','initials' => auth()->user()?->initials() ?? 'U'], [], ['name', 'initials'], [], $__this ?? (isset($this) ? $this : null)); ?>
|
||||
<?php $__blaze->popData(); ?><?php $blaze_memoized_html = ob_get_clean(); ?><?php if ($blaze_memoized_key !== null) { \Livewire\Blaze\Memoizer\Memo::put($blaze_memoized_key, $blaze_memoized_html); } ?><?php echo $blaze_memoized_html; ?><?php endif; ?>
|
||||
|
||||
<div class="grid flex-1 text-start text-sm leading-tight">
|
||||
<?php ob_start(); ?><div class="font-medium [:where(&)]:text-zinc-800 [:where(&)]:dark:text-white text-sm [&:has(+[data-flux-subheading])]:mb-2 [[data-flux-subheading]+&]:mt-2 truncate" data-flux-heading><?php ob_start(); ?><?php echo e(auth()->user()?->name ?? __('User')); ?><?php echo trim(ob_get_clean()); ?></div>
|
||||
<?php echo ltrim(ob_get_clean()); ?>
|
||||
@@ -165,38 +236,25 @@
|
||||
|
||||
</ui-menu-radio-group>
|
||||
<?php echo ltrim(ob_get_clean()); ?>
|
||||
|
||||
<?php ob_start(); ?><div class="-mx-[.3125rem] my-[.3125rem] h-px" data-flux-menu-separator>
|
||||
<div data-orientation="horizontal" role="none" class="border-0 [print-color-adjust:exact] bg-zinc-800/15 dark:bg-white/20 h-px w-full dark:bg-zinc-600!" data-flux-separator></div>
|
||||
</div>
|
||||
<?php echo ltrim(ob_get_clean()); ?>
|
||||
|
||||
<?php ob_start(); ?><ui-menu-radio-group data-flux-menu-radio-group>
|
||||
<?php ob_start(); ?>
|
||||
<?php ob_start(); ?><a href="<?php echo e(route('profile.edit')); ?>" data-flux-menu-item="data-flux-menu-item" data-flux-menu-item-has-icon="data-flux-menu-item-has-icon" class="flex items-center px-2 py-1.5 w-full focus:outline-hidden rounded-md text-start text-sm font-medium [&[disabled]]:opacity-50 text-zinc-800 data-active:bg-zinc-50 dark:text-white dark:data-active:bg-zinc-600 **:data-flux-menu-item-icon:text-zinc-400 dark:**:data-flux-menu-item-icon:text-white/60 [&[data-active]_[data-flux-menu-item-icon]]:text-current" wire:navigate="">
|
||||
<?php ob_start(); ?><a href="<?php echo e(route('profile.edit')); ?>" data-flux-menu-item="data-flux-menu-item" data-flux-menu-item-has-icon="data-flux-menu-item-has-icon" class="flex items-center px-2 py-1.5 w-full focus:outline-hidden rounded-md text-start text-sm font-medium [&[disabled]]:opacity-50 text-zinc-800 data-active:bg-zinc-50 dark:text-white dark:data-active:bg-zinc-600 **:data-flux-menu-item-icon:text-zinc-400 dark:**:data-flux-menu-item-icon:text-white/60 [&[data-active]_[data-flux-menu-item-icon]]:text-current" wire:navigate="">
|
||||
<svg class="shrink-0 [:where(&)]:size-5 me-2" data-flux-menu-item-icon="data-flux-menu-item-icon" data-flux-icon xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" data-slot="icon">
|
||||
<path d="M13.024 9.25c.47 0 .827-.433.637-.863a4 4 0 0 0-4.094-2.364c-.468.05-.665.576-.43.984l1.08 1.868a.75.75 0 0 0 .649.375h2.158ZM7.84 7.758c-.236-.408-.79-.5-1.068-.12A3.982 3.982 0 0 0 6 10c0 .884.287 1.7.772 2.363.278.38.832.287 1.068-.12l1.078-1.868a.75.75 0 0 0 0-.75L7.839 7.758ZM9.138 12.993c-.235.408-.039.934.43.984a4 4 0 0 0 4.094-2.364c.19-.43-.168-.863-.638-.863h-2.158a.75.75 0 0 0-.65.375l-1.078 1.868Z"/>
|
||||
<path fill-rule="evenodd" d="m14.13 4.347.644-1.117a.75.75 0 0 0-1.299-.75l-.644 1.116a6.954 6.954 0 0 0-2.081-.556V1.75a.75.75 0 0 0-1.5 0v1.29a6.954 6.954 0 0 0-2.081.556L6.525 2.48a.75.75 0 1 0-1.3.75l.645 1.117A7.04 7.04 0 0 0 4.347 5.87L3.23 5.225a.75.75 0 1 0-.75 1.3l1.116.644A6.954 6.954 0 0 0 3.04 9.25H1.75a.75.75 0 0 0 0 1.5h1.29c.078.733.27 1.433.556 2.081l-1.116.645a.75.75 0 1 0 .75 1.298l1.117-.644a7.04 7.04 0 0 0 1.523 1.523l-.645 1.117a.75.75 0 1 0 1.3.75l.644-1.116a6.954 6.954 0 0 0 2.081.556v1.29a.75.75 0 0 0 1.5 0v-1.29a6.954 6.954 0 0 0 2.081-.556l.645 1.116a.75.75 0 0 0 1.299-.75l-.645-1.117a7.042 7.042 0 0 0 1.523-1.523l1.117.644a.75.75 0 0 0 .75-1.298l-1.116-.645a6.954 6.954 0 0 0 .556-2.081h1.29a.75.75 0 0 0 0-1.5h-1.29a6.954 6.954 0 0 0-.556-2.081l1.116-.644a.75.75 0 0 0-.75-1.3l-1.117.645a7.04 7.04 0 0 0-1.524-1.523ZM10 4.5a5.475 5.475 0 0 0-2.781.754A5.527 5.527 0 0 0 5.22 7.277 5.475 5.475 0 0 0 4.5 10a5.475 5.475 0 0 0 .752 2.777 5.527 5.527 0 0 0 2.028 2.004c.802.458 1.73.719 2.72.719a5.474 5.474 0 0 0 2.78-.753 5.527 5.527 0 0 0 2.001-2.027c.458-.802.719-1.73.719-2.72a5.475 5.475 0 0 0-.753-2.78 5.528 5.528 0 0 0-2.028-2.002A5.475 5.475 0 0 0 10 4.5Z" clip-rule="evenodd"/>
|
||||
</svg>
|
||||
|
||||
|
||||
<?php ob_start(); ?>
|
||||
<?php echo e(__('Settings')); ?>
|
||||
|
||||
<?php echo trim(ob_get_clean()); ?>
|
||||
<?php ob_start(); ?><?php echo e(__('Settings')); ?><?php echo trim(ob_get_clean()); ?>
|
||||
|
||||
</a>
|
||||
<?php echo ltrim(ob_get_clean()); ?>
|
||||
<?php echo trim(ob_get_clean()); ?>
|
||||
|
||||
</ui-menu-radio-group>
|
||||
<?php echo ltrim(ob_get_clean()); ?>
|
||||
|
||||
<?php ob_start(); ?><div class="-mx-[.3125rem] my-[.3125rem] h-px" data-flux-menu-separator>
|
||||
<div data-orientation="horizontal" role="none" class="border-0 [print-color-adjust:exact] bg-zinc-800/15 dark:bg-white/20 h-px w-full dark:bg-zinc-600!" data-flux-separator></div>
|
||||
</div>
|
||||
<?php echo ltrim(ob_get_clean()); ?>
|
||||
|
||||
<form method="POST" action="<?php echo e(route('logout')); ?>" class="w-full">
|
||||
<?php echo csrf_field(); ?>
|
||||
<?php ob_start(); ?><button type="submit" class="flex items-center px-2 py-1.5 w-full focus:outline-hidden rounded-md text-start text-sm font-medium [&[disabled]]:opacity-50 text-zinc-800 data-active:bg-zinc-50 dark:text-white dark:data-active:bg-zinc-600 **:data-flux-menu-item-icon:text-zinc-400 dark:**:data-flux-menu-item-icon:text-white/60 [&[data-active]_[data-flux-menu-item-icon]]:text-current w-full cursor-pointer" data-flux-menu-item="data-flux-menu-item" data-flux-menu-item-has-icon="data-flux-menu-item-has-icon" data-test="logout-button">
|
||||
@@ -206,10 +264,7 @@
|
||||
</svg>
|
||||
|
||||
|
||||
<?php ob_start(); ?>
|
||||
<?php echo e(__('Log out')); ?>
|
||||
|
||||
<?php echo trim(ob_get_clean()); ?>
|
||||
<?php ob_start(); ?><?php echo e(__('Log out')); ?><?php echo trim(ob_get_clean()); ?>
|
||||
|
||||
</button>
|
||||
<?php echo ltrim(ob_get_clean()); ?>
|
||||
@@ -225,11 +280,7 @@
|
||||
|
||||
<?php ob_start(); ?><ui-dropdown position="top start" data-flux-dropdown>
|
||||
<?php ob_start(); ?>
|
||||
<button type="button" class="wms-user-rail-button" title="<?php echo e(__('Account')); ?>">
|
||||
<?php echo e(auth()->user()?->initials() ?? 'U'); ?>
|
||||
|
||||
</button>
|
||||
|
||||
<button type="button" class="wms-user-rail-button" title="<?php echo e(__('Account')); ?>"><?php echo e(auth()->user()?->initials() ?? 'U'); ?></button>
|
||||
<?php ob_start(); ?><ui-menu
|
||||
class="[:where(&)]:min-w-48 p-[.3125rem] rounded-lg shadow-xs border border-zinc-200 dark:border-zinc-600 bg-white dark:bg-zinc-700 focus:outline-hidden"
|
||||
popover="manual"
|
||||
@@ -260,10 +311,7 @@
|
||||
</svg>
|
||||
|
||||
|
||||
<?php ob_start(); ?>
|
||||
<?php echo e(__('Log out')); ?>
|
||||
|
||||
<?php echo trim(ob_get_clean()); ?>
|
||||
<?php ob_start(); ?><?php echo e(__('Log out')); ?><?php echo trim(ob_get_clean()); ?>
|
||||
|
||||
</button>
|
||||
<?php echo ltrim(ob_get_clean()); ?>
|
||||
@@ -279,58 +327,58 @@
|
||||
</div>
|
||||
</aside>
|
||||
|
||||
<div class="wms-main-column">
|
||||
<header class="wms-mobile-header">
|
||||
<button type="button" class="wms-mobile-menu" data-wms-mobile-open aria-label="<?php echo e(__('Open navigation')); ?>">
|
||||
<div class="wms-main-panel">
|
||||
<header class="wms-topbar">
|
||||
<button type="button" class="wms-mobile-menu-button" data-wms-mobile-open aria-label="<?php echo e(__('Open navigation')); ?>">
|
||||
<i class="fa-solid fa-bars" aria-hidden="true"></i>
|
||||
</button>
|
||||
|
||||
<a href="<?php echo e(auth()->user()?->isMpbaPlatformAdmin() ? route('platform.dashboard') : route('dashboard')); ?>" wire:navigate class="wms-mobile-title">
|
||||
<?php echo e(__('Warehouse Management System')); ?>
|
||||
<div>
|
||||
<div class="wms-topbar-eyebrow"><?php echo e(__('MPBA')); ?></div>
|
||||
<h1 class="wms-topbar-title"><?php echo e($title ?? __('Warehouse Management System')); ?></h1>
|
||||
</div>
|
||||
|
||||
</a>
|
||||
<div class="wms-topbar-actions">
|
||||
<div class="wms-health-pill" title="<?php echo e(__('System status')); ?>">
|
||||
<i class="fa-solid fa-heart-pulse" aria-hidden="true"></i>
|
||||
<span><?php echo e(__('OK')); ?></span>
|
||||
</div>
|
||||
|
||||
<?php ob_start(); ?><ui-dropdown position="top end" data-flux-dropdown>
|
||||
<?php ob_start(); ?><ui-dropdown position="bottom end" data-flux-dropdown>
|
||||
<?php ob_start(); ?>
|
||||
<?php $__blaze->ensureRequired('/Users/mag/Sites/WMS/Core/vendor/livewire/flux/src/../stubs/resources/views/flux/profile.blade.php', $__blaze->compiledPath.'/986fb95c0ca2c23afb55cc89b1b07e48.php'); ?>
|
||||
<?php $__blaze->ensureRequired('/Users/mag/Sites/WMS/Core/vendor/livewire/flux/src/../stubs/resources/views/flux/profile.blade.php', $__blaze->compiledPath.'/986fb95c0ca2c23afb55cc89b1b07e48.php'); ?>
|
||||
<?php $__blaze->pushData(['initials' => auth()->user()?->initials() ?? 'U','iconTrailing' => 'chevron-down']); ?>
|
||||
<?php _986fb95c0ca2c23afb55cc89b1b07e48($__blaze, ['initials' => auth()->user()?->initials() ?? 'U','iconTrailing' => 'chevron-down'], [], ['initials'], ['iconTrailing' => 'icon-trailing'], $__this ?? (isset($this) ? $this : null)); ?>
|
||||
<?php $__blaze->popData(); ?>
|
||||
|
||||
<?php ob_start(); ?><ui-menu
|
||||
<?php ob_start(); ?><ui-menu
|
||||
class="[:where(&)]:min-w-48 p-[.3125rem] rounded-lg shadow-xs border border-zinc-200 dark:border-zinc-600 bg-white dark:bg-zinc-700 focus:outline-hidden"
|
||||
popover="manual"
|
||||
data-flux-menu
|
||||
>
|
||||
<?php ob_start(); ?>
|
||||
<?php ob_start(); ?><ui-menu-radio-group data-flux-menu-radio-group>
|
||||
<?php ob_start(); ?><ui-menu-radio-group data-flux-menu-radio-group>
|
||||
<?php ob_start(); ?>
|
||||
<div class="p-0 text-sm font-normal">
|
||||
<div class="flex items-center gap-2 px-1 py-1.5 text-start text-sm">
|
||||
<?php $blaze_memoized_key = \Livewire\Blaze\Memoizer\Memo::key("flux::avatar", ['name' => auth()->user()?->name ?? 'User', 'initials' => auth()->user()?->initials() ?? 'U']); ?><?php if ($blaze_memoized_key !== null && \Livewire\Blaze\Memoizer\Memo::has($blaze_memoized_key)) : ?><?php echo \Livewire\Blaze\Memoizer\Memo::get($blaze_memoized_key); ?><?php else : ?><?php ob_start(); ?><?php $__blaze->ensureRequired('/Users/mag/Sites/WMS/Core/vendor/livewire/flux/src/../stubs/resources/views/flux/avatar/index.blade.php', $__blaze->compiledPath.'/110c1c2a55a80ff8b2b4fbed62b1a7d3.php'); ?>
|
||||
<div class="p-0 text-sm font-normal">
|
||||
<div class="flex items-center gap-2 px-1 py-1.5 text-start text-sm">
|
||||
<?php $blaze_memoized_key = \Livewire\Blaze\Memoizer\Memo::key("flux::avatar", ['name' => auth()->user()?->name ?? 'User', 'initials' => auth()->user()?->initials() ?? 'U']); ?><?php if ($blaze_memoized_key !== null && \Livewire\Blaze\Memoizer\Memo::has($blaze_memoized_key)) : ?><?php echo \Livewire\Blaze\Memoizer\Memo::get($blaze_memoized_key); ?><?php else : ?><?php ob_start(); ?><?php $__blaze->ensureRequired('/Users/mag/Sites/WMS/Core/vendor/livewire/flux/src/../stubs/resources/views/flux/avatar/index.blade.php', $__blaze->compiledPath.'/110c1c2a55a80ff8b2b4fbed62b1a7d3.php'); ?>
|
||||
<?php $__blaze->pushData(['name' => auth()->user()?->name ?? 'User','initials' => auth()->user()?->initials() ?? 'U']); ?>
|
||||
<?php _110c1c2a55a80ff8b2b4fbed62b1a7d3($__blaze, ['name' => auth()->user()?->name ?? 'User','initials' => auth()->user()?->initials() ?? 'U'], [], ['name', 'initials'], [], $__this ?? (isset($this) ? $this : null)); ?>
|
||||
<?php $__blaze->popData(); ?><?php $blaze_memoized_html = ob_get_clean(); ?><?php if ($blaze_memoized_key !== null) { \Livewire\Blaze\Memoizer\Memo::put($blaze_memoized_key, $blaze_memoized_html); } ?><?php echo $blaze_memoized_html; ?><?php endif; ?>
|
||||
|
||||
<div class="grid flex-1 text-start text-sm leading-tight">
|
||||
<?php ob_start(); ?><div class="font-medium [:where(&)]:text-zinc-800 [:where(&)]:dark:text-white text-sm [&:has(+[data-flux-subheading])]:mb-2 [[data-flux-subheading]+&]:mt-2 truncate" data-flux-heading><?php ob_start(); ?><?php echo e(auth()->user()?->name ?? __('User')); ?><?php echo trim(ob_get_clean()); ?></div>
|
||||
<div class="grid flex-1 text-start text-sm leading-tight">
|
||||
<?php ob_start(); ?><div class="font-medium [:where(&)]:text-zinc-800 [:where(&)]:dark:text-white text-sm [&:has(+[data-flux-subheading])]:mb-2 [[data-flux-subheading]+&]:mt-2 truncate" data-flux-heading><?php ob_start(); ?><?php echo e(auth()->user()?->name ?? __('User')); ?><?php echo trim(ob_get_clean()); ?></div>
|
||||
<?php echo ltrim(ob_get_clean()); ?>
|
||||
<?php ob_start(); ?><p class="[:where(&)]:font-normal [:where(&)]:text-sm [:where(&)]:text-zinc-500 [:where(&)]:dark:text-white/70 truncate" data-flux-text ><?php ob_start(); ?><?php echo e(auth()->user()?->email ?? ''); ?><?php echo trim(ob_get_clean()); ?></p><?php echo ltrim(ob_get_clean()); ?>
|
||||
<?php ob_start(); ?><p class="[:where(&)]:font-normal [:where(&)]:text-sm [:where(&)]:text-zinc-500 [:where(&)]:dark:text-white/70 truncate" data-flux-text ><?php ob_start(); ?><?php echo e(auth()->user()?->email ?? ''); ?><?php echo trim(ob_get_clean()); ?></p><?php echo ltrim(ob_get_clean()); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php echo trim(ob_get_clean()); ?>
|
||||
<?php echo trim(ob_get_clean()); ?>
|
||||
|
||||
</ui-menu-radio-group>
|
||||
<?php echo ltrim(ob_get_clean()); ?>
|
||||
|
||||
<?php ob_start(); ?><div class="-mx-[.3125rem] my-[.3125rem] h-px" data-flux-menu-separator>
|
||||
<?php ob_start(); ?><div class="-mx-[.3125rem] my-[.3125rem] h-px" data-flux-menu-separator>
|
||||
<div data-orientation="horizontal" role="none" class="border-0 [print-color-adjust:exact] bg-zinc-800/15 dark:bg-white/20 h-px w-full dark:bg-zinc-600!" data-flux-separator></div>
|
||||
</div>
|
||||
<?php echo ltrim(ob_get_clean()); ?>
|
||||
|
||||
<?php ob_start(); ?><ui-menu-radio-group data-flux-menu-radio-group>
|
||||
<?php ob_start(); ?>
|
||||
<?php ob_start(); ?><a href="<?php echo e(route('profile.edit')); ?>" data-flux-menu-item="data-flux-menu-item" data-flux-menu-item-has-icon="data-flux-menu-item-has-icon" class="flex items-center px-2 py-1.5 w-full focus:outline-hidden rounded-md text-start text-sm font-medium [&[disabled]]:opacity-50 text-zinc-800 data-active:bg-zinc-50 dark:text-white dark:data-active:bg-zinc-600 **:data-flux-menu-item-icon:text-zinc-400 dark:**:data-flux-menu-item-icon:text-white/60 [&[data-active]_[data-flux-menu-item-icon]]:text-current" wire:navigate="">
|
||||
<svg class="shrink-0 [:where(&)]:size-5 me-2" data-flux-menu-item-icon="data-flux-menu-item-icon" data-flux-icon xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" data-slot="icon">
|
||||
<path d="M13.024 9.25c.47 0 .827-.433.637-.863a4 4 0 0 0-4.094-2.364c-.468.05-.665.576-.43.984l1.08 1.868a.75.75 0 0 0 .649.375h2.158ZM7.84 7.758c-.236-.408-.79-.5-1.068-.12A3.982 3.982 0 0 0 6 10c0 .884.287 1.7.772 2.363.278.38.832.287 1.068-.12l1.078-1.868a.75.75 0 0 0 0-.75L7.839 7.758ZM9.138 12.993c-.235.408-.039.934.43.984a4 4 0 0 0 4.094-2.364c.19-.43-.168-.863-.638-.863h-2.158a.75.75 0 0 0-.65.375l-1.078 1.868Z"/>
|
||||
@@ -338,48 +386,37 @@
|
||||
</svg>
|
||||
|
||||
|
||||
<?php ob_start(); ?>
|
||||
<?php echo e(__('Settings')); ?>
|
||||
|
||||
<?php echo trim(ob_get_clean()); ?>
|
||||
<?php ob_start(); ?><?php echo e(__('Settings')); ?><?php echo trim(ob_get_clean()); ?>
|
||||
|
||||
</a>
|
||||
<?php echo ltrim(ob_get_clean()); ?>
|
||||
<?php echo trim(ob_get_clean()); ?>
|
||||
|
||||
</ui-menu-radio-group>
|
||||
<?php echo ltrim(ob_get_clean()); ?>
|
||||
|
||||
<?php ob_start(); ?><div class="-mx-[.3125rem] my-[.3125rem] h-px" data-flux-menu-separator>
|
||||
<?php ob_start(); ?><div class="-mx-[.3125rem] my-[.3125rem] h-px" data-flux-menu-separator>
|
||||
<div data-orientation="horizontal" role="none" class="border-0 [print-color-adjust:exact] bg-zinc-800/15 dark:bg-white/20 h-px w-full dark:bg-zinc-600!" data-flux-separator></div>
|
||||
</div>
|
||||
<?php echo ltrim(ob_get_clean()); ?>
|
||||
|
||||
<form method="POST" action="<?php echo e(route('logout')); ?>" class="w-full">
|
||||
<?php echo csrf_field(); ?>
|
||||
<?php ob_start(); ?><button type="submit" class="flex items-center px-2 py-1.5 w-full focus:outline-hidden rounded-md text-start text-sm font-medium [&[disabled]]:opacity-50 text-zinc-800 data-active:bg-zinc-50 dark:text-white dark:data-active:bg-zinc-600 **:data-flux-menu-item-icon:text-zinc-400 dark:**:data-flux-menu-item-icon:text-white/60 [&[data-active]_[data-flux-menu-item-icon]]:text-current w-full cursor-pointer" data-flux-menu-item="data-flux-menu-item" data-flux-menu-item-has-icon="data-flux-menu-item-has-icon" data-test="logout-button">
|
||||
<form method="POST" action="<?php echo e(route('logout')); ?>" class="w-full">
|
||||
<?php echo csrf_field(); ?>
|
||||
<?php ob_start(); ?><button type="submit" class="flex items-center px-2 py-1.5 w-full focus:outline-hidden rounded-md text-start text-sm font-medium [&[disabled]]:opacity-50 text-zinc-800 data-active:bg-zinc-50 dark:text-white dark:data-active:bg-zinc-600 **:data-flux-menu-item-icon:text-zinc-400 dark:**:data-flux-menu-item-icon:text-white/60 [&[data-active]_[data-flux-menu-item-icon]]:text-current w-full cursor-pointer" data-flux-menu-item="data-flux-menu-item" data-flux-menu-item-has-icon="data-flux-menu-item-has-icon" data-test="logout-button">
|
||||
<svg class="shrink-0 [:where(&)]:size-5 me-2" data-flux-menu-item-icon="data-flux-menu-item-icon" data-flux-icon xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" data-slot="icon">
|
||||
<path fill-rule="evenodd" d="M3 4.25A2.25 2.25 0 0 1 5.25 2h5.5A2.25 2.25 0 0 1 13 4.25v2a.75.75 0 0 1-1.5 0v-2a.75.75 0 0 0-.75-.75h-5.5a.75.75 0 0 0-.75.75v11.5c0 .414.336.75.75.75h5.5a.75.75 0 0 0 .75-.75v-2a.75.75 0 0 1 1.5 0v2A2.25 2.25 0 0 1 10.75 18h-5.5A2.25 2.25 0 0 1 3 15.75V4.25Z" clip-rule="evenodd"/>
|
||||
<path fill-rule="evenodd" d="M6 10a.75.75 0 0 1 .75-.75h9.546l-1.048-.943a.75.75 0 1 1 1.004-1.114l2.5 2.25a.75.75 0 0 1 0 1.114l-2.5 2.25a.75.75 0 1 1-1.004-1.114l1.048-.943H6.75A.75.75 0 0 1 6 10Z" clip-rule="evenodd"/>
|
||||
</svg>
|
||||
|
||||
|
||||
<?php ob_start(); ?>
|
||||
<?php echo e(__('Log out')); ?>
|
||||
|
||||
<?php echo trim(ob_get_clean()); ?>
|
||||
<?php ob_start(); ?><?php echo e(__('Log out')); ?><?php echo trim(ob_get_clean()); ?>
|
||||
|
||||
</button>
|
||||
<?php echo ltrim(ob_get_clean()); ?>
|
||||
</form>
|
||||
<?php echo trim(ob_get_clean()); ?>
|
||||
</form>
|
||||
<?php echo trim(ob_get_clean()); ?>
|
||||
|
||||
</ui-menu>
|
||||
<?php echo ltrim(ob_get_clean()); ?>
|
||||
<?php echo trim(ob_get_clean()); ?>
|
||||
<?php echo trim(ob_get_clean()); ?>
|
||||
|
||||
</ui-dropdown>
|
||||
<?php echo ltrim(ob_get_clean()); ?>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main class="wms-content">
|
||||
@@ -391,8 +428,7 @@
|
||||
|
||||
<?php app("livewire")->forceAssetInjection(); ?><div x-persist="<?php echo e('toast'); ?>">
|
||||
<?php ob_start(); ?><ui-toast-group x-data x-on:toast-show.document="$el.showToast($event.detail)" popover="manual" position="bottom end" wire:ignore>
|
||||
<?php ob_start(); ?>
|
||||
<?php ob_start(); ?><ui-toast x-data x-on:toast-show.document="! $el.closest('ui-toast-group') && $el.showToast($event.detail)" popover="manual" position="bottom end" wire:ignore>
|
||||
<?php ob_start(); ?><?php ob_start(); ?><ui-toast x-data x-on:toast-show.document="! $el.closest('ui-toast-group') && $el.showToast($event.detail)" popover="manual" position="bottom end" wire:ignore>
|
||||
<template>
|
||||
<div class="max-w-sm in-[ui-toast-group]:max-w-auto in-[ui-toast-group]:w-xs sm:in-[ui-toast-group]:w-sm" data-variant="" data-flux-toast-dialog>
|
||||
<div class="p-2 flex rounded-xl shadow-lg bg-white border border-zinc-200 border-b-zinc-300/80 dark:bg-zinc-700 dark:border-zinc-600">
|
||||
@@ -442,8 +478,7 @@
|
||||
</div>
|
||||
</template>
|
||||
</ui-toast>
|
||||
<?php echo ltrim(ob_get_clean()); ?>
|
||||
<?php echo trim(ob_get_clean()); ?>
|
||||
<?php echo ltrim(ob_get_clean()); ?><?php echo trim(ob_get_clean()); ?>
|
||||
|
||||
</ui-toast-group>
|
||||
<?php echo ltrim(ob_get_clean()); ?>
|
||||
@@ -460,9 +495,7 @@
|
||||
function applySidebarState() {
|
||||
const root = document.documentElement;
|
||||
const saved = localStorage.getItem(STORAGE_KEY) || 'expanded';
|
||||
|
||||
root.dataset.wmsSidebar = saved === 'collapsed' ? 'collapsed' : 'expanded';
|
||||
|
||||
document.querySelectorAll('[data-wms-sidebar-toggle]').forEach((button) => {
|
||||
const expanded = root.dataset.wmsSidebar !== 'collapsed';
|
||||
button.setAttribute('aria-expanded', expanded ? 'true' : 'false');
|
||||
@@ -470,62 +503,38 @@
|
||||
});
|
||||
}
|
||||
|
||||
function closeMobileSidebar() {
|
||||
document.documentElement.dataset.wmsMobileSidebar = 'closed';
|
||||
}
|
||||
|
||||
function openMobileSidebar() {
|
||||
document.documentElement.dataset.wmsMobileSidebar = 'open';
|
||||
}
|
||||
function closeMobileSidebar() { document.documentElement.dataset.wmsMobileSidebar = 'closed'; }
|
||||
function openMobileSidebar() { document.documentElement.dataset.wmsMobileSidebar = 'open'; }
|
||||
|
||||
function bindSidebarControls() {
|
||||
applySidebarState();
|
||||
|
||||
document.querySelectorAll('[data-wms-sidebar-toggle]').forEach((button) => {
|
||||
if (button.dataset.wmsBound === '1') {
|
||||
return;
|
||||
}
|
||||
|
||||
if (button.dataset.wmsBound === '1') return;
|
||||
button.dataset.wmsBound = '1';
|
||||
|
||||
button.addEventListener('click', function () {
|
||||
const root = document.documentElement;
|
||||
const next = root.dataset.wmsSidebar === 'collapsed' ? 'expanded' : 'collapsed';
|
||||
|
||||
root.dataset.wmsSidebar = next;
|
||||
localStorage.setItem(STORAGE_KEY, next);
|
||||
applySidebarState();
|
||||
});
|
||||
});
|
||||
|
||||
document.querySelectorAll('[data-wms-mobile-open]').forEach((button) => {
|
||||
if (button.dataset.wmsBound === '1') {
|
||||
return;
|
||||
}
|
||||
|
||||
if (button.dataset.wmsBound === '1') return;
|
||||
button.dataset.wmsBound = '1';
|
||||
button.addEventListener('click', openMobileSidebar);
|
||||
});
|
||||
|
||||
document.querySelectorAll('[data-wms-mobile-close]').forEach((button) => {
|
||||
if (button.dataset.wmsBound === '1') {
|
||||
return;
|
||||
}
|
||||
|
||||
if (button.dataset.wmsBound === '1') return;
|
||||
button.dataset.wmsBound = '1';
|
||||
button.addEventListener('click', closeMobileSidebar);
|
||||
});
|
||||
|
||||
document.querySelectorAll('.wms-sidebar-link[wire\\:navigate]').forEach((link) => {
|
||||
if (link.dataset.wmsMobileBound === '1') {
|
||||
return;
|
||||
}
|
||||
|
||||
if (link.dataset.wmsMobileBound === '1') return;
|
||||
link.dataset.wmsMobileBound = '1';
|
||||
link.addEventListener('click', closeMobileSidebar);
|
||||
});
|
||||
}
|
||||
|
||||
document.addEventListener('DOMContentLoaded', bindSidebarControls);
|
||||
document.addEventListener('livewire:navigated', bindSidebarControls);
|
||||
})();
|
||||
|
||||
@@ -0,0 +1,140 @@
|
||||
<?php if (isset($component)) { $__componentOriginal81a506f898233b9e7d58286e6bea3c18 = $component; } ?>
|
||||
<?php if (isset($attributes)) { $__attributesOriginal81a506f898233b9e7d58286e6bea3c18 = $attributes; } ?>
|
||||
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('Security')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
|
||||
<?php $component->withName('layouts::app'); ?>
|
||||
<?php if ($component->shouldRender()): ?>
|
||||
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
|
||||
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
|
||||
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
|
||||
<?php endif; ?>
|
||||
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Security'))]); ?>
|
||||
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
|
||||
|
||||
<div class="container-fluid py-4 module-page module-security">
|
||||
<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">Security</h1>
|
||||
<p class="mb-0 opacity-75">Control roles, permissions, audit visibility, and protected administration actions.</p>
|
||||
</div>
|
||||
|
||||
<div class="module-hero-icon" aria-hidden="true">
|
||||
<i class="bi bi-shield-check"></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">Roles</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for roles.</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">Permissions</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for permissions.</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">Admin Access</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for admin access.</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">Security Audit</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for security audit.</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">Security 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>Area</th>
|
||||
<th>Permission</th>
|
||||
<th>Role</th>
|
||||
<th class="text-end">Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Roles</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>Permissions</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>Admin Access</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>Security Audit</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>
|
||||
<?php echo $__env->renderComponent(); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
|
||||
<?php $attributes = $__attributesOriginal81a506f898233b9e7d58286e6bea3c18; ?>
|
||||
<?php unset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($__componentOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
|
||||
<?php $component = $__componentOriginal81a506f898233b9e7d58286e6bea3c18; ?>
|
||||
<?php unset($__componentOriginal81a506f898233b9e7d58286e6bea3c18); ?>
|
||||
<?php endif; ?>
|
||||
<?php /**PATH /Users/mag/Sites/WMS/Core/modules/Security/Providers/../Resources/views/index.blade.php ENDPATH**/ ?>
|
||||
@@ -0,0 +1,40 @@
|
||||
<?php if (isset($component)) { $__componentOriginal81a506f898233b9e7d58286e6bea3c18 = $component; } ?>
|
||||
<?php if (isset($attributes)) { $__attributesOriginal81a506f898233b9e7d58286e6bea3c18 = $attributes; } ?>
|
||||
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('Payments')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
|
||||
<?php $component->withName('layouts::app'); ?>
|
||||
<?php if ($component->shouldRender()): ?>
|
||||
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
|
||||
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
|
||||
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
|
||||
<?php endif; ?>
|
||||
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Payments'))]); ?>
|
||||
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
|
||||
|
||||
<div class="space-y-6">
|
||||
<div class="rounded-3xl bg-white p-6 shadow-sm ring-1 ring-zinc-200 dark:bg-zinc-900 dark:ring-zinc-800">
|
||||
<h1 class="text-2xl font-bold">Payments and overrides</h1>
|
||||
<form method="POST" action="<?php echo e(route('platform.payments.store')); ?>" class="mt-5 grid gap-4 md:grid-cols-6">
|
||||
<?php echo csrf_field(); ?>
|
||||
<select name="company_id" class="rounded-xl border-zinc-300 dark:border-zinc-700 dark:bg-zinc-950"><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::openLoop(); ?><?php endif; ?><?php $__currentLoopData = $companies; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $company): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::startLoopIteration(); ?><?php endif; ?><option value="<?php echo e($company->id); ?>"><?php echo e($company->name); ?></option><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::endLoop(); ?><?php endif; ?><?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::closeLoop(); ?><?php endif; ?></select>
|
||||
<input name="amount" type="number" value="0" class="rounded-xl border-zinc-300 dark:border-zinc-700 dark:bg-zinc-950" required>
|
||||
<input name="currency" value="gbp" class="rounded-xl border-zinc-300 dark:border-zinc-700 dark:bg-zinc-950" required>
|
||||
<select name="status" class="rounded-xl border-zinc-300 dark:border-zinc-700 dark:bg-zinc-950"><option>paid</option><option>pending</option><option>failed</option><option>refunded</option><option>override</option></select>
|
||||
<input name="description" placeholder="Description" class="rounded-xl border-zinc-300 dark:border-zinc-700 dark:bg-zinc-950">
|
||||
<button class="rounded-xl bg-zinc-900 px-4 py-2 font-semibold text-white dark:bg-white dark:text-zinc-900">Add</button>
|
||||
</form>
|
||||
</div>
|
||||
<div class="overflow-x-auto rounded-2xl bg-white shadow-sm ring-1 ring-zinc-200 dark:bg-zinc-900 dark:ring-zinc-800"><table class="min-w-full text-sm"><thead><tr class="border-b"><th class="p-4 text-left">Company</th><th class="p-4 text-left">Amount</th><th class="p-4 text-left">Status</th><th class="p-4 text-left">Description</th></tr></thead><tbody><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::openLoop(); ?><?php endif; ?><?php $__currentLoopData = $payments; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $payment): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::startLoopIteration(); ?><?php endif; ?><tr class="border-b border-zinc-100 dark:border-zinc-800"><td class="p-4"><?php echo e($payment->company->name); ?></td><td class="p-4 font-semibold"><?php echo e(strtoupper($payment->currency)); ?> <?php echo e(number_format($payment->amount / 100, 2)); ?></td><td class="p-4"><?php echo e($payment->status); ?></td><td class="p-4"><?php echo e($payment->description); ?></td></tr><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::endLoop(); ?><?php endif; ?><?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::closeLoop(); ?><?php endif; ?></tbody></table></div>
|
||||
<?php echo e($payments->links()); ?>
|
||||
|
||||
</div>
|
||||
<?php echo $__env->renderComponent(); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
|
||||
<?php $attributes = $__attributesOriginal81a506f898233b9e7d58286e6bea3c18; ?>
|
||||
<?php unset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($__componentOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
|
||||
<?php $component = $__componentOriginal81a506f898233b9e7d58286e6bea3c18; ?>
|
||||
<?php unset($__componentOriginal81a506f898233b9e7d58286e6bea3c18); ?>
|
||||
<?php endif; ?>
|
||||
<?php /**PATH /Users/mag/Sites/WMS/Core/modules/Platform/Providers/../resources/views/payments/index.blade.php ENDPATH**/ ?>
|
||||
@@ -0,0 +1,140 @@
|
||||
<?php if (isset($component)) { $__componentOriginal81a506f898233b9e7d58286e6bea3c18 = $component; } ?>
|
||||
<?php if (isset($attributes)) { $__attributesOriginal81a506f898233b9e7d58286e6bea3c18 = $attributes; } ?>
|
||||
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('Carrier Management')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
|
||||
<?php $component->withName('layouts::app'); ?>
|
||||
<?php if ($component->shouldRender()): ?>
|
||||
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
|
||||
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
|
||||
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
|
||||
<?php endif; ?>
|
||||
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Carrier Management'))]); ?>
|
||||
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
|
||||
|
||||
<div class="container-fluid py-4 module-page module-carrier-management">
|
||||
<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">Carrier Management</h1>
|
||||
<p class="mb-0 opacity-75">Maintain carriers, services, and shipment routing master data.</p>
|
||||
</div>
|
||||
|
||||
<div class="module-hero-icon" aria-hidden="true">
|
||||
<i class="bi bi-person-vcard"></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">Carrier Directory</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for carrier directory.</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">Carrier Service Levels</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for carrier service levels.</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">Carrier Rules</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for carrier rules.</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">Carrier Audit</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for carrier audit.</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">Carrier Management 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>Carrier</th>
|
||||
<th>Service</th>
|
||||
<th>Enabled</th>
|
||||
<th class="text-end">Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Carrier Directory</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>Carrier Service Levels</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>Carrier Rules</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>Carrier Audit</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>
|
||||
<?php echo $__env->renderComponent(); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
|
||||
<?php $attributes = $__attributesOriginal81a506f898233b9e7d58286e6bea3c18; ?>
|
||||
<?php unset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($__componentOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
|
||||
<?php $component = $__componentOriginal81a506f898233b9e7d58286e6bea3c18; ?>
|
||||
<?php unset($__componentOriginal81a506f898233b9e7d58286e6bea3c18); ?>
|
||||
<?php endif; ?>
|
||||
<?php /**PATH /Users/mag/Sites/WMS/Core/modules/CarrierManagement/Providers/../Resources/views/index.blade.php ENDPATH**/ ?>
|
||||
@@ -0,0 +1,140 @@
|
||||
<?php if (isset($component)) { $__componentOriginal81a506f898233b9e7d58286e6bea3c18 = $component; } ?>
|
||||
<?php if (isset($attributes)) { $__attributesOriginal81a506f898233b9e7d58286e6bea3c18 = $attributes; } ?>
|
||||
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('Shipping')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
|
||||
<?php $component->withName('layouts::app'); ?>
|
||||
<?php if ($component->shouldRender()): ?>
|
||||
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
|
||||
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
|
||||
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
|
||||
<?php endif; ?>
|
||||
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Shipping'))]); ?>
|
||||
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
|
||||
|
||||
<div class="container-fluid py-4 module-page module-shipping">
|
||||
<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">Shipping</h1>
|
||||
<p class="mb-0 opacity-75">Monitor shipment activity, closed orders, pending loads, and dispatch status.</p>
|
||||
</div>
|
||||
|
||||
<div class="module-hero-icon" aria-hidden="true">
|
||||
<i class="bi bi-truck"></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">Open Shipments</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for open shipments.</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">Closed Orders</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for closed orders.</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">Shipment Close Calls</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for shipment close calls.</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">Dispatch Exceptions</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for dispatch exceptions.</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">Shipping 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>Shipment</th>
|
||||
<th>Order</th>
|
||||
<th>Customer</th>
|
||||
<th class="text-end">Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Open Shipments</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>Closed Orders</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>Shipment Close Calls</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>Dispatch Exceptions</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>
|
||||
<?php echo $__env->renderComponent(); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
|
||||
<?php $attributes = $__attributesOriginal81a506f898233b9e7d58286e6bea3c18; ?>
|
||||
<?php unset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($__componentOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
|
||||
<?php $component = $__componentOriginal81a506f898233b9e7d58286e6bea3c18; ?>
|
||||
<?php unset($__componentOriginal81a506f898233b9e7d58286e6bea3c18); ?>
|
||||
<?php endif; ?>
|
||||
<?php /**PATH /Users/mag/Sites/WMS/Core/modules/Shipping/Providers/../Resources/views/index.blade.php ENDPATH**/ ?>
|
||||
@@ -0,0 +1,140 @@
|
||||
<?php if (isset($component)) { $__componentOriginal81a506f898233b9e7d58286e6bea3c18 = $component; } ?>
|
||||
<?php if (isset($attributes)) { $__attributesOriginal81a506f898233b9e7d58286e6bea3c18 = $attributes; } ?>
|
||||
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('M3 Integration')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
|
||||
<?php $component->withName('layouts::app'); ?>
|
||||
<?php if ($component->shouldRender()): ?>
|
||||
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
|
||||
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
|
||||
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
|
||||
<?php endif; ?>
|
||||
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('M3 Integration'))]); ?>
|
||||
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
|
||||
|
||||
<div class="container-fluid py-4 module-page module-m3-integration">
|
||||
<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">M3 Integration</h1>
|
||||
<p class="mb-0 opacity-75">Observe M3 transactions, delivery methods, close shipment calls, and API exchanges.</p>
|
||||
</div>
|
||||
|
||||
<div class="module-hero-icon" aria-hidden="true">
|
||||
<i class="bi bi-server"></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">M3 Transaction Log</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for m3 transaction log.</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">M3 Delivery Methods</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for m3 delivery methods.</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">Close Shipment API</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for close shipment api.</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">M3 Error Queue</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for m3 error queue.</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">M3 Integration 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>Transaction</th>
|
||||
<th>Program</th>
|
||||
<th>Message</th>
|
||||
<th class="text-end">Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>M3 Transaction Log</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>M3 Delivery Methods</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>Close Shipment API</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>M3 Error Queue</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>
|
||||
<?php echo $__env->renderComponent(); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
|
||||
<?php $attributes = $__attributesOriginal81a506f898233b9e7d58286e6bea3c18; ?>
|
||||
<?php unset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($__componentOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
|
||||
<?php $component = $__componentOriginal81a506f898233b9e7d58286e6bea3c18; ?>
|
||||
<?php unset($__componentOriginal81a506f898233b9e7d58286e6bea3c18); ?>
|
||||
<?php endif; ?>
|
||||
<?php /**PATH /Users/mag/Sites/WMS/Core/modules/M3Integration/Providers/../Resources/views/index.blade.php ENDPATH**/ ?>
|
||||
@@ -0,0 +1,140 @@
|
||||
<?php if (isset($component)) { $__componentOriginal81a506f898233b9e7d58286e6bea3c18 = $component; } ?>
|
||||
<?php if (isset($attributes)) { $__attributesOriginal81a506f898233b9e7d58286e6bea3c18 = $attributes; } ?>
|
||||
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('Reporting')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
|
||||
<?php $component->withName('layouts::app'); ?>
|
||||
<?php if ($component->shouldRender()): ?>
|
||||
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
|
||||
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
|
||||
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
|
||||
<?php endif; ?>
|
||||
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Reporting'))]); ?>
|
||||
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
|
||||
|
||||
<div class="container-fluid py-4 module-page module-reporting">
|
||||
<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">Reporting</h1>
|
||||
<p class="mb-0 opacity-75">Provide operational reports for closed orders, user efficiency, and transaction history.</p>
|
||||
</div>
|
||||
|
||||
<div class="module-hero-icon" aria-hidden="true">
|
||||
<i class="bi bi-bar-chart"></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">Closed Order Lines</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for closed order lines.</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">Daily User Efficiency</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for daily user efficiency.</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">Export Centre</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for export centre.</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">Report Filters</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for report filters.</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">Reporting 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>Report</th>
|
||||
<th>Period</th>
|
||||
<th>Rows</th>
|
||||
<th class="text-end">Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Closed Order Lines</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>Daily User Efficiency</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>Export Centre</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>Report Filters</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>
|
||||
<?php echo $__env->renderComponent(); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
|
||||
<?php $attributes = $__attributesOriginal81a506f898233b9e7d58286e6bea3c18; ?>
|
||||
<?php unset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($__componentOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
|
||||
<?php $component = $__componentOriginal81a506f898233b9e7d58286e6bea3c18; ?>
|
||||
<?php unset($__componentOriginal81a506f898233b9e7d58286e6bea3c18); ?>
|
||||
<?php endif; ?>
|
||||
<?php /**PATH /Users/mag/Sites/WMS/Core/modules/Reporting/Providers/../Resources/views/index.blade.php ENDPATH**/ ?>
|
||||
@@ -0,0 +1,140 @@
|
||||
<?php if (isset($component)) { $__componentOriginal81a506f898233b9e7d58286e6bea3c18 = $component; } ?>
|
||||
<?php if (isset($attributes)) { $__attributesOriginal81a506f898233b9e7d58286e6bea3c18 = $attributes; } ?>
|
||||
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('Configuration')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
|
||||
<?php $component->withName('layouts::app'); ?>
|
||||
<?php if ($component->shouldRender()): ?>
|
||||
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
|
||||
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
|
||||
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
|
||||
<?php endif; ?>
|
||||
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Configuration'))]); ?>
|
||||
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
|
||||
|
||||
<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>
|
||||
<?php echo $__env->renderComponent(); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
|
||||
<?php $attributes = $__attributesOriginal81a506f898233b9e7d58286e6bea3c18; ?>
|
||||
<?php unset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($__componentOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
|
||||
<?php $component = $__componentOriginal81a506f898233b9e7d58286e6bea3c18; ?>
|
||||
<?php unset($__componentOriginal81a506f898233b9e7d58286e6bea3c18); ?>
|
||||
<?php endif; ?>
|
||||
<?php /**PATH /Users/mag/Sites/WMS/Core/modules/Configuration/Providers/../Resources/views/index.blade.php ENDPATH**/ ?>
|
||||
@@ -0,0 +1,40 @@
|
||||
<?php if (isset($component)) { $__componentOriginal81a506f898233b9e7d58286e6bea3c18 = $component; } ?>
|
||||
<?php if (isset($attributes)) { $__attributesOriginal81a506f898233b9e7d58286e6bea3c18 = $attributes; } ?>
|
||||
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('Licence Keys')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
|
||||
<?php $component->withName('layouts::app'); ?>
|
||||
<?php if ($component->shouldRender()): ?>
|
||||
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
|
||||
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
|
||||
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
|
||||
<?php endif; ?>
|
||||
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Licence Keys'))]); ?>
|
||||
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
|
||||
|
||||
<div class="space-y-6">
|
||||
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if($plainKey): ?><div class="rounded-2xl bg-emerald-50 p-4 text-emerald-900 ring-1 ring-emerald-200">New key: <code class="font-bold"><?php echo e($plainKey); ?></code></div><?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
|
||||
<div class="rounded-3xl bg-white p-6 shadow-sm ring-1 ring-zinc-200 dark:bg-zinc-900 dark:ring-zinc-800">
|
||||
<h1 class="text-2xl font-bold">Licence keys</h1>
|
||||
<form method="POST" action="<?php echo e(route('platform.licenses.store')); ?>" class="mt-5 grid gap-4 md:grid-cols-5">
|
||||
<?php echo csrf_field(); ?>
|
||||
<select name="company_id" class="rounded-xl border-zinc-300 dark:border-zinc-700 dark:bg-zinc-950"><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::openLoop(); ?><?php endif; ?><?php $__currentLoopData = $companies; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $company): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::startLoopIteration(); ?><?php endif; ?><option value="<?php echo e($company->id); ?>"><?php echo e($company->name); ?></option><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::endLoop(); ?><?php endif; ?><?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::closeLoop(); ?><?php endif; ?></select>
|
||||
<input name="label" placeholder="Licence label" class="rounded-xl border-zinc-300 dark:border-zinc-700 dark:bg-zinc-950" required>
|
||||
<select name="plan" class="rounded-xl border-zinc-300 dark:border-zinc-700 dark:bg-zinc-950"><option>standard</option><option>professional</option><option>enterprise</option></select>
|
||||
<input name="max_users" type="number" value="10" class="rounded-xl border-zinc-300 dark:border-zinc-700 dark:bg-zinc-950" required>
|
||||
<button class="rounded-xl bg-zinc-900 px-4 py-2 font-semibold text-white dark:bg-white dark:text-zinc-900">Issue</button>
|
||||
</form>
|
||||
</div>
|
||||
<div class="overflow-x-auto rounded-2xl bg-white shadow-sm ring-1 ring-zinc-200 dark:bg-zinc-900 dark:ring-zinc-800"><table class="min-w-full text-sm"><thead><tr class="border-b"><th class="p-4 text-left">Company</th><th class="p-4 text-left">Label</th><th class="p-4 text-left">Plan</th><th class="p-4 text-left">Prefix</th><th class="p-4 text-left">Expires</th></tr></thead><tbody><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::openLoop(); ?><?php endif; ?><?php $__currentLoopData = $licenses; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $license): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::startLoopIteration(); ?><?php endif; ?><tr class="border-b border-zinc-100 dark:border-zinc-800"><td class="p-4"><?php echo e($license->company->name); ?></td><td class="p-4 font-semibold"><?php echo e($license->label); ?></td><td class="p-4"><?php echo e($license->plan); ?></td><td class="p-4"><code><?php echo e($license->key_prefix); ?></code></td><td class="p-4"><?php echo e(optional($license->expires_at)->toDateString()); ?></td></tr><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::endLoop(); ?><?php endif; ?><?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::closeLoop(); ?><?php endif; ?></tbody></table></div>
|
||||
<?php echo e($licenses->links()); ?>
|
||||
|
||||
</div>
|
||||
<?php echo $__env->renderComponent(); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
|
||||
<?php $attributes = $__attributesOriginal81a506f898233b9e7d58286e6bea3c18; ?>
|
||||
<?php unset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($__componentOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
|
||||
<?php $component = $__componentOriginal81a506f898233b9e7d58286e6bea3c18; ?>
|
||||
<?php unset($__componentOriginal81a506f898233b9e7d58286e6bea3c18); ?>
|
||||
<?php endif; ?>
|
||||
<?php /**PATH /Users/mag/Sites/WMS/Core/modules/Platform/Providers/../resources/views/licenses/index.blade.php ENDPATH**/ ?>
|
||||
@@ -0,0 +1,140 @@
|
||||
<?php if (isset($component)) { $__componentOriginal81a506f898233b9e7d58286e6bea3c18 = $component; } ?>
|
||||
<?php if (isset($attributes)) { $__attributesOriginal81a506f898233b9e7d58286e6bea3c18 = $attributes; } ?>
|
||||
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('Document Archive')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
|
||||
<?php $component->withName('layouts::app'); ?>
|
||||
<?php if ($component->shouldRender()): ?>
|
||||
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
|
||||
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
|
||||
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
|
||||
<?php endif; ?>
|
||||
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Document Archive'))]); ?>
|
||||
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
|
||||
|
||||
<div class="container-fluid py-4 module-page module-document-archive">
|
||||
<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">Document Archive</h1>
|
||||
<p class="mb-0 opacity-75">Search cached Sentinel documents, shipment PDFs, labels, and BOL records.</p>
|
||||
</div>
|
||||
|
||||
<div class="module-hero-icon" aria-hidden="true">
|
||||
<i class="bi bi-file-earmark-text"></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">Sentinel Doc Archive</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for sentinel doc archive.</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">Shipment PDFs</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for shipment pdfs.</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">Bill of Lading</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for bill of lading.</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">Document Search</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for document search.</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">Document Archive 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>Document</th>
|
||||
<th>Shipment</th>
|
||||
<th>Type</th>
|
||||
<th class="text-end">Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Sentinel Doc Archive</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>Shipment PDFs</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>Bill of Lading</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>Document Search</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>
|
||||
<?php echo $__env->renderComponent(); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
|
||||
<?php $attributes = $__attributesOriginal81a506f898233b9e7d58286e6bea3c18; ?>
|
||||
<?php unset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($__componentOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
|
||||
<?php $component = $__componentOriginal81a506f898233b9e7d58286e6bea3c18; ?>
|
||||
<?php unset($__componentOriginal81a506f898233b9e7d58286e6bea3c18); ?>
|
||||
<?php endif; ?>
|
||||
<?php /**PATH /Users/mag/Sites/WMS/Core/modules/DocumentArchive/Providers/../Resources/views/index.blade.php ENDPATH**/ ?>
|
||||
@@ -0,0 +1,140 @@
|
||||
<?php if (isset($component)) { $__componentOriginal81a506f898233b9e7d58286e6bea3c18 = $component; } ?>
|
||||
<?php if (isset($attributes)) { $__attributesOriginal81a506f898233b9e7d58286e6bea3c18 = $attributes; } ?>
|
||||
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('Transportation')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
|
||||
<?php $component->withName('layouts::app'); ?>
|
||||
<?php if ($component->shouldRender()): ?>
|
||||
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
|
||||
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
|
||||
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
|
||||
<?php endif; ?>
|
||||
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Transportation'))]); ?>
|
||||
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
|
||||
|
||||
<div class="container-fluid py-4 module-page module-transportation">
|
||||
<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">Transportation</h1>
|
||||
<p class="mb-0 opacity-75">Manage truck closure, freight terms, trailers, and transport operations.</p>
|
||||
</div>
|
||||
|
||||
<div class="module-hero-icon" aria-hidden="true">
|
||||
<i class="bi bi-map"></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">Pending Truck Closure</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for pending truck closure.</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">Trailer Activity</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for trailer activity.</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">Freight Terms</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for freight terms.</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">Transport Exceptions</h3>
|
||||
<p class="small text-muted mb-0">Placeholder area for transport exceptions.</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">Transportation 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>Trailer</th>
|
||||
<th>Carrier</th>
|
||||
<th>Close Status</th>
|
||||
<th class="text-end">Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Pending Truck Closure</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>Trailer Activity</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>Freight Terms</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>Transport Exceptions</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>
|
||||
<?php echo $__env->renderComponent(); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
|
||||
<?php $attributes = $__attributesOriginal81a506f898233b9e7d58286e6bea3c18; ?>
|
||||
<?php unset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($__componentOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
|
||||
<?php $component = $__componentOriginal81a506f898233b9e7d58286e6bea3c18; ?>
|
||||
<?php unset($__componentOriginal81a506f898233b9e7d58286e6bea3c18); ?>
|
||||
<?php endif; ?>
|
||||
<?php /**PATH /Users/mag/Sites/WMS/Core/modules/Transportation/Providers/../Resources/views/index.blade.php ENDPATH**/ ?>
|
||||
@@ -0,0 +1,77 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Feature\Modules;
|
||||
|
||||
use Database\Factories\UserFactory;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Tests\TestCase;
|
||||
|
||||
class ModuleSidebarAndStatusTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* @return array<int, array{0: string, 1: string}>
|
||||
*/
|
||||
public static function moduleRoutes(): array
|
||||
{
|
||||
return [
|
||||
['analytics.index', 'Analytics'],
|
||||
['audit.index', 'Audit'],
|
||||
['carrier-management.index', 'Carrier Management'],
|
||||
['configuration.index', 'Configuration'],
|
||||
['document-archive.index', 'Document Archive'],
|
||||
['inventory-management.index', 'Inventory Management'],
|
||||
['m3-integration.index', 'M3 Integration'],
|
||||
['replenishment.index', 'Replenishment'],
|
||||
['reporting.index', 'Reporting'],
|
||||
['security.index', 'Security'],
|
||||
['sentinel-integration.index', 'Sentinel Integration'],
|
||||
['shipping.index', 'Shipping'],
|
||||
['transportation.index', 'Transportation'],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider moduleRoutes
|
||||
*/
|
||||
public function test_enabled_module_route_renders(string $routeName, string $label): void
|
||||
{
|
||||
$this->assertTrue(Route::has($routeName), "Missing route [{$routeName}].");
|
||||
|
||||
$user = UserFactory::new()->mpbaPlatformAdmin()->create();
|
||||
|
||||
$this->actingAs($user)
|
||||
->get(route($routeName))
|
||||
->assertOk()
|
||||
->assertSee($label, false)
|
||||
->assertSee('Warehouse Management System', false);
|
||||
}
|
||||
|
||||
public function test_sidebar_contains_all_enabled_web_modules(): void
|
||||
{
|
||||
$user = UserFactory::new()->mpbaPlatformAdmin()->create();
|
||||
|
||||
$response = $this->actingAs($user)->get(route('platform.dashboard'))->assertOk();
|
||||
|
||||
foreach (self::moduleRoutes() as [$routeName, $label]) {
|
||||
$response->assertSee(route($routeName), false);
|
||||
}
|
||||
|
||||
foreach (['Analytics', 'Inventory', 'Replenishment', 'Shipping', 'Transportation', 'Carriers', 'M3 Integration', 'Sentinel', 'Documents', 'Reporting', 'Configuration', 'Security', 'Audit'] as $label) {
|
||||
$response->assertSee($label, false);
|
||||
}
|
||||
}
|
||||
|
||||
public function test_modules_statuses_file_enables_all_modules(): void
|
||||
{
|
||||
$statuses = json_decode(file_get_contents(base_path('modules_statuses.json')), true, 512, JSON_THROW_ON_ERROR);
|
||||
|
||||
foreach ([
|
||||
'Analytics', 'Audit', 'CarrierManagement', 'Configuration', 'DocumentArchive', 'InternalApi',
|
||||
'InventoryManagement', 'M3Integration', 'Platform', 'Replenishment', 'Reporting', 'Security',
|
||||
'SentinelIntegration', 'Shipping', 'Transportation', 'Warehouse',
|
||||
] as $module) {
|
||||
$this->assertArrayHasKey($module, $statuses);
|
||||
$this->assertTrue($statuses[$module], "Module [{$module}] is not enabled.");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user