From dabe294cc22bfe7c01e94a66d698cbb6938baab2 Mon Sep 17 00:00:00 2001 From: paoloGuagnano Date: Thu, 8 Feb 2024 18:47:52 +0100 Subject: [PATCH 1/6] Add function insert name and translation into DB --- app/Http/Controllers/WordsController.php | 18 ++++++++++++++++++ resources/views/components/table.blade.php | 2 ++ resources/views/words/index.blade.php | 5 ----- .../words/partials/insert-word-form.blade.php | 8 +++----- routes/web.php | 3 ++- 5 files changed, 25 insertions(+), 11 deletions(-) diff --git a/app/Http/Controllers/WordsController.php b/app/Http/Controllers/WordsController.php index 032209e..a87e680 100644 --- a/app/Http/Controllers/WordsController.php +++ b/app/Http/Controllers/WordsController.php @@ -35,4 +35,22 @@ class WordsController extends Controller return redirect('/words'); } + + /** + * Update an existing Word in the database. + */ + public function update(Request $request): RedirectResponse + { + + return redirect('/words'); + } + + /** + * Delete an existing Word in the database. + */ + public function delete($id): RedirectResponse + { + word::destroy($id); + return redirect('/words'); + } } diff --git a/resources/views/components/table.blade.php b/resources/views/components/table.blade.php index 102696a..022cffa 100644 --- a/resources/views/components/table.blade.php +++ b/resources/views/components/table.blade.php @@ -14,6 +14,8 @@ {{ $item->{$fields[0]} }} {{ $item->{$fields[1]} }} + + @empty diff --git a/resources/views/words/index.blade.php b/resources/views/words/index.blade.php index 2f05471..df56b78 100644 --- a/resources/views/words/index.blade.php +++ b/resources/views/words/index.blade.php @@ -33,11 +33,6 @@ @include('words.partials.insert-word-form') - {{--
--}} - {{--
--}} - {{-- @include('words.partials.modify-word-form')--}} - {{--
--}} - {{--
--}} diff --git a/resources/views/words/partials/insert-word-form.blade.php b/resources/views/words/partials/insert-word-form.blade.php index 3c55bfe..f357caf 100644 --- a/resources/views/words/partials/insert-word-form.blade.php +++ b/resources/views/words/partials/insert-word-form.blade.php @@ -14,19 +14,17 @@
- +
- +
-
- - + {{ __('Submit') }}
diff --git a/routes/web.php b/routes/web.php index 5fff9c5..f5c05bc 100644 --- a/routes/web.php +++ b/routes/web.php @@ -56,7 +56,8 @@ Route::prefix('words')->group(function () { Route::post('/', [WordsController::class, 'store'])->name('words.insert'); }); - +Route::get('delete_record/{id}', [WordsController::class, 'delete']); +//Route::get('delete_record/{id}', [WordsController::class, 'update']); require __DIR__ . '/auth.php'; From 6889c0e49bb1480dc04feaaf0a7f3b81d6d8b012 Mon Sep 17 00:00:00 2001 From: paoloGuagnano Date: Sat, 10 Feb 2024 12:14:26 +0100 Subject: [PATCH 2/6] Add function get and modify italian words and dialectic word from DB --- app/Http/Controllers/WordsController.php | 30 +++++++++++------ app/Models/Word.php | 3 ++ resources/views/components/table.blade.php | 2 +- .../views/words/modify-word-form.blade.php | 32 +++++++++++++++++++ .../words/partials/insert-word-form.blade.php | 1 + routes/web.php | 3 +- 6 files changed, 59 insertions(+), 12 deletions(-) create mode 100644 resources/views/words/modify-word-form.blade.php diff --git a/app/Http/Controllers/WordsController.php b/app/Http/Controllers/WordsController.php index a87e680..0f082f2 100644 --- a/app/Http/Controllers/WordsController.php +++ b/app/Http/Controllers/WordsController.php @@ -6,7 +6,6 @@ use App\Models\Word; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; - class WordsController extends Controller { public function index() @@ -21,16 +20,9 @@ class WordsController extends Controller */ public function store(Request $request): RedirectResponse { - // Validate the request... - $word = new Word; - $word->name = $request->name; $word->translation = $request->translation; - - //$word->name = $request->input('name'); - //$word->translation = $request->input('translation'); - $word->save(); return redirect('/words'); @@ -39,8 +31,26 @@ class WordsController extends Controller /** * Update an existing Word in the database. */ - public function update(Request $request): RedirectResponse + public function edit($id) { + $data = Word::find($id); + $id = $data->id; + $name = $data->name; + $translation = $data->translation; + //return $translation; + return view("words.modify-word-form", compact('id', "name", "translation")); + } + + /** + * Update an existing Word in the database. + */ + public function update(Request $request, $id): RedirectResponse + { + $data = Word::find($id); + + $data->name = $request->name; + $data->translation = $request->translation; + $data->save(); return redirect('/words'); } @@ -50,7 +60,7 @@ class WordsController extends Controller */ public function delete($id): RedirectResponse { - word::destroy($id); + Word::destroy($id); return redirect('/words'); } } diff --git a/app/Models/Word.php b/app/Models/Word.php index 74ab916..43589b6 100644 --- a/app/Models/Word.php +++ b/app/Models/Word.php @@ -5,6 +5,9 @@ namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; +/** + * @method static find($id) + */ class Word extends Model { use HasFactory; diff --git a/resources/views/components/table.blade.php b/resources/views/components/table.blade.php index 022cffa..37dfc14 100644 --- a/resources/views/components/table.blade.php +++ b/resources/views/components/table.blade.php @@ -14,7 +14,7 @@ {{ $item->{$fields[0]} }} {{ $item->{$fields[1]} }} - + @empty diff --git a/resources/views/words/modify-word-form.blade.php b/resources/views/words/modify-word-form.blade.php new file mode 100644 index 0000000..639fd14 --- /dev/null +++ b/resources/views/words/modify-word-form.blade.php @@ -0,0 +1,32 @@ + +
+
+

