mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2026-02-10 09:06:21 +01:00
Add Colum Control
This commit is contained in:
@@ -52,58 +52,42 @@ Given the `EveCharacter` Model as our model of choice we would define our stubs
|
|||||||
<th>{% translate "Alliance" %}</th>
|
<th>{% translate "Alliance" %}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<!-- Put the footer in the header so it doesn't trigger the sorting on searching -->
|
|
||||||
<!-- only footers with text will get given an input -->
|
|
||||||
<!-- This is just an option, you do it however you like -->
|
|
||||||
<tfoot style="display: table-header-group;">
|
|
||||||
<tr>
|
|
||||||
<th></th>
|
|
||||||
<th>{% translate "Name" %}</th>
|
|
||||||
<th>{% translate "Corporation" %}</th>
|
|
||||||
<th>{% translate "Alliance" %}</th>
|
|
||||||
</tr>
|
|
||||||
</tfoot>
|
|
||||||
<!-- Empty tbody -->
|
|
||||||
<tbody>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
</table>
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
{% block extra_css %}
|
{% block extra_css %}
|
||||||
{% include 'bundles/datatables-css-bs5.html' %}
|
<link rel="stylesheet" href="https://cdn.datatables.net/2.3.6/css/dataTables.bootstrap5.css" />
|
||||||
|
<link href="https://cdn.datatables.net/columncontrol/1.2.0/css/columnControl.bootstrap5.min.css" rel="stylesheet">
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block extra_javascript %}
|
{% block extra_javascript %}
|
||||||
{% include 'bundles/datatables-js-bs5.html' %}
|
<script src="https://cdn.datatables.net/2.3.6/js/dataTables.js"></script>
|
||||||
|
<script src="https://cdn.datatables.net/2.3.6/js/dataTables.bootstrap5.js"></script>
|
||||||
|
<script src="https://cdn.datatables.net/columncontrol/1.2.0/js/dataTables.columnControl.min.js"></script>
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
$('#table').DataTable({
|
$('#table').DataTable({
|
||||||
serverSide: true,
|
serverSide: true,
|
||||||
ajax: '{% url "appname:table" %}',
|
ajax: '{% url "appname:table" %}',
|
||||||
// This is for the column searching
|
|
||||||
initComplete: function () {
|
|
||||||
this.api()
|
|
||||||
.columns()
|
|
||||||
.every(function () {
|
|
||||||
let column = this;
|
|
||||||
let title = column.footer().textContent;
|
|
||||||
if (title != ""){
|
|
||||||
// Create input element
|
|
||||||
let input = document.createElement('input');
|
|
||||||
input.classList.add("w-100")
|
|
||||||
input.placeholder = title;
|
|
||||||
column.footer().replaceChildren(input);
|
|
||||||
|
|
||||||
// Event listener for user input
|
|
||||||
input.addEventListener('keyup', () => {
|
|
||||||
if (column.search() !== this.value) {
|
|
||||||
column.search(input.value).draw();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
columnDefs: [
|
columnDefs: [
|
||||||
{ "searchable": false, "targets": [0] },
|
{
|
||||||
{ "sortable": false, "targets": [0] },
|
targets: [0],
|
||||||
|
columnControl: [],
|
||||||
|
sortable: false,
|
||||||
|
searchable: false
|
||||||
|
|
||||||
|
},
|
||||||
|
{
|
||||||
|
targets: [1,2,3],
|
||||||
|
columnControl: [
|
||||||
|
{
|
||||||
|
target: 0,
|
||||||
|
content: []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
target: 1,
|
||||||
|
content: ['search']
|
||||||
|
}
|
||||||
|
],
|
||||||
|
}
|
||||||
],
|
],
|
||||||
order: [
|
order: [
|
||||||
[1, "asc"]
|
[1, "asc"]
|
||||||
|
|||||||
Reference in New Issue
Block a user