diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php index eca2433e060d056576a674bd6f92ba50ef5c5841..c415a23018dff140006a78084c1be2957d31bba5 100644 --- a/app/Http/Controllers/Auth/RegisterController.php +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -113,7 +113,28 @@ class RegisterController extends Controller $this->registerUser($newUserData); } - $this->displayBatchRegisterSuccess(); + $this->generateUsernamePasswordCSV($batchRegisterData, $filename); + $this->displayBatchRegisterSuccess($filename); + } + + private function generateUsernamePasswordCSV($batchRegisterData, $filename) + { + $file = fopen($filename, 'w'); + + $header = array("Role", "Name", "Username", "Password"); + fputcsv($file, $header); + + foreach ($batchRegisterData as $newUserData) { + $entry = array($newUserData['role'], $newUserData['name'], $newUserData['username'], $newUserData['password']); + fputcsv($file, $entry); + } + + fclose($file); + } + + public function downloadUsernamePasswordCSV($filename) + { + return response()->download(storage_path('app') . "/public/batchRegisterCSV/" . $filename); } private function saveAndReloadUploadedCSV(Request $request) @@ -248,11 +269,14 @@ class RegisterController extends Controller </div>'; } - private function displayBatchRegisterSuccess() + private function displayBatchRegisterSuccess($filename) { + $downloadLink = url('/') . "/register/downloadCSV/" . str_replace(storage_path('app') . "/public/batchRegisterCSV/", "", $filename); + echo '<div class="alert alert-success alert-dismissible fade show text-center"> <button type="button" class="close" data-dismiss="alert">×</button> - <strong>Success !</strong> New users has successfully batch-registered! + <strong>Success !</strong> New users has successfully batch-registered!<br/> + Download new generated user data <strong><a href=' . $downloadLink . '>Here</a></strong> </div>'; } diff --git a/resources/views/auth/register.blade.php b/resources/views/auth/register.blade.php index 86c802eb59b79b5f81f10d15eee0fb101ab158e7..1d0fc89c4b095f0b3b43f2143f8e6cc6f1288fd6 100644 --- a/resources/views/auth/register.blade.php +++ b/resources/views/auth/register.blade.php @@ -117,7 +117,7 @@ <div class="input-group col-md-6 offset-md-3"> <span class="btn pt-3"> - <input id="batchRegisterCSV" type="file" name="batchRegisterCSV" single accept=".csv"> + <input id="batchRegisterCSV" type="file" name="batchRegisterCSV" single required accept=".csv"> </span> <span class="pl-3"> Allowed extension: <span class="font-italic"> csv </span> diff --git a/routes/web.php b/routes/web.php index 7bb1f7516a63732011b235a8e33ba8918888549a..a03916771de306664d144c7573cd5541f522fd28 100644 --- a/routes/web.php +++ b/routes/web.php @@ -9,7 +9,7 @@ | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | -*/ + */ Route::get('/', 'HomeController@index'); @@ -18,7 +18,6 @@ Route::get('login', 'Auth\LoginController@showLoginForm')->name('login'); Route::post('login', 'Auth\LoginController@login'); Route::post('logout', 'Auth\LoginController@logout')->name('logout'); - // Password Reset Routes... Route::get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request'); Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email'); @@ -33,21 +32,21 @@ Route::post('addrole/manajer/{uname}', 'UserController@addManajerRole'); Route::post('dosen/edit/{id}', 'DosenController@edit'); Route::post('mahasiswa/edit/{id}', 'MahasiswaController@edit'); - -Route::get('register','Auth\RegisterController@showForm')->name('register'); -Route::post('register','Auth\RegisterController@registerHandler')->name('registerPost'); +Route::get('register', 'Auth\RegisterController@showForm')->name('register'); +Route::post('register', 'Auth\RegisterController@registerHandler')->name('registerPost'); +Route::get('/register/downloadCSV/{filename}', 'Auth\RegisterController@downloadUsernamePasswordCSV'); Route::get('/home', 'HomeController@index')->name('home'); Route::get('/generate/admin', 'Auth\RegisterController@generateAdmin'); -Route::get('/mahasiswa/control','ManajerController@controlMahasiswa'); -Route::get('/mahasiswa/control/{id}','ManajerController@detailControlMahasiswa'); -Route::get('/mahasiswa/rekap','RekapDataController@showRekapMahasiswa'); -Route::get('/mahasiswa/nilaiakhir','RekapDataController@showRekapNilaiAkhir'); -Route::get('/mahasiswa/history','RekapDataController@showHistoryMahasiswa'); +Route::get('/mahasiswa/control', 'ManajerController@controlMahasiswa'); +Route::get('/mahasiswa/control/{id}', 'ManajerController@detailControlMahasiswa'); +Route::get('/mahasiswa/rekap', 'RekapDataController@showRekapMahasiswa'); +Route::get('/mahasiswa/nilaiakhir', 'RekapDataController@showRekapNilaiAkhir'); +Route::get('/mahasiswa/history', 'RekapDataController@showHistoryMahasiswa'); -Route::get('/kelastesis','KelasTesisController@showKelasTesis'); -Route::post('/kelastesis/tambah','KelasTesisController@tambahKelasTesis'); +Route::get('/kelastesis', 'KelasTesisController@showKelasTesis'); +Route::post('/kelastesis/tambah', 'KelasTesisController@tambahKelasTesis'); Route::get('/dashboard', 'HomeController@index'); Route::get('/dashboard/mahasiswa', 'MahasiswaController@index'); @@ -56,49 +55,49 @@ Route::get('/dashboard/manajer', 'ManajerController@index'); Route::post('/topik/pengajuan', 'TopicController@pengajuan'); Route::get('/topik/pengajuan', 'TopicController@showFormPengajuan'); -Route::get('/topik/control','TopicController@showControlMahasiswa'); -Route::get('/topik/get','TopicController@getTopik'); +Route::get('/topik/control', 'TopicController@showControlMahasiswa'); +Route::get('/topik/get', 'TopicController@getTopik'); Route::post('/topik/approval', 'TopicController@approval')->name('topicapproval'); -Route::post('/seminartopik/penetapan','SeminarTopikController@penetapanJadwal')->name('seminartopik-penetapan'); -Route::post('/seminartopik/penilaian','SeminarTopikController@penilaian')->name('seminartopik-penilaian'); +Route::post('/seminartopik/penetapan', 'SeminarTopikController@penetapanJadwal')->name('seminartopik-penetapan'); +Route::post('/seminartopik/penilaian', 'SeminarTopikController@penilaian')->name('seminartopik-penilaian'); Route::get('/proposal/upload', 'ProposalController@showUploadForm'); -Route::post('/proposal/upload','ProposalController@upload'); -Route::get('/proposal/download/{id}/{filename}','ProposalController@download'); -Route::post('/proposal/penerimaan','ProposalController@approval')->name('proposal-penerimaan'); +Route::post('/proposal/upload', 'ProposalController@upload'); +Route::get('/proposal/download/{id}/{filename}', 'ProposalController@download'); +Route::post('/proposal/penerimaan', 'ProposalController@approval')->name('proposal-penerimaan'); // Route::get('/dashboard/dosen','DosenController@showMahasiswa'); -Route::get('/hasilbimbingan/mahasiswa','HasilBimbinganController@showListHasilBimbingan'); -Route::post('/hasilbimbingan/mahasiswa','HasilBimbinganController@getBimbinganID'); -Route::get('/hasilbimbingan/tambah','HasilBimbinganController@showFormTambahHasilBimbingan'); -Route::post('/hasilbimbingan/tambah','HasilBimbinganController@uploadHasilBimbinganBaru'); -Route::get('/hasilbimbingan/edit','HasilBimbinganController@showFormEditHasilBimbingan'); -Route::post('/hasilbimbingan/edit','HasilBimbinganController@editHasilBimbingan'); -Route::get('/hasilbimbingan','HasilBimbinganController@showListPersetujuanBimbingan'); -Route::post('/hasilbimbingan/persetujuan','HasilBimbinganController@persetujuan')->name('bimbingan-persetujuan'); +Route::get('/hasilbimbingan/mahasiswa', 'HasilBimbinganController@showListHasilBimbingan'); +Route::post('/hasilbimbingan/mahasiswa', 'HasilBimbinganController@getBimbinganID'); +Route::get('/hasilbimbingan/tambah', 'HasilBimbinganController@showFormTambahHasilBimbingan'); +Route::post('/hasilbimbingan/tambah', 'HasilBimbinganController@uploadHasilBimbinganBaru'); +Route::get('/hasilbimbingan/edit', 'HasilBimbinganController@showFormEditHasilBimbingan'); +Route::post('/hasilbimbingan/edit', 'HasilBimbinganController@editHasilBimbingan'); +Route::get('/hasilbimbingan', 'HasilBimbinganController@showListPersetujuanBimbingan'); +Route::post('/hasilbimbingan/persetujuan', 'HasilBimbinganController@persetujuan')->name('bimbingan-persetujuan'); Route::post('/mahasiswa/dosbing/penetapan', 'ThesisController@handlePenetapanDosbing')->name('dosbing-penetapan'); Route::post('/seminarproposal/penetapan', 'SeminarProposalController@scheduleEstablishment')->name('seminarproposal-penetapan'); Route::post('/seminarproposal/penilaian', 'SeminarProposalController@score')->name('seminarproposal-penilaian'); -Route::get('/dosen/mahasiswa-control/{id}','DosenController@detailMahasiswa')->name('dosen-detailmahasiswa'); +Route::get('/dosen/mahasiswa-control/{id}', 'DosenController@detailMahasiswa')->name('dosen-detailmahasiswa'); Route::get('/seminartesis/create/{id}', 'SeminarTesisController@requestPenjadwalan')->name('seminartesis-create'); Route::post('/seminartesis/create/{id}', 'SeminarTesisController@createRequestPenjadwalan'); Route::post('/seminartesis/edit/{id}', 'SeminarTesisController@editPenjadwalan'); Route::post('/seminartesis/nilai/{id}', 'SeminarTesisController@nilaiSeminarTesis'); -Route::get('/sidangtesis/daftar','SidangTesisController@showFormDaftarSidang'); -Route::get('/sidangtesis/create/{id}','SidangTesisController@create'); -Route::get('/sidangtesis/createUlang/{id}','SidangTesisController@createUlang'); -Route::post('/sidangtesis/dosen/edit/{id}','SidangTesisController@dosenEdit'); -Route::post('/sidangtesis/nilai/{id}','SidangTesisController@nilaiSidangTesis'); +Route::get('/sidangtesis/daftar', 'SidangTesisController@showFormDaftarSidang'); +Route::get('/sidangtesis/create/{id}', 'SidangTesisController@create'); +Route::get('/sidangtesis/createUlang/{id}', 'SidangTesisController@createUlang'); +Route::post('/sidangtesis/dosen/edit/{id}', 'SidangTesisController@dosenEdit'); +Route::post('/sidangtesis/nilai/{id}', 'SidangTesisController@nilaiSidangTesis'); -Route::get('/penjadwalan','PenjadwalanController@showPenjadwalanPage'); -Route::post('/penjadwalan/seminartopik','PenjadwalanController@penentuanJadwalSeminarTopikBatch'); -Route::post('/penjadwalan/seminarproposal','PenjadwalanController@penentuanJadwalSeminarProposalBatch'); -Route::post('/penjadwalan/seminartesis','PenjadwalanController@penentuanJadwalSeminarTesisBatch'); -Route::post('/penjadwalan/sidangtesis','PenjadwalanController@penentuanJadwalSidangTesisBatch'); +Route::get('/penjadwalan', 'PenjadwalanController@showPenjadwalanPage'); +Route::post('/penjadwalan/seminartopik', 'PenjadwalanController@penentuanJadwalSeminarTopikBatch'); +Route::post('/penjadwalan/seminarproposal', 'PenjadwalanController@penentuanJadwalSeminarProposalBatch'); +Route::post('/penjadwalan/seminartesis', 'PenjadwalanController@penentuanJadwalSeminarTesisBatch'); +Route::post('/penjadwalan/sidangtesis', 'PenjadwalanController@penentuanJadwalSidangTesisBatch'); Route::post('/sidangtesis/mahasiswa/edit/{id}', 'SidangTesisController@mahasiswaEdit'); Route::post('/sidangtesis/manajer/edit/{id}', 'SidangTesisController@manajerEdit'); @@ -110,5 +109,4 @@ Route::post('/sidangtesis/nilai/pembimbing/reset/{id}', 'SidangTesisController@r Route::post('/sidangtesis/nilai/kelas/reset/{id}', 'SidangTesisController@resetNilaiKelas'); Route::post('/sidangtesis/dosenuji/approve/{id}', 'SidangTesisController@dosenPengujiApprove'); - -Route::get('/test', 'TestController@test'); \ No newline at end of file +Route::get('/test', 'TestController@test'); diff --git a/storage/batchRegister/batchRegister.csv b/storage/batchRegister/batchRegister.csv index 7729c4ad6bc185847ee212fd2a223d69084aa82b..6bf64b463ade479ddc02e0c61022851eb3da884f 100644 --- a/storage/batchRegister/batchRegister.csv +++ b/storage/batchRegister/batchRegister.csv @@ -1,2 +1,2 @@ -testStud10020, ts10020, testStud10020@batchRegister.com, 082034561, Mahasiswa -testLec10020, tl10020, testLec10020@batchRegister.com, 082034561, Dosen \ No newline at end of file +testStud10026, ts10026, testStud10026@batchRegister.com, 082634561, Mahasiswa +testLec10026, tl10026, testLec10026@batchRegister.com, 082634561, Dosen \ No newline at end of file