From e006b7eb2e46a756aea180c87894986255909735 Mon Sep 17 00:00:00 2001 From: EstherManrique Date: Tue, 7 Apr 2020 17:31:42 -0500 Subject: [PATCH 01/66] Cambios Esther --- src/index.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/index.html b/src/index.html index bb6937cc..189d7f21 100644 --- a/src/index.html +++ b/src/index.html @@ -7,6 +7,8 @@ Document + +

Este es el cambio de Esther

\ No newline at end of file From 6d9b8aad6ae6337e2aef00ba7189dd2b64588fbe Mon Sep 17 00:00:00 2001 From: Dianyela Maldonado Date: Tue, 7 Apr 2020 17:31:43 -0500 Subject: [PATCH 02/66] guardando cambios dian --- package.json | 2 +- src/index.html | 14 +++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 9a365577..796f1d15 100644 --- a/package.json +++ b/package.json @@ -33,4 +33,4 @@ "stylelint": "^10.1.0", "stylelint-config-recommended": "^2.2.0" } -} \ No newline at end of file +} diff --git a/src/index.html b/src/index.html index bb6937cc..c1c7d804 100644 --- a/src/index.html +++ b/src/index.html @@ -1,12 +1,16 @@ + - - - - Document + + + + Document + - +

este es el cambio de dian

+ + \ No newline at end of file From f63b0aa971045158439e4820f7f9bc41decf6395 Mon Sep 17 00:00:00 2001 From: verobega Date: Tue, 7 Apr 2020 17:32:28 -0500 Subject: [PATCH 03/66] Cambios Vero --- src/index.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/index.html b/src/index.html index bb6937cc..269e1295 100644 --- a/src/index.html +++ b/src/index.html @@ -5,8 +5,11 @@ Document + + +

Hey! Babies Este es el cambio de Vero

\ No newline at end of file From ab9b8fc9248aa09a922bf9da93bb88021dee8ff8 Mon Sep 17 00:00:00 2001 From: Dianyela Maldonado Date: Wed, 8 Apr 2020 01:49:37 -0500 Subject: [PATCH 04/66] changes were made in index.html nav was added with the content of task 1 user story 1 i am working on the boilerplate part of image 5 profile, a form was also added where the personal comments part of the user, added folder style.css to work with the styles, also added folder images where I entered the images foto_perfil_circulo, logo little size, logo p3_ok --- src/imagenes/Logo P3_ok (1).png | Bin 0 -> 17200 bytes src/imagenes/foto_perfil_circulo.png | Bin 0 -> 439690 bytes src/imagenes/logo little size.png | Bin 0 -> 17408 bytes src/index.html | 63 +++++++- src/index.js | 9 +- src/style.css | 212 +++++++++++++++++++++++++++ 6 files changed, 280 insertions(+), 4 deletions(-) create mode 100644 src/imagenes/Logo P3_ok (1).png create mode 100644 src/imagenes/foto_perfil_circulo.png create mode 100644 src/imagenes/logo little size.png create mode 100644 src/style.css diff --git a/src/imagenes/Logo P3_ok (1).png b/src/imagenes/Logo P3_ok (1).png new file mode 100644 index 0000000000000000000000000000000000000000..7de7c4d61fde0e79b3cb389da3711c15c817094a GIT binary patch literal 17200 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 literal 0 HcmV?d00001 diff --git a/src/imagenes/foto_perfil_circulo.png b/src/imagenes/foto_perfil_circulo.png new file mode 100644 index 0000000000000000000000000000000000000000..d157ff4ab2e524d8e7fdb58288c1e798f23fe9bd GIT binary patch literal 439690 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

- -
@@ -181,10 +179,11 @@ more_vert
-
+ +

¿Cómo centrar texto en HTML?

-
+
- + - +
@@ -49,8 +49,8 @@ - - + +
@@ -63,9 +63,10 @@

Si no tienes una cuenta?
Ingresa con:

- Facebook - - Google + Facebook + + Google +
@@ -98,18 +99,18 @@
- +
@@ -174,7 +175,7 @@

Taco Perez

- more_vert + more_vert

¿Cómo centrar texto en HTML?

diff --git a/src/index.js b/src/index.js index b40bedbf..10a9f485 100644 --- a/src/index.js +++ b/src/index.js @@ -13,7 +13,6 @@ var firebaseConfig = { measurementId: "G-ZLRFD83MS0" }; - // document.addEventListener('DOMContentLoaded', function() { // var elems = document.querySelectorAll('.sidenav'); // var instances = M.Sidenav.init(elems); @@ -22,25 +21,26 @@ var firebaseConfig = { // Initialize Firebase firebase.initializeApp(firebaseConfig); + + +// En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el login var buttonLogin = document.querySelector('#doLogin'); console.log(buttonLogin) -buttonLogin.addEventListener('click', function() { - console.log("lo clickeastesss") +buttonLogin.addEventListener('click', function(e) { + e.preventDefault(); enviar(); }); - -var buttonReg = document.querySelector('#doRegister'); -buttonReg.addEventListener('click', function() { - registro(); -}); - +// En esta parte hago la funcion que va tener mi boton al hacer click +// en entar a la aplicación en esta parte la que me hace entrar a la app (login) function enviar() { var email = document.getElementById('email').value; var pass = document.getElementById('pass').value; // alert("email=" + email + " pass=" + pass); firebase.auth().signInWithEmailAndPassword(email, pass) - .then(data => console.log(data.user)) + .then((data) => { + alert('Bienvenido ' + data.user.email); + }) .catch(function(error) { console.log(error) // Handle Errors here. puedo hacer algo despues del login, si salio mal @@ -51,28 +51,135 @@ function enviar() { // renderLogin() }); + var cred = firebase.auth.EmailAuthProvider.credential( + email, + password + ); + } -function registro() { - var email = document.getElementById('email').value; - var pass = document.getElementById('pass').value; - // alert("email=" + email + " pass=" + pass); +// En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el ingreso con google +var buttonGoogle = document.querySelector('#loginGoogle'); +buttonGoogle.addEventListener('click', function(e) { + e.preventDefault(); + googleButton(); +}); - firebase.auth().createUserWithEmailAndPassword(email, pass) - .then((data) => { - console.log(data.user) - }) - .catch(function(error) { - console.log(error) - // Handle Errors here. puedo hacer algo despues del login, si salio mal - var errorCode = error.code; - var errorMessage = error.message; - alert(errorMessage); - // borrar o cambiar la pantalla - // renderLogin() - }); +// En esta parte hago la funcion que va tener mi boton al hacer click +// en entar a la aplicación en esta parte la que me hace entrar a la app con google (google) +function googleButton() { + // Aquí se crea una instancia del objeto del proveedor de Google y facebook + // esta instancia es para que me redireccione a google o de facebook, es la parte que me lleva a ellos. + var provider = new firebase.auth.GoogleAuthProvider(); + + firebase.auth().signInWithPopup(provider).then(function(result) { + // This gives you a Google Access Token. You can use it to access the Google API. + var token = result.credential.accessToken; + // The signed-in user info. + var user = result.user; + alert('Bienvenido ' + user.email); + // ... + }).catch(function(error) { + // Handle Errors here. + var errorCode = error.code; + var errorMessage = error.message; + // The email of the user's account used. + var email = error.email; + // The firebase.auth.AuthCredential type that was used. + var credential = error.credential; + // ... + }); } +// En esta parte creo una variable en donde voy a llamar a mi id al +// que quiero darle el click en este caso el ingreso con facebook +var buttonFacebook = document.querySelector('#loginFacebook'); +buttonFacebook.addEventListener('click', function(e) { + e.preventDefault(); + facebookButton(); +}); + +// En esta parte hago la funcion que va tener mi boton al hacer click +// en entar a la aplicación en esta parte la que me hace entrar a la app con facebook (facebook +function facebookButton() { + var provider = new firebase.auth.FacebookAuthProvider(); + firebase.auth().signInWithPopup(provider).then(function(result) { + // This gives you a Facebook Access Token. You can use it to access the Facebook API. + var token = result.credential.accessToken; + // The signed-in user info. + var user = result.user; + console.log(user); + alert('Bienvenido ' + user.email); + // ... + }).catch(function(error) { + // Handle Errors here. + var errorCode = error.code; + var errorMessage = error.message; + // The email of the user's account used. + var email = error.email; + // The firebase.auth.AuthCredential type that was used. + var credential = error.credential; + // ... + }); +} + +var buttonReg = document.querySelector('#doRegister'); +buttonReg.addEventListener('click', function(e) { + e.preventDefault(); + register(); +}); + + +function register() { + var registerNameLogin2 = document.getElementById('registerLoginName2').value; + var registerEmailLogin2 = document.getElementById('registerLoginEmail2').value; + var registerPassLogin2 = document.getElementById('registerLoginPass2').value; + var registerConfirmPassLogin2 = document.getElementById('registerLoginConfirmPass2').value; + + + if (registerPassLogin2 != registerConfirmPassLogin2) { + alert('Las contraseñas deben coincidir'); + } else { + + firebase.auth().createUserWithEmailAndPassword(registerEmailLogin2, registerPassLogin2) + .then((data) => { + alert('Bienvenido ' + data.user.email); + }) + .catch(function(error) { + // Handle Errors here. + var errorCode = error.code; + var errorMessage = error.message; + if (errorCode == 'auth/weak-password') { + alert('The password is too weak.'); + } else { + alert(errorMessage); + } + console.log(error); + }); + } +} + +var getOut = document.querySelector('#signOut'); +getOut.addEventListener('click', function(e) { + e.preventDefault(); + out(); +}); + + +function out() { + firebase.auth().signOut() + .then(function() { + alert('Good Bye'); + }).catch(function(error) { + console.log(error); + }); +} + + + + + + firebase.analytics(); \ No newline at end of file From 6565cc6d2e8260a196575df555a7fcdc3126cf8c Mon Sep 17 00:00:00 2001 From: Dianyela Maldonado Date: Thu, 16 Apr 2020 19:52:34 -0500 Subject: [PATCH 10/66] add files loginandexit.js register.js in to folder view, information was transferred hosted in the folder index.js. (Divisions for modules are ready) --- src/index.html | 29 ++----- src/index.js | 162 --------------------------------------- src/view/loginandexit.js | 118 ++++++++++++++++++++++++++++ src/view/register.js | 33 ++++++++ 4 files changed, 158 insertions(+), 184 deletions(-) create mode 100644 src/view/loginandexit.js create mode 100644 src/view/register.js diff --git a/src/index.html b/src/index.html index de108c6e..98a145ec 100644 --- a/src/index.html +++ b/src/index.html @@ -19,18 +19,9 @@ -

Una red social pensada para los que hacemos Desarrollo Web

@@ -77,14 +68,6 @@ @@ -121,7 +104,6 @@

Sé parte de nuestra comunidad y fortalece tus ideas y conocimientos.

-
@@ -135,7 +117,7 @@
  • Foro
  • Perfil
  • Editar perfil
  • -
  • Cerrar sesión
  • +
  • Cerrar sesión
  • @@ -145,7 +127,7 @@
  • Foro
  • Perfil
  • Editar perfil
  • -
  • Cerrar sesión
  • +
  • Cerrar sesión
  • @@ -214,7 +196,7 @@
  • Foro
  • Perfil
  • Editar perfil
  • -
  • Cerrar sesión
  • +
  • Cerrar sesión
  • @@ -224,7 +206,7 @@
  • Foro
  • Perfil
  • Editar perfil
  • -
  • Cerrar sesión
  • +
  • Cerrar sesión
  • @@ -257,7 +239,10 @@ + + + \ No newline at end of file diff --git a/src/index.js b/src/index.js index 10a9f485..f7f47c0f 100644 --- a/src/index.js +++ b/src/index.js @@ -20,166 +20,4 @@ var firebaseConfig = { // Initialize Firebase firebase.initializeApp(firebaseConfig); - - - -// En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el login -var buttonLogin = document.querySelector('#doLogin'); -console.log(buttonLogin) -buttonLogin.addEventListener('click', function(e) { - e.preventDefault(); - enviar(); -}); -// En esta parte hago la funcion que va tener mi boton al hacer click -// en entar a la aplicación en esta parte la que me hace entrar a la app (login) -function enviar() { - var email = document.getElementById('email').value; - var pass = document.getElementById('pass').value; - // alert("email=" + email + " pass=" + pass); - - firebase.auth().signInWithEmailAndPassword(email, pass) - .then((data) => { - alert('Bienvenido ' + data.user.email); - }) - .catch(function(error) { - console.log(error) - // Handle Errors here. puedo hacer algo despues del login, si salio mal - var errorCode = error.code; - var errorMessage = error.message; - alert(errorMessage); - // borrar o cambiar la pantalla - // renderLogin() - }); - - var cred = firebase.auth.EmailAuthProvider.credential( - email, - password - ); - -} - -// En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el ingreso con google -var buttonGoogle = document.querySelector('#loginGoogle'); -buttonGoogle.addEventListener('click', function(e) { - e.preventDefault(); - googleButton(); -}); - -// En esta parte hago la funcion que va tener mi boton al hacer click -// en entar a la aplicación en esta parte la que me hace entrar a la app con google (google) -function googleButton() { - // Aquí se crea una instancia del objeto del proveedor de Google y facebook - // esta instancia es para que me redireccione a google o de facebook, es la parte que me lleva a ellos. - var provider = new firebase.auth.GoogleAuthProvider(); - - firebase.auth().signInWithPopup(provider).then(function(result) { - // This gives you a Google Access Token. You can use it to access the Google API. - var token = result.credential.accessToken; - // The signed-in user info. - var user = result.user; - alert('Bienvenido ' + user.email); - // ... - }).catch(function(error) { - // Handle Errors here. - var errorCode = error.code; - var errorMessage = error.message; - // The email of the user's account used. - var email = error.email; - // The firebase.auth.AuthCredential type that was used. - var credential = error.credential; - // ... - }); - -} - - -// En esta parte creo una variable en donde voy a llamar a mi id al -// que quiero darle el click en este caso el ingreso con facebook -var buttonFacebook = document.querySelector('#loginFacebook'); -buttonFacebook.addEventListener('click', function(e) { - e.preventDefault(); - facebookButton(); -}); - -// En esta parte hago la funcion que va tener mi boton al hacer click -// en entar a la aplicación en esta parte la que me hace entrar a la app con facebook (facebook -function facebookButton() { - var provider = new firebase.auth.FacebookAuthProvider(); - firebase.auth().signInWithPopup(provider).then(function(result) { - // This gives you a Facebook Access Token. You can use it to access the Facebook API. - var token = result.credential.accessToken; - // The signed-in user info. - var user = result.user; - console.log(user); - alert('Bienvenido ' + user.email); - // ... - }).catch(function(error) { - // Handle Errors here. - var errorCode = error.code; - var errorMessage = error.message; - // The email of the user's account used. - var email = error.email; - // The firebase.auth.AuthCredential type that was used. - var credential = error.credential; - // ... - }); -} - -var buttonReg = document.querySelector('#doRegister'); -buttonReg.addEventListener('click', function(e) { - e.preventDefault(); - register(); -}); - - -function register() { - var registerNameLogin2 = document.getElementById('registerLoginName2').value; - var registerEmailLogin2 = document.getElementById('registerLoginEmail2').value; - var registerPassLogin2 = document.getElementById('registerLoginPass2').value; - var registerConfirmPassLogin2 = document.getElementById('registerLoginConfirmPass2').value; - - - if (registerPassLogin2 != registerConfirmPassLogin2) { - alert('Las contraseñas deben coincidir'); - } else { - - firebase.auth().createUserWithEmailAndPassword(registerEmailLogin2, registerPassLogin2) - .then((data) => { - alert('Bienvenido ' + data.user.email); - }) - .catch(function(error) { - // Handle Errors here. - var errorCode = error.code; - var errorMessage = error.message; - if (errorCode == 'auth/weak-password') { - alert('The password is too weak.'); - } else { - alert(errorMessage); - } - console.log(error); - }); - } -} - -var getOut = document.querySelector('#signOut'); -getOut.addEventListener('click', function(e) { - e.preventDefault(); - out(); -}); - - -function out() { - firebase.auth().signOut() - .then(function() { - alert('Good Bye'); - }).catch(function(error) { - console.log(error); - }); -} - - - - - - firebase.analytics(); \ No newline at end of file diff --git a/src/view/loginandexit.js b/src/view/loginandexit.js new file mode 100644 index 00000000..66c99928 --- /dev/null +++ b/src/view/loginandexit.js @@ -0,0 +1,118 @@ +// En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el login +var buttonLogin = document.querySelector('#doLogin'); +console.log(buttonLogin) +buttonLogin.addEventListener('click', function(e) { + e.preventDefault(); + loginPageOne(); +}); +// En esta parte hago la funcion que va tener mi boton al hacer click +// en entar a la aplicación en esta parte la que me hace entrar a la app (login) +function loginPageOne() { + var email = document.getElementById('email').value; + var pass = document.getElementById('pass').value; + // alert("email=" + email + " pass=" + pass); + + firebase.auth().signInWithEmailAndPassword(email, pass) + .then((data) => { + alert('Bienvenido ' + data.user.email); + }) + .catch(function(error) { + console.log(error) + // Handle Errors here. puedo hacer algo despues del login, si salio mal + var errorCode = error.code; + var errorMessage = error.message; + alert(errorMessage); + // borrar o cambiar la pantalla + // renderLogin() + }); + + var cred = firebase.auth.EmailAuthProvider.credential( + email, + password + ); +} + +// **************** L O G I N G O O G L E******* +// En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el ingreso con google +var buttonGoogle = document.querySelector('#loginGoogle'); +buttonGoogle.addEventListener('click', function(e) { + e.preventDefault(); + googleButton(); +}); + +// En esta parte hago la funcion que va tener mi boton al hacer click +// en entar a la aplicación en esta parte la que me hace entrar a la app con google (google) +function googleButton() { + // Aquí se crea una instancia del objeto del proveedor de Google y facebook + // esta instancia es para que me redireccione a google o de facebook, es la parte que me lleva a ellos. + var provider = new firebase.auth.GoogleAuthProvider(); + + firebase.auth().signInWithPopup(provider).then(function(result) { + // This gives you a Google Access Token. You can use it to access the Google API. + var token = result.credential.accessToken; + // The signed-in user info. + var user = result.user; + alert('Bienvenido ' + user.email); + // ... + }).catch(function(error) { + // Handle Errors here. + var errorCode = error.code; + var errorMessage = error.message; + // The email of the user's account used. + var email = error.email; + // The firebase.auth.AuthCredential type that was used. + var credential = error.credential; + // ... + }); +} + +// **************** L O G I N F A C E B O O K ******* + +// En esta parte creo una variable en donde voy a llamar a mi id al +// que quiero darle el click en este caso el ingreso con facebook +var buttonFacebook = document.querySelector('#loginFacebook'); +buttonFacebook.addEventListener('click', function(e) { + e.preventDefault(); + facebookButton(); +}); + +// En esta parte hago la funcion que va tener mi boton al hacer click +// en entar a la aplicación en esta parte la que me hace entrar a la app con facebook (facebook +function facebookButton() { + var provider = new firebase.auth.FacebookAuthProvider(); + firebase.auth().signInWithPopup(provider).then(function(result) { + // This gives you a Facebook Access Token. You can use it to access the Facebook API. + var token = result.credential.accessToken; + // The signed-in user info. + var user = result.user; + console.log(user); + alert('Bienvenido ' + user.email); + // ... + }).catch(function(error) { + // Handle Errors here. + var errorCode = error.code; + var errorMessage = error.message; + // The email of the user's account used. + var email = error.email; + // The firebase.auth.AuthCredential type that was used. + var credential = error.credential; + // ... + }); +} + +// ******** LOG OUT FUNCTION + +var getOut = document.querySelector('#signOut'); +getOut.addEventListener('click', function(e) { + e.preventDefault(); + out(); +}); + +function out() { + firebase.auth().signOut() + .then(function() { + alert('Good Bye'); + }).catch(function(error) { + console.log(error); + }); +} \ No newline at end of file diff --git a/src/view/register.js b/src/view/register.js new file mode 100644 index 00000000..d1abb818 --- /dev/null +++ b/src/view/register.js @@ -0,0 +1,33 @@ +function register() { + var registerNameLogin2 = document.getElementById('registerLoginName2').value; + var registerEmailLogin2 = document.getElementById('registerLoginEmail2').value; + var registerPassLogin2 = document.getElementById('registerLoginPass2').value; + var registerConfirmPassLogin2 = document.getElementById('registerLoginConfirmPass2').value; + + var buttonReg = document.querySelector('#doRegister'); + buttonReg.addEventListener('click', function(e) { + e.preventDefault(); + register(); + }); + + if (registerPassLogin2 != registerConfirmPassLogin2) { + alert('Las contraseñas deben coincidir'); + } else { + + firebase.auth().createUserWithEmailAndPassword(registerEmailLogin2, registerPassLogin2) + .then((data) => { + alert('Bienvenido ' + data.user.email); + }) + .catch(function(error) { + // Handle Errors here. + var errorCode = error.code; + var errorMessage = error.message; + if (errorCode == 'auth/weak-password') { + alert('The password is too weak.'); + } else { + alert(errorMessage); + } + console.log(error); + }); + } +} \ No newline at end of file From c09422a50e6c13a16ba7f8f46bbc07dbf3f88a70 Mon Sep 17 00:00:00 2001 From: Dianyela Maldonado Date: Sat, 18 Apr 2020 21:18:32 -0500 Subject: [PATCH 11/66] Add proof of concept unfinished --- src/digitalplatform/firebase.js | 14 ++ src/index.html | 226 +------------------- src/index.js | 356 ++++++++++++++++++++++++++++++-- src/view/loginandexit.js | 200 +++++++++--------- 4 files changed, 458 insertions(+), 338 deletions(-) create mode 100644 src/digitalplatform/firebase.js diff --git a/src/digitalplatform/firebase.js b/src/digitalplatform/firebase.js new file mode 100644 index 00000000..b69befe4 --- /dev/null +++ b/src/digitalplatform/firebase.js @@ -0,0 +1,14 @@ +// Your web app's Firebase configuration +var firebaseConfig = { + apiKey: "AIzaSyCkfImtzIXqG7KbK3b6Tu3MABA91hPqdFA", + authDomain: "social-network-pruebas.firebaseapp.com", + databaseURL: "https://social-network-pruebas.firebaseio.com", + projectId: "social-network-pruebas", + storageBucket: "social-network-pruebas.appspot.com", + messagingSenderId: "327573056555", + appId: "1:327573056555:web:38bda7ccadbd1fb70c0e6e", + measurementId: "G-ZLRFD83MS0" +}; +// Initialize Firebase +firebase.initializeApp(firebaseConfig); +firebase.analytics(); \ No newline at end of file diff --git a/src/index.html b/src/index.html index 98a145ec..a3517668 100644 --- a/src/index.html +++ b/src/index.html @@ -11,236 +11,18 @@ CodeDev - -
    - - -
    -
    -

    Una red social pensada para los que hacemos Desarrollo Web

    -
    - -
    - remove - stars - remove -
    - -
    - - - - -
    - -
    - -
    - -
    -

    Sé parte de nuestra comunidad y fortalece tus ideas y conocimientos.

    -
    - -
    -

    Si no tienes una cuenta?
    Ingresa con:

    - Facebook - - Google - -
    -
    - - - - - -
    -
    -

    Por favor llena los siguientes campos
    Obligatorio *

    -
    - -
    - remove - stars - remove -
    - -
    - - - - - -
    - -
    -

    Sé parte de nuestra comunidad y fortalece tus ideas y conocimientos.

    -
    -
    -
    - - - - - - - -
    -
    -
    - foto de perfil usuario -
    - -
    -
    Taco Lópezedit
    -
    Developer Sr. en Accenture
    -
    -
    -
    -
    -

    - -

    -
    - - -
    -
    -
    -
    - -
    - Contact Person -

    Taco Perez

    -
    - - more_vert -
    - -
    -

    ¿Cómo centrar texto en HTML?

    -
    -
    - -
    - - 2 -
    -
    -
    -
    -

    - -

    -
    - - -
    -
    - - - - - - -
    -

    Editar Perfil

    -
    - -
    - foto de perfil usuario -

    Cambiar foto

    -
    - -
    - - - - - -
    - +
    - - + + diff --git a/src/index.js b/src/index.js index f7f47c0f..acb67356 100644 --- a/src/index.js +++ b/src/index.js @@ -1,23 +1,345 @@ -/*import { example } from './example.js'; -example();*/ - -// Your web app's Firebase configuration -var firebaseConfig = { - apiKey: "AIzaSyCkfImtzIXqG7KbK3b6Tu3MABA91hPqdFA", - authDomain: "social-network-pruebas.firebaseapp.com", - databaseURL: "https://social-network-pruebas.firebaseio.com", - projectId: "social-network-pruebas", - storageBucket: "social-network-pruebas.appspot.com", - messagingSenderId: "327573056555", - appId: "1:327573056555:web:38bda7ccadbd1fb70c0e6e", - measurementId: "G-ZLRFD83MS0" -}; +// import { loginPageOne } from './view/loginandexit.js'; + + +document.addEventListener("DOMContentLoaded", function() { + viewLogin() + .then(function() { + // En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el login + var buttonLogin = document.querySelector('#doLogin'); + console.log(buttonLogin) + buttonLogin.addEventListener('click', function(e) { + e.preventDefault(); + loginPageOne(); + }); + + }) + .then(function() { + // En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el ingreso con google + var buttonGoogle = document.querySelector('#loginGoogle'); + buttonGoogle.addEventListener('click', function(e) { + e.preventDefault(); + googleButton(); + }); + }) + .then(function() { + // En esta parte creo una variable en donde voy a llamar a mi id al + // que quiero darle el click en este caso el ingreso con facebook + var buttonFacebook = document.querySelector('#loginFacebook'); + buttonFacebook.addEventListener('click', function(e) { + e.preventDefault(); + facebookButton(); + }); + }) + + +}) + + +// document.getElementById('root').innerHTML = ''; + +// Navegador en móvil // document.addEventListener('DOMContentLoaded', function() { // var elems = document.querySelectorAll('.sidenav'); // var instances = M.Sidenav.init(elems); // }); -// Initialize Firebase -firebase.initializeApp(firebaseConfig); -firebase.analytics(); \ No newline at end of file +function viewLogin() { + return new Promise(function(resolve, rejected) { + let homeView = ` +
    +
    + + +
    +
    +

    Una red social pensada para los que hacemos Desarrollo Web

    +
    + +
    + remove + stars + remove +
    + +
    + + + + +
    + +
    + +
    + +
    +

    Sé parte de nuestra comunidad y fortalece tus ideas y conocimientos.

    +
    + +
    +

    Si no tienes una cuenta?
    Ingresa con:

    + Facebook + + Google + +
    +
    +
    +
    + ` + root.innerHTML = homeView; + resolve(); + }) + +} + + +// En esta parte hago la funcion que va tener mi boton al hacer click +// en entar a la aplicación en esta parte la que me hace entrar a la app (login) +function loginPageOne() { + var email = document.getElementById('email').value; + var pass = document.getElementById('pass').value; + // alert("email=" + email + " pass=" + pass); + + firebase.auth().signInWithEmailAndPassword(email, pass) + .then((data) => { + // document.getElementById('root').innerHTML = ''; + viewForum(); + + }) + .catch(function(error) { + console.log(error) + // Handle Errors here. puedo hacer algo despues del login, si salio mal + var errorCode = error.code; + var errorMessage = error.message; + alert(errorMessage); + // borrar o cambiar la pantalla + // renderLogin() + }); + + var cred = firebase.auth.EmailAuthProvider.credential( + email, + password + ); +} + +// **************** L O G I N G O O G L E******* + + +// En esta parte hago la funcion que va tener mi boton al hacer click +// en entar a la aplicación en esta parte la que me hace entrar a la app con google (google) +function googleButton() { + // Aquí se crea una instancia del objeto del proveedor de Google y facebook + // esta instancia es para que me redireccione a google o de facebook, es la parte que me lleva a ellos. + var provider = new firebase.auth.GoogleAuthProvider(); + + firebase.auth().signInWithPopup(provider).then(function(result) { + // This gives you a Google Access Token. You can use it to access the Google API. + var token = result.credential.accessToken; + // The signed-in user info. + var user = result.user; + alert('Bienvenido ' + user.email); + // ... + }).catch(function(error) { + // Handle Errors here. + var errorCode = error.code; + var errorMessage = error.message; + // The email of the user's account used. + var email = error.email; + // The firebase.auth.AuthCredential type that was used. + var credential = error.credential; + // ... + }); +} + +// **************** L O G I N F A C E B O O K ******* + + + +// En esta parte hago la funcion que va tener mi boton al hacer click +// en entar a la aplicación en esta parte la que me hace entrar a la app con facebook (facebook +function facebookButton() { + var provider = new firebase.auth.FacebookAuthProvider(); + firebase.auth().signInWithPopup(provider).then(function(result) { + // This gives you a Facebook Access Token. You can use it to access the Facebook API. + var token = result.credential.accessToken; + // The signed-in user info. + var user = result.user; + console.log(user); + alert('Bienvenido ' + user.email); + // ... + }).catch(function(error) { + // Handle Errors here. + var errorCode = error.code; + var errorMessage = error.message; + // The email of the user's account used. + var email = error.email; + // The firebase.auth.AuthCredential type that was used. + var credential = error.credential; + // ... + }); +} + +// ******** LOG OUT FUNCTION + +// var getOut = document.querySelector('#signOut'); +// getOut.addEventListener('click', function(e) { +// e.preventDefault(); +// out(); +// }); + +// function out() { +// firebase.auth().signOut() +// .then(function() { +// alert('Good Bye'); +// }).catch(function(error) { +// console.log(error); +// }); +// } + +function viewRegister() { + return new Promise(function(resolve, rejected) { + let registerView = ` + +
    + + +
    +
    +

    Por favor llena los siguientes campos
    Obligatorio *

    +
    + +
    + remove + stars + remove +
    + +
    + + + + + +
    + +
    +

    Sé parte de nuestra comunidad y fortalece tus ideas y conocimientos.

    +
    +
    +
    + ` + root.innerHTML = registerView; + resolve(); + }); +} + +function viewForum() { + return new Promise(function(resolve, rejected) { + let forumView = ` +
    + + + + +
    +
    +
    + foto de perfil usuario +
    + +
    +
    Taco Lópezedit
    +
    Developer Sr. en Accenture
    +
    +
    +
    +
    +

    + +

    +
    + + +
    +
    +
    +
    + +
    + Contact Person +

    Taco Perez

    +
    + + more_vert +
    + +
    +

    ¿Cómo centrar texto en HTML?

    +
    +
    + +
    + + 2 +
    +
    +
    +
    +

    + +

    +
    + + +
    +
    +
    ` + root.innerHTML = forumView; + resolve(); + }); +} \ No newline at end of file diff --git a/src/view/loginandexit.js b/src/view/loginandexit.js index 66c99928..3f7e4884 100644 --- a/src/view/loginandexit.js +++ b/src/view/loginandexit.js @@ -1,118 +1,120 @@ // En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el login -var buttonLogin = document.querySelector('#doLogin'); -console.log(buttonLogin) -buttonLogin.addEventListener('click', function(e) { - e.preventDefault(); - loginPageOne(); -}); +// var buttonLogin = document.querySelector('#doLogin'); +// console.log(buttonLogin) +// buttonLogin.addEventListener('click', function(e) { +// e.preventDefault(); +// loginPageOne(); +// }); // En esta parte hago la funcion que va tener mi boton al hacer click // en entar a la aplicación en esta parte la que me hace entrar a la app (login) -function loginPageOne() { - var email = document.getElementById('email').value; - var pass = document.getElementById('pass').value; - // alert("email=" + email + " pass=" + pass); +// function loginPageOne() { +// var email = document.getElementById('email').value; +// var pass = document.getElementById('pass').value; +// alert("email=" + email + " pass=" + pass); - firebase.auth().signInWithEmailAndPassword(email, pass) - .then((data) => { - alert('Bienvenido ' + data.user.email); - }) - .catch(function(error) { - console.log(error) - // Handle Errors here. puedo hacer algo despues del login, si salio mal - var errorCode = error.code; - var errorMessage = error.message; - alert(errorMessage); - // borrar o cambiar la pantalla - // renderLogin() - }); +// firebase.auth().signInWithEmailAndPassword(email, pass) +// .then((data) => { +// alert('Bienvenido ' + data.user.email); +// }) +// .catch(function(error) { +// console.log(error) +// Handle Errors here. puedo hacer algo despues del login, si salio mal +// var errorCode = error.code; +// var errorMessage = error.message; +// alert(errorMessage); +// borrar o cambiar la pantalla +// renderLogin() +// }); - var cred = firebase.auth.EmailAuthProvider.credential( - email, - password - ); -} +// var cred = firebase.auth.EmailAuthProvider.credential( +// email, +// password +// ); +// } // **************** L O G I N G O O G L E******* // En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el ingreso con google -var buttonGoogle = document.querySelector('#loginGoogle'); -buttonGoogle.addEventListener('click', function(e) { - e.preventDefault(); - googleButton(); -}); +// var buttonGoogle = document.querySelector('#loginGoogle'); +// buttonGoogle.addEventListener('click', function(e) { +// e.preventDefault(); +// googleButton(); +// }); // En esta parte hago la funcion que va tener mi boton al hacer click // en entar a la aplicación en esta parte la que me hace entrar a la app con google (google) -function googleButton() { - // Aquí se crea una instancia del objeto del proveedor de Google y facebook - // esta instancia es para que me redireccione a google o de facebook, es la parte que me lleva a ellos. - var provider = new firebase.auth.GoogleAuthProvider(); +// function googleButton() { +// Aquí se crea una instancia del objeto del proveedor de Google y facebook +// esta instancia es para que me redireccione a google o de facebook, es la parte que me lleva a ellos. +// var provider = new firebase.auth.GoogleAuthProvider(); - firebase.auth().signInWithPopup(provider).then(function(result) { - // This gives you a Google Access Token. You can use it to access the Google API. - var token = result.credential.accessToken; - // The signed-in user info. - var user = result.user; - alert('Bienvenido ' + user.email); - // ... - }).catch(function(error) { - // Handle Errors here. - var errorCode = error.code; - var errorMessage = error.message; - // The email of the user's account used. - var email = error.email; - // The firebase.auth.AuthCredential type that was used. - var credential = error.credential; - // ... - }); -} +// firebase.auth().signInWithPopup(provider).then(function(result) { +// // This gives you a Google Access Token. You can use it to access the Google API. +// var token = result.credential.accessToken; +// // The signed-in user info. +// var user = result.user; +// alert('Bienvenido ' + user.email); +// // ... +// }).catch(function(error) { +// // Handle Errors here. +// var errorCode = error.code; +// var errorMessage = error.message; +// // The email of the user's account used. +// var email = error.email; +// // The firebase.auth.AuthCredential type that was used. +// var credential = error.credential; +// // ... +// }); +// } // **************** L O G I N F A C E B O O K ******* -// En esta parte creo una variable en donde voy a llamar a mi id al -// que quiero darle el click en este caso el ingreso con facebook -var buttonFacebook = document.querySelector('#loginFacebook'); -buttonFacebook.addEventListener('click', function(e) { - e.preventDefault(); - facebookButton(); -}); +// // En esta parte creo una variable en donde voy a llamar a mi id al +// // que quiero darle el click en este caso el ingreso con facebook +// var buttonFacebook = document.querySelector('#loginFacebook'); +// buttonFacebook.addEventListener('click', function(e) { +// e.preventDefault(); +// facebookButton(); +// }); -// En esta parte hago la funcion que va tener mi boton al hacer click -// en entar a la aplicación en esta parte la que me hace entrar a la app con facebook (facebook -function facebookButton() { - var provider = new firebase.auth.FacebookAuthProvider(); - firebase.auth().signInWithPopup(provider).then(function(result) { - // This gives you a Facebook Access Token. You can use it to access the Facebook API. - var token = result.credential.accessToken; - // The signed-in user info. - var user = result.user; - console.log(user); - alert('Bienvenido ' + user.email); - // ... - }).catch(function(error) { - // Handle Errors here. - var errorCode = error.code; - var errorMessage = error.message; - // The email of the user's account used. - var email = error.email; - // The firebase.auth.AuthCredential type that was used. - var credential = error.credential; - // ... - }); -} +// // En esta parte hago la funcion que va tener mi boton al hacer click +// // en entar a la aplicación en esta parte la que me hace entrar a la app con facebook (facebook +// function facebookButton() { +// var provider = new firebase.auth.FacebookAuthProvider(); +// firebase.auth().signInWithPopup(provider).then(function(result) { +// // This gives you a Facebook Access Token. You can use it to access the Facebook API. +// var token = result.credential.accessToken; +// // The signed-in user info. +// var user = result.user; +// console.log(user); +// alert('Bienvenido ' + user.email); +// // ... +// }).catch(function(error) { +// // Handle Errors here. +// var errorCode = error.code; +// var errorMessage = error.message; +// // The email of the user's account used. +// var email = error.email; +// // The firebase.auth.AuthCredential type that was used. +// var credential = error.credential; +// // ... +// }); +// } + +// // ******** LOG OUT FUNCTION -// ******** LOG OUT FUNCTION +// var getOut = document.querySelector('#signOut'); +// getOut.addEventListener('click', function(e) { +// e.preventDefault(); +// out(); +// }); -var getOut = document.querySelector('#signOut'); -getOut.addEventListener('click', function(e) { - e.preventDefault(); - out(); -}); +// function out() { +// firebase.auth().signOut() +// .then(function() { +// alert('Good Bye'); +// }).catch(function(error) { +// console.log(error); +// }); +// } -function out() { - firebase.auth().signOut() - .then(function() { - alert('Good Bye'); - }).catch(function(error) { - console.log(error); - }); -} \ No newline at end of file +// export { buttonLogin, loginPageOne, googleButton, buttonGoogle, buttonFacebook, facebookButton, getOut, out } \ No newline at end of file From 1362a03335de0f4da2c97d09e61a11d1dc50948a Mon Sep 17 00:00:00 2001 From: Dianyela Maldonado Date: Sun, 19 Apr 2020 21:14:13 -0500 Subject: [PATCH 12/66] add more trials about SPA --- src/index.html | 1 + src/index.js | 120 +++++++++++++++++++++++++++++++++++++++---- src/view/register.js | 60 +++++++++++----------- 3 files changed, 141 insertions(+), 40 deletions(-) diff --git a/src/index.html b/src/index.html index a3517668..ea5f2d22 100644 --- a/src/index.html +++ b/src/index.html @@ -14,6 +14,7 @@ +
    diff --git a/src/index.js b/src/index.js index acb67356..c60909d2 100644 --- a/src/index.js +++ b/src/index.js @@ -6,7 +6,6 @@ document.addEventListener("DOMContentLoaded", function() { .then(function() { // En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el login var buttonLogin = document.querySelector('#doLogin'); - console.log(buttonLogin) buttonLogin.addEventListener('click', function(e) { e.preventDefault(); loginPageOne(); @@ -30,12 +29,28 @@ document.addEventListener("DOMContentLoaded", function() { facebookButton(); }); }) + .then(function() { + var ntAccount = document.getElementById('reg'); + ntAccount.addEventListener('click', function(e) { + e.preventDefault(); + viewRegister() + .then(function() { + var buttonReg = document.querySelector('#doRegister'); + buttonReg.addEventListener('click', function(e) { + e.preventDefault(); + register(); + }); + }) + + }); + }) + }) -// document.getElementById('root').innerHTML = ''; +// por si quiero limpiar root: document.getElementById('root').innerHTML = ''; // Navegador en móvil @@ -80,7 +95,7 @@ function viewLogin() {
    - +
    @@ -110,17 +125,14 @@ function viewLogin() { function loginPageOne() { var email = document.getElementById('email').value; var pass = document.getElementById('pass').value; - // alert("email=" + email + " pass=" + pass); - firebase.auth().signInWithEmailAndPassword(email, pass) .then((data) => { - // document.getElementById('root').innerHTML = ''; viewForum(); }) .catch(function(error) { - console.log(error) - // Handle Errors here. puedo hacer algo despues del login, si salio mal + alert('Los datos ingresados no son correctos'); + // Handle Errors here. puedo hacer algo despues del login, si salio mal var errorCode = error.code; var errorMessage = error.message; alert(errorMessage); @@ -208,6 +220,38 @@ function facebookButton() { // }); // } + + + +function register() { + var registerNameLogin2 = document.getElementById('registerLoginName2').value; + var registerEmailLogin2 = document.getElementById('registerLoginEmail2').value; + var registerPassLogin2 = document.getElementById('registerLoginPass2').value; + var registerConfirmPassLogin2 = document.getElementById('registerLoginConfirmPass2').value; + + + if (registerPassLogin2 != registerConfirmPassLogin2) { + alert('Las contraseñas deben coincidir'); + } else { + + firebase.auth().createUserWithEmailAndPassword(registerEmailLogin2, registerPassLogin2) + .then((data) => { + // alert('Bienvenido ' + data.user.email); + viewForum(); + }) + .catch(function(error) { + // Handle Errors here. + var errorCode = error.code; + var errorMessage = error.message; + if (errorCode == 'auth/weak-password') { + alert('The password is too weak.'); + } else { + alert(errorMessage); + } + }); + } +} + function viewRegister() { return new Promise(function(resolve, rejected) { let registerView = ` @@ -271,7 +315,7 @@ function viewForum() {
  • Foro
  • Perfil
  • Editar perfil
  • -
  • Cerrar sesión
  • +
  • Cerrar sesión
  • @@ -280,7 +324,7 @@ function viewForum() {
  • Foro
  • Perfil
  • Editar perfil
  • -
  • Cerrar sesión
  • +
  • Cerrar sesión
  • @@ -342,4 +386,60 @@ function viewForum() { root.innerHTML = forumView; resolve(); }); +} + +function EditionOfProfile() { + return new Promise(function(resolve, rejected) { + let editProfileVieView = ` + +
    + + + + +
    +

    Editar Perfil

    +
    + +
    + foto de perfil usuario +

    Cambiar foto

    +
    + +
    + + + + + +
    +
    + ` + root.innerHTML = editProfileVieView; + resolve(); + }); } \ No newline at end of file diff --git a/src/view/register.js b/src/view/register.js index d1abb818..39dc5eb8 100644 --- a/src/view/register.js +++ b/src/view/register.js @@ -1,33 +1,33 @@ -function register() { - var registerNameLogin2 = document.getElementById('registerLoginName2').value; - var registerEmailLogin2 = document.getElementById('registerLoginEmail2').value; - var registerPassLogin2 = document.getElementById('registerLoginPass2').value; - var registerConfirmPassLogin2 = document.getElementById('registerLoginConfirmPass2').value; +// function register() { +// var registerNameLogin2 = document.getElementById('registerLoginName2').value; +// var registerEmailLogin2 = document.getElementById('registerLoginEmail2').value; +// var registerPassLogin2 = document.getElementById('registerLoginPass2').value; +// var registerConfirmPassLogin2 = document.getElementById('registerLoginConfirmPass2').value; - var buttonReg = document.querySelector('#doRegister'); - buttonReg.addEventListener('click', function(e) { - e.preventDefault(); - register(); - }); +// var buttonReg = document.querySelector('#doRegister'); +// buttonReg.addEventListener('click', function(e) { +// e.preventDefault(); +// register(); +// }); - if (registerPassLogin2 != registerConfirmPassLogin2) { - alert('Las contraseñas deben coincidir'); - } else { +// if (registerPassLogin2 != registerConfirmPassLogin2) { +// alert('Las contraseñas deben coincidir'); +// } else { - firebase.auth().createUserWithEmailAndPassword(registerEmailLogin2, registerPassLogin2) - .then((data) => { - alert('Bienvenido ' + data.user.email); - }) - .catch(function(error) { - // Handle Errors here. - var errorCode = error.code; - var errorMessage = error.message; - if (errorCode == 'auth/weak-password') { - alert('The password is too weak.'); - } else { - alert(errorMessage); - } - console.log(error); - }); - } -} \ No newline at end of file +// firebase.auth().createUserWithEmailAndPassword(registerEmailLogin2, registerPassLogin2) +// .then((data) => { +// alert('Bienvenido ' + data.user.email); +// }) +// .catch(function(error) { +// // Handle Errors here. +// var errorCode = error.code; +// var errorMessage = error.message; +// if (errorCode == 'auth/weak-password') { +// alert('The password is too weak.'); +// } else { +// alert(errorMessage); +// } +// console.log(error); +// }); +// } +// } \ No newline at end of file From f820e447a19116433adc80352ad9457bd6f427df Mon Sep 17 00:00:00 2001 From: Dianyela Maldonado Date: Mon, 20 Apr 2020 20:47:12 -0500 Subject: [PATCH 13/66] More changes about spa. All ok --- src/index.html | 20 ++++ src/index.js | 249 ++++++++++++++++++++++++++------------- src/view/loginandexit.js | 101 ++++++++-------- 3 files changed, 240 insertions(+), 130 deletions(-) diff --git a/src/index.html b/src/index.html index ea5f2d22..a291edad 100644 --- a/src/index.html +++ b/src/index.html @@ -14,8 +14,28 @@ + + +
    + diff --git a/src/index.js b/src/index.js index c60909d2..d4f9e4f9 100644 --- a/src/index.js +++ b/src/index.js @@ -44,8 +44,29 @@ document.addEventListener("DOMContentLoaded", function() { }); }) - - + .then(function() { + var viewRedirectionForum = document.getElementById('/Foro'); + viewRedirectionForum.addEventListener('click', function(e) { + e.preventDefault(); + viewForum(); + window.history.pushState('Foro', 'Foro', '/Foro') + }); + }).then(function() { + var viewRedirectionProfile = document.getElementById('/Perfil'); + viewRedirectionProfile.addEventListener('click', function(e) { + e.preventDefault(); + viewProfile(); + window.history.pushState('perfil', 'Perfil', '/Perfil'); + }); + }) + .then(function() { + var viewRedirectionEditProfile = document.getElementById('/editarPerfil'); + viewRedirectionEditProfile.addEventListener('click', function(e) { + e.preventDefault(); + editionOfProfile(); + window.history.pushState('Editar Perfil', 'Editar Perfil', '/editarPerfil'); + }); + }) }) @@ -54,22 +75,22 @@ document.addEventListener("DOMContentLoaded", function() { // Navegador en móvil -// document.addEventListener('DOMContentLoaded', function() { -// var elems = document.querySelectorAll('.sidenav'); -// var instances = M.Sidenav.init(elems); -// }); +document.addEventListener('DOMContentLoaded', function() { + var elems = document.querySelectorAll('.sidenav'); + var instances = M.Sidenav.init(elems); +}); + +// let currentRoute = "/" +// let navegationsButtons = document.querySelectorAll('.colorMenu'); + +// navegationsButtons.forEach(colorMenu => colorMenu.onclick = e => router(e.target.id)) + function viewLogin() { return new Promise(function(resolve, rejected) { let homeView = `
    - -

    Una red social pensada para los que hacemos Desarrollo Web

    @@ -161,7 +182,9 @@ function googleButton() { var token = result.credential.accessToken; // The signed-in user info. var user = result.user; - alert('Bienvenido ' + user.email); + viewForum(); + + // ... }).catch(function(error) { // Handle Errors here. @@ -180,7 +203,7 @@ function googleButton() { // En esta parte hago la funcion que va tener mi boton al hacer click -// en entar a la aplicación en esta parte la que me hace entrar a la app con facebook (facebook +// en entar a la aplicación en esta parte la que me hace entrar a la app con facebook (facebook) function facebookButton() { var provider = new firebase.auth.FacebookAuthProvider(); firebase.auth().signInWithPopup(provider).then(function(result) { @@ -188,8 +211,8 @@ function facebookButton() { var token = result.credential.accessToken; // The signed-in user info. var user = result.user; - console.log(user); - alert('Bienvenido ' + user.email); + alert('bienvenido'); + // ... }).catch(function(error) { // Handle Errors here. @@ -199,29 +222,26 @@ function facebookButton() { var email = error.email; // The firebase.auth.AuthCredential type that was used. var credential = error.credential; - // ... }); } // ******** LOG OUT FUNCTION -// var getOut = document.querySelector('#signOut'); -// getOut.addEventListener('click', function(e) { -// e.preventDefault(); -// out(); -// }); - -// function out() { -// firebase.auth().signOut() -// .then(function() { -// alert('Good Bye'); -// }).catch(function(error) { -// console.log(error); -// }); -// } - - +var getOut = document.querySelector('#signOut'); +getOut.addEventListener('click', function(e) { + e.preventDefault(); + out(); +}); +function out() { + firebase.auth().signOut() + .then(function() { + viewLogin(); + }) + .catch(function(error) { + console.log(error); + }); +} function register() { var registerNameLogin2 = document.getElementById('registerLoginName2').value; @@ -257,12 +277,7 @@ function viewRegister() { let registerView = `
    - - +

    Por favor llena los siguientes campos
    Obligatorio *

    @@ -307,27 +322,9 @@ function viewForum() { return new Promise(function(resolve, rejected) { let forumView = `
    - - - + -
    +
    foto de perfil usuario @@ -382,37 +379,50 @@ function viewForum() {
    +
    + +
    + Contact Person +

    Taco Perez

    +
    + + more_vert +
    + +
    +

    ¿Comunidad, cómo le hago para enrutar con Javascript?

    +
    +
    + +
    + + 2 +
    +
    +
    +
    +

    + +

    +
    + + +
    +
    ` root.innerHTML = forumView; resolve(); }); } -function EditionOfProfile() { +function editionOfProfile() { return new Promise(function(resolve, rejected) { let editProfileVieView = `
    - - - -

    Editar Perfil

    @@ -442,4 +452,83 @@ function EditionOfProfile() { root.innerHTML = editProfileVieView; resolve(); }); +} + + + +function viewProfile() { + return new Promise(function(resolve, rejected) { + let profileView = ` + +
    +
    +
    +
    + foto de perfil usuario +
    + +
    +
    Taco Lópezedit
    +
    Developer Sr. en Accenture
    +
    +
    +
    +
    +

    + +

    +
    + + +
    +
    +
    +
    + +
    + Contact Person +

    Taco Perez

    +
    + + more_vert +
    + +
    +

    ¿Cómo centrar texto en HTML?

    +
    +
    + +
    + + 2 +
    +
    +
    +
    +

    + +

    +
    + + +
    +
    +
    + ` + root.innerHTML = profileView; + resolve(); + }) + +} + +function hideAndShow(hide) { + document.getElementById(hide).style.display = 'none'; + +} + +function show(show) { + document.getElementById(show).style.display = 'block'; } \ No newline at end of file diff --git a/src/view/loginandexit.js b/src/view/loginandexit.js index 3f7e4884..1efc417c 100644 --- a/src/view/loginandexit.js +++ b/src/view/loginandexit.js @@ -1,38 +1,39 @@ -// En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el login -// var buttonLogin = document.querySelector('#doLogin'); -// console.log(buttonLogin) -// buttonLogin.addEventListener('click', function(e) { -// e.preventDefault(); -// loginPageOne(); -// }); -// En esta parte hago la funcion que va tener mi boton al hacer click -// en entar a la aplicación en esta parte la que me hace entrar a la app (login) +// // En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el login +// // var buttonLogin = document.querySelector('#doLogin'); +// // console.log(buttonLogin) +// // buttonLogin.addEventListener('click', function(e) { +// // e.preventDefault(); +// // loginPageOne(); +// // }); +// // En esta parte hago la funcion que va tener mi boton al hacer click +// // en entar a la aplicación en esta parte la que me hace entrar a la app (login) // function loginPageOne() { // var email = document.getElementById('email').value; // var pass = document.getElementById('pass').value; -// alert("email=" + email + " pass=" + pass); +// alert("email=" + email + " pass=" + pass); -// firebase.auth().signInWithEmailAndPassword(email, pass) -// .then((data) => { -// alert('Bienvenido ' + data.user.email); -// }) -// .catch(function(error) { -// console.log(error) -// Handle Errors here. puedo hacer algo despues del login, si salio mal -// var errorCode = error.code; -// var errorMessage = error.message; -// alert(errorMessage); -// borrar o cambiar la pantalla -// renderLogin() -// }); +// firebase.auth().signInWithEmailAndPassword(email, pass)D: -// var cred = firebase.auth.EmailAuthProvider.credential( -// email, -// password +// .then((data) => { +// alert('Bienvenido ' + data.user.email); +// }) +// .catch(function(error) { +// console.log(error) +// // Handle Errors here. puedo hacer algo despues del login, si salio mal +// var errorCode = error.code; +// var errorMessage = error.message; +// alert(errorMessage); +// // borrar o cambiar la pantalla +// renderLogin() +// }); + +// var cred = firebase.auth.EmailAuthProvider.credential( +// email, +// password // ); // } -// **************** L O G I N G O O G L E******* +// // **************** L O G I N G O O G L E******* // En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el ingreso con google // var buttonGoogle = document.querySelector('#loginGoogle'); // buttonGoogle.addEventListener('click', function(e) { @@ -40,20 +41,20 @@ // googleButton(); // }); -// En esta parte hago la funcion que va tener mi boton al hacer click -// en entar a la aplicación en esta parte la que me hace entrar a la app con google (google) +// // En esta parte hago la funcion que va tener mi boton al hacer click +// // en entar a la aplicación en esta parte la que me hace entrar a la app con google (google) // function googleButton() { -// Aquí se crea una instancia del objeto del proveedor de Google y facebook -// esta instancia es para que me redireccione a google o de facebook, es la parte que me lleva a ellos. -// var provider = new firebase.auth.GoogleAuthProvider(); +// // Aquí se crea una instancia del objeto del proveedor de Google y facebook +// // esta instancia es para que me redireccione a google o de facebook, es la parte que me lleva a ellos. +// var provider = new firebase.auth.GoogleAuthProvider(); -// firebase.auth().signInWithPopup(provider).then(function(result) { -// // This gives you a Google Access Token. You can use it to access the Google API. -// var token = result.credential.accessToken; -// // The signed-in user info. -// var user = result.user; -// alert('Bienvenido ' + user.email); -// // ... +// firebase.auth().signInWithPopup(provider).then(function(result) { +// // This gives you a Google Access Token. You can use it to access the Google API. +// var token = result.credential.accessToken; +// // The signed-in user info. +// var user = result.user; +// alert('Bienvenido ' + user.email); +// // ... // }).catch(function(error) { // // Handle Errors here. // var errorCode = error.code; @@ -66,18 +67,18 @@ // }); // } -// **************** L O G I N F A C E B O O K ******* +// // **************** L O G I N F A C E B O O K ******* -// // En esta parte creo una variable en donde voy a llamar a mi id al -// // que quiero darle el click en este caso el ingreso con facebook -// var buttonFacebook = document.querySelector('#loginFacebook'); -// buttonFacebook.addEventListener('click', function(e) { -// e.preventDefault(); -// facebookButton(); -// }); +// // // En esta parte creo una variable en donde voy a llamar a mi id al +// // // que quiero darle el click en este caso el ingreso con facebook +// // var buttonFacebook = document.querySelector('#loginFacebook'); +// // buttonFacebook.addEventListener('click', function(e) { +// // e.preventDefault(); +// // facebookButton(); +// // }); -// // En esta parte hago la funcion que va tener mi boton al hacer click -// // en entar a la aplicación en esta parte la que me hace entrar a la app con facebook (facebook +// // // En esta parte hago la funcion que va tener mi boton al hacer click +// // // en entar a la aplicación en esta parte la que me hace entrar a la app con facebook (facebook // function facebookButton() { // var provider = new firebase.auth.FacebookAuthProvider(); // firebase.auth().signInWithPopup(provider).then(function(result) { @@ -100,7 +101,7 @@ // }); // } -// // ******** LOG OUT FUNCTION +// // // ******** LOG OUT FUNCTION // var getOut = document.querySelector('#signOut'); // getOut.addEventListener('click', function(e) { From 5ba2f14c72ad34b1724061eea0732e3f1e62d058 Mon Sep 17 00:00:00 2001 From: Dianyela Maldonado Date: Tue, 21 Apr 2020 13:22:29 -0500 Subject: [PATCH 14/66] changes were added in index.html index.js and style.css, the mobile navigation bar and desktop already work, all that remains is to hide the burger --- src/index.html | 18 +++---- src/index.js | 134 +++++++++++++++++++++---------------------------- src/style.css | 74 ++++++++++++++------------- 3 files changed, 105 insertions(+), 121 deletions(-) diff --git a/src/index.html b/src/index.html index a291edad..70b5acfc 100644 --- a/src/index.html +++ b/src/index.html @@ -14,24 +14,24 @@ -
    -

    Si no tienes una cuenta?
    Ingresa con:

    +

    ¿Si no tienes una cuenta?
    Ingresa con:

    Facebook Google @@ -140,16 +153,15 @@ function viewLogin() { } - // En esta parte hago la funcion que va tener mi boton al hacer click -// en entar a la aplicación en esta parte la que me hace entrar a la app (login) +// en entar a la aplicación en esta parte la que me hace entrar a la app (login) function loginPageOne() { var email = document.getElementById('email').value; var pass = document.getElementById('pass').value; firebase.auth().signInWithEmailAndPassword(email, pass) .then((data) => { viewForum(); - + document.getElementById('hideAndShow').style.display = 'block'; }) .catch(function(error) { alert('Los datos ingresados no son correctos'); @@ -160,16 +172,10 @@ function loginPageOne() { // borrar o cambiar la pantalla // renderLogin() }); - - var cred = firebase.auth.EmailAuthProvider.credential( - email, - password - ); + var cred = firebase.auth.EmailAuthProvider.credential(email, pass); } // **************** L O G I N G O O G L E******* - - // En esta parte hago la funcion que va tener mi boton al hacer click // en entar a la aplicación en esta parte la que me hace entrar a la app con google (google) function googleButton() { @@ -183,8 +189,7 @@ function googleButton() { // The signed-in user info. var user = result.user; viewForum(); - - + document.getElementById('hideAndShow').style.display = 'block'; // ... }).catch(function(error) { // Handle Errors here. @@ -200,43 +205,34 @@ function googleButton() { // **************** L O G I N F A C E B O O K ******* - - // En esta parte hago la funcion que va tener mi boton al hacer click // en entar a la aplicación en esta parte la que me hace entrar a la app con facebook (facebook) function facebookButton() { var provider = new firebase.auth.FacebookAuthProvider(); - firebase.auth().signInWithPopup(provider).then(function(result) { - // This gives you a Facebook Access Token. You can use it to access the Facebook API. - var token = result.credential.accessToken; - // The signed-in user info. - var user = result.user; - alert('bienvenido'); - - // ... - }).catch(function(error) { - // Handle Errors here. - var errorCode = error.code; - var errorMessage = error.message; - // The email of the user's account used. - var email = error.email; - // The firebase.auth.AuthCredential type that was used. - var credential = error.credential; - }); + firebase.auth().signInWithPopup(provider) + .then(function(result) { + // This gives you a Facebook Access Token. You can use it to access the Facebook API. + var token = result.credential.accessToken; + // The signed-in user info. + var user = result.user; + viewForum(); + document.getElementById('hideAndShow').style.display = 'block'; + }).catch(function(error) { + // Handle Errors here. + var errorCode = error.code; + var errorMessage = error.message; + // The email of the user's account used. + var email = error.email; + // The firebase.auth.AuthCredential type that was used. + var credential = error.credential; + }); } - // ******** LOG OUT FUNCTION - -var getOut = document.querySelector('#signOut'); -getOut.addEventListener('click', function(e) { - e.preventDefault(); - out(); -}); - function out() { firebase.auth().signOut() .then(function() { viewLogin(); + document.getElementById('hideAndShow').style.display = 'none '; }) .catch(function(error) { console.log(error); @@ -249,15 +245,14 @@ function register() { var registerPassLogin2 = document.getElementById('registerLoginPass2').value; var registerConfirmPassLogin2 = document.getElementById('registerLoginConfirmPass2').value; - if (registerPassLogin2 != registerConfirmPassLogin2) { alert('Las contraseñas deben coincidir'); } else { - firebase.auth().createUserWithEmailAndPassword(registerEmailLogin2, registerPassLogin2) .then((data) => { // alert('Bienvenido ' + data.user.email); viewForum(); + document.getElementById('hideAndShow').style.display = 'block'; }) .catch(function(error) { // Handle Errors here. @@ -277,7 +272,6 @@ function viewRegister() { let registerView = `
    -

    Por favor llena los siguientes campos
    Obligatorio *

    @@ -322,8 +316,6 @@ function viewForum() { return new Promise(function(resolve, rejected) { let forumView = `
    - -
    @@ -454,8 +446,6 @@ function editionOfProfile() { }); } - - function viewProfile() { return new Promise(function(resolve, rejected) { let profileView = ` @@ -521,14 +511,4 @@ function viewProfile() { root.innerHTML = profileView; resolve(); }) - -} - -function hideAndShow(hide) { - document.getElementById(hide).style.display = 'none'; - -} - -function show(show) { - document.getElementById(show).style.display = 'block'; } \ No newline at end of file diff --git a/src/style.css b/src/style.css index 44ba65e4..abed94cc 100644 --- a/src/style.css +++ b/src/style.css @@ -163,6 +163,7 @@ ol { display: block } + /*empezamos con los estilos generales*/ @import url('https://fonts.googleapis.com/css?family=Zhi+Mang+Xing&display=swap'); @@ -213,6 +214,7 @@ input.validate.user.boxEmail { margin-bottom: 15px; text-align: center; } + input.validate.user.boxPassword { border: 1px solid #662483; border-radius: 10px; @@ -383,6 +385,10 @@ ul#mobile-demo { font-weight: bold; } +.sidenav-trigger { + display: none; +} + .editProfileIcon { max-width: 10%; height: a; @@ -395,6 +401,7 @@ ul#mobile-demo { margin-left: 15px; } + /******** Página 2 editar perfil **********/ p.chip.boxStyle2 { @@ -538,14 +545,16 @@ button.waves-effect.waves-light.btn-small.btn-login { margin-bottom: 22px; border-radius: 10px; background-color: #662483; - opacity: 0.9; + opacity: 0.9; } .pag2Header { margin-bottom: 20px; } -input.chageName.boxFields, input.chageProfession.boxFields, input.validatePassword.boxFields{ +input.chageName.boxFields, +input.chageProfession.boxFields, +input.validatePassword.boxFields { border: 1px solid #662483; border-radius: 10px; box-shadow: 0 10px 16px -5px rgba(0, 0, 0, 0.65); @@ -569,56 +578,51 @@ input.chageName.boxFields, input.chageProfession.boxFields, input.validatePasswo margin-bottom: 50px; } + /* *********MediasQuerys*********** */ @media (min-width: 1280px) { - input.validate.user.boxEmail, input.validate.user.password.boxPassword, input.validate.user.boxFields, input.chageName.boxFields, input.chageProfession.boxFields, input.validatePassword.boxFields, input.validatePassword.boxFields { + input.validate.user.boxEmail, + input.validate.user.password.boxPassword, + input.validate.user.boxFields, + input.chageName.boxFields, + input.chageProfession.boxFields, + input.validatePassword.boxFields, + input.validatePassword.boxFields { max-width: 50%; - } - - a.waves-effect.waves-light.btn.center.iconWeb1, a.waves-effect.waves-light.btn.center.iconWeb2 { + } + a.waves-effect.waves-light.btn.center.iconWeb1, + a.waves-effect.waves-light.btn.center.iconWeb2 { max-width: 20%; - } - + } textarea.comentUser { max-width: 40%; - } - + } p.chip.boxStyle2 { margin-left: 40px; } - .informationBox { display: flex; - justify-content: center; - align-items: center; + justify-content: center; + align-items: center; } - .comentsAndLikes { display: flex; - justify-content: center; + justify-content: center; } - .chip.boxStyle { width: 30%; - } - } + } + .sidenav-trigger { + display: none; + } +} - @media (max-width: 640px) { - body { +@media (max-width: 640px) { + body { width: 100%; - } - } - - - - - - - - - - - - - + } + .sidenav-trigger { + display: block; + } +} \ No newline at end of file From 4111c69e18d8587735e340818307fcb1e737950b Mon Sep 17 00:00:00 2001 From: Dianyela Maldonado Date: Tue, 21 Apr 2020 13:30:11 -0500 Subject: [PATCH 15/66] In index.js changes were added, the iteration that says you do not have an account REGISTER now works on mobile, it is necessary to hide the burger --- src/index.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/index.js b/src/index.js index 5f1fd913..b01eb6e3 100644 --- a/src/index.js +++ b/src/index.js @@ -1,5 +1,6 @@ document.addEventListener("DOMContentLoaded", function() { - document.getElementById('hideAndShow').style.display = 'none '; + document.getElementById('hideAndShow').style.display = 'none'; + document.getElementById('movilIcon').style.display = 'none'; viewLogin() .then(function() { // En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el login @@ -28,7 +29,7 @@ document.addEventListener("DOMContentLoaded", function() { }); }) .then(function() { - var ntAccount = document.getElementById('reg'); + var ntAccount = document.querySelector('#reg'); ntAccount.addEventListener('click', function(e) { e.preventDefault(); viewRegister() @@ -37,6 +38,7 @@ document.addEventListener("DOMContentLoaded", function() { buttonReg.addEventListener('click', function(e) { e.preventDefault(); register(); + }); }) From ac839fb9314fc1b8b77e6167dda8a8b18682b24a Mon Sep 17 00:00:00 2001 From: Dianyela Maldonado Date: Tue, 21 Apr 2020 15:22:00 -0500 Subject: [PATCH 16/66] In index.html and style.css It has already been possible to hide the hamburger, it only remains to hide it at the time of closing session --- src/index.js | 185 +++++++++++++++++++++++++------------------------- src/style.css | 6 +- 2 files changed, 95 insertions(+), 96 deletions(-) diff --git a/src/index.js b/src/index.js index b01eb6e3..3461e62a 100644 --- a/src/index.js +++ b/src/index.js @@ -1,95 +1,92 @@ document.addEventListener("DOMContentLoaded", function() { - document.getElementById('hideAndShow').style.display = 'none'; - document.getElementById('movilIcon').style.display = 'none'; - viewLogin() - .then(function() { - // En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el login - var buttonLogin = document.querySelector('#doLogin'); - buttonLogin.addEventListener('click', function(e) { - e.preventDefault(); - loginPageOne(); - }); - }).then(function() { - // En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el ingreso con google - var buttonGoogle = document.querySelector('#loginGoogle'); - buttonGoogle.addEventListener('click', function(e) { - e.preventDefault(); - googleButton(); - }); - }) - .then(function() { - // En esta parte creo una variable en donde voy a llamar a mi id al - // que quiero darle el click en este caso el ingreso con facebook - var buttonFacebook = document.querySelector('#loginFacebook'); - buttonFacebook.addEventListener('click', function(e) { - e.preventDefault(); - facebookButton(); - viewForum(); - document.getElementById('hideAndShow').style.display = 'block'; - }); - }) - .then(function() { - var ntAccount = document.querySelector('#reg'); - ntAccount.addEventListener('click', function(e) { - e.preventDefault(); - viewRegister() - .then(function() { - var buttonReg = document.querySelector('#doRegister'); - buttonReg.addEventListener('click', function(e) { - e.preventDefault(); - register(); - - }); - }) - - }); - }) - .then(function() { - var viewRedirectionForum = document.querySelectorAll('.foro'); - console.log("Foro", viewRedirectionForum); - viewRedirectionForum.forEach(nodo => nodo.addEventListener('click', function(e) { - e.preventDefault(); - viewForum(); - window.history.pushState('Foro', 'Foro', '/Foro') - })); - }).then(function() { - var viewRedirectionProfile = document.querySelectorAll('.perfil'); - console.log("Profile", viewRedirectionProfile); - viewRedirectionProfile.forEach(nodo => nodo.addEventListener('click', function(e) { - e.preventDefault(); - viewProfile(); - window.history.pushState('perfil', 'Perfil', '/Perfil'); - })); - }) - .then(function() { - var viewRedirectionEditProfile = document.querySelectorAll('.editarPerfil'); - console.log("Foro", viewRedirectionEditProfile); - viewRedirectionEditProfile.forEach(nodo => nodo.addEventListener('click', function(e) { - e.preventDefault(); - editionOfProfile(); - window.history.pushState('Editar Perfil', 'Editar Perfil', '/EditarPerfil'); - })); - }) - .then(function() { - var viewRedirectionGetOut = document.querySelectorAll('.cerrarSesion'); - console.log("cerrarSesion", viewRedirectionGetOut); - viewRedirectionGetOut.forEach(nodo => nodo.addEventListener('click', function(e) { - e.preventDefault(); - viewLogin(); - window.history.pushState('cerrar sesion', 'cerrar sesion', '/'); - })); - }) - .then(function() { - var getOut = document.querySelector('.cerrarSesion'); - getOut.addEventListener('click', function(e) { - e.preventDefault(); - out(); - }); - }) -}) - - -// por si quiero limpiar root: document.getElementById('root').innerHTML = ''; + document.getElementById('hideAndShow').style.display = 'none'; + document.getElementById('movilIcon').style.display = 'none'; + viewLogin() + .then(function() { + // En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el login + var buttonLogin = document.querySelector('#doLogin'); + buttonLogin.addEventListener('click', function(e) { + e.preventDefault(); + loginPageOne(); + }); + }).then(function() { + // En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el ingreso con google + var buttonGoogle = document.querySelector('#loginGoogle'); + buttonGoogle.addEventListener('click', function(e) { + e.preventDefault(); + googleButton(); + }); + }) + .then(function() { + // En esta parte creo una variable en donde voy a llamar a mi id al + // que quiero darle el click en este caso el ingreso con facebook + var buttonFacebook = document.querySelector('#loginFacebook'); + buttonFacebook.addEventListener('click', function(e) { + e.preventDefault(); + facebookButton(); + viewForum(); + document.getElementById('hideAndShow').style.display = 'block'; + }); + }) + .then(function() { + var ntAccount = document.querySelector('#reg'); + ntAccount.addEventListener('click', function(e) { + e.preventDefault(); + viewRegister() + .then(function() { + var buttonReg = document.querySelector('#doRegister'); + buttonReg.addEventListener('click', function(e) { + e.preventDefault(); + register(); + }); + }) + + }); + }) + .then(function() { + var viewRedirectionForum = document.querySelectorAll('.foro'); + console.log("Foro", viewRedirectionForum); + viewRedirectionForum.forEach(nodo => nodo.addEventListener('click', function(e) { + e.preventDefault(); + viewForum(); + window.history.pushState('Foro', 'Foro', '/Foro') + })); + }).then(function() { + var viewRedirectionProfile = document.querySelectorAll('.perfil'); + console.log("Profile", viewRedirectionProfile); + viewRedirectionProfile.forEach(nodo => nodo.addEventListener('click', function(e) { + e.preventDefault(); + viewProfile(); + window.history.pushState('perfil', 'Perfil', '/Perfil'); + })); + }) + .then(function() { + var viewRedirectionEditProfile = document.querySelectorAll('.editarPerfil'); + console.log("Foro", viewRedirectionEditProfile); + viewRedirectionEditProfile.forEach(nodo => nodo.addEventListener('click', function(e) { + e.preventDefault(); + editionOfProfile(); + window.history.pushState('Editar Perfil', 'Editar Perfil', '/EditarPerfil'); + })); + }) + .then(function() { + var viewRedirectionGetOut = document.querySelectorAll('.cerrarSesion'); + console.log("cerrarSesion", viewRedirectionGetOut); + viewRedirectionGetOut.forEach(nodo => nodo.addEventListener('click', function(e) { + e.preventDefault(); + viewLogin(); + window.history.pushState('cerrar sesion', 'cerrar sesion', '/'); + })); + }) + .then(function() { + var getOut = document.querySelector('.cerrarSesion'); + getOut.addEventListener('click', function(e) { + e.preventDefault(); + out(); + }); + }) + }) + // por si quiero limpiar root: document.getElementById('root').innerHTML = ''; // Navegador en móvil document.addEventListener('DOMContentLoaded', function() { @@ -99,8 +96,6 @@ document.addEventListener('DOMContentLoaded', function() { - - function viewLogin() { return new Promise(function(resolve, rejected) { let homeView = ` @@ -160,10 +155,12 @@ function viewLogin() { function loginPageOne() { var email = document.getElementById('email').value; var pass = document.getElementById('pass').value; + var movilIcon = document.getElementById('movilIcon'); firebase.auth().signInWithEmailAndPassword(email, pass) .then((data) => { viewForum(); document.getElementById('hideAndShow').style.display = 'block'; + movilIcon.classList.add('shown'); }) .catch(function(error) { alert('Los datos ingresados no son correctos'); @@ -231,10 +228,12 @@ function facebookButton() { } // ******** LOG OUT FUNCTION function out() { + firebase.auth().signOut() .then(function() { viewLogin(); document.getElementById('hideAndShow').style.display = 'none '; + }) .catch(function(error) { console.log(error); diff --git a/src/style.css b/src/style.css index abed94cc..6fefb60a 100644 --- a/src/style.css +++ b/src/style.css @@ -618,11 +618,11 @@ input.validatePassword.boxFields { } } -@media (max-width: 640px) { +@media only screen and (max-width: 640px) { body { width: 100%; } - .sidenav-trigger { - display: block; + .sidenav-trigger.shown { + display: block !important; } } \ No newline at end of file From e4831961efdd18a46fc002f740cc2f67f43e38a3 Mon Sep 17 00:00:00 2001 From: Dianyela Maldonado Date: Tue, 21 Apr 2020 15:38:53 -0500 Subject: [PATCH 17/66] In index.html he views on both desktop and mobile have been added in all login, all that remains is to hide the mobile view when you log out --- src/index.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/index.js b/src/index.js index 3461e62a..6704ee95 100644 --- a/src/index.js +++ b/src/index.js @@ -8,6 +8,7 @@ document.addEventListener("DOMContentLoaded", function() { buttonLogin.addEventListener('click', function(e) { e.preventDefault(); loginPageOne(); + movilIcon.classList.add('shown'); }); }).then(function() { // En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el ingreso con google @@ -26,6 +27,7 @@ document.addEventListener("DOMContentLoaded", function() { facebookButton(); viewForum(); document.getElementById('hideAndShow').style.display = 'block'; + movilIcon.classList.add('shown'); }); }) .then(function() { @@ -181,6 +183,7 @@ function googleButton() { // Aquí se crea una instancia del objeto del proveedor de Google y facebook // esta instancia es para que me redireccione a google o de facebook, es la parte que me lleva a ellos. var provider = new firebase.auth.GoogleAuthProvider(); + var movilIcon = document.getElementById('movilIcon'); firebase.auth().signInWithPopup(provider).then(function(result) { // This gives you a Google Access Token. You can use it to access the Google API. @@ -189,6 +192,7 @@ function googleButton() { var user = result.user; viewForum(); document.getElementById('hideAndShow').style.display = 'block'; + movilIcon.classList.add('shown'); // ... }).catch(function(error) { // Handle Errors here. @@ -208,6 +212,7 @@ function googleButton() { // en entar a la aplicación en esta parte la que me hace entrar a la app con facebook (facebook) function facebookButton() { var provider = new firebase.auth.FacebookAuthProvider(); + var movilIcon = document.getElementById('movilIcon'); firebase.auth().signInWithPopup(provider) .then(function(result) { // This gives you a Facebook Access Token. You can use it to access the Facebook API. @@ -215,6 +220,7 @@ function facebookButton() { // The signed-in user info. var user = result.user; viewForum(); + movilIcon.classList.add('shown'); document.getElementById('hideAndShow').style.display = 'block'; }).catch(function(error) { // Handle Errors here. @@ -228,12 +234,12 @@ function facebookButton() { } // ******** LOG OUT FUNCTION function out() { - + var movilIcon = document.getElementById('movilIcon'); firebase.auth().signOut() .then(function() { viewLogin(); - document.getElementById('hideAndShow').style.display = 'none '; - + document.getElementById('hideAndShow').style.display = 'none'; + movilIcon.classList.add('shown'); }) .catch(function(error) { console.log(error); @@ -245,7 +251,7 @@ function register() { var registerEmailLogin2 = document.getElementById('registerLoginEmail2').value; var registerPassLogin2 = document.getElementById('registerLoginPass2').value; var registerConfirmPassLogin2 = document.getElementById('registerLoginConfirmPass2').value; - + var movilIcon = document.getElementById('movilIcon'); if (registerPassLogin2 != registerConfirmPassLogin2) { alert('Las contraseñas deben coincidir'); } else { @@ -254,6 +260,7 @@ function register() { // alert('Bienvenido ' + data.user.email); viewForum(); document.getElementById('hideAndShow').style.display = 'block'; + movilIcon.classList.add('shown'); }) .catch(function(error) { // Handle Errors here. From 763127caa64db3bfbaa142ca1c895f98ca4ffaa5 Mon Sep 17 00:00:00 2001 From: Dianyela Maldonado Date: Tue, 21 Apr 2020 16:33:06 -0500 Subject: [PATCH 18/66] Add changes index.html --- src/index.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index 6704ee95..337f6db9 100644 --- a/src/index.js +++ b/src/index.js @@ -235,14 +235,18 @@ function facebookButton() { // ******** LOG OUT FUNCTION function out() { var movilIcon = document.getElementById('movilIcon'); + firebase.auth().signOut() .then(function() { viewLogin(); + // movilIcon.classList.remove('shown'); document.getElementById('hideAndShow').style.display = 'none'; - movilIcon.classList.add('shown'); + + }) .catch(function(error) { console.log(error); + }); } From 5d33905408d8b1a728433346aad1aa89a7c22769 Mon Sep 17 00:00:00 2001 From: Dianyela Maldonado Date: Tue, 21 Apr 2020 17:15:41 -0500 Subject: [PATCH 19/66] They adjusted in index.js change regarding functionality. The desktop browser as well as the mobile browser are fully functional --- src/index.js | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/src/index.js b/src/index.js index 337f6db9..664e01c9 100644 --- a/src/index.js +++ b/src/index.js @@ -75,17 +75,10 @@ document.addEventListener("DOMContentLoaded", function() { var viewRedirectionGetOut = document.querySelectorAll('.cerrarSesion'); console.log("cerrarSesion", viewRedirectionGetOut); viewRedirectionGetOut.forEach(nodo => nodo.addEventListener('click', function(e) { - e.preventDefault(); - viewLogin(); - window.history.pushState('cerrar sesion', 'cerrar sesion', '/'); - })); - }) - .then(function() { - var getOut = document.querySelector('.cerrarSesion'); - getOut.addEventListener('click', function(e) { e.preventDefault(); out(); - }); + + })); }) }) // por si quiero limpiar root: document.getElementById('root').innerHTML = ''; @@ -234,15 +227,15 @@ function facebookButton() { } // ******** LOG OUT FUNCTION function out() { - var movilIcon = document.getElementById('movilIcon'); firebase.auth().signOut() .then(function() { - viewLogin(); - // movilIcon.classList.remove('shown'); + document.getElementById('movilIcon').classList.toggle('shown'); document.getElementById('hideAndShow').style.display = 'none'; - - + }) + .then(function() { + viewLogin(); + window.history.pushState('cerrar sesion', 'cerrar sesion', '/'); }) .catch(function(error) { console.log(error); From c27fd23d177e7f5039b90359d663a22164bd3d7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Esther=20Manrique=20Gonz=C3=A1lez?= Date: Tue, 21 Apr 2020 19:52:01 -0500 Subject: [PATCH 20/66] SPA and MVC ok --- src/example.js | 3 - src/index.html | 9 +- src/index.js | 306 ++------------------------------------- src/style.css | 6 + src/view/editprofile.js | 37 +++++ src/view/fuorum.js | 101 +++++++++++++ src/view/login.js | 54 +++++++ src/view/loginandexit.js | 121 ---------------- src/view/profile.js | 68 +++++++++ src/view/register.js | 73 ++++++---- 10 files changed, 325 insertions(+), 453 deletions(-) delete mode 100644 src/example.js create mode 100644 src/view/editprofile.js create mode 100644 src/view/fuorum.js create mode 100644 src/view/login.js delete mode 100644 src/view/loginandexit.js create mode 100644 src/view/profile.js diff --git a/src/example.js b/src/example.js deleted file mode 100644 index 52d2c7ea..00000000 --- a/src/example.js +++ /dev/null @@ -1,3 +0,0 @@ -export const example = () => { - // aquí tu código -} \ No newline at end of file diff --git a/src/index.html b/src/index.html index 70b5acfc..dfe9d453 100644 --- a/src/index.html +++ b/src/index.html @@ -36,14 +36,19 @@
    +
    + +
    + - + diff --git a/src/index.js b/src/index.js index 664e01c9..4ec7c290 100644 --- a/src/index.js +++ b/src/index.js @@ -1,3 +1,10 @@ +import { viewLogin } from './view/login.js'; +import { viewRegister } from './view/register.js'; +import { viewForum } from './view/fuorum.js'; +import { editionOfProfile } from './view/editprofile.js'; +import { viewProfile } from './view/profile.js'; + + document.addEventListener("DOMContentLoaded", function() { document.getElementById('hideAndShow').style.display = 'none'; document.getElementById('movilIcon').style.display = 'none'; @@ -89,62 +96,6 @@ document.addEventListener('DOMContentLoaded', function() { var instances = M.Sidenav.init(elems); }); - - -function viewLogin() { - return new Promise(function(resolve, rejected) { - let homeView = ` -
    -
    -
    -
    -

    Una red social pensada para los que hacemos Desarrollo Web

    -
    - -
    - remove - stars - remove -
    - -
    - - - - -
    - -
    - -
    - -
    -

    Sé parte de nuestra comunidad y fortalece tus ideas y conocimientos.

    -
    - -
    -

    ¿Si no tienes una cuenta?
    Ingresa con:

    - Facebook - - Google - -
    -
    -
    -
    - ` - root.innerHTML = homeView; - resolve(); - }) - -} - // En esta parte hago la funcion que va tener mi boton al hacer click // en entar a la aplicación en esta parte la que me hace entrar a la app (login) function loginPageOne() { @@ -153,7 +104,7 @@ function loginPageOne() { var movilIcon = document.getElementById('movilIcon'); firebase.auth().signInWithEmailAndPassword(email, pass) .then((data) => { - viewForum(); + viewForum(data.user); //BLISS document.getElementById('hideAndShow').style.display = 'block'; movilIcon.classList.add('shown'); }) @@ -255,7 +206,7 @@ function register() { firebase.auth().createUserWithEmailAndPassword(registerEmailLogin2, registerPassLogin2) .then((data) => { // alert('Bienvenido ' + data.user.email); - viewForum(); + viewForum(data.user); document.getElementById('hideAndShow').style.display = 'block'; movilIcon.classList.add('shown'); }) @@ -272,248 +223,9 @@ function register() { } } -function viewRegister() { - return new Promise(function(resolve, rejected) { - let registerView = ` - -
    -
    -
    -

    Por favor llena los siguientes campos
    Obligatorio *

    -
    -
    - remove - stars - remove -
    -
    - - - - - -
    -
    -

    Sé parte de nuestra comunidad y fortalece tus ideas y conocimientos.

    -
    -
    -
    - ` - root.innerHTML = registerView; - resolve(); - }); -} -function viewForum() { - return new Promise(function(resolve, rejected) { - let forumView = ` -
    -
    -
    -
    - foto de perfil usuario -
    -
    -
    Taco Lópezedit
    -
    Developer Sr. en Accenture
    -
    -
    -
    -
    -

    - -

    -
    - - -
    -
    -
    -
    -
    - Contact Person -

    Taco Perez

    -
    - - more_vert -
    - -
    -

    ¿Cómo centrar texto en HTML?

    -
    -
    - -
    - - 2 -
    -
    -
    -
    -

    - -

    -
    - - -
    -
    -
    - -
    - Contact Person -

    Taco Perez

    -
    - - more_vert -
    - -
    -

    ¿Comunidad, cómo le hago para enrutar con Javascript?

    -
    -
    - -
    - - 2 -
    -
    -
    -
    -

    - -

    -
    - - -
    -
    -
    ` - root.innerHTML = forumView; - resolve(); - }); -} - -function editionOfProfile() { - return new Promise(function(resolve, rejected) { - let editProfileVieView = ` - -
    -
    -

    Editar Perfil

    -
    - -
    - foto de perfil usuario -

    Cambiar foto

    -
    - -
    - - - - - -
    -
    - ` - root.innerHTML = editProfileVieView; - resolve(); - }); -} - -function viewProfile() { - return new Promise(function(resolve, rejected) { - let profileView = ` - -
    -
    -
    -
    - foto de perfil usuario -
    - -
    -
    Taco Lópezedit
    -
    Developer Sr. en Accenture
    -
    -
    -
    -
    -

    - -

    -
    - - -
    -
    -
    -
    - -
    - Contact Person -

    Taco Perez

    -
    - - more_vert -
    - -
    -

    ¿Cómo centrar texto en HTML?

    -
    -
    - -
    - - 2 -
    -
    -
    -
    -

    - -

    -
    - - -
    -
    -
    - ` - root.innerHTML = profileView; - resolve(); - }) -} \ No newline at end of file diff --git a/src/style.css b/src/style.css index 6fefb60a..0ee327a4 100644 --- a/src/style.css +++ b/src/style.css @@ -578,6 +578,12 @@ input.validatePassword.boxFields { margin-bottom: 50px; } +.footer { + text-align: center; + color: #fff; + font-size: .8em; + line-height: 2.5em; +} /* *********MediasQuerys*********** */ diff --git a/src/view/editprofile.js b/src/view/editprofile.js new file mode 100644 index 00000000..de598d6f --- /dev/null +++ b/src/view/editprofile.js @@ -0,0 +1,37 @@ +function editionOfProfile() { + return new Promise(function(resolve, rejected) { + let editProfileVieView = ` + +
    +
    +

    Editar Perfil

    +
    + +
    + foto de perfil usuario +

    Cambiar foto

    +
    + +
    + + + + + +
    +
    + ` + root.innerHTML = editProfileVieView; + resolve(); + }); +}; + +export { editionOfProfile } \ No newline at end of file diff --git a/src/view/fuorum.js b/src/view/fuorum.js new file mode 100644 index 00000000..382c460a --- /dev/null +++ b/src/view/fuorum.js @@ -0,0 +1,101 @@ +function viewForum(user) { + return new Promise(function(resolve, rejected) { + let forumView = ` +
    +
    +
    +
    + foto de perfil usuario +
    + +
    +
    + ${user.email} + edit
    +
    Developer Sr. en Accenture
    +
    +
    +
    +
    +

    + +

    +
    + + +
    +
    +
    +
    + +
    + Contact Person +

    Taco Perez

    +
    + + more_vert +
    + +
    +

    ¿Cómo centrar texto en HTML?

    +
    +
    + +
    + + 2 +
    +
    +
    +
    +

    + +

    +
    + + +
    +
    +
    + +
    + Contact Person +

    Taco Perez

    +
    + + more_vert +
    + +
    +

    ¿Comunidad, cómo le hago para enrutar con Javascript?

    +
    +
    + +
    + + 2 +
    +
    +
    +
    +

    + +

    +
    + + +
    +
    +
    ` + root.innerHTML = forumView; + resolve(); + }); +}; + +export { viewForum} \ No newline at end of file diff --git a/src/view/login.js b/src/view/login.js new file mode 100644 index 00000000..e62e7a6c --- /dev/null +++ b/src/view/login.js @@ -0,0 +1,54 @@ +function viewLogin() { + return new Promise(function(resolve, rejected) { + let homeView = ` +
    +
    +
    +
    +

    Una red social pensada para los que hacemos Desarrollo Web

    +
    + +
    + remove + stars + remove +
    + +
    + + + + +
    + +
    + +
    + +
    +

    Sé parte de nuestra comunidad y fortalece tus ideas y conocimientos.

    +
    + +
    +

    ¿Si no tienes una cuenta?
    Ingresa con:

    + Facebook + + Google + +
    +
    +
    +
    + ` + root.innerHTML = homeView; + resolve(); + }); +}; + +export { viewLogin } \ No newline at end of file diff --git a/src/view/loginandexit.js b/src/view/loginandexit.js deleted file mode 100644 index 1efc417c..00000000 --- a/src/view/loginandexit.js +++ /dev/null @@ -1,121 +0,0 @@ -// // En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el login -// // var buttonLogin = document.querySelector('#doLogin'); -// // console.log(buttonLogin) -// // buttonLogin.addEventListener('click', function(e) { -// // e.preventDefault(); -// // loginPageOne(); -// // }); -// // En esta parte hago la funcion que va tener mi boton al hacer click -// // en entar a la aplicación en esta parte la que me hace entrar a la app (login) -// function loginPageOne() { -// var email = document.getElementById('email').value; -// var pass = document.getElementById('pass').value; -// alert("email=" + email + " pass=" + pass); - -// firebase.auth().signInWithEmailAndPassword(email, pass)D: - -// .then((data) => { -// alert('Bienvenido ' + data.user.email); -// }) -// .catch(function(error) { -// console.log(error) -// // Handle Errors here. puedo hacer algo despues del login, si salio mal -// var errorCode = error.code; -// var errorMessage = error.message; -// alert(errorMessage); -// // borrar o cambiar la pantalla -// renderLogin() -// }); - -// var cred = firebase.auth.EmailAuthProvider.credential( -// email, -// password -// ); -// } - -// // **************** L O G I N G O O G L E******* -// En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el ingreso con google -// var buttonGoogle = document.querySelector('#loginGoogle'); -// buttonGoogle.addEventListener('click', function(e) { -// e.preventDefault(); -// googleButton(); -// }); - -// // En esta parte hago la funcion que va tener mi boton al hacer click -// // en entar a la aplicación en esta parte la que me hace entrar a la app con google (google) -// function googleButton() { -// // Aquí se crea una instancia del objeto del proveedor de Google y facebook -// // esta instancia es para que me redireccione a google o de facebook, es la parte que me lleva a ellos. -// var provider = new firebase.auth.GoogleAuthProvider(); - -// firebase.auth().signInWithPopup(provider).then(function(result) { -// // This gives you a Google Access Token. You can use it to access the Google API. -// var token = result.credential.accessToken; -// // The signed-in user info. -// var user = result.user; -// alert('Bienvenido ' + user.email); -// // ... -// }).catch(function(error) { -// // Handle Errors here. -// var errorCode = error.code; -// var errorMessage = error.message; -// // The email of the user's account used. -// var email = error.email; -// // The firebase.auth.AuthCredential type that was used. -// var credential = error.credential; -// // ... -// }); -// } - -// // **************** L O G I N F A C E B O O K ******* - -// // // En esta parte creo una variable en donde voy a llamar a mi id al -// // // que quiero darle el click en este caso el ingreso con facebook -// // var buttonFacebook = document.querySelector('#loginFacebook'); -// // buttonFacebook.addEventListener('click', function(e) { -// // e.preventDefault(); -// // facebookButton(); -// // }); - -// // // En esta parte hago la funcion que va tener mi boton al hacer click -// // // en entar a la aplicación en esta parte la que me hace entrar a la app con facebook (facebook -// function facebookButton() { -// var provider = new firebase.auth.FacebookAuthProvider(); -// firebase.auth().signInWithPopup(provider).then(function(result) { -// // This gives you a Facebook Access Token. You can use it to access the Facebook API. -// var token = result.credential.accessToken; -// // The signed-in user info. -// var user = result.user; -// console.log(user); -// alert('Bienvenido ' + user.email); -// // ... -// }).catch(function(error) { -// // Handle Errors here. -// var errorCode = error.code; -// var errorMessage = error.message; -// // The email of the user's account used. -// var email = error.email; -// // The firebase.auth.AuthCredential type that was used. -// var credential = error.credential; -// // ... -// }); -// } - -// // // ******** LOG OUT FUNCTION - -// var getOut = document.querySelector('#signOut'); -// getOut.addEventListener('click', function(e) { -// e.preventDefault(); -// out(); -// }); - -// function out() { -// firebase.auth().signOut() -// .then(function() { -// alert('Good Bye'); -// }).catch(function(error) { -// console.log(error); -// }); -// } - -// export { buttonLogin, loginPageOne, googleButton, buttonGoogle, buttonFacebook, facebookButton, getOut, out } \ No newline at end of file diff --git a/src/view/profile.js b/src/view/profile.js new file mode 100644 index 00000000..1805b43f --- /dev/null +++ b/src/view/profile.js @@ -0,0 +1,68 @@ +function viewProfile() { + return new Promise(function(resolve, rejected) { + let profileView = ` + +
    +
    +
    +
    + foto de perfil usuario +
    + +
    +
    Taco Lópezedit
    +
    Developer Sr. en Accenture
    +
    +
    +
    +
    +

    + +

    +
    + + +
    +
    +
    +
    + +
    + Contact Person +

    Taco Perez

    +
    + + more_vert +
    + +
    +

    ¿Cómo centrar texto en HTML?

    +
    +
    + +
    + + 2 +
    +
    +
    +
    +

    + +

    +
    + + +
    +
    +
    + ` + root.innerHTML = profileView; + resolve(); + }); +}; + +export { viewProfile } \ No newline at end of file diff --git a/src/view/register.js b/src/view/register.js index 39dc5eb8..463c65c5 100644 --- a/src/view/register.js +++ b/src/view/register.js @@ -1,33 +1,46 @@ -// function register() { -// var registerNameLogin2 = document.getElementById('registerLoginName2').value; -// var registerEmailLogin2 = document.getElementById('registerLoginEmail2').value; -// var registerPassLogin2 = document.getElementById('registerLoginPass2').value; -// var registerConfirmPassLogin2 = document.getElementById('registerLoginConfirmPass2').value; +function viewRegister() { + return new Promise(function(resolve, rejected) { + let registerView = ` + +
    +
    +
    +

    Por favor llena los siguientes campos
    Obligatorio *

    +
    -// var buttonReg = document.querySelector('#doRegister'); -// buttonReg.addEventListener('click', function(e) { -// e.preventDefault(); -// register(); -// }); +
    + remove + stars + remove +
    -// if (registerPassLogin2 != registerConfirmPassLogin2) { -// alert('Las contraseñas deben coincidir'); -// } else { +
    + + + + + +
    -// firebase.auth().createUserWithEmailAndPassword(registerEmailLogin2, registerPassLogin2) -// .then((data) => { -// alert('Bienvenido ' + data.user.email); -// }) -// .catch(function(error) { -// // Handle Errors here. -// var errorCode = error.code; -// var errorMessage = error.message; -// if (errorCode == 'auth/weak-password') { -// alert('The password is too weak.'); -// } else { -// alert(errorMessage); -// } -// console.log(error); -// }); -// } -// } \ No newline at end of file +
    +

    Sé parte de nuestra comunidad y fortalece tus ideas y conocimientos.

    +
    +
    +
    + ` + root.innerHTML = registerView; + resolve(); + }); +}; + +export { viewRegister } \ No newline at end of file From fbf95bcf8d500dbbf64579b80da6c6fbedfc39a1 Mon Sep 17 00:00:00 2001 From: verobega Date: Wed, 22 Apr 2020 23:15:12 -0500 Subject: [PATCH 21/66] localStorage function is ready at posts --- src/digitalplatform/firebase.js | 3 +- src/index.html | 5 +- src/index.js | 141 ++++++++++++++++++++++++++++++-- src/view/fuorum.js | 21 +++-- src/view/userFunction.js | 79 ++++++++++++++++++ 5 files changed, 235 insertions(+), 14 deletions(-) create mode 100644 src/view/userFunction.js diff --git a/src/digitalplatform/firebase.js b/src/digitalplatform/firebase.js index b69befe4..06ba60c2 100644 --- a/src/digitalplatform/firebase.js +++ b/src/digitalplatform/firebase.js @@ -11,4 +11,5 @@ var firebaseConfig = { }; // Initialize Firebase firebase.initializeApp(firebaseConfig); -firebase.analytics(); \ No newline at end of file +firebase.analytics(); +var db = firebase.firestore() \ No newline at end of file diff --git a/src/index.html b/src/index.html index dfe9d453..32025144 100644 --- a/src/index.html +++ b/src/index.html @@ -43,8 +43,9 @@ - - + + + diff --git a/src/index.js b/src/index.js index 4ec7c290..1ed04a4a 100644 --- a/src/index.js +++ b/src/index.js @@ -32,7 +32,6 @@ document.addEventListener("DOMContentLoaded", function() { buttonFacebook.addEventListener('click', function(e) { e.preventDefault(); facebookButton(); - viewForum(); document.getElementById('hideAndShow').style.display = 'block'; movilIcon.classList.add('shown'); }); @@ -57,7 +56,10 @@ document.addEventListener("DOMContentLoaded", function() { console.log("Foro", viewRedirectionForum); viewRedirectionForum.forEach(nodo => nodo.addEventListener('click', function(e) { e.preventDefault(); - viewForum(); + viewForum() + .then(function() { + publicPost(); + }); window.history.pushState('Foro', 'Foro', '/Foro') })); }).then(function() { @@ -104,7 +106,10 @@ function loginPageOne() { var movilIcon = document.getElementById('movilIcon'); firebase.auth().signInWithEmailAndPassword(email, pass) .then((data) => { - viewForum(data.user); //BLISS + viewForum(data.user)//BLISS + .then(function() { + publicPost(); + }); document.getElementById('hideAndShow').style.display = 'block'; movilIcon.classList.add('shown'); }) @@ -134,7 +139,10 @@ function googleButton() { var token = result.credential.accessToken; // The signed-in user info. var user = result.user; - viewForum(); + viewForum(user) + .then(function() { + publicPost(); + }); document.getElementById('hideAndShow').style.display = 'block'; movilIcon.classList.add('shown'); // ... @@ -163,7 +171,10 @@ function facebookButton() { var token = result.credential.accessToken; // The signed-in user info. var user = result.user; - viewForum(); + viewForum(user) + .then(function() { + publicPost(); + }); movilIcon.classList.add('shown'); document.getElementById('hideAndShow').style.display = 'block'; }).catch(function(error) { @@ -229,3 +240,123 @@ function register() { + +/*************** FUNCIONALIDAD DE POSTS***************/ + + +//let fileInput = document.getElementById('file') //variable para la prueba de subir imagen + +//global +// variable para que reciba el link(token) de la foto que esta en storage + + + +//listeners + +/*funcion para subir archivo o archivos en el post +fileInput.onchange = e => { + let file = e.target.files[0] //lleva el indice cuando se quiere subir varios archivo, si no, se quita el indice y se coloca la llave file + firebase.storage().ref("memes").child(file.name).put(file) + .then(snap => { //¿Donde esta el archivo? En file.name + return snap.ref.getDownloadURL() //conseguir el link de la imagen. Retornas la promesa y concatenas el otro then + }) + .then(link => { + url = link + let img = document.createElement('img') + img.src = link + document.body.appendChild(img) + }) +} +*/ + + + +//traer la informacion del post cuando se le da clic en el boton +function publicPost(){ + let url = 'futura imagen' + let publicPost = document.getElementById('publish') + publicPost.onclick = function(){ + let text = document.getElementById('showComment')//variable con id en donde se pintaran los post, textArea + // traer el texto + let post = { + texto: text.value, + user: "spiderman", + date: new Date(), + img: url //variable global, aqui se almacena la imagen cuando ya se tiene el link que envio la funcion onchange + } + // [ASINCRONO] + + addNewPost(post) + // ESto es asíncrono + .then(function(post) { //esto es la promesa + alert('hello') //este es el resultado de la promesa + }) + .catch(err => { + console.log("todo valió baby: ", err) //esto es el error cuando la respuesta es negativa + }) + } + +} + +// firebase + + + + + + +//pasar a la funcion el objeto que se encuentra en la base de datos de firebase +function addNewPost(post) { + let postsRef = db.collection('post') //se llama post porque asi se llama nuestra coleccion en Database + return postsRef.add(post) + console.log('post')// <--- esto es una promesa +} + +/* leer la coleccion de post +postsRef.onSnapshot(snap => { + let p = document.querySelector('#posts') + p.innerHTML = '' + snap.forEach(doc => { + let div = `
    + // doc.data xq ahi esta la data +

    ${doc.data().texto}

    +
    ` + let nodo = document.createElement('div') + nodo.innerHTML = div + p.appendChild(nodo) + + }) +}) + +//Obtén un documento +var docRef = db.collection("cities").doc("SF"); + +docRef.get().then(function(doc) { + if (doc.exists) { + console.log("Document data:", doc.data()); + } else { + // doc.data() will be undefined in this case + console.log("No such document!"); + } +}).catch(function(error) { + console.log("Error getting document:", error); +}); + +//Obtén todos los documentos de una colección +db.collection("post").get().then(function(querySnapshot) { + querySnapshot.forEach(function(doc) { + // doc.data() is never undefined for query doc snapshots + console.log(doc.id, " => ", doc.data()); + }); +}); + + +*/ + + + + + + + + diff --git a/src/view/fuorum.js b/src/view/fuorum.js index 382c460a..c7af372d 100644 --- a/src/view/fuorum.js +++ b/src/view/fuorum.js @@ -1,4 +1,13 @@ + function viewForum(user) { + + var EmailCortado = 'No hay email'; + if(typeof user != 'undefined'){ + var email = user.email; + var divisiones = email.split("@"); + EmailCortado = divisiones[0]; + } + return new Promise(function(resolve, rejected) { let forumView = `
    @@ -10,21 +19,21 @@ function viewForum(user) {
    - ${user.email} + ${EmailCortado} edit
    Developer Sr. en Accenture
    -
    +

    - +

    - - + +
    - +
    diff --git a/src/view/userFunction.js b/src/view/userFunction.js new file mode 100644 index 00000000..6aee25c6 --- /dev/null +++ b/src/view/userFunction.js @@ -0,0 +1,79 @@ + +/* +let addBtn = document.querySelector('#myCommit') +let text = document.querySelector('#showComment')//variable con id en donde se pintaran los post, textArea +let fileInput = document.querySelector('#file') //variable para la prueba de subir imagen + +//global +let url // variable para que reciba el link(token) de la foto que esta en storage + + + +//listeners + +//funcion para subir archivo o archivos en el post +fileInput.onchange = e => { + let file = e.target.files[0] + firebase.storage().ref("memes").child(file.name).put(file) + .then(snap => { //¿Donde esta el archivo? En file.name + return snap.ref.getDownloadURL() //conseguir el link de la imagen. Retornas la promesa y concatenas el otro then + }) + .then(link => { + url = link + let img = document.createElement('img') + img.src = link + document.body.appendChild(img) + }) +} + + +//traer la informacion del post cuando se le da clic en el boton +addBtn.onclick = event => { + // traer el texto + let post = { + body: text.value, + user: "spiderman", + date: new Date(), + img: url //variable global, aqui se almacena la imagen cuando ya se tiene el link que envio la funcion onchange + } + // [ASINCRONO] + + addNewPost(post) + // ESto es asíncrono + .then(res => { //esto es la promesa + console.log(res) //este es el resultado de la promesa + }) + .catch(err => { + console.log("todo valió baby: ", err) //esto es el error cuando la respuesta es negativa + }) +} + +// firebase + +let db = firebase.firestore() // YOLO +let postsRef = db.collection('posts') + + + +//pasar a la funcion el objeto que se encuentra en la base de datos de firebase +function addMyNewPost(post = { user: "spiderman", texto: "mira que bonita foto", date: Date.now() }) { + return postsRef.add(post) // <--- esto es una promesa +} + +// leer la coleccion de post +postsRef.onSnapshot(snap => { + let p = document.querySelector('#posts') + p.innerHTML = '' + snap.forEach(doc => { + let div = `
    + // doc.data xq ahi esta la data +

    ${doc.data().texto}

    +
    ` + let nodo = document.createElement('div') + nodo.innerHTML = div + p.appendChild(nodo) + + }) +}) + +*/ From 33387404f0f8c231fb04af252594972d5c31532f Mon Sep 17 00:00:00 2001 From: verobega Date: Thu, 23 Apr 2020 21:19:46 -0500 Subject: [PATCH 22/66] added images --- src/index.js | 52 +++++++++++++++++++++++++++++++++------------- src/view/fuorum.js | 8 +++++-- 2 files changed, 44 insertions(+), 16 deletions(-) diff --git a/src/index.js b/src/index.js index 1ed04a4a..d883a518 100644 --- a/src/index.js +++ b/src/index.js @@ -244,7 +244,7 @@ function register() { /*************** FUNCIONALIDAD DE POSTS***************/ -//let fileInput = document.getElementById('file') //variable para la prueba de subir imagen + //global // variable para que reciba el link(token) de la foto que esta en storage @@ -254,9 +254,14 @@ function register() { //listeners /*funcion para subir archivo o archivos en el post +let fileInput = document.getElementById('myNewFile') //variable para la prueba de subir imagen +let url = '' + fileInput.onchange = e => { - let file = e.target.files[0] //lleva el indice cuando se quiere subir varios archivo, si no, se quita el indice y se coloca la llave file - firebase.storage().ref("memes").child(file.name).put(file) + let file = e.target.files //lleva el indice cuando se quiere subir varios archivos, si no, se quita el indice y se coloca la llave file + let fileInput = document.getElementById('myNewFile') //variable para la prueba de subir imagen +let url = '' + firebase.storage().ref("devpost").child(file.name).put(file) .then(snap => { //¿Donde esta el archivo? En file.name return snap.ref.getDownloadURL() //conseguir el link de la imagen. Retornas la promesa y concatenas el otro then }) @@ -267,14 +272,36 @@ fileInput.onchange = e => { document.body.appendChild(img) }) } -*/ +*/ +//function fileInput(){} //traer la informacion del post cuando se le da clic en el boton function publicPost(){ - let url = 'futura imagen' + let fileInput = document.getElementById('myNewFile') //variable para la prueba de subir imagen + let imageUrl = '' + + fileInput.onchange = respuestaCambioImagen => { + let file = respuestaCambioImagen.target.files[0] + firebase.storage().ref("devpost").child(file.name).put(file) + .then(snap => { //¿Donde esta el archivo? En file.name + return snap.ref.getDownloadURL() //conseguir el link de la imagen. Retornas la promesa y concatenas el otro then + }) + .then(link => { + imageUrl = link + let img = document.createElement('img') + img.src = imageUrl + document.body.appendChild(img) + }) + } + + + let publicPost = document.getElementById('publish') + //let file = (e).target.file //lleva el indice cuando se quiere subir varios archivos, si no, se quita el indice y se coloca la llave file + + publicPost.onclick = function(){ let text = document.getElementById('showComment')//variable con id en donde se pintaran los post, textArea // traer el texto @@ -282,17 +309,19 @@ function publicPost(){ texto: text.value, user: "spiderman", date: new Date(), - img: url //variable global, aqui se almacena la imagen cuando ya se tiene el link que envio la funcion onchange + img: imageUrl //variable global, aqui se almacena la imagen cuando ya se tiene el link que envio la funcion onchange } + + // [ASINCRONO] addNewPost(post) // ESto es asíncrono .then(function(post) { //esto es la promesa - alert('hello') //este es el resultado de la promesa + alert('datos guardados') //este es el resultado de la promesa }) .catch(err => { - console.log("todo valió baby: ", err) //esto es el error cuando la respuesta es negativa + console.log("Ocurrio un error, intenta mas tarde.", err) //esto es el error cuando la respuesta es negativa }) } @@ -300,16 +329,11 @@ function publicPost(){ // firebase - - - - - //pasar a la funcion el objeto que se encuentra en la base de datos de firebase function addNewPost(post) { let postsRef = db.collection('post') //se llama post porque asi se llama nuestra coleccion en Database return postsRef.add(post) - console.log('post')// <--- esto es una promesa + console.log('post') } /* leer la coleccion de post diff --git a/src/view/fuorum.js b/src/view/fuorum.js index c7af372d..81225b1a 100644 --- a/src/view/fuorum.js +++ b/src/view/fuorum.js @@ -2,6 +2,8 @@ function viewForum(user) { var EmailCortado = 'No hay email'; + + if(typeof user != 'undefined'){ var email = user.email; var divisiones = email.split("@"); @@ -30,7 +32,7 @@ function viewForum(user) {

    - +
    @@ -46,7 +48,9 @@ function viewForum(user) {
    -

    ¿Cómo centrar texto en HTML?

    +
    + +
    +

    - +

    From 33443d3fb0ebbcb2142eec815f1072cbfc907d38 Mon Sep 17 00:00:00 2001 From: verobega Date: Mon, 27 Apr 2020 19:00:10 -0500 Subject: [PATCH 28/66] added post's trials --- src/index.js | 80 ++++++++++++++++++++++++--------------------------- src/style.css | 8 ++++++ 2 files changed, 45 insertions(+), 43 deletions(-) diff --git a/src/index.js b/src/index.js index ae46db2a..9688ac6c 100644 --- a/src/index.js +++ b/src/index.js @@ -257,14 +257,14 @@ function publicPost() { let file = respuestaCambioImagen.target.files[0] firebase.storage().ref("devpost").child(file.name).put(file) .then(snap => { //¿Donde esta el archivo? En file.name - return snap.ref.getDownloadURL() //conseguir el link de la imagen. Retornas la promesa y concatenas el otro then + return snap.ref.L() //conseguir el link de la imagen. Retornas la promesa y concatenas el otro then }) .then(link => { imageUrl = link console.log(imageUrl); - // let img = document.createElement('img'); - // img.src = imageUrl; - // document.getElementById("picturePerfect").appendChild(img); + let img = document.createElement('img'); + img.src = imageUrl; + document.getElementById("picturePerfect").appendChild(img); }) } @@ -300,30 +300,6 @@ function addNewPost(post) { } -//esta como que si sirve - -// function readPosts() { -// let postsRef = db.collection('pruebaPractica') //se llama post porque asi se llama nuestra coleccion en Database , le podemos llamar como queramos -// postsRef.onSnapshot(snap => { -// console.log(snap); -// let p = document.querySelector('#showComment') -// p.innerHTML = '' -// snap.forEach(doc => { -// console.log(doc.data()); -// let div = `
    -// -//

    ${doc.data().body}

    -//
    ` -// let nodo = document.createElement('div') -// nodo.innerHTML = div -// p.appendChild(nodo); - -// }) - -// }); -// } - - function clickMenus(obtainingPersistenceData) { var nameMenus = document.querySelectorAll('ul.clickMenu li a'); //Dentro de mi variable voy a meterme dentro del a que es donde tengo c.u de los nombres de mi navbar nameMenus.forEach(function(viewMenus) { //en una nueva variable hago un forEach con un parámetro dentro de la función @@ -350,8 +326,8 @@ function clickMenus(obtainingPersistenceData) { } //funciones de vero para practicar -/* leer la coleccion de post -postsRef.onSnapshot(snap => { +//leer la coleccion de post +/*postsRef.onSnapshot(snap => { let p = document.querySelector('#posts') p.innerHTML = '' snap.forEach(doc => { @@ -364,12 +340,38 @@ postsRef.onSnapshot(snap => { p.appendChild(nodo) }) -}) +}) */ -//Obtén un documento -var docRef = db.collection("cities").doc("SF"); +//esta como que si sirve + function readPosts() { + let postsRef = db.collection('post') //se llama post porque asi se llama nuestra coleccion en Database , le podemos llamar como queramos + postsRef.onSnapshot(snap => { + let publishPust = document.querySelector('#showComment') + publishPust.innerHTML = '' + snap.forEach(doc => { + let div = `
    + +

    ${doc.data().texto}

    +
    ` + let nodo = document.createElement('div') + nodo.innerHTML = div + publishPust.appendChild(nodo); + + }) + }); + } -docRef.get().then(function(doc) { +//Obtén todos los documentos de una colección + db.collection("post").get().then(function(querySnapshot) { + querySnapshot.forEach(function(doc) { + // doc.data() is never undefined for query doc snapshots + console.log(doc.id, " => ", doc.data()); + }); + }); + +//Obtén un documento + let docRef = db.collection("post").doc("fna7W1xk1Xq2xT03FtRG"); + docRef.get().then(function(doc) { if (doc.exists) { console.log("Document data:", doc.data()); } else { @@ -378,12 +380,4 @@ docRef.get().then(function(doc) { } }).catch(function(error) { console.log("Error getting document:", error); -}); - -Obtén todos los documentos de una colección -db.collection("post").get().then(function(querySnapshot) { - querySnapshot.forEach(function(doc) { - // doc.data() is never undefined for query doc snapshots - console.log(doc.id, " => ", doc.data()); - }); -});*/ \ No newline at end of file + }); \ No newline at end of file diff --git a/src/style.css b/src/style.css index a0367e74..14a4b95b 100644 --- a/src/style.css +++ b/src/style.css @@ -623,6 +623,10 @@ input.validatePassword.boxFields { outline: -webkit-focus-ring-color auto 5px; } +div#showComment { + text-align: center; +} + /* *********MediasQuerys*********** */ @@ -668,6 +672,10 @@ input.validatePassword.boxFields { border-radius: 8PX; margin: 13%; } + + div#showComment { + text-align: center; + } } @media only screen and (max-width: 640px) { From d2b20125d689334d8a3fdbbd217959a344484ab7 Mon Sep 17 00:00:00 2001 From: verobega Date: Mon, 27 Apr 2020 22:52:28 -0500 Subject: [PATCH 29/66] readPosts function works --- src/index.js | 11 ++++++----- src/view/fuorum.js | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/index.js b/src/index.js index 9688ac6c..0f17f561 100644 --- a/src/index.js +++ b/src/index.js @@ -270,14 +270,15 @@ function publicPost() { } let publicPost = document.getElementById('publish'); publicPost.onclick = function() { - let text = document.getElementById('showComment'); //variable con id en donde se pintaran los post, textArea + let text = document.getElementById('userCommit'); //variable con id en donde se pintaran los post, textArea // traer el texto let post = { + // ownerId: texto: text.value, - user: "spiderman", + user: "superman", date: new Date(), - img: imageUrl //variable global, aqui se almacena la imagen cuando ya se tiene el link que envio la funcion onchange - } + image: imageUrl //variable global, aqui se almacena la imagen cuando ya se tiene el link que envio la funcion onchange + }
 addNewPost(post) .then(function(post) { //esto es la promesa alert('hello') //este es el resultado de la promesa @@ -295,7 +296,7 @@ function publicPost() { //pasar a la funcion el objeto que se encuentra en la base de datos de firebase function addNewPost(post) { - let postsRef = db.collection('pruebaPractica') //se llama post porque asi se llama nuestra coleccion en Database , le podemos llamar como queramos + let postsRef = db.collection('post') //se llama post porque asi se llama nuestra coleccion en Database , le podemos llamar como queramos return postsRef.add(post); } diff --git a/src/view/fuorum.js b/src/view/fuorum.js index 5bb7ba92..d585e590 100644 --- a/src/view/fuorum.js +++ b/src/view/fuorum.js @@ -33,7 +33,7 @@ function viewForum(user) {

    - +

    From 9817c0e8b5aa0365d0fee8d3687c4984c67bce1b Mon Sep 17 00:00:00 2001 From: verobega Date: Tue, 28 Apr 2020 17:32:29 -0500 Subject: [PATCH 30/66] added editPost function --- src/index.js | 46 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 32 insertions(+), 14 deletions(-) diff --git a/src/index.js b/src/index.js index 0f17f561..a1d3a13b 100644 --- a/src/index.js +++ b/src/index.js @@ -58,7 +58,8 @@ document.addEventListener("DOMContentLoaded", function() { viewForum(obtainingPersistenceData) .then(function() { publicPost(); - // readPosts(); + readPosts(); + }) document.getElementById('hideAndShow').style.display = 'block'; movilIcon.classList.add('shown'); @@ -250,35 +251,38 @@ function register() { //traer la informacion del post cuando se le da clic en el boton function publicPost() { + let fileInput = document.getElementById('myNewFile'); //variable para la prueba de subir imagen let imageUrl = ''; fileInput.onchange = respuestaCambioImagen => { - let file = respuestaCambioImagen.target.files[0] + console.log(respuestaCambioImagen) + let file = respuestaCambioImagen.target.files[0] firebase.storage().ref("devpost").child(file.name).put(file) .then(snap => { //¿Donde esta el archivo? En file.name - return snap.ref.L() //conseguir el link de la imagen. Retornas la promesa y concatenas el otro then + return snap.ref.getDownloadURL() //conseguir el link de la imagen. Retornas la promesa y concatenas el otro then }) .then(link => { imageUrl = link - console.log(imageUrl); let img = document.createElement('img'); img.src = imageUrl; + document.body.appendChild(img) document.getElementById("picturePerfect").appendChild(img); }) - } - let publicPost = document.getElementById('publish'); - publicPost.onclick = function() { + } + + + let publicPost = document.getElementById('publish'); + publicPost.onclick = function() { let text = document.getElementById('userCommit'); //variable con id en donde se pintaran los post, textArea // traer el texto let post = { - // ownerId: texto: text.value, - user: "superman", + user: "spiderman", date: new Date(), - image: imageUrl //variable global, aqui se almacena la imagen cuando ya se tiene el link que envio la funcion onchange - }
 + img: imageUrl //variable global, aqui se almacena la imagen cuando ya se tiene el link que envio la funcion onchange + } addNewPost(post) .then(function(post) { //esto es la promesa alert('hello') //este es el resultado de la promesa @@ -290,7 +294,7 @@ function publicPost() { console.log(err) //esto es el error cuando la respuesta es negativa }) - } + } } @@ -343,7 +347,7 @@ function clickMenus(obtainingPersistenceData) { }) }) */ -//esta como que si sirve +//leer coleccion de post function readPosts() { let postsRef = db.collection('post') //se llama post porque asi se llama nuestra coleccion en Database , le podemos llamar como queramos postsRef.onSnapshot(snap => { @@ -362,6 +366,7 @@ function clickMenus(obtainingPersistenceData) { }); } + //Obtén todos los documentos de una colección db.collection("post").get().then(function(querySnapshot) { querySnapshot.forEach(function(doc) { @@ -381,4 +386,17 @@ function clickMenus(obtainingPersistenceData) { } }).catch(function(error) { console.log("Error getting document:", error); - }); \ No newline at end of file + }); + + + function editPost() { + // TODO: Get posts from collection to update on firebase + + // TODO: Edit coment and save it on firebase + + // TODO: render data on screen + + /*necesitan el id +que llegue como parametro a editPost +con ese id hacen un doc(id).update({cosaQueCambio:true})*/ + } \ No newline at end of file From b0735ff048ce691db0d6e5885cad9e30c6268730 Mon Sep 17 00:00:00 2001 From: Dianyela Maldonado Date: Tue, 28 Apr 2020 20:39:17 -0500 Subject: [PATCH 31/66] add render of view forum changes in index.html index.js and fuorum.js --- src/index.js | 185 ++++++++++++++++++++++++++------------------- src/style.css | 1 - src/view/fuorum.js | 72 +----------------- 3 files changed, 108 insertions(+), 150 deletions(-) diff --git a/src/index.js b/src/index.js index a1d3a13b..3e512384 100644 --- a/src/index.js +++ b/src/index.js @@ -57,9 +57,9 @@ document.addEventListener("DOMContentLoaded", function() { clickMenus(obtainingPersistenceData); viewForum(obtainingPersistenceData) .then(function() { - publicPost(); + publicPost(obtainingPersistenceData); readPosts(); - + }) document.getElementById('hideAndShow').style.display = 'block'; movilIcon.classList.add('shown'); @@ -85,7 +85,7 @@ function loginPageOne() { clickMenus(data.user); viewForum(data.user) .then(function() { - publicPost(); + publicPost(data.user); readPosts(); }) .then(function() { @@ -250,38 +250,38 @@ function register() { /*************** FUNCIONALIDAD DE POSTS***************/ //traer la informacion del post cuando se le da clic en el boton -function publicPost() { - +function publicPost(user) { + console.log(user) let fileInput = document.getElementById('myNewFile'); //variable para la prueba de subir imagen let imageUrl = ''; - fileInput.onchange = respuestaCambioImagen => { + console.log(respuestaCambioImagen); console.log(respuestaCambioImagen) - let file = respuestaCambioImagen.target.files[0] + let file = respuestaCambioImagen.target.files[0] firebase.storage().ref("devpost").child(file.name).put(file) .then(snap => { //¿Donde esta el archivo? En file.name return snap.ref.getDownloadURL() //conseguir el link de la imagen. Retornas la promesa y concatenas el otro then }) .then(link => { imageUrl = link - let img = document.createElement('img'); - img.src = imageUrl; - document.body.appendChild(img) - document.getElementById("picturePerfect").appendChild(img); + let img = document.createElement('img'); + img.src = imageUrl; + document.body.appendChild(img) + document.getElementById("showComment").appendChild(img); //aquí va el preview de mi imagen antes de dar click en publicar }) + } - } - - - let publicPost = document.getElementById('publish'); - publicPost.onclick = function() { + let publicPost = document.getElementById('publish'); + publicPost.onclick = function() { let text = document.getElementById('userCommit'); //variable con id en donde se pintaran los post, textArea // traer el texto let post = { texto: text.value, - user: "spiderman", + user: user.displayName, date: new Date(), - img: imageUrl //variable global, aqui se almacena la imagen cuando ya se tiene el link que envio la funcion onchange + img: imageUrl, //variable global, aqui se almacena la imagen cuando ya se tiene el link que envio la funcion onchange + mail: user.email, + photo: user.photoURL } addNewPost(post) .then(function(post) { //esto es la promesa @@ -294,16 +294,74 @@ function publicPost() { console.log(err) //esto es el error cuando la respuesta es negativa }) - } + } } //pasar a la funcion el objeto que se encuentra en la base de datos de firebase function addNewPost(post) { - let postsRef = db.collection('post') //se llama post porque asi se llama nuestra coleccion en Database , le podemos llamar como queramos + console.log(post) + let postsRef = db.collection('probando render 2') //se llama post porque asi se llama nuestra coleccion en Database , le podemos llamar como queramos return postsRef.add(post); } +//leer coleccion de post +function readPosts() { + var EmailCortado = 'No hay email'; + let postsRef = db.collection('probando render 2') //se llama post porque asi se llama nuestra coleccion en Database , le podemos llamar como queramos + postsRef.orderBy('date', 'desc').onSnapshot(snap => { + let publishPust = document.querySelector('#showComment') + publishPust.innerHTML = '' + snap.forEach(doc => { + + if (typeof doc.data().mail != 'undefined') { + var email = doc.data().mail; + var divisiones = email.split("@"); + EmailCortado = divisiones[0]; + } + var nombre = doc.data().user ? doc.data().user : EmailCortado; + var image = doc.data().photo ? doc.data().photo : "images/profile-picture-green.jpg"; + + let div = `
    +
    + +
    + Contact Person +

    ${nombre}

    +
    + + more_vert +
    + +
    + +

    ${doc.data().texto}

    +
    + +
    + + +
    +
    ` + let nodo = document.createElement('div') + nodo.innerHTML = div + publishPust.appendChild(nodo); + + }) + }); +} + + +{ + /*
    + +

    ${doc.data().texto}

    +
    */ +} function clickMenus(obtainingPersistenceData) { var nameMenus = document.querySelectorAll('ul.clickMenu li a'); //Dentro de mi variable voy a meterme dentro del a que es donde tengo c.u de los nombres de mi navbar @@ -330,73 +388,42 @@ function clickMenus(obtainingPersistenceData) { }); } -//funciones de vero para practicar -//leer la coleccion de post -/*postsRef.onSnapshot(snap => { - let p = document.querySelector('#posts') - p.innerHTML = '' - snap.forEach(doc => { - let div = `
    - // doc.data xq ahi esta la data -

    ${doc.data().texto}

    -
    ` - let nodo = document.createElement('div') - nodo.innerHTML = div - p.appendChild(nodo) - - }) -}) */ -//leer coleccion de post - function readPosts() { - let postsRef = db.collection('post') //se llama post porque asi se llama nuestra coleccion en Database , le podemos llamar como queramos - postsRef.onSnapshot(snap => { - let publishPust = document.querySelector('#showComment') - publishPust.innerHTML = '' - snap.forEach(doc => { - let div = `
    - -

    ${doc.data().texto}

    -
    ` - let nodo = document.createElement('div') - nodo.innerHTML = div - publishPust.appendChild(nodo); - - }) - }); - } -//Obtén todos los documentos de una colección - db.collection("post").get().then(function(querySnapshot) { - querySnapshot.forEach(function(doc) { - // doc.data() is never undefined for query doc snapshots - console.log(doc.id, " => ", doc.data()); - }); - }); -//Obtén un documento - let docRef = db.collection("post").doc("fna7W1xk1Xq2xT03FtRG"); - docRef.get().then(function(doc) { - if (doc.exists) { - console.log("Document data:", doc.data()); - } else { - // doc.data() will be undefined in this case - console.log("No such document!"); - } -}).catch(function(error) { - console.log("Error getting document:", error); - }); - function editPost() { - // TODO: Get posts from collection to update on firebase - // TODO: Edit coment and save it on firebase - // TODO: render data on screen - /*necesitan el id + + + + + + + + + + + + + + + + + + + +// function editPost() { +// TODO: Get posts from collection to update on firebase + +// TODO: Edit coment and save it on firebase + +// TODO: render data on screen + +/*necesitan el id que llegue como parametro a editPost con ese id hacen un doc(id).update({cosaQueCambio:true})*/ - } \ No newline at end of file +//} \ No newline at end of file diff --git a/src/style.css b/src/style.css index 14a4b95b..0073d2c1 100644 --- a/src/style.css +++ b/src/style.css @@ -672,7 +672,6 @@ div#showComment { border-radius: 8PX; margin: 13%; } - div#showComment { text-align: center; } diff --git a/src/view/fuorum.js b/src/view/fuorum.js index d585e590..723a2c32 100644 --- a/src/view/fuorum.js +++ b/src/view/fuorum.js @@ -30,7 +30,7 @@ function viewForum(user) {
    -
    +

    @@ -42,76 +42,8 @@ function viewForum(user) {

    -
    -
    - -
    - Contact Person -

    usuario 1

    -
    - - more_vert -
    - -
    -

    -
    -
    -
    - -
    - - 2 -
    -
    -
    -
    -

    - -

    -
    - - - -
    -
    -
    - -
    - Contact Person -

    usuario 2

    -
    - - more_vert -
    -
    -

    ¿Comunidad, cómo le hago para enrutar con Javascript?

    -
    -
    - -
    - - 2 -
    -
    - -
    -

    - -

    -
    - - - -
    -
    +
    ` root.innerHTML = forumView; resolve(); From ec7a1e5ee910b2bb31cdb9f7aa04fcf75bd12379 Mon Sep 17 00:00:00 2001 From: Dianyela Maldonado Date: Tue, 28 Apr 2020 21:35:38 -0500 Subject: [PATCH 32/66] add changes render view forum people --- src/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/index.js b/src/index.js index 3e512384..08560af4 100644 --- a/src/index.js +++ b/src/index.js @@ -7,7 +7,7 @@ import { viewProfile } from './view/profile.js'; document.addEventListener("DOMContentLoaded", function() { var obtainingPersistenceData = JSON.parse(localStorage.getItem('userdata')); //aquí lo obtengo.GET ITEM es para que local me muestre la data si existe dentro de ella if (obtainingPersistenceData == null) { //no hay localStorage - console.log('Keep Calm', obtainingPersistenceData); + // console.log('Keep Calm', obtainingPersistenceData); document.getElementById('hideAndShow').style.display = 'none'; document.getElementById('movilIcon').style.display = 'none'; viewLogin() @@ -318,7 +318,7 @@ function readPosts() { var email = doc.data().mail; var divisiones = email.split("@"); EmailCortado = divisiones[0]; - } + } //mi condicion si, si está ponlo si no está pon el mail var nombre = doc.data().user ? doc.data().user : EmailCortado; var image = doc.data().photo ? doc.data().photo : "images/profile-picture-green.jpg"; From 184ec2b4571a8b63a6937aee00e7e2147548de65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Esther=20Manrique=20Gonz=C3=A1lez?= Date: Tue, 28 Apr 2020 23:14:34 -0500 Subject: [PATCH 33/66] Save Our life --- src/index.js | 87 +++++++++++++++++++++++++++------------------- src/view/coment.js | 29 ++++++++++++++++ 2 files changed, 80 insertions(+), 36 deletions(-) create mode 100644 src/view/coment.js diff --git a/src/index.js b/src/index.js index 08560af4..34dc9056 100644 --- a/src/index.js +++ b/src/index.js @@ -3,6 +3,7 @@ import { viewRegister } from './view/register.js'; import { viewForum } from './view/fuorum.js'; import { editionOfProfile } from './view/editprofile.js'; import { viewProfile } from './view/profile.js'; +import { buildComent } from './view/coment.js'; document.addEventListener("DOMContentLoaded", function() { var obtainingPersistenceData = JSON.parse(localStorage.getItem('userdata')); //aquí lo obtengo.GET ITEM es para que local me muestre la data si existe dentro de ella @@ -202,6 +203,48 @@ function out() { .then(function() { localStorage.setItem('userdata', null); //aquí le digo que guarde como un json formateado mi objeto }) + .then(function() { + // En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el login + var buttonLogin = document.querySelector('#doLogin'); + buttonLogin.addEventListener('click', function(e) { + e.preventDefault(); + loginPageOne(); + + movilIcon.classList.add('shown'); + }); + }).then(function() { + // En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el ingreso con google + var buttonGoogle = document.querySelector('#loginGoogle'); + buttonGoogle.addEventListener('click', function(e) { + e.preventDefault(); + googleButton(); + }); + }) + .then(function() { + // En esta parte creo una variable en donde voy a llamar a mi id al + // que quiero darle el click en este caso el ingreso con facebook + var buttonFacebook = document.querySelector('#loginFacebook'); + buttonFacebook.addEventListener('click', function(e) { + e.preventDefault(); + facebookButton(); + document.getElementById('hideAndShow').style.display = 'block'; + movilIcon.classList.add('shown'); + }); + }) + .then(function() { + var ntAccount = document.querySelector('#reg'); + ntAccount.addEventListener('click', function(e) { + e.preventDefault(); + viewRegister() + .then(function() { + var buttonReg = document.querySelector('#doRegister'); + buttonReg.addEventListener('click', function(e) { + e.preventDefault(); + register(); + }); + }) + }); + }) window.history.pushState('cerrar sesion', 'cerrar sesion', '/'); }) @@ -251,7 +294,7 @@ function register() { //traer la informacion del post cuando se le da clic en el boton function publicPost(user) { - console.log(user) + //console.log(user) let fileInput = document.getElementById('myNewFile'); //variable para la prueba de subir imagen let imageUrl = ''; fileInput.onchange = respuestaCambioImagen => { @@ -275,13 +318,15 @@ function publicPost(user) { publicPost.onclick = function() { let text = document.getElementById('userCommit'); //variable con id en donde se pintaran los post, textArea // traer el texto + console.log(user); let post = { texto: text.value, user: user.displayName, date: new Date(), img: imageUrl, //variable global, aqui se almacena la imagen cuando ya se tiene el link que envio la funcion onchange mail: user.email, - photo: user.photoURL + photo: user.photoURL, + uid: user.uid, } addNewPost(post) .then(function(post) { //esto es la promesa @@ -312,8 +357,7 @@ function readPosts() { postsRef.orderBy('date', 'desc').onSnapshot(snap => { let publishPust = document.querySelector('#showComment') publishPust.innerHTML = '' - snap.forEach(doc => { - + snap.forEach(doc => { if (typeof doc.data().mail != 'undefined') { var email = doc.data().mail; var divisiones = email.split("@"); @@ -321,32 +365,7 @@ function readPosts() { } //mi condicion si, si está ponlo si no está pon el mail var nombre = doc.data().user ? doc.data().user : EmailCortado; var image = doc.data().photo ? doc.data().photo : "images/profile-picture-green.jpg"; - - let div = `
    -
    - -
    - Contact Person -

    ${nombre}

    -
    - - more_vert -
    - -
    - -

    ${doc.data().texto}

    -
    - -
    - - -
    -
    ` + let div = buildComent(image, nombre, doc.data().img, doc.data().texto, doc.id); let nodo = document.createElement('div') nodo.innerHTML = div publishPust.appendChild(nodo); @@ -356,12 +375,7 @@ function readPosts() { } -{ - /*
    - -

    ${doc.data().texto}

    -
    */ -} + function clickMenus(obtainingPersistenceData) { var nameMenus = document.querySelectorAll('ul.clickMenu li a'); //Dentro de mi variable voy a meterme dentro del a que es donde tengo c.u de los nombres de mi navbar @@ -373,6 +387,7 @@ function clickMenus(obtainingPersistenceData) { viewForum(obtainingPersistenceData) .then(function() { publicPost(); + readPosts(); }); window.history.pushState('Foro', 'Foro', '/Foro') } else if (userClickMenu == "/Perfil") { diff --git a/src/view/coment.js b/src/view/coment.js new file mode 100644 index 00000000..77c768cf --- /dev/null +++ b/src/view/coment.js @@ -0,0 +1,29 @@ +function buildComent(imageUser, nameUser, img, text, id) { + return `
    +
    + +
    + Contact Person +

    ${nameUser}

    +
    + + more_vert +
    + +
    + +

    ${text}

    +
    + +
    + + +
    +
    ` +} + +export { buildComent } \ No newline at end of file From 5919c2b3d1b3153a9232ec585897e9bc866b4143 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Esther=20Manrique=20Gonz=C3=A1lez?= Date: Thu, 30 Apr 2020 21:49:05 -0500 Subject: [PATCH 34/66] MVC and SPA ok --- src/functions/clickmenus.js | 34 +++ src/functions/init.js | 69 ++++++ src/functions/loginfacebook.js | 34 +++ src/functions/logingoogle.js | 37 ++++ src/functions/loginpageone.js | 39 ++++ src/functions/logout.js | 71 +++++++ src/functions/publicpoust.js | 61 ++++++ src/functions/readposts.js | 27 +++ src/functions/register.js | 41 ++++ src/index.js | 371 ++++----------------------------- src/view/editprofile.js | 10 +- src/view/fuorum.js | 2 +- test/example.spec.js | 13 +- 13 files changed, 472 insertions(+), 337 deletions(-) create mode 100644 src/functions/clickmenus.js create mode 100644 src/functions/init.js create mode 100644 src/functions/loginfacebook.js create mode 100644 src/functions/logingoogle.js create mode 100644 src/functions/loginpageone.js create mode 100644 src/functions/logout.js create mode 100644 src/functions/publicpoust.js create mode 100644 src/functions/readposts.js create mode 100644 src/functions/register.js diff --git a/src/functions/clickmenus.js b/src/functions/clickmenus.js new file mode 100644 index 00000000..f7af26f6 --- /dev/null +++ b/src/functions/clickmenus.js @@ -0,0 +1,34 @@ +import { viewProfile } from '../view/profile.js'; +import { out } from './logout.js' +import { editionOfProfile } from '../view/editprofile.js'; +import { viewForum } from '../view/fuorum.js'; +import { publicPost, addNewPost } from './publicpoust.js' +import { readPosts } from './readposts.js' + +function clickMenus(obtainingPersistenceData) { + var nameMenus = document.querySelectorAll('ul.clickMenu li a'); //Dentro de mi variable voy a meterme dentro del a que es donde tengo c.u de los nombres de mi navbar + nameMenus.forEach(function(viewMenus) { //en una nueva variable hago un forEach con un parámetro dentro de la función + viewMenus.addEventListener('click', function(clickedMenu) { //llamo el parámetro en este caso es (viewMenus)en el cual en el addEventListener le digo que escuche el click con una función a la que le pongo también un parámetro por nombre (clickedMenu) + clickedMenu.preventDefault(); + var userClickMenu = clickedMenu.target.dataset.nav; //creo una nueva variable que va a ser igual al parámetro anterior (clickedMenu) en donde con target.dataset estaría llamando a data-nav que declaré en mi html + if (userClickMenu == "/Foro") { //aquí en mi if le coloco la condición en donde si le doy click a foro me lleve a ver el foro y así sucesivamente + viewForum(obtainingPersistenceData) + .then(function() { + publicPost(obtainingPersistenceData); + readPosts(); + }); + window.history.pushState('Foro', 'Foro', '/Foro') + } else if (userClickMenu == "/Perfil") { + viewProfile(obtainingPersistenceData); + window.history.pushState('perfil', 'Perfil', '/Perfil'); + } else if (userClickMenu == "/editarPerfil") { + editionOfProfile(obtainingPersistenceData); + window.history.pushState('Editar Perfil', 'Editar Perfil', '/EditarPerfil'); + } else if (userClickMenu == "/cerrarSesion") { + out(); + } + }) + }); +} + +export { clickMenus } \ No newline at end of file diff --git a/src/functions/init.js b/src/functions/init.js new file mode 100644 index 00000000..72d093d5 --- /dev/null +++ b/src/functions/init.js @@ -0,0 +1,69 @@ +document.addEventListener("DOMContentLoaded", function() { + var obtainingPersistenceData = JSON.parse(localStorage.getItem('userdata')); //aquí lo obtengo.GET ITEM es para que local me muestre la data si existe dentro de ella + if (obtainingPersistenceData == null) { //no hay localStorage + // console.log('Keep Calm', obtainingPersistenceData); + document.getElementById('hideAndShow').style.display = 'none'; + document.getElementById('movilIcon').style.display = 'none'; + viewLogin() + .then(function() { + // En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el login + var buttonLogin = document.querySelector('#doLogin'); + buttonLogin.addEventListener('click', function(e) { + e.preventDefault(); + loginPageOne(); + + movilIcon.classList.add('shown'); + }); + }).then(function() { + // En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el ingreso con google + var buttonGoogle = document.querySelector('#loginGoogle'); + buttonGoogle.addEventListener('click', function(e) { + e.preventDefault(); + googleButton(); + }); + }) + .then(function() { + // En esta parte creo una variable en donde voy a llamar a mi id al + // que quiero darle el click en este caso el ingreso con facebook + var buttonFacebook = document.querySelector('#loginFacebook'); + buttonFacebook.addEventListener('click', function(e) { + e.preventDefault(); + facebookButton(); + document.getElementById('hideAndShow').style.display = 'block'; + movilIcon.classList.add('shown'); + }); + }) + .then(function() { + var ntAccount = document.querySelector('#reg'); + ntAccount.addEventListener('click', function(e) { + e.preventDefault(); + viewRegister() + .then(function() { + var buttonReg = document.querySelector('#doRegister'); + buttonReg.addEventListener('click', function(e) { + e.preventDefault(); + register(); + }); + }) + }); + }) + } else { + clickMenus(obtainingPersistenceData); + viewForum(obtainingPersistenceData) + .then(function() { + publicPost(obtainingPersistenceData); + readPosts(); + + }) + document.getElementById('hideAndShow').style.display = 'block'; + movilIcon.classList.add('shown'); + } +}) + +// Navegador en móvil +document.addEventListener('DOMContentLoaded', function() { + var elems = document.querySelectorAll('.sidenav'); + var instances = M.Sidenav.init(elems); +}); + +export { init } \ No newline at end of file diff --git a/src/functions/loginfacebook.js b/src/functions/loginfacebook.js new file mode 100644 index 00000000..2ce8fa33 --- /dev/null +++ b/src/functions/loginfacebook.js @@ -0,0 +1,34 @@ +// En esta parte hago la funcion que va tener mi boton al hacer click +// en entar a la aplicación en esta parte la que me hace entrar a la app con facebook (facebook) +function facebookButton() { + var provider = new firebase.auth.FacebookAuthProvider(); + var movilIcon = document.getElementById('movilIcon'); + + firebase.auth().signInWithPopup(provider) + .then(function(data) { + // This gives you a Facebook Access Token. You can use it to access the Facebook API. + var token = data.credential.accessToken; + // The signed-in user info. + var user = data.user; + clickMenus(user); + viewForum(user) + .then(function() { + publicPost(); + }).then(function() { + localStorage.setItem('userdata', JSON.stringify(user)); //aquí le digo que guarde como un json formateado mi objeto + }) + movilIcon.classList.add('shown'); + document.getElementById('hideAndShow').style.display = 'block'; + }).catch(function(error) { + console.log(error); + // Handle Errors here. + var errorCode = error.code; + var errorMessage = error.message; + // The email of the user's account used. + var email = error.email; + // The firebase.auth.AuthCredential type that was used. + var credential = error.credential; + }); +} + +export { facebookButton } \ No newline at end of file diff --git a/src/functions/logingoogle.js b/src/functions/logingoogle.js new file mode 100644 index 00000000..681cc5dd --- /dev/null +++ b/src/functions/logingoogle.js @@ -0,0 +1,37 @@ +// En esta parte hago la funcion que va tener mi boton al hacer click +// en entar a la aplicación en esta parte la que me hace entrar a la app con google (google) +function googleButton() { + // Aquí se crea una instancia del objeto del proveedor de Google y facebook + // esta instancia es para que me redireccione a google o de facebook, es la parte que me lleva a ellos. + var provider = new firebase.auth.GoogleAuthProvider(); + var movilIcon = document.getElementById('movilIcon'); + + firebase.auth().signInWithPopup(provider) + .then(function(data) { + // This gives you a Google Access Token. You can use it to access the Google API. + var token = data.credential.accessToken; + // The signed-in user info. + var user = data.user; + clickMenus(user); + viewForum(user) + .then(function() { + publicPost(); + }).then(function() { + localStorage.setItem('userdata', JSON.stringify(user)); //aquí le digo que guarde como un json formateado mi objeto, esa data.user la bautizo como user data que es lo que estoy colocando arriba + }) + document.getElementById('hideAndShow').style.display = 'block'; + movilIcon.classList.add('shown'); + // ... + }).catch(function(error) { + // Handle Errors here. + var errorCode = error.code; + var errorMessage = error.message; + // The email of the user's account used. + var email = error.email; + // The firebase.auth.AuthCredential type that was used. + var credential = error.credential; + // ... + }); +} + +export { googleButton } diff --git a/src/functions/loginpageone.js b/src/functions/loginpageone.js new file mode 100644 index 00000000..4baa5427 --- /dev/null +++ b/src/functions/loginpageone.js @@ -0,0 +1,39 @@ +import { viewForum } from '../view/fuorum.js'; +import { readPosts } from './readposts.js' +import { clickMenus } from './clickmenus.js' +import { publicPost, addNewPost } from './publicpoust.js' + + +// En esta parte hago la funcion que va tener mi boton al hacer click +// en entar a la aplicación en esta parte la que me hace entrar a la app (login) +function loginPageOne() { + var email = document.getElementById('email').value; + var pass = document.getElementById('pass').value; + var movilIcon = document.getElementById('movilIcon'); + firebase.auth().signInWithEmailAndPassword(email, pass,) + .then((data) => { + clickMenus(data.user); + viewForum(data.user) + .then(function() { + publicPost(data.user); + readPosts(); + }) + .then(function() { + localStorage.setItem('userdata', JSON.stringify(data.user)); //aquí le digo que guarde como un json formateado mi objeto. su parametro es su nombre el segundo lo que vale + }) + document.getElementById('hideAndShow').style.display = 'block'; + movilIcon.classList.add('shown'); + }) + .catch(function(error) { + alert('Los datos ingresados no son correctos'); + // Handle Errors here. puedo hacer algo despues del login, si salio mal + var errorCode = error.code; + var errorMessage = error.message; + alert(errorMessage); + // borrar o cambiar la pantalla + // renderLogin() + }); + var cred = firebase.auth.EmailAuthProvider.credential(email, pass); +} + +export { loginPageOne } \ No newline at end of file diff --git a/src/functions/logout.js b/src/functions/logout.js new file mode 100644 index 00000000..a2baac50 --- /dev/null +++ b/src/functions/logout.js @@ -0,0 +1,71 @@ +import { viewLogin } from '../view/login.js'; +import { loginPageOne } from './loginpageone.js'; +import { viewRegister } from '../view/register.js'; +import { register } from './register.js'; + +// ******** LOG OUT FUNCTION +function out() { + console.log('revisando out'); + + firebase.auth().signOut() + .then(function() { + document.getElementById('movilIcon').classList.toggle('shown'); + document.getElementById('hideAndShow').style.display = 'none'; + }) + .then(function() { + viewLogin() + .then(function() { + localStorage.setItem('userdata', null); //aquí le digo que guarde como un json formateado mi objeto + }) + .then(function() { + // En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el login + var buttonLogin = document.querySelector('#doLogin'); + buttonLogin.addEventListener('click', function(e) { + e.preventDefault(); + loginPageOne(); + + movilIcon.classList.add('shown'); + }); + }).then(function() { + // En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el ingreso con google + var buttonGoogle = document.querySelector('#loginGoogle'); + buttonGoogle.addEventListener('click', function(e) { + e.preventDefault(); + googleButton(); + }); + }) + .then(function() { + // En esta parte creo una variable en donde voy a llamar a mi id al + // que quiero darle el click en este caso el ingreso con facebook + var buttonFacebook = document.querySelector('#loginFacebook'); + buttonFacebook.addEventListener('click', function(e) { + e.preventDefault(); + facebookButton(); + document.getElementById('hideAndShow').style.display = 'block'; + movilIcon.classList.add('shown'); + }); + }) + .then(function() { + var ntAccount = document.querySelector('#reg'); + ntAccount.addEventListener('click', function(e) { + e.preventDefault(); + viewRegister() + .then(function() { + var buttonReg = document.querySelector('#doRegister'); + buttonReg.addEventListener('click', function(e) { + e.preventDefault(); + register(); + }); + }) + }); + }) + + window.history.pushState('cerrar sesion', 'cerrar sesion', '/'); + }) + .catch(function(error) { + console.log(error); + + }); +} + +export { out } diff --git a/src/functions/publicpoust.js b/src/functions/publicpoust.js new file mode 100644 index 00000000..c9f4eaea --- /dev/null +++ b/src/functions/publicpoust.js @@ -0,0 +1,61 @@ +//traer la informacion del post cuando se le da clic en el boton +function publicPost(user) { + //console.log(user) + let fileInput = document.getElementById('myNewFile'); //variable para la prueba de subir imagen + let imageUrl = ''; + fileInput.onchange = respuestaCambioImagen => { + console.log(respuestaCambioImagen); + let file = respuestaCambioImagen.target.files[0] + firebase.storage().ref("devpost").child(file.name).put(file) + .then(snap => { //¿Donde esta el archivo? En file.name + return snap.ref.getDownloadURL() //conseguir el link de la imagen. Retornas la promesa y concatenas el otro then + }) + .then(link => { + imageUrl = link + let img = document.createElement('img'); + img.src = imageUrl; + document.body.appendChild(img) + document.getElementById("showComment").appendChild(img); //aquí va el preview de mi imagen antes de dar click en publicar + }) + } + + let publicPost = document.getElementById('publish'); + publicPost.onclick = function() { + let text = document.getElementById('userCommit'); //variable con id en donde se pintaran los post, textArea + // traer el texto + console.log(user); + let post = { + texto: text.value, + user: user.displayName, + date: new Date(), + img: imageUrl, //variable global, aqui se almacena la imagen cuando ya se tiene el link que envio la funcion onchange + mail: user.email, + photo: user.photoURL, + uid: user.uid, + } + addNewPost(post) + .then(function(post) { //esto es la promesa + alert('Post publicado') //este es el resultado de la promesa + }) + .then(function() { + text.value = ""; + }) + .then(function() { + imageUrl = ""; + }) + .catch(err => { + console.log(err) //esto es el error cuando la respuesta es negativa + }) + + } + +} + +//pasar a la funcion el objeto que se encuentra en la base de datos de firebase +function addNewPost(post) { + console.log(post) + let postsRef = db.collection('pruebas_300420_Esther') //se llama post porque asi se llama nuestra coleccion en Database , le podemos llamar como queramos + return postsRef.add(post); +} + +export { publicPost, addNewPost } \ No newline at end of file diff --git a/src/functions/readposts.js b/src/functions/readposts.js new file mode 100644 index 00000000..1076cf06 --- /dev/null +++ b/src/functions/readposts.js @@ -0,0 +1,27 @@ +import { buildComent } from '../view/coment.js'; + +//leer coleccion de post +function readPosts() { + var EmailCortado = 'No hay email'; + let postsRef = db.collection('pruebas_300420_Esther') //se llama post porque asi se llama nuestra coleccion en Database , le podemos llamar como queramos + postsRef.orderBy('date', 'desc').onSnapshot(snap => { + let publishPust = document.querySelector('#showComment') + publishPust.innerHTML = '' + snap.forEach(doc => { + if (typeof doc.data().mail != 'undefined') { + var email = doc.data().mail; + var divisiones = email.split("@"); + EmailCortado = divisiones[0]; + } //mi condicion si, si está ponlo si no está pon el mail + var nombre = doc.data().user ? doc.data().user : EmailCortado; + var image = doc.data().photo ? doc.data().photo : "images/profile-picture-green.jpg"; + let div = buildComent(image, nombre, doc.data().img, doc.data().texto, doc.id); + let nodo = document.createElement('div') + nodo.innerHTML = div + publishPust.appendChild(nodo); + + }) + }); +} + +export { readPosts } diff --git a/src/functions/register.js b/src/functions/register.js new file mode 100644 index 00000000..fa127ab5 --- /dev/null +++ b/src/functions/register.js @@ -0,0 +1,41 @@ +import { clickMenus } from './clickmenus.js'; +import { viewForum } from '../view/fuorum.js'; +import { publicPost } from './publicpoust.js'; +import { readPosts } from './readposts.js'; + +function register() { + var registerNameLogin2 = document.getElementById('registerLoginName2').value; + var registerEmailLogin2 = document.getElementById('registerLoginEmail2').value; + var registerPassLogin2 = document.getElementById('registerLoginPass2').value; + var registerConfirmPassLogin2 = document.getElementById('registerLoginConfirmPass2').value; + var movilIcon = document.getElementById('movilIcon'); + + console.log(registerNameLogin2); + + if (registerPassLogin2 != registerConfirmPassLogin2) { + alert('Las contraseñas deben coincidir'); + } else { + firebase.auth().createUserWithEmailAndPassword(registerEmailLogin2, registerPassLogin2) + .then((data) => { + clickMenus(data.user); + viewForum(data.user); + publicPost(data.user); + readPosts(data.user); + document.getElementById('hideAndShow').style.display = 'block'; + movilIcon.classList.add('shown'); + }) + + .catch(function(error) { + // Handle Errors here. + var errorCode = error.code; + var errorMessage = error.message; + if (errorCode == 'auth/weak-password') { + alert('The password is too weak.'); + } else { + alert(errorMessage); + } + }); + } +} + +export { register } \ No newline at end of file diff --git a/src/index.js b/src/index.js index 34dc9056..00ef93a2 100644 --- a/src/index.js +++ b/src/index.js @@ -1,3 +1,4 @@ +//*********** views ********** import { viewLogin } from './view/login.js'; import { viewRegister } from './view/register.js'; import { viewForum } from './view/fuorum.js'; @@ -5,6 +6,20 @@ import { editionOfProfile } from './view/editprofile.js'; import { viewProfile } from './view/profile.js'; import { buildComent } from './view/coment.js'; +//********** functions ********** +import { loginPageOne } from './functions/loginpageone.js' +import { googleButton } from './functions/logingoogle.js' +import { facebookButton } from './functions/loginfacebook.js' +import { out } from './functions/logout.js' +import { register } from './functions/register.js' +import { readPosts } from './functions/readposts.js' +import { clickMenus } from './functions/clickmenus.js' +import { publicPost, addNewPost } from './functions/publicpoust.js' +//import { init } from './functions/init.js' + + +// *************** CODIGO DE ARRANQUE O INICIO ************** + document.addEventListener("DOMContentLoaded", function() { var obtainingPersistenceData = JSON.parse(localStorage.getItem('userdata')); //aquí lo obtengo.GET ITEM es para que local me muestre la data si existe dentro de ella if (obtainingPersistenceData == null) { //no hay localStorage @@ -73,351 +88,31 @@ document.addEventListener('DOMContentLoaded', function() { var instances = M.Sidenav.init(elems); }); -//*********************BLOQUE UNO ****************************/ - -// En esta parte hago la funcion que va tener mi boton al hacer click -// en entar a la aplicación en esta parte la que me hace entrar a la app (login) -function loginPageOne() { - var email = document.getElementById('email').value; - var pass = document.getElementById('pass').value; - var movilIcon = document.getElementById('movilIcon'); - firebase.auth().signInWithEmailAndPassword(email, pass) - .then((data) => { - clickMenus(data.user); - viewForum(data.user) - .then(function() { - publicPost(data.user); - readPosts(); - }) - .then(function() { - localStorage.setItem('userdata', JSON.stringify(data.user)); //aquí le digo que guarde como un json formateado mi objeto. su parametro es su nombre el segundo lo que vale - }) - document.getElementById('hideAndShow').style.display = 'block'; - movilIcon.classList.add('shown'); - }) - .catch(function(error) { - alert('Los datos ingresados no son correctos'); - // Handle Errors here. puedo hacer algo despues del login, si salio mal - var errorCode = error.code; - var errorMessage = error.message; - alert(errorMessage); - // borrar o cambiar la pantalla - // renderLogin() - }); - var cred = firebase.auth.EmailAuthProvider.credential(email, pass); -} - - - -//*********************BLOQUE DOS ****************************/ - - - -// **************** L O G I N G O O G L E******* -// En esta parte hago la funcion que va tener mi boton al hacer click -// en entar a la aplicación en esta parte la que me hace entrar a la app con google (google) -function googleButton() { - // Aquí se crea una instancia del objeto del proveedor de Google y facebook - // esta instancia es para que me redireccione a google o de facebook, es la parte que me lleva a ellos. - var provider = new firebase.auth.GoogleAuthProvider(); - var movilIcon = document.getElementById('movilIcon'); - - firebase.auth().signInWithPopup(provider) - .then(function(data) { - // This gives you a Google Access Token. You can use it to access the Google API. - var token = data.credential.accessToken; - // The signed-in user info. - var user = data.user; - clickMenus(user); - viewForum(user) - .then(function() { - publicPost(); - }).then(function() { - localStorage.setItem('userdata', JSON.stringify(user)); //aquí le digo que guarde como un json formateado mi objeto, esa data.user la bautizo como user data que es lo que estoy colocando arriba - }) - document.getElementById('hideAndShow').style.display = 'block'; - movilIcon.classList.add('shown'); - // ... - }).catch(function(error) { - // Handle Errors here. - var errorCode = error.code; - var errorMessage = error.message; - // The email of the user's account used. - var email = error.email; - // The firebase.auth.AuthCredential type that was used. - var credential = error.credential; - // ... - }); -} - - - -//*********************BLOQUE TRES ****************************/ + +//********************* BLOQUE UNO loginPageOne ****************************/ + +//*********************BLOQUE DOS (????) ****************************/ + +// **************** L O G I N G O O G L E googleButton ******* + +//*********************BLOQUE TRES (????) ****************************/ // **************** L O G I N F A C E B O O K ******* -// En esta parte hago la funcion que va tener mi boton al hacer click -// en entar a la aplicación en esta parte la que me hace entrar a la app con facebook (facebook) -function facebookButton() { - var provider = new firebase.auth.FacebookAuthProvider(); - var movilIcon = document.getElementById('movilIcon'); - - firebase.auth().signInWithPopup(provider) - .then(function(data) { - // This gives you a Facebook Access Token. You can use it to access the Facebook API. - var token = data.credential.accessToken; - // The signed-in user info. - var user = data.user; - clickMenus(user); - viewForum(user) - .then(function() { - publicPost(); - }).then(function() { - localStorage.setItem('userdata', JSON.stringify(user)); //aquí le digo que guarde como un json formateado mi objeto - }) - movilIcon.classList.add('shown'); - document.getElementById('hideAndShow').style.display = 'block'; - }).catch(function(error) { - console.log(error); - // Handle Errors here. - var errorCode = error.code; - var errorMessage = error.message; - // The email of the user's account used. - var email = error.email; - // The firebase.auth.AuthCredential type that was used. - var credential = error.credential; - }); -} //*********************BLOQUE CUATRO ****************************/ -// ******** LOG OUT FUNCTION -function out() { - console.log('revisando out'); - - firebase.auth().signOut() - .then(function() { - document.getElementById('movilIcon').classList.toggle('shown'); - document.getElementById('hideAndShow').style.display = 'none'; - }) - .then(function() { - viewLogin() - .then(function() { - localStorage.setItem('userdata', null); //aquí le digo que guarde como un json formateado mi objeto - }) - .then(function() { - // En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el login - var buttonLogin = document.querySelector('#doLogin'); - buttonLogin.addEventListener('click', function(e) { - e.preventDefault(); - loginPageOne(); - - movilIcon.classList.add('shown'); - }); - }).then(function() { - // En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el ingreso con google - var buttonGoogle = document.querySelector('#loginGoogle'); - buttonGoogle.addEventListener('click', function(e) { - e.preventDefault(); - googleButton(); - }); - }) - .then(function() { - // En esta parte creo una variable en donde voy a llamar a mi id al - // que quiero darle el click en este caso el ingreso con facebook - var buttonFacebook = document.querySelector('#loginFacebook'); - buttonFacebook.addEventListener('click', function(e) { - e.preventDefault(); - facebookButton(); - document.getElementById('hideAndShow').style.display = 'block'; - movilIcon.classList.add('shown'); - }); - }) - .then(function() { - var ntAccount = document.querySelector('#reg'); - ntAccount.addEventListener('click', function(e) { - e.preventDefault(); - viewRegister() - .then(function() { - var buttonReg = document.querySelector('#doRegister'); - buttonReg.addEventListener('click', function(e) { - e.preventDefault(); - register(); - }); - }) - }); - }) - - window.history.pushState('cerrar sesion', 'cerrar sesion', '/'); - }) - .catch(function(error) { - console.log(error); - - }); -} //*********************BLOQUE CINCO ****************************/ -function register() { - var registerNameLogin2 = document.getElementById('registerLoginName2').value; - var registerEmailLogin2 = document.getElementById('registerLoginEmail2').value; - var registerPassLogin2 = document.getElementById('registerLoginPass2').value; - var registerConfirmPassLogin2 = document.getElementById('registerLoginConfirmPass2').value; - var movilIcon = document.getElementById('movilIcon'); - if (registerPassLogin2 != registerConfirmPassLogin2) { - alert('Las contraseñas deben coincidir'); - } else { - firebase.auth().createUserWithEmailAndPassword(registerEmailLogin2, registerPassLogin2) - .then((data) => { - clickMenus(data.user); - viewForum(data.user); - document.getElementById('hideAndShow').style.display = 'block'; - movilIcon.classList.add('shown'); - }) - .catch(function(error) { - // Handle Errors here. - var errorCode = error.code; - var errorMessage = error.message; - if (errorCode == 'auth/weak-password') { - alert('The password is too weak.'); - } else { - alert(errorMessage); - } - }); - } -} - - //*********************BLOQUE SEIS ****************************/ - /*************** FUNCIONALIDAD DE POSTS***************/ -//traer la informacion del post cuando se le da clic en el boton -function publicPost(user) { - //console.log(user) - let fileInput = document.getElementById('myNewFile'); //variable para la prueba de subir imagen - let imageUrl = ''; - fileInput.onchange = respuestaCambioImagen => { - console.log(respuestaCambioImagen); - console.log(respuestaCambioImagen) - let file = respuestaCambioImagen.target.files[0] - firebase.storage().ref("devpost").child(file.name).put(file) - .then(snap => { //¿Donde esta el archivo? En file.name - return snap.ref.getDownloadURL() //conseguir el link de la imagen. Retornas la promesa y concatenas el otro then - }) - .then(link => { - imageUrl = link - let img = document.createElement('img'); - img.src = imageUrl; - document.body.appendChild(img) - document.getElementById("showComment").appendChild(img); //aquí va el preview de mi imagen antes de dar click en publicar - }) - } - - let publicPost = document.getElementById('publish'); - publicPost.onclick = function() { - let text = document.getElementById('userCommit'); //variable con id en donde se pintaran los post, textArea - // traer el texto - console.log(user); - let post = { - texto: text.value, - user: user.displayName, - date: new Date(), - img: imageUrl, //variable global, aqui se almacena la imagen cuando ya se tiene el link que envio la funcion onchange - mail: user.email, - photo: user.photoURL, - uid: user.uid, - } - addNewPost(post) - .then(function(post) { //esto es la promesa - alert('hello') //este es el resultado de la promesa - }) - .then(function() { - text.value = ""; - }) - .catch(err => { - console.log(err) //esto es el error cuando la respuesta es negativa - }) - - } - -} - -//pasar a la funcion el objeto que se encuentra en la base de datos de firebase -function addNewPost(post) { - console.log(post) - let postsRef = db.collection('probando render 2') //se llama post porque asi se llama nuestra coleccion en Database , le podemos llamar como queramos - return postsRef.add(post); -} - -//leer coleccion de post -function readPosts() { - var EmailCortado = 'No hay email'; - let postsRef = db.collection('probando render 2') //se llama post porque asi se llama nuestra coleccion en Database , le podemos llamar como queramos - postsRef.orderBy('date', 'desc').onSnapshot(snap => { - let publishPust = document.querySelector('#showComment') - publishPust.innerHTML = '' - snap.forEach(doc => { - if (typeof doc.data().mail != 'undefined') { - var email = doc.data().mail; - var divisiones = email.split("@"); - EmailCortado = divisiones[0]; - } //mi condicion si, si está ponlo si no está pon el mail - var nombre = doc.data().user ? doc.data().user : EmailCortado; - var image = doc.data().photo ? doc.data().photo : "images/profile-picture-green.jpg"; - let div = buildComent(image, nombre, doc.data().img, doc.data().texto, doc.id); - let nodo = document.createElement('div') - nodo.innerHTML = div - publishPust.appendChild(nodo); - - }) - }); -} - - - - -function clickMenus(obtainingPersistenceData) { - var nameMenus = document.querySelectorAll('ul.clickMenu li a'); //Dentro de mi variable voy a meterme dentro del a que es donde tengo c.u de los nombres de mi navbar - nameMenus.forEach(function(viewMenus) { //en una nueva variable hago un forEach con un parámetro dentro de la función - viewMenus.addEventListener('click', function(clickedMenu) { //llamo el parámetro en este caso es (viewMenus)en el cual en el addEventListener le digo que escuche el click con una función a la que le pongo también un parámetro por nombre (clickedMenu) - clickedMenu.preventDefault(); - var userClickMenu = clickedMenu.target.dataset.nav; //creo una nueva variable que va a ser igual al parámetro anterior (clickedMenu) en donde con target.dataset estaría llamando a data-nav que declaré en mi html - if (userClickMenu == "/Foro") { //aquí en mi if le coloco la condición en donde si le doy click a foro me lleve a ver el foro y así sucesivamente - viewForum(obtainingPersistenceData) - .then(function() { - publicPost(); - readPosts(); - }); - window.history.pushState('Foro', 'Foro', '/Foro') - } else if (userClickMenu == "/Perfil") { - viewProfile(obtainingPersistenceData); - window.history.pushState('perfil', 'Perfil', '/Perfil'); - } else if (userClickMenu == "/editarPerfil") { - editionOfProfile(obtainingPersistenceData); - window.history.pushState('Editar Perfil', 'Editar Perfil', '/EditarPerfil'); - } else if (userClickMenu == "/cerrarSesion") { - out(); - } - }) - }); -} - - - - - - - - - - - - - - +// ******** PUBLIC POST *********** +// ******** READ POSTS ************ +// ******** CLICK MENUS *********** @@ -425,11 +120,25 @@ function clickMenus(obtainingPersistenceData) { +//funcion pra borrar +/* +db.collection("cities").doc("DC").delete().then(function() { + console.log("Document successfully deleted!"); +}).catch(function(error) { + console.error("Error removing document: ", error); +}); */ +/* BETSA +var actionComments = document.querySelectorAll('.actionsComment'); +actionsComments.forEach(function(actionsComment) { + actionsComment.addEventListener('click', function(clickedPoints) { + consle.log(clickedPoints.target.dataset.id); + }) +})*/ // function editPost() { // TODO: Get posts from collection to update on firebase diff --git a/src/view/editprofile.js b/src/view/editprofile.js index 2bd10729..6f764d03 100644 --- a/src/view/editprofile.js +++ b/src/view/editprofile.js @@ -1,4 +1,6 @@ function editionOfProfile(user) { + console.log(user); + var EmailCortado = 'No hay email'; if (typeof user != 'undefined') { @@ -21,10 +23,12 @@ function editionOfProfile(user) {
    - foto de perfil usuario + foto de perfil usuario

    Cambiar foto

    -
    ${EmailCortado}
    +
    + ${EmailCortado} +
    -
    - +
    @@ -38,9 +37,7 @@ function viewLogin() {

    ¿Si no tienes una cuenta?
    Ingresa con:

    Facebook - Google -
    diff --git a/src/view/profile.js b/src/view/profile.js index 5eef021c..866d2d0b 100644 --- a/src/view/profile.js +++ b/src/view/profile.js @@ -1,14 +1,14 @@ function viewProfile(user) { console.log(user); - var EmailCortado = 'No hay email'; + let EmailCortado = 'No hay email'; if (typeof user != 'undefined') { - var email = user.email; - var divisiones = email.split("@"); + let email = user.email; + let divisiones = email.split("@"); EmailCortado = divisiones[0]; } - var image = "images/profile-picture-green.jpg"; + let image = "images/profile-picture-green.jpg"; if (user.photoURL != null) { image = user.photoURL; } @@ -33,14 +33,13 @@ function viewProfile(user) {

    - - + +
    -
    Contact Person

    ${EmailCortado}

    @@ -68,7 +67,7 @@ function viewProfile(user) {

    - +
    diff --git a/src/view/register.js b/src/view/register.js index 463c65c5..f10e6b88 100644 --- a/src/view/register.js +++ b/src/view/register.js @@ -16,18 +16,16 @@ function viewRegister() {
    From 940b14617a2605cb3d383c6cc2cdb7570a8a4ad2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Esther=20Manrique=20Gonz=C3=A1lez?= Date: Sat, 2 May 2020 21:26:08 -0500 Subject: [PATCH 37/66] Last Version 1.0 --- src/functions/clickmenus.js | 10 ++--- src/functions/deletepost.js | 21 ---------- src/functions/editpost.js | 55 -------------------------- src/functions/loginfacebook.js | 8 +--- src/functions/logingoogle.js | 13 ++----- src/functions/loginpageone.js | 9 ++--- src/functions/logout.js | 15 +++---- src/functions/publicpoust.js | 30 +++++++------- src/functions/readposts.js | 71 +++++++++++++--------------------- src/functions/register.js | 4 +- src/index.html | 3 -- src/index.js | 21 ++++------ src/style.css | 26 ++++++------- src/view/editprofile.js | 9 ++--- src/view/fuorum.js | 10 ++--- src/view/profile.js | 7 ++-- src/view/register.js | 1 - 17 files changed, 91 insertions(+), 222 deletions(-) delete mode 100644 src/functions/deletepost.js delete mode 100644 src/functions/editpost.js diff --git a/src/functions/clickmenus.js b/src/functions/clickmenus.js index d725a46c..3c33f545 100644 --- a/src/functions/clickmenus.js +++ b/src/functions/clickmenus.js @@ -6,12 +6,12 @@ import { publicPost, addNewPost } from './publicpoust.js'; import { readPosts } from './readposts.js'; function clickMenus(obtainingPersistenceData) { - let nameMenus = document.querySelectorAll('ul.clickMenu li a'); //Dentro de mi variable voy a meterme dentro del a que es donde tengo c.u de los nombres de mi navbar - nameMenus.forEach(function(viewMenus) { //en una nueva variable hago un forEach con un parámetro dentro de la función - viewMenus.addEventListener('click', function(clickedMenu) { //llamo el parámetro en este caso es (viewMenus)en el cual en el addEventListener le digo que escuche el click con una función a la que le pongo también un parámetro por nombre (clickedMenu) + let nameMenus = document.querySelectorAll('ul.clickMenu li a'); + nameMenus.forEach(function(viewMenus) { + viewMenus.addEventListener('click', function(clickedMenu) { clickedMenu.preventDefault(); - let userClickMenu = clickedMenu.target.dataset.nav; //creo una nueva variable que va a ser igual al parámetro anterior (clickedMenu) en donde con target.dataset estaría llamando a data-nav que declaré en mi html - if (userClickMenu == "/Foro") { //aquí en mi if le coloco la condición en donde si le doy click a foro me lleve a ver el foro y así sucesivamente + let userClickMenu = clickedMenu.target.dataset.nav; + if (userClickMenu == "/Foro") { viewForum(obtainingPersistenceData) .then(function() { publicPost(obtainingPersistenceData); diff --git a/src/functions/deletepost.js b/src/functions/deletepost.js deleted file mode 100644 index 17b8c556..00000000 --- a/src/functions/deletepost.js +++ /dev/null @@ -1,21 +0,0 @@ - let elems = document.querySelectorAll('.fixed-action-btn'); - let instances = M.FloatingActionButton.init(elems, { - direction: 'right', - hoverEnabled: false - }); -let deleteComments = document.querySelectorAll('.deletePostUser'); - -deleteComments.forEach(function(deleteComment) { - deleteComment.addEventListener('click', function(clickedPoints) { - console.log(clickedPoints.target.dataset.id); - db.collection('pruebas_300420_Esther').doc(clickedPoints.target.dataset.id).delete() - .then(function() { - alert('Post borrado exitosamente'); //AQUI VA LA COLECCION QUE TENGAS TU - }) - .catch(function(error) { - alert('Error removing post: ', error); - }); - }); -}); - -export { deleteComments } \ No newline at end of file diff --git a/src/functions/editpost.js b/src/functions/editpost.js deleted file mode 100644 index e9bb7bab..00000000 --- a/src/functions/editpost.js +++ /dev/null @@ -1,55 +0,0 @@ -let elems = document.querySelectorAll('.fixed-action-btn'); -let instances = M.FloatingActionButton.init(elems, { - direction: 'right', - hoverEnabled: false -}); - -let editComments = document.querySelectorAll('.editPostUser'); //vendría siendo editPostUser= a la clase del boton del icono editar -editComments.forEach(function(editComment) { - editComment.addEventListener('click', function(clickedPencil) { - // console.log(clickedPoints.target.dataset.id); - let postForEdition = db.collection("pruebas_300420_Esther").doc(clickedPencil.target.dataset.id); //AQUI VA LA COLECCION QUE TENGAS TU - // console.log(clickedPoints.target.dataset.id) - - let publicEditPost = document.querySelector('#newPostPublish-' + clickedPencil.target.dataset.id); //este es el id del boton de checkado - let box = document.querySelector('.editTextPostUser-' + clickedPencil.target.dataset.id); //mi textarea - box.style.display = 'block'; //estoy incando que cuando el usuario le de click al boton de editar se muestre la texarea - let buttonCheck = document.querySelector('.publicationedit-' + clickedPencil.target.dataset.id); //es donde tengo los botones de la nueva foto y del check - buttonCheck.style.display = 'block'; - - let fileEdit = document.querySelector('#newEditPost-' + clickedPencil.target.dataset.id); //variable para la prueba de subir imagen - let imageUrl = ''; - fileEdit.onchange = answerChangeImage => { - console.log(answerChangeImage); - - let editedFile = answerChangeImage.target.files[0]; - firebase.storage().ref("devpost").child(editedFile.name).put(editedFile) - .then(snap => { - return snap.ref.getDownloadURL() //conseguir el link de la imagen. Retornas la promesa y concatenas el otro then - }) - .then(link => { - imageUrl = link; - let img = document.createElement('img'); - img.src = imageUrl; - document.body.appendChild(img); - document.getElementById("showComment").appendChild(img); //aquí va el preview de mi imagen antes de dar click en publicar - }); - }; - - publicEditPost.onclick = function() { - return postForEdition.update({ - texto: box.value, - img: imageUrl, - }) - .then(function() { - console.log("Post acutualizado!!"); - }) - .catch(function(error) { - // The document probably doesn't exist. - console.error("Error updating document: ", error); - }); - }; - }); -}); - -export { editComments } \ No newline at end of file diff --git a/src/functions/loginfacebook.js b/src/functions/loginfacebook.js index 8ca7d31e..5d8e65ba 100644 --- a/src/functions/loginfacebook.js +++ b/src/functions/loginfacebook.js @@ -1,5 +1,4 @@ -// En esta parte hago la funcion que va tener mi boton al hacer click -// en entar a la aplicación en esta parte la que me hace entrar a la app con facebook (facebook) +//Login with Facebook function facebookButton() { let provider = new firebase.auth.FacebookAuthProvider(); let movilIcon = document.getElementById('movilIcon'); @@ -15,19 +14,16 @@ function facebookButton() { .then(function() { publicPost(); }).then(function() { - localStorage.setItem('userdata', JSON.stringify(user)); //aquí le digo que guarde como un json formateado mi objeto + localStorage.setItem('userdata', JSON.stringify(user)); }) movilIcon.classList.add('shown'); document.getElementById('hideAndShow').style.display = 'block'; }) .catch(function(error) { console.log(error); - // Handle Errors here. let errorCode = error.code; let errorMessage = error.message; - // The email of the user's account used. let email = error.email; - // The firebase.auth.AuthCredential type that was used. let credential = error.credential; }); }; diff --git a/src/functions/logingoogle.js b/src/functions/logingoogle.js index cb5aec2d..27c5c51e 100644 --- a/src/functions/logingoogle.js +++ b/src/functions/logingoogle.js @@ -1,8 +1,5 @@ -// En esta parte hago la funcion que va tener mi boton al hacer click -// en entar a la aplicación en esta parte la que me hace entrar a la app con google (google) +//Login with Google Acount function googleButton() { - // Aquí se crea una instancia del objeto del proveedor de Google y facebook - // esta instancia es para que me redireccione a google o de facebook, es la parte que me lleva a ellos. let provider = new firebase.auth.GoogleAuthProvider(); let movilIcon = document.getElementById('movilIcon'); @@ -17,20 +14,16 @@ function googleButton() { .then(function() { publicPost(); }).then(function() { - localStorage.setItem('userdata', JSON.stringify(user)); //aquí le digo que guarde como un json formateado mi objeto, esa data.user la bautizo como user data que es lo que estoy colocando arriba + localStorage.setItem('userdata', JSON.stringify(user)); }) document.getElementById('hideAndShow').style.display = 'block'; movilIcon.classList.add('shown'); - // ... + }).catch(function(error) { - // Handle Errors here. let errorCode = error.code; let errorMessage = error.message; - // The email of the user's account used. let email = error.email; - // The firebase.auth.AuthCredential type that was used. let credential = error.credential; - // ... }); }; diff --git a/src/functions/loginpageone.js b/src/functions/loginpageone.js index 03b0d478..9ba9ce06 100644 --- a/src/functions/loginpageone.js +++ b/src/functions/loginpageone.js @@ -1,10 +1,9 @@ +//Page one Login import { viewForum } from '../view/fuorum.js'; import { readPosts } from './readposts.js'; import { clickMenus } from './clickmenus.js'; import { publicPost, addNewPost } from './publicpoust.js'; -// En esta parte hago la funcion que va tener mi boton al hacer click -// en entar a la aplicación en esta parte la que me hace entrar a la app (login) function loginPageOne() { let email = document.getElementById('email').value; let pass = document.getElementById('pass').value; @@ -18,19 +17,17 @@ function loginPageOne() { readPosts(); }) .then(function() { - localStorage.setItem('userdata', JSON.stringify(data.user)); //aquí le digo que guarde como un json formateado mi objeto. su parametro es su nombre el segundo lo que vale + localStorage.setItem('userdata', JSON.stringify(data.user)); }); + document.getElementById('hideAndShow').style.display = 'block'; movilIcon.classList.add('shown'); }) .catch(function(error) { alert('Los datos ingresados no son correctos'); - // Handle Errors here. puedo hacer algo despues del login, si salio mal let errorCode = error.code; let errorMessage = error.message; alert(errorMessage); - // borrar o cambiar la pantalla - //renderLogin() }); let cred = firebase.auth.EmailAuthProvider.credential(email, pass); } diff --git a/src/functions/logout.js b/src/functions/logout.js index 07cb9fea..64df090a 100644 --- a/src/functions/logout.js +++ b/src/functions/logout.js @@ -1,9 +1,9 @@ +//Log out import { viewLogin } from '../view/login.js'; import { loginPageOne } from './loginpageone.js'; import { viewRegister } from '../view/register.js'; import { register } from './register.js'; -// ******** LOG OUT FUNCTION function out() { console.log('revisando out'); @@ -15,19 +15,17 @@ function out() { .then(function() { viewLogin() .then(function() { - localStorage.setItem('userdata', null); //aquí le digo que guarde como un json formateado mi objeto + localStorage.setItem('userdata', null); }) .then(function() { - // En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el login let buttonLogin = document.querySelector('#doLogin'); buttonLogin.addEventListener('click', function(e) { e.preventDefault(); - loginPageOne(); - + loginPageOne(); movilIcon.classList.add('shown'); }); - }).then(function() { - // En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el ingreso con google + }) + .then(function() { let buttonGoogle = document.querySelector('#loginGoogle'); buttonGoogle.addEventListener('click', function(e) { e.preventDefault(); @@ -35,8 +33,6 @@ function out() { }); }) .then(function() { - // En esta parte creo una variable en donde voy a llamar a mi id al - // que quiero darle el click en este caso el ingreso con facebook let buttonFacebook = document.querySelector('#loginFacebook'); buttonFacebook.addEventListener('click', function(e) { e.preventDefault(); @@ -64,7 +60,6 @@ function out() { }) .catch(function(error) { console.log(error); - }); }; diff --git a/src/functions/publicpoust.js b/src/functions/publicpoust.js index f43fac16..f6ea3acb 100644 --- a/src/functions/publicpoust.js +++ b/src/functions/publicpoust.js @@ -1,41 +1,39 @@ -//traer la informacion del post cuando se le da clic en el boton +//Public Post function publicPost(user) { - //console.log(user) - let fileInput = document.getElementById('myNewFile'); //variable para la prueba de subir imagen + let fileInput = document.getElementById('myNewFile'); let imageUrl = ''; fileInput.onchange = respuestaCambioImagen => { - console.log(respuestaCambioImagen); let file = respuestaCambioImagen.target.files[0]; firebase.storage().ref("devpost").child(file.name).put(file) - .then(snap => { //¿Donde esta el archivo? En file.name - return snap.ref.getDownloadURL(); //conseguir el link de la imagen. Retornas la promesa y concatenas el otro then + .then(snap => { + return snap.ref.getDownloadURL(); }) .then(link => { imageUrl = link; let img = document.createElement('img'); img.src = imageUrl; document.body.appendChild(img); - document.getElementById("showComment").appendChild(img); //aquí va el preview de mi imagen antes de dar click en publicar + document.getElementById("showComment").appendChild(img); }); }; let publicPost = document.getElementById('publish'); + publicPost.onclick = function() { - let text = document.getElementById('userCommit'); //variable con id en donde se pintaran los post, textArea - // traer el texto + let text = document.getElementById('userCommit'); console.log(user); let post = { texto: text.value, user: user.displayName, date: new Date(), - img: imageUrl, //variable global, aqui se almacena la imagen cuando ya se tiene el link que envio la funcion onchange + img: imageUrl, mail: user.email, photo: user.photoURL, uid: user.uid, } addNewPost(post) - .then(function(post) { //esto es la promesa - alert('Post publicado') //este es el resultado de la promesa + .then(function(post) { + alert('Post publicado'); }) .then(function() { text.value = ""; @@ -44,15 +42,15 @@ function publicPost(user) { imageUrl = ""; }) .catch(err => { - console.log(err); //esto es el error cuando la respuesta es negativa + console.log(err); }); }; }; -//pasar a la funcion el objeto que se encuentra en la base de datos de firebase + function addNewPost(post) { console.log(post); - let postsRef = db.collection('pruebas_300420_Esther') //se llama post porque asi se llama nuestra coleccion en Database , le podemos llamar como queramos + let postsRef = db.collection('pruebas_300420_Esther'); return postsRef.add(post); -} +}; export { publicPost, addNewPost } \ No newline at end of file diff --git a/src/functions/readposts.js b/src/functions/readposts.js index 31638295..849fce48 100644 --- a/src/functions/readposts.js +++ b/src/functions/readposts.js @@ -1,22 +1,19 @@ +//Read Post import { buildComent } from '../view/coment.js'; -//import { deleteComments } from './deletepost.js'; -//import { editComments } from './editpost.js' -//leer coleccion de post -//AQUIII ESTAN LAS FUNCIONES DE EDITAR Y BORRAR POST EN COMENT.JS HICIMOS LOS CAMBIOS QUE TIENEN QUE VER CON ESTO function readPosts() { - let EmailCortado = 'No hay email'; - let postsRef = db.collection('pruebas_300420_Esther') //se llama post porque asi se llama nuestra coleccion en Database , le podemos llamar como queramos + let emailCortado = 'No hay email'; + let postsRef = db.collection('pruebas_300420_Esther'); postsRef.orderBy('date', 'desc').onSnapshot(snap => { - let publishPust = document.querySelector('#showComment') - publishPust.innerHTML = '' + let publishPust = document.querySelector('#showComment'); + publishPust.innerHTML = ''; snap.forEach(doc => { if (typeof doc.data().mail != 'undefined') { let email = doc.data().mail; let divisiones = email.split("@"); - EmailCortado = divisiones[0]; - } //mi condicion si, si está ponlo si no está pon el mail - let nombre = doc.data().user ? doc.data().user : EmailCortado; + emailCortado = divisiones[0]; + }; + let nombre = doc.data().user ? doc.data().user : emailCortado; let image = doc.data().photo ? doc.data().photo : "images/profile-picture-green.jpg"; let div = buildComent(image, nombre, doc.data().img, doc.data().texto, doc.id); let nodo = document.createElement('div') @@ -24,15 +21,10 @@ function readPosts() { publishPust.appendChild(nodo); }); - /* deleteComments(); - editComments(); - */ - -/****** MODULO DE EDITAR Y BORRAR COMENTARIOS *********/ - +//Delete Post let elems = document.querySelectorAll('.fixed-action-btn'); let instances = M.FloatingActionButton.init(elems, { - direction: 'right', + direction: 'bottom', hoverEnabled: false }); @@ -40,68 +32,59 @@ function readPosts() { deleteComments.forEach(function(deleteComment) { deleteComment.addEventListener('click', function(clickedPoints) { - console.log(clickedPoints.target.dataset.id); db.collection('pruebas_300420_Esther').doc(clickedPoints.target.dataset.id).delete() .then(function() { - alert('Post borrado exitosamente'); //AQUI VA LA COLECCION QUE TENGAS TU - }).catch(function(error) { + alert('Post borrado exitosamente'); + }) + .catch(function(error) { alert('Error removing post: ', error); }); }); }); - let editComments = document.querySelectorAll('.editPostUser'); //vendría siendo editPostUser= a la clase del boton del icono editar +//Edit Post + let editComments = document.querySelectorAll('.editPostUser'); editComments.forEach(function(editComment) { editComment.addEventListener('click', function(clickedPencil) { - // console.log(clickedPoints.target.dataset.id); - let postForEdition = db.collection("pruebas_300420_Esther").doc(clickedPencil.target.dataset.id); //AQUI VA LA COLECCION QUE TENGAS TU - // console.log(clickedPoints.target.dataset.id) - - let publicEditPost = document.querySelector('#newPostPublish-' + clickedPencil.target.dataset.id); //este es el id del boton de checkado - let box = document.querySelector('.editTextPostUser-' + clickedPencil.target.dataset.id); //mi textarea - box.style.display = 'block'; //estoy incando que cuando el usuario le de click al boton de editar se muestre la texarea - let buttonCheck = document.querySelector('.publicationedit-' + clickedPencil.target.dataset.id); //es donde tengo los botones de la nueva foto y del check + let postForEdition = db.collection("pruebas_300420_Esther").doc(clickedPencil.target.dataset.id); + let publicEditPost = document.querySelector('#newPostPublish-' + clickedPencil.target.dataset.id); + let box = document.querySelector('.editTextPostUser-' + clickedPencil.target.dataset.id); + box.style.display = 'block'; + let buttonCheck = document.querySelector('.publicationedit-' + clickedPencil.target.dataset.id); buttonCheck.style.display = 'block'; - - let fileEdit = document.querySelector('#newEditPost-' + clickedPencil.target.dataset.id); //variable para la prueba de subir imagen + let fileEdit = document.querySelector('#newEditPost-' + clickedPencil.target.dataset.id); let imageUrl = ''; fileEdit.onchange = answerChangeImage => { - console.log(answerChangeImage); - let editedFile = answerChangeImage.target.files[0] firebase.storage().ref("devpost").child(editedFile.name).put(editedFile) .then(snap => { - return snap.ref.getDownloadURL() //conseguir el link de la imagen. Retornas la promesa y concatenas el otro then + return snap.ref.getDownloadURL(); }) .then(link => { imageUrl = link let img = document.createElement('img'); img.src = imageUrl; document.body.appendChild(img); - document.getElementById("showComment").appendChild(img); //aquí va el preview de mi imagen antes de dar click en publicar - }) - } + document.getElementById("showComment").appendChild(img); + }); + }; publicEditPost.onclick = function() { - return postForEdition.update({ texto: box.value, img: imageUrl, - }) .then(function() { alert("Post editado exitosamente!!"); }) .catch(function(error) { - // The document probably doesn't exist. console.error("Error updating document: ", error); }); }; }); }); - }); //POSTREF - -}; //READPOST + }); +}; export { readPosts } diff --git a/src/functions/register.js b/src/functions/register.js index 6d0f2daa..bb9b427e 100644 --- a/src/functions/register.js +++ b/src/functions/register.js @@ -1,3 +1,4 @@ +//Registry import { clickMenus } from './clickmenus.js'; import { viewForum } from '../view/fuorum.js'; import { publicPost } from './publicpoust.js'; @@ -9,8 +10,6 @@ function register() { let registerPassLogin2 = document.getElementById('registerLoginPass2').value; let registerConfirmPassLogin2 = document.getElementById('registerLoginConfirmPass2').value; let movilIcon = document.getElementById('movilIcon'); - - console.log(registerNameLogin2); if (registerPassLogin2 != registerConfirmPassLogin2) { alert('Las contraseñas deben coincidir'); @@ -25,7 +24,6 @@ function register() { movilIcon.classList.add('shown'); }) .catch(function(error) { - // Handle Errors here. let errorCode = error.code; let errorMessage = error.message; if (errorCode == 'auth/weak-password') { diff --git a/src/index.html b/src/index.html index 324f582e..d8c3e6fd 100644 --- a/src/index.html +++ b/src/index.html @@ -9,7 +9,6 @@ - CodeDev @@ -49,9 +48,7 @@ - - \ No newline at end of file diff --git a/src/index.js b/src/index.js index 4757e52b..a48a485a 100644 --- a/src/index.js +++ b/src/index.js @@ -1,4 +1,4 @@ -//*********** views ********** +// Views import { viewLogin } from './view/login.js'; import { viewRegister } from './view/register.js'; import { viewForum } from './view/fuorum.js'; @@ -6,7 +6,7 @@ import { editionOfProfile } from './view/editprofile.js'; import { viewProfile } from './view/profile.js'; import { buildComent } from './view/coment.js'; -//********** functions ********** +// Functions import { loginPageOne } from './functions/loginpageone.js'; import { googleButton } from './functions/logingoogle.js'; import { facebookButton } from './functions/loginfacebook.js'; @@ -15,29 +15,24 @@ import { register } from './functions/register.js'; import { readPosts } from './functions/readposts.js'; import { clickMenus } from './functions/clickmenus.js'; import { publicPost, addNewPost } from './functions/publicpoust.js'; -import { deleteComments } from './functions/deletepost.js'; -import { editComments } from './functions/editpost.js'; -// *************** CODIGO DE ARRANQUE O INICIO ************** + +// Start Code document.addEventListener("DOMContentLoaded", function() { - let obtainingPersistenceData = JSON.parse(localStorage.getItem('userdata')); //aquí lo obtengo.GET ITEM es para que local me muestre la data si existe dentro de ella - if (obtainingPersistenceData == null) { //no hay localStorage - // console.log('Keep Calm', obtainingPersistenceData); + let obtainingPersistenceData = JSON.parse(localStorage.getItem('userdata')); + if (obtainingPersistenceData == null) { document.getElementById('hideAndShow').style.display = 'none'; document.getElementById('movilIcon').style.display = 'none'; viewLogin() .then(function() { - // En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el login let buttonLogin = document.querySelector('#doLogin'); buttonLogin.addEventListener('click', function(e) { e.preventDefault(); loginPageOne(); - movilIcon.classList.add('shown'); }); }).then(function() { - // En esta parte creo una variable en donde voy a llamar a mi id al que quiero darle el click en este caso el ingreso con google let buttonGoogle = document.querySelector('#loginGoogle'); buttonGoogle.addEventListener('click', function(e) { e.preventDefault(); @@ -45,8 +40,6 @@ document.addEventListener("DOMContentLoaded", function() { }); }) .then(function() { - // En esta parte creo una variable en donde voy a llamar a mi id al - // que quiero darle el click en este caso el ingreso con facebook let buttonFacebook = document.querySelector('#loginFacebook'); buttonFacebook.addEventListener('click', function(e) { e.preventDefault(); @@ -82,7 +75,7 @@ document.addEventListener("DOMContentLoaded", function() { } }) -// Navegador en móvil +// Mobile Browser document.addEventListener('DOMContentLoaded', function() { let elems = document.querySelectorAll('.sidenav'); let instances = M.Sidenav.init(elems); diff --git a/src/style.css b/src/style.css index ffeda5ce..bd6f3d7b 100644 --- a/src/style.css +++ b/src/style.css @@ -164,7 +164,7 @@ ol { } -/*empezamos con los estilos generales*/ +/*Gneral Styles*/ @import url('https://fonts.googleapis.com/css?family=Zhi+Mang+Xing&display=swap'); body { @@ -175,11 +175,8 @@ body { * { margin: 0px; - /*quitamos todos los margenes*/ padding: 0px; - /*quitamos los rellemos*/ box-sizing: border-box; - /*nos permite incluir el relleno y el borde en el ancho y alto total de un elemento.*/ } .nav-wrapper { @@ -404,7 +401,7 @@ ul#mobile-demo { } -/******** Página 2 editar perfil **********/ +/* Page 2 edit profil */ p.chip.boxStyle2 { background: #b87df75c; @@ -457,7 +454,6 @@ button.waves-effect.waves-light.btn-small.btn-login { .intro { text-align: center; - /* padding-top: 20px; */ font-size: 1.2em; line-height: 25px; } @@ -521,7 +517,6 @@ button.waves-effect.waves-light.btn-small.btn-login { font-size: 1.1em; text-align: center; line-height: 20px; - /* margin-bottom: 25px; */ margin: 25px auto; } @@ -632,14 +627,8 @@ div#showComment { .fixed-action-btn { position: relative; padding-top: 0; - /* display: contents; */ } -/* .fixed-action-btn.direction-right ul, -.publicationedit { - display: inline-grid; -} */ - .onBox { display: none; } @@ -656,7 +645,7 @@ label.waves-effect.waves-light.btn-small { } -/* *********MediasQuerys*********** */ +/* ********* Medias Querys *********** */ @media (min-width: 1280px) { input.validate.user.boxEmail, @@ -668,31 +657,39 @@ label.waves-effect.waves-light.btn-small { input.validatePassword.boxFields { max-width: 50%; } + a.waves-effect.waves-light.btn.center.iconWeb1, a.waves-effect.waves-light.btn.center.iconWeb2 { max-width: 20%; } + textarea.comentUser { max-width: 40%; } + p.chip.boxStyle2 { margin-left: 40px; } + .informationBox { display: flex; justify-content: center; align-items: center; } + .comentsAndLikes { display: flex; justify-content: center; } + .chip.boxStyle { width: 30%; } + .sidenav-trigger { display: none; } + div#picturePerfect img { max-width: 80%; height: auto; @@ -700,6 +697,7 @@ label.waves-effect.waves-light.btn-small { border-radius: 8PX; margin: 13%; } + div#showComment { text-align: center; } diff --git a/src/view/editprofile.js b/src/view/editprofile.js index ee1aad17..1ed776b0 100644 --- a/src/view/editprofile.js +++ b/src/view/editprofile.js @@ -1,12 +1,12 @@ function editionOfProfile(user) { - console.log(user); + //console.log(user); - let EmailCortado = 'No hay email'; + let emailCortado = 'No email'; if (typeof user != 'undefined') { let email = user.email; let divisiones = email.split("@"); - EmailCortado = divisiones[0]; + emailCortado = divisiones[0]; }; let image = "images/profile-picture-green.jpg"; @@ -16,7 +16,6 @@ function editionOfProfile(user) { return new Promise(function(resolve, rejected) { let editProfileVieView = ` -

    Editar Perfil

    @@ -27,7 +26,7 @@ function editionOfProfile(user) {

    Cambiar foto

    - ${EmailCortado} + ${emailCortado}
    diff --git a/src/view/fuorum.js b/src/view/fuorum.js index a112a0d3..c6fd5396 100644 --- a/src/view/fuorum.js +++ b/src/view/fuorum.js @@ -1,12 +1,12 @@ function viewForum(user) { - console.log(user); + //console.log(user); - let EmailCortado = 'No hay email'; + let emailCortado = 'No email'; if (typeof user != 'undefined') { let email = user.email; let divisiones = email.split("@"); - EmailCortado = divisiones[0]; + emailCortado = divisiones[0]; } let image = "images/profile-picture-green.jpg"; @@ -14,7 +14,7 @@ function viewForum(user) { image = user.photoURL; } return new Promise(function(resolve, rejected) { - let forumView = ` + let forumView = `
    @@ -24,7 +24,7 @@ function viewForum(user) {
    - ${EmailCortado} + ${emailCortado} edit
    Profesión
    diff --git a/src/view/profile.js b/src/view/profile.js index 866d2d0b..98da7348 100644 --- a/src/view/profile.js +++ b/src/view/profile.js @@ -1,11 +1,11 @@ function viewProfile(user) { console.log(user); - let EmailCortado = 'No hay email'; + let emailCortado = 'No email'; if (typeof user != 'undefined') { let email = user.email; let divisiones = email.split("@"); - EmailCortado = divisiones[0]; + emailCortado = divisiones[0]; } let image = "images/profile-picture-green.jpg"; @@ -14,7 +14,6 @@ function viewProfile(user) { } return new Promise(function(resolve, rejected) { let profileView = ` -
    @@ -42,7 +41,7 @@ function viewProfile(user) {
    Contact Person -

    ${EmailCortado}

    +

    ${emailCortado}

    more_vert diff --git a/src/view/register.js b/src/view/register.js index f10e6b88..e9019075 100644 --- a/src/view/register.js +++ b/src/view/register.js @@ -1,7 +1,6 @@ function viewRegister() { return new Promise(function(resolve, rejected) { let registerView = ` -
    From 0a5d73ae8b38432b4e8cc8c136c3cdba577c18f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Esther=20Manrique=20Gonz=C3=A1lez?= Date: Mon, 4 May 2020 16:22:58 -0500 Subject: [PATCH 38/66] Add changes about almost finished --- src/functions/clickmenus.js | 6 ++- src/functions/editprofile.js | 83 ++++++++++++++++++++++++++++++ src/functions/loginfacebook.js | 3 +- src/functions/logingoogle.js | 5 +- src/functions/logout.js | 2 +- src/functions/publicpoust.js | 2 +- src/functions/readposts.js | 10 ++-- src/functions/register.js | 2 + src/index.js | 10 ++-- src/style.css | 93 ++++++++++++++++++++++------------ src/view/coment.js | 66 +++++++++++++++--------- src/view/editprofile.js | 46 ++++++++++------- src/view/fuorum.js | 14 +++-- src/view/profile.js | 4 +- 14 files changed, 251 insertions(+), 95 deletions(-) create mode 100644 src/functions/editprofile.js diff --git a/src/functions/clickmenus.js b/src/functions/clickmenus.js index 3c33f545..6b5817a8 100644 --- a/src/functions/clickmenus.js +++ b/src/functions/clickmenus.js @@ -4,6 +4,7 @@ import { editionOfProfile } from '../view/editprofile.js'; import { viewForum } from '../view/fuorum.js'; import { publicPost, addNewPost } from './publicpoust.js'; import { readPosts } from './readposts.js'; +import { editProfileUser } from './editprofile.js'; function clickMenus(obtainingPersistenceData) { let nameMenus = document.querySelectorAll('ul.clickMenu li a'); @@ -22,7 +23,10 @@ function clickMenus(obtainingPersistenceData) { viewProfile(obtainingPersistenceData); window.history.pushState('perfil', 'Perfil', '/Perfil'); } else if (userClickMenu == "/editarPerfil") { - editionOfProfile(obtainingPersistenceData); + editionOfProfile(obtainingPersistenceData) + .then(function() { + editProfileUser(obtainingPersistenceData); + }); window.history.pushState('Editar Perfil', 'Editar Perfil', '/EditarPerfil'); } else if (userClickMenu == "/cerrarSesion") { out(); diff --git a/src/functions/editprofile.js b/src/functions/editprofile.js new file mode 100644 index 00000000..cfecd780 --- /dev/null +++ b/src/functions/editprofile.js @@ -0,0 +1,83 @@ +import { viewProfile } from '../view/profile.js'; +import { clickMenus } from './clickmenus.js'; + +function editProfileUser(user) { + let savesChanges = document.getElementById('saveChangesButton'); + let profilePictureInput = document.getElementById('newProfilePhoto'); //aquí pongo en id del input donde voy dar click para entrar a carpeta que muestra imágenes + let imageUrl = ''; //la variable está vacia,porque solamente cuando el usuario mande una imagen y la imagen sea subida a firebase, tendremos solo así el link. En caso de que el usuario ponga una imagen se llenará. + + profilePictureInput.onchange = changeProfilePhoto => { + console.log(changeProfilePhoto); + + let file = changeProfilePhoto.target.files[0]; + firebase.storage().ref("devpost").child(file.name).put(file) //le digo a firebase que voy a ocupar su servicio de storage haciendo referencia a la carpeta devpost y que voy a declarar un hijito como mi file que ya declaramos arriba .name ahí entramos a la propiedad name de file, y luego le decimos quiero poner que es PUT este archivo(file) y es tal cual todo el objeto del archivo + .then(snap => { ///cuando ya sea exitoso snap es el que me va a retornar la respuesta del storage de firebase + return snap.ref.getDownloadURL() //retorname el ref y la url de descarga de mi imagen que acabo de subir a tu servicio, esta url la recibe la siguiente promesa como link + }) + .then(link => { //entonces..Si todo exitoso: + console.log(link) + imageUrl = link; //devuelveme la url de esta imagen que subiste + let img = document.getElementById('userPhoto'); //recueparmos la imagen con su id + img.src = imageUrl; //y le decimos que su srrc va ser igual a esa imagen y ya se ve el preview en el circulito + }); + }; + + savesChanges.onclick = function() { + + let callName = document.querySelector('#changeName'); + let callProfession = document.querySelector('#changeProfession'); + + let editDataProfile = { + user: callName.value, + job: callProfession.value, + img: imageUrl, + uid: user.uid, + }; + + addInformationProfileEdit(editDataProfile) + .then(function() { + // Get the existing data + var existing = localStorage.getItem('userdata'); + // If no existing data, create an array + // Otherwise, convert the localStorage string to an array + existing = existing ? JSON.parse(existing) : {}; //un objeto vacio en el caso de que no haya para yo llenarlo + // Add new data to localStorage Array + existing['displayName'] = editDataProfile.user; + existing['job'] = editDataProfile.job; + existing['photoURL'] = editDataProfile.img; + // Save back to localStorage + localStorage.setItem('userdata', JSON.stringify(existing)); + return existing; + }) + .then(function(existing) { //esto es la promesa + alert('se guardaron los datos') //este es el resultado de la promesa + viewProfile(existing); + clickMenus(existing); + updatePostPic(user.uid, imageUrl) + }) + .catch(err => { + console.log(err) //esto es el error cuando la respuesta es negativa + }); + }; + +}; + +function addInformationProfileEdit(editDataProfile) { + console.log(editDataProfile); + return firebase.database().ref('users/' + editDataProfile.uid).set(editDataProfile); +} + +function updatePostPic(uid, photo) { + return db.collection("probando render 2").where("uid", "==", uid) + .get() + .then(function(resultAllPost) { + resultAllPost.forEach(function(post) { + db.collection("probando render 2").doc(post.id).update({ + photo: photo, + }); + }); + }); + +}; + +export { editProfileUser } \ No newline at end of file diff --git a/src/functions/loginfacebook.js b/src/functions/loginfacebook.js index 5d8e65ba..e22729f4 100644 --- a/src/functions/loginfacebook.js +++ b/src/functions/loginfacebook.js @@ -13,7 +13,8 @@ function facebookButton() { viewForum(user) .then(function() { publicPost(); - }).then(function() { + }) + .then(function() { localStorage.setItem('userdata', JSON.stringify(user)); }) movilIcon.classList.add('shown'); diff --git a/src/functions/logingoogle.js b/src/functions/logingoogle.js index 27c5c51e..fb22456c 100644 --- a/src/functions/logingoogle.js +++ b/src/functions/logingoogle.js @@ -13,9 +13,10 @@ function googleButton() { viewForum(user) .then(function() { publicPost(); - }).then(function() { - localStorage.setItem('userdata', JSON.stringify(user)); }) + .then(function() { + localStorage.setItem('userdata', JSON.stringify(user)); + }); document.getElementById('hideAndShow').style.display = 'block'; movilIcon.classList.add('shown'); diff --git a/src/functions/logout.js b/src/functions/logout.js index 64df090a..9d8ae44a 100644 --- a/src/functions/logout.js +++ b/src/functions/logout.js @@ -54,7 +54,7 @@ function out() { }); }); }); - }) + }); window.history.pushState('cerrar sesion', 'cerrar sesion', '/'); }) diff --git a/src/functions/publicpoust.js b/src/functions/publicpoust.js index f6ea3acb..1c734ba2 100644 --- a/src/functions/publicpoust.js +++ b/src/functions/publicpoust.js @@ -49,7 +49,7 @@ function publicPost(user) { function addNewPost(post) { console.log(post); - let postsRef = db.collection('pruebas_300420_Esther'); + let postsRef = db.collection('pruebas_020520'); return postsRef.add(post); }; diff --git a/src/functions/readposts.js b/src/functions/readposts.js index 849fce48..591ba5aa 100644 --- a/src/functions/readposts.js +++ b/src/functions/readposts.js @@ -3,7 +3,7 @@ import { buildComent } from '../view/coment.js'; function readPosts() { let emailCortado = 'No hay email'; - let postsRef = db.collection('pruebas_300420_Esther'); + let postsRef = db.collection('pruebas_020520'); postsRef.orderBy('date', 'desc').onSnapshot(snap => { let publishPust = document.querySelector('#showComment'); publishPust.innerHTML = ''; @@ -24,7 +24,7 @@ function readPosts() { //Delete Post let elems = document.querySelectorAll('.fixed-action-btn'); let instances = M.FloatingActionButton.init(elems, { - direction: 'bottom', + direction: 'right', hoverEnabled: false }); @@ -32,7 +32,7 @@ function readPosts() { deleteComments.forEach(function(deleteComment) { deleteComment.addEventListener('click', function(clickedPoints) { - db.collection('pruebas_300420_Esther').doc(clickedPoints.target.dataset.id).delete() + db.collection('pruebas_020520').doc(clickedPoints.target.dataset.id).delete() .then(function() { alert('Post borrado exitosamente'); }) @@ -46,7 +46,7 @@ function readPosts() { let editComments = document.querySelectorAll('.editPostUser'); editComments.forEach(function(editComment) { editComment.addEventListener('click', function(clickedPencil) { - let postForEdition = db.collection("pruebas_300420_Esther").doc(clickedPencil.target.dataset.id); + let postForEdition = db.collection("pruebas_020520").doc(clickedPencil.target.dataset.id); let publicEditPost = document.querySelector('#newPostPublish-' + clickedPencil.target.dataset.id); let box = document.querySelector('.editTextPostUser-' + clickedPencil.target.dataset.id); box.style.display = 'block'; @@ -72,7 +72,7 @@ function readPosts() { publicEditPost.onclick = function() { return postForEdition.update({ texto: box.value, - img: imageUrl, + //img: imageUrl, }) .then(function() { alert("Post editado exitosamente!!"); diff --git a/src/functions/register.js b/src/functions/register.js index bb9b427e..b4662ce8 100644 --- a/src/functions/register.js +++ b/src/functions/register.js @@ -10,6 +10,8 @@ function register() { let registerPassLogin2 = document.getElementById('registerLoginPass2').value; let registerConfirmPassLogin2 = document.getElementById('registerLoginConfirmPass2').value; let movilIcon = document.getElementById('movilIcon'); + console.log(registerNameLogin2); + if (registerPassLogin2 != registerConfirmPassLogin2) { alert('Las contraseñas deben coincidir'); diff --git a/src/index.js b/src/index.js index a48a485a..878850ec 100644 --- a/src/index.js +++ b/src/index.js @@ -15,6 +15,7 @@ import { register } from './functions/register.js'; import { readPosts } from './functions/readposts.js'; import { clickMenus } from './functions/clickmenus.js'; import { publicPost, addNewPost } from './functions/publicpoust.js'; +import { editProfileUser } from './functions/editprofile.js' // Start Code @@ -67,13 +68,14 @@ document.addEventListener("DOMContentLoaded", function() { viewForum(obtainingPersistenceData) .then(function() { publicPost(obtainingPersistenceData); - readPosts(); + readPosts(obtainingPersistenceData); + //editProfileUser(obtainingPersistenceData); - }) + }); document.getElementById('hideAndShow').style.display = 'block'; movilIcon.classList.add('shown'); - } -}) + }; +}); // Mobile Browser document.addEventListener('DOMContentLoaded', function() { diff --git a/src/style.css b/src/style.css index bd6f3d7b..63442a6d 100644 --- a/src/style.css +++ b/src/style.css @@ -179,10 +179,6 @@ body { box-sizing: border-box; } -.nav-wrapper { - margin-bottom: 20px; -} - .navletters { color: #a7a7a7; font-weight: bolder; @@ -297,21 +293,8 @@ img.responsive-img.mySecondImage { display: inline-block; } -i.fas.fa-globe-americas { - text-align: right; - padding-left: 40px; - color: #6a1b9a; -} - -.points { - color: red; - padding-left: 30px; - text-align: right; - cursor: pointer; -} - button.waves-effect.waves-light.btn-small.btn-enter { - background-color: #662483; + background-color: green; opacity: 0.9; } @@ -361,11 +344,6 @@ i.material-icons.left.like { padding-bottom: 25px; } -.informationBox { - display: flex; - align-items: center; -} - .chip.boxStyle { background: #b87df75c; width: 50%; @@ -376,11 +354,12 @@ i.material-icons.left.like { } ul#mobile-demo { - background: #64ffda; + background: #5f5e5e; + } .sidenav li>a { - color: #6a1b9a; + color: #dea7ff; font-weight: bold; } @@ -400,9 +379,6 @@ ul#mobile-demo { margin-left: 15px; } - -/* Page 2 edit profil */ - p.chip.boxStyle2 { background: #b87df75c; color: #6a1b9a; @@ -579,8 +555,19 @@ input.validatePassword.boxFields { line-height: 2.5em; } +.pencil { + color: white; +} + +.selectProfilePicture { + display: flex; + justify-content: center; + margin-bottom: 15px; +} + #myNewFile, #newEditPost, +#newProfilePhoto, .hideFile { width: 0.1px; height: 0.1px; @@ -592,6 +579,7 @@ input.validatePassword.boxFields { #myNewFile+label, #newEditPost+label, +#newProfilePhoto+label, .hideFile+label { color: white; background-color: #662483; @@ -599,6 +587,11 @@ input.validatePassword.boxFields { border-radius: 8px; } +#newProfilePhoto+label, +#newProfilePhoto+label:hover { + background-color: #662483; +} + #myNewFile:focus+label, #myNewFile+label:hover { background-color: #662483; @@ -607,16 +600,19 @@ input.validatePassword.boxFields { .hideFile:focus+label, .hideFile+label:hover { background-color: #662483; + padding-bottom: 10px; } .hideFile+label, .hideFile { cursor: pointer; + padding-bottom: 10px; } #myNewFile:focus+label, +#newProfilePhoto+label, .hideFile { - outline: 1px dotted#662483; + outline: 1px dotted #662483; outline: -webkit-focus-ring-color auto 5px; } @@ -624,9 +620,45 @@ div#showComment { text-align: center; } +.informationBox { + display: flex; + align-items: center; + justify-content: flex-start; +} + .fixed-action-btn { position: relative; - padding-top: 0; + margin-left: 25px; + margin-top: 40px; + margin-right: 3px; +} + +.world { + color: #662483; + font-size: 1.5em; + margin: auto 10px; +} + +.points { + display: inline-flex; + color: #662483; + text-align: center; + cursor: pointer; +} + +.all .editDelete { + max-width: 130px; + display: flex; + align-items: center; + justify-content: center; +} + +ul.editDelete { + margin: 0 10px; +} + +.chip.boxStyle { + max-width: max-content; } .onBox { @@ -644,7 +676,6 @@ label.waves-effect.waves-light.btn-small { text-align: left; } - /* ********* Medias Querys *********** */ @media (min-width: 1280px) { diff --git a/src/view/coment.js b/src/view/coment.js index 39686382..55ef5efb 100644 --- a/src/view/coment.js +++ b/src/view/coment.js @@ -1,48 +1,66 @@ function buildComent(imageUser, nameUser, img, text, id) { return ` -
    +
    Contact Person

    ${nameUser}

    -
    +
    - +
    + + more_vert -
    - - more_vert - - -
    + +
    - +

    ${text}

    - +
    - - -
    + + +
    - + - +
    -
    ` +
    +` }; export { buildComent } \ No newline at end of file diff --git a/src/view/editprofile.js b/src/view/editprofile.js index 1ed776b0..f34ac6b5 100644 --- a/src/view/editprofile.js +++ b/src/view/editprofile.js @@ -1,5 +1,4 @@ function editionOfProfile(user) { - //console.log(user); let emailCortado = 'No email'; @@ -13,6 +12,7 @@ function editionOfProfile(user) { if (user.photoURL != null) { image = user.photoURL; }; + let name = user.displayName ? user.displayName : emailCortado; return new Promise(function(resolve, rejected) { let editProfileVieView = ` @@ -22,30 +22,40 @@ function editionOfProfile(user) {
    - foto de perfil usuario + foto de perfil usuario

    Cambiar foto

    -
    - ${emailCortado} -
    - +
    + + +
    + +
    ${name}
    +
    + + + + + + + + + - - -
    - ` + + + + +
    +
    +
    ` + root.innerHTML = editProfileVieView; resolve(); }); diff --git a/src/view/fuorum.js b/src/view/fuorum.js index c6fd5396..6a053bc4 100644 --- a/src/view/fuorum.js +++ b/src/view/fuorum.js @@ -13,6 +13,7 @@ function viewForum(user) { if (user.photoURL != null) { image = user.photoURL; } + let name = user.displayName ? user.displayName : emailCortado; return new Promise(function(resolve, rejected) { let forumView = `
    @@ -24,9 +25,9 @@ function viewForum(user) {
    - ${emailCortado} + ${name} edit
    -
    Profesión
    +
    ${user.job}
    @@ -38,11 +39,14 @@ function viewForum(user) {
    - - + +
    -
    ` root.innerHTML = forumView; diff --git a/src/view/profile.js b/src/view/profile.js index 98da7348..976c20b3 100644 --- a/src/view/profile.js +++ b/src/view/profile.js @@ -1,5 +1,5 @@ function viewProfile(user) { - console.log(user); + //console.log(user); let emailCortado = 'No email'; if (typeof user != 'undefined') { @@ -22,7 +22,7 @@ function viewProfile(user) {
    -
    ${EmailCortado}edit
    +
    ${emailCortado}edit
    Profesión
    From 49ffc4444fd4c58ffbd6b94d0445a24c0c82aa10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Esther=20Manrique=20Gonz=C3=A1lez?= Date: Mon, 4 May 2020 22:49:37 -0500 Subject: [PATCH 39/66] Almost finished app 1.1 --- src/functions/editprofile.js | 25 ++++++++++++++++++------- src/functions/loginfacebook.js | 5 +++++ src/functions/logingoogle.js | 10 ++++++++-- src/functions/logout.js | 2 ++ src/functions/publicpoust.js | 6 +++++- src/index.js | 2 +- src/view/editprofile.js | 2 +- src/view/fuorum.js | 7 ++++--- src/view/profile.js | 20 ++++++++++---------- 9 files changed, 54 insertions(+), 25 deletions(-) diff --git a/src/functions/editprofile.js b/src/functions/editprofile.js index cfecd780..dae6dacc 100644 --- a/src/functions/editprofile.js +++ b/src/functions/editprofile.js @@ -1,5 +1,8 @@ -import { viewProfile } from '../view/profile.js'; import { clickMenus } from './clickmenus.js'; +import { viewForum } from '../view/fuorum.js'; +import { publicPost, addNewPost } from './publicpoust.js'; +import { readPosts } from './readposts.js'; + function editProfileUser(user) { let savesChanges = document.getElementById('saveChangesButton'); @@ -37,7 +40,7 @@ function editProfileUser(user) { addInformationProfileEdit(editDataProfile) .then(function() { // Get the existing data - var existing = localStorage.getItem('userdata'); + let existing = localStorage.getItem('userdata'); // If no existing data, create an array // Otherwise, convert the localStorage string to an array existing = existing ? JSON.parse(existing) : {}; //un objeto vacio en el caso de que no haya para yo llenarlo @@ -50,10 +53,18 @@ function editProfileUser(user) { return existing; }) .then(function(existing) { //esto es la promesa + console.log('este es el bueno', existing); + alert('se guardaron los datos') //este es el resultado de la promesa - viewProfile(existing); - clickMenus(existing); - updatePostPic(user.uid, imageUrl) + viewForum(existing) + .then(function() { + publicPost(existing); + readPosts(); + }) + .then(function() { + clickMenus(existing); + updatePostPic(user.uid, imageUrl); + }) }) .catch(err => { console.log(err) //esto es el error cuando la respuesta es negativa @@ -68,11 +79,11 @@ function addInformationProfileEdit(editDataProfile) { } function updatePostPic(uid, photo) { - return db.collection("probando render 2").where("uid", "==", uid) + return db.collection("pruebas_020520").where("uid", "==", uid) .get() .then(function(resultAllPost) { resultAllPost.forEach(function(post) { - db.collection("probando render 2").doc(post.id).update({ + db.collection("pruebas_020520").doc(post.id).update({ photo: photo, }); }); diff --git a/src/functions/loginfacebook.js b/src/functions/loginfacebook.js index e22729f4..3b260906 100644 --- a/src/functions/loginfacebook.js +++ b/src/functions/loginfacebook.js @@ -1,3 +1,8 @@ +import { clickMenus } from './clickmenus.js'; +import { viewForum } from '../view/fuorum.js'; +import { publicPost, addNewPost } from './publicpoust.js'; + + //Login with Facebook function facebookButton() { let provider = new firebase.auth.FacebookAuthProvider(); diff --git a/src/functions/logingoogle.js b/src/functions/logingoogle.js index fb22456c..15edcd15 100644 --- a/src/functions/logingoogle.js +++ b/src/functions/logingoogle.js @@ -1,3 +1,8 @@ +import { clickMenus } from './clickmenus.js'; +import { viewForum } from '../view/fuorum.js'; +import { publicPost, addNewPost } from './publicpoust.js'; + + //Login with Google Acount function googleButton() { let provider = new firebase.auth.GoogleAuthProvider(); @@ -20,12 +25,13 @@ function googleButton() { document.getElementById('hideAndShow').style.display = 'block'; movilIcon.classList.add('shown'); - }).catch(function(error) { + }) + .catch(function(error) { let errorCode = error.code; let errorMessage = error.message; let email = error.email; let credential = error.credential; }); -}; +} export { googleButton } diff --git a/src/functions/logout.js b/src/functions/logout.js index 9d8ae44a..633b3742 100644 --- a/src/functions/logout.js +++ b/src/functions/logout.js @@ -3,6 +3,8 @@ import { viewLogin } from '../view/login.js'; import { loginPageOne } from './loginpageone.js'; import { viewRegister } from '../view/register.js'; import { register } from './register.js'; +import { googleButton } from './logingoogle.js'; +import { facebookButton } from './loginfacebook.js'; function out() { console.log('revisando out'); diff --git a/src/functions/publicpoust.js b/src/functions/publicpoust.js index 1c734ba2..de0986ec 100644 --- a/src/functions/publicpoust.js +++ b/src/functions/publicpoust.js @@ -24,7 +24,11 @@ function publicPost(user) { console.log(user); let post = { texto: text.value, - user: user.displayName, + + + + + user: (user.hasOwnProperty('displayName') && user.displayName != null) ? user.displayName : emailCortado, date: new Date(), img: imageUrl, mail: user.email, diff --git a/src/index.js b/src/index.js index 878850ec..c70ef46f 100644 --- a/src/index.js +++ b/src/index.js @@ -68,7 +68,7 @@ document.addEventListener("DOMContentLoaded", function() { viewForum(obtainingPersistenceData) .then(function() { publicPost(obtainingPersistenceData); - readPosts(obtainingPersistenceData); + readPosts(); //editProfileUser(obtainingPersistenceData); }); diff --git a/src/view/editprofile.js b/src/view/editprofile.js index f34ac6b5..987caa09 100644 --- a/src/view/editprofile.js +++ b/src/view/editprofile.js @@ -12,7 +12,7 @@ function editionOfProfile(user) { if (user.photoURL != null) { image = user.photoURL; }; - let name = user.displayName ? user.displayName : emailCortado; + let name = (user.hasOwnProperty('displayName') && user.displayName != null) ? user.displayName : emailCortado; return new Promise(function(resolve, rejected) { let editProfileVieView = ` diff --git a/src/view/fuorum.js b/src/view/fuorum.js index 6a053bc4..55711d85 100644 --- a/src/view/fuorum.js +++ b/src/view/fuorum.js @@ -1,5 +1,5 @@ function viewForum(user) { - //console.log(user); + console.log('usuario entra', user); let emailCortado = 'No email'; @@ -13,7 +13,8 @@ function viewForum(user) { if (user.photoURL != null) { image = user.photoURL; } - let name = user.displayName ? user.displayName : emailCortado; + let name = (user.hasOwnProperty('displayName') && user.displayName != null) ? user.displayName : emailCortado; + let job = (user.hasOwnProperty('job') && user.job != null && user.job != 'undefined') ? user.job : ''; return new Promise(function(resolve, rejected) { let forumView = `
    @@ -27,7 +28,7 @@ function viewForum(user) {
    ${name} edit
    -
    ${user.job}
    +
    ${job}
    diff --git a/src/view/profile.js b/src/view/profile.js index 976c20b3..129e57ba 100644 --- a/src/view/profile.js +++ b/src/view/profile.js @@ -1,5 +1,5 @@ function viewProfile(user) { - //console.log(user); + console.log(user); let emailCortado = 'No email'; if (typeof user != 'undefined') { @@ -12,18 +12,19 @@ function viewProfile(user) { if (user.photoURL != null) { image = user.photoURL; } + + let name = (user.hasOwnProperty('displayName') && user.displayName != null) ? user.displayName : emailCortado; return new Promise(function(resolve, rejected) { let profileView = ` -
    +
    foto de perfil usuario
    -
    -
    ${emailCortado}edit
    -
    Profesión
    +
    ${name}edit
    +
    ${user.job}
    @@ -32,8 +33,8 @@ function viewProfile(user) {

    - - + +
    @@ -41,12 +42,11 @@ function viewProfile(user) {
    Contact Person -

    ${emailCortado}

    +

    ${name}

    more_vert
    -

    ¿Cómo centrar texto en HTML?

    @@ -66,7 +66,7 @@ function viewProfile(user) {

    - +
    From 4c177c308fdd39bd0bf45f1c1d20ce694fb8a17a Mon Sep 17 00:00:00 2001 From: Dianyela Maldonado <54160738+DianyelaMaldonado@users.noreply.github.com> Date: Wed, 6 May 2020 10:51:58 -0500 Subject: [PATCH 40/66] Update Readme.md --- Readme.md | 354 +++++++++++++----------------------------------------- 1 file changed, 82 insertions(+), 272 deletions(-) diff --git a/Readme.md b/Readme.md index ed84ec5c..e8e456e8 100644 --- a/Readme.md +++ b/Readme.md @@ -1,272 +1,82 @@ -# Creando una Red Social - -Bienvenida a tu primer proyecto del track de Frontend en Laboratoria. - -En este proyecto construirás una red social, cuya temáticas dejaremos a tu elección. - -Aquí algunas ideas para inspirarte: - -- Alimentación -- Feminismo -- Educación -- Salud -- Energías Renovables - -Las **caraterísticas técnicas** de tu aplicación serán las siguientes: -- Debe ser una Single-Page Application [SPA](https://dzone.com/articles/how-single-page-web-applications-actually-work) ([versión traducida](https://dzone.com/articles/how-single-page-web-applications-actually-work)) -- Debe ser diseñada con un enfoque [mobile first](https://darwindigital.com/mobile-first-versus-responsive-web-design/) ([versión traducida](https://translate.google.com/translate?hl=&sl=auto&tl=es&u=https%3A%2F%2Fdarwindigital.com%2Fmobile-first-versus-responsive-web-design)) -- Debe permitir la persintencia de datos - -Para implementar tu aplicación usarás *HTML5*, *CCS3* o *SASS*, *Vanilla JavaScript(ES6+)*, *Firebase* o *LocalStogarge* - -## Objetivo - -El objetivo de este proyecto es construir una Red Social, Single-Page Application (SPA), responsiva en la que podamos escribir, leer, actualizar y eliminar datos. - -Para ello deberás poner en juego tu creatividad para generar ideas que lleven a una solución original y valiosa del problema, trabajando en equipo buscando feedback constante. - -En otras palabras, seguirás afianzando todo lo aprendido en el Common Core, pero en particular verás : - -### Planificación - -* Te recomendamos utilizar *projects*, *issues* y *milestones* de GitHub para gestionar la planificación de tu proyecto. Estos recursos serán la fuente de organización de tu equipo y a través de estas herramientas tus coaches podrán ver el avance del proyecto y darte feedback. - -* Escribir, de manera colaborativa, las **Definiciones de terminado** y **Criterios de Aceptación** por cada **Historia de usuario** que te daremos para este proyecto y que se deberán ver reflejadas en tu planificación. - -* **Priorizar** la implementación de tus funcionalidades, en función al esfuerzo que demandan en relación al valor que le aportan al usuario, y ejecutar en equipo todas las historias de usuario dentro del tiempo estimado para cada sprint y que finalmente se vean reflejadas en publicaciones completamentamente funcionales al final de cada sprint. - -* Adquirir la disciplina de la completitud, terminando una historia de usuario antes de pasar a la siguiente (es decir, que cumple con *Definición de Terminado* y *Criterios de Aceptación* contemplando todos los puntos que son objetivos de aprendizaje para este proyecto). - -### Desarrollo frontend - -#### Arquitectura de la aplicación - -- Diseñar la arquitectura de tu aplicación, modularizando tu código a través de *es modules* ([`import`](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Sentencias/import) y [`export`](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Sentencias/export)) - -- Familiarizarte con el patrón modelo - vista - controlador ([MVC](https://es.wikipedia.org/wiki/Modelo%E2%80%93vista%E2%80%93controlador)). - -#### Tecnologías HTML5 y CSS3/SASS - -* Aplicar HTML5 semántico en tu proyecto. -* Aplicar y reforzar los conceptos fundamentales de CSS3. -* Implementar selectores de clase evitando la redundancia de estilos en CCS3. -* Utilizar `flexbox` para lograr un diseño `mobile first`, implementando un layout que te permita crear un diseño adaptativo para **mobile y desktop** - -A continuación te proporcionamos el layout (diseño) de la vista mobile y desktop que deberás replicar visualmente y cuyo contenido, colores y fuentes de texto, dejaremos a tu elección. - -* Vista mobile - - ![mobile](https://user-images.githubusercontent.com/32286663/56174616-ec9f6100-5fb8-11e9-9edb-d5ef7c251d9c.png) - -* Vista Desktop - - ![desktop](https://user-images.githubusercontent.com/32286663/56174626-fcb74080-5fb8-11e9-8854-26e8d9c4e25f.png) - -#### JavaScript (ES6+) - -* Utilizar modulos de ES6 para poder modularizar tu código JavaScript. -* Reforzar tu conocimiento sobre el uso de Template literals (Template strings). -* Reforzar tu conocimiento de la manipulacion de los elementos del DOM a traves JavaScript. -* Implementar un sistema de rutas para cambiar de una vista a otra de manera dinámica (SPA). -* Testear la lógica de tu aplicación, con Jest cuidando que el coverage pase el 90% de statements (sentencias), functions (funciones), lines (líneas), y branches (ramas). - -### Persistencia de datos - -En los proyectos anteriores solo has consumido (leído) datos, por ejemplo, a través de un archivo `json` o utilizando `fetch`. - -En este proyecto diseñarás la estructura de esos datos, la forma de consultarlos, actualizarlos, modificarlos y eliminarlos según los requerimiento del usuario. Para llevarlo a cabo utilizaras `Firestore` de `Firebase` o `LocalStogarge` una `Web Storage API` - -#### Firebase - -El objetivo de usar Firestore en este proyecto, es que aprendes a manejar y persistir datos a traves de una base de datos no relacional, en tiempo real y puedas implementar operaciones CRUD (Creación, Lectura, Actualización y eliminación) de datos. - -## Consideraciones generales del proyecto - -* Este proyecto debe ser desarrollado en equipos de trabajo de 3 integrantes. - -* La duración propuesta del proyecto es **3 sprints**, con una duración de una semana cada uno. - -* Te daremos las **historias de usuario** con el fin de presentarte los requerimientos y funcionalidades que desea el usuario final. - -* La **planificación es vital**, para ello te recomendamos utilizar el flujo de trabajo colaborativo que nos ofrecen los projects de GitHub, para que puedas **escribir tus definiciones de terminado** y **criterios de aceptación** por cada historia de usuario con el objetivo que determinen, en equipo, **qué hacer** en el sprint y **cómo se realizará**. - -* Para que todas las miembros de tu equipo puedan lograr los objetivos de aprendizaje, deberán determinar cuál será la estrategia de desarrollo que utilizarán: división por sub-historias, pair programming, code reviews, etc. - -## Restricciones Técnicas - -* Debes utilizar `flexbox` o `CSSGrid` para posicionar tus elementos. Si está permitido el uso de frameworks de CCS (bootstrap), y de componentes flotantes. - -* Ya te damos un diseño (layout) de la vista mobile y desktop, queremos que lo repliques a nivel *pixel perfect*, el contenido, paleta de colores y fuentes, depende de la temática que van a elegir como equipo. La implementación de ese layout deberá formar parte de la *definición de terminado* de tus historias de usuario. - -* Los test son **fundamentales** y deberán formar parte de tu definición de terminado, te recomendamos que comiences a implementarlos desde el comienzo. - -## Historias de Usuario - -* Como usuario nuevo debo poder crear una cuenta con email y password válidos para poder iniciar sesion e ingresar a la red social. - -* Como usuario nuevo debo poder tener la opción de iniciar sesión con mi cuenta de Google o Facebook para ingresar a la red social sin necesidad de crear una cuenta de email válido. - -* Como usuario loggeado debo poder crear, guardar, modificar en el mismo lugar (in place) y eliminar una publicación (post) privada o pública, que puede ser una frase o una imagen. - -* Como usuario loggeado debo poder ver todos los posts públicos y privados que he creado hasta ese momento, desde el más reciente hasta el más antiguo, así como la opción de poder cambiar la configuración de privacidad de mis post. - -* Yo como usuario loggeado, puedo dar like y llevar un conteo de likes en mi publicación así como poder escribir, guardar, editar o eliminar un comentario en mi publicación. - -* Al final debo poder ingresar a la red social y poder visualizar los datos de mi perfil creado o editarlos. - -* Te dejamos un ejemplo de cómo definir criterios de aceptación y definiciones de terminado para una H.U. Si se te complica definirlas o no tienes idea de que considerar para cada H.U. es de gran ayuda revisar redes sociales como `facebok`, `twitter`, `instagram`, `devopedia` o la red social que más te guste y puedas evaluar qué consideran en cada funcionalidad para darla como terminada y aceptada. - - > Como usuario nuevo debo poder crear una cuenta con email y password para - > poder iniciar sesion. Por otro lado, necesito también tener la opción de - > iniciar sesión con mi cuenta de Google o Facebook. - > - > **Criterios de aceptación** - > - Si el mail o password no es válido, al momento de logearme, debo poder - > ver un mensaje de error. - > - Debe ser visible si hay algún mensaje de error. - > - Debo poder ver esta página de creación en Móviles y desktop (responsive). - > - No debe necesitar recargar la página para crear una cuenta (SPA). - > - > **Definición de terminado** - > - La funcionalidad cumple satisface los criterios de aceptación. - > - La funcionalidad tiene _test unitarios_. - > - El diseño visual corresponde al prototipo de alta fidelidad. - > - El código de esta funcionalidad recibió code review. - > - La funcionalidad esta desplegada y pública para ser probada. - > - La funcionalidad fue probada manualmente. - > - Se hicieron pruebas de usuabilidad y se implementó el feedback si se - > consideró necesario. - -## Objetivos de aprendizaje - -Antes de empezar el proyecto, recuerda agregar tus objetivos de aprendizaje pendientes de tu proyecto -anterior en la siguiente sección. - -### Objetivos de aprendizajes pendientes - - -### HTML y CSS - -* [ ] [HTML semántico](https://developer.mozilla.org/en-US/docs/Glossary/Semantics#Semantics_in_HTML) -* [ ] [CSS `flexbox`](https://css-tricks.com/snippets/css/a-guide-to-flexbox/) -* [ ] Construir tu aplicación respetando el diseño realizado (maquetación). - -### DOM y Web APIs - -* [ ] [Manipulación dinámica del DOM](https://developer.mozilla.org/es/docs/Referencia_DOM_de_Gecko/Introducci%C3%B3n) -* [ ] [History API](https://developer.mozilla.org/es/docs/DOM/Manipulando_el_historial_del_navegador) -* [ ] [`localStorage`] - -### Javascript - -* [ ] [Uso de callbacks](https://developer.mozilla.org/es/docs/Glossary/Callback_function) -* [ ] [Consumo de Promesas](https://scotch.io/tutorials/javascript-promises-for-dummies#toc-consuming-promises) -* [ ] Uso ES modules -([`import`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import) -| [`export`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export)) - -### Firebase - -* [ ] [Firestore](https://firebase.google.com/docs/firestore) -* [ ] [Firebase Auth](https://firebase.google.com/docs/auth/web/start) -* [ ] [Firebase security rules](https://firebase.google.com/docs/rules) -* [ ] [Uso de onSnapshot](https://firebase.google.com/docs/firestore/query-data/listen) -| [onAuthStateChanged](https://firebase.google.com/docs/auth/web/start#set_an_authentication_state_observer_and_get_user_data) - -### Testing - -* [ ] [Testeo de tus funciones](https://jestjs.io/docs/es-ES/getting-started) -* [ ] [Testeo asíncrono](https://jestjs.io/docs/es-ES/asynchronous) -* [ ] [Mocking](https://jestjs.io/docs/es-ES/manual-mocks) - -### Colaboración en Github - -* [ ] Branches -* [ ] Pull Requests -* [ ] Tags - -### Organización en Github - -* [ ] Projects -* [ ] Issues -* [ ] Labels -* [ ] Milestones - -### Buenas prácticas de desarrollo - -* [ ] Modularización -* [ ] Nomenclatura / Semántica -* [ ] Linting - -*** - -## Recursos - -### Mobile first - -El concepto de [_mobile first_](https://www.mediaclick.es/blog/diseno-web-responsive-design-y-la-importancia-del-mobile-first/) -hace referencia a un proceso de diseño y desarrollo donde partimos de cómo se ve -y cómo funciona la aplicación en un dispositivo móvil primero, y más adelante se -ve como adaptar la aplicación a pantallas progresivamente grandes y -características específicas del entorno desktop. Esto es en contraposición al -modelo tradicional, donde primero se diseñaban los websites (o webapps) para -desktop y después se trataba de _arrugar_ el diseño para que entre en pantallas -más chicas. La clave acá es asegurarse de que desde el principio diseñan usando -la vista _responsive_ de las herramientas de desarrollador (developer tools) del -navegador. De esa forma, partimos de cómo se ve y comporta la aplicación en una -pantalla y entorno móvil. - -### Múltiples vistas - -En proyectos anteriores nuestras aplicaciones habían estado compuestas de una -sola _vista_ principal (una sóla _página_). En este proyecto se introduce la -necesidad de tener que dividir nuestra interfaz en varias _vistas_ o _páginas_ -y ofrecer una manera de navegar entre ellas. - -### Escritura de datos - -En los proyectos anteriores hemos consumido (leído) datos, pero todavía no -habíamos escrito datos (salvar cambios, crear datos, borrar, ...). En este -proyecto tendrás que crear (salvar) nuevos datos, así como leer, actualizar y -modificar datos existentes. Estos datos se podrán guardar de forma remota -usando [Firestore](https://firebase.google.com/docs/firestore) o de forma -local utilizando`localStorage`. - -### Autenticación y autorización - -Hasta el momento, los proyectos han sido pensados como recursos públicos, donde todos -los usuarios compartían un mismo rol y la misma información. - -En este proyecto tendrás que diferenciar la información a mostrar y modificar, -dependiendo de la identidad del usuario. -De la misma manera deberás crear reglar de autorización para el acceso a los -datos. - -Para esto utilizaras respectivamente -[`Firebase authentication`](https://firebase.google.com/docs/auth/) y -[`Firestore security rules`](https://firebase.google.com/docs/firestore/security/get-started) - -### CSS - -En este proyecto queremos que ganes confianza y experiencia con CSS profesional, -por eso usarás [`flexbox`](https://css-tricks.com/snippets/css/a-guide-to-flexbox/) -para posicionar tus elementos. - -Recuerda que no puedes usar frameworks CSS, sólo *vanilla css* o [*sass*](https://sass-lang.com/). - -### Otras: - -* [Pildora SPA](https://www.loom.com/share/fa63a8ad0e9a43428222c15b6f6613d3) -* [Repositorio de pildora de SPA](https://github.com/betsyvies/bootcamp-spa) -* [Pildora de mock Firebase](https://www.youtube.com/watch?v=06myVn41OTY&t=1s) -* [Repositorio de pildora de mock Firebase](https://github.com/Danielalab/2018-2-Testing) -* [Pildora MVC](https://github.com/merunga/todomvc-vanillajs) -* [Modulos: Export](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Sentencias/export) -* [Modulos: Import](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Sentencias/import) -* [Diseño web, responsive design y la importancia del mobile first - Media Click](https://www.mediaclick.es/blog/diseno-web-responsive-design-y-la-importancia-del-mobile-first/) -* [Mobile First: el enfoque actual del diseño web móvil - 1and1](https://www.1and1.es/digitalguide/paginas-web/diseno-web/mobile-first-la-nueva-tendencia-del-diseno-web/) -* [Mobile First - desarrolloweb.com](https://desarrolloweb.com/articulos/mobile-first-responsive.html) -* [Mobile First - ZURB](https://zurb.com/word/mobile-first) -* [Mobile First Is NOT Mobile Only - Nielsen Norman Group](https://www.nngroup.com/articles/mobile-first-not-mobile-only/) - -*** +Creando una Red Social + +Nombre de la aplicación: **Code Dev** + +**Descripción**: Una red social pensada para la industria tech, en donde puedes interacturar con otros developers, compartir tus conocimientos y publicar tus ideas en post. + +**Objetivo**: es conectar a usuarios dentro del mundo tecnológico, ya que a veces es complicado encontrar personas con un perfil profesional parecido al de nosotros y Code Dev facilita ese proceso. + +**Quién es el usuario:** el usuario de Code Dev, son aquellas personas dedicadas al mundo tecnológico, desarrollando con cualquier tipo de lenguaje de programación, sin importar el background de la persona, solo su interes y deseo de contactar con otras personas. + +**Que problema soluciona:** mantener conectadas a las personas pertenecientes a la misma actividad, pudiendo solicitar ayuda a personas más experimentadas y permanecer conectadas en cualquier hora y lugar. + +**Prototipo** +Diseño inicial + +Diseño final + +**Feeback** +Al inicio del diseño de la aplicacion construimos una idea de acuerdo a nuestras creencias y creyendo que habíamos tomando buenas decisiones sin embargo al recibir los comentarios de parte de coaches y prospectos a usuarios decidimos usar colores mas atractivos, formas modernas en cuanto al diseño en general y seguir las tendencias actuales en cuanto a aplicaciones móbiles. + +**Descripción de paginas:** + +**Página de Registro** +Al inicio de la aplicación la pantalla que se muestra es la de Inicio, la cual cuenta con campos para registrarse si asi lo desea el usuario, para mayor comodidad del usario también podra ingresar con su cuenta de Google o Facebook. + +**Página de Foro** +Esta página es la más útil para el usuario, ya que aquí puede publicar ideas personales, imagenes para compartir o solo incluir sus dudas para que otros usuarios puedan responder. Estas publicaciones se pueden leer, editar y eliminar a gusto y necesidad del usuario. + +**Página de Perfil** +Esta página sirve al usuario para personalizar su perfil con los campos: nombre, profesión e imagen, para que pueda ser ubicado y contactado por otros usuarios. + +Tecnologías y características de la aplicación + +HTML +CSS +Javascript +Materialize +Firebase +Firestore +Github colaborativo +SPA +MVC +Responsive Desing + + +Objetivos de aprendizaje + + +[x] HTML y CSS +[x] HTML semántico +[x] CSS flexbox +[x] Construir tu aplicación respetando el diseño realizado (maquetación). +DOM y Web APIs +[x] Manipulación dinámica del DOM +[x] History API +[x] [localStorage] +Javascript +[x] Uso de callbacks +[x] Consumo de Promesas +[x] Uso ES modules (import | export) +Firebase +[x] Firestore +[x] Firebase Auth +[x] Firebase security rules +[x] Uso de onSnapshot | onAuthStateChanged +Testing + Testeo de tus funciones + Testeo asíncrono + Mocking +Colaboración en Github +[x] Branches +[x] Pull Requests + Tags +Organización en Github + Projects + Issues + Labels + Milestones +Buenas prácticas de desarrollo + [x] Modularización + [x] Nomenclatura / Semántica + Linting From a366f843bb502856f1abc76f67b559acdddbb9da Mon Sep 17 00:00:00 2001 From: Dianyela Maldonado <54160738+DianyelaMaldonado@users.noreply.github.com> Date: Wed, 6 May 2020 10:54:00 -0500 Subject: [PATCH 41/66] Update Readme.md --- Readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Readme.md b/Readme.md index e8e456e8..06b3e8ad 100644 --- a/Readme.md +++ b/Readme.md @@ -12,9 +12,9 @@ Nombre de la aplicación: **Code Dev** **Prototipo** Diseño inicial - + Diseño final - + **Feeback** Al inicio del diseño de la aplicacion construimos una idea de acuerdo a nuestras creencias y creyendo que habíamos tomando buenas decisiones sin embargo al recibir los comentarios de parte de coaches y prospectos a usuarios decidimos usar colores mas atractivos, formas modernas en cuanto al diseño en general y seguir las tendencias actuales en cuanto a aplicaciones móbiles. From 3c92a1e6bb1e2c1f47fd614914a96b7b1c5f4837 Mon Sep 17 00:00:00 2001 From: Dianyela Maldonado <54160738+DianyelaMaldonado@users.noreply.github.com> Date: Wed, 6 May 2020 10:58:42 -0500 Subject: [PATCH 42/66] Update Readme.md --- Readme.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Readme.md b/Readme.md index 06b3e8ad..1d3b0f2c 100644 --- a/Readme.md +++ b/Readme.md @@ -43,12 +43,12 @@ MVC Responsive Desing -Objetivos de aprendizaje +Objetivos de aprendizaje -[x] HTML y CSS -[x] HTML semántico -[x] CSS flexbox +- [x] HTML y CSS +- [x] HTML semántico +- [x] CSS flexbox [x] Construir tu aplicación respetando el diseño realizado (maquetación). DOM y Web APIs [x] Manipulación dinámica del DOM From dd865ea4377da1b0849e3a5d51a398b9dcc65e9c Mon Sep 17 00:00:00 2001 From: Dianyela Maldonado <54160738+DianyelaMaldonado@users.noreply.github.com> Date: Wed, 6 May 2020 11:00:39 -0500 Subject: [PATCH 43/66] Update Readme.md --- Readme.md | 62 +++++++++++++++++++++++++++---------------------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/Readme.md b/Readme.md index 1d3b0f2c..10307b00 100644 --- a/Readme.md +++ b/Readme.md @@ -49,34 +49,34 @@ Objetivos de aprendizaje - [x] HTML y CSS - [x] HTML semántico - [x] CSS flexbox -[x] Construir tu aplicación respetando el diseño realizado (maquetación). -DOM y Web APIs -[x] Manipulación dinámica del DOM -[x] History API -[x] [localStorage] -Javascript -[x] Uso de callbacks -[x] Consumo de Promesas -[x] Uso ES modules (import | export) -Firebase -[x] Firestore -[x] Firebase Auth -[x] Firebase security rules -[x] Uso de onSnapshot | onAuthStateChanged -Testing - Testeo de tus funciones - Testeo asíncrono - Mocking -Colaboración en Github -[x] Branches -[x] Pull Requests - Tags -Organización en Github - Projects - Issues - Labels - Milestones -Buenas prácticas de desarrollo - [x] Modularización - [x] Nomenclatura / Semántica - Linting +- [x] Construir tu aplicación respetando el diseño realizado (maquetación). +- DOM y Web APIs +- [x] Manipulación dinámica del DOM +- [x] History API +- [x] [localStorage] +- Javascript +- [x] Uso de callbacks +- [x] Consumo de Promesas +- [x] Uso ES modules (import | export) +- Firebase +- [x] Firestore +- [x] Firebase Auth +- [x] Firebase security rules +- [x] Uso de onSnapshot | onAuthStateChanged +- Testing +- Testeo de tus funciones +- Testeo asíncrono +- Mocking +- Colaboración en Github +- [x] Branches +- [x] Pull Requests +- Tags +- Organización en Github +- Projects +- Issues +- Labels +- Milestones +- Buenas prácticas de desarrollo +- [x] Modularización +- [x] Nomenclatura / Semántica +- Linting From 38b401c1cb8f105cb99b87bd5d1bfa03aeb19087 Mon Sep 17 00:00:00 2001 From: Dianyela Maldonado <54160738+DianyelaMaldonado@users.noreply.github.com> Date: Wed, 6 May 2020 11:02:22 -0500 Subject: [PATCH 44/66] Update Readme.md --- Readme.md | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/Readme.md b/Readme.md index 10307b00..476e545f 100644 --- a/Readme.md +++ b/Readme.md @@ -31,16 +31,16 @@ Esta página sirve al usuario para personalizar su perfil con los campos: nombre Tecnologías y características de la aplicación -HTML -CSS -Javascript -Materialize -Firebase -Firestore -Github colaborativo -SPA -MVC -Responsive Desing +- HTML +- CSS +- Javascript +- Materialize +- Firebase +- Firestore +- Github colaborativo +- SPA +- MVC +- Responsive Desing Objetivos de aprendizaje @@ -54,29 +54,29 @@ Objetivos de aprendizaje - [x] Manipulación dinámica del DOM - [x] History API - [x] [localStorage] -- Javascript + Javascript - [x] Uso de callbacks - [x] Consumo de Promesas - [x] Uso ES modules (import | export) -- Firebase + Firebase - [x] Firestore - [x] Firebase Auth - [x] Firebase security rules - [x] Uso de onSnapshot | onAuthStateChanged -- Testing -- Testeo de tus funciones -- Testeo asíncrono -- Mocking -- Colaboración en Github + Testing + Testeo de tus funciones + Testeo asíncrono + Mocking + Colaboración en Github - [x] Branches - [x] Pull Requests - Tags -- Organización en Github -- Projects -- Issues -- Labels -- Milestones -- Buenas prácticas de desarrollo + Organización en Github + Projects + Issues + Labels + Milestones + Buenas prácticas de desarrollo - [x] Modularización - [x] Nomenclatura / Semántica -- Linting + Linting From b6f9bd783969b4c1a92c6a2910a7344143c27dc9 Mon Sep 17 00:00:00 2001 From: Dianyela Maldonado <54160738+DianyelaMaldonado@users.noreply.github.com> Date: Wed, 6 May 2020 11:04:15 -0500 Subject: [PATCH 45/66] Update Readme.md --- Readme.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Readme.md b/Readme.md index 476e545f..e3de8ba9 100644 --- a/Readme.md +++ b/Readme.md @@ -54,16 +54,16 @@ Objetivos de aprendizaje - [x] Manipulación dinámica del DOM - [x] History API - [x] [localStorage] - Javascript + ###Javascript - [x] Uso de callbacks - [x] Consumo de Promesas - [x] Uso ES modules (import | export) - Firebase + ###Firebase - [x] Firestore - [x] Firebase Auth - [x] Firebase security rules - [x] Uso de onSnapshot | onAuthStateChanged - Testing + ###Testing Testeo de tus funciones Testeo asíncrono Mocking @@ -71,12 +71,12 @@ Objetivos de aprendizaje - [x] Branches - [x] Pull Requests - Tags - Organización en Github + ###Organización en Github Projects Issues Labels Milestones - Buenas prácticas de desarrollo + ###Buenas prácticas de desarrollo - [x] Modularización - [x] Nomenclatura / Semántica Linting From 7ee5f9d01986466491aeb449ca275c8be68b0ad9 Mon Sep 17 00:00:00 2001 From: Dianyela Maldonado <54160738+DianyelaMaldonado@users.noreply.github.com> Date: Wed, 6 May 2020 11:06:28 -0500 Subject: [PATCH 46/66] Update Readme.md --- Readme.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Readme.md b/Readme.md index e3de8ba9..92ff3c1c 100644 --- a/Readme.md +++ b/Readme.md @@ -54,16 +54,22 @@ Objetivos de aprendizaje - [x] Manipulación dinámica del DOM - [x] History API - [x] [localStorage] + ###Javascript + - [x] Uso de callbacks - [x] Consumo de Promesas - [x] Uso ES modules (import | export) + ###Firebase + - [x] Firestore - [x] Firebase Auth - [x] Firebase security rules - [x] Uso de onSnapshot | onAuthStateChanged + ###Testing + Testeo de tus funciones Testeo asíncrono Mocking @@ -71,12 +77,16 @@ Objetivos de aprendizaje - [x] Branches - [x] Pull Requests - Tags + ###Organización en Github + Projects Issues Labels Milestones + ###Buenas prácticas de desarrollo + - [x] Modularización - [x] Nomenclatura / Semántica Linting From 507cb0a8b3cddd0f9dd5e9a12fe6d078e0a21fae Mon Sep 17 00:00:00 2001 From: Veronica Bernardino <60678832+verobega@users.noreply.github.com> Date: Wed, 6 May 2020 11:08:36 -0500 Subject: [PATCH 47/66] Update Readme.md --- Readme.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Readme.md b/Readme.md index 92ff3c1c..e3607c96 100644 --- a/Readme.md +++ b/Readme.md @@ -50,25 +50,25 @@ Objetivos de aprendizaje - [x] HTML semántico - [x] CSS flexbox - [x] Construir tu aplicación respetando el diseño realizado (maquetación). -- DOM y Web APIs +- DOM y Web APIs - [x] Manipulación dinámica del DOM - [x] History API - [x] [localStorage] - ###Javascript + #Javascript - [x] Uso de callbacks - [x] Consumo de Promesas - [x] Uso ES modules (import | export) - ###Firebase + Firebase - [x] Firestore - [x] Firebase Auth - [x] Firebase security rules - [x] Uso de onSnapshot | onAuthStateChanged - ###Testing + #Testing Testeo de tus funciones Testeo asíncrono @@ -89,4 +89,4 @@ Objetivos de aprendizaje - [x] Modularización - [x] Nomenclatura / Semántica - Linting + Linting From ba54323c564550c8c7107fa7a64ae642910e822d Mon Sep 17 00:00:00 2001 From: Veronica Bernardino <60678832+verobega@users.noreply.github.com> Date: Wed, 6 May 2020 11:09:22 -0500 Subject: [PATCH 48/66] Update Readme.md --- Readme.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Readme.md b/Readme.md index e3607c96..02584dc9 100644 --- a/Readme.md +++ b/Readme.md @@ -55,7 +55,7 @@ Objetivos de aprendizaje - [x] History API - [x] [localStorage] - #Javascript + Javascript - [x] Uso de callbacks - [x] Consumo de Promesas @@ -68,7 +68,7 @@ Objetivos de aprendizaje - [x] Firebase security rules - [x] Uso de onSnapshot | onAuthStateChanged - #Testing + Testing Testeo de tus funciones Testeo asíncrono @@ -78,14 +78,14 @@ Objetivos de aprendizaje - [x] Pull Requests - Tags - ###Organización en Github + Organización en Github Projects Issues Labels Milestones - ###Buenas prácticas de desarrollo + Buenas prácticas de desarrollo - [x] Modularización - [x] Nomenclatura / Semántica From c98e02f9eddeffeaed6bcecbb9fbc5da753e4669 Mon Sep 17 00:00:00 2001 From: Veronica Bernardino <60678832+verobega@users.noreply.github.com> Date: Wed, 6 May 2020 11:12:11 -0500 Subject: [PATCH 49/66] Update Readme.md --- Readme.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/Readme.md b/Readme.md index 02584dc9..950033b0 100644 --- a/Readme.md +++ b/Readme.md @@ -50,7 +50,7 @@ Objetivos de aprendizaje - [x] HTML semántico - [x] CSS flexbox - [x] Construir tu aplicación respetando el diseño realizado (maquetación). -- DOM y Web APIs +- [ ] DOM y Web APIs - [x] Manipulación dinámica del DOM - [x] History API - [x] [localStorage] @@ -70,23 +70,23 @@ Objetivos de aprendizaje Testing - Testeo de tus funciones - Testeo asíncrono - Mocking - Colaboración en Github +- [ ] Testeo de tus funciones +- [ ] Testeo asíncrono +- [ ] Mocking +- [ ] Colaboración en Github - [x] Branches - [x] Pull Requests -- Tags +- [ ]Tags Organización en Github - Projects - Issues - Labels - Milestones + - [ ]Projects + - [ ]Issues + - [ ]Labels + - [ ]Milestones Buenas prácticas de desarrollo -- [x] Modularización -- [x] Nomenclatura / Semántica - Linting +- [x] Modularización +- [x] Nomenclatura / Semántica +- [ ]Linting From 0f40d837894d22b7edea29fe556d0d95eed9cd8a Mon Sep 17 00:00:00 2001 From: Veronica Bernardino <60678832+verobega@users.noreply.github.com> Date: Wed, 6 May 2020 11:13:35 -0500 Subject: [PATCH 50/66] Update Readme.md --- Readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Readme.md b/Readme.md index 950033b0..de9f5d4a 100644 --- a/Readme.md +++ b/Readme.md @@ -76,7 +76,7 @@ Objetivos de aprendizaje - [ ] Colaboración en Github - [x] Branches - [x] Pull Requests -- [ ]Tags +- [ ] Tags Organización en Github From eb621c72331296df63adf8209a73714ec38816a4 Mon Sep 17 00:00:00 2001 From: Veronica Bernardino <60678832+verobega@users.noreply.github.com> Date: Wed, 6 May 2020 11:17:20 -0500 Subject: [PATCH 51/66] Update Readme.md --- Readme.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Readme.md b/Readme.md index de9f5d4a..c347c50a 100644 --- a/Readme.md +++ b/Readme.md @@ -53,7 +53,7 @@ Objetivos de aprendizaje - [ ] DOM y Web APIs - [x] Manipulación dinámica del DOM - [x] History API -- [x] [localStorage] +- [ ] [Localstorage] Javascript @@ -80,13 +80,13 @@ Objetivos de aprendizaje Organización en Github - - [ ]Projects - - [ ]Issues - - [ ]Labels - - [ ]Milestones + - [ ] Projects + - [ ] Issues + - [ ] Labels + - [ ] Milestones Buenas prácticas de desarrollo - [x] Modularización - [x] Nomenclatura / Semántica -- [ ]Linting +- [ ] Linting From 03b1601eedae43c41d0f9494aa47e7213b48c11a Mon Sep 17 00:00:00 2001 From: Veronica Bernardino <60678832+verobega@users.noreply.github.com> Date: Wed, 6 May 2020 11:18:39 -0500 Subject: [PATCH 52/66] Update Readme.md --- Readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Readme.md b/Readme.md index c347c50a..86ef3b4e 100644 --- a/Readme.md +++ b/Readme.md @@ -73,7 +73,7 @@ Objetivos de aprendizaje - [ ] Testeo de tus funciones - [ ] Testeo asíncrono - [ ] Mocking -- [ ] Colaboración en Github +- [x] Colaboración en Github - [x] Branches - [x] Pull Requests - [ ] Tags @@ -89,4 +89,4 @@ Objetivos de aprendizaje - [x] Modularización - [x] Nomenclatura / Semántica -- [ ] Linting +- [x] Linting From e6f9cbbc2173a1494e15b76f76ed68aade93a87d Mon Sep 17 00:00:00 2001 From: Veronica Bernardino <60678832+verobega@users.noreply.github.com> Date: Wed, 6 May 2020 11:20:18 -0500 Subject: [PATCH 53/66] Update Readme.md --- Readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Readme.md b/Readme.md index 86ef3b4e..e1f48db5 100644 --- a/Readme.md +++ b/Readme.md @@ -50,10 +50,10 @@ Objetivos de aprendizaje - [x] HTML semántico - [x] CSS flexbox - [x] Construir tu aplicación respetando el diseño realizado (maquetación). -- [ ] DOM y Web APIs +- [x] DOM y Web APIs - [x] Manipulación dinámica del DOM - [x] History API -- [ ] [Localstorage] +- [x] [Localstorage] Javascript From 93a2f56584a8c7d91a13c044323e6b47fba88562 Mon Sep 17 00:00:00 2001 From: Dianyela Maldonado Date: Wed, 6 May 2020 11:26:20 -0500 Subject: [PATCH 54/66] add changes about images --- Readme.md | 366 ++++++++------------------------ prototype/prototipo-actual.jpg | Bin 0 -> 133083 bytes prototype/prototipo-inicial.jpg | Bin 0 -> 142967 bytes src/functions/editprofile.js | 18 +- 4 files changed, 103 insertions(+), 281 deletions(-) create mode 100644 prototype/prototipo-actual.jpg create mode 100644 prototype/prototipo-inicial.jpg diff --git a/Readme.md b/Readme.md index ed84ec5c..7c485866 100644 --- a/Readme.md +++ b/Readme.md @@ -1,272 +1,94 @@ -# Creando una Red Social - -Bienvenida a tu primer proyecto del track de Frontend en Laboratoria. - -En este proyecto construirás una red social, cuya temáticas dejaremos a tu elección. - -Aquí algunas ideas para inspirarte: - -- Alimentación -- Feminismo -- Educación -- Salud -- Energías Renovables - -Las **caraterísticas técnicas** de tu aplicación serán las siguientes: -- Debe ser una Single-Page Application [SPA](https://dzone.com/articles/how-single-page-web-applications-actually-work) ([versión traducida](https://dzone.com/articles/how-single-page-web-applications-actually-work)) -- Debe ser diseñada con un enfoque [mobile first](https://darwindigital.com/mobile-first-versus-responsive-web-design/) ([versión traducida](https://translate.google.com/translate?hl=&sl=auto&tl=es&u=https%3A%2F%2Fdarwindigital.com%2Fmobile-first-versus-responsive-web-design)) -- Debe permitir la persintencia de datos - -Para implementar tu aplicación usarás *HTML5*, *CCS3* o *SASS*, *Vanilla JavaScript(ES6+)*, *Firebase* o *LocalStogarge* - -## Objetivo - -El objetivo de este proyecto es construir una Red Social, Single-Page Application (SPA), responsiva en la que podamos escribir, leer, actualizar y eliminar datos. - -Para ello deberás poner en juego tu creatividad para generar ideas que lleven a una solución original y valiosa del problema, trabajando en equipo buscando feedback constante. - -En otras palabras, seguirás afianzando todo lo aprendido en el Common Core, pero en particular verás : - -### Planificación - -* Te recomendamos utilizar *projects*, *issues* y *milestones* de GitHub para gestionar la planificación de tu proyecto. Estos recursos serán la fuente de organización de tu equipo y a través de estas herramientas tus coaches podrán ver el avance del proyecto y darte feedback. - -* Escribir, de manera colaborativa, las **Definiciones de terminado** y **Criterios de Aceptación** por cada **Historia de usuario** que te daremos para este proyecto y que se deberán ver reflejadas en tu planificación. - -* **Priorizar** la implementación de tus funcionalidades, en función al esfuerzo que demandan en relación al valor que le aportan al usuario, y ejecutar en equipo todas las historias de usuario dentro del tiempo estimado para cada sprint y que finalmente se vean reflejadas en publicaciones completamentamente funcionales al final de cada sprint. - -* Adquirir la disciplina de la completitud, terminando una historia de usuario antes de pasar a la siguiente (es decir, que cumple con *Definición de Terminado* y *Criterios de Aceptación* contemplando todos los puntos que son objetivos de aprendizaje para este proyecto). - -### Desarrollo frontend - -#### Arquitectura de la aplicación - -- Diseñar la arquitectura de tu aplicación, modularizando tu código a través de *es modules* ([`import`](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Sentencias/import) y [`export`](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Sentencias/export)) - -- Familiarizarte con el patrón modelo - vista - controlador ([MVC](https://es.wikipedia.org/wiki/Modelo%E2%80%93vista%E2%80%93controlador)). - -#### Tecnologías HTML5 y CSS3/SASS - -* Aplicar HTML5 semántico en tu proyecto. -* Aplicar y reforzar los conceptos fundamentales de CSS3. -* Implementar selectores de clase evitando la redundancia de estilos en CCS3. -* Utilizar `flexbox` para lograr un diseño `mobile first`, implementando un layout que te permita crear un diseño adaptativo para **mobile y desktop** - -A continuación te proporcionamos el layout (diseño) de la vista mobile y desktop que deberás replicar visualmente y cuyo contenido, colores y fuentes de texto, dejaremos a tu elección. - -* Vista mobile - - ![mobile](https://user-images.githubusercontent.com/32286663/56174616-ec9f6100-5fb8-11e9-9edb-d5ef7c251d9c.png) - -* Vista Desktop - - ![desktop](https://user-images.githubusercontent.com/32286663/56174626-fcb74080-5fb8-11e9-8854-26e8d9c4e25f.png) - -#### JavaScript (ES6+) - -* Utilizar modulos de ES6 para poder modularizar tu código JavaScript. -* Reforzar tu conocimiento sobre el uso de Template literals (Template strings). -* Reforzar tu conocimiento de la manipulacion de los elementos del DOM a traves JavaScript. -* Implementar un sistema de rutas para cambiar de una vista a otra de manera dinámica (SPA). -* Testear la lógica de tu aplicación, con Jest cuidando que el coverage pase el 90% de statements (sentencias), functions (funciones), lines (líneas), y branches (ramas). - -### Persistencia de datos - -En los proyectos anteriores solo has consumido (leído) datos, por ejemplo, a través de un archivo `json` o utilizando `fetch`. - -En este proyecto diseñarás la estructura de esos datos, la forma de consultarlos, actualizarlos, modificarlos y eliminarlos según los requerimiento del usuario. Para llevarlo a cabo utilizaras `Firestore` de `Firebase` o `LocalStogarge` una `Web Storage API` - -#### Firebase - -El objetivo de usar Firestore en este proyecto, es que aprendes a manejar y persistir datos a traves de una base de datos no relacional, en tiempo real y puedas implementar operaciones CRUD (Creación, Lectura, Actualización y eliminación) de datos. - -## Consideraciones generales del proyecto - -* Este proyecto debe ser desarrollado en equipos de trabajo de 3 integrantes. - -* La duración propuesta del proyecto es **3 sprints**, con una duración de una semana cada uno. - -* Te daremos las **historias de usuario** con el fin de presentarte los requerimientos y funcionalidades que desea el usuario final. - -* La **planificación es vital**, para ello te recomendamos utilizar el flujo de trabajo colaborativo que nos ofrecen los projects de GitHub, para que puedas **escribir tus definiciones de terminado** y **criterios de aceptación** por cada historia de usuario con el objetivo que determinen, en equipo, **qué hacer** en el sprint y **cómo se realizará**. - -* Para que todas las miembros de tu equipo puedan lograr los objetivos de aprendizaje, deberán determinar cuál será la estrategia de desarrollo que utilizarán: división por sub-historias, pair programming, code reviews, etc. - -## Restricciones Técnicas - -* Debes utilizar `flexbox` o `CSSGrid` para posicionar tus elementos. Si está permitido el uso de frameworks de CCS (bootstrap), y de componentes flotantes. - -* Ya te damos un diseño (layout) de la vista mobile y desktop, queremos que lo repliques a nivel *pixel perfect*, el contenido, paleta de colores y fuentes, depende de la temática que van a elegir como equipo. La implementación de ese layout deberá formar parte de la *definición de terminado* de tus historias de usuario. - -* Los test son **fundamentales** y deberán formar parte de tu definición de terminado, te recomendamos que comiences a implementarlos desde el comienzo. - -## Historias de Usuario - -* Como usuario nuevo debo poder crear una cuenta con email y password válidos para poder iniciar sesion e ingresar a la red social. - -* Como usuario nuevo debo poder tener la opción de iniciar sesión con mi cuenta de Google o Facebook para ingresar a la red social sin necesidad de crear una cuenta de email válido. - -* Como usuario loggeado debo poder crear, guardar, modificar en el mismo lugar (in place) y eliminar una publicación (post) privada o pública, que puede ser una frase o una imagen. - -* Como usuario loggeado debo poder ver todos los posts públicos y privados que he creado hasta ese momento, desde el más reciente hasta el más antiguo, así como la opción de poder cambiar la configuración de privacidad de mis post. - -* Yo como usuario loggeado, puedo dar like y llevar un conteo de likes en mi publicación así como poder escribir, guardar, editar o eliminar un comentario en mi publicación. - -* Al final debo poder ingresar a la red social y poder visualizar los datos de mi perfil creado o editarlos. - -* Te dejamos un ejemplo de cómo definir criterios de aceptación y definiciones de terminado para una H.U. Si se te complica definirlas o no tienes idea de que considerar para cada H.U. es de gran ayuda revisar redes sociales como `facebok`, `twitter`, `instagram`, `devopedia` o la red social que más te guste y puedas evaluar qué consideran en cada funcionalidad para darla como terminada y aceptada. - - > Como usuario nuevo debo poder crear una cuenta con email y password para - > poder iniciar sesion. Por otro lado, necesito también tener la opción de - > iniciar sesión con mi cuenta de Google o Facebook. - > - > **Criterios de aceptación** - > - Si el mail o password no es válido, al momento de logearme, debo poder - > ver un mensaje de error. - > - Debe ser visible si hay algún mensaje de error. - > - Debo poder ver esta página de creación en Móviles y desktop (responsive). - > - No debe necesitar recargar la página para crear una cuenta (SPA). - > - > **Definición de terminado** - > - La funcionalidad cumple satisface los criterios de aceptación. - > - La funcionalidad tiene _test unitarios_. - > - El diseño visual corresponde al prototipo de alta fidelidad. - > - El código de esta funcionalidad recibió code review. - > - La funcionalidad esta desplegada y pública para ser probada. - > - La funcionalidad fue probada manualmente. - > - Se hicieron pruebas de usuabilidad y se implementó el feedback si se - > consideró necesario. - -## Objetivos de aprendizaje - -Antes de empezar el proyecto, recuerda agregar tus objetivos de aprendizaje pendientes de tu proyecto -anterior en la siguiente sección. - -### Objetivos de aprendizajes pendientes - - -### HTML y CSS - -* [ ] [HTML semántico](https://developer.mozilla.org/en-US/docs/Glossary/Semantics#Semantics_in_HTML) -* [ ] [CSS `flexbox`](https://css-tricks.com/snippets/css/a-guide-to-flexbox/) -* [ ] Construir tu aplicación respetando el diseño realizado (maquetación). - -### DOM y Web APIs - -* [ ] [Manipulación dinámica del DOM](https://developer.mozilla.org/es/docs/Referencia_DOM_de_Gecko/Introducci%C3%B3n) -* [ ] [History API](https://developer.mozilla.org/es/docs/DOM/Manipulando_el_historial_del_navegador) -* [ ] [`localStorage`] - -### Javascript - -* [ ] [Uso de callbacks](https://developer.mozilla.org/es/docs/Glossary/Callback_function) -* [ ] [Consumo de Promesas](https://scotch.io/tutorials/javascript-promises-for-dummies#toc-consuming-promises) -* [ ] Uso ES modules -([`import`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import) -| [`export`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export)) - -### Firebase - -* [ ] [Firestore](https://firebase.google.com/docs/firestore) -* [ ] [Firebase Auth](https://firebase.google.com/docs/auth/web/start) -* [ ] [Firebase security rules](https://firebase.google.com/docs/rules) -* [ ] [Uso de onSnapshot](https://firebase.google.com/docs/firestore/query-data/listen) -| [onAuthStateChanged](https://firebase.google.com/docs/auth/web/start#set_an_authentication_state_observer_and_get_user_data) - -### Testing - -* [ ] [Testeo de tus funciones](https://jestjs.io/docs/es-ES/getting-started) -* [ ] [Testeo asíncrono](https://jestjs.io/docs/es-ES/asynchronous) -* [ ] [Mocking](https://jestjs.io/docs/es-ES/manual-mocks) - -### Colaboración en Github - -* [ ] Branches -* [ ] Pull Requests -* [ ] Tags - -### Organización en Github - -* [ ] Projects -* [ ] Issues -* [ ] Labels -* [ ] Milestones - -### Buenas prácticas de desarrollo - -* [ ] Modularización -* [ ] Nomenclatura / Semántica -* [ ] Linting - -*** - -## Recursos - -### Mobile first - -El concepto de [_mobile first_](https://www.mediaclick.es/blog/diseno-web-responsive-design-y-la-importancia-del-mobile-first/) -hace referencia a un proceso de diseño y desarrollo donde partimos de cómo se ve -y cómo funciona la aplicación en un dispositivo móvil primero, y más adelante se -ve como adaptar la aplicación a pantallas progresivamente grandes y -características específicas del entorno desktop. Esto es en contraposición al -modelo tradicional, donde primero se diseñaban los websites (o webapps) para -desktop y después se trataba de _arrugar_ el diseño para que entre en pantallas -más chicas. La clave acá es asegurarse de que desde el principio diseñan usando -la vista _responsive_ de las herramientas de desarrollador (developer tools) del -navegador. De esa forma, partimos de cómo se ve y comporta la aplicación en una -pantalla y entorno móvil. - -### Múltiples vistas - -En proyectos anteriores nuestras aplicaciones habían estado compuestas de una -sola _vista_ principal (una sóla _página_). En este proyecto se introduce la -necesidad de tener que dividir nuestra interfaz en varias _vistas_ o _páginas_ -y ofrecer una manera de navegar entre ellas. - -### Escritura de datos - -En los proyectos anteriores hemos consumido (leído) datos, pero todavía no -habíamos escrito datos (salvar cambios, crear datos, borrar, ...). En este -proyecto tendrás que crear (salvar) nuevos datos, así como leer, actualizar y -modificar datos existentes. Estos datos se podrán guardar de forma remota -usando [Firestore](https://firebase.google.com/docs/firestore) o de forma -local utilizando`localStorage`. - -### Autenticación y autorización - -Hasta el momento, los proyectos han sido pensados como recursos públicos, donde todos -los usuarios compartían un mismo rol y la misma información. - -En este proyecto tendrás que diferenciar la información a mostrar y modificar, -dependiendo de la identidad del usuario. -De la misma manera deberás crear reglar de autorización para el acceso a los -datos. - -Para esto utilizaras respectivamente -[`Firebase authentication`](https://firebase.google.com/docs/auth/) y -[`Firestore security rules`](https://firebase.google.com/docs/firestore/security/get-started) - -### CSS - -En este proyecto queremos que ganes confianza y experiencia con CSS profesional, -por eso usarás [`flexbox`](https://css-tricks.com/snippets/css/a-guide-to-flexbox/) -para posicionar tus elementos. - -Recuerda que no puedes usar frameworks CSS, sólo *vanilla css* o [*sass*](https://sass-lang.com/). - -### Otras: - -* [Pildora SPA](https://www.loom.com/share/fa63a8ad0e9a43428222c15b6f6613d3) -* [Repositorio de pildora de SPA](https://github.com/betsyvies/bootcamp-spa) -* [Pildora de mock Firebase](https://www.youtube.com/watch?v=06myVn41OTY&t=1s) -* [Repositorio de pildora de mock Firebase](https://github.com/Danielalab/2018-2-Testing) -* [Pildora MVC](https://github.com/merunga/todomvc-vanillajs) -* [Modulos: Export](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Sentencias/export) -* [Modulos: Import](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Sentencias/import) -* [Diseño web, responsive design y la importancia del mobile first - Media Click](https://www.mediaclick.es/blog/diseno-web-responsive-design-y-la-importancia-del-mobile-first/) -* [Mobile First: el enfoque actual del diseño web móvil - 1and1](https://www.1and1.es/digitalguide/paginas-web/diseno-web/mobile-first-la-nueva-tendencia-del-diseno-web/) -* [Mobile First - desarrolloweb.com](https://desarrolloweb.com/articulos/mobile-first-responsive.html) -* [Mobile First - ZURB](https://zurb.com/word/mobile-first) -* [Mobile First Is NOT Mobile Only - Nielsen Norman Group](https://www.nngroup.com/articles/mobile-first-not-mobile-only/) - -*** +Creando una Red Social + +Nombre de la aplicación: **Code Dev** + +**Descripción**: Una red social pensada para la industria tech, en donde puedes interacturar con otros developers, compartir tus conocimientos y publicar tus ideas en post. + +**Objetivo**: es conectar a usuarios dentro del mundo tecnológico, ya que a veces es complicado encontrar personas con un perfil profesional parecido al de nosotros y Code Dev facilita ese proceso. + +**Quién es el usuario:** el usuario de Code Dev, son aquellas personas dedicadas al mundo tecnológico, desarrollando con cualquier tipo de lenguaje de programación, sin importar el background de la persona, solo su interes y deseo de contactar con otras personas. + +**Que problema soluciona:** mantener conectadas a las personas pertenecientes a la misma actividad, pudiendo solicitar ayuda a personas más experimentadas y permanecer conectadas en cualquier hora y lugar. + +**Prototipo** +Diseño inicial +![alt text](https://raw.githubusercontent.com/DianyelaMaldonado/CDMX009-Social-Network/master/images/prototipo-actual.jpg) + +Diseño final +![alt text](https://raw.githubusercontent.com/DianyelaMaldonado/CDMX009-Social-Network/master/prototype/prototipo-final.jpg) + +**Feeback** +Al inicio del diseño de la aplicacion construimos una idea de acuerdo a nuestras creencias y creyendo que habíamos tomando buenas decisiones sin embargo al recibir los comentarios de parte de coaches y prospectos a usuarios decidimos usar colores mas atractivos, formas modernas en cuanto al diseño en general y seguir las tendencias actuales en cuanto a aplicaciones móbiles. + +**Descripción de paginas:** + +**Página de Registro** +Al inicio de la aplicación la pantalla que se muestra es la de Inicio, la cual cuenta con campos para registrarse si asi lo desea el usuario, para mayor comodidad del usario también podra ingresar con su cuenta de Google o Facebook. + +**Página de Foro** +Esta página es la más útil para el usuario, ya que aquí puede publicar ideas personales, imagenes para compartir o solo incluir sus dudas para que otros usuarios puedan responder. Estas publicaciones se pueden leer, editar y eliminar a gusto y necesidad del usuario. + +**Página de Perfil** +Esta página sirve al usuario para personalizar su perfil con los campos: nombre, profesión e imagen, para que pueda ser ubicado y contactado por otros usuarios. + +Tecnologías y características de la aplicación + +- HTML +- CSS +- Javascript +- Materialize +- Firebase +- Firestore +- Github colaborativo +- SPA +- MVC +- Responsive Desing + + +Objetivos de aprendizaje + + +- [x] HTML y CSS +- [x] HTML semántico +- [x] CSS flexbox +- [x] Construir tu aplicación respetando el diseño realizado (maquetación). +- [x] DOM y Web APIs +- [x] Manipulación dinámica del DOM +- [x] History API +- [x] [Localstorage] + + Javascript + +- [x] Uso de callbacks +- [x] Consumo de Promesas +- [x] Uso ES modules (import | export) + + Firebase + +- [x] Firestore +- [x] Firebase Auth +- [x] Firebase security rules +- [x] Uso de onSnapshot | onAuthStateChanged + + Testing + +- [ ] Testeo de tus funciones +- [ ] Testeo asíncrono +- [ ] Mocking +- [x] Colaboración en Github +- [x] Branches +- [x] Pull Requests +- [ ] Tags + + Organización en Github + + - [ ] Projects + - [ ] Issues + - [ ] Labels + - [ ] Milestones + + Buenas prácticas de desarrollo + +- [x] Modularización +- [x] Nomenclatura / Semántica +- [x] Linting diff --git a/prototype/prototipo-actual.jpg b/prototype/prototipo-actual.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cecfa60cbbceb1e9e218e751ba8c2965d52d9358 GIT binary patch literal 133083 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

    3tJE>ug~k0^hr!5By}T$U*wupKlu!2VPayBnwrR zUU%~GcNj}PmwjDdy5rdA&u3p)IK&z>)<~bAH%gO$vkZBrw79&;m7<^*+HP_&l(bgu z;&Pp{e=Z@X_`RW@D7OX~^WBKxIxf|MDFyt4;mEGncQQL!!!7s+}AuO-V(rPsiXQBbLU!zK9MNq_vsx z&O^e9w!*PBV>mF;Y;g!s(DVY^+G1~$Dv;%JV`LD?%fzq8xB?)Kctt=$Haw{(u3Gwg&j@~@5gQDvyt%7p=Jof2DWtr z$`;ndvVF%R%- zpYW@CV6z%L4j86Ui=VZzBr!BL$&X2#jMCLD(PZ?nRaUR^`k*cwg&VGc*k^w%wo^if zAM{#Uo$TS}SJ`khdp3o>|7Kl+7HPfuIKb6>EQIgqNrG-C58JKLE_C8@0DY%Gd=5L6 z#7$0s#f58r?w~^!xd&-YdT32(WW?ldD92`_4FlUTM(CZ|5sadv_(&d_u{!$ziXzC` zA*F`A`sg&5QJ6<7sZRCgx2%tppZ@TXDfq(g-K?dT#mKkqdl~VLxZxSm$b*-ih%9;B zC*9rS!c2TblRC@L!M@+iQMaRIEXYMX><14FB~?K~EtLsbMP5-o-9$z$D=pt0J})wA z5t<@Tzpy4ETy);D>;x&B51HO>k*1iR`LzD_7qtS>tj2Mlf`c}BMpl&t2dyoW)U1=! zq~mLyOxxybQ)7*aknI52v9_BI#Wp*DLh$RCk+`^t9kvJy0CJrnD7J3V25_Qq#5gL; zE&LRaPRh=kKVA*W>fQe4d8`lE<*Rb@HBkilaL9Ccx~*(QURCkNiKP{Ha)5va-6T$8 z_U@C3R`N&}!uMp=<~c^sp}|$Hls`+80dz7jdEz(UFshRK8NRy71mk`P-wNSc0dP(T z!Ff)cS)p%oPr#$0?4qLeLvZ$18h4)%*W`EK#ao8#?KB$KV=N6PShi9gPWCJJs`&6e z`D^3nikey#y)=y!z@A1XQ@>qLmUsL~xpuc|=T2~y_Z@L+KjsKBoP1MVVFckuZ0fhX znLHe?DfV&Bl3k*vDy=A#Px^3MV=CEvYhNJy;QzdmJgyXZ=QOs5+P1=0B_76Z!3_H^ zVppf(EMe%Diuz{Mz(vUFJUnU(7kC?^T~+(UKkV+`JWFDUvW+#KiY^MZKWhe+mG7l~ znb0Ur)~JwwB6=fs(8TG=bF~*2U)qAXKDb%s=>5E3MTu)tEUt28$Kc*qQ0h0Oldm4Q(a&J3| z=BiS)S_^+cj`e_KWyJ{PpuTf?{^ouO^{0#Rd#mG4KKS_POxFqia)-MNNkUe>#&%!{ z)=ii2y|$`h80o8Mux78O-FngV;1d{OM1Q8@I7#2XnLctfSPm!yhQfX~7=U8Mh>T7) zfDfm1f&4FSn4cTYRl(9y{$rZysD+}@jnaB0-jF%pN|ttTY`QRV{_Op0CG}b@&Z%5 z7N#!-6fpj4(ZbPTc1OSq1uSg(wj2Bscjza6kwgEbl@LUG0bvDTjW!3izr@>rQ2btak;ZlifTt_=(`>d_c|J5 z;5{o=WWm6);6|BN#p{{9wTRA3UV7_OSI&A~(|q-_|8A!HE6@G{#}vnyYr^x_@~7kt zlb{oHhSj0kyr}p=z}MNZ7>kuV3g6nM2&L zx{$lo4JII6AhEIu0@}4gzE#^8<qjxS=C1PD2n zr7#P4uuv`^xH*rk9b-rry(caL`+nwA&r_U`juj(xBaDfS_IK*GvyPjgtn~2LXH)Z1IBD2QNI8H+Cy8~FC^$y7hku(!cDM<<}7DG?8O)s z&x*I#`xbpU>6lX1PH+ppQ?A>V!XZS|RHWWx+ARg=pbsk1m_v^Vcs`_PlgbAMG1gzw zstqo5qbPU8Yathwhoq<-W)&JT!C|;)|DAM2_W5c`!c(XD!JxtKR7b}VFTK1{%wC28 zz~1o3F{eLpe^fB4;}?C@#%=&mk|`7~^Q2{38)-)_rM88%7wZ5Ss)XKn z<_h}?ZKeX;UGO`E#vc8?$&VG)k$smx@!}Rh-}8XM$E9;aK{&qk9Z2K@3irDv_dK&5 zk7s$c@7(O=?s6VR)ZwEm@%(LXUEm9jH;C`lIpxWqwg8CQ28O)aFn1ioG#W-gy@dE# z)wFN*lV#eZy8i9ND0+fKvviB2dmgRv;es6#9xDrwovM^v)=T3-WgTfuU1|22zB>(# zTuSW7)mm4J#CXRUfEsrgC)IV zylUAyk!hX;t40}BcfL2x0(2H0er-1lRDd{+*a_o_>L zOgq5s2r6}2pwxQ1w_H{y7a)T6T(9iEA8;_9QMrIZ8FOAY9r1KE)&k1D&dM`JL+bD& z3C5)Mrptsu^)M&rh7bLOFAWx@B)Zywj+1w(SBN{V*efI`#%JAGV}m=WUA!b^xyas3 zVj~%sS{!i+0niwsJkO&e3s|ANrhbC1*D<+hbt1nb?j-A~_u7JhF>*nUF|w8MD&ejD z+#uCG(e%bvQSbB7M}pWkEP?u1M~;R%h)!HJ92kU4qOqimp@_;QLvzORQ^~QRSapdm zNo}M4fHJrpp|>(PHxAa+ucCtTX?qqJ`1Mrw^zuz5H+lfTs9ZW>0_c|xtRM#Hvt^c- zk3Oc)EPs*DifhvoX6W|BMB?Ah1qO-M>6Vuin-+UH+NP#$9&u(>8-M7>XmZMmoDngY zPt5_B8Z>jmJG2rSHmmR+G!Ci_F4&;Ue1lv))tsh+>n^VWGQA32uz(hNW9SYuY%`H9T>>_YIvbGb z;GXiD+!0lf*SSRmux@RNJi0Mik--d0+PQ9cET$-&sdF-n%1v*jS;-2S9Qs8_ej zCr6cpbq?y2<5+h3go-eQrEgs~fU#k0l9*oG4KBhJ%%tc^M$yJh?0pX=&v*Z>+535k z2Ts=w67p*+$z_zjzDbLu@9V^b)YOofNHw@1TE8{>B9P^(%ADkc1O7qUb+R``VnWGw zs&uiz;9Ys+J4ChEYLAZHN5h=i_tg0^ME*Q^OF>aIb!e1Z!06ZrVKyda(lRTn2LzVu zCl4-(_q1o9uVf15m3dOG>+NPm2#nVjAqSgIHGX@66pO-mxP@WQmTlA2(Q>uvZsFQ+ zX4K--GAGaul~R<@pdx}JWjRtmY27F*U{$ngDb-29D!dM(Q5IZM|9z{r@gvU=K<8BS zV+QqUtJeMP%3l(mDn93S)58ZIj2ad+BN%D)eZX|=XS8jSyajyNCzH`bE#azBjxVn= zeTk@}VNoQlhuAxvlxZBk3t8s*-AnuyzG(DIkfLZGT6+WEt7D^_s1h!T-f4M&&c^Z= zML=5jkZy!|jkqw!@FeFO^G>D;@cx3ns3;wWAmO0rR8^C=vt*|Q@jn_89h4?e5lYy5 z#6##2D+VLQg^onJ+6eGcw(LshjyX1IJzz8Nk(RAd?+15G@bn3a48R6x8oGm z9CCY5OCu?NA)(wb*Xf6;2z|=5nA;&vjL^}TY}Gpo6I!SkWot7CZE4Z$tA$>Ho5l1j z&2~SBIr1=-vcQE9$vT!9axrI^yS%k#3^FEf5TDvqRQ4-MP3(C)NJNaO7&8UFB_J4^ z9pdeoxh^nBJO<{D(H4C{^VWjIh*MjbZ%swUs|5>6ZU%6UPFlP)?E`X2IgGh5gUKCh zS6EuY02V<#JTj;8g|@PHK3u-xBNO{n2RaE6HE=CNWS?NXcF|xpWbf;v)%LnGojan{ z6&~lD?dD8P$5SGj(x>Mf3)U1wmfBP9WdzpmoJNb?gdJQE1IF)q1}8B`5-4m^k9QY) zi8*4hAj^tx3w}4>yHNK&m~Au}hZ6S62xwa_<`m(Pzs6^K3FG)flzSFlw(yU7<#l$6 zE4jUHj8w2Cgtk{n$y6}|31U&}CiSRjN>vW+a{&ARV*8g1E2&kSH)+VKruXzvgXY^& zg!n+)a#CTm%H4W$4$pWm5gEqcS~u7TL~ahTuN^EoTeWn=*rm%9EuhXIWI-ny4)JtQ*AnC{tN@(%F;E~(nB?6b7I;vZ%_tRj+7 zgd-Wg;kISC=LtPsWb5aV@W{as-WWAcHDdJmWn8PRxXa6YR?=-ozTV*hU}%n*ykl9J zpoA9m&P$zS%tYcVGfiFfYX|+yv~LmL$IgFK^wzZFq%~k^uwg8TD+uJVKzEn3i8K1F zCXY-w{J5iJ02-xdLT9>3C zl|-p3Dq9%Rs7p*g`|)-)WvTo15%^DZ(FUQv3^b~4)Nh9FZ?L1o4zm=D8Eri={@zFz z1}MY%n)>eHGBsWgW-AjKKlOwMrkPT)+Zx4p{0gXZ)giWJ#d;OFtT_D) z%3RxMkgfRZ!H2CKccG85e0La4go#zEiknF0ov~8c1w_bp!ph)@D zPpsNsfht92R8@f7_sO6+`iX$JjscH>v&5U_(mc!+5pMrrhDSWcgfVohSLsh?b_|L( zvfy6J6pLVAb=7Sczrc`-!q_3+&1Ih$S|+Rr!VwS9<9(**kX3>F@6`Ny#LqkNhrXur zb15zY%+aAb_#^gdIz$Yex?=uhXQfq|BxWZLYLa9=!dZE3l!*Kw%@AA^q0Ed+ zzSTJ7K~@YM)3t0>FW2mj36z_4ue(n>r#3Op$a!e22VJ6V+;>bh2kx}GSV-wWKH*v+pkNEAaauX=q3+$wW0Ml z-ZJ2ETt#BbakVhGDRZwCe0EbQ2utfKi4zi=&4yGnHKQ9ei)Sfj6>sOaF^)GfAD)sr zo86B_Sq_vf`;Tc_)VR8;v-S3K@>bOGLgVwp!1N)6x(dZ%-0q-cnsgJSnN2C;2<|Du4m6^{epZ=%bz;F) zEFwVndR2j6UgMUg@Gdss1vOJ468`vD2*XTh9}5Nh9w2#yEwS?eqja^Ks zSTn(TNwft4q;0?2iU7hcsLD2|x-RfBqLAV|Mse!Vfyo#fP6Jr>#Njt=P&D#-g9T$; zy%-NrPwFHI*H;eR2fO(<&)m%n+-@Khz<$AvCj8S=F_6kaQx~VQiJ_02 zMyMD&77m{DjwBR8n{29o{h%31ny27y2rNVu^<_ zlC!c6&=NFOtQ%_6T>AWV^+rIK+BcEk=Dg1`@27s8zg4H#g)HG$kSK9bBVVpL z*?lr)IuCkbgL~cX9qUrN)Y0z^XG>?f@_hk4!eJE--Zw}s3}=TqJ@Mq39c6yc^#nhg zBd~H)rK~o>`>MXRLUNuj1Q!&f1*x!8)=(?BT34f)Xz}{&AvHu_vAp%P#j|AmIg2E@ zOD~HpedCWlY+UrPG3XdCTCy3c?aUt;R?F}AZ(ODr1vDnWcrj+I7f58J5%wEw)6LtN&1sj`)`Alkv5&^^h%v(kCIAe0^$7y<58-au{QQ zcV_#sUeN8B?h$%v9MHd#eCS zLFsq`P3QfUW>NzX7rXLpNrgm(MUc=>nMQ%|0l6Hbr| z%q;S^=!HdQGja17KoSagin=sZlz13ELEYYEyJH7y@qv{x8Rwwr_Jq!_eMoH|tV-I~ zR;S(fAPLe=2g>UR;p34JxV*oE4|SmwAY7G1AJx zKYa8^H0bUhlHy;__FtlO19EKTOC)r!wN!1@()UZ`B1a-rUvDw$hkp@+WFZn?No~=Ow0muR_s3V6HI5wswW^oty1<>oasZ?=F{`7^2vqLA}ij}Ni)JTP|CwbD6HB)2iQ{*1GhPbE|8TL#|p zLWFT|(SiQg@?$NkukRL|YwI+XT`Z9AqQA-n1Q7#BzY1IY^zR(mAoSl$ky-zfB0H@_ z#m|D$@v=w}h9O(TiffSsY_K3;4a;zfq3cGh!KO|86X?V{+^={n>s$~gU2e$;sGz{w zD+PQS?WVCQc5I2NKY%d?IkMmhNbL3m8%wiCuWr+c!$*nj3tWNG6X0E-gi_0e#8MW7 z-m>mY)`0|#V;@!k%HWo^gf;=@m>ByoeiiUjo(>xSM=DGU@HoX-=o!fRZN1CB-Ppo? z*z_5;)H{&-`kh5Ho8cZOk@Cn%Ea$&@PKKx8hEssd^1A+0lMK$?zOc-XJA{623icl% z5|78aSXvl6`12Z+kv#0X^(Pl7k-YzW<{zrO71w-h;(?Y>5>e`pZETB?E1X<%ayMcF z^Z`vy$f!V8AeRGmR@(I>;v5JWqVdqblAilMZa1Tk9uhQ?d&Gb8PzJk<6@}Q*@TyB$ zw1bFnCAxk0u3o)dIXKZzOQg%)OFi2_c5SFg$qVrO`OD|tkNM9(0{(=8C+3+hX2$?` z+`#Xv_$3c>lT|VS+r=uE2%fIWv}7a}1cU*xV*N`aT>`DP*)rs{D>}L*$L}RNsCmQ8 zs}1!pcx`s+N_7~2sOVeEGzpWtMP8y+lGnPG4=k!J@SFG_xr+2~^?W|!IHE5eO^-a# zce#I`4bLv;ixCGbA{={5ECycnpEk~yf7p&Y|M1m}arLEFna1ZYPFYM(W4;)o+g~Bt z3v4WX^7He={UY@2NvX@0DO%MJy$hu5hn0Oiz9zFJv3t2+ONSxCI(vHHYh6!Q`W*tL z)~GCy9C1f&pO@MN!jz;E9B8pOPW(t@Z{WB)F9CleZxR1Dk1j}NHUZ8Jea;UAV6zYr zAcFIXxb<{sJLKdK_||F+z&SJE><$k6J6jm&O+Yr>L3%G|0>b92T_JOC7ei?WIO)XM zx2!!t+jJSa#YYU)>jXr83U+51##K)GZ(mr{15$u*Fm_x~OF;M*f-kscf?1^J3k3lb zXcYt`_qQQWaEzziuhcbb9dN$KcDi7OcBMf6(|={@V9EkZk&u)XG>)9$|8 zATucvzRm&Dd8QJmsgB~<&JZ{3))JJn362&s)Dz-9X2MwxCSBY&x>%m+7LZbT4f@pf zfqR3_bE77T*r&kq)#Qi>@c`18O^*-p*A!T?|MI;fcy_JbipMaV8w&fIC+rJQg6Z9` z1L84c&@uKQmg)cheN;e7=RB0g`_G`DL8fMRc_LU2IWKcLd1FUBX;-pY@h`J?b_a}h4+8Y6t%ZWkgMnQW0=|4p zrwe?2*8+=ILyU`|V;R3ILoWW!W48u9=ubVs{aRH~f{WGLb^O%KQqW1BtCJdVm#~{Z z?MA6QYPbmT(X<;silu@b3^Oj~82zgC zq@>U@ljF-exsS=-q7-3+NuGOwTj_#svD`(-w#`0xWx5Qn`+-Atx}A}q zH>o~m?fR+9w~X)(vC>_7{IF~mjgE8FYBp1Hp} z5?O(cL`6`BHDFJkt678sffU#(SiN|9AM|!O#1YsvpeGMyd?WHy3~`0=EnhiU+Wzk) zY&YlxzJsfg2ewYpO-=XZgdbjEbDWf_y z!&2?o5GVU1ONuK2`uFXxUo6Yc7LtvVvp;fME@81rYW8m)0a(1h#|LI%7A;JJvO}WW z=o*vlXbG%qkhAEg_31biICY~W3xVkRun=IBm9Z4;$y~XwFVWaGsWVK&=<>C0-rMho z8Z02uI{Lx%D-Du*^`Vnvcag+BaV2wa(oC3T#Kd*AxbE6M^)d;ohB_j)>f9TlboL%b zo*gQhDBggecWXHdU1!D*Nl7xIBCKpaHfe=th9ObBi4AuU!39g)Z)tSrpS!nl7hwQ3fZEt!BE@T$Nl_ZB_rqJ`JyBOH|r za^@*k$c6o7^d9MJy*^7i4tpss>HDUhwsH@rne-Esv}P9Go!c{Y1^6c`2TUfOGPt^- zHr3z7oCnvV^Ar2p2-Zo~EI@-eR63EmZE&xyj(p#sJa=da#Lot0k(oiB{&Oy;MN@Wk z&3tknV8oWufi>L%du+@i~{lAr!{tupD7WzhX2?DQ&ba2j1wy z!GMAK+J;8))EA+5P`UP=fAiS){sB>U2=A^l$Vx4~hcVEZv>xQ1SWxZKh%2hcvlUcg zw}J8Y))=V1IsVYuOMETk;g{26Mf|>RDJql#|C2!p*n7GvZ6D@0kFbW!KL9MuyGf_vgM(pH@D0)8rwF@a1sV>?t zx^-VfG*qKH`JwxD?hDWSzGTGWr@whF>uPfa4uHp&0n)Y3j7oSVWYNi6^uvSX(R|0E zwyv0UVWYK$=(2Kx5m)r!{rhh+TFpM#Q_`nipUQB5Tx9@AUaf%W!mu1IhJXun72G`o zq~_uqL_SS&mE@`nha^il3U5m}@!HS^p;h2oMQZ{ls2~&U9W6T?(8SgC_s1KzvE4F- zzfVPFSdP^I6Ti75HUnK#!`z!o#7-xN@&QKO_PLDGy|LSb5wAtPB^K;ye{ z+aRTra^P_@<>p>&zOHa%gkH~zfSAEZIVJcXf1>*jY;z`&VcGHr6au}=P*pXI;i{e# zoPjWk_dn3S=P_6hJp?vG9Gqbe7i?S~&tqzD$S@05TVnDJ%30*el+?H)GiJAB_t-{O zAzLxg+4*~=rM**kfWXI_naineQdZc!DPc~$4i}(#+*8=hv}owWcc8Hu6f4!g0I$R@ z`UUUDd81ql9W>+gRLc_6?;wsx4u0z#);p?b(YE)GGxZ9$!1Vs2P+zYJtmM0d70|5GD{>hW#k^AEIw1Y!q~2Y!$~+1f*GD6x>{$fUv#Z3G~l!0=Huwm6?pw z*uV}(9%JFUeqGP@s9yM+XYfB_@B!=;fD$So_qpwQQh=$-MuGZFP=^NMD>Vp97lbJ7 zB%(VM^`nCXF62^F`wFAj$%MRa(098JSrRw3-ZwJ0iR&Y>#pMCz7R7*ZfCHR#+wU>p z&`L(_p@2g4M6nUxExXkdU_rzHex}54K~=Y%-<(!k5zgh&Fwz>dFKS!mi&*GF<2teU zmr#eqG;o53Ce#ZTONo$%!>xYt9l5OL4#?1+g0MLF5w_nM2!y>W!}drUq=ULgG5HE5 zdMLyr_P&zMUkq{j#x$kxFl}3|-p}}K>RnJcaZq*7(V~Qazt%%jYP=Qh z?}7D|uMIS$_{cQsof%q_$FCiCIrFP7-esm%qr16&m!TPOX2Dbj1i{}Z|R04-GtW{zs*0Z4b)dX z<=sJ+{_rvOj;}~oY0z%9XE4bIqYIJh!zZuV{K0jU`y5m6h3|YLC?91;rd&@cRm`xT zPNrWmE!}@}COxGv>tx|nhV6BPjHTqTaK+I)o|8AqCbb*&RvfLPZfa~>m)uJovis#U zpFH{n;p(rh@#xyD+D!w7n3eLqNdC~cvY+x1eiO_=ylzi&RmdfhM}VsvHb7*I+!k;a zm>vj;F^Z76ZnKnZ`La{)Wgx5E`^fNsJN_0@+c0G&)F~+YraHj$QYG1j|IMuqTwKMH!))@vE5$oqgA&`K2@IVSS%A zal=)nhceC<=6Rqb7hnNrySvLXeNUy+tqvWgWa(=jxeb_1U--sJGQD3dA+}n9*}X=4 z>>d7+{gZsn`_GHUEjRvBd-3YWqOAKX(Y-MzUSnD_EQ)?8RK~e_N-nkK)l@yxrU<5% zHmeR!R?7TE9DXAtE2T2%POKo-Cn(1s9BNJ?|D6#Cg2^G;yiEy+whLkb1-J z?vop_yQhzD|5bWF=X#=qwtZgwb?KXB^aSa{qMp~zzp*)7QGZ=nNU>hH*)`3{(a|9% z_S@iipK4ot;CI8_qPq6^#_#MmFL(3U{}V5Pcnawd581`G(0Y9wW5}rcBa9DY$I!WJ#S(=0Q9iR*8J#V1fgd!-h#iL)MIp{--6$XEGtkH=Lf@Y z)Q>{zpglA=J&I8ZdQvPf82-TJ3vEGeamj&7z!{{hxQ1X=m?c3|5$v_br4LyqtC+kk z8D$!$my6|-e`S5x4m=IeSH=jOmx%4OhEC*yRNFAIGIa&dRsy27*AzIJSa<4{Ch8Gx z!=OnNR8k1!*!|u{o8c^Q5V)XbgO~};rK}yJU4WA9)D~(OUJqn>PulHhgm;r5pe+09 z9K(s`$!-wH;j6vRv0d0{1hi-}K8KAPd*(X->U0^$r}94)KS3z_y1`<{7;Q%i>1j(i zIa`yr9cYnTTs27J8T#l0g4HM|825J~P~R%pjXw)zkz^v#^! zWh6`pZt}(jruNXm3H{O3U5LM_And243UFbbCC`xRmdYR1MJ$yph=tfJmA|gmJX{&@ z)eB3I`!uFWBPN6^8cccu;X#Zpp>L(ZDu}kE;5bOoRuJ$l!@ei*hwblzy>#sN?|!II zR|XOFRpY0bMG8eS?Fn1wk-KnLq%kZ z3FHZd8m->F|670Do?uW#p%N3o?;HXnRQ_@-t0kW$E4w12rkAky;Jhl2xM$E1TV`5f zzzi#D0=AE>ifbJj(h_K@&p|8DD#c%i@9tYmAy+Dx%9>;ehPhhyqtum5Oq*(l0{BOw z`oC5cO5EhpM#3moG{{E5Mp7BNgS0K0gPN3}@;Z);dVO%dH0DT*D!W@Vm{4k#eRRjA znC`7`BXXoosPJY$XuYZ0CAc%m2Z?|Xf)<(hS>D!dxi+ZKe4PT;O~NVjIKe4q{j&P! z_2A0Pv14XQW?HHBh19Dw;2*;F7w0)p5$%$DZl{;0>PlN6Q5TXn#96lCr@bJ@*7+AW zp>5fx23OQ^BDc|Lr15>svx)Cj)SZRkJCc#OaojG$M_w->+lzj z%>xpwY`V;5(+Qwut8M0NXZf0yJbqA3VUVo0X;NlJHS1Si_V4$1n*H;|fFL9mi%5Dj z&flMA2naL)fthnG4*ovZXAqyHCsZypcj`@aqA)8Z3pvagv6 zNkWNGm`VsS*|Sb1*^-28!&FFF@`7qD6rJ-lU6rB_BghBqtgP!X#-f@mVc zU&Q7i$$+6gmhCBVDkUH|&%VO`QlY4LF5ITOH=>cCgi;?k&Y}Dg5MWYd~Bg3R}H3dJycd|3dCx13o?sbX?12a3~G`J8IStG)5 z{&7y0p}714SsB>OXJXngq!fN=Isz!VR@c*F(~5Hj)K;bW=wH94*)y!bbn=!PjxLp9 zXhct%Iu9Ox+fXw&fBTqQ?L*hZhNR}-T;&=h6`r8%wv2;#M~2UnQY?mE19FeQ)paDD z)AW2an#Z*ozAmZHc@g({Y|2H)1c=r+@sLgE1GXXkGqA|l+$5vk`KwP3B+4=j=L7SD zYFb|CiVf->XQPd7=}JTRiFw_F@1j54@j}rH8|=6vr~_&R>JtFne`jn9FZ0dZ$JV(dL}LfTs1fi7h;H62S6 z`qYyu9qBN^4%`Te{uEH&GSaih?B^^$k65zQT}yciIioXct6h6arce`j%wsMomE09L{5#xWaS6N#>-@TCfxAU@- z%z_@e{tBn1!FFQl1DO{q(pMQTPpS#5OLfQdHA!KWD+a34lz3TpF$nC*^1)k`5n)9$ z_6DzXex!I8kBvLpJ(GUs8Z6uAK5{QL#r8zkg4O>RN=MIxZ1y_;4!j$78 z%OR{cG= zxwD(`$wTE-#P%5*-M{*WO%mF}d4sAxtwDK7XBh|Unqolln%E(DJ2A;9-neP&{uM^wr`R4E};f$1_|Cyf!KE9er4=Vxn_F&(^|?wdh9uR z%A+Q6N5Iu^R8CMy^P-X^yjo0E9EpQ~{zsNpuBRy7BVT+QCTY>Dl-eSmL0c06<6DQS z3gA&uqJS(tfz-tpc%JTD5ip^+1ff^c&`}ccDNzkt!Ph9=$c{SiT82_vdu{+tlJ6>% z!|LP! z)-ADxdfJ>1)He05E}$vo$SS@wt$?UE6M~O|_j$q!5uXR9`g1{4Q{>7p%gqkLUFk3R z5>J43d0nH%DjD#X&cO0-gKx(B!vq@o(QhtqpM7ji$dsbE8|zj~)~6!&wb7g`Tl%mn zy;bSqOD(wlfJjOwTSD={I^zk_$rBu}iSY!gl2-Hg&^ z%-#^c)vWs{S(VZqADb>p51yh?@;3gdel%kO$!F5LN0-_y5gqt=(M#P$K|;m zhHVqieS>IK*?~0%x90<_3FO7#ZYS$^85LSVOnzkP=r`{V>0;(V; zzT5h}E7APZKbssf9!sA0U8#@dT=UH zvGhFpQTaEvKtCI`|JP&%!^F^A&~(`068_4=VH5gT3P}fNST_)0YI1sEeyP}`=t_5? zI~^`GKZ|?@oLq6NK&&afl*GQlh)%$&=sr6pk|Eqz>4o`gdU&%s-8Yl%*DucyeS)~J zJ}NoDxWqi2(!#8Jm)6Sn#?JE|qw5+Fxau39l?bGMDP#cnhZzpW7d4CD$KFQqBF7Rd z1Ex9!&11TKMD7nuQN2I3^ewZnA@NGJLh*dcK)j-rO~bf+9*zQGeRy zVukbGEtfs5vgUtg9yzo)QqLf65C5?+mXLNkc=R<*nDVm(e-QBmm>M zivigI0fZ-YB$+4Z)6(C7tyMh=-Jr-(nPYz?POO3LOp=fD@=N&AybEPfmnfxsiZ-{7 z+v7Ksxn&k)jeN?na)?ekC_E2mXw2WH*S&kYa=46;bBH>=WL6Klved>5&FUj8`l{mPEvgj#^5#yTD)ewGnvsaF-(6BAX%gIjuO)tC zj!GVJV9wG1It&=|*%W+iW;wc|tr)7On65L|mM@&@I8};zgbjG(zAjqA#k#P0FDlpJ z^JtEV~E@CGediHNe7zD z88zK@MtjcqGd=U!^{1yC_BcS`74G<2}H5w8QUR!rz3qn7FQM}nSbhGcj(?PT__ zoqE6=UrGJVCEYj;K3U;kpG;(*$v6cLrw(y+rmN*Q-u19SlJt*r4Hf}!2Z-{rd<&UA zhNE8wE#VLXIM$HbQS23PfJXqzehBV{9{dL!`;_zva11;KAXqI)(05R8tDnHY`~UTc zOTW41+K}`d_>|voE)npDnys+_S$P0=Bj)tWQQa?alk)6`Ype+zU5fad>zOXVO#ajH z4cQtPwvY;pg~2^VdCN!uUW1z~V9%7_{sl!H#_}%Uq52Gst*_ILLbd~&MZ6?xIt9xM zu0<^k2m4{-MZmW^Wd|54_+{RqC2)U!xC^Gx1<2t)oKg@`PUVpS}u;QU|IknYfiH zIsnc2qT_HIQ^R8@damv%T(2@D3Ot9V;(v1?H?lEPG}?+~DiDk17sL zUY+(6rX>emaG49DiP{%6l3fyKm&84s{mz+|NgiHDC5ZgOqwPzk-&U~aNXb% z>JB&vl0p6BGkRm^Tp%bvPH5o(!y60Qi1~)WEdowH9(5m-qHbvefplP&Lc$`1yZ1X^XB#xuQO3ZrQrzqwMua5C_WKy7a_JUx6HZY-#lZ~70HG24_= z14i(srlQ26nXW8+Y}*aUfyz7}J)zOYwHJl)+>~$Dz)S0%@oEwpgf)Y*FAY@o?4G?d zS10qOn)o8HQ_Y9||=qu$Qrotr&F z-tZo_&jS*nh5X=ZoIg}gyK`6PBBai)r&WcZqSTQBSQJC_kw0LL@Ab#*z5wV8X zvz#A*2rkYIt>+j~9ArGM?YZEsD3MTh2L+g=4W{i;SRDZbN8w@Rg3Og(^K&h6>&=_E z3}W(42oIkP{LQu444ft|+rGGir>4FYz=+>#m|n8*7d+RKCAuXA1HY*QLY4Vj zc1d7Q2XC;{0UhH@BWOlX8$sj&jEvgyO9Bhf;TbwF{E^Vo!#P)ZG_N$w=UzGotST`& zyyI$MJsLpmc(z~#JhyiWnV-Qx(BM9F&7){8(|eB zDlI8rd*0r<@7=ADZ<>cI0Gp1j^_wdbEXF9v+8x8j+aI;IH?=6}|6X8}Ki#*YUlbrw zmwzgw+rSj{flX_Ia#?nOi-D9(JBQil47oIeg}4JF?Ox~e7?$>OmQ87^9v5feTY%yr z2Eo=UmaTR(qkqY!jM=u^ittYl4cAo-cE+Pk>rT}wi=VeF}~SgCzBDuWxBONq>|Jn1&a%weY8>qMrVH;0xO#}j_ye80xC1}MPPBO z!$Ui^ew%8Rz;}=nL{6tXT3{b6CbJF7(@f~Vc&f||5~e2bA!EZ8hqQz0kO|nG!D?Az zy3%cQTFW67{&OW`hTJ22^JO=qhVs2Brk>;LwLm`fNcdOX0|UBJ-?29aECzx`DN_&O z1E1+wxnb?o)v)|9W!-7Zg|3ZS`uKDl{1u;`xHcKf`MdC4xHob-8qe(biE1Z)9)=O-J#6hj z=H0mnmPpV=)(z}!Xc|C4FouZ(S>Z{bo~Q+a_ni`)*B`Zz^fq{(I3T~*ho7-h!spLM z8IAaE5E`$*B;3S^A09fyJrClq>nUxS8(RkBQCsqifGK49FRPs`rV!Y;0Es9ZFokX} zG|gANs~+0wrE1xdY6OqHZtdYpUmJE(P=I6By52jJAx$p>@}Ut9#ODGpQk|cLSLvZgMDa|k!x#bnaQ8>vg*xdF$OtuC}K z0lL9C)(fTH5o+tcR~nnLgFOWDKQH;Yy7~Tn7V#3()jSpfhY~AoBbyFGowT+W&eFXN zCIsmA#c=Vl=^>F@uKm)B-?10#*h4mnm!4J98#Y}$QHSaFBZi;i?NCmjLG|5Jxz9zG z-M%lig^yal?JahYm@eoi^$130TYfvHXQf+iq50~IU~y23nCH6+^Hf}SIM|kM`5HcP z=gm0<9dNHg4`41NXA35!qTDtVuzxWJV0>T&%iR?ba zIGj{q_kCt%JTINEH8A8wM2X(r+e!k|GiPGYv?Y9olh`h-^H^yJSAx}~ug7A&Jg$|o z9YA2kvvR4TUw!P}T9lSiz+!V{&tRanz{%{k!k3I)mR6hu8TlDrseVb>9=HAhzMqJK8pf7sOd6kU2Ze z8{M%)SqN=e4=L{68TAE7s=VPm=VTsAANpIim*BtL+i~Dg&?(giiQ2l`yY7|@Ke@|R z_A|HaO2?jQGd4S6PU;ek&V5|8LDN*%L)esh84E^DyryU>oX0rOQUtHR_miPWphm^M zh=0;dYthei{`XT0moUe@NxVtIiq7HZAS%Kx@KQG%HEnb6MpV# z`Mf_tP5$FAQHFRpDpK=I`{Hg2l3V)<6)mcXh||RAw)v{xK1hA7B5HEz%QBvD{fJEq z_0GmUjCOgQCU)o1%6yX~;XN(O$#x|gaw)ODXL1YT?$tqa{a^9S}TpnxH zZ|}Nq_O$*yh?R0ZMFPzoJSA)h;HUm?vms{r9&Uvm>vul+1bgi%vZ*iHATezK#7P91 z^zI4zdV-qw88ZfG6ZR2=iaSmZCd5X^%QJwRq-9}K6%~c_Ow9_?`@m#sz%qlk%W`8$ z_fAX9WQg{?>G$VTo()5xtNA%dOpn{zK68DcKNS_*W)$5TwP9fRM|%;Nu>4DVku}n^ z8{A5Tpq`;Y^I+_M)EY>`0bt{yR{w2W56?nmx_w(%O# zF+}{fNbKN-`N%Rb@*L~0l^(W|_pNO}sf^Sz1im~vk$_7eOQR4_LFFc#{)2)BZ`HP45!@oX0sTho-mq|8 zb`WaA_nYnNFRg=nbr7qWOUsxwyMU~8!J*@^$$^=UEK6yik5UYe(SktkbvHn5K;GRZD&n_v!3|l=$1RxPL z^_QjAY*vd75#bc%+)p1%NJz&EH)DSA_`#nKHgIb*+L5csl;2#=`B}A>c)EoymMog{ z3ss!FW^HX?_v#7P(fdZS_qje54cSWE%SDX%v+7Oe!WNKtH*MSFOX#MI8_F}acQusn zs;X)UTegmPx0k>1taB|sMNvU)(Gp0{m`G!d8jz{8PWi`CN zy_b;xw%_|^6EQ>4;o@JfZl)Zx^(%4L>^j--w7fk={O7Y|e!G|3wM}*~^tCT&TN)&` zQ!b84#q5{ld#Itnz2mQwA9poWvBgVFeYZO)j>*Tuye}Ut)k}3o0Zk? zF1m~=wGRf~dwSr__M!hiqiMfL#I7G1*DNTi8uL38!fMAVPjFSANZfVTt6c>vM-yAk zbi1y6Gtq1RVY{)ljqypHa3u*QZ~bcOYZ&$Kiw=FoWg&W5%Q`la(>v`pA*nl{ce=w@z!~?N43L! zJ@_Ake#wo7Hwf$HOl6lnX@l0^RW%~7cb3>{@w7=P@;|h`uVon>yn7m@0yhRrN%IUw zttzQk<|!bJYwGGvJt=PRr#`Gv*_i&dW3hK@RNMWF8x^nGdV?1BDw4<#xgMWAK_ezk z7fpQpn!LKs6nGyR?i@7=ma?x5Jo!Q+)_-X4ibtQ~sZ6he_OES0|7Z_&-2hePK)K}j zh7{W*eQ$3OvZ{yK$Nta~ui7Uce#{r?82yFks;+&c7#sN1{jmNEahHw6i$87~8gTC^ z$pIqaJNTOk3etj%OPjfKv!WUm4o;rTyFWJU3CXSjIq_!WKlP+PWeb7Vd>wH<# z%4jG~BUFk!4HG@f2+OObY%C6)bIbprbbCso{Jq^Vkq(O|-nS2>1_tMwbi93reYwL& z%EMRvbIrwRE*;B{=yTwnoL(0E8jj(FWW;biKA-)zqo3`ELBRv6a{0}r_Vct;;U^)z zK*`rP6}+2NAdxG%acf300ehalcfIkT$x?{ZbiLjYZPDwxX$iIScYJ5o3fLg{KcEQu53hn= zsRG4xx?`Tn-=Aa?#a0IHn)*A-O`UI)F7^Q!%yHX8z)33oRwF;KdFMHfn`-Hd)SNRht0bcsHz zmpvXtXm3&*Qo60;PuvCRnZ2*7s2!AhTNRW)uqHWnezVJ@*T3?8l|vUR*DJQ(wXKiz>FRVlzpq7%c}za~;-?l-|3dc3=ht}E=Kaal zXttm)`m8*62?|K6i=S+62s4N|;?3(M+ z(bdUaCy$MuQ)*1SWdlr|Tk3`JXRMyF&@8=h(CDz;`#0BBB^RbTgebzAFuv3?OlTSj z+HMR)TQ~~Hz!l9n3)7{LqE$p;2xUrN>xsK9PXsKdd$BGQCA33?*`x8ke!yTqTv}p+ zdZO+X!~RSMEIb}}+@3T_U`!=~-!s*wiV=H>L3~2+SK;^Elr5h4*r31-`oQGT??4JD zj~-fUJby4iNTf-zhDc}cGds*58$Ublw)gt`2$pJn_cYaudSvotoUTaTq2xV>PYS;1 z_s`zrdQ0cX*X-S$S*@W*4205+`7_n>6%+<3pXMgX7DX#O)edxU}PW0-R1d4x*!B z5wA@)5uvRh+%}mx5lYKCM?nCd*q))8056d=9G&(d(6WOnd81CGibyHY-Y)+Ht4I}> zVZ1ffV1^CAyq-W8QhluZb4cS-OEHd1K4!AE0;qco1!-gKQm?kRGI zuYcTQ#pJKHFpt~$VQquO-8*)#bRAMr-xQ{)jIcgr$TIdgA9>f`B==1}Yo!|GJixubSHBPgvcJ*-OC zYZE!`^LP{;-5dpsY+Q`{ERE`i5=It&-LxZASil{HJ@c+8*R@D|RjjdQfR<&vy281m z<3kqlLaC$`?eo4yE+>A(V7~WF-kD??zq6Pk(rbV1+_8ZQUXZj}vmz{58cw-z#w`#3C zW_Cou_LHts5D^VMU?AHvH2ZoUi}bYFGQ1RBsiCoFy3zWnvtP&y&QdiEZ}~?YAsnfO z_i!x5NT#a)JNATY4(U{yi<-sRI?%uaCl$_tk{rClJykuqJ-gTwFQF@H57c1GD{Dk8 zK|Rzv>ypKh0TJ(i+K%-}UDv#xXnT{3+s;pR@gG zUN6iaHn=Lvxs&y0~v+fVXFl%#WwhjCXEyAfbR@&!RcwfHplX2pF(at0ya25huPvnI3Tf3*6XL( zHmeMSv!?C~$xq!N(q%v4Nh`m(RPby0mK=T!#A3nR@(?G0Lh6M0A*u@B%*WC1(!SGPEx|IuG;&~9f%mPr6LwUWp>9MIx)V%r6{O|A{qzkAeiPdXLNz5 zw0LcQzxmhFCFNX?GS@yAJEh5fYO0L~U+P6>!F;@jS|0KFgr2#CGuzO z4O%BnbDa75aPIEWd^L=6sa?fSi1^^WVZt4ucVARK-m#lRAnb-ohJp))wk<=?t=uek z$F*3KXm{Qf3S~OXLNT6|GGf-2aTXXbl6OmN0aP>oZ>(1i`#h9JeFVjpLLrMvdZZEC zZ!YC@7+>(Ad0|b#o3}@f^Q$7(5Aw5 z#`}^0jCU;I^xCnk+%xtkFgN*Q;tmi3-3=6~$I3=eQOx#GZtve)#sZVrDMS-$D?mf zwTD8KbmvC{jj?OFIT)X+M|Y*Yct8HM0q&-kQuXbmzuYX zMxLZxo3w_b=iYZJ4}~y2s$>^)(oEGxbdJr*c4{Ulw%@2-bc*bL_c{#a8u!7)9cWWF z2xVJHeN7>qwm!&H>Dk;~%JVhfK8|9uFBQI5iGU6%zYloN{UrRPp?q}Wo!dzlzq(Wp z%2)3>DdpGW>&MsdwAS*-!}F1g`X7Z^@pRM#{y{hwTc=l7imlt1-M6}5LZIkP%KL`8 zk{Z8sj@ zNLNKC1tTrlv5Ybx8r0k*0^ulYj?OX>kjwU@>*WK3QZ~xMCtiMbHRdrdTnmW%?5p|N z^w`P5zpY+K#M}GJTL{gXz0Nlicmf*cGQuEpj085Inh{B^(wMi?jdo+5>!HMYyU~0Z z@jWB}NgJMplsp94n&+~SBZ!vNewD{;?`uksD-?!^;!ewiUfmoB&>8w16W&$!*-UhH z_3q~QNIIHu%`N6mWY(|fpB*m8ojZ%-e$p&Vb}#h3_UQUPlsDk$=%zE<%e10b>EyVr zrK*1ALQ# z@(zf#@t*(UThZRF8j_HeWtoU5AKm>yzqx=zyeT)OqYcFkjkc+H?HCRe2^V_jZD`2Y zRk1&}#L~$LaGyAL(fgc7NA;AtW>T#g4;27%+SK3Mp!WufH7Orrqe^Ea7Gn!XI|B1& zH+6H}3TINIa!CHRr!<(BXs83rdyH&ZT3FTqny4RW#&Hc>$X5-kwryZwt_-oC;LYkZ?Zae%;y`#x5Als4bo1> zF`nFx1`_#9fJRd8d*h~&C=LuZTH5MeP^OrILB71(BN#W}MwpO#@3Xad5{|F|k8w<+Y6)UMV}a{}7LPHi~DcZ_2Sw!=F=;q*w9nDHP7hOSN_TVn>V5@P>xg zw?;0-oT<-w?D(TYP@q>|jUaW&#GvT2sgoAP-73l*&2N*dpwJ&T-Jgr_5P2;%Sv-_- z?8fuloxI)3W+8!7*1Ip~9vO%$`f|tfa$I2x|5W^I$DE?><#y+lnE0P5Dr!ETiFyrt zqx`=~iv5VHoqII3$+ERAb3g~@I5{}TztS%L`@*rp#ERCb$-6?=tTHanSXU~ll#jHD z{J3U)c2&v^IV}8jnEx~GNeW3U0|6-x-@lq{Y>HqDCA2Uu-QUkSn>g8s5J19036sM37=w9&wsB*rE1;{*?Z`x+% zEOP)M6K*uz;uis6YddTKDjz$AfpQSgDM0j7J7S`NMThqv>7Z}`rTs7MAPfyaSUYi` zIrPsPK!^_rNknw4w4yrPO|I}kRuDd%*lN!Ns9o0|NGkXK$9h&kz}|NG#);XSMjpq1n3u22u0Hoz?npfPx}5)x@hRiI zCw|%6*=0}rKzGP&!6`TrC5)r^Q89pV150Uu)gBajG7)VU$Pof1m87|;dtfVmM!Yf5 z4q!`s<)IrBx8Fk8THOd;Epc5^Y9RYUGz-vMdign-M7k4wYrttSqby__M`uxa#s{)( z!`&mV?1z!FllbrB2LU}42k=vgam<=9$16PlE16CqLh?PFzr&A$WMrz9$i^G8HGSaS zV9Pj6w~v5c_kV!W(QmHJL#Rp(n70WD z$dkT?OjInOiMEZQCVgVy1>)oxHfoT>Lba+)f<1~(bLfJzh^5$`Od^GZqoeVg``Cbm z5Y_Vpw*d&0|L2JzWZsP8EFal!&0I15XF$;JKw>Tmo9;ZMM-<^s;$hb@Xl0rfg+ z!aPnCoPpRn+-I^dXB7825W*ElGjWeG-C*pL_L>xqKF)pvuZR0jQz?`@4=n-Z3`>}nd9WPy_6*{)Zytw|pDDN+|qb8y} z-=C`R>r+5S0Lxxc*mA_;vTea@IpLl1a-BI}ZaHH*6nUL!s2aDZc!h=wo-STPdD8{s z`IR~4f>U|ffoilP1%+CQ3MZLYeLqZVX2mG3_|eY)7c&R(Qw2sCg8bA83pUM)ACNZ? zDe|KI3OD^jRdPi65Lt4V9k?|`Mq4;oeVV89k#rNn!w#6>MY!|C;0q{9 zkTjl0_iw;Ob+f<4_i9J51b^BF$cAyt}pF|iIU-3QyYj* zV!s6OGYv+Vfnk8wGz`;qTo4p`M;U#8a%odh&u7H-l67@9yM?#%Ho4mLOTNZ z&nEm2!-+7=d<->sG3(pHC41Sfl(Enj-9zQEmh|oUX*gT@MV)aLEKhp2pH%R+996|e#aW=<2U-P$oRYCWm0|2n5sfLSG*O9PKfP)%O=M(~$a~95*tUgdQ}>gju;&P+%&5GXk(-G_ zA+Pa;y2lu}1h!W24R5TSZf@4xspFm_dvlJdO^>XY)#)dq)cO7y^_BR9eEC=2&qRgu zhLd8$jM#RZkS;fLUX0DHGT%$LHSVwU5%VM?a1=*pDBCQ8>QAn`nO^J;YTOGA`uQ`0 z!SC{(kMA|r@;0#_b@~Av#Xu%XFCnu|uWKwl#&w!;v>p_iHzO(%xX<3>L=Wi3ujue~ zI~;RNjpcoMwtZIAKcjQzs({@OgGsHdI3vk@s=D~dU%Mw)?4=u=ZH=pO9)D+d%GRihtKS2^*Y^NM+8xVRj zCYHJ$FMsbTxvkgHM9f9jhNho!rKL7Lu3Yc-vVq9i>(^&99fdUS=z~?B*Ajqjt0%xu z_d|RDZiK^^hTE~va?)T`_a=45QXI<70k@58GC$8F{n__|IOu^R?92EKXkCf=AHkeC~|0opFGcRyI1- zJhEw+C8K;N>f-e~yUk8ulRYe>u9$o;>^vD4+-Hto?6G?-lo0$i0|k}mdtJubRDE5a37 z@DL*{uaO$+B-&0EI#$B=nMjv6?-e0Yh!3fKgm5I;o_#8H$-1v0G~4}2K(J)TiMNAJ z%EBLKEt&B*gut3n#s_r&r*mxT`4 zxxqe&>K9%X{ea+QU!s3WVeEtzn#ws9RK%0;L&KGlN_y0=;Wj>b1G@j@88qK?lW60B zlJ}YtH@c?3^bm1ywV0Wl!%!|P{*+&um#{a@jl0P<-Bz|!!75$z*M_ULNMa#+chqaS z#kM9p1A(~25NB17_v7om!GmwF*ju}rsnG{rz-xH?U(02M&n2jO=qRVzOGo_sH1GZQ zr`F)~itgYw;S{EUCD`{r6G4CbTNtyt^huoKfcVXIb`?jrLTw=B)}`^+7!e)!Y)^Eb z%HNyI^L9l^<<`Ol%OkT*-X)jOg8aR`U-~~8A{91?Elsi&jGNJJrFM!2DciC$#=fb& zNV$`qBGRWyZ`b%G#U=YB`yVdk_6dp2{t464&$@z5wa-`xQp$R(DYs?%}qWz z=p2+|N_u!*bHcX6_XYX|WqI1=I20mgygJvPlg#6rEAh1;H^_LOdF<=p;DLqD+2V&s zLV{mqNJJhv`ZiMG%gLDaLs>bwxv4g`Hg#bFUWE(K&Go~t2kp=hJ;nT|s%?NidNxh3 z+xMs*k553nhLOxsOjiAwHXKp+I0ngAS zEx{9NY*kG`fw%Z*EqN6ilJs`SyChy^vymp`M^xI*-~cRX2&Blze=H zPii?R^&UYRRY6+LD>84@z93_f?mm#1Y#eZBu+Td5wEwJu)okaN*D|Mxg+LZoke*MK zZzV<|#k5^1N7MIHCj+-dLEXM)Ga39Vql?4#!6j`=c4$TdQyEqW6H}Jo}?yzeS(5~H4 zSJAAa0FaxbceO)oR>&|5X$yf2p}8JpA+N~aMB&cr+D)t~<0G65cRc?I3v&iJ;k*8b zqXC8(Zi^uXjsuj((OZ5LdtstfxTf0%fb9Mc*bZcCDG&&RYyqZc;x@CHRfrQnp+5al zLj%d%ky~^PP6{~zx%uph?dl5VvmsmJ@CgvMg6D}_w!Qg}=M7g0Gvm?3PvIA<-Z@on ztg(#)PnCbpQT=&!(|6OK?cA@C4vHj17f^t{{rNf5>-q$gzhHKTL;Wp)c$>B(#tGz*JKn*M&2D_SpJW#L8 z1_Qwnl2D;QkhmW=HKM}W63MP4Z!lwFh|sJ8J&|Nyqru0J3)@E_U8%s|T(v~D4#W97 zeLKucW=XTXp)?BNk;GKAt~`5xBjahl>l?_g4Y}`@wi>(_j~U2!aMCayTmx2}5mrg0 zg+gbeoyi&5g?4#K%vx&9;%2XtBMoz3vxm>1>`)EDg=QQlX91++t);H*>{hsIQKHkY}zy;;c<(uFbhWf(ifAH*2#FWWd{;VBhQrkXk&pT=iw2B#L>0Br} zMBK#yJ%Go*BEb5=r^f{YI+5itR0?f}Ed?jQB(YQeibIbij%7SY<$0LY^luK=timBN)jaPE_nv96W-lB+N0~+Fo+F2+X^jw5K>X z-2G^{fY?IjoLfDbw_20RK8PHw_*#_>&?h}cj1NO6E9OYy9}QfBG$(U1b#wvR{L<&qkbbp!i%oO=>E$`{Yu{$59CsbAc>HM(oobbGQD=@e!XAG0@(vYkpCjk~j z?h49oA$pAx=ZW-xrUOR|NA3mq92nny@2SI0Zu?P$CW-&NU*En`V~cyYd*i4-=gY>Q zOecTO6+Z$1KM%2i$eaaSfRRSN6F=-|k7Ea20er>uayG@d+H9MqJlE@OiN42)lccnIFe_mPr*^nvB52n1%M%N3D;v#8+Mp+wUyUd4F~OCc%)e6+8oW*>X3Zo z`}*+nY*|iTw;HIMyyBQkbtxB%4df>@e-Sjklh}5-GFwq?m^i4uIp6a=AtFNp2_YuSkaeHRWv`LoKIHdUy2wqHEv9uo4m!@Dg{*Mn##jr9Q>*g zMT{IxWvu48A`dOd+iUc&r0d;TrjLM_W85OZ6}q(q?Y%CU*u_}J@JZ}b9m=YmkQ(Za z2B%ZBwUqA+Swu1q4|c!e15kI=I;g>~YOP_d_jSVfRaEk{U)*E5xsDW$;`zEpTf5V| zQyN~ECa>=Ko1uZYw_z`15*P|(Cq9i6R7brFDBBV@5v~xJ`Bfy|RQ=*PdU=6WuwE!p zrmNlN%RY(c6m@m^QcW7%pvSXfKE^sJ- zV;?VcHRsr;o1BPTlOQMVG)jLr`cQu7iKka)a;;KdQy}d}C(X{s=DI516exJafRo?` zr|j5V6Stgm!)vbPr$=T*)pq#ru{{+VcUxhTjr3=e&Z%*LGI0C3P8pSxa#Ohu55V<_ ze9cCK#h`jg1k2V6wdTt_VIOAa9)#Gk3B!%4B^ewoJ1t|N*>4}&YSWw427JKk~{F!di>vWgz zVBEEz4z63{>_VBFicQxD)wwi~eHcrb%yBDC_q`$r@YpjwbJlBURYArluB(-fGOSx~ zM6Dx=HyX7jj{66jxM@`yzX{%;wH`Uj4i1>GsB?73bk8-1(CG!XuY8>Xsh8UWboO5? zay9Pz3NwcHfoIwG~rukP=jKwV6YhQ17lY zWYUWr?*wRR9Pc3I?{z;tBk6Ge!Jub1M9h6WxvdIzKzSPVwZmv^6#R% z+VsN2@tu`KUlY|Wls(;aYfRmu>7%b@IWcr~MZCArf;p)@OpO3!m<*q(tv*b}G!FJw z_5MdD`WYkTiZNlC$h!C61L91@k6FDb4igu;S^=c@@kQ+?(m%fSp24ZzZ`kmm>^w03t+Cpd(*0L+*=a^d zbKHxcYFvV5ZK|bBoApj@e4sU59rdE&V2nu@YYSy{e_ykjlHwn+O%z4z72kE$3al^* zv#UUD@b>%PZ|?aJF6{#1UI{)6jixqG5yL^?Z2a^LBM8?~>afM6Mi$eHy(&(&wsi|^ zU+0d2Z?Sch;Pytd-Mqo<7v6&y9_Y4e*1EBXEA~z9s-3s1O2i3e(z2M6Ua7x+Zmqv! zu{W;T>)8*OT(Q-q+9##)k%{__>yTSrNn3_a;68^fSqBZ$S06t3m3UK49rE2xv|NSbnKST3P<31a^2ez@Kqaqm#Ts=4zw>n<-!K@M`w{`PU zdoj)bRXQUv4OY7ZSbv|jDZmx)og^E8%%VPjnxW1Z`dA3DLntg$=*I(OJ+PS-P5O(i z;PO|XuS6SNbMYcn=ZENxP4GzEUeJlT4}=Ql|8!#dfh>0pWpxA)7AfKSVkhm^A^?8S zg(-i;7y~0eXtXD2v_5)?!Mkx4covE1*Q4lLS}lID0yTo-p-czp2@O$61z=qu z&m>OA*qkq?KTgjV544~^ znbwJOPgUjQYj6=tK|4%BoI%$>zh}rB2tHvU+;XWK=!H29oeoI=`@u@nfQ& z01>U5BCgx`v*^)Dg)`r?^_zDKH!JLH_U}Ip;CW&Loos!~GH0(UyqhSuv%U7c`nV-? zp8iv@ZSsNT@4;;S87iVX3VrL;K-Yj|b+W?OF`(oSEw-)qpemer{*~6ui4rfn!tfq9 z`uk(g&hPittZXc7bdxRLBG*-&Kgbxwe}Ur3aYDzDl=5e#x2o%8nI>^nP)pz5-9=wY z+XJDu_jRAew;yOa@UgWOzQajTyaGx5Ld@^XD>lnE&0dn={}5QZXv&21FaiO}q_4kSKH+PRQt=fU3yV`M@d?*d&o6UWVcbAw}uv zdfFYvtTXxGf-~?|zgF9V3-DkFRB=G5q)0_5PjsU6qjw~SOgL`b7Hc`2>RPdj6S>hg zBh}|3;b!(0+gwZ4f;G_@k8eu84BJ;}+m5dPA0w#oIxz1!u|vRIR{=w1d2@5+W(EH> z0+I~GG5|vW@zpF;tIsP%<3ItbCKh#eVgv7P=ryZw>JD-gAhH4=a}!&E@)Ip>lcS)X z3bPJ5%s!U7d+jy-ghKy5)f`vN$mKKE#pU!g<-A|d)|4&I4-MBts}Kq=5z)Y`(RW77 zUs&8&^!#1j7C@33b1}=7w{2B_k_QJhDBd_m&ludhp~)z(;a+6$*-ItQgA2Kg^|OWi zILTuN?mDd*dUNVQtOLOlW?rc*3$cIr;-ROe*_lsSnj>L23k7Yp8rw+KO}84)ds{ag zD^V3U((6l#iyeNpvEg9u`^@%7v$(9^ccP*wvgX&4eDR92R(%fV+`9%x8$V@=!<)Gi zLE5o53?JtF2UymMaA(Zl zHp+9DmY?ji?AHDA9cgKLlB?Nwv?=c~XP=^=(EcYqIY#3ZDS5ZHS3b=>YGfGEYK_Fq zn!-RMuIgd{LMvXW*+%FaXpu#fflcBEEJXe9dxAyD6zBqUdm2*e)m5W*2 zxu1l54uRUI@E?X3>no0+v}ROxh!PDq)k8(y_12pzjrq&R*g*+ov-x!c)pxkcI9WLD z7$G-|!b>P~(m+rRQ<-ioxk<#irf*-#U{A>8@z zs|CdSPu3ZGh+iAd3z%D&6B_)!kr7p2UtURH_n~@gm;A@}KFpJ!?VS!sPJa1f`TNDw zRUXs1>lY=L_>dT{D)(|v)+HXe;QY($X5G)8M^89Byi=_Z@*L;Q^4jBZf|wIode3|` zXj-q{(ysenyB_q-j_z8l5yZK znIz6HW-pc<1I|+6`V_-;eaAf0h8TA_;oH@wk3|w<28~0#kA|cuZD=4Z|D;!tu3tWf ze++VZn4dtcteP4|F<9X;{vR=Y{MjZ{8M6hX^1A;`<@I8DF0wt!s*}j+ZexGoHlOF- zVpSie35@$qEruPm(nl6mC9xr(cxIiSO8N|K#uOx2Iv<1fpp@~C5~59{C>-jAiJwCs zWB&!+oJUmNz6WM62L19LoGq_)Wq%0(DWckGnEf+xL^@E- zE5>wW>vE_!6rKY~A^m5N4IQZiA^odKpsi|@$!pXCjsm}WhWoAVo&9}|>)yK?WR8Vw zJ!bKSHqzP}g@%G`5hRCrhaxFI;#_qYQ=LiQZ9_n5Kr6^raiDk=GIj=JcVH^__{HMW z?*ILt1yvRSxgJyl{r&u|mlxDv{PE z2z0&$Q0jUEO>O;dReNfDf*ue1sG!8U(5&)_W>aWm6|P;B~N0tqY@W zYU^+JEhP_5ck9J%n#<&`isulB+8vfbP?qE*X;$QLnUl)-B8nV&NeFy?97;)q9T@VA z-;c@1fhgq~@JKdo9J6-Dt%R(U^gY3Nbq?Eyv+IKQ=c-)}>CPVe6b^#^=!dU{C2L>1 zIzCl@oputC+`SE4dkn;*X;b? zi?pcXxUi$n@45nW{ z2hXeNfd3o+UF7Zj=UdmXPFr7N9gV6(&7#apx>eVxc1_Gao^ZlNI4Al(o;#D5gc>+p zeD8Sb=v1XDpLM$9SV2y(J=Z-eH?BGFZ(n9Y6n_=qE!rGE_trp(d9%ZBBC}FyzC^LB zODQG%>h*y0M3SdTp-YXt<&@Q!d)wP=zRId~$?E#qjqYEwb{=pLuOZgd5k#Pt8xHn1(Sw;P_!z$_L3!4o=8tVEU(Uc3*h<8 zTZ)ZJBVV`qvvY&1y8&YCquQ&fO5@I%=IP|Wx+^U?%6-DK*SMU4ro@)S7!xh_GbNjE zdiWKf5`b1?>eudG8BuRYS@)f?&4(d12U4Z$07Or!{33;#K`>g`byvsH`6B7jUc^{< zc%&BgVM;U+jfFPGZ~%5(q{}f)6g)J_>C4ZSc_}z^LFn)Dis>SK!kDJ7gMK0i3ig#o zUAjyWhufvxD#0N;L&}}$GBTeh8)SE`eYkv632e*IjYL>MNkFDNg*4+D<)}?yD@~eZ7-LJrtpZ}^q zCWGyJs2o(>clULB#vUJhUzUs$maxgZ?8McqFSBJjjWqEQytLWg;IR)zJAb`|GGJH7 zlJ<$ofMemIMQTj5CvV(c#*Vf9|m3sSn|rZGL9TWVgzc)=Ky~|JXFN zXHeE`s^+;)IrU?4X>41YtWlVOrAeCA@omNQxS$jgVXXl#=cv4QHJzs^Fc7^2FsU(S z$}oP2bqCciN~z!c>``VB#}uk_X}rT`t@&-=zr!~bEy(dL2~7SZedqpjZ{mdzl1{#& zrt2BCB-_NRzd{0~R^)hGcT>_kyB@ZkhYh<~A@0%hq%U zImzt{@hU6h4L;GEIWcZ!lJt2>wLq?cx@{(o5MaH<*PCsqY%N`OR&1p%EiB%|dZ<+y zIoSTTQa}H<(X69xKT|T()z~`7s;uPsaeZlV=QdLN=g=owY*ZOLG=+oJ2WdPn!E@d) zBCq;k^E%vZYH_M}^;$SDWaZb45cN3W;oqBWUMHuN$GQ)kJ(>jwiP>mGW=W#V(~=T# z2VPM0my&mG?hQMqoMvZB&4PIU+d6}fF>nwIE$#=9u2Yya{ zKY<1^s06D1f%k-6wUQ%kyN?CV`ssYfjEDq3Q7+{|VyVu&@{B^u@5Qh8Ia@Vty8Wf? zZMtTy-M>m7J<+8X*GIIl>KNBfcg~|-)*1hi+BMzAQFq?X>L7ClP;h~?i4KXI>q z+0!@T()SxJSKJLyK0g2Pg=sNT&GC8FuB}X73@H8@th4v8iuEI951-1^mHI}F-_Q{) z-^<`_W`U!sj8};%b0RgBE($(qu2)iEs)XKB#KY1g&Xp)?G#3V0du?Pg72Q+(Ue3;-hYKsQ8ek;DJ~#DCt#9<51- zzNt5X>tBHI)t^~lUdfOhD-=dBo0})m3Z3^idw$pD-@j;9@(w!Q;v8-)<)}sUAc?C; znakT2sNBvGKiNnTxKcB;Fxv!0)516g0n?8KzP(H0e+l*Un}3Be#cZ0F9R@vK=@TBp zC=f)CIqcabOT_BDuMiZ7>K4GE)EnU$lnst|7CTQcwt#xqLWt)?i-341@VzWszD;h} zYq&^om;a0U#s|BMB9qsz>$|x-db8wulk=RuU490+jeB?mqrKEt4NpisT^IV!NoO=AS)}?m6mOX4DZOYyu*-Dvo064^| zdZu2eB6VVpv;8%TDr>8-h`EtJxORC#Z9rXL+V^O-9hIdf@ z5NyY7OjV5Y7^1BfJ?b(nV0@=wMpQPFHaLF?=d?GZl+QiAlhn1>E!Fba?%u|U(!43= z=TR$%UT0sT+QRl$#Hxgo9BW|hHx-aE%Q~wVH~*Q@Vvow6<_(q+gk-e2S_=TjpXYUz z33v1aho0!7eimv8=xpdNR-TSo=aURSY!N)$)7Bex*M+dL8=mR9 zmG1kS7UaQcp8g}IeeWx)p9n=W5V;5eiw}M=1kJFP&;eFy3v&yWsNYw^#Yi1CVp5gK zMqMQ%r~&WE^FtnyL|5~WhTCoDwde;f`)wSL$ras#&Vwq9(sAH_t(1dZ34ENu15V3= zUv(<32FiWllzJRr`~$Q2-RnZ{>b*Srm%I><07+s@kZ*Un^>39+)HefvAMLa>{`7j{ z%UqF9fD5xvKg_*!Pw0S_!APZ@-S;40P@#3Yn)@nt&+0Y1(l;S8-eRxr#eax+iaGKb zT4lEyk=7D3CN)=JBTf0%*};9KR~FHOb8p@(6I#qiEg(Li2^0`1=w3lVkdD2h+~Kij zm5qcA?gckbOj%CYgf3?7mZmp4k-&9|KdO_3HMzHgMMjm=ak%PsBiVZ?J81MT20oQ2)uTIr2 z%Ni*sKfy?c-Xzw6)jW(26lPx|7F|a zIKds+3!C!+&!P_Bwa&=}f0uHA*}`KCtt=_9E@kP}PBvd#2oV`eE9vNiM`@*xDxezk6aCXatJ2D=g_?s*5_E5g zQu+}}VDWBDMb0&o`ica${D8(MChnWNK(YO6-r%FR1vmTf1d1Zuz}K+{M~=%S<3GG_ zduwu@9ha7zyqfJjmwR|ckx{=IX5=UsdeNfO3|JZxyMRXA4{CS9Bhe4csTiOe9d#++ z@P+lMtVU`SPA1+bgoD`#yB_CFzG1C5llNJSzD4(Duy?nqmUI_~X@9*G<;YLGW1{b= zpG&WGbJYrTbSkWv2)LHroOCsXfbOPsPfnD<4Is;M745H<<3n|fji4V{u9C@#uI@7-cP?B=tG<|ho=++T<7 zXCT|%H-RMZZU&E#3(#Ak7$-!oSb+Cre5y6(G*q6g3PH2dU75mXs7Yi_S?ns($Z(|>D7uUZqZku9u2`-Aclu1@O^o+^ueen&K!;zvUU%4bk>99gD-@*a5n9@@V((pk13i+R{B!Vp}qcA&Q;2cWpRcU z@m1H@>AWJRnfIA<<$*3cX=gH&UNNV;hes0&LCvcauL)Vef$eGS0eU*JA@&+xE3#k> zUO4Nz)Z~%*8I*C%>1#Bjts{0g-AQyN8KeO<>hLpMEGn%Jp}03GHP4kXHyQ)~h`rCx zX9&rJTqd>>+sZxp;vh9>{%I4k{rP4fB1teELN3Ui2Vi)S!33170iJk1?T^@}&i3{1 z*IkcjT9J)xI=)R9F0Hlfi;z+I!;`0RC+p}I=H;aH0H+SRqr|B6oEONdw>3##0Vu>A8`<5pwk^-ZKmB1_0o;Ox* z-xjd#;*i(f2j9Z170;&hODs223>IfZPPB@uMpXg8>28P(9vi4W@&#_7_&+xh>e+hs zhJ66(HDpgK=w$g;2E4#qHxfb1szV$UiAog{1qqwb8N1ge(BtQ~slb;#uQ4!`jPhZeolI{O|D;-_Okbznsg2C%` zG8T-=Q+LUD4Ty%dKyDTvg&qD3A)9?!$TJIMI|cY-)ZIYFK42XN1n8aG(pn+>>iWOF zfFT79F#x5mjw}#9sI|FJyO2Y3v%I4THUu8UdM{wN1dtU{VI%EJGc|R52Xi3 z2wg49zE^I2Wxb<8CF?b-hXu#kf1B+kzK#q{iI{U0)B;v`FH(=y5H*HkincM<>ygBQ zRS(h2glnBr)-$3_&gWYY)dXg8JoiYN0F;NpDGvT;_Rfy2rZx}y(K3qPMRF!F(+XhO zgCt%J&P)@kISu*72XUJc@`ib>;r_YKCYn4CcKG1V32GfR%CWR)@QhDVzxkH+zGgc* zho4(}H5irGGl-q}DwV_4V(4o#s^J7&p48UYF1pf|1CqN$iJNtwkzM%7f}PXg|KFwI1qC=g!|In&5e39F>Hw_CD*qC8dih zRTpcg>fE(>f-GWOm1@2F#x4(fXYsQm{qLOfTIl^ssR1oN<69S`!Gp1fh92OHhmj2t zT*W6mA=fi6D;kmIz6nsCy3N>xXvmKY(W1)(@9~c2xgJ(-y&3>&$ToP}4Y+J2)Vh3$ z%jsp}M{WR;;gp;+gE+L+cjFfBoWhLLgt2f3vPMKBOMtbXFu000p8%3$J5XkGz57<) za5T4Fe`oxw#M5nTzWV*#z8>Fw=?bpR-sz9uoDRI`aEdeDHP&)gKWt*G`(xWP3md0G zpUhOBs&QeS-+lBLqfiG?QbN}R31x%Ly4e6*n@MnQH(8eDDrKrs1By;q5vUp*dZd(9 z*#MwS#|{C%vrsNbO5x%CqnnZJ&3ybz3YdGud+g9V%0^45)Wnmg%h~sEc{~>r{#^N; z&>-}P8K!yY)F8`yW^rC$w1VsiF4qEWS{vc^dUrKAK!_*X!LBa|Mj0(Ab*P=ks58@U zpOp%Y+0;n&fOO*grLwohVKts?ZrJqMwPxkJSSBXP#0eOxWAKOIh*Ll(V9+(v>=Itd z7&KnO$Adzj9F1rLSf`k}9t zt51uO4SqpCx#V{{<+I&iqP`n)QuJ|i(4UEO(8g=&pVx>eqtDAH6)!5tL z&`?_7#A;Nt`_iprcc$`++nGRs>c~V6NT!2Gn*fz0iZ)}$LEI66i)A3a_ECrmUFf}5 z4&bSNSrH_D8qSgZMLu_Eab{M3jLKi()j(T34ptKKml-fI!)cZvYidDu`y=-H7Gksr z)kg3Qu&R8$Snc9@aPO3S)<8Qdd*AUT2z?{=EI{oHd_{|D^f&B~0MEQJcy4f)C*2 zBU98{5!6f{h+{}oxC%~!e|-Z7KwOOg8SKoeZry)m0FJAH41iLqTL#)XLy8&v6;K0f z@wieQ3HeK9Nm$RU4`_8N<+LZ!0-%K(<&cY1a-!vFSCWP{6Oz=PU?j&59|1Ndv?*qu zM1nQUqNR2$huCidPNjP!pOPobGG#1xKJ+_(`!a2r1){RRdGKI~%Yrv~uo3GsVPWDw z#@lO;*n*{P4rfs!$;u$0TEXMK`KHI`=yFKCQ+9W$@+j=v@+v=t?|4dY)vErH5pt95 z5p^XUbr03YSb&|=kPg06b|vg5IV++frzEm)u=8x$iwRHjAo3$}MQ51M|NX+QfNcBB zYzCl+sTd=QaDM~Z50#l;W68U@I9TIq5%0SYCwSC)=Z~28AF&CoYbGu>m(e<}97MTo zTz!D7l{DO19noCu^E2+t6V+IoFHp@Sx>BhB1Qaoo;nImqI^ZC}dpC$X((?*i_1dY? zSPuwxnAm&Yr;9USvUS)(c}&ivZ4BRIxxw5(=@vBfF-%IhnFKpid8gtnD-Q)oR^A$d zdPlp3Tm2b3dR*V;(U8-IG)QnixPAW~*Jzhs+mmscjN}2R<{nl4PUpu0U`QemtbseZ z_Ip0Vt94yQyURknAh7Is^=^~hS1$BiI`cZX>qyPkhszz<%ty0A1t(ySa7m->)A;?| zE&B%@)XK9o{jH!&6P*)`2koOEK$0jyzeb>!ow&A(02=yW6Y5&r3ddIn0>HH7;7%}C z{0HFfe0BO%hpvr=-(!cjF{Jx%ERhZGLav!<%*}z7Uvm#o%X|XOk6>MiqaS5sM5b7_ zmz`Txh#@PPWNj##C06_vNX!LkHl?m_w=~pfcYUKZ=W2{O16Dl|=o1>$gX21(TOn}} zxxyB^K;Eqngf{raeYkjy5x&=l;f3I9)i@HoUzRgE3&d~}F+eC{!B2s|y59#IuYnwv z=3i$Z@^b7ZbR$NNDjMOWo?iS+Ma7*!tvaaV;4yn$?#!p4)}E#FP%F=?OB|IYiJr+K zJz0&3O`O(SH<8vT%~t&-bP`t0Ro~6wum>tB;)J&7j>m}}s8{gEEZb=)>nFlJ6=egH za{B05X`kuz4{6Oq*`(CUL*OB?l%SDq3>n!1cqNB4!q>xeJ;e@vB*i_EKvkr8+!1iR z3W8LRL^nD9QS6KC!mxAI_Gc?TLrHT3GFT_P0t;Q)HSnsW+hL{vJQ=zUqCyn9kS%#D zsgYREsb1CxY!T_M-(=7jem(F!^x;o$>dvk2a1Qo5)CuZ#2E=jC1Fy`C-l)nfRkPZV z_w4P4gYWS_;hf0&($=a;O?p3mGf1xQ?lB5h^OXuqV`;`W8O2X+tfdI<2tFR7N%G#i9ij!GP_3I=eo_yn))UVI3 z=Z*}n`2ISsF10DL7!=8Ba~o5Fmj6NraZ-Ky)eJO7JVETk7BOSHp+(H+q(oek(@fa$ zvpQ;U&6t-UHuzn%%KXEyz~*~z|*eH&)%2OpC8zx@ztSZUcDOi>znD3pk2L#{3%udjUp_{)ZcRMrSY{)rp+Fw z3S4=g6D>@3#)Zc~l%&u#!)&c1TJ|6qo8x7t+ z*op`WD7s_rtv*1VfdHt+XJTiht?+vAD1K*WxEqXN@2tN@JlMB42qXJ!=ds3(2M)R= z=%%90X4{~eCwQJUZhgta!4+_W&>1S0- zb;fz$D)9SG^<_V3#d6j_J%7)M-eL*5FoFSAGsJa3N6hBu;-bV(tuif2 z|0n-$OIB#rqslJ8()1`1*-8NRE~9`R*;$Q+mm{@t7$&WH8G=a~C8jG6Ct+5*zD_dO zKfZ2*jqh);P~Jg9#b<`OQFS`VUzj!6tVqHlu;9^qpz}J5Ml2=>DF0dlRWQ!M!QttG z^-I=B^cHB*+ZbeW8{ZyyFP5JD8)Kl>+-aY}2YFX$g6oIN^ZcymYOA){P_2bm)& z+ipC3fAqIGWQpak#Eq*0_-a?7GYYN7E)28*eWQSX_xvxc?-cWktOpMoW3fB6JrN!> zzlsXF#8Ae1CiRR!=+I4C3?tPsT6y+3Fx^JR&|Ak-Z=KBKL`eZ5@?w7avbUe_k9AUo zAN%0ti+lEmj^AZixDm#J9q=2jQvu2yseLQfNYwkUl(37& zvdr!o82CY7eOW2V%Z@td8m3}F@*(WO_D+ARQZoc-SQuECpG2ew>$VX}53mhZuwR@A| zf@|$*UwXdoxSyliEIMnOo=?r!T!Kcfd4zfQQplo5Og*j7u&<=3D?hxO!r-d93y zWWwsK5?80)e&+3;*{@?a38oC)kk2sd)H@^wS3c^KsWZ87ns^Y7^F}!ckDH~)wY-0U8G0M$HXyvy}K_k%;ajlgjlng<%;vlnvM zS|};_XVq;7hlem0?16FnO8gle;Z-wMKU(=+vvoLGwFyzO@D*t^_^I zLf5_$-H~iX^n)fm0n;C}ARG09^3YJqXVqcVV z5Mw=KhzAbtX$h6eoGIzx(7#1#)k>`3cCyD1Xrxek&&NfuE8|~=(qyeTv@OAL z7HCJfhI%VN*oi;HY%Sy*SX=NC&(eXz69w{MDwHl@*t}4Au%)Jq^~c>MfKoDG3_Uhl zbxZvTS0@HThZ5;A`i2!M+aGW+w<`DTH3}&`&TTu_HcN_ZvYD=D=X+L`CH$H^2JKc^ z-FfJY>!p`j(*1FX8{h6MlL@%j|j|G|^$60MD z$hrrpbS1E2mxEi`!xLEHgXdvUXmP1?|uOjx!@VSD}*S(k0CY|Chy z9V1vDo1AH>PMVn;aq_-mWO!)Ra^TLJz9Hvbp7N~Be{eSGgor-!%_ej@*L^^%)H9DZ zD){z+S9%9II0Q)rU$1$-?z`?)l7fSd(-WF4zmbh!oN*m7Qjg1E{++9k z`7C3kB)QAL@%yd>DeoOIVyBmv{tJw1=eH2ZMTYhM&5+$~=*O00TiGW~c*hP8MGU4$ zd_zw^T!w~XcvoqNaz;+Dl`UKcl&8EXR&VU=(c09^ch!1uuTT%h*L9^5ngVoXR^%>hoyYha88qc=Jtz z%6w|C^s_EHueoUkcIVpT_FGu$?}IW4pF-7^)dzmsBYNJYCq-Iu$?{95%GrZy@$|}| zs;PmHMI_FioTKQLJ=mW;*_}E=sS;p8!xx6x92v}t&KtNfbjG{f6c8e?mJ;R zho{*pI(2v;NVEw1aQ%Q?aDBV484!xL- zXzBcX&GR^Xjx9Nm26U{#raMRr&~RqJpiRPzHsvnIq1CH5|p(7^Dr$8 zC8K~>spNn9G=&4t=p$n&7mVmWMsTRflp+r!VF$5FWAlmVwrtUDS?MLKHEwE1R>m~5 z^8%i)2CGvC9AiGcAyWou88L}?dTFBGEuX8azq!^k)|&i9CERQJ;ck%en!G=>R_ng! z^4>tTydA}f;COL(tOb|(yq0PeltCjVFFs5+X96-w3AOUT9HbjRgB%49G@^|$^m2Xc zg>HON%6Lk^3VS$&cHUZt^QdC5#v|jb3!Jp^CuYM=gCqhVj!DhCo4cj%NO)&4OY^jA zaz!Gk7Gw}^q)hZ?{&rM!-z`ePdO~tzJkbmMSfB+bC5lM9n-a94Z)0&VLd@Ao?VV5= z{C=~V+L|O$Zstt=lqg7VqVg_b5V@dwqbmATc=bWFiy`a(aTd@d`CsINa%lOCmT9-M zR_d>H=BSaDLE_dVeR@H$9Z#cI@gj5PgscL1*7lSd#?rHHEt{dp%m6>7E7Q)}h387N z*_~HP$GY}bEIiCOhMgX@pLzHruhiVGi`7Cb`6KoS%U712NCVzCV1+|B&o|&upF0}J zu?8X7%-^4*U%+E}H{Y-i>{L_ATPnOiOCW24VHOFB0W3rHe{Z_o&^gv32wj-%=;A+X zZ7{B3E*3yf$bnr30$!S)^+;oXKP%D3y?q*LZ=X&EG!i7=#&XL7@Cg?BIT9P3=}%FE_U|hi9#zghwc2F9=17XuG;aOU*2D8o zw*)r3NBqshj_0v8I>tTeZBzb?NOWI^PNlKQy9Gk_nXN$_?F`S*An{+p>7AEpdn;RB z5e~juWhm;x!~4?&>qrab4CVkd@L=dS7!rqxIya5E=Ye zIQj##U3ppf{@|$(?g~bG*S#Y=eo+E0t&3(?CG##BQf-Atj@%A07~3`@bIr-gE?(%o z00n4@`T{%;ww>tD*P8ojSJGX|SYVW$0VjDlrmCO_G^rCYTl#{V1W9l&AIojMd&G@7 zBGJG^U(%q9bpd-zul2xQNAAY!94QLf^t9KzJmA^;7}di{DJ#xn&tr$~VtAzC39u+u zYVwC8&^h4|6s2{)_>26@eA>zE$+HK{HFY^bOJ-#kG zhhv$_c$r|wY25y^N2VM~6OU7cbD~J>&>#s`w?O3PIn@z-?$9vUTAScfuEp)lt_)sK zJwA@LP9MK%)P23t=8Gmam!RXcDw|lR-?xanO zPGaj4XJ$7dS1qUMImBKq&q)@pFp2T#kC^(G-zU=&ftxgUd z`T29EuBR(1JLWVi(#9%ce$4p>HqN4WuJ!Bd#a+JvL-7jR{y|1Fvg_ZUuWm}Wj3JEL z%vZ5X^u=O(8UV2T*8hHKcVAlf0(3|Il(_fOoBzHMyG!h!5AO+U>OlQ%4{c!1bR#o~ ztqQ)eyOv9;k=$Vf>{qjg4*?DF;rENwui)hyfxqTZJlkA;v;Ek#=!E-qA;m$RI|>=? zdhyK=W54kI-|G&38u_m~`q*c+&i*^Nj1RMzNAjn@(%WY~(kX z!qPbW%(7;{7>ml5xSQ?0U)|jHKdzSi@2_3{}Tml38zP9L~Hthd`9>cS6gjGy6E-PT`zXeEl^(nD`CffZ@AKiiv9K+ Lz&?KY)BFDb*}Z7t literal 0 HcmV?d00001 diff --git a/prototype/prototipo-inicial.jpg b/prototype/prototipo-inicial.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b8cfa54fa7528986db25cba63eb8362a6b1e5452 GIT binary patch literal 142967 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 { console.log(err) //esto es el error cuando la respuesta es negativa From 18989ec00eb8df7cd61c51b995d9d645e79b2869 Mon Sep 17 00:00:00 2001 From: Veronica Bernardino <60678832+verobega@users.noreply.github.com> Date: Wed, 6 May 2020 11:28:26 -0500 Subject: [PATCH 55/66] Add files via upload --- src/images/prototipo_actual.jpg | Bin 0 -> 132837 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/images/prototipo_actual.jpg diff --git a/src/images/prototipo_actual.jpg b/src/images/prototipo_actual.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cdaa1c2d5a890ca78b3a8d7eb048213df7177b4a GIT binary patch literal 132837 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 K`}pNg@BagmT1%Gz literal 0 HcmV?d00001 From 86e4dc1869c951582cf356911526e01509ea1ab3 Mon Sep 17 00:00:00 2001 From: Veronica Bernardino <60678832+verobega@users.noreply.github.com> Date: Wed, 6 May 2020 11:29:07 -0500 Subject: [PATCH 56/66] Update Readme.md --- Readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Readme.md b/Readme.md index e1f48db5..3f8408d0 100644 --- a/Readme.md +++ b/Readme.md @@ -14,7 +14,7 @@ Nombre de la aplicación: **Code Dev** Diseño inicial Diseño final - + **Feeback** Al inicio del diseño de la aplicacion construimos una idea de acuerdo a nuestras creencias y creyendo que habíamos tomando buenas decisiones sin embargo al recibir los comentarios de parte de coaches y prospectos a usuarios decidimos usar colores mas atractivos, formas modernas en cuanto al diseño en general y seguir las tendencias actuales en cuanto a aplicaciones móbiles. From fe3acba181334931fc18dbcc0d7cdb719ed85473 Mon Sep 17 00:00:00 2001 From: Veronica Bernardino <60678832+verobega@users.noreply.github.com> Date: Wed, 6 May 2020 11:29:36 -0500 Subject: [PATCH 57/66] Update Readme.md --- Readme.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Readme.md b/Readme.md index 3f8408d0..846edc8b 100644 --- a/Readme.md +++ b/Readme.md @@ -11,10 +11,15 @@ Nombre de la aplicación: **Code Dev** **Que problema soluciona:** mantener conectadas a las personas pertenecientes a la misma actividad, pudiendo solicitar ayuda a personas más experimentadas y permanecer conectadas en cualquier hora y lugar. **Prototipo** + Diseño inicial + + Diseño final + + **Feeback** Al inicio del diseño de la aplicacion construimos una idea de acuerdo a nuestras creencias y creyendo que habíamos tomando buenas decisiones sin embargo al recibir los comentarios de parte de coaches y prospectos a usuarios decidimos usar colores mas atractivos, formas modernas en cuanto al diseño en general y seguir las tendencias actuales en cuanto a aplicaciones móbiles. From af5b8a79790a26bac76a5ff790e115b298d4b8d6 Mon Sep 17 00:00:00 2001 From: Veronica Bernardino <60678832+verobega@users.noreply.github.com> Date: Wed, 6 May 2020 11:30:27 -0500 Subject: [PATCH 58/66] Update Readme.md --- Readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Readme.md b/Readme.md index 846edc8b..c3706160 100644 --- a/Readme.md +++ b/Readme.md @@ -18,7 +18,7 @@ Diseño inicial Diseño final - + **Feeback** Al inicio del diseño de la aplicacion construimos una idea de acuerdo a nuestras creencias y creyendo que habíamos tomando buenas decisiones sin embargo al recibir los comentarios de parte de coaches y prospectos a usuarios decidimos usar colores mas atractivos, formas modernas en cuanto al diseño en general y seguir las tendencias actuales en cuanto a aplicaciones móbiles. From 561c87132e12cc37810801a9b563a631ee861b1b Mon Sep 17 00:00:00 2001 From: Veronica Bernardino <60678832+verobega@users.noreply.github.com> Date: Wed, 6 May 2020 11:31:45 -0500 Subject: [PATCH 59/66] Add files via upload --- src/images/prototipo_inicial.jpg | Bin 0 -> 142721 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/images/prototipo_inicial.jpg diff --git a/src/images/prototipo_inicial.jpg b/src/images/prototipo_inicial.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2c4b677f6e75263862ffa07f7e2e8bb2573d1892 GIT binary patch literal 142721 zcmeFZ3s{V8+bBE~A&IopZX$$Aw9!U22uTw4C`yeaHH{kWr<&#_DwP_92o2gH8QN-N zrhN}d+Ed!hM5&BsRMTB^&pqqvdEV#!zV}_<`quZa_5a7Qj(@!!HOH8_uJbzgyX(A( zKZ)5G#eHPLSq#SB9<_f{{GzdqUXy#DsB z+w?IOIP!Tf&`JcD9|2yFSkO%($ z^Vt5eIyhus7})%uaV+?^i1Xh1j^4qf&>%1GePP}KAzFWJKjZcHz2`%N&iz5a883bB zbKd@7Suo)E_P-x>-j@_Y3ic(P|NEAIK<@8f{~@No4ggI5kC*=?&-sObVDr5suh983 zZTDKPGuv%!U~Ou=W3S@OHDahXwu$|!V>Eo^Mci!7)o#x-^H@7C8BL&%$&Ujm{GyM0T+ge*62_l^( zoC9C{fr7bpkhf=u_g?U4xz1pl!8W~ZMta+J{I=cDeET+YLleDi#^&3${kastBb<%+ z_e+hz>fg2-nHz5hzyGilsPh@m5YPYF;(4q1gZBpr!6Breh`(vLlXu|X-kl?8{-Iyy zo?i3XYPl}hGtB$Uy1#u$_+RG!pFqQXy#dHS$^H*%`Eyw?>1;^2XOQ=9AD|tU>vqq3 z1kEFV>7u5!wWh(g?Pi*rTnGVYNa4Yo|3c5p*E7J!8@L7ib^3rF{drUSlQjK*ruvWX z{+(I=wH(;`{M)~~4lB)n{rrmq|Kh;EIPfnH{EGws;=uoX9Qe25!#e<^7U7_@5OXoQ z|CWvzZrz44-D7JnDfve=BdfN+6(ga#!A5N%1_ORE;$Dn3X2JjF&peR-O%Mwfh^sKG zmMkb;_)=oQI?TdV3nW%85Z7U_7|eo2f5QHQ0PwP4p@ih3#ZpU_E|UfeidSM5E|8E| zC@HaM(L9k0qQUnV$yJNw)^6Xuc=b_Fsda(!1{beCTB5b*Rkea+D{sBw>7baU%M_KA z*QjjRsJ&_P79-;wCZ=ZQAhq9bbHMhX({IO|U5=k{^*ZBy*2kCN7aS5A7EX?cymUD> zF8)eF;*Hdsw{EB1xtsntGb=kM_sP>|1%*Y$C8e*+%4=%t>Kht=fBUYjy`!_M`_tzh zHfQMTx8afRqhtJElT*`z8F+SXo~{KLiNCY#Ps;v@u2q1pg_4pIl2Y?@Em#;nPxvay zMQgV&mfL+)$}@2FI)jT#<#>R(*B_AzeZTh{}N?? zC+y$o>cK3RSOA14u?mC3pzx;0iLw^pWofEkmkWA*E7Xg zUqx%l_UrPXQUue8&Y_i&E2%ft<@?2$wZ4xNWfmrGdiekS9~;%89EJmVP>p#h4b>$J zt69qtnMb>3RJyNHqB!oVHCAid*ePZkeVE`!t&T1y7Qm1_+{l+2itc>QkeQyS#>LJxls!ICzSS+DVrVC8A;J9dV$r9xJr$j& z!@sF#&VHAeGkVNQmZrg$B*DVO2(Ki;Dbe$s1oz89#_SZx%3HlDrKOcn|mr6VZ|yV zVhq~~8MQ$)SVGBFbl98GQ@f^d6=f6Y+t3f{nuoGKdJ<6s7RPwvlUk_gwix5bA1&99 z)xsTuXC{a5i7~5QQmfTj-t?X-F{W2PRvEX)BGOkvX!4kK)eF%660P>i{lO5r(1Ym9 zXn?n#soDW~q*1 zOx-!`%YX>cEyz!d38q~}B18Fu<6uWK*g^kehx+`E+VN7h6>i${AyoYX_wvLDx&|+J z*(hW!6=NJ=Mg*W`4A3I=2dVVgVn$CTc5Z}6&t+IyNlghdQLR&=i(<_8E*23hoaSZH z5Z04F3CRS6Fwm+#mN%=XP8fk*hMQ&PKy~MEFZTzEG0TgE$3w-K3}~6*Ec6E@^$N%t zfHhH!d5IILbaPMRxU?ENN`h)G&9j7BRg3xu3tl3gup@4U`ZpfOBN}gn5^@VfX*l8n z`kWUpSB$yG##>W10io51F@rZVEYSKAK9eT2qiC=?v~Q>%CdpH_w_5Cb=(|cfE=9HJ zjYAb`#9y2jMbO>2Im_H9KH!C>4>`T>w!U!{?%ABqSK4P6!7ovY7~|g}YsYc;>?VkZ z3Hph- zn;u`-{{8XwJ6mp_R`^Zv?CFKiF5a-Uz(}pnzND9go_k>@{lS~tMFDJt+6q2GC zr#ry=5wonm@|rF~_;)h>NLhR7Nq67$4c}^dPf+nt^*cJx#XVeritF;**oq zx46QTyeKwSn$Y9^lVZ$w3Zfr~F_Kz9Mqcd#7VmI^(2Y9a+;7G+scMckYQ_%&?UvD)wJ-y$h*YnG&WSOX z8|&sWdz$meHtdotMgS9g>7W}{p3LmBolf5A{4r!-o3Z{%soyjosWyeTmwFG2F)z|^ zOPJcgjSz5yFL3Gu?(y}wk_qniP=AhO;*e9T#iAj5m#Xx&r7>eVcO1KG>9VV9%g^2= z%DmfM@xyuB#F+!b5epVD&xvWjt(5tC&7{?Byc&UvrE%uttp|{ZHfx?y_ z;X)niTc#R*8MT>SI8j52nbW^6h`PyBiYanea_rRF_@$7TKINRxAjd?gbbbC-)-`Rp zXV|AS_S>y~BhM+9&w9{E*8qw%0u%V?Vm^u;chKK3qlN6T;Z}<=i0t40KcqJrN-YAFG5)1|4#D~&^V?u5V&KRaD2#;~@F zF?=Ifk9+HvzkdhRy`&1UJ-RD+7QzRjnqmy^3!QiL+5$jmv8W*Jf+^g~Pm}rr)$fHG z<*~i-=rU6qY%!gC)8!Rb)yi-&?h0RNR?S5iC+%k4*7HfUHc5<0$QEv3AalK9%)lKn z22PieXBEx^2utS`79w^@_pBr%5SCB|@k{}EM;7_(yH4}@Myp$3hD zcTy=VRjQ$nL@x54tQHlLg)Nyt0qLs+w=zwTv+G6MIk;MYEdD=7R*b1V4^{71 z%H?_sy@C7gB*9HBgOvR?-xAYMRlr!|6dYiIPIzg<#MQc?0V}P>Zv$4vD4X@4!i|uf z7s`%I9IuOBau)hgf_P7KGp?j;hS;xhgPG^dMETIUN4@mqfib38dsI z#+;uh0Ix0iEYU0ts6pmGa#{khpmE=V?P{3SLO1lY)F+^yZ?Dh7NxZx{JQpChXhVCb zwBG(kL8Yirk8y76!#4$Gv>{T1mT`XH^CTmsRRMfy?Yr_Io z;IByD@=`A1O3;Y#5YQ!CU{oDYA;c|v;fn(hiEp$)I4MZuE`8BL$R)d+v=8FoFG6zD zQRA<N4j9^D(FZK^c1E7QrGmmd+gXeev!5c3#4>G0D~@5jw^!9oatT!tHbfae{7 zmcc1F4T=np4uD=&xs{Q*@e+S>5RJ`+v5j*sR|3wt_B1;4EnF88B5mrLt-8ERZwy)U zn_oP;;g-c8b(vE~#-CZECxGcXk>HIcTvgyspNk%cI>gXbjXa;gRDm1UhmETjZFv{U zbE&6G)`nbng_CyqM69^??DOn3SGcssC4BW*zkFxb@r_Y^1|!y8)2Czwl^_EF=4nZoe`6IlM9A5Ff~XNi>=nA-Z#9!9MvT3-HZ!M8OVSaaME{8hk)q+ifL7 zv3Qv#$QNZ59jh$qrpOHH%Z<)CT%f9tUEghx9bcz^MT|MyrRUYH$B-mIZ2jeg^kK$n zO;$m7fQ8wU+U2V$cR_w|1giE%jtbXM^mr3LoP_!?I#L4_r8RK1g%F39gqQ`d*U*Ap zc>B4eDOfke-?i(&Pm7&Hq=d+ut9wSvA3RUW^QEqC3(XTA^@_;tC^wOB3lu2K+rtRTPhYK9JciDR>&h_tNw zSIFaTg`JOej8vg)vf6I(ou4V=?UTm|XK) z;*s&?X>%?0)RL_r%Yk8?)b0e1L8nOO*JohtS&Z2CmOAURw z{8rnY#~`*;&Bgl*KAj3#$ZEw2wgM{%zzyDlUiBwDYzpN`?Gt698wp*4=4Z$u(PK{< zM@ew|soHr_&g5Y@_-O=7#z@+wEFr6~^ir)-`mHQk0Wq0)#7lRQnnH)Qm5|l%Z#eu= z6|RwsSdTWbB$whGDKe?Mu-`OsgF|>&Z};yYdT`;Cz>hR(M1Kv)ZrO{!YKSo+Kf=5@ zLW9MUV$9naimk=~FNva$jf2>Wxl?Z$(;#}q2SU{r@eZF%1RzY+xx;J4nD@r|$j&5m zDR2<`!J!aGpR!Vn8CJP~d$$X!Zea0T&p~fz5F1IgYe3>}ShBOL$`GrYEdDA6qWCZc z7tnHr+k%Jpp~?)l7_-jAp=BID27=Ry`A8lCwZ@?hI5>$ViJOhf{u=^~^9UIH8v+>U zCJEUKuwV3KLKsdts6pr3QMPMOS}m5R^H;?qiu6+M5MPh>kk?YX3b;ix#xw|V@qs`@ z79b(6WqIi%`zB(rNG*ubuUUf`*13Rx${_x1MgF2i7c6eT@m!%f95&&S+9@)g9X|^j33L@L4v*A^BD>HK zeMHT3o=mewE}O3_q8Rcjy(W2P7Tt4YAb`CFt~3Lh@*H@ThOV2bmPI|Ef>Urj2mSd| zKxkMMJ_uafU#HLkW6XdqOu%UX*X~+1s&&=lEG#b&d~t6Pi(SE7PZQp@QpUEUD@i;F zt7$YJc(I>YSUYW=77(AWRPb=~v|NCyP3O;kz&bVYsfi~_V=jRlB#ubU+RQ5!{{i^=dGMCdsXql0{+B=;rO*||0H02bEMnqQcP{V}K(rJ@ z1BND9O^n%62oz6B1FH7(d>s=g3_*5<#rWnNql0v2*-y>z zFiQ;y(pkF&>P$n`Yr%m)O)_PGhvh3#r2v95Hh&n?S95AL>lF=MH!&~8Clbgo6BuRn zAf9&&A2&DFhqz-USiW@Gri}qpcm;}48;TuhTzKKRk-rc7T*fNl`hu19XFHAZBaLoe z5=3Ze*g@Vb-a$HSS|QK@q}=mU@u?Bgia`ckR6Mn$3%8iM0lsvw;w8W6)5SAMY#*9d z(!ushZ|a6STwZfm+C!Lm{PF9uS06*ARqgUVz1Hs?L1m%=AR^kGv4*esl$XTrWc^6u zKl|?2lR+E8U0ODWzi6x%#P=XZIVdBWUz<>6(JGUx4Nij(c2>`ImLDG0+r#N!-#&n} zLIDn+yaYf6W4x$sJ>69;DX1Eg$4ai;@Wkc?tly}zs3B7+wvx#1s0`yx)RE#fw2z;A zp>IU|?7#eW_kr6g%-B3P_feJRoHPa@GB);!l#tqre@8=9fpRY@>V^g%(WOIMKrwie zFT;E)bU`F|4fLm@8HUV?D}F3>D}{YQMhw{2c!`^wJ3LWUDn~GPNCp{bHyqdP+)A-I zzcti{uQ!V3J;6Lq+=O9#Xn{A+r_1*S>4;prz?Cn>-N3)GGoSj?{_p@0yELjYs&xJY zh%Zo`zhj$V@*wX6J=7w&F`IB(5E(6a#UZV7@DC^TwD|_Yx2Zc4W#z z!q;B-0e|@g$Wo|IriVm=H|q^UKRO<10RxST#om%Ym!EHMM80NB@Z%K_DgH(L%xLJgaGuR_B$Dmcz!t|5BEE(-X`TwvRKH$c%vN2GY#V$4cYf(Xa{ z+I=q?$G+*=G7R}TAx~uy<-VNzVobwZ#%?jD(DBkNRJ&&xD)fCQJGc)TY~Y%LE=)|S z2Ub|DEHx>5WWN*DJl{S^ha)V1I-Eq`9ifY0S5&wOEZ;j%J^36632%S4c*y>Ev;a7& zzFJ2*!1J)h{KqdE+XYACvDZY8V*kWyJ&Wf>&A^SU?}p&SZDI_*N4bp#Z?Cmi#|>t6 zS5AZE*9kbj$8s#@yG;_X92P9UZ-(VL5?hdcn^<#epEjb)1KWQG`VY7|)C-``f`hDG zX1e!bpoKWTL>Oo!*lw(x1D|fT2H(A{J@Utyi|09E)5kgk+ajP__b5;J^YI1TMG&YL zn-B&^Pz{Gr7=5=2D}p0uD+D)y#%y5`CKkek>6Xuz1kYiDaM!q^v!g@sAPWoc5Dt2j zKCzecIC!qo_!(4V!#Awy4iEP@c2zNtW9e3N8|zzkzt8WsGjHivF~(+YlLTT)v0>AD zP0*#O!o&8N<2&dIIB!yq4|_*;uHWYMCTUCsJ}JJRtl1ILD^z!}EsNgi%KKUDx!$q2 ze{?3D5r^!{{$g?~@X6-~i(Zld6tIcK8>QFbwtbylDz=02ZR#~u~|S;RC! z)$5o`K>%`Va?0!c5AjT+iGvm6Cf3$Gya_n=1_3K=Lq1J){hsVbCINt{`Sn3`7rR3vm>OB&YVT z+w~Y%C^G!j?13xC4w+m#x&M25O2Ug#lFyUleb%~%KDH1-73!JazetGszB3X)+y_cq zq8}&5kQkpb1reg>7CTD97<{iPbLu0`8^w2c1MG6dy7eo)c3>r9^ytAzin?lpxpN^g z_uhlTFQayzl;0XdRZV*37trw62YBv`9xo?RDr@j2uEeGuzk(P})!^Tnsl~(28cREi zevLl)Or~=Lg*gz|Ha+_TN{q}|Y4QL*bve5W`mvpfF$7Z!4{qbZ-AIl5R?&tz( z%K^Q^rr&NDRf@8$mb!ge^7YJ#)BE_*gDFRH<@ReA#kr@fq5M9Sy5RZ=>o}DUR(ZS* zF~))pZ-9P$<4p*1MU^ZcdMrx?!LwNl5jiWcU9C~itelkH>D;Y5bTRybk|?@})te_+^l_?r=e|}J5&G<4+d7q` zYOinGRy2@Imp)g-HMDQ%4i&v>|DnsR+^7B~`__Z!+udAycdMPRmJFm~>Yho5k{k<}9Gkz^G*zwK$YOM3|+lnR}DCq5U)HB-ID;RnoqPvT{XwP=^w# zDinYODzi~^2gjR33_*r}oAw_87Gw1DCq%7AV>YK9hz}rt}5?z0onViO0#fJ`P(yw z^?Br-N4uwX3QfNzo^bp&l+3xK#Sq5sTW7BpyuUj0mfV3)A!kCDKetT0MnvQ($G=hz z^LL>$buvV47IL*zT_haIhss;3Tns47;jLc_m0$zR%Ji35?Bw;g?h8>gzL zR3kvuc|VgS?6=zycb>UnbM37z{f7*wabAkzDWL3-&*>+|IpRH=Hrx}vFh7bS7iBgQQBS?tOknB zYHbYs>M>RtxF*x(*NY!TGKYVC7}MOZ^}4t+Mm3M{QTOG^T6w;~!7EK7WvKQX`Wc!E z8z>q;v8==ar0a;(+=Ev9w>%~8C1FrYv{!bu@G!M2)h|8EIZeeQO{oEY_19Q>HuI4Z zJ@*SCGKiea2vv>VBRlZP!CR8=QGGYx<9NeZ8(r{3#L6!w+AkatToM&uUj&FBHuqdMKk4$_p&li4`bo=&OF48i4Jl_^NwJmLmtC-49f&P4P!Ms@GzHRs7nGv#*166e zc+lRb!Qp4bm||_NoBB_>TDza30fh+HrIk|@`Riv^4}4}N#5UhllHYh2@cmS6%~TJGGFdGR;nOR^fa^mr}pdO(vCCm5I@Y)eE8=F(~Xryr7TEZ zFKZ_3$d_LG2><0RmRT-4+P>JRIIP}D7rYmhoUTxzu!?QCPKuAu#(W_ZAOUc-#^Y|K zJz9i-@+kNLNrm&nVL{PFPlGQBgWJ}}_%>mnr?(VPcUOpO0}}p)o!p!^Z8%@q-kmP5 zN-~DKhK05;oj>4MP+DGS`lk4G#jCE7(zvnT`B5a@1mi~>_B!MDz{UTwT#o{(e$G<` zt}N)i`e;h8;2u~u!*>Ib;2n-#0-a;c?IiVp%1(Bmo`e!NNr(=AXZ)%Isr+YA0cZqq zSp*h>gA`b^&ofa~A3+lccqO77kUfYHka-OkTmUCLyt=AXGv&>0jbii!#OuYC;6>`C zTocewn&6a*F~&FlhZ+Y`C7D7YC`np-sqGL7H%2{X8uBZ5X^)y=&>|= z0}k~mpvUR|`|v$x*%PWDb9Agc@ra{YvwbVL-El%#E_38#J*!Cql z$qBCZdeSq|0|iF=5QFa2U3--EO?iCtejVc5CyX~mDsQf%Y10T7s&1wOFRUc!2AL@V zvE>ibvTd{*pwB9eF7OO*^0(4glheS5F8i(${FYCwmOHtZ7LtCrbg&|dCa1e<;SKV= z>Wno}m(FPt22AP zVWMFD4VT^$qwp=c-?(@IQ!H<73bBvc)lD^~*mV}!M_G4r zyF6d-=rPf#5AvBmd~_SBO268O^MxX+5p{tx5p!jJBgT(w_eU83pDeQJTR$A^yX zU9d|+)PeK4*Yv<Fk45<9WRf5sW<7$#Yts)uc=+9X zYZ`}`WNB#A8j@rhBGR{Oe?ItITvwyRtJ0XZwjTN84@=`rGmq`V_{qXLAmKdzvymIm ze}0o)#gF~0(?IpiFda#UP4>KOFLn>!-){UM3@hzB7x&cDCl5~Nyqk22ukCTKe;??l z(oRUHI1P;1=kyqL2aXD^Rn8RD-Tr++YLJMVNAVM-Q#_*vcj_Fd^csAlJ!n$Li0c`s zPUSG9;Il+)9?hDMi_b?j5wq@}$QrAs&*4jMd~??peq!%&zH#1Ta&e{iBk3#th`kq4 z^59`TSA$zK1(D~{Y{Gg!`zvgm+ib)TLHMpZA9NWD_(^3)1=cxi@{{`I7xDGoPa3xE zGT2hGbk~7J7q%>wFf+Zpm`xk z#-o+x$B6eD+8Dp1Fqp4eZzTb|ADzdjw_~VLTsx*{iXIdk4}={&W6WtcueP?_B>r?q z(d)`%Sz}#YbJGu|zr7C{b#+e7NtWW44FA%9V6_PeXh%qcczCy7Cg^!Rji@Zf}i}y3Py6mqT(p6ZVKE1iQ z!rWg+n;HPFvBut%5N*2pnt;;9=gzWT&%6S}c><+KQvXW*L|19KeUNG46&AK~!P>If z!%Ivp1}}X~bOLKm&98}D0-eJpdw!BrLRU*S*R9A}{`F#iY2{KrfE>w!lZD2z31J@z zD!6L>SnSg0Q=~-d8lFp!@lJhtm{=XoCy%gcATG%C_PBjPta&L6j@wb1YNY!V)7sSjOEMjx#tMC5BX!Osp@aqiv|+S z-=DYVft8UPhVz4oL-lQ9jL+G)t_Du6^-INmQ-3$k!QNg!#h#z3x=!2;VvJR8=(~PF z;c$h$&W;-%<3(j(AGdkHZvNrO4)l#u^opBMwF@Y{AOAS64|MzG&7H?(l|AHg7hLfC zbW8K4o|;Z(D~RK(xn^o|-l918zk_1oKq$g{8Ma)=AOD4(n} zSQ<}pXWLqMy`ZdsH$NuK$&6eM$@+MX5;c?uttO8NPr@hoZbz8zT238QjXn=Q4;6mg zgP~|Eoe8<)qpaTkMX}D^9&tmp8GTRD)&Us{>!;L@Dh>1@d)3&oJl1X03DM*2uL#WjbR7Q4)#Fxf2=&StHQaNZxMT5G*F9fDwcBoj zp}4t|>+&-r8xBWi2RIjZ))h?j{$e?&-5vp5B3V%H#U!tgGw=jqhj77KoqZrd%;vq^f$_8&b`}}eB6~6y~k+o#C(!tnR$mxc}A|{Gwt#l$KKE! zySPRopQ9&kbu0B0$KK8ir&;~#S@YoIsjeE_9*8~8;vJ>WSzwb{uuK2Zzny&*MD#(# zA5{CyUo6Wf4`n~n;Ycut;DgenhDfNw3`hw;7djI+MaHQ@JVqs>#cz|ul=gp*9+o!^ zhAmn|8nO)oh|Yx0WKSYS1o}SlFF*v}4}IrRcK{!ZkFY^3!_j4+2)DV!2RX+w;X6bC zdS?G+1l#B`0H6cFiK)$sUe_+@fM0n&YYu46boE0`-@J_X=&*j=_{i1I@nY`rvC=0W zLRz@QBpub>EPD%&+VD`nf|DOvgV~_9tmkvIOE&-_P9#&+N_ektI4F;yT72jH+)v~^ zrrE?`jnXw28EL=0E_d?E@m1_X73-k&=D8-aEJFu?%Bk^Ui~%<(0I~Vpc+=eqA%p zo`*}2>|gP*(#jFH0M3c{X`J-kC$Upk?;G3{=)bC*Us>w>R=vn$TTG9=S5=sINb-sg zGc|ydpO5an&&YYx$HY1ehY59#G0XSSyQh0Q=63!m8s)c*+*tnW7l*s7^xo`gN-a*5 zJE*9<({@8}(T#nOIhJ>%89L5yr44T5&3g6l)L@pIFv zOMMEMMRyN2kwX2At~IaDe7a@}P8Sz|pWTG67Gqwm1A2d}+2gtF6ljQCGNfwzq2Nsn zfpP+lcxw5ro?g?^L#yYLBctwRrAxbG8$6ct4p;1;c?G=OFDMc8Ag(`O4%_}b)UAT_ z9wI6`iNZ$IiEtHwwaEcF#o{`oHX=rSFAUr1@m3m)ADv&dl^Z8PM+J|VA32nLIvLU( z;E}PQ&9njxYsP{Qk`3z&vrC2zvyk1GRR~o1>qGmO#i$CJL!9*iP^;czc?T{|2#+F) z$_=*QCeWd7F=j>Cmjy%Z?M7-wXZjBGL9P(}D|CP2$Hpc6k>p7+X3rUD4r%ZoPzDRiP*F;SC8Lr!M@76Dha}lY4WXIZ2 z(b}i8A^4+56xMZgU>Q@fiBICtu3D(_Kx3hiwaj?nbMP@y7E^+d+oE@(O2W*m*<gJc1JFIn((owG_lgwPniG0>lnBIk)njb*9Y$~b-oZhwE2cGxP^*0 z!pRUbtVqh_$Gwdz(Ip8Su5^7~xHrem-QGB=B6*Mf!d{y!Wh-n=vhB+$O&q?N&s8mdb8pLdsYjE22@(={E-Ed-Y9)EyfFMnDr&2p`P~D*_ z9oKLMUd=!bz#E>7M|PCcYlSo{nd2^v=bd!TdFfPNzAx>Hg_(~xr$x4xoM^+hx|ju* z)btC+M!Ap5ZjaRCKF?Hn$nZwEN<$2(t@&Uarob0kK?xNalb_8+xco+|&Cr5dg9r5$ zVe7ivB|*_QMjDxtl|?K#n$x?q%~~VZ%ZG8ip``rh1B(G2cqeCZ85^6BAqVH{yyej3 zV5de8b@)OH$KLwLo76h<#(3ijy`c5o#wWDXj+Lpz)?YpE(XSf+W?O}U?eLcCT$~Kf zuSJ<+&T~kjs-A>hYN+Ns*+g)qq&nn-XnAZAMkMXxhsRX9V3V{9TJ_I;wYy_sHsp3s zPqC??XXowGuC+V?jeN{lI_v?r;aOl{z(K2K(@D3xTb?-;`ZK-dZv>IjSNPe#eOS&N z;JZQ@y+0zMI{If}m4@2ALFZIIjRjAaXRxt)!V}2B)==AG5OP1K)HF7zOw`0OyQaBu^<1iqAo?DWB=|LWYm1n?1wQ< z#zAe%OFK4Q&acbVQSaT5FKCK5)T`@&i59~CFp=Fi)P#+nVkuG1 zyzDBPkT3AtF_zw0pIl_#*HON&xcU9dPbc3(!KCG@iIEk3)^Tg=U!2K)yQ$B*=cy&yJ~*UBhUvUyyqB%#10Qey}I~#_;ek z>26UkGkMg9tNqwr?{II>THMyAUwc~jDLjn%kDfuuiWi;3Pq*Tx)*kHut^52Wv|Jm# zyh(xw)zg3dW??VJcuSlRV>)gOv-*4nWsz&N7`njLN(~xQ&vb#E$c5-ZS_1UrA<+Vi zSJm4FA}rAO?5@(HU&Jjspe)7Kuf4kBuoSYk$7GGg{iu&p`7UqirA-G|FB#mNR-b14 zXG1}HHrp5VUG!=Oy+99POC+=eakBHM3}PVh6}j*)q-PE zsM5s6r4t(~pUj0} z9h26IX-Ww%21`FOrXPE!?rkSc7`sK;HQhVl?~Q=V!+>HoFCu!RMEK7(0X^(i^Iy4G!#JLtf?T) zS=up>?c1QqcP|d@H<5|Ik?WdwIa}k*%`LXSN;nUO)~x?Y&$#CwmKvEoOU)f}zAnU5 zjJugy6n!{zY;k* zq_6I$VE||HNXKA2K_)k)a+e^DD#v@ipHt)3q`!htBHU`#%29n?9PKE5fFtSw_uXf? ztnbrXS-d(BUs|@%;JAQZl;$`NjN}j&`IUFwtDqiS6lDi^>@6dHw&{P9rXTTkx{#$; zw56Rp8v)(GrB5W_6ar99vQ4$s;*yWh%Sz+H#eDa!#B@d?7&-gmF&PPmH?tv+Ua%2M;^u z+2RU9-mH{vMHsi;ioX(%a;x+rOPp_R^i>`IGO9DJNJR+hQ`3%EbFe)=7|oMM;@n>U_7Kk;a3mbq7`o5*|Gt-GgW zFI#QB=bT_fk{urvSP@n z;mMSO3Hvc?wABJko4k@6G0RJxE|?jMoIq)97&b5!nTCf?gBHNZEgQtz1k_|UPr=kg z+(ub6;#iiUE>o#E!mqdMfxD_dYc{;!fjJQQEsgX$>g>xHyZ1j8Xdc>G1+~loi+?7@ z{9=vurxlS+jePxp_#B#cIrq4MS&XGwQ={mGlkGy zIRD8BWF^|tVUeT{Z{Xc0%rr>k5TN2uosyg`ucd9xUvOS3cTx%M$s=>hZ+^*i&*ARk z7gXP`eK7kzVsgjC2b+P>XmPC%{=7r?ga;|QNS1(== zp|Bgr4~p_JvNovNBgSwIZ*lof&$wr9(<|^e2fOZ74qn zg33Kt4H@_@0}ktZWqZmR)n(9UH*{GNKeGytfxuj9iBcUc z!8N%*jeXo|A!RQw)&0|G_*~_P2TWs+x5P8$iiH~Y7B&A4+Q#)B+O5xhDz-=8bBN>E zjelNSSekJL3D)dB;Y(!lS;3caCLA5l7Jr1G&~KGqfea9zXYz>v)iTjeeL6W#l0`}Q3LhR~=h3&QRvFKw5j1ewQn5&sw{|MT6V}etXpTl(@hU_t6C)ZLVh3L8vED0QyXgh*AX# zxXrimDB^X2%TmOUhrWv5Qcb|t<*PR0mlur&tP$wSjrSYym}zX`Qg>dWv87|3p~8{R z-cr+f2RlRZA=`F~-4FeGoLLWvVS#?;TUigsoL#%(pA#mZkV!=kybfiIAMWtq;JEDM z=P%9D3%5;K^kP+mO?C3}T1yR_?eluZW;)%8Ust52+_;*0_`_)4PHmshy*YD$|6Tue z{x^Tm7BN!LNC?)8h?oP4%_$RZg}nDgc@Kexpf-L`t}B^zY)gpe#&6}S1F;_ljW`gh--p=~&+X3+ww}>%`ndq8kt_aW}&z=K~*VfV|7T;nJhh71JEzj`VJDo8c>=V5cjY|fWgaIxL zeuiT|n3|YVF~%Yb3PHmA1PogkFy@w|p-c0{nBRf7bOwF>|G$7M^As8;JAXYvi0rC( z>S1K!B2DnjvJMaG66|RA=>MR3!6Hs|r%uGg*6iMb{;s9Dw{CChyNJH@#!s!%M^?Lu zG1n&1=fBf`e49Jzbb0JI-ndTg;rrg^x3n9-ELyT>)ycN|-?nNUz3Qd<&N21i<{dq@ zbnQX8rI_pY)q)JWrAnfP^7W$Kq<*xe*#_$|%ku5iGagtmLN(jCw=~=GGfZBbl@GhC|~C)#27|#Z40;msNKGiuheJ`{o~N+qCwUY z4tb>RuuS#WO5@87gF$ofn1xf#=i&pW3sw4SmpY6^91cuwu>I}n&$5O~v6f>8b)1BE zK^JrLZtTla?%~E*QcqB~TFSr*ij^!Yu$#yD@s4$s4jbIV@oKTf4)|HKdpMB`70dWB zAoUSF_MP4oYEA(S&0QUoAmfKWuh5piK}4^e&;ZZj(h|UM;eq;G!C4kZ zcA*=*qPIrn0YA#+jgpGIl`db+ndl!ul6b)g7TgI?_wSMYslvJptjjXbrsJoDgmB6D zw$bv-})otZ^`+uP8H?+Y7Q(uuoPy%JZNw+K`q>xP+u6lk z*_O$lgIqvS$rpn8oVTzUKWfOKUiQkIcJ)MTzZLv6pMYI4)LHDV&7O%ZCMo!tpG^fV z)%^+HqTFagmfOi@e=k8(9?_xbU7k|U*0o7tv+~%_04Z9_qpf4L+l%#*v(r4!L&SsO+UYz+s0}&Y@wr3b|62-BEGyw|1Gc>a8>b7JU{w4BXUmtnfT=KN)Bn3-+Oa_RBlqXD)&3cI=$tKo7VY zTRxEt%^t&#ZXW@wEwjZK77aCum<07G0h$;RW0HfwVrTGVq&#zWHewdX`u&B2i3oC- z1G;?=hirqmwcv@SDB(d62_Nto;6V@IxZ-3*uc7ZP5CM-EGC^+l?HH8RNXH?9G!(_b zt^fWg=pTWbSqw~zaHB*NxI`YPic4ihYbLll^Uk+{g*?kdm2m<#C?_pN*%0po+ztBs z$Iw&_pf-~|cp(hxIh%hwM^xs9QXGXN-$uToVvOe3NvM0ixy_gb{M-$Z z#lKkohiLyVVfoWjqDxS~#ta4gr%A!>v)~5cC@;7nt56Ap!4;IJRxzehCr3a#0bGs` zG=drCk8L@3#?pNa-tF$ttzPsgMy4)8@+^(}ZeWs=Hh|N|Y0u0`{WYUp8_rQoeddc> zLkWB|o*w#>mha12jo4?6&F#`d}9T)^fZ^PN4s$vhF|D#C3ExJmf%zo zQB;azhERE%>O($Q-cu_zFH5j%Nm%k#VR!4k$^8Zs^5}H1R@XSc5M8lw{(nXpbV1}y z1aN+5cFt z|AAf`{&S*g*2aSdHQD><}zXRU_< zum6_pToc#lWakULbGncEu5eCloP6PPrnERQDnTou{F?O2XG?W=VM5p6$5_5)OlE=j zn}j1V)PNL9tTKgIGSThLD|ms>h;oEayQoy-?2@*PpkWC=8f=jsbtGptGIdH4>QvtJ zr*ibHoq64tH7gQ*jqG>Y-v0T~Ix4UKJ!r6d9?shu;a{h~e^~Z08`a7{v7AM;6Kxx7! z)ueIO3Q=OeMUw@;;l(%_g)4-vaKOXk0}IFvK5a)S`W)F6<9vIL%+>+dkNyl08~z(* z?;g)&AODZL?+z+yA>>>+)$LR{mD6s?IV}{i*j*B{P&qBe?oxzMgd$cs%z0rW!xnR> z4qZ{pgk0K>W#rGK;qFWK=7!Rb1$M z{dZL|LEpf|{PL%$xvr5;=k5c+7MGCSra}HCulL->`x?(y9H{75{e@pUm2j{)?UUXN zGN62q%9ACqPj$Gwux*jF?q?fA5f%Uoq{CWJQ0FdHH{w@9k zZFvSr=Fz%~6oHg!BRPhsi3S#<{!IZKjeRJEuaYPO&-3}g%9k&1#CT;rC+L6wY@W+I zw`U)jI?y2Ah1j}*E*7|o$`bZr4i5>hLQ}9oFovQpFRx=j6&-6}OVWV!a6&_dC+&E! zuJoNda)V6TgRM#5@<)<}r|s`XsUyD6aUdd#KVNfdtkh(r)t?_4 z{9Us6S^R{av#+pf{*&IXUO_t0&L5c8DaEo0_dzxwk-u|=hcmwof&U&Ndn zZMEZUfKP`k8s@|or8BDtH9wMw2W{xsAT1m9w2nF^ax=>hB{06?%ZLUq5FlV`0WXk7 z$)!zvM3T^(4|fIKqYenw`BB|3_);AS3WKI7)3UAa|vn+J=UN$0W4IJO{PX)Nsh_1|Z^%H!0 zvI$J?%U5(>hcB)}$qLSw?DWR%zy$D|#WF&;o8y@#B5(<%k!C8@#s3^zQ?vevah)%&Gjk;K{P`5_~Q%Jf^E%d^X(m&8POQfx zB`2=6xvd$cX?)RutbtkwfziIXeVc+p^9MDneXf_sCOf^ns_Z)ZDnm+;IYLnjY2tP573+;rwBTqXwqZ-DP=?>PoK`iz zZll;VN}|eQg6l^yra>C_g!0pFmuj`LyAt-*j~Zf7ici_ra?UXM-HoD+>E6OKzdF(V3mdYH zGHIx43ADI#-|gK3!z*+N)t1%R=ocC5=X_`$^iKO9|E7OEoc1(6xMXowMg(K-P3j;7Y-BsFssO&ziG+#Noz6oP#SBoJ;+vobHY<_D z2rADJvf;8Wl%r~_#!!F9ZUgJB*|evCx}GSAI$eitSR*W*27^YAsKG{V3Z2jG&@*oj zmq80yzQnpr_dp78CRD6{8QG+8=Zf!c{ixo79qn%rAF@lv8)F~PZ|&B(e+nlAtJ&#{ zt5EhLh@&cGTEdp%d3xKpGi|CxKPYi8V~a>R*lDmfB3y#5CYh4g5HG~tko8H?toTO3 zc`SvsV*bm70hrdWBAzx2AAycjP~Ih03T}s6=Az`*3G|3B5I@6G^ab|)65IpPU01=d z&<_u|a?XL_IFZ-XVKG)+7vitlLXR{sH6Fxk&A-Z(iIwlG0;hsyull9ZG?snt+JGbhCE&25%p8N=weLzkIM_kCz1Xd ze8coIs|2st#S2aJ#-De|=lFCE7>gsejDoT1*kH)x@R>BD1Ab@-yR50ACq8gm5Nv9V z==49tkFE$Wo==H>J78rN-RRC_!PF`Zrj|zY&0aRVH-#L>BSb%T>~0!JO42#sXZpv> z=LvoV-_kG7U*EX?jah^9zE|v$D<$>VJ^ibw0I550wE1FIZquDHd#*PA=;BQZ_9Kbl;i%g40I1d{^)rkWWRTud5G;E;J#H2un$cLp^A^AVLV*gaX(T9$&fFrB5?C$ZE*YUu?-Fl9F0rLu%D^OzOi~7 zjj2EVz`9XVMtQU__Gjm@Gq!@Y z-n+h_nu+&}g`Y1DTCZtz`k=!4<4hkqukqmBbG zTTu-rhznMp;GTQ{22 z=z!|{R=J6kf?digWvdpMWto)MJ6L%i?IepFG{Cei$nB>rQAY3 zOoUj(<11V*_vC~6l9q#Ow;6bwNSFl z(W!Au=1$|7D^yH3nAxtV4q~1`X`J;glU#;CFy8-jw_*?T zu(b48$;j@|TFukWubzY_{W;Y12Wso;n9WJFo!cnUX+V}CmL4S^TcPhl@=N&U9uSoOo7O9au)bk~Kq~G^D~Ny<+rMW4aU6)= z>e`lgWe^LTw*teJokJp6m7z4mP)DJz`o4cT16y#1A!UMLmoV@cV!Pq~?|VbXZkmgB zfZ^o*)$gEcaOEcisLD%0tOmbR0n;9g?e~NtDt2lU^8e>t9XD&hHSnsE1?;t=PK(6g z=gQyV>xt79w_({UkE{qI^p!0t_$vDpFGeJ-3=vCLV*!x{?0MsR3W3l0()+CsXH1u+F{@_M|!u(;R zhf`uV>lj!odh?n%k~C_HFZD6yL@;i*Fya-E{XQS@w_MlN>%8a|e8{-E;TQ&``zT;! zx`l6DO^z;LbDf0d*b<+q%U6J`_4B;(>P7-bMQRJ-#>c&9O{_ZsO<Ysh92|#z6N)e zH@O$$29$t2Px@cVWr;PxibH5@7b7{P*20Xrwung9e?kinD)2EnLI$=x zMK5i3^s%eDdEQIM*i;2z{8x{v>HP1MwC9ZT+v~t>`hHPOJgY{|)9fVv0>Kl6W^vSX?`( z3BXZOeSx>-KO>Lw5h*Xb2c#^LcON<75kVSVJwiQeqY1!VdFB~Hceb=jS3WdjwQZX_ zTo0-+XS*}6TGJQq=X6!(3Jac=Zi7mREOhb-QOMF%rTyniow`Ki}^%T)`Y?80h zaUHVplp_GS^I3v_5+cj}Jv~FGFg8a+E6X$0xuTR1xj9kA4Vboy-Hf}9$PmlJI&Q`! zs~+oU)*b(;>Y$;ReZ!|wha#H^>3{k5vW3a*yyC^v$GX$MeJwt(m(z%irSbxGh0h0; zU|<`LDe@nQN-k|pR1g-9_%4i(42hzx+IfM&z6#DVQQ23`Mv&uPe9FPwS&HpVG?r-S`p1=$JPw%HEA zW-=>;iy&{33~eMVMLUX=&uMIuDN6KBP5QmS z-B6trZQ=p&d(FQqdiF0Ucl1r`dM84L$l3>aga{rXEMwVzXwNhJFc4du!V*JGe~b?^ z`)QxA)-OO7EfbBegr>9tnEG45udMLvETKZ)>`>5acYg$=8~2dzi+i++f+;x0Q~>T# z-Q(3uk>N5|T_a)0dBmlkQhc(*V=P(Q@WuH*C9L= z3z_E8lZ6PQl*0%JnsB9_*ON@xkyO2IflDDtwe;Cc((2}q{l)0CU`?(ro%uB5Mt*yL z_S5XA1RnTq?0n4Axy{dlO;+;ant=j5UgP3R#DJ>cc91nBYA66r8$eymy+`bv~z{Kbvx^V#}#Q=c?<$;H*X_BN-(>7NRdStqHrv-YLI4Qlad;P*_ zl+t5aev zwa7tx7Ej9TuCinh<22Zx}I`b76Kl&?*hm3>@5_^U=-<@`FT z{CQY$fEG(dEI(;i;TFYd_-#0<1p;CEm?yV-MBztCPHV?j`DMY|&Wb0;7sCxA{XzuN zaL2clVgFu-F+(xqP+j5ZH{8!&Fxba0O;U=;zbz2Gp8|?AhVI0fl`;x_~o9Yq9JQosF6%q+Z`FFw3ahsum)K&TKw|88D*NGw5#66OsE$c zj^HuSl-*GSd!1|HT#I;0HsNclw^#{&*UGN=OJ8_NZ)gpQVPYPgr<`=}OnKhCLX^f8DJHFXpVB(wBbEn!QiuD*Y1Ty8kvy!O=8hb%GQ{PllfkJ_HS(QG5 z!KlT>RL#fglWW=@Fszi9i%Ty1hX`WzHy`-E+`QDnDy?V?{uYrH)1*&mYxY}gihiq} zZGX3)z>i>49tP*-<5ELsQsIz&Ay4d)c&>7dXuOa!spff+xAwg(uN1jX&KXr?_$OB{ zgb4&$Qqq>LZLOm=z1y|9Z4Ir&(VL5FYBmeZE!e1m0b$XoM%#HQ{3hYBYnp2dazKQ`~(Ae!Jd_RQl1`$2eV_&L|+zsK{xiI3qLGljUA zrC{vBQi7G3s)X?b9hARnNMOG`z#IT^CTAY#dw5|M zK4e2krf<^dy+5!k7eTB=9b}Ly{)a)jbgks%OZh|hE%)DnOrwNg8Zg}qT91QVL_)s? z&pi#s&~Oa5#ZT;teVk32=YxcU6NL@PDEVh5RZFX0g2Nu!+Rd8dRb(>iTr`8S>h z)&f|chSNt>mQIR~)qD&7lGpU^l53UoZPOCoxow%auHg!VRLbk~3H_INK>i=+g%xy~ z7p=nCz&Ew}dti%WY3_{IHYG=yKN80GS2&L*4L>_JUg}fc^d>tpt7VQcypEVP2k%z0 zC@T`0YQ`AIX!V{ZNCV(AA?wQPk0V8p3t4&w=V#%4 zlAVxkRxu~tAopt{-zm#foS#{xi}xh5Gbgs#l;&_=0$BW%L~lyoTb-pFQ4~t@=nU!P zPHY-EHeH2gp;J&kV3t;j9_Z=lxJzn-!J39==&hdS8LhYULl4yt)r3Lunc(Bqeh_=@ zUvDp2iYmxdv!m1bDr^wL>%B~(6Jd#DjSRzZioD+fISQYmznZc_T)IPd=NnC|J{JaZ znhl6+e7y1UuLSbnnb^>6QbRteawU z_zM81DN;`5j!(Mqy3-?2(+J3%MRm~*0K9E_FbLX+cATq_5?I>7jgN^p9UINsa;cTR zS|Zl>J9jbUm&*g~KMqt3MRLk7#g0^X7KKz-e2h5bf!FJHGt68%{pHN<u~72WJDW)1xuF4u^skZ$*TC*+GW)HL;60$qAIr;W0m* z+-`I6YJv_E=r^!??+M(-_%igFdSl=P{mXee&cJZJ^Y|Q$t+C&^#5q&}uUd9W1tcX> zZfie)-KlK9(N%CBg<`MJaLKIQRvINj8^C)SD+O}Jh7ZEvPQ1)S6S#q-ZC$<~hD>dN z>m8l(S(A2Ha5f|voL{OnHE@`9d`D?{_acoRbj7%0K-=(gm1C~pyoY!8`8%W^+MgGh zAGI3keKlT}0%H;`fyhevTz36LglSB8cTb-(;t>@2F3Jz;gxxpCpYzUZNH^~kA0j3F zx*QK$i(6DH)ML&z@XCsjWdN#ES@+@0aFni_g4CoztaxcD5GD0I+~7^_k8Uclx_)k$ zAv76`EVNjTE6|&in)pUvUW)QN;->R)IqGmJO2z<}h(W~YK8o^_gA?KD-cCF*u2|Z) z8{EC~85$+!rJo52PVs$r5suXFLvTCIS&>mEf@q!f#b<$eF!^FIp(L=m<$nK9Yj4+P z{*Tl=uh4M+`tij8UIaSe{Zru1N=KuBqE0X6dlJ3qM=U4Pp6fRkN^ydgtg8UK4#p?~ zV(^TcpuwY5aLihGi<>%lb~;!9Md|e+oOmmV-}xE%s2S;#!`~xMX^n-gn8fv2Sf5$_ z7*O7~y$;EOdt^Cl{rhvrSvSks+S%Gom5Z37d67+_|PPZ7LsW_ z+-iKIN!dgh`hbWsg4l7=^gf0OcNa5J7U|+bj-MZKMb?M#c!iX%-b?c(H9kd|7G0zl5kCu-=F*yIds8{A3hV? z&}zz#H{`ZEo*&U^8V{2m`^+fp%*`($uPUc6wTbF@-^a6K_T`1Xo^%b2L)FCB`UH~g znT_s9iWbmSf{yFl#H9#Tf@Z8^&I4FBRu+hJ;1Olev7y+W&BBaoD|_BdbTLQG<7jB4 zpZ}zT1~2={)Z`naFKLQa`jw0wSR8ea64uSfuaU^Cn6ZudP<;)BIf|yJ&gxi67aOem z17Q5s|0D{c+YvFudn4&yitS8 zN27<1@Z^tPOaoEP?0so_q0BUzJz}NHZo4*PAHU5j)01CDEyr9OTQxw@279A8TMj(? z*%!Q`Nhf~#XAd9lQ#%67YQNu=2|XmA7CJ*^plCMo`F;WH{u)pnoLeu98~N_1+2L!J zZL-PCEO)-WWz$#?6gqQsF-l`QKyaE2=V-{isJTIG`Ds8p82RyG*NiB}-YA$TnzGc5 z^Wm0OvrL!h@xrV>G50t|N@9Aha`fwRBotz$8>_?Ln#=Vv%Qs-+tAlN}6M>l0g+X+q zo2iwL9GV<1gK;H~VsuT+9Gz_x25;^x5%|8WZ(G&42;SbXAGA&Bo|Njv$Q9Wu!Q?CA z!y~KBVY(ywQ6H=S%D&VvQr7bOf~y{Cwn*hhb6?N1RGpw({ft$QXU$pbnkrGLAzR_m zTiEmKzt?=h_N?WJ;wQ0l-zsy$XkutJmAecUy^h*{YH&uj5`x6)DqEqy{*f@pZ8;}U zRWVn=jEb)DFByk>ud#Imx91;;wH<>fp$9a)A2b1GHGWyfhC&#Q1hs@yKu^UIKnLd> z^kIL7;Ur=;fO_1XjqUrfoQH#CnJ12~wmKQ@q+Ieq`+F6bUB_!HX&X>0~nDDxh4egG*&xz1=%*hc}BdPD>H*4S$BB?Xn4 zRcM2wP|jS?4OBpr0{J05Jg`zY5UX!dIaeD5yc-8ItXE^wTl1T59<3^2uIDc{;;v7X z_uy@c@)W`&n{HvV&4n^w!KCi~TQDwL2`S!Um2J~Lp5l-E*$njbZMy2VjOdE#Km;I9 z<&MEbhttE_yl1g>5h5^yx=VdgHu6Q`N#%W?mw!uWWx*vRPJ{DoRI}e#X-uqxD#MvL z5ckc~5Qb4?|8UdOS%vFtsuXGPe+gm%qb+yL$uSB96A#3{!8ik;dIq^!70l>xl^@UK zNUM9^ehpN0Z1xq?DuIBmSovO)O$Tc6*GVR$p?4cm5Tj_;kgx{`7fY|V0^4Td(jx@! zqH=BCkAD>e&Q>uqSNX6G1Ou_ZdKJ%SJ+KOmC;?)+)D_cBLPM6B^mdDw2gF{g3_9V1 zW9b69yZAQs!e55aQo`caKN1`KHV{{K%@mtE3gW@b41iuC)7qeROr_@7u_1!$*<+=? z3NB&!*|#6hm?}oDsH5>gV=5hOXwRI3qxq%BBFJ&HqOYwBM)rCp%{c{L=QlO_HI^p8 ztn8BL6*LSAf;2LQ;ZP*uAz~K=5`x%AkrN&S`~pegL@0bAX=!Q1znArzSUUpJCOfXh6pu*kXlveLz~;Ns}rQk?>-zE@sqh^21j z**KS?ev?|!OIi2K1?JM$6nqNoZPLW6$^bI=Z63((nzKE`cWvYC6ujRf@%7g4S)U~O zCA_qsMQc6n^AQh#hD10OmT>z!kV1&W27$H9K>CXK_bXUFnU;m^H4^UlN8+hMJZ?%9 zgScy0poL>7qnUtW^oQR9{;s*La&qPrqbJw@!A}R2unQUtE@CC6Ej#SQT>vb}t8_cp z#6`YQ=|2|~^vAtZtL}!lnpRIs=$>)bIWDm+3nmdo_$4hW{s|2pU>w|UtD#OY{(V>b zc8oLM##Zu)))cDjV!ZVEfxjcn`*nGv>!0AH^2H+v?jX9#gpSMq8`;SwSrWPrZtqi zYLMcC+3o(inVtE4Yl5d`Xk;t2obbrhz|*ZYm*z2CLo~i=dOAu)3i#2`Hquv4Zfwp7 zE`8{OP;cY)2nv8a&@o+H#rx4dg!Us^2lQOPIK0Ek1RqB~t!YJ+p<}HjJH$sus!es{ zPxf>sNEU&U?Gml*)G9`aZjrq@TLn^SX-Z`406{a5ScAC+wybig5VUox-?Y&|p(DSm z#As(l#8m zSMlxHK5$x<0%OU}_lnaVdp+_KqxquW`3a;~EOfRLFN|6aAYg5oE~8OgKZW^KOE>$) zFw@Jc6KisNCem1olc*Zk#cK{PZobKyFTVUJdegFl+6e1{?gdof0M;;lS{h|PY7#7j zzJ4LpE=59lkAiQ{6=@FkB(J8a9T{hxYvVPm>(fc?>?N<^Ste8-(Z@OZ15STpNy?lw z=5$lzs;_YO2Q$)(>i8NQ$KMTXmmtare zW+#b|57LD~hk*Xr^hykZb(lfl=iR8?UU5yvdmUt<##;?#0nij7^#~7Xbp^;b4>3i%UOBS6-S(J!uf zg?umC%^}=VU}_DAns8xCC}rt>T!qkcY>`lX^HAWHcNg>kvPf?<)X3m9PTO}yb$brT)V5Fz|2 zxsW_7-7RCn->(OkF={iOhrPemNxyTMYQpoyJ#{tPD8i*T+W0a*vix zY7%~$j`{webq{YcM?4!xvc9jKC|_KFHmoob)G#N3yH{uW>_E!o;jOZR!W&}Mw|U)7 z6$YQC{8)3o<1Z?LJpf&QGWLX4+c0IK1h%(K+K$F}*y_cjwR4N~K!qkmR_MaN)YyQn zKs)^6{CFH`!n>4wpFJLB>FTQS_Y-vEWas92{Ot&}@3X~{DOTocrL}3~$qu?#UbavF z&SK-K4Cs4=x)8;I*O<{dp)w|fy>sJY9lk;yo23ldg-ke{IHN-fh?qvDtGrieA_o@Y zl56ldH@?lQ^a{Xhmmvvz*l4x4Sm9pH-2&h08pG>L$k3QLo0l~d|DdwUpLblNC2Qg0 z{=8U>SZOqpn!+foCGjZZtbc80uAuGg+nRuQ_J^`jwtbx{>l#C+5weA1+{0(mMz&mcQGG<4Zy<;Ef@Y{?L5_}4mA7GuPB znFn)OknQ{pcn5%R=>im=t2B z;9ald>!s$`lv+=tihIN5nW5FDt_CMjRmXlM>=Rz&ucRhu2iqv}Yb!z{L@m=>h2G}} zF_y39$!J$Mv(J4f&Wh^90#Y#zqaZfVIJidL`w?YW%-(IVRtTkeN~wi0FNh7G-76`Y zaCOZlembS1l0fUTq4x;VraK3#K{w967|v`u9$nxHVggIGk=8E1KuhHPlTuW9IFohR zR*RxPS_G3ubUc0f@Z#5tSqyL_!(DT#fmnyx=(;%7a(uI(nutcTsC2VQ_IL`r=B~ks z1GPm^{xko>jUz^@)_=@S)Ri6HMVn3}$RW)l zK=V$T>o5UwuO_MhD~nFrnh`YchH2f|L}$G36tYpg=PhwO@7!R`;%eJ9K}2MnI*TKqH^@^Tw8D6FKg6T_*%lp5{fl4PeSZn=^378m z)0Tv`d|mG$lQhC3mK-K#I$q9xIC903M(#<+=YKK?+43i~)sK?ej;#Di9t|}Vs+<}r z`MEab%lv`J*TnbWH-2PL4hwCYDSYhxFpLwUW(wpo-6Rn_d)&jkbK^oecK9yzul71X zgL9L4WOyvFEt3IfzV?D(Y{*MHKWpc8MxAzo|%@ za-`isg#4=~H|0=OfI6GQ=#N&Ok;-5>oXKu`8+54&T}_;e+;7_XF0qsB{mhrpHK4F` zz1ed;K})P=8V>itCxrcJ9po%}d38vr%RxYV(CZ$Jqphx`OdnXyWgubT9FbJC&hdZE zx452p_U+i!yBKT3*X4ceN$S2vk{lC2eQv^C-iqpMB2`H){(9xc>v09()m(B?MeziX z+@pSE%y4maQcc#)xiv0)#x>p>Mk123IMT|WXks~3<8b~lqZ=ua+=I)^#a^(hLoz+V zNO+0&Ba<{Bg(P41-t>RSfdFUA+7SEvVA`_;ex>Cl5iWem(A}n2^nx9KX2hp~FRTpw zyUQS_yGp0%k&h7W4r<)(t~3lTw<2cJ<=V~2irv)YCjj9>vTd^am>9xT^X`c?EWKJg zXQqtt0uzf&*H@G6d(%ml2pKL;ekH8++U7v=ifN`2k|{Y%gzTrJv0X!LdjA~49E&eSJ?WdC zPp`@8OgKW3<&uL^CcWCkgFKEcs(2Dfwy^<>2tZ=D?~UfyK%*;GGK6{%lujG>Kp`xb zk;CwUDY-whJ1n{hr9i!p)+ji?_;)q4>%6aChQCk>?o;rP@y0uT$c9a52TX?RuMfn% zLTw6%m@KAq4NakL-&3=Dkd(-H%TDF80ya1gr0aG6x%_hpe++_tmUs1&4%=d989VCp zr@V)%jF28iJ}8x*K$N9UZd!d~O3&iYdp}L6^)+4d#8K1CRBwxwN2@AEyXGj6Q4%6~ zQzaOj^n*Ff9*_slsF{26z85vzDAJ^in`p>?-Yly#tSBRM^FwosuLdFmwZ}7!MnMOj zpjW|Un}>M&y$Z@YdH8v=Ta$3xz;Lz3LX>=o>yDht(wdj{*Y@T%e#jLpoIUb zrzL*Rka)jMUR+Oh%L=i`DSVv4?}<2;US!=edNcad@{Wj{ZBNiT)Q`ntX#%JwzfVu- zaumOzDpA*p#CqPFLqLGoZqr+Y!HMJzFwBr=4SV&k6OHuOJ4-O}WH zUyqZ;3wbUp9h#<<4d86OvO{p*POw?)VH_UB1VroK!@!^PCTJVtN_jGB}Z(TgS!4dLG<}Oc$q#*8ZU#e z2Nr>ivmWQ|%zY?N((6JVtPbfORs5^;)2kD|f0pribfvHo{z?ZdkM^vCDL8Ixm;a)S>aR|QS_pKvVy_$@394_V!a>l=h=g$A-wo0p zSo{hRZR-ICisJr}&{7@Ppw?JXYvS_3J@sGH%#D8}C_-@E0eu?(>o`C|0`;^vUQ7MR zz9vRZBjN7$%xZX9#i_xo!(o3>a(gc(#l@jlUipO#MbaDX?lA2?dpJD(&=kem3E)6C zyOfg4K=&*N>Yc04XRi3>>pi2iwV{GJq%rderfo{7jyLYZ^UsE^gaV6t%g@*w)7Uw6 zC~yEgqeHW?aRb6eF_q0QF#6l1r@zmI-`JoTYSu>@Wk2I+CVA41eN*3s|L;R!;x;Wh z3)*uQ1lEv9T`MWe7(1;G*^@m{;Zfxx@{D6k9Q-*!vx$6W@X8gRueK*758b`tgeYv} zAu{sZa_M5(E@F{q&4k%T6bh(W3~O~_G`@(z_Zq&*yFJC2Pu|j&U5-miWqtbnPTj#0 zXu~b&DnvuL2P=FM;o2gm5(YlcQ9*SX2*>^-5x)Tkb&1s?Ol0|Xsh<3J-~v(ooQ%fAJB>}r zOz{q=*y%Jbfkj{2Y#0NJ|*mdm>LutQ2I^D8stt+P0{w3zM@eACcKM$R*}AJozqV?Ol= z!X(A_X8w`52QH5+De5d&j2Lg>&VpIff0zBpwDbv|OC-Jb{Z95eUyO59o*z9C_~?Rj z_pO~Ud5}*He`L}Z;7rZ#Tvv>4jP91=x_(@fVp%&;kEqz^&mV5utvyCDEOmWRBz20N zqxK-e{zV*by;IS*ccF^&Q1%SwlJ>*T{E&#R-OR%zv+)ZbCC09eEU^bU0ihv`_%`AQ zywcLd^9A$&*aO62Ec~iC?ko7T|K|b*|F7c^jlF>RA{;)jBa^CLq;E6>|y_Si~vh9B6u z*ygdYY+&p;f`AP#<}0mayEP`lnxBLW8Pt?`pYXFi;C{tH>s`L*|K6~~;anJ3tU7`H z4e1{6dCai*!!>hK<@H0oPst~q6z5tWxN{4f9qvuWg1#`U1Tgm!-l#LxNZu5;29D2C7#-yn6ltirie>e2R z7wez}lPKga_^x_WP%(Ces)rRD`-g|!H}F09EUPZWRW`SqQ|GtwSL5-MXYSvU7;xD< zLW#{3+u4abmcV49yY=y;v>ilwU%IK}v5OuJ*=^54TjKokc22F-_5f8NNPor;e3I_p z6MwBg%$VQ0Djxa#*rE!Ou5LzyL@hwB{kDYQf;;&3oj?m;Z^m3G*W1C=1d3;*5#9OY z5Bb}=Y$S)m*OKm)j$ky|)|wq;Y;vTOZTR+G`3c!bvdYCj`d=4Bra#U634#LmlQe)Y zl1oFN6g6?{yqKzNbyH6SnsZM^fGPyaizPmR1G2Us!==0jhs5$mo9hsfwvq-V(%n8- zk^>Q{hTR5FBve$#r*EmSbD_MSLL0(QkQ2Cn8vDtcI$d-M)bCRO1*nlaQeONT9K1>f zqs@IY@fT6!9BVI*+XT)}n#t^@_Kt{maaep32yXt}BLv~!_f&ch848SF0@oB=+;$Pv zHXR)2jwJ+b9YTV}67nDo^)?+Z&T&NKXz+Y80lmC5=rnFvcoIcH!YOc_M5 z`hn&#l8VxbsWr@&$831T3W?1qKq{0`)LyK7tFI%E5sE+yxzU;Y!>C^ewbOGEsTsd@ zpL%irLBKJS=D(&YUChrL-hRkPYckFEc>MBu;}yy<&gMzWZ0uaiguj3}6&n|sPHtXtdV3QSW=s` zd?=FA3zceDwm{6s#K?e2n_mT&Of)+IPZ*qsHq0hZuOzEW0Peh=PNohJI*m=j?lTZ8 zqd~F8(&x*W&Lg2hXkf8lh-`nl_V?Msz}HqgImW2FcQ$KZpJ+>&y{#K<=X$C%`B_8= zpWw+Dzm?Z;>lw0Xhl_c{v$CAZrejB2&dZz+v054G4}8`uv*X!?sxuFQFFek<;yAAD zLC}l}Ieo|8{^PrztbMo7pUivrZN8`bFVS1frE;c!W8s!H=0ckDVAK@qEPa_|Ed?iT z7?_C6;-T>RoYm`D*2?38g$*k=69#78HyVd`jw$m+$$iL8j>m==sr&g#yPgx}+vrTq z*D})f*Ly*m?mW|;-r};8L(>ZW@B0zETFXQ+pur! z1>h22pH|(Y+XItzHY~RO#<+ra8 zmAKut*T}=w`Teu1NWy2Vno;-Xz%P8c(gC_l_PP_oX~pcVOs&oxiBuiqiPzz~)KG@jU9j zwaK~2M+gq$aVV&3T*_kj=m(|t`&}^TetoRK9sPFXs}<-;)OXq@tnav!s_Wf5J+jb; zMJ71~TaGj4k8k)591{085r-K*Up_W+B2=@F+{|zf)4%C4;Cx~d{x$w@1ZiySy<{Ov zJff~O5~gL2`%Qd=fmHPE5)>43=_l&mf)??el7CXhF+S261=w=HtApdv*fL}`!Sz@W ztl#?BI4onr$G!lSA8Mz`qGD`tT(R8yFp4$iI{COW?&P)zzD8%m!Rueknb+-wO;e9&wshDh*Po(k118EW{$Wxtxh^L-S1}xXAQfZIhX*7s88Qtj(Y)L ziuv5oUhWpN{i!x}1Cua(OdmnSF3BDERZzhJHuy!Sm-9_iYVnyISV|VEEXBqtpL1cv z1o_jU-`(cI(QVyeAG5^K|L1qJ0R+3Yi8avp4zPhF49hl6`t+mc7M$=nL2Ch2ESlY$ zhTJ1B(H{r#egfET$}VbZ_#@@TXbY`q5Q!LzY+jV}Nb_k3hjiH#;zQQ!1d51y98Jx# zGvEJSxp*W&zDb#yA=I5_--aX;w{m$)87*uhS)l0(UpLj6|5D+C4{*n5-{kyp>~;Tz zXy1MU$4%kmn%W;&;#n%>`I{hFliLk{Up#GZ_}hm=CzK@a+e*x2bI;KB)Q+W^UXdXM zTzF^j?(uJr6@GivEwy*8`m1hCNR4j%fon@K_^$ZI;g40wxJEJJg&-QYWeDt=Xj?ij4*hm-iG>58Tc-d7hmdH3lMg|t3L(7lP`jRRwkuadrLh2S`vz$f`pnFC zv`JC@5V3V^Wi6$a!R&P&UhT>FbU9(93c;A)`Qu{4hU3SyIOp$(jbv^e||IIE8=>)oTBW za&zp=OSxM+pSRgM?)wmzd^4)o6-`7<+183XfA(Je9D-{|?ugfI7ZhoZCRib#sHwc) z{6`|K)y^;{oK2OPLW?;AG#gdELqQNPj&=)8=@5t7NTnyhBtksU{}*-d9oAI0^^0Of zL_kHl5ET%ms(?t1ihzKKf(n8V6_FBwR{?2(rP8D;2)u$2l_oXPl@{qDB2ptYBp^MI zP{M*F%RAlQ-uK(@yU#u6+~+*^kNZa+pWw<`W6m|_m}C6L7{4(%-dMGguG;NwOjFZT z`z#yTN$v7*KmPQfgw@Ta^T)!|GJaAXn14CN%-QjFm$i}T-JA3E`;L2m6Mc2(eOsfH z;Y9(p7xLbPax*&!u=re8VcA17ktIyrdRk5siuXD!-Ga!`W7DW+sx4YUkMq^oafz^%B8exp^WuVlndsc_!vWILb@Jx_lAkMO7m&(s^b&S~JkFIy3M zxi&|0aY=HCZlMdU2eLe)*#`8S%EuIRQg!~dJf>COfZf_d@)Xg%0iCG=tFjPt`*!3L zQNkQ?0Pd>OI%(t1*lK-ikpjB|8tWvl>jtRKyk)y{a9hUEbiztUXIm_SkJ)ZX{<%?- z2JrwkMN_AG)cZV#$M4t=Z;w94Q+CYIDoL+cR%=*Hs})P;N$OZT z?ATh1Ga}_ODpe8IQ5Iv2e&Jor4`Q(}|cV?Ek}mNT)(XV2AOcIU0cJj*RXC9lh*b zZW-*mv?cgMi&z-fmaWlTLytsPJpK$=zPOwhJS3yo@^b}jE&?9 zFqRISx;wr<-gi8X?d^$7uk7R5zgNG)Smsr_v8d+i=dr1G)RzWaI&BBHirnUD+nSK> z*-6k@9!}`(shRn}8E4n(IkdKyt<75f)SM+A9gmERAU5T*WByzZoIV>gfj_`Nup9isZyz_k{8WSUJx3E-81gj zk8Q!f<3e59?!VJ<9~VRV5!XX5?n|3aZED%SX?l#W@y(*?C9#WaLHb_0_-q0pybTu{=Fl z_mCesNKpba9KD{zwnNkrkhDd2KPCMe*L!lzs0E4y=Fwp_n_pZ<@k4)(GY2@utpu7W zOMjdWS5m>gyM}=^jsjH4RtqK8+2RrD^!sv5;lEPy(I6%Nrb~$H9y9kOn{PQ|EYPOug%R_q*W6I9o0xLEh^_RX zzL|ZUd3)8e(RwsgUrt_1A^#vE4UibL3UcwSHhO&j4e*2F$!v++V42n5Lp$un`>-s> zPo8RJ4^1_@AD{OntY*?%+2JdMjdk>fyv_P>4`L{aW+emC{|L!rLsJ{lqk!jPL;Aqm z$Rk|;s}CVP0~q<=!Rx7pX6_T-V5i;z#7^TE*L{Heb&uQg`_XR^n=O|fXXz1DdO?w| zIef$kUAad44$aab7l7uy%mHntFtfmq+CF>-sz0grH5zK3gMm1ib;5+D#^3(c{va~B z^8702J<(-22qlig{_}bi+}{H10LOf))r=G6vV9+lVgXn${s51@{F3$4VBfVzL9(C& zZHhON3v7KaPO+QXkOa+eiX}j)t*_`QR9111sm%dy3D@w*MJ1X;yd_^@nZ@vkY2}y7 ziZI)VfrF7om?eJuVifi<1$9t4@Y=De*p8b=>TF_IQd%F+>&QwjhT-hq0Hc>co%>VWZ>*$O zEykl!%Pl!fNw0bHfKlGu$&?WeEi<_?}vCTbH%ts)V^HaT|UdkYpB}9Guqb1^+n3ZWy55a!(3H}l~pBb6V5x!1(f$0jFk7k-gxEc ztqo3odkMy7S0z;FowD%8Ai>z73w3=pm$U4#_f5R>MZIWxO!7BkRKPh-emPnUR-yKn zjsaZVUK>~$N9hLSr|PJkzOfPkcdHnVqtB`U@>R2KTg&sqd29Yid4}mWX1R;QuC;W5 zq)DQ1kS2DeAX+s7l^{}DxG^vY7!Q1@cUWy z>P)ul?ua5Mx8-3I=^oP8bf@*Km&-CS%i4k+0eEYGvY~UKvCj}bh4odh{CBZ?BxrB{ z8-4W^d5Xr?Iy8!Zdr2v@Vg|wa%C+A2sWd%ANxq%7Aqx(bFgNwoYSSo4u+7owEgAN) zwL5$&gA~*JvgdA}S`)G7x%<`F?QdAvS%0H&ur~IQkCA`2ud zzzG)^D&ggB4i>~XGs1@c~@XNTvLJMW{S+(uU0hlp_U$&?sMZdU1u0p&OQNWzVmUuf0g zW!wtK34>djkv$BLr(S$2V@9!TyA0Uh%s_^5GSTmrhg&Y6$R~fRxK*p}0{4Te_S_}C zo#9?e2?8{t=z!g{yqivTwG^1%|D$2xh*Z>&`PI^>)+7YQ!6Qe>povtUx|_6dRlk>; zg8?1jZv@3M+U==}WltDt60~bdPByjO;;k3Dtc+f|cXVWCT#eMOzMIS@6I~3QIGIG} zO79;_An~?CG2)5NM;Z7z^}0+P_cMowcc$>k>7JNbV^oVk*wW|cauKwF3GW#0AFIcc z9`4LI{CQLS>9zy>lf-r>=JRv~!k|7gvg&coXXQFQw)4j)r+4htM>i1#+XNqdI>sMe zu!XBp=aK81Yp)jGSO~gyESa1rXV#{cZ;0$H%fk%x=2#3ZT?Bt3Dm?r+4$>#DzrJj+ zkL&LrtDkGMb`U3%Zb(PCLxOA;imbYL?AO+XXvBf&%$70L)eb1z40@Tv7T@xVORn&)Ht>>hZfN`?9iGl!1WJUm?f%PD ztAzw0x_@i4`BQQ3deo08igF@VjHV}nJI#n|S`_kaZ(!6r-z4FT#uPj@55j1Rj~|i- zO+Unjdr--Hjoc&)oA!L(D2Vgik6bydvapvJ3{u!WfdDl6<`aKF$BzrR0lZfbaXZic zG#M<87GH6is$`3SV?_=WTtfqyKjrcKBU$ zoW0zaSA~`|D_N`NbZ}Jl+}GXVw#?aGjbVXU2`=R%dd(JD2aHpS9X@_jX2?rFq{=?o zY71hc!BKmM3;=xdcO{Ytn59;Qt_{X)D~0|G_uoowFUX}T{0OO_Ex1x;5T|HT!1c^(B~3=>37C1Ir; zUFiU#QK0Uu9=yFoFnm)?Ud2C!Gi*iXAhH}=;U}iT9_su#g=`y!7+>`MBHaa;2hby+ocRGD+_fimlV%J5HO9-}Nmb;vHV_nBx1uHEm)F6Z zJ@!GdAH@B;u)4tr#0E1}0cI+PIS)+>0}d`|i2!DD_1ZtjcLY3S#Dg^fz;;|dv%Pbj z4JPkXbsVB;^cP8`fHRIpOaZ^~?|HIhJw&hYs<8JH*R8-rZsh-KfcyUSKI*Qr9H-cb zJv3(5`ipCS#$Tlbz%I}^vH*(!6P3%UMr~|MM))!8d@zrktN%T^|9h#(bN=!c|0?Kv z2&nOR(BpKJ*xiea#Bnx*_sOk-Tm`cjl=t5Ql=#>CAS4F;^*#Po)_+@auK(Y!IL-Zg zf^Edj*`Z#YtR2^(nG4>{zM7-vyJl3RYhu5fTpxKk5;s`1{raCt4v)4Q>u@QQcS92j z+0c)(V3Z~f1>&XHfRlvLL8+0WER!pFHly8XT1lhBbj$LMK_=0XZT`D|qAqa=g%+wB9 Bvzu?>7BHw)-B8|&RcD$&xYY+ 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%0A(CNAA&Q=8G^ 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

    ^#SU9Clg#4YfB{)>4u@# z-d<=h3CbUFk`-0PWzmpgw*I1;2grreAMzXlS&BJkud`E~Tt?}ojdKC(8%vdpz4eO2 zB;vsi-Do>8iP|SvLzfE5w_6oGs=>za3N%U5NhWi61Z!yinHd|G>0E-6poS+8S@fuJ zM#~)=G!b+n?ddrD@p`J03G;3lO}RW}ToNOppYP)I!_Yk_qhp*Xj4l5&CM*26of|BL zaCQF0#k<}CIh}<_G=}v&BerV4PhMZJI#X{;S+bQ0dv<@M>k_HBuaGh>5xd&+(;BU0 zi?UH=*=V8yLLTI!oPgwlVR;r0ADFtL{D3JJa~dNu!#vaOqQVqDWcAH?G{_ z1u0T3FJ-6>Db*nw9yc5BW#v<33?5l9bP=f^D(y_h`XMM{8;93B2nr}n*;MS+zato zVxSQ9k?pt8G;*xwGqvW(_~xBnu3`u}d+sOu2hz~AwohHxeXUS$q`r&eW6S~Z`y{K7 zVzU@z{&TPE$D{@bV~D8yyp)s<^KqNP+VD*I^bGSXtb$nGOs|UmkWOzg(8M7Zoklp< zmMMAbe(W4DzdwD!4n%>FHw~ARIELZ3zXDm$m|Nff+INBdmLAg)_M3r|!d|`|??s?@ zt~+@-dg5G5hARbBm8uf4gzMihNv2rBpVi;wYO6kX4>|QFcVZ3{y+z3tt|uj4k2-ID zOZKCb*+A#GY#8pVx=p&#w0s7sAF`ZW8d zKQNR;+jsYBLFHPkyvS--TU_Km7q~eamJ20P7|5z6u(hA#9$O(qQD8z-%tICkUJ^V8 zXDq@U0Ow}bvwtDy1whQNX_&n+3jcXyT>z?t#|BZ?GXET&QkeEB6n2UH4`95;O8|_A zm%s3O0()$T=Ufze2A`SxPXd?=0^o56fAOJ@;b!oE6L?6~XKIFYJUeOHZD&B8f4tpD zH#Y%S_jYtOaFj&lCI1QEs)CN#ZOKqKfBd(XzuaBnm1oB*g5m@Iw7e0MGTL5L-WUAQ z=Ou?<-YFy_X#U=%5faMi^cR3o~v zelEA+2U_1}KdsTL(q3Tv;>#UKF%yNkYh}oQ(=)0o_QW@t=ML%T0NanCju2f)9GP~J zxjRBFHOTebnv?0FD8)O$tBt~Tw{ju2Z>s<_)f zycM{q`gz~RmU%-A%D#+wmzc#qWW^Ked0Q` zkR*9cScFQlNmj~78;@XBiuN9nxc2q@a@-7VFVx}qRf71JJW~(P=#f(RTZ`IY-FN!Y z<)9$3#xIbxGq%^#{DrG>8M(WFj*xPh*E{hEWvaz8MHfzK4G+(}P)Rh^8j%Pb{afe- zwVW*Wtt=lA?&umdju&G;wINYTt3@SpO}e52%^Op-n>rW9v^$K{9oA4Nihv8-&Uj$$ zxiZNKCFq9{o-g;R@=aK6!FVo(jJ#0N400K@E_313?wH%>K|UO8+x;jdzhhq=q*%<< zCR4JIt|!6dsWr4pYIr!zeuUchVg6f3fVceXM5@+(yZRCHQu{;bX}PjAi`OglxLxb5 zcl$6k7a67YDUIc4vBD@$jCQ@f_%DKSKZcNe>sjXrFPF4Qz-{;P;ui7y%e{s$IKYGx7 ztL8(+$WioAd>*kOu^MofKfrpc&6O?bbzSO5uW>N@n|1E#u*ABw%dBkkdZ_(=2w}*& zO8L-W^Y~gvY%1e5?65{m)*MagJQXH3;G_ukoV zo~KKr$%<|D)&W6I{ljP*S%T^MZf*zr$-afC)V*6H$`Gt?iB8 zboPz8>@#2_MXnd3412N|nDE8r+swPEAv?2j=?H$0k3WD;km-4+E?$17KC2ZiJVL*9 z_`#pWTXH}2c9omnK;Y`d1SGD^C(D<6Wqy;X=;>|jl^Y;s%y*nG@Z+bOJQf+qy%l^* zqHn}`PZBM8&BG~Au4I|nw zS$VM{FzI=L>aAW<3M%C46^-Ohe1=PFNIufS=+1c=UNYA|`zl?Q1P&-Wr|QpCN6kK8 z!okZFx=q5ll%}=-#*RYZK-`P%0fseK_BN7T+6k>g~6G&9GB?a4Wr%B&f>mFqU z5�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 literal 0 HcmV?d00001 From f953a8f2b06345e68d5957d7be4506b27e075883 Mon Sep 17 00:00:00 2001 From: Veronica Bernardino <60678832+verobega@users.noreply.github.com> Date: Wed, 6 May 2020 11:32:19 -0500 Subject: [PATCH 60/66] Update Readme.md --- Readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Readme.md b/Readme.md index c3706160..7d6338b0 100644 --- a/Readme.md +++ b/Readme.md @@ -14,7 +14,7 @@ Nombre de la aplicación: **Code Dev** Diseño inicial - + Diseño final From e3ce50e4e4a6f9c5d477be3f6f46082707e7f3cd Mon Sep 17 00:00:00 2001 From: Veronica Bernardino <60678832+verobega@users.noreply.github.com> Date: Thu, 7 May 2020 09:19:37 -0500 Subject: [PATCH 61/66] Update Readme.md --- Readme.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Readme.md b/Readme.md index 7d6338b0..249a5559 100644 --- a/Readme.md +++ b/Readme.md @@ -51,11 +51,15 @@ Tecnologías y características de la aplicación Objetivos de aprendizaje -- [x] HTML y CSS +HTML y CSS + + - [x] HTML semántico - [x] CSS flexbox - [x] Construir tu aplicación respetando el diseño realizado (maquetación). -- [x] DOM y Web APIs + + DOM y Web APIs + - [x] Manipulación dinámica del DOM - [x] History API - [x] [Localstorage] @@ -78,7 +82,10 @@ Objetivos de aprendizaje - [ ] Testeo de tus funciones - [ ] Testeo asíncrono - [ ] Mocking -- [x] Colaboración en Github + + Colaboración en Github + + - [x] Branches - [x] Pull Requests - [ ] Tags From 565152b1853bb5e8f2542aa127adc5b5e3c63116 Mon Sep 17 00:00:00 2001 From: Dianyela Maldonado Date: Thu, 7 May 2020 12:59:54 -0500 Subject: [PATCH 62/66] changes about test --- test/example.spec.js | 13 ++++++------- test/test.spect.js | 22 ++++++++++++++++++++++ 2 files changed, 28 insertions(+), 7 deletions(-) create mode 100644 test/test.spect.js diff --git a/test/example.spec.js b/test/example.spec.js index 45941c1f..6b07d431 100644 --- a/test/example.spec.js +++ b/test/example.spec.js @@ -6,11 +6,10 @@ describe('example', () => { }); }); */ -import * as auth from '.auth.js' - -global.firebase { - auth: jest.fn(() => ({ - signInWithEmailAndPassword - })) -} +// import * as auth from '.auth.js' +// global.firebase { +// auth: jest.fn(() => ({ +// signInWithEmailAndPassword +// })) +// } \ No newline at end of file diff --git a/test/test.spect.js b/test/test.spect.js new file mode 100644 index 00000000..d7ca6eaf --- /dev/null +++ b/test/test.spect.js @@ -0,0 +1,22 @@ +import * as firebase from '../src/digitalplatform/firebase'; +import 'firebase/auth'; +import { loginPageOne } from '../src/functions/loginpageone.js' + +describe('loginPageOne', () => { + it('should be a object', () => { + expect(typeof loginPageOne).toBe('object'); + }); +}); +describe('loginPageOne.signUp', () => { + it('should be a function', () => { + expect(typeof loginPageOne.signUp).toBe('function'); + }); +}); +describe('loginPageOne.signUp', () => { + it('should sign up an account successfully', () => { + firebase.auth().onAuthStateChanged(function(user) { + expect(typeof user).toBe('object'); + }); + loginPageOne.signUp("beto@codev.com", "betocodev", firebase) + }); +}); \ No newline at end of file From 3aedb9abd0ecf58f7ab126cebec04b6559819087 Mon Sep 17 00:00:00 2001 From: Dianyela Maldonado Date: Wed, 29 Jul 2020 17:50:54 -0500 Subject: [PATCH 63/66] add changes in styles of comments of forum page --- src/style.css | 20 ++++++++++++++++---- src/view/coment.js | 2 +- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/style.css b/src/style.css index 63442a6d..5d9b0292 100644 --- a/src/style.css +++ b/src/style.css @@ -346,7 +346,6 @@ i.material-icons.left.like { .chip.boxStyle { background: #b87df75c; - width: 50%; color: #6a1b9a; padding-left: 10px; margin-left: 20px; @@ -620,6 +619,13 @@ div#showComment { text-align: center; } +.public-wrapper{ + border: 1px solid #662483; + margin: 2%; + box-shadow: 0 10px 16px -5px rgba(0, 0, 0, 0.65); + border-radius: 6px; + margin-bottom: 15px; +} .informationBox { display: flex; align-items: center; @@ -653,8 +659,14 @@ div#showComment { justify-content: center; } -ul.editDelete { +/* ul.editDelete { margin: 0 10px; +} */ + +ul.editDelete { + display: flex; + flex-direction: column; + margin: 0; } .chip.boxStyle { @@ -669,12 +681,12 @@ label.waves-effect.waves-light.btn-small { max-width: 50px; } -.fixed-action-btn.direction-right ul, +/* .fixed-action-btn.direction-right ul, .publicationedit, .fixed-action-btn.direction-right ul, .publicationedit { text-align: left; -} +} */ /* ********* Medias Querys *********** */ diff --git a/src/view/coment.js b/src/view/coment.js index 55ef5efb..8e992293 100644 --- a/src/view/coment.js +++ b/src/view/coment.js @@ -1,6 +1,6 @@ function buildComent(imageUser, nameUser, img, text, id) { return ` -

    +
    Contact Person From e7d8396c0b00bdc457f96d0b9297a9b421c30b35 Mon Sep 17 00:00:00 2001 From: Dianyela Maldonado <54160738+DianyelaMaldonado@users.noreply.github.com> Date: Thu, 30 Jul 2020 03:00:23 -0500 Subject: [PATCH 64/66] Update Readme.md --- Readme.md | 56 ------------------------------------------------------- 1 file changed, 56 deletions(-) diff --git a/Readme.md b/Readme.md index 249a5559..d3a9353f 100644 --- a/Readme.md +++ b/Readme.md @@ -46,59 +46,3 @@ Tecnologías y características de la aplicación - SPA - MVC - Responsive Desing - - -Objetivos de aprendizaje - - -HTML y CSS - - -- [x] HTML semántico -- [x] CSS flexbox -- [x] Construir tu aplicación respetando el diseño realizado (maquetación). - - DOM y Web APIs - -- [x] Manipulación dinámica del DOM -- [x] History API -- [x] [Localstorage] - - Javascript - -- [x] Uso de callbacks -- [x] Consumo de Promesas -- [x] Uso ES modules (import | export) - - Firebase - -- [x] Firestore -- [x] Firebase Auth -- [x] Firebase security rules -- [x] Uso de onSnapshot | onAuthStateChanged - - Testing - -- [ ] Testeo de tus funciones -- [ ] Testeo asíncrono -- [ ] Mocking - - Colaboración en Github - - -- [x] Branches -- [x] Pull Requests -- [ ] Tags - - Organización en Github - - - [ ] Projects - - [ ] Issues - - [ ] Labels - - [ ] Milestones - - Buenas prácticas de desarrollo - -- [x] Modularización -- [x] Nomenclatura / Semántica -- [x] Linting From 7808ab73d177870db23b7dfb3634ade4342c39dd Mon Sep 17 00:00:00 2001 From: Dianyela Maldonado Date: Thu, 17 Sep 2020 12:08:49 -0500 Subject: [PATCH 65/66] add changes in styles responsive --- src/functions/publicpoust.js | 13 ++++----- src/index.html | 36 +++++++++++++++---------- src/style.css | 52 +++++++++++++++++++++++++++++++++--- src/view/coment.js | 4 ++- 4 files changed, 81 insertions(+), 24 deletions(-) diff --git a/src/functions/publicpoust.js b/src/functions/publicpoust.js index de0986ec..ebb69e86 100644 --- a/src/functions/publicpoust.js +++ b/src/functions/publicpoust.js @@ -12,6 +12,7 @@ function publicPost(user) { imageUrl = link; let img = document.createElement('img'); img.src = imageUrl; + document.getElementById("showComment").appendChild(img); document.body.appendChild(img); document.getElementById("showComment").appendChild(img); }); @@ -19,8 +20,8 @@ function publicPost(user) { let publicPost = document.getElementById('publish'); - publicPost.onclick = function() { - let text = document.getElementById('userCommit'); + publicPost.onclick = function () { + let text = document.getElementById('userCommit'); console.log(user); let post = { texto: text.value, @@ -30,19 +31,19 @@ function publicPost(user) { user: (user.hasOwnProperty('displayName') && user.displayName != null) ? user.displayName : emailCortado, date: new Date(), - img: imageUrl, + img: imageUrl, mail: user.email, photo: user.photoURL, uid: user.uid, } addNewPost(post) - .then(function(post) { + .then(function (post) { alert('Post publicado'); }) - .then(function() { + .then(function () { text.value = ""; }) - .then(function() { + .then(function () { imageUrl = ""; }) .catch(err => { diff --git a/src/index.html b/src/index.html index d8c3e6fd..87c76ca1 100644 --- a/src/index.html +++ b/src/index.html @@ -7,29 +7,36 @@ - + CodeDev - + @@ -51,4 +58,5 @@ + \ No newline at end of file diff --git a/src/style.css b/src/style.css index 5d9b0292..4c130c39 100644 --- a/src/style.css +++ b/src/style.css @@ -168,9 +168,9 @@ ol { @import url('https://fonts.googleapis.com/css?family=Zhi+Mang+Xing&display=swap'); body { - width: 78%; + width: 100%; font-family: 'Montserrat', sans-serif; - margin: 0 auto; + /* margin: 0 auto; */ } * { @@ -350,6 +350,7 @@ i.material-icons.left.like { padding-left: 10px; margin-left: 20px; display: flex; + width: fit-content; } ul#mobile-demo { @@ -726,7 +727,7 @@ label.waves-effect.waves-light.btn-small { } .chip.boxStyle { - width: 30%; + width: fit-content; } .sidenav-trigger { @@ -744,6 +745,32 @@ label.waves-effect.waves-light.btn-small { div#showComment { text-align: center; } + + .postWrapper { + display: flex; + flex-direction: column; + align-items: center; + } + + p.coments { + padding-top: 10px; + font-size: 1em; + padding-bottom: 10px; + } + + .public-wrapper { + border: 1px solid #662483; + margin: 2%; + box-shadow: 0 10px 16px -5px rgba(0, 0, 0, 0.65); + border-radius: 6px; + margin-bottom: 15px; + max-width: 50%; + margin: 0 auto; + margin-bottom: 2%; +} + + + } @media only screen and (max-width: 640px) { @@ -764,4 +791,23 @@ label.waves-effect.waves-light.btn-small { margin: 30px; border-radius: 8px; } + + .public-wrapper { + border: 1px solid #662483; + margin: 2%; + box-shadow: 0 10px 16px -5px rgba(0, 0, 0, 0.65); + border-radius: 6px; + margin-bottom: 15px; + width: 92%; + margin: 0 auto; + margin-bottom: 3%; + display: flex; + justify-content: center; + flex-direction: column; + } + + p.coments { + padding-top: 10px; + font-size: 0.8em; + } } \ No newline at end of file diff --git a/src/view/coment.js b/src/view/coment.js index 8e992293..fb768e41 100644 --- a/src/view/coment.js +++ b/src/view/coment.js @@ -28,8 +28,10 @@ function buildComent(imageUser, nameUser, img, text, id) {
    - +

    ${text}

    + +
    From 7540bba9725b7fad21f51996ebc2ab9f298ee035 Mon Sep 17 00:00:00 2001 From: Dianyela Maldonado Date: Thu, 17 Sep 2020 12:19:09 -0500 Subject: [PATCH 66/66] add changes in some styles --- src/style.css | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/style.css b/src/style.css index 4c130c39..1d798f87 100644 --- a/src/style.css +++ b/src/style.css @@ -298,13 +298,13 @@ button.waves-effect.waves-light.btn-small.btn-enter { opacity: 0.9; } -p.coments { +/* p.coments { padding-top: 10px; font-size: 0.8em; padding-bottom: 10px; padding-left: 10px; margin-left: 10px; -} +} */ a.waves-effect.waves-light.btn-small { width: 35px; @@ -756,6 +756,8 @@ label.waves-effect.waves-light.btn-small { padding-top: 10px; font-size: 1em; padding-bottom: 10px; + text-align: left; + margin-left: 22px; } .public-wrapper {