diff --git a/src/includes/entrepreneur/resources/list.pug b/src/includes/entrepreneur/resources/list.pug index 94b5fe6bc199c047ac30017846d169efaab2715f..0b4517305dfb3d077f69dd3fe9739755463fdef5 100644 --- a/src/includes/entrepreneur/resources/list.pug +++ b/src/includes/entrepreneur/resources/list.pug @@ -39,9 +39,61 @@ container.block_list.flex.flex_espace naked ) - sib-form#more_criterias( - data-src=`${endpoints.resources}`, - fields='header_criterias, format, publication_year, country, language.name, fields, steps' +.block_log.block_creat_count + h2.title_form Search for a resource + sib-form#search-by-keyword( + data-src=`${endpoints.resources}`, + fields='keyword(name_keyword, description, author)' + + label-keyword="Search by author, name..." + + widget-keyword="sib-form-placeholder-text" + + widget-description='cs-display-property' + widget-name_keyword='cs-display-property' + widget-author='cs-display-property' + + naked + ) + + div#keyword_submit.button__actions + div.button_base.ico_gauche Search + + sib-form#instance_database_only( + data-src=`${endpoints.resources}`, + fields='instance_database_only' + + widget-instance_database_only='cs-display-checkbox' + + class-instance_database_only = 'ss-list checkbox' + + naked + ) + + sib-form#more_criterias( + data-src=`${endpoints.resources}`, + fields='header_criterias, format, publication_year, country, language.name, fields' + + label-header_criterias='More criterias' + label-format='Format:' + label-publication_year='Year of publication' + label-country='Country of publication' + label-language.name='Language' + label-fields='Field' + widget-header_criterias='cs-section_header' + + range-language.name=`${endpoints.languages}` + range-fields=`${endpoints.fields}` + range-format=`${endpoints.formats}` + + multiple-language.name='sib-multiple-select' + widget-language.name='sib-form-auto-completion' + + multiple-format='sib-form-dropdown' + widget-format='sib-form-auto-completion' + + multiple-fields='sib-multiple-select' + widget-fields='sib-form-auto-completion' label-header_criterias='More criterias' label-format='Format:' @@ -96,9 +148,13 @@ container.block_list.flex.flex_espace data-src=`${endpoints.steps}1/resources/`, fields='name, author, format, publication_year, description, country, language.name, field', search-fields='search_for_a_resource(name, description, author), more_criterias_hidden(format, publication_year, country, language.name, field)', + search-range-format=`${endpoints.formats}` 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' widget-name='cs-display-property' widget-country='cs-display-property' @@ -129,8 +185,12 @@ container.block_list.flex.flex_espace fields='name, author, format, publication_year, description, country, language.name, field', search-fields='search_for_a_resource(name, description, author), more_criterias_hidden(format, publication_year, country, language.name, field)', + search-range-format=`${endpoints.formats}` + 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' widget-name='cs-display-property' widget-country='cs-display-property' @@ -162,8 +222,12 @@ container.block_list.flex.flex_espace fields='name, author, format, publication_year, description, country, language.name, field', search-fields='search_for_a_resource(name, description, author), more_criterias_hidden(format, publication_year, country, language.name, field)', + search-range-format=`${endpoints.formats}` + 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' widget-name='cs-display-property' widget-country='cs-display-property' @@ -195,8 +259,12 @@ container.block_list.flex.flex_espace fields='name, author, format, publication_year, description, country, language.name, field', search-fields='search_for_a_resource(name, description, author), more_criterias_hidden(format, publication_year, country, language.name, field)', + search-range-format=`${endpoints.formats}` + 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' widget-name='cs-display-property' widget-country='cs-display-property' @@ -227,8 +295,12 @@ container.block_list.flex.flex_espace fields='name, author, format, publication_year, description, country, language.name, field', search-fields='search_for_a_resource(name, description, author), more_criterias_hidden(format, publication_year, country, language.name, field)', + search-range-format=`${endpoints.formats}` + 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' widget-name='cs-display-property' widget-country='cs-display-property' diff --git a/src/scripts/coopstarter.js b/src/scripts/coopstarter.js index dd7653db5b3ab601035c9b218a813efa7a1fb4be..551622ddbdcc955d2ce50f2363982b2e8992756e 100644 --- a/src/scripts/coopstarter.js +++ b/src/scripts/coopstarter.js @@ -70,135 +70,133 @@ jQuery(document).ready(function($) { }); } + //ENTREPRENEUR DASHBOARD************************************************************* //In the entrepreneur dashboard, we set data from the display form to the hidden ones. var forms = document.querySelectorAll(".resource_by_step"); forms.forEach(form => { - form.addEventListener( - "populate", - e => { - //To retrieve keyword - //https://git.happy-dev.fr/startinblox/framework/sib-core/issues/379 - //TODO: Wait for a solution to filter with multiple value with "OR" instead of "AND". - let keyword_form = document.getElementById("search-by-keyword"); - let keyword_field = keyword_form.querySelector(`input[name="keyword"]`); - - let keyword_submit = document.getElementById(`keyword_submit`); - let keyword_hidden_fields = document.querySelectorAll( - 'hidden-widget[name="search_for_a_resource"] input' + form.addEventListener("populate", e => { + //SEARCH BY KEYWORD + //To retrieve keyword + //https://git.happy-dev.fr/startinblox/framework/sib-core/issues/379 + //TODO: Wait for a solution to filter with multiple value with "OR" instead of "AND". + let keyword_form = document.getElementById("search-by-keyword"); + let keyword_field = keyword_form.querySelector(`input[name="keyword"]`); + + let keyword_submit = document.getElementById(`keyword_submit`); + let keyword_hidden_fields = document.querySelectorAll( + 'hidden-widget[name="search_for_a_resource"] input' + ); + + keyword_submit.addEventListener("click", function() { + keyword_hidden_fields.forEach(hidden_field => { + hidden_field.setAttribute("value", keyword_field.value); + form.querySelector("sib-form").component.inputChange(); + }); + }); + + //SEARCH IN DATABASE INSTANCE ONLY + let instance_only = document.getElementById("instance_database_only"); + let checkbox_instance_only = instance_only.querySelector("input"); + + checkbox_instance_only.onclick = function() { + if (this.checked) { + //We have to retrieve all data-scr needed to make them pointed only on the instance. + //How to? + } + }; + + //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(() => { + //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( + 'hidden-widget[name="more_criterias_hidden"] select[name="format"]' + ); + + + + format_field_search.onchange = function() { + console.log("format_field_search", format_field_search); + format_hidden_field.forEach(function(select_hidden) { + options_hidden = select_hidden.getElementsByTagName("option"); + + for (let option_hidden of options_hidden) { + + option_selected = format_field_search.querySelector( + "option:checked" + ); + + if (option_hidden.value == option_selected.value) { + console.log("option_selected", option_selected ) + option_hidden.setAttribute("checked", "checked"); + console.log("option_hidden", option_hidden ) + } + + } + }); + }; + + //To retrieve language + //TODO: How we should filled the hidden field? + let language_field_search = more_criterias_form.querySelector( + `select[name="language.name"]` + ); + language_hidden_fields = document.querySelectorAll( + 'hidden-widget[name="more_criterias_hidden"] input[name="language.name"]' ); - keyword_submit.addEventListener("click", function() { - keyword_hidden_fields.forEach(hidden_field => { - hidden_field.setAttribute("value", keyword_field.value); + language_field_search.onchange = function() { + language_hidden_fields.forEach(language_field => { + language_field.setAttribute( + "value", + language_field_search.options[language_field_search.selectedIndex] + .text + ); form.querySelector("sib-form").component.inputChange(); }); - }); + }; - //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(() => { - - //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"]` - ); - console.log(format_field_search); - format_hidden_fields = document.querySelectorAll( - 'hidden-widget[name="more_criterias_hidden"] input[name="format"]' - ); - - format_field_search.onchange = function() { - console.log("new format ask") - format_hidden_fields.forEach(format_field => { - console.log(format_field) - format_field.setAttribute( - "value", - format_field_search.options[format_field_search.selectedIndex] - .text - ); - form.querySelector("sib-form").component.inputChange(); - }); - }; - - //To retrieve language - //TODO: How we should filled the hidden field? - let language_field_search = more_criterias_form.querySelector( - `select[name="language.name"]` - ); - language_hidden_fields = document.querySelectorAll( - 'hidden-widget[name="more_criterias_hidden"] input[name="language.name"]' - ); - - language_field_search.onchange = function() { - language_hidden_fields.forEach(language_field => { - language_field.setAttribute( - "value", - language_field_search.options[language_field_search.selectedIndex] - .text - ); - form.querySelector("sib-form").component.inputChange(); - }); - }; - - // //To retrieve step, but I think it's gonna disapear - // let step_field_search = more_criterias_form.querySelector( - // `select[name="step"]` - // ); - // step_hidden_fields = document.querySelectorAll( - // 'hidden-widget[name="more_criterias_hidden"] input[name="step"]' - // ); - - // step_field_search.onchange = function() { - // step_hidden_fields.forEach(step_field => { - // step_field.setAttribute( - // "value", - // step_field_search.options[step_field_search.selectedIndex] - // .text - // ); - // form.querySelector("sib-form").component.inputChange(); - // }); - // }; - - //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. - let year_field_search = more_criterias_form.querySelector( - `input[name="publication_year"]` - ); - let year_hidden_fields = document.querySelectorAll( - 'hidden-widget[name="more_criterias_hidden"] input[name="publication_year"]' - ); - - year_field_search.addEventListener("input", function() { - year_hidden_fields.forEach(year_field => { - year_field.setAttribute("value", year_field_search.value); - form.querySelector("sib-form").component.inputChange(); - }); + //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. + let year_field_search = more_criterias_form.querySelector( + `input[name="publication_year"]` + ); + let year_hidden_fields = document.querySelectorAll( + 'hidden-widget[name="more_criterias_hidden"] input[name="publication_year"]' + ); + + year_field_search.addEventListener("input", function() { + year_hidden_fields.forEach(year_field => { + year_field.setAttribute("value", year_field_search.value); + form.querySelector("sib-form").component.inputChange(); }); + }); + + //To retrieve the country + let country_field_search = more_criterias_form.querySelector( + `input[name="country"]` + ); + let country_hidden_fields = document.querySelectorAll( + 'hidden-widget[name="more_criterias_hidden"] input[name="country"]' + ); - //To retrieve the country - let country_field_search = more_criterias_form.querySelector( - `input[name="country"]` - ); - let country_hidden_fields = document.querySelectorAll( - 'hidden-widget[name="more_criterias_hidden"] input[name="country"]' - ); - - country_field_search.addEventListener("input", function() { - country_hidden_fields.forEach(country_field => { - country_field.setAttribute("value", country_field_search.value); - form.querySelector("sib-form").component.inputChange(); - }); + country_field_search.addEventListener("input", function() { + country_hidden_fields.forEach(country_field => { + country_field.setAttribute("value", country_field_search.value); + form.querySelector("sib-form").component.inputChange(); }); - }, 2000); - }, - 4000 - ); + }); + }, 4000); + }); }); });