diff --git a/app/Http/Controllers/Auth/Users.php b/app/Http/Controllers/Auth/Users.php
index dfff5b28a..6221d20b1 100644
--- a/app/Http/Controllers/Auth/Users.php
+++ b/app/Http/Controllers/Auth/Users.php
@@ -58,7 +58,7 @@ class Users extends Controller
return $r->hasPermission('read-client-portal');
});
- $companies = user()->companies()->take(10)->get()->sortBy('name')->pluck('name', 'id');
+ $companies = user()->companies()->take(setting('default.select_limit'))->get()->sortBy('name')->pluck('name', 'id');
return view('auth.users.create', compact('roles', 'companies', 'landing_pages'));
}
@@ -123,7 +123,7 @@ class Users extends Controller
});
}
- $companies = user()->companies()->take(10)->get()->sortBy('name')->pluck('name', 'id');
+ $companies = user()->companies()->take(setting('default.select_limit'))->get()->sortBy('name')->pluck('name', 'id');
return view('auth.users.edit', compact('user', 'companies', 'roles', 'landing_pages'));
}
diff --git a/app/Http/Controllers/Banking/Transactions.php b/app/Http/Controllers/Banking/Transactions.php
index 9ec181b73..0daceef6a 100644
--- a/app/Http/Controllers/Banking/Transactions.php
+++ b/app/Http/Controllers/Banking/Transactions.php
@@ -22,7 +22,7 @@ class Transactions extends Controller
{
$accounts = Account::enabled()->orderBy('name')->pluck('name', 'id');
- $types = collect(['expense' => 'Expense', 'income' => 'Income'])
+ $types = collect(['expense' => trans_choice('general.expenses', 1), 'income' => trans_choice('general.incomes', 1)])
->prepend(trans('general.all_type', ['type' => trans_choice('general.types', 2)]), '');
$request_type = !request()->has('type') ? ['income', 'expense'] : request('type');
diff --git a/app/Http/Controllers/Common/Items.php b/app/Http/Controllers/Common/Items.php
index 180a95499..1f99856f9 100644
--- a/app/Http/Controllers/Common/Items.php
+++ b/app/Http/Controllers/Common/Items.php
@@ -50,9 +50,9 @@ class Items extends Controller
*/
public function create()
{
- $categories = Category::item()->enabled()->orderBy('name')->pluck('name', 'id');
+ $categories = Category::item()->enabled()->orderBy('name')->take(setting('default.select_limit'))->pluck('name', 'id');
- $taxes = Tax::enabled()->orderBy('name')->get()->pluck('title', 'id');
+ $taxes = Tax::enabled()->orderBy('name')->get()->take(setting('default.select_limit'))->pluck('title', 'id');
return view('common.items.create', compact('categories', 'taxes'));
}
diff --git a/app/Http/Controllers/Modals/Items.php b/app/Http/Controllers/Modals/Items.php
index 0c5f50f46..23cac8104 100644
--- a/app/Http/Controllers/Modals/Items.php
+++ b/app/Http/Controllers/Modals/Items.php
@@ -30,7 +30,7 @@ class Items extends Controller
*/
public function create(IRequest $request)
{
- $categories = Category::item()->enabled()->orderBy('name')->pluck('name', 'id');
+ $categories = Category::item()->enabled()->orderBy('name')->take(setting('default.select_limit'))->pluck('name', 'id');
$taxes = Tax::enabled()->orderBy('name')->get()->pluck('title', 'id');
diff --git a/app/Http/Controllers/Purchases/Bills.php b/app/Http/Controllers/Purchases/Bills.php
index a26f33f28..4fef9896c 100644
--- a/app/Http/Controllers/Purchases/Bills.php
+++ b/app/Http/Controllers/Purchases/Bills.php
@@ -39,13 +39,7 @@ class Bills extends Controller
{
$bills = Bill::with('contact', 'transactions')->collect(['billed_at'=> 'desc']);
- $vendors = Contact::vendor()->enabled()->orderBy('name')->pluck('name', 'id');
-
- $categories = Category::expense()->enabled()->orderBy('name')->pluck('name', 'id');
-
- $statuses = $this->getBillStatuses();
-
- return $this->response('purchases.bills.index', compact('bills', 'vendors', 'categories', 'statuses'));
+ return $this->response('purchases.bills.index', compact('bills'));
}
/**
@@ -96,7 +90,7 @@ class Bills extends Controller
*/
public function create()
{
- $vendors = Contact::vendor()->enabled()->orderBy('name')->pluck('name', 'id');
+ $vendors = Contact::vendor()->enabled()->orderBy('name')->take(setting('default.select_limit'))->pluck('name', 'id');
$currencies = Currency::enabled()->orderBy('name')->pluck('name', 'code')->toArray();
@@ -106,7 +100,7 @@ class Bills extends Controller
$taxes = Tax::enabled()->orderBy('name')->get();
- $categories = Category::expense()->enabled()->orderBy('name')->pluck('name', 'id');
+ $categories = Category::expense()->enabled()->orderBy('name')->take(setting('default.select_limit'))->pluck('name', 'id');
$number = $this->getNextBillNumber();
@@ -192,7 +186,7 @@ class Bills extends Controller
*/
public function edit(Bill $bill)
{
- $vendors = Contact::vendor()->enabled()->orderBy('name')->pluck('name', 'id');
+ $vendors = Contact::vendor()->enabled()->orderBy('name')->take(setting('default.select_limit'))->pluck('name', 'id');
$currencies = Currency::enabled()->orderBy('name')->pluck('name', 'code')->toArray();
@@ -202,7 +196,7 @@ class Bills extends Controller
$taxes = Tax::enabled()->orderBy('name')->get();
- $categories = Category::expense()->enabled()->orderBy('name')->pluck('name', 'id');
+ $categories = Category::expense()->enabled()->orderBy('name')->take(setting('default.select_limit'))->pluck('name', 'id');
return view('purchases.bills.edit', compact('bill', 'vendors', 'currencies', 'currency', 'items', 'taxes', 'categories'));
}
diff --git a/app/Http/Controllers/Purchases/Payments.php b/app/Http/Controllers/Purchases/Payments.php
index 21b4cea43..83b10c9e8 100644
--- a/app/Http/Controllers/Purchases/Payments.php
+++ b/app/Http/Controllers/Purchases/Payments.php
@@ -32,13 +32,7 @@ class Payments extends Controller
{
$payments = Transaction::with('account', 'bill', 'category', 'contact')->expense()->isNotTransfer()->collect(['paid_at'=> 'desc']);
- $vendors = Contact::vendor()->enabled()->orderBy('name')->pluck('name', 'id');
-
- $categories = Category::expense()->enabled()->orderBy('name')->pluck('name', 'id');
-
- $accounts = Account::enabled()->orderBy('name')->pluck('name', 'id');
-
- return $this->response('purchases.payments.index', compact('payments', 'vendors', 'categories', 'accounts'));
+ return $this->response('purchases.payments.index', compact('payments'));
}
/**
@@ -66,9 +60,9 @@ class Payments extends Controller
$currency = Currency::where('code', $account_currency_code)->first();
- $vendors = Contact::vendor()->enabled()->orderBy('name')->pluck('name', 'id');
+ $vendors = Contact::vendor()->enabled()->orderBy('name')->take(setting('default.select_limit'))->pluck('name', 'id');
- $categories = Category::expense()->enabled()->orderBy('name')->pluck('name', 'id');
+ $categories = Category::expense()->enabled()->orderBy('name')->take(setting('default.select_limit'))->pluck('name', 'id');
$payment_methods = Modules::getPaymentMethods();
@@ -154,9 +148,9 @@ class Payments extends Controller
$currency = Currency::where('code', $payment->currency_code)->first();
- $vendors = Contact::vendor()->enabled()->orderBy('name')->pluck('name', 'id');
+ $vendors = Contact::vendor()->enabled()->orderBy('name')->take(setting('default.select_limit'))->pluck('name', 'id');
- $categories = Category::expense()->enabled()->orderBy('name')->pluck('name', 'id');
+ $categories = Category::expense()->enabled()->orderBy('name')->take(setting('default.select_limit'))->pluck('name', 'id');
$payment_methods = Modules::getPaymentMethods();
diff --git a/app/Http/Controllers/Sales/Invoices.php b/app/Http/Controllers/Sales/Invoices.php
index d15ff5847..252759165 100644
--- a/app/Http/Controllers/Sales/Invoices.php
+++ b/app/Http/Controllers/Sales/Invoices.php
@@ -40,13 +40,7 @@ class Invoices extends Controller
{
$invoices = Invoice::with('contact', 'transactions')->collect(['invoice_number'=> 'desc']);
- $customers = Contact::customer()->enabled()->orderBy('name')->pluck('name', 'id');
-
- $categories = Category::income()->enabled()->orderBy('name')->pluck('name', 'id');
-
- $statuses = $this->getInvoiceStatuses();
-
- return $this->response('sales.invoices.index', compact('invoices', 'customers', 'categories', 'statuses'));
+ return $this->response('sales.invoices.index', compact('invoices'));
}
/**
@@ -99,7 +93,7 @@ class Invoices extends Controller
*/
public function create()
{
- $customers = Contact::customer()->enabled()->orderBy('name')->pluck('name', 'id');
+ $customers = Contact::customer()->enabled()->orderBy('name')->take(setting('default.select_limit'))->pluck('name', 'id');
$currencies = Currency::enabled()->orderBy('name')->pluck('name', 'code')->toArray();
@@ -109,7 +103,7 @@ class Invoices extends Controller
$taxes = Tax::enabled()->orderBy('name')->get();
- $categories = Category::income()->enabled()->orderBy('name')->pluck('name', 'id');
+ $categories = Category::income()->enabled()->orderBy('name')->take(setting('default.select_limit'))->pluck('name', 'id');
$number = $this->getNextInvoiceNumber();
@@ -195,7 +189,7 @@ class Invoices extends Controller
*/
public function edit(Invoice $invoice)
{
- $customers = Contact::customer()->enabled()->orderBy('name')->pluck('name', 'id');
+ $customers = Contact::customer()->enabled()->orderBy('name')->take(setting('default.select_limit'))->pluck('name', 'id');
$currencies = Currency::enabled()->orderBy('name')->pluck('name', 'code')->toArray();
@@ -205,7 +199,7 @@ class Invoices extends Controller
$taxes = Tax::enabled()->orderBy('name')->get();
- $categories = Category::income()->enabled()->orderBy('name')->pluck('name', 'id');
+ $categories = Category::income()->enabled()->orderBy('name')->take(setting('default.select_limit'))->pluck('name', 'id');
return view('sales.invoices.edit', compact('invoice', 'customers', 'currencies', 'currency', 'items', 'taxes', 'categories'));
}
diff --git a/app/Http/Controllers/Sales/Revenues.php b/app/Http/Controllers/Sales/Revenues.php
index ead04da46..d13d54a9d 100644
--- a/app/Http/Controllers/Sales/Revenues.php
+++ b/app/Http/Controllers/Sales/Revenues.php
@@ -32,13 +32,7 @@ class Revenues extends Controller
{
$revenues = Transaction::with('account', 'category', 'contact', 'invoice')->income()->isNotTransfer()->collect(['paid_at'=> 'desc']);
- $customers = Contact::customer()->enabled()->orderBy('name')->pluck('name', 'id');
-
- $categories = Category::income()->enabled()->orderBy('name')->pluck('name', 'id');
-
- $accounts = Account::enabled()->orderBy('name')->pluck('name', 'id');
-
- return $this->response('sales.revenues.index', compact('revenues', 'customers', 'categories', 'accounts'));
+ return $this->response('sales.revenues.index', compact('revenues'));
}
/**
@@ -66,9 +60,9 @@ class Revenues extends Controller
$currency = Currency::where('code', $account_currency_code)->first();
- $customers = Contact::customer()->enabled()->orderBy('name')->pluck('name', 'id');
+ $customers = Contact::customer()->enabled()->orderBy('name')->take(setting('default.select_limit'))->pluck('name', 'id');
- $categories = Category::income()->enabled()->orderBy('name')->pluck('name', 'id');
+ $categories = Category::income()->enabled()->orderBy('name')->take(setting('default.select_limit'))->pluck('name', 'id');
$payment_methods = Modules::getPaymentMethods();
@@ -154,9 +148,9 @@ class Revenues extends Controller
$currency = Currency::where('code', $revenue->currency_code)->first();
- $customers = Contact::customer()->enabled()->orderBy('name')->pluck('name', 'id');
+ $customers = Contact::customer()->enabled()->orderBy('name')->take(setting('default.select_limit'))->pluck('name', 'id');
- $categories = Category::income()->enabled()->orderBy('name')->pluck('name', 'id');
+ $categories = Category::income()->enabled()->orderBy('name')->take(setting('default.select_limit'))->pluck('name', 'id');
$payment_methods = Modules::getPaymentMethods();
diff --git a/app/Http/Controllers/Settings/Defaults.php b/app/Http/Controllers/Settings/Defaults.php
index 818cfaf8c..ea1fd0f65 100644
--- a/app/Http/Controllers/Settings/Defaults.php
+++ b/app/Http/Controllers/Settings/Defaults.php
@@ -17,8 +17,8 @@ class Defaults extends Controller
$currencies = Currency::enabled()->orderBy('name')->pluck('name', 'code');
- $sales_categories = Category::income()->enabled()->orderBy('name')->pluck('name', 'id');
- $purchases_categories = Category::expense()->enabled()->orderBy('name')->pluck('name', 'id');
+ $sales_categories = Category::income()->enabled()->orderBy('name')->take(setting('default.select_limit'))->pluck('name', 'id');
+ $purchases_categories = Category::expense()->enabled()->orderBy('name')->take(setting('default.select_limit'))->pluck('name', 'id');
$taxes = Tax::enabled()->orderBy('name')->get()->pluck('title', 'id');
diff --git a/app/Providers/Form.php b/app/Providers/Form.php
index 69395ae74..24d19c34b 100644
--- a/app/Providers/Form.php
+++ b/app/Providers/Form.php
@@ -59,6 +59,10 @@ class Form extends Provider
'name', 'text', 'icon', 'values', 'selected' => null, 'attributes' => ['required' => 'required'], 'col' => 'col-md-6', 'group_class' => null
]);
+ Facade::component('multiSelectRemoteAddNewGroup', 'partials.form.multi_select_remote_add_new_group', [
+ 'name', 'text', 'icon', 'values', 'selected' => null, 'attributes' => ['required' => 'required', 'path' => ''], 'col' => 'col-md-6', 'group_class' => null
+ ]);
+
Facade::component('selectGroup', 'partials.form.select_group', [
'name', 'text', 'icon', 'values', 'selected' => null, 'attributes' => ['required' => 'required'], 'col' => 'col-md-6', 'group_class' => null
]);
@@ -79,6 +83,10 @@ class Form extends Provider
'name', 'text', 'icon', 'values', 'selected' => null, 'attributes' => ['required' => 'required'], 'col' => 'col-md-6', 'group_class' => null
]);
+ Facade::component('selectRemoteAddNewGroup', 'partials.form.select_remote_add_new_group', [
+ 'name', 'text', 'icon', 'values', 'selected' => null, 'attributes' => ['required' => 'required', 'path' => ''], 'col' => 'col-md-6', 'group_class' => null
+ ]);
+
Facade::component('textareaGroup', 'partials.form.textarea_group', [
'name', 'text', 'icon', 'value' => null, 'attributes' => ['rows' => '3'], 'col' => 'col-md-12', 'group_class' => null
]);
diff --git a/config/setting.php b/config/setting.php
index 8f0ce3c14..eb59a6b44 100644
--- a/config/setting.php
+++ b/config/setting.php
@@ -120,6 +120,7 @@ return [
'locale' => env('SETTING_FALLBACK_DEFAULT_LOCALE', 'en-GB'),
'list_limit' => env('SETTING_FALLBACK_DEFAULT_LIST_LIMIT', '25'),
'payment_method' => env('SETTING_FALLBACK_DEFAULT_PAYMENT_METHOD', 'offline-payments.cash.1'),
+ 'select_limit' => env('SETTING_FALLBACK_DEFAULT_SELECT_LIMIT', '10'),
],
'email' => [
'protocol' => env('SETTING_FALLBACK_EMAIL_PROTOCOL', 'mail'),
diff --git a/resources/views/common/items/create.blade.php b/resources/views/common/items/create.blade.php
index 62023f1a7..f3f90ca52 100644
--- a/resources/views/common/items/create.blade.php
+++ b/resources/views/common/items/create.blade.php
@@ -27,7 +27,7 @@
{{ Form::textGroup('purchase_price', trans('items.purchase_price'), 'money-bill-wave-alt') }}
- {{ Form::selectAddNewGroup('category_id', trans_choice('general.categories', 1), 'folder', $categories, null, ['path' => route('modals.categories.create') . '?type=item']) }}
+ {{ Form::selectRemoteAddNewGroup('category_id', trans_choice('general.categories', 1), 'folder', $categories, null, ['path' => route('modals.categories.create') . '?type=item', 'remote_action' => route('categories.index'). '?type=item', 'remote_type' => 'category']) }}
{{ Form::fileGroup('picture', trans_choice('general.pictures', 1), 'plus') }}
diff --git a/resources/views/common/items/edit.blade.php b/resources/views/common/items/edit.blade.php
index e41c742ae..8e429d902 100644
--- a/resources/views/common/items/edit.blade.php
+++ b/resources/views/common/items/edit.blade.php
@@ -28,7 +28,7 @@
{{ Form::textGroup('purchase_price', trans('items.purchase_price'), 'money-bill-wave-alt') }}
- {{ Form::selectAddNewGroup('category_id', trans_choice('general.categories', 1), 'folder', $categories, $item->category_id, ['path' => route('modals.categories.create') . '?type=item']) }}
+ {{ Form::selectRemoteAddNewGroup('category_id', trans_choice('general.categories', 1), 'folder', $categories, $item->category_id, ['path' => route('modals.categories.create') . '?type=item', 'remote_action' => route('categories.index'). '?type=item', 'remote_type' => 'category']) }}
{{ Form::fileGroup('picture', trans_choice('general.pictures', 1)) }}
diff --git a/resources/views/modals/items/create.blade.php b/resources/views/modals/items/create.blade.php
index 64f64fa16..ba7250919 100644
--- a/resources/views/modals/items/create.blade.php
+++ b/resources/views/modals/items/create.blade.php
@@ -18,7 +18,7 @@
{{ Form::textGroup('purchase_price', trans('items.purchase_price'), 'money-bill-wave-alt') }}
- {{ Form::selectGroup('category_id', trans_choice('general.categories', 1), 'folder', $categories, null) }}
+ {{ Form::selectRemoteGroup('category_id', trans_choice('general.categories', 1), 'folder', $categories, null, ['remote_action' => route('categories.index'). '?type=item', 'remote_type' => 'category']) }}
{!! Form::hidden('enabled', '1', []) !!}
diff --git a/resources/views/partials/form/multi_select_remote_add_new_group.blade.php b/resources/views/partials/form/multi_select_remote_add_new_group.blade.php
new file mode 100644
index 000000000..b00f49516
--- /dev/null
+++ b/resources/views/partials/form/multi_select_remote_add_new_group.blade.php
@@ -0,0 +1,98 @@
+@stack($name . '_input_start')
+
+