From 7b994dc83de3778d36a608e7997b1efbfdaa5890 Mon Sep 17 00:00:00 2001 From: Alice <alice.poggioli@hotmail.fr> Date: Wed, 18 Sep 2019 15:46:38 +0200 Subject: [PATCH] WIP: Filtering by type. --- src/includes/components/widgets.pug | 13 +- src/includes/entrepreneur/resources/list.pug | 499 ++++++++++--------- src/scripts/coopstarter.js | 66 ++- 3 files changed, 327 insertions(+), 251 deletions(-) diff --git a/src/includes/components/widgets.pug b/src/includes/components/widgets.pug index e605891a..3cfc84ad 100644 --- a/src/includes/components/widgets.pug +++ b/src/includes/components/widgets.pug @@ -125,7 +125,12 @@ sib-widget(name='cs-profile-picture') img(name="${name}", src="\${value || '/images/alien.jpg'}", alt="Coopstarter") - sib-widget(name="hidden-widget") - template - div(data-content style="display:none;") - \ No newline at end of file +sib-widget(name="hidden-widget") + template + div(data-content style="display:none;") + +sib-widget(name="fake-tabs") + template + h2.fake-tabs ${value} + + \ No newline at end of file diff --git a/src/includes/entrepreneur/resources/list.pug b/src/includes/entrepreneur/resources/list.pug index 124b14c5..e851f733 100644 --- a/src/includes/entrepreneur/resources/list.pug +++ b/src/includes/entrepreneur/resources/list.pug @@ -78,246 +78,277 @@ container.block_list.flex.flex_espace div#resources-loader hidden Loading resources, please wait... - //Step 1 - sib-display#circles-list( - loader-id="resources-loader" - data-src=`${endpoints.steps}1/`, - fields='name' - - label-name ='Step 1 ' - label-resources='' - - widget-name='cs-steps-header' - ) - - sib-display.resource_by_step( - data-src=`${endpoints.steps}1/resources/`, - fields='name, author, format, publication_year, description, country, language, fields', - search-fields='search_for_a_resource(name, description, author), more_criterias_hidden(format, publication_year, country, language, fields)', - search-range-format=`${endpoints.formats}` - search-range-language=`${endpoints.languages}` - search-range-fields=`${endpoints.fields}` - - - search-widget-search_for_a_resource="hidden-widget" - search-widget-more_criterias_hidden="hidden-widget" - search-multiple-format='sib-form-dropdown' - search-widget-format='sib-form-auto-completion' - search-multiple-language='sib-form-dropdown' - search-widget-language='sib-form-auto-completion' - search-multiple-fields='sib-form-dropdown' - search-widget-fields='sib-form-auto-completion' - - - widget-name='cs-display-property' - widget-country='cs-display-property' - widget-publication_year='cs-display-property' - widget-description='cs-display-property' - widget-fields='hidden-widget' - widget-language="hidden-widget" - widget-author="cs-display-property" - widget-format='cs-display-multiple-property' - label-format='' - multiple-format - label-language='' - multiple-language - label-fields='' - multiple-fields - - paginate-by="5" - ) + //Fake tabs to filter by type. + div.tabs.flex_espace + div(class='tablink filter_by_type active', onclick="openFakeTab(this)") + sib-display#type1( + data-src="https://api.coopstarter.happy-dev.fr/types/1/" + fields='name' + widget-name='fake-tabs' + ) - //Step 2 - sib-display#circles-list( - data-src=`${endpoints.steps}2/`, - fields='name' + div(class='tablink filter_by_type', onclick="openFakeTab(this)") + sib-display#type2( + data-src="https://api.coopstarter.happy-dev.fr/types/2/" + fields='name' + widget-name='fake-tabs' + ) + + div.block_log.block_list + + //Step 1 + sib-display#circles-list( + loader-id="resources-loader" + data-src=`${endpoints.steps}1/`, + fields='name' + + label-name ='Step 1 ' + label-resources='' + + widget-name='cs-steps-header' + ) + + sib-display.resource_by_step( + data-src=`${endpoints.steps}1/resources/`, + fields='name, author, format, publication_year, description, country, language, fields', + search-fields='search_for_a_resource(name, description, author), more_criterias_hidden(format, publication_year, country, language, fields, type)', + search-range-format=`${endpoints.formats}` + search-range-language=`${endpoints.languages}` + search-range-fields=`${endpoints.fields}` + search-range-type=`${endpoints.types}` + + + search-widget-search_for_a_resource="hidden-widget" + search-multiple-type='sib-form-dropdown' + search-widget-type='sib-form-auto-completion' + search-multiple-format='sib-form-dropdown' + search-widget-format='sib-form-auto-completion' + search-multiple-language='sib-form-dropdown' + search-widget-language='sib-form-auto-completion' + search-multiple-fields='sib-form-dropdown' + search-widget-fields='sib-form-auto-completion' - label-name ='Step 2 ' - label-resources='' - - widget-name='cs-steps-header' - ) - - sib-display.resource_by_step( - data-src=`${endpoints.steps}2/resources/`, - fields='name, author, format, publication_year, description, country, language, fields', - search-fields='search_for_a_resource(name, description, author), more_criterias_hidden(format, publication_year, country, language, fields)', - search-range-format=`${endpoints.formats}` - search-range-language=`${endpoints.languages}` - search-range-fields=`${endpoints.fields}` - - - search-widget-search_for_a_resource="hidden-widget" - search-widget-more_criterias_hidden="hidden-widget" - search-multiple-format='sib-form-dropdown' - search-widget-format='sib-form-auto-completion' - search-multiple-language='sib-form-dropdown' - search-widget-language='sib-form-auto-completion' - search-multiple-fields='sib-form-dropdown' - search-widget-fields='sib-form-auto-completion' - - - widget-name='cs-display-property' - widget-country='cs-display-property' - widget-publication_year='cs-display-property' - widget-description='cs-display-property' - widget-fields='hidden-widget' - widget-language="hidden-widget" - widget-author="cs-display-property" - widget-format='cs-display-multiple-property' - label-format='' - multiple-format - label-language='' - multiple-language - label-fields='' - multiple-fields - paginate-by="5" - ) + widget-name='cs-display-property' + widget-country='cs-display-property' + widget-publication_year='cs-display-property' + widget-description='cs-display-property' + widget-fields='hidden-widget' + widget-language="hidden-widget" + widget-author="cs-display-property" + widget-format='cs-display-multiple-property' + label-format='' + multiple-format + label-language='' + multiple-language + label-fields='' + multiple-fields + + paginate-by="5" + ) - //Step 3 - sib-display#circles-list( - data-src=`${endpoints.steps}3/`, - fields='name' + //Step 2 + sib-display#circles-list( + data-src=`${endpoints.steps}2/`, + fields='name' + + label-name ='Step 2 ' + label-resources='' + + widget-name='cs-steps-header' + ) + + sib-display.resource_by_step( + data-src=`${endpoints.steps}2/resources/`, + fields='name, author, format, publication_year, description, country, language, fields', + search-fields='search_for_a_resource(name, description, author), more_criterias_hidden(format, publication_year, country, language, fields, type)', + search-range-format=`${endpoints.formats}` + search-range-language=`${endpoints.languages}` + search-range-fields=`${endpoints.fields}` + search-range-type=`${endpoints.types}` + + + search-widget-search_for_a_resource="hidden-widget" + search-widget-more_criterias_hidden="hidden-widget" + search-multiple-type='sib-form-dropdown' + search-widget-type='sib-form-auto-completion' + search-multiple-format='sib-form-dropdown' + search-widget-format='sib-form-auto-completion' + search-multiple-language='sib-form-dropdown' + search-widget-language='sib-form-auto-completion' + search-multiple-fields='sib-form-dropdown' + search-widget-fields='sib-form-auto-completion' - label-name ='Step 3 ' - label-resources='' - widget-name='cs-steps-header' - - ) - - sib-display.resource_by_step( - data-src=`${endpoints.steps}3/resources/`, - fields='name, author, format, publication_year, description, country, language, fields', - search-fields='search_for_a_resource(name, description, author), more_criterias_hidden(format, publication_year, country, language, fields)', - search-range-format=`${endpoints.formats}` - search-range-language=`${endpoints.languages}` - search-range-fields=`${endpoints.fields}` - - - search-widget-search_for_a_resource="hidden-widget" - search-widget-more_criterias_hidden="hidden-widget" - search-multiple-format='sib-form-dropdown' - search-widget-format='sib-form-auto-completion' - search-multiple-language='sib-form-dropdown' - search-widget-language='sib-form-auto-completion' - search-multiple-fields='sib-form-dropdown' - search-widget-fields='sib-form-auto-completion' - - - widget-name='cs-display-property' - widget-country='cs-display-property' - widget-publication_year='cs-display-property' - widget-description='cs-display-property' - widget-fields='hidden-widget' - widget-language="hidden-widget" - widget-author="cs-display-property" - widget-format='cs-display-multiple-property' - label-format='' - multiple-format - label-language='' - multiple-language - label-fields='' - multiple-fields + widget-name='cs-display-property' + widget-country='cs-display-property' + widget-publication_year='cs-display-property' + widget-description='cs-display-property' + widget-fields='hidden-widget' + widget-language="hidden-widget" + widget-author="cs-display-property" + widget-format='cs-display-multiple-property' + label-format='' + multiple-format + label-language='' + multiple-language + label-fields='' + multiple-fields + + paginate-by="5" + ) + + //Step 3 + sib-display#circles-list( + data-src=`${endpoints.steps}3/`, + fields='name' + + label-name ='Step 3 ' + label-resources='' + + widget-name='cs-steps-header' + + ) + + sib-display.resource_by_step( + data-src=`${endpoints.steps}3/resources/`, + fields='name, author, format, publication_year, description, country, language, fields', + search-fields='search_for_a_resource(name, description, author), more_criterias_hidden(format, publication_year, country, language, fields, type)', + search-range-format=`${endpoints.formats}` + search-range-language=`${endpoints.languages}` + search-range-fields=`${endpoints.fields}` + search-range-type=`${endpoints.types}` + + + search-widget-search_for_a_resource="hidden-widget" + search-widget-more_criterias_hidden="hidden-widget" + search-multiple-type='sib-form-dropdown' + search-widget-type='sib-form-auto-completion' + search-multiple-format='sib-form-dropdown' + search-widget-format='sib-form-auto-completion' + search-multiple-language='sib-form-dropdown' + search-widget-language='sib-form-auto-completion' + search-multiple-fields='sib-form-dropdown' + search-widget-fields='sib-form-auto-completion' - paginate-by="5" - ) - - //Step 4 - sib-display#circles-list( - data-src=`${endpoints.steps}4/`, - fields='name' - - label-name ='Step 4 ' - label-resources='' - - widget-name='cs-steps-header' - - ) - - sib-display.resource_by_step( - data-src=`${endpoints.steps}4/resources/`, - fields='name, author, format, publication_year, description, country, language, fields', - search-fields='search_for_a_resource(name, description, author), more_criterias_hidden(format, publication_year, country, language, fields)', - search-range-format=`${endpoints.formats}` - search-range-language=`${endpoints.languages}` - search-range-fields=`${endpoints.fields}` - - - search-widget-search_for_a_resource="hidden-widget" - search-widget-more_criterias_hidden="hidden-widget" - search-multiple-format='sib-form-dropdown' - search-widget-format='sib-form-auto-completion' - search-multiple-language='sib-form-dropdown' - search-widget-language='sib-form-auto-completion' - search-multiple-fields='sib-form-dropdown' - search-widget-fields='sib-form-auto-completion' - - - widget-name='cs-display-property' - widget-country='cs-display-property' - widget-publication_year='cs-display-property' - widget-description='cs-display-property' - widget-fields='hidden-widget' - widget-language="hidden-widget" - widget-author="cs-display-property" - widget-format='cs-display-multiple-property' - label-format='' - multiple-format - label-language='' - multiple-language - label-fields='' - multiple-fields + widget-name='cs-display-property' + widget-country='cs-display-property' + widget-publication_year='cs-display-property' + widget-description='cs-display-property' + widget-fields='hidden-widget' + widget-language="hidden-widget" + widget-author="cs-display-property" + widget-format='cs-display-multiple-property' + label-format='' + multiple-format + label-language='' + multiple-language + label-fields='' + multiple-fields + + paginate-by="5" + ) + + //Step 4 + sib-display#circles-list( + data-src=`${endpoints.steps}4/`, + fields='name' + + label-name ='Step 4 ' + label-resources='' + + widget-name='cs-steps-header' + + ) + + sib-display.resource_by_step( + data-src=`${endpoints.steps}4/resources/`, + fields='name, author, format, publication_year, description, country, language, fields', + search-fields='search_for_a_resource(name, description, author), more_criterias_hidden(format, publication_year, country, language, fields, type)', + search-range-format=`${endpoints.formats}` + search-range-language=`${endpoints.languages}` + search-range-fields=`${endpoints.fields}` + search-range-type=`${endpoints.types}` + + + search-widget-search_for_a_resource="hidden-widget" + search-widget-more_criterias_hidden="hidden-widget" + search-multiple-type='sib-form-dropdown' + search-widget-type='sib-form-auto-completion' + search-multiple-format='sib-form-dropdown' + search-widget-format='sib-form-auto-completion' + search-multiple-language='sib-form-dropdown' + search-widget-language='sib-form-auto-completion' + search-multiple-fields='sib-form-dropdown' + search-widget-fields='sib-form-auto-completion' + - paginate-by="5" - ) - - //Step 5 - sib-display#circles-list( - data-src=`${endpoints.steps}5/`, - fields='name' - - label-name ='Step 5 ' - label-resources='' - - widget-name='cs-steps-header' - ) - - sib-display.resource_by_step( - data-src=`${endpoints.steps}5/resources/`, - fields='name, author, format, publication_year, description, country, language, fields', - search-fields='search_for_a_resource(name, description, author), more_criterias_hidden(format, publication_year, country, language, fields)', - search-range-format=`${endpoints.formats}` - search-range-language=`${endpoints.languages}` - search-range-fields=`${endpoints.fields}` - - - search-widget-search_for_a_resource="hidden-widget" - search-widget-more_criterias_hidden="hidden-widget" - search-multiple-format='sib-form-dropdown' - search-widget-format='sib-form-auto-completion' - search-multiple-language='sib-form-dropdown' - search-widget-language='sib-form-auto-completion' - search-multiple-fields='sib-form-dropdown' - search-widget-fields='sib-form-auto-completion' - - - widget-name='cs-display-property' - widget-country='cs-display-property' - widget-publication_year='cs-display-property' - widget-description='cs-display-property' - widget-fields='hidden-widget' - widget-language="hidden-widget" - widget-author="cs-display-property" - widget-format='cs-display-multiple-property' - label-format='' - multiple-format - label-language='' - multiple-language - label-fields='' - multiple-fields + widget-name='cs-display-property' + widget-country='cs-display-property' + widget-publication_year='cs-display-property' + widget-description='cs-display-property' + widget-fields='hidden-widget' + widget-language="hidden-widget" + widget-author="cs-display-property" + widget-format='cs-display-multiple-property' + label-format='' + multiple-format + label-language='' + multiple-language + label-fields='' + multiple-fields + + paginate-by="5" + ) + + //Step 5 + sib-display#circles-list( + data-src=`${endpoints.steps}5/`, + fields='name' + + label-name ='Step 5 ' + label-resources='' + + widget-name='cs-steps-header' + ) + + sib-display.resource_by_step( + data-src=`${endpoints.steps}5/resources/`, + fields='name, author, format, publication_year, description, country, language, fields', + search-fields='search_for_a_resource(name, description, author), more_criterias_hidden(format, publication_year, country, language, fields, type)', + search-range-format=`${endpoints.formats}` + search-range-language=`${endpoints.languages}` + search-range-fields=`${endpoints.fields}` + search-range-type=`${endpoints.types}` + + + search-widget-search_for_a_resource="hidden-widget" + search-widget-more_criterias_hidden="hidden-widget" + search-multiple-type='sib-form-dropdown' + search-widget-type='sib-form-auto-completion' + search-multiple-format='sib-form-dropdown' + search-widget-format='sib-form-auto-completion' + search-multiple-language='sib-form-dropdown' + search-widget-language='sib-form-auto-completion' + search-multiple-fields='sib-form-dropdown' + search-widget-fields='sib-form-auto-completion' + - paginate-by="5" - ) - + widget-name='cs-display-property' + widget-country='cs-display-property' + widget-publication_year='cs-display-property' + widget-description='cs-display-property' + widget-fields='hidden-widget' + widget-language="hidden-widget" + widget-author="cs-display-property" + widget-format='cs-display-multiple-property' + label-format='' + multiple-format + label-language='' + multiple-language + label-fields='' + multiple-fields + + paginate-by="5" + ) + diff --git a/src/scripts/coopstarter.js b/src/scripts/coopstarter.js index cccba750..c998511e 100644 --- a/src/scripts/coopstarter.js +++ b/src/scripts/coopstarter.js @@ -14,6 +14,18 @@ function openTab(pageName, elmnt) { elmnt.classList.add("active"); } +//Manage the visual of the fake tabs in entrepreneur dashboard. +function openFakeTab(elmnt) { + // Hide all elements with class="tabcontent" by default */ + var i, tablinks; + tablinks = document.getElementsByClassName("tablink"); + + for (i = 0; i < tablinks.length; i++) { + tablinks[i].classList.remove("active"); + } + elmnt.classList.add("active"); +} + function linkDatasetToField(detail, targetFormName, inputName) { let targetForm = document.getElementById(targetFormName); targetForm.addEventListener("populate", event => { @@ -38,16 +50,18 @@ function refreshList(formId, listId) { //Remove pagination when there is no resource in a step group function actualizePagination() { - console.log("we actu") var resources_containers = document.querySelectorAll( ".resource_by_step sib-form+div" ); for (let resources_container of resources_containers) { - if (resources_container.childElementCount < 5 || resources_container.nextSibling.querySelector("nav span span+span").textContent == 1 ) { + if ( + resources_container.childElementCount < 5 || + resources_container.nextSibling.querySelector("nav span span+span") + .textContent == 1 + ) { resources_container.nextSibling.setAttribute("style", "display:none"); } else { resources_container.nextSibling.setAttribute("style", "display:block"); - } } } @@ -143,13 +157,42 @@ jQuery(document).ready(function($) { // https://git.happy-dev.fr/startinblox/framework/sib-core/issues/453 window.setTimeout(() => { + //Manage fake tabs + let tabs = document.getElementsByClassName("filter_by_type"); + let type_hidden_field = document.querySelectorAll( + 'hidden-widget[name="more_criterias_hidden"] select[name="type"]' + ); + + for (let tab of tabs) { + tab.addEventListener("click", function() { + if (tab.classList.contains("active")) { + + //Fullfill hidden field + let type_field_search = tab + .querySelector(`sib-display`) + .getAttribute("data-src"); + + type_hidden_field.forEach(function(select_hidden) { + options_hidden = select_hidden.getElementsByTagName("option"); + for (let option_hidden of options_hidden) { + if (option_hidden.value == '{"@id": "'+type_field_search+'"}') { + //Actually selecting the option if it is the good one + option_hidden.setAttribute("selected", "selected"); + select_hidden.setAttribute("value", option_hidden.value); + } + } + }); + } + }); + } + //To retrieve format //TODO: How we should filled the hidden field with multiple value? //TODO: The hidden search field set with one value doesn't work let format_field_search = more_criterias_form.querySelector( `select[name="format"]` ); - format_hidden_field = document.querySelectorAll( + let format_hidden_field = document.querySelectorAll( 'hidden-widget[name="more_criterias_hidden"] select[name="format"]' ); @@ -167,11 +210,11 @@ jQuery(document).ready(function($) { if (option_hidden.value == option_selected.value) { //Actually selecting the option if it is the good one option_hidden.setAttribute("selected", "selected"); - select_hidden.setAttribute('value', option_selected.value) + select_hidden.setAttribute("value", option_selected.value); } //Trigerring a reload of the associated form - let parent_form = select_hidden.closest('sib-form'); + let parent_form = select_hidden.closest("sib-form"); parent_form.component.inputChange(); } actualizePagination(); @@ -201,12 +244,11 @@ jQuery(document).ready(function($) { if (option_hidden.value == option_selected.value) { //Actually selecting the option if it is the good one option_hidden.setAttribute("selected", "selected"); - select_hidden.setAttribute('value', option_selected.value) - + select_hidden.setAttribute("value", option_selected.value); } //Trigerring a reload of the associated form - let parent_form = select_hidden.closest('sib-form'); + let parent_form = select_hidden.closest("sib-form"); parent_form.component.inputChange(); } actualizePagination(); @@ -233,15 +275,14 @@ jQuery(document).ready(function($) { //Removing the selected attribute from previous selection option_hidden.removeAttribute("selected"); - if (option_hidden.value == option_selected.value) { //Actually selecting the option if it is the good one option_hidden.setAttribute("selected", "selected"); - select_hidden.setAttribute('value', option_selected.value) + select_hidden.setAttribute("value", option_selected.value); } //Trigerring a reload of the associated form - let parent_form = select_hidden.closest('sib-form'); + let parent_form = select_hidden.closest("sib-form"); parent_form.component.inputChange(); } actualizePagination(); @@ -249,7 +290,6 @@ jQuery(document).ready(function($) { }); }; - //To retrieve year of publication //WARNING: If the user want to select "20" to get 21century made, he will get no result. //I think it is a UX problem. -- GitLab