first commit

This commit is contained in:
Sampanna Rimal
2024-08-27 17:48:06 +05:45
commit 53c0140f58
10839 changed files with 1125847 additions and 0 deletions

View File

View File

@@ -0,0 +1,18 @@
@extends('layouts.app')
@section('content')
<div class="page-content">
<div class="container-fluid">
@include('layouts.partials.breadcrumb', ['title' => $title])
{{ html()->form('POST')->route('client.store')->class(['needs-validation'])->attributes(['novalidate', 'enctype' => 'multipart/form-data'])->open() }}
@include('pms::client.partials.action')
{{ html()->form()->close() }}
</div>
</div>
@endsection
@push('js')
<script src="{{ asset('assets/js/pages/form-validation.init.js') }}"></script>
@endpush

View File

@@ -0,0 +1,24 @@
@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 -->
{{ html()->modelForm($client, 'PUT')->route('client.update', $client->id)->class(['needs-validation'])->attributes(['novalidate', 'enctype' => 'multipart/form-data'])->open() }}
@include('pms::client.partials.action')
{{ html()->closeModelForm() }}
<!--end row-->
</div>
<!-- container-fluid -->
</div>
@endsection
@push('js')
<script src="{{ asset('assets/js/pages/form-validation.init.js') }}"></script>
@endpush

View File

@@ -0,0 +1,71 @@
@extends('layouts.app')
@section('content')
<div class="page-content">
<div class="container-fluid">
@include('layouts.partials.breadcrumb', ['title' => $title])
<div class="mb-2 text-end">
@can('client.create')
<a href="{{ route('client.create') }}" class="btn btn-success btn-md waves-effect waves-light"><i
class="ri-add-fill me-1 align-bottom"></i> Add</a>
@endcan
</div>
<div class="row">
<div class="col-lg-12">
<div class="card">
<div class="card-body">
<div class="table-responsive">
<table id="buttons-datatables" class="display table-sm table-bordered table" style="width:100%">
<thead>
<tr>
<th>S.N</th>
<th>Client Name</th>
<th>Email</th>
<th>Company</th>
<th>Status</th>
<th>Action</th>
</tr>
</thead>
<tbody>
@forelse ($clients as $key => $client)
<tr>
<td>{{ $key + 1 }}</td>
<td>{{ $client->client_name }}</td>
<td>{{ $client->email_address }}</td>
<td>{{ $client->company }}</td>
<td>{!! $client->status_name !!}</td>
<td>
<div class="hstack flex-wrap gap-3">
@can('client.show')
<a href="{{ route('client.show', $client->id) }}" class="link-info fs-15">
<i class="ri-eye-line"></i>
</a>
@endcan
@can('client.edit')
<a href="{{ route('client.edit', $client->id) }}" class="link-success fs-15 edit-item-btn"><i
class="ri-edit-2-line"></i></a>
@endcan
@can('client.destroy')
<a href="javascript:void(0);" data-link="{{ route('client.destroy', $client->id) }}"
data-id="{{ $client->id }}" class="link-danger fs-15 remove-item-btn"><i
class="ri-delete-bin-line"></i></a>
@endcan
</div>
</td>
</tr>
@empty
@endforelse
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<!--end row-->
</div>
</div>
@endsection

View File

@@ -0,0 +1,103 @@
<div class="row">
<div class="col-lg-9">
<div class="card">
<div class="card-body">
<div class="row gy-3">
<div class="col-md-6">
{{ html()->label('Salutation')->class('form-label') }}
{{ html()->select('salutation_id', $salutationList)->class('form-control select2')->placeholder('Salutation')->required() }}
</div>
<div class="col-md-6">
{{ html()->label('Client Name')->class('form-label') }}
{{ html()->text('client_name')->class('form-control')->placeholder('Client Name')->required() }}
</div>
<div class="col-md-6">
{{ html()->label('Email')->class('form-label') }}
{{ html()->email('email')->class('form-control')->placeholder('Email Address')->required() }}
</div>
<div class="col-md-6">
{{ html()->label('Client Name')->class('form-label') }}
{{ html()->text('client_name')->class('form-control')->placeholder('Client Name')->required() }}
</div>
<div class="col-md-6">
{{ html()->label('Gender')->class('form-label') }}
{{ html()->select('gender_id', $genderList)->class('form-control select2')->placeholder('Select Gender')->required() }}
</div>
<div class="col-md-6">
{{ html()->label('Country')->class('form-label') }}
{{ html()->select('country_id', $countryList)->class('form-control select2')->placeholder('Select Country')->required() }}
</div>
<div class="col-md-6">
{{ html()->label('Phone Number')->class('form-label') }}
{{ html()->input($type = 'tel', $name = 'phone', $value = null)->class('form-control')->placeholder('+(977) 9812345678') }}
</div>
<div class="col-md-6">
{{ html()->label('Company Name')->class('form-label') }}
{{ html()->text('company_name')->class('form-control')->placeholder('Company Name') }}
</div>
<div class="col-md-6">
{{ html()->label('Company Adress')->class('form-label') }}
{{ html()->text('company_address')->class('form-control')->placeholder('Company Address') }}
</div>
<div class="col-md-12">
{{ html()->label('Description')->class('form-label') }}
{{ html()->textarea('desc')->class('form-control ckeditor-classic') }}
</div>
</div>
</div>
</div>
<!-- end card -->
</div>
<!-- end col -->
<div class="col-lg-3">
<div class="card">
<div class="card-header">
<h5 class="card-title mb-0">Publish</h5>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-12">
{{ html()->label('Status')->class('form-label') }}
{{ html()->select('status', $status)->class('form-control select2')->placeholder('Select Status') }}
</div>
</div>
</div>
<!-- end card body -->
</div>
<div class="card">
<div class="card-header">
<h5 class="card-title mb-0">Profile Picture</h5>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-12">
{{ html()->label('Image')->class('form-label visually-hidden') }}
{{ html()->file('profile_pic')->class('form-control dropify') }}
</div>
</div>
</div>
<!-- end card body -->
<div class="card-footer">
<x-form-buttons :editable="$editable" label="Add" href="{{route('client.index')}}" />
</div>
</div>
<!-- end card -->
</div>
<!-- end col -->
</div>

