Projet

Général

Profil

Evolution #21047

Gestion des catégories dans App Manager

Ajouté par Renaud Dussol il y a presque 7 ans. Mis à jour il y a plus de 5 ans.

Statut:
Fermé
Priorité:
Haut
Assigné à:
Version cible:
Début:
12/07/2017
Echéance:
% réalisé:

100%

Distribution:

Description

Réaliser une interface de gestion des catégories à l'image de la gestion des apps et urls

Template edit/add nécessaires, Entity et controller sans doute, ou voir si on peut utiliser l'existant


Demandes liées

Duplique eole-dispatcher - Evolution #20999: Ajouter enregistrement domaine ARENA -> categorie dans INIT Fermé 03/07/2017

Révisions associées

Révision e336bfbb (diff)
Ajouté par Renaud Dussol il y a environ 6 ans

Ref #21047 : Gestion des catégories dans App Manager - ATTENTION : vérifier cohérence des autres fichiers car modifs anciennes sur autre branche

Historique

#1 Mis à jour par Christophe LEON il y a presque 7 ans

Salut Renaud,
Une icone d'une catégorie c'est du texte faisant reférence a fontawsome

#2 Mis à jour par Renaud Dussol il y a presque 7 ans

Zut, j'ai tout fait sur le modèle des apps/urls, du coup c'est de l’image binaire
Bon pas trop dur à corriger... à moins qu'on conserve l'image du coup ?

#3 Mis à jour par Renaud Dussol il y a presque 7 ans

