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)
-