Beruflich Dokumente
Kultur Dokumente
.editorconfig 0 → 100644
1 + root = true
2 +
3 + [*]
4 + charset = utf-8
5 + end_of_line = lf
6 + insert_final_newline = true
7 + indent_style = space
8 + indent_size = 4
9 + trim_trailing_whitespace = true
10 +
11 + [*.md]
12 + trim_trailing_whitespace = false
13 +
14 + [*.yml]
15 + indent_size = 2
16 +
17 + [*.blade.php]
18 + indent_size = 2
19 +
20 + [*.vue]
21 + indent_size = 2
22 +
23 + [*.js]
24 + indent_size = 2
25 +
26 + [*.css]
27 + indent_size = 2
package-lock.json 0 → 100644
package.json
public/index.html
... ... @@ -24,7 +24,7 @@
24 24 <link rel="icon" href="<%= BASE_URL %>img/brand/favicon.png" type="image/png">
25 25 <title>Vue Argon Dashboard - Free Dashboard for Vue.js & Bootstrap 4</title>
26 26 <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css"
integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf"
crossorigin="anonymous">
27 - <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY"></script>
https://gitlab.com/guille.agudelo/tto-atlantico-frontend/-/commit/2e3301dc8c7b249d02cd38d5a498c5b8ba9b634c 1/9
29/6/2020 Primeros cambios, prueba login (2e3301dc) · Commits · Guillermo Agudelo / tto-atlantico-frontend · GitLab
src/App.vue
... ... @@ -4,3 +4,4 @@
4 4 <router-view/>
5 5 </div>
6 6 </template>
7 +
src/api/admin.js 0 → 100644
1 + import firebase from '../firebase'
2 + const ENDPOINT = 'https://us-central1-sisredvolucion-61c11.cloudfunctions.net'
3 + const URLCOLLECTIONPAGINATED = `${ENDPOINT}/getCollectionPaginated`
4 + const URLHISTORIES = `${ENDPOINT}/historiesInspirados`
5 +
6 + const db = firebase.firestore()
7 +
8 + export const obtenerHistoriasInspirados = async (params = null) => {
9 + let url = `${URLHISTORIES}?`
10 +
11 + if (params) {
12 + url += paramsEncoderBuilder(params)
13 + }
14 +
15 + if (params && params.download) { window.location = url; return }
16 +
17 + const response = await fetch(url)
18 +
19 + return response.json()
20 +}
21 +
22 + export const obtenerInspirados = async (params) => {
23 + let url = `${URLCOLLECTIONPAGINATED}?collection=inspirados`
24 +
25 + if (params) {
26 + url += paramsEncoderBuilder(params)
27 + }
28 +
29 + if (params.download) { window.location = url; return }
30 +
31 + const response = await fetch(url)
32 +
33 + return response.json()
34 +}
35 +
36 + export const obtenerInspiradores = async (params) => {
37 + let url = `${URLCOLLECTIONPAGINATED}?collection=inspiradores`
38 +
39 + if (params) {
40 + url += paramsEncoderBuilder(params)
41 + }
42 +
43 + if (params.download) { window.location = url; return }
44 +
45 + const response = await fetch(url)
46 + return response.json()
47 +}
48 +
49 + export const paramsEncoderBuilder = (params) => {
50 + let urlParamsEncode = ''
51 + for (const param in params) {
52 + if (!param) continue
53 +
54 + switch (param) {
55 + case 'filters':
56 + for (const filter in params[param]) {
57 + if (!params[param][filter]) continue
58 + urlParamsEncode += `&filters[${filter}]=${params[param][filter]}`
59 + }
https://gitlab.com/guille.agudelo/tto-atlantico-frontend/-/commit/2e3301dc8c7b249d02cd38d5a498c5b8ba9b634c 2/9
29/6/2020 Primeros cambios, prueba login (2e3301dc) · Commits · Guillermo Agudelo / tto-atlantico-frontend · GitLab
60 + break
61 + default:
62 + urlParamsEncode += `&${param}=${params[param]}`
63 + break
64 + }
65 + }
66 + return urlParamsEncode
67 +}
68 +
69 + export const obtenerMeranis = () => {
70 + return db.collection('usuarios').where('rol', '==', 'merani').get()
71 +}
src/api/auth.js 0 → 100644
1 + import firebase from '../firebase'
2 +
3 + export function login (username, password) {
4 + return firebase.auth().signInWithEmailAndPassword(username, password)
5 +}
6 +
7 + export function getUserInfo (idUser) {
8 + return firebase.firestore()
9 + .collection('usuarios')
10 + .doc(idUser)
11 + .get()
12 +}
13 +
14 + export function isUserLogged () {
15 + return new Promise((resolve, reject) => {
16 + firebase.auth().onAuthStateChanged((user) => {
17 + if (user) {
18 + resolve(true)
19 + } else {
20 + reject(false)
21 + }
22 + })
23 + })
24 +}
25 +
26 + export function logout () {
27 + return firebase.auth().signOut()
28 +}
src/api/inspiradores.js 0 → 100644
1 + import firebase from '../firebase'
2 +
3 + const db = firebase.firestore()
4 + const collectionInspiradores = db.collection('inspiradores')
5 +
6 + export const guardarNuevoInspirador = async (inspirador, idMerani) => {
7 + const promises = []
8 + const authUser = await firebase.auth().createUserWithEmailAndPassword(inspirador.correo,
`CC${String(inspirador.numeroIdentificacion)}`)
9 + const { nombres, apellidos, departamento, municipio, numeroIdentificacion } = inspirador
10 +
11 + promises.push(db.collection('usuarios').doc(authUser.user.uid).set({
12 + nombres,
13 + apellidos,
14 + departamento,
15 + municipio,
16 + numeroIdentificacion,
17 + rol: 'inspirador'
18 + }))
19 +
20 + inspirador.idMerani = db.doc(`usuarios/${idMerani}`)
21 + promises.push(collectionInspiradores.doc(authUser.user.uid).set(inspirador))
22 +
23 + return Promise.all(promises)
24 +}
25 +
26 + export const actualizarInspirador = (inspirador, idInspirador) => {
27 + return collectionInspiradores.doc(idInspirador).set(inspirador)
28 +}
https://gitlab.com/guille.agudelo/tto-atlantico-frontend/-/commit/2e3301dc8c7b249d02cd38d5a498c5b8ba9b634c 3/9
29/6/2020 Primeros cambios, prueba login (2e3301dc) · Commits · Guillermo Agudelo / tto-atlantico-frontend · GitLab
29 +
30 + export const obtenerInspiradoresPorId = (refMerani) => {
31 + return collectionInspiradores.where('idMerani', '==', refMerani).get()
32 +}
33 +
34 + export const obtenerInspiradorPorId = (inspiradorId) => {
35 + return collectionInspiradores
36 + .doc(inspiradorId)
37 + .get()
38 +}
39 +
40 + export const guardarDocumento = (documento) => {
41 + return db.collection('documentos')
42 + .add(documento)
43 +}
44 +
45 + export const obtenerDocumentosPorDni = (dni) => {
46 + return db.collection('documentos')
47 + .where('dniUsuario', '==', dni)
48 + .get()
49 +}
src/api/inspirados.js 0 → 100644
1 + import firebase from '../firebase'
2 + const db = firebase.firestore()
3 + const collectionInspirados = db.collection('inspirados')
4 +
5 + const guardarNuevoInspirado = (inspirado, idInspirador) => {
6 + inspirado.idInspirador = db.doc(`usuarios/${idInspirador}`)
7 + return collectionInspirados.add(inspirado)
8 +}
9 +
10 + const eliminarInspirado = (inspirado) => {
11 + return collectionInspirados.doc(inspirado).delete()
12 +}
13 +
14 + const actualizarInspirado = (inspirado, idInspirado) => {
15 + return collectionInspirados.doc(idInspirado).update(inspirado)
16 +}
17 +
18 + const obtenerInspiradosPorId = (refInspirador) => {
19 + return collectionInspirados.where('idInspirador', '==', refInspirador).get()
20 +}
21 +
22 + const obtenerInspiradoPorId = (inspiradosId) => {
23 + return collectionInspirados
24 + .doc(inspiradosId)
25 + .get()
26 +}
27 +
28 + export default {
29 + obtenerInspiradosPorId,
30 + obtenerInspiradoPorId,
31 + guardarNuevoInspirado,
32 + actualizarInspirado,
33 + eliminarInspirado
34 +}
src/api/storage.js 0 → 100644
1 + import firebase from '../firebase'
2 +
3 + const storage = firebase.storage().ref('redvolucion/inspirados')
4 + const storageDocumentos = firebase.storage().ref('redvolucion/documentos')
5 +
6 + const obtenerUrlArchivoPorNombre = (nombreArchivo, dni) => {
7 + return storage.child(`${dni}/${nombreArchivo}`).getDownloadURL()
8 +}
9 +
10 + const obtenerUrlDocumentoPorNombre = (nombreArchivo, dni) => {
11 + return storageDocumentos.child(`${dni}/${nombreArchivo}`).getDownloadURL()
12 +}
13 +
14 + const guardarArchivoBase64 = (archivo, dni) => {
https://gitlab.com/guille.agudelo/tto-atlantico-frontend/-/commit/2e3301dc8c7b249d02cd38d5a498c5b8ba9b634c 4/9
29/6/2020 Primeros cambios, prueba login (2e3301dc) · Commits · Guillermo Agudelo / tto-atlantico-frontend · GitLab
src/firebase.js 0 → 100644
src/layout/AuthLayout.vue
https://gitlab.com/guille.agudelo/tto-atlantico-frontend/-/commit/2e3301dc8c7b249d02cd38d5a498c5b8ba9b634c 5/9
29/6/2020 Primeros cambios, prueba login (2e3301dc) · Commits · Guillermo Agudelo / tto-atlantico-frontend · GitLab
https://gitlab.com/guille.agudelo/tto-atlantico-frontend/-/commit/2e3301dc8c7b249d02cd38d5a498c5b8ba9b634c 6/9
29/6/2020 Primeros cambios, prueba login (2e3301dc) · Commits · Guillermo Agudelo / tto-atlantico-frontend · GitLab
src/views/Login.vue
1 1 <template>
2 - <div class="row justify-content-center">
3 - <div class="col-lg-5 col-md-7">
4 - <div class="card bg-secondary shadow border-0">
5 - <div class="card-header bg-transparent pb-5">
6 - <div class="text-muted text-center mt-2 mb-3"><small>Sign in with</small></div>
7 - <div class="btn-wrapper text-center">
8 - <a href="#" class="btn btn-neutral btn-icon">
9 - <span class="btn-inner--icon"><img src="img/icons/common/github.svg">
</span>
10 - <span class="btn-inner--text">Github</span>
11 - </a>
12 - <a href="#" class="btn btn-neutral btn-icon">
13 - <span class="btn-inner--icon"><img src="img/icons/common/google.svg">
</span>
14 - <span class="btn-inner--text">Google</span>
15 - </a>
16 - </div>
17 - </div>
18 - <div class="card-body px-lg-5 py-lg-5">
19 - <div class="text-center text-muted mb-4">
20 - <small>Or sign in with credentials</small>
21 - </div>
22 - <form role="form">
23 - <base-input class="input-group-alternative mb-3"
24 - placeholder="Email"
25 - addon-left-icon="ni ni-email-83"
26 - v-model="model.email">
27 - </base-input>
2 + <div class="row justify-content-center">
3 + <div class="col-lg-5 col-md-7">
4 + <div class="card bg-secondary shadow border-0">
5 + <div class="card-header bg-transparent pb-5">
6 + <div class="text-muted text-center mt-2 mb-3"><small>Sign in with</small></div>
7 + <div class="btn-wrapper text-center">
8 + <a href="#" class="btn btn-neutral btn-icon">
9 + <span class="btn-inner--icon"><i class="fab fa-facebook fa-lg"></i></span>
10 + <span class="btn-inner--text">Facebook</span>
11 + </a>
12 + <a href="#" class="btn btn-neutral btn-icon">
13 + <span class="btn-inner--icon"><img src="img/icons/common/google.svg"></span>
14 + <span class="btn-inner--text">Google</span>
15 + </a>
https://gitlab.com/guille.agudelo/tto-atlantico-frontend/-/commit/2e3301dc8c7b249d02cd38d5a498c5b8ba9b634c 7/9
29/6/2020 Primeros cambios, prueba login (2e3301dc) · Commits · Guillermo Agudelo / tto-atlantico-frontend · GitLab
16 + </div>
17 + </div>
18 + <div class="card-body px-lg-5 py-lg-5">
19 + <div class="text-center text-muted" :class="{'mb-4':!error, 'mb-2':error}">
20 + <small>Or sign in with credentials</small>
21 + </div>
22 + <div v-if="error" class="text-danger text-sm text-center mb-2">
23 + {{ error }}
24 + </div>
25 + <form role="form">
26 + <base-input class="input-group-alternative mb-3"
27 + placeholder="Email"
28 + addon-left-icon="ni ni-email-83"
29 + v-model="model.email">
30 + </base-input>
28 31
29 - <base-input class="input-group-alternative"
30 - placeholder="Password"
31 - type="password"
32 - addon-left-icon="ni ni-lock-circle-open"
33 - v-model="model.password">
34 - </base-input>
32 + <base-input class="input-group-alternative"
33 + placeholder="Password"
34 + type="password"
35 + addon-left-icon="ni ni-lock-circle-open"
36 + v-model="model.password">
37 + </base-input>
35 38
36 - <base-checkbox class="custom-control-alternative">
37 - <span class="text-muted">Remember me</span>
38 - </base-checkbox>
39 - <div class="text-center">
40 - <base-button type="primary" class="my-4">Sign in</base-button>
41 - </div>
42 - </form>
43 - </div>
44 - </div>
45 - <div class="row mt-3">
46 - <div class="col-6">
47 - <a href="#" class="text-light"><small>Forgot password?</small></a>
48 - </div>
49 - <div class="col-6 text-right">
50 - <router-link to="/register" class="text-light"><small>Create new account</small>
</router-link>
51 - </div>
52 - </div>
39 + <base-checkbox class="custom-control-alternative">
40 + <span class="text-muted">Remember me</span>
41 + </base-checkbox>
42 + <div class="text-center">
43 + <base-button type="primary" class="my-4" @click="signin">Sign in</base-button>
53 44 </div>
45 + </form>
46 + </div>
47 + </div>
48 + <div class="row mt-3">
49 + <div class="col-6">
50 + <a href="#" class="text-light"><small>Forgot password?</small></a>
51 + </div>
52 + <div class="col-6 text-right">
53 + <router-link to="/register" class="text-light"><small>Create new account</small></router-link>
54 54 </div>
55 + </div>
56 + </div>
57 + </div>
55 58 </template>
56 59 <script>
57 - export default {
58 - name: 'login',
59 - data() {
60 - return {
61 - model: {
62 - email: '',
63 - password: ''
https://gitlab.com/guille.agudelo/tto-atlantico-frontend/-/commit/2e3301dc8c7b249d02cd38d5a498c5b8ba9b634c 8/9
29/6/2020 Primeros cambios, prueba login (2e3301dc) · Commits · Guillermo Agudelo / tto-atlantico-frontend · GitLab
64 - }
65 - }
60 + import { login } from '../api/auth'
61 +
62 + export default {
63 + name: 'login',
64 + data() {
65 + return {
66 + model: {
67 + email: '',
68 + password: ''
69 + },
70 + error: ''
71 + }
72 + },
73 + methods: {
74 + signin() {
75 + login(this.model.email, this.model.password)
76 + .then(res => {
77 + this.error = null
78 + this.$router.push({ path: this.redirect || '/' })
79 + })
80 + .catch(err => {
81 + switch (err.code) {
82 + case 'auth/user-not-found':
83 + this.error = 'Usuario no encontrado'
84 + break;
85 + case 'auth/wrong-password':
86 + this.error = 'Contraseña incorrecta'
87 + break;
88 + case 'auth/too-many-requests':
89 + this.error = 'Demasiados intentos errados. Por favor, intente mas tarde'
90 + }
91 + })
66 92 }
67 93 }
94 +}
68 95 </script>
69 - <style>
70 - </style>
https://gitlab.com/guille.agudelo/tto-atlantico-frontend/-/commit/2e3301dc8c7b249d02cd38d5a498c5b8ba9b634c 9/9