178 lines
9.2 KiB
PHP
178 lines
9.2 KiB
PHP
@php
|
|
$section = $section ?? 'create';
|
|
$project = $project ?? null;
|
|
$selected_members = old('user_id', $project ? $project->members->pluck('id')->toArray() : []);
|
|
$selected_categories = old('category_id', $project ? $project->categories->pluck('id')->toArray() : []);
|
|
$selected_supervisors = old('supervisor_id', $project ? $project->supervisors->pluck('id')->toArray() : []);
|
|
$selected_parents = old('parent_id', $project ? $project->parents->pluck('id')->toArray() : (($project && $project->parent_id) ? [$project->parent_id] : []));
|
|
$manager_id = old('manager_id', $project ? ($project->manager_id ?? $project->lead_id) : auth()->user()->id);
|
|
$progress_value = old('progress', $project->progress ?? 0);
|
|
$progress_manual = old('progress_manual', $project->progress_manual ?? false);
|
|
$is_locked = old('is_locked', $project->is_locked ?? false);
|
|
$category_members_map = ($categories_with_members ?? collect())->mapWithKeys(function ($cat) {
|
|
return [$cat->id => $cat->members->map(fn ($u) => ['id' => $u->id, 'name' => trim($u->user_full_name ?? ($u->first_name.' '.$u->last_name))])->values()];
|
|
});
|
|
@endphp
|
|
|
|
<div id="pp-project-form" data-section="{{ $section }}" data-progress="{{ $progress_value }}">
|
|
|
|
{{-- مشتری --}}
|
|
<div class="pp-form-section">
|
|
<div class="form-group row">
|
|
<label class="col-sm-12 col-lg-3 control-label">{{ __('role.customer') }}</label>
|
|
<div class="col-sm-12 col-lg-9">
|
|
{!! Form::select('contact_id', $customers, old('contact_id', optional($project)->contact_id), ['class' => 'form-control select2', 'placeholder' => __('messages.please_select'), 'style' => 'width:100%']) !!}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{{-- عنوان پروژه --}}
|
|
<div class="form-group row">
|
|
<label class="col-sm-12 col-lg-3 control-label required">{{ __('messages.name') }}*</label>
|
|
<div class="col-sm-12 col-lg-9">
|
|
{!! Form::text('name', old('name', optional($project)->name), ['class' => 'form-control', 'required']) !!}
|
|
</div>
|
|
</div>
|
|
|
|
{{-- درجه سختی --}}
|
|
<div class="form-group row">
|
|
<label class="col-sm-12 col-lg-3 control-label">@lang('professionalproject::lang.difficulty')</label>
|
|
<div class="col-sm-12 col-lg-9">
|
|
{!! Form::number('difficulty', old('difficulty', optional($project)->difficulty), ['class' => 'form-control', 'min' => 1, 'max' => 100, 'placeholder' => __('professionalproject::lang.difficulty_hint')]) !!}
|
|
</div>
|
|
</div>
|
|
|
|
{{-- تاریخ شروع --}}
|
|
<div class="form-group row">
|
|
<label class="col-sm-12 col-lg-3 control-label required">{{ __('business.start_date') }}*</label>
|
|
<div class="col-sm-12 col-lg-9">
|
|
{!! Form::text('start_date', old('start_date', $project && $project->start_date ? format_date($project->start_date) : null), ['class' => 'form-control datepicker', 'readonly', 'required']) !!}
|
|
</div>
|
|
</div>
|
|
|
|
{{-- مهلت --}}
|
|
<div class="form-group row">
|
|
<label class="col-sm-12 col-lg-3 control-label">@lang('professionalproject::lang.deadline')</label>
|
|
<div class="col-sm-12 col-lg-9">
|
|
{!! Form::text('end_date', old('end_date', $project && $project->end_date ? format_date($project->end_date) : null), ['class' => 'form-control datepicker', 'readonly']) !!}
|
|
</div>
|
|
</div>
|
|
|
|
{{-- وضعیت --}}
|
|
<div class="form-group row">
|
|
<label class="col-sm-12 col-lg-3 control-label required">{{ __('sale.status') }}*</label>
|
|
<div class="col-sm-12 col-lg-9">
|
|
{!! Form::select('status', $statuses, old('status', optional($project)->status ?? 'not_started'), ['class' => 'form-control select2', 'required', 'style' => 'width:100%']) !!}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="pp-form-divider"></div>
|
|
|
|
{{-- توضیحات و جزئیات --}}
|
|
<div class="pp-form-toggle-header">
|
|
<span class="pp-form-toggle-title">@lang('professionalproject::lang.description_and_details')</span>
|
|
<label class="pp-switch">
|
|
<input type="checkbox" class="pp-toggle-section" data-target="pp_section_description">
|
|
<span class="pp-switch-lever"></span>
|
|
</label>
|
|
</div>
|
|
<div class="pp-form-collapsed hidden" id="pp_section_description">
|
|
<div class="form-group">
|
|
{!! Form::label('description', __('lang_v1.description') . ':') !!}
|
|
{!! Form::textarea('description', old('description', optional($project)->description), ['class' => 'form-control', 'rows' => 4]) !!}
|
|
</div>
|
|
<div class="pp-form-divider"></div>
|
|
</div>
|
|
|
|
{{-- دستهبندی و کاربران --}}
|
|
<div class="pp-form-toggle-header">
|
|
<span class="pp-form-toggle-title">@lang('professionalproject::lang.category_and_users')</span>
|
|
<label class="pp-switch">
|
|
<input type="checkbox" class="pp-toggle-section" data-target="pp_section_category_users" @if($section === 'edit') checked @endif>
|
|
<span class="pp-switch-lever"></span>
|
|
</label>
|
|
</div>
|
|
<div class="pp-form-collapsed @if($section !== 'edit') hidden @endif" id="pp_section_category_users">
|
|
@if(!empty($categories) && count($categories))
|
|
<div class="form-group row">
|
|
<label class="col-sm-12 col-lg-3 control-label">@lang('professionalproject::lang.project_categories')</label>
|
|
<div class="col-sm-12 col-lg-9">
|
|
{!! Form::select('category_id[]', $categories, $selected_categories, ['class' => 'form-control select2', 'multiple', 'id' => 'pp_category_id', 'style' => 'width:100%']) !!}
|
|
</div>
|
|
</div>
|
|
@endif
|
|
|
|
<div class="form-group row">
|
|
<label class="col-sm-12 col-lg-3 control-label">@lang('professionalproject::lang.assigned')</label>
|
|
<div class="col-sm-12 col-lg-9">
|
|
{!! Form::select('user_id[]', $users, $selected_members, ['class' => 'form-control select2', 'multiple', 'id' => 'pp_assigned', 'style' => 'width:100%']) !!}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group row pp-manager-row">
|
|
<label class="col-sm-12 col-lg-3 control-label">@lang('professionalproject::lang.manager')</label>
|
|
<div class="col-sm-12 col-lg-9">
|
|
{!! Form::select('manager_id', $users, $manager_id, ['class' => 'form-control select2', 'placeholder' => __('messages.please_select'), 'style' => 'width:100%']) !!}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group row">
|
|
<label class="col-sm-12 col-lg-3 control-label">@lang('professionalproject::lang.supervisor')</label>
|
|
<div class="col-sm-12 col-lg-9">
|
|
{!! Form::select('supervisor_id[]', $users, $selected_supervisors, ['class' => 'form-control select2', 'multiple', 'id' => 'pp_supervisor_id', 'style' => 'width:100%']) !!}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group row">
|
|
<label class="col-sm-12 col-lg-3 control-label">@lang('professionalproject::lang.parent_project')</label>
|
|
<div class="col-sm-12 col-lg-9">
|
|
{!! Form::select('parent_id[]', $projects, $selected_parents, ['class' => 'form-control select2', 'multiple', 'style' => 'width:100%']) !!}
|
|
</div>
|
|
</div>
|
|
<div class="pp-form-divider"></div>
|
|
</div>
|
|
|
|
{{-- پیشرفت --}}
|
|
<div class="pp-form-toggle-header">
|
|
<span class="pp-form-toggle-title">@lang('professionalproject::lang.progress')</span>
|
|
<label class="pp-switch">
|
|
<input type="checkbox" class="pp-toggle-section" data-target="pp_section_progress">
|
|
<span class="pp-switch-lever"></span>
|
|
</label>
|
|
</div>
|
|
<div class="pp-form-collapsed hidden" id="pp_section_progress">
|
|
<div class="form-group row">
|
|
<label class="col-sm-12 col-lg-3 control-label">@lang('professionalproject::lang.progress_manual')</label>
|
|
<div class="col-sm-12 col-lg-9">
|
|
<label class="checkbox-inline">
|
|
{!! Form::checkbox('progress_manual', 1, $progress_manual) !!}
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="form-group row">
|
|
<label class="col-sm-12 col-lg-3 control-label">@lang('professionalproject::lang.progress')</label>
|
|
<div class="col-sm-12 col-lg-7">
|
|
<input type="range" class="pp-progress-slider" id="pp_progress_slider" min="0" max="100" step="1" value="{{ $progress_value }}">
|
|
</div>
|
|
<div class="col-sm-12 col-lg-2 text-right">
|
|
<strong><span id="pp_progress_display">{{ $progress_value }}</span>%</strong>
|
|
</div>
|
|
</div>
|
|
<input type="hidden" name="progress" id="pp_progress_input" value="{{ $progress_value }}">
|
|
<div class="pp-form-divider"></div>
|
|
</div>
|
|
|
|
{{-- قفل پروژه --}}
|
|
<div class="form-group row pp-lock-row">
|
|
<div class="col-sm-12">
|
|
<label class="checkbox-inline">
|
|
{!! Form::checkbox('is_locked', 1, $is_locked) !!}
|
|
@lang('professionalproject::lang.lock_project')
|
|
</label>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<script type="application/json" id="pp_category_members_data">@json($category_members_map)</script>
|