First Commit
This commit is contained in:
Executable
+73
@@ -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 %}
|
||||
Executable
+74
@@ -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 %}
|
||||
Executable
+74
@@ -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 %}
|
||||
Executable
+13
@@ -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>
|
||||
Executable
+46
@@ -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 %}
|
||||
Executable
+43
@@ -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 %}
|
||||
Reference in New Issue
Block a user