diff --git a/src/includes/components/widgets.pug b/src/includes/components/widgets.pug index dd460b9db7faadabb8043c805c31bc20deecd866..b8de6880ae50035538ff0cde33e4dcdcd9f109c9 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/dashboard.pug b/src/includes/entrepreneur/dashboard.pug index e91bebd00b6ce36ef844d0efce9bdcbc8a8faddb..106a3a9963c677f1abb6f98ab305e1894a2420ab 100644 --- a/src/includes/entrepreneur/dashboard.pug +++ b/src/includes/entrepreneur/dashboard.pug @@ -7,9 +7,6 @@ header#header(role='banner') include ./components/header.pug section#home - div#coopstarter-loader - hidden Loading, please wait... - //TODO: //-Distinguish the search form from the listing //-Create two Sib-displays getting the resources by "types" diff --git a/src/includes/entrepreneur/resources/list.pug b/src/includes/entrepreneur/resources/list.pug index 124b14c5c3dc4606196f7ec7342c0d708f7562e9..484ccf810af16637cf7779bad6babaf4121384af 100644 --- a/src/includes/entrepreneur/resources/list.pug +++ b/src/includes/entrepreneur/resources/list.pug @@ -14,9 +14,12 @@ container.block_list.flex.flex_espace div.w_75.block-g-entre div h2.title_form Search for a resource + div#resources-loader + hidden Loading resources, please wait... + sib-form#search-by-keyword( data-src=`${endpoints.resources}`, - loader-id="coopstarter-loader" + loader-id="resources-loader" fields='keyword(name_keyword, description, author)' label-keyword="Search by author, name..." widget-keyword="sib-form-placeholder-text" @@ -75,249 +78,279 @@ container.block_list.flex.flex_espace div div.button_base Make a request - div#resources-loader - hidden Loading resources, please wait... + + //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=`${endpoints.types}1/` + fields='name' + widget-name='fake-tabs' + ) - //Step 1 - sib-display#circles-list( - loader-id="resources-loader" - data-src=`${endpoints.steps}1/`, - fields='name' + div(class='tablink filter_by_type', onclick="openFakeTab(this)") + sib-display#type2( + data-src=`${endpoints.types}2/` + fields='name' + widget-name='fake-tabs' + ) - 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" - ) + div.block_log.block_list + + //Step 1 + sib-display#circles-list( + loader-id="resources-loader" + data-src=`${endpoints.steps}1/`, + fields='name' - //Step 2 - sib-display#circles-list( - data-src=`${endpoints.steps}2/`, - 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-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 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 2 + sib-display#circles-list( + data-src=`${endpoints.steps}2/`, + fields='name' - //Step 3 - sib-display#circles-list( - data-src=`${endpoints.steps}3/`, - 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 b5ce30fd3e6ea3b32dbb9d99b57b7df5df3b96bb..910ba261a72963e26e5326820a8c56c1e25526a8 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 => { @@ -74,7 +86,6 @@ function selectHiddenManagement(select_hidden, option_selected, form) { } form.querySelector("sib-form").component.inputChange(); refreshPagination(); - } //Manage input hidden field to fullfill them with more "more criterias" selection @@ -82,7 +93,37 @@ function inputHiddenManagement(field, field_search, form) { field.setAttribute("value", field_search.value); form.querySelector("sib-form").component.inputChange(); refreshPagination(); +} +//Manage select hidden for type to fullfill them with more "more criterias" selection +function selectHiddenManagementForType(tab, form) { + let type_hidden_field = document.querySelectorAll( + 'hidden-widget[name="more_criterias_hidden"] select[name="type"]' + ); + 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) { + option_hidden.removeAttribute("selected"); + 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); + form.querySelector("sib-form").component.inputChange(); + refreshPagination(); + } + } + //Trigerring a reload of the associated form + let parent_form = select_hidden.closest("sib-form"); + parent_form.component.inputChange(); + refreshPagination(); + }); + } } jQuery(document).ready(function($) { @@ -133,8 +174,15 @@ jQuery(document).ready(function($) { forms.forEach(form => { form.addEventListener("populate", e => { + //Manage fake tabs + let tabs = document.getElementsByClassName("filter_by_type"); + for (let tab of tabs) { + selectHiddenManagementForType(tab, form); + } + //On load in dashbord Entrepreneur refreshPagination(); + //SEARCH BY KEYWORD //To retrieve keyword //https://git.happy-dev.fr/startinblox/framework/sib-core/issues/379 @@ -152,7 +200,6 @@ jQuery(document).ready(function($) { hidden_field.setAttribute("value", keyword_field.value); form.querySelector("sib-form").component.inputChange(); refreshPagination(); - }); }); @@ -168,14 +215,12 @@ jQuery(document).ready(function($) { }; //MORE CRITERIAS - //TODO: Refactor this section ? const more_criterias_form = document.getElementById("more_criterias"); // https://git.happy-dev.fr/startinblox/framework/sib-core/issues/453 window.setTimeout(() => { //Refresh data list on delete resources const deleteButton = document.querySelectorAll("sib-delete"); - for (var i = 0; i < deleteButton.length; i++) { deleteButton[i].addEventListener("resourceDeleted", e => { const historyList = document.getElementById("resources-history"); @@ -198,13 +243,21 @@ jQuery(document).ready(function($) { }); } + //Manage fake tabs for type + let tabs = document.getElementsByClassName("filter_by_type"); + + for (let tab of tabs) { + tab.addEventListener( + "click", + selectHiddenManagementForType(tab, form) + ); + } + //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"]' );