Project

General

Profile

Evolution #21047

Gestion des catégories dans App Manager

Added by Renaud Dussol over 5 years ago. Updated over 4 years ago.

Status:
Fermé
Priority:
Haut
Assigned To:
Target version:
Start date:
07/12/2017
Due date:
% Done:

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


Related issues

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

Associated revisions

Revision e336bfbb (diff)
Added by Renaud Dussol about 5 years ago

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

History

#1 Updated by Christophe LEON over 5 years ago

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

#2 Updated by Renaud Dussol over 5 years ago

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 Updated by Renaud Dussol over 5 years ago

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 Updated by Renaud Dussol over 5 years ago

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

#5 Updated by Renaud Dussol over 5 years ago

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 Updated by Renaud Dussol over 5 years ago

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 Updated by Renaud Dussol over 5 years ago

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 Updated by Renaud Dussol over 5 years ago

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

#9 Updated by Renaud Dussol over 5 years ago

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 Updated by Renaud Dussol over 5 years ago

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

#11 Updated by Renaud Dussol over 5 years ago

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 Updated by Renaud Dussol over 5 years ago

  • % Done changed from 0 to 90

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

#13 Updated by Christophe LEON over 5 years ago

  • Target version set to Envole 5.6

#14 Updated by Renaud Dussol over 5 years ago

  • Duplicates Evolution #20999: Ajouter enregistrement domaine ARENA -> categorie dans INIT added

#15 Updated by Renaud Dussol over 5 years ago

  • Status changed from Nouveau to Fermé

#16 Updated by Renaud Dussol over 5 years ago

  • Status changed from Fermé to En attente d'informations
  • Assigned To changed from Renaud Dussol to Christophe LEON

A tester sur env Réunion

#17 Updated by Arnaud FORNEROT over 5 years ago

  • Target version changed from Envole 5.6 to Envole 5.7

#18 Updated by Renaud Dussol over 5 years ago

  • Tracker changed from Demande to Evolution

#19 Updated by Arnaud FORNEROT over 5 years ago

  • Target version changed from Envole 5.7 to Envole 5.8

#20 Updated by Renaud Dussol about 5 years ago

  • Status changed from En attente d'informations to Accepté
  • Assigned To changed from Christophe LEON to Renaud Dussol
  • Priority changed from Normal to Haut

Refaire commit sur branche patch

#21 Updated by Arnaud FORNEROT about 5 years ago

  • Target version deleted (Envole 5.8)

#22 Updated by Renaud Dussol almost 5 years ago

  • Status changed from Accepté to Résolu
  • % Done changed from 90 to 100

#23 Updated by Christophe LEON almost 5 years ago

  • Status changed from Résolu to À valider
  • % Done changed from 100 to 90

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

#24 Updated by Christophe LEON almost 5 years ago

  • Status changed from À valider to Résolu

Fausse alerte.
C'est OK

#25 Updated by Renaud Dussol over 4 years ago

  • % Done changed from 90 to 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 Updated by Arnaud FORNEROT over 4 years ago

  • Target version set to Envole 5.10

#27 Updated by Arnaud FORNEROT over 4 years ago

  • Status changed from Résolu to Fermé

Also available in: Atom PDF