CustomFieldsController.php
Go to the documentation of this file.
1 <?php
2 namespace App\Http\Controllers;
3 
4 use View;
7 use Input;
8 use Validator;
9 use Redirect;
11 use Lang;
12 use Auth;
13 
25 {
26 
34  public function index()
35  {
36  //
37  $fieldsets=CustomFieldset::with("fields", "models")->get();
38  //$fieldsets=CustomFieldset::all();
39  $fields=CustomField::with("fieldset")->get();
40  //$fields=CustomField::all();
41  return View::make("custom_fields.index")->with("custom_fieldsets", $fieldsets)->with("custom_fields", $fields);
42  }
43 
44 
52  public function create()
53  {
54  //
55  return View::make("custom_fields.create");
56  }
57 
58 
66  public function store()
67  {
68  //
69  $cfset=new CustomFieldset(["name" => Input::get("name"),"user_id" => Auth::user()->id]);
70  $validator=Validator::make(Input::all(), $cfset->rules);
71  if ($validator->passes()) {
72  $cfset->save();
73  return Redirect::route("admin.custom_fields.show", [$cfset->id])->with('success', trans('admin/custom_fields/message.fieldset.create.success'));
74  } else {
75  return Redirect::back()->withInput()->withErrors($validator);
76  }
77  }
78 
86  public function associate($id)
87  {
88 
89  $set = CustomFieldset::find($id);
90 
91  foreach ($set->fields as $field) {
92  if ($field->id == Input::get('field_id')) {
93  return Redirect::route("admin.custom_fields.show", [$id])->withInput()->withErrors(['field_id' => trans('admin/custom_fields/message.field.already_added')]);
94  }
95  }
96 
97  $results=$set->fields()->attach(Input::get('field_id'), ["required" => (Input::get('required') == "on"),"order" => Input::get('order')]);
98 
99  return Redirect::route("admin.custom_fields.show", [$id])->with("success", trans('admin/custom_fields/message.field.create.assoc_success'));
100  }
101 
102 
111  public function createField()
112  {
113  return View::make("custom_fields.create_field");
114  }
115 
116 
125  public function storeField()
126  {
127  $field=new CustomField(["name" => Input::get("name"),"element" => Input::get("element"),"user_id" => Auth::user()->id]);
128 
129 
130  if (!in_array(Input::get('format'), array_keys(CustomField::$PredefinedFormats))) {
131  $field->format=Input::get("custom_format");
132  } else {
133  $field->format=Input::get('format');
134  }
135 
136  $validator=Validator::make(Input::all(), $field->rules);
137  if ($validator->passes()) {
138  $results=$field->save();
139  //return "postCreateField: $results";
140  if ($results) {
141  return Redirect::route("admin.custom_fields.index")->with("success", trans('admin/custom_fields/message.field.create.success'));
142  } else {
143  return Redirect::back()->withInput()->with('error', trans('admin/custom_fields/message.field.create.error'));
144  }
145  } else {
146  return Redirect::back()->withInput()->withErrors($validator);
147  }
148  }
149 
157  public function deleteField($field_id)
158  {
159  $field=CustomField::find($field_id);
160 
161  if ($field->fieldset->count()>0) {
162  return Redirect::back()->withErrors(['message' => "Field is in-use"]);
163  } else {
164  $field->delete();
165  return Redirect::route("admin.custom_fields.index")->with("success", trans('admin/custom_fields/message.field.delete.success'));
166  }
167  }
168 
177  public function show($id)
178  {
179  //$id=$parameters[0];
180  $cfset=CustomFieldset::find($id);
181 
182  //print_r($parameters);
183  //
184  $custom_fields_list=["" => "Add New Field to Fieldset"] + CustomField::lists("name", "id")->toArray();
185  // print_r($custom_fields_list);
186  $maxid=0;
187  foreach ($cfset->fields as $field) {
188  // print "Looking for: ".$field->id;
189  if ($field->pivot->order > $maxid) {
190  $maxid=$field->pivot->order;
191  }
192  if (isset($custom_fields_list[$field->id])) {
193  // print "Found ".$field->id.", so removing it.<br>";
194  unset($custom_fields_list[$field->id]);
195  }
196  }
197 
198  return View::make("custom_fields.show")->with("custom_fieldset", $cfset)->with("maxid", $maxid+1)->with("custom_fields_list", $custom_fields_list);
199  }
200 
201 
211  public function edit($id)
212  {
213  //
214  }
215 
216 
226  public function update($id)
227  {
228  //
229  }
230 
231 
240  public function destroy($id)
241  {
242  //
243  $fieldset=CustomFieldset::find($id);
244 
245  $models = AssetModel::where("fieldset_id", "=", $id);
246  if ($models->count()==0) {
247  $fieldset->delete();
248  return Redirect::route("admin.custom_fields.index")->with("success", trans('admin/custom_fields/message.fieldset.delete.success'));
249  } else {
250  return Redirect::route("admin.custom_fields.index")->with("error", trans('admin/custom_fields/message.fieldset.delete.in_use')); //->with("models",$models);
251  }
252  }
253 }
store()
Validates and stores a new custom fieldset.
This controller handles all actions related to Custom Asset Fields for the Snipe-IT Asset Management ...
storeField()
Validates and stores a new custom field.
create()
Returns a view with a form for creating a new custom fieldset.
associate($id)
Associate the custom field with a custom fieldset.
index()
Returns a view with a listing of custom fields.
show($id)
Validates and stores a new custom field.
deleteField($field_id)
Delete a custom field.
destroy($id)
Validates a custom fieldset and then deletes if it has no models associated.
createField()
Returns a view with a form to create a new custom field.