Agregada funcionalidad para reiniciar la tabla.

add-license-1
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"> <template lang="pug">
div div
h3 {{ nombreAño }} h3 {{ nombreAño }}
div.reiniciar(@click="reiniciarTablaVue") Reiniciar
tabla-horarios(:nombreAño="nombreAño") tabla-horarios(:nombreAño="nombreAño")
curso(v-for="(curso, nombre) in año" :key="nombre" curso(v-for="(curso, nombre) in año" :key="nombre"
@ -14,6 +15,7 @@
<script lang="coffee"> <script lang="coffee">
import curso from "./curso.vue" import curso from "./curso.vue"
import tablaHorarios from "./tabla-horarios.vue" import tablaHorarios from "./tabla-horarios.vue"
import { reiniciarTabla } from "./tablaHorarios/funcionesResaltado.coffee"
export default export default
name: "Anio" name: "Anio"
@ -25,12 +27,30 @@
nombreAño: nombreAño:
type: String type: String
required: true required: true
methods:
reiniciarTablaVue: ->
nombreAño = "_" + (@nombreAño.substring 0, (@nombreAño.indexOf " "))
reiniciarTabla nombreAño
# #
</script> </script>
<style scoped lang="sass"> <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> </style>

View File

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

View File

@ -10,7 +10,12 @@
</template> </template>
<script lang="coffee"> <script lang="coffee">
import { resaltarGrupoCurso, removerResaltadoGrupo, activarGrupoCurso } from "./funcionesResaltado.coffee" import {
resaltarGrupoCurso
removerResaltadoGrupo
activarGrupoCursoStr
obtenerClaseCursoGeneral
} from "./funcionesResaltado.coffee"
export default export default
name: "celda-curso" name: "celda-curso"
@ -43,13 +48,15 @@
cursoAbreviado: -> @datos.cursoAbreviado cursoAbreviado: -> @datos.cursoAbreviado
nombreGrupo: -> @datos.nombreGrupo nombreGrupo: -> @datos.nombreGrupo
esLab: -> @datos.esLab esLab: -> @datos.esLab
claseCursoGeneral: ->
obtenerClaseCursoGeneral @nombreAño, @cursoAbreviado, @nombreGrupo, @esLab
methods: methods:
resaltarCeldasGrupo: -> resaltarCeldasGrupo: ->
resaltarGrupoCurso @nombreAño, @cursoAbreviado, @nombreGrupo, @esLab resaltarGrupoCurso @nombreAño, @cursoAbreviado, @nombreGrupo, @esLab
quitarResaltadoGrupo: -> quitarResaltadoGrupo: ->
removerResaltadoGrupo @nombreAño, @cursoAbreviado, @nombreGrupo, @esLab removerResaltadoGrupo @nombreAño, @cursoAbreviado, @nombreGrupo, @esLab
toggleActivo: -> 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) => export resaltarGrupoCurso = (nombreAño, cursoAbreviado, grupo, esLab) =>
clase = obtenerClaseGrupoCurso 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) => export activarGrupoCurso = (nombreAño, cursoAbreviado, grupo, esLab) =>
claseObjetivo = obtenerClaseGrupoCurso nombreAño, cursoAbreviado, grupo, esLab claseObjetivo = obtenerClaseGrupoCurso nombreAño, cursoAbreviado, grupo, esLab
claseGeneral = do => activarGrupoCursoStr claseObjetivo
nombreAñoF = nombreAño.substring 0, (nombreAño.indexOf " ")
"_#{ nombreAñoF }_#{ cursoAbreviado }"
export activarGrupoCursoStr = (claseObjetivo) =>
claseGeneral = obtenerClaseCursoGeneral claseObjetivo
esLab = (claseObjetivo.substr -2, 1) is "L"
elementos = document.getElementsByClassName claseGeneral elementos = document.getElementsByClassName claseGeneral
@ -122,16 +176,17 @@ export activarGrupoCurso = (nombreAño, cursoAbreviado, grupo, esLab) =>
else else
if esLab and claseActual is "celda__lab" if esLab and claseActual is "celda__lab"
agregarAOpaco = yes agregarAOpaco = yes
else if esLab and claseActual is "celda__teoria"
break
else if !esLab and claseActual is "celda__teoria" else if !esLab and claseActual is "celda__teoria"
agregarAOpaco = yes agregarAOpaco = yes
else if !esLab and claseActual is "celda__lab"
break
i++ i++
if agregarAOpaco then elementosAOpacar.push elemento if agregarAOpaco then elementosAOpacar.push elemento
console.log elementosObjetivo
console.log elementosAOpacar
opacarElementos = no opacarElementos = no
for elemento in elementosObjetivo for elemento in elementosObjetivo
@ -145,8 +200,15 @@ export activarGrupoCurso = (nombreAño, cursoAbreviado, grupo, esLab) =>
resaltarElemento elemento, esLab, "activo" resaltarElemento elemento, esLab, "activo"
elemento.setAttribute "activo", "si" elemento.setAttribute "activo", "si"
for elemento in elementosAOpacar if opacarElementos
if opacarElementos registrarCursoActivo claseObjetivo
for elemento in elementosAOpacar
opacarElemento elemento opacarElemento elemento
else
else
desregistrarCursoActivo claseObjetivo
for elemento in elementosAOpacar
desopacarElemento elemento desopacarElemento elemento

View File

@ -25,7 +25,7 @@
horarioUsuario: -> @$store.state.horarioUsuario horarioUsuario: -> @$store.state.horarioUsuario
created: -> created: ->
vm = this 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() res = YAML.parse await resRaw.text()
vm.datos = res vm.datos = res