mirror of
https://github.com/voltbonn/diversity.volt.link.git
synced 2024-09-28 12:53:06 +00:00
team selector
This commit is contained in:
parent
059e403040
commit
096bcebdd8
|
@ -721,10 +721,10 @@ body.success .submitWrapper {
|
||||||
}
|
}
|
||||||
|
|
||||||
.chip_box {
|
.chip_box {
|
||||||
margin: -5px;
|
margin: -4px;
|
||||||
}
|
}
|
||||||
.chip_box .chip {
|
.chip_box .chip {
|
||||||
margin: 5px;
|
margin: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
body[show=""] .page[page="intro"],
|
body[show=""] .page[page="intro"],
|
||||||
|
|
|
@ -151,23 +151,23 @@
|
||||||
|
|
||||||
<div
|
<div
|
||||||
id="team_suggestions"
|
id="team_suggestions"
|
||||||
|
class="chip_box"
|
||||||
style="
|
style="
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
display: flex;
|
padding-bottom: 16px;
|
||||||
gap: 5px;
|
margin: 4px 0 -4px 0;
|
||||||
"
|
"
|
||||||
>
|
></div>
|
||||||
<div class="chip add">Bonn</div>
|
|
||||||
<div class="chip add">Berlin</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<br />
|
<div id="selected_teams_wrapper">
|
||||||
<h3 data-translation-key="metadata_team_search_description-">Ausgewählte Teams:</h3>
|
<br />
|
||||||
|
<h3 data-translation-key="metadata_team_search_description-">Ausgewählte Teams:</h3>
|
||||||
|
|
||||||
<div class="chip_box">
|
<div class="chip_box">
|
||||||
<span id="teams_selected"></span><!--
|
<span id="teams_selected"></span><!--
|
||||||
--><span id="teams_selected_automatically"></span>
|
--><span id="teams_selected_automatically"></span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -38,28 +38,29 @@ function renderTeamSuggestions() {
|
||||||
|
|
||||||
const team_suggestions_input_value = team_suggestions_input.value.toLowerCase()
|
const team_suggestions_input_value = team_suggestions_input.value.toLowerCase()
|
||||||
|
|
||||||
|
if (team_suggestions_input_value.length > 0) {
|
||||||
|
// filter out parent_teams that are in the teams array
|
||||||
|
const teams_selected_ids = [...teams_selected]
|
||||||
|
.flatMap(team => [
|
||||||
|
team.id,
|
||||||
|
// ...team.parent_team_ids,
|
||||||
|
])
|
||||||
|
|
||||||
// filter out parent_teams that are in the teams array
|
const filtered_teams = teams
|
||||||
const teams_selected_ids = [...teams_selected]
|
.filter(team => !teams_selected_ids.includes(team.id))
|
||||||
.flatMap(team => [
|
.filter(team => team.name.toLowerCase().includes(team_suggestions_input_value))
|
||||||
team.id,
|
.sort((a, b) => a.name.toLowerCase() > b.name.toLowerCase() ? 1 : -1)
|
||||||
// ...team.parent_team_ids,
|
|
||||||
])
|
|
||||||
|
|
||||||
const filtered_teams = teams
|
for (const team of filtered_teams) {
|
||||||
.filter(team => !teams_selected_ids.includes(team.id))
|
const team_chip = document.createElement('div')
|
||||||
.filter(team => team.name.toLowerCase().includes(team_suggestions_input_value))
|
team_chip.classList.add('chip')
|
||||||
.sort((a, b) => a.name.toLowerCase() > b.name.toLowerCase() ? 1 : -1)
|
team_chip.classList.add('add')
|
||||||
|
team_chip.innerHTML = team.name
|
||||||
for (const team of filtered_teams) {
|
team_chip.addEventListener('click', () => {
|
||||||
const team_chip = document.createElement('div')
|
selectTeam(team)
|
||||||
team_chip.classList.add('chip')
|
})
|
||||||
team_chip.classList.add('add')
|
team_suggestions.appendChild(team_chip)
|
||||||
team_chip.innerHTML = team.name
|
}
|
||||||
team_chip.addEventListener('click', () => {
|
|
||||||
selectTeam(team)
|
|
||||||
})
|
|
||||||
team_suggestions.appendChild(team_chip)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function renderTeamSelected() {
|
function renderTeamSelected() {
|
||||||
|
@ -71,6 +72,13 @@ function renderTeamSelected() {
|
||||||
return a.name.toLowerCase() > b.name.toLowerCase() ? 1 : -1
|
return a.name.toLowerCase() > b.name.toLowerCase() ? 1 : -1
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const selected_teams_wrapper_node = document.getElementById('selected_teams_wrapper')
|
||||||
|
if (filtered_teams.length === 0) {
|
||||||
|
selected_teams_wrapper_node.style.display = 'none'
|
||||||
|
} else {
|
||||||
|
selected_teams_wrapper_node.style.display = 'block'
|
||||||
|
}
|
||||||
|
|
||||||
for (const team of filtered_teams) {
|
for (const team of filtered_teams) {
|
||||||
const team_chip = document.createElement('div')
|
const team_chip = document.createElement('div')
|
||||||
team_chip.classList.add('chip')
|
team_chip.classList.add('chip')
|
||||||
|
@ -127,7 +135,13 @@ function loadTeams() {
|
||||||
console.error(error)
|
console.error(error)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
loadTeams()
|
function initTeams() {
|
||||||
|
loadTeams()
|
||||||
|
renderTeamSuggestions()
|
||||||
|
renderTeamSelected()
|
||||||
|
renderTeamSelectedAutomatically()
|
||||||
|
}
|
||||||
|
initTeams()
|
||||||
|
|
||||||
const CloudFunctionsPrefix = 'https://us-central1-volt-4eca0.cloudfunctions.net/save_formdata'
|
const CloudFunctionsPrefix = 'https://us-central1-volt-4eca0.cloudfunctions.net/save_formdata'
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue