Files
2026-09-01 10:46:29 -03:00

271 lines
14 KiB
Twig
Executable File

{% extends "layouts/dashboard.twig" %}
{% block title %}{{ __('dashboard.title') }} - {{ platformName }}{% endblock %}
{% block content %}
<div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3 border-bottom">
<h1 class="h2">{{ __('dashboard.title') }}</h1>
<div class="btn-toolbar mb-2 mb-md-0">
<div class="btn-group me-2">
</div>
</div>
</div>
{% if seo_pending %}
<div class="alert alert-warning alert-dismissible fade show" role="alert">
<strong><i class="bi bi-exclamation-triangle-fill"></i> {{ __('dashboard.seo_warning_title') }}</strong> {{ __('dashboard.seo_warning_message') }}
<a href="{{ url('admin/system/install-seo') }}" class="btn btn-warning btn-sm ms-2">{{ __('dashboard.seo_install_repair_button') }}</a>
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
{% endif %}
{% if cache_cleared %}
<div class="alert alert-success alert-dismissible fade show" role="alert">
<strong>{{ __('dashboard.cache_cleared_title') }}</strong> {{ __('dashboard.cache_cleared_message', {'files': deleted_count, 'opcache': opcache_cleared ? __('dashboard.yes') : __('dashboard.no')}) }}
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
{% endif %}
{% if seo_pending %}
<div class="alert alert-warning alert-dismissible fade show" role="alert">
<strong><i class="bi bi-exclamation-triangle-fill"></i> {{ __('dashboard.seo_warning_title') }}</strong> {{ __('dashboard.seo_missing_message') }}
<a href="{{ url('admin/system/install-seo') }}" class="btn btn-warning btn-sm ms-2">{{ __('dashboard.seo_install_button') }}</a>
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
{% endif %}
<!-- Syspanel Ad Section -->
<div class="row mb-4">
<div class="col-12">
<div class="card border-0 shadow-lg overflow-hidden" style="border-radius: 24px; background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%); transition: transform 0.3s ease;">
<div class="card-body p-0">
<div class="row g-0 align-items-center">
<div class="col-lg-7 p-4 p-md-5">
<div class="d-inline-flex align-items-center px-3 py-1 rounded-pill mb-4" style="background: rgba(59, 130, 246, 0.1); border: 1px solid rgba(59, 130, 246, 0.2);">
<span class="text-primary fw-bold small"><i class="bi bi-rocket-takeoff-fill me-2"></i> Syspanel Enterprise</span>
</div>
<h2 class="display-4 fw-bold text-white mb-4">Conheça também os outros <span style="background: linear-gradient(135deg, #60a5fa 0%, #a855f7 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent;">serviços Syspanel</span></h2>
<p class="lead text-light opacity-75 mb-4 fs-5">
A solução definitiva para empresas que buscam excelência operacional, automação inteligente e crescimento escalável. Tudo o que você precisa em uma única plataforma.
</p>
<div class="row g-4 mb-5 text-light">
<div class="col-md-6">
<div class="d-flex align-items-start gap-3">
<div class="rounded-circle bg-primary bg-opacity-10 p-2">
<i class="bi bi-speedometer2 text-primary fs-4"></i>
</div>
<div>
<h6 class="fw-bold mb-1">Performance Ultra-Rápida</h6>
<p class="small opacity-75 mb-0">Decisões em tempo real com dados precisos.</p>
</div>
</div>
</div>
<div class="col-md-6">
<div class="d-flex align-items-start gap-3">
<div class="rounded-circle bg-primary bg-opacity-10 p-2">
<i class="bi bi-shield-check text-primary fs-4"></i>
</div>
<div>
<h6 class="fw-bold mb-1">Segurança Avançada</h6>
<p class="small opacity-75 mb-0">Proteção de dados de nível corporativo.</p>
</div>
</div>
</div>
</div>
<div class="d-flex flex-wrap gap-3">
<a href="https://home.syspanel.com.br" target="_blank" class="btn btn-primary btn-lg px-5 py-3 fw-bold shadow-sm" style="border-radius: 16px; background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%); border: none;">
Começar Agora <i class="bi bi-arrow-right ms-2"></i>
</a>
<a href="https://home.syspanel.com.br/contato" target="_blank" class="btn btn-outline-light btn-lg px-5 py-3 fw-bold" style="border-radius: 16px;">
Falar com Especialista
</a>
</div>
</div>
<div class="col-lg-5 d-none d-lg-block position-relative">
<div class="h-100" style="min-height: 500px; background: url('https://images.unsplash.com/photo-1551288049-bebda4e38f71?auto=format&fit=crop&q=80&w=1000') center/cover;">
<div class="position-absolute top-0 start-0 w-100 h-100" style="background: linear-gradient(to right, #0f172a, transparent);"></div>
<div class="position-absolute bottom-0 start-0 p-5 w-100">
<div class="glass-card p-4 rounded-4" style="background: rgba(255, 255, 255, 0.05); backdrop-filter: blur(12px); border: 1px solid rgba(255, 255, 255, 0.1);">
<div class="d-flex align-items-center gap-4">
<div class="p-3 bg-white bg-opacity-10 rounded-3">
<i class="bi bi-graph-up text-white fs-3"></i>
</div>
<div>
<div class="text-white fw-bold fs-5">+250%</div>
<div class="text-light small opacity-75">Aumento em produtividade média</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Statistics Cards -->
<div class="row">
{% if user.role == 'super_admin' %}
<div class="col-xl-3 col-md-6 mb-4">
<div class="card bg-primary text-white mb-4">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="small text-white-50 text-uppercase mb-1">
{{ __('dashboard.total_companies') }}</div>
<div class="h5 mb-0 font-weight-bold text-white">{{ stats.total_companies }}</div>
</div>
<div class="col-auto">
<i class="bi bi-building fs-2 text-white-50"></i>
</div>
</div>
</div>
</div>
</div>
<div class="col-xl-3 col-md-6 mb-4">
<div class="card bg-success text-white mb-4">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="small text-white-50 text-uppercase mb-1">
{{ __('dashboard.active_companies') }}</div>
<div class="h5 mb-0 font-weight-bold text-white">{{ stats.active_companies }}</div>
</div>
<div class="col-auto">
<i class="bi bi-check-circle-fill fs-2 text-white-50"></i>
</div>
</div>
</div>
</div>
</div>
<div class="col-xl-3 col-md-6 mb-4">
<div class="card bg-info text-white mb-4">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="small text-white-50 text-uppercase mb-1">
{{ __('dashboard.total_users') }}</div>
<div class="h5 mb-0 font-weight-bold text-white">{{ stats.total_users }}</div>
</div>
<div class="col-auto">
<i class="bi bi-people-fill fs-2 text-white-50"></i>
</div>
</div>
</div>
</div>
</div>
<div class="col-xl-3 col-md-6 mb-4">
<div class="card bg-warning text-white mb-4">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="small text-white-50 text-uppercase mb-1">
{{ __('dashboard.active_users') }}</div>
<div class="h5 mb-0 font-weight-bold text-white">{{ stats.active_users }}</div>
</div>
<div class="col-auto">
<i class="bi bi-person-check fs-2 text-white-50"></i>
</div>
</div>
</div>
</div>
</div>
{% endif %}
</div>
<!-- Widgets Section -->
{% if widgets|length > 0 %}
<div class="row">
{% for widget in widgets %}
<div class="col-lg-6 mb-4">
{{ widget|raw }}
</div>
{% endfor %}
</div>
{% endif %}
<!-- Recent Activity -->
<div class="card shadow mb-4">
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary">{{ __('dashboard.recent_activity') }}</h6>
</div>
<div class="card-body">
{% if recent_activity|length > 0 %}
<div class="table-responsive">
<table class="table table-bordered" width="100%" cellspacing="0">
<thead>
<tr>
<th>{{ __('dashboard.activity.user') }}</th>
<th>{{ __('dashboard.activity.action') }}</th>
<th>{{ __('dashboard.activity.resource') }}</th>
<th>{{ __('dashboard.activity.date') }}</th>
</tr>
</thead>
<tbody>
{% for activity in recent_activity %}
<tr>
<td>{{ activity.user_name }}</td>
<td>
<span class="badge badge-{{ activity.action_color|default('secondary') }}">
{{ __('dashboard.activity.' ~ activity.action) }}
</span>
</td>
<td>{{ activity.resource_type }} #{{ activity.resource_id }}</td>
<td>{{ activity.created_at|date('d/m/Y H:i') }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% else %}
<p class="text-muted">{{ __('dashboard.no_recent_activity') }}</p>
{% endif %}
</div>
</div>
<!-- Welcome Message -->
<div class="row">
<div class="col-lg-12">
<div class="card shadow mb-4">
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary">{{ __('dashboard.welcome', {'platformName': platformName}) }}</h6>
</div>
<div class="card-body">
<p>{{ __('dashboard.welcome_message', {'name': user.name}) }}</p>
{% if user.role == 'super_admin' %}
<div class="alert alert-info">
<i class="bi bi-info-circle"></i>
{{ __('dashboard.super_admin_info') }}
<a href="{{ url('admin/modules/install') }}" class="btn btn-sm btn-primary ms-2">
<i class="bi bi-upload"></i> {{ __('dashboard.install_module') }}
</a>
</div>
{% endif %}
{% if user.role == 'admin' or user.role == 'user' %}
<div class="alert alert-success">
<i class="bi bi-shield-check"></i>
{{ user.role == 'admin' ? __('dashboard.admin_info') : __('dashboard.user_info') }}
</div>
{% endif %}
<div class="mt-3">
<a href="{{ url('profile') }}" class="btn btn-primary btn-sm">
<i class="bi bi-person"></i> {{ __('dashboard.edit_profile') }}
</a>
</div>
</div>
</div>
</div>
</div>
{% endblock %}