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="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="col-lg-12 col-md-12">
|
||||
{{ html()->label('Remarks')->class('form-label') }}
|
||||
{{ html()->textarea('remarks')->class('form-control')->attributes(['rows' => 5]) }}
|
||||
<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="text-end">
|
||||
<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">
|
||||
|
@ -1,8 +1,8 @@
|
||||
|
||||
$('body').on('click', '.remove-item-btn', function (e) {
|
||||
e.preventDefault();
|
||||
let url = $(this).data('link');
|
||||
let id = $(this).data('id');
|
||||
e.preventDefault();
|
||||
let url = $(this).data('link');
|
||||
let id = $(this).data('id');
|
||||
|
||||
Swal.fire({
|
||||
title: 'Are you sure?',
|
||||
@ -24,7 +24,7 @@ $('body').on('click', '.remove-item-btn', function (e) {
|
||||
id: id
|
||||
},
|
||||
success: function (response) {
|
||||
if(response.status == true){
|
||||
if (response.status == true) {
|
||||
location.reload();
|
||||
}
|
||||
},
|
||||
@ -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
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