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;
|
namespace App\Http\Controllers\Admin;
|
||||||
|
|
||||||
|
use App\Enumerations\CustomFieldResources;
|
||||||
use App\Enumerations\CustomFieldTypes;
|
use App\Enumerations\CustomFieldTypes;
|
||||||
use App\Http\Requests\NewCustomFieldRequest;
|
use App\Http\Requests\NewCustomFieldRequest;
|
||||||
use App\Models\CustomField;
|
use App\Models\CustomField;
|
||||||
@@ -11,8 +12,12 @@ class CreateNewCustomField extends Controller
|
|||||||
public function getNew()
|
public function getNew()
|
||||||
{
|
{
|
||||||
$types = CustomFieldTypes::getWithTranslations();
|
$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)
|
public function postNew(NewCustomFieldRequest $request)
|
||||||
@@ -24,6 +29,7 @@ class CreateNewCustomField extends Controller
|
|||||||
|
|
||||||
$customField->name = $request->name;
|
$customField->name = $request->name;
|
||||||
$customField->type_id = $request->type;
|
$customField->type_id = $request->type;
|
||||||
|
$customField->resource_id = $request->resource;
|
||||||
$customField->required = $request->has('required');
|
$customField->required = $request->has('required');
|
||||||
|
|
||||||
// set non-mandatory fields
|
// set non-mandatory fields
|
||||||
@@ -32,6 +38,9 @@ class CreateNewCustomField extends Controller
|
|||||||
$customField->description = $request->description;
|
$customField->description = $request->description;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($request->possibleValues)
|
||||||
|
$customField->possible_values = $request->possibleValues;
|
||||||
|
|
||||||
if ($request->defaultValue) {
|
if ($request->defaultValue) {
|
||||||
$customField->default_value = $request->defaultValue;
|
$customField->default_value = $request->defaultValue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ class NewCustomFieldRequest extends Request
|
|||||||
return [
|
return [
|
||||||
'name' => 'required',
|
'name' => 'required',
|
||||||
'type' => 'required|exists:custom_field_types,id',
|
'type' => 'required|exists:custom_field_types,id',
|
||||||
|
'resource' => 'required|exists:custom_field_resources,id',
|
||||||
'minLength' => 'numeric|min:0',
|
'minLength' => 'numeric|min:0',
|
||||||
'maxLength' => 'numeric|min:0',
|
'maxLength' => 'numeric|min:0',
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -15,7 +15,9 @@ class CustomField extends Model
|
|||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
'name',
|
'name',
|
||||||
'type_id',
|
'type_id',
|
||||||
|
'resource_id',
|
||||||
'description',
|
'description',
|
||||||
|
'possible_values',
|
||||||
'default_value',
|
'default_value',
|
||||||
'regexp',
|
'regexp',
|
||||||
'min_length',
|
'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
|
// fill up custom field types
|
||||||
$this->call(SeedCustomFieldTypes::class);
|
$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',
|
'type' => 'Type of custom field',
|
||||||
'required' => 'Is field required?',
|
'required' => 'Is field required?',
|
||||||
'defaultValue' => 'Default value',
|
'defaultValue' => 'Default value',
|
||||||
|
'possibleValues' => 'Possible values (each item on new line)',
|
||||||
'regExp' => 'Match only this regular expression',
|
'regExp' => 'Match only this regular expression',
|
||||||
'minLength' => 'Minimum length',
|
'minLength' => 'Minimum length',
|
||||||
'maxLength' => 'Maximum length',
|
'maxLength' => 'Maximum length',
|
||||||
@@ -18,5 +19,8 @@ return [
|
|||||||
'number' => 'Number',
|
'number' => 'Number',
|
||||||
'selectboxList' => 'List (selectbox)',
|
'selectboxList' => 'List (selectbox)',
|
||||||
'string' => 'Short text',
|
'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>
|
||||||
|
|
||||||
<div class="large-6 columns">
|
<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>
|
<label>
|
||||||
@lang('admin/customFields.required')
|
@lang('admin/customFields.required')
|
||||||
|
|
||||||
<input type="checkbox" placeholder="@lang('admin/customFields.required')" @if (old('required')) checked="checked" @endif name="required">
|
<input type="checkbox" placeholder="@lang('admin/customFields.required')" @if (old('required')) checked="checked" @endif name="required">
|
||||||
</label>
|
</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>
|
<label>
|
||||||
@lang('admin/customFields.defaultValue')
|
@lang('admin/customFields.defaultValue')
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user