Agregada funcionalidad para reiniciar la tabla.

This commit is contained in:
Araozu 2020-02-07 20:45:50 -05:00
parent 472068a69b
commit 25d6e80495
5 changed files with 108 additions and 19 deletions

View File

@ -1,6 +1,7 @@
<template lang="pug">
div
h3 {{ nombreAño }}
div.reiniciar(@click="reiniciarTablaVue") Reiniciar
tabla-horarios(:nombreAño="nombreAño")
curso(v-for="(curso, nombre) in año" :key="nombre"
@ -14,6 +15,7 @@
<script lang="coffee">
import curso from "./curso.vue"
import tablaHorarios from "./tabla-horarios.vue"
import { reiniciarTabla } from "./tablaHorarios/funcionesResaltado.coffee"
export default
name: "Anio"
@ -25,12 +27,30 @@
nombreAño:
type: String
required: true
methods:
reiniciarTablaVue: ->
nombreAño = "_" + (@nombreAño.substring 0, (@nombreAño.indexOf " "))
reiniciarTabla nombreAño
#
</script>
<style scoped lang="sass">
.reiniciar
margin-left: 1rem
padding: 0.25rem
display: inline-block
border-radius: 3px
background-color: var(--colorTexto)
color: var(--colorFondo)
cursor: pointer
user-select: none
opacity: 0.75
font:
size: 1rem
weight: normal
//
</style>

View File

@ -4,12 +4,12 @@
| {{ profesor }}
span.ancho.cursor_click(
v-for="grupo in grupos"
:class="[obtenerClase(grupo), obtenerClaseGeneral()]"
:class="obtenerClase(grupo)"
@mouseenter="resaltarCeldasGrupo(grupo)"
@mouseleave="quitarResaltadoGrupo(grupo)"
@click="toggleActivo(grupo)"
)
| {{ esLab? 'T': 'G' }}{{ grupo }}&nbsp;
| {{ esLab? 'L': 'T' }}{{ grupo }}&nbsp;
//
</template>
@ -20,6 +20,7 @@
resaltarGrupoCurso
removerResaltadoGrupo
activarGrupoCurso
obtenerClaseCursoGeneral
} from "../tablaHorarios/funcionesResaltado.coffee"
export default
@ -42,11 +43,10 @@
required: true
methods:
obtenerClase: (grupo) ->
obtenerClaseGrupoCurso @nombreAño, @abreviado, grupo, @esLab
claseEspecifica = obtenerClaseGrupoCurso @nombreAño, @abreviado, grupo, @esLab
claseGeneral = obtenerClaseCursoGeneral claseEspecifica
obtenerClaseGeneral: () ->
nombreAñoF = @nombreAño.substring 0, (@nombreAño.indexOf " ")
"_#{ nombreAñoF }_#{ @abreviado }"
[claseEspecifica, claseGeneral]
resaltarCeldasGrupo: (grupo) ->
resaltarGrupoCurso @nombreAño, @abreviado, grupo, @esLab

View File

@ -10,7 +10,12 @@
</template>
<script lang="coffee">
import { resaltarGrupoCurso, removerResaltadoGrupo, activarGrupoCurso } from "./funcionesResaltado.coffee"
import {
resaltarGrupoCurso
removerResaltadoGrupo
activarGrupoCursoStr
obtenerClaseCursoGeneral
} from "./funcionesResaltado.coffee"
export default
name: "celda-curso"
@ -43,13 +48,15 @@
cursoAbreviado: -> @datos.cursoAbreviado
nombreGrupo: -> @datos.nombreGrupo
esLab: -> @datos.esLab
claseCursoGeneral: ->
obtenerClaseCursoGeneral @nombreAño, @cursoAbreviado, @nombreGrupo, @esLab
methods:
resaltarCeldasGrupo: ->
resaltarGrupoCurso @nombreAño, @cursoAbreviado, @nombreGrupo, @esLab
quitarResaltadoGrupo: ->
removerResaltadoGrupo @nombreAño, @cursoAbreviado, @nombreGrupo, @esLab
toggleActivo: ->
activarGrupoCurso @nombreAño, @cursoAbreviado, @nombreGrupo, @esLab
activarGrupoCursoStr @claseCursoGeneral
#

