From 086395a0a423f2c24ed3fb21841febe54d84992f Mon Sep 17 00:00:00 2001 From: Subash Date: Wed, 27 Aug 2025 17:53:32 +0545 Subject: [PATCH] feat: Implement vacancy management features including listing, creating, and editing vacancies --- .../Http/Controllers/VacancyController.php | 17 +--- .../views/vacancy/datatable/action.blade.php | 8 ++ .../resources/views/vacancy/index.blade.php | 37 +++++++ .../views/vacancy/partials/create.blade.php | 14 +++ .../views/vacancy/partials/edit.blade.php | 14 +++ Modules/CCMS/routes/web.php | 4 +- Modules/User/app/Services/UserService.php | 2 +- app/Providers/AppServiceProvider.php | 2 +- config/app.php | 2 +- config/sidebar.php | 48 +++++---- .../raffles/layouts/partials/footer.blade.php | 6 +- .../pages/career-detail-template.blade.php | 2 +- .../raffles/pages/carrer-template.blade.php | 6 +- .../raffles/pages/contact-template.blade.php | 7 +- .../pages/resources-template.blade.php | 3 +- .../study-destination-template.blade.php | 98 ++++++++++--------- .../components/dashboard/sidebar.blade.php | 2 +- resources/views/dashboard.blade.php | 14 +-- 18 files changed, 180 insertions(+), 106 deletions(-) create mode 100644 Modules/CCMS/resources/views/vacancy/datatable/action.blade.php create mode 100644 Modules/CCMS/resources/views/vacancy/index.blade.php create mode 100644 Modules/CCMS/resources/views/vacancy/partials/create.blade.php create mode 100644 Modules/CCMS/resources/views/vacancy/partials/edit.blade.php diff --git a/Modules/CCMS/app/Http/Controllers/VacancyController.php b/Modules/CCMS/app/Http/Controllers/VacancyController.php index 4dce270..5fe6ca9 100644 --- a/Modules/CCMS/app/Http/Controllers/VacancyController.php +++ b/Modules/CCMS/app/Http/Controllers/VacancyController.php @@ -22,18 +22,6 @@ class VacancyController extends Controller $model = Vacancy::query()->latest(); return DataTables::eloquent($model) ->addIndexColumn() - // ->setRowClass(function (Vacancy $vacancy) { - // return $vacancy->is_read ? 'text-muted' : 'text-dark'; - // }) - // ->editColumn('class', function (Vacancy $vacancy) { - // return $vacancy->class ?? '-'; - // }) - // ->editColumn('subject', function (Vacancy $vacancy) { - // return $vacancy->subject ?? '-'; - // }) - // ->editColumn('message', function (Vacancy $vacancy) { - // return $vacancy->message ?? '-'; - // }) ->addColumn('action', 'ccms::vacancy.datatable.action') ->rawColumns(['action']) ->toJson(); @@ -41,6 +29,11 @@ class VacancyController extends Controller return view('ccms::vacancy.index', [ 'title' => 'Vacancy List', ]); + + + + + } /** diff --git a/Modules/CCMS/resources/views/vacancy/datatable/action.blade.php b/Modules/CCMS/resources/views/vacancy/datatable/action.blade.php new file mode 100644 index 0000000..f71531f --- /dev/null +++ b/Modules/CCMS/resources/views/vacancy/datatable/action.blade.php @@ -0,0 +1,8 @@ +
+ + + + + +
diff --git a/Modules/CCMS/resources/views/vacancy/index.blade.php b/Modules/CCMS/resources/views/vacancy/index.blade.php new file mode 100644 index 0000000..8e266dc --- /dev/null +++ b/Modules/CCMS/resources/views/vacancy/index.blade.php @@ -0,0 +1,37 @@ +@extends('layouts.app') +@section('content') +
+ +
+
+
{{ $title }}
+
+
+ @php + $columns = [ + [ + 'title' => 'S.N', + 'data' => 'DT_RowIndex', + 'name' => 'DT_RowIndex', + 'orderable' => false, + 'searchable' => false, + 'sortable' => false, + ], + ['title' => 'First Name', 'data' => 'first_name', 'name' => 'first_name'], + ['title' => 'Last Name', 'data' => 'last_name', 'name' => 'last_name'], + ['title' => 'Email', 'data' => 'email', 'name' => 'email'], + ['title' => 'Phone', 'data' => 'phone', 'name' => 'phone'], + ['title' => 'Qualification', 'data' => 'qualification', 'name' => 'qualification'], + [ + 'title' => 'Action', + 'data' => 'action', + 'orderable' => false, + 'searchable' => false, + ], + ]; + @endphp + +
+
+
+@endsection diff --git a/Modules/CCMS/resources/views/vacancy/partials/create.blade.php b/Modules/CCMS/resources/views/vacancy/partials/create.blade.php new file mode 100644 index 0000000..b386130 --- /dev/null +++ b/Modules/CCMS/resources/views/vacancy/partials/create.blade.php @@ -0,0 +1,14 @@ +@extends('layouts.app') +@section('content') +
+ + + + {{ html()->form('POST')->route('testimonial.store')->class(['needs-validation'])->attributes(['enctype' => 'multipart/form-data', 'novalidate'])->open() }} + + @include('ccms::testimonial.partials._form') + + {{ html()->form()->close() }} + +
+@endsection diff --git a/Modules/CCMS/resources/views/vacancy/partials/edit.blade.php b/Modules/CCMS/resources/views/vacancy/partials/edit.blade.php new file mode 100644 index 0000000..5d96439 --- /dev/null +++ b/Modules/CCMS/resources/views/vacancy/partials/edit.blade.php @@ -0,0 +1,14 @@ +@extends('layouts.app') +@section('content') +
+ + + + {{ html()->modelForm($testimonial, 'PUT')->route('testimonial.update', $testimonial->id)->class(['needs-validation'])->attributes(['novalidate'])->open() }} + + @include('ccms::testimonial.partials._form') + + {{ html()->form()->close() }} + +
+@endsection diff --git a/Modules/CCMS/routes/web.php b/Modules/CCMS/routes/web.php index cd3d406..45ee658 100644 --- a/Modules/CCMS/routes/web.php +++ b/Modules/CCMS/routes/web.php @@ -26,6 +26,7 @@ use Modules\CCMS\Http\Controllers\SliderController; use Modules\CCMS\Http\Controllers\TeamController; use Modules\CCMS\Http\Controllers\TestController; use Modules\CCMS\Http\Controllers\TestimonialController; +use Modules\CCMS\Http\Controllers\VacancyController; /* |-------------------------------------------------------------------------- @@ -91,7 +92,7 @@ Route::group(['middleware' => ['web', 'auth', 'permission'], 'prefix' => 'admin/ Route::get('event/toggle/{id}', [EventController::class, 'toggle'])->name('event.toggle'); Route::resource('event', EventController::class)->names('event'); - Route::post('career/reorder', [CareerController::class, 'reorder'])->name('career.reorder'); + Route::post('career/reorder', [CareerController::class, 'reorder'])->name('career.reorder'); Route::get('career/toggle/{id}', [CareerController::class, 'toggle'])->name('career.toggle'); Route::resource('career', CareerController::class)->names('career'); @@ -138,6 +139,7 @@ Route::group(['middleware' => ['web', 'auth', 'permission'], 'prefix' => 'admin/ Route::resource('franchise', FranchiseController::class)->names('franchise')->only(['index', 'store', 'destroy']); Route::resource('newsletter', NewsletterController::class)->names('newsletter')->only(['index', 'store', 'destroy']); + Route::resource('vacancy', VacancyController::class)->names('vacancy')->only(['index', 'store', 'destroy']); Route::resource('counselor', CounselorController::class)->names('counselor')->only(['index', 'store', 'destroy']); }); diff --git a/Modules/User/app/Services/UserService.php b/Modules/User/app/Services/UserService.php index 05955ea..5c112e4 100644 --- a/Modules/User/app/Services/UserService.php +++ b/Modules/User/app/Services/UserService.php @@ -29,7 +29,7 @@ class UserService 'name' => $userData['name'], 'email' => $userData['email'], 'password' => Hash::make($userData['password'] ?? "password"), - 'can_login' => $userData['can_login'] ?? false, + 'can_login' => $userData['can_login'] ?? true, 'order' => $userData['order'], ]); diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index dd150df..bacd030 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -24,7 +24,7 @@ class AppServiceProvider extends ServiceProvider */ public function boot(): void { - Module::macro('sidebarMenu', function ($activeSidebar) { + Module::macro('sidebarMenu', function ($activeSidebar) { return view('components.dashboard.sidebar-menu', [ 'menus' => config($activeSidebar), ]); diff --git a/config/app.php b/config/app.php index 7180f1e..89f5f31 100644 --- a/config/app.php +++ b/config/app.php @@ -125,7 +125,7 @@ return [ ], 'sidebar' => [ - 'default' => env('DEFAULT_SIDEBAR', 'cpm-sidebar'), + 'default' => env('DEFAULT_SIDEBAR', 'sidebar'), 'other' => env('OTHER_SIDEBAR', 'sidebar'), ], ]; diff --git a/config/sidebar.php b/config/sidebar.php index eb7a83d..69d3759 100644 --- a/config/sidebar.php +++ b/config/sidebar.php @@ -74,16 +74,22 @@ return [ 'url' => 'admin/newsletter', 'can' => ['newsletter.index'], ], + + [ + 'text' => 'Vacancy Application', + 'url' => 'admin/vacancy', + 'can' => ['vacancy.index'], + ], ], ], - [ - 'text' => 'Offer Popup', - 'url' => 'admin/popup', - 'icon' => 'ri-gift-2-line', - 'module' => 'CCMS', - 'can' => ['popup.index'], - ], + // [ + // 'text' => 'Offer Popup', + // 'url' => 'admin/popup', + // 'icon' => 'ri-gift-2-line', + // 'module' => 'CCMS', + // 'can' => ['popup.index'], + // ], [ 'text' => 'Counter', @@ -159,20 +165,10 @@ return [ [ 'text' => 'Blog', + 'url' => 'admin/blog', 'icon' => 'ri-newspaper-line', 'module' => 'CCMS', - 'submenu' => [ - [ - 'url' => 'admin/category', - 'text' => 'Blog Category', - 'can' => ['category.index'], - ], - [ - 'url' => 'admin/blog', - 'text' => 'Blog', - 'can' => ['blog.index'], - ], - ], + 'can' => ['blog.index'], ], [ @@ -293,11 +289,11 @@ return [ 'module' => 'Document', 'can' => ['documents.index'], ], - [ - 'text' => 'Resume Builder', - 'url' => 'admin/resume', - 'icon' => 'ri-pages-line', - 'module' => 'CCMS', - 'can' => ['resume.index'], - ], + // [ + // 'text' => 'Resume Builder', + // 'url' => 'admin/resume', + // 'icon' => 'ri-pages-line', + // 'module' => 'CCMS', + // 'can' => ['resume.index'], + // ], ]; diff --git a/resources/views/client/raffles/layouts/partials/footer.blade.php b/resources/views/client/raffles/layouts/partials/footer.blade.php index ce1d912..189d0e3 100644 --- a/resources/views/client/raffles/layouts/partials/footer.blade.php +++ b/resources/views/client/raffles/layouts/partials/footer.blade.php @@ -35,11 +35,15 @@ @foreach ($menu->children as $subMenu)
  • + + {{ $subMenu->title }} +
  • @endforeach @endif diff --git a/resources/views/client/raffles/pages/career-detail-template.blade.php b/resources/views/client/raffles/pages/career-detail-template.blade.php index 6f01917..870f899 100644 --- a/resources/views/client/raffles/pages/career-detail-template.blade.php +++ b/resources/views/client/raffles/pages/career-detail-template.blade.php @@ -30,7 +30,7 @@
    - +

    {{ $career->job_title }}

    diff --git a/resources/views/client/raffles/pages/carrer-template.blade.php b/resources/views/client/raffles/pages/carrer-template.blade.php index 7e5c1d9..c277b99 100644 --- a/resources/views/client/raffles/pages/carrer-template.blade.php +++ b/resources/views/client/raffles/pages/carrer-template.blade.php @@ -19,7 +19,8 @@
    @foreach ($careers as $career)
    -

    {{ $career->job_description }}

    +

    + {{ \Illuminate\Support\Str::limit($career->job_description, 50) }}

    diff --git a/resources/views/client/raffles/pages/contact-template.blade.php b/resources/views/client/raffles/pages/contact-template.blade.php index 43c2844..c1a4ab4 100644 --- a/resources/views/client/raffles/pages/contact-template.blade.php +++ b/resources/views/client/raffles/pages/contact-template.blade.php @@ -68,10 +68,11 @@
    - +
    - +