diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php index d33fbcb4de21f02a6cfa2e4f7c427a3abe63d111..9058d1bc9182ac66daa3059fe0b262d2cc7b6bfd 100644 --- a/app/Http/Controllers/Auth/RegisterController.php +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -86,9 +86,8 @@ class RegisterController extends Controller public function registerUser(Request $request) { $data = $request->all(); - Excel::import(new MahasiswasImport, 'mahasiswa.csv'); + //Excel::import(new MahasiswasImport, 'mahasiswa.csv'); - return redirect('/')->with('success', 'All good!'); $username = $data['username']; if(User::where('username',$username)->count()>0) { echo '<div class="alert alert-warning alert-dismissible fade show text-center"> @@ -129,9 +128,25 @@ class RegisterController extends Controller } + /*public function freeRedirect($to = '/'){ + throw new \Illuminate\Http\Exceptions\HttpResponseException(redirect($to)); + }*/ + public function registerMahasiswaCSV(Request $request) { - //Excel::import(new MahasiswasImport, request()->file('your_file')); - Excel::import(new MahasiswasImport, 'mahasiswa.csv'); + if ($request->hasFile('csv_file')) { + if ($request->file('csv_file')->getClientOriginalExtension() == 'csv') { + Excel::import(new MahasiswasImport, $request->file('csv_file')); + + $error = \Illuminate\Validation\ValidationException::withMessages([ + 'success' => 'Success ! New user has successfully registered!', + ]); + throw $error; + } else { + $error = \Illuminate\Validation\ValidationException::withMessages([ + 'type_error' => 'Wrong file type! Please upload the correct file type.', + ]); + throw $error; + } + } } - } diff --git a/config/app.php b/config/app.php index c2531af915b5d6257ac109d04604d03f6c8c9a43..e0d2dcdd28e9e767ced94d1f2de4dc040fcf4d4d 100644 --- a/config/app.php +++ b/config/app.php @@ -150,7 +150,7 @@ return [ /* * Package Service Providers... */ - Maatwebsite\Excel\ExcelServiceProvider::class, + Maatwebsite\Excel\ExcelServiceProvider::class, /* * Application Service Providers... */ diff --git a/resources/views/auth/register.blade.php b/resources/views/auth/register.blade.php index bc44d5950f06712ee4a6e68eb3bb2633706cbb2b..6e3046df7df04a18ca2d1b997eb4912d422252dd 100644 --- a/resources/views/auth/register.blade.php +++ b/resources/views/auth/register.blade.php @@ -101,16 +101,59 @@ </div> </div> </form> + </div> + </div> + <br> + <div class="card"> + <div class="card-header">Batch Student Register</div> + + <div class="card-body"> + <form method="POST" action="/registerbatch" enctype="multipart/form-data"> + @csrf + + <div class="form-group row"> + <label for="csv_file" class="col-md-4 col-form-label text-md-right">Upload CSV file here :</label> + + <div class="col-md-6"> + <input id="csv_file" type="file" class="form-control" name="csv_file" required> + </div> + </div> + + <div class="form-group row mb-0"> + <div class="col-md-6 offset-md-4"> + <button type="submit" class="btn btn-primary"> + Register + </button> + </div> + </div> + </form> <br> @if ($errors->any()) - <div class="alert alert-danger"> - <ul> + <?php + $str = implode(" ",$errors->keys()) + ?> + @if ($str === 'success') + <div class="alert alert-info"> @foreach ($errors->all() as $error) - <li>{{ $error }}</li> + {{ $error }} @endforeach - </ul> - <p align="right">*Row and column start at zero.</p> - </div> + </div> + @elseif ($str === 'type_error') + <div class="alert alert-danger"> + @foreach ($errors->all() as $error) + {{ $error }} + @endforeach + </div> + @else + <div class="alert alert-danger"> + <p align="center">Note: Row and column start at zero.</p> + <ul> + @foreach ($errors->all() as $error) + <li>{{ $error }}</li> + @endforeach + </ul> + </div> + @endif @endif </div> </div> diff --git a/routes/web.php b/routes/web.php index 0c8ba7b91ca95216a58edac90647f55d96d75676..9f6d71889d2b16f7330fd5a91064ed8de51dbcd2 100644 --- a/routes/web.php +++ b/routes/web.php @@ -36,6 +36,7 @@ Route::post('mahasiswa/edit/{id}', 'MahasiswaController@edit'); Route::get('register','Auth\RegisterController@showForm')->name('register'); Route::post('register','Auth\RegisterController@registerUser')->name('registerPost'); +Route::post('registerbatch','Auth\RegisterController@registerMahasiswaCSV')->name('registerPost'); Route::get('/home', 'HomeController@index')->name('home'); Route::get('/generate/admin', 'Auth\RegisterController@generateAdmin');