/**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     \Solunes\Master\App\ImageSize::truncate();
     \Solunes\Master\App\ImageFolder::truncate();
     \Solunes\Master\App\TempFile::truncate();
     \Solunes\Master\App\VariableTranslation::truncate();
     \Solunes\Master\App\Variable::truncate();
     \Solunes\Master\App\InboxUser::truncate();
     \Solunes\Master\App\InboxMessage::truncate();
     \Solunes\Master\App\Inbox::truncate();
     \Solunes\Master\App\Notification::truncate();
     \Solunes\Master\App\Activity::truncate();
     DB::table('permission_role')->truncate();
     DB::table('role_user')->truncate();
     \Solunes\Master\App\Role::truncate();
     \Solunes\Master\App\Permission::truncate();
     \App\User::truncate();
     \Solunes\Master\App\EmailTranslation::truncate();
     \Solunes\Master\App\Email::truncate();
     \Solunes\Master\App\IndicatorValue::truncate();
     \Solunes\Master\App\IndicatorGraph::truncate();
     \Solunes\Master\App\IndicatorAlert::truncate();
     \Solunes\Master\App\Indicator::truncate();
     \Solunes\Master\App\FieldOptionTranslation::truncate();
     \Solunes\Master\App\FieldOption::truncate();
     \Solunes\Master\App\FieldConditional::truncate();
     \Solunes\Master\App\FieldExtra::truncate();
     \Solunes\Master\App\FieldTranslation::truncate();
     \Solunes\Master\App\Field::truncate();
     \Solunes\Master\App\Section::truncate();
     \Solunes\Master\App\Filter::truncate();
     \Solunes\Master\App\NodeExtra::truncate();
     \Solunes\Master\App\NodeRequest::truncate();
     \Solunes\Master\App\NodeTranslation::truncate();
     \Solunes\Master\App\Node::truncate();
     \Solunes\Master\App\MenuTranslation::truncate();
     \Solunes\Master\App\Menu::truncate();
     \Solunes\Master\App\PageTranslation::truncate();
     \Solunes\Master\App\Page::truncate();
     \Solunes\Master\App\SiteTranslation::truncate();
     \Solunes\Master\App\Site::truncate();
     \Solunes\Master\App\Language::truncate();
     \App\PasswordReminder::truncate();
 }
 public static function get_request_variables($module, $node, $model, $single_model, $action, $id, $options, $additional_vars = NULL)
 {
     $variables = ['module' => $module, 'node' => $node, 'model' => $single_model, 'action' => $action, 'id' => $id, 'preset_field' => false, 'dt' => 'form', 'pdf' => false];
     $parent_id = NULL;
     if ($module == 'process') {
         $hidden_array = ['admin', 'none'];
     } else {
         $hidden_array = ['none'];
     }
     $preset_fields = $node->fields()->whereNotIn('display_item', $hidden_array)->where('preset', 1)->where('required', 1)->get();
     if ($action == 'edit' || $action == 'view') {
         $item = $model::find($id);
         if ($item->parent_id) {
             $parent_id = $item->parent_id;
         }
         if (count($preset_fields) > 0) {
             $variables['parent_nodes'] = [];
             foreach ($preset_fields as $preset_field) {
                 $subnode = \Solunes\Master\App\Node::where('name', str_replace('_', '-', $preset_field->value))->first();
                 if ($node->parent_id == $subnode->id) {
                     $iname = 'parent';
                 } else {
                     $iname = $preset_field->value;
                 }
                 $variables['parent_nodes'][$subnode->id] = ['node' => $subnode, 'singular_name' => $subnode->singular, 'iname' => $iname, 'fields' => $subnode->fields()->whereNotIn('type', ['child', 'subchild'])->whereNotIn('display_item', ['admin', 'none'])->get()];
             }
         }
         $variables['activities'] = \Solunes\Master\App\Activity::where('node_id', $node->id)->where('item_id', $id)->orderBy('created_at', 'DESC')->get();
         if ($action == 'view') {
             $variables['dt'] = 'view';
         }
     } else {
         $item = NULL;
         if (request()->has('parent_id')) {
             $parent_id = request()->input('parent_id');
         }
         if (count($preset_fields) > 0) {
             foreach ($preset_fields as $preset_field) {
                 if (!request()->has($preset_field->name)) {
                     $url = request()->fullUrl();
                     if (stripos($url, '?') !== false) {
                         $separator_sign = '&';
                     } else {
                         $separator_sign = '?';
                     }
                     if ($single_model == 'indicator') {
                         $preset_items = \Solunes\Master\App\Node::where('folder', 'form')->get()->lists('singular', 'id');
                     } else {
                         $preset_items = $preset_field->options;
                     }
                     return ['preset_field' => true, 'single_model' => $single_model, 'parent' => $preset_field->trans_name, 'items' => $preset_items, 'url' => $url . $separator_sign . $preset_field->name . '='];
                 }
             }
         }
         $variables['activities'] = [];
     }
     if ($additional_vars != NULL) {
         $variables = array_merge($variables, $additional_vars);
     }
     $variables['parent_id'] = $parent_id;
     $variables['i'] = $item;
     $variables['fields'] = $node->fields()->where('type', '!=', 'child')->whereNotIn('display_item', $hidden_array)->whereNull('child_table')->checkPermission()->with('translations', 'field_extras', 'field_options_active')->get();
     if ($node->fields()->whereIn('type', ['image', 'file'])->count() > 0) {
         $variables['files'] = true;
     } else {
         $variables['files'] = false;
     }
     foreach ($node->fields()->has('field_conditionals')->with('field_conditionals')->get() as $field) {
         foreach ($field->field_conditionals as $conditional) {
             $variables['conditional_array'][$conditional->id] = $conditional;
         }
     }
     foreach ($node->fields()->where('type', 'map')->get() as $field) {
         $variables['map_array'][$field->id] = $field;
     }
     return $variables;
 }