This commit is contained in:
Ravi Gulhane 2023-01-18 15:04:45 +05:30
commit f11024b323
2 changed files with 144 additions and 12 deletions

View File

@ -1,6 +1,7 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests\LambdaRequest;
use DB;
@ -17,12 +18,13 @@ class FormexportController extends Controller
$this->_base_url = '/formexport';
}
public function list(Request $request) {
public function list(Request $request)
{
$entity_id = $request->session()->get('entity_id');
if($entity_id === 0) {
if ($entity_id === 0) {
return redirect('/formentitys')->withError('Question not found!');
}
$response = LambdaRequest::signedrequest('get', $this->_service, $this->_module.'/get_all', ['entity_id' => $entity_id]);
$response = LambdaRequest::signedrequest('get', $this->_service, $this->_module . '/get_all', ['entity_id' => $entity_id]);
//echo '<pre>'; print_r($response); exit;
$fields = $this->get_list_fields();
return $this->view('list')->with([
@ -34,13 +36,15 @@ class FormexportController extends Controller
]);
}
protected function get_list_buttons() {
return [ ['title' => 'Add New', 'link' => $this->_base_url.'/addnew' ] ];
protected function get_list_buttons()
{
return [['title' => 'Add New', 'link' => $this->_base_url . '/addnew']];
}
protected function get_list_fields(){
protected function get_list_fields()
{
return [
'actions' => ['title' => 'Actions', 'buttons' => [ 'delete', 'download' => ['icon' => 'cloud-download', 'href' => 'download_url'] ] ],
'actions' => ['title' => 'Actions', 'buttons' => ['delete', 'download' => ['icon' => 'cloud-download', 'href' => 'download_url']]],
'form_name' => ['title' => 'Form Name', 'type' => 'text'],
'start_date' => ['title' => 'Start Date', 'type' => 'text'],
'end_date' => ['title' => 'End Date', 'type' => 'text'],
@ -49,10 +53,11 @@ class FormexportController extends Controller
];
}
protected function get_form_fields($type, $values){
protected function get_form_fields($type, $values)
{
$forms = $this->getlambda('get', 'form', 'formentity', 'dropdown');
$forms_dd = [];
foreach($forms->data->items as $form){
foreach ($forms->data->items as $form) {
$forms_dd[$form->id] = $form->title;
}
$this->_request->session()->put('form_list_dropdown', $forms_dd);
@ -62,19 +67,50 @@ class FormexportController extends Controller
'form_id' => ['title' => 'Select Form', 'type' => 'select', 'required' => true, 'values' => $forms_dd],
'start_date' => ['title' => 'Start Date', 'type' => 'date', 'required' => true],
'end_date' => ['title' => 'End Date', 'type' => 'date', 'required' => true],
'status' => ['title' => 'Status', 'type' => 'select', 'required' => true, 'values' => ['active' => 'Active', 'disabled' => 'Disabled'] ],
'status' => ['title' => 'Status', 'type' => 'select', 'required' => true, 'values' => ['active' => 'Active', 'disabled' => 'Disabled']],
];
}
protected function _beforesave($type, $request) {
protected function _beforesave($type, $request)
{
$data = $request->except('_token');
$forms = $this->_request->session()->get('form_list_dropdown');
$data['form_name'] = $forms[$data['form_id']];
return $data;
}
protected function _beforeform($type, $values) {
protected function _beforeform($type, $values)
{
return $values;
}
public function getstatus(Request $request)
{
$id = $request->input('id');
$response = LambdaRequest::signedrequest('get', $this->_service, $this->_module . '/get_one', ['id' => $id]);
return response()->json(["state" => $response->data->item->state, "download_url" => $response->data->item->download_url]);
}
public function save($type, $request)
{
if ($type == 'edit') {
$url = '/update';
} else {
$url = '/create';
}
$data = $this->_beforesave($type, $request);
//echo '<pre>'; print_r($data); exit;
$response = LambdaRequest::signedrequest('post', $this->_service, $this->_module . $url, $data);
$export_id = $response->data->item->id;
$download_url = $response->data->item->download_url;
//echo '<pre>'; print_r($response); exit;
if ($response->statusCode == 200 && $response->status == "success") {
//echo '<pre>'; print_r($response); exit;
//return redirect($this->_base_url.'/edit?id='.$response->data->item->id)->withMessage('Successfully Saved !!!');
return view('common.exportdownload', compact('export_id', 'download_url'));
} else {
return redirect($this->_base_url . 's')->withError('Some Error occured! ' . $response->body->message);
//return \Redirect::back()->withMessage('Some Error occured!');
}
}
}

View File

@ -0,0 +1,96 @@
@extends('layouts.vertical', ['page_title' => 'Add & Edit Products'])
@section('css')
<style type="text/css">
#pageloader {
background: rgba(255, 255, 255, 0.8);
display: none;
height: 100%;
position: fixed;
width: 100%;
z-index: 9999;
}
#pageloader img {
left: 50%;
margin-left: -32px;
margin-top: -32px;
position: absolute;
top: 50%;
}
</style>
<link href="{{ asset('assets/libs/sweetalert2/sweetalert2.min.css') }}" rel="stylesheet" type="text/css" />
@endsection
@section('content')
<div id="pageloader">
<img src="{{ asset('assets/images/loader-large.gif') }}" alt="processing..." />
</div>
<div class="container-fluid">
@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">
<input type="hidden" id="export_id" value="{{ $export_id }}">
</div>
</div>
</div>
</div>
<style type="text/css">
.ms-container {
max-width: 100%
}
</style>
@endsection
@section('script')
<script src="{{ asset('assets/libs/sweetalert2/sweetalert2.min.js') }}"></script>
<script type="text/javascript">
jQuery(document).ready(function($) {
$("#pageloader").fadeIn();
worker();
});
function worker() {
$.ajax({
type: "GET",
url: '/formexport/getstatus?id=' + document.getElementById('export_id').value,
processData: false,
contentType: false,
success: function(data) {
// console.log(data);
var sweet_loader = '<div class="sweet_loader"> <div> <button class="btn btn-info btn-sm" onclick="history.back()">Go Back</button> </div> </div>';
var sweet_loader_download = '<div class="sweet_loader"> <div> <a class="btn-success btn-sm" href=' + data.download_url + '>Download</a> </div> </div>';
if (data.state == 'ready') {
$("#pageloader").fadeOut();
Swal.fire({
title: 'Data Exported Successfully!',
icon: 'success',
showConfirmButton: false,
onRender: function() {
$('.swal2-content').prepend(sweet_loader_download);
}
})
} else {
$("#pageloader").fadeOut();
swal.fire({
title: 'Exporting Data!',
allowOutsideClick: false,
didOpen: () => {
Swal.showLoading()
},
onRender: function() {
$('.swal2-content').prepend(sweet_loader);
}
});
}
},
});
}
var refInterval = window.setInterval('worker()', 5000);
</script>
@endsection