diff --git a/public/horarios/2018_2_fps_epis.yaml b/public/horarios/2018_2_fps_epis.yaml
index 0734e2f..b448b55 100644
--- a/public/horarios/2018_2_fps_epis.yaml
+++ b/public/horarios/2018_2_fps_epis.yaml
@@ -1,6 +1,22 @@
titulo: Horarios 2018-2, Ingeniería de Sistemas.
años:
1er año:
+ Realidad Nacional:
+ nombre: Realidad Nacional
+ abreviado: RN
+ Teoria:
+ A:
+ Docente: "?"
+ Horas:
+ - Ma0700
+ - Ma0750
+ - Ma0850
+ B:
+ Docente: "?"
+ Horas:
+ - Lu1400
+ - Lu1450
+ - Lu1550
Calculo 1:
nombre: Cálculo en 1 variable
abreviado: C1V
@@ -165,22 +181,6 @@ años:
- Ma1450
- Ju1400
- Ju1450
- Realidad Nacional:
- nombre: Realidad Nacional
- abreviado: RN
- Teoria:
- A:
- Docente: "?"
- Horas:
- - Ma0700
- - Ma0750
- - Ma0850
- B:
- Docente: "?"
- Horas:
- - Lu1400
- - Lu1450
- - Lu1550
2do año:
Ecologia:
nombre: Ecologia y Medio Ambiente
@@ -390,14 +390,22 @@ años:
- Mi1740
- Mi1830
3er año:
- Construccion de Software->CS: {}
- Redes y Comunicacion de Datos-> RCD: {}
- Tecnologia de Objetos->TO: {}
+ Construccion de Software->CS:
+ nombre: Construcción de Software
+ Redes y Comunicacion de Datos-> RCD:
+ nombre: Redes y Comunicacion de Datos
+ Tecnologia de Objetos->TO:
+ nombre: Tecnologia de Objetos
+ Sistemas Operativos:
+ nombre: Sistemas Operativos
4to año:
- Aspectos Formales de Verif. y Esp.->AFVE: {}
- Gestion de Proyectos de Software->GPS: {}
+ Aspectos Formales de Verif. y Esp.->AFVE:
+ nombre: Aspectos Formales de Verif. y Esp
+ Gestion de Proyectos de Software->GPS:
+ nombre: Gestion de Proyectos de Software
5to año:
- Topicos Avanzados en Ing. de Software->TAIS: {}
+ Topicos Avanzados en Ing. de Software->TAIS:
+ nombre: Topicos Avanzados en Ing. de Software
Practicas Pre-Profesionales:
nombre: Practicas Pre-Profesionales
abreviado: PPP
diff --git a/src/components/Inicio/anio.vue b/src/components/Inicio/anio.vue
index 6ed4bb9..71d21cf 100644
--- a/src/components/Inicio/anio.vue
+++ b/src/components/Inicio/anio.vue
@@ -3,7 +3,11 @@
h3 {{ nombreAño }}
tabla-horarios(:nombreAño="nombreAño")
- curso(v-for="(curso, n) in año" :key="n" :curso="curso" :nombreAño="nombreAño")
+ curso(v-for="(curso, nombre) in año" :key="nombre"
+ :curso="curso"
+ :nombreAño="nombreAño"
+ :nombreCurso="nombre")
+
//
diff --git a/src/components/Inicio/curso.vue b/src/components/Inicio/curso.vue
index d08bd22..a1af622 100644
--- a/src/components/Inicio/curso.vue
+++ b/src/components/Inicio/curso.vue
@@ -1,29 +1,32 @@
div.info_curso
- h4.titulo_curso(@mouseenter="resaltarTodasCeldas" @mouseleave="quitarResaltadoCeldas")
+ h4.titulo_curso(@mouseenter="resaltarTodasCeldas" @mouseleave="quitarResaltadoCeldas"
+ title="Agregar curso a mi horario."
+ @click="agregarCursoAMiHorario"
+ )
span.ancho {{ curso.abreviado }} >
| {{ curso.nombre }}
table.datos
tr
- td(v-for="(grupos, profesor) in teoria")
- span.ancho |
- | {{ profesor }}
- span.ancho.cursor_click.ancho__teoria(
- v-for="grupo in grupos"
- @mouseenter="resaltarCeldasGrupo(grupo, false)"
- @mouseleave="quitarResaltadoGrupo(grupo, false)")
- | {{ grupo }}
+ bloque(v-for="(grupos, profesor) in teoria"
+ :grupos="grupos"
+ :profesor="profesor"
+ :nombreAño="nombreAño"
+ :abreviado="curso.abreviado"
+ :key="profesor"
+ )
tr
template(v-if="!laboratorioVacio")
- td(v-for="(grupos, profesor) in laboratorio")
- span.ancho |
- | {{ profesor }}
- span.ancho.cursor_click.ancho__lab(
- v-for="grupo in grupos"
- @mouseenter="resaltarCeldasGrupo(grupo, true)"
- @mouseleave="quitarResaltadoGrupo(grupo, true)")
- | L{{ grupo }}
+ bloque(v-for="(grupos, profesor) in laboratorio"
+ :grupos="grupos"
+ :profesor="profesor"
+ :esLab="true"
+ :nombreAño="nombreAño"
+ :abreviado="curso.abreviado"
+ :key="profesor"
+ )
+
template(v-else)
td
span.ancho | _
@@ -32,10 +35,19 @@
+
+
\ No newline at end of file
diff --git a/src/components/Inicio/tablaHorarios/celda-curso.vue b/src/components/Inicio/tablaHorarios/celda-curso.vue
index b44ca81..3dede69 100644
--- a/src/components/Inicio/tablaHorarios/celda-curso.vue
+++ b/src/components/Inicio/tablaHorarios/celda-curso.vue
@@ -56,28 +56,6 @@
diff --git a/src/components/Inicio/tablaHorarios/funcionesResaltado.coffee b/src/components/Inicio/tablaHorarios/funcionesResaltado.coffee
index 8da687a..9efc1c2 100644
--- a/src/components/Inicio/tablaHorarios/funcionesResaltado.coffee
+++ b/src/components/Inicio/tablaHorarios/funcionesResaltado.coffee
@@ -10,14 +10,13 @@ export resaltarCurso = (nombreAño, cursoAbreviado) =>
nombreAñoF = nombreAño.substring 0, (nombreAño.indexOf " ")
clase = "_#{ nombreAñoF }_#{ cursoAbreviado }"
- ejecutarEnElementos clase, (elementos) =>
- for elemento in elementos
- nuevaClase =
- if (elemento.getAttribute "eslab") is "true"
- "celda__lab--resaltado"
- else
- "celda__teoria--resaltado"
- elemento.className += " #{nuevaClase}"
+ ejecutarEnElementos clase, (elemento) =>
+ nuevaClase =
+ if (elemento.getAttribute "eslab") is "true"
+ "celda__lab--resaltado"
+ else
+ "celda__teoria--resaltado"
+ elemento.className += " #{nuevaClase}"
@@ -33,36 +32,40 @@ export removerResaltadoCurso = (nombreAño, cursoAbreviado) =>
elemento.className = clasesNueva
-resaltarElemento = (elemento, esLab) =>
- nuevaClase = "celda__#{ if esLab then 'lab' else 'teoria' }--resaltado"
+resaltarElemento = (elemento, esLab, etiqueta = "resaltado") =>
+ nuevaClase = "celda__#{ if esLab then 'lab' else 'teoria' }--#{ etiqueta }"
elemento.className += " #{nuevaClase}"
-export resaltarGrupoCurso = (nombreAño, cursoAbreviado, grupo, esLab) =>
+
+export obtenerClaseGrupoCurso = (nombreAño, cursoAbreviado, grupo, esLab) =>
nombreAñoF = nombreAño.substring 0, (nombreAño.indexOf " ")
- clase = "_#{ nombreAñoF }_#{ cursoAbreviado }_#{ (if esLab then 'L' else '') + grupo }"
+ "_#{ nombreAñoF }_#{ cursoAbreviado }_#{ (if esLab then 'L' else '') + grupo }"
+
+
+
+export resaltarGrupoCurso = (nombreAño, cursoAbreviado, grupo, esLab) =>
+ clase = obtenerClaseGrupoCurso nombreAño, cursoAbreviado, grupo, esLab
ejecutarEnElementos clase, (elemento) => resaltarElemento elemento, esLab
-removerResaltadoElemento = (elemento) =>
+removerResaltadoElemento = (elemento, etiqueta = "resaltado") =>
clases = elemento.className
- clasesNueva = clases.replace "celda__lab--resaltado", ""
- clasesNueva = clasesNueva.replace "celda__teoria--resaltado", ""
+ clasesNueva = clases.replace "celda__lab--#{ etiqueta }", ""
+ clasesNueva = clasesNueva.replace "celda__teoria--#{ etiqueta }", ""
elemento.className = clasesNueva
export removerResaltadoGrupo = (nombreAño, cursoAbreviado, grupo, esLab) =>
- nombreAñoF = nombreAño.substring 0, (nombreAño.indexOf " ")
- clase = "_#{ nombreAñoF }_#{ cursoAbreviado }_#{ (if esLab then 'L' else '') + grupo }"
+ clase = obtenerClaseGrupoCurso nombreAño, cursoAbreviado, grupo, esLab
- ejecutarEnElementos clase, (elemento) => removerResaltadoElemento elemento, esLab
+ ejecutarEnElementos clase, (elemento) => removerResaltadoElemento elemento
export registrarCurso = (nombreAño, cursoAbreviado, grupo, esLab) =>
- nombreAñoF = nombreAño.substring 0, (nombreAño.indexOf " ")
- clase = "_#{ nombreAñoF }_#{ cursoAbreviado }_#{ (if esLab then 'L' else '') + grupo }"
+ clase = obtenerClaseGrupoCurso nombreAño, cursoAbreviado, grupo, esLab
ejecutarEnElementos clase, (elemento) =>
nuevaClase = "celda__#{ if esLab then 'lab' else 'teoria' }--activo"
@@ -71,8 +74,7 @@ export registrarCurso = (nombreAño, cursoAbreviado, grupo, esLab) =>
export desregistrarCurso = (nombreAño, cursoAbreviado, grupo, esLab) =>
- nombreAñoF = nombreAño.substring 0, (nombreAño.indexOf " ")
- clase = "_#{ nombreAñoF }_#{ cursoAbreviado }_#{ (if esLab then 'L' else '') + grupo }"
+ clase = obtenerClaseGrupoCurso nombreAño, cursoAbreviado, grupo, esLab
ejecutarEnElementos clase, (elemento) =>
clases = elemento.className
@@ -84,18 +86,17 @@ export desregistrarCurso = (nombreAño, cursoAbreviado, grupo, esLab) =>
export activarGrupoCurso = (nombreAño, cursoAbreviado, grupo, esLab) =>
- nombreAñoF = nombreAño.substring 0, nombreAño.indexOf " "
- clase = "_#{ nombreAñoF }_#{ cursoAbreviado }_#{ (if esLab then 'L' else '') + grupo }"
+ clase = obtenerClaseGrupoCurso nombreAño, cursoAbreviado, grupo, esLab
elementos = document.getElementsByClassName clase
for elemento in elementos
estaActivo = ((elemento.getAttribute "activo") ? "no") is "si"
if estaActivo
- removerResaltadoElemento elemento, esLab
+ removerResaltadoElemento elemento, "activo"
elemento.setAttribute "activo", "no"
else
- resaltarElemento elemento, esLab
+ resaltarElemento elemento, esLab, "activo"
elemento.setAttribute "activo", "si"
diff --git a/src/sass/Global.sass b/src/sass/Global.sass
index 388c908..970700d 100644
--- a/src/sass/Global.sass
+++ b/src/sass/Global.sass
@@ -14,4 +14,38 @@ html
h1, h2, h3
font-family: "Product Sans", Roboto, sans-serif
-//
\ No newline at end of file
+// Varios
+
+.cursor_click
+ cursor: pointer
+
+
+// Celdas del horario
+$duracionTransicion: 100ms
+
+
+.celda
+ white-space: pre
+ font-family: "Fira Code", monospace
+ cursor: pointer
+ user-select: none
+ transition: background-color $duracionTransicion linear, color $duracionTransicion linear
+
+
+.celda__teoria
+ color: var(--colorTeoria)
+
+
+.celda__teoria:hover, .celda__teoria--resaltado, .celda__teoria--activo
+ background-color: var(--colorTeoria)
+ color: white
+
+
+.celda__lab
+ color: var(--colorLab)
+
+
+.celda__lab:hover, .celda__lab--resaltado, .celda__lab--activo
+ background-color: var(--colorLab)
+ color: white
+
diff --git a/src/store/index.js b/src/store/index.js
index 1e30290..f090342 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -5,7 +5,8 @@ Vue.use(Vuex);
export default new Vuex.Store({
state: {
- celdas: {}
+ celdas: {},
+ horarioUsuario: {}
},
mutations: {
registrarCelda(state, idCelda) {
@@ -13,6 +14,12 @@ export default new Vuex.Store({
},
agregarACelda(state, {idCelda, datos}) {
state.celdas[idCelda].push(datos);
+ },
+ agregarCursoAMiHorario(state, {nombre, datos} ) {
+ if (!state.horarioUsuario[nombre]) {
+ state.horarioUsuario[nombre] = datos;
+ state.horarioUsuario = Object.assign({}, state.horarioUsuario);
+ }
}
},
actions: {
diff --git a/src/views/Inicio.vue b/src/views/Inicio.vue
index 72a10f0..87788ab 100644
--- a/src/views/Inicio.vue
+++ b/src/views/Inicio.vue
@@ -1,6 +1,8 @@
div.home
h2.titulo {{ datos.titulo }}
+ p Puedes agregar cursos de diferentes años al horario.
+ anio(:año="horarioUsuario" nombreAño="Mi horario")
anio(v-for="(año, i) in datos.años" :key="i"
:año="año" :nombreAño="i"
)
@@ -19,6 +21,8 @@
datos:
titulo: "Cargando..."
años: {}
+ computed:
+ horarioUsuario: -> @$store.state.horarioUsuario
created: ->
vm = this
resRaw = await fetch "/horarios/2018_2_fps_epis.yaml"