First Commit

This commit is contained in:
marco
2026-09-01 10:46:29 -03:00
commit bf96b77e9c
10000 changed files with 3508600 additions and 0 deletions
+73
View File
@@ -0,0 +1,73 @@
{% extends "layouts/dashboard.twig" %}
{% block title %}{{ page_title }} - {{ platformName }}{% endblock %}
{% block content %}
<div class="container-fluid px-4">
<h1 class="mt-4">{{ page_title }}</h1>
<ol class="breadcrumb mb-4">
<li class="breadcrumb-item"><a href="{{ url('admin/dashboard') }}">{{ __('dashboard.title') }}</a></li>
<li class="breadcrumb-item"><a href="{{ url('admin/modelo') }}">{{ __('modelo.management') }}</a></li>
<li class="breadcrumb-item active">{{ page_title }}</li>
</ol>
{% include '@modelo/admin/nav.twig' ignore missing %}
<div class="card mb-4">
<div class="card-header">
<i class="bi bi-pencil-square me-1"></i>
{{ page_title }}
</div>
<div class="card-body">
<form action="{{ action == 'create' ? url('admin/modelo/store') : url('admin/modelo/update/' ~ modelo.modelos_id) }}" method="POST">
{{ csrf_field()|raw }}
<div class="row">
<div class="col-md-6 mb-3">
<label for="title" class="form-label">{{ __('modelo.item_title') }}</label>
<input type="text" class="form-control" id="title" name="title" value="{{ modelo.modelos_title }}" required>
</div>
<div class="col-md-6 mb-3">
<label for="slug" class="form-label">URL Amigável (Slug)</label>
<input type="text" class="form-control" id="slug" name="slug" value="{{ modelo.modelos_slug }}" placeholder="deixe em branco para gerar automaticamente">
</div>
</div>
<div class="mb-3">
<label for="content" class="form-label">{{ __('modelo.item_content') }}</label>
<textarea class="form-control" id="content" name="content" rows="10" required>{{ modelo.modelos_content }}</textarea>
<div class="form-text">Dica: Use <code>[site_name]</code>, <code>[current_date]</code> ou <code>[contact_email]</code> como variáveis dinâmicas.</div>
</div>
<div class="row">
<div class="col-md-6 mb-3">
<label for="order" class="form-label">{{ __('modelo.order') }}</label>
<input type="number" class="form-control" id="order" name="order" value="{{ modelo.modelos_order ?? 0 }}">
</div>
<div class="col-md-6 mb-3">
<label for="visibility" class="form-label">{{ __('modelo.visibility') }}</label>
<select class="form-select" id="visibility" name="visibility">
<option value="public" {{ (modelo.modelos_visibility == 'public') ? 'selected' : '' }}>{{ __('modelo.public') }}</option>
<option value="private" {{ (modelo.modelos_visibility == 'private') ? 'selected' : '' }}>{{ __('modelo.private') }}</option>
</select>
</div>
<div class="col-md-6 mb-3">
<label class="form-label">{{ __('modelo.status') }}</label>
<div class="form-check">
<input class="form-check-input" type="checkbox" id="active" name="active" value="1" {{ (action == 'create' or modelo.modelos_active) ? 'checked' : '' }}>
<label class="form-check-label" for="active">
{{ __('modelo.active') }}
</label>
</div>
</div>
</div>
<button type="submit" class="btn btn-primary">{{ __('modelo.save') }}</button>
<a href="{{ url('admin/modelo') }}" class="btn btn-secondary">{{ __('modelo.cancel') }}</a>
</form>
</div>
</div>
</div>
{% endblock %}
+74
View File
@@ -0,0 +1,74 @@
{% extends "layouts/dashboard.twig" %}
{% block title %}{{ page_title }} - {{ platformName }}{% endblock %}
{% block content %}
<div class="container-fluid px-4">
<h1 class="mt-4">{{ page_title }}</h1>
<ol class="breadcrumb mb-4">
<li class="breadcrumb-item"><a href="{{ url('admin/modelo') }}">{{ __('modelo.management') }}</a></li>
<li class="breadcrumb-item active">{{ page_title }}</li>
</ol>
{% include '@modelo/admin/nav.twig' ignore missing %}
{% if request.get('success') %}
<div class="alert alert-success alert-dismissible fade show" role="alert">
{{ __('modelo.operation_success') }}
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
{% endif %}
<div class="card mb-4">
<div class="card-header d-flex justify-content-between align-items-center">
<div>
<i class="bi bi-box me-1"></i>
{{ __('modelo.title') }}
</div>
</div>
<div class="card-body">
<table class="table table-striped table-hover">
<thead>
<tr>
<th>{{ __('modelo.order') }}</th>
<th>{{ __('modelo.item_title') }}</th>
<th>{{ __('modelo.visibility') }}</th>
<th>{{ __('modelo.status') }}</th>
<th>{{ __('modelo.actions') }}</th>
</tr>
</thead>
<tbody>
{% for item in modelos %}
<tr>
<td>{{ item.modelos_order }}</td>
<td>{{ item.modelos_title }}</td>
<td>
{% if item.modelos_visibility == 'public' %}
<span class="badge bg-primary">{{ __('modelo.public') }}</span>
{% else %}
<span class="badge bg-dark">{{ __('modelo.private') }}</span>
{% endif %}
</td>
<td>
{% if item.modelos_active %}
<span class="badge bg-success">{{ __('modelo.active') }}</span>
{% else %}
<span class="badge bg-secondary">{{ __('modelo.inactive') }}</span>
{% endif %}
</td>
<td>
<a href="{{ url('admin/modelo/edit/' ~ item.modelos_id) }}" class="btn btn-sm btn-info text-white"><i class="bi bi-pencil"></i></a>
<a href="{{ url('admin/modelo/delete/' ~ item.modelos_id) }}" class="btn btn-sm btn-danger" onclick="return confirm('{{ __('modelo.confirm_delete') }}')"><i class="bi bi-trash"></i></a>
</td>
</tr>
{% else %}
<tr>
<td colspan="5" class="text-center">{{ __('modelo.no_items') }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
{% endblock %}
+74
View File
@@ -0,0 +1,74 @@
{% extends "layouts/dashboard.twig" %}
{% block content %}
<div class="container-fluid px-4">
<h1 class="mt-4">{{ title }}</h1>
<ol class="breadcrumb mb-4">
<li class="breadcrumb-item"><a href="{{ url('admin/dashboard') }}">{{ __('dashboard.title') }}</a></li>
<li class="breadcrumb-item active">Módulo Modelo</li>
</ol>
{% include '@modelo/admin/nav.twig' ignore missing %}
<div class="row">
<div class="col-lg-3 d-none d-lg-block">
<div class="list-group sticky-top" style="top: 100px; z-index: 1;">
<a href="#visao-geral" class="list-group-item list-group-item-action">Visão Geral</a>
<a href="#templates" class="list-group-item list-group-item-action">Gerenciar Templates</a>
<a href="#placeholders" class="list-group-item list-group-item-action">Placeholders Dinâmicos</a>
<a href="#visibilidade" class="list-group-item list-group-item-action">Visibilidade e Ordem</a>
</div>
</div>
<div class="col-lg-9">
<!-- Visão Geral -->
<div class="card shadow mb-4" id="visao-geral">
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary">1. Visão Geral</h6>
</div>
<div class="card-body">
<p>O módulo <strong>Modelo</strong> é uma ferramenta de prototipagem e padronização de conteúdo. Ele permite criar estruturas pré-definidas (templates) que podem ser reutilizadas em todo o sistema, garantindo consistência visual e agilidade na criação de novas páginas.</p>
</div>
</div>
<!-- Templates -->
<div class="card shadow mb-4" id="templates">
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary">2. Gerenciar Templates</h6>
</div>
<div class="card-body">
<p>Ao criar um novo modelo, você define o título e o conteúdo base. Esse conteúdo pode incluir HTML rico, estilos e referências que servirão de base para outros módulos ou páginas estáticas.</p>
</div>
</div>
<!-- Placeholders -->
<div class="card shadow mb-4" id="placeholders">
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary">3. Placeholders Dinâmicos</h6>
</div>
<div class="card-body">
<p>Você pode usar variáveis nos seus modelos que serão substituídas por dados reais do sistema:</p>
<ul>
<li><code>[site_name]</code> - Nome da empresa/unidade.</li>
<li><code>[current_date]</code> - Data atual formatada.</li>
<li><code>[contact_email]</code> - E-mail de contato principal.</li>
</ul>
</div>
</div>
<!-- Visibilidade -->
<div class="card shadow mb-4" id="visibilidade">
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary">4. Visibilidade e Ordem</h6>
</div>
<div class="card-body">
<ul>
<li><strong>Ordem:</strong> Define a sequência de exibição dos modelos em listas de seleção.</li>
<li><strong>Público/Privado:</strong> Define se o modelo pode ser acessado por qualquer pessoa ou apenas internamente pela equipe administrativa.</li>
</ul>
</div>
</div>
</div>
</div>
</div>
{% endblock %}
+13
View File
@@ -0,0 +1,13 @@
<div class="mb-4 d-print-none">
<div class="btn-group" role="group" aria-label="Navegação Modelo">
<a href="/admin/modelo" class="btn btn-outline-primary {% if request_path == '/admin/modelo' %}active{% endif %}">
<i class="bi bi-grid"></i> Todos os Modelos
</a>
<a href="/admin/modelo/create" class="btn btn-outline-primary {% if request_path == '/admin/modelo/create' %}active{% endif %}">
<i class="bi bi-plus-circle"></i> Novo Modelo
</a>
<a href="/admin/modelo/manual" class="btn btn-outline-info {% if request_path == '/admin/modelo/manual' %}active{% endif %}">
<i class="bi bi-book"></i> Manual
</a>
</div>
</div>
+46
View File
@@ -0,0 +1,46 @@
{% extends "layouts/main.twig" %}
{% block title %}{{ page_title }} - {{ platformName }}{% endblock %}
{% block content %}
<div class="container my-5">
<div class="row justify-content-center">
<div class="col-lg-10">
<h1 class="text-center display-4 mb-5">{{ page_title }}</h1>
<div class="row g-4">
{% for item in modelos %}
<div class="col-md-6">
<div class="card h-100 shadow-sm border-0 transition-hover">
<div class="card-body p-4">
<h5 class="card-title fw-bold text-primary mb-3">{{ item.modelos_title }}</h5>
<p class="card-text text-muted mb-4">
{{ item.modelos_content|striptags|slice(0, 150) }}...
</p>
<a href="{{ url('/modelo/' ~ item.modelos_slug) }}" class="btn btn-primary w-100">
Ver Detalhes <i class="bi bi-arrow-right ms-2"></i>
</a>
</div>
</div>
</div>
{% else %}
<div class="col-12">
<div class="alert alert-info text-center py-5">
<i class="bi bi-info-circle display-4 d-block mb-3"></i>
{{ __('modelo.no_items') }}
</div>
</div>
{% endfor %}
</div>
</div>
</div>
</div>
<style>
.transition-hover:hover {
transform: translateY(-5px);
transition: transform 0.3s ease;
box-shadow: 0 .5rem 1rem rgba(0,0,0,.15)!important;
}
</style>
{% endblock %}
+43
View File
@@ -0,0 +1,43 @@
{% extends "layouts/main.twig" %}
{% block title %}{{ page_title }} - {{ platformName }}{% endblock %}
{% block content %}
<div class="container my-5">
<div class="row justify-content-center">
<div class="col-md-10">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="{{ url('/') }}">Início</a></li>
<li class="breadcrumb-item"><a href="{{ url('/modelo') }}">Modelos</a></li>
<li class="breadcrumb-item active" aria-current="page">{{ page_title }}</li>
</ol>
</nav>
<article class="card shadow-sm border-0 mt-4">
<div class="card-body p-5">
<h1 class="display-4 mb-4">{{ page_title }}</h1>
<hr class="my-4">
<div class="modelo-content">
{{ content|raw }}
</div>
</div>
</article>
<div class="mt-4 text-center">
<a href="{{ url('/modelo') }}" class="btn btn-outline-primary">
<i class="bi bi-arrow-left"></i> Voltar para a lista
</a>
</div>
</div>
</div>
</div>
<style>
.modelo-content {
line-height: 1.8;
font-size: 1.1rem;
color: #333;
}
</style>
{% endblock %}