A étudier pour la fin août (j'ai rebossé 2 jours fin juillet):
- Voir si on choisit icones font-awesome ou icones fichier (ou s'il y a un moyen d'utiliser les 2)
- Etudier comment se passer de ressources.config.local pour définir les catégories

---------------------
Pour le 2eme point, état de mes recherches :
Actuellement, AppsBehavior crée son tableau de catégories à partir de ressources.php, ce qui posera probleme à terme si l'on veut laisser des personnes n'ayant pas accès à ce fichier gérer l'ensemble du processus
je vois 4 possibilités :
- soit le app manager renvoie toutes les infos de la catégorie pour chaque appli (par ex : icone|couleur|nom) et surcharge, comme il le fait déjà pour le reste
- soit App Behaviors parse, en plus de ressources.php, un autre xml issu de la BDD du app manager et contenant les catégories, et les ajoute à l'objet hashCategories
- soit un mix des 2 : quant une catégorie n'est pas trouvée dans hashCategories, on l'ajoute et ensuite elle est dispo pour les autres applis
- soit alimenter ressources.php en direct à partir de la BDD du app manager (mais c'est contraire à la philosophie de séparation ng /old)

#4 Mis à jour par Renaud Dussol il y a plus de 6 ans

Modif Entity/App.php pour fonction getCategory
Ajout d'une colonne catégorie dans la App List

#5 Mis à jour par Renaud Dussol il y a plus de 6 ans

Retour à Font-Awesome
Début d'un travail sur un sélecteur (en attendant, lien vers la page des icones dispos sur le site FA)

#6 Mis à jour par Renaud Dussol il y a plus de 6 ans

Le plus simple pour l'instant est de rajouter un appel à la BDD dans ressources.php, juste après l'inclusion de ressources.config.local

if (file_exists("arena/ressources.config.local.php")) {include_once("arena/ressources.config.local.php"); }

// AJOUT NICE : RECUPERATION DES CATEGORIES DEFINIES DANS LE APP MANAGER JUSTE APRES L'INCLUSION DE ressources.config.local
$categories_ng = R::findAll('category');
foreach ($categories_ng as $cat) {
    $categories[] = new Categorie($cat->libelle, $cat->color, '100', $cat->icon);
}

TODO : ajouter l'indice dans la structure de la table qui pour l'instant est en dur dans le code

#7 Mis à jour par Renaud Dussol il y a plus de 6 ans

J'ai retrouvé la fonction normalize : elle est dans ng/public/elements/behaviors/scripts/classes.js (première fonction !)
Pour historique apparue dans le xdesktop suite à des plantages remontés par Orléans sur une catégorie avec apostrophe qui faisait planter l'affichage, et modifiée par la suite pour prendre en compte d'autres cas de figure. La clef de la catégorie (qui ne possède pas d'ID numérique dans un tableau de type js) doit être propre, donc débarrassée de ces caractères spéciaux.

Dans un premier temps, l'idée serait de créer une fonction php équivalente, ce qui permettrait de n'avoir plus qu'un champ "libellé" dans la table catégories du NG et de normaliser celui-ci au moment de l'envoi vers AppsBehaviors, en appelant cette fonction PHP.

Ensuite, si tout est géré par le AppManager, on se baserait sur l'ID numérique de la catégorie, et on n'aurait plus besoin de la fonction

#8 Mis à jour par Renaud Dussol il y a plus de 6 ans

A priori, utiliser preg_replace("%[^a-zA-Z0-9 ]%","", $cat...

#9 Mis à jour par Renaud Dussol il y a plus de 6 ans

Dans ApiController.php

          // la catégorie est différente on la change
/*
          if ($entry['categorie'] !=  $eApp->category->name ) {
              $cat = $eApp->category->name;
*/
          if ($entry['categorie'] !=  $eApp->category->libelle ) {
            $cat = preg_replace("%[^a-zA-Z0-9 ]%","",$eApp->category->libelle);

          }

          // L'url a une categorie
/*
          if ( $eUrl->category && ( $eUrl->category->name  != $eApp->category->name ) ) {
            $cat = $eUrl->category->name;
*/
          if ( $eUrl->category && ( $eUrl->category->libelle  != $eApp->category->libelle ) ) {
              $cat = preg_replace("%[^a-zA-Z0-9 ]%","",$eUrl->category->libelle);
        }

#10 Mis à jour par Renaud Dussol il y a plus de 6 ans

Voir s'il ne faut pas faire la compraison avec le preg_replace aussi

#11 Mis à jour par Renaud Dussol il y a plus de 6 ans

Cela semble fonctionner
J'ai remplacé les name dans la table par des chaines remarquables (de type "ZZZZZZZZZZ")
On ne le voit nulle part apparaitre
Les apps sont bien rangées dans les bonnes catégories
On pourrait donc a priori se passer du name

#12 Mis à jour par Renaud Dussol il y a plus de 6 ans

  • % réalisé changé de 0 à 90

Commité sur feature/nice, reste à réaliser des tests côté Réunion

#13 Mis à jour par Christophe LEON il y a plus de 6 ans

  • Version cible mis à Envole 5.6

#14 Mis à jour par Renaud Dussol il y a plus de 6 ans

  • Duplique Evolution #20999: Ajouter enregistrement domaine ARENA -> categorie dans INIT ajouté

#15 Mis à jour par Renaud Dussol il y a plus de 6 ans

  • Statut changé de Nouveau à Fermé

#16 Mis à jour par Renaud Dussol il y a plus de 6 ans

  • Statut changé de Fermé à En attente d'informations
  • Assigné à changé de Renaud Dussol à Christophe LEON

A tester sur env Réunion

#17 Mis à jour par Arnaud FORNEROT il y a plus de 6 ans

  • Version cible changé de Envole 5.6 à Envole 5.7

#18 Mis à jour par Renaud Dussol il y a plus de 6 ans

  • Tracker changé de Demande à Evolution

#19 Mis à jour par Arnaud FORNEROT il y a plus de 6 ans

  • Version cible changé de Envole 5.7 à Envole 5.8

#20 Mis à jour par Renaud Dussol il y a environ 6 ans

  • Statut changé de En attente d'informations à Accepté
  • Assigné à changé de Christophe LEON à Renaud Dussol
  • Priorité changé de Normal à Haut

Refaire commit sur branche patch

#21 Mis à jour par Arnaud FORNEROT il y a environ 6 ans

  • Version cible Envole 5.8 supprimé

#22 Mis à jour par Renaud Dussol il y a presque 6 ans

  • Statut changé de Accepté à Résolu
  • % réalisé changé de 90 à 100

#23 Mis à jour par Christophe LEON il y a presque 6 ans

  • Statut changé de Résolu à À valider
  • % réalisé changé de 100 à 90

Ordre non pris en compte lors de l'édition d'une categorie

#24 Mis à jour par Christophe LEON il y a presque 6 ans

  • Statut changé de À valider à Résolu

Fausse alerte.
C'est OK

#25 Mis à jour par Renaud Dussol il y a presque 6 ans

  • % réalisé changé de 90 à 100

Lorsqu'une catégorie du App Manager est identique à l'une de celles définies dans ressources.vonfig.local, bien penser à l'effacer ou la commenter dans ce fichier
Attention au cache local qui conserve les catégories

#26 Mis à jour par Arnaud FORNEROT il y a plus de 5 ans

  • Version cible mis à Envole 5.10

#27 Mis à jour par Arnaud FORNEROT il y a plus de 5 ans

  • Statut changé de Résolu à Fermé

Formats disponibles : Atom PDF