diff --git a/app/Helpers/Formhelper.php b/app/Helpers/Formhelper.php new file mode 100644 index 00000000..54420463 --- /dev/null +++ b/app/Helpers/Formhelper.php @@ -0,0 +1,17 @@ + $form_id, 'user_id' => $user_id, 'partition' => $partition, 'date_range' => $startdate.'_'.$enddate ]); + } else { + $history = LambdaRequest::postrequest('form', 'formentity/getformhistory', ['form_id' => $form_id, 'user_id' => $user_id, 'partition' => $partition ]); + } + return $history; + } +} + diff --git a/app/Http/Controllers/ContactController.php b/app/Http/Controllers/ContactController.php index d2dc737e..b64fdf9f 100644 --- a/app/Http/Controllers/ContactController.php +++ b/app/Http/Controllers/ContactController.php @@ -4,7 +4,6 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests\LambdaRequest; use DB; - class ContactController extends Controller { public function __construct() @@ -29,6 +28,40 @@ class ContactController extends Controller ]); } + protected function get_list_buttons() { + return [ ['title' => 'Add New', 'link' => $this->_base_url.'/addnew' ], ['title' => 'Import Users', 'link' => $this->_base_url.'/import'] ]; + } + + protected function get_import_fields($records){ + $response = LambdaRequest::signedrequest('get', 'ums', 'contactattribute/get_all'); + $hierar = $this->getlambda('get', 'ums', 'hierarchy', 'dropdown'); + $hierar_dd = []; + foreach($hierar->data->items as $hier){ + $hierar_dd[$hier->code] = $hier->name . ' (' . $hier->code . ')'; + } + + //echo '
'; print_r($response); exit;
+        $fields = [
+            'name' => ['title' => 'Name', 'type' => 'text', 'required' => true],
+            'email' => ['title' => 'Email', 'type' => 'email', 'required' => true],
+            'phone' => ['title' => 'Phone', 'type' => 'text', 'required' => true],
+            'msl_code' => ['title' => 'MSL Code', 'type' => 'text'],
+            'position' => ['title' => 'Position', 'type' => 'select', 'required' => true, 'values' => $hierar_dd ],
+            'status' => ['title' => 'Status', 'type' => 'select', 'required' => true, 'values' => ['active' => 'Active', 'disabled' => 'Disabled'] ],
+        ];
+
+        foreach ($response->data->items as $item) {
+            $values = [];
+            if(in_array($item->type, ['select', 'radio', 'checkbox']) ) {
+                foreach($item->options as $op) {
+                    $values[$op->value] = $op->display;
+                }
+            }
+            $fields[$item->code] = ['title' => $item->attribute, 'type' => $item->type, 'required' => $item->required=='yes'?true:false, 'values' => $values];
+        }
+
+        return $fields;
+    }
 
     // public function list(Request $request) {
     //     $response = LambdaRequest::signedrequest('get', $this->_service, $this->_module.'/get_all');
diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php
index e2c7a190..4c289178 100755
--- a/app/Http/Controllers/Controller.php
+++ b/app/Http/Controllers/Controller.php
@@ -270,7 +270,8 @@ class Controller extends BaseController
     		//return redirect($this->_base_url.'/edit?id='.$response->data->item->id)->withMessage('Successfully Saved !!!');
             return redirect($this->_base_url.'s')->withMessage('Successfully Saved !!!');
     	} else {
-    		return \Redirect::back()->withMessage('Some Error occured!');
+            return redirect($this->_base_url.'s')->withError('Some Error occured! '. $response->body->message);
+    		//return \Redirect::back()->withMessage('Some Error occured!');
     	}
     }
 
@@ -282,7 +283,8 @@ class Controller extends BaseController
             //echo '
'; print_r($response); exit;
             return redirect($this->_base_url.'s')->withMessage('Successfully Marked Deleted !!!');
         } else {
-            return \Redirect::back()->withMessage('Some Error occured!');
+            return redirect($this->_base_url.'s')->withError('Some Error occured! '. $response->body->message);
+            //return \Redirect::back()->withMessage('Some Error occured!');
         }
     }
 
diff --git a/app/Http/Controllers/FormController.php b/app/Http/Controllers/FormController.php
index 71885aad..01d81cb0 100644
--- a/app/Http/Controllers/FormController.php
+++ b/app/Http/Controllers/FormController.php
@@ -25,10 +25,13 @@ class FormController extends Controller
         $this->_base_url = '/formaction';
     }
 
