Merge branch 'master' of github.com:akaunting/akaunting
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div :id="'search-field-' + _uid" class="searh-field tags-input__wrapper">
|
||||
<div :id="'search-field-' + _uid" class="searh-field tags-input__wrapper" :style="[!search_hidden ? {'height': '0px'} : {'height': 'auto'}]">
|
||||
<div class="tags-group" v-for="(filter, index) in filtered" :index="index">
|
||||
<span v-if="filter.option" class="el-tag el-tag--primary el-tag--small el-tag--light el-tag-option">
|
||||
{{ filter.option }}
|
||||
@@ -148,7 +148,8 @@ export default {
|
||||
description: 'List of filters'
|
||||
},
|
||||
|
||||
dateConfig: null,
|
||||
dateConfig: null
|
||||
|
||||
},
|
||||
|
||||
model: {
|
||||
@@ -177,10 +178,20 @@ export default {
|
||||
values: [],
|
||||
current_value: null,
|
||||
show_date: false,
|
||||
search_hidden: false
|
||||
};
|
||||
},
|
||||
|
||||
methods: {
|
||||
searchBoxShow() {
|
||||
if(document.querySelector('.js-search-input-box')) {
|
||||
let search_box_html = document.querySelector('.js-search-input-box');
|
||||
search_box_html.remove();
|
||||
}
|
||||
|
||||
this.search_hidden = true;
|
||||
},
|
||||
|
||||
onInputFocus() {
|
||||
if (!this.filter_list.length) {
|
||||
return;
|
||||
@@ -577,6 +588,8 @@ export default {
|
||||
},
|
||||
|
||||
created() {
|
||||
this.searchBoxShow();
|
||||
|
||||
let path = window.location.href.replace(window.location.search, '');
|
||||
|
||||
let cookie = Cookies.get('search-string');
|
||||
@@ -715,6 +728,10 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
mounted() {
|
||||
this.searchBoxShow();
|
||||
},
|
||||
|
||||
computed: {
|
||||
filteredOptions() {
|
||||
this.filter_list.sort(function (a, b) {
|
||||
|
@@ -5,5 +5,6 @@ return [
|
||||
'revenue_received' => 'Revenue Received',
|
||||
'paid_by' => 'Paid By',
|
||||
'related_invoice' => 'Releated Invoice',
|
||||
'create_revenue' => 'Create Revenue',
|
||||
|
||||
];
|
||||
|
@@ -1,3 +1,9 @@
|
||||
<div class="position-relative js-search-input-box" style="height: 45px;">
|
||||
<div class="border-bottom-0 w-100 position-absolute left-0 right-0" style="z-index: 9;">
|
||||
<input type="text" placeholder="Search or filter results..." class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<akaunting-search
|
||||
placeholder="{{ (!empty($filters)) ? trans('general.placeholder.search_and_filter') : trans('general.search_placeholder')}}"
|
||||
search-text="{{ trans('general.search_text') }}"
|
||||
|
@@ -13,9 +13,11 @@
|
||||
|
||||
@php
|
||||
$vue_key = '@input';
|
||||
$vue_value = !empty($attributes['v-model']) ? $attributes['v-model'] . ' = $event.target.value' : (!empty($attributes['data-field']) ? 'form.' . $attributes['data-field'] . '.'. $name . ' = $event.target.value' : 'form.' . $name . ' = $event.target.value');
|
||||
|
||||
if (!empty($attributes['enable-v-model'])) {
|
||||
$vue_key = 'v-model';
|
||||
$vue_value = !empty($attributes['v-model']) ? $attributes['v-model'] : (!empty($attributes['data-field']) ? 'form.' . $attributes['data-field'] . '.'. $name : 'form.' . $name);
|
||||
}
|
||||
@endphp
|
||||
|
||||
@@ -23,7 +25,7 @@
|
||||
'class' => 'form-control',
|
||||
'data-name' => $name,
|
||||
'placeholder' => trans('general.form.enter', ['field' => $text]),
|
||||
$vue_key => !empty($attributes['v-model']) ? $attributes['v-model'] : (!empty($attributes['data-field']) ? 'form.' . $attributes['data-field'] . '.'. $name : 'form.' . $name),
|
||||
$vue_key => $vue_value,
|
||||
], $attributes)) !!}
|
||||
|
||||
<div class="invalid-feedback d-block"
|
||||
|
@@ -47,9 +47,11 @@
|
||||
<td class="col-sm-2 col-md-1 col-lg-1 col-xl-1 d-none d-sm-block">
|
||||
{{ Form::bulkActionGroup($item->id, $item->name) }}
|
||||
</td>
|
||||
|
||||
<td class="col-xs-4 col-sm-3 col-md-4 col-lg-3 col-xl-3">
|
||||
<a class="col-aka long-texts d-block" href="{{ route('customers.show', $item->id) }}">{{ $item->name }}</a>
|
||||
</td>
|
||||
|
||||
<td class="col-md-3 col-lg-3 col-xl-3 d-none d-md-block long-texts">
|
||||
<el-tooltip content="{{ !empty($item->phone) ? $item->phone : trans('general.na') }}"
|
||||
effect="dark"
|
||||
@@ -57,9 +59,11 @@
|
||||
<span>{{ !empty($item->email) ? $item->email : trans('general.na') }}</span>
|
||||
</el-tooltip>
|
||||
</td>
|
||||
|
||||
<td class="col-lg-2 col-xl-2 d-none d-lg-block text-right long-texts">
|
||||
@money($item->unpaid, setting('default.currency'), true)
|
||||
</td>
|
||||
|
||||
<td class="col-xs-4 col-sm-2 col-md-2 col-lg-2 col-xl-2 text-center">
|
||||
@if (user()->can('update-sales-customers'))
|
||||
{{ Form::enabledGroup($item->id, $item->name, $item->enabled) }}
|
||||
@@ -71,21 +75,34 @@
|
||||
@endif
|
||||
@endif
|
||||
</td>
|
||||
|
||||
<td class="col-xs-4 col-sm-2 col-md-2 col-lg-1 col-xl-1 text-center">
|
||||
<div class="dropdown">
|
||||
<a class="btn btn-neutral btn-sm text-light items-align-center py-2" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<i class="fa fa-ellipsis-h text-muted"></i>
|
||||
</a>
|
||||
|
||||
<div class="dropdown-menu dropdown-menu-right dropdown-menu-arrow">
|
||||
<a class="dropdown-item" href="{{ route('customers.show', $item->id) }}">{{ trans('general.show') }}</a>
|
||||
<a class="dropdown-item" href="{{ route('customers.edit', $item->id) }}">{{ trans('general.edit') }}</a>
|
||||
<a class="dropdown-item" href="{{ route('customers.show', $item->id) }}">
|
||||
{{ trans('general.show') }}
|
||||
</a>
|
||||
|
||||
@can('create-sales-customers')
|
||||
<a class="dropdown-item" href="{{ route('customers.edit', $item->id) }}">
|
||||
{{ trans('general.edit') }}
|
||||
</a>
|
||||
@endcan
|
||||
|
||||
<div class="dropdown-divider"></div>
|
||||
|
||||
@can('create-sales-customers')
|
||||
<a class="dropdown-item" href="{{ route('customers.duplicate', $item->id) }}">{{ trans('general.duplicate') }}</a>
|
||||
<a class="dropdown-item" href="{{ route('customers.duplicate', $item->id) }}">
|
||||
{{ trans('general.duplicate') }}
|
||||
</a>
|
||||
|
||||
<div class="dropdown-divider"></div>
|
||||
@endcan
|
||||
|
||||
@can('delete-sales-customers')
|
||||
{!! Form::deleteLink($item, 'customers.destroy') !!}
|
||||
@endcan
|
||||
|
@@ -2,6 +2,62 @@
|
||||
|
||||
@section('title', $customer->name)
|
||||
|
||||
@section('new_button')
|
||||
<div class="dropup header-drop-top">
|
||||
<button type="button" class="btn btn-white btn-sm" data-toggle="dropdown" aria-expanded="false">
|
||||
<i class="fa fa-chevron-down"></i> {{ trans('general.more_actions') }}
|
||||
</button>
|
||||
|
||||
<div class="dropdown-menu" role="menu">
|
||||
@stack('button_dropdown_start')
|
||||
|
||||
@stack('duplicate_button_start')
|
||||
@can('create-sales-customers')
|
||||
<a class="dropdown-item" href="{{ route('customers.duplicate', $customer->id) }}">
|
||||
{{ trans('general.duplicate') }}
|
||||
</a>
|
||||
@endcan
|
||||
@stack('duplicate_button_end')
|
||||
|
||||
<div class="dropdown-divider"></div>
|
||||
|
||||
@stack('invoice_button_start')
|
||||
@can('create-sales-invoices')
|
||||
<a class="dropdown-item" href="{{ route('customers.create-invoice', $customer->id) }}">
|
||||
{{ trans('invoices.create_invoice') }}
|
||||
</a>
|
||||
@endcan
|
||||
@stack('invoice_button_end')
|
||||
|
||||
@stack('revenue_button_start')
|
||||
@can('create-sales-revenues')
|
||||
<a class="dropdown-item" href="{{ route('customers.create-revenue', $customer->id) }}">
|
||||
{{ trans('revenues.create_revenue') }}
|
||||
</a>
|
||||
@endcan
|
||||
@stack('revenue_button_end')
|
||||
|
||||
<div class="dropdown-divider"></div>
|
||||
|
||||
@stack('delete_button_start')
|
||||
@can('delete-sales-customers')
|
||||
{!! Form::deleteLink($customer, 'customers.destroy') !!}
|
||||
@endcan
|
||||
@stack('delete_button_end')
|
||||
|
||||
@stack('button_dropdown_end')
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@stack('edit_button_start')
|
||||
@can('update-sales-customers')
|
||||
<a href="{{ route('customers.edit', $customer->id) }}" class="btn btn-white btn-sm">
|
||||
{{ trans('general.edit') }}
|
||||
</a>
|
||||
@endcan
|
||||
@stack('edit_button_end')
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<div class="row">
|
||||
<div class="col-xl-3">
|
||||
@@ -68,12 +124,7 @@
|
||||
</ul>
|
||||
|
||||
@stack('customer_edit_button_start')
|
||||
<a href="{{ route('customers.edit', $customer->id) }}" class="btn btn-info btn-block"><b>{{ trans('general.edit') }}</b></a>
|
||||
@stack('customer_edit_button_end')
|
||||
|
||||
@stack('customer_create_invoice_button_start')
|
||||
<a href="{{ route('customers.create-invoice', $customer->id) }}" class="btn btn-white btn-block"><b>{{ trans('invoices.create_invoice') }}</b></a>
|
||||
@stack('customer_create_invoice_button_end')
|
||||
</div>
|
||||
|
||||
<div class="col-xl-9">
|
||||
@@ -131,55 +182,28 @@
|
||||
<div class="col-md-12">
|
||||
<div class="nav-wrapper">
|
||||
<ul class="nav nav-pills nav-fill flex-column flex-md-row" id="tabs-icons-text" role="tablist">
|
||||
@stack('customer_transactions_tab_start')
|
||||
<li class="nav-item">
|
||||
<a class="nav-link mb-sm-3 mb-md-0 active" id="transactions-tab" data-toggle="tab" href="#transactions-content" role="tab" aria-controls="transactions-content" aria-selected="true">{{ trans_choice('general.transactions', 2) }}</a>
|
||||
</li>
|
||||
@stack('customer_transactions_tab_end')
|
||||
|
||||
@stack('customer_invoices_tab_start')
|
||||
<li class="nav-item">
|
||||
<a class="nav-link mb-sm-3 mb-md-0" id="invoices-tab" data-toggle="tab" href="#invoices-content" role="tab" aria-controls="invoices-content" aria-selected="false">{{ trans_choice('general.invoices', 2) }}</a>
|
||||
<a class="nav-link mb-sm-3 mb-md-0 active" id="invoices-tab" data-toggle="tab" href="#invoices-content" role="tab" aria-controls="invoices-content" aria-selected="true">
|
||||
{{ trans_choice('general.invoices', 2) }}
|
||||
</a>
|
||||
</li>
|
||||
@stack('customer_invoices_tab_end')
|
||||
|
||||
@stack('customer_transactions_tab_start')
|
||||
<li class="nav-item">
|
||||
<a class="nav-link mb-sm-3 mb-md-0" id="transactions-tab" data-toggle="tab" href="#transactions-content" role="tab" aria-controls="transactions-content" aria-selected="false">
|
||||
{{ trans_choice('general.transactions', 2) }}
|
||||
</a>
|
||||
</li>
|
||||
@stack('customer_transactions_tab_end')
|
||||
</ul>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="tab-content" id="myTabContent">
|
||||
@stack('customer_transactions_content_start')
|
||||
<div class="tab-pane fade show active" id="transactions-content" role="tabpanel" aria-labelledby="transactions-tab">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-flush table-hover" id="tbl-transactions">
|
||||
<thead class="thead-light">
|
||||
<tr class="row table-head-line">
|
||||
<th class="col-xs-6 col-sm-2">{{ trans('general.date') }}</th>
|
||||
<th class="col-xs-6 col-sm-2 text-right">{{ trans('general.amount') }}</th>
|
||||
<th class="col-sm-4 d-none d-sm-block">{{ trans_choice('general.categories', 1) }}</th>
|
||||
<th class="col-sm-4 d-none d-sm-block">{{ trans_choice('general.accounts', 1) }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($transactions as $item)
|
||||
<tr class="row align-items-center border-top-1 tr-py">
|
||||
<td class="col-xs-6 col-sm-2">@date($item->paid_at)</td>
|
||||
<td class="col-xs-6 col-sm-2 text-right">@money($item->amount, $item->currency_code, true)</td>
|
||||
<td class="col-sm-4 d-none d-sm-block">{{ $item->category->name }}</td>
|
||||
<td class="col-sm-4 d-none d-sm-block">{{ $item->account->name }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="card-footer py-4 table-action">
|
||||
<div class="row">
|
||||
@include('partials.admin.pagination', ['items' => $transactions, 'type' => 'transactions'])
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@stack('customer_transactions_content_end')
|
||||
|
||||
<div class="card">
|
||||
<div class="tab-content" id="cutomer-tab-content">
|
||||
@stack('customer_invoices_content_start')
|
||||
<div class="tab-pane fade" id="invoices-content" role="tabpanel" aria-labelledby="invoices-tab">
|
||||
<div class="tab-pane fade show active" id="invoices-content" role="tabpanel" aria-labelledby="invoices-tab">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-flush table-hover" id="tbl-invoices">
|
||||
<thead class="thead-light">
|
||||
@@ -191,6 +215,7 @@
|
||||
<th class="col-xs-4 col-sm-2">{{ trans_choice('general.statuses', 1) }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
@foreach($invoices as $item)
|
||||
<tr class="row align-items-center border-top-1 tr-py">
|
||||
@@ -204,6 +229,7 @@
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="card-footer py-4 table-action">
|
||||
<div class="row">
|
||||
@include('partials.admin.pagination', ['items' => $invoices, 'type' => 'invoices'])
|
||||
@@ -211,6 +237,40 @@
|
||||
</div>
|
||||
</div>
|
||||
@stack('customer_invoices_content_end')
|
||||
|
||||
@stack('customer_transactions_content_start')
|
||||
<div class="tab-pane fade" id="transactions-content" role="tabpanel" aria-labelledby="transactions-tab">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-flush table-hover" id="tbl-transactions">
|
||||
<thead class="thead-light">
|
||||
<tr class="row table-head-line">
|
||||
<th class="col-xs-6 col-sm-2">{{ trans('general.date') }}</th>
|
||||
<th class="col-xs-6 col-sm-2 text-right">{{ trans('general.amount') }}</th>
|
||||
<th class="col-sm-4 d-none d-sm-block">{{ trans_choice('general.categories', 1) }}</th>
|
||||
<th class="col-sm-4 d-none d-sm-block">{{ trans_choice('general.accounts', 1) }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
@foreach($transactions as $item)
|
||||
<tr class="row align-items-center border-top-1 tr-py">
|
||||
<td class="col-xs-6 col-sm-2">@date($item->paid_at)</td>
|
||||
<td class="col-xs-6 col-sm-2 text-right">@money($item->amount, $item->currency_code, true)</td>
|
||||
<td class="col-sm-4 d-none d-sm-block">{{ $item->category->name }}</td>
|
||||
<td class="col-sm-4 d-none d-sm-block">{{ $item->account->name }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="card-footer py-4 table-action">
|
||||
<div class="row">
|
||||
@include('partials.admin.pagination', ['items' => $transactions, 'type' => 'transactions'])
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@stack('customer_transactions_content_end')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -26,7 +26,7 @@
|
||||
|
||||
{{ Form::selectAddNewGroup('account_id', trans_choice('general.accounts', 1), 'university', $accounts, setting('default.account'), ['required' => 'required', 'path' => route('modals.accounts.create'), 'change' => 'onChangeAccount']) }}
|
||||
|
||||
{{ Form::selectRemoteAddNewGroup('contact_id', trans_choice('general.customers', 1), 'user', $customers, null, ['path' => route('modals.customers.create'), 'remote_action' => route('customers.index')]) }}
|
||||
{{ Form::selectRemoteAddNewGroup('contact_id', trans_choice('general.customers', 1), 'user', $customers, old('contact.id', old('contact_id', null)), ['path' => route('modals.customers.create'), 'remote_action' => route('customers.index')]) }}
|
||||
|
||||
{{ Form::textareaGroup('description', trans('general.description')) }}
|
||||
|
||||
|
Reference in New Issue
Block a user