diff --git a/app/Models/AssetModel.php b/app/Models/AssetModel.php index e4e5ac720a..aed1b925ef 100755 --- a/app/Models/AssetModel.php +++ b/app/Models/AssetModel.php @@ -150,6 +150,11 @@ class AssetModel extends SnipeModel { return $this->belongsTo(\App\Models\CustomFieldset::class, 'fieldset_id'); } + + public function customFields() + { + return $this->fieldset()->first()->fields(); + } /** * Establishes the model -> custom field default values relationship diff --git a/app/Models/CustomField.php b/app/Models/CustomField.php index fcab5b25ff..ea62c4fa65 100644 --- a/app/Models/CustomField.php +++ b/app/Models/CustomField.php @@ -177,6 +177,11 @@ class CustomField extends Model { return $this->belongsToMany(\App\Models\CustomFieldset::class); } + + public function assetModels() + { + return $this->fieldset()->with('models')->get()->pluck('models')->flatten()->unique('id'); + } /** * Establishes the customfield -> admin user relationship diff --git a/resources/views/hardware/bulk.blade.php b/resources/views/hardware/bulk.blade.php index 53f8ab1d80..95e2d250ee 100755 --- a/resources/views/hardware/bulk.blade.php +++ b/resources/views/hardware/bulk.blade.php @@ -187,8 +187,8 @@ {{-- @foreach ($models as $model) --}} - {{-- @include("models/custom_fields_form",["model" => $model]) --}} + + @include("models/custom_fields_form",["model" => $model]) --}} @include("models/custom_fields_form_bulk_edit",["models" => $models]) {{-- @endforeach --}} diff --git a/resources/views/models/custom_fields_form.blade.php b/resources/views/models/custom_fields_form.blade.php index f73a93903f..e63aa3d272 100644 --- a/resources/views/models/custom_fields_form.blade.php +++ b/resources/views/models/custom_fields_form.blade.php @@ -1,3 +1,12 @@ +@php + $fields = []; + foreach($model->fieldset->fields AS $field) { + $fields[] = $field->db_column_name(); + } + ray($fields); + $duplicates = array_diff_assoc($fields, array_unique($fields)); + ray($duplicates); +@endphp @if (($model) && ($model->fieldset)) @foreach($model->fieldset->fields AS $field)
diff --git a/resources/views/models/custom_fields_form_bulk_edit.blade.php b/resources/views/models/custom_fields_form_bulk_edit.blade.php index d94a261281..97b32d1134 100644 --- a/resources/views/models/custom_fields_form_bulk_edit.blade.php +++ b/resources/views/models/custom_fields_form_bulk_edit.blade.php @@ -1,32 +1,28 @@ @php $fields = []; +$modelNames = []; +foreach($models as $model) { + $modelNames[] = $model->name; +} + @endphp @foreach($models as $model) -
{{$model->name}}
- + @if (($model) && ($model->fieldset)) - @foreach($model->fieldset->fields AS $field) - {{-- if field has already been displayed, skip --}} - {{-- @php + @foreach($model->customFields AS $field) + @php if (in_array($field->db_column_name(), $fields)) { $duplicate = true; - ray($field->db_column_name() . ' is a duplicate'); continue; } else { $duplicate = false; } - $fields[] = $field->db_column_name(); - ray($fields); - @endphp --}} - + $fields[] = $field->db_column_name(); +@endphp +
- {{--hmmm, this doesn't make sense, duh. - need to determine duplicates _before_ any rendering --}} - {{-- @if($duplicate) --}} - {{--

On Models: {{$model->name}}

--}} - {{-- @endif --}}
@@ -87,13 +83,17 @@ $fields = []; @endif - @if ($field->help_text!='') -

{{ $field->help_text }}

- @endif + @if ($field->help_text!='') +

{{ $field->help_text }}

+ @endif + + + @foreach($field->assetModels() as $assetModel) + @if(in_array($assetModel->name, $modelNames)) +

{{$assetModel->name}}

+ @endif + @endforeach - @if($duplicate) -

This custom field is present on multiple models

- @endif