1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-10 05:02:36 +01:00
invoiceninja/resources/views/list.blade.php

278 lines
9.0 KiB
PHP
Raw Normal View History

{!! Former::open(Utils::pluralizeEntityType($entityType) . '/bulk')->addClass('listForm') !!}
2015-03-16 22:45:25 +01:00
<div style="display:none">
{!! Former::text('action') !!}
{!! Former::text('public_id') !!}
{!! Former::text('datatable')->value('true') !!}
</div>
2015-03-16 22:45:25 +01:00
<div class="pull-left">
2016-04-26 03:53:39 +02:00
@can('create', 'invoice')
@if ($entityType == ENTITY_TASK)
{!! Button::primary(trans('texts.invoice'))->withAttributes(['class'=>'invoice', 'onclick' =>'submitForm("invoice")'])->appendIcon(Icon::create('check')) !!}
@endif
@if ($entityType == ENTITY_EXPENSE)
{!! Button::primary(trans('texts.invoice'))->withAttributes(['class'=>'invoice', 'onclick' =>'submitForm("invoice")'])->appendIcon(Icon::create('check')) !!}
@endif
2016-04-26 03:53:39 +02:00
@endcan
2015-05-27 18:52:10 +02:00
@if (in_array($entityType, [ENTITY_EXPENSE_CATEGORY, ENTITY_PRODUCT]))
{!! Button::normal(trans('texts.archive'))->asLinkTo('javascript:submitForm("archive")')->appendIcon(Icon::create('trash')) !!}
@else
{!! DropdownButton::normal(trans('texts.archive'))->withContents([
['label' => trans('texts.archive_'.$entityType), 'url' => 'javascript:submitForm("archive")'],
['label' => trans('texts.delete_'.$entityType), 'url' => 'javascript:submitForm("delete")'],
])->withAttributes(['class'=>'archive'])->split() !!}
@endif
2016-07-06 20:35:16 +02:00
2016-11-17 15:29:02 +01:00
&nbsp;
<span id="statusWrapper_{{ $entityType }}" style="display:none">
<select class="form-control" style="width: 220px" id="statuses_{{ $entityType }}" multiple="true">
2016-11-20 15:08:36 +01:00
@if (count(\App\Models\EntityModel::getStatusesFor($entityType)))
<optgroup label="{{ trans('texts.entity_state') }}">
@foreach (\App\Models\EntityModel::getStatesFor($entityType) as $key => $value)
<option value="{{ $key }}">{{ $value }}</option>
@endforeach
</optgroup>
<optgroup label="{{ trans('texts.status') }}">
@foreach (\App\Models\EntityModel::getStatusesFor($entityType) as $key => $value)
<option value="{{ $key }}">{{ $value }}</option>
@endforeach
</optgroup>
@else
@foreach (\App\Models\EntityModel::getStatesFor($entityType) as $key => $value)
<option value="{{ $key }}">{{ $value }}</option>
@endforeach
@endif
</select>
2016-11-18 14:31:43 +01:00
</span>
</div>
2015-03-16 22:45:25 +01:00
<div id="top_right_buttons" class="pull-right">
<input id="tableFilter" type="text" style="width:140px;margin-right:17px;background-color: white !important"
class="form-control pull-left" placeholder="{{ trans('texts.filter') }}" value="{{ Input::get('filter') }}"/>
@if (empty($clientId))
@if ($entityType == ENTITY_EXPENSE)
{!! Button::normal(trans('texts.categories'))->asLinkTo(URL::to('/expense_categories'))->appendIcon(Icon::create('list')) !!}
@endif
2015-08-04 16:33:30 +02:00
@if (Auth::user()->can('create', $entityType))
{!! Button::primary(trans("texts.new_{$entityType}"))->asLinkTo(url(Utils::pluralizeEntityType($entityType) . '/create'))->appendIcon(Icon::create('plus-sign')) !!}
2016-03-16 00:08:00 +01:00
@endif
@endif
2016-07-06 20:35:16 +02:00
</div>
{!! Datatable::table()
->addColumn(Utils::trans($datatable->columnFields()))
->setUrl(url('api/' . Utils::pluralizeEntityType($entityType) . '/' . (isset($clientId) ? $clientId : '')))
->setCustomValues('rightAlign', isset($rightAlign) ? $rightAlign : [])
->setCustomValues('entityType', Utils::pluralizeEntityType($entityType))
->setCustomValues('clientId', isset($clientId) && $clientId)
->setOptions('sPaginationType', 'bootstrap')
->setOptions('aaSorting', [[isset($sortCol) ? $sortCol : '1', 'desc']])
->render('datatable') !!}
@if ($entityType == ENTITY_PAYMENT)
<div class="modal fade" id="paymentRefundModal" tabindex="-1" role="dialog" aria-labelledby="paymentRefundModalLabel" aria-hidden="true">
<div class="modal-dialog" style="min-width:150px">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title" id="paymentRefundModalLabel">{{ trans('texts.refund_payment') }}</h4>
</div>
2016-04-23 22:40:19 +02:00
<div class="modal-body">
<div class="form-horizontal">
<div class="form-group">
<label for="refundAmount" class="col-sm-offset-2 col-sm-2 control-label">{{ trans('texts.amount') }}</label>
<div class="col-sm-4">
<div class="input-group">
<span class="input-group-addon" id="refundCurrencySymbol"></span>
<input type="number" class="form-control" id="refundAmount" name="amount" step="0.01" min="0.01" placeholder="{{ trans('texts.amount') }}">
2016-04-23 22:40:19 +02:00
</div>
<div class="help-block">{{ trans('texts.refund_max') }} <span id="refundMax"></span></div>
2016-04-23 22:40:19 +02:00
</div>
</div>
2016-04-23 22:40:19 +02:00
</div>
</div>
2016-04-23 22:40:19 +02:00
<div class="modal-footer" style="margin-top: 0px">
<button type="button" class="btn btn-default" data-dismiss="modal">{{ trans('texts.cancel') }}</button>
<button type="button" class="btn btn-primary" id="completeRefundButton">{{ trans('texts.refund') }}</button>
</div>
2016-04-23 22:40:19 +02:00
</div>
</div>
</div>
@endif
2016-04-23 22:40:19 +02:00
{!! Former::close() !!}
2016-09-19 15:30:46 +02:00
<script type="text/javascript">
2015-03-16 22:45:25 +01:00
function submitForm(action) {
if (action == 'delete') {
sweetConfirm(function() {
$('#action').val(action);
2016-07-28 18:55:23 +02:00
$('form.listForm').submit();
});
} else {
$('#action').val(action);
$('form.listForm').submit();
}
}
function deleteEntity(id) {
$('#public_id').val(id);
submitForm('delete');
}
function archiveEntity(id) {
$('#public_id').val(id);
submitForm('archive');
}
function restoreEntity(id) {
$('#public_id').val(id);
submitForm('restore');
}
function convertEntity(id) {
$('#public_id').val(id);
submitForm('convert');
}
function markEntity(id) {
$('#public_id').val(id);
submitForm('markSent');
}
function stopTask(id) {
$('#public_id').val(id);
submitForm('stop');
}
function invoiceEntity(id) {
$('#public_id').val(id);
submitForm('invoice');
}
@if ($entityType == ENTITY_PAYMENT)
var paymentId = null;
function showRefundModal(id, amount, formatted, symbol){
paymentId = id;
$('#refundCurrencySymbol').text(symbol);
$('#refundMax').text(formatted);
$('#refundAmount').val(amount).attr('max', amount);
$('#paymentRefundModal').modal('show');
2015-03-16 22:45:25 +01:00
}
function handleRefundClicked(){
$('#public_id').val(paymentId);
submitForm('refund');
2015-03-16 22:45:25 +01:00
}
@endif
/*
function setTrashVisible() {
var checked = $('#trashed').is(':checked');
var url = '{{ URL::to('set_entity_filter/' . $entityType) }}' + (checked ? '/true' : '/false');
$.get(url, function(data) {
refreshDatatable();
})
}
*/
$(function() {
var tableFilter = '';
var searchTimeout = false;
var oTable0 = $('#DataTables_Table_0').dataTable();
var oTable1 = $('#DataTables_Table_1').dataTable();
function filterTable(val) {
if (val == tableFilter) {
return;
}
tableFilter = val;
oTable0.fnFilter(val);
}
2015-03-16 22:45:25 +01:00
$('#tableFilter').on('keyup', function(){
if (searchTimeout) {
window.clearTimeout(searchTimeout);
}
2015-03-16 22:45:25 +01:00
searchTimeout = setTimeout(function() {
filterTable($('#tableFilter').val());
}, 500);
})
if ($('#tableFilter').val()) {
filterTable($('#tableFilter').val());
2015-03-16 22:45:25 +01:00
}
window.onDatatableReady = function() {
$(':checkbox').click(function() {
setBulkActionsEnabled();
});
2015-03-16 22:45:25 +01:00
$('tbody tr').unbind('click').click(function(event) {
if (event.target.type !== 'checkbox' && event.target.type !== 'button' && event.target.tagName.toLowerCase() !== 'a') {
$checkbox = $(this).closest('tr').find(':checkbox:not(:disabled)');
var checked = $checkbox.prop('checked');
$checkbox.prop('checked', !checked);
setBulkActionsEnabled();
}
});
2015-05-27 18:52:10 +02:00
actionListHandler();
2015-05-27 18:52:10 +02:00
}
2016-07-06 20:35:16 +02:00
2016-04-23 22:40:19 +02:00
@if ($entityType == ENTITY_PAYMENT)
$('#completeRefundButton').click(handleRefundClicked)
2016-04-23 22:40:19 +02:00
@endif
2015-05-27 18:52:10 +02:00
$('.archive, .invoice').prop('disabled', true);
$('.archive:not(.dropdown-toggle)').click(function() {
submitForm('archive');
});
2015-03-16 22:45:25 +01:00
$('.selectAll').click(function() {
$(this).closest('table').find(':checkbox:not(:disabled)').prop('checked', this.checked);
});
2015-05-10 21:02:35 +02:00
function setBulkActionsEnabled() {
var buttonLabel = "{{ trans('texts.archive') }}";
var count = $('tbody :checkbox:checked').length;
$('button.archive, button.invoice').prop('disabled', !count);
if (count) {
buttonLabel += ' (' + count + ')';
2015-05-10 21:02:35 +02:00
}
$('button.archive').not('.dropdown-toggle').text(buttonLabel);
}
2015-05-10 21:02:35 +02:00
$('#statuses_{{ $entityType }}').select2({
placeholder: "{{ trans('texts.status') }}",
}).val('{{ session('entity_state_filter:' . $entityType, STATUS_ACTIVE) . ',' . session('entity_status_filter:' . $entityType) }}'.split(','))
.trigger('change')
.on('change', function() {
var filter = $('#statuses_{{ $entityType }}').val();
if (filter) {
filter = filter.join(',');
} else {
filter = '';
}
var url = '{{ URL::to('set_entity_filter/' . $entityType) }}' + '/' + filter;
$.get(url, function(data) {
refreshDatatable();
2015-05-10 21:02:35 +02:00
})
}).maximizeSelect2Height();
2015-05-10 21:02:35 +02:00
$('#statusWrapper_{{ $entityType }}').show();
2015-03-16 22:45:25 +01:00
});
2015-03-16 22:45:25 +01:00
</script>