ultimatepos/Modules/ProfessionalProject/Resources/views/task/edit.blade.php

192 lines
9.8 KiB
PHP

@extends('layouts.app')
@section('title', __('professionalproject::lang.edit_task'))
@section('content')
@include('professionalproject::layouts.nav')
<section class="content-header"><h1>@lang('professionalproject::lang.edit_task')</h1></section>
<section class="content">
{!! Form::open(['url' => action([\Modules\ProfessionalProject\Http\Controllers\TaskController::class, 'update'], $task->id), 'method' => 'put']) !!}
<div class="box box-solid">
<div class="box-body">
<div class="row">
<div class="col-md-8">
<div class="form-group">
{!! Form::label('title', __('messages.name') . ':*') !!}
{!! Form::text('title', $task->title, ['class' => 'form-control', 'required']) !!}
</div>
</div>
<div class="col-md-4">
<div class="form-group">
{!! Form::label('project_id', __('professionalproject::lang.projects') . ':*') !!}
{!! Form::select('project_id', $projects, $task->project_id, ['class' => 'form-control select2', 'required']) !!}
</div>
</div>
</div>
<div class="form-group">
{!! Form::label('description', __('lang_v1.description') . ':') !!}
{!! Form::textarea('description', $task->description, ['class' => 'form-control', 'rows' => 3]) !!}
</div>
<div class="row">
<div class="col-md-3">
<div class="form-group">
{!! Form::label('status_id', __('sale.status') . ':') !!}
{!! Form::select('status_id', $statuses, $task->status_id, ['class' => 'form-control select2']) !!}
</div>
</div>
<div class="col-md-3">
<div class="form-group">
{!! Form::label('priority', __('sale.priority') . ':') !!}
{!! Form::select('priority', $priorities, $task->priority, ['class' => 'form-control select2']) !!}
</div>
</div>
<div class="col-md-3">
<div class="form-group">
{!! Form::label('milestone_id', __('professionalproject::lang.milestone') . ':') !!}
{!! Form::select('milestone_id', $milestones, $task->milestone_id, ['class' => 'form-control select2']) !!}
</div>
</div>
<div class="col-md-3">
<div class="form-group">
{!! Form::label('progress', __('professionalproject::lang.progress') . ':') !!}
{!! Form::number('progress', $task->progress, ['class' => 'form-control', 'min' => 0, 'max' => 100]) !!}
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
{!! Form::label('start_date', __('business.start_date') . ':') !!}
{!! Form::text('start_date', $task->start_date ? format_date($task->start_date) : null, ['class' => 'form-control datepicker', 'readonly']) !!}
</div>
</div>
<div class="col-md-4">
<div class="form-group">
{!! Form::label('due_date', __('professionalproject::lang.end_date') . ':') !!}
{!! Form::text('due_date', $task->due_date ? format_date($task->due_date) : null, ['class' => 'form-control datepicker', 'readonly']) !!}
</div>
</div>
<div class="col-md-4">
<div class="form-group">
{!! Form::label('user_id', __('professionalproject::lang.assigned_to') . ':') !!}
{!! Form::select('user_id[]', $users, $task->assignees->pluck('id'), ['class' => 'form-control select2', 'multiple']) !!}
</div>
</div>
</div>
</div>
<div class="box-footer">
<button type="submit" class="btn btn-primary">@lang('messages.update')</button>
<a href="{{ action([\Modules\ProfessionalProject\Http\Controllers\TaskController::class, 'index']) }}" class="btn btn-default">@lang('messages.cancel')</a>
</div>
</div>
{!! Form::close() !!}
<div class="box box-solid">
<div class="box-header"><h3 class="box-title">@lang('professionalproject::lang.dependencies')</h3></div>
<div class="box-body">
<table class="table table-bordered">
<thead><tr><th>@lang('professionalproject::lang.blocker_task')</th><th>@lang('professionalproject::lang.dependency_type')</th><th></th></tr></thead>
<tbody>
@foreach($dependencies as $dep)
<tr>
<td>{{ $dep->blocker->title ?? '' }}</td>
<td>{{ $dep->dependency_type }}</td>
<td><button class="btn btn-xs btn-danger delete_dep" data-id="{{ $dep->id }}"><i class="fa fa-trash"></i></button></td>
</tr>
@endforeach
</tbody>
</table>
{!! Form::open(['id' => 'add_dependency_form']) !!}
<div class="row">
<div class="col-md-4">
{!! Form::select('blocker_task_id', $project_tasks, null, ['class' => 'form-control select2', 'placeholder' => __('messages.please_select')]) !!}
</div>
<div class="col-md-3">
{!! Form::select('dependency_type', ['cannot_start' => __('professionalproject::lang.cannot_start'), 'cannot_complete' => __('professionalproject::lang.cannot_complete')], 'cannot_start', ['class' => 'form-control']) !!}
</div>
<div class="col-md-2">
<button type="button" class="btn btn-primary" id="add_dep_btn">@lang('professionalproject::lang.add_dependency')</button>
</div>
</div>
{!! Form::close() !!}
</div>
</div>
<div class="box box-solid">
<div class="box-header"><h3 class="box-title">@lang('professionalproject::lang.integration_actions')</h3></div>
<div class="box-body">
<div class="btn-group">
@if(\Module::has('Essentials') && \Module::isEnabled('Essentials'))
<button type="button" class="btn btn-warning" id="pp_create_todo_btn">
<i class="fa fa-check-square"></i> @lang('professionalproject::lang.create_essentials_todo')
</button>
<button type="button" class="btn btn-warning" id="pp_create_reminder_btn">
<i class="fa fa-bell"></i> @lang('professionalproject::lang.create_essentials_reminder')
</button>
@endif
@if(\Module::has('Crm') && \Module::isEnabled('Crm'))
<button type="button" class="btn btn-info" id="pp_create_crm_followup_btn">
<i class="fa fa-address-book"></i> @lang('professionalproject::lang.create_crm_followup')
</button>
@endif
</div>
</div>
</div>
</section>
@endsection
@section('javascript')
@include('professionalproject::partials.shamsi_datepicker')
<script>
$(document).ready(function() {
$('#add_dep_btn').click(function() {
$.post('{{ action([\Modules\ProfessionalProject\Http\Controllers\TaskController::class, "storeDependency"]) }}', {
_token: '{{ csrf_token() }}',
task_id: {{ $task->id }},
project_id: {{ $task->project_id }},
blocker_task_id: $('select[name="blocker_task_id"]').val(),
dependency_type: $('select[name="dependency_type"]').val()
}, function(r) { if (r.success) location.reload(); else toastr.error(r.msg); });
});
$('.delete_dep').click(function() {
var id = $(this).data('id');
$.ajax({ method: 'DELETE', url: '/professional-project/tasks/dependency/' + id, data: { _token: '{{ csrf_token() }}' }, success: function(r) {
if (r.success) location.reload();
}});
});
$('#pp_create_todo_btn').click(function() {
$.post('/professional-project/integrations/essentials/todo/{{ $task->id }}', { _token: '{{ csrf_token() }}' }, function(r) {
if (r.success) {
toastr.success('@lang('professionalproject::lang.integration_created')');
if (r.redirect_url) { window.open(r.redirect_url, '_blank'); }
} else {
toastr.error(r.msg || '@lang('messages.something_went_wrong')');
}
});
});
$('#pp_create_reminder_btn').click(function() {
$.post('/professional-project/integrations/essentials/reminder/{{ $task->id }}', { _token: '{{ csrf_token() }}' }, function(r) {
if (r.success) {
toastr.success('@lang('professionalproject::lang.integration_created')');
if (r.redirect_url) { window.open(r.redirect_url, '_blank'); }
} else {
toastr.error(r.msg || '@lang('messages.something_went_wrong')');
}
});
});
$('#pp_create_crm_followup_btn').click(function() {
$.post('/professional-project/integrations/crm/follow-up/{{ $task->id }}', { _token: '{{ csrf_token() }}' }, function(r) {
if (r.success) {
toastr.success('@lang('professionalproject::lang.integration_created')');
if (r.redirect_url) { window.open(r.redirect_url, '_blank'); }
} else {
toastr.error(r.msg || '@lang('messages.something_went_wrong')');
}
});
});
});
</script>
@endsection