+ {{ __('Insert Word') }} +

+ +

+ {{ __("Enter the word Italian and its dialect translation") }} +

+
+ +
+ @csrf + +
+ + + +
+ +
+ + + +
+
+ {{ __('Submit') }} +
+
+
+
diff --git a/resources/views/words/partials/insert-word-form.blade.php b/resources/views/words/partials/insert-word-form.blade.php index f357caf..4a94474 100644 --- a/resources/views/words/partials/insert-word-form.blade.php +++ b/resources/views/words/partials/insert-word-form.blade.php @@ -28,3 +28,4 @@ + diff --git a/routes/web.php b/routes/web.php index f5c05bc..9e78bbb 100644 --- a/routes/web.php +++ b/routes/web.php @@ -57,7 +57,8 @@ Route::prefix('words')->group(function () { }); Route::get('delete_record/{id}', [WordsController::class, 'delete']); -//Route::get('delete_record/{id}', [WordsController::class, 'update']); +Route::get('edit_record/{id}', [WordsController::class, 'edit']); +Route::post('update_record/{id}', [WordsController::class, 'update'])->name('words.update');; require __DIR__ . '/auth.php'; From 40d9f1b2387cabfb3858e71afe99d33c9aab68bb Mon Sep 17 00:00:00 2001 From: paoloGuagnano Date: Sat, 10 Feb 2024 12:55:47 +0100 Subject: [PATCH 3/6] Add layout Upload file --- resources/views/words/index.blade.php | 45 ++++++++++--------- .../words/partials/upload-file.blade.php | 20 +++++++++ 2 files changed, 44 insertions(+), 21 deletions(-) create mode 100644 resources/views/words/partials/upload-file.blade.php diff --git a/resources/views/words/index.blade.php b/resources/views/words/index.blade.php index df56b78..9f0acc6 100644 --- a/resources/views/words/index.blade.php +++ b/resources/views/words/index.blade.php @@ -1,25 +1,4 @@ -{{-- --}} -{{-- --}} -{{-- --}} -{{-- --}} -{{-- --}} -{{-- --}} -{{-- --}} -{{-- --}} - -{{-- @forelse ($words as $word)--}} -{{-- --}} -{{-- --}} -{{-- --}} -{{-- --}} -{{-- @empty--}} -{{-- --}} -{{-- --}} -{{-- --}} -{{-- @endforelse--}} -{{-- --}} -{{--
WordTranslation
{{$word->name}}{{$word->translation}}
No words
--}}

