Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
2 tasks
seballot opened this issue Mar 21, 2018 · 0 comments
Open
2 tasks

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

seballot opened this issue Mar 21, 2018 · 0 comments
Assignees

Comments

@seballot
Copy link
Contributor

seballot commented Mar 21, 2018

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

  • Première étape : décider de la syntaxe pour configurer ce "body"

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

  • Deuxième étape : implémenter ça !!

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 }}
    `
  };
@seballot seballot added this to the Proto milestone Mar 21, 2018
@seballot seballot changed the title Rendre le fiche détail en partie générique Rendre la fiche détail en partie générique Mar 21, 2018
@seballot seballot modified the milestones: Proto, PWA first release May 30, 2018
@seballot seballot assigned regazzoj and unassigned simonLouvet Jul 23, 2018
regazzoj added a commit that referenced this issue Aug 2, 2018
HTML body of an element can be user-defined using HTML or MarkDown with nunjucks syntax

______________________________________________________________________________________________________________________________

Le corps HTML d'un élement peut être défini par l'utilisateur en utilisant la syntaxe HTML ou MarkDown avec celle de nunjucks
seballot added a commit that referenced this issue Aug 2, 2018
regazzoj added a commit that referenced this issue Aug 3, 2018
Body template can be an URL of a local or distant file with Markdown or Nunjucks syntax
Body template is compiled once and for all

____________________________________________________________

Template body peut être l'URL d'un fichier local ou distant de syntaxe Markdown ou Nunjucks
Template body est compilé une fois pour toutes
regazzoj added a commit that referenced this issue Aug 13, 2018
Add 'isMarkdown' property to 'bodyTemplate' object, on true, the content will be parsed thanks to the Markdown syntax
Add possibility to create custom filters and add one example 'gogotags' in 'src/js/modules/core/template.module.ts' file
Correction typo in the scss file
_____________________________________________________________________

Ajout d'une propriété 'isMakrdown' dans l'objet 'bodyTemplate', si true, le contenu sera parsé selon la syntaxe Markdown
Ajout de la possibilité de créer des filtres customs et ajout d'un exemple 'gogotags' dans le fichier' src/js/modules/core/template.module.ts'
Correction d'une typo dans le fichier scss
seballot added a commit that referenced this issue Aug 13, 2018
Use config as readonly, create dedicate class for element template, use event instead of callbacks
seballot added a commit that referenced this issue Aug 13, 2018
regazzoj added a commit that referenced this issue Aug 14, 2018
Wait for the template to load before displaying element informations on page refresh

__________________________________________________

Attente du template à charger avant d'afficher les informations de l'élément lors d'une actualisation de la pahe
regazzoj added a commit that referenced this issue Aug 21, 2018
Custom filters are now defined in nunjucks files (see src/views/templates/element-filters/gogotags.html.njk)

______________________________________________________________________

Les filtres customs sont maintenant définis dans des fichiers nunjucks (voir src/views/templates/element-filters/gogotags.html.njk)
regazzoj added a commit that referenced this issue Aug 21, 2018
regazzoj added a commit that referenced this issue Sep 25, 2018
New filters added for rendering email addresses, postal addresses, open hours, commitments, URLs and websites

_______________________________________________________________________________________

Nouveaux filtres ajoutés pour créer l'affichage des adresses mail, postales, heures d'ouverture, engagements, URLs et sites web
seballot added a commit that referenced this issue Oct 16, 2018
Still need to implement gogotaxonomy and gogolongtext templates
regazzoj added a commit that referenced this issue Oct 21, 2018
Renaming of the created filters to be more understandable ('gogo_*' instead of 'gogo*')
New filters gogo_taxonomy and gogo_textarea (it truncades long texts and add a button 'Show more/less')
Filters can use JS functions added to the template context

____________________________________________________________________________

Renommage des filtres créés pour être plus intelligible ('gogo_*' au lieu de 'gogo*')
Nouveaux filtres pour gogo_taxonomy et gogo_textarea (il tronque les textes longs et ajoute un bouton 'Afficher plus/moins')
Les filtres peuvent utiliser des fonctions JS ajoutées au contexte du template
seballot added a commit that referenced this issue Oct 22, 2018
seballot added a commit that referenced this issue Oct 22, 2018
regazzoj added a commit that referenced this issue Oct 24, 2018
Possibility to set the header element in start configuration (like the body element)

_______________________________

Possibilité de fournir le header de l'élement dans la configuration de départ (comme le body)
regazzoj added a commit that referenced this issue Oct 24, 2018
Simplification of some methods and their usage

____________________

Simplification de certaines méthodes et de leur usage
seballot added a commit that referenced this issue Oct 25, 2018
regazzoj added a commit that referenced this issue Oct 30, 2018
Add documentation about custom body and header templates of a configuration

___________________

Ajout d'une documentation à propos des templates body et header personalisables d'une configuration
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants