diff --git a/src/includes/entrepreneur/resources/list.pug b/src/includes/entrepreneur/resources/list.pug index edd6cffe69e21db3c6f0e5a2b929a9ad5043531e..79760e2b3226602eac801039d886412e99a0570b 100644 --- a/src/includes/entrepreneur/resources/list.pug +++ b/src/includes/entrepreneur/resources/list.pug @@ -17,7 +17,7 @@ container.block_list.flex.flex_espace div#resources-loader hidden <i class="fas fa-cog fa-spin"></i> - sib-form#search-by-keyword( + sib-form.search-by-keyword( data-src=`${endpoints.resources}`, loader-id="resources-loader" fields='keyword(name_keyword, description, author)' @@ -31,10 +31,10 @@ container.block_list.flex.flex_espace naked ) - div#keyword_submit.button__actions + div.keyword_submit.button__actions div.button_base.ico_gauche Search - sib-form#instance_database_only( + sib-form.instance_database_only( data-src=`${endpoints.resources}`, fields='instance_database_only' widget-instance_database_only='cs-display-checkbox' @@ -42,7 +42,7 @@ container.block_list.flex.flex_espace naked ) - sib-form#more_criterias.flex.flex_espace( + sib-form.more_criterias.flex.flex_espace( data-src=`${endpoints.resources}`, fields='header_criterias, format, publication_year, country, language, fields' label-header_criterias='More criterias' diff --git a/src/includes/head.pug b/src/includes/head.pug index 34dc202dd5c585605af4e62718102ce01b1dcd29..3f431dc843b07ff34c35a4fc07cd5a097858ec02 100644 --- a/src/includes/head.pug +++ b/src/includes/head.pug @@ -6,7 +6,7 @@ head script(type="module" src="https://unpkg.com/@startinblox/router") script(type="module" src="https://unpkg.com/@startinblox/oidc") script(type="module" src="https://unpkg.com/@startinblox/component-conversation") + script(src="https://kit.fontawesome.com/48014d2af3.js") script(src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous") script(src="/scripts/coopstarter.js") - <script src="https://kit.fontawesome.com/48014d2af3.js"></script> link(rel="stylesheet" href="/styles/index.css") diff --git a/src/includes/mentor/browseDatabase.pug b/src/includes/mentor/browseDatabase.pug index ae329763e9b626bf95b2c009980a64ff7e37ef85..6280bfb9e720026bff777c5e25057cbc12723c5d 100644 --- a/src/includes/mentor/browseDatabase.pug +++ b/src/includes/mentor/browseDatabase.pug @@ -25,7 +25,7 @@ container.block_list.flex.flex_espace div#resources-public-loader hidden Loading resources, please wait... - sib-form#search-by-keyword( + sib-form.search-by-keyword( data-src=`${endpoints.resources}`, loader-id="resources-public-loader" fields='keyword(name_keyword, description, author)' @@ -39,10 +39,10 @@ container.block_list.flex.flex_espace naked ) - div#keyword_submit.button__actions + div.keyword_submit.button__actions div.button_base.ico_gauche Search - sib-form#instance_database_only( + sib-form.instance_database_only( data-src=`${endpoints.resources}`, fields='instance_database_only' widget-instance_database_only='cs-display-checkbox' @@ -50,7 +50,7 @@ container.block_list.flex.flex_espace naked ) - sib-form#more_criterias( + sib-form.more_criterias( data-src=`${endpoints.resources}`, fields='header_criterias, format, publication_year, country, language, fields' label-header_criterias='More criterias' diff --git a/src/includes/public/resources/list.pug b/src/includes/public/resources/list.pug index c7c50a9730f5dffc691c24804e3a516e4d722fa1..e760e81272fd75bda89030d2c4441737595fbe5c 100644 --- a/src/includes/public/resources/list.pug +++ b/src/includes/public/resources/list.pug @@ -18,7 +18,7 @@ container.block_list.flex.flex_espace div#resources-public-loader hidden Loading resources, please wait... - sib-form#search-by-keyword( + sib-form.search-by-keyword( data-src=`${endpoints.resources}`, loader-id="resources-public-loader" fields='keyword(name_keyword, description, author)' @@ -32,10 +32,10 @@ container.block_list.flex.flex_espace naked ) - div#keyword_submit.button__actions + div.keyword_submit.button__actions div.button_base.ico_gauche Search - sib-form#instance_database_only( + sib-form.instance_database_only( data-src=`${endpoints.resources}`, fields='instance_database_only' widget-instance_database_only='cs-display-checkbox' @@ -43,7 +43,7 @@ container.block_list.flex.flex_espace naked ) - sib-form#more_criterias( + sib-form.more_criterias( data-src=`${endpoints.resources}`, fields='header_criterias, format, publication_year, country, language, fields' label-header_criterias='More criterias' diff --git a/src/scripts/coopstarter.js b/src/scripts/coopstarter.js index 999720a49eceb017495a683e63f962f206b95c5d..34d69a86117ecd442c6e23cdee8d90c64723acdd 100644 --- a/src/scripts/coopstarter.js +++ b/src/scripts/coopstarter.js @@ -70,7 +70,7 @@ function refreshPagination() { } //Manage select hidden to fullfill them with more "more criterias" selection -function selectHiddenManagement(select_hidden, option_selected, form) { +function selectHiddenManagement(select_hidden, option_selected) { options_hidden = select_hidden.getElementsByTagName("option"); for (let option_hidden of options_hidden) { //Removing the selected attribute from previous selection @@ -81,25 +81,25 @@ function selectHiddenManagement(select_hidden, option_selected, form) { option_hidden.setAttribute("selected", "selected"); select_hidden.setAttribute("value", option_selected.value); } - - //Trigerring a reload of the associated form - let parent_form = select_hidden.closest("sib-form"); - parent_form.component.inputChange(); } - form.querySelector("sib-form").component.inputChange(); + + //Trigerring a reload of the associated form + let parent_form = select_hidden.closest("sib-form"); + parent_form.component.inputChange(); refreshPagination(); } //Manage input hidden field to fullfill them with more "more criterias" selection -function inputHiddenManagement(field, field_search, form) { +function inputHiddenManagement(field, field_search) { field.setAttribute("value", field_search.value); - form.querySelector("sib-form").component.inputChange(); + let parent_form = field.closest("sib-form"); + parent_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( + let type_hidden_field = form.querySelectorAll( 'hidden-widget[name="more_criterias_hidden"] select[name="type"]' ); if (tab.classList.contains("active")) { @@ -116,10 +116,9 @@ function selectHiddenManagementForType(tab, form) { //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(); @@ -128,106 +127,9 @@ function selectHiddenManagementForType(tab, form) { } } -jQuery(document).ready(function($) { - //Refresh pagination - refreshPagination(); - - // Get the element with id="defaultOpen" and click on it - document.getElementById("defaultOpen").click(); - - let userAccountDataSrc = document.getElementById("user-account-picture"); - linkDatasetToField(userAccountDataSrc, "validation-form", "reviewer"); - linkDatasetToField(userAccountDataSrc, "improvement-dialog-form", "reviewer"); - linkDatasetToField(userAccountDataSrc, "refusal-dialog-form", "reviewer"); - - refreshList("resource-creation-form", "resources-history"); - refreshList("validation-form", "pending-resources"); - refreshList("refusal-dialog-form", "pending-resources"); - refreshList("improvement-dialog-form", "pending-resources"); - refreshList("entrepreneur_profile_creation", "entrepreneur_info"); - refreshList("entrepreneur_profile_creation", "entrepreneur_contact"); - refreshList("mentor_profile_creation", "mentor_info"); - refreshList("mentor_profile_creation", "mentor_complementary"); - refreshList("mentor_profile_creation", "mentor_contact"); - refreshList("entrepreneur_profile_edition", "entrepreneur_info"); - refreshList("entrepreneur_profile_edition", "entrepreneur_contact"); - refreshList("mentor_profile_edition", "mentor_info"); - refreshList("mentor_profile_edition", "mentor_complementary"); - refreshList("mentor_profile_edition", "mentor_contact"); - - var header_dropdown = $('.dropdownWrapper'), - drop_choices = header_dropdown.find('.dropdownLabel'); - - drop_choices.on('click', function(e){ - e.stopPropagation(); - var element = $(this).parent(); - element.find('.dropdownPanel').fadeToggle(500); - }); - - $("body").click(function(){ - $('.dropdownPanel').hide(500); - }); - - const logoutButtons = document.getElementsByClassName("logout-button"); - for (var i = 0; i < logoutButtons.length; i++) { - logoutButtons[i].addEventListener("click", function() { - window.dispatchEvent( - new CustomEvent("requestNavigation", { - detail: { route: "splash-index" } - }) - ); - document.querySelector("sib-auth").logout(); - setTimeout(function() { - location.reload(); - }, 1000); - }); - } - - //MENTOR DASHBOARD************************************************************* - window.setTimeout(() => { - //Manage the accordion in request mentor dashboard. - var accRequest = document.querySelectorAll( - "#requests accordion-request-resource" - ); - - for (let i = 0; i < accRequest.length; i++) { - accRequest[i].addEventListener("click", function() { - /* Toggle between adding and removing the "active" class, - to highlight the button that controls the panel */ - this.classList.toggle("active"); - - /* Toggle between hiding and showing the active panel */ - var panelRequest = this.nextElementSibling; - if (panelRequest.style.maxHeight) { - panelRequest.style.maxHeight = null; - } else { - panelRequest.style.maxHeight = panelRequest.scrollHeight + "px"; - } - }); - } - }, 4000); - - //ENTREPRENEUR DASHBOARD************************************************************* - - //Accordion by step - var acc = document.getElementsByClassName("accordion"); - var i; - - for (i = 0; i < acc.length; i++) { - acc[i].addEventListener("click", function() { - this.classList.toggle("active"); - var panel = this.nextElementSibling; - if (panel.style.display === "block") { - panel.style.display = "none"; - } else { - panel.style.display = "block"; - } - }); - } - - //In the entrepreneur dashboard, we set data from the display form to the hidden ones. - var forms = document.querySelectorAll(".resource_by_step"); - +function addProperFilterToSearchComponents(targetId) { + var baseElement = document.getElementById(targetId); + var forms = baseElement.querySelectorAll(".resource_by_step"); forms.forEach(form => { form.addEventListener("populate", e => { //Manage fake tabs @@ -243,24 +145,25 @@ jQuery(document).ready(function($) { //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_form = baseElement.querySelectorAll(".search-by-keyword")[0]; let keyword_field = keyword_form.querySelector(`input[name="keyword"]`); - let keyword_submit = document.getElementById(`keyword_submit`); - let keyword_hidden_fields = document.querySelectorAll( + let keyword_submit = baseElement.querySelectorAll(" .keyword_submit")[0]; + let keyword_hidden_fields = baseElement.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(); + let parent_form = hidden_field.closest("sib-form"); + parent_form.component.inputChange(); refreshPagination(); }); }); //SEARCH IN DATABASE INSTANCE ONLY - let instance_only = document.getElementById("instance_database_only"); + let instance_only = baseElement.querySelectorAll(".instance_database_only")[0]; let checkbox_instance_only = instance_only.querySelector("input"); if (checkbox_instance_only) { checkbox_instance_only.onclick = function() { @@ -272,34 +175,10 @@ jQuery(document).ready(function($) { } //MORE CRITERIAS - const more_criterias_form = document.getElementById("more_criterias"); + const more_criterias_form = baseElement.querySelectorAll(".more_criterias")[0]; // 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"); - historyList.dataset.src = historyList.dataset.src; - - let confirm_suppress = document.getElementById("confirm_suppress"); - confirm_suppress.setAttribute("hidden", "hidden"); - - //If we supress from the detail resource view, we close this view. - let mentor_resource_detail = document.getElementById( - "mentor-resource-detail" - ); - mentor_resource_detail.setAttribute("hidden", "hidden"); - this.dispatchEvent( - new CustomEvent("requestNavigation", { - bubbles: true, - detail: { route: "actions" } - }) - ); - }); - } - //Manage fake tabs for type let tabs = document.getElementsByClassName("filter_by_type"); for (let tab of tabs) { @@ -313,7 +192,7 @@ jQuery(document).ready(function($) { let format_field_search = more_criterias_form.querySelector( `select[name="format"]` ); - let format_hidden_field = document.querySelectorAll( + let format_hidden_field = baseElement.querySelectorAll( 'hidden-widget[name="more_criterias_hidden"] select[name="format"]' ); @@ -324,7 +203,7 @@ jQuery(document).ready(function($) { ); format_hidden_field.forEach(function(select_hidden) { - selectHiddenManagement(select_hidden, option_selected, form); + selectHiddenManagement(select_hidden, option_selected); }); }; @@ -332,7 +211,7 @@ jQuery(document).ready(function($) { let language_field_search = more_criterias_form.querySelector( `select[name="language"]` ); - language_hidden_field = document.querySelectorAll( + language_hidden_field = baseElement.querySelectorAll( 'hidden-widget[name="more_criterias_hidden"] select[name="language"]' ); @@ -342,7 +221,7 @@ jQuery(document).ready(function($) { ); language_hidden_field.forEach(function(select_hidden) { - selectHiddenManagement(select_hidden, option_selected, form); + selectHiddenManagement(select_hidden, option_selected); }); }; @@ -350,7 +229,7 @@ jQuery(document).ready(function($) { let field_field_search = more_criterias_form.querySelector( `select[name="fields"]` ); - let field_hidden_field = document.querySelectorAll( + let field_hidden_field = baseElement.querySelectorAll( 'hidden-widget[name="more_criterias_hidden"] select[name="fields"]' ); @@ -360,7 +239,7 @@ jQuery(document).ready(function($) { ); field_hidden_field.forEach(function(select_hidden) { - selectHiddenManagement(select_hidden, option_selected, form); + selectHiddenManagement(select_hidden, option_selected); }); }; @@ -370,7 +249,7 @@ jQuery(document).ready(function($) { let year_field_search = more_criterias_form.querySelector( `input[name="publication_year"]` ); - let year_hidden_fields = document.querySelectorAll( + let year_hidden_fields = baseElement.querySelectorAll( 'hidden-widget[name="more_criterias_hidden"] input[name="publication_year"]' ); @@ -384,7 +263,7 @@ jQuery(document).ready(function($) { let country_field_search = more_criterias_form.querySelector( `input[name="country"]` ); - let country_hidden_fields = document.querySelectorAll( + let country_hidden_fields = baseElement.querySelectorAll( 'hidden-widget[name="more_criterias_hidden"] input[name="country"]' ); @@ -393,7 +272,137 @@ jQuery(document).ready(function($) { inputHiddenManagement(field, country_field_search, form); }); }); - }, 4000); + }, 1000); }); }); +} + +jQuery(document).ready(function($) { + //Refresh pagination + refreshPagination(); + + // Get the element with id="defaultOpen" and click on it + document.getElementById("defaultOpen").click(); + + let userAccountDataSrc = document.getElementById("user-account-picture"); + linkDatasetToField(userAccountDataSrc, "validation-form", "reviewer"); + linkDatasetToField(userAccountDataSrc, "improvement-dialog-form", "reviewer"); + linkDatasetToField(userAccountDataSrc, "refusal-dialog-form", "reviewer"); + + refreshList("resource-creation-form", "resources-history"); + refreshList("validation-form", "pending-resources"); + refreshList("refusal-dialog-form", "pending-resources"); + refreshList("improvement-dialog-form", "pending-resources"); + refreshList("entrepreneur_profile_creation", "entrepreneur_info"); + refreshList("entrepreneur_profile_creation", "entrepreneur_contact"); + refreshList("mentor_profile_creation", "mentor_info"); + refreshList("mentor_profile_creation", "mentor_complementary"); + refreshList("mentor_profile_creation", "mentor_contact"); + refreshList("entrepreneur_profile_edition", "entrepreneur_info"); + refreshList("entrepreneur_profile_edition", "entrepreneur_contact"); + refreshList("mentor_profile_edition", "mentor_info"); + refreshList("mentor_profile_edition", "mentor_complementary"); + refreshList("mentor_profile_edition", "mentor_contact"); + + var header_dropdown = $('.dropdownWrapper'), + drop_choices = header_dropdown.find('.dropdownLabel'); + + if (drop_choices) { + drop_choices.on('click', function(e){ + e.stopPropagation(); + var element = $(this).parent(); + element.find('.dropdownPanel').fadeToggle(500); + }); + + $("body").click(function(){ + $('.dropdownPanel').hide(500); + }); + } + + const logoutButtons = document.getElementsByClassName("logout-button"); + for (var i = 0; i < logoutButtons.length; i++) { + logoutButtons[i].addEventListener("click", function() { + window.dispatchEvent( + new CustomEvent("requestNavigation", { + detail: { route: "splash-index" } + }) + ); + document.querySelector("sib-auth").logout(); + setTimeout(function() { + location.reload(); + }, 1000); + }); + } + + //MENTOR DASHBOARD************************************************************* + window.setTimeout(() => { + //Manage the accordion in request mentor dashboard. + var accRequest = document.querySelectorAll( + "#requests accordion-request-resource" + ); + + for (let i = 0; i < accRequest.length; i++) { + accRequest[i].addEventListener("click", function() { + /* Toggle between adding and removing the "active" class, + to highlight the button that controls the panel */ + this.classList.toggle("active"); + + /* Toggle between hiding and showing the active panel */ + var panelRequest = this.nextElementSibling; + if (panelRequest.style.maxHeight) { + panelRequest.style.maxHeight = null; + } else { + panelRequest.style.maxHeight = panelRequest.scrollHeight + "px"; + } + }); + } + + //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"); + historyList.dataset.src = historyList.dataset.src; + + let confirm_suppress = document.getElementById("confirm_suppress"); + confirm_suppress.setAttribute("hidden", "hidden"); + + //If we supress from the detail resource view, we close this view. + let mentor_resource_detail = document.getElementById( + "mentor-resource-detail" + ); + mentor_resource_detail.setAttribute("hidden", "hidden"); + this.dispatchEvent( + new CustomEvent("requestNavigation", { + bubbles: true, + detail: { route: "actions" } + }) + ); + }); + } + }, 2000); + + //ENTREPRENEUR DASHBOARD************************************************************* + + window.setTimeout(() => { + //Accordion by step + var acc = document.getElementsByClassName("accordion"); + var i; + + for (i = 0; i < acc.length; i++) { + acc[i].addEventListener("click", function() { + this.classList.toggle("active"); + var panel = this.nextElementSibling; + if (panel.style.display === "block") { + panel.style.display = "none"; + } else { + panel.style.display = "block"; + } + }); + } + }, 2000); + + //In the entrepreneur dashboard, we set data from the display form to the hidden ones. + addProperFilterToSearchComponents('entrepreneur-resource-list'); }); + diff --git a/src/styles/index.scss b/src/styles/index.scss index fcc6dafb9a22dcb3a94713782163b3fcd972e65e..45057d64fd117b7fc4d5b13ef5d235e62417fc88 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -755,7 +755,7 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*/ float: left; width: 76%; } - #keyword_submit div{ + .keyword_submit div{ float: right; margin-top: 0; width: 20%;