MINI Sh3ll
<?php $__env->startSection('title', 'Plants'); ?>
<?php $__env->startSection('content'); ?>
<div class="m-content">
<div class="row">
<div class="m-portlet m-portlet--mobile filter_row">
<!--begin: Portlet Head-->
<div class="m-portlet__head">
<div class="m-portlet__head-caption">
<div class="m-portlet__head-title">
<h3 class="m-portlet__head-text">
Register API
</h3>
</div>
</div>
<div class="m-portlet__head-tools">
<a href="<?php echo e(route('register-api.index')); ?>" class="btn btn-sm btn-accent m-btn m-btn--custom m-btn--icon m-btn--air">
<span>
<i class="la la-arrow-left"></i>
<span>
Back
</span>
</span>
</a>
</div>
</div>
<!--end: Portlet Head-->
<!--begin: Form Wizard-->
<div class="m-wizard m-wizard--1 m-wizard--success" id="m_wizard">
<!--begin: Message container -->
<div class="m-portlet__padding-x">
<!-- Here you can put a message or alert -->
</div>
<!--end: Message container -->
<!--begin: Form Wizard Head -->
<div class="m-wizard__head m-portlet__padding-x">
<!--begin: Form Wizard Progress -->
<div class="m-wizard__progress">
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="100" aria-valuemin="0"
aria-valuemax="100"></div>
</div>
</div>
<!--end: Form Wizard Progress -->
<!--begin: Form Wizard Nav -->
<div class="m-wizard__nav">
<div class="m-wizard__steps">
<div class="m-wizard__step m-wizard__step--current" m-wizard-target="m_wizard_form_step_1">
<div class="m-wizard__step-info">
<a href="#" class="m-wizard__step-number">
<span>
<span>
1
</span>
</span>
</a>
<div class="m-wizard__step-line">
<span></span>
</div>
<div class="m-wizard__step-label">
API Information
</div>
</div>
</div>
<div class="m-wizard__step" m-wizard-target="m_wizard_form_step_2">
<div class="m-wizard__step-info">
<a href="#" class="m-wizard__step-number">
<span>
<span>
2
</span>
</span>
</a>
<div class="m-wizard__step-line">
<span></span>
</div>
<div class="m-wizard__step-label">
API Configuration
</div>
</div>
</div>
</div>
</div>
<!--end: Form Wizard Nav -->
</div>
<!--end: Form Wizard Head -->
<!--begin: Form Wizard Form-->
<div class="m-wizard__form">
<!--
1) Use m-form--label-align-left class to alight the form input lables to the right
2) Use m-form--state class to highlight input control borders on form validation
-->
<?php echo Form::model($registerApi,array('route' => ['register-api.update', $registerApi->id],'method'=>'PATCH','id'=>'m_form', 'data-parsley-validate'=>'true', 'class'=>'m-form m-form--label-align-left- m-form--state-' ,'autocomplete' => "off")); ?>
<!-- <form class="m-form m-form--label-align-left- m-form--state-" id="m_form" autocomplete="off"
action="<?php echo e(route('register-api.update',$registerApi->id)); ?>" method="PATCH" role="form" data-parsley-validate="parsley"> -->
<?php echo e(csrf_field()); ?>
<!--begin: Form Body -->
<div class="m-portlet__body">
<!--begin: Form Wizard Step 1-->
<div class="m-wizard__form-step m-wizard__form-step--current" id="m_wizard_form_step_1">
<div class="m-form__heading">
<h3 class="m-form__heading-title">
API Details
</h3>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group m-form__group">
<label for="exampleInputEmail1">
API Name<span class="text-danger">*</span>
</label>
<input type="text" class="form-control m-input" name="name" value="<?php echo e($registerApi->name); ?>"
placeholder="API Name" data-parsley-required='required'
data-parsley-required-message='API name is required'
data-parsley-trigger='change focusout'
data-parsley-minlength='1'
data-parsley-maxlength='200'
data-parsley-minlength-message='You need to enter at least a 1 characters'
data-parsley-maxlength-message='You need to enter maximum 200 characters'
data-parsley-pattern-message='Enter valid api name'
data-parsley-group='m_step_1'>
<span class="m-form__help"></span>
</div>
</div>
<div class="col-md-6">
<div class="form-group m-form__group">
<label for="exampleInputEmail1">
QID<span class="text-danger">*</span>
</label>
<input type="text" class="form-control m-input" name="qid"
placeholder="QID" readonly data-parsley-required='required' value="<?php echo e($registerApi->qid); ?>"
data-parsley-required-message='QID is required'
data-parsley-trigger='change focusout'
data-parsley-minlength='2'
data-parsley-maxlength='32'
data-parsley-type-message="QID should be a number "
data-parsley-group='m_step_1'>
<span class="m-form__help"></span>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group m-form__group">
<label for="exampleInputEmail1">
Plot Type
</label>
<select class="form-control getDuration" name="plot_type"
data-parsley-group='m_step_1'
required=""
data-parsley-required-message="Plot type is required"
data-duration = <?php echo e($registerApi->graph_duration); ?>
>
<option value="">Select Plot Type</option>
<option value="1">Graph</option>
<option value="2">Numeric</option>
</select>
<span class="m-form__help"></span>
</div>
</div>
<div class="col-md-6">
<div class="form-group m-form__group">
<label for="exampleInputEmail1">
Graph Duration
</label>
<select class="form-control duration" name="duration"
data-parsley-group='m_step_1'
required=""
data-parsley-required-message="Graph Duration required">
<option value="">Select Graph Duration</option>
<?php $__currentLoopData = $graphDuration; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $key => $duration): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
<option value="<?php echo e($key); ?>"><?php echo e(ucfirst($duration)); ?></option>
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
</select>
<span class="m-form__help"></span>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group m-form__group">
<label for="exampleInputEmail1">
Min Date<span class="text-danger">*</span>
</label>
<input type="text" class="form-control m-input" name="min_date"
value="<?php echo e(old('min_date')); ?>"
placeholder="Min date keys" data-parsley-required='required'
data-parsley-required-message='Min Date is required'
data-parsley-trigger='change focusout'
data-parsley-minlength='1'
data-parsley-maxlength='32'
data-parsley-minlength-message='You need to enter at least a 1 characters'
data-parsley-maxlength-message='You need to enter maximum 32 characters'
data-parsley-pattern-message='Enter valid service id'
data-parsley-group='m_step_1'>
<span class="m-form__help"></span>
</div>
</div>
<div class="col-md-6">
<div class="form-group m-form__group">
<label for="exampleInputEmail1">
Max Date<span class="text-danger">*</span>
</label>
<input type="text" class="form-control m-input" name="max_date"
value="<?php echo e(old('max_date')); ?>"
placeholder="Max Date Keys" data-parsley-required='required'
data-parsley-required-message='Max Date is required'
data-parsley-trigger='change focusout'
data-parsley-minlength='1'
data-parsley-maxlength='32'
data-parsley-minlength-message='You need to enter at least a 1 characters'
data-parsley-maxlength-message='You need to enter maximum 32 characters'
data-parsley-pattern-message='Enter valid service id'
data-parsley-group='m_step_1'>
<span class="m-form__help"></span>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group m-form__group">
<label for="exampleInputEmail1">
Select plant
</label>
<?php
$allPlant = '';
foreach ($plants as $plant) {
$allPlant = $allPlant.','.$plant->treepye->treepye_plant_id;
}
?>
<select class="form-control plant" name="plant"
data-parsley-group='m_step_1'>
<option value="<?php echo e($allPlant); ?>">All Plant</option>
<?php $__currentLoopData = $plants; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $plant): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
<option value="<?php echo e($plant->treepye->treepye_plant_id); ?>"><?php echo e($plant->plant_name); ?></option>
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
</select>
<span class="m-form__help"></span>
</div>
</div>
<div class="col-md-6" style="display: none">
<div class="form-group m-form__group">
<label for="exampleInputEmail1">
Service ID<span class="text-danger">*</span>
</label>
<input type="text" class="form-control m-input service_id" name="service"
value=""
placeholder="Service ID" data-parsley-required='required'
data-parsley-required-message='Service ID is required'
data-parsley-trigger='change focusout'
data-parsley-minlength='1'
data-parsley-minlength-message='You need to enter at least a 1 characters'
data-parsley-pattern-message='Enter valid service id'
data-parsley-group='m_step_1'>
<span class="m-form__help"></span>
</div>
</div>
<div class="col-md-6">
</div>
</div>
</div>
<!--end: Form Wizard Step 1-->
<!--begin: Form Wizard Step 2-->
<div class="m-wizard__form-step" id="m_wizard_form_step_2">
<div class="m-form__heading">
<h3 class="m-form__heading-title">
API Configuration
</h3>
</div>
<div class="row">
<div class="col-md-6">
<div class="m-input-icon m-input-icon--right graph_datepicker graph_datepicker_2" style="float:right;">
<input type='text' class="form-control" id="graph_datepicker_2" readonly placeholder="Select month" style="margin-top: 15px;">
<span class="m-input-icon__icon m-input-icon__icon--right">
<span>
<i class="la la-calendar"></i>
</span>
</span>
</div>
<h5>Preview</h5>
<pre id="preview_response_json" style="min-height:400px;max-height:400px;overflow-y:auto;"></pre>
</div>
<div class="col-md-6">
<div id="plot_graph_1" class='plot_graph'>
<div class="form-group m-form__group">
<label for="exampleInputEmail1">
Service ID<span class="text-danger">*</span>
</label>
<select class="form-control append-api-keys" name="service_id"
data-parsley-group='plot_type_1'
required=""
data-parsley-required-message="Service ID required">
<option value="">Select Service ID</option>
</select>
<span class="m-form__help"></span>
</div>
<div class="form-group m-form__group">
<label for="exampleInputEmail1">
X Value<span class="text-danger">*</span> <span> (Please select only date key)</span>
</label>
<select class="form-control append-api-keys" name="x_value"
data-parsley-group='plot_type_1'
required=""
data-parsley-required-message="X value required">
<option value="">Select X Value</option>
</select>
<span class="m-form__help"></span>
</div>
<div class="form-group m-form__group">
<label for="exampleInputEmail1">
Y Value<span class="text-danger">*</span><span> (Please do not select date key)</span>
</label>
<select class="form-control append-api-keys" name="y_value"
data-parsley-group='plot_type_1'
required=""
data-parsley-required-message="Y value required">
<option value="">Select Y Value</option>
</select>
<span class="m-form__help"></span>
</div>
<div class="form-group m-form__group">
<label for="exampleInputEmail1">
Z Value
</label>
<select class="form-control append-api-keys" name="z_value"
data-parsley-group='plot_type_1'>
<option value="">Select Z Value</option>
</select>
<span class="m-form__help"></span>
</div>
<!-- <div class="form-group m-form__group">
<label for="exampleInputEmail1">
Unit
</label>
<select class="form-control append-api-keys" name="unit_1"
data-parsley-group='plot_type_1'>
<option value="">Select Unit</option>
</select>
<span class="m-form__help"></span>
</div> -->
</div>
<div id="plot_graph_2" class='plot_graph'>
<div class="form-group m-form__group">
<label for="exampleInputEmail1">
Value
</label>
<select class="form-control append-api-keys" name="value_key"
data-parsley-group='plot_type_2'
required=""
data-parsley-required-message="Value required">
<option value="">Select Value</option>
</select>
<span class="m-form__help"></span>
</div>
<div class="form-group m-form__group">
<label for="exampleInputEmail1">
Unit
</label>
<select class="form-control append-api-keys" name="unit_2"
data-parsley-group='plot_type_2'>
<option value="">Select Unit</option>
</select>
<span class="m-form__help"></span>
</div>
</div>
</div>
</div>
</div>
<!--end: Form Wizard Step 2-->
</div>
<!--end: Form Body -->
<!--begin: Form Actions -->
<div class="m-portlet__foot m-portlet__foot--fit m--margin-top-40">
<div class="m-form__actions m-form__actions">
<div class="row">
<div class="col-lg-6 m--align-right">
<button class="btn btn-secondary m-btn m-btn--custom m-btn--icon"
data-wizard-action="prev">
<span>
<i class="la la-arrow-left"></i>
<span>
Back
</span>
</span>
</button>
</div>
<div class="col-lg-6">
<button class="btn btn-primary m-btn m-btn--custom m-btn--icon m--align-left"
data-wizard-action="submit">
<span>
<i class="la la-check"></i>
<span>
Submit
</span>
</span>
</button>
<div class="m--align-right">
<button type="button" class="btn btn-warning m-btn m-btn--custom m-btn--icon nextMove"
data-wizard-action="next" style="float:right">
<span>
<span>
Check Result
</span>
<i class="la la-arrow-right"></i>
</span>
</button>
</div>
</div>
<div class="col-lg-2"></div>
</div>
</div>
</div>
<!--end: Form Actions -->
</form>
</div>
<!--end: Form Wizard Form-->
</div>
<!--end: Form Wizard-->
</div>
</div>
</div>
<?php $__env->stopSection(); ?>
<?php $__env->startSection('style'); ?>
<style type="text/css">
.select2-container--default.select2-container--focus .select2-selection--multiple, .select2-container--default.select2-container--focus .select2-selection--single, .select2-container--default.select2-container--open .select2-selection--multiple, .select2-container--default.select2-container--open .select2-selection--single {
width: 500px;
}
.select2-container--default .select2-selection--multiple .select2-selection__rendered {
width: 500px !important;
}
</style>
<?php $__env->stopSection(); ?>
<?php $__env->startSection('script'); ?>
<script>
$(document).ready(function () {
// WizardDemo.init();
$('#m_form').parsley();
var oldAPI = <?php echo json_encode($registerApi); ?>;
if(oldAPI){
$("[name='duration']").val(oldAPI.graph_duration);
$("[name='plot_type']").val(oldAPI.plot_type);
$("[name='min_date']").val(oldAPI.min_date);
$("[name='max_date']").val(oldAPI.max_date);
}
wizard = new mWizard('m_wizard', {
startStep: 1
}).on("beforeNext", function () {
$('#m_form').parsley().validate({
group: 'm_step_' + wizard.currentStep,
force: true
});
if ($('#m_form').parsley().isValid({
group: 'm_step_' + wizard.currentStep,
force: true
}) != true) {
this.stop();
}
//Fetch Details
if(wizard.currentStep==1){
var qid = $("[name='qid']").val();
var serviceId = $("[name='service']").val();
var duration = $("[name='duration']").val();
var plotType = $("[name='plot_type']").val();
$(".plot_graph").hide();
$("#plot_graph_"+plotType).show();
//Setup Datepicker
var datePickerOption = {
todayHighlight:!0,
setDate:new Date(),
endDate: new Date(),
format: "yyyy-mm-dd",
viewMode: "days",
minViewMode: "days",
orientation:"bottom left",
autoclose:true,
inline: false,
};
var placeHolder = 'Select Month';
if(duration == 1){
datePickerOption.format = 'd MM, yyyy';
datePickerOption.dateFormat = 'd MM, yyyy';
datePickerOption.minViewMode = 'days';
placeHolder = 'Select Days';
}
else if(duration == 2 ) {
datePickerOption.format = 'MM, yyyy';
datePickerOption.dateFormat = 'MM, yyyy';
datePickerOption.minViewMode = 'months';
}else if(duration == 3 ) {
datePickerOption.format = 'yyyy';
datePickerOption.dateFormat = 'yyyy';
datePickerOption.minViewMode = 'years';
placeHolder='Select year';
}
//Set placeholder for input
$("#graph_datepicker_"+2).attr('placeholder',placeHolder);
//Setup Datepicker
$("#graph_datepicker_"+2).datepicker('remove');
$("#graph_datepicker_"+2).datepicker(datePickerOption);
$(".graph_datepicker_"+2).on('changeDate', function(selected) {
//Update Graph when date changes
var m = moment($("#graph_datepicker_"+2).datepicker("getDate"));
var extraParams = {};
extraParams.date = m.format('YYYY-MM');
extraParams.day = m.format('YYYY-MM-DD');
extraParams.year = m.format('YYYY');
fetchAPIResponse(qid,serviceId,duration,extraParams);
$(this).datepicker("hide");
$(".datepicker-inline").remove();
});
fetchAPIResponse(qid,serviceId,duration,{});
function fetchAPIResponse(qid,serviceId,duration,extraParams){
if(!extraParams){
extraParams={};
}
var objData = Object.assign({},{'qid': qid,'service_id':serviceId,"duration":duration,"_token": "<?php echo e(csrf_token()); ?>",
min_date:$("[name='min_date']").val(),
max_date:$("[name='max_date']").val(),
},extraParams);
apiResponseData=null;
$("#preview_response_json").html("");
$.ajax({
data: objData,
type: 'POST',
url: "<?php echo e(route('fetchAPIStructure')); ?>",
success: function (response) {
$('.append-api-keys>option').not(":first-child").remove();
if(response.status){
$options = [];
var records = response.details.records;
$("#preview_response_json").html(JSON.stringify(response.details,undefined,2));
if(records && records.length>0){
var record = records[0];
for(var record_key in record){
$options.push($("<option/>").text(record_key).val(record_key));
}
apiResponseData=record;
previewResponse = records[0];
}
$(".append-api-keys").append($options);
if(plotType==1){
$("[name='service_id']").val(oldAPI.service_id);
$("[name='x_value']").val(oldAPI.x_value);
$("[name='y_value']").val(oldAPI.y_value);
$("[name='service_id'],[name='x_value'],[name='y_value']").attr('required',true);
$("[name='value_key']").removeAttr('required');
}else{
$("[name='value_key']").val(oldAPI.y_value);
$("[name='service_id'],[name='x_value'],[name='y_value']").removeAttr('required');
$("[name='value_key']").attr('required',true);
}
}else{
$("#preview_response_json").html(JSON.stringify(response,undefined,2));
}
}
});
}
}
}).on("change", function (e) {
mUtil.scrollTop();
})
$("#m_form").find('[data-wizard-action="submit"]').on("click", function () {
console.log("Called")
$(this).submit();
});
$('#m_form').parsley().destroy();
//Force Y value to not have keys for date
$("[name='y_value']").on('change',function(){
var key = $(this).val();
if(key.length>0 && previewResponse){
if(previewResponse[key]){
var res = previewResponse[key];
//Return if its not date
if(!moment(res).isValid() || !isNaN(res)){
return;
}
}
$(this).val('').trigger('change');
}
});
$(document).on('change','.plant',function(){
var service_id = $(this).val();
$('.service_id').val('');
if(service_id) {
$('.service_id').val(service_id);
}
});
$(document).on('change','.getDuration',function(){
var durationType = this.value;
$.ajax({
data: {'durationType': durationType},
type: 'get',
url: "<?php echo e(route('getDuration')); ?>",
dataType: "json",
success: function (response) {
console.log(response);
$('.duration').prop('disabled', false);
$('.duration').empty();
$('.duration').append('<option value="">Select Graph Duration</option>');
$.each(response, function (index, Obj) {
$('.duration').append('<option value="' + index + '">' + Obj + '</option>');
});
if(durationType==oldAPI.plot_type){
codeAddress();
}
}
});
});
$('.getDuration').trigger('change');
$('.plant').trigger('change');
});
function codeAddress() {
var duration = $('.getDuration').data('duration');
$('.duration').val(duration);
}
window.onload = codeAddress
</script>
<?php $__env->stopSection(); ?>
<?php echo $__env->make('layouts.main', \Illuminate\Support\Arr::except(get_defined_vars(), array('__data', '__path')))->render(); ?>
OHA YOOOO