View File

@@ -0,0 +1,49 @@
@extends('layouts.app')
@section('content')
<div class="page-content">
<div class="container-fluid">
@include('layouts.partials.breadcrumb', ['title' => $title])
<div class="row">
<div class="col-md-8">
<div class="card card-body p-4">
<div>
<div class="table-responsive">
<table class="table-borderless mb-0 table">
<tbody>
<tr>
<th><span class="fw-medium">Client Name</span></th>
<td>{{ $client->client_name }}</td>
</tr>
<tr>
<th><span class="fw-medium">Company</span></th>
<td>{{ $client->company }}</td>
</tr>
<tr>
<th><span class="fw-medium">Email</span></th>
<td>{{ $client->email_address }}</td>
</tr>
<tr>
<th><span class="fw-medium">Address</span></th>
<td>{{ $client->address }}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="mb-3 text-end">
<a href="{{ route('client.index') }}" class="btn btn-secondary w-sm">Back</a>
</div>
</div>
</div>
</div>
</div>
@endsection
@push('js')
<script src="{{ asset('assets/js/pages/form-validation.init.js') }}"></script>
@endpush

View File

@@ -0,0 +1,7 @@
@extends('pms::layouts.master')
@section('content')
<h1>Hello World</h1>
<p>Module: {!! config('pms.name') !!}</p>
@endsection

View File

@@ -0,0 +1,29 @@
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="csrf-token" content="{{ csrf_token() }}">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>PMS Module - {{ config('app.name', 'Laravel') }}</title>
<meta name="description" content="{{ $description ?? '' }}">
<meta name="keywords" content="{{ $keywords ?? '' }}">
<meta name="author" content="{{ $author ?? '' }}">
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.bunny.net">
<link href="https://fonts.bunny.net/css?family=figtree:400,500,600&display=swap" rel="stylesheet" />
{{-- Vite CSS --}}
{{-- {{ module_vite('build-pms', 'resources/assets/sass/app.scss') }} --}}
</head>
<body>
@yield('content')
{{-- Vite JS --}}
{{-- {{ module_vite('build-pms', 'resources/assets/js/app.js') }} --}}
</body>

View File

@@ -0,0 +1,18 @@
@extends('layouts.app')
@section('content')
<div class="page-content">
<div class="container-fluid">
@include('layouts.partials.breadcrumb', ['title' => $title])
{{ html()->form('POST')->route('project.store')->class(['needs-validation'])->attributes(['novalidate', 'enctype' => 'multipart/form-data'])->open() }}
@include('pms::project.partials.action')
{{ html()->form()->close() }}
</div>
</div>
@endsection
@push('js')
<script src="{{ asset('assets/js/pages/form-validation.init.js') }}"></script>
@endpush

View File

@@ -0,0 +1,22 @@
@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 -->
{{ html()->modelForm($project, 'PUT')->route('project.update', $project->id)->class(['needs-validation'])->attributes(['novalidate', 'enctype' => 'multipart/form-data'])->open() }}
@include('pms::project.partials.action')
{{ html()->closeModelForm() }}
<!--end row-->
</div>
<!-- container-fluid -->
</div>
@endsection
@push('js')
<script src="{{ asset('assets/js/pages/form-validation.init.js') }}"></script>
@endpush

View File