-    protected function deliverform($formdata, $questions) {
+    protected function deliverform($formdata, $questions, $id = false) {
         $additional_info = $this->get_additional_info($formdata);
+        if($formdata->form_id == '1653655221-724ec5b4-fccb-4a88-bf25-cf894fa27a77'){
+            //echo '
'; print_r($questions); exit;
+        }
         //echo '
'; print_r($questions); exit;
-        $data = ['questions' => $questions, 'form' => $formdata, 'form_id' => $formdata->form_id, 'id' => false ];
+        $data = ['questions' => $questions, 'form' => $formdata, 'form_id' => $formdata->form_id, 'id' => false, 'id' => $id ];
         if(sizeof($additional_info) > 0) {
             $data['additional'] = $additional_info;
         }
@@ -84,7 +87,7 @@ class FormController extends Controller
         $id = $request->input('id', false);
         $finfo = LambdaRequest::postrequest('form', 'formentity/getformdefination', ['form_id' => $formdata->form_id, 'user_id' => $formdata->user_id, 'partition' => $formdata->partition, 'id' => $id ]);
         $formdata->title = $finfo->data->formdata->title;
-        return $this->deliverform($formdata, $finfo->data->questions);
+        return $this->deliverform($formdata, $finfo->data->questions, $id);
     }
     
     public function submit(Request $request) {
@@ -92,6 +95,7 @@ class FormController extends Controller
         $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' => $formdata->form_id, 'user_id' => $formdata->user_id, 'partition' => $formdata->partition ]);
             if($formdata->link_type == 'list') {
                 return redirect('/form/'.$request->session()->get('finfo') )->withMessage('Successfully Saved !!!');
@@ -108,6 +112,7 @@ class FormController extends Controller
         $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));
             if($finfo->status == 'success') {
@@ -120,12 +125,44 @@ class FormController extends Controller
         }
     }
 
+    public function ajaxsubmitmultiple(Request $request) {
+        $post = $request->except('_token');
+        $formdata = $request->session()->get('formdata');
+
+        if(isset($formdata) && !empty($formdata) && $formdata->user_id != '') {
+            $post = $this->processformdata($formdata->form_id, $post);
+            //echo '
'; 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') {
+                return response()->json(['status' => 'success']);
+            } else {
+                return response()->json(['status' => 'failure']);
+            }          
+        } else {
+            return response()->json(['status' => 'failure']);
+        }
+    }
+
     protected function processformdata($form, $post) {
         switch($form) {
             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'];
                 break;
+            case '1653655221-724ec5b4-fccb-4a88-bf25-cf894fa27a77':
+                $brands = ['Hinex DM' => 'hinex-dm', 'Hinex HP' => 'hinex-hp', 'Hinex ST' => 'hinex-st', 'Hinex ST +' => 'hinex-st+'];
+                foreach($post['brand'] as $i => $brand) {
+                    foreach($brands as $bname => $bkey) {
+                        if($bname == $brand)
+                            $post[$bkey][$i] = $post['units'][$i];
+                        else
+                            $post[$bkey][$i] = 0;
+                    }
+                }
+                break;
         }
 
         return $post;
@@ -165,6 +202,10 @@ class FormController extends Controller
                 }
                 return ['team' => $team];
             break;
+            case '1653655221-724ec5b4-fccb-4a88-bf25-cf894fa27a77':
+                
+                return [];
+            break;
 
             default:
                 return [];
