This commit is contained in:
2026-02-12 17:56:16 +00:00
parent a4f80c85c2
commit 2ffd916e2f
27 changed files with 1181 additions and 60 deletions

View File

@@ -5,9 +5,9 @@
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" href="../assets/images/favicon.jpg" type="image/x-icon">
<link rel="shortcut icon" href="../assets/images/favicon.jpg" type="image/x-icon">
<title>Escola da Árvore - @yield('title')</title>
<link rel="icon" href="{{asset('assets/images/logo3.png')}}" type="image/x-icon">
<link rel="shortcut icon" href="{{asset('assets/images/favicon.jpg')}}" type="image/x-icon">
<title>{{ env('APP_NAME') }} - @yield('title')</title>
<!-- Google font-->
<link rel="preconnect" href="https://fonts.gstatic.com">
<link
@@ -20,27 +20,44 @@
href="https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,400;0,500;0,600;0,700;0,800;0,900;1,300;1,400;1,500;1,600;1,700;1,800;1,900&amp;display=swap"
rel="stylesheet">
<!-- Font Awesome-->
<link rel="stylesheet" type="text/css" href="../assets/css/fontawesome.css">
<link rel="stylesheet" type="text/css" href="{{ asset('assets/css/fontawesome.css')}}">
<!-- ico-font-->
<link rel="stylesheet" type="text/css" href="../assets/css/icofont.css">
<link rel="stylesheet" type="text/css" href="{{ asset('assets/css/icofont.css')}}">
<!-- Themify icon-->
<link rel="stylesheet" type="text/css" href="../assets/css/themify.css">
<link rel="stylesheet" type="text/css" href="{{ asset('assets/css/themify.css')}}">
<!-- Flag icon-->
<link rel="stylesheet" type="text/css" href="../assets/css/flag-icon.css">
<link rel="stylesheet" type="text/css" href="{{ asset('assets/css/flag-icon.css')}}">
<!-- Feather icon-->
<link rel="stylesheet" type="text/css" href="../assets/css/feather-icon.css">
<link rel="stylesheet" type="text/css" href="{{ asset('assets/css/feather-icon.css')}}">
<!-- Plugins css start-->
<!-- Plugins css Ends-->
<!-- Bootstrap css-->
<link rel="stylesheet" type="text/css" href="../assets/css/bootstrap.css">
<link rel="stylesheet" type="text/css" href="{{ asset('assets/css/bootstrap.css')}}">
<!-- App css-->
<link rel="stylesheet" type="text/css" href="../assets/css/style.css">
<link id="color" rel="stylesheet" href="../assets/css/color-1.css" media="screen">
<link rel="stylesheet" type="text/css" href="{{ asset('assets/css/style.css')}}">
<link id="color" rel="stylesheet" href="{{ asset('assets/css/color-1.css')}}" media="screen">
<!-- Responsive css-->
<link rel="stylesheet" type="text/css" href="../assets/css/responsive.css">
<link rel="stylesheet" type="text/css" href="{{ asset('assets/css/responsive.css')}}">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/simplemde/latest/simplemde.min.css">
<link rel="stylesheet" type="text/css" href="{{ asset('assets/css/dropzone.css') }}">
</head>
<body>
@php
use App\Models\escolas;
use App\Models\turmas;
if (Auth::user()->id_escola == 0) {
$escolas = escolas::all();
} else {
$escolas = escolas::where('id', Auth::user()->id_escola)->get();
}
if (Auth::user()->id_escola == 0) {
$turmas = turmas::all();
} else {
$turmas = turmas::where('id_escola', Auth::user()->id_escola)->get();
}
@endphp
<!-- Loader starts-->
<div class="loader-wrapper">
<div class="theme-loader">
@@ -54,10 +71,6 @@
<div class="page-main-header">
<div class="main-header-right row m-0">
<div class="main-header-left">
<div class="logo-wrapper"><a href="index.html"><img class="img-fluid"
src="../assets/images/logo2.png" alt=""></a></div>
<div class="dark-logo-wrapper"><a href="index.html"><img class="img-fluid"
src="../assets/images/logo2.png" alt=""></a></div>
<div class="toggle-sidebar"><i class="status_toggle middle" data-feather="align-center"
id="sidebar-toggle"></i></div>
</div>
@@ -76,6 +89,26 @@
<ul class="nav-menus">
<li><a class="text-dark" href="#!" onclick="javascript:toggleFullScreen()"><i
data-feather="maximize"></i></a></li>
<li>
<div class="dropdown-basic">
<div class="dropdown">
<div class="btn-group mb-0">
<button class="dropbtn btn-primary btn-round" type="button">
Novo <span><i class="icofont icofont-arrow-down"></i></span>
</button>
<div class="dropdown-content">
<a href="#" data-bs-toggle="modal" data-bs-target="#modalEscola">Escola</a>
<a href="#" data-bs-toggle="modal" data-bs-target="#modalTurma">Turma</a>
<a href="#" data-bs-toggle="modal" data-bs-target="#modalAluno">Aluno</a>
<a href="#" data-bs-toggle="modal" data-bs-target="#modalEnvio">Envio de
Mensagem</a>
<a href="#" data-bs-toggle="modal" data-bs-target="#modalEvento">Evento</a>
</div>
</div>
</div>
</div>
</li>
<li class="onhover-dropdown p-0">
<form method="POST" action="{{ route('logout') }}">
@csrf
@@ -97,7 +130,7 @@
<header class="main-nav">
<div class="sidebar-user text-center"><a class="setting-primary" href="javascript:void(0)"><i
data-feather="settings"></i></a><img class="img-90 rounded-circle"
src="../assets/images/dashboard/1.png" alt="">
src="{{ asset('assets/images/logo3.png')}}" alt="">
<div class="badge-bottom"><span class="badge badge-primary">Responsável</span></div><a
href="user-profile.html">
<h6 class="mt-3 f-14 f-w-600">{{ Auth::user()->name }}</h6>
@@ -114,11 +147,25 @@
</li>
<li class="sidebar-main-title">
<div>
<h6>Dashboard </h6>
<h6>Geral </h6>
</div>
</li>
<li class="dropdown"><a class="nav-link menu-title link-nav" href=""><i
data-feather="git-pull-request"></i><span>Dashboard</span></a></li>
<li class="sidebar-main-title">
<div>
<h6>Administração </h6>
</div>
</li>
<li class="dropdown"><a class="nav-link menu-title link-nav"
href="{{ route('escolas') }}"><i
data-feather="award"></i><span>Escolas</span></a></li>
<li class="dropdown"><a class="nav-link menu-title link-nav"
href="{{ route('turmas') }}"><i data-feather="award"></i><span>Turmas</span></a>
</li>
<li class="dropdown"><a class="nav-link menu-title link-nav"
href="{{ route('alunos') }}"><i data-feather="award"></i><span>Alunos</span></a>
</li>
</ul>
</div>
<div class="right-arrow" id="right-arrow"><i data-feather="arrow-right"></i></div>
@@ -148,24 +195,7 @@
</div>
<!-- Container-fluid starts-->
<div class="container-fluid">
<div class="row">
<div class="col-sm-12">
<div class="card">
<div class="card-header pb-0">
<h5>Sample Card</h5><span>lorem ipsum dolor sit amet, consectetur adipisicing
elit</span>
</div>
<div class="card-body">
<p>"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim id est laborum."</p>
</div>
</div>
</div>
</div>
@yield('content')
</div>
<!-- Container-fluid Ends-->
</div>
@@ -183,23 +213,355 @@
</footer>
</div>
</div>
<div class="modal fade" id="modalEscola" tabindex="-1" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Nova Escola</h4>
<button class="btn-close" data-bs-dismiss="modal"></button>
</div>
<div class="modal-body">
<form class="form theme-form" action="{{ route('escola.novo') }}" method="POST">
@csrf
<div class="card-body">
<div class="row">
<div class="col-4">
<div class="mb-3">
<label class="form-label" for="cnoj">CNPJ</label>
<input class="form-control" id="cnpj" name="cnpj" type="text">
</div>
</div>
<div class="col-8">
<div class="mb-3">
<label class="form-label" for="razao_social">Razão Social</label>
<input class="form-control" id="razao_social" name="razaosocial" type="text">
</div>
</div>
</div>
<div class="row">
<div class="col-6">
<div class="mb-3">
<label class="form-label" for="logradouro">Logradouro</label>
<input class="form-control" id="logradouro" type="text" disabled>
</div>
</div>
<div class="col-3">
<div class="mb-3">
<label class="form-label" for="numero">Número</label>
<input class="form-control" id="numero" type="text" disabled>
</div>
</div>
<div class="col-3">
<div class="mb-3">
<label class="form-label" for="cep">CEP</label>
<input class="form-control" id="cep" type="text" disabled>
</div>
</div>
</div>
<div class="row">
<div class="col-4">
<div class="mb-3">
<label class="form-label" for="complemento">Complemento</label>
<input class="form-control" id="complemento" type="text" disabled>
</div>
</div>
<div class="col-3">
<div class="mb-3">
<label class="form-label" for="bairro">Bairro</label>
<input class="form-control" id="bairro" type="text" disabled>
</div>
</div>
<div class="col-2">
<div class="mb-3">
<label class="form-label" for="estado">Estado</label>
<input class="form-control" id="estado" type="text" disabled>
</div>
</div>
<div class="col-3">
<div class="mb-3">
<label class="form-label" for="cidade">Cidade</label>
<input class="form-control" id="cidade" type="text" disabled>
<input class="form-control" id="address" name="address" type="hidden">
</div>
</div>
</div>
</div>
<div class="card-footer text-end">
<button class="btn btn-primary" type="submit">Salvar|Atualizar</button>
</div>
</form>
</div>
</div>
</div>
</div>
<div class="modal fade" id="modalTurma" tabindex="-1" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Nova Turma</h4>
<button class="btn-close" data-bs-dismiss="modal"></button>
</div>
<div class="modal-body">
<form class="form theme-form" action="{{ route('turma.novo') }}" method="POST">
@csrf
<div class="card-body">
<div class="row">
<div class="col">
<div class="mb-3">
<label class="form-label" for="escolas">Escola</label>
<select class="form-select digits" id="escolas" name="id_escola">
@foreach ($escolas as $escola)
<option value="{{ $escola->id }}">{{ $escola->nome }}
</option>
@endforeach
</select>
</div>
</div>
<div class="col">
<div class="mb-3">
<label class="form-label" for="turma_nome">Nome</label>
<input class="form-control" id="turma_nome" name="turma_nome" type="text">
</div>
</div>
<div class="col">
<div class="mb-3">
<label class="form-label" for="turma_descricao">Descrição</label>
<input class="form-control" id="turma_descricao" name="turma_descricao"
type="text">
</div>
</div>
<div class="col">
<div class="mb-3">
<label class="form-label" for="id_whatsapp">Whatsap Id</label>
<input class="form-control" id="id_whatsapp" name="id_whatsapp" type="text">
</div>
</div>
</div>
</div>
<div class="card-footer text-end">
<button class="btn btn-primary" type="submit">Salvar|Atualizar</button>
</div>
</form>
</div>
</div>
</div>
</div>
<div class="modal fade" id="modalAluno" tabindex="-1" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Novo Aluno</h4>
<button class="btn-close" data-bs-dismiss="modal"></button>
</div>
<div class="modal-body">
<!-- formulário -->
</div>
</div>
</div>
</div>
<div class="modal fade" id="modalEnvio" tabindex="-1" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<form class="form theme-form" action="{{ route('envio.wpp') }}" method="POST"
enctype="multipart/form-data">
@csrf
<div class="modal-header">
<h4 class="modal-title">Novo Envio</h4>
<button class="btn-close" data-bs-dismiss="modal"></button>
</div>
<div class="modal-body">
<div class="row">
<!-- NOVO DROPDOWN (primeiro item) -->
<div class="col-12">
<div class="mb-3">
<label class="form-label">Tipo de Envio</label>
<select class="form-select" name="tipo_envio" id="tipo_envio">
<option value="texto">Somente Texto</option>
<option value="imagem">Imagem + Texto</option>
</select>
</div>
</div>
<!-- Turma -->
<div class="col-12">
<div class="mb-3">
<label class="form-label">Turma</label>
<select class="form-select digits" name="id_turma">
@foreach ($turmas as $turma)
<option value="{{ $turma->id }}">
{{ $turma->nome }}
</option>
@endforeach
</select>
</div>
</div>
<!-- Mensagem -->
<div class="col-12">
<div class="mb-3">
<label class="form-label">Mensagem</label>
<textarea id="editor" name="mensagem" class="form-control"></textarea>
</div>
</div>
<!-- Upload imagem (oculto inicialmente) -->
<div class="col-12 d-none" id="campoImagem">
<div class="mb-3">
<label class="form-label">Imagem</label>
<input type="file" name="imagem" class="form-control"
accept="image/jpeg,image/png,image/webp">
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button class="btn btn-secondary" data-bs-dismiss="modal">
Cancelar
</button>
<button class="btn btn-primary" type="submit">
Enviar Mensagem
</button>
</div>
</form>
</div>
</div>
</div>
<div class="modal fade" id="modalEvento" tabindex="-1" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Novo Evento</h4>
<button class="btn-close" data-bs-dismiss="modal"></button>
</div>
<div class="modal-body">
<!-- formulário -->
</div>
</div>
</div>
</div>
<!-- latest jquery-->
<script src="../assets/js/jquery-3.5.1.min.js"></script>
<script src="{{ asset('assets/js/jquery-3.5.1.min.js')}}"></script>
<!-- feather icon js-->
<script src="../assets/js/icons/feather-icon/feather.min.js"></script>
<script src="../assets/js/icons/feather-icon/feather-icon.js"></script>
<script src="{{ asset('assets/js/icons/feather-icon/feather.min.js')}}"></script>
<script src="{{ asset('assets/js/icons/feather-icon/feather-icon.js')}}"></script>
<!-- Sidebar jquery-->
<script src="../assets/js/sidebar-menu.js"></script>
<script src="../assets/js/config.js"></script>
<script src="{{ asset('assets/js/sidebar-menu.js')}}"></script>
<script src="{{ asset('assets/js/config.js')}}"></script>
<!-- Bootstrap js-->
<script src="../assets/js/bootstrap/popper.min.js"></script>
<script src="../assets/js/bootstrap/bootstrap.min.js"></script>
<script src="{{ asset('assets/js/bootstrap/popper.min.js')}}"></script>
<script src="{{ asset('assets/js/bootstrap/bootstrap.min.js')}}"></script>
<!-- Plugins JS start-->
<!-- Plugins JS Ends-->
<!-- Theme js-->
<script src="../assets/js/script.js"></script>
<script src="{{ asset('assets/js/script.js')}}"></script>
<!-- login js-->
<!-- Plugin used-->
<script src="{{ asset('assets/js/icons/icons-notify.js') }}"></script>
<script src="{{ asset('assets/js/icons/icon-clipart.js') }}"></script>
<script src="{{ asset('assets/js/icons/feather-icon/feather-icon.js') }}"></script>
<script src="{{ asset('assets/js/icons/feather-icon/feather.min.js') }}"></script>
<script src="{{ asset('assets/js/tooltip-init.js') }}"></script>
<script src="{{ asset('assets/js/dropzone/dropzone.js') }}"></script>
<script src="{{ asset('assets/js/dropzone/dropzone-script.js') }}"></script>
<script src="https://cdn.jsdelivr.net/simplemde/latest/simplemde.min.js"></script>
@yield('scripts')
<script>
let ultimoCNPJ = '';
let timeout = null;
document.getElementById('cnpj').addEventListener('input', function () {
let cnpj = this.value.replace(/\D/g, '');
clearTimeout(timeout);
if (cnpj.length !== 14 || cnpj === ultimoCNPJ) {
return;
}
timeout = setTimeout(() => {
ultimoCNPJ = cnpj;
buscarCNPJ(cnpj);
}, 400);
});
function buscarCNPJ(cnpj) {
fetch(`https://open.cnpja.com/office/${cnpj}`)
.then(response => {
if (!response.ok) {
throw new Error('Erro na consulta');
}
return response.json();
})
.then(data => {
// ===== RAZÃO SOCIAL =====
document.getElementById('razao_social').value =
data.company?.name ?? '';
const address = data.address ?? {};
// ===== ENDEREÇO =====
document.getElementById('logradouro').value = address.street ?? '';
document.getElementById('numero').value = address.number ?? '';
document.getElementById('complemento').value = address.details ?? '';
document.getElementById('bairro').value = address.district ?? '';
document.getElementById('estado').value = address.state ?? '';
document.getElementById('cidade').value = address.city ?? '';
document.getElementById('address').value = JSON.stringify(address ?? {});
// CEP formatado
document.getElementById('cep').value = formatarCEP(address.zip);
})
.catch(error => {
console.error(error);
alert('Erro ao consultar o CNPJ');
});
}
function formatarCEP(cep) {
if (!cep) return '';
return cep.replace(/^(\d{5})(\d{3})$/, '$1-$2');
}
</script>
<script>
var simplemde = new SimpleMDE({
element: document.getElementById("editor"),
spellChecker: false,
toolbar: ["bold", "italic", "strikethrough", "|", "unordered-list", "ordered-list", "|", "preview"]
});
</script>
<script>
document.getElementById('tipo_envio').addEventListener('change', function () {
const campoImagem = document.getElementById('campoImagem');
if (this.value === 'imagem') {
campoImagem.classList.remove('d-none');
} else {
campoImagem.classList.add('d-none');
}
});
</script>
</body>
</html>