@@ -0,0 +1,91 @@
@extends('layouts.app')
@inject('employeeRepository', 'Modules\Employee\Repositories\EmployeeRepository')
@section('content')
<div class="page-content">
<div class="container-fluid">
@include('layouts.partials.breadcrumb', ['title' => $title])
<div class="mb-2 text-end">
<a href="{{ route('project.create') }}" class="btn btn-success btn-md waves-effect waves-light"><i
class="ri-add-fill me-1 align-bottom"></i> Add</a>
</div>
<div class="row">
<div class="col-lg-12">
<div class="card">
<div class="card-body">
<div class="table-responsive">
<table id="buttons-datatables" class="display table-sm table-bordered table" style="width:100%">
<thead>
<tr>
<th>S.N</th>
<th>Code</th>
<th>Project Name</th>
<th>Members</th>
<th>Start Date</th>
<th>Deadline</th>
<th>Client</th>
<th>Status</th>
<th>Action</th>
</tr>
</thead>
<tbody>
@forelse ($projects as $key => $project)
<tr>
<td>{{ $key + 1 }}</td>
<td>{{ $project->project_code }}</td>
<td>{{ $project->project_name }}</td>
<td>
<div class="avatar-group flex-nowrap">
@isset($project->members_id)
@foreach ($project->members_id as $memberId)
<div class="avatar-group-item">
<a href="javascript: void(0);" class="d-inline-block">
<img
src="{{ asset(optional($employeeRepository->getEmployeeById($memberId))->profile_pic) }}"
alt="" class="rounded-circle avatar-xxs">
</a>
</div>
@endforeach
@endisset
</div>
</td>
<td>{{ $project->start_date }}</td>
<td class="text-danger">{{ $project->end_date }}</td>
<td>{{ optional($project->client)->client_name }}</td>
<td>{!! $project->status_name !!}</td>
<td>
<div class="hstack flex-wrap gap-3">
@can('project.show')
<a href="{{ route('project.show', $project->id) }}" class="link-info fs-15">
<i class="ri-eye-line"></i>
</a>
@endcan
@can('project.edit')
<a href="{{ route('project.edit', $project->id) }}"
class="link-success fs-15 edit-item-btn"><i class="ri-edit-2-line"></i></a>
@endcan
@can('project.destroy')
<a href="javascript:void(0);" data-link="{{ route('project.destroy', $project->id) }}"
data-id="{{ $project->id }}" class="link-danger fs-15 remove-item-btn"><i
class="ri-delete-bin-line"></i></a>
@endcan
</div>
</td>
</tr>
@empty
@endforelse
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<!--end row-->
</div>
</div>
@endsection

View File

@@ -0,0 +1,125 @@
<div class="row">
<div class="col-lg-8">
<div class="card">
<div class="card-body">
<div class="row gy-1">
<div class="col-md-6">
{{ html()->label('Project Code')->class('form-label') }}
{{ html()->text('project_code')->class('form-control')->placeholder('Enter Project Code')->required() }}
</div>
<div class="col-md-6">
{{ html()->label('Project Name')->class('form-label') }}
{{ html()->text('project_name')->class('form-control')->placeholder('Enter Project Name')->required() }}
</div>
<div class="col-md-6">
{{ html()->label('Project Category')->class('form-label') }}
{{ html()->select('project_category_id', $categoryList)->class('form-control select2')->placeholder('Select Project Category') }}
</div>
<div class="col-md-6">
{{ html()->label('Client')->class('form-label') }}
{{ html()->select('client_id', $clientList)->class('form-control select2')->placeholder('Select Client') }}
</div>
<div class="col-md-6">
{{ html()->label('Department')->class('form-label') }}
{{ html()->select('department_id', $departmentList)->class('form-control select2')->placeholder('Select Department') }}
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-md-12">
{{ html()->label('Summary')->class('form-label') }}
{{ html()->textarea('summary')->class('form-control ckeditor-classic') }}
</div>
</div>
</div>
<!-- end card body -->
</div>
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-md-12">
{{ html()->label('Key Notes')->class('form-label') }}
{{ html()->textarea('key_notes')->class('form-control ckeditor-classic') }}
</div>
</div>
</div>
<!-- end card body -->
</div>
<!-- end card -->
<div class="mb-3 text-end">
<a href="{{ route('project.index') }}" class="btn btn-danger w-sm">Cancel</a>
<button type="submit" class="btn btn-success w-sm">Save</button>
</div>
</div>
<!-- end col -->
<div class="col-lg-4">
<div class="card">
<div class="card-header">
<h5 class="card-title mb-0">Publish</h5>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-12">
{{ html()->label('Status')->class('form-label') }}
{{ html()->select('status', $status)->class('form-control')->required() }}
</div>
</div>
</div>
<!-- end card body -->
</div>
<!-- end card -->
<div class="card">
<div class="card-header">
<h5 class="card-title mb-0">Team Members</h5>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-12">
{{-- {{ html()->label('Team Members')->class('form-label') }} --}}
{{ html()->multiselect('members_id[]', $memberList)->class('form-control select2')->value($project->members_id ?? null)->attributes(['multiple'])->required() }}
</div>
</div>
</div>
<!-- end card body -->
</div>
<!-- end card -->
<div class="card">
<div class="card-header">
<h5 class="card-title mb-0">Date</h5>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-12">
{{ html()->label('Start Date')->class('form-label') }}
{{ html()->date('start_date')->class('form-control')->placeholder('Choose Start Date') }}
</div>
<div class="col-md-12">
{{ html()->label('End Date')->class('form-label') }}
{{ html()->date('end_date')->class('form-control')->placeholder('Choose End Date') }}
</div>
</div>
</div>
<!-- end card body -->
</div>
<!-- end card -->
</div>
<!-- end col -->
</div>

