Compare commits
4 Commits
e9c62209d4
...
hr
Author | SHA1 | Date | |
---|---|---|---|
bf44886663 | |||
2c2526ef72 | |||
9a50f296fe | |||
d1851922ec |
68
Modules/Admin/app/Http/Controllers/CalendarController.php
Normal file
68
Modules/Admin/app/Http/Controllers/CalendarController.php
Normal file
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Admin\Http\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
|
||||
class CalendarController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$data['title'] = 'Calendar';
|
||||
return view('admin::calendars.index', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
return view('admin::calendars.create');
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*/
|
||||
public function store(Request $request): RedirectResponse
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
return view('admin::calendars.show');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
return view('admin::calendars.edit');
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*/
|
||||
public function update(Request $request, $id): RedirectResponse
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
@ -34,7 +34,7 @@ class CompanyController extends Controller
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
$data['title'] = 'Create Companys';
|
||||
$data['title'] = 'Create Company';
|
||||
$data['editable'] = false;
|
||||
$data['companyTypeLists'] = $this->adminService->pluckCompanyTypes();
|
||||
return view('admin::companies.create', $data);
|
||||
|
@ -31,7 +31,7 @@ class ComplaintController extends Controller
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
$data['title'] = 'Create Complaints';
|
||||
$data['title'] = 'Create Complaint';
|
||||
$data['editable'] = false;
|
||||
return view('admin::complaints.create', $data);
|
||||
}
|
||||
@ -65,7 +65,7 @@ class ComplaintController extends Controller
|
||||
public function edit($id)
|
||||
{
|
||||
try {
|
||||
$data['title'] = 'Edit Complaints';
|
||||
$data['title'] = 'Edit Complaint';
|
||||
$data['editable'] = true;
|
||||
$data['complaint'] = $this->complaintRepository->getComplaintById($id);
|
||||
|
||||
|
109
Modules/Admin/app/Http/Controllers/EventController.php
Normal file
109
Modules/Admin/app/Http/Controllers/EventController.php
Normal file
@ -0,0 +1,109 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Admin\Http\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use Modules\Admin\Repositories\EventRepository;
|
||||
|
||||
class EventController extends Controller
|
||||
{
|
||||
private $eventRepository;
|
||||
|
||||
public function __construct(EventRepository $eventRepository)
|
||||
{
|
||||
$this->eventRepository = $eventRepository;
|
||||
}
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$data['title'] = 'Event Lists';
|
||||
$data['eventLists'] = $this->eventRepository->findAll();
|
||||
return view('admin::events.index', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
$data['title'] = 'Create Event';
|
||||
$data['editable'] = false;
|
||||
return view('admin::events.create', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*/
|
||||
public function store(Request $request): RedirectResponse
|
||||
{
|
||||
try {
|
||||
$this->eventRepository->create($request->all());
|
||||
toastr()->success('Event Created Successfully');
|
||||
|
||||
} catch (\Throwable $th) {
|
||||
toastr()->error($th->getMessage());
|
||||
}
|
||||
return redirect()->route('event.index');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
return view('admin::events.show');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
try {
|
||||
$data['title'] = 'Edit Event';
|
||||
$data['editable'] = true;
|
||||
$data['event'] = $this->eventRepository->getEventById($id);
|
||||
|
||||
} catch (\Throwable $th) {
|
||||
toastr()->error($th->getMessage());
|
||||
}
|
||||
|
||||
return view('admin::events.edit', $data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*/
|
||||
public function update(Request $request, $id): RedirectResponse
|
||||
{
|
||||
try {
|
||||
|
||||
$this->eventRepository->update($id, $request->all());
|
||||
toastr()->success('Event Updated Successfully');
|
||||
|
||||
} catch (\Throwable $th) {
|
||||
toastr()->error($th->getMessage());
|
||||
}
|
||||
return redirect()->route('event.index');
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
try {
|
||||
$this->eventRepository->delete($id);
|
||||
toastr()->success('Event Deleted Successfully');
|
||||
} catch (\Throwable $th) {
|
||||
toastr()->error($th->getMessage());
|
||||
}
|
||||
return redirect()->route('event.index');
|
||||
}
|
||||
}
|
109
Modules/Admin/app/Http/Controllers/HolidayController.php
Normal file
109
Modules/Admin/app/Http/Controllers/HolidayController.php
Normal file
@ -0,0 +1,109 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Admin\Http\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use Modules\Admin\Repositories\HolidayRepository;
|
||||
|
||||
class HolidayController extends Controller
|
||||
{
|
||||
private $holidayRepository;
|
||||
|
||||
public function __construct(HolidayRepository $holidayRepository)
|
||||
{
|
||||
$this->holidayRepository = $holidayRepository;
|
||||
}
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$data['title'] = 'Holiday Lists';
|
||||
$data['holidayLists'] = $this->holidayRepository->findAll();
|
||||
return view('admin::holidays.index', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
$data['title'] = 'Create Holiday';
|
||||
$data['editable'] = false;
|
||||
return view('admin::holidays.create', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*/
|
||||
public function store(Request $request): RedirectResponse
|
||||
{
|
||||
try {
|
||||
$this->holidayRepository->create($request->all());
|
||||
toastr()->success('Holiday Created Successfully');
|
||||
|
||||
} catch (\Throwable $th) {
|
||||
toastr()->error($th->getMessage());
|
||||
}
|
||||
return redirect()->route('holiday.index');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
return view('admin::holidays.show');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
try {
|
||||
$data['title'] = 'Edit Holiday';
|
||||
$data['editable'] = true;
|
||||
$data['holiday'] = $this->holidayRepository->getHolidayById($id);
|
||||
|
||||
} catch (\Throwable $th) {
|
||||
toastr()->error($th->getMessage());
|
||||
}
|
||||
|
||||
return view('admin::holidays.edit', $data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*/
|
||||
public function update(Request $request, $id): RedirectResponse
|
||||
{
|
||||
try {
|
||||
|
||||
$this->holidayRepository->update($id, $request->all());
|
||||
toastr()->success('Holiday Updated Successfully');
|
||||
|
||||
} catch (\Throwable $th) {
|
||||
toastr()->error($th->getMessage());
|
||||
}
|
||||
return redirect()->route('holiday.index');
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
try {
|
||||
$this->holidayRepository->delete($id);
|
||||
toastr()->success('Holiday Deleted Successfully');
|
||||
} catch (\Throwable $th) {
|
||||
toastr()->error($th->getMessage());
|
||||
}
|
||||
return redirect()->route('holiday.index');
|
||||
}
|
||||
}
|
@ -31,7 +31,7 @@ class TransferController extends Controller
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
$data['title'] = 'Create Transfers';
|
||||
$data['title'] = 'Create Transfer';
|
||||
$data['editable'] = false;
|
||||
return view('admin::transfers.create', $data);
|
||||
}
|
||||
@ -65,7 +65,7 @@ class TransferController extends Controller
|
||||
public function edit($id)
|
||||
{
|
||||
try {
|
||||
$data['title'] = 'Edit Transfers';
|
||||
$data['title'] = 'Edit Transfer';
|
||||
$data['editable'] = true;
|
||||
$data['transfer'] = $this->transferRepository->getTransferById($id);
|
||||
|
||||
|
@ -31,7 +31,7 @@ class WarningController extends Controller
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
$data['title'] = 'Create Warnings';
|
||||
$data['title'] = 'Create Warning';
|
||||
$data['editable'] = false;
|
||||
return view('admin::warnings.create', $data);
|
||||
}
|
||||
@ -65,7 +65,7 @@ class WarningController extends Controller
|
||||
public function edit($id)
|
||||
{
|
||||
try {
|
||||
$data['title'] = 'Edit Warnings';
|
||||
$data['title'] = 'Edit Warning';
|
||||
$data['editable'] = true;
|
||||
$data['warning'] = $this->warningRepository->getWarningById($id);
|
||||
|
||||
|
@ -19,6 +19,10 @@ class Company extends Model
|
||||
'title',
|
||||
'alias',
|
||||
'company_type_id',
|
||||
'address',
|
||||
'bank_name',
|
||||
'bank_acc_no',
|
||||
'bank_acc_branch',
|
||||
'status',
|
||||
'description',
|
||||
'remarks',
|
||||
|
33
Modules/Admin/app/Models/Event.php
Normal file
33
Modules/Admin/app/Models/Event.php
Normal file
@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Admin\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Modules\Admin\Database\factories\EventFactory;
|
||||
|
||||
class Event extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
|
||||
protected $table = 'tbl_events';
|
||||
protected $primaryKey = "event_id";
|
||||
|
||||
/**
|
||||
* The attributes that are mass assignable.
|
||||
*/
|
||||
protected $fillable = [
|
||||
'title',
|
||||
'alias',
|
||||
'type',
|
||||
'date',
|
||||
'start_time',
|
||||
'end_time',
|
||||
'location',
|
||||
'status',
|
||||
'description',
|
||||
'remarks',
|
||||
'createdBy',
|
||||
'updatedBy',
|
||||
];
|
||||
}
|
30
Modules/Admin/app/Models/Holiday.php
Normal file
30
Modules/Admin/app/Models/Holiday.php
Normal file
@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Admin\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Modules\Admin\Database\factories\HolidayFactory;
|
||||
|
||||
class Holiday extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
|
||||
protected $table = 'tbl_holidays';
|
||||
|
||||
protected $primaryKey = "holiday_id";
|
||||
|
||||
/**
|
||||
* The attributes that are mass assignable.
|
||||
*/
|
||||
protected $fillable = [
|
||||
'title',
|
||||
'alias',
|
||||
'date',
|
||||
'status',
|
||||
'description',
|
||||
'remarks',
|
||||
'createdBy',
|
||||
'updatedBy'
|
||||
];
|
||||
}
|
12
Modules/Admin/app/Repositories/EventInterface.php
Normal file
12
Modules/Admin/app/Repositories/EventInterface.php
Normal file
@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Admin\Repositories;
|
||||
|
||||
interface EventInterface
|
||||
{
|
||||
public function findAll();
|
||||
public function getEventById($eventId);
|
||||
public function delete($eventId);
|
||||
public function create(array $eventDetails);
|
||||
public function update($eventId, array $newDetails);
|
||||
}
|
35
Modules/Admin/app/Repositories/EventRepository.php
Normal file
35
Modules/Admin/app/Repositories/EventRepository.php
Normal file
@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Admin\Repositories;
|
||||
|
||||
use Modules\Admin\Models\Event;
|
||||
|
||||
|
||||
class EventRepository implements EventInterface
|
||||
{
|
||||
public function findAll()
|
||||
{
|
||||
return Event::get();
|
||||
}
|
||||
|
||||
public function getEventById($eventId)
|
||||
{
|
||||
return Event::findOrFail($eventId);
|
||||
}
|
||||
|
||||
public function delete($eventId)
|
||||
{
|
||||
Event::destroy($eventId);
|
||||
}
|
||||
|
||||
public function create(array $eventDetails)
|
||||
{
|
||||
return Event::create($eventDetails);
|
||||
}
|
||||
|
||||
public function update($eventId, array $newDetails)
|
||||
{
|
||||
return Event::where('event_id', $eventId)->update($newDetails);
|
||||
}
|
||||
|
||||
}
|
12
Modules/Admin/app/Repositories/HolidayInterface.php
Normal file
12
Modules/Admin/app/Repositories/HolidayInterface.php
Normal file
@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Admin\Repositories;
|
||||
|
||||
interface HolidayInterface
|
||||
{
|
||||
public function findAll();
|
||||
public function getHolidayById($holidayId);
|
||||
public function delete($holidayId);
|
||||
public function create(array $holidayDetails);
|
||||
public function update($holidayId, array $newDetails);
|
||||
}
|
35
Modules/Admin/app/Repositories/HolidayRepository.php
Normal file
35
Modules/Admin/app/Repositories/HolidayRepository.php
Normal file
@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Admin\Repositories;
|
||||
|
||||
use Modules\Admin\Models\Holiday;
|
||||
|
||||
|
||||
class HolidayRepository implements HolidayInterface
|
||||
{
|
||||
public function findAll()
|
||||
{
|
||||
return Holiday::get();
|
||||
}
|
||||
|
||||
public function getHolidayById($holidayId)
|
||||
{
|
||||
return Holiday::findOrFail($holidayId);
|
||||
}
|
||||
|
||||
public function delete($holidayId)
|
||||
{
|
||||
Holiday::destroy($holidayId);
|
||||
}
|
||||
|
||||
public function create(array $holidayDetails)
|
||||
{
|
||||
return Holiday::create($holidayDetails);
|
||||
}
|
||||
|
||||
public function update($holidayId, array $newDetails)
|
||||
{
|
||||
return Holiday::where('holiday_id', $holidayId)->update($newDetails);
|
||||
}
|
||||
|
||||
}
|
@ -18,6 +18,9 @@ return new class extends Migration {
|
||||
$table->integer('status')->nullable();
|
||||
$table->mediumText('description')->nullable();
|
||||
$table->mediumText('remarks')->nullable();
|
||||
$table->string('bank_name')->nullable();
|
||||
$table->string('bank_acc_no')->nullable();
|
||||
$table->string('bank_acc_branch')->nullable();
|
||||
$table->unsignedBigInteger('createdBy')->nullable();
|
||||
$table->unsignedBigInteger('updatedBy')->nullable();
|
||||
$table->timestamps();
|
||||
|
@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration {
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('tbl_events', function (Blueprint $table) {
|
||||
$table->unsignedTinyInteger('event_id')->autoIncrement();
|
||||
$table->string('title')->nullable();
|
||||
$table->string('alias')->nullable();
|
||||
$table->string('type')->nullable();
|
||||
$table->string('date')->nullable();
|
||||
$table->time('start_time')->nullable();
|
||||
$table->time('end_time')->nullable();
|
||||
$table->integer('status')->nullable();
|
||||
$table->mediumText('description')->nullable();
|
||||
$table->string('location')->nullable();
|
||||
$table->mediumText('remarks')->nullable();
|
||||
$table->unsignedBigInteger('createdBy')->nullable();
|
||||
$table->unsignedBigInteger('updatedBy')->nullable();
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('tbl_events');
|
||||
}
|
||||
};
|
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration {
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('tbl_holidays', function (Blueprint $table) {
|
||||
$table->unsignedTinyInteger('holiday_id')->autoIncrement();
|
||||
$table->string('title')->nullable();
|
||||
$table->string('alias')->nullable();
|
||||
$table->string('date')->nullable();
|
||||
$table->integer('status')->nullable();
|
||||
$table->mediumText('description')->nullable();
|
||||
$table->mediumText('remarks')->nullable();
|
||||
$table->unsignedBigInteger('createdBy')->nullable();
|
||||
$table->unsignedBigInteger('updatedBy')->nullable();
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('tbl_holidays');
|
||||
}
|
||||
};
|
224
Modules/Admin/resources/views/calendars/index.blade.php
Normal file
224
Modules/Admin/resources/views/calendars/index.blade.php
Normal file
@ -0,0 +1,224 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="row">
|
||||
<div class="col-xl-3">
|
||||
<div class="card card-h-100">
|
||||
<div class="card-body">
|
||||
<button class="btn btn-primary w-100" id="btn-new-event"><i class="mdi mdi-plus"></i> Create New
|
||||
Event</button>
|
||||
|
||||
<div id="external-events">
|
||||
<br>
|
||||
<p class="text-muted">Drag and drop your event or click in the calendar</p>
|
||||
<div class="external-event fc-event bg-success-subtle text-success" data-class="bg-success-subtle">
|
||||
<i class="mdi mdi-checkbox-blank-circle me-2"></i>New Event Planning
|
||||
</div>
|
||||
<div class="external-event fc-event bg-info-subtle text-info" data-class="bg-info-subtle">
|
||||
<i class="mdi mdi-checkbox-blank-circle me-2"></i>Meeting
|
||||
</div>
|
||||
<div class="external-event fc-event bg-warning-subtle text-warning" data-class="bg-warning-subtle">
|
||||
<i class="mdi mdi-checkbox-blank-circle me-2"></i>Generating Reports
|
||||
</div>
|
||||
<div class="external-event fc-event bg-danger-subtle text-danger" data-class="bg-danger-subtle">
|
||||
<i class="mdi mdi-checkbox-blank-circle me-2"></i>Create New theme
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<h5 class="mb-1">Upcoming Events</h5>
|
||||
<p class="text-muted">Don't miss scheduled events</p>
|
||||
<div class="me-n1 mb-3 pe-2" data-simplebar style="height: 400px">
|
||||
<div id="upcoming-event-list"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body bg-info-subtle">
|
||||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<i data-feather="calendar" class="text-info icon-dual-info"></i>
|
||||
</div>
|
||||
<div class="flex-grow-1 ms-3">
|
||||
<h6 class="fs-15">Welcome to your Calendar!</h6>
|
||||
<p class="text-muted mb-0">Event that applications book will appear here. Click on an event to see
|
||||
the details and manage applicants event.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--end card-->
|
||||
</div> <!-- end col-->
|
||||
|
||||
<div class="col-xl-9">
|
||||
<div class="card card-h-100">
|
||||
<div class="card-body">
|
||||
<div id="calendar"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- end col -->
|
||||
</div>
|
||||
<!--end row-->
|
||||
|
||||
<div style='clear:both'></div>
|
||||
|
||||
<!-- Add New Event MODAL -->
|
||||
<div class="modal fade" id="event-modal" tabindex="-1">
|
||||
<div class="modal-dialog modal-dialog-centered">
|
||||
<div class="modal-content border-0">
|
||||
<div class="modal-header bg-info-subtle p-3">
|
||||
<h5 class="modal-title" id="modal-title">Event</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true"></button>
|
||||
</div>
|
||||
<div class="modal-body p-4">
|
||||
<form class="needs-validation" name="event-form" id="form-event" novalidate>
|
||||
<div class="text-end">
|
||||
<a href="#" class="btn btn-sm btn-soft-primary" id="edit-event-btn" data-id="edit-event"
|
||||
onclick="editEvent(this)" role="button">Edit</a>
|
||||
</div>
|
||||
<div class="event-details">
|
||||
<div class="d-flex mb-2">
|
||||
<div class="flex-grow-1 d-flex align-items-center">
|
||||
<div class="me-3 flex-shrink-0">
|
||||
<i class="ri-calendar-event-line text-muted fs-16"></i>
|
||||
</div>
|
||||
<div class="flex-grow-1">
|
||||
<h6 class="d-block fw-semibold mb-0" id="event-start-date-tag"></h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex align-items-center mb-2">
|
||||
<div class="me-3 flex-shrink-0">
|
||||
<i class="ri-time-line text-muted fs-16"></i>
|
||||
</div>
|
||||
<div class="flex-grow-1">
|
||||
<h6 class="d-block fw-semibold mb-0"><span id="event-timepicker1-tag"></span> - <span
|
||||
id="event-timepicker2-tag"></span></h6>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex align-items-center mb-2">
|
||||
<div class="me-3 flex-shrink-0">
|
||||
<i class="ri-map-pin-line text-muted fs-16"></i>
|
||||
</div>
|
||||
<div class="flex-grow-1">
|
||||
<h6 class="d-block fw-semibold mb-0"> <span id="event-location-tag"></span></h6>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex mb-3">
|
||||
<div class="me-3 flex-shrink-0">
|
||||
<i class="ri-discuss-line text-muted fs-16"></i>
|
||||
</div>
|
||||
<div class="flex-grow-1">
|
||||
<p class="d-block text-muted mb-0" id="event-description-tag"></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row event-form">
|
||||
<div class="col-12">
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Type</label>
|
||||
<select class="form-select d-none" name="category" id="event-category" required>
|
||||
<option value="bg-danger-subtle">Danger</option>
|
||||
<option value="bg-success-subtle">Success</option>
|
||||
<option value="bg-primary-subtle">Primary</option>
|
||||
<option value="bg-info-subtle">Info</option>
|
||||
<option value="bg-dark-subtle">Dark</option>
|
||||
<option value="bg-warning-subtle">Warning</option>
|
||||
</select>
|
||||
<div class="invalid-feedback">Please select a valid event category</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--end col-->
|
||||
<div class="col-12">
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Event Name</label>
|
||||
<input class="form-control d-none" placeholder="Enter event name" type="text"
|
||||
name="title" id="event-title" required value="" />
|
||||
<div class="invalid-feedback">Please provide a valid event name</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--end col-->
|
||||
<div class="col-12">
|
||||
<div class="mb-3">
|
||||
<label>Event Date</label>
|
||||
<div class="input-group d-none">
|
||||
<input type="text" id="event-start-date" class="form-control flatpickr flatpickr-input"
|
||||
placeholder="Select date" readonly required>
|
||||
<span class="input-group-text"><i class="ri-calendar-event-line"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--end col-->
|
||||
<div class="col-12" id="event-time">
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Start Time</label>
|
||||
<div class="input-group d-none">
|
||||
<input id="timepicker1" type="text" class="form-control flatpickr flatpickr-input"
|
||||
placeholder="Select start time" readonly>
|
||||
<span class="input-group-text"><i class="ri-time-line"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="mb-3">
|
||||
<label class="form-label">End Time</label>
|
||||
<div class="input-group d-none">
|
||||
<input id="timepicker2" type="text" class="form-control flatpickr flatpickr-input"
|
||||
placeholder="Select end time" readonly>
|
||||
<span class="input-group-text"><i class="ri-time-line"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--end col-->
|
||||
<div class="col-12">
|
||||
<div class="mb-3">
|
||||
<label for="event-location">Location</label>
|
||||
<div>
|
||||
<input type="text" class="form-control d-none" name="event-location"
|
||||
id="event-location" placeholder="Event location">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--end col-->
|
||||
<input type="hidden" id="eventid" name="eventid" value="" />
|
||||
<div class="col-12">
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Description</label>
|
||||
<textarea class="form-control d-none" id="event-description" placeholder="Enter a description" rows="3"
|
||||
spellcheck="false"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<!--end col-->
|
||||
</div>
|
||||
<!--end row-->
|
||||
<div class="hstack justify-content-end gap-2">
|
||||
<button type="button" class="btn btn-soft-danger" id="btn-delete-event"><i
|
||||
class="ri-close-line align-bottom"></i> Delete</button>
|
||||
<button type="submit" class="btn btn-success" id="btn-save-event">Add Event</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div> <!-- end modal-content-->
|
||||
</div> <!-- end modal dialog-->
|
||||
</div> <!-- end modal-->
|
||||
<!-- end modal-->
|
||||
</div>
|
||||
</div> <!-- end row-->
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
23
Modules/Admin/resources/views/events/create.blade.php
Normal file
23
Modules/Admin/resources/views/events/create.blade.php
Normal file
@ -0,0 +1,23 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
<div class='card'>
|
||||
<div class='card-body'>
|
||||
|
||||
{{ html()->form('POST')->route('event.store')->class(['needs-validation'])->attributes(['novalidate'])->open() }}
|
||||
|
||||
@include('admin::partials.events.action')
|
||||
|
||||
{{ html()->form()->close() }}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
23
Modules/Admin/resources/views/events/edit.blade.php
Normal file
23
Modules/Admin/resources/views/events/edit.blade.php
Normal file
@ -0,0 +1,23 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
<div class='card'>
|
||||
<div class='card-body'>
|
||||
|
||||
{{ html()->modelForm($event, 'PUT')->route('event.update', $event->event_id)->class(['needs-validation'])->attributes(['novalidate'])->open() }}
|
||||
|
||||
@include('admin::partials.events.action')
|
||||
|
||||
{{ html()->form()->close() }}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
76
Modules/Admin/resources/views/events/index.blade.php
Normal file
76
Modules/Admin/resources/views/events/index.blade.php
Normal file
@ -0,0 +1,76 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page 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 class="flex-shrink-0">
|
||||
<a href="{{ route('event.create') }}" class="btn btn-success waves-effect waves-light"><i
|
||||
class="ri-add-fill me-1 align-bottom"></i> Create Event</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table id="buttons-datatables" class="display table-sm table-bordered table">
|
||||
<thead class="table-light">
|
||||
<tr>
|
||||
<th class="tb-col"><span class="overline-title">S.N</span></th>
|
||||
<th class="tb-col"><span class="overline-title">Type</span></th>
|
||||
<th class="tb-col"><span class="overline-title">Title</span></th>
|
||||
<th class="tb-col"><span class="overline-title">Date</span></th>
|
||||
<th class="tb-col"><span class="overline-title">Start Time</span></th>
|
||||
<th class="tb-col"><span class="overline-title">Location</span></th>
|
||||
<th class="tb-col" data-sortable="false"><span class="overline-title">Action</span>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
@foreach ($eventLists as $index => $item)
|
||||
<tr>
|
||||
<td class="tb-col">{{ $index + 1 }}</td>
|
||||
<td class="tb-col">{{ $item->type }}</td>
|
||||
<td class="tb-col">{{ $item->title }}</td>
|
||||
<td class="tb-col">{{ $item->date }}</td>
|
||||
<td class="tb-col">{{ $item->start_time }}</td>
|
||||
<td class="tb-col">{{ $item->location }}</td>
|
||||
<td class="tb-col">
|
||||
<div class="dropdown d-inline-block">
|
||||
<button class="btn btn-soft-secondary btn-sm dropdown" type="button" data-bs-toggle="dropdown"
|
||||
aria-expanded="false">
|
||||
<i class="ri-more-fill align-middle"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu dropdown-menu-end">
|
||||
<li><a href="{{ route('event.show', [$item->event_id]) }}" class="dropdown-item"><i
|
||||
class="ri-eye-fill text-muted me-2 align-bottom"></i> View</a>
|
||||
</li>
|
||||
|
||||
<li><a href="{{ route('event.edit', [$item->event_id]) }}" class="dropdown-item edit-item-btn"><i
|
||||
class="ri-pencil-fill text-muted me-2 align-bottom"></i>
|
||||
Edit</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="{{ route('event.destroy', [$item->event_id]) }}" class="dropdown-item remove-item-btn"
|
||||
onclick="confirmDelete(this.href)">
|
||||
<i class="ri-delete-bin-fill text-muted me-2 align-bottom"></i> Delete
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
48
Modules/Admin/resources/views/events/show.blade.php
Normal file
48
Modules/Admin/resources/views/events/show.blade.php
Normal file
@ -0,0 +1,48 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
<div class='card'>
|
||||
<div class="card-header align-items-center d-flex">
|
||||
<h5 class="card-title flex-grow-1 mb-0">View Detail</h5>
|
||||
<div class="flex-shrink-0">
|
||||
<a href="{{ route('designations.index') }}" class="btn btn-success waves-effect waves-light"><i
|
||||
class="ri-add-fill me-1 align-bottom"></i> Back to List</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='card-body'>
|
||||
<p><b>Title : </b> <span>{{ $data->title }}</span></p>
|
||||
<p><b>Alias : </b> <span>{{ $data->alias }}</span></p>
|
||||
<p><b>Status : </b> <span
|
||||
class="{{ $data->status == 1 ? 'text-success' : 'text-danger' }}">{{ $data->status == 1 ? 'Active' : 'Inactive' }}</span>
|
||||
</p>
|
||||
<p><b>Remarks : </b> <span>{{ $data->remarks }}</span></p>
|
||||
<p><b>Display Order : </b> <span>{{ $data->display_order }}</span></p>
|
||||
<p><b>Createdby : </b> <span>{{ $data->createdby }}</span></p>
|
||||
<p><b>Updatedby : </b> <span>{{ $data->updatedby }}</span></p>
|
||||
<p><b>Job Description : </b> <span>{{ $data->job_description }}</span></p>
|
||||
<p><b>Departments Id : </b> <span>{{ $data->departments_id }}</span></p>
|
||||
<div class="d-flex justify-content-between">
|
||||
<div>
|
||||
<p><b>Created On :</b> <span>{{ $data->created_at }}</span></p>
|
||||
<p><b>Created By :</b> <span>{{ $data->createdBy }}</span></p>
|
||||
</div>
|
||||
<div>
|
||||
<p><b>Updated On :</b> <span>{{ $data->updated_at }}</span></p>
|
||||
<p><b>Updated By :</b> <span>{{ $data->updatedBy }}</span></p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endSection
|
23
Modules/Admin/resources/views/holidays/create.blade.php
Normal file
23
Modules/Admin/resources/views/holidays/create.blade.php
Normal file
@ -0,0 +1,23 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
<div class='card'>
|
||||
<div class='card-body'>
|
||||
|
||||
{{ html()->form('POST')->route('holiday.store')->class(['needs-validation'])->attributes(['novalidate'])->open() }}
|
||||
|
||||
@include('admin::partials.holidays.action')
|
||||
|
||||
{{ html()->form()->close() }}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
23
Modules/Admin/resources/views/holidays/edit.blade.php
Normal file
23
Modules/Admin/resources/views/holidays/edit.blade.php
Normal file
@ -0,0 +1,23 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
<div class='card'>
|
||||
<div class='card-body'>
|
||||
|
||||
{{ html()->modelForm($holiday, 'PUT')->route('holiday.update', $holiday->holiday_id)->class(['needs-validation'])->attributes(['novalidate'])->open() }}
|
||||
|
||||
@include('admin::partials.holidays.action')
|
||||
|
||||
{{ html()->form()->close() }}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
71
Modules/Admin/resources/views/holidays/index.blade.php
Normal file
71
Modules/Admin/resources/views/holidays/index.blade.php
Normal file
@ -0,0 +1,71 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page 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 class="flex-shrink-0">
|
||||
<a href="{{ route('holiday.create') }}" class="btn btn-success waves-effect waves-light"><i
|
||||
class="ri-add-fill me-1 align-bottom"></i> Create Holiday</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table id="buttons-datatables" class="display table-sm table-bordered table">
|
||||
<thead class="table-light">
|
||||
<tr>
|
||||
<th class="tb-col"><span class="overline-title">S.N</span></th>
|
||||
<th class="tb-col"><span class="overline-title">Type</span></th>
|
||||
<th class="tb-col"><span class="overline-title">Title</span></th>
|
||||
<th class="tb-col"><span class="overline-title">Date</span></th>
|
||||
<th class="tb-col" data-sortable="false"><span class="overline-title">Action</span>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
@foreach ($holidayLists as $index => $item)
|
||||
<tr>
|
||||
<td class="tb-col">{{ $index + 1 }}</td>
|
||||
<td class="tb-col">{{ $item->title }}</td>
|
||||
<td class="tb-col">{{ $item->date }}</td>
|
||||
<td class="tb-col">
|
||||
<div class="dropdown d-inline-block">
|
||||
<button class="btn btn-soft-secondary btn-sm dropdown" type="button" data-bs-toggle="dropdown"
|
||||
aria-expanded="false">
|
||||
<i class="ri-more-fill align-middle"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu dropdown-menu-end">
|
||||
<li><a href="{{ route('holiday.show', [$item->holiday_id]) }}" class="dropdown-item"><i
|
||||
class="ri-eye-fill text-muted me-2 align-bottom"></i> View</a>
|
||||
</li>
|
||||
|
||||
<li><a href="{{ route('holiday.edit', [$item->holiday_id]) }}" class="dropdown-item edit-item-btn"><i
|
||||
class="ri-pencil-fill text-muted me-2 align-bottom"></i>
|
||||
Edit</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="{{ route('holiday.destroy', [$item->holiday_id]) }}" class="dropdown-item remove-item-btn"
|
||||
onclick="confirmDelete(this.href)">
|
||||
<i class="ri-delete-bin-fill text-muted me-2 align-bottom"></i> Delete
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
48
Modules/Admin/resources/views/holidays/show.blade.php
Normal file
48
Modules/Admin/resources/views/holidays/show.blade.php
Normal file
@ -0,0 +1,48 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
<div class='card'>
|
||||
<div class="card-header align-items-center d-flex">
|
||||
<h5 class="card-title flex-grow-1 mb-0">View Detail</h5>
|
||||
<div class="flex-shrink-0">
|
||||
<a href="{{ route('designations.index') }}" class="btn btn-success waves-effect waves-light"><i
|
||||
class="ri-add-fill me-1 align-bottom"></i> Back to List</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='card-body'>
|
||||
<p><b>Title : </b> <span>{{ $data->title }}</span></p>
|
||||
<p><b>Alias : </b> <span>{{ $data->alias }}</span></p>
|
||||
<p><b>Status : </b> <span
|
||||
class="{{ $data->status == 1 ? 'text-success' : 'text-danger' }}">{{ $data->status == 1 ? 'Active' : 'Inactive' }}</span>
|
||||
</p>
|
||||
<p><b>Remarks : </b> <span>{{ $data->remarks }}</span></p>
|
||||
<p><b>Display Order : </b> <span>{{ $data->display_order }}</span></p>
|
||||
<p><b>Createdby : </b> <span>{{ $data->createdby }}</span></p>
|
||||
<p><b>Updatedby : </b> <span>{{ $data->updatedby }}</span></p>
|
||||
<p><b>Job Description : </b> <span>{{ $data->job_description }}</span></p>
|
||||
<p><b>Departments Id : </b> <span>{{ $data->departments_id }}</span></p>
|
||||
<div class="d-flex justify-content-between">
|
||||
<div>
|
||||
<p><b>Created On :</b> <span>{{ $data->created_at }}</span></p>
|
||||
<p><b>Created By :</b> <span>{{ $data->createdBy }}</span></p>
|
||||
</div>
|
||||
<div>
|
||||
<p><b>Updated On :</b> <span>{{ $data->updated_at }}</span></p>
|
||||
<p><b>Updated By :</b> <span>{{ $data->updatedBy }}</span></p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endSection
|
@ -1,8 +1,8 @@
|
||||
<div class="row gy-3">
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Title')->class('form-label') }}
|
||||
{{ html()->text('title')->class('form-control')->placeholder('Enter Title') }}
|
||||
{{ html()->label('Name')->class('form-label') }}
|
||||
{{ html()->text('title')->class('form-control')->placeholder('Company Name') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
@ -10,17 +10,38 @@
|
||||
{{ html()->select('company_type_id', $companyTypeLists)->class('form-select')->placeholder('Select Company Type') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Address')->class('form-label') }}
|
||||
{{ html()->text('address')->class('form-control')->placeholder('Company Full Address') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 col-md-12">
|
||||
{{ html()->label('Description')->class('form-label') }}
|
||||
{{ html()->textarea('description')->class('form-control')->attributes(['rows' => 5]) }}
|
||||
{{ html()->textarea('description')->class('form-control')->placeholder('Company Description')->attributes(['rows' => 3]) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 col-md-12">
|
||||
{{ html()->label('Remarks')->class('form-label') }}
|
||||
{{ html()->textarea('remarks')->class('form-control')->attributes(['rows' => 5]) }}
|
||||
<div class="row">
|
||||
<div class="col-md-12 py-4">
|
||||
<h5 class="text-center">Bank Details</h5>
|
||||
<div class="border-dash border"></div>
|
||||
</div>
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Name')->class('form-label') }}
|
||||
{{ html()->text('bank_name')->class('form-control')->placeholder('Bank Name') }}
|
||||
</div>
|
||||
|
||||
<div class="text-end">
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Account Number')->class('form-label') }}
|
||||
{{ html()->text('bank_acc_no')->class('form-control')->placeholder('Bank Account Number') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Branch')->class('form-label') }}
|
||||
{{ html()->text('bank_acc_branch')->class('form-control')->placeholder('Branch Name') }}
|
||||
</div>
|
||||
|
||||
<div class="text-end mt-4">
|
||||
{{ html()->button($editable ? 'Update' : 'Add Company', 'submit')->class('btn btn-success') }}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -0,0 +1,50 @@
|
||||
<div class="row gy-3">
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Event Type')->class('form-label') }}
|
||||
{{ html()->select('type')->class('form-select')->placeholder('Select Event Type') }}
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Title')->class('form-label') }}
|
||||
{{ html()->text('title')->class('form-control')->placeholder('Event Title') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Date')->class('form-label') }}
|
||||
<div class="input-group">
|
||||
{{ html()->text('date')->class('form-control flatpickr flatpickr-input')->id('event-start-date')->placeholder('Select Event Date') }}
|
||||
<span class="input-group-text"><i class="ri-calendar-event-line"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Start Time')->class('form-label') }}
|
||||
{{ html()->time('start_time')->class('form-control')->placeholder('Event Start Time') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('End Time')->class('form-label') }}
|
||||
{{ html()->time('end_time')->class('form-control')->placeholder('Event End Time') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Location')->class('form-label') }}
|
||||
{{ html()->text('location')->class('form-control')->placeholder('Event Location') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 col-md-12">
|
||||
{{ html()->label('Description')->class('form-label') }}
|
||||
{{ html()->textarea('description')->class('form-control')->placeholder('Event Description')->attributes(['rows' => 3]) }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 col-md-12">
|
||||
{{ html()->label('Remarks')->class('form-label') }}
|
||||
{{ html()->textarea('remarks')->class('form-control')->attributes(['rows' => 3]) }}
|
||||
</div>
|
||||
|
||||
<div class="text-end">
|
||||
{{ html()->button($editable ? 'Update' : 'Add Event', 'submit')->class('btn btn-success') }}
|
||||
</div>
|
||||
</div>
|
@ -0,0 +1,29 @@
|
||||
<div class="row gy-3">
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Title')->class('form-label') }}
|
||||
{{ html()->text('title')->class('form-control')->placeholder('Holiday Title') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Date')->class('form-label') }}
|
||||
<div class="input-group">
|
||||
{{ html()->text('date')->class('form-control flatpickr flatpickr-input')->id('event-start-date')->placeholder('Select Holiday Date') }}
|
||||
<span class="input-group-text"><i class="ri-calendar-event-line"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 col-md-12">
|
||||
{{ html()->label('Description')->class('form-label') }}
|
||||
{{ html()->textarea('description')->class('form-control')->placeholder('Holiday Description')->attributes(['rows' => 3]) }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 col-md-12">
|
||||
{{ html()->label('Remarks')->class('form-label') }}
|
||||
{{ html()->textarea('remarks')->class('form-control')->attributes(['rows' => 3]) }}
|
||||
</div>
|
||||
|
||||
<div class="text-end">
|
||||
{{ html()->button($editable ? 'Update' : 'Add Holiday', 'submit')->class('btn btn-success') }}
|
||||
</div>
|
||||
</div>
|
@ -3,9 +3,12 @@
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Modules\Admin\Http\Controllers\AdminController;
|
||||
use Modules\Admin\Http\Controllers\AppreciationController;
|
||||
use Modules\Admin\Http\Controllers\CalendarController;
|
||||
use Modules\Admin\Http\Controllers\CompanyController;
|
||||
use Modules\Admin\Http\Controllers\CompanyTypeController;
|
||||
use Modules\Admin\Http\Controllers\ComplaintController;
|
||||
use Modules\Admin\Http\Controllers\EventController;
|
||||
use Modules\Admin\Http\Controllers\HolidayController;
|
||||
use Modules\Admin\Http\Controllers\PromotionDemotionController;
|
||||
use Modules\Admin\Http\Controllers\ResignationController;
|
||||
use Modules\Admin\Http\Controllers\TransferController;
|
||||
@ -32,6 +35,9 @@ Route::group([], function () {
|
||||
Route::resource('warning', WarningController::class)->names('warning');
|
||||
Route::resource('company', CompanyController::class)->names('company');
|
||||
Route::resource('company-type', CompanyTypeController::class)->names('companyType');
|
||||
Route::resource('event', EventController::class)->names('event');
|
||||
Route::resource('holiday', HolidayController::class)->names('holiday');
|
||||
Route::resource('calendar', CalendarController::class)->names('calendar');
|
||||
});
|
||||
|
||||
require __DIR__ . '/route.countries.php';
|
||||
|
@ -6,15 +6,24 @@ use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use Modules\Attendance\Repositories\AttendanceRepository;
|
||||
|
||||
class AttendanceController extends Controller
|
||||
{
|
||||
private $attendanceRepository;
|
||||
|
||||
public function __construct(AttendanceRepository $attendanceRepository)
|
||||
{
|
||||
$this->attendanceRepository = $attendanceRepository;
|
||||
}
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
return view('attendance::index');
|
||||
$data['title'] = 'Attendance Lists';
|
||||
$data['attendanceLists'] = $this->attendanceRepository->findAll();
|
||||
return view('attendance::attendances.index', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -22,7 +31,9 @@ class AttendanceController extends Controller
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
return view('attendance::create');
|
||||
$data['title'] = 'Create Attendance';
|
||||
$data['editable'] = false;
|
||||
return view('attendance::attendances.create', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -30,7 +41,17 @@ class AttendanceController extends Controller
|
||||
*/
|
||||
public function store(Request $request): RedirectResponse
|
||||
{
|
||||
//
|
||||
$request->merge([
|
||||
'date' => $request->date ? $request->date : now()->format('Y-m-d'),
|
||||
]);
|
||||
|
||||
try {
|
||||
$this->attendanceRepository->create($request->all());
|
||||
toastr()->success('Attendance Created Successfully');
|
||||
} catch (\Throwable $th) {
|
||||
toastr()->error($th->getMessage());
|
||||
}
|
||||
return redirect()->route('attendance.index');
|
||||
}
|
||||
|
||||
/**
|
||||
@ -38,7 +59,7 @@ class AttendanceController extends Controller
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
return view('attendance::show');
|
||||
return view('attendance::attendances.show');
|
||||
}
|
||||
|
||||
/**
|
||||
@ -46,7 +67,17 @@ class AttendanceController extends Controller
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
return view('attendance::edit');
|
||||
try {
|
||||
$data['title'] = 'Edit Attendance';
|
||||
$data['editable'] = true;
|
||||
$data['attendance'] = $this->attendanceRepository->getAttendanceById($id);
|
||||
|
||||
} catch (\Throwable $th) {
|
||||
toastr()->error($th->getMessage());
|
||||
}
|
||||
|
||||
return view('attendance::attendances.edit', $data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -54,7 +85,15 @@ class AttendanceController extends Controller
|
||||
*/
|
||||
public function update(Request $request, $id): RedirectResponse
|
||||
{
|
||||
//
|
||||
try {
|
||||
|
||||
$this->attendanceRepository->update($id, $request->all());
|
||||
toastr()->success('Attendance Updated Successfully');
|
||||
|
||||
} catch (\Throwable $th) {
|
||||
toastr()->error($th->getMessage());
|
||||
}
|
||||
return redirect()->route('attendance.index');
|
||||
}
|
||||
|
||||
/**
|
||||
@ -62,6 +101,12 @@ class AttendanceController extends Controller
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
try {
|
||||
$this->attendanceRepository->delete($id);
|
||||
toastr()->success('Attendance Deleted Successfully');
|
||||
} catch (\Throwable $th) {
|
||||
toastr()->error($th->getMessage());
|
||||
}
|
||||
return redirect()->route('attendance.index');
|
||||
}
|
||||
}
|
||||
|
30
Modules/Attendance/app/Models/Attendance.php
Normal file
30
Modules/Attendance/app/Models/Attendance.php
Normal file
@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Attendance\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Modules\Attendance\Database\factories\AttendanceFactory;
|
||||
|
||||
class Attendance extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
|
||||
protected $table = 'tbl_attendances';
|
||||
protected $primaryKey = 'attendance_id';
|
||||
/**
|
||||
* The attributes that are mass assignable.
|
||||
*/
|
||||
protected $fillable = [
|
||||
'clock_in_time',
|
||||
'clock_out_time',
|
||||
'work_from_type',
|
||||
'date',
|
||||
'status',
|
||||
'total_hours',
|
||||
'description',
|
||||
'remarks',
|
||||
'createdBy',
|
||||
'updatedBy',
|
||||
];
|
||||
}
|
12
Modules/Attendance/app/Repositories/AttendanceInterface.php
Normal file
12
Modules/Attendance/app/Repositories/AttendanceInterface.php
Normal file
@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Attendance\Repositories;
|
||||
|
||||
interface AttendanceInterface
|
||||
{
|
||||
public function findAll();
|
||||
public function getAttendanceById($attendanceId);
|
||||
public function delete($attendanceId);
|
||||
public function create(array $attendanceDetails);
|
||||
public function update($attendanceId, array $newDetails);
|
||||
}
|
35
Modules/Attendance/app/Repositories/AttendanceRepository.php
Normal file
35
Modules/Attendance/app/Repositories/AttendanceRepository.php
Normal file
@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Attendance\Repositories;
|
||||
|
||||
use Modules\Attendance\Models\Attendance;
|
||||
|
||||
|
||||
class AttendanceRepository implements AttendanceInterface
|
||||
{
|
||||
public function findAll()
|
||||
{
|
||||
return Attendance::get();
|
||||
}
|
||||
|
||||
public function getAttendanceById($attendanceId)
|
||||
{
|
||||
return Attendance::findOrFail($attendanceId);
|
||||
}
|
||||
|
||||
public function delete($attendanceId)
|
||||
{
|
||||
Attendance::destroy($attendanceId);
|
||||
}
|
||||
|
||||
public function create(array $attendanceDetails)
|
||||
{
|
||||
return Attendance::create($attendanceDetails);
|
||||
}
|
||||
|
||||
public function update($attendanceId, array $newDetails)
|
||||
{
|
||||
return Attendance::where('attendance_id', $attendanceId)->update($newDetails);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration {
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('tbl_attendances', function (Blueprint $table) {
|
||||
$table->unsignedTinyInteger('attendance_id')->autoIncrement();
|
||||
$table->unsignedBigInteger('employee_id')->nullable();
|
||||
$table->time('clock_in_time')->nullable();
|
||||
$table->time('clock_out_time')->nullable();
|
||||
$table->string('work_from_type')->nullable();
|
||||
$table->date('date')->nullable();
|
||||
$table->integer('status')->nullable();
|
||||
$table->integer('total_hours')->nullable();
|
||||
$table->mediumText('description')->nullable();
|
||||
$table->mediumText('remarks')->nullable();
|
||||
$table->unsignedBigInteger('createdBy')->nullable();
|
||||
$table->unsignedBigInteger('updatedBy')->nullable();
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('tbl_attendances');
|
||||
}
|
||||
};
|
@ -0,0 +1,23 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
<div class='card'>
|
||||
<div class='card-body'>
|
||||
|
||||
{{ html()->form('POST')->route('attendance.store')->class(['needs-validation'])->attributes(['novalidate'])->open() }}
|
||||
|
||||
@include('attendance::partials.attendances.action')
|
||||
|
||||
{{ html()->form()->close() }}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
@ -0,0 +1,23 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page title -->
|
||||
|
||||
<div class='card'>
|
||||
<div class='card-body'>
|
||||
|
||||
{{ html()->modelForm($attendance, 'PUT')->route('attendance.update', $attendance->attendance_id)->class(['needs-validation'])->attributes(['novalidate'])->open() }}
|
||||
|
||||
@include('attendance::partials.attendances.action')
|
||||
|
||||
{{ html()->form()->close() }}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
238
Modules/Attendance/resources/views/attendances/index.blade.php
Normal file
238
Modules/Attendance/resources/views/attendances/index.blade.php
Normal file
@ -0,0 +1,238 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="page-content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- start page title -->
|
||||
@include('layouts.partials.breadcrumb', ['title' => $title])
|
||||
|
||||
<!-- end page 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 class="flex-shrink-0">
|
||||
<a href="{{ route('attendance.create') }}" class="btn btn-success waves-effect waves-light"><i
|
||||
class="ri-add-fill me-1 align-bottom"></i>Mark Attendance</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="table-responsive">
|
||||
<table class="dataTable table-bordered table-hover mt-3 table" id="example">
|
||||
<thead class="thead-light">
|
||||
<tr>
|
||||
<th class="px-2" style="vertical-align: middle;">Employee</th>
|
||||
<th class="f-11 pl-1 pr-2">1
|
||||
<br>
|
||||
<span class="text-dark-grey f-10">
|
||||
Mon
|
||||
</span>
|
||||
</th>
|
||||
<th class="f-11 pl-1 pr-2">2
|
||||
<br>
|
||||
<span class="text-dark-grey f-10">
|
||||
Tue
|
||||
</span>
|
||||
</th>
|
||||
<th class="f-11 pl-1 pr-2">3
|
||||
<br>
|
||||
<span class="text-dark-grey f-10">
|
||||
Wed
|
||||
</span>
|
||||
</th>
|
||||
<th class="f-11 pl-1 pr-2">4
|
||||
<br>
|
||||
<span class="text-dark-grey f-10">
|
||||
Thu
|
||||
</span>
|
||||
</th>
|
||||
<th class="f-11 pl-1 pr-2">5
|
||||
<br>
|
||||
<span class="text-dark-grey f-10">
|
||||
Fri
|
||||
</span>
|
||||
</th>
|
||||
<th class="f-11 pl-1 pr-2">6
|
||||
<br>
|
||||
<span class="text-dark-grey f-10">
|
||||
Sat
|
||||
</span>
|
||||
</th>
|
||||
<th class="f-11 pl-1 pr-2">7
|
||||
<br>
|
||||
<span class="text-dark-grey f-10">
|
||||
Sun
|
||||
</span>
|
||||
</th>
|
||||
<th class="f-11 pl-1 pr-2">8
|
||||
<br>
|
||||
<span class="text-dark-grey f-10">
|
||||
Mon
|
||||
</span>
|
||||
</th>
|
||||
<th class="f-11 pl-1 pr-2">9
|
||||
<br>
|
||||
<span class="text-dark-grey f-10">
|
||||
Tue
|
||||
</span>
|
||||
</th>
|
||||
<th class="f-11 pl-1 pr-2">10
|
||||
<br>
|
||||
<span class="text-dark-grey f-10">
|
||||
Wed
|
||||
</span>
|
||||
</th>
|
||||
<th class="f-11 pl-1 pr-2">11
|
||||
<br>
|
||||
<span class="text-dark-grey f-10">
|
||||
Thu
|
||||
</span>
|
||||
</th>
|
||||
<th class="f-11 pl-1 pr-2">12
|
||||
<br>
|
||||
<span class="text-dark-grey f-10">
|
||||
Fri
|
||||
</span>
|
||||
</th>
|
||||
<th class="f-11 pl-1 pr-2">13
|
||||
<br>
|
||||
<span class="text-dark-grey f-10">
|
||||
Sat
|
||||
</span>
|
||||
</th>
|
||||
<th class="f-11 pl-1 pr-2">14
|
||||
<br>
|
||||
<span class="text-dark-grey f-10">
|
||||
Sun
|
||||
</span>
|
||||
</th>
|
||||
<th class="f-11 pl-1 pr-2">15
|
||||
<br>
|
||||
<span class="text-dark-grey f-10">
|
||||
Mon
|
||||
</span>
|
||||
</th>
|
||||
<th class="f-11 pl-1 pr-2">16
|
||||
<br>
|
||||
<span class="text-dark-grey f-10">
|
||||
Tue
|
||||
</span>
|
||||
</th>
|
||||
<th class="f-11 pl-1 pr-2">17
|
||||
<br>
|
||||
<span class="text-dark-grey f-10">
|
||||
Wed
|
||||
</span>
|
||||
</th>
|
||||
<th class="f-11 pl-1 pr-2">18
|
||||
<br>
|
||||
<span class="text-dark-grey f-10">
|
||||
Thu
|
||||
</span>
|
||||
</th>
|
||||
<th class="f-11 pl-1 pr-2">19
|
||||
<br>
|
||||
<span class="text-dark-grey f-10">
|
||||
Fri
|
||||
</span>
|
||||
</th>
|
||||
<th class="f-11 pl-1 pr-2">20
|
||||
<br>
|
||||
<span class="text-dark-grey f-10">
|
||||
Sat
|
||||
</span>
|
||||
</th>
|
||||
<th class="f-11 pl-1 pr-2">21
|
||||
<br>
|
||||
<span class="text-dark-grey f-10">
|
||||
Sun
|
||||
</span>
|
||||
</th>
|
||||
<th class="f-11 pl-1 pr-2">22
|
||||
<br>
|
||||
<span class="text-dark-grey f-10">
|
||||
Mon
|
||||
</span>
|
||||
</th>
|
||||
<th class="f-11 pl-1 pr-2">23
|
||||
<br>
|
||||
<span class="text-dark-grey f-10">
|
||||
Tue
|
||||
</span>
|
||||
</th>
|
||||
<th class="f-11 pl-1 pr-2">24
|
||||
<br>
|
||||
<span class="text-dark-grey f-10">
|
||||
Wed
|
||||
</span>
|
||||
</th>
|
||||
<th class="f-11 pl-1 pr-2">25
|
||||
<br>
|
||||
<span class="text-dark-grey f-10">
|
||||
Thu
|
||||
</span>
|
||||
</th>
|
||||
<th class="f-11 pl-1 pr-2">26
|
||||
<br>
|
||||
<span class="text-dark-grey f-10">
|
||||
Fri
|
||||
</span>
|
||||
</th>
|
||||
<th class="f-11 pl-1 pr-2">27
|
||||
<br>
|
||||
<span class="text-dark-grey f-10">
|
||||
Sat
|
||||
</span>
|
||||
</th>
|
||||
<th class="f-11 pl-1 pr-2">28
|
||||
<br>
|
||||
<span class="text-dark-grey f-10">
|
||||
Sun
|
||||
</span>
|
||||
</th>
|
||||
<th class="f-11 pl-1 pr-2">29
|
||||
<br>
|
||||
<span class="text-dark-grey f-10">
|
||||
Mon
|
||||
</span>
|
||||
</th>
|
||||
<th class="f-11 pl-1 pr-2">30
|
||||
<br>
|
||||
<span class="text-dark-grey f-10">
|
||||
Tue
|
||||
</span>
|
||||
</th>
|
||||
<th class="px-2 text-right">Total</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="w-10 px-2">
|
||||
<div class="align-items-center mw-50">
|
||||
<div class="text-truncate">
|
||||
<h5 class="f-12 mb-0">
|
||||
<a href="https://demo.worksuite.biz/account/employees/1" class="text-darkest-grey">Mr.
|
||||
Fletcher Berge <span class="badge badge-secondary ml-1 pr-1">It's you</span></a>
|
||||
</h5>
|
||||
<p class="f-12 text-dark-grey mb-0">
|
||||
Junior
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td class="text-dark f-w-500 attendance-total w-100 px-2 text-right">
|
||||
0 / <span class="text-lightest">30</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
@ -0,0 +1,32 @@
|
||||
<div class="row gy-3">
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Employee')->class('form-label') }}
|
||||
{{ html()->select('employee_id')->class('form-select')->placeholder('Select Employee') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Clock In')->class('form-label') }}
|
||||
{{ html()->time('clock_in_time')->class('form-control') }}
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Clock Out')->class('form-label') }}
|
||||
{{ html()->time('clock_out_time')->class('form-control') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Date')->class('form-label') }}
|
||||
{{ html()->date('date')->class('form-control')->placeholder('Attendance Date') }}
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
{{ html()->label('Working From')->class('form-label') }}
|
||||
{{ html()->select('work_from_type', ['home' => 'Home', 'office' => 'Office', 'other' => 'Other'])->class('form-select')->placeholder('Working From') }}
|
||||
</div>
|
||||
|
||||
<div class="text-end">
|
||||
{{ html()->button($editable ? 'Update' : 'Mark Attendance', 'submit')->class('btn btn-success') }}
|
||||
</div>
|
||||
</div>
|
@ -34,7 +34,6 @@
|
||||
{{ html()->label('Date of Birth')->class('form-label') }}
|
||||
{{ html()->date('dob')->class('form-control')->placeholder('Choose Date of Birth')->required() }}
|
||||
{{ html()->div('Please choose dob')->class('invalid-feedback') }}
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
@ -56,9 +55,7 @@
|
||||
<div class="col-md-4">
|
||||
{{ html()->label('Upload Profile Picture')->class('form-label') }}
|
||||
{{ html()->file('profile_picture')->class('form-control') }}
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="row gy-1 mt-1">
|
||||
|
@ -47,28 +47,6 @@ document.querySelectorAll('.ckeditor-classic').forEach(editor => {
|
||||
|
||||
});
|
||||
|
||||
$('.date-picker').nepaliDatePicker({
|
||||
// dateFormat: '%D, %M %d, %y',
|
||||
dateFormat: '%y-%m-%d',
|
||||
closeOnDateSelect: true,
|
||||
});
|
||||
|
||||
// initialize filepond
|
||||
const inputElement = document.querySelector('.filepond');
|
||||
console.log(inputElement);
|
||||
FilePond.registerPlugin(FilePondPluginImagePreview);
|
||||
const pond = FilePond.create(inputElement);
|
||||
FilePond.setOptions({
|
||||
server: {
|
||||
process: "/filepond/upload",
|
||||
revert: '/delete',
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').getAttribute('content'),
|
||||
},
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
//ajax form submit
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
let form = document.getElementById('storeUpdateForm');
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -9,32 +9,28 @@
|
||||
|
||||
<title>{{ config('app.name', 'Laravel') }}</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta content="Education Consultancy" name="description" />
|
||||
<meta content="Themesbrand" name="author" />
|
||||
<meta content="OMIS" name="description" />
|
||||
|
||||
<!-- App favicon -->
|
||||
<link rel="shortcut icon" href="{{ asset('assets/images/favicon.ico') }}">
|
||||
|
||||
<!--datatable css-->
|
||||
<link rel="stylesheet" href="https://cdn.datatables.net/1.11.5/css/dataTables.bootstrap5.min.css" />
|
||||
|
||||
<!--datatable responsive css-->
|
||||
<link rel="stylesheet" href="https://cdn.datatables.net/responsive/2.2.9/css/responsive.bootstrap.min.css" />
|
||||
|
||||
<link rel="stylesheet" href="https://cdn.datatables.net/buttons/2.2.2/css/buttons.dataTables.min.css">
|
||||
|
||||
<!-- Layout config Js -->
|
||||
<script src="{{ asset('assets/js/layout.js') }}"></script>
|
||||
|
||||
<!-- Bootstrap Css -->
|
||||
<link href="{{ asset('assets/css/bootstrap.min.css') }}" rel="stylesheet" type="text/css" />
|
||||
|
||||
<!-- Toastr Css -->
|
||||
<link href="{{ asset('assets/css/toastr.css') }}" rel="stylesheet" type="text/css" />
|
||||
|
||||
<!-- Nepali DatePicker Css -->
|
||||
<link href="{{ asset('assets/css/nepali.datepicker.v4.0.1.min.css') }}" rel="stylesheet" type="text/css" />
|
||||
|
||||
<!-- Filepond css -->
|
||||
<link href="https://unpkg.com/filepond/dist/filepond.css" rel="stylesheet" />
|
||||
<link href="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css"
|
||||
rel="stylesheet" />
|
||||
|
||||
<!-- App Css-->
|
||||
<link href="{{ asset('assets/css/app.min.css') }}" rel="stylesheet" type="text/css" />
|
||||
|
||||
@ -58,10 +54,13 @@
|
||||
|
||||
<!-- removeNotificationModal -->
|
||||
@include('layouts.partials.notification-modal')
|
||||
<!-- /.modal -->
|
||||
|
||||
<!-- ========== App Menu ========== -->
|
||||
|
||||
@include('layouts.partials.sidebar')
|
||||
|
||||
<!-- Left Sidebar End -->
|
||||
|
||||
<!-- Vertical Overlay-->
|
||||
<div class="vertical-overlay"></div>
|
||||
|
||||
@ -109,20 +108,36 @@
|
||||
<script src="{{ asset('assets/libs/simplebar/simplebar.min.js') }}"></script>
|
||||
<script src="{{ asset('assets/libs/node-waves/waves.min.js') }}"></script>
|
||||
<script src="{{ asset('assets/libs/feather-icons/feather.min.js') }}"></script>
|
||||
|
||||
{{-- <script src="{{ asset('assets/js/pages/plugins/lord-icon-2.1.0.js') }}"></script> --}}
|
||||
{{-- <script src="{{ asset('assets/js/plugins.js') }}"></script> --}}
|
||||
|
||||
<script src="{{ asset('assets/js/plugins.js') }}"></script>
|
||||
|
||||
<script src="{{ asset('assets/libs/@ckeditor/ckeditor5-build-classic/build/ckeditor.js') }}"></script>
|
||||
|
||||
<script src="{{ asset('assets/libs/toastr/toastr.min.js') }}"></script>
|
||||
<script src="{{ asset('assets/libs/nepalidatepicker/nepali.datepicker.v4.0.1.min.js') }}"></script>
|
||||
|
||||
<script src="{{ asset('assets/libs/flatpickr/flatpickr.min.js') }}"></script>
|
||||
|
||||
<script src="https://cdn.datatables.net/1.11.5/js/jquery.dataTables.min.js"></script>
|
||||
|
||||
<script src="https://cdn.datatables.net/1.11.5/js/dataTables.bootstrap5.min.js"></script>
|
||||
|
||||
<script src="{{ asset('assets/libs/fullcalendar/index.global.min.js') }}"></script>
|
||||
|
||||
<script src="{{ asset('assets/libs/choices.js') }}"></script>
|
||||
|
||||
<script src="{{ asset('assets/js/pages/calendar.init.js') }}"></script>
|
||||
|
||||
{{-- <script src="https://cdn.datatables.net/responsive/2.2.9/js/dataTables.responsive.min.js"></script>
|
||||
|
||||
<script src="https://cdn.datatables.net/buttons/2.2.2/js/dataTables.buttons.min.js"></script>
|
||||
<script src="https://cdn.datatables.net/buttons/2.2.2/js/buttons.print.min.js"></script>
|
||||
<script src="https://cdn.datatables.net/buttons/2.2.2/js/buttons.html5.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/vfs_fonts.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/pdfmake.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script> --}}
|
||||
|
||||
<script src="{{ asset('assets/js/pages/datatables.init.js') }}"></script>
|
||||
|
||||
<!--apexcharts-->
|
||||
@ -136,16 +151,14 @@
|
||||
<!-- projects js -->
|
||||
{{-- <script src="{{ asset('assets/js/pages/dashboard-projects.init.js') }}"></script> --}}
|
||||
|
||||
<!-- filepond js -->
|
||||
{{-- <script src="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.js"></script>
|
||||
<script src="https://unpkg.com/filepond/dist/filepond.js"></script> --}}
|
||||
|
||||
<!-- App js -->
|
||||
<script src="{{ asset('assets/js/app.js') }}"></script>
|
||||
|
||||
<!-- Custom js -->
|
||||
<script src="{{ asset('assets/js/custom.js') }}"></script>
|
||||
|
||||
@stack('js')
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
@ -9,7 +9,6 @@
|
||||
<li class="breadcrumb-item active">{{ $title }}</li>
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<footer class="footer">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-sm-6">@php echo date('Y') @endphp © Education Consultancy.
|
||||
<div class="col-sm-6">@php echo date('Y') @endphp © Bibhuti Solutions.
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="text-sm-end d-none d-sm-block">
|
||||
|
@ -39,6 +39,7 @@
|
||||
aria-controls="MenuOne">
|
||||
<i class="ri-building-2-line"></i> <span data-key="t-companies">Company Setup</span>
|
||||
</a>
|
||||
|
||||
<div class="menu-dropdown collapse" id="MenuOne">
|
||||
<ul class="nav nav-sm flex-column">
|
||||
|
||||
@ -51,13 +52,28 @@
|
||||
<a href="{{ route('company.index') }}"
|
||||
class="nav-link @if (\Request::is('company') || \Request::is('company/*')) active @endif">Company</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link menu-link" href="#MenuAttendance" data-bs-toggle="collapse" role="button"
|
||||
aria-expanded="false" aria-controls="MenuAttendance">
|
||||
<i class="ri-shopping-cart-2-line"></i> <span data-key="t-attendances">Attendance</span>
|
||||
</a>
|
||||
<div class="menu-dropdown collapse" id="MenuAttendance">
|
||||
<ul class="nav nav-sm flex-column">
|
||||
|
||||
<li class="nav-item">
|
||||
<a href="{{ route('attendance.index') }}"
|
||||
class="nav-link @if (\Request::is('attendance')) active @endif">Attendance Report</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
{{-- <li class="nav-item">
|
||||
<a class="nav-link menu-link" href="#MenuTwo" data-bs-toggle="collapse" role="button" aria-expanded="false"
|
||||
aria-controls="MenuTwo">
|
||||
<i class="ri-shopping-cart-2-line"></i> <span data-key="t-vendors">Vendor Setup</span>
|
||||
@ -76,7 +92,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
</li> --}}
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link menu-link @if (\Request::is('employee') || \Request::is('employee/*')) active @endif"
|
||||
@ -85,6 +101,13 @@
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link menu-link @if (\Request::is('calendar') || \Request::is('calendar/*')) active @endif"
|
||||
href="{{ route('calendar.index') }}">
|
||||
<i class="ri-calendar-line"></i> <span data-key="t-widgets">Calendar</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link menu-link" href="#leave" data-bs-toggle="collapse" role="button" aria-expanded="false"
|
||||
aria-controls="leave">
|
||||
@ -93,6 +116,7 @@
|
||||
<div class="menu-dropdown collapse" id="leave">
|
||||
<ul class="nav nav-sm flex-column">
|
||||
|
||||
|
||||
<li class="nav-item">
|
||||
<a href="{{ route('leaveType.index') }}"
|
||||
class="nav-link @if (\Request::is('leavetype') || \Request::is('leavetype/*')) active @endif">Leave Type</a>
|
||||
@ -103,11 +127,15 @@
|
||||
class="nav-link @if (\Request::is('leave') || \Request::is('leave/*')) active @endif">Apply Leave</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a href="" class="nav-link @if (\Request::is('leaveReport') || \Request::is('leaveReport/*')) active @endif">Leave Report</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
{{-- <li class="nav-item">
|
||||
<a class="nav-link menu-link" href="#taxation" data-bs-toggle="collapse" role="button" aria-expanded="false"
|
||||
aria-controls="taxation">
|
||||
<i class="ri-book-2-line"></i> <span data-key="t-masters">Taxation</span>
|
||||
@ -121,7 +149,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
</li> --}}
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link menu-link" href="#MenuThree" data-bs-toggle="collapse" role="button"
|
||||
@ -226,6 +254,16 @@
|
||||
class="nav-link @if (\Request::is('warning') || \Request::is('warning/*')) active @endif">Warnings</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a href="{{ route('event.index') }}"
|
||||
class="nav-link @if (\Request::is('event') || \Request::is('event/*')) active @endif">Manage Events</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a href="{{ route('holiday.index') }}"
|
||||
class="nav-link @if (\Request::is('holiday') || \Request::is('holiday/*')) active @endif">Manage Holidays</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
|
Reference in New Issue
Block a user