1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-08 20:22:42 +01:00
invoiceninja/resources/views/datatable.blade.php
2019-01-30 22:25:37 +11:00

103 lines
3.6 KiB
PHP

<table class="table table-striped data-table {{ $class = str_random(8) }}">
<colgroup>
@for ($i = 0; $i < count($columns); $i++)
<col class="con{{ $i }}" />
@endfor
</colgroup>
<thead>
<tr>
@foreach($columns as $i => $c)
<th align="center" valign="middle" class="head{{ $i }}"
@if ($c == 'checkbox')
style="width:20px"
@endif
>
@if ($c == 'checkbox' && $hasCheckboxes = true)
<input type="checkbox" class="selectAll"/>
@else
{{ $c }}
@endif
</th>
@endforeach
</tr>
</thead>
<tbody>
@foreach($data as $d)
<tr>
@foreach($d as $dd)
<td>{{ $dd }}</td>
@endforeach
</tr>
@endforeach
</tbody>
</table>
<script type="text/javascript">
@if (isset($values['clientId']) && $values['clientId'])
window.load_{{ $values['entityType'] }} = function load_{{ $values['entityType'] }}() {
load_{{ $class }}();
}
@else
jQuery(document).ready(function(){
load_{{ $class }}();
});
@endif
function refreshDatatable{{ isset($values['entityType']) ? '_' . $values['entityType'] : '' }}() {
window['dataTable{{ isset($values['entityType']) ? '_' . $values['entityType'] : '' }}'].api().ajax.reload();
}
function load_{{ $class }}() {
window['dataTable{{ isset($values['entityType']) ? '_' . $values['entityType'] : '' }}'] = jQuery('.{{ $class }}').dataTable({
"stateSave": true,
"stateDuration": 0,
"fnRowCallback": function(row, data) {
if (data[0].indexOf('ENTITY_DELETED') > 0) {
$(row).addClass('entityDeleted');
}
if (data[0].indexOf('ENTITY_ARCHIVED') > 0) {
$(row).addClass('entityArchived');
}
},
"bAutoWidth": false,
"aoColumnDefs": [
@if (isset($hasCheckboxes) && $hasCheckboxes)
// Disable sorting on the first column
{
'bSortable': false,
'aTargets': [ 0, {{ count($columns) - 1 }} ]
},
@endif
{
'sClass': 'right',
'aTargets': {{ isset($values['rightAlign']) ? json_encode($values['rightAlign']) : '[]' }}
}
],
@foreach ($options as $k => $o)
{!! json_encode($k) !!}: {!! json_encode($o) !!},
@endforeach
@foreach ($callbacks as $k => $o)
{!! json_encode($k) !!}: {!! $o !!},
@endforeach
"fnDrawCallback": function(oSettings) {
@if (isset($values['entityType']))
if (window.onDatatableReady_{{ $values['entityType'] }}) {
window.onDatatableReady_{{ $values['entityType'] }}();
} else if (window.onDatatableReady) {
window.onDatatableReady();
}
@else
if (window.onDatatableReady) {
window.onDatatableReady();
}
@endif
},
"stateLoadParams": function (settings, data) {
// don't save filter to local storage
data.search.search = "";
// always start on first page of results
data.start = 0;
}
});
}
</script>