This commit is contained in:
Ravi Gulhane 2022-08-12 13:40:42 +05:30
parent 71f2f59185
commit f81bbbaf1c
9 changed files with 482 additions and 12 deletions

View File

@ -4,6 +4,9 @@ namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests\LambdaRequest;
use DB;
use League\Csv\Reader;
use Log;
class ContactController extends Controller
{
public function __construct()
@ -152,4 +155,51 @@ class ContactController extends Controller
]);
}
// public function postimport(Request $request) {
// if( $request->file('importfile') ) {
// $path = $request->file('importfile')->store('user_import');
// $request->session()->put('user_import_path', $path);
// $csv = Reader::createFromPath(storage_path('app') .'/' . $path, 'r');
// $csv->setHeaderOffset(0);
// $header = $csv->getHeader(); //returns the CSV header record
// $records = $csv->getRecords(); //returns all the CSV records as an Iterator
// $contacts = [];
// echo '<pre>';
// foreach($records as $record) {
// $contacts[] = (array)$record;
// }
// $created = 0;
// $updated = 0;
// $count = 0;
// $total = sizeof($contacts);
// while($count < $total) {
// $tempdata = array_slice($contacts, $count, 20);
// Log::debug(print_r($tempdata, true));
// $response = LambdaRequest::signedrequest('post', $this->_service, $this->_module.'/import', $tempdata);
// Log::debug(print_r($response, true));
// $count = $count + 20;
// $created = $created + $response->data->created_count;
// $updated = $updated + (isset($response->data->updated_count) ? $response->data->updated_count : 0);
// Log::debug(print_r(['$count' => $count, '$created' => $created, '$updated' => $updated], true));
// }
// //echo '<pre>'; print_r($response); exit;
// if($response->statusCode == 200 && $response->status == "success") {
// return redirect($this->_base_url.'s')->withMessage('Successfully Imported ' .$created. ' records and Updated ' .$updated. ' records out of ' .$total. ' records!!!');
// } else {
// return \Redirect::back()->withMessage('Some Error occured!');
// }
// exit;
// return redirect($this->_base_url.'/importmap')->withMessage('Successfully Uploaded !!!');
// } else {
// return \Redirect::back()->withMessage('Some Error occured!');
// }
// }
}

View File

@ -0,0 +1,37 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests\LambdaRequest;
use DB;
class ContestparameterController extends Controller
{
public function __construct()
{
$this->middleware('auth');
$this->_service = 'detailing';
$this->_module = 'parameter';
$this->_viewname = 'contestparameter';
$this->_title = 'Contest Parameters';
$this->_base_url = '/contestparameter';
}
// , 'medias' => ['icon' => 'image-multiple', 'querystring' => 'id={ID}']
protected function get_list_fields(){
return [
'actions' => ['title' => 'Actions', 'buttons' => [ 'edit', 'delete' ] ],
'title' => ['title' => 'Title', 'type' => 'text'],
'scale' => ['title' => 'Scale', 'type' => 'text'],
'status' => ['title' => 'Status', 'type' => 'select'],
];
}
protected function get_form_fields($type, $values){
return [
'title' => ['title' => 'Title', 'type' => 'text', 'required' => true],
'status' => ['title' => 'Status', 'type' => 'select', 'required' => true, 'values' => ['active' => 'Active', 'disabled' => 'Disabled'] ],
'description' => ['title' => 'Contest Description', 'type' => 'textarea', 'required' => true, 'fullwidth' => true],
'scale' => ['title' => 'Scale', 'type' => 'number', 'required' => true],
];
}
}

View File

@ -203,11 +203,11 @@ class Controller extends BaseController
$total = sizeof($post);
while($count < $total) {
$tempdata = array_slice($post, $count, 20);
$tempdata = array_slice($post, $count, 15);
Log::debug(print_r($tempdata, true));
$response = LambdaRequest::signedrequest('post', $this->_service, $this->_module.'/import', $tempdata);
Log::debug(print_r($response, true));
$count = $count + 20;
$count = $count + 15;
$created = $created + $response->data->created_count;
$updated = $updated + (isset($response->data->updated_count) ? $response->data->updated_count : 0);
Log::debug(print_r(['$count' => $count, '$created' => $created, '$updated' => $updated], true));

View File

@ -0,0 +1,115 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests\LambdaRequest;
use DB;
class DetailingcontestController extends Controller
{
public function __construct()
{
$this->middleware('auth');
$this->_service = 'detailing';
$this->_module = 'contest';
$this->_viewname = 'detailingcontest';
$this->_title = 'Detailing Contests';
$this->_base_url = '/detailingcontest';
}
// , 'medias' => ['icon' => 'image-multiple', 'querystring' => 'id={ID}']
protected function get_list_fields(){
return [
'actions' => ['title' => 'Actions', 'buttons' => [ 'edit', 'delete' ] ],
'name' => ['title' => 'Title', 'type' => 'text'],
'marks' => ['title' => 'Marks', 'type' => 'text'],
'status' => ['title' => 'Status', 'type' => 'select'],
];
}
protected function get_form_fields($type, $values){
$groups = $this->getlambda('get', 'ums', 'group', 'dropdown');
$groups_dd = [];
foreach($groups->data->items as $group){
$groups_dd[$group->id] = $group->name;
}
$users = $this->getlambda('get', 'ums', 'users', 'dropdown');
$users_dd = [];
foreach($users->data->items as $user){
$users_dd[$user->id] = $user->firstname . ' ' . $user->lastname . ' (' . $user->employee_code . ')';
}
$parameters = $this->getlambda('get', 'detailing', 'parameter', 'get_all');
$params_dd = [];
foreach($parameters->data->items as $param){
$params_dd[$param->id] = $param->title . ' (Scale: ' . $param->scale . ')';
}
return [
'name' => ['title' => 'Contest Name', 'type' => 'text', 'required' => true],
'status' => ['title' => 'Status', 'type' => 'select', 'required' => true, 'values' => ['active' => 'Active', 'disabled' => 'Disabled'] ],
'description' => ['title' => 'Contest Description', 'type' => 'textarea', 'required' => true, 'fullwidth' => true],
'groups' => ['title' => 'Groups', 'type' => 'multiselect', 'required' => true, 'values' => $groups_dd ],
'evaluators' => ['title' => 'Evaluators', 'type' => 'multiselect', 'required' => true, 'values' => $users_dd ],
'observers' => ['title' => 'Observers', 'type' => 'multiselect', 'required' => true, 'values' => $users_dd ],
'evaluation_parameters' => ['title' => 'Evaluation Parameters', 'type' => 'multiselect', 'required' => true, 'values' => $params_dd ],
'evaluation_workflow' => ['title' => 'Evaluator Type', 'type' => 'select', 'required' => true, 'values' => ['ANY' => 'ANY', 'ALL' => 'ALL'] ],
'media_type' => ['title' => 'Media Type', 'type' => 'select', 'required' => true, 'values' => ['audio' => 'Audio', 'video' => 'Video', 'pdf' => 'PDF', 'image' => 'Image',] ],
'file' => ['title' => 'Media', 'type' => 'image', 'required' => true],
'cover_image' => ['title' => 'Cover Image', 'type' => 'image', 'required' => true],
'response_types' => ['title' => 'Response Types', 'type' => 'checkbox', 'required' => true, 'values' => ['audio' => 'Audio', 'video' => 'Video', 'pdf' => 'PDF', 'image' => 'Image',] ],
'response_sources' => ['title' => 'Response Sources', 'type' => 'multiselect', 'required' => true, 'values' => ['CAMERA' => 'CAMERA', 'GALLERY' => 'GALLERY'] ],
'response_self_delete' => ['title' => 'Response Deletion Access', 'type' => 'yesno', 'required' => true],
'result_publish_count' => ['title' => 'Result Publish Count', 'type' => 'number', 'required' => true],
'marks' => ['title' => 'Marks', 'type' => 'number', 'required' => true],
'is_published' => ['title' => 'Is Published', 'type' => 'yesno', 'required' => true],
'additional_evaluators' => ['title' => 'Additional Evaluators', 'type' => 'checkbox', 'required' => true, 'values' => ['level_1_manager' => '1st line manager', 'level_2_manager' => '2nd line manager', 'random_manager' => 'Random Manager',]],
];
}
protected function _beforesave($type, $request) {
$data = $request->except('_token');
if( $request->file('cover_image') ) {
$data['cover_image'] = $this->_uploadMedia($request, 'cover_image', 'detailing');
}
if( $request->file('file') ) {
$data['file'] = $this->_uploadMedia($request, 'file', 'detailing');
}
return $data;
}
protected function _beforeform($type, $values) {
if($type == 'edit') {
//echo '<pre>'; print_r($values); exit;
if(isset($values->groups))
$values->groups = explode('#', $values->groups);
else
$values->groups = [];
if(isset($values->evaluators))
$values->evaluators = explode('#', $values->evaluators);
else
$values->evaluators = [];
if(isset($values->observers))
$values->observers = explode('#', $values->observers);
else
$values->observers = [];
}
return $values;
}
public function medias(Request $request) {
$mag_id = $request->input('id', 0);
if($mag_id === 0) {
return redirect('/magazines')->withError('Magazine not found!');
} else {
$request->session()->put('mag_id', $mag_id);
return redirect('/magmedias');
}
}
}

View File

@ -68,7 +68,7 @@ class FormController extends Controller
return LambdaRequest::postrequest('form', 'formentity/getforminfo', ['finfo' => $finfo]);
});
// $finfo = LambdaRequest::postrequest('form', 'formentity/getforminfo', ['finfo' => $finfo]);
// Log::debug(print_r($finfo, true));
Log::debug(print_r($finfo, true));
$request->session()->put('formdata', $finfo->data->formdata);
if($finfo->status == 'success' && $finfo->data->formdata->link_type == 'form') {
return $this->deliverform($finfo->data->formdata, $finfo->data->questions);
@ -92,6 +92,7 @@ class FormController extends Controller
public function submit(Request $request) {
$post = $request->except('_token');
if($post['id']=='') unset($post['id']);
$formdata = $request->session()->get('formdata');
if(isset($formdata) && !empty($formdata) && $formdata->user_id != '') {
$post = $this->processformdata($formdata->form_id, $post);
@ -109,12 +110,11 @@ class FormController extends Controller
public function ajaxsubmit(Request $request) {
$post = $request->except('_token');
if(isset($post['id']) && $post['id']=='') unset($post['id']);
$formdata = $request->session()->get('formdata');
if(isset($formdata) && !empty($formdata) && $formdata->user_id != '') {
$post = $this->processformdata($formdata->form_id, $post);
//Log::debug(print_r($post, true));
$finfo = LambdaRequest::postrequest('form', 'formentity/submitform', ['formdata' => $post, 'entity_id' => $post['form_id'], 'user_id' => $formdata->user_id, 'partition' => $formdata->partition ]);
//Log::debug(print_r($finfo, true));
$post = $this->processformdata($formdata->form_id, $post, $formdata->user_id, $formdata->partition);
$finfo = LambdaRequest::postrequest('form', 'formentity/submitform', ['formdata' => $post, 'entity_id' => $formdata->form_id, 'user_id' => $formdata->user_id, 'partition' => $formdata->partition ]);
if($finfo->status == 'success') {
return response()->json(['status' => 'success']);
} else {
@ -131,9 +131,6 @@ class FormController extends Controller
if(isset($formdata) && !empty($formdata) && $formdata->user_id != '') {
$post = $this->processformdata($formdata->form_id, $post);
//echo '<pre>'; print_r($post); exit;
//Log::debug(print_r($post, true));
//echo json_encode(['formdata' => $post, 'entity_id' => $post['form_id'], 'user_id' => $formdata->user_id, 'partition' => $formdata->partition ]);
$finfo = LambdaRequest::postrequest('form', 'formentity/submitmultipleform', ['formdata' => $post, 'entity_id' => $post['form_id'], 'user_id' => $formdata->user_id, 'partition' => $formdata->partition ]);
//Log::debug(print_r($finfo, true));
if($finfo->status == 'success') {
@ -146,8 +143,13 @@ class FormController extends Controller
}
}
protected function processformdata($form, $post) {
protected function processformdata($form, $post, $user_id = 0, $partition = '' ) {
switch($form) {
case '1654748343-81b065ee-e05c-431c-a44d-706afc1c16f4':
if($post['contact_id'] == 'other') {
$post['contact_id'] = '';
}
break;
case '1650365556-f06dde85-6138-4dae-9c23-5067e318c522':
$post[ $post['brand_name'].'-current' ] = $post['current_business_value'];
$post[ $post['brand_name'].'-potential' ] = $post['potential_business_value'];
@ -163,6 +165,64 @@ class FormController extends Controller
}
}
break;
case '1655958637-c41fb1b6-4ddc-42d3-aa2a-563c1cf5e4c9':
Log::debug(print_r($post, true));
if(array_key_exists('chemist_name', $post) ) {
$chemistformdata = [];
$chemistformdata['form_id'] = '1654747635-9d7133e4-a641-4865-aeed-021bb34d8960';
$chemistformdata['record_date'] = $post['record_date'];
$chemistformdata['chemist_name'] = $post['chemist_name'];
$chemistformdata['dapasach_units'] = $post['dapasach_strips'];
$chemistformdata['dapasach_m_units'] = $post['dapasach_m_strips'];
$finfo = LambdaRequest::postrequest('form', 'formentity/submitmultipleform', ['formdata' => $chemistformdata, 'entity_id' => $chemistformdata['form_id'], 'user_id' => $user_id, 'partition' => $partition ]);
}
$rxformdata = [];
$rxformdata['form_id'] = '1657032612-8a539e63-fc5e-47c2-96f9-b4454cea7591';
$rxformdata['record_date'] = $post['record_date'];
$rxformdata['no_of_dapasach_rx'] = $post['no_of_dapasach_rx'];
$rxformdata['no_of_dapasach_m_rx'] = $post['no_of_dapasach_m_rx'];
$rxformdata['dapasach_units_made_available'] = $post['dapasach_units_made_available'];
$rxformdata['dapasach_m_units_made_available'] = $post['dapasach_m_units_made_available'];
$finfo = LambdaRequest::postrequest('form', 'formentity/submitform', ['formdata' => $rxformdata, 'entity_id' => $rxformdata['form_id'], 'user_id' => $user_id, 'partition' => $partition ]);
unset($post['chemist_name']);
unset($post['dapasach_units']);
unset($post['dapasach_m_units']);
unset($post['no_of_dapasach_rx']);
unset($post['no_of_dapasach_m_rx']);
unset($post['dapasach_units_made_available']);
unset($post['dapasach_m_units_made_available']);
Log::debug(print_r($post, true));
break;
case '1659513016-1f5e2584-fb76-4075-b040-a9a4e34a7458':
case '1659538834-fb8bd30a-a719-4285-8d74-063462930c1d':
if($post['customer_type'] == 'Doctor') {
$post['doctor_count'] = 1;
$post['retailer_count'] = 0;
} else {
$post['doctor_count'] = 0;
$post['retailer_count'] = 1;
}
$prefix = '';
if($post['brand_selected'] == 'DAPASACH FRANCHISE') {
$prefix = 'dapasach_';
if($post['customer_type'] == 'Retailer') {
$post[$prefix.'pob_dapasach'] = $post['pob_dapasach'];
$post[$prefix.'pob_dapasach_s'] = $post['pob_dapasach_s'];
$post[$prefix.'pob_dapasach_m'] = $post['pob_dapasach_m'];
}
} else if($post['brand_selected'] == 'METOLAR FRANCHISE') {
$prefix = 'metolar_';
if($post['customer_type'] == 'Retailer') {
$post[$prefix.'pob_metolar_trio'] = $post['pob_metolar_trio'];
$post[$prefix.'pob_metolar_3d'] = $post['pob_metolar_3d'];
}
}
$post[$prefix.'doctor_count'] = $post['doctor_count'];
$post[$prefix.'retailer_count'] = $post['retailer_count'];
break;
}
return $post;

View File

@ -121,7 +121,7 @@ class MetricreportController extends Controller
break;
case 'details':
if($response->data->graph->chart == 'tabular') {
$headers = ['User', 'Employee Code', 'Designation', 'Zone', 'Region', "Area", "Territory"];
$headers = ['User', 'Employee Code', 'Email', 'Designation', 'Zone', 'Region', "Area", "Territory"];
foreach($response->data->graph->values->metrics as $metric) {
$headers[] = $metric->metric;
}
@ -130,6 +130,7 @@ class MetricreportController extends Controller
$row = [];
$row[] = $user->name;
$row[] = $user->employee_code;
$row[] = $user->email;
$row[] = $user->designation;
$row[] = isset($user->positions->Zone) ? $user->positions->Zone : '-';
$row[] = isset($user->positions->Region) ? $user->positions->Region : '-';

View File

@ -0,0 +1,180 @@
@extends('layouts.vertical', ["page_title"=> "Add & Edit Products"])
@section('css')
<!-- third party css -->
<link href="{{asset('assets/libs/select2/select2.min.css')}}" rel="stylesheet" type="text/css" />
<link href="{{asset('assets/libs/multiselect/multiselect.min.css')}}" rel="stylesheet" type="text/css" />
<link href="{{ URL::asset('assets/libs/dropify/dropify.min.css')}}" rel="stylesheet" type="text/css" />
<link href="{{asset('assets/libs/bootstrap-datepicker/bootstrap-datepicker.min.css')}}" rel="stylesheet" type="text/css" />
<!-- third party css end -->
@endsection
@section('content')
<!-- Start Content-->
<div class="container-fluid">
<!-- end page title -->
@if(session()->has('message'))
<div class="alert alert-success mt-3">
{{ session()->get('message') }}
</div>
@endif
<div class="row mt-3">
<div class="col-xl-12">
<div class="card">
<form method="post" action="" id="form-availiblity" enctype="multipart/form-data">
@csrf
<div class="card-body">
<div class="row">
<div class="col-md-6 mb-3">
<h4 class="page-title">Add / Edit {{$title}}</h4>
</div>
<div class="col-md-6 mb-3">
<div class="float-end">
<a href="{{$base_url}}s" class="btn btn-dark waves-effect waves-light">Back</a>
<button type="submit" class="btn btn-success waves-effect waves-light">Submit</button>
</div>
</div>
@foreach($fields as $field => $props)
@if($props['type'] != 'hidden')
<div class="col-md-{{isset($props['fullwidth'])?'12':'6'}} mb-3">
<label for="field-{{$field}}" class="form-label">{{$props['title']}} {!!isset($props['required'])&&$props['required'] ? '<span class="text-danger">*</span>':''!!} </label>
@endif
@switch($props['type'])
@case('hidden')
<input type="{{$props['type']}}" id="field-{{$field}}" name="{{$field}}" value="{{$mode=='edit'?$item->{$field}:''}}">
@break
@case('text')
@case('email')
@case('number')
@case('tel')
<input type="{{$props['type']}}" id="field-{{$field}}" name="{{$field}}" class="form-control" placeholder="Enter {{$props['title']}}" value="{{$mode=='edit'&&isset($item->{$field})?$item->{$field}:''}}" {{isset($props['required'])&&$props['required']?'required':'' }}>
@break
@case('date')
<input type="text" id="field-{{$field}}" name="{{$field}}" class="form-control" placeholder="Enter {{$props['title']}}" value="{{$mode=='edit'&&isset($item->{$field})?$item->{$field}:''}}" data-provide="datepicker" data-date-format="mm-dd-yyyy" data-date-autoclose="true" {{isset($props['required'])&&$props['required']?'required':'' }}>
@break
@case('textarea')
<textarea id="field-{{$field}}" name="{{$field}}" class="form-control" placeholder="Enter {{$props['title']}}" {{isset($props['required'])&&$props['required']?'required':'' }}>{{$mode=='edit'&&isset($item->{$field})?$item->{$field}:''}}</textarea>
@break
@case('select')
<select class="form-control" id="field-{{$field}}" name="{{$field}}" {{isset($props['required'])&&$props['required']?'required':'' }}>
<option value=""> -- Select {{$props['title']}} -- </option>
@foreach($props['values'] as $k => $v)
<option value="{{$k}}" {{$mode=='edit' && $item->{$field} == $k ? 'selected="selected"':''}}>{{$v}}</option>
@endforeach
</select>
@break
@case('checkbox')
@foreach($props['values'] as $k => $v)
<div class="form-check mb-2 form-check-blue">
<input class="form-check-input" type="checkbox" name="{{$field}}[]" value="{{$k}}" id="field-{{$field}}-{{$k}}" {{$mode=='edit' && isset($item->{$field}) && in_array($k, $item->{$field}) ? 'checked':''}}>
<label class="form-check-label" for="field-{{$field}}-{{$k}}">{{$v}}</label>
</div>
@endforeach
@break
@case('multiselect')
<select class="form-control select2-multiple" data-toggle="select2" data-width="100%" multiple="multiple" data-placeholder="Choose {{$props['title']}}" id="field-{{$field}}" name="{{$field}}[]" {{isset($props['required'])&&$props['required']?'required':'' }}>
<option value=""> -- Select {{$props['title']}} -- </option>
@foreach($props['values'] as $k => $v)
<option value="{{$k}}" {{$mode=='edit' && isset($item->{$field}) && in_array($k, $item->{$field}) ? 'selected="selected"':''}}>{{$v}}</option>
@endforeach
</select>
@break
@case('bigmultiselect')
<select multiple="multiple" class="bigmultiselect multi-select" id="field-{{$field}}" name="{{$field}}[]" {{isset($props['required'])&&$props['required']?'required':'' }}>
@foreach($props['values'] as $k => $v)
<option value="{{$k}}" {{$mode=='edit' && in_array($k, $item->{$field}) ? 'selected="selected"':''}}>{{$v}}</option>
@endforeach
</select>
@break
@case('yesno')
<div>
<div class="form-check mb-2 form-check-success form-check-inline">
<input class="form-check-input" type="radio" name="{{$field}}" id="field-{{$field}}-yes" value="yes" {{$mode=='edit' && $item->{$field} == 'yes' ? 'checked':''}} {{isset($props['required'])&&$props['required']?'required':'' }}>
<label class="form-check-label" for="field-{{$field}}-yes">Yes</label>
</div>
<div class="form-check mb-2 form-check-danger form-check-inline">
<input class="form-check-input" type="radio" name="{{$field}}" id="field-{{$field}}-no" value="no" {{$mode=='edit' && $item->{$field} == 'no' ? 'checked':''}}>
<label class="form-check-label" for="field-{{$field}}-no">No</label>
</div>
</div>
@break
@case('image')
<div class="mt-3" id="file_wrapper">
<input type="file" name="{{$field}}" class="dropify" data-default-file="{{$mode=='edit'&&isset($item->{$field})?$item->{$field}:''}}" data-allowed-file-extensions="png jpg jpeg gif" />
<p class="text-muted text-center mt-2 mb-0">500MB Max File size</p>
</div>
@break
@case('multiimage')
<div class="mt-3" id="file_wrapper">
<input type="file" name="{{$field}}[]" multiple class="dropify" data-allowed-file-extensions="png jpg jpeg gif" />
<p class="text-muted text-center mt-2 mb-0">500MB Max File size</p>
</div>
@break
@case('file')
<div class="mt-3" id="file_wrapper">
<input type="file" name="{{$field}}" class="dropify" data-default-file="{{$mode=='edit'?$item->{$field}:''}}" data-allowed-file-extensions="png jpg jpeg gif mp4 pdf mp3 zip" />
<p class="text-muted text-center mt-2 mb-0">1GB Max File size</p>
</div>
@break
@endswitch
@if($props['type'] != 'hidden')
</div>
@endif
@endforeach
<div class="col-md-12 mb-3">
<label for="field-remarks" class="form-label">Remarks <span class="text-danger">*</span></label>
<div id="remarks-wrapper" class="row">
</div>
</div>
<div class="col-md-12 mb-3">
<div class="float-end">
<a href="{{$base_url}}s" class="btn btn-dark waves-effect waves-light">Back</a>
<button type="submit" class="btn btn-success waves-effect waves-light">Submit</button>
</div>
</div>
</div>
</div> <!-- end card-body -->
</form>
</div> <!-- end card-->
</div> <!-- end col -->
</div>
</div>
<style type="text/css">
.ms-container {max-width: 100%}
</style>
@endsection
@section('script')
<script src="{{asset('assets/libs/select2/select2.min.js')}}"></script>
<script src="{{asset('assets/libs/multiselect/multiselect.min.js')}}"></script>
<script src="{{asset('assets/libs/multiselect/jquery.quicksearch.js')}}"></script>
<script src="{{ URL::asset('assets/libs/dropify/dropify.min.js')}}"></script>
<script src="{{asset('assets/libs/bootstrap-datepicker/bootstrap-datepicker.min.js')}}"></script>
<script type="text/javascript">
$(document).ready(function(){
$('[data-toggle="select2"]').select2();
$('.dropify').dropify({
messages: {
'default': 'Drag and drop a file here or click',
'replace': 'Drag and drop or click to replace',
'remove': 'Remove',
'error': 'Ooops, something wrong appended.'
},
error: {
'fileSize': 'The file size is too big (500MB max).'
}
});
$('#field-scale').on('input', function() {
$('#remarks-wrapper').html('');
for (let i = 0; i < $(this).val(); i++) {
$('#remarks-wrapper').append(`<div class="col-md-12 mb-3">
<input type="text" name="regards[]" class="form-control">
</div>`)
}
});
});
</script>
@endsection

View File

@ -175,6 +175,27 @@
</li>
@endif
<li>
<a href="#sidebarDetailing" data-bs-toggle="collapse">
<i data-feather="book-open"></i>
<span> Detailing </span>
<span class="menu-arrow"></span>
</a>
<div class="collapse" id="sidebarDetailing">
<ul class="nav-second-level">
<li>
<a href="/detailingcontests">Contests</a>
</li>
<li>
<a href="/contestparameters">Parameters</a>
</li>
</ul>
</div>
</li>
@if(in_array('metric_get_all', $permissions) ||
in_array('injestion_mapping_get_all', $permissions) ||
in_array('metric_view_get_all', $permissions) )

View File

@ -37,6 +37,9 @@ use App\Http\Controllers\FormdataController;
use App\Http\Controllers\FormsubmissionController;
use App\Http\Controllers\FormexportController;
use App\Http\Controllers\PositionController;
use App\Http\Controllers\DetailingcontestController;
use App\Http\Controllers\ContestparameterController;
/*
|--------------------------------------------------------------------------
| Web Routes
@ -98,6 +101,9 @@ $modules = ['user' => UserController::class,
'formsubmission' => FormsubmissionController::class,
'formexport' => FormexportController::class,
'position' => PositionController::class,
'detailingcontest' => DetailingcontestController::class,
'contestparameter' => ContestparameterController::class,
];
foreach ($modules as $mod => $class) {
Route::get('/'.$mod.'s', [$class, 'list'])->name($mod.'-list');