diff --git a/app/Enumerations/CustomFieldResources.php b/app/Enumerations/CustomFieldResources.php new file mode 100644 index 00000000..c683aa97 --- /dev/null +++ b/app/Enumerations/CustomFieldResources.php @@ -0,0 +1,20 @@ +id, $type->name); + } + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Admin/CreateNewCustomField.php b/app/Http/Controllers/Admin/CreateNewCustomField.php index e0fbc06b..ff1222ef 100644 --- a/app/Http/Controllers/Admin/CreateNewCustomField.php +++ b/app/Http/Controllers/Admin/CreateNewCustomField.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers\Admin; +use App\Enumerations\CustomFieldResources; use App\Enumerations\CustomFieldTypes; use App\Http\Requests\NewCustomFieldRequest; use App\Models\CustomField; @@ -11,8 +12,12 @@ class CreateNewCustomField extends Controller public function getNew() { $types = CustomFieldTypes::getWithTranslations(); + $resources = CustomFieldResources::getWithTranslations(); - return view('admin.customFields.new', ['types' => $types]); + return view('admin.customFields.new', [ + 'types' => $types, + 'resources' => $resources + ]); } public function postNew(NewCustomFieldRequest $request) @@ -24,6 +29,7 @@ class CreateNewCustomField extends Controller $customField->name = $request->name; $customField->type_id = $request->type; + $customField->resource_id = $request->resource; $customField->required = $request->has('required'); // set non-mandatory fields @@ -32,6 +38,9 @@ class CreateNewCustomField extends Controller $customField->description = $request->description; } + if ($request->possibleValues) + $customField->possible_values = $request->possibleValues; + if ($request->defaultValue) { $customField->default_value = $request->defaultValue; } diff --git a/app/Http/Requests/NewCustomFieldRequest.php b/app/Http/Requests/NewCustomFieldRequest.php index 308849e7..562d68f9 100644 --- a/app/Http/Requests/NewCustomFieldRequest.php +++ b/app/Http/Requests/NewCustomFieldRequest.php @@ -12,8 +12,9 @@ class NewCustomFieldRequest extends Request public function rules() { return [ - 'name' => 'required', - 'type' => 'required|exists:custom_field_types,id', + 'name' => 'required', + 'type' => 'required|exists:custom_field_types,id', + 'resource' => 'required|exists:custom_field_resources,id', 'minLength' => 'numeric|min:0', 'maxLength' => 'numeric|min:0', ]; diff --git a/app/Models/CustomField.php b/app/Models/CustomField.php index 4f0554cf..ab14bc59 100644 --- a/app/Models/CustomField.php +++ b/app/Models/CustomField.php @@ -15,7 +15,9 @@ class CustomField extends Model protected $fillable = [ 'name', 'type_id', + 'resource_id', 'description', + 'possible_values', 'default_value', 'regexp', 'min_length', diff --git a/app/Models/CustomFieldResource.php b/app/Models/CustomFieldResource.php new file mode 100644 index 00000000..7701a257 --- /dev/null +++ b/app/Models/CustomFieldResource.php @@ -0,0 +1,22 @@ +call(SeedCustomFieldTypes::class); + $this->call(SeedCustomFieldResources::class); } } \ No newline at end of file diff --git a/database/seeds/SeedCustomFieldResources.php b/database/seeds/SeedCustomFieldResources.php new file mode 100644 index 00000000..8a874e26 --- /dev/null +++ b/database/seeds/SeedCustomFieldResources.php @@ -0,0 +1,24 @@ + 'admin/customFields.resource_user'], + ['name' => 'admin/customFields.resource_content'] + ]; + + foreach ($types as $type) { + \DB::table('custom_field_resources') + ->insert($type); + } + } +} diff --git a/resources/lang/en/admin/customFields.php b/resources/lang/en/admin/customFields.php index 103de746..127db7fa 100644 --- a/resources/lang/en/admin/customFields.php +++ b/resources/lang/en/admin/customFields.php @@ -10,6 +10,7 @@ return [ 'type' => 'Type of custom field', 'required' => 'Is field required?', 'defaultValue' => 'Default value', + 'possibleValues' => 'Possible values (each item on new line)', 'regExp' => 'Match only this regular expression', 'minLength' => 'Minimum length', 'maxLength' => 'Maximum length', @@ -18,5 +19,8 @@ return [ 'number' => 'Number', 'selectboxList' => 'List (selectbox)', 'string' => 'Short text', - 'successfullyCreated' => 'Custom field successfully created.' + 'successfullyCreated' => 'Custom field successfully created.', + 'resource' => 'Add to resource', + 'resource_user' => 'User', + 'resource_content' => 'Each content page' ]; \ No newline at end of file diff --git a/resources/views/admin/customFields/newForm.blade.php b/resources/views/admin/customFields/newForm.blade.php index 8f24e760..bff2055e 100644 --- a/resources/views/admin/customFields/newForm.blade.php +++ b/resources/views/admin/customFields/newForm.blade.php @@ -42,12 +42,40 @@