Example #1
0
 /**
  *	Test import.
  *
  *	@return boolean
  */
 public function import($fileWithPath, $delimiter = ',', $save = true)
 {
     $rows = Excel::setDelimiter($delimiter)->load($fileWithPath)->get();
     $pagePos = -99;
     $pageCounter = 1;
     foreach ($rows as $row) {
         // create a new step
         if ($pagePos != $row->page) {
             if ($pagePos >= 1) {
                 $page->items()->saveMany($items);
             }
             $page = new Page();
             if (trim($row->model) == 'Comproso\\Framework\\Models\\Page') {
                 $params = [];
                 // input validation
                 /*$validator = Validator::make($row->toArray(), [
                 						'recallable' => 'boolean',
                 						'returnable' => 'boolean',
                 						'template' => 'string',
                 						'operations_template' => 'string',
                 						'page_assets'	=> 'json'
                 					]);
                 
                 					// validation fail
                 					if($validator->fails())
                 					{
                 						\Log::error($validator->errors());
                 						return false;
                 					}*/
                 // set page call settings
                 $page->recallable = boolval($row->recallable);
                 $page->returnable = boolval($row->returnable);
                 if (!empty(trim($row->template))) {
                     $page->template = trim($row->template);
                 }
             } elseif (!empty(trim($row->page_template))) {
                 $page->template = trim($row->page_template);
             }
             // set page assets
             if (!empty(trim($row->page_assets))) {
                 $page->assets = json_encode(json_decode(trim($row->page_assets)));
             }
             // set operations template
             if (!empty(trim($row->operations_template))) {
                 $page->operations_template = $row->operations_template == "null" ? null : trim($row->operations_template);
             }
             $page->repetitions = is_null($row->repetitions) ? 0 : $row->repetitions;
             $page->repetition_interval = is_null($row->interval) ? null : $row->interval;
             $page->time_limit = is_null($row->time_limit) ? null : $row->time_limit;
             $page->position = $pageCounter;
             $this->pages()->save($page);
             $items = [];
             $pagePos = $row->page;
             $pageCounter++;
             $itemCounter = 1;
             if (trim($row->model) == 'Comproso\\Framework\\Models\\Page') {
                 continue;
             }
         }
         // create Item
         $item = new Item();
         $item->position = $itemCounter;
         $item->element_type = trim($row->model);
         // create Element
         $row->model = trim($row->model);
         $element = new $row->model();
         $element->implement($row);
         $element->save();
         $item->element_id = $element->id;
         $item->template = empty(trim($row->template)) ? $element->template() : trim($row->template);
         $item->name = empty(trim($row->name)) ? null : trim($row->name);
         $item->proceed = !isset($row->proceed) ? false : boolval($row->proceed);
         $item->cssId = empty(trim($row->cssid)) ? null : trim($row->cssid);
         $item->cssClass = empty($row->cssclass) ? null : trim($row->cssclass);
         $item->validation = empty(trim($row->validation)) ? 'string' : trim($row->validation);
         $items[] = $item;
         $itemCounter++;
     }
     // save last page
     $page->items()->saveMany($items);
     // set test assets
     //$this->assets = (isset($testAssets)) ? json_encode($testAssets) : null;
     // save if allowed
     if ($save) {
         $this->save();
     }
     return true;
 }