Agregada funcionalidad minima.
This commit is contained in:
parent
15ec2e23bf
commit
a389cfb28a
11
package.json
11
package.json
@ -4,19 +4,26 @@
|
|||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"serve": "vue-cli-service serve",
|
"serve": "vue-cli-service serve",
|
||||||
"build": "vue-cli-service build"
|
"build": "vue-cli-service build --modern",
|
||||||
|
"deploy": "vue-cli-service build --modern & cd dist & surge"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"core-js": "^3.3.2",
|
"core-js": "^3.3.2",
|
||||||
"register-service-worker": "^1.6.2",
|
"register-service-worker": "^1.6.2",
|
||||||
"vue": "^2.6.10",
|
"vue": "^2.6.10",
|
||||||
"vue-router": "^3.1.3",
|
"vue-router": "^3.1.3",
|
||||||
"vuex": "^3.0.1"
|
"vuex": "^3.0.1",
|
||||||
|
"yaml": "^1.7.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@vue/cli-plugin-babel": "^4.0.0",
|
"@vue/cli-plugin-babel": "^4.0.0",
|
||||||
"@vue/cli-plugin-pwa": "^4.0.0",
|
"@vue/cli-plugin-pwa": "^4.0.0",
|
||||||
"@vue/cli-service": "^4.0.0",
|
"@vue/cli-service": "^4.0.0",
|
||||||
|
"coffee-loader": "^0.9.0",
|
||||||
|
"coffeescript": "^2.4.1",
|
||||||
|
"normalize-css": "^2.3.1",
|
||||||
|
"pug": "^2.0.4",
|
||||||
|
"pug-plain-loader": "^1.0.0",
|
||||||
"sass": "^1.19.0",
|
"sass": "^1.19.0",
|
||||||
"sass-loader": "^8.0.0",
|
"sass-loader": "^8.0.0",
|
||||||
"vue-template-compiler": "^2.6.10"
|
"vue-template-compiler": "^2.6.10"
|
||||||
|
1
public/CNAME
Normal file
1
public/CNAME
Normal file
@ -0,0 +1 @@
|
|||||||
|
https://araozu.pro
|
413
public/horarios/2018_2_fps_epis.yaml
Normal file
413
public/horarios/2018_2_fps_epis.yaml
Normal file
@ -0,0 +1,413 @@
|
|||||||
|
titulo: Horarios 2018-2, Ingeniería de Sistemas.
|
||||||
|
años:
|
||||||
|
1er año:
|
||||||
|
Calculo 1:
|
||||||
|
nombre: Cálculo en 1 variable
|
||||||
|
abreviado: C1V
|
||||||
|
Teoria:
|
||||||
|
A:
|
||||||
|
Docente: Doris Tupacyupanqui
|
||||||
|
Horas:
|
||||||
|
- Ma1130
|
||||||
|
- Ma1220
|
||||||
|
- Ma1310
|
||||||
|
- Mi0850
|
||||||
|
- Mi0940
|
||||||
|
- Vi0700
|
||||||
|
- Vi0750
|
||||||
|
B:
|
||||||
|
Docente: Pablo Quicaño
|
||||||
|
Horas:
|
||||||
|
- Lu1640
|
||||||
|
- Ma1740
|
||||||
|
- Ma1830
|
||||||
|
- Ma1920
|
||||||
|
- Ju1740
|
||||||
|
- Ju1920
|
||||||
|
- Ju1830
|
||||||
|
Discretas 2:
|
||||||
|
nombre: Estructuras Discretas 2
|
||||||
|
abreviado: ED2
|
||||||
|
Teoria:
|
||||||
|
A:
|
||||||
|
Docente: Olha Sharhorodska
|
||||||
|
Horas:
|
||||||
|
- Mi1220
|
||||||
|
- Mi1310
|
||||||
|
- Ju1220
|
||||||
|
- Ju1310
|
||||||
|
B:
|
||||||
|
Docente: Olha Sharhorodska
|
||||||
|
Horas:
|
||||||
|
- Mi1400
|
||||||
|
- Mi1450
|
||||||
|
- Vi1550
|
||||||
|
- Vi1640
|
||||||
|
Web 1:
|
||||||
|
nombre: Programacion Web 1
|
||||||
|
abreviado: PW1
|
||||||
|
Teoria:
|
||||||
|
A:
|
||||||
|
Docente: Richart Escobedo
|
||||||
|
Horas:
|
||||||
|
- Ma0940
|
||||||
|
- Ma1040
|
||||||
|
B:
|
||||||
|
Docente: Carlo Corrales
|
||||||
|
Horas:
|
||||||
|
- Lu1220
|
||||||
|
- Lu1310
|
||||||
|
Laboratorio:
|
||||||
|
A:
|
||||||
|
Docente: Richart Escobedo
|
||||||
|
Horas:
|
||||||
|
- Ma1130
|
||||||
|
- Ma1220
|
||||||
|
- Mi0850
|
||||||
|
- Mi0940
|
||||||
|
B:
|
||||||
|
Docente: Carlo Corrales
|
||||||
|
Horas:
|
||||||
|
- Lu1400
|
||||||
|
- Lu1450
|
||||||
|
- Mi1550
|
||||||
|
- Mi1640
|
||||||
|
C:
|
||||||
|
Docente: Richart Escobedo
|
||||||
|
Horas:
|
||||||
|
- Ma1550
|
||||||
|
- Ma1640
|
||||||
|
- Lu1740
|
||||||
|
- Lu1830
|
||||||
|
D:
|
||||||
|
Docente: Carlo Corrales
|
||||||
|
Horas:
|
||||||
|
- Lu1740
|
||||||
|
- Lu1830
|
||||||
|
- Mi1740
|
||||||
|
- Mi1830
|
||||||
|
E:
|
||||||
|
Docente: Carlo Corrales
|
||||||
|
Horas:
|
||||||
|
- Lu1550
|
||||||
|
- Lu1640
|
||||||
|
- Ma1740
|
||||||
|
- Ma1830
|
||||||
|
FP2:
|
||||||
|
nombre: Fundamentos de Programacion 2
|
||||||
|
abreviado: FP2
|
||||||
|
Teoria:
|
||||||
|
A:
|
||||||
|
Docente: Marco Aedo
|
||||||
|
Horas:
|
||||||
|
- Lu0850
|
||||||
|
- Lu0940
|
||||||
|
- Vi1220
|
||||||
|
- Vi1310
|
||||||
|
B:
|
||||||
|
Docente: Marco Aedo
|
||||||
|
Horas:
|
||||||
|
- Ju1550
|
||||||
|
- Ju1640
|
||||||
|
- Vi1400
|
||||||
|
- Vi1450
|
||||||
|
Laboratorio:
|
||||||
|
A:
|
||||||
|
Docente: Marco Aedo
|
||||||
|
Horas:
|
||||||
|
- Lu1040
|
||||||
|
- Lu1130
|
||||||
|
- Ju1040
|
||||||
|
- Ju1130
|
||||||
|
B:
|
||||||
|
Docente: Marco Aedo
|
||||||
|
Horas:
|
||||||
|
- Ju1400
|
||||||
|
- Ju1450
|
||||||
|
- Vi1550
|
||||||
|
- Vi1640
|
||||||
|
C:
|
||||||
|
Docente: Marco Aedo
|
||||||
|
Horas:
|
||||||
|
- Ju0850
|
||||||
|
- Ju0940
|
||||||
|
- Vi1040
|
||||||
|
- Vi1130
|
||||||
|
D:
|
||||||
|
Docente: Karim Guevara
|
||||||
|
Horas:
|
||||||
|
- Vi0850
|
||||||
|
- Vi0940
|
||||||
|
- Ju0850
|
||||||
|
- Ju0940
|
||||||
|
E:
|
||||||
|
Docente: Ernesto Suarez
|
||||||
|
Horas:
|
||||||
|
- Mi1040
|
||||||
|
- Mi1130
|
||||||
|
- Ju0700
|
||||||
|
- Ju0750
|
||||||
|
Comunicacion Integral:
|
||||||
|
nombre: Comunicacion Integral
|
||||||
|
abreviado: CI
|
||||||
|
Teoria:
|
||||||
|
A:
|
||||||
|
Docente: "?"
|
||||||
|
Horas:
|
||||||
|
- Lu0700
|
||||||
|
- Lu0750
|
||||||
|
- Mi0700
|
||||||
|
- Mi0750
|
||||||
|
B:
|
||||||
|
Docente: "?"
|
||||||
|
Horas:
|
||||||
|
- Ma1400
|
||||||
|
- 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
|
||||||
|
abreviado: ECA
|
||||||
|
Teoria:
|
||||||
|
A:
|
||||||
|
Docente: "?"
|
||||||
|
Horas:
|
||||||
|
- Lu0700
|
||||||
|
- Lu0750
|
||||||
|
- Lu0850
|
||||||
|
B:
|
||||||
|
Docente: "?"
|
||||||
|
Horas:
|
||||||
|
- Mi1400
|
||||||
|
- Mi1450
|
||||||
|
- Mi1550
|
||||||
|
Estadistica:
|
||||||
|
nombre: Estadistica y Matematica
|
||||||
|
abreviado: EMAT
|
||||||
|
Teoria:
|
||||||
|
A:
|
||||||
|
Docente: Antonia Quispe
|
||||||
|
Horas:
|
||||||
|
- Mi0700
|
||||||
|
- Mi0750
|
||||||
|
- Vi0850
|
||||||
|
- Vi0940
|
||||||
|
B:
|
||||||
|
Docente: Esther Yanapa
|
||||||
|
Horas:
|
||||||
|
- Ma1550
|
||||||
|
- Ma1640
|
||||||
|
- Ju1830
|
||||||
|
- Ju1920
|
||||||
|
Laboratorio:
|
||||||
|
A:
|
||||||
|
Docente: Antonia Quispe
|
||||||
|
Horas:
|
||||||
|
- Mi0850
|
||||||
|
- Mi0940
|
||||||
|
B:
|
||||||
|
Docente: Esther Yanapa
|
||||||
|
Horas:
|
||||||
|
- Ma1740
|
||||||
|
- Ma1830
|
||||||
|
C:
|
||||||
|
Docente: Esther Yanapa
|
||||||
|
Horas:
|
||||||
|
- Ma0700
|
||||||
|
- Ma0750
|
||||||
|
D:
|
||||||
|
Docente: Esther Yanapa
|
||||||
|
Horas:
|
||||||
|
- Ma0850
|
||||||
|
- Ma0940
|
||||||
|
Arquitectura de Computadoras:
|
||||||
|
nombre: Arquitectura de Computadoras
|
||||||
|
abreviado: AC
|
||||||
|
Teoria:
|
||||||
|
A:
|
||||||
|
Docente: Pedro Rodriguez Gonzales
|
||||||
|
Horas:
|
||||||
|
- Ju0850
|
||||||
|
- Ju0940
|
||||||
|
- Vi1040
|
||||||
|
B:
|
||||||
|
Docente: Pedro Rodriguez Gonzales
|
||||||
|
Horas:
|
||||||
|
- Ju1550
|
||||||
|
- Ju1640
|
||||||
|
- Ju1740
|
||||||
|
Laboratorio:
|
||||||
|
A:
|
||||||
|
Docente: Pedro Rodriguez Gonzales
|
||||||
|
Horas:
|
||||||
|
- Ju0700
|
||||||
|
- Ju0750
|
||||||
|
B:
|
||||||
|
Docente: Pedro Rodriguez Gonzales
|
||||||
|
Horas:
|
||||||
|
- Vi1220
|
||||||
|
- Vi1310
|
||||||
|
C:
|
||||||
|
Docente: Pedro Rodriguez Gonzales
|
||||||
|
Horas:
|
||||||
|
- Vi0700
|
||||||
|
- Vi0750
|
||||||
|
D:
|
||||||
|
Docente: Pedro Rodriguez Gonzales
|
||||||
|
Horas:
|
||||||
|
- Vi0850
|
||||||
|
- Vi0940
|
||||||
|
Metodos de Investigacion y Redaccion:
|
||||||
|
nombre: Metodos de Investigacion y Redaccion
|
||||||
|
abreviado: MIR
|
||||||
|
Teoria:
|
||||||
|
A:
|
||||||
|
Docente: Jesus Zuniga Cueva
|
||||||
|
Horas:
|
||||||
|
- Mi1040
|
||||||
|
- Mi1130
|
||||||
|
- Mi1220
|
||||||
|
B:
|
||||||
|
Docente: Jesus Zuniga Cueva
|
||||||
|
Horas:
|
||||||
|
- Lu1220
|
||||||
|
- Lu1310
|
||||||
|
- Mi1310
|
||||||
|
C:
|
||||||
|
Docente: Jesus Zuniga Cueva
|
||||||
|
Horas:
|
||||||
|
- Ma1040
|
||||||
|
- Ma1130
|
||||||
|
- Ma1220
|
||||||
|
Interaccion Humano Computador->IHC:
|
||||||
|
nombre: Interaccion Humano Computador
|
||||||
|
abreviado: IHC
|
||||||
|
Teoria:
|
||||||
|
A:
|
||||||
|
Docente: Olha Sharhorodska
|
||||||
|
Horas:
|
||||||
|
- Ju1040
|
||||||
|
- Ju1130
|
||||||
|
- Vi1220
|
||||||
|
- Vi1310
|
||||||
|
B:
|
||||||
|
Docente: Olha Sharhorodska
|
||||||
|
Horas:
|
||||||
|
- Ju1400
|
||||||
|
- Ju1450
|
||||||
|
- Vi1400
|
||||||
|
- Vi1450
|
||||||
|
Laboratorio:
|
||||||
|
A:
|
||||||
|
Docente: Richart Escobedo
|
||||||
|
Horas:
|
||||||
|
- Lu1040
|
||||||
|
- Lu1130
|
||||||
|
B:
|
||||||
|
Docente: Richart Escobedo
|
||||||
|
Horas:
|
||||||
|
- Lu1550
|
||||||
|
- Lu1640
|
||||||
|
C:
|
||||||
|
Docente: Richart Escobedo
|
||||||
|
Horas:
|
||||||
|
- Ma1740
|
||||||
|
- Ma1830
|
||||||
|
D:
|
||||||
|
Docente: Juan Ramirez Ticona
|
||||||
|
Horas:
|
||||||
|
- Lu1550
|
||||||
|
- Lu1640
|
||||||
|
Enfoque Empresarial->EE:
|
||||||
|
nombre: Enfoque Empresarial
|
||||||
|
abreviado: EE
|
||||||
|
Teoria:
|
||||||
|
A:
|
||||||
|
Docente: Juan C. Juarez Bueno
|
||||||
|
Horas:
|
||||||
|
- Lu0940
|
||||||
|
- Ma0850
|
||||||
|
- Ma0940
|
||||||
|
- Ju1220
|
||||||
|
- Ju1310
|
||||||
|
B:
|
||||||
|
Docente: Juan C. Juarez Bueno
|
||||||
|
Horas:
|
||||||
|
- Ma1310
|
||||||
|
- Ma1400
|
||||||
|
- Ma1450
|
||||||
|
- Vi1550
|
||||||
|
- Vi1640
|
||||||
|
Analisis y Disenio de Algoritmos->ADA:
|
||||||
|
nombre: Analisis y Diseño de Algoritmos
|
||||||
|
abreviado: ADA
|
||||||
|
Teoria:
|
||||||
|
A:
|
||||||
|
Docente: Atencio Torres Carlos
|
||||||
|
Horas:
|
||||||
|
- Lu1400
|
||||||
|
- Lu1450
|
||||||
|
- Vi0700
|
||||||
|
- Vi0750
|
||||||
|
B:
|
||||||
|
Docente: Atencio Torres Carlos
|
||||||
|
Horas:
|
||||||
|
- Lu1740
|
||||||
|
- Lu1830
|
||||||
|
- Vi1740
|
||||||
|
- Vi1830
|
||||||
|
Laboratorio:
|
||||||
|
A:
|
||||||
|
Docente: Christian Portugal
|
||||||
|
Horas:
|
||||||
|
- Lu1400
|
||||||
|
- Lu1450
|
||||||
|
B:
|
||||||
|
Docente: Christian Portugal
|
||||||
|
Horas:
|
||||||
|
- Mi1550
|
||||||
|
- Mi1640
|
||||||
|
C:
|
||||||
|
Docente: Christian Portugal
|
||||||
|
Horas:
|
||||||
|
- Mi1740
|
||||||
|
- Mi1830
|
||||||
|
3er año:
|
||||||
|
Construccion de Software->CS: {}
|
||||||
|
Redes y Comunicacion de Datos-> RCD: {}
|
||||||
|
Tecnologia de Objetos->TO: {}
|
||||||
|
4to año:
|
||||||
|
Aspectos Formales de Verif. y Esp.->AFVE: {}
|
||||||
|
Gestion de Proyectos de Software->GPS: {}
|
||||||
|
5to año:
|
||||||
|
Topicos Avanzados en Ing. de Software->TAIS: {}
|
||||||
|
Practicas Pre-Profesionales:
|
||||||
|
nombre: Practicas Pre-Profesionales
|
||||||
|
abreviado: PPP
|
||||||
|
Teoria:
|
||||||
|
A:
|
||||||
|
Docente: Ernesto Suarez
|
||||||
|
Horas:
|
||||||
|
- Ma1550
|
||||||
|
- Ma1640
|
||||||
|
- Mi0700
|
||||||
|
- Mi0750
|
||||||
|
- Ju0850
|
||||||
|
- Ju0940
|
125
public/horarios/2019_2_fps_epis.yaml
Normal file
125
public/horarios/2019_2_fps_epis.yaml
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
titulo: Horarios 2019-2, Ingeniería de Sistemas.
|
||||||
|
años:
|
||||||
|
2do año:
|
||||||
|
Estadistica:
|
||||||
|
nombre: Estadistica Matemática, Probabilidades y Métodos Empíricos
|
||||||
|
abreviado: EMAT
|
||||||
|
Teoria:
|
||||||
|
A:
|
||||||
|
Docente: Antonia Quispe
|
||||||
|
Horas:
|
||||||
|
- Lu0850
|
||||||
|
- Lu0940
|
||||||
|
- Ju0700
|
||||||
|
- Ju0750
|
||||||
|
B:
|
||||||
|
Docente: Antonia Quispe
|
||||||
|
Horas:
|
||||||
|
- Ma1040
|
||||||
|
- Ma1130
|
||||||
|
- Ju1640
|
||||||
|
- Ju1740
|
||||||
|
Laboratorio:
|
||||||
|
A:
|
||||||
|
Docente: Antonia Quispe
|
||||||
|
Horas:
|
||||||
|
- Ma0850
|
||||||
|
- Ma0940
|
||||||
|
B:
|
||||||
|
Docente: Antonia Quispe
|
||||||
|
Horas:
|
||||||
|
- Lu1040
|
||||||
|
- Lu1130
|
||||||
|
C:
|
||||||
|
Docente: Antonia Quispe
|
||||||
|
Horas:
|
||||||
|
- Ju0850
|
||||||
|
- Ju0940
|
||||||
|
D:
|
||||||
|
Docente: Antonia Quispe
|
||||||
|
Horas:
|
||||||
|
- Vi1040
|
||||||
|
- Vi1130
|
||||||
|
Analisis y Diseño de Algoritmos:
|
||||||
|
nombre: Analisis y Diseño de Algoritmos
|
||||||
|
abreviado: ADA
|
||||||
|
Teoria:
|
||||||
|
A:
|
||||||
|
Docente: O. Ramirez
|
||||||
|
Horas:
|
||||||
|
- Lu1400
|
||||||
|
- Lu1450
|
||||||
|
- Mi1550
|
||||||
|
- Mi1640
|
||||||
|
B:
|
||||||
|
Docente: O. Ramirez
|
||||||
|
Horas:
|
||||||
|
- Lu1550
|
||||||
|
- Lu1640
|
||||||
|
- Mi1740
|
||||||
|
- Mi1830
|
||||||
|
Laboratorio:
|
||||||
|
A:
|
||||||
|
Docente: Cristian Portugal
|
||||||
|
Horas:
|
||||||
|
- Lu1400
|
||||||
|
- Lu1450
|
||||||
|
B:
|
||||||
|
Docente: Cristian Portugal
|
||||||
|
Horas:
|
||||||
|
- Lu1550
|
||||||
|
- Lu1640
|
||||||
|
C:
|
||||||
|
Docente: Cristian Portugal
|
||||||
|
Horas:
|
||||||
|
- Lu1740
|
||||||
|
- Lu1830
|
||||||
|
Enfoque Empresarial:
|
||||||
|
nombre: Enfoque Empresarial
|
||||||
|
abreviado: EE
|
||||||
|
Teoria:
|
||||||
|
A:
|
||||||
|
Docente: Juan C. Juarez
|
||||||
|
Horas:
|
||||||
|
- Lu1040
|
||||||
|
- Lu1130
|
||||||
|
- Lu1220
|
||||||
|
- Mi0850
|
||||||
|
- Mi0940
|
||||||
|
B:
|
||||||
|
Docente: Edward Zarate
|
||||||
|
Horas:
|
||||||
|
- Lu1830
|
||||||
|
- Ma1400
|
||||||
|
- Ma1450
|
||||||
|
- Vi1550
|
||||||
|
- Vi1640
|
||||||
|
3er año:
|
||||||
|
Construccion de Software:
|
||||||
|
nombre: Construcción de Software
|
||||||
|
abreviado: CS
|
||||||
|
Teoria:
|
||||||
|
A:
|
||||||
|
Docente: V. Cornejo
|
||||||
|
Horas:
|
||||||
|
- Lu0850
|
||||||
|
- Lu0940
|
||||||
|
Sistemas Operativos:
|
||||||
|
nombre: Sistemas Operativos
|
||||||
|
abreviado: SO
|
||||||
|
Teoria:
|
||||||
|
A:
|
||||||
|
Docente: Karim Guevara
|
||||||
|
Horas:
|
||||||
|
- Ma0700
|
||||||
|
- Ma0750
|
||||||
|
- Ju0700
|
||||||
|
- Ju0750
|
||||||
|
B:
|
||||||
|
Docente: Karim Guevara
|
||||||
|
Horas:
|
||||||
|
- Ju1400
|
||||||
|
- Ju1450
|
||||||
|
- Vi1400
|
||||||
|
- Vi1450
|
||||||
|
|
@ -1,17 +1,25 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||||||
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
|
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
|
||||||
<title>horarios</title>
|
<title>Horarios UNSA</title>
|
||||||
</head>
|
|
||||||
<body>
|
<link href="https://fonts.googleapis.com/css?family=Roboto&display=swap" rel="stylesheet">
|
||||||
<noscript>
|
|
||||||
<strong>We're sorry but horarios doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
|
</head>
|
||||||
</noscript>
|
<body>
|
||||||
<div id="app"></div>
|
<noscript>
|
||||||
<!-- built files will be auto injected -->
|
<strong>
|
||||||
</body>
|
Increible lo que se puede hacer hoy en dia... Con JavaScript.
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
Actívalo para acceder a la página.
|
||||||
|
</strong>
|
||||||
|
</noscript>
|
||||||
|
<div id="app"></div>
|
||||||
|
<!-- built files will be auto injected -->
|
||||||
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
57
src/App.vue
57
src/App.vue
@ -1,32 +1,37 @@
|
|||||||
<template>
|
<template lang="pug">
|
||||||
<div id="app">
|
div.contenedor
|
||||||
<div id="nav">
|
barra-lateral
|
||||||
<router-link to="/">Home</router-link> |
|
div.der(:style="'max-height: ' + alto + 'px;'")
|
||||||
<router-link to="/about">About</router-link>
|
router-view
|
||||||
</div>
|
|
||||||
<router-view/>
|
//
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style lang="scss">
|
<script lang="coffee">
|
||||||
#app {
|
import barraLateral from "./components/App/barra-lateral.vue"
|
||||||
font-family: 'Avenir', Helvetica, Arial, sans-serif;
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
-moz-osx-font-smoothing: grayscale;
|
|
||||||
text-align: center;
|
|
||||||
color: #2c3e50;
|
|
||||||
}
|
|
||||||
|
|
||||||
#nav {
|
export default
|
||||||
padding: 30px;
|
name: "App"
|
||||||
|
components: { barraLateral }
|
||||||
|
data: ->
|
||||||
|
alto: window.innerHeight
|
||||||
|
|
||||||
a {
|
#
|
||||||
font-weight: bold;
|
</script>
|
||||||
color: #2c3e50;
|
|
||||||
|
|
||||||
&.router-link-exact-active {
|
<style lang="sass">
|
||||||
color: #42b983;
|
|
||||||
}
|
.contenedor
|
||||||
}
|
display: grid
|
||||||
}
|
grid-template-columns: 400px auto
|
||||||
|
|
||||||
|
.der
|
||||||
|
position: relative
|
||||||
|
top: 0
|
||||||
|
right: 0
|
||||||
|
overflow-y: scroll
|
||||||
|
overflow-x: hidden
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
</style>
|
</style>
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 6.7 KiB |
51
src/components/App/barra-lateral.vue
Normal file
51
src/components/App/barra-lateral.vue
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
<template lang="pug">
|
||||||
|
div.lateral(:style="'min-height: ' + alto + 'px;'")
|
||||||
|
h1 Horarios UNSA
|
||||||
|
br
|
||||||
|
br
|
||||||
|
div.info
|
||||||
|
p 2019-2
|
||||||
|
p Facultad de Producción y Servicios
|
||||||
|
p Escuela Profesional de Ingeniería de Sistemas
|
||||||
|
br
|
||||||
|
br
|
||||||
|
modo-color
|
||||||
|
h2 Inicio
|
||||||
|
h2 Otros
|
||||||
|
|
||||||
|
//
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="coffee">
|
||||||
|
import modoColor from "./modo-color.vue"
|
||||||
|
|
||||||
|
export default
|
||||||
|
name: "barra-lateral"
|
||||||
|
components: { modoColor }
|
||||||
|
data: ->
|
||||||
|
alto: window.innerHeight
|
||||||
|
|
||||||
|
#
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="sass">
|
||||||
|
|
||||||
|
.lateral
|
||||||
|
display: block
|
||||||
|
position: relative
|
||||||
|
top: 0
|
||||||
|
box-shadow: 2px 0 10px 0 lightgray
|
||||||
|
|
||||||
|
h1
|
||||||
|
text-align: center
|
||||||
|
|
||||||
|
h2
|
||||||
|
margin: 0
|
||||||
|
padding: 15px 10px
|
||||||
|
|
||||||
|
.info p
|
||||||
|
margin: 10px 20px
|
||||||
|
font-family: "Product Sans", Roboto, sans-serif
|
||||||
|
|
||||||
|
//
|
||||||
|
</style>
|
29
src/components/App/modo-color.vue
Normal file
29
src/components/App/modo-color.vue
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
<template lang="pug">
|
||||||
|
form(@submit.prevent)
|
||||||
|
label(for="selector_modo_color") Modo de color:
|
||||||
|
br
|
||||||
|
select#selector_modo_color(v-model="opcion")
|
||||||
|
option(selected) Claro
|
||||||
|
option Oscuro
|
||||||
|
|
||||||
|
//
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="coffee">
|
||||||
|
|
||||||
|
export default
|
||||||
|
name: "modo-color"
|
||||||
|
data: ->
|
||||||
|
opcion: "Claro"
|
||||||
|
watch:
|
||||||
|
opcion: (nuevo) ->
|
||||||
|
console.log "Cambiado a #{nuevo}"
|
||||||
|
|
||||||
|
#
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="sass">
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
</style>
|
@ -1,58 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="hello">
|
|
||||||
<h1>{{ msg }}</h1>
|
|
||||||
<p>
|
|
||||||
For a guide and recipes on how to configure / customize this project,<br>
|
|
||||||
check out the
|
|
||||||
<a href="https://cli.vuejs.org" target="_blank" rel="noopener">vue-cli documentation</a>.
|
|
||||||
</p>
|
|
||||||
<h3>Installed CLI Plugins</h3>
|
|
||||||
<ul>
|
|
||||||
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel" target="_blank" rel="noopener">babel</a></li>
|
|
||||||
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa" target="_blank" rel="noopener">pwa</a></li>
|
|
||||||
</ul>
|
|
||||||
<h3>Essential Links</h3>
|
|
||||||
<ul>
|
|
||||||
<li><a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a></li>
|
|
||||||
<li><a href="https://forum.vuejs.org" target="_blank" rel="noopener">Forum</a></li>
|
|
||||||
<li><a href="https://chat.vuejs.org" target="_blank" rel="noopener">Community Chat</a></li>
|
|
||||||
<li><a href="https://twitter.com/vuejs" target="_blank" rel="noopener">Twitter</a></li>
|
|
||||||
<li><a href="https://news.vuejs.org" target="_blank" rel="noopener">News</a></li>
|
|
||||||
</ul>
|
|
||||||
<h3>Ecosystem</h3>
|
|
||||||
<ul>
|
|
||||||
<li><a href="https://router.vuejs.org" target="_blank" rel="noopener">vue-router</a></li>
|
|
||||||
<li><a href="https://vuex.vuejs.org" target="_blank" rel="noopener">vuex</a></li>
|
|
||||||
<li><a href="https://github.com/vuejs/vue-devtools#vue-devtools" target="_blank" rel="noopener">vue-devtools</a></li>
|
|
||||||
<li><a href="https://vue-loader.vuejs.org" target="_blank" rel="noopener">vue-loader</a></li>
|
|
||||||
<li><a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">awesome-vue</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
name: 'HelloWorld',
|
|
||||||
props: {
|
|
||||||
msg: String
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- Add "scoped" attribute to limit CSS to this component only -->
|
|
||||||
<style scoped lang="scss">
|
|
||||||
h3 {
|
|
||||||
margin: 40px 0 0;
|
|
||||||
}
|
|
||||||
ul {
|
|
||||||
list-style-type: none;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
li {
|
|
||||||
display: inline-block;
|
|
||||||
margin: 0 10px;
|
|
||||||
}
|
|
||||||
a {
|
|
||||||
color: #42b983;
|
|
||||||
}
|
|
||||||
</style>
|
|
32
src/components/Inicio/anio.vue
Normal file
32
src/components/Inicio/anio.vue
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
<template lang="pug">
|
||||||
|
div
|
||||||
|
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")
|
||||||
|
//
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="coffee">
|
||||||
|
import curso from "./curso.vue"
|
||||||
|
import tablaHorarios from "./tabla-horarios.vue"
|
||||||
|
|
||||||
|
export default
|
||||||
|
name: "Anio"
|
||||||
|
components: { curso, tablaHorarios }
|
||||||
|
props:
|
||||||
|
año:
|
||||||
|
type: Object
|
||||||
|
required: true
|
||||||
|
nombreAño:
|
||||||
|
type: String
|
||||||
|
required: true
|
||||||
|
|
||||||
|
#
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="sass">
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
</style>
|
147
src/components/Inicio/curso.vue
Normal file
147
src/components/Inicio/curso.vue
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
<template lang="pug">
|
||||||
|
div.info_curso
|
||||||
|
h4.titulo_curso(@mouseenter="resaltarTodasCeldas" @mouseleave="quitarResaltadoCeldas")
|
||||||
|
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 }}
|
||||||
|
|
||||||
|
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 }}
|
||||||
|
template(v-else)
|
||||||
|
td
|
||||||
|
span.ancho | _
|
||||||
|
|
||||||
|
//
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="coffee">
|
||||||
|
import { resaltarCurso, removerResaltadoCurso, resaltarGrupoCurso, removerResaltadoGrupo } from "./tablaHorarios/funcionesResaltado.coffee"
|
||||||
|
|
||||||
|
export default
|
||||||
|
name: "curso"
|
||||||
|
props:
|
||||||
|
curso:
|
||||||
|
type: Object
|
||||||
|
required: true
|
||||||
|
nombreAño:
|
||||||
|
type: String
|
||||||
|
required: true
|
||||||
|
computed:
|
||||||
|
teoria: ->
|
||||||
|
vm = this
|
||||||
|
profesores = {}
|
||||||
|
for n, grupo of vm.curso.Teoria
|
||||||
|
docente = grupo.Docente
|
||||||
|
unless profesores[docente]?
|
||||||
|
profesores[docente] = []
|
||||||
|
profesores[docente].push(n)
|
||||||
|
profesores
|
||||||
|
laboratorio: ->
|
||||||
|
vm = this
|
||||||
|
profesores = {}
|
||||||
|
for n, grupo of vm.curso.Laboratorio
|
||||||
|
docente = grupo.Docente
|
||||||
|
unless profesores[docente]?
|
||||||
|
profesores[docente] = []
|
||||||
|
profesores[docente].push(n)
|
||||||
|
profesores
|
||||||
|
laboratorioVacio: ->
|
||||||
|
labs = this.laboratorio
|
||||||
|
estaVacio = yes
|
||||||
|
|
||||||
|
for i of labs
|
||||||
|
estaVacio = no
|
||||||
|
break
|
||||||
|
|
||||||
|
estaVacio
|
||||||
|
methods:
|
||||||
|
procesarTeoria: () ->
|
||||||
|
nombreAño = @nombreAño
|
||||||
|
cursoAbreviado = @curso.abreviado
|
||||||
|
curso = @curso
|
||||||
|
nombreStore = "_" + (nombreAño.substring 0, nombreAño.indexOf " ")
|
||||||
|
|
||||||
|
for nombreGrupo, { Horas } of curso.Teoria
|
||||||
|
for horaId in Horas
|
||||||
|
datos = { cursoAbreviado, nombreGrupo, esLab: no }
|
||||||
|
idCelda = nombreStore + horaId
|
||||||
|
|
||||||
|
@$store.commit "agregarACelda", {idCelda, datos}
|
||||||
|
|
||||||
|
for nombreGrupo, { Horas } of curso.Laboratorio
|
||||||
|
for horaId in Horas
|
||||||
|
datos = { cursoAbreviado, nombreGrupo, esLab: yes }
|
||||||
|
idCelda = nombreStore + horaId
|
||||||
|
|
||||||
|
@$store.commit "agregarACelda", {idCelda, datos}
|
||||||
|
resaltarTodasCeldas: () ->
|
||||||
|
resaltarCurso @nombreAño, @curso.abreviado
|
||||||
|
quitarResaltadoCeldas: () ->
|
||||||
|
removerResaltadoCurso @nombreAño, @curso.abreviado
|
||||||
|
resaltarCeldasGrupo: (grupo, esLab) ->
|
||||||
|
resaltarGrupoCurso @nombreAño, @curso.abreviado, grupo, esLab
|
||||||
|
quitarResaltadoGrupo: (grupo, esLab) ->
|
||||||
|
removerResaltadoGrupo @nombreAño, @curso.abreviado, grupo, esLab
|
||||||
|
|
||||||
|
mounted: ->
|
||||||
|
@procesarTeoria()
|
||||||
|
|
||||||
|
#
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="sass">
|
||||||
|
|
||||||
|
.titulo_curso
|
||||||
|
display: inline-block
|
||||||
|
cursor: default
|
||||||
|
&:hover
|
||||||
|
text-decoration: underline
|
||||||
|
|
||||||
|
.info_curso
|
||||||
|
display: inline-block
|
||||||
|
padding: 1rem
|
||||||
|
vertical-align: top
|
||||||
|
|
||||||
|
h4
|
||||||
|
margin-top: 1rem
|
||||||
|
margin-bottom: 0.25rem
|
||||||
|
|
||||||
|
.teoria, .laboratorio, .datos
|
||||||
|
white-space: pre
|
||||||
|
|
||||||
|
.ancho
|
||||||
|
font:
|
||||||
|
family: "Fira Code", monospace
|
||||||
|
user-select: none
|
||||||
|
|
||||||
|
.cursor_click
|
||||||
|
cursor: pointer
|
||||||
|
|
||||||
|
|
||||||
|
.ancho__teoria:hover
|
||||||
|
background-color: var(--colorTeoria)
|
||||||
|
color: white
|
||||||
|
|
||||||
|
.ancho__lab:hover
|
||||||
|
background-color: var(--colorLab)
|
||||||
|
color: white
|
||||||
|
|
||||||
|
//
|
||||||
|
</style>
|
73
src/components/Inicio/tabla-horarios.vue
Normal file
73
src/components/Inicio/tabla-horarios.vue
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
<template lang="pug">
|
||||||
|
table.tabla_horario(border="1")
|
||||||
|
thead
|
||||||
|
tr
|
||||||
|
td Hora
|
||||||
|
td(v-for="dia in dias") {{ dia }}
|
||||||
|
tbody
|
||||||
|
tr(v-for="hora in horas")
|
||||||
|
td {{ hora }}
|
||||||
|
celda(v-for="(dia, i) in dias" :key="i"
|
||||||
|
:dia="dia"
|
||||||
|
:hora="hora"
|
||||||
|
:nombreAño="nombreAño"
|
||||||
|
:nombreStore="nombreStore")
|
||||||
|
|
||||||
|
//
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="coffee">
|
||||||
|
import celda from "./tablaHorarios/celda.vue"
|
||||||
|
|
||||||
|
export default
|
||||||
|
name: "tabla-horarios"
|
||||||
|
components: { celda }
|
||||||
|
data: ->
|
||||||
|
dias: ["Lunes", "Martes", "Miercoles", "Jueves", "Viernes"]
|
||||||
|
horas: [
|
||||||
|
"07:00 - 07:50"
|
||||||
|
"07:50 - 08:40"
|
||||||
|
"08:40 - 08:50"
|
||||||
|
"08:50 - 09:40"
|
||||||
|
"09:40 - 10:30"
|
||||||
|
"10:30 - 10:40"
|
||||||
|
"10:40 - 11:30"
|
||||||
|
"11:30 - 12:20"
|
||||||
|
"12:20 - 13:10"
|
||||||
|
"13:10 - 14:00"
|
||||||
|
"14:00 - 14:50"
|
||||||
|
"14:50 - 15:40"
|
||||||
|
"15:40 - 15:50"
|
||||||
|
"15:50 - 16:40"
|
||||||
|
"16:40 - 17:30"
|
||||||
|
"17:30 - 17:40"
|
||||||
|
"17:40 - 18:30"
|
||||||
|
"18:30 - 19:20"
|
||||||
|
"19:20 - 20:10"
|
||||||
|
]
|
||||||
|
props:
|
||||||
|
nombreAño:
|
||||||
|
type: String
|
||||||
|
required: true
|
||||||
|
computed:
|
||||||
|
nombreStore: -> "_" + (@nombreAño.substring 0, @nombreAño.indexOf " ")
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="sass">
|
||||||
|
|
||||||
|
.tabla_horario
|
||||||
|
width: 100%
|
||||||
|
border-color: rgba(135, 135, 135, 0.51)
|
||||||
|
|
||||||
|
tr
|
||||||
|
vertical-align: middle
|
||||||
|
text-align: center
|
||||||
|
td:first-child
|
||||||
|
width: 8rem
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
</style>
|
92
src/components/Inicio/tablaHorarios/celda-curso.vue
Normal file
92
src/components/Inicio/tablaHorarios/celda-curso.vue
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
<template lang="pug">
|
||||||
|
span.celda(:class="clases" :eslab="datos.esLab? 'true': 'false'"
|
||||||
|
@mouseenter="resaltarCeldasGrupo"
|
||||||
|
@mouseleave="quitarResaltadoGrupo"
|
||||||
|
@click="toggleActivo")
|
||||||
|
| {{ datos.cursoAbreviado }}
|
||||||
|
span {{ (datos.esLab? "L": "") + datos.nombreGrupo }}
|
||||||
|
|
||||||
|
//
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="coffee">
|
||||||
|
import { resaltarGrupoCurso, removerResaltadoGrupo } from "./funcionesResaltado.coffee"
|
||||||
|
|
||||||
|
export default
|
||||||
|
name: "celda-curso"
|
||||||
|
props:
|
||||||
|
datos:
|
||||||
|
type: Object
|
||||||
|
required: yes
|
||||||
|
nombreAño:
|
||||||
|
type: String
|
||||||
|
required: yes
|
||||||
|
data: ->
|
||||||
|
celdaCursoActiva: no
|
||||||
|
computed:
|
||||||
|
clases: ->
|
||||||
|
res = []
|
||||||
|
esLab = @datos.esLab
|
||||||
|
cursoAbreviado = @datos.cursoAbreviado
|
||||||
|
nombreGrupo = @datos.nombreGrupo
|
||||||
|
nombreAño = @nombreAño.substring 0, (@nombreAño.indexOf " ")
|
||||||
|
|
||||||
|
res.push if esLab then "celda__lab" else "celda__teoria"
|
||||||
|
|
||||||
|
# _PW1
|
||||||
|
res.push "_#{ nombreAño }_#{ cursoAbreviado }"
|
||||||
|
|
||||||
|
# _PW1_LB
|
||||||
|
res.push "_#{ nombreAño }_#{ cursoAbreviado }_#{ if esLab then 'L' else '' }#{ nombreGrupo }"
|
||||||
|
|
||||||
|
res
|
||||||
|
cursoAbreviado: -> @datos.cursoAbreviado
|
||||||
|
nombreGrupo: -> @datos.nombreGrupo
|
||||||
|
esLab: -> @datos.esLab
|
||||||
|
methods:
|
||||||
|
resaltarCeldasGrupo: () ->
|
||||||
|
resaltarGrupoCurso @nombreAño, @cursoAbreviado, @nombreGrupo, @esLab
|
||||||
|
quitarResaltadoGrupo: () ->
|
||||||
|
removerResaltadoGrupo @nombreAño, @cursoAbreviado, @nombreGrupo, @esLab
|
||||||
|
activarGrupo: () ->
|
||||||
|
resaltarGrupoCurso @nombreAño, @cursoAbreviado, @nombreGrupo, @esLab
|
||||||
|
desactivarGrupo: () ->
|
||||||
|
removerResaltadoGrupo @nombreAño, @cursoAbreviado, @nombreGrupo, @esLab
|
||||||
|
# TODO: Hacer que el state se almacene en los elementos HTML en si
|
||||||
|
toggleActivo: () ->
|
||||||
|
@celdaCursoActiva = !@celdaCursoActiva
|
||||||
|
if @celdaCursoActiva
|
||||||
|
@activarGrupo()
|
||||||
|
else
|
||||||
|
@desactivarGrupo()
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="sass">
|
||||||
|
$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
|
||||||
|
|
||||||
|
//
|
||||||
|
</style>
|
77
src/components/Inicio/tablaHorarios/celda.vue
Normal file
77
src/components/Inicio/tablaHorarios/celda.vue
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
<template lang="pug">
|
||||||
|
td(:class="clases")
|
||||||
|
celda-curso(v-for="(datos, i) in datosCeldas" :key="i" :datos="datos" :nombreAño="nombreAño")
|
||||||
|
|
||||||
|
//
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="coffee">
|
||||||
|
import celdaCurso from "./celda-curso.vue"
|
||||||
|
|
||||||
|
export default
|
||||||
|
name: "celda",
|
||||||
|
components: { celdaCurso }
|
||||||
|
props:
|
||||||
|
dia:
|
||||||
|
type: String
|
||||||
|
required: yes
|
||||||
|
hora:
|
||||||
|
type: String
|
||||||
|
required: yes
|
||||||
|
nombreAño:
|
||||||
|
type: String
|
||||||
|
required: yes
|
||||||
|
nombreStore:
|
||||||
|
type: String
|
||||||
|
required: yes
|
||||||
|
data: ->
|
||||||
|
datosCeldas: []
|
||||||
|
computed:
|
||||||
|
identificadoresCelda: ->
|
||||||
|
clases = []
|
||||||
|
parteDia = @dia.substring 0, 2
|
||||||
|
clases.push ("_" + parteDia)
|
||||||
|
|
||||||
|
parteHora = (@hora.substring 0, 2) + (@hora.substring 3, 5)
|
||||||
|
clases.push ("_" + parteHora)
|
||||||
|
|
||||||
|
clases.push ("_" + parteDia + parteHora)
|
||||||
|
|
||||||
|
nombreAño = @nombreAño
|
||||||
|
claseAño = nombreAño.substring 0, (nombreAño.indexOf " ")
|
||||||
|
clases.push ("_" + claseAño)
|
||||||
|
|
||||||
|
id = "_" + claseAño + parteDia + parteHora
|
||||||
|
clases.push id
|
||||||
|
|
||||||
|
[id, clases]
|
||||||
|
idCelda: -> @identificadoresCelda[0]
|
||||||
|
clases: -> @identificadoresCelda[1]
|
||||||
|
methods:
|
||||||
|
registrarCelda: -> @$store.commit "registrarCelda", @idCelda
|
||||||
|
recuperarDatosCeldas: -> @datosCeldas = @$store.state.celdas[@idCelda]
|
||||||
|
|
||||||
|
mounted: ->
|
||||||
|
vm = this
|
||||||
|
idCelda = @identificadoresCelda[0]
|
||||||
|
promesa = new Promise (resolve) =>
|
||||||
|
intervalo = setInterval (=>
|
||||||
|
unless vm.$store.state.celdas[idCelda] is undefined
|
||||||
|
clearInterval intervalo
|
||||||
|
resolve()
|
||||||
|
), 250
|
||||||
|
|
||||||
|
@registrarCelda()
|
||||||
|
await promesa
|
||||||
|
@recuperarDatosCeldas()
|
||||||
|
|
||||||
|
#
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="sass">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
</style>
|
@ -0,0 +1,84 @@
|
|||||||
|
#: Txt -> Txt -> ()
|
||||||
|
export resaltarCurso = (nombreAño, cursoAbreviado) =>
|
||||||
|
nombreAñoF = nombreAño.substring 0, (nombreAño.indexOf " ")
|
||||||
|
clase = "_#{ nombreAñoF }_#{ cursoAbreviado }"
|
||||||
|
|
||||||
|
elementos = document.getElementsByClassName clase
|
||||||
|
|
||||||
|
for elemento in elementos
|
||||||
|
nuevaClase =
|
||||||
|
if (elemento.getAttribute "eslab") is "true"
|
||||||
|
"celda__lab--resaltado"
|
||||||
|
else
|
||||||
|
"celda__teoria--resaltado"
|
||||||
|
elemento.className += " #{nuevaClase}"
|
||||||
|
|
||||||
|
|
||||||
|
export removerResaltadoCurso = (nombreAño, cursoAbreviado) =>
|
||||||
|
nombreAñoF = nombreAño.substring 0, (nombreAño.indexOf " ")
|
||||||
|
clase = "_#{ nombreAñoF }_#{ cursoAbreviado }"
|
||||||
|
|
||||||
|
elementos = document.getElementsByClassName clase
|
||||||
|
|
||||||
|
for elemento in elementos
|
||||||
|
clases = elemento.className
|
||||||
|
clasesNueva = clases.replace "celda__lab--resaltado", ""
|
||||||
|
clasesNueva = clasesNueva.replace "celda__teoria--resaltado", ""
|
||||||
|
|
||||||
|
elemento.className = clasesNueva
|
||||||
|
|
||||||
|
|
||||||
|
export resaltarGrupoCurso = (nombreAño, cursoAbreviado, grupo, esLab) =>
|
||||||
|
nombreAñoF = nombreAño.substring 0, (nombreAño.indexOf " ")
|
||||||
|
clase = "_#{ nombreAñoF }_#{ cursoAbreviado }_#{ (if esLab then 'L' else '') + grupo }"
|
||||||
|
|
||||||
|
elementos = document.getElementsByClassName clase
|
||||||
|
|
||||||
|
for elemento in elementos
|
||||||
|
if (elemento.getAttribute "eslab") is esLab.toString()
|
||||||
|
nuevaClase = "celda__#{ if esLab then 'lab' else 'teoria' }--resaltado"
|
||||||
|
elemento.className += " #{nuevaClase}"
|
||||||
|
|
||||||
|
|
||||||
|
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 }"
|
||||||
|
|
||||||
|
elementos = document.getElementsByClassName clase
|
||||||
|
|
||||||
|
for elemento in elementos
|
||||||
|
if (elemento.getAttribute "eslab") is esLab.toString()
|
||||||
|
clases = elemento.className
|
||||||
|
clasesNueva = clases.replace "celda__lab--resaltado", ""
|
||||||
|
clasesNueva = clasesNueva.replace "celda__teoria--resaltado", ""
|
||||||
|
|
||||||
|
elemento.className = clasesNueva
|
||||||
|
|
||||||
|
|
||||||
|
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 }"
|
||||||
|
|
||||||
|
elementos = document.getElementsByClassName clase
|
||||||
|
|
||||||
|
for elemento in elementos
|
||||||
|
if (elemento.getAttribute "eslab") is esLab.toString()
|
||||||
|
nuevaClase = "celda__#{ if esLab then 'lab' else 'teoria' }--activo"
|
||||||
|
|
||||||
|
elemento.className += " #{nuevaClase}"
|
||||||
|
|
||||||
|
|
||||||
|
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 }"
|
||||||
|
|
||||||
|
elementos = document.getElementsByClassName clase
|
||||||
|
|
||||||
|
for elemento in elementos
|
||||||
|
if (elemento.getAttribute "eslab") is esLab.toString()
|
||||||
|
clases = elemento.className
|
||||||
|
clasesNueva = clases.replace "celda__lab--activo", ""
|
||||||
|
clasesNueva = clasesNueva.replace "celda__teoria--activo", ""
|
||||||
|
|
||||||
|
elemento.className = clasesNueva
|
||||||
|
|
@ -3,6 +3,8 @@ import App from './App.vue'
|
|||||||
import router from './router'
|
import router from './router'
|
||||||
import store from './store'
|
import store from './store'
|
||||||
import './registerServiceWorker'
|
import './registerServiceWorker'
|
||||||
|
import "normalize-css"
|
||||||
|
import "./sass/Global.sass"
|
||||||
|
|
||||||
Vue.config.productionTip = false
|
Vue.config.productionTip = false
|
||||||
|
|
||||||
|
@ -1,27 +1,19 @@
|
|||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
import VueRouter from 'vue-router'
|
import VueRouter from 'vue-router'
|
||||||
import Home from '../views/Home.vue'
|
import Inicio from '../views/Inicio.vue'
|
||||||
|
|
||||||
Vue.use(VueRouter)
|
Vue.use(VueRouter);
|
||||||
|
|
||||||
const routes = [
|
const routes = [
|
||||||
{
|
{
|
||||||
path: '/',
|
path: '/',
|
||||||
name: 'home',
|
name: 'Inicio',
|
||||||
component: Home
|
component: Inicio
|
||||||
},
|
|
||||||
{
|
|
||||||
path: '/about',
|
|
||||||
name: 'about',
|
|
||||||
// route level code-splitting
|
|
||||||
// this generates a separate chunk (about.[hash].js) for this route
|
|
||||||
// which is lazy-loaded when the route is visited.
|
|
||||||
component: () => import(/* webpackChunkName: "about" */ '../views/About.vue')
|
|
||||||
}
|
}
|
||||||
]
|
];
|
||||||
|
|
||||||
const router = new VueRouter({
|
const router = new VueRouter({
|
||||||
routes
|
routes
|
||||||
})
|
});
|
||||||
|
|
||||||
export default router
|
export default router
|
||||||
|
17
src/sass/Global.sass
Normal file
17
src/sass/Global.sass
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
\:root
|
||||||
|
--colorTexto: #d7d7d7
|
||||||
|
--colorFondo: #0E1419
|
||||||
|
--colorTeoria: #3f77f3
|
||||||
|
--colorLab: #e4564a
|
||||||
|
|
||||||
|
/* black white */
|
||||||
|
|
||||||
|
html
|
||||||
|
font-family: "Roboto", sans-serif
|
||||||
|
color: var(--colorTexto)
|
||||||
|
background-color: var(--colorFondo)
|
||||||
|
|
||||||
|
h1, h2, h3
|
||||||
|
font-family: "Product Sans", Roboto, sans-serif
|
||||||
|
|
||||||
|
//
|
@ -1,15 +1,21 @@
|
|||||||
import Vue from 'vue'
|
import Vue from 'vue';
|
||||||
import Vuex from 'vuex'
|
import Vuex from 'vuex';
|
||||||
|
|
||||||
Vue.use(Vuex)
|
Vue.use(Vuex);
|
||||||
|
|
||||||
export default new Vuex.Store({
|
export default new Vuex.Store({
|
||||||
state: {
|
state: {
|
||||||
|
celdas: {}
|
||||||
},
|
},
|
||||||
mutations: {
|
mutations: {
|
||||||
|
registrarCelda(state, idCelda) {
|
||||||
|
state.celdas[idCelda] = [];
|
||||||
|
},
|
||||||
|
agregarACelda(state, {idCelda, datos}) {
|
||||||
|
state.celdas[idCelda].push(datos);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
},
|
|
||||||
modules: {
|
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="about">
|
|
||||||
<h1>This is an about page</h1>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
@ -1,18 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="home">
|
|
||||||
<img alt="Vue logo" src="../assets/logo.png">
|
|
||||||
<HelloWorld msg="Welcome to Your Vue.js App"/>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
// @ is an alias to /src
|
|
||||||
import HelloWorld from '@/components/HelloWorld.vue'
|
|
||||||
|
|
||||||
export default {
|
|
||||||
name: 'home',
|
|
||||||
components: {
|
|
||||||
HelloWorld
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
30
src/views/Inicio.vue
Normal file
30
src/views/Inicio.vue
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
<template lang="pug">
|
||||||
|
div.home
|
||||||
|
h2.titulo {{ datos.titulo }}
|
||||||
|
anio(v-for="(año, i) in datos.años" :key="i"
|
||||||
|
:año="año" :nombreAño="i"
|
||||||
|
)
|
||||||
|
|
||||||
|
//
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="coffee">
|
||||||
|
import anio from "../components/Inicio/anio.vue"
|
||||||
|
import YAML from "yaml"
|
||||||
|
|
||||||
|
export default
|
||||||
|
name: 'home'
|
||||||
|
components: { anio }
|
||||||
|
data: ->
|
||||||
|
datos:
|
||||||
|
titulo: "Cargando..."
|
||||||
|
años: {}
|
||||||
|
created: ->
|
||||||
|
vm = this
|
||||||
|
resRaw = await fetch "/horarios/2018_2_fps_epis.yaml"
|
||||||
|
res = YAML.parse await resRaw.text()
|
||||||
|
vm.datos = res
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
</script>
|
17
vue.config.js
Normal file
17
vue.config.js
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
module.exports = {
|
||||||
|
configureWebpack: {
|
||||||
|
module: {
|
||||||
|
rules: [
|
||||||
|
{
|
||||||
|
test: /\.coffee$/,
|
||||||
|
loader: 'coffee-loader',
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
devServer: {
|
||||||
|
compress: true,
|
||||||
|
disableHostCheck: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
productionSourceMap: false
|
||||||
|
};
|
Loading…
Reference in New Issue
Block a user