diff --git a/app/Filters/Companies/Companies.php b/app/Filters/Companies/Companies.php index 7b7b2c7db..3b4b242d2 100644 --- a/app/Filters/Companies/Companies.php +++ b/app/Filters/Companies/Companies.php @@ -16,7 +16,6 @@ class Companies extends ModelFilter public function search($query) { - $this->related('settings','settings.key', '=',"'company_name'"); - return $this->related('settings','settings.value', 'LIKE',"'%" . $query . "%'"); + return $this->whereLike('value', $query); } } \ No newline at end of file diff --git a/app/Http/Controllers/Companies/Companies.php b/app/Http/Controllers/Companies/Companies.php index e5e14e01b..386342fed 100644 --- a/app/Http/Controllers/Companies/Companies.php +++ b/app/Http/Controllers/Companies/Companies.php @@ -22,7 +22,7 @@ class Companies extends Controller */ public function index() { - $companies = Auth::user()->companies()->get()->sortBy('name'); + $companies = Auth::user()->companies()->collect(); foreach ($companies as $company) { $company->setSettings(); diff --git a/app/Models/Company/Company.php b/app/Models/Company/Company.php index de9fb2354..d861b85da 100644 --- a/app/Models/Company/Company.php +++ b/app/Models/Company/Company.php @@ -22,7 +22,7 @@ class Company extends Eloquent * * @var array */ - public $sortable = ['domain']; + public $sortable = ['name', 'domain', 'email']; public function accounts() { @@ -196,4 +196,36 @@ class Company extends Eloquent return $this->filter($input)->sortable($sort)->paginate($limit); } + + /** + * Sort by company name + * + * @param \Illuminate\Database\Eloquent\Builder $query + * @param $direction + * + * @return \Illuminate\Database\Eloquent\Builder + */ + public function nameSortable($query, $direction) + { + return $query->join('settings', 'companies.id', '=', 'settings.company_id') + ->where('key', 'general.company_name') + ->orderBy('value', $direction) + ->select('companies.*'); + } + + /** + * Sort by company email + * + * @param \Illuminate\Database\Eloquent\Builder $query + * @param $direction + * + * @return \Illuminate\Database\Eloquent\Builder + */ + public function emailSortable($query, $direction) + { + return $query->join('settings', 'companies.id', '=', 'settings.company_id') + ->where('key', 'general.company_email') + ->orderBy('value', $direction) + ->select('companies.*'); + } } diff --git a/resources/views/companies/companies/index.blade.php b/resources/views/companies/companies/index.blade.php index 48e5857aa..e7e03ad9b 100644 --- a/resources/views/companies/companies/index.blade.php +++ b/resources/views/companies/companies/index.blade.php @@ -32,11 +32,10 @@
@sortablelink('company_name', trans('general.name')) | -@sortablelink('domain', trans('companies.domain')) | -@sortablelink('company_email', trans('general.email')) | - -{{ trans('general.actions') }} | +@sortablelink('name', trans('general.name')) | +@sortablelink('domain', trans('companies.domain')) | +@sortablelink('email', trans('general.email')) | +{{ trans('general.actions') }} | {{ $item->domain }} | {{ $item->company_email }} | + {{ trans('general.change') }} {{ trans('general.edit') }} @permission('delete-companies-companies') {!! Form::deleteButton($item, 'companies/companies', '', 'company_name') !!} @@ -58,6 +58,11 @@ + + + @endsection |
---|