{{ __('Table Words') }} @@ -27,6 +6,30 @@
+
+
+
+
+
+
+ @include('words.partials.insert-word-form') +
+
+
+
+
+
+
+
+
+
+ @include('words.partials.upload-file') +
+
+
+
+
+
diff --git a/resources/views/words/partials/upload-file.blade.php b/resources/views/words/partials/upload-file.blade.php new file mode 100644 index 0000000..2850fae --- /dev/null +++ b/resources/views/words/partials/upload-file.blade.php @@ -0,0 +1,20 @@ +
+
+

+ {{ __('Upload CSV File ') }} +

+ +

+ {{ __("Upload file to add group of word in db") }} +

+
+ +
+ + {{----}} +
+



+ {{ __('Submit') }} +
+ +
From f69f2ba0462422d6355c4234a8397478ddc40445 Mon Sep 17 00:00:00 2001 From: paoloGuagnano Date: Sat, 10 Feb 2024 12:57:18 +0100 Subject: [PATCH 4/6] correct error --- resources/views/words/index.blade.php | 7 ------- 1 file changed, 7 deletions(-) diff --git a/resources/views/words/index.blade.php b/resources/views/words/index.blade.php index 9f0acc6..f151b21 100644 --- a/resources/views/words/index.blade.php +++ b/resources/views/words/index.blade.php @@ -30,13 +30,6 @@
-
-
-
- @include('words.partials.insert-word-form') -
-
-
From 0cedec9711f9698bd438bb9d7980a6b8d6cb015f Mon Sep 17 00:00:00 2001 From: paoloGuagnano Date: Sun, 11 Feb 2024 18:25:29 +0100 Subject: [PATCH 5/6] Add file upload function. modify paramiter FILESYSTEM_DISK=public in file .env --- app/Http/Controllers/FileController.php | 32 +++++++++ app/Http/Requests/StorefileRequest.php | 28 ++++++++ app/Http/Requests/UpdatefileRequest.php | 28 ++++++++ app/Models/file.php | 11 ++++ app/Policies/FilePolicy.php | 66 +++++++++++++++++++ database/factories/FileFactory.php | 23 +++++++ .../2024_02_10_195359_create_files_table.php | 27 ++++++++ database/seeders/FileSeeder.php | 17 +++++ .../words/partials/upload-file.blade.php | 7 +- routes/web.php | 4 ++ 10 files changed, 240 insertions(+), 3 deletions(-) create mode 100644 app/Http/Controllers/FileController.php create mode 100644 app/Http/Requests/StorefileRequest.php create mode 100644 app/Http/Requests/UpdatefileRequest.php create mode 100644 app/Models/file.php create mode 100644 app/Policies/FilePolicy.php create mode 100644 database/factories/FileFactory.php create mode 100644 database/migrations/2024_02_10_195359_create_files_table.php create mode 100644 database/seeders/FileSeeder.php diff --git a/app/Http/Controllers/FileController.php b/app/Http/Controllers/FileController.php new file mode 100644 index 0000000..f573f3a --- /dev/null +++ b/app/Http/Controllers/FileController.php @@ -0,0 +1,32 @@ +all()); + //$filename = 'new_file.'.$request->filename->extension(); + //$request->filename->move(public_path('uploads'), $filename); + + //dd($request->all()); + $filename = 'new_file.'.$request->filename->extension(); + $request->filename->storeAs('file_temp', $filename); + return redirect('/words'); + } + + public function delete(): RedirectResponse + { + Storage::delete('file_temp/new_file.txt'); + return redirect('/words'); + } +} diff --git a/app/Http/Requests/StorefileRequest.php b/app/Http/Requests/StorefileRequest.php new file mode 100644 index 0000000..3120665 --- /dev/null +++ b/app/Http/Requests/StorefileRequest.php @@ -0,0 +1,28 @@ +|string> + */ + public function rules(): array + { + return [ + // + ]; + } +} diff --git a/app/Http/Requests/UpdatefileRequest.php b/app/Http/Requests/UpdatefileRequest.php new file mode 100644 index 0000000..6f63084 --- /dev/null +++ b/app/Http/Requests/UpdatefileRequest.php @@ -0,0 +1,28 @@ +|string> + */ + public function rules(): array + { + return [ + // + ]; + } +} diff --git a/app/Models/file.php b/app/Models/file.php new file mode 100644 index 0000000..29cb9d6 --- /dev/null +++ b/app/Models/file.php @@ -0,0 +1,11 @@ + + */ +class FileFactory extends Factory +{ + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + // + ]; + } +} diff --git a/database/migrations/2024_02_10_195359_create_files_table.php b/database/migrations/2024_02_10_195359_create_files_table.php new file mode 100644 index 0000000..7c26401 --- /dev/null +++ b/database/migrations/2024_02_10_195359_create_files_table.php @@ -0,0 +1,27 @@ +id(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('files'); + } +}; diff --git a/database/seeders/FileSeeder.php b/database/seeders/FileSeeder.php new file mode 100644 index 0000000..67df964 --- /dev/null +++ b/database/seeders/FileSeeder.php @@ -0,0 +1,17 @@ + -
- - {{----}} + + @csrf + +




