pixelhumain / GoGoCartoJs

Javascript component to create terrific cartography !
https://pixelhumain.github.io/GoGoCartoJs/
GNU Affero General Public License v3.0
11 stars 4 forks source link

Rendre la fiche détail en partie générique #11

Open seballot opened 6 years ago

seballot commented 6 years ago

Au sein du template actuel (header avec nom/description + section images + body avec les autres infos), permetre que le body soit configurable.

Dans ce body, on doit pouvoir utilisr des attributs des éléments Json donné à gogocarto (par exemple "name", "mail", "tags") On doit aussi pouvoir rajouter du texte, des labels, des titres, des séparateurs

Au début je pensais utiliser du markdown, par example :

# Engagement Citoyen
blabla : {{ comitment }}

Ce qui donnerait avec comitment = "Promotion de l'agriculture biologique."

capture d ecran de 2018-03-21 15-26-17

Mais il faudrait pouvoir aussi personnaliser la manière d'afficher un attribut (on affichera pas d ela même façon une site web, une adresse email ou un photo). Du coup on pourrait peut être faire quelque chose comme

# Informations générales
site : {{ mail|email }}
# Tags
{{ categories|tags }}

l'attribut "mail" serait afficher en tant q'un email (c'est à dire afficher l'adresse mail ou afficher un bouton pour envoyer un mail si la fonction est activée) l'attribut "catégories" sera affiché sous forme de tags comme ça : image

Une autre idée serait d'utiliser une syntaxe type html, pour le même exemple que précédemment

<title>Informations générales</title>
site : <email>{{ mail }}<email>
<divider></divider>
<title>Tags</title>
<tags>{{ categories }}</tags>

Ca parait moins intuitif quand même... je sais pas trop Pour la markdown, faudrait trouver une manière de renseigner des "divider" (petites ligne de séparations horizontales)

Voilà, il faut donc investiguer voir si y'a autre chose que le markdown qui permet facilement de faire ça ! de comparer et de choisir le truc le plus intuitif qui permet de faire suffisament de choses quand même

En gros remplacer le fichier src/views/components/element/body.html.njk pour générer le body en fonction de la configuration ! Histoire de pas briser ce qui existe, mieux vaudrait conserver ce body.html dans l'état, et si la config d'un custom template est donnée, alors utiliser plutot le nouveau body qui sera dynamiquement généré. D'ailleurs, pour la config, ça se passe dans js/classes/config/gogo-config.class.ts, y'a déjà un attribut "info-bar", il faudrait donc rajouter ici un nouveau sous attribut

readonly infobar =
  {
    width: undefined,
    activate: true,
    customTemplate: `
      # Informations générales
      site : {{ mail|email }}
      # Tags
      {{ categories|tags }}
    `
  };