Додан фільтр на сторінці керування вісниками.
Виправлено помилки.
This commit is contained in:
@@ -162,7 +162,7 @@ const Sheeps = {
|
||||
let html = await fetch('/lib/pages/sheeps/index.html').then((response) => response.text());
|
||||
app.innerHTML = html;
|
||||
|
||||
await Sheeps.sheeps_list.setHTML();
|
||||
await Sheeps.sheeps_list.setHTML({});
|
||||
if (id) Sheeps.editor.setHTML(id);
|
||||
|
||||
SheepsEvents.init();
|
||||
@@ -182,7 +182,7 @@ const Sheeps = {
|
||||
|
||||
return Sheeps.sheeps_list.list
|
||||
},
|
||||
setHTML: async (search_value = null) => {
|
||||
setHTML: async ({search, filter}) => {
|
||||
let block_sheep_list = document.getElementById('block-sheeps-list');
|
||||
let block_sheep_info = document.getElementById('block-sheep-info');
|
||||
block_sheep_list.style.display = "flex";
|
||||
@@ -210,6 +210,9 @@ const Sheeps = {
|
||||
<div class="header">
|
||||
<h1>Всі вісники</h1>
|
||||
<div>
|
||||
<button title="Фільтрувати" onclick="Sheeps.filter.open()">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svgjs="http://svgjs.com/svgjs" x="0" y="0" viewBox="0 0 24 24" xml:space="preserve" style="padding: 6px;"><g><path xmlns="http://www.w3.org/2000/svg" d="m21 2h-18a1.0007 1.0007 0 0 0 -.8193 1.5732l6.8193 9.7422v7.6846a1.0015 1.0015 0 0 0 1.53.8481l4-2.5a1.0014 1.0014 0 0 0 .47-.8481v-5.1846l6.8193-9.7422a1.0007 1.0007 0 0 0 -.8193-1.5732z"></path></g></svg>
|
||||
</button>
|
||||
<button title="Пошук" onclick="Sheeps.search.open()">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 72 72"><path d="M 31 11 C 19.973 11 11 19.973 11 31 C 11 42.027 19.973 51 31 51 C 34.974166 51 38.672385 49.821569 41.789062 47.814453 L 54.726562 60.751953 C 56.390563 62.415953 59.088953 62.415953 60.751953 60.751953 C 62.415953 59.087953 62.415953 56.390563 60.751953 54.726562 L 47.814453 41.789062 C 49.821569 38.672385 51 34.974166 51 31 C 51 19.973 42.027 11 31 11 z M 31 19 C 37.616 19 43 24.384 43 31 C 43 37.616 37.616 43 31 43 C 24.384 43 19 37.616 19 31 C 19 24.384 24.384 19 31 19 z"/></svg>
|
||||
</button>
|
||||
@@ -224,6 +227,27 @@ const Sheeps = {
|
||||
</div>
|
||||
`;
|
||||
|
||||
let filter_selected = Number(filter)
|
||||
html += `
|
||||
<div class="filter" id="block-sheeps-list-filter" data-state="closed">
|
||||
<select title="Оберіть групу" onchange="Sheeps.filter.input(this.value)">
|
||||
<option value="0" ${Number(filter) == 0 ? 'selected' : ''}>Всі</option>
|
||||
<option value="1" ${Number(filter) === 1 ? 'selected' : ''}>Група 1</option>
|
||||
<option value="2" ${Number(filter) === 2 ? 'selected' : ''}>Група 2</option>
|
||||
<option value="3" ${Number(filter) === 3 ? 'selected' : ''}>Група 3</option>
|
||||
<option value="4" ${Number(filter) === 4 ? 'selected' : ''}>Група 4</option>
|
||||
<option value="5" ${Number(filter) === 5 ? 'selected' : ''}>Група 5</option>
|
||||
<option value="6" ${Number(filter) === 6 ? 'selected' : ''}>Група 6</option>
|
||||
<option value="7" ${Number(filter) === 7 ? 'selected' : ''}>Група 7</option>
|
||||
<option value="8" ${Number(filter) === 8 ? 'selected' : ''}>Група 8</option>
|
||||
</select>
|
||||
</div>
|
||||
`;
|
||||
|
||||
html += `
|
||||
<br>
|
||||
`;
|
||||
|
||||
const accessTemplate = (p) => {
|
||||
let perms = [];
|
||||
if (p.can_view_sheeps) perms.push("View Sheeps");
|
||||
@@ -242,7 +266,11 @@ const Sheeps = {
|
||||
};
|
||||
|
||||
for (const element of list) {
|
||||
if (search_value && !element.name.toLowerCase().includes(search_value)) {
|
||||
if (search && !element.name.toLowerCase().includes(search)) {
|
||||
continue; // пропустити, якщо ім'я не містить рядок пошуку
|
||||
}
|
||||
|
||||
if (filter && element.group_id !== Number(filter) && Number(filter) !== 0) {
|
||||
continue; // пропустити, якщо ім'я не містить рядок пошуку
|
||||
}
|
||||
|
||||
@@ -446,18 +474,42 @@ const Sheeps = {
|
||||
}, 10)
|
||||
}
|
||||
},
|
||||
filter: {
|
||||
open: () => {
|
||||
const sheepFilterForm = document.getElementById("block-sheeps-list-filter");
|
||||
const current = sheepFilterForm.dataset.state;
|
||||
|
||||
if(current === 'closed') Sheeps.search.close();
|
||||
sheepFilterForm.dataset.state = current === 'open' ? 'closed' : 'open';
|
||||
},
|
||||
close: () => {
|
||||
const sheepFilterForm = document.getElementById("block-sheeps-list-filter");
|
||||
sheepFilterForm.dataset.state = 'closed'
|
||||
},
|
||||
input: (value) => {
|
||||
console.log(value);
|
||||
|
||||
filter_value = value || "";
|
||||
Sheeps.sheeps_list.setHTML({filter: filter_value});
|
||||
}
|
||||
},
|
||||
search: {
|
||||
open: () => {
|
||||
const sheepSearchForm = document.getElementById("block-sheeps-list-search");
|
||||
sheepSearchForm.classList.toggle('active');
|
||||
const current = sheepSearchForm.dataset.state;
|
||||
|
||||
if(current === 'closed') Sheeps.filter.close();
|
||||
sheepSearchForm.dataset.state = current === 'open' ? 'closed' : 'open';
|
||||
},
|
||||
close: () => {
|
||||
const sheepSearchForm = document.getElementById("block-sheeps-list-search");
|
||||
sheepSearchForm.dataset.state = 'closed'
|
||||
},
|
||||
input: (value) => {
|
||||
console.log(value);
|
||||
|
||||
search_value = value?.trim()?.toLowerCase() || "";
|
||||
Sheeps.sheeps_list.setHTML(search_value);
|
||||
Sheeps.sheeps_list.setHTML({search: search_value});
|
||||
}
|
||||
},
|
||||
territory: {
|
||||
|
||||
Reference in New Issue
Block a user