FEATURE: add possible values and custom field resource

This commit is contained in:
Michal Kváček
2016-01-26 23:18:39 +01:00
parent fae393a992
commit aede7b8a01
9 changed files with 115 additions and 4 deletions
+20
View File
@@ -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;
}
+3 -2
View File
@@ -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',
];
+2
View File
@@ -15,7 +15,9 @@ class CustomField extends Model
protected $fillable = [
'name',
'type_id',
'resource_id',
'description',
'possible_values',
'default_value',
'regexp',
'min_length',
+22
View File
@@ -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 = [];
}
+1
View File
@@ -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);
}
}
}
+5 -1
View File
@@ -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')