%PDF- %GIF98; %PNG;
Server : ApacheSystem : Linux host.digitalbabaji.in 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64 User : addictionfreeind ( 1003) PHP Version : 7.2.34 Disable Function : exec,passthru,shell_exec,system Directory : /home/addictionfreeind/public_html/admin1/app/Http/Controllers/ |
Upload File : |
<?php
namespace App\Http\Controllers;
use App\Helper\Reply;
use App\Http\Requests\TemplateTasks\StoreTask;
use App\Models\ProjectTemplate;
use App\Models\ProjectTemplateTask;
use App\Models\ProjectTemplateTaskUser;
use App\Models\TaskCategory;
use App\Models\User;
use Illuminate\Http\Request;
class ProjectTemplateTaskController extends AccountBaseController
{
public function __construct()
{
parent::__construct();
$this->pageTitle = 'app.menu.projectTemplateTask';
$this->middleware(function ($request, $next) {
abort_403(!in_array('projects', $this->user->modules));
return $next($request);
});
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create(Request $request)
{
$this->manageProjectTemplatePermission = user()->permission('manage_project_template');
abort_403(!in_array($this->manageProjectTemplatePermission, ['all', 'added']));
$this->pageTitle = __('app.menu.addProjectTemplate');
$this->template = ProjectTemplate::findOrFail($request->project_id);
$this->categories = TaskCategory::all();
$this->project = request('project_id') ? ProjectTemplate::with('projectMembers')->findOrFail(request('project_id')) : null;
if (!is_null($this->project)) {
$this->employees = $this->project->projectMembers;
} else {
$this->employees = User::allEmployees();
}
if (request()->ajax()) {
$html = view('project-templates.task.ajax.create', $this->data)->render();
return Reply::dataOnly(['status' => 'success', 'html' => $html, 'title' => $this->pageTitle]);
}
$this->view = 'project-templates.task.ajax.create';
return view('project-templates.task.create', $this->data);
}
/**
* @param StoreTask $request
* @return array
* @throws \Froiden\RestAPI\Exceptions\RelatedResourceNotFoundException
*/
public function store(StoreTask $request)
{
$task = new ProjectTemplateTask();
$task->heading = $request->heading;
if ($request->description != '') {
$task->description = trim_editor($request->description);
}
$task->project_template_id = $request->template_id;
$task->project_template_task_category_id = $request->category_id;
$task->priority = $request->priority;
$task->save();
if($request->user_id){
foreach ($request->user_id as $key => $value) {
ProjectTemplateTaskUser::create([
'user_id' => $value,
'project_template_task_id' => $task->id
]);
}
}
return Reply::successWithData(__('messages.recordSaved'), ['redirectUrl' => route('project-template.show', $request->template_id . '?tab=tasks'), 'taskID' => $task->id]);
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
$this->task = ProjectTemplateTask::findOrFail($id);
$manageProjectTemplatePermission = user()->permission('manage_project_template');
$viewProjectTemplatePermission = user()->permission('view_project_template');
abort_403(!in_array($manageProjectTemplatePermission, ['all', 'added', 'both']) && !in_array($viewProjectTemplatePermission, ['all']));
$this->pageTitle = __('app.task') . ' # ' . $this->task->id;
$this->tab = 'project-templates.task.ajax.sub_tasks';
if (request()->ajax()) {
if (request('json') == true) {
$html = view($this->tab, $this->data)->render();
return Reply::dataOnly(['status' => 'success', 'html' => $html, 'title' => $this->pageTitle]);
}
$html = view('project-templates.task.ajax.show', $this->data)->render();
return Reply::dataOnly(['status' => 'success', 'html' => $html, 'title' => $this->pageTitle]);
}
$this->view = 'project-templates.task.ajax.show';
return view('project-templates.task.create', $this->data);
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
$this->task = ProjectTemplateTask::findOrFail($id);
$this->manageProjectTemplatePermission = user()->permission('manage_project_template');
abort_403(!in_array($this->manageProjectTemplatePermission, ['all', 'added']));
$this->pageTitle = __('app.update') . ' ' . __('app.project');
$this->categories = TaskCategory::all();
$this->template = ProjectTemplate::findOrFail($this->task->project_template_id);
$this->employees = User::allEmployees();
if (request()->ajax()) {
$html = view('project-templates.task.ajax.edit', $this->data)->render();
return Reply::dataOnly(['status' => 'success', 'html' => $html, 'title' => $this->pageTitle]);
}
$this->view = 'project-templates.task.ajax.edit';
return view('project-templates.task.create', $this->data);
}
/**
* @param StoreTask $request
* @param int $id
* @return array
* @throws \Froiden\RestAPI\Exceptions\RelatedResourceNotFoundException
*/
public function update(StoreTask $request, $id)
{
$task = ProjectTemplateTask::findOrFail($id);
$task->heading = $request->heading;
if ($request->description != '') {
$task->description = trim_editor($request->description);
}
$task->project_template_task_category_id = $request->category_id;
$task->priority = $request->priority;
$task->save();
ProjectTemplateTaskUser::where('project_template_task_id', $task->id)->delete();
if($request->user_id){
foreach ($request->user_id as $key => $value) {
ProjectTemplateTaskUser::create(
[
'user_id' => $value,
'project_template_task_id' => $task->id
]
);
}
}
return Reply::successWithData(__('messages.updateSuccess'), ['redirectUrl' => route('project-template.show', $task->project_template_id . '?tab=tasks')]);
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
ProjectTemplateTask::destroy($id);
return Reply::success(__('messages.deleteSuccess'));
}
}