strawberry-code / IFTTT-PoliTo

The portal of Polito IFTTT project by PRPC team. Visit our website at
https://cristiano-c.github.io
1 stars 1 forks source link

Gestire la disconnessione da google/twitter #40

Closed simonaPr closed 8 years ago

simonaPr commented 8 years ago

Quando si disconnette occorre invalidare tutte le ricette dell'utente relative a google/twitter. Ad esempio:

simonaPr commented 8 years ago

Aggiungere anche un pulsante di connessione a google/twitter sulla home dell'utente connesso a ifttt polito..così se l'utente vuole riconnettersi a google (e quindi validare di nuovo le sue ricette google precedentemente create), possa farlo senza dover far finta di voler creare una nuova ricetta

strawberry-code commented 8 years ago

Va bene, provo a mettere il pulsando di connessione sulla home. 👍

simonaPr commented 8 years ago

ottimo grazie..io adesso faccio un commit su server con le modifiche che ho fatto

strawberry-code commented 8 years ago

Va bene, appena il button mi sembra pronto, proveremo a unire client e server.

simonaPr commented 8 years ago

ottimo..perchè ci sono alcune cose che non mi funzionano più

simonaPr commented 8 years ago

io ho fatto il sync...quando sei pronto possiamo pocedere ad unire tutto (perchè credo che a me manchino le vostre modifiche di ieri sera)

strawberry-code commented 8 years ago

credo di aver quasi finito, ho riscritto buona parte del routing di AngularJS, lo sto testando, se funziona lo lascio testare anche a voi, poi vi dico che cosa ho fatto

strawberry-code commented 8 years ago

Dovrebbe essere finito adesso. Faccio il commit sul client e lo testate, se è tutto ok, uniamo tutto. 🍀

strawberry-code commented 8 years ago

Per non creare problemi, ho creato una branch apposta, dovete spostarvi sulla connect-buttons-in-the-home, testare tutto, se va bene allora metto questo nel client e poi aggiorniamo tutte le branches :wink:

Cosa testare? 1 - Posizionarsi sulla connect-buttons-in-the-home, 2 - Testare che i login a Twitter e Google funzionino, 3 - Soprattutto verificare che gli altri bottoni o links che richiedono ng-click="routeListener(...)" funzionino ancora come prima.

simonaPr commented 8 years ago

Sembra funzionare (per google, non per twitter)..l'unica cosa è il solito indirizzo di ritorno (vorrei che ritornasse non sulla home generale, ma sulla home dell'utente connesso a ifttt polito)

strawberry-code commented 8 years ago

Si, quello è un problema relativo a quel meccanismo di flag e contatori di routing. Come ora, quando ti loggi, al server viene sempre inviata la url corretta su cui riposizionarsi, infatti ho aggiunto:

$location.url()

che ritorna la url della vista corrente, è stato sufficiente passarlo come parametro nell'AJAX.

Se però il button di login funziona come chiedevi tu, a parte il problema della pagina di ritorno (in effetti torna davvero sulla pagina giusta, ma è questo famoso meccanismo che ricarica la pagina sulla home), dopotutto ci si accorge che ritorna sulla pagina giusta per qualche millesimo di secondo e poi compare la home.

Se il bottone funziona, spuntiamolo, il problema della pagina di ritorno è un issue diverso.

simonaPr commented 8 years ago

ok ottimo... però non possiamo chiudere questo issue, perchè mancano ancora delle cose (sia sul server che sul client) per concluderlo

simonaPr commented 8 years ago

ok..dovrebbe funzionare anche twitter.. anche se manca il tooltip che dica "click to connect" o qualcosa del genere (come c'è per google)

simonaPr commented 8 years ago

no niente..adesso c'è. EDIT: Mmm..in realtà se mi sconnetto da twitter e provo subito a riconnettermi, quel tooltip non compare (idem per google)

simonaPr commented 8 years ago

qui rimane solo un punto..occorre semplicemente fare un controllo sul client sul campo "valid": se valid=true: ok, tutto com'è adesso se valid=false: non si deve dare la possibilità all'utente di modificarla, ecc perchè non è connesso a google (infatti anche lato server ho messo un controllo e il thread che gira in background non le considera, ovvero non fa nulla su quelle ricette che non sono valide)

strawberry-code commented 8 years ago

Ho risolto questo problema! ✅

strawberry-code commented 8 years ago

Potremmo aggiornare le branches a questo punto, tuttavia non è necessario.

strawberry-code commented 8 years ago

A che punto siamo qui?

simonaPr commented 8 years ago

qui manca solo più quel punto sul client

simonaPr commented 8 years ago

occorre fare in modo che l'utente veda tutte le ricetta, ma possa modificare solo quelle valide; per valide si intende: se un utente ha delle ricette con google, e poi decide di sconnettersi da google, quelle ricette non vengono eliminate dal db, ma si setta il loro stato ad invalid... Sul server ho già implementato tutto, basta fare un controllo sul client sul campo "valid"

strawberry-code commented 8 years ago

Ah bene! Allora proviamo a farlo domani

strawberry-code commented 8 years ago

CLIENT: è meglio mostrare tutte le ricette all'utente, ma rendere non modificabili quelle "non valide" (controllo valid lato client), così l'utente vede che ci sono e quando si riconnette diventano valide e modificabili

Sto provando a risolvere questo, sto cercando il campo valid, non credo che ci sia quando scarichiamo le ricette, puoi controllare qui sotto, ho copiato una ricetta scaricata in myRecipes.html:

{
    "id": 1,
    "description": "trigger 2",
    "trigger": {
        "wtid": 1,
        "ingredientCode": 17,
        "tempo": null,
        "ora": null,
        "location": 3182803,
        "locationName": "Arquata Scrivia",
        "thmin": null,
        "thmax": 0,
        "sunrise": null,
        "sunset": null,
        "type": 4,
        "lastCheck": null,
        "timezone": null,
        "period": -1,
        "triggerType": "weather"
    },
    "action": {
        "caid": 1,
        "ingredientCode": 21,
        "startDate": null,
        "duration": 3600000,
        "title": null,
        "description": null,
        "location": null,
        "timezone": null,
        "actionType": "calendar"
    },
    "publish": false
}
simonaPr commented 8 years ago

mmm..è molto strano io nel db ce l'ho..adesso controllo, nel frattempo potresti verificare se nella tabella "recipes" hai un campo "valid"?

simonaPr commented 8 years ago

ah..forse mi è venuto in mente..

strawberry-code commented 8 years ago

CLIENT: è meglio mostrare tutte le ricette all'utente, ma rendere non modificabili quelle "non valide" (controllo valid lato client), così l'utente vede che ci sono e quando si riconnette diventano valide e modificabili

È praticamente finito, funziona tutto! Devo fare solo in modo di aggiornare la pagina quando ci si disconnette da Google se no il tasto modify non cambia ed è fatta! Bel lavoro!

strawberry-code commented 8 years ago

Finitoooo!!! 🎉