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

@ -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