From 472068a69b2236e9f2c85325d5be9de897c460d9 Mon Sep 17 00:00:00 2001 From: Araozu Date: Fri, 7 Feb 2020 19:54:30 -0500 Subject: [PATCH] Agregada opacidad a grupos secundarios cuando se selecciona un grupo. --- src/components/Inicio/curso.vue | 2 +- src/components/Inicio/curso/bloque.vue | 6 +- .../Inicio/tablaHorarios/celda-curso.vue | 5 +- .../tablaHorarios/funcionesResaltado.coffee | 56 ++++++++++++++++++- src/views/Inicio.vue | 2 +- 5 files changed, 64 insertions(+), 7 deletions(-) diff --git a/src/components/Inicio/curso.vue b/src/components/Inicio/curso.vue index 5fb60b1..5ae09d5 100644 --- a/src/components/Inicio/curso.vue +++ b/src/components/Inicio/curso.vue @@ -6,7 +6,7 @@ ) input.marcador_curso(type="checkbox" v-model="cursoAgregado") span.ancho {{ curso.abreviado }} >  - | {{ curso.nombre }} {{ nombreCurso }} + | {{ curso.nombre }} table.datos tr bloque(v-for="(grupos, profesor) in teoria" diff --git a/src/components/Inicio/curso/bloque.vue b/src/components/Inicio/curso/bloque.vue index a121248..3193ac5 100644 --- a/src/components/Inicio/curso/bloque.vue +++ b/src/components/Inicio/curso/bloque.vue @@ -4,7 +4,7 @@ | {{ profesor }} span.ancho.cursor_click( v-for="grupo in grupos" - :class="obtenerClase(grupo)" + :class="[obtenerClase(grupo), obtenerClaseGeneral()]" @mouseenter="resaltarCeldasGrupo(grupo)" @mouseleave="quitarResaltadoGrupo(grupo)" @click="toggleActivo(grupo)" @@ -44,6 +44,10 @@ obtenerClase: (grupo) -> obtenerClaseGrupoCurso @nombreAño, @abreviado, grupo, @esLab + obtenerClaseGeneral: () -> + nombreAñoF = @nombreAño.substring 0, (@nombreAño.indexOf " ") + "_#{ nombreAñoF }_#{ @abreviado }" + resaltarCeldasGrupo: (grupo) -> resaltarGrupoCurso @nombreAño, @abreviado, grupo, @esLab diff --git a/src/components/Inicio/tablaHorarios/celda-curso.vue b/src/components/Inicio/tablaHorarios/celda-curso.vue index 3dede69..a48c4ec 100644 --- a/src/components/Inicio/tablaHorarios/celda-curso.vue +++ b/src/components/Inicio/tablaHorarios/celda-curso.vue @@ -55,7 +55,10 @@ # - diff --git a/src/components/Inicio/tablaHorarios/funcionesResaltado.coffee b/src/components/Inicio/tablaHorarios/funcionesResaltado.coffee index 9efc1c2..9b9e660 100644 --- a/src/components/Inicio/tablaHorarios/funcionesResaltado.coffee +++ b/src/components/Inicio/tablaHorarios/funcionesResaltado.coffee @@ -38,6 +38,18 @@ resaltarElemento = (elemento, esLab, etiqueta = "resaltado") => +opacarElemento = (elemento) => + elemento.className += " elementoOpaco" + + +desopacarElemento = (elemento) => + clases = elemento.className + clasesNueva = clases.replace "elementoOpaco", "" + + elemento.className = clasesNueva + + + export obtenerClaseGrupoCurso = (nombreAño, cursoAbreviado, grupo, esLab) => nombreAñoF = nombreAño.substring 0, (nombreAño.indexOf " ") "_#{ nombreAñoF }_#{ cursoAbreviado }_#{ (if esLab then 'L' else '') + grupo }" @@ -86,17 +98,55 @@ export desregistrarCurso = (nombreAño, cursoAbreviado, grupo, esLab) => export activarGrupoCurso = (nombreAño, cursoAbreviado, grupo, esLab) => - clase = obtenerClaseGrupoCurso 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 }" - elementos = document.getElementsByClassName clase + elementos = document.getElementsByClassName claseGeneral + + elementosObjetivo = [] + elementosAOpacar = [] for elemento in elementos + clases = elemento.classList + i = 0 + agregarAOpaco = no + while i < clases.length + claseActual = clases[i] + + if claseActual is claseObjetivo + elementosObjetivo.push elemento + agregarAOpaco = no + break + else + if esLab and claseActual is "celda__lab" + agregarAOpaco = yes + else if !esLab and claseActual is "celda__teoria" + agregarAOpaco = yes + + i++ + + if agregarAOpaco then elementosAOpacar.push elemento + + console.log elementosObjetivo + console.log elementosAOpacar + + opacarElementos = no + + for elemento in elementosObjetivo + estaActivo = ((elemento.getAttribute "activo") ? "no") is "si" if estaActivo removerResaltadoElemento elemento, "activo" elemento.setAttribute "activo", "no" else + opacarElementos = yes resaltarElemento elemento, esLab, "activo" elemento.setAttribute "activo", "si" - + for elemento in elementosAOpacar + if opacarElementos + opacarElemento elemento + else + desopacarElemento elemento diff --git a/src/views/Inicio.vue b/src/views/Inicio.vue index 02e9f36..2e74e31 100644 --- a/src/views/Inicio.vue +++ b/src/views/Inicio.vue @@ -25,7 +25,7 @@ horarioUsuario: -> @$store.state.horarioUsuario created: -> vm = this - resRaw = await fetch "/horarios/2018_2_fps_epis.yaml" + resRaw = await fetch "/horarios/2019_2_fps_epis.yaml" res = YAML.parse await resRaw.text() vm.datos = res