/**
  * Register any other events for your application.
  *
  * @param  \Illuminate\Contracts\Events\Dispatcher  $events
  * @return void
  */
 public function boot(DispatcherContract $events)
 {
     parent::boot($events);
     AttributeType::deleting(function ($attr) {
         $sub_attrs = Attribute::where('type_id', '=', $attr->id)->get();
         foreach ($sub_attrs as $sa) {
             $sa->delete();
         }
     });
     EntityType::deleting(function ($entity) {
         $entities = $entity->entities;
         foreach ($entities as $e) {
             $e->delete();
         }
     });
     Entity::deleting(function ($entity) {
         $alarms = $entity->alarms;
         foreach ($alarms as $a) {
             $a->delete();
         }
     });
     Alarm::deleting(function ($alarm) {
         $reminders = $alarm->history;
         foreach ($reminders as $r) {
             $r->delete();
         }
     });
 }
 public function update(Request $request, $id)
 {
     $e = EntityType::findOrFail($id);
     $e->name = $request->input('name');
     $icon = $request->input('icon');
     $e->icon = substr($icon, strpos($icon, '-') + 1);
     $e->save();
     $ids = $request->input('attribute_id');
     $names = $request->input('attribute_name');
     $types = $request->input('attribute_type');
     $saved = array();
     for ($i = 0; $i < count($ids); $i++) {
         $aid = $ids[$i];
         if ($aid == '' || $ids == -1) {
             $a = new AttributeType();
         } else {
             $a = AttributeType::findOrFail($aid);
         }
         $a->name = $names[$i];
         $a->datatype = $types[$i];
         $a->entity_type = $e->id;
         $a->order = $i;
         $a->save();
         $saved[] = $a->id;
     }
     AttributeType::where('entity_type', '=', $e->id)->whereNotIn('id', $saved)->delete();
     return redirect(url('/config'));
 }
 public function run()
 {
     Model::unguard();
     DB::table('users')->delete();
     DB::table('password_resets')->delete();
     DB::table('attribute_types')->delete();
     DB::table('attributes')->delete();
     DB::table('entity_types')->delete();
     DB::table('entities')->delete();
     DB::table('alarm_types')->delete();
     DB::table('alarms')->delete();
     $admin = User::create(['name' => 'Amministratore', 'email' => '*****@*****.**', 'password' => Hash::make('cippalippa')]);
     $personType = EntityType::create(['name' => 'Personale', 'icon' => 'user']);
     $attrs = ['Indirizzo Mail' => 'mail', 'Telefono' => 'string', 'Data di Nascita' => 'date'];
     foreach ($attrs as $n => $t) {
         AttributeType::create(['name' => $n, 'datatype' => $t, 'entity_type' => $personType->id]);
     }
     $vehicleType = EntityType::create(['name' => 'Veicoli', 'icon' => 'plane']);
     $attrs = ['Targa' => 'string'];
     foreach ($attrs as $n => $t) {
         AttributeType::create(['name' => $n, 'datatype' => $t, 'entity_type' => $vehicleType->id]);
     }
     $placeType = EntityType::create(['name' => 'Luoghi', 'icon' => 'home']);
     $attrs = ['Indirizzo' => 'address'];
     foreach ($attrs as $n => $t) {
         AttributeType::create(['name' => $n, 'datatype' => $t, 'entity_type' => $placeType->id]);
     }
     Model::reguard();
 }
Example #4
0
 public function attribute($type)
 {
     if (is_string($type)) {
         $name = $type;
     } else {
         $name = $type->slug;
     }
     return AttributeType::where('entity_type', '=', $this->id)->where('slug', '=', $name)->first();
 }