atualizacao
This commit is contained in:
131
resources/views/errors/403.blade.php
Normal file
131
resources/views/errors/403.blade.php
Normal file
@@ -0,0 +1,131 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<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">
|
||||
<meta name="description" content="viho admin is super flexible, powerful, clean & modern responsive bootstrap 4 admin template with unlimited possibilities.">
|
||||
<meta name="keywords" content="admin template, viho admin template, dashboard template, flat admin template, responsive admin template, web app">
|
||||
<meta name="author" content="pixelstrap">
|
||||
<link rel="icon" href="{{ asset('assets/images/favicon.png" type="image/x-icon')}}">
|
||||
<link rel="shortcut icon" href="{{ asset('assets/images/favicon.png')}}" type="image/x-icon">
|
||||
<title>{{env('APP_NAME')}}</title>
|
||||
<!-- Google font-->
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com">
|
||||
<link href="https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap" rel="stylesheet">
|
||||
<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet">
|
||||
<link 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&display=swap" rel="stylesheet">
|
||||
<!-- Font Awesome-->
|
||||
<link rel="stylesheet" type="text/css" href="{{ asset('assets/css/fontawesome.css')}}">
|
||||
<!-- ico-font-->
|
||||
<link rel="stylesheet" type="text/css" href="{{ asset('assets/css/icofont.css')}}">
|
||||
<!-- Themify icon-->
|
||||
<link rel="stylesheet" type="text/css" href="{{ asset('assets/css/themify.css')}}">
|
||||
<!-- Flag icon-->
|
||||
<link rel="stylesheet" type="text/css" href="{{ asset('assets/css/flag-icon.css')}}">
|
||||
<!-- Feather icon-->
|
||||
<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="{{ asset('assets/css/bootstrap.css')}}">
|
||||
<!-- App css-->
|
||||
<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="{{ asset('assets/css/responsive.css')}}">
|
||||
</head>
|
||||
<body>
|
||||
<!-- Loader starts-->
|
||||
<div class="loader-wrapper">
|
||||
<div class="theme-loader">
|
||||
<div class="loader-p"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Loader ends-->
|
||||
<!-- error page start //-->
|
||||
<div class="page-wrapper" id="pageWrapper">
|
||||
<div class="error-wrapper">
|
||||
<div class="container">
|
||||
<div class="error-page1">
|
||||
<div class="svg-wrraper mb-0">
|
||||
<svg class="svg-60" viewbox="0 0 1920 1080" xmlns="http://www.w3.org/2000/svg">
|
||||
<g>
|
||||
<path class="warning-color" d="M600.87,872H156a4,4,0,0,0-3.78,4.19h0a4,4,0,0,0,3.78,4.19H600.87a4,4,0,0,0,3.78-4.19h0A4,4,0,0,0,600.87,872Z"></path>
|
||||
<rect class="warning-color" height="8.39" rx="4.19" ry="4.19" width="513.38" x="680.91" y="871.98"></rect>
|
||||
<path class="warning-color" d="M1480,876.17h0c0,2.32,2.37,4.19,5.3,4.19h350.61c2.93,0,5.3-1.88,5.3-4.19h0c0-2.32-2.37-4.19-5.3-4.19H1485.26C1482.33,872,1480,873.86,1480,876.17Z"></path>
|
||||
<rect class="warning-color" height="8.39" rx="4.19" ry="4.19" width="249.8" x="492.21" y="920.64"></rect>
|
||||
<path class="warning-color" d="M1549.14,924.84h0a4.19,4.19,0,0,0-4.19-4.19H1067.46a14.66,14.66,0,0,1,.35,3.21v1A4.19,4.19,0,0,0,1072,929h472.94A4.19,4.19,0,0,0,1549.14,924.84Z"></path>
|
||||
<path class="warning-color" d="M865.5,924.84h0a4.19,4.19,0,0,0,4.19,4.19h82.37a12.28,12.28,0,0,1-.19-2v-2.17a4.19,4.19,0,0,0-4.19-4.19h-78A4.19,4.19,0,0,0,865.5,924.84Z"></path>
|
||||
<rect class="warning-color" height="8.39" rx="4.19" ry="4.19" width="54.72" x="915.6" y="981.47"></rect>
|
||||
<path class="warning-color" d="M730.33,985.67h0c0,2.32,4.23,4.19,9.44,4.19h104.3c5.22,0,9.44-1.88,9.44-4.19h0c0-2.32-4.23-4.19-9.44-4.19H739.78C734.56,981.47,730.33,983.35,730.33,985.67Z"></path>
|
||||
<rect class="warning-color" height="8.39" rx="4.19" ry="4.19" width="78.11" x="997.06" y="981.47"></rect>
|
||||
<g id="round-conf">
|
||||
<path class="warning-color circle c1" d="M536.41,155.14a17.77,17.77,0,1,0,17.77,17.77A17.77,17.77,0,0,0,536.41,155.14Zm0,28.68a10.9,10.9,0,1,1,10.9-10.9A10.9,10.9,0,0,1,536.41,183.81Z"></path>
|
||||
<path class="warning-color circle c1" d="M1345.09,82.44a17.77,17.77,0,1,0,17.77,17.77A17.77,17.77,0,0,0,1345.09,82.44Zm0,28.68a10.9,10.9,0,1,1,10.9-10.9A10.9,10.9,0,0,1,1345.09,111.12Z"></path>
|
||||
<path class="warning-color circle c1" d="M70.12,363A17.77,17.77,0,1,0,87.89,380.8,17.77,17.77,0,0,0,70.12,363Zm0,28.68A10.9,10.9,0,1,1,81,380.8,10.9,10.9,0,0,1,70.12,391.7Z"></path>
|
||||
<path class="warning-color circle c1" d="M170.47,751.82a17.77,17.77,0,1,0,17.77,17.77A17.77,17.77,0,0,0,170.47,751.82Zm0,28.68a10.9,10.9,0,1,1,10.9-10.9A10.9,10.9,0,0,1,170.47,780.5Z"></path>
|
||||
<path class="warning-color circle c1" d="M1457.34,762.73a17.77,17.77,0,1,0,17.77,17.77A17.77,17.77,0,0,0,1457.34,762.73Zm0,28.68a10.9,10.9,0,1,1,10.9-10.9A10.9,10.9,0,0,1,1457.34,791.4Z"></path>
|
||||
<path class="warning-color circle c1" d="M1829.15,407.49a17.77,17.77,0,1,0,17.77,17.77A17.77,17.77,0,0,0,1829.15,407.49Zm0,28.68a10.9,10.9,0,1,1,10.9-10.9A10.9,10.9,0,0,1,1829.15,436.17Z"></path>
|
||||
</g>
|
||||
</g>
|
||||
<g id="fortyfour" data-name="Layer 2">
|
||||
<g class="four a">
|
||||
<rect class="primary-color" height="466.29" rx="57.1" ry="57.1" transform="translate(918.39 330.19) rotate(90)" width="120.71" x="233.74" y="391.14"></rect>
|
||||
<rect class="primary-color" height="396.88" rx="60.36" ry="60.36" width="120.71" x="333.83" y="475.1"></rect>
|
||||
<rect class="primary-color" height="604.75" rx="60.36" ry="60.36" transform="translate(290.49 -70.78) rotate(35)" width="120.71" x="197.13" y="122.89"></rect>
|
||||
</g>
|
||||
<g class="four b">
|
||||
<rect class="primary-color" height="466.29" rx="57.1" ry="57.1" transform="translate(2244.26 -994.14) rotate(90)" width="120.71" x="1558.84" y="391.91"></rect>
|
||||
<rect class="primary-color" height="396.88" rx="60.36" ry="60.36" width="120.71" x="1658.92" y="475.87"></rect>
|
||||
<rect class="primary-color" height="604.75" rx="60.36" ry="60.36" transform="translate(530.57 -830.68) rotate(35)" width="120.71" x="1522.22" y="123.66"></rect>
|
||||
</g>
|
||||
<path class="primary-color" id="ou" d="M956.54,168.2c-194.34,0-351.89,157.55-351.89,351.89S762.19,872,956.54,872s351.89-157.55,351.89-351.89S1150.88,168.2,956.54,168.2Zm0,584.49c-128.46,0-232.6-104.14-232.6-232.6s104.14-232.6,232.6-232.6,232.6,104.14,232.6,232.6S1085,752.69,956.54,752.69Z"></path>
|
||||
</g>
|
||||
<g class="bicycle" data-name="Layer 5">
|
||||
<path class="warning-color wheel" d="M1139.82,780.44a76.59,76.59,0,1,0-57.9,91.53A76.59,76.59,0,0,0,1139.82,780.44Zm-28.12,6.33a47.59,47.59,0,0,1,.83,15.8c-30.14-6.28-47.68-21.65-54.39-52.52A47.73,47.73,0,0,1,1111.69,786.77Zm-70.46-30.9c10.35,26.88,10.14,50.4-13.73,70.77a47.67,47.67,0,0,1,13.73-70.77Zm34.35,88a47.55,47.55,0,0,1-34.94-5.62c16.8-20.36,41.71-25.94,67.09-19.46A47.66,47.66,0,0,1,1075.58,843.85Z"></path>
|
||||
<path class="warning-color wheel" d="M864.89,789.69a76.59,76.59,0,1,0-66.13,85.78A76.59,76.59,0,0,0,864.89,789.69Zm-28.59,3.7a47.59,47.59,0,0,1-.64,15.81c-29.43-9-45.47-26-49.3-57.33A47.73,47.73,0,0,1,836.3,793.39ZM769,756.1c7.82,27.72,5.43,51.12-20.22,69.2A47.67,47.67,0,0,1,769,756.1Zm26.06,90.78a47.55,47.55,0,0,1-34.27-8.83c18.61-18.72,43.93-22,68.6-13.16A47.66,47.66,0,0,1,795.06,846.88Z"></path>
|
||||
<g>
|
||||
<rect class="warning-color" height="53.21" transform="translate(-165.97 273.38) rotate(-16.19)" width="12.87" x="871.39" y="693.37"></rect>
|
||||
<path class="secondary-color lighten-5" d="M813.93,679.35c-3.72-5.2,2.24-18.5,9.16-16.13,33.43,11.46,73.85,10.45,73.85,10.45,8.84.15,14.44,10.34,7.27,15.48-14.36,8.79-33.13,17-56.35,9.76C830.17,693.41,819.83,687.6,813.93,679.35Z"></path>
|
||||
<path class="secondary-color opacity-o4" d="M813.93,679.35c-3.72-5.2,2.24-18.5,9.16-16.13,33.43,11.46,73.85,10.45,73.85,10.45,8.84.15,14.44,10.34,7.27,15.48-14.36,8.79-33.13,17-56.35,9.76C830.17,693.41,819.83,687.6,813.93,679.35Z"></path>
|
||||
<path class="secondary-color lighten-5" d="M817.15,680.06c-3.59-5,1.69-16.51,8.37-14.22,32.3,11.09,71.41,7.83,71.41,7.83,8.54.14,17.45,9.94,7.43,15.88-13.87,8.51-32,16.44-54.44,9.44C832.84,693.67,822.85,688,817.15,680.06Z"></path>
|
||||
</g>
|
||||
<g>
|
||||
<circle class="warning-color" cx="1022.66" cy="599.55" r="11.57" transform="translate(-4.86 8.38) rotate(-0.47)"></circle>
|
||||
<path class="warning-color" d="M1069.76,792.37l-34.89-96.74,1.93-.8-1.71-4.15-1.74.72-13.26-36.76,1.27-.42-2.25-6.76,5.94-2-2.57-7.72-9.7,3.22c-11.55-22.55,2-36.33,15-41.86l-5.57-8.81c-23,10.29-29.61,28.75-19.53,54l-9.38,3.12,2.56,7.72,5.47-1.82,2.25,6.76,2.36-.78,13.62,37.76-2.35,1,1.71,4.15,2.16-.89,34.65,96.09a7.47,7.47,0,0,0,9.56,4.49h0A7.47,7.47,0,0,0,1069.76,792.37Z"></path>
|
||||
<circle class="secondary-color lighten-5" cx="1027.9" cy="587.94" r="12.99" transform="translate(-4.77 8.42) rotate(-0.47)"></circle>
|
||||
</g>
|
||||
<path class="secondary-color lighten-5" d="M1021.29,654l-17.73,6.15,1.72,5.59-31.41,82.36c-19.35,32.53-66.3,36.72-75.56,16.68l-7.09-21.5L879,747.1l3.28,10.09-94.65,33.95c-11.49,2.29-11.85,15.79-2.61,17.84,0,0,39.11,3.66,103,9.5a92.75,92.75,0,0,0,40.89-5.29c44.32-16.56,57.73-50.67,57.73-50.67l26.82-67.26a1.37,1.37,0,0,1,2.53,0l1.42,3.33,17.75-7.62Z"></path>
|
||||
<path class="secondary-color opacity-o4" d="M1021.29,654l-17.73,6.15,1.72,5.59-31.41,82.36c-19.35,32.53-66.3,36.72-75.56,16.68l-7.09-21.5L879,747.1l3.28,10.09-94.65,33.95c-11.49,2.29-11.85,15.79-2.61,17.84,0,0,39.11,3.66,103,9.5a92.75,92.75,0,0,0,40.89-5.29c44.32-16.56,57.73-50.67,57.73-50.67l26.82-67.26a1.37,1.37,0,0,1,2.53,0l1.42,3.33,17.75-7.62Z"></path>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="col-md-8 offset-md-2">
|
||||
<h3>Oops! Parece que você não tem permissão de acesso.</h3>
|
||||
<p class="sub-content">Você está tentando acessar uma página que você não tem acesso, foi movida ou não existe mais. Entre em contato com suporte.</p><a class="btn btn-primary btn-lg" href="{{ route('dashboard') }}">Voltar para o sistema</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- error page end //-->
|
||||
<!-- latest jquery-->
|
||||
<script src="{{ asset('assets/js/jquery-3.5.1.min.js')}}"></script>
|
||||
<!-- feather icon js-->
|
||||
<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="{{ asset('assets/js/sidebar-menu.js')}}"></script>
|
||||
<script src="{{ asset('assets/js/config.js')}}"></script>
|
||||
<!-- Bootstrap js-->
|
||||
<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="{{ asset('assets/js/script.js')}}"></script>
|
||||
<!-- login js-->
|
||||
<!-- Plugin used-->
|
||||
</body>
|
||||
</html>
|
||||
6
resources/views/escolas/escola.detalhes.blade.php
Normal file
6
resources/views/escolas/escola.detalhes.blade.php
Normal file
@@ -0,0 +1,6 @@
|
||||
@extends('theme.default')
|
||||
@section('title', 'Alunos')
|
||||
@section('title.page', 'Alunos')
|
||||
@section('title.page1', 'CAE')
|
||||
@section('title.page2', 'Alunos')
|
||||
@section('title.page3', 'Lista de alunos')
|
||||
@@ -30,19 +30,27 @@
|
||||
<td>{{$escola->nome}}</td>
|
||||
<td>{{$escola->cnpj}}</td>
|
||||
<td>
|
||||
<span>Endereço:</span>
|
||||
<p>{{ $escola->endereco['street'] }} {{ $escola->endereco['number'] }}
|
||||
</p>
|
||||
@if (isset($escola->endereco))
|
||||
<span>Endereço:</span>
|
||||
<p>{{ $escola->endereco['street'] }} {{ $escola->endereco['number'] }}</p>
|
||||
@endif
|
||||
|
||||
|
||||
</td>
|
||||
<td>
|
||||
<span>Complemento:</span>
|
||||
<p>{{ $escola->endereco['details'] }} </p>
|
||||
@if (isset($escola->endereco))
|
||||
<span>Complemento:</span>
|
||||
<p>{{ $escola->endereco['details'] }} </p>
|
||||
@endif
|
||||
|
||||
|
||||
</td>
|
||||
<td>
|
||||
<span>Cep:</span>
|
||||
<p>{{ $escola->endereco['zip'] }}</p>
|
||||
@if (isset($escola->endereco))
|
||||
<span>Cep:</span>
|
||||
<p>{{ $escola->endereco['zip'] }}</p>
|
||||
@endif
|
||||
|
||||
|
||||
</td>
|
||||
<td>
|
||||
|
||||
@@ -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="{{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>
|
||||
<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>@yield('title') - {{env('APP_NAME_SHORT')}}</title>
|
||||
<!-- Google font-->
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com">
|
||||
<link
|
||||
@@ -20,43 +20,35 @@
|
||||
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&display=swap"
|
||||
rel="stylesheet">
|
||||
<!-- Font Awesome-->
|
||||
<link rel="stylesheet" type="text/css" href="{{ asset('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="{{ asset('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="{{ asset('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="{{ asset('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="{{ asset('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="{{ asset('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="{{ asset('assets/css/style.css')}}">
|
||||
<link id="color" rel="stylesheet" href="{{ asset('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="{{ asset('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();
|
||||
}
|
||||
use App\Models\Escola;
|
||||
use App\Models\Turma;
|
||||
|
||||
if (Auth::user()->id_escola == 0) {
|
||||
$turmas = turmas::all();
|
||||
} else {
|
||||
$turmas = turmas::where('id_escola', Auth::user()->id_escola)->get();
|
||||
}
|
||||
$escolas = Escola::all();
|
||||
$turmas = Turma::all();
|
||||
@endphp
|
||||
<!-- Loader starts-->
|
||||
<div class="loader-wrapper">
|
||||
@@ -89,26 +81,36 @@
|
||||
<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>
|
||||
@role('super_admin')
|
||||
<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>
|
||||
<a href="#" data-bs-toggle="modal"
|
||||
data-bs-target="#modalUsuario">Usuário</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</li>
|
||||
@endrole
|
||||
|
||||
|
||||
<li class="onhover-dropdown p-0">
|
||||
<form method="POST" action="{{ route('logout') }}">
|
||||
@csrf
|
||||
@@ -130,8 +132,8 @@
|
||||
<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="{{ asset('assets/images/logo3.png')}}" alt="">
|
||||
<div class="badge-bottom"><span class="badge badge-primary">Responsável</span></div><a
|
||||
src="{{ asset('assets/images/logo3.png') }}" alt="">
|
||||
<div class="badge-bottom"><span class="badge badge-primary">{{ Auth::user()->funcao() }}</span></div><a
|
||||
href="user-profile.html">
|
||||
<h6 class="mt-3 f-14 f-w-600">{{ Auth::user()->name }}</h6>
|
||||
</a>
|
||||
@@ -142,30 +144,41 @@
|
||||
<div id="mainnav">
|
||||
<ul class="nav-menu custom-scrollbar">
|
||||
<li class="back-btn">
|
||||
<div class="mobile-back text-end"><span>Back</span><i class="fa fa-angle-right ps-2"
|
||||
aria-hidden="true"></i></div>
|
||||
<div class="mobile-back text-end"><span>Back</span><i
|
||||
class="fa fa-angle-right ps-2" aria-hidden="true"></i></div>
|
||||
</li>
|
||||
<li class="sidebar-main-title">
|
||||
<div>
|
||||
<h6>Geral </h6>
|
||||
</div>
|
||||
</li>
|
||||
<li class="dropdown"><a class="nav-link menu-title link-nav" href=""><i
|
||||
<li class="dropdown"><a class="nav-link menu-title link-nav"
|
||||
href="{{ route('dashboard') }}"><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>
|
||||
|
||||
@role(['admin', 'super_admin'])
|
||||
<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>
|
||||
<li class="dropdown"><a class="nav-link menu-title link-nav"
|
||||
href="{{ route('usuarios') }}"><i
|
||||
data-feather="award"></i><span>Usuários</span></a>
|
||||
</li>
|
||||
@endrole
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
<div class="right-arrow" id="right-arrow"><i data-feather="arrow-right"></i></div>
|
||||
@@ -213,6 +226,8 @@
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Modal Escola -->
|
||||
<div class="modal fade" id="modalEscola" tabindex="-1" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
@@ -234,7 +249,8 @@
|
||||
<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">
|
||||
<input class="form-control" id="razao_social" name="razaosocial"
|
||||
type="text">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -295,6 +311,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Modal Turma -->
|
||||
<div class="modal fade" id="modalTurma" tabindex="-1" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
@@ -322,7 +339,8 @@
|
||||
<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">
|
||||
<input class="form-control" id="turma_nome" name="turma_nome"
|
||||
type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
@@ -335,7 +353,8 @@
|
||||
<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">
|
||||
<input class="form-control" id="id_whatsapp" name="id_whatsapp"
|
||||
type="text">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -349,21 +368,241 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- MODAL NOVO ALUNO --}}
|
||||
<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>
|
||||
|
||||
<form class="form theme-form" action="{{ route('alunos.add') }}" method="POST">
|
||||
@csrf
|
||||
|
||||
<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">
|
||||
<div class="row">
|
||||
|
||||
{{-- Escola --}}
|
||||
<div class="col-12">
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Escola</label>
|
||||
<select class="form-select" name="id_escola" id="id_escola" required>
|
||||
<option value="">Selecione...</option>
|
||||
@foreach ($escolas as $escola)
|
||||
<option value="{{ $escola->id }}" @selected(auth()->user()?->current_escola_id == $escola->id)>
|
||||
{{ $escola->nome }}
|
||||
</option>
|
||||
@endforeach
|
||||
</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" id="id_turma" required
|
||||
disabled>
|
||||
<option value="">Selecione uma escola primeiro...</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- Nome --}}
|
||||
<div class="col-12 col-md-8">
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Nome do aluno</label>
|
||||
<input type="text" name="nome" class="form-control" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- CPF --}}
|
||||
<div class="col-12 col-md-4">
|
||||
<div class="mb-3">
|
||||
<label class="form-label">CPF</label>
|
||||
<input type="text" name="cpf" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- Data de nascimento --}}
|
||||
<div class="col-12 col-md-6">
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Data de nascimento *</label>
|
||||
<input type="date" name="data_nascimento" class="form-control" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- Data de inscrição --}}
|
||||
<div class="col-12 col-md-6">
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Data de inscrição *</label>
|
||||
<input type="date" name="data_inscricao" class="form-control"
|
||||
value="{{ now()->format('Y-m-d') }}" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- Usuário do aluno --}}
|
||||
<div class="col-12 col-md-6">
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Usuário do aluno (opcional)</label>
|
||||
<select class="form-select" name="user_id">
|
||||
<option value="">Não vincular</option>
|
||||
@foreach ($users ?? [] as $u)
|
||||
<option value="{{ $u->id }}">
|
||||
{{ $u->name }} ({{ $u->email }})
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- Usuário responsável --}}
|
||||
<div class="col-12 col-md-6">
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Usuário responsável (opcional)</label>
|
||||
<select class="form-select" name="responsavel_user_id">
|
||||
<option value="">Não vincular</option>
|
||||
@foreach ($users ?? [] as $u)
|
||||
<option value="{{ $u->id }}">
|
||||
{{ $u->name }} ({{ $u->email }})
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</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">
|
||||
Salvar Aluno
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- JS carregar turmas --}}
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
|
||||
const modalEl = document.getElementById('modalAluno');
|
||||
const escolaSelect = document.getElementById('id_escola');
|
||||
const turmaSelect = document.getElementById('id_turma');
|
||||
|
||||
if (!modalEl || !escolaSelect || !turmaSelect) return;
|
||||
|
||||
let controller = null; // abort fetch anterior
|
||||
|
||||
function setTurmaOptions({
|
||||
message = null,
|
||||
turmas = []
|
||||
} = {}) {
|
||||
turmaSelect.innerHTML = '';
|
||||
|
||||
if (message) {
|
||||
const opt = document.createElement('option');
|
||||
opt.value = '';
|
||||
opt.textContent = message;
|
||||
turmaSelect.appendChild(opt);
|
||||
turmaSelect.disabled = true;
|
||||
return;
|
||||
}
|
||||
|
||||
const opt0 = document.createElement('option');
|
||||
opt0.value = '';
|
||||
opt0.textContent = 'Selecione...';
|
||||
turmaSelect.appendChild(opt0);
|
||||
|
||||
turmas.forEach(t => {
|
||||
const opt = document.createElement('option');
|
||||
opt.value = t.id;
|
||||
opt.textContent = t.nome;
|
||||
turmaSelect.appendChild(opt);
|
||||
});
|
||||
|
||||
turmaSelect.disabled = turmas.length === 0;
|
||||
if (turmas.length === 0) {
|
||||
setTurmaOptions({
|
||||
message: 'Nenhuma turma encontrada para esta escola.'
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
async function loadTurmas(escolaId) {
|
||||
if (!escolaId) {
|
||||
setTurmaOptions({
|
||||
message: 'Selecione uma escola primeiro...'
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
// cancela requisição anterior
|
||||
if (controller) controller.abort();
|
||||
controller = new AbortController();
|
||||
|
||||
setTurmaOptions({
|
||||
message: 'Carregando turmas...'
|
||||
});
|
||||
|
||||
try {
|
||||
const resp = await fetch(`/api/escolas/${escolaId}/turmas`, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'Accept': 'application/json',
|
||||
'X-Requested-With': 'XMLHttpRequest',
|
||||
},
|
||||
signal: controller.signal,
|
||||
});
|
||||
|
||||
// se deu redirect/403/500 etc, não tenta parsear json
|
||||
if (!resp.ok) {
|
||||
throw new Error(`HTTP ${resp.status}`);
|
||||
}
|
||||
|
||||
const turmas = await resp.json();
|
||||
setTurmaOptions({
|
||||
turmas
|
||||
});
|
||||
|
||||
} catch (err) {
|
||||
if (err.name === 'AbortError') return; // troca rápida de escola
|
||||
console.error('Erro ao carregar turmas:', err);
|
||||
setTurmaOptions({
|
||||
message: 'Erro ao carregar turmas.'
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// 1) carrega sempre ao abrir o modal (garante estabilidade)
|
||||
modalEl.addEventListener('shown.bs.modal', () => {
|
||||
loadTurmas(escolaSelect.value);
|
||||
});
|
||||
|
||||
// 2) recarrega ao trocar escola
|
||||
escolaSelect.addEventListener('change', () => {
|
||||
loadTurmas(escolaSelect.value);
|
||||
});
|
||||
|
||||
// 3) opcional: ao fechar modal, reseta turmas (evita “ficar antigo”)
|
||||
modalEl.addEventListener('hidden.bs.modal', () => {
|
||||
setTurmaOptions({
|
||||
message: 'Selecione uma escola primeiro...'
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
<div class="modal fade" id="modalEnvio" tabindex="-1" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
@@ -454,21 +693,267 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="modalUsuario" tabindex="-1" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">Novo Usuário</h4>
|
||||
<button class="btn-close" data-bs-dismiss="modal"></button>
|
||||
</div>
|
||||
|
||||
<div class="modal-body">
|
||||
<form action="{{ route('usuarios.add') }}" method="POST">
|
||||
@csrf
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Nome</label>
|
||||
<input class="form-control" name="name" required>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Email</label>
|
||||
<input class="form-control" type="email" name="email" required>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6 mb-3">
|
||||
<label class="form-label">Senha</label>
|
||||
<input class="form-control" type="password" name="password" required>
|
||||
</div>
|
||||
<div class="col-md-6 mb-3">
|
||||
<label class="form-label">Confirmar senha</label>
|
||||
<input class="form-control" type="password" name="password_confirmation" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-check mb-3">
|
||||
<input class="form-check-input" type="checkbox" value="1" id="is_super_admin" name="is_super_admin">
|
||||
<label class="form-check-label" for="is_super_admin">Super Admin</label>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6 mb-3">
|
||||
<label class="form-label">Escola</label>
|
||||
<select class="form-select" name="escola_id" id="escola_id_user">
|
||||
<option value="">Selecione...</option>
|
||||
@foreach($escolas as $escola)
|
||||
<option value="{{ $escola->id }}">{{ $escola->nome }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 mb-3">
|
||||
<label class="form-label">Cargo</label>
|
||||
<select class="form-select" name="role_name" id="role_name" disabled>
|
||||
<option value="">Selecione uma escola primeiro...</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- ✅ ALUNO: vínculo 1 aluno --}}
|
||||
<div class="mb-3 d-none" id="box_aluno_unico">
|
||||
<label class="form-label" id="label_aluno_unico">Qual aluno este usuário é?</label>
|
||||
<select class="form-select" name="aluno_id" id="aluno_id" disabled>
|
||||
<option value="">Selecione uma escola primeiro...</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
{{-- ✅ RESPONSÁVEL: vínculo múltiplos alunos --}}
|
||||
<div class="mb-3 d-none" id="box_alunos_responsavel">
|
||||
<label class="form-label">Quais alunos este responsável representa?</label>
|
||||
<select class="form-select" name="aluno_ids[]" id="aluno_ids" multiple disabled>
|
||||
<option value="">Selecione uma escola primeiro...</option>
|
||||
</select>
|
||||
<small class="text-muted">
|
||||
Segure <b>Ctrl</b> (Windows) ou <b>Cmd</b> (Mac) para selecionar mais de um.
|
||||
</small>
|
||||
</div>
|
||||
|
||||
<button class="btn btn-primary" type="submit">Criar usuário</button>
|
||||
</form>
|
||||
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
|
||||
const escolaSelect = document.getElementById('escola_id_user');
|
||||
const roleSelect = document.getElementById('role_name');
|
||||
const superCheck = document.getElementById('is_super_admin');
|
||||
|
||||
const boxAlunoUnico = document.getElementById('box_aluno_unico');
|
||||
const alunoSelect = document.getElementById('aluno_id');
|
||||
const labelAlunoUnico = document.getElementById('label_aluno_unico');
|
||||
|
||||
const boxResp = document.getElementById('box_alunos_responsavel');
|
||||
const alunosMulti = document.getElementById('aluno_ids');
|
||||
|
||||
const roleLabel = {
|
||||
'coordenacao': 'Coordenação',
|
||||
'secretaria': 'Secretaria',
|
||||
'responsavel': 'Responsável',
|
||||
'aluno': 'Aluno',
|
||||
'representante_de_turma': 'Representante de Turma',
|
||||
};
|
||||
|
||||
function resetSelect(select, msg) {
|
||||
select.innerHTML = `<option value="">${msg}</option>`;
|
||||
select.disabled = true;
|
||||
}
|
||||
|
||||
function hideAllBindings() {
|
||||
boxAlunoUnico.classList.add('d-none');
|
||||
boxResp.classList.add('d-none');
|
||||
|
||||
alunoSelect.value = '';
|
||||
alunosMulti.value = '';
|
||||
|
||||
resetSelect(alunoSelect, 'Selecione uma escola primeiro...');
|
||||
resetSelect(alunosMulti, 'Selecione uma escola primeiro...');
|
||||
}
|
||||
|
||||
async function loadRoles(escolaId) {
|
||||
if (!escolaId) {
|
||||
resetSelect(roleSelect, 'Selecione uma escola primeiro...');
|
||||
return;
|
||||
}
|
||||
|
||||
resetSelect(roleSelect, 'Carregando cargos...');
|
||||
|
||||
const resp = await fetch(`/api/escolas/${escolaId}/roles`, {
|
||||
headers: { 'Accept': 'application/json', 'X-Requested-With': 'XMLHttpRequest' }
|
||||
});
|
||||
|
||||
if (!resp.ok) {
|
||||
resetSelect(roleSelect, 'Erro ao carregar cargos');
|
||||
return;
|
||||
}
|
||||
|
||||
const roles = await resp.json();
|
||||
|
||||
roleSelect.innerHTML = `<option value="">Selecione...</option>`;
|
||||
roles.forEach(r => {
|
||||
const opt = document.createElement('option');
|
||||
opt.value = r.name;
|
||||
opt.textContent = roleLabel[r.name] ?? r.name;
|
||||
roleSelect.appendChild(opt);
|
||||
});
|
||||
|
||||
roleSelect.disabled = false;
|
||||
}
|
||||
|
||||
async function loadAlunos(escolaId, targetSelect, multiple = false) {
|
||||
if (!escolaId) {
|
||||
resetSelect(targetSelect, 'Selecione uma escola primeiro...');
|
||||
return;
|
||||
}
|
||||
|
||||
resetSelect(targetSelect, 'Carregando alunos...');
|
||||
|
||||
const resp = await fetch(`/api/escolas/${escolaId}/alunos`, {
|
||||
headers: { 'Accept': 'application/json', 'X-Requested-With': 'XMLHttpRequest' }
|
||||
});
|
||||
|
||||
if (!resp.ok) {
|
||||
resetSelect(targetSelect, 'Erro ao carregar alunos');
|
||||
return;
|
||||
}
|
||||
|
||||
const alunos = await resp.json();
|
||||
|
||||
targetSelect.innerHTML = multiple
|
||||
? '' // multi select não precisa placeholder fixo
|
||||
: `<option value="">Selecione...</option>`;
|
||||
|
||||
alunos.forEach(a => {
|
||||
const opt = document.createElement('option');
|
||||
opt.value = a.id;
|
||||
opt.textContent = a.nome;
|
||||
targetSelect.appendChild(opt);
|
||||
});
|
||||
|
||||
targetSelect.disabled = alunos.length === 0;
|
||||
}
|
||||
|
||||
function toggleSuperAdmin(isSuper) {
|
||||
if (isSuper) {
|
||||
escolaSelect.value = '';
|
||||
roleSelect.value = '';
|
||||
resetSelect(roleSelect, 'Super Admin não usa cargo');
|
||||
escolaSelect.disabled = true;
|
||||
roleSelect.disabled = true;
|
||||
|
||||
hideAllBindings();
|
||||
alunoSelect.disabled = true;
|
||||
alunosMulti.disabled = true;
|
||||
} else {
|
||||
escolaSelect.disabled = false;
|
||||
resetSelect(roleSelect, 'Selecione uma escola primeiro...');
|
||||
roleSelect.disabled = true;
|
||||
hideAllBindings();
|
||||
}
|
||||
}
|
||||
|
||||
superCheck.addEventListener('change', () => toggleSuperAdmin(superCheck.checked));
|
||||
|
||||
escolaSelect.addEventListener('change', async () => {
|
||||
await loadRoles(escolaSelect.value);
|
||||
hideAllBindings();
|
||||
});
|
||||
|
||||
roleSelect.addEventListener('change', async () => {
|
||||
const role = roleSelect.value;
|
||||
|
||||
// sempre reseta
|
||||
hideAllBindings();
|
||||
|
||||
if (role === 'responsavel') {
|
||||
boxResp.classList.remove('d-none');
|
||||
await loadAlunos(escolaSelect.value, alunosMulti, true);
|
||||
return;
|
||||
}
|
||||
|
||||
if (role === 'aluno') {
|
||||
labelAlunoUnico.textContent = 'Qual aluno este usuário é?';
|
||||
boxAlunoUnico.classList.remove('d-none');
|
||||
await loadAlunos(escolaSelect.value, alunoSelect, false);
|
||||
return;
|
||||
}
|
||||
|
||||
// (opcional) se representante também tiver vínculo com 1 aluno, habilite:
|
||||
// if (role === 'representante_de_turma') { ... }
|
||||
|
||||
});
|
||||
|
||||
// estado inicial
|
||||
toggleSuperAdmin(superCheck.checked);
|
||||
});
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- latest jquery-->
|
||||
<script src="{{ asset('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="{{ asset('assets/js/icons/feather-icon/feather.min.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/icons/feather-icon/feather-icon.js') }}"></script>
|
||||
<!-- Sidebar jquery-->
|
||||
<script src="{{ asset('assets/js/sidebar-menu.js')}}"></script>
|
||||
<script src="{{ asset('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="{{ asset('assets/js/bootstrap/popper.min.js')}}"></script>
|
||||
<script src="{{ asset('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="{{ asset('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>
|
||||
@@ -486,7 +971,7 @@
|
||||
let ultimoCNPJ = '';
|
||||
let timeout = null;
|
||||
|
||||
document.getElementById('cnpj').addEventListener('input', function () {
|
||||
document.getElementById('cnpj').addEventListener('input', function() {
|
||||
let cnpj = this.value.replace(/\D/g, '');
|
||||
|
||||
clearTimeout(timeout);
|
||||
@@ -550,7 +1035,7 @@
|
||||
});
|
||||
</script>
|
||||
<script>
|
||||
document.getElementById('tipo_envio').addEventListener('change', function () {
|
||||
document.getElementById('tipo_envio').addEventListener('change', function() {
|
||||
const campoImagem = document.getElementById('campoImagem');
|
||||
|
||||
if (this.value === 'imagem') {
|
||||
@@ -561,7 +1046,6 @@
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
</html>
|
||||
|
||||
40
resources/views/usuarios/index.blade.php
Normal file
40
resources/views/usuarios/index.blade.php
Normal file
@@ -0,0 +1,40 @@
|
||||
@extends('theme.default')
|
||||
@section('title', 'Dashboard')
|
||||
@section('title.page', 'Dashboard')
|
||||
@section('title.page1', 'Escola da árvore')
|
||||
@section('title.page2', 'Home')
|
||||
@section('title.page3', 'Dashboard')
|
||||
@section('content')
|
||||
<div class="container-fluid user-card">
|
||||
<div class="row">
|
||||
@foreach ($usuarios as $usuario)
|
||||
<div class="col-md-6 col-lg-6 col-xl-4 box-col-6">
|
||||
<div class="card custom-card">
|
||||
<div class="card-header"><img class="img-fluid" src="https://bucket.cciti.com.br/cae/images/banner_user.png" alt=""></div>
|
||||
<div class="card-profile"><img class="rounded-circle" src="https://bucket.cciti.com.br/cae/images/logo3.png" alt=""></div>
|
||||
<div class="text-center profile-details"><a href="user-profile.html">
|
||||
<h4>{{ $usuario->name }}</h4>
|
||||
</a>
|
||||
<h6>{{$usuario->funcao()}}</h6>
|
||||
</div>
|
||||
<div class="card-footer row">
|
||||
<div class="col-4 col-sm-4">
|
||||
<h6>Follower</h6>
|
||||
<h3 class="counter">9564</h3>
|
||||
</div>
|
||||
<div class="col-4 col-sm-4">
|
||||
<h6>Following</h6>
|
||||
<h3><span class="counter">49</span>K</h3>
|
||||
</div>
|
||||
<div class="col-4 col-sm-4">
|
||||
<h6>Total Post</h6>
|
||||
<h3><span class="counter">96</span>M</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
Reference in New Issue
Block a user