View File

@@ -0,0 +1,62 @@
@extends('layouts.app')
@inject('employeeRepository', 'Modules\Employee\Repositories\EmployeeRepository')
@section('content')
<div class="page-content">
<div class="container-fluid">
@include('layouts.partials.breadcrumb', ['title' => $title])
<div class="row">
<div class="col-md-8">
<div class="card card-body p-4">
<div>
<div class="table-responsive">
<table class="table-borderless mb-0 table">
<tbody>
<tr>
<th><span class="fw-medium">Project Name</span></th>
<td>{{ $project->project_name }}</td>
</tr>
<tr>
<th><span class="fw-medium">Code</span></th>
<td>{{ $project->project_code }}</td>
</tr>
<tr>
<th><span class="fw-medium">Members</span></th>
<td>
<div class="avatar-group flex-nowrap">
@foreach ($project->members_id as $memberId)
<div class="avatar-group-item">
<a href="javascript: void(0);" class="d-inline-block">
<img
src="{{ asset(optional($employeeRepository->getEmployeeById($memberId))->profile_pic) }}"
alt="" class="rounded-circle avatar-xxs">
</a>
</div>
@endforeach
</div>
</td>
</tr>
<tr>
<th><span class="fw-medium">Summary</span></th>
<td>{{ $project->summary }}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="mb-3 text-end">
<a href="{{ route('project.index') }}" class="btn btn-secondary w-sm">Back</a>
</div>
</div>
</div>
</div>
</div>
@endsection
@push('js')
<script src="{{ asset('assets/js/pages/form-validation.init.js') }}"></script>
@endpush

View File

@@ -0,0 +1,18 @@
@extends('layouts.app')
@section('content')
<div class="page-content">
<div class="container-fluid">
@include('layouts.partials.breadcrumb', ['title' => $title])
{{ html()->form('POST')->route('task.store')->class(['needs-validation'])->attributes(['novalidate', 'enctype' => 'multipart/form-data'])->open() }}
@include('pms::task.partials.action')
{{ html()->form()->close() }}
</div>
</div>
@endsection
@push('js')
<script src="{{ asset('assets/js/pages/form-validation.init.js') }}"></script>
@endpush

View File

@@ -0,0 +1,22 @@
@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 -->
{{ html()->modelForm($task, 'PUT')->route('task.update', $task->id)->class(['needs-validation'])->attributes(['novalidate', 'enctype' => 'multipart/form-data'])->open() }}
@include('pms::task.partials.action')
{{ html()->closeModelForm() }}
<!--end row-->
</div>
<!-- container-fluid -->
</div>
@endsection
@push('js')
<script src="{{ asset('assets/js/pages/form-validation.init.js') }}"></script>
@endpush

View File

@@ -0,0 +1,88 @@
@extends('layouts.app')
@inject('employeeRepository', 'Modules\Employee\Repositories\EmployeeRepository')
@section('content')
<div class="page-content">
<div class="container-fluid">
@include('layouts.partials.breadcrumb', ['title' => $title])
@include('pms::task.partials.menu')
<div class="row">
<div class="col-lg-12">
<div class="card">
<div class="card-body">
<div class="table-responsive">
<table id="buttons-datatables" class="display table-sm table-bordered table" style="width:100%">
<thead>
<tr>
<th>S.N</th>
<th>Task</th>
<th>Project</th>
<th>Start Date</th>
<th>Deadline</th>
<th>Assigned</th>
<th>Priority</th>
<th>Status</th>
<th>Action</th>
</tr>
</thead>
<tbody>
@forelse ($tasks as $key => $task)
<tr>
<td>{{ $key + 1 }}</td>
<td>{{ $task->title }}</td>
<td>{{ optional($task->project)->project_name }}</td>
<td>{{ $task->start_date }}</td>
<td class="text-danger">{{ $task->due_date }}</td>
<td>
<div class="avatar-group flex-nowrap">
@isset($task->assigned_id)
@foreach ($task->assigned_id as $assignedId)
<div class="avatar-group-item">
<a href="javascript: void(0);" class="d-inline-block">
<img
src="{{ asset(optional($employeeRepository->getEmployeeById($assignedId))->profile_pic) }}"
alt="" class="rounded-circle avatar-xxs">
</a>
</div>
@endforeach
@endisset
</div>
</td>
<td>{!! $task->priority_status !!}</td>
<td>
<span class="badge bg-{{ $task->status_name['color'] }}"> {!! $task->status_name['status'] !!} </span>
</td>
<td>
<div class="hstack flex-wrap gap-3">
@can('task.show')
<a href="{{ route('task.show', $task->id) }}" class="link-info fs-15">
<i class="ri-eye-line"></i>
</a>
@endcan
@can('task.edit')
<a href="{{ route('task.edit', $task->id) }}" class="link-success fs-15 edit-item-btn"><i
class="ri-edit-2-line"></i></a>
@endcan
@can('task.destroy')
<a href="javascript:void(0);" data-link="{{ route('task.destroy', $task->id) }}"
data-id="{{ $task->id }}" class="link-danger fs-15 remove-item-btn"><i
class="ri-delete-bin-line"></i></a>
@endcan
</div>
</td>
</tr>
@empty
@endforelse
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<!--end row-->
</div>
</div>
@endsection

