Skip to content

Commit

Permalink
Issue #11
Browse files Browse the repository at this point in the history
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
  • Loading branch information
regazzoj committed Oct 21, 2018
1 parent c0785ea commit 5a33bd5
Show file tree
Hide file tree
Showing 13 changed files with 61 additions and 43 deletions.
10 changes: 5 additions & 5 deletions src/js/modules/element/element-json-loader.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -154,11 +154,11 @@ export class ElementJsonParserModule
element.longDescription = result.second;
}

if (element.longDescription.length > 500) {
let result = splitLongText(element.longDescription, 500, 100);
element.longDescription = result.first;
element.longDescriptionMore = result.second;
}
// if (element.longDescription.length > 500) {
// let result = splitLongText(element.longDescription, 500, 100);
// element.longDescription = result.first;
// element.longDescriptionMore = result.second;
// }
}
}
}
19 changes: 18 additions & 1 deletion src/js/modules/element/template-element-filters.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,19 @@ import { App } from "../../gogocarto";
import { GoGoConfig } from "../../classes/config/gogo-config.class";
import { Event } from "../../classes/classes";

import { splitLongText } from "../../utils/string-helpers";

declare var $;
declare var nunjucks;
declare var commonmark;

export class TemplateElementFiltersModule
{
filters = [ 'gogotext', 'gogoemail', 'gogoopenhours', 'gogotags', 'gogovimeo', 'gogourl', 'gogotitle', 'gogoseparator' ];
filters = [ 'gogo_text', 'gogo_email', 'gogo_openhours', 'gogo_tags', 'gogo_vimeo', 'gogo_url', 'gogo_title', 'gogo_separator', 'gogo_taxonomy', 'gogo_textarea' ];

public addGoGoFilters(nunjucksEnvironment)
{
let me = this;
// adds custom fitlers here
for(const currentFilter of this.filters)
{
Expand All @@ -22,10 +25,24 @@ export class TemplateElementFiltersModule
if(kwargs) $.extend(objectArgument, kwargs);
objectArgument['value'] = value;
objectArgument['config'] = App.config;
$.extend(objectArgument, me.addNeededFunction(currentFilter));
return nunjucksEnvironment.render("components/element/element-filters/"+ currentFilter +".html.njk", objectArgument);
});
}

return nunjucksEnvironment;
}

private addNeededFunction(filter: string): object
{
let functionToAdd = {};
switch(filter)
{
case 'gogo_textarea':
functionToAdd['splitLongText'] = splitLongText;
break;
default:
}
return functionToAdd;
}
}
57 changes: 20 additions & 37 deletions src/views/components/element/body.html.njk
Original file line number Diff line number Diff line change
@@ -1,72 +1,55 @@
{% set here = "components/element/" %}
{# -------------- #}
{# BODY DEFAULT #}
{# -------------- #}
{% set longDescription = element.getProperty('longDescription') %}
{% if longDescription %}
<div class="section row sectionlongDescription" style="padding-bottom:0">
<div class="col s12 description long-descrition">
<span>{{ longDescription|safe }}</span>
{% if element.longDescriptionMore %}
<span style="display:none" class="description-more">{{ element.longDescriptionMore|safe }}</span>
<a class="show-more-description">Afficher plus</a>
{% endif %}
</div>
</div>
{% endif %}
{{ element.getProperty('longDescription')|gogo_textarea(truncate = 40) }}

{# Contact infos #}
{{ 'Informations générales'|gogotitle }}
{{ 'Informations générales'|gogo_title }}

{# Address #}
{{ element.getProperty('address')|gogotext }}
{{ element.getProperty('address')|gogo_text }}

{# Tel #}
{{ element.getProperty('telephone')|gogotext }}
{{ element.getProperty('telephone')|gogo_text }}

{# Mail #}
{{ element.getProperty('email')|gogoemail(isPending = element.isPending()) }}
{{ element.getProperty('email')|gogo_email(isPending = element.isPending()) }}

{# WebSite #}
{{ element.getProperty('website')|gogourl }}
{{ element.getProperty('website')|gogo_url }}

{% set urls = element.urls %}
{% if urls %}
{% for currentUrl in urls %}
{{ url.value|gogourl }}
{{ url.value|gogo_url }}
{% endfor %}
{% endif %}

{{ ''|gogoseparator }}
{{ ''|gogo_separator }}

{# Categories #}
<div class="field field-taxonomy">
{% import here ~ 'category-value.html.njk' as categoryRenderer %}
{% for mainCategoryValue in rootCategoriesValues %}
{{ categoryRenderer.renderCategoryValue(mainCategoryValue) }}
{% endfor %}
</div>
{{ element.getProperty('rootCategoriesValues')|gogo_taxonomy }}

{{ element.getProperty('tags')|gogotags}}
{{ element.getProperty('tags')|gogo_tags}}

{% if element.getProperty('commitment') %}
{{ ''|gogoseparator }}
{{ 'Engagement Citoyen'|gogotitle }}
{{ element.getProperty('commitment')|gogotext }}
{{ ''|gogo_separator }}
{{ 'Engagement Citoyen'|gogo_title }}
{{ element.getProperty('commitment')|gogo_text }}
{% endif %}

{# Open Hours #}
{% if element.formatedOpenHours|length or element.getProperty('openHoursMoreInfos') %}
{{ ''|gogoseparator }}
{{ "Horaires d'ouverture"|gogotitle }}
{{ element.formatedOpenHours|gogoopenhours }}
{{ element.getProperty('openHoursMoreInfos')|gogootext }}
{{ ''|gogo_separator }}
{{ "Horaires d'ouverture"|gogo_title }}
{{ element.formatedOpenHours|gogo_openhours }}
{{ element.getProperty('openHoursMoreInfos')|gogo_text }}
{% endif %}

{# Vidéo #}
{% if element.getProperty('vimeoId') %}
{{ ''|gogoseparator }}
{{ 'Video'|gogotitle }}
{{ element.getProperty('vimeoId')|gogovimeo }}
{{ ''|gogo_separator }}
{{ 'Video'|gogo_title }}
{{ element.getProperty('vimeoId')|gogo_vimeo }}
{% endif %}

Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<div class="field field-taxonomy">
{% import 'components/element/category-value.html.njk' as categoryRenderer %}
{% for mainCategoryValue in value %}
{{ categoryRenderer.renderCategoryValue(mainCategoryValue) }}
{% endfor %}
</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{% if value %}
{% set longText = splitLongText(value, truncate, 20) %}
<div class="section row sectionlongDescription" style="padding-bottom:0">
<div class="col s12 description long-descrition">
<span>{{ longText.first|safe }}</span>
{% if longText.second %}
<span style="display:none" class="description-more">{{ longText.second|safe }}</span>
<a class="show-more-description">Afficher plus</a>
{% endif %}
</div>
</div>
{% endif %}

0 comments on commit 5a33bd5

Please sign in to comment.