Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

front: meilleur UX pour supprimer ses bins #147

Open
Mesteery opened this issue Jun 2, 2021 · 7 comments · May be fixed by #157
Open

front: meilleur UX pour supprimer ses bins #147

Mesteery opened this issue Jun 2, 2021 · 7 comments · May be fixed by #157
Labels
frontend Issues and PRs related to the frontend help wanted Extra attention is needed suggestion Suggestion de fonctionnalité ou d'amélioration

Comments

@Mesteery
Copy link
Collaborator

Mesteery commented Jun 2, 2021

Vu la complexité énorme de cette PR. Je vais enlever l'enregistrement du token dans le localStorage. On discutera de ça dans une issue.
Alors, l'utilisateur devrait spécifier manuellement le token.

Originally posted by @Mesteery in #116 (comment)


Actuellement la suppression d'un bin via l'interface est vraiment pas pratique, l'UX est mauvaise étant donné que nous devons manuellement spécifier le token dans l'url via ?token=....
Il faudrait trouver un moyen permettant d’enregistrer ce token quelque part (dans le navigateur bien sûr). En outre, il faudrait un "hook" qui enregistre le token d'un bin après sa soumission.
Iil y a déjà quelques essaies et brouillons, qui toutefois fonctionnent, mais qui sont bugés en quelque sorte (cf. #116).

D'ailleurs, une idée proposé par @fusetim est d'utiliser un service worker. Malheureusement, ce n'est pas possible (le localStorage n'est pas accessible dans un SW).

Un bonus serait de supprimer le token automatiquement une fois le bin expiré.

@Mesteery Mesteery added help wanted Extra attention is needed suggestion Suggestion de fonctionnalité ou d'amélioration labels Jun 2, 2021
@Mesteery Mesteery changed the title front: meilleur UX pour supprimer des bins front: meilleur UX pour supprimer ses bins Jun 2, 2021
@fusetim
Copy link
Member

fusetim commented Jun 2, 2021

Il n'est pas forcément nécessaire d'avoir le localStorage depuis les SW pour le faire, il serait possible de manipuler le cache pour les y sauvegarder dedans (Cache.put()).
Je ne sais pas si c'est particulièrement idiomatique mais ça pourrait fonctionner.

@Mesteery
Copy link
Collaborator Author

Mesteery commented Jun 2, 2021

C'est pas du tout adapté à ce genre d'usage. Quoi que, ça m'a pas l'air déconnant.

@fusetim
Copy link
Member

fusetim commented Jun 2, 2021

Bon après un peu de recherche, c'est IndexedDB qui est préféré pour cette usage mais c'est aussi plus compliqué à utiliser.

@Mesteery
Copy link
Collaborator Author

Mesteery commented Jun 2, 2021

Oui, par contre, personnellement, je trouve IDB un peu overkill pour cet usage.

@fusetim
Copy link
Member

fusetim commented Jun 2, 2021

Pour moi aussi mais théoriquement c'est là où il faudrait les sauvegarder, mais dans notre cas, utiliser l'interface Cache me semble pas être une aberration.

@Mesteery
Copy link
Collaborator Author

Mesteery commented Jun 2, 2021

Comme tu veux, pour moi ça m'est égal.

@Julien00859
Copy link
Member

Sinon, on big cookie boi mais essayons avec le cache dans un premier temps, on n'y avait pas pensé à l'époque où on a designer la suppression

@Mesteery Mesteery added the frontend Issues and PRs related to the frontend label Nov 27, 2021
Mesteery added a commit to Mesteery/bin-server that referenced this issue Nov 27, 2021
The bin deletion via the interface was completly impratical.

From now on, the token storage is done automatically.
Indeed, a Service Worker is registered to intercept in particular
the request of the form and the request of the final page (redirection).
This allows to associate the token with the bin ID, which is not known
in advance.

In the background, the IndexedDB database is used via the `localforage`
abstraction, which allows to easily store key-value in the same way as
the `localStorage` (which is not available in a Service Worker).

This feature is only available for the clients with JavaScript enabled.

Closes: readthedocs-fr#147.
@Mesteery Mesteery linked a pull request Nov 27, 2021 that will close this issue
Mesteery added a commit to Mesteery/bin-server that referenced this issue Sep 11, 2022
The bin deletion via the interface was completly impratical.

From now on, the token storage is done automatically.
Indeed, a Service Worker is registered to intercept in particular
the request of the form and the request of the final page (redirection).
This allows to associate the token with the bin ID, which is not known
in advance.

In the background, the IndexedDB database is used via the `localforage`
abstraction, which allows to easily store key-value in the same way as
the `localStorage` (which is not available in a Service Worker).

This feature is only available for the clients with JavaScript enabled.

Closes: readthedocs-fr#147.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
frontend Issues and PRs related to the frontend help wanted Extra attention is needed suggestion Suggestion de fonctionnalité ou d'amélioration
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants