Changes
Specific Folder FTP Upload / ftp-deploy (push) Successful in 29s
Details
Specific Folder FTP Upload / ftp-deploy (push) Successful in 29s
Details
This commit is contained in:
parent
1f2134e6de
commit
0eac65946b
|
|
@ -158,6 +158,33 @@ class FormController extends Controller
|
|||
$data['additional'] = $additional_info;
|
||||
}
|
||||
|
||||
// Data to be Validated (team2): list logged-in user submissions when not editing
|
||||
if ($formdata->form_id === '1793786953-f43d04cb-856d-4cfe-abcc-358042ecb98b' && empty($id)) {
|
||||
$history = LambdaRequest::postrequest('form', 'formentity/getformhistory', [
|
||||
'form_id' => $formdata->form_id,
|
||||
'user_id' => $formdata->user_id,
|
||||
'partition' => $formdata->partition,
|
||||
'limit' => 10000,
|
||||
]);
|
||||
$submissions = (isset($history->data) && isset($history->data->submissions) && is_array($history->data->submissions))
|
||||
? $history->data->submissions
|
||||
: [];
|
||||
$isBlank = function ($value) {
|
||||
return $this->isBlankFormValue($value);
|
||||
};
|
||||
usort($submissions, function ($a, $b) use ($isBlank) {
|
||||
$aMissing = $isBlank($a->formdata->mobile_no ?? null)
|
||||
|| $isBlank($a->formdata->email_id ?? null);
|
||||
$bMissing = $isBlank($b->formdata->mobile_no ?? null)
|
||||
|| $isBlank($b->formdata->email_id ?? null);
|
||||
if ($aMissing === $bMissing) {
|
||||
return 0;
|
||||
}
|
||||
return $aMissing ? -1 : 1;
|
||||
});
|
||||
$data['submissions'] = $submissions;
|
||||
}
|
||||
|
||||
// if ($formdata->form_id == '1731413373-65062594-7136-45b2-a846-b34be9afe3b9') {
|
||||
// // For debug: print $data
|
||||
// echo '<pre>' . print_r($data, true) . '</pre>'; exit;
|
||||
|
|
@ -194,6 +221,17 @@ class FormController extends Controller
|
|||
}
|
||||
}
|
||||
|
||||
protected function isBlankFormValue($value): bool
|
||||
{
|
||||
if ($value === null) {
|
||||
return true;
|
||||
}
|
||||
if (is_array($value) || is_object($value)) {
|
||||
return count((array) $value) === 0;
|
||||
}
|
||||
return trim((string) $value) === '';
|
||||
}
|
||||
|
||||
protected function muscle_questions($formdata) {
|
||||
switch($formdata->form_id) {
|
||||
case '63c2ff17-a69c-4b47-af33-1d9909c608b6':
|
||||
|
|
@ -9013,6 +9051,10 @@ class FormController extends Controller
|
|||
$form_id = $request->input('form_id', $formdata->form_id);
|
||||
$formdata->form_id = $form_id;
|
||||
$request->session()->put('formdata', $formdata);
|
||||
// Data to be Validated: list lives on the form itself (no separate history / new entry)
|
||||
if ($form_id === '1793786953-f43d04cb-856d-4cfe-abcc-358042ecb98b') {
|
||||
return redirect('/form/show');
|
||||
}
|
||||
//echo '<pre>'; print_r($formdata); exit;
|
||||
$history = LambdaRequest::postrequest('form', 'formentity/getformhistory', ['form_id' => $form_id, 'user_id' => $formdata->user_id, 'partition' => $formdata->partition ]);
|
||||
//echo '<pre>'; print_r($history); print_r($formdata); exit;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,26 @@
|
|||
@php
|
||||
$isEdit = !empty($id);
|
||||
$qMap = [];
|
||||
foreach ($questions as $question) {
|
||||
$qMap[$question->code] = $question;
|
||||
}
|
||||
$val = function ($code) use ($qMap) {
|
||||
return isset($qMap[$code]) && isset($qMap[$code]->value) ? $qMap[$code]->value : '';
|
||||
};
|
||||
$isBlank = function ($value) {
|
||||
if ($value === null) {
|
||||
return true;
|
||||
}
|
||||
if (is_array($value) || is_object($value)) {
|
||||
return count((array) $value) === 0;
|
||||
}
|
||||
return trim((string) $value) === '';
|
||||
};
|
||||
@endphp
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
@include('layouts.shared/title-meta', ['title' => "Form"])
|
||||
@include('layouts.shared/title-meta', ['title' => $form->title ?? 'Form'])
|
||||
@include('layouts.shared/head-css', ["mode" => $mode ?? '', "demo" => $demo ?? ''])
|
||||
<link href="{{asset('assets/libs/sweetalert2/sweetalert2.min.css')}}" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
|
|
@ -12,7 +31,7 @@
|
|||
<div class="account-pages">
|
||||
<div class="container">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8 col-lg-6 col-xl-5 p-0">
|
||||
<div class="{{ $isEdit ? 'col-md-8 col-lg-6 col-xl-5' : 'col-12' }} p-0">
|
||||
<div class="card bg-pattern">
|
||||
<div class="card-body p-3 row">
|
||||
|
||||
|
|
@ -21,246 +40,113 @@
|
|||
@if(session('success'))<div class=" alert alert-success">{{ session('success') }}
|
||||
</div>
|
||||
<br>@endif
|
||||
<div class="col-8">
|
||||
<div class="{{ $isEdit ? 'col-8' : 'col-12' }}">
|
||||
<h4 class="page-title">{{$form->title}}</h4>
|
||||
</div>
|
||||
@if(!isset($form->is_approval) || (isset($form->is_approval) && $form->is_approval != 'yes' ) )
|
||||
@if($isEdit)
|
||||
<div class="col-4">
|
||||
@if($form->link_type == 'form')
|
||||
<a href="/form/history" class="float-end pt-1">View History</a>
|
||||
@else
|
||||
<a href="{{url()->previous()}}" class="float-end pt-1">Back</a>
|
||||
@endif
|
||||
<a href="/form/show" class="float-end pt-1">Back</a>
|
||||
</div>
|
||||
@endif
|
||||
@if(isset($form->user_info))
|
||||
|
||||
@if(!$isEdit)
|
||||
<div class="col-12">
|
||||
<h6>Submitted By: {{$form->user_info->name}}</h6>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-sm table-bordered align-middle mb-0" id="validation-list">
|
||||
<thead class="table-light">
|
||||
<tr>
|
||||
<th>Edit</th>
|
||||
<th>Doctor Name</th>
|
||||
<th>MSL Code</th>
|
||||
<th>Mobile</th>
|
||||
<th>Email</th>
|
||||
<th>Contact Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@forelse(($submissions ?? []) as $submission)
|
||||
@php
|
||||
$fd = $submission->formdata ?? (object)[];
|
||||
$mobile = $fd->mobile_no ?? '';
|
||||
$email = $fd->email_id ?? '';
|
||||
$missing = $isBlank($mobile) || $isBlank($email);
|
||||
@endphp
|
||||
<tr class="{{ $missing ? 'table-danger' : '' }}">
|
||||
<td>
|
||||
<a href="/form/show?form_id={{ $form_id }}&id={{ $submission->id }}" class="btn btn-primary btn-xs">Edit</a>
|
||||
</td>
|
||||
<td>{{ $fd->contact_id ?? '' }}</td>
|
||||
<td>{{ $fd->msl_code ?? '' }}</td>
|
||||
<td>{{ $mobile }}</td>
|
||||
<td>{{ $email }}</td>
|
||||
<td>{{ $fd->contact_status ?? '' }}</td>
|
||||
</tr>
|
||||
@empty
|
||||
<tr>
|
||||
<td colspan="6" class="text-center text-muted">No submissions found.</td>
|
||||
</tr>
|
||||
@endforelse
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@else
|
||||
<form method="POST" action="/form/submit" id="report-form" enctype="multipart/form-data">
|
||||
<input type="hidden" name="form_id" value="{{$form_id}}">
|
||||
@csrf
|
||||
@if($id)
|
||||
<input type="hidden" name="id" value="{{$id}}">
|
||||
@endif
|
||||
@if(isset($form->manager_can_submit) && $form->manager_can_submit == true)
|
||||
|
||||
<div class="col-md-12 mb-2">
|
||||
<label for="field-user_id" class="form-label"> Select User / Territory <span class="text-danger">*</span> </label>
|
||||
<select class="form-control" id="field-user_id" name="user_id" required>
|
||||
<option value=""> -- Select -- </option>
|
||||
@foreach($form->users as $option)
|
||||
<option value="{{$option->value}}" hierarchy="{{$option->hierarchy_id}}" {{isset($question->value) && $question->value == $option->value ? 'selected':''}}>{{$option->display}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<input type="hidden" id="field-hierarchy_id" name="hierarchy_id" value="">
|
||||
<label for="field-contact_id" class="form-label">Doctor Name</label>
|
||||
<input type="text" id="field-contact_id" name="contact_id" class="form-control" value="{{ $val('contact_id') }}" readonly>
|
||||
</div>
|
||||
<div class="col-md-12 mb-2">
|
||||
<label for="field-msl_code" class="form-label">MSL Code</label>
|
||||
<input type="text" id="field-msl_code" name="msl_code" class="form-control" value="{{ $val('msl_code') }}" readonly>
|
||||
</div>
|
||||
<div class="col-md-12 mb-2">
|
||||
<label for="field-mobile_no" class="form-label">Mobile <span class="text-danger">*</span></label>
|
||||
<input
|
||||
type="tel"
|
||||
id="field-mobile_no"
|
||||
name="mobile_no"
|
||||
class="form-control"
|
||||
inputmode="numeric"
|
||||
pattern="[6-9][0-9]{9}"
|
||||
minlength="10"
|
||||
maxlength="10"
|
||||
title="Enter a valid 10-digit mobile number starting with 6, 7, 8, or 9."
|
||||
required
|
||||
value="{{ $val('mobile_no') }}"
|
||||
>
|
||||
</div>
|
||||
<div class="col-md-12 mb-2">
|
||||
<label for="field-email_id" class="form-label">Email <span class="text-danger">*</span></label>
|
||||
<input
|
||||
type="email"
|
||||
id="field-email_id"
|
||||
name="email_id"
|
||||
class="form-control"
|
||||
maxlength="254"
|
||||
pattern="^[a-zA-Z0-9_+%-]+(\.[a-zA-Z0-9_+%-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"
|
||||
title="Enter a valid email address, e.g. name@example.com"
|
||||
required
|
||||
value="{{ $val('email_id') }}"
|
||||
>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@foreach($questions as $question)
|
||||
<div class="col-md-12 mb-2">
|
||||
<label for="field-{{$question->code}}" class="form-label">{{$question->question}} {!!$question->required == 'yes' ? '<span class="text-danger">*</span>':''!!} </label>
|
||||
@switch($question->type)
|
||||
@case('hidden')
|
||||
<input type="{{$question->type}}" id="field-{{$question->code}}" name="{{$question->code}}" value="{{isset($question->value)?$question->value:''}}">
|
||||
@break
|
||||
@case('text')
|
||||
@case('email')
|
||||
@case('tel')
|
||||
|
||||
@php
|
||||
$fieldLabel = strtolower(trim($question->question));
|
||||
@endphp
|
||||
|
||||
@if(str_contains($fieldLabel, 'mobile'))
|
||||
<input
|
||||
type="tel"
|
||||
id="field-{{$question->code}}"
|
||||
name="{{$question->code}}"
|
||||
class="form-control"
|
||||
inputmode="numeric"
|
||||
pattern="[6-9][0-9]{9}"
|
||||
minlength="10"
|
||||
maxlength="10"
|
||||
title="Enter a valid 10-digit mobile number starting with 6, 7, 8, or 9."
|
||||
{{$question->required == 'yes' ? 'required' : ''}}
|
||||
value="{{isset($question->value) ? $question->value : ''}}"
|
||||
>
|
||||
|
||||
@elseif(str_contains($fieldLabel, 'email'))
|
||||
<input
|
||||
type="email"
|
||||
id="field-{{$question->code}}"
|
||||
name="{{$question->code}}"
|
||||
class="form-control"
|
||||
maxlength="254"
|
||||
pattern="^[a-zA-Z0-9_+%-]+(\.[a-zA-Z0-9_+%-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"
|
||||
title="Enter a valid email address, e.g. name@example.com"
|
||||
{{$question->required == 'yes' ? 'required' : ''}}
|
||||
value="{{isset($question->value) ? $question->value : ''}}"
|
||||
>
|
||||
|
||||
@else
|
||||
<input
|
||||
type="{{$question->type}}"
|
||||
id="field-{{$question->code}}"
|
||||
name="{{$question->code}}"
|
||||
class="form-control"
|
||||
{{$question->required == 'yes' ? 'required' : ''}}
|
||||
value="{{isset($question->value) ? $question->value : ''}}"
|
||||
>
|
||||
@endif
|
||||
|
||||
@break
|
||||
@case('date')
|
||||
<input type="{{$question->type}}" id="field-{{$question->code}}" name="{{$question->code}}" class="form-control" {{$question->required == 'yes'?'required':'' }} value="{{isset($question->value)?$question->value:''}}">
|
||||
@break
|
||||
@case('number')
|
||||
@php
|
||||
$fieldLabel = strtolower(trim($question->question));
|
||||
@endphp
|
||||
|
||||
@if(str_contains($fieldLabel, 'mobile'))
|
||||
<input
|
||||
type="tel"
|
||||
id="field-{{$question->code}}"
|
||||
name="{{$question->code}}"
|
||||
class="form-control"
|
||||
inputmode="numeric"
|
||||
pattern="[6-9][0-9]{9}"
|
||||
minlength="10"
|
||||
maxlength="10"
|
||||
title="Enter exactly 10 digits starting with 6, 7, 8, or 9"
|
||||
{{$question->required == 'yes' ? 'required' : ''}}
|
||||
value="{{isset($question->value) ? $question->value : ''}}"
|
||||
>
|
||||
@else
|
||||
<input
|
||||
type="number"
|
||||
min="0"
|
||||
max="9999999999"
|
||||
step="1"
|
||||
id="field-{{$question->code}}"
|
||||
name="{{$question->code}}"
|
||||
class="form-control"
|
||||
{{$question->required == 'yes' ? 'required' : ''}}
|
||||
value="{{isset($question->value) ? $question->value : 0}}"
|
||||
>
|
||||
@endif
|
||||
@break
|
||||
@case('textarea')
|
||||
<textarea id="field-{{$question->code}}" name="{{$question->code}}" class="form-control" {{$question->required == 'yes'?'required':'' }}>{{isset($question->value)?$question->value:''}}</textarea>
|
||||
@break
|
||||
@case('dropdown')
|
||||
<select class="form-control" id="field-{{$question->code}}" name="{{$question->code}}" {{$question->required == 'yes'?'required':'' }}>
|
||||
<option value=""> -- Select -- </option>
|
||||
@foreach($question->options as $option)
|
||||
<option value="{{$option->value}}" {{isset($question->value) && $question->value == $option->value ? 'selected':''}}>{{$option->display}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
@break
|
||||
@case('radio')
|
||||
@foreach($question->options as $option)
|
||||
<div class="form-check mb-2 form-check-success">
|
||||
<input class="form-check-input" type="radio" name="{{$question->code}}" id="field-{{$question->code}}_{{$option->value}}" value="{{$option->value}}">
|
||||
<label class="form-check-label" for="field-{{$question->code}}_{{$option->value}}">{{$option->display}}</label>
|
||||
</div>
|
||||
@endforeach
|
||||
@break
|
||||
@case('radiometrix')
|
||||
@php
|
||||
// Decode the first option's value to use as heading labels
|
||||
$headings =
|
||||
count($question->options) > 0
|
||||
? json_decode($question->options[0]->value)
|
||||
: [];
|
||||
@endphp
|
||||
|
||||
{{-- Matrix Wrapper with Horizontal Scroll on Small Screens --}}
|
||||
<div class="table-responsive">
|
||||
<div class="d-table w-100">
|
||||
{{-- Table Headers --}}
|
||||
<div class="d-table-row font-weight-bold">
|
||||
<div class="d-table-cell p-2" style="width: 150px;"></div>
|
||||
{{-- Placeholder for row labels --}}
|
||||
@foreach ($headings as $head)
|
||||
<div class="d-table-cell text-center p-2">{{ $head }}
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
{{-- Table Rows --}}
|
||||
@foreach ($question->options as $option)
|
||||
@php $nn = json_decode($option->value); @endphp
|
||||
<div class="d-table-row align-middle">
|
||||
<div class="d-table-cell font-weight-bold p-2"
|
||||
style="width: 150px;">
|
||||
{{ $option->display }}
|
||||
</div>
|
||||
|
||||
@foreach ($nn as $value)
|
||||
<div class="d-table-cell text-center p-2">
|
||||
<input type="radio"
|
||||
id="field-{{ $option->display }}-{{ $value }}"
|
||||
name="{{ $question->code }}[{{$option->display}}]" value="{{$value}}" class="form-check-input"
|
||||
{{ isset($question->display) && $option->display != $option->display ? 'checked' : '' }}>
|
||||
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
@break
|
||||
@case('checkbox')
|
||||
@foreach($question->options as $option)
|
||||
<div class="form-check mb-2 form-check-primary ms-2">
|
||||
<input class="form-check-input" type="checkbox" id="field-{{$question->code}}-{{$option->value}}" name="{{$question->code}}[]" value="{{$option->value}}" {{isset($question->value) && $question->value != '' && in_array($option->value, $question->value) ? 'checked':''}}>
|
||||
<label class="form-check-label" for="field-{{$question->code}}-{{$option->value}}">{{$option->display}}</label>
|
||||
</div>
|
||||
@endforeach
|
||||
@break
|
||||
@case('file')
|
||||
@if(!isset($form->is_approval) || (isset($form->is_approval) && $form->is_approval != 'yes' ) )
|
||||
<input type="file" id="field-{{$question->code}}" name="{{$question->code}}" class="form-control" value="" {{$question->required == 'yes'?'required':'' }}>
|
||||
@elseif(isset($question->value))
|
||||
<img src="{{$question->value}}" class="img-fluid">
|
||||
@endif
|
||||
|
||||
@break
|
||||
@case('multitextbox')
|
||||
<div class="row">
|
||||
@foreach($question->options as $option)
|
||||
<div class="col-6">{{$option->display}}</div>
|
||||
<div class="col-6 mb-1">
|
||||
<input type="number" id="field-{{$option->value}}" name="{{$option->value}}" class="form-control" required value="{{isset($option->val)?$option->val:0}}">
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
@break
|
||||
@endswitch
|
||||
</div>
|
||||
@endforeach
|
||||
@if(!isset($form->is_approval) || (isset($form->is_approval) && $form->is_approval != 'yes' ) )
|
||||
<div class="text-center d-grid mt-3">
|
||||
<button class="btn btn-primary" type="submit" id="submit-btn"> Submit </button>
|
||||
<button class="btn btn-primary" type="submit" id="submit-btn"> Update </button>
|
||||
</div>
|
||||
@endif
|
||||
</form>
|
||||
@endif
|
||||
|
||||
</div> <!-- end card-body -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- end card -->
|
||||
|
||||
<!-- end row -->
|
||||
|
||||
</div> <!-- end col -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- end row -->
|
||||
</div>
|
||||
<!-- end container -->
|
||||
</div>
|
||||
<!-- end page -->
|
||||
<style type="text/css">
|
||||
#pageloader {
|
||||
background: rgba( 255, 255, 255, 0.8 );
|
||||
|
|
@ -282,33 +168,15 @@
|
|||
font-weight:bold;
|
||||
font-size:16px;
|
||||
}
|
||||
#validation-list td, #validation-list th {
|
||||
white-space: nowrap;
|
||||
}
|
||||
</style>
|
||||
@include('layouts.shared/footer-script')
|
||||
<script src="{{asset('assets/libs/sweetalert2/sweetalert2.min.js')}}"></script>
|
||||
<script type="text/javascript">
|
||||
jQuery(document).ready(function($){
|
||||
$('#field-user_id').change(function(){
|
||||
let hierarchy = $('option:selected', this).attr('hierarchy');
|
||||
$('#field-hierarchy_id').val(hierarchy)
|
||||
event.preventDefault();
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: '/form/getdoctorlist?partition={{$form->partition}}&hierarchy='+hierarchy,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
success: function( data ) {
|
||||
$("#pageloader").fadeOut();
|
||||
$('#field-contact_id').html('')
|
||||
$('#field-contact_id').append($("<option></option>").attr("value",'').text('-- Select --'));
|
||||
for(let itm of data) {
|
||||
$('#field-contact_id').append($("<option></option>").attr("value",itm.value).text(itm.display));
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
console.log(hierarchy)
|
||||
})
|
||||
|
||||
@if($isEdit)
|
||||
$('#report-form').on('submit', function(event){
|
||||
event.preventDefault();
|
||||
$("#pageloader").fadeIn();
|
||||
|
|
@ -323,30 +191,30 @@
|
|||
if(data.status == 'success') {
|
||||
Swal.fire({
|
||||
title: 'Great!',
|
||||
text: 'Your data is successfully submitted!',
|
||||
text: 'Your data is successfully updated!',
|
||||
icon: 'success'
|
||||
})
|
||||
$('#report-form').trigger("reset");
|
||||
}).then(function(){
|
||||
window.location.href = '/form/show';
|
||||
});
|
||||
} else {
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: data.hasOwnProperty('message') ? 'You are not mapped to any position code' : 'Data not submitted',
|
||||
text: data.hasOwnProperty('message') ? 'for resolution please email Position code, L1 Manager and L2 Manager details to support1@stratawiz.com':'Something went wrong, please try again after some time!'
|
||||
title: data.hasOwnProperty('message') ? 'Update failed' : 'Data not submitted',
|
||||
text: data.hasOwnProperty('message') ? data.message : 'Something went wrong, please try again after some time!'
|
||||
})
|
||||
}
|
||||
},
|
||||
error: function() {
|
||||
$("#pageloader").fadeOut();
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Data not submitted',
|
||||
text: 'Something went wrong, please try again after some time!'
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
var today = new Date();
|
||||
var dd = String(today.getDate()).padStart(2, '0');
|
||||
var mm = String(today.getMonth() + 1).padStart(2, '0');
|
||||
var yyyy = today.getFullYear();
|
||||
today = yyyy + '-' + mm + '-' + dd;
|
||||
|
||||
var plandateField = document.getElementById('field-record_date');
|
||||
|
||||
plandateField.setAttribute('max', today);
|
||||
@endif
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
|
|
|||
Loading…
Reference in New Issue