View File

@@ -0,0 +1,118 @@
@extends('layouts.app')
@inject('employeeRepository', 'Modules\Employee\Repositories\EmployeeRepository')
@push('css')
<link rel="stylesheet" type="text/css" href="{{ asset('assets/libs/dragula/dragula.min.css') }}" />
@endpush
@section('content')
<div class="page-content">
<div class="container-fluid">
@include('layouts.partials.breadcrumb', ['title' => $title])
@include('pms::task.partials.menu')
<div class="row">
<div class="col-lg-12">
<div class="tasks-board mb-3" id="kanbanboard">
@foreach ($statusList as $statuskey => $statusItem)
<div class="tasks-list" data-status-key="{{ $statuskey }}">
<div class="d-flex mb-3">
<div class="flex-grow-1">
<h6 class="fs-14 text-uppercase fw-semibold mb-0">{{ $statusItem }} <small
class="badge bg-info totaltask-badge ms-1 align-bottom">{{ array_key_exists($statuskey, $tasks->toArray()) ? count($tasks[$statuskey]) : 0 }}</small>
</h6>
</div>
</div>
<div data-simplebar class="tasks-wrapper mx-n3 px-3">
<div id="{{ strtolower(str_replace(' ', '-', $statusItem)) }}-task" class="tasks">
@if (array_key_exists($statuskey, $tasks->toArray()))
@foreach ($tasks[$statuskey] as $task)
<div class="card tasks-box" data-id="{{ $task->id }}">
<div class="card-body">
<div class="d-flex mb-2">
<div class="flex-grow-1">
<h6 class="fs-15 text-truncate task-title mb-0"><a
href="{{ route('task.show', $task->id) }}" class="d-block">{{ $task->title }}</a>
</h6>
</div>
<div class="flex-shrink-0">
<a href="javascript:void(0);" class="text-muted" id="dropdownMenuLink12"
data-bs-toggle="dropdown" aria-expanded="false"><i class="ri-more-fill"></i></a>
<ul class="dropdown-menu" aria-labelledby="dropdownMenuLink12">
<li><a class="dropdown-item" href="{{ route('task.show', $task->id) }}"><i
class="ri-eye-fill text-muted me-2 align-bottom"></i> View</a></li>
<li><a class="dropdown-item" href="{{ route('task.edit', $task->id) }}"><i
class="ri-edit-2-line text-muted me-2 align-bottom"></i> Edit</a></li>
<li><a class="dropdown-item" data-bs-toggle="modal" href="#deleteRecordModal"><i
class="ri-delete-bin-5-line text-muted me-2 align-bottom"></i> Delete</a></li>
</ul>
</div>
</div>
<p class="text-muted">{{ $task->desc }}</p>
<div class="d-flex align-items-center">
<div class="flex-grow-1">
<span class="badge text-bg-light">{{ $task->taskCategory() }}</span>
</div>
<div class="flex-shrink-0">
<div class="avatar-group">
@isset($task->assigned_id)
@foreach ($task->assigned_id as $assignedId)
<a href="javascript: void(0);" class="avatar-group-item" data-bs-toggle="tooltip"
data-bs-trigger="hover" data-bs-placement="top"
title="{{ optional($employeeRepository->getEmployeeById($assignedId))->full_name }}">
<img
src="{{ asset(optional($employeeRepository->getEmployeeById($assignedId))->profile_pic) }}"
alt="" class="rounded-circle avatar-xxs">
</a>
@endforeach
@endisset
</div>
</div>
</div>
</div>
<!--end card-body-->
<div class="card-footer border-top-dashed">
<div class="d-flex">
<div class="flex-grow-1">
<span class="text-muted text-info"><i class="ri-time-line align-bottom"></i>
{{ date('d M, Y', strtotime($task->start_date)) }}</span>
</div>
<div class="flex-shrink-0">
{!! $task->priority_status !!}
</div>
</div>
</div>
<div class="progress progress-sm">
<div class="progress-bar bg-{{ $task->status_name['color'] }}" role="progressbar"
style="width: 100%" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</div>
@endforeach
@endif
<!--end card-->
</div>
<!--end tasks-->
</div>
</div>
@endforeach
</div>
</div>
</div>
<!--end row-->
</div>
</div>
@endsection
@push('js')
<script src="{{ asset('assets/libs/dragula/dragula.min.js') }}"></script>
<script src="{{ asset('assets/libs/dom-autoscroller/dom-autoscroller.min.js') }}"></script>
<script src="{{ asset('assets/js/pages/tasks-kanban.init.js') }}"></script>
@endpush

