feat: Implement vacancy management features including listing, creating, and editing vacancies

This commit is contained in:
2025-08-27 17:53:32 +05:45
parent 2ca99f9dbc
commit 086395a0a4
18 changed files with 180 additions and 106 deletions

View File

@@ -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',
]);
}
/**

View File

@@ -0,0 +1,8 @@
<div class="hstack flex-wrap gap-3">
<a href="javascript:void(0);" data-link="{{ route('vacancy.destroy', $id) }}" class="link-danger fs-15 remove-item"
data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-title="Delete">
<i class="ri-delete-bin-6-line"></i>
</a>
</div>

View File

@@ -0,0 +1,37 @@
@extends('layouts.app')
@section('content')
<div class="container-fluid">
<x-dashboard.breadcumb :title="$title" />
<div class="card">
<div class="card-header align-items-center d-flex">
<h5 class="card-title flex-grow-1 mb-0">{{ $title }}</h5>
</div>
<div class="card-body">
@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
<x-data-table-script :route="route('vacancy.index')" :reorder="null" :columns="$columns" />
</div>
</div>
</div>
@endsection

View File

@@ -0,0 +1,14 @@
@extends('layouts.app')
@section('content')
<div class="container-fluid">
<x-dashboard.breadcumb :title="$title" />
{{ html()->form('POST')->route('testimonial.store')->class(['needs-validation'])->attributes(['enctype' => 'multipart/form-data', 'novalidate'])->open() }}
@include('ccms::testimonial.partials._form')
{{ html()->form()->close() }}
</div>
@endsection

View File

@@ -0,0 +1,14 @@
@extends('layouts.app')
@section('content')
<div class="container-fluid">
<x-dashboard.breadcumb :title="$title" />
{{ html()->modelForm($testimonial, 'PUT')->route('testimonial.update', $testimonial->id)->class(['needs-validation'])->attributes(['novalidate'])->open() }}
@include('ccms::testimonial.partials._form')
{{ html()->form()->close() }}
</div>
@endsection

View File

@@ -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']);
});

View File

@@ -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'],
]);