diff --git a/app/Announcement.php b/app/Announcement.php new file mode 100644 index 00000000..d70dbf90 --- /dev/null +++ b/app/Announcement.php @@ -0,0 +1,37 @@ +where('start_date', '<=', Carbon::now()) +// ->where('end_date', '>=', Carbon::now()); +// } +} diff --git a/app/Http/Controllers/Announcement/CreateAnnouncementController.php b/app/Http/Controllers/Announcement/CreateAnnouncementController.php new file mode 100644 index 00000000..677d7df8 --- /dev/null +++ b/app/Http/Controllers/Announcement/CreateAnnouncementController.php @@ -0,0 +1,21 @@ +delete(); + + if($deleted) + { + session()->put('success', 'Announcement Successfully Deleted!'); + return redirect()->back(); + } + //the else part + session()->put('error', 'There was an error deleting this announcement!'); + return redirect()->back(); + } +} diff --git a/app/Http/Controllers/Announcement/EditAnnouncementController.php b/app/Http/Controllers/Announcement/EditAnnouncementController.php new file mode 100644 index 00000000..349676fe --- /dev/null +++ b/app/Http/Controllers/Announcement/EditAnnouncementController.php @@ -0,0 +1,23 @@ +validate($request, [ + 'startdate' => 'required', + 'enddate' => 'required', + 'content' => 'required' + ]); + + // create class objects + $announcement = new Announcement(); + $convertdate = new ConvertDateToTimeStamp(); + + //On left field name in DB and on right field name in Form/view +// $announcement->posted_by = $request->input('name'); + $announcement->start_date = $convertdate::convertDateToTimeStamp($request->input('startdate')); + $announcement->end_date = $convertdate::convertDateToTimeStamp($request->input('enddate')); + $announcement->content = $request->input('content'); + $saved = $announcement->save(); + + if($saved) + { + session()->put('success', 'Announcement Successfully Created!'); + return redirect()->back(); + } + //the else part + session()->put('error', 'There was an error creating this announcement!'); + return redirect()->back(); + + } + +} diff --git a/app/Http/Controllers/Announcement/UpdateAnnouncementController.php b/app/Http/Controllers/Announcement/UpdateAnnouncementController.php new file mode 100644 index 00000000..6357f656 --- /dev/null +++ b/app/Http/Controllers/Announcement/UpdateAnnouncementController.php @@ -0,0 +1,33 @@ +validate([ + 'content' => 'required', + ]); + $updated = Announcement::whereId($id)->update($validatedData); + if($updated) + { + session()->put('success', 'Announcement Successfully Updated!'); + return redirect()->back(); + } + //the else part + session()->put('error', 'There was an error updating this announcement!'); + return redirect()->back(); + } +} diff --git a/app/Http/Controllers/Announcement/ViewAnnouncementController.php b/app/Http/Controllers/Announcement/ViewAnnouncementController.php new file mode 100644 index 00000000..97876c41 --- /dev/null +++ b/app/Http/Controllers/Announcement/ViewAnnouncementController.php @@ -0,0 +1,24 @@ +whereDate('end_date', '>=', Carbon::now()) + ->get(); + return view('announcement.view_announcements', compact('announcements')); + } + +} diff --git a/app/Http/Helpers/ConvertDateToTimeStamp.php b/app/Http/Helpers/ConvertDateToTimeStamp.php new file mode 100644 index 00000000..74276107 --- /dev/null +++ b/app/Http/Helpers/ConvertDateToTimeStamp.php @@ -0,0 +1,14 @@ +format('Y-m-d H:i:s'); + } +} diff --git a/database/migrations/2020_10_08_132940_create_announcements_table.php b/database/migrations/2020_10_08_132940_create_announcements_table.php new file mode 100644 index 00000000..ebd42348 --- /dev/null +++ b/database/migrations/2020_10_08_132940_create_announcements_table.php @@ -0,0 +1,35 @@ +increments('id'); +// $table->string('posted_by'); + $table->timestamp('start_date')->nullable(); + $table->timestamp('end_date')->nullable(); + $table->longText('content'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('announcements'); + } +} diff --git a/resources/views/announcement/create_announcement.blade.php b/resources/views/announcement/create_announcement.blade.php new file mode 100644 index 00000000..de0741ef --- /dev/null +++ b/resources/views/announcement/create_announcement.blade.php @@ -0,0 +1,78 @@ +@extends('layouts.announcement.app') + +@section('content') +
+
+
+
+
{{ __('Create Announcement') }}
+
+
+
+ +
+ @if (session()->has('success')) +

{{ session('success') , session()->pull('success')}}

+ @else +

{{ session('error') , session()->pull('error')}}

+ @endif +
+ +
+ @csrf +
+
+ +
+ + + + +
+
+
+ +
+
+ +
+ + + + +
+
+
+ +
+
+ + +
+
+ +
+ +

+
+ + +
+ +
+ +
+ +
+
+
+
+@endsection + + diff --git a/resources/views/announcement/edit_announcement.blade.php b/resources/views/announcement/edit_announcement.blade.php new file mode 100644 index 00000000..33723e56 --- /dev/null +++ b/resources/views/announcement/edit_announcement.blade.php @@ -0,0 +1,84 @@ +@extends('layouts.announcement.app') + +@section('content') +
+
+
+
+
{{ __('Edit Announcement') }}
+
+
+ +
+ @if (session()->has('success')) +

{{ session('success') , session()->pull('success')}}

+ @else +

{{ session('error') , session()->pull('error')}}

+ @endif +
+ + @if(count(array($announcements)) > 0) +{{-- @foreach($announcements as $announcement)--}} +
+ @csrf + @method('PUT') + + + + +
+
+ + +
+
+ +
+ +
+ +
+ +
+
+ +{{-- @endforeach--}} + @else +