View File

@@ -0,0 +1,106 @@
<div class="row">
<div class="col-lg-8">
<div class="card">
<div class="card-body">
<div class="row gy-1">
<div class="col-md-12">
{{ html()->label('Title')->class('form-label') }}
{{ html()->text('title')->class('form-control')->placeholder('Enter Title')->required() }}
</div>
<div class="col-md-6">
{{ html()->label('Task Category')->class('form-label') }}
{{ html()->select('task_category_id', $categoryList)->class('form-control')->placeholder('Select Task Category')->required() }}
</div>
<div class="col-md-6">
{{ html()->label('Project')->class('form-label') }}
{{ html()->select('project_id', $projectList)->class('form-control')->placeholder('Select Project')->required() }}
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-md-12">
{{ html()->label('Description')->class('form-label') }}
{{ html()->textarea('desc')->class('form-control ckeditor-classic')->placeholder('..') }}
</div>
</div>
</div>
<!-- end card body -->
</div>
<!-- end card -->
<div class="mb-3 text-end">
<a href="{{ route('task.index') }}" class="btn btn-danger w-sm">Cancel</a>
<button type="submit" class="btn btn-success w-sm">Save</button>
</div>
</div>
<!-- end col -->
<div class="col-lg-4">
<div class="card">
<div class="card-header">
<h5 class="card-title mb-0">Publish</h5>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-12">
{{ html()->label('Status')->class('form-label') }}
{{ html()->select('status', $status)->class('form-control')->required() }}
</div>
</div>
</div>
<!-- end card body -->
</div>
<!-- end card -->
<div class="card">
<div class="card-header">
<h5 class="card-title mb-0">Team Members</h5>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-12">
{{ html()->multiselect('assigned_id[]', $memberList)->class('form-control select2')->value($task->assigned_id ?? null)->attributes(['multiple', 'id' => 'assigned_id'])->required() }}
</div>
</div>
</div>
<!-- end card body -->
</div>
<!-- end card -->
<div class="card">
<div class="card-header">
<h5 class="card-title mb-0">Date</h5>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-12">
{{ html()->label('Priority')->class('form-label') }}
{{ html()->select('priority', $priority)->class('form-control')->required() }}
</div>
<div class="col-md-12">
{{ html()->label('Start Date')->class('form-label') }}
{{ html()->date('start_date')->class('form-control')->placeholder('Choose Start Date') }}
</div>
<div class="col-md-12">
{{ html()->label('Due Date')->class('form-label') }}
{{ html()->date('due_date')->class('form-control')->placeholder('Choose Due Date') }}
</div>
</div>
</div>
<!-- end card body -->
</div>
<!-- end card -->
</div>
<!-- end col -->
</div>

View File

