feat: actualización a v1.1.9 con Agenda interactiva y correcciones visuales

This commit is contained in:
Carlos Tello
2026-03-27 07:43:41 -03:00
parent d3243c0166
commit f1da6175ae
20 changed files with 1525 additions and 404 deletions
@@ -0,0 +1,70 @@
import { Component, Input, OnInit } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { IonicModule, ModalController } from '@ionic/angular';
import { EventoAcademico } from '../../services/data';
import { EventosService } from '../../services/eventos.service';
@Component({
selector: 'app-evento-modal',
templateUrl: './evento-modal.component.html',
styleUrls: ['./evento-modal.component.scss'],
standalone: true,
imports: [CommonModule, IonicModule, FormsModule]
})
export class EventoModalComponent implements OnInit {
@Input() materiaCodigo!: string;
@Input() materiaNombre!: string;
@Input() eventoExistente?: EventoAcademico;
tipo: 'Parcial' | 'TP' | 'Final' | 'Otro' = 'Parcial';
fecha: string = new Date().toISOString();
aula: string = '';
link: string = '';
notas: string = '';
isEdit: boolean = false;
constructor(
private modalCtrl: ModalController,
private eventosService: EventosService
) { }
ngOnInit() {
if (this.eventoExistente) {
this.isEdit = true;
this.tipo = this.eventoExistente.tipo;
this.fecha = this.eventoExistente.fecha;
this.aula = this.eventoExistente.aula || '';
this.link = this.eventoExistente.link || '';
this.notas = this.eventoExistente.notas || '';
}
}
dismiss() {
this.modalCtrl.dismiss();
}
async guardar() {
const nuevoEvento: EventoAcademico = {
id: this.isEdit ? this.eventoExistente!.id : Date.now().toString(),
materiaCodigo: this.materiaCodigo,
tipo: this.tipo,
fecha: this.fecha,
aula: this.aula,
link: this.link,
notas: this.notas
};
await this.eventosService.saveEvento(nuevoEvento);
this.modalCtrl.dismiss(nuevoEvento, 'saved');
}
async eliminar() {
if (this.eventoExistente) {
await this.eventosService.deleteEvento(this.eventoExistente.id);
this.modalCtrl.dismiss(null, 'deleted');
}
}
}