FEATURE: add possible values and custom field resource
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
namespace App\Enumerations;
|
||||
|
||||
use App\Models\CustomFieldResource;
|
||||
|
||||
class CustomFieldResources extends BaseEnumeration
|
||||
{
|
||||
public static $items = [];
|
||||
|
||||
public static function init()
|
||||
{
|
||||
// load items from database
|
||||
$types = CustomFieldResource::all(['id', 'name']);
|
||||
|
||||
// push items into collection
|
||||
foreach ($types as $type) {
|
||||
self::push($type->id, $type->name);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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',
|
||||
];
|
||||
|
||||
@@ -15,7 +15,9 @@ class CustomField extends Model
|
||||
protected $fillable = [
|
||||
'name',
|
||||
'type_id',
|
||||
'resource_id',
|
||||
'description',
|
||||
'possible_values',
|
||||
'default_value',
|
||||
'regexp',
|
||||
'min_length',
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
/**
|
||||
* Class CustomFieldResource
|
||||
*/
|
||||
class CustomFieldResource extends Model
|
||||
{
|
||||
|
||||
public $timestamps = false;
|
||||
|
||||
protected $fillable = [
|
||||
'name'
|
||||
];
|
||||
|
||||
protected $guarded = [];
|
||||
|
||||
|
||||
}
|
||||
@@ -13,5 +13,6 @@ class DatabaseSeeder extends Seeder
|
||||
{
|
||||
// fill up custom field types
|
||||
$this->call(SeedCustomFieldTypes::class);
|
||||
$this->call(SeedCustomFieldResources::class);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class SeedCustomFieldResources extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function run()
|
||||
{
|
||||
$types = [
|
||||
['name' => 'admin/customFields.resource_user'],
|
||||
['name' => 'admin/customFields.resource_content']
|
||||
];
|
||||
|
||||
foreach ($types as $type) {
|
||||
\DB::table('custom_field_resources')
|
||||
->insert($type);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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'
|
||||
];
|
||||
@@ -42,12 +42,40 @@
|
||||
</div>
|
||||
|
||||
<div class="large-6 columns">
|
||||
|
||||
<label>
|
||||
@lang('admin/customFields.resource')
|
||||
|
||||
<select name="type">
|
||||
@foreach($resources as $resource => $translation)
|
||||
<option value="{{$resource}}"@if(old('resource') == $resource) selected @endif>@lang($translation)</option>
|
||||
@endforeach
|
||||
</select>
|
||||
|
||||
@if (isset($errors) && $errors->has('resource'))
|
||||
<div class="callout alert">
|
||||
{{ $errors->first('resource') }}
|
||||
</div>
|
||||
@endif
|
||||
</label>
|
||||
|
||||
<label>
|
||||
@lang('admin/customFields.required')
|
||||
|
||||
<input type="checkbox" placeholder="@lang('admin/customFields.required')" @if (old('required')) checked="checked" @endif name="required">
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="columns large-6">
|
||||
<label>
|
||||
@lang('admin/customFields.possibleValues')
|
||||
|
||||
<textarea placeholder="@lang('admin/customFields.possibleValues')" name="possibleValues" rows="4">{{old('possibleValues')}}</textarea>
|
||||
</label>
|
||||
</div>
|
||||
<div class="columns large-6">
|
||||
<label>
|
||||
@lang('admin/customFields.defaultValue')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user