mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-10-12 15:35:15 +00:00
Fixed upload form, made a new form element, added some processing.
This commit is contained in:
@@ -7,6 +7,12 @@
|
||||
*/
|
||||
|
||||
namespace FireflyIII\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Input;
|
||||
use League\Csv\Reader;
|
||||
use Redirect;
|
||||
use Session;
|
||||
use View;
|
||||
|
||||
/**
|
||||
@@ -23,13 +29,64 @@ class CsvController extends Controller
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
View::share('title', 'CSV');
|
||||
View::share('title', trans('firefly.csv'));
|
||||
View::share('mainTitleIcon', 'fa-file-text-o');
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @return View
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
return view('csv.index');
|
||||
$subTitle = trans('firefly.csv_import');
|
||||
|
||||
// can actually upload?
|
||||
$uploadPossible = !is_writable(storage_path('upload'));
|
||||
$path = storage_path('upload');
|
||||
|
||||
|
||||
return view('csv.index', compact('subTitle', 'uploadPossible', 'path'));
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function upload(Request $request)
|
||||
{
|
||||
if (!$request->hasFile('csv')) {
|
||||
Session::flash('warning', 'No file uploaded.');
|
||||
|
||||
|
||||
return Redirect::route('csv.index');
|
||||
}
|
||||
$hasHeaders = intval(Input::get('has_headers')) === 1;
|
||||
$reader = Reader::createFromPath($request->file('csv')->getRealPath());
|
||||
$data = $reader->query();
|
||||
$data->next(); // go to first row:
|
||||
if ($hasHeaders) {
|
||||
|
||||
// first row = headers.
|
||||
$headers = $data->current();
|
||||
} else {
|
||||
$count = count($data->current());
|
||||
$headers = [];
|
||||
for ($i = 1; $i <= $count; $i++) {
|
||||
$headers[] = trans('firefly.csv_row') . ' #' . $i;
|
||||
}
|
||||
}
|
||||
|
||||
// example data is always the second row:
|
||||
$data->next();
|
||||
$example = $data->current();
|
||||
|
||||
var_dump($headers);
|
||||
var_dump($example);
|
||||
|
||||
// store file somewhere temporary?
|
||||
|
||||
|
||||
exit;
|
||||
|
||||
}
|
||||
}
|
@@ -224,6 +224,7 @@ Route::group(
|
||||
* CSV controller
|
||||
*/
|
||||
Route::get('/csv', ['uses' => 'CsvController@index', 'as' => 'csv.index']);
|
||||
Route::post('/csv/upload', ['uses' => 'CsvController@upload', 'as' => 'csv.upload']);
|
||||
|
||||
/**
|
||||
* Currency Controller
|
||||
|
@@ -347,6 +347,24 @@ class ExpandedForm
|
||||
return $html;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $name
|
||||
* @param null $value
|
||||
* @param array $options
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function file($name, array $options = [])
|
||||
{
|
||||
$label = $this->label($name, $options);
|
||||
$options = $this->expandOptionArray($name, $label, $options);
|
||||
$classes = $this->getHolderClasses($name);
|
||||
$html = View::make('form.file', compact('classes', 'name', 'label', 'options'))->render();
|
||||
|
||||
return $html;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $name
|
||||
* @param null $value
|
||||
|
Reference in New Issue
Block a user