diff --git a/app/Http/Controllers/Admin/CreateNewCustomField.php b/app/Http/Controllers/Admin/CreateNewCustomField.php index 1127c30a..e0fbc06b 100644 --- a/app/Http/Controllers/Admin/CreateNewCustomField.php +++ b/app/Http/Controllers/Admin/CreateNewCustomField.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers\Admin; use App\Enumerations\CustomFieldTypes; use App\Http\Requests\NewCustomFieldRequest; +use App\Models\CustomField; class CreateNewCustomField extends Controller { @@ -16,5 +17,41 @@ class CreateNewCustomField extends Controller public function postNew(NewCustomFieldRequest $request) { + $customField = new CustomField(); + + // @todo add support for determination of resource for custom field (module, user, ...) + // @todo add possible values + + $customField->name = $request->name; + $customField->type_id = $request->type; + $customField->required = $request->has('required'); + + // set non-mandatory fields + + if ($request->description) { + $customField->description = $request->description; + } + + 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; + } + + $customField->save(); + + return redirect() + ->route('customfields.new') + ->with('success', trans('admin/customFields.successfullyCreated')); } } diff --git a/app/Http/Requests/NewCustomFieldRequest.php b/app/Http/Requests/NewCustomFieldRequest.php index eaca2ff6..308849e7 100644 --- a/app/Http/Requests/NewCustomFieldRequest.php +++ b/app/Http/Requests/NewCustomFieldRequest.php @@ -13,9 +13,9 @@ class NewCustomFieldRequest extends Request { return [ 'name' => 'required', - 'type' => 'required|exists:custom_field_types', + 'type' => 'required|exists:custom_field_types,id', 'minLength' => 'numeric|min:0', - 'maxLength' => 'numeric|mix:0' + 'maxLength' => 'numeric|min:0', ]; } } diff --git a/resources/lang/en/admin/customFields.php b/resources/lang/en/admin/customFields.php index 9c4b8406..103de746 100644 --- a/resources/lang/en/admin/customFields.php +++ b/resources/lang/en/admin/customFields.php @@ -1,21 +1,22 @@ 'List of all custom fields', - 'new' => 'New custom field', - 'noFields' => 'No custom fields defined.', - 'users' => 'Custom fields for user', - 'content' => 'Custom fields for content page', - 'name' => 'Name', - 'description' => 'Description', - 'type' => 'Type of custom field', - 'required' => 'Is field required?', - 'defaultValue' => 'Default value', - 'regExp' => 'Match only this regular expression', - 'minLength' => 'Minimum length', - 'maxLength' => 'Maximum length', - 'createNew' => 'Create new field', - 'date' => 'Date', - 'number' => 'Number', - 'selectboxList' => 'List (selectbox)', - 'string' => 'Short text' + 'overview' => 'List of all custom fields', + 'new' => 'New custom field', + 'noFields' => 'No custom fields defined.', + 'users' => 'Custom fields for user', + 'content' => 'Custom fields for content page', + 'name' => 'Name', + 'description' => 'Description', + 'type' => 'Type of custom field', + 'required' => 'Is field required?', + 'defaultValue' => 'Default value', + 'regExp' => 'Match only this regular expression', + 'minLength' => 'Minimum length', + 'maxLength' => 'Maximum length', + 'createNew' => 'Create new field', + 'date' => 'Date', + 'number' => 'Number', + 'selectboxList' => 'List (selectbox)', + 'string' => 'Short text', + 'successfullyCreated' => 'Custom field successfully created.' ]; \ No newline at end of file diff --git a/resources/views/admin/customFields/new.blade.php b/resources/views/admin/customFields/new.blade.php index 16632fcf..377e5839 100644 --- a/resources/views/admin/customFields/new.blade.php +++ b/resources/views/admin/customFields/new.blade.php @@ -10,6 +10,17 @@