From 3d110510bc5cda28ea84b4f36a947f2f7ea99dec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Wed, 27 Jan 2016 00:10:13 +0100 Subject: [PATCH] FEATURE: add custom fields overview --- .../Admin/CustomFieldsOverview.php | 24 ++++++---- app/Models/CustomField.php | 22 +++++++-- .../admin/customFields/overview.blade.php | 48 ++++++++++++++++++- 3 files changed, 81 insertions(+), 13 deletions(-) diff --git a/app/Http/Controllers/Admin/CustomFieldsOverview.php b/app/Http/Controllers/Admin/CustomFieldsOverview.php index 2d19c4f4..239202ab 100644 --- a/app/Http/Controllers/Admin/CustomFieldsOverview.php +++ b/app/Http/Controllers/Admin/CustomFieldsOverview.php @@ -2,16 +2,24 @@ namespace App\Http\Controllers\Admin; -use App\Enumerations\UserRoles; +use App\Enumerations\CustomFieldResources; +use App\Enumerations\CustomFieldTypes; use App\Http\Controllers\Controller; use App\Http\Requests; -use App\Http\Requests\CreateNewUserRequest; -use App\Models\User; -use Illuminate\Http\Request; -use Illuminate\Support\Facades\Hash; +use App\Models\CustomField; -class CustomFieldsOverview extends Controller { - public function getOverview() { - return view('admin.customFields.overview'); +class CustomFieldsOverview extends Controller +{ + public function getOverview() + { + $model = new CustomField(); + $fields = $model->getIndexedByResource(); + + return view('admin.customFields.overview', [ + 'customFields' => $fields, + 'usedResources' => array_keys($fields), + 'resources' => CustomFieldResources::getWithTranslations(), + 'types' => CustomFieldTypes::getWithTranslations() + ]); } } \ No newline at end of file diff --git a/app/Models/CustomField.php b/app/Models/CustomField.php index ab14bc59..140520b5 100644 --- a/app/Models/CustomField.php +++ b/app/Models/CustomField.php @@ -9,9 +9,7 @@ use Illuminate\Database\Eloquent\Model; */ class CustomField extends Model { - public $timestamps = false; - protected $fillable = [ 'name', 'type_id', @@ -24,8 +22,24 @@ class CustomField extends Model 'max_length', 'required' ]; - protected $guarded = []; - + /** + * Getter for all custom fields indexed by resource ID. + * + * @return array + */ + public function getIndexedByResource() + { + // find all records in table + $fields = CustomField::all(); + + // add them to array indexed by resource ID + $customFields = []; + foreach ($fields as $field) { + $customFields[$field->resource_id][] = $field; + } + + return $customFields; + } } \ No newline at end of file diff --git a/resources/views/admin/customFields/overview.blade.php b/resources/views/admin/customFields/overview.blade.php index b0b739a5..8e7dec40 100644 --- a/resources/views/admin/customFields/overview.blade.php +++ b/resources/views/admin/customFields/overview.blade.php @@ -10,6 +10,52 @@
- @lang('admin/customFields.noFields') + + {{--draw tabs--}} + @if (!empty($usedResources)) + + + {{--display list of custom fields--}} + +
+ @foreach($customFields as $resourceId => $fields) +
+ + + + + + + + + + + @foreach($fields as $field) + + + + + + + @endforeach + +
@lang('admin/customFields.name')@lang('admin/customFields.description')@lang('admin/customFields.type')
{{$field->name}}{{str_limit($field->description)}}@lang($types[$field->type_id]) + + +
+
+ + @endforeach +
+ + @else + @lang('admin/customFields.noFields') + @endif
@stop \ No newline at end of file