View File

@ -56,6 +56,16 @@ export obtenerClaseGrupoCurso = (nombreAño, cursoAbreviado, grupo, esLab) =>
export obtenerClaseCursoGeneral = (claseGrupoCurso) =>
posPrimerRaya = claseGrupoCurso.indexOf "_"
primerRaya = claseGrupoCurso.substr (posPrimerRaya + 1)
posSegundaRaya = primerRaya.indexOf "_"
segundaRaya = primerRaya.substr (posSegundaRaya + 1)
posFinal = (segundaRaya.indexOf "_") + posPrimerRaya + posSegundaRaya + 2
claseGrupoCurso.substr 0, posFinal
export resaltarGrupoCurso = (nombreAño, cursoAbreviado, grupo, esLab) =>
clase = obtenerClaseGrupoCurso nombreAño, cursoAbreviado, grupo, esLab
@ -97,11 +107,55 @@ export desregistrarCurso = (nombreAño, cursoAbreviado, grupo, esLab) =>
cursosActivos = {}
obtenerNombreAño = (claseObjetivo) =>
primerRaya = claseObjetivo.substr 1
res = primerRaya.indexOf "_"
claseObjetivo.substring 0, (res + 1)
registrarCursoActivo = (claseObjetivo) =>
nombreAño = obtenerNombreAño claseObjetivo
unless cursosActivos[nombreAño]?
cursosActivos[nombreAño] = new Set()
cursosActivos[nombreAño].add(claseObjetivo)
desregistrarCursoActivo = (claseObjetivo) =>
nombreAño = obtenerNombreAño claseObjetivo
if cursosActivos[nombreAño]?
cursosActivos[nombreAño].delete(claseObjetivo)
export reiniciarTabla = (nombreAño) =>
datos = cursosActivos[nombreAño]
if datos?
```
for (const nombre of datos) {
activarGrupoCursoStr(nombre);
}
```
datos.clear()
export activarGrupoCurso = (nombreAño, cursoAbreviado, grupo, esLab) =>
claseObjetivo = obtenerClaseGrupoCurso nombreAño, cursoAbreviado, grupo, esLab
claseGeneral = do =>
nombreAñoF = nombreAño.substring 0, (nombreAño.indexOf " ")
"_#{ nombreAñoF }_#{ cursoAbreviado }"
activarGrupoCursoStr claseObjetivo
export activarGrupoCursoStr = (claseObjetivo) =>
claseGeneral = obtenerClaseCursoGeneral claseObjetivo
esLab = (claseObjetivo.substr -2, 1) is "L"
elementos = document.getElementsByClassName claseGeneral
@ -122,16 +176,17 @@ export activarGrupoCurso = (nombreAño, cursoAbreviado, grupo, esLab) =>
else
if esLab and claseActual is "celda__lab"
agregarAOpaco = yes
else if esLab and claseActual is "celda__teoria"
break
else if !esLab and claseActual is "celda__teoria"
agregarAOpaco = yes
else if !esLab and claseActual is "celda__lab"
break
i++
if agregarAOpaco then elementosAOpacar.push elemento
console.log elementosObjetivo
console.log elementosAOpacar
opacarElementos = no
for elemento in elementosObjetivo
@ -145,8 +200,15 @@ export activarGrupoCurso = (nombreAño, cursoAbreviado, grupo, esLab) =>
resaltarElemento elemento, esLab, "activo"
elemento.setAttribute "activo", "si"
for elemento in elementosAOpacar
if opacarElementos
if opacarElementos
registrarCursoActivo claseObjetivo
for elemento in elementosAOpacar
opacarElemento elemento
else
else
desregistrarCursoActivo claseObjetivo
for elemento in elementosAOpacar
desopacarElemento elemento

View File

@ -25,7 +25,7 @@
horarioUsuario: -> @$store.state.horarioUsuario
created: ->
vm = this
resRaw = await fetch "/horarios/2019_2_fps_epis.yaml"
resRaw = await fetch "/horarios/2018_2_fps_epis.yaml"
res = YAML.parse await resRaw.text()
vm.datos = res