GoOz / wfrp-sheet

Online character sheet for Warhammer Fantasy Role Play TTRPG
https://gooz.github.io/wfrp-sheet/
GNU Affero General Public License v3.0
11 stars 2 forks source link

Feature request : gestion de plusieurs persos sur un même device #14

Open rdugau opened 1 year ago

rdugau commented 1 year ago

Grosse feature ;-) L'idée est de pouvoir gérer plusieurs perso sur un même device

Cette fonctionnalité peut être utile pour le PJ pour gérer plusieurs persos mais aussi pour le MJ afin de pouvoir voir tous les persos de sa partie en cours.

(perso je verrais bien un système d'onglet ou de burger menu pour basculer d'un perso à l'autre)

PS : Comment fait-on pour tagger directement une issue "Feature request" ?

GoOz commented 1 year ago

Ouais alors peut-être mais pas tout de suite. C'est un brin compliqué. Soit je change de DB en passant de localStorage à genre IndexedDB qui offrirait ce genre de souplesse ou bien je garde localStorage mais je préfixe toutes les données de perso supplémentaire. Ce qui fonctionnerait sûrement mais serait un peu plus chaotique. Dans les deux cas y aurait un gros travail que je suis pas prêt à faire pour le moment.

Je garde malgré tout le ticket pour le futur. ;)

PS : Comment fait-on pour tagger directement une issue "Feature request" ?

C'est moi qui fait.

rdugau commented 1 year ago

Tkt je savais que c'était une grosse feature. Mais tu peux être sûr que ca va intéresser Seb

Quand tu dis "préfixer" le localStorage, y a pas une notion de folder ? Tu gardes les mêmes noms de variables, avec un folder par pj. Les variables ne sont plus "liées" directement au localstorage mais à une table. Quand tu switches de pj, tu sauves la table en cours dans le folder du pj en cours. Et tu charges depuis le LS la table du pj sélectionné depuis le folder du PJ sélectionné.

Putain, c'est super mal expliqué. En bref Un PJ=un folder=une table de param

En C/python ça se fait bien ce truc, en jscript je ne sais pas

GoOz commented 1 year ago

LocalStorage = juste une liste de clé/valeur par domaine (d'où l'idée de préfixer les clés pour savoir à quel perso les données appartiennent); IndexedDB = on peut créer une DB (en clé/valeur aussi) mais surtout on peut créer plusieurs DB sur un même domaine ce qui serait en effect pratique pour le cas de multiple perso.

Le truc c'est que IndexdeDB est un peu plus compliqué à utiliser et instancier que LocalStorage qui lui ne nécessite rien de base.