Sie sind auf Seite 1von 9

29/6/2020 Primeros cambios, prueba login (2e3301dc) · Commits · Guillermo Agudelo / tto-atlantico-frontend · GitLab

Please ensure your account's recovery settings are up to date.

Commit 2e3301dc authored 3 weeks ago by Guillermo Agudelo

Primeros cambios, prueba login

parent 3a60d045 master

No related merge requests found

Showing 13 changed files  with 13936 additions and 137 deletions

  .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

This diff is collapsed.

  package.json

... ... @@ -13,6 +13,7 @@


13 13 "bootstrap-vue": "2.0.0-rc.15",
14 14 "chart.js": "2.8.0",
15 15 "core-js": "2.6.5",
16 + "firebase": "^7.14.6",
16 17 "flatpickr": "4.5.7",
17 18 "nouislider": "13.1.4",
18 19 "register-service-worker": "1.6.2",
... ...

  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

27 + <!-- <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY"></script> -->


28 28 </head>
29 29 <body>
30 30 <noscript>
... ...

  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

15 + return storage.child(`${String(dni)}/${archivo.originalName}`).putString(archivo.url, 'data_url')


16 +}
17 +
18 + const guardarDocumentoBase64 = (archivo, dni) => {
19 + return storageDocumentos.child(`${String(dni)}/${archivo.originalName}`).putString(archivo.url,
'data_url')
20 +}
21 +
22 + export default {
23 + obtenerUrlArchivoPorNombre,
24 + guardarArchivoBase64,
25 + guardarDocumentoBase64,
26 + obtenerUrlDocumentoPorNombre
27 +}

  src/firebase.js 0 → 100644

1 + import firebase from 'firebase/firebase'


2 +
3 + var firebaseConfig = {
4 + apiKey: "AIzaSyD6NnwRSeRA3ZiuY9NEHjEfu6UqjgCCruk",
5 + authDomain: "ttoatlantico.firebaseapp.com",
6 + databaseURL: "https://ttoatlantico.firebaseio.com",
7 + projectId: "ttoatlantico",
8 + storageBucket: "ttoatlantico.appspot.com",
9 + messagingSenderId: "64361184269",
10 + appId: "1:64361184269:web:d6dcc74fcf123dbf12a944"
11 + };
12 +
13 + firebase.initializeApp(firebaseConfig);
14 +
15 + export default firebase;

  src/layout/AuthLayout.vue

... ... @@ -7,65 +7,14 @@


7 7 <router-link slot="brand" class="navbar-brand" to="/">
8 8 <img src="img/brand/white.png"/>
9 9 </router-link>
10 -
11 - <template v-slot="{closeMenu}">
12 - <!-- Collapse header -->
13 - <div class="navbar-collapse-header d-md-none">
14 - <div class="row">
15 - <div class="col-6 collapse-brand">
16 - <router-link to="/">
17 - <img src="img/brand/green.png">
18 - </router-link>
19 - </div>
20 - <div class="col-6 collapse-close">
21 - <button type="button"
22 - @click="closeMenu"
23 - class="navbar-toggler"
24 - aria-label="Toggle sidenav">
25 - <span></span>
26 - <span></span>
27 - </button>
28 - </div>
29 - </div>
30 - </div>
31 - <!-- Navbar items -->
32 - <ul class="navbar-nav ml-auto">
33 - <li class="nav-item">
34 - <router-link class="nav-link nav-link-icon" to="/">
35 - <i class="ni ni-planet"></i>
36 - <span class="nav-link-inner--text">Dashboard</span>
37 - </router-link>
38 - </li>
39 - <li class="nav-item">
40 - <router-link class="nav-link nav-link-icon" to="/register">
41 - <i class="ni ni-circle-08"></i>
42 - <span class="nav-link-inner--text">Register</span>
43 - </router-link>
44 - </li>
45 - <li class="nav-item">

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

46 - <router-link class="nav-link nav-link-icon" to="/login">


47 - <i class="ni ni-key-25"></i>
48 - <span class="nav-link-inner--text">Login</span>
49 - </router-link>
50 - </li>
51 - <li class="nav-item">
52 - <router-link class="nav-link nav-link-icon" to="/profile">
53 - <i class="ni ni-single-02"></i>
54 - <span class="nav-link-inner--text">Profile</span>
55 - </router-link>
56 - </li>
57 - </ul>
58 - </template>
59 10 </base-nav>
11 +
60 12 <!-- Header -->
61 13 <div class="header bg-gradient-success py-7 py-lg-8">
62 14 <div class="container">
63 15 <div class="header-body text-center mb-7">
64 16 <div class="row justify-content-center">
65 17 <div class="col-lg-5 col-md-6">
66 - <h1 class="text-white">Welcome!</h1>
67 - <p class="text-lead text-white">Use these awesome forms to login or create new
account in
68 - your project for free.</p>
69 18 </div>
70 19 </div>
71 20 </div>
... ... @@ -77,6 +26,7 @@
77 26 </svg>
78 27 </div>
79 28 </div>
29 +
80 30 <!-- Page content -->
81 31 <div class="container mt--8 pb-5">
82 32 <slide-y-up-transition mode="out-in" origin="center top">
... ... @@ -86,30 +36,30 @@
86 36 <footer class="py-5">
87 37 <div class="container">
88 38 <div class="row align-items-center justify-content-xl-between">
89 - <div class="col-xl-6">
90 - <div class="copyright text-center text-xl-left text-muted">
91 - &copy; {{year}} <a href="https://www.creative-tim.com" class="font-weight-bold
ml-1"
92 - target="_blank">Creative Tim</a>
93 - </div>
94 - </div>
95 - <div class="col-xl-6">
96 - <ul class="nav nav-footer justify-content-center justify-content-xl-end">
97 - <li class="nav-item">
98 - <a href="https://www.creative-tim.com" class="nav-link"
target="_blank">Creative Tim</a>
99 - </li>
100 - <li class="nav-item">
101 - <a href="https://www.creative-tim.com/presentation" class="nav-link"
target="_blank">About
102 - Us</a>
103 - </li>
104 - <li class="nav-item">
105 - <a href="http://blog.creative-tim.com" class="nav-link"
target="_blank">Blog</a>
106 - </li>
107 - <li class="nav-item">
108 - <a href="https://github.com/creativetimofficial/argon-
dashboard/blob/master/LICENSE.md"
109 - class="nav-link" target="_blank">MIT License</a>
110 - </li>
111 - </ul>
112 - </div>
39 + <!-- <div class="col&#45;xl&#45;6"> -->
40 + <!-- <div class="copyright text&#45;center text&#45;xl&#45;left text&#45;muted"> --
>
41 + <!-- &#38;copy; {{year}} <a href="https://www.creative&#45;tim.com"
class="font&#45;weight&#45;bold ml&#45;1" -->
42 + <!-- target="_blank">Creative Tim</a> -->

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

43 + <!-- </div> -->


44 + <!-- </div> -->
45 + <!-- <div class="col&#45;xl&#45;6"> -->
46 + <!-- <ul class="nav nav&#45;footer justify&#45;content&#45;center
justify&#45;content&#45;xl&#45;end"> -->
47 + <!-- <li class="nav&#45;item"> -->
48 + <!-- <a href="https://www.creative&#45;tim.com" class="nav&#45;link"
target="_blank">Creative Tim</a> -->
49 + <!-- </li> -->
50 + <!-- <li class="nav&#45;item"> -->
51 + <!-- <a href="https://www.creative&#45;tim.com/presentation"
class="nav&#45;link" target="_blank">About -->
52 + <!-- Us</a> -->
53 + <!-- </li> -->
54 + <!-- <li class="nav&#45;item"> -->
55 + <!-- <a href="http://blog.creative&#45;tim.com" class="nav&#45;link"
target="_blank">Blog</a> -->
56 + <!-- </li> -->
57 + <!-- <li class="nav&#45;item"> -->
58 + <!-- <a
href="https://github.com/creativetimofficial/argon&#45;dashboard/blob/master/LICENSE.md" -->
59 + <!-- class="nav&#45;link" target="_blank">MIT License</a> -->
60 + <!-- </li> -->
61 + <!-- </ul> -->
62 + <!-- </div> -->
113 63 </div>
114 64 </div>
115 65 </footer>
... ...

  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>

Write a comment or drag your files here…

Markdown and quick actions are supported

https://gitlab.com/guille.agudelo/tto-atlantico-frontend/-/commit/2e3301dc8c7b249d02cd38d5a498c5b8ba9b634c 9/9

Das könnte Ihnen auch gefallen