Implementação do banco de dados das Turmas e Alunos no Supabase e Refatoração do Modal de Cadastro
This commit is contained in:
+80
-43
@@ -536,64 +536,91 @@
|
||||
<div class="settings-modal-body" style="padding: 16px; overflow: hidden; display: flex; flex-direction: column; flex: 1; min-height: 500px;">
|
||||
|
||||
<!-- SECÃO 1: CONFIGURAÇÕES DA TURMA -->
|
||||
<div id="turmaConfigSection" style="display: flex; flex-direction: column; gap: 16px; flex: 1; width: 100%; overflow-y: auto; padding-right: 8px;">
|
||||
<h4 style="margin: 0; color: var(--text-primary);">Configurações e Equipe da Turma</h4>
|
||||
<p style="margin: 0; font-size: 0.85rem; color: var(--text-secondary);">Defina as informações gerais da turma. Estas informações valem para todos os alunos e serão usadas nos relatórios.</p>
|
||||
|
||||
<div style="display: grid; grid-template-columns: 1fr 1fr; gap: 16px;">
|
||||
<div class="settings-group">
|
||||
<label>Nome da Turma</label>
|
||||
<input type="text" id="configTurmaNome" placeholder="Ex: Berçário 2" class="obs-input" style="width: 100%;">
|
||||
|
||||
<!-- SECÃO 1: TURMAS (Múltiplas turmas) -->
|
||||
<div id="turmaConfigSection" style="display: flex; flex-direction: row; gap: 16px; flex: 1; height: 100%; overflow: hidden;">
|
||||
<!-- Lado Esquerdo: Lista de Turmas -->
|
||||
<div style="flex: 1; border-right: 1px solid var(--border-light); padding-right: 16px; display: flex; flex-direction: column; gap: 12px; overflow-y: auto; height: 100%;">
|
||||
<div style="display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--border-light); padding-bottom: 8px;">
|
||||
<h4 style="margin: 0; color: var(--text-primary);">Minhas Turmas</h4>
|
||||
<button id="btnCreateTurma" style="background: var(--brand-green); color: white; border: none; padding: 6px 12px; border-radius: 6px; font-size: 0.85rem; font-weight: 600; cursor: pointer;">+ Nova Turma</button>
|
||||
</div>
|
||||
<div class="settings-group">
|
||||
<label>Sala</label>
|
||||
<input type="text" id="configTurmaSala" placeholder="Ex: Sala 4" class="obs-input" style="width: 100%;">
|
||||
</div>
|
||||
<div class="settings-group">
|
||||
<label>Período</label>
|
||||
<select id="configTurmaPeriodo" class="obs-select" style="width: 100%;">
|
||||
<option value="Integral">Integral</option>
|
||||
<option value="Matutino">Matutino</option>
|
||||
<option value="Vespertino">Vespertino</option>
|
||||
</select>
|
||||
<div id="turmasList" style="display: flex; flex-direction: column; gap: 8px;">
|
||||
<div style="color: var(--text-secondary); text-align: center; padding: 20px;">Carregando turmas...</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Lado Direito: Form Turma -->
|
||||
<div id="turmaFormContainer" style="flex: 1.5; display: flex; flex-direction: column; gap: 12px; overflow-y: auto; padding-left: 4px;">
|
||||
<div style="display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--border-light); padding-bottom: 8px;">
|
||||
<h4 id="turmaFormTitle" style="margin: 0; color: var(--text-primary);">Cadastrar Turma</h4>
|
||||
</div>
|
||||
<input type="hidden" id="configTurmaId">
|
||||
<div style="display: grid; grid-template-columns: 1fr 1fr; gap: 16px;">
|
||||
<div class="settings-group">
|
||||
<label>Nome da Turma</label>
|
||||
<input type="text" id="configTurmaNome" placeholder="Ex: Berçário 2" class="obs-input" style="width: 100%;">
|
||||
</div>
|
||||
<div class="settings-group">
|
||||
<label>Sala</label>
|
||||
<input type="text" id="configTurmaSala" placeholder="Ex: Sala 4" class="obs-input" style="width: 100%;">
|
||||
</div>
|
||||
<div class="settings-group">
|
||||
<label>Período</label>
|
||||
<select id="configTurmaPeriodo" class="obs-select" style="width: 100%;">
|
||||
<option value="Integral">Integral</option>
|
||||
<option value="Matutino">Matutino</option>
|
||||
<option value="Vespertino">Vespertino</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="display: grid; grid-template-columns: 1fr 1fr; gap: 16px; border-top: 1px solid var(--border-light); padding-top: 16px;">
|
||||
<div class="settings-group">
|
||||
<label>Professora Titular</label>
|
||||
<input type="text" id="configTurmaProfTitular" placeholder="Sua Titulação e Nome" class="obs-input" style="width: 100%;">
|
||||
<div style="display: grid; grid-template-columns: 1fr 1fr; gap: 16px; border-top: 1px solid var(--border-light); padding-top: 16px;">
|
||||
<div class="settings-group">
|
||||
<label>Professora Titular</label>
|
||||
<input type="text" id="configTurmaProfTitular" placeholder="Sua Titulação e Nome" class="obs-input" style="width: 100%;">
|
||||
</div>
|
||||
<div class="settings-group">
|
||||
<label>Professora Auxiliar 1</label>
|
||||
<input type="text" id="configTurmaProfAux1" placeholder="Nome da Prof. Auxiliar" class="obs-input" style="width: 100%;">
|
||||
</div>
|
||||
<div class="settings-group">
|
||||
<label>Professora Auxiliar 2</label>
|
||||
<input type="text" id="configTurmaProfAux2" placeholder="Nome da Prof. Auxiliar (Opcional)" class="obs-input" style="width: 100%;">
|
||||
</div>
|
||||
<div class="settings-group">
|
||||
<label>Cuidadora</label>
|
||||
<input type="text" id="configTurmaCuidadora" placeholder="Nome da Cuidadora (Opcional)" class="obs-input" style="width: 100%;">
|
||||
</div>
|
||||
</div>
|
||||
<div class="settings-group">
|
||||
<label>Professora Auxiliar 1</label>
|
||||
<input type="text" id="configTurmaProfAux1" placeholder="Nome da Prof. Auxiliar" class="obs-input" style="width: 100%;">
|
||||
</div>
|
||||
<div class="settings-group">
|
||||
<label>Professora Auxiliar 2</label>
|
||||
<input type="text" id="configTurmaProfAux2" placeholder="Nome da Prof. Auxiliar (Opcional)" class="obs-input" style="width: 100%;">
|
||||
</div>
|
||||
<div class="settings-group">
|
||||
<label>Cuidadora</label>
|
||||
<input type="text" id="configTurmaCuidadora" placeholder="Nome da Cuidadora (Opcional)" class="obs-input" style="width: 100%;">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="display: flex; gap: 8px; justify-content: flex-end; border-top: 1px solid var(--border-light); padding-top: 16px; margin-top: auto;">
|
||||
<button id="btnSaveTurmaConfig" style="background: var(--brand-green); border: none; color: white; padding: 10px 20px; border-radius: 8px; font-weight: 600; cursor: pointer; font-size: 0.95rem;">Salvar Dados da Turma</button>
|
||||
<div style="display: flex; gap: 8px; justify-content: flex-end; border-top: 1px solid var(--border-light); padding-top: 16px; margin-top: auto;">
|
||||
<button id="btnCancelTurma" style="background: none; border: 1px solid var(--border-light); color: var(--text-secondary); padding: 8px 16px; border-radius: 8px; cursor: pointer; font-size: 0.9rem;">Cancelar</button>
|
||||
<button id="btnSaveTurmaConfig" style="background: var(--brand-green); border: none; color: white; padding: 10px 20px; border-radius: 8px; font-weight: 600; cursor: pointer; font-size: 0.95rem;">Salvar Turma</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- SECÃO 2: ALUNOS DA TURMA -->
|
||||
<div id="turmaAlunosSection" style="display: none; flex-direction: row; gap: 16px; flex: 1; height: 100%; overflow: hidden;">
|
||||
<!-- Lado Esquerdo: Lista de Crianças -->
|
||||
<!-- Lado Esquerdo: Lista de Crianças e Filtro -->
|
||||
<div style="flex: 1; border-right: 1px solid var(--border-light); padding-right: 16px; display: flex; flex-direction: column; gap: 12px; overflow-y: auto; height: 100%;">
|
||||
<div style="display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--border-light); padding-bottom: 8px;">
|
||||
<h4 style="margin: 0; color: var(--text-primary);">Lista de Crianças</h4>
|
||||
<button id="btnCreateChild" style="background: var(--brand-green); color: white; border: none; padding: 6px 12px; border-radius: 6px; font-size: 0.85rem; font-weight: 600; cursor: pointer; transition: opacity 0.2s;">+ Nova Criança</button>
|
||||
<div style="display: flex; flex-direction: column; gap: 8px; border-bottom: 1px solid var(--border-light); padding-bottom: 8px;">
|
||||
<div style="display: flex; justify-content: space-between; align-items: center;">
|
||||
<h4 style="margin: 0; color: var(--text-primary);">Lista de Crianças</h4>
|
||||
<button id="btnCreateChild" style="background: var(--brand-green); color: white; border: none; padding: 6px 12px; border-radius: 6px; font-size: 0.85rem; font-weight: 600; cursor: pointer; transition: opacity 0.2s;">+ Nova Criança</button>
|
||||
</div>
|
||||
<div class="settings-group" style="margin-bottom: 0;">
|
||||
<select id="filterAlunosTurma" class="obs-select" style="width: 100%; padding: 6px;">
|
||||
<option value="">Todas as Turmas</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div id="childrenList" style="display: flex; flex-direction: column; gap: 8px;">
|
||||
<!-- Carregado via JS -->
|
||||
<div style="color: var(--text-secondary); text-align: center; padding: 20px;">Carregando turma...</div>
|
||||
<div style="color: var(--text-secondary); text-align: center; padding: 20px;">Carregando alunos...</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -607,6 +634,16 @@
|
||||
</div>
|
||||
<input type="hidden" id="childFormId">
|
||||
|
||||
<div class="settings-group" style="gap: 4px;">
|
||||
<label style="color: var(--text-secondary); font-size: 0.8rem; font-weight: 500;">Turma do Aluno</label>
|
||||
<select id="childFormTurma" class="obs-select" style="width: 100%;"></select>
|
||||
</div>
|
||||
|
||||
<div class="settings-group" style="gap: 4px;">
|
||||
<label style="color: var(--text-secondary); font-size: 0.8rem; font-weight: 500;">Nome Completo da Criança</label>
|
||||
<input type="text" id="childFormNome" placeholder="Ex: João da Silva" class="obs-input" style="width: 100%;">
|
||||
</div>
|
||||
|
||||
<div class="settings-group" style="gap: 4px;">
|
||||
<label style="color: var(--text-secondary); font-size: 0.8rem; font-weight: 500;">Nome Completo da Criança</label>
|
||||
<input type="text" id="childFormNome" placeholder="Ex: João da Silva" class="obs-input" style="width: 100%;">
|
||||
|
||||
Reference in New Issue
Block a user