No Results

+ @endif +
+
+
+
+
+
+
+@endsection + diff --git a/resources/views/announcement/view_announcement.blade.php b/resources/views/announcement/view_announcement.blade.php new file mode 100644 index 00000000..3e6f2765 --- /dev/null +++ b/resources/views/announcement/view_announcement.blade.php @@ -0,0 +1,66 @@ +@extends('layouts.announcement.app') + +@section('content') +
+
+
+
+
{{ __('View Announcement') }}
+
+
+ @if(count(array($announcements)) > 0) +
+ @csrf +
+
+ +
+ +
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+ + +
+
+ +
+
+ +
+
+ @else +

No Results

+ @endif +
+
+
+
+@endsection + diff --git a/resources/views/announcement/view_announcements.blade.php b/resources/views/announcement/view_announcements.blade.php new file mode 100644 index 00000000..8e0feef9 --- /dev/null +++ b/resources/views/announcement/view_announcements.blade.php @@ -0,0 +1,161 @@ +{{--@extends('layouts.app')--}} + +{{--@section('content')--}} +{{--
--}} +{{--
--}} +{{--
--}} +{{--
--}} +{{--
{{ __('View Announcements') }}
--}} + +{{--
--}} +{{-- @if(count($announcements) > 0)--}} +{{-- --}} +{{-- --}} +{{-- --}} +{{-- --}} +{{-- --}} +{{-- --}} +{{-- --}} +{{-- --}} +{{-- --}} +{{-- --}} +{{-- --}} +{{-- @foreach($announcements as $announcement)--}} +{{-- --}} +{{-- --}} +{{-- --}} +{{-- --}} +{{-- --}} +{{-- --}} +{{-- --}} +{{-- @endforeach--}} +{{-- --}} +{{--
Posted ByContentCreated AtActions
{{$announcement->posted_by}}{{$announcement->content}}{{$announcement->created_at}}--}} +{{-- --}} +{{-- --}} +{{-- View--}} +{{-- --}} +{{-- --}} +{{-- --}} +{{-- --}} +{{-- Edit--}} +{{-- --}} +{{-- --}} +{{-- --}} +{{-- --}} +{{-- Delete--}} +{{-- --}} +{{--
--}} +{{-- @csrf--}} +{{-- {{@method_field('delete')}}--}} +{{-- --}} +{{--
--}} +{{--
--}} +{{--
--}} +{{-- @else--}} +{{--

No Results

--}} +{{-- @endif--}} +{{--
--}} + +{{--
--}} +{{--
--}} +{{--
--}} +{{--
--}} +{{--@endsection--}} + + +@extends('layouts.announcement.app') + +@section('content') +
+
+
+
+
{{ __('View Announcements') }}
+
+
+ +
+ @if (session()->has('success')) +

{{ session('success') , session()->pull('success')}}

+ @else +

{{ session('error') , session()->pull('error')}}

+ @endif +
+ + @if(count($announcements) > 0) +
+ + + + + {{-- --}} + +{{-- --}} + + + + + + + + @foreach($announcements as $announcement) + + + {{-- --}} + +{{-- --}} + + + + + @endforeach + +
Posted ByContentCreated AtActive DateActions
{{$announcement->posted_by}}{{$announcement->content}}{{$announcement->created_at}}{{$announcement->start_date}} {{$announcement->end_date}} + + + + + Edit + + + + +
+ @csrf + {{@method_field('delete')}} + +
+
+
+ +{{-- {{ $announcements->links() }}--}} + +
+ @else +
+

No Results

+
+ @endif +
+ +
+
+ +
+ +
+
+
+
+
+
+@endsection diff --git a/resources/views/layouts/announcement/app.blade.php b/resources/views/layouts/announcement/app.blade.php new file mode 100644 index 00000000..e60a7ba8 --- /dev/null +++ b/resources/views/layouts/announcement/app.blade.php @@ -0,0 +1,61 @@ + +{{--source: https://www.solodev.com/blog/web-design/adding-a-datetime-picker-to-your-forms.stml--}} + + + + DT-36 announcement module for exchange system + + + + + + + + + + + + + + + +
+
+ @yield('content') +
+
+ + + + + diff --git a/routes/web.php b/routes/web.php index d1d23a25..9f1fcfce 100644 --- a/routes/web.php +++ b/routes/web.php @@ -56,3 +56,33 @@ Route::get('{path}', 'WelcomeController@index')->where('path', '(.*)'); Auth::routes(); //Route::get('/home', 'WelcomeController@index')->name('home'); + + +// +// +// + +//create data +Route::get('/announcement/create', 'App\Http\Controllers\Announcement\CreateAnnouncementController@create')->name('announcement.create'); + +//store data +Route::post('/announcement/post', 'App\Http\Controllers\Announcement\PostAnnouncementController@store')->name('announcement.post'); + +//list all data +Route::get('/announcements/view', 'App\Http\Controllers\Announcement\ViewAnnouncementsController@index')->name('announcements.view'); + +//list a data +Route::get('/announcement/{id}/view', 'App\Http\Controllers\Announcement\ViewAnnouncementController@show')->name('announcement.view'); + +//edit data +Route::get('/announcement/{id}/edit', 'App\Http\Controllers\Announcement\EditAnnouncementController@edit')->name('announcement.edit'); + +//update data +Route::put('/announcement/{id}/update', 'App\Http\Controllers\Announcement\UpdateAnnouncementController@update')->name('announcement.update'); + +//delete data +Route::delete('/announcement/{id}/delete', 'App\Http\Controllers\Announcement\DeleteAnnouncementController@destroy')->name('announcement.delete'); + +// +// +// \ No newline at end of file