From ff61858cf57c4a4eac39736e836082fb0e596462 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Wed, 27 Jan 2016 00:55:41 +0100 Subject: [PATCH] FEATURE: add functionality for editing custom fields --- .../Controllers/Admin/EditCustomField.php | 67 +++++++++ app/Http/Requests/EditCustomFieldRequest.php | 20 +++ app/Http/routes.php | 8 ++ resources/lang/en/admin/customFields.php | 4 +- .../views/admin/customFields/edit.blade.php | 14 ++ .../admin/customFields/editForm.blade.php | 136 ++++++++++++++++++ .../admin/customFields/overview.blade.php | 2 +- 7 files changed, 249 insertions(+), 2 deletions(-) create mode 100644 app/Http/Controllers/Admin/EditCustomField.php create mode 100644 app/Http/Requests/EditCustomFieldRequest.php create mode 100644 resources/views/admin/customFields/edit.blade.php create mode 100644 resources/views/admin/customFields/editForm.blade.php diff --git a/app/Http/Controllers/Admin/EditCustomField.php b/app/Http/Controllers/Admin/EditCustomField.php new file mode 100644 index 00000000..7dcbb387 --- /dev/null +++ b/app/Http/Controllers/Admin/EditCustomField.php @@ -0,0 +1,67 @@ + $field, + 'types' => CustomFieldTypes::getWithTranslations(), + 'resources' => CustomFieldResources::getWithTranslations() + ]); + } + + public function postEditCustomField(EditCustomFieldRequest $request, $id) + { + $customField = CustomField::findOrFail($id); + + // setup fields + + $customField->name = $request->name; + $customField->required = $request->has('required'); + + // set non-mandatory fields + + if ($request->description) { + $customField->description = $request->description; + } + + if ($request->possibleValues) { + $customField->possible_values = trim(preg_replace('~[\r\n]+~', '|', $request->possibleValues)); + } + + if ($request->defaultValue) { + $customField->default_value = $request->defaultValue; + } + + if ($request->regExp) { + $customField->regexp = $request->regExp; + } + + if ($request->minLength) { + $customField->min_length = $request->minLength; + } + + if ($request->maxLength) { + $customField->max_length = $request->maxLength; + } + + // save changes into database + $customField->save(); + + return redirect() + ->route('customfields.edit', ['id' => $id]) + ->with('success', trans('admin/customFields.successfullyEdited')); + } +} \ No newline at end of file diff --git a/app/Http/Requests/EditCustomFieldRequest.php b/app/Http/Requests/EditCustomFieldRequest.php new file mode 100644 index 00000000..a02917d6 --- /dev/null +++ b/app/Http/Requests/EditCustomFieldRequest.php @@ -0,0 +1,20 @@ + 'required', + 'minLength' => 'numeric|min:0', + 'maxLength' => 'numeric|min:0', + ]; + } +} diff --git a/app/Http/routes.php b/app/Http/routes.php index 43597ce6..dbe35472 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -59,10 +59,18 @@ Route::group([ Route::get('customfields/new', 'CreateNewCustomField@getNew') ->name('customfields.new'); + // form for editing custom field + Route::get('customfields/edit/{id}', 'EditCustomField@getEditCustomField') + ->name('customfields.edit'); + // form for adding new custom field Route::post('customfields/new', 'CreateNewCustomField@postNew') ->name('customfields.newPost'); + // form for editing custom field + Route::post('customfields/edit/{id}', 'EditCustomField@postEditCustomField') + ->name('customfields.editPost'); + // logout method Route::get('logout', function () { diff --git a/resources/lang/en/admin/customFields.php b/resources/lang/en/admin/customFields.php index 127db7fa..fc845e9f 100644 --- a/resources/lang/en/admin/customFields.php +++ b/resources/lang/en/admin/customFields.php @@ -20,7 +20,9 @@ return [ 'selectboxList' => 'List (selectbox)', 'string' => 'Short text', 'successfullyCreated' => 'Custom field successfully created.', + 'successfullyEdited' => 'Custom field successfully updated.', 'resource' => 'Add to resource', 'resource_user' => 'User', - 'resource_content' => 'Each content page' + 'resource_content' => 'Each content page', + 'edit' => 'Editing custom field ":name"' ]; \ No newline at end of file diff --git a/resources/views/admin/customFields/edit.blade.php b/resources/views/admin/customFields/edit.blade.php new file mode 100644 index 00000000..4cf713f4 --- /dev/null +++ b/resources/views/admin/customFields/edit.blade.php @@ -0,0 +1,14 @@ +@extends('admin.layout') + +@section('pageName', @trans('admin/customFields.edit', ['name' => $field->name])) + +@section('content') + +
+

@lang('admin/customFields.edit', ['name' => $field->name])

+
+ +
+ @include('admin.customFields.editForm') +
+@stop \ No newline at end of file diff --git a/resources/views/admin/customFields/editForm.blade.php b/resources/views/admin/customFields/editForm.blade.php new file mode 100644 index 00000000..a9670268 --- /dev/null +++ b/resources/views/admin/customFields/editForm.blade.php @@ -0,0 +1,136 @@ +@if (session('success')) +
+ {{ session('success') }} +
+@endif + +@if (session('error')) +
+ {{ session('error') }} +
+@endif + +
+ {!! csrf_field() !!} + +
+
+ +
+
+
+
+ +
+ +
+ + + + + + +
+
+ +
+
+ +
+
+ + + +
+
+ +
+
+ +
+
+ +
+
+ + +
diff --git a/resources/views/admin/customFields/overview.blade.php b/resources/views/admin/customFields/overview.blade.php index 9af246ed..018fe95f 100644 --- a/resources/views/admin/customFields/overview.blade.php +++ b/resources/views/admin/customFields/overview.blade.php @@ -43,7 +43,7 @@ @lang($types[$field->type_id]) - + @endforeach