diff --git a/config/app.php b/config/app.php
index 6ba1111e..aeb30724 100755
--- a/config/app.php
+++ b/config/app.php
@@ -178,8 +178,6 @@ return [
         App\Providers\RouteServiceProvider::class,
 
         Maatwebsite\Excel\ExcelServiceProvider::class,
-        BaoPham\DynamoDb\DynamoDbServiceProvider::class,
-
     ],
 
     /*
@@ -233,6 +231,7 @@ return [
         'Validator' => Illuminate\Support\Facades\Validator::class,
         'View' => Illuminate\Support\Facades\View::class,
 
+        'Formhelper' => App\Helpers\Formhelper::class,
     ],
 
 ];
diff --git a/resources/views/common/importmap.blade.php b/resources/views/common/importmap.blade.php
index 380ecb66..8eb0c1a3 100644
--- a/resources/views/common/importmap.blade.php
+++ b/resources/views/common/importmap.blade.php
@@ -69,7 +69,7 @@
                                                         
                                                         @break
diff --git a/resources/views/form/1650365457-c86bd7f2-a33c-49a5-9671-3c2511b57f3b.blade.php b/resources/views/form/1650365457-c86bd7f2-a33c-49a5-9671-3c2511b57f3b.blade.php
new file mode 100644
index 00000000..bd5d139e
--- /dev/null
+++ b/resources/views/form/1650365457-c86bd7f2-a33c-49a5-9671-3c2511b57f3b.blade.php
@@ -0,0 +1,150 @@
+
+
+
+    @include('layouts.shared/title-meta', ['title' => "Form"])
+    @include('layouts.shared/head-css', ["mode" => $mode ?? '', "demo" => $demo ?? ''])
+    
+
+
+ processing... +
+ + + + +@include('layouts.shared/footer-script') + + + + + \ No newline at end of file diff --git a/resources/views/form/1650365531-3efb1e12-89e5-4e5f-ba3d-2b1da3f1086d.blade.php b/resources/views/form/1650365531-3efb1e12-89e5-4e5f-ba3d-2b1da3f1086d.blade.php index 525ae4ed..a72ae1e9 100644 --- a/resources/views/form/1650365531-3efb1e12-89e5-4e5f-ba3d-2b1da3f1086d.blade.php +++ b/resources/views/form/1650365531-3efb1e12-89e5-4e5f-ba3d-2b1da3f1086d.blade.php @@ -3,9 +3,10 @@ @include('layouts.shared/title-meta', ['title' => "Form"]) @include('layouts.shared/head-css', ["mode" => $mode ?? '', "demo" => $demo ?? '']) + -
-
Loading +
+ processing...
@endif -
+ + @csrf @if($id) @@ -87,26 +89,75 @@
+ +@include('layouts.shared/footer-script') + + + + }); + diff --git a/resources/views/form/1653653181-6b4f7259-74a8-49fd-b26d-23e7aeaeadd6.blade.php b/resources/views/form/1653653181-6b4f7259-74a8-49fd-b26d-23e7aeaeadd6.blade.php new file mode 100644 index 00000000..9702bb11 --- /dev/null +++ b/resources/views/form/1653653181-6b4f7259-74a8-49fd-b26d-23e7aeaeadd6.blade.php @@ -0,0 +1,206 @@ + + + + @include('layouts.shared/title-meta', ['title' => "Form"]) + @include('layouts.shared/head-css', ["mode" => $mode ?? '', "demo" => $demo ?? '']) + + +
+ processing... +
+ + + + +@include('layouts.shared/footer-script') + + + + + \ No newline at end of file diff --git a/resources/views/form/1653654193-44b3c6b1-3148-4152-9a22-bfae999bda48.blade.php b/resources/views/form/1653654193-44b3c6b1-3148-4152-9a22-bfae999bda48.blade.php new file mode 100644 index 00000000..700e9128 --- /dev/null +++ b/resources/views/form/1653654193-44b3c6b1-3148-4152-9a22-bfae999bda48.blade.php @@ -0,0 +1,200 @@ + + + + @include('layouts.shared/title-meta', ['title' => "Form"]) + @include('layouts.shared/head-css', ["mode" => $mode ?? '', "demo" => $demo ?? '']) + + +
+ processing... +
+ + + + +@include('layouts.shared/footer-script') + + + + + \ No newline at end of file diff --git a/resources/views/form/1653655221-724ec5b4-fccb-4a88-bf25-cf894fa27a77.blade.php b/resources/views/form/1653655221-724ec5b4-fccb-4a88-bf25-cf894fa27a77.blade.php new file mode 100644 index 00000000..6ebca7a7 --- /dev/null +++ b/resources/views/form/1653655221-724ec5b4-fccb-4a88-bf25-cf894fa27a77.blade.php @@ -0,0 +1,187 @@ + + + + @include('layouts.shared/title-meta', ['title' => "Form"]) + @include('layouts.shared/head-css', ["mode" => $mode ?? '', "demo" => $demo ?? '']) + + +
+ processing... +
+ + + + +@include('layouts.shared/footer-script') + + + + + \ No newline at end of file diff --git a/resources/views/form/common.blade.php b/resources/views/form/common.blade.php index e160e66b..32ec9ff0 100644 --- a/resources/views/form/common.blade.php +++ b/resources/views/form/common.blade.php @@ -66,6 +66,14 @@ @endforeach @break + @case('checkbox') + @foreach($question->options as $option) +
+ value) && $question->value != '' && in_array($option->value, $question->value) ? 'checked':''}}> + +
+ @endforeach + @break @endswitch @endforeach diff --git a/resources/views/form/history.blade.php b/resources/views/form/history.blade.php index cd243b82..468e5058 100644 --- a/resources/views/form/history.blade.php +++ b/resources/views/form/history.blade.php @@ -54,7 +54,7 @@ @if(count((array)$question->options) > 0 && 1==2 ) {{ $question->options->{ $submission->formdata->{$code} } }} @else - {{ isset($submission->formdata->{$code}) ? $submission->formdata->{$code} : $code }} + {{ isset($submission->formdata->{$code}) ? is_array($submission->formdata->{$code})? implode(', ', $submission->formdata->{$code}) :$submission->formdata->{$code} : $code }} @endif @endforeach diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php index b1670fea..c3e58a4f 100755 --- a/resources/views/index.blade.php +++ b/resources/views/index.blade.php @@ -9,6 +9,7 @@ @section('content') +
diff --git a/routes/web.php b/routes/web.php index 0e4dcec4..d591c763 100755 --- a/routes/web.php +++ b/routes/web.php @@ -116,6 +116,8 @@ Route::get('/form/{finfo}', [FormController::class, 'handle']); Route::post('/form/getformfielddata', [FormController::class, 'getformfielddata']); Route::post('/form/submit', [FormController::class, 'submit']); Route::post('/form/ajaxsubmit', [FormController::class, 'ajaxsubmit']); +Route::post('/form/submitmultiple', [FormController::class, 'submitmultiple']); +Route::post('/form/ajaxsubmitmultiple', [FormController::class, 'ajaxsubmitmultiple']); // require __DIR__ . '/auth.php';