diff --git a/app/Http/Controllers/AssetModelsController.php b/app/Http/Controllers/AssetModelsController.php index 9a7c1407b..b74be1778 100755 --- a/app/Http/Controllers/AssetModelsController.php +++ b/app/Http/Controllers/AssetModelsController.php @@ -8,6 +8,7 @@ use App\Models\AssetModel; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Input; use Illuminate\Support\Facades\View; +use Illuminate\Support\Facades\Validator; use Redirect; use Request; use Storage; @@ -90,7 +91,9 @@ class AssetModelsController extends Controller // Was it created? if ($model->save()) { if ($this->shouldAddDefaultValues($request->input())) { - $this->assignCustomFieldsDefaultValues($model, $request->input('default_values')); + if (!$this->assignCustomFieldsDefaultValues($model, $request->input('default_values'))){ + return redirect()->back()->withInput()->with('error', trans('admin/custom_fields/message.fieldset_default_value.error')); + } } // Redirect to the new model page @@ -163,7 +166,9 @@ class AssetModelsController extends Controller $model->fieldset_id = $request->input('custom_fieldset'); if ($this->shouldAddDefaultValues($request->input())) { - $this->assignCustomFieldsDefaultValues($model, $request->input('default_values')); + if (!$this->assignCustomFieldsDefaultValues($model, $request->input('default_values'))){ + return redirect()->back()->withInput()->with('error', trans('admin/custom_fields/message.fieldset_default_value.error')); + } } } @@ -451,6 +456,21 @@ class AssetModelsController extends Controller */ private function assignCustomFieldsDefaultValues(AssetModel $model, array $defaultValues) { + $data = array(); + foreach ($defaultValues as $customFieldId => $defaultValue) { + $customField = \App\Models\CustomField::find($customFieldId); + + $data[$customField->db_column] = $defaultValue; + } + + $rules = $model->fieldset->validation_rules(); + + $validator = Validator::make($data, $rules); + + if($validator->fails()){ + return false; + } + foreach ($defaultValues as $customFieldId => $defaultValue) { if(is_array($defaultValue)){ $model->defaultValues()->attach($customFieldId, ['default_value' => implode(', ', $defaultValue)]); @@ -458,6 +478,7 @@ class AssetModelsController extends Controller $model->defaultValues()->attach($customFieldId, ['default_value' => $defaultValue]); } } + return true; } /** diff --git a/app/Http/Controllers/Assets/AssetsController.php b/app/Http/Controllers/Assets/AssetsController.php index 4b1a7f178..c278940a1 100755 --- a/app/Http/Controllers/Assets/AssetsController.php +++ b/app/Http/Controllers/Assets/AssetsController.php @@ -20,6 +20,7 @@ use Gate; use Illuminate\Http\Request; use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Storage; +use Illuminate\Support\Facades\Cookie; use Input; use Intervention\Image\Facades\Image; use League\Csv\Reader; @@ -201,18 +202,36 @@ class AssetsController extends Controller } $success = true; + + // $cookie = Cookie::queue(Cookie::make('optional_info', $_POST['options'],$minutes)); + // $data = $request->session()->all(); + + // dd($_POST['options']); + } } if ($success) { // Redirect to the asset listing page + $minutes = 518400; + // dd( $_POST['options']); + // Cookie::queue(Cookie::make('optional_info', json_decode($_POST['options']), $minutes)); return redirect()->route('hardware.index') - ->with('success', trans('admin/hardware/message.create.success')); + ->with('success', trans('admin/hardware/message.create.success')) + ->withCookie(cookie('optional_info',json_encode($_POST['options']),$minutes,null,null,null,false)); + + } return redirect()->back()->withInput()->withErrors($asset->getErrors()); } + public function getOptionCookie(Request $request){ + $value = $request->cookie('optional_info'); + echo $value; + return $value; + } + /** * Returns a view that presents a form to edit an existing asset. * diff --git a/resources/lang/en/admin/custom_fields/general.php b/resources/lang/en/admin/custom_fields/general.php index 4c7442b2d..743411783 100644 --- a/resources/lang/en/admin/custom_fields/general.php +++ b/resources/lang/en/admin/custom_fields/general.php @@ -41,7 +41,7 @@ return [ 'make_required' => 'Optional - click to make required', 'reorder' => 'Reorder', 'db_field' => 'DB Field', - 'db_convert_warning' => 'WARNING. This field is in the custom fields table as :db_column but should be :expected .', + 'db_convert_warning' => 'WARNING. This field is in the custom fields table as :db_column but should be :expected.', 'is_unique' => 'This value must be unique across all assets', 'unique' => 'Unique', ]; diff --git a/resources/lang/en/admin/custom_fields/message.php b/resources/lang/en/admin/custom_fields/message.php index ed66a6ba1..43ba82182 100644 --- a/resources/lang/en/admin/custom_fields/message.php +++ b/resources/lang/en/admin/custom_fields/message.php @@ -49,6 +49,12 @@ return array( ), + 'fieldset_default_value' => array( + + 'error' => 'Error validating default fieldset values.', + + ), + diff --git a/resources/lang/en/admin/hardware/form.php b/resources/lang/en/admin/hardware/form.php index 0c1a3167b..b2d7bab0f 100644 --- a/resources/lang/en/admin/hardware/form.php +++ b/resources/lang/en/admin/hardware/form.php @@ -46,4 +46,6 @@ return [ 'asset_not_deployable' => 'That asset status is not deployable. This asset cannot be checked out.', 'asset_deployable' => 'That status is deployable. This asset can be checked out.', 'processing_spinner' => 'Processing...', + 'optional_infos' => 'Optional Information', + 'order_details' => 'Order Related Information' ]; diff --git a/resources/views/custom_fields/index.blade.php b/resources/views/custom_fields/index.blade.php index 6887e07a3..4638f615c 100644 --- a/resources/views/custom_fields/index.blade.php +++ b/resources/views/custom_fields/index.blade.php @@ -150,7 +150,8 @@ {{ $field->convertUnicodeDbSlug() }} @if ($field->convertUnicodeDbSlug()!=$field->db_column) -
{{!! trans('admin/custom_fields/general.db_convert_warning', array('db_column' => $field->db_column, 'expected' => $field->convertUnicodeDbSlug())) !!}} +
+ {!! trans('admin/custom_fields/general.db_convert_warning',['db_column' => $field->db_column, 'expected' => $field->convertUnicodeDbSlug()]) !!} @endif {{ $field->format }} diff --git a/resources/views/hardware/edit.blade.php b/resources/views/hardware/edit.blade.php index 14e5a4507..99ec724a3 100755 --- a/resources/views/hardware/edit.blade.php +++ b/resources/views/hardware/edit.blade.php @@ -10,16 +10,16 @@ {{-- Page content --}} - @section('inputFields') - + @include ('partials.forms.edit.company-select', ['translated_name' => trans('general.company'), 'fieldname' => 'company_id']) +
- + @if ($item->id)
@@ -41,78 +41,116 @@
@endif
+ + + + @include ('partials.forms.edit.serial', ['fieldname'=> 'serials[1]', 'translated_serial' => trans('admin/hardware/form.serial')])
- @include ('partials.forms.edit.model-select', ['translated_name' => trans('admin/hardware/form.model'), 'fieldname' => 'model_id', 'field_req' => true]) -
- - @if ($item->model && $item->model->fieldset) - model; ?> - @endif - @if (Request::old('model_id')) - - @elseif (isset($selected_model)) - - @endif - @if (isset($model) && $model) - @include("models/custom_fields_form",["model" => $model]) - @endif -
+ @include ('partials.forms.edit.status', [ 'required' => 'true']) + @if (!$item->id) + @include ('partials.forms.checkout-selector', ['user_select' => 'true','asset_select' => 'true', 'location_select' => 'true', 'style' => 'display:none;']) + @include ('partials.forms.edit.user-select', ['translated_name' => trans('admin/hardware/form.checkout_to'), 'fieldname' => 'assigned_user', 'style' => 'display:none;', 'required' => 'false']) + @include ('partials.forms.edit.asset-select', ['translated_name' => trans('admin/hardware/form.checkout_to'), 'fieldname' => 'assigned_asset', 'style' => 'display:none;', 'required' => 'false']) + @include ('partials.forms.edit.location-select', ['translated_name' => trans('admin/hardware/form.checkout_to'), 'fieldname' => 'assigned_location', 'style' => 'display:none;', 'required' => 'false']) + @elseif (($item->assignedTo) && ($item->deleted_at == '')) + + @include ('partials.forms.edit.datepicker', ['translated_name' => trans('admin/hardware/form.expected_checkin'),'fieldname' => 'expected_checkin']) + @endif - @include ('partials.forms.edit.status', [ 'required' => 'true']) - @if (!$item->id) - @include ('partials.forms.checkout-selector', ['user_select' => 'true','asset_select' => 'true', 'location_select' => 'true', 'style' => 'display:none;']) - @include ('partials.forms.edit.user-select', ['translated_name' => trans('admin/hardware/form.checkout_to'), 'fieldname' => 'assigned_user', 'style' => 'display:none;', 'required' => 'false']) - @include ('partials.forms.edit.asset-select', ['translated_name' => trans('admin/hardware/form.checkout_to'), 'fieldname' => 'assigned_asset', 'style' => 'display:none;', 'required' => 'false']) - @include ('partials.forms.edit.location-select', ['translated_name' => trans('admin/hardware/form.checkout_to'), 'fieldname' => 'assigned_location', 'style' => 'display:none;', 'required' => 'false']) - @elseif (($item->assignedTo) && ($item->deleted_at=='')) - - @include ('partials.forms.edit.datepicker', ['translated_name' => trans('admin/hardware/form.expected_checkin'),'fieldname' => 'expected_checkin']) - @endif + @include ('partials.forms.edit.notes') + @include ('partials.forms.edit.location-select', ['translated_name' => trans('admin/hardware/form.default_location'), 'fieldname' => 'rtd_location_id']) + @include ('partials.forms.edit.requestable', ['requestable_text' => trans('admin/hardware/general.requestable')]) - @include ('partials.forms.edit.name', ['translated_name' => trans('admin/hardware/form.name')]) - @include ('partials.forms.edit.purchase_date') - @include ('partials.forms.edit.supplier-select', ['translated_name' => trans('general.supplier'), 'fieldname' => 'supplier_id']) - @include ('partials.forms.edit.order_number') - id && $item->location) { - $currency_type = $item->location->currency; - } - ?> - @include ('partials.forms.edit.purchase_cost', ['currency_type' => $currency_type]) - @include ('partials.forms.edit.warranty') - @include ('partials.forms.edit.notes') + + @if ($item->image) +
+ +
+ +
+ +
+
+
+ @endif - @include ('partials.forms.edit.location-select', ['translated_name' => trans('admin/hardware/form.default_location'), 'fieldname' => 'rtd_location_id']) + @include ('partials.forms.edit.image-upload') +
+ + @if ($item->model && $item->model->fieldset) + model; ?> + @endif + @if (Request::old('model_id')) + @php + $model = \App\Models\AssetModel::find(Request::old('model_id')); + @endphp + @elseif (isset($selected_model)) + @php + $model = $selected_model; + @endphp + @endif + @if (isset($model) && $model) + @include("models/custom_fields_form",["model" => $model]) + @endif +
- @include ('partials.forms.edit.requestable', ['requestable_text' => trans('admin/hardware/general.requestable')]) +
+ - - @if ($item->image) -
- -
- -
- -
-
-
- @endif +
-@include ('partials.forms.edit.image-upload') + + + {{ trans('admin/hardware/form.optional_infos') }} + +
+ + +
+ +
+
+ + + {{ trans('admin/hardware/form.order_details') }} + + +
+ + +
+ @stop @section('moar_scripts') @@ -121,7 +159,6 @@ @stop diff --git a/resources/views/livewire/custom-field-set-default-values-for-model.blade.php b/resources/views/livewire/custom-field-set-default-values-for-model.blade.php index c1a8373f4..220956115 100644 --- a/resources/views/livewire/custom-field-set-default-values-for-model.blade.php +++ b/resources/views/livewire/custom-field-set-default-values-for-model.blade.php @@ -22,8 +22,14 @@
- - @if ($field->element == "text") + @if ($field->format == "DATE") +
+
+ + +
+
+ @elseif ($field->element == "text") @elseif($field->element == "textarea")