public function postNew()
 {
     if (Input::get('name') != null) {
         $vis = new \App\VisualizationProject();
         $vis->name = Input::get('name');
         $user = Auth::user();
         $vis->user_id = $user->id;
         $dataset = Dataset::findOrFail(Input::get('datasetid'));
         $dataset->projects()->save($vis);
         Session::put('visualizationid', $vis->id);
         return redirect('dataset/selection/' . $vis->id);
     } else {
         return response()->json(['status' => 'failed']);
     }
 }
예제 #2
0
  * Dataset Routes
  */
 Route::get('dataset', 'DatasetController@index');
 Route::get('dataset/create', function () {
     return view('back.dataset.create');
 });
 Route::post('dataset', 'DatasetController@store');
 Route::get('dataset/{id}/edit', 'DatasetController@edit');
 Route::post('dataset/update', 'DatasetController@update');
 Route::get('dataset/{id}/destroy', 'DatasetController@destroy');
 Route::get('dataset/{id}/import/standarditem', function ($id) {
     return view('back.dataset.import.standarditem')->with('dataset', \App\Dataset::findOrFail($id));
 });
 Route::post('dataset/import/standarditem', 'DatasetController@importStandardItem');
 Route::get('dataset/{id}/import/item', function ($id) {
     return view('back.dataset.import.item')->with('dataset', \App\Dataset::findOrFail($id));
 });
 Route::post('dataset/import/item', 'DatasetController@importItem');
 /**
  * Goods Routes
  */
 Route::get('goods/create', 'GoodsController@create');
 Route::post('goods/store', 'GoodsController@store');
 Route::get('goods', 'GoodsController@index');
 Route::get('goods/{id}/edit', 'GoodsController@edit');
 Route::post('goods/update', 'GoodsController@update');
 Route::get('goods/{id}/destroy', 'GoodsController@destroy');
 Route::get('goods/{id}/available', 'GoodsController@available');
 Route::get('goods/{id}/unavailable', 'GoodsController@unavailable');
 /**
  * Awards Routes
 public function getIndex()
 {
     //return response()->json(Session::get('mappings'));
     // get selected mapping
     $mappingid = Input::get('mappingid');
     $mappings = Session::get('mappings');
     $mapping = $mappings[$mappingid];
     // get selected columns name
     $header = [];
     $dataset = \App\Dataset::findOrFail($mapping->datasetid);
     $tablename = $dataset->table_name;
     $attributes = $dataset->attributes()->get();
     $header = $mapping->mappingname;
     // get project
     $project = \App\VisualizationProject::findOrFail(Session::get('visualizationid'));
     // select only selected columns only
     $datasetdata = DB::connection('dataset')->table($tablename)->select($header);
     $sortdata = null;
     foreach ($project->dataSelections as $selection) {
         if ($selection->operand == "##SORTBY##") {
             $sortdata = $selection;
         } else {
             $datasetdata = $datasetdata->where($selection->column_name, $selection->operator, $selection->operand);
         }
     }
     if ($sortdata !== null) {
         $sorttype = $sortdata->operator == '>' ? 'asc' : 'desc';
         $datasetdata = $datasetdata->orderBy($sortdata->column_name, $sorttype);
     }
     $datasetdata = $datasetdata->get();
     if (Session::get('aggregate')) {
         // aggregate dataset
         foreach ($header as $attribute) {
             // check if there is an attribute that contain aggregation information
             $categoryData = $dataset->categories()->where('name', $attribute)->first();
             if ($categoryData != null) {
                 $categories = DB::connection('dataset')->table($tablename)->select($attribute)->distinct()->get();
                 $rowsData = [];
                 foreach ($categories as $category) {
                     $rows = DB::connection('dataset')->table($tablename)->where($attribute, $category->{$attribute})->get();
                     $rowData = (object) [];
                     // initialize rowdata
                     foreach ($header as $att) {
                         $rowData->{$att} = 0;
                     }
                     foreach ($rows as $row) {
                         foreach ($header as $att) {
                             if ($att == $attribute) {
                                 $rowData->{$att} = $row->{$att};
                             } else {
                                 if (is_numeric($row->{$att})) {
                                     $rowData->{$att} += $row->{$att};
                                     //var_dump($row->$att);
                                 } else {
                                     $rowData->{$att} = $row->{$att};
                                 }
                             }
                         }
                     }
                     //exit();
                     $rowsData[] = $rowData;
                     if ($categoryData->type == "AVERAGE") {
                         foreach ($header as $att) {
                             if ($att != $attribute) {
                                 if (is_numeric($row->{$att})) {
                                     $rowData->{$att} /= count($rows);
                                 }
                             }
                         }
                     }
                 }
                 $datasetdata = $rowsData;
                 break;
             }
         }
     }
     // join dataset with header
     $data[] = $header;
     foreach ($datasetdata as $set) {
         $row = [];
         foreach ($set as $value) {
             $row[] = $value;
         }
         $data[] = $row;
     }
     // get visualization visual variable information
     $visualization = \App\Visualization::findOrFail($mapping->visualizationid);
     $category = [];
     // save which data/column is used as category
     for ($i = 0; $i < count($visualization->visualVariables); $i++) {
         if ($visualization->visualVariables[$i]->pivot->type == "category") {
             $category[] = $header[$i];
         }
         $test[] = [$i, $visualization->visualVariables[$i]->pivot->type];
     }
     //return response()->json($test);
     $visdata = ['visualization' => $visualization->name, 'category' => $category, 'header' => $header, 'data' => $data, 'activities' => $visualization->activities];
     Session::put('visdata', (object) $visdata);
     // Call the view and then wait for data request
     return view('visualization.view', ['projectname' => $project->name]);
 }
 public function standardItem2DBImpl($path, $datasetId)
 {
     if (StandardItem::where('dataset_id', $datasetId)->count() == 0) {
         $maxID = DB::table("standard_items")->max('id');
         if ($maxID == null) {
             $maxID = 1;
         } else {
             $maxID += 1;
         }
         $dataset = Dataset::findOrFail($datasetId);
         $dataset->current_standard_id = $maxID;
         $dataset->save();
     }
     $fh = fopen($path, 'r');
     while ($line = fgets($fh)) {
         $row = explode(",", $line);
         StandardItem::create(['name' => $row[0], 'slug' => $row[1], 'path' => $row[2], 'dataset_id' => $datasetId]);
     }
     fclose($fh);
 }