@@ -0,0 +1,75 @@
<div class="card">
<div class="card-body">
<div class="row g-2">
<div class="col-sm-8">
{{ html()->form('GET')->route('task.index')->open() }}
<div class="row g-3">
<div class="col-xl-3">
<div class="search-box">
{{ html()->text('search')->class('form-control search')->value(request('search'))->placeholder('Search...') }}
<i class="ri-search-line search-icon"></i>
</div>
</div>
<div class="col-sm-4">
<div class="">
{{ html()->text('date')->class('form-control')->value(request('date'))->placeholder('Date Range')->attributes([
'id' => 'datepicker-range',
'data-provider' => 'flatpickr',
'data-date-format' => 'Y-m-d',
'data-range-date' => 'true',
]) }}
</div>
</div>
<div class="col-sm-3">
<div>
{{ html()->select('status', $statusList)->placeholder('Select Status')->value(request('status'))->class('form-control select2') }}
</div>
</div>
<!--end col-->
<div class="col-sm-2">
<div>
<button type="submit" class="btn btn-primary">
<i class="ri-equalizer-fill me-2"></i>Filters</button>
{{-- <a href="{{ route('task.index') }}" class="btn btn-danger">
<i class="ri-bin-fill me-2"></i>Reset</a> --}}
</div>
</div>
<!--end col-->
</div>
<!--end row-->
{{ html()->form()->close() }}
</div>
<!--end col-->
<div class="col-sm-auto ms-auto">
<div class="list-grid-nav hstack gap-1">
<a href="{{ route('task.index') }}" id="list-view-button"
class="btn btn-soft-info nav-link btn-icon {{ Route::is('task.index') ? 'active' : '' }} fs-14"><i
class="ri-list-unordered"></i></a>
<a href="{{ route('task.kanban') }}" id="grid-view-button"
class="btn btn-soft-info nav-link btn-icon fs-14 {{ Route::is('task.kanban') ? 'active' : '' }}"><i
class="ri-grid-fill"></i></a>
<a href="{{ route('task.create') }}" class="btn btn-success btn-md waves-effect waves-light"><i
class="ri-add-fill me-1 align-bottom"></i> Add</a>
</div>
</div>
<!--end col-->
</div>
<!--end row-->
</div>
</div>
{{-- <div class="d-flex justify-content-end hstack my-2 ms-auto gap-2">
<a href="{{ route('task.index') }}" class="btn btn-primary btn-icon waves-effect waves-light"><i
class="ri-list-unordered"></i></a>
<a href="{{ route('task.kanban') }}" class="btn btn-danger btn-icon waves-effect waves-light"><i
class="ri-grid-fill"></i></a>
<a href="{{ route('task.create') }}" class="btn btn-success btn-md waves-effect waves-light"><i
class="ri-add-fill me-1 align-bottom"></i> Add</a>
</div> --}}

View File

@@ -0,0 +1,49 @@
@extends('layouts.app')
@section('content')
<div class="page-content">
<div class="container-fluid">
@include('layouts.partials.breadcrumb', ['title' => $title])
<div class="row">
<div class="col-md-8">
<div class="card card-body p-4">
<div>
<div class="table-responsive">
<table class="table-borderless mb-0 table">
<tbody>
<tr>
<th><span class="fw-medium">Title</span></th>
<td>{{ $task->title }}</td>
</tr>
<tr>
<th><span class="fw-medium">Task Category</span></th>
<td>{{ $task->task_category_id }}</td>
</tr>
<tr>
<th><span class="fw-medium">Project</span></th>
<td>{{ $task->project_id }}</td>
</tr>
<tr>
<th><span class="fw-medium">Description</span></th>
<td>{{ $task->desc }}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="mb-3 text-end">
<a href="{{ route('task.index') }}" class="btn btn-secondary w-sm">Back</a>
</div>
</div>
</div>
</div>
</div>
@endsection
@push('js')
<script src="{{ asset('assets/js/pages/form-validation.init.js') }}"></script>
@endpush

View File

@@ -0,0 +1,17 @@
@extends('layouts.app')
@section('content')
<div class="page-content">
<div class="container-fluid">
@include('layouts.partials.breadcrumb', ['title' => $title])
{{ html()->form('POST')->route('ticket.store')->class(['needs-validation'])->attributes(['novalidate', 'enctype' => 'multipart/form-data'])->open() }}
@include('pms::ticket.partials.action')
{{ html()->form()->close() }}
</div>
</div>
@endsection
@push('js')
<script src="{{ asset('assets/js/pages/form-validation.init.js') }}"></script>
@endpush

View File

@@ -0,0 +1,22 @@
@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 -->
{{ html()->modelForm($ticket, 'PUT')->route('ticket.update', $ticket->id)->class(['needs-validation'])->attributes(['novalidate', 'enctype' => 'multipart/form-data'])->open() }}
@include('pms::ticket.partials.action')
{{ html()->closeModelForm() }}
<!--end row-->
</div>
<!-- container-fluid -->
</div>
@endsection
@push('js')
<script src="{{ asset('assets/js/pages/form-validation.init.js') }}"></script>
@endpush

View File