{{ __('Submit') }} diff --git a/routes/web.php b/routes/web.php index 9e78bbb..7745110 100644 --- a/routes/web.php +++ b/routes/web.php @@ -2,6 +2,7 @@ use App\Http\Controllers\ProfileController; use App\Http\Controllers\WordsController; +use App\Http\Controllers\FileController; use Illuminate\Http\Request; use Illuminate\Support\Facades\Route; @@ -60,6 +61,9 @@ Route::get('delete_record/{id}', [WordsController::class, 'delete']); Route::get('edit_record/{id}', [WordsController::class, 'edit']); Route::post('update_record/{id}', [WordsController::class, 'update'])->name('words.update');; +//***** FILE *****\\ +Route::post('datasubmit', [FileController::class, 'datasubmit'])->name("store"); + require __DIR__ . '/auth.php'; From 58a28884c4f82cc068b7cb4f023656cb55e9cdd7 Mon Sep 17 00:00:00 2001 From: paoloGuagnano Date: Tue, 13 Feb 2024 18:44:12 +0100 Subject: [PATCH 6/6] Add file upload function. modify paramiter FILESYSTEM_DISK=public in file .env --- app/Http/Controllers/FileController.php | 13 ++++-- app/Http/Controllers/WordsController.php | 5 ++- app/Http/Requests/FileRequest.php | 42 +++++++++++++++++++ app/Http/Requests/WordRequest.php | 11 ++++- .../views/components/input-error.blade.php | 2 +- .../words/partials/insert-word-form.blade.php | 4 +- .../words/partials/upload-file.blade.php | 5 ++- 7 files changed, 71 insertions(+), 11 deletions(-) create mode 100644 app/Http/Requests/FileRequest.php diff --git a/app/Http/Controllers/FileController.php b/app/Http/Controllers/FileController.php index f573f3a..49b37ce 100644 --- a/app/Http/Controllers/FileController.php +++ b/app/Http/Controllers/FileController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Http\Requests\FileRequest; use App\Http\Requests\StorefileRequest; use App\Http\Requests\UpdatefileRequest; use App\Models\file; @@ -11,7 +12,7 @@ use Illuminate\Support\Facades\Storage; class FileController extends Controller { - public function datasubmit(Request $request): RedirectResponse + public function datasubmit(FileRequest $request): RedirectResponse { //upload file in public folder //dd($reqest->all()); @@ -19,8 +20,14 @@ class FileController extends Controller //$request->filename->move(public_path('uploads'), $filename); //dd($request->all()); - $filename = 'new_file.'.$request->filename->extension(); - $request->filename->storeAs('file_temp', $filename); + //$request->validate([ + // 'filename'=>'required' + //]); + + $filename = 'new_file.'.$request->file("filetoinsert")->getClientOriginalExtension(); + $request->file("filetoinsert")->storeAs('file_temp', $filename); + + //$request->filename->storeAs('file_temp', $filename); return redirect('/words'); } diff --git a/app/Http/Controllers/WordsController.php b/app/Http/Controllers/WordsController.php index 0f082f2..35a89d4 100644 --- a/app/Http/Controllers/WordsController.php +++ b/app/Http/Controllers/WordsController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Http\Requests\WordRequest; use App\Models\Word; use Illuminate\Http\RedirectResponse; @@ -18,7 +19,7 @@ class WordsController extends Controller /** * Store a new Word in the database. */ - public function store(Request $request): RedirectResponse + public function store(WordRequest $request): RedirectResponse { $word = new Word; $word->name = $request->name; @@ -44,7 +45,7 @@ class WordsController extends Controller /** * Update an existing Word in the database. */ - public function update(Request $request, $id): RedirectResponse + public function update(WordRequest $request, $id): RedirectResponse { $data = Word::find($id); diff --git a/app/Http/Requests/FileRequest.php b/app/Http/Requests/FileRequest.php new file mode 100644 index 0000000..8fec1d9 --- /dev/null +++ b/app/Http/Requests/FileRequest.php @@ -0,0 +1,42 @@ +|string> + */ + public function rules(): array + { + return [ + 'filetoinsert' => ['required', 'mimes:txt']//, File::types(['csv'])] + ]; + } + + public function messages(): array + { + return [ + 'filetoinsert.required' => 'ERROR: csv file not selected!', + 'filetoinsert.mimes'=> "ERRORE: select only csv format" + ]; + } + + /** + * Determine if the user is authorized to make this request. + */ + public function authorize(): bool + { + return true; + } +} + + diff --git a/app/Http/Requests/WordRequest.php b/app/Http/Requests/WordRequest.php index 53751cd..de4c6c0 100644 --- a/app/Http/Requests/WordRequest.php +++ b/app/Http/Requests/WordRequest.php @@ -10,10 +10,19 @@ class WordRequest extends FormRequest { return [ 'name' => ['required'], - 'translation' => ['required'], + 'translation' => ['required', 'unique:words,translation'], ]; } + public function messages(): array + { + return [ + 'name.required' => 'Insert italian Word', + 'translation.required' => 'Insert dialect Word', + ]; + } + + public function authorize(): bool { return true; diff --git a/resources/views/components/input-error.blade.php b/resources/views/components/input-error.blade.php index a8a816b..84caf1c 100644 --- a/resources/views/components/input-error.blade.php +++ b/resources/views/components/input-error.blade.php @@ -1,7 +1,7 @@ @props(['messages']) @if ($messages) -
    merge(['class' => 'text-danger text-sm text-red-600 dark:text-red-400 space-y-1']) }}> +
      merge(['class' => 'alert alert-danger text-sm text-red-600 dark:text-red-400 space-y-1']) }}> @foreach ((array) $messages as $message)
    • {{ $message }}
    • @endforeach diff --git a/resources/views/words/partials/insert-word-form.blade.php b/resources/views/words/partials/insert-word-form.blade.php index 4a94474..fa45d3e 100644 --- a/resources/views/words/partials/insert-word-form.blade.php +++ b/resources/views/words/partials/insert-word-form.blade.php @@ -14,13 +14,13 @@
      - +
      - +
      diff --git a/resources/views/words/partials/upload-file.blade.php b/resources/views/words/partials/upload-file.blade.php index 20fe506..ce3c883 100644 --- a/resources/views/words/partials/upload-file.blade.php +++ b/resources/views/words/partials/upload-file.blade.php @@ -12,9 +12,10 @@ @csrf - + +
      -



      +
      {{ __('Submit') }}