Idées pour interface pour une table

Bonjour à tous.
Dans le plugin livebox j’ai ajouté une table (livebox_calls) pour me permettre d’aller chercher sur Pages Jaunes le nom de l’appelant et le stocker.
Ça marche bien (voir la branche beta sur mon Github https://github.com/jmvedrine/plugin-livebox/tree/beta ) mais j’ai prévu dès le début qu’on puisse ajouter des records à cette table manuellement pour indiquer le nom correspondant à un numéro de tel (par exemple pour ses proches qui sont en liste rouge) pour cela il y a un champ booléen (favorite) et quand je cherche un numéro je privilégie les favoris par un SET ORDER.
Durant le développement j’insérai les favoris « à la main » par un ordre SQL, mais bien sûr je ne peux pas laisser çà comme çà, il faut une interface utilisateur pour ajouter, modifier, supprimer les favoris.
Ma première interrogation c’est où mettre cette interface ? Faire un onglet dans la page équipement ne semble pas logique car c’est relatif au plugin pas à l’eqLogic. Dans la configuration du plugin ? Dans un panel (suivi conso fait çà pour ses tables mais çà ne me semble pas idéal)
Ensuite je cherche des exemples de choses similaires dans le code du core où des plugins pour avoir une homogénéité des interfaces utilisateurs et aussi pour m’aider pour le codage.
Merci de votre aide.
jean-Michel

Bon j’essaie de toujours appliquer le proverbe « Aide-toi le ciel t’aidera » donc j’ai pris l’option de mettre çà dans la page de configuration du plugin et de commencer le code


Sur la copie d’écran ci-dessus il y a 3 favoris que j’ai floutés pour ne pas mettre de noms ni de numéros de tel sur le forum car ce sont des vrais que j’utilise pour tester.
Le javascript pour remplir mon tableau est OK (il appelle une méthode ajax dans mon core/ajax/livebox.ajax.php qui elle même appelle une méthode statique de ma classe livebox_calls
Les boutons pour ajouter une ligne vide et supprimer une ligne existante dans le tableau sont OK aussi mais çà c’était facile.
Il me reste à enregistrer le résultat dans ma table livebox_calls de la BD quand on clique sur Sauvegarder et là je suis un peu dans le flou

  • J’ai bien trouvé un exemple de code un peu similaire dans le plugin Deconz mais il sauvegarde le contenu du tableau (les gateways) dans la configuration du plugin et moi ce n’est pas ce que je veux faire, en effet je ne souhaite pas mettre les favoris dans la configuration du plugin, car en plus des favoris il y a aussi les noms des appelants que je récupère sur pages jaunes quand ils appellent donc c’est beaucoup plus logique d’avoir une table unique de tous les correspondants (favoris ou non) avec un champ pour savoir si c’est un favori ou pas ou car çà simplifie beaucoup le recherche du nom pour chaque numéro (la partie recherche du nom fonctionne déjà).
    Donc en bref je dois quand l’utilisateur clique sur Sauvegarder
  • pouvoir récupérer le contenu du tableau dans la page
  • pour chaque ligne de ce tableau créer une nouvelle instance de ma classe livebox_calls et faire save() (par le biais de fonction ajax ‹ saveFavorite › qui n’a pas été testéedonc peut être à modifier)
  • supprimer de la base les favoris qui ont été supprimés
    Et je n’arrive à rien.
    Peut-être que je m’y suis mal pris et que mon idée de départ d’une table livebox_calls dans la BD et d’une classe associée livebox_calls n’était pas la meilleure ?
    L’état actuel de mon code est dans GitHub - jmvedrine/plugin-livebox at beta

En fait je crois que j’ai une solution tordue:

  • sauver mes favoris dans la configuration du plugin à la manière de Deconz
  • appeler une fonction ajax qui appellera une fonction de ma classe eqLogic qui fera le boulot (en fait je pense que le plus simple est de supprimer tous les favoris de la table livebox_calls et de créer les favoris sauvegardés dans la configuration du plugin)

EDIT çà marche donc problème résolu

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.