Add a custom search function to the tables capable of excluding some pills

This commit is contained in:
2025-01-24 14:57:26 +01:00
parent 30ea2ae567
commit 623b205733
11 changed files with 113 additions and 32 deletions
+4
View File
@@ -22,4 +22,8 @@
{% endwith %}
</div>
{% endif %}
{% endblock %}
{% block scripts %}
<script src="{{ url_for('static', filename='scripts/table.js') }}"></script>
{% endblock %}
+7 -3
View File
@@ -23,8 +23,8 @@
{%- if item.allowed -%}
</a>
{% endif %}
<span class="badge rounded-pill text-bg-info fw-normal"><i class="ri-hard-drive-line"></i> {{ item.human_size() }}</span>
<span class="badge rounded-pill text-bg-light border fw-normal"><i class="ri-calendar-line"></i> {{ item.human_time() }}</span>
<span data-search="exclude" class="badge rounded-pill text-bg-info fw-normal"><i class="ri-hard-drive-line"></i> {{ item.human_size() }}</span>
<span data-search="exclude" class="badge rounded-pill text-bg-light border fw-normal"><i class="ri-calendar-line"></i> {{ item.human_time() }}</span>
</td>
<td>
{% if item.set %}<span class="badge text-bg-secondary fw-normal"><i class="ri-hashtag"></i> {{ item.set }}</span>{% endif %}
@@ -47,5 +47,9 @@
</table>
</div>
{% if all %}
{{ table.dynamic('instructions', no_sort='2,3')}}
<script type="text/javascript">
document.addEventListener("DOMContentLoaded", () => {
new BrickTable('instructions', {{ config['DEFAULT_TABLE_PER_PAGE'] }}, [2, 3]);
});
</script>
{% endif %}
+2 -26
View File
@@ -28,7 +28,7 @@
{% macro bricklink(item) %}
{% set url=item.url_for_bricklink() %}
{% if url %}
<a href="{{ url }}" target="_blank" class="badge rounded-pill text-bg-light border fw-normal">
<a data-search="exclude" href="{{ url }}" target="_blank" class="badge rounded-pill text-bg-light border fw-normal">
<i class="ri-external-link-line"></i> Bricklink
</a>
{% endif %}
@@ -45,32 +45,8 @@
{% macro rebrickable(item) %}
{% set url=item.url_for_rebrickable() %}
{% if url %}
<a href="{{ url }}" target="_blank" class="badge rounded-pill text-bg-light border fw-normal">
<a data-search="exclude" href="{{ url }}" target="_blank" class="badge rounded-pill text-bg-light border fw-normal">
<i class="ri-external-link-line"></i> Rebrickable
</a>
{% endif %}
{% endmacro %}
{% macro dynamic(id, no_sort=none, number=none) %}
<script type="text/javascript">
document.addEventListener("DOMContentLoaded", () => {
new simpleDatatables.DataTable("#{{ id }}", {
columns: [
{% if no_sort %}{ select: [{{ no_sort }}], sortable: false, searchable: false },{% endif %}
{% if number %}{ select: [{{ number }}], type: "number", searchable: false },{% endif %}
],
pagerDelta: 1,
perPage: {{ config['DEFAULT_TABLE_PER_PAGE'] }},
perPageSelect: [10, 25, 50, 100, 500, 1000],
searchable: true,
searchQuerySeparator: "",
tableRender: () => {
baguetteBox.run('[data-lightbox]')
},
pagerRender: () => {
baguetteBox.run('[data-lightbox]')
}
});
});
</script>
{% endmacro %}
+5 -1
View File
@@ -22,5 +22,9 @@
</table>
</div>
{% if all %}
{{ table.dynamic('minifigures', no_sort='0', number='2, 3, 4')}}
<script type="text/javascript">
document.addEventListener("DOMContentLoaded", () => {
new BrickTable('minifigures', {{ config['DEFAULT_TABLE_PER_PAGE'] }}, [0], [2, 3, 4]);
});
</script>
{% endif %}
+4
View File
@@ -8,4 +8,8 @@
{% include 'minifigure/table.html' %}
{% endwith %}
</div>
{% endblock %}
{% block scripts %}
<script src="{{ url_for('static', filename='scripts/table.js') }}"></script>
{% endblock %}
+4
View File
@@ -8,4 +8,8 @@
{% include 'part/table.html' %}
{% endwith %}
</div>
{% endblock %}
{% block scripts %}
<script src="{{ url_for('static', filename='scripts/table.js') }}"></script>
{% endblock %}
+5 -1
View File
@@ -52,5 +52,9 @@
</table>
</div>
{% if all %}
{{ table.dynamic('parts', no_sort='0', number='3, 4, 5, 6')}}
<script type="text/javascript">
document.addEventListener("DOMContentLoaded", () => {
new BrickTable('parts', {{ config['DEFAULT_TABLE_PER_PAGE'] }}, [0], [3, 4, 5, 6]);
});
</script>
{% endif %}
+4
View File
@@ -8,4 +8,8 @@
{% include 'part/table.html' %}
{% endwith %}
</div>
{% endblock %}
{% block scripts %}
<script src="{{ url_for('static', filename='scripts/table.js') }}"></script>
{% endblock %}
+5 -1
View File
@@ -41,5 +41,9 @@
</table>
</div>
{% if all %}
{{ table.dynamic('wish', no_sort='0,7')}}
<script type="text/javascript">
document.addEventListener("DOMContentLoaded", () => {
new BrickTable('wish', {{ config['DEFAULT_TABLE_PER_PAGE'] }}, [0, 7]);
});
</script>
{% endif %}
+4
View File
@@ -28,4 +28,8 @@
{% include 'wish/table.html' %}
{% endwith %}
</div>
{% endblock %}
{% block scripts %}
<script src="{{ url_for('static', filename='scripts/table.js') }}"></script>
{% endblock %}