From c0d62f51128b71f8bdeb1abe5dfc2898b8f45a1b Mon Sep 17 00:00:00 2001 From: shibafu Date: Sat, 23 May 2020 02:47:25 +0900 Subject: [PATCH] =?UTF-8?q?=E3=82=A4=E3=83=B3=E3=83=9D=E3=83=BC=E3=83=88?= =?UTF-8?q?=E3=81=97=E3=81=9F=E3=83=87=E3=83=BC=E3=82=BF=E3=82=92=E6=B6=88?= =?UTF-8?q?=E3=81=9B=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/SettingController.php | 11 +++++++++++ resources/assets/js/setting/import.js | 5 +++++ resources/views/setting/import.blade.php | 10 ++++++++++ routes/web.php | 1 + webpack.mix.js | 1 + 5 files changed, 28 insertions(+) create mode 100644 resources/assets/js/setting/import.js diff --git a/app/Http/Controllers/SettingController.php b/app/Http/Controllers/SettingController.php index f888b6a..45281b9 100644 --- a/app/Http/Controllers/SettingController.php +++ b/app/Http/Controllers/SettingController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers; use App\DeactivatedUser; +use App\Ejaculation; use App\Exceptions\CsvImportException; use App\Services\CheckinCsvExporter; use App\Services\CheckinCsvImporter; @@ -104,6 +105,16 @@ class SettingController extends Controller } } + public function destroyImport() + { + Auth::user() + ->ejaculations() + ->where('ejaculations.source', Ejaculation::SOURCE_CSV) + ->delete(); + + return redirect()->route('setting.import')->with('status', '削除が完了しました。'); + } + public function export() { return view('setting.export'); diff --git a/resources/assets/js/setting/import.js b/resources/assets/js/setting/import.js new file mode 100644 index 0000000..fcaf90e --- /dev/null +++ b/resources/assets/js/setting/import.js @@ -0,0 +1,5 @@ +$('#destroy-form').on('submit', function () { + if (!confirm('本当に削除してもよろしいですか?')) { + return false; + } +}); diff --git a/resources/views/setting/import.blade.php b/resources/views/setting/import.blade.php index ce2e182..cf66e0a 100644 --- a/resources/views/setting/import.blade.php +++ b/resources/views/setting/import.blade.php @@ -26,7 +26,17 @@ @endif +

インポートしたデータを一括削除

+
+

取り込んだチェックインデータをすべて削除することができます。データにミスがあってやり直したい場合などにお使いください。

+

ただし、インポート後に個別に手修正などしている場合、そのデータも失われてしまうことに注意してください!

+
+ {{ csrf_field() }} + {{ method_field('DELETE') }} + +
@endsection @push('script') + @endpush diff --git a/routes/web.php b/routes/web.php index ca1affc..503524c 100644 --- a/routes/web.php +++ b/routes/web.php @@ -38,6 +38,7 @@ Route::middleware('auth')->group(function () { Route::post('/setting/privacy', 'SettingController@updatePrivacy')->name('setting.privacy.update'); Route::get('/setting/import', 'SettingController@import')->name('setting.import'); Route::post('/setting/import', 'SettingController@storeImport')->name('setting.import'); + Route::delete('/setting/import', 'SettingController@destroyImport')->name('setting.import.destroy'); Route::get('/setting/export', 'SettingController@export')->name('setting.export'); Route::get('/setting/export/csv', 'SettingController@exportToCsv')->name('setting.export.csv'); Route::get('/setting/deactivate', 'SettingController@deactivate')->name('setting.deactivate'); diff --git a/webpack.mix.js b/webpack.mix.js index bf24e44..59b6cee 100644 --- a/webpack.mix.js +++ b/webpack.mix.js @@ -16,6 +16,7 @@ mix.js('resources/assets/js/app.js', 'public/js') .js('resources/assets/js/home.js', 'public/js') .js('resources/assets/js/user/stats.js', 'public/js/user') .js('resources/assets/js/setting/privacy.js', 'public/js/setting') + .js('resources/assets/js/setting/import.js', 'public/js/setting') .js('resources/assets/js/setting/deactivate.js', 'public/js/setting') .ts('resources/assets/js/checkin.ts', 'public/js') .sass('resources/assets/sass/app.scss', 'public/css')