@@ -0,0 +1,72 @@
@extends('layouts.app')
@inject('employeeRepository', 'Modules\Employee\Repositories\EmployeeRepository')
@section('content')
<div class="page-content">
<div class="container-fluid">
@include('layouts.partials.breadcrumb', ['title' => $title])
@include('pms::ticket.partials.menu')
<div class="row">
<div class="col-lg-12">
<div class="card">
<div class="card-body">
<div class="table-responsive">
<table id="buttons-datatables" class="display table-sm table-bordered table" style="width:100%">
<thead>
<tr>
<th>S.N</th>
<th>Ticket</th>
<th>Assigned</th>
<th>Status</th>
<th>Action</th>
</tr>
</thead>
<tbody>
@forelse ($tickets as $key => $ticket)
<tr>
<td>{{ $key + 1 }}</td>
<td>{{ $ticket->subject }}</td>
<td>
<div class="avatar-group flex-nowrap">
<div class="avatar-group-item">
Assigned
</div>
</div>
</td>
<td>
{{-- <span class="badge bg-{{ $task->status_name['color'] }}"> {!! $task->status_name['status'] !!} </span> --}}Status
</td>
<td>
<div class="hstack flex-wrap gap-3">
@can('ticket.show')
<a href="{{ route('ticket.show', $ticket->id) }}" class="link-info fs-15">
<i class="ri-eye-line"></i>
</a>
@endcan
@can('ticket.edit')
<a href="{{ route('ticket.edit', $ticket->id) }}" class="link-success fs-15 edit-item-btn"><i
class="ri-edit-2-line"></i></a>
@endcan
@can('ticket.destroy')
<a href="javascript:void(0);" data-link="{{ route('ticket.destroy', $ticket->id) }}"
data-id="{{ $ticket->id }}" class="link-danger fs-15 remove-item-btn"><i
class="ri-delete-bin-line"></i></a>
@endcan
</div>
</td>
</tr>
@empty
@endforelse
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<!--end row-->
</div>
</div>
@endsection

View File

@@ -0,0 +1,54 @@
<div class="row">
<div class="col-lg-8">
<div class="card">
<div class="card-body">
<div class="row gy-1">
<div class="col-md-12">
{{ html()->label('Subject')->class('form-label') }}
{{ html()->text('subject')->class('form-control')->placeholder('Enter Subject')->required() }}
{{ html()->div('Please enter subject')->class('invalid-feedback') }}
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-md-12">
{{ html()->label('Description')->class('form-label') }}
{{ html()->textarea('desc')->class('form-control ckeditor-classic')->placeholder('..') }}
</div>
</div>
</div>
<!-- end card body -->
</div>
<!-- end card -->
<div class="mb-3 text-end">
<a href="{{ route('ticket.index') }}" class="btn btn-danger w-sm">Cancel</a>
<button type="submit" class="btn btn-success w-sm">Save</button>
</div>
</div>
<!-- end col -->
<div class="col-lg-4">
<div class="card">
<div class="card-header">
<h5 class="card-title mb-0">Publish</h5>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-12">
{{ html()->label('Status')->class('form-label') }}
{{ html()->select('status', $statusList)->class('form-control') }}
</div>
</div>
</div>
<!-- end card body -->
</div>
<!-- end card -->
</div>
<!-- end col -->
</div>

View File

@@ -0,0 +1,52 @@
<div class="card">
<div class="card-body">
<div class="row g-2">
<div class="col-sm-8">
{{ html()->form('GET')->route('ticket.index')->open() }}
<div class="row g-3">
<div class="col-xl-3">
<div class="search-box">
{{ html()->text('search')->class('form-control search')->value(request('search'))->placeholder('Search...') }}
<i class="ri-search-line search-icon"></i>
</div>
</div>
<div class="col-sm-4">
<div class="">
{{ html()->text('date')->class('form-control')->value(request('date'))->placeholder('Date Range')->attributes([
'id' => 'datepicker-range',
'data-provider' => 'flatpickr',
'data-date-format' => 'Y-m-d',
'data-range-date' => 'true',
]) }}
</div>
</div>
<!--end col-->
<div class="col-sm-2">
<div>
<button type="submit" class="btn btn-primary">
<i class="ri-equalizer-fill me-2"></i>Filters</button>
{{-- <a href="{{ route('task.index') }}" class="btn btn-danger">
<i class="ri-bin-fill me-2"></i>Reset</a> --}}
</div>
</div>
<!--end col-->
</div>
<!--end row-->
{{ html()->form()->close() }}
</div>
<!--end col-->
<div class="col-sm-auto ms-auto">
<div class="list-grid-nav hstack gap-1">
<a href="{{ route('ticket.create') }}" class="btn btn-success btn-md waves-effect waves-light"><i
class="ri-add-fill me-1 align-bottom"></i> Add</a>
</div>
</div>
<!--end col-->
</div>
<!--end row-->
</div>
</div>

View File

@@ -0,0 +1,40 @@
@extends('layouts.app')
@section('content')
<div class="page-content">
<div class="container-fluid">
@include('layouts.partials.breadcrumb', ['title' => $title])
<div class="row">
<div class="col-md-8">
<div class="card card-body p-4">
<div>
<div class="table-responsive">
<table class="table-borderless mb-0 table">
<tbody>
<tr>
<th><span class="fw-medium">Title</span></th>
<td>{{ $ticket->subject }}</td>
</tr>
<tr>
<th><span class="fw-medium">Description</span></th>
<td>{{ $ticket->desc }}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="mb-3 text-end">
<a href="{{ route('ticket.index') }}" class="btn btn-secondary w-sm">Back</a>
</div>
</div>
</div>
</div>
</div>
@endsection
@push('js')
<script src="{{ asset('assets/js/pages/form-validation.init.js') }}"></script>
@endpush