diff --git a/app/Http/Controllers/BannerController.php b/app/Http/Controllers/BannerController.php index 5f70a79f..48a1e0c3 100644 --- a/app/Http/Controllers/BannerController.php +++ b/app/Http/Controllers/BannerController.php @@ -45,9 +45,9 @@ class BannerController extends Controller protected function _beforesave($type, $request) { $data = $request->except('_token'); - if($type == 'edit') { - $values->channels = explode('#', $values->channels); - } + // if($type == 'edit') { + // $values->channels = explode('#', $values->channels); + // } if( $request->file('media_url') ) { $data['media_url'] = $this->_uploadMedia($request, 'media_url', 'banners'); } diff --git a/app/Http/Controllers/ComcampaignController.php b/app/Http/Controllers/ComcampaignController.php new file mode 100644 index 00000000..ca53ccf0 --- /dev/null +++ b/app/Http/Controllers/ComcampaignController.php @@ -0,0 +1,139 @@ +middleware('auth'); + $this->_service = 'communication'; + $this->_module = 'comcampaign'; + $this->_viewname = 'comcampaign'; + $this->_title = 'Campaign'; + $this->_base_url = '/comcampaign'; + } + + protected function get_list_fields() + { + return [ + 'actions' => ['title' => 'Actions', 'buttons' => ['edit', 'delete', 'messages' => ['icon' => 'chart-box', 'querystring' => 'id={ID}']]], + 'name' => ['title' => 'Name', 'type' => 'text'], + 'type' => ['title' => 'Type', 'type' => 'text'], + 'message_count' => ['title' => 'Message Count', 'type' => 'text'], + 'message_sent' => ['title' => 'Message Sent', 'type' => 'text'], + 'message_read' => ['title' => 'Message Read', 'type' => 'text'], + 'status' => ['title' => 'Status', 'type' => 'select'] + ]; + } + + protected function get_form_fields($type, $values) + { + $teams = $this->getlambda('get', 'communication', 'template', 'dropdown'); + // echo '
'; print_r($teams); exit;
+        $templates = [];
+        foreach ($teams->data->items as $team) {
+            $templates[$team->template_code] = $team->name;
+        }
+
+        $chans = $this->getlambda('get', 'communication', 'channel', 'dropdown');
+        // echo '
'; print_r($teams); exit;
+        $channels = [];
+        foreach ($chans->data->items as $chan) {
+            $channels[$chan->id] = $chan->name;
+        }
+
+        $conlists = $this->getlambda('get', 'ums', 'contact_list', 'dropdown');
+        $contactlists = [];
+        foreach ($conlists->data->items as $conlist) {
+            $contactlists[$conlist->id] = $conlist->name;
+        }
+
+        $metrics = $this->getlambda('get', 'metric', 'metric', 'get_all');
+        $metric_dd = [];
+        foreach($metrics->data->items as $metric){
+            $metric_dd[$metric->id] = $metric->name;
+        }
+
+        return [
+            'name' => ['title' => 'Name', 'type' => 'text', 'required' => true],
+            'template_code' => ['title' => 'Template', 'type' => 'select', 'values' => $templates, 'required' => true],
+            'channel' => ['title' => 'Channel', 'type' => 'select', 'values' => $channels, 'required' => true],
+            'contacts' => ['title' => 'Contact Lists', 'type' => 'multiselect', 'values' => $contactlists, 'required' => true],
+            'type' => ['title' => 'Type', 'type' => 'select', 'required' => true, 'values' => ['whatsapp' => 'Whatsapp', 'sms' => 'SMS', 'email' => 'Email']],
+            'status' => ['title' => 'Status', 'type' => 'select', 'required' => true, 'values' => ['active' => 'Active', 'disabled' => 'Disabled']],
+
+            'is_scheduled' => ['title' => 'Is Scheduled', 'type' => 'yesno', 'required' => true],
+            'scheduled_time' => ['title' => 'Schedule date & time', 'type' => 'datetime', 'required' => true,],
+
+            'sent_metric' => ['title' => 'Sent Metric', 'type' => 'select', 'values' => $metric_dd, 'required' => true],
+            'read_metric' => ['title' => 'Read Metric', 'type' => 'select', 'values' => $metric_dd, 'required' => true],
+            
+        ];
+    }
+
+    protected function _beforesave($type, $request)
+    {
+        $data = $request->except('_token');
+        if ($request->file('image')) {
+            $data['image'] = $this->_uploadMedia($request, 'image', 'template');
+        }
+        return $data;
+    }
+
+    public function messages($request) {
+        $id = $request->input('id');
+        $response = LambdaRequest::signedrequest('get', $this->_service, $this->_module.'/get_all_messages', ['id' => $id]);
+
+        return $this->view('list')->with([
+            'title' => 'Messages',
+            'fields' => [
+                    'name' => ['title' => 'Name', 'type' => 'text'],
+                    'phone' => ['title' => 'Phone', 'type' => 'text'],
+                    'email' => ['title' => 'Email', 'type' => 'text'],
+
+                    'type' => ['title' => 'Type', 'type' => 'text'],
+                    'is_sent' => ['title' => 'Is Sent', 'type' => 'text'],
+                    'sent_time' => ['title' => 'Sent Time', 'type' => 'datetime'],
+                    'is_read' => ['title' => 'Is Read', 'type' => 'text'],
+                    'read_time' => ['title' => 'Read Time', 'type' => 'datetime'],
+            ],
+            'base_url' => $this->_base_url,
+            'items' => $response->data->messages,
+            'buttons' => [['title' => 'Export Excel', 'link' => $this->_base_url . '/exportmessages?id='.$id]]
+        ]);
+
+
+        //echo '
'; print_r($response); exit;
+
+        //echo '
'; print_r($response); exit;
+    }
+
+    public function exportmessages($request) {
+        $id = $request->input('id');
+        $response = LambdaRequest::signedrequest('get', $this->_service, $this->_module.'/get_all_messages', ['id' => $id]);
+        
+        $headers = ['Name', 'Phone', 'Email', 'Type', 'Is Sent', 'Sent Time', 'Is Read', 'Read Time'];
+        $exceldata[] = $headers;
+        foreach($response->data->messages as $message) {
+            $row = [];
+            $row[] = isset($message->name) ? $message->name : '-';
+            $row[] = isset($message->phone) ? $message->phone : '-';
+            $row[] = isset($message->email) ? $message->email : '-';
+            $row[] = isset($message->type) ? $message->type : '-';
+            $row[] = isset($message->is_sent) ? $message->is_sent : '-';
+            $row[] = isset($message->sent_time) ? $message->sent_time : '-';
+            $row[] = isset($message->is_read) ? $message->is_read : '-';
+            $row[] = isset($message->read_time) ? $message->read_time : '-';
+            $exceldata[] = $row;
+        }
+        return Excel::download(new InvoicesExport($exceldata), 'message.xlsx');
+    }
+}
diff --git a/app/Http/Controllers/CommbotController.php b/app/Http/Controllers/CommbotController.php
new file mode 100644
index 00000000..bb486adf
--- /dev/null
+++ b/app/Http/Controllers/CommbotController.php
@@ -0,0 +1,117 @@
+middleware('auth');
+        $this->_service = 'communication';
+        $this->_module = 'comm_bot';
+        $this->_viewname = 'commbot';
+        $this->_title = 'Communication Bot';
+        $this->_base_url = '/commbot';
+    }
+
+    protected function get_list_fields()
+    {
+        return [
+            'actions' => ['title' => 'Actions', 'buttons' => ['edit', 'delete', 'messages' => ['icon' => 'message-text-outline', 'querystring' => 'id={ID}'], 'intents' => ['icon' => 'family-tree', 'querystring' => 'id={ID}'] ]],
+            'name' => ['title' => 'Channel Name', 'type' => 'text'],
+            'type' => ['title' => 'Type', 'type' => 'text'],
+            'status' => ['title' => 'Status', 'type' => 'select'],
+        ];
+    }
+
+    protected function get_form_fields($type, $values)
+    {
+        return [
+            'name' => ['title' => 'Bot Name', 'type' => 'text', 'required' => true],
+            'type' => ['title' => 'Bot Type', 'type' => 'select', 'required' => true, 'values' => ['whatsapp' => 'Whatsapp', 'sms' => 'SMS']],
+            'status' => ['title' => 'Status', 'type' => 'select', 'required' => true, 'values' => ['active' => 'Active', 'disabled' => 'Disabled']],
+        ];
+    }
+
+    public function messages(Request $request) {
+        $entity_id = $request->input('id', 0);
+        if($entity_id === 0) {
+            return redirect('/commbots')->withError('Bot not found!');
+        } else {
+            $request->session()->put('entity_id', $entity_id);
+            return redirect('/commbotmessages');
+        }
+    }
+
+    public function intents(Request $request) {
+        $entity_id = $request->input('id', 0);
+        if($entity_id === 0) {
+            return redirect('/commbots')->withError('Bot not found!');
+        } else {
+            $request->session()->put('entity_id', $entity_id);
+            return redirect('/commbotintents');
+        }
+    }
+
+    // public function form($type, $id = null) {
+    //     $values = [];
+    //     $items = [];
+    //     if($type == 'edit') {
+    //         $response = LambdaRequest::signedrequest('get', $this->_service, $this->_module.'/get_one', ['id' => $id]);
+    //         $values = $response->data->item;
+            
+    //         $response = LambdaRequest::signedrequest('get', $this->_service, 'comm_bot_intent/get_all');
+    //         $items = [];
+    //         foreach($response->data->items as $item) {
+    //             $items[$item->parent_id][] = $item;
+    //         }
+    //         //echo '
'; print_r($items); exit;
+    //     }
+    //     $data = $this->_beforeform($type, $values);
+    //     $fields = $this->get_form_fields($type, $values);
+
+    //     return $this->view('form')->with([
+    //         'title' => $this->_title,
+    //         'mode' => $type,
+    //         'fields' => $fields,
+    //         'base_url' => $this->_base_url,
+    //         'item' => $values,
+    //         'items' => $items
+    //     ]);
+    // }
+
+    public function postaddchild(Request $request) {
+        $post = $request->input();
+        if($post['id'] != '') {
+            $url = '/update';
+        } else {
+            $url = '/create';
+        }
+        $buttons = [];
+        foreach($post['button-id'] as $k => $v) {
+            if(isset($v) && $v != '') {
+                $buttons[] = ['id' => $v, 'title' => $post['button-title'][$k] ];
+            }
+        }
+        $post['buttons'] = $buttons;
+        unset($post['button-id']);
+        unset($post['button-title']);
+        if(!isset($post['id']) || $post['id'] == '') unset($post['id']);
+        //echo '
'; print_r($post); exit;
+
+        $response = LambdaRequest::signedrequest('post', $this->_service, 'comm_bot_intent'.$url, $post);
+        //echo '
'; print_r($response); exit;
+        if($response->statusCode == 200 && $response->status == "success") {
+            return redirect($this->_base_url.'/edit?id='.$post['bot_id'])->withMessage('Successfully Saved !!!');
+        } else {
+            return redirect($this->_base_url.'/edit?id='.$post['bot_id'])->withError('Some Error occured! '. $response->body->message);
+        }
+    }
+
+    
+}
\ No newline at end of file
diff --git a/app/Http/Controllers/CommbotintentController.php b/app/Http/Controllers/CommbotintentController.php
new file mode 100644
index 00000000..383c222d
--- /dev/null
+++ b/app/Http/Controllers/CommbotintentController.php
@@ -0,0 +1,101 @@
+middleware('auth');
+        $this->_service = 'communication';
+        $this->_module = 'comm_bot_intent';
+        $this->_viewname = 'commbotintent';
+        $this->_title = 'Bot Intents';
+        $this->_base_url = '/commbotintent';
+    }
+
+    public function list(Request $request) {
+        $entity_id = $request->session()->get('entity_id');
+        if($entity_id === 0) {
+            return redirect('/commbots')->withError('Bot not found!');
+        }
+        $response = LambdaRequest::signedrequest('get', $this->_service, $this->_module.'/get_all', ['entity_id' => $entity_id]);
+        $items = [];
+        foreach($response->data->items as $item) {
+            $items[$item->parent_id][] = $item;
+        }
+        $messs = $this->getlambda('get', $this->_service, 'comm_bot_message', 'dropdown');
+        $fields = $this->get_list_fields();
+        return $this->view('list')->with([
+            'title' => $this->_title,
+            'fields' => $fields,
+            'base_url' => $this->_base_url,
+            'items' => $items,
+            'buttons' => $this->get_list_buttons(),
+            'bot_id' => $entity_id,
+            'messages' => $messs->data->items
+        ]);
+    }
+
+    protected function get_list_buttons() {
+        return [ ['title' => 'Add New', 'link' => $this->_base_url.'/addnew' ], ['title' => 'Back to Bots', 'link' => '/commbots'] ];
+    }
+
+    protected function get_list_fields(){
+        return [
+            'actions' => ['title' => 'Actions', 'buttons' => [ 'edit', 'delete' ] ],
+            //'media_thumb' => ['title' => 'Media Thumb', 'type' => 'image'],
+            'name' => ['title' => 'Name', 'type' => 'text'],
+            'type' => ['title' => 'Type', '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;
+        }
+        return [
+            'name' => ['title' => 'Title', 'type' => 'text', 'required' => true],
+            'status' => ['title' => 'Status', 'type' => 'select', 'required' => true, 'values' => ['active' => 'Active', 'disabled' => 'Disabled'] ],
+            'type' => ['title' => 'Type', 'type' => 'select', 'required' => true, 'values' => ['text' => 'Text', 'image' => 'Image', 'date' => 'Date', 'template' => 'Template', 'interactive' => 'Interactive']  ],
+
+
+            'header_type' => ['title' => 'Header Type', 'type' => 'select', 'required' => true, 'values' => ['none' => 'None', 'text' => 'Text', 'video' => 'Video', 'image' => 'Image', 'document' => 'Document']  ],
+            'header_text' => ['title' => 'Header Text (if header type is text)', 'type' => 'text'],
+            'header_media' => ['title' => 'Header Media (video, image or document)', 'type' => 'file'],
+
+            'body_text' => ['title' => 'Body Text', 'type' => 'textarea', 'required' => true, 'fullwidth' => true ],
+            'footer_text' => ['title' => 'Footer Text', 'type' => 'text', 'fullwidth' => true ],
+
+            'interactive_type' => ['title' => 'Interactive Type', 'type' => 'select', 'required' => true, 'values' => ['button' => 'Button', 'list' => 'List']  ],
+            
+            'buttons' => ['title' => 'Options', 'type' => 'mapping', 'fullwidth' => true ],
+        ];
+    }
+
+    public function postaddchild(Request $request) {
+        $post = $request->input();
+        if($post['id'] != '') {
+            $url = '/update';
+        } else {
+            $url = '/create';
+        }
+        if(!isset($post['id']) || $post['id'] == '') unset($post['id']);
+        //echo '
'; print_r($post); exit;
+
+        $response = LambdaRequest::signedrequest('post', $this->_service, 'comm_bot_intent'.$url, $post);
+        //echo '
'; print_r($response); exit;
+        if($response->statusCode == 200 && $response->status == "success") {
+            return redirect($this->_base_url.'s')->withMessage('Successfully Saved !!!');
+        } else {
+            return redirect($this->_base_url.'s')->withError('Some Error occured! '. $response->body->message);
+        }
+    }
+
+}
diff --git a/app/Http/Controllers/CommbotmessageController.php b/app/Http/Controllers/CommbotmessageController.php
new file mode 100644
index 00000000..e4cc1483
--- /dev/null
+++ b/app/Http/Controllers/CommbotmessageController.php
@@ -0,0 +1,112 @@
+middleware('auth');
+        $this->_service = 'communication';
+        $this->_module = 'comm_bot_message';
+        $this->_viewname = 'commbotmessage';
+        $this->_title = 'Bot Messages';
+        $this->_base_url = '/commbotmessage';
+    }
+
+    public function list(Request $request) {
+        $entity_id = $request->session()->get('entity_id');
+        if($entity_id === 0) {
+            return redirect('/commbots')->withError('Bot not found!');
+        }
+        $response = LambdaRequest::signedrequest('get', $this->_service, $this->_module.'/get_all', ['entity_id' => $entity_id]);
+        //echo '
'; print_r($response); exit;
+        $fields = $this->get_list_fields();
+        return $this->view('list')->with([
+            'title' => $this->_title,
+            'fields' => $fields,
+            'base_url' => $this->_base_url,
+            'items' => $response->data->items,
+            'buttons' => $this->get_list_buttons()
+        ]);
+    }
+
+    protected function get_list_buttons() {
+        return [ ['title' => 'Add New', 'link' => $this->_base_url.'/addnew' ], ['title' => 'Back to Bots', 'link' => '/commbots'] ];
+    }
+
+    protected function get_list_fields(){
+        return [
+            'actions' => ['title' => 'Actions', 'buttons' => [ 'edit', 'delete' ] ],
+            //'media_thumb' => ['title' => 'Media Thumb', 'type' => 'image'],
+            'name' => ['title' => 'Name', 'type' => 'text'],
+            'type' => ['title' => 'Type', '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;
+        }
+        return [
+            'name' => ['title' => 'Title', 'type' => 'text', 'required' => true],
+            'status' => ['title' => 'Status', 'type' => 'select', 'required' => true, 'values' => ['active' => 'Active', 'disabled' => 'Disabled'] ],
+            'type' => ['title' => 'Type', 'type' => 'select', 'required' => true, 'values' => ['text' => 'Text', 'image' => 'Image', 'document' => 'Document', 'template' => 'Template', 'interactive' => 'Interactive']  ],
+
+
+            'header_type' => ['title' => 'Header Type', 'type' => 'select', 'required' => true, 'values' => ['none' => 'None', 'text' => 'Text', 'video' => 'Video', 'image' => 'Image', 'document' => 'Document']  ],
+            'header_text' => ['title' => 'Header Text (if header type is text)', 'type' => 'text'],
+            'header_media' => ['title' => 'Header Media (video, image or document)', 'type' => 'file'],
+
+            'body_text' => ['title' => 'Body Text', 'type' => 'textarea', 'required' => true, 'fullwidth' => true ],
+            'footer_text' => ['title' => 'Footer Text', 'type' => 'text', 'fullwidth' => true ],
+
+            'interactive_type' => ['title' => 'Interactive Type (only 3 buttons are allowed, select list for more than 3)', 'type' => 'select', 'values' => ['button' => 'Button', 'list' => 'List']  ],
+            
+            'buttons' => ['title' => 'Options', 'type' => 'mapping', 'fullwidth' => true ],
+        ];
+    }
+
+    protected function _beforesave($type, $request) {
+        $data = $request->except('_token');
+        $data['bot_id'] = $request->session()->get('entity_id');
+        $buttons = [];
+        foreach($data as $k => $v) {
+            if(!isset($v)) {
+                unset($data[$k]);
+            }
+        }
+        if( $request->file('header_media') ) {
+            $data['header_media'] = $this->_uploadMedia($request, 'header_media', 'messages');
+        }
+        if($data['header_type'] == 'text') {
+            $data['header'] = ['type' => 'text', 'text' => $data['header_text'] ];
+        } elseif($data['header_type'] != 'none' && $data['header_type'] != 'text') {
+            $data['header'] = ['type' => $data['header_type'], $data['header_type'] => $data['header_media'] ];
+        }
+        unset($data['header_type']);
+        unset($data['header_text']);
+        unset($data['header_media']);
+
+        //echo '
'; print_r($data); exit;
+        if($data['type'] == 'interactive') {
+            foreach($data['button']['type'] as $i => $type) {
+                $buttons[] = ['type' => $type, 'id' => $data['button']['id'][$i], 'title' => $data['button']['title'][$i], 'description' => $data['button']['description'][$i] ];
+            }
+        }
+        $data['buttons'] = $buttons;
+        return $data;
+    }
+
+    protected function _beforeform($type, $values) {
+        //echo '
'; print_r($values); exit;
+        return $values;
+    }
+
+}
diff --git a/app/Http/Controllers/CommchannelController.php b/app/Http/Controllers/CommchannelController.php
new file mode 100644
index 00000000..8c390227
--- /dev/null
+++ b/app/Http/Controllers/CommchannelController.php
@@ -0,0 +1,117 @@
+middleware('auth');
+        $this->_service = 'communication';
+        $this->_module = 'channel';
+        $this->_viewname = 'commchannel';
+        $this->_title = 'Communication Channels';
+        $this->_base_url = '/communicationchannel';
+    }
+
+    protected function get_list_fields()
+    {
+        return [
+            'actions' => ['title' => 'Actions', 'buttons' => ['edit', 'delete']],
+            'name' => ['title' => 'Channel Name', 'type' => 'text'],
+            'type' => ['title' => 'Type', 'type' => 'text'],
+            'status' => ['title' => 'Status', 'type' => 'select'],
+        ];
+    }
+
+    protected function get_form_fields($type, $values)
+    {
+        $bots = $this->getlambda('get', 'communication', 'comm_bot', 'dropdown');
+        $bots_dd = [];
+        foreach ($bots->data->items as $bot) {
+            $bots_dd[$bot->id] = $bot->name;
+        }
+
+        return [
+            'name' => ['title' => 'Channel Name', 'type' => 'text', 'required' => true],
+            'number' => ['title' => 'Sender Number', 'type' => 'text', 'required' => true],
+            'status' => ['title' => 'Status', 'type' => 'select', 'required' => true, 'values' => ['active' => 'Active', 'disabled' => 'Disabled']],
+            'type' => ['title' => 'Channel Type', 'type' => 'select', 'required' => true, 'values' => ['whatsapp' => 'Whatsapp', 'email' => 'Email', 'sms' => 'SMS']],
+            'bot_id' => ['title' => 'Attached Bot', 'type' => 'select', 'values' => $bots_dd],
+
+            'credentials' => ['title' => 'Credentials', 'type' => 'textarea', 'required' => true, 'fullwidth' => true],
+            //'api_secret' => ['title' => 'API Secret', 'type' => 'text', 'required' => true],
+            
+            'minute' => ['title' => 'Limits in Minutes', 'type' => 'number', 'required' => false],
+            'hour' => ['title' => 'Limits in Hours', 'type' => 'number', 'required' => false],
+            'day' => ['title' => 'Limits in Days', 'type' => 'number', 'required' => false],
+            'week' => ['title' => 'Limits in Weeks', 'type' => 'number', 'required' => false],
+            'month' => ['title' => 'Limits in Months', 'type' => 'number', 'required' => false],
+        ];
+    }
+
+    // public function form($type, $id = null)
+    // {
+    //     $values = [];
+    //     if ($type == 'edit') {
+    //         $response = LambdaRequest::signedrequest('get', $this->_service, $this->_module . '/get_one', ['id' => $id]);
+    //         // echo '
'; print_r($response); exit; 
+    //         $values = $response->data->item; 
+    //     }
+    //     $data = $this->_beforeform($type, $values);
+    //     $fields = $this->get_form_fields($type, $values);
+    //     echo '
'; print_r($data); exit;
+    //     return $this->view('form')->with([
+    //         'title' => $this->_title,
+    //         'mode' => $type,
+    //         'fields' => $fields,
+    //         'base_url' => $this->_base_url,
+    //         'item' => $values,
+    //     ]);
+    // }
+
+    protected function _beforeform($type, $values) {
+        if($type == 'edit') {
+            $values->credentials = json_encode($values->credentials);
+            $values->minute = $values->limits->minute;
+            $values->day = $values->limits->day;
+            $values->month = $values->limits->month;
+            $values->hour = $values->limits->hour;
+            $values->week = $values->limits->week;
+        }
+        return $values;
+    }
+
+    protected function _beforesave($type, $request)
+    {
+        $data = $request->except('_token');
+
+        // $credentials = new stdClass();
+        // $credentials->api_key = $data["api_key"];
+        // $credentials->api_secret = $data["api_secret"];
+        // unset($data["api_key"]);
+        // unset($data["api_secret"]);
+        $data["credentials"] = json_decode($data["credentials"]);
+
+        $limits = new stdClass();
+        $limits->minute = $data["minute"];
+        $limits->hour = $data["hour"];
+        $limits->day = $data["day"];
+        $limits->week = $data["week"];
+        $limits->month = $data["month"];
+        unset($data["minute"]);
+        unset($data["hour"]);
+        unset($data["day"]);
+        unset($data["week"]);
+        unset($data["month"]);
+        $data["limits"] = $limits;
+
+        //echo '
'; print_r($data); exit;
+        return $data;
+    }
+}
diff --git a/app/Http/Controllers/ContactController.php b/app/Http/Controllers/ContactController.php
index fd8113e5..d497dc77 100644
--- a/app/Http/Controllers/ContactController.php
+++ b/app/Http/Controllers/ContactController.php
@@ -22,6 +22,7 @@ class ContactController extends Controller
 
     public function list(Request $request) {
         $fields = $this->get_list_fields();
+        //echo $this->_listtype; exit;
         return $this->view($this->_listtype)->with([
             'title' => $this->_title,
             'fields' => $fields,
@@ -155,6 +156,20 @@ class ContactController extends Controller
         ]);
     }
 
+    public function postsavelist(Request $request) {
+        Log::debug(print_r($request->except('_token'), true));
+        $response = LambdaRequest::signedrequest('post', $this->_service, $this->_module.'/savelist', $request->except('_token'));
+        // //echo '
'; print_r($response); exit;
+        // $fields = $this->get_list_fields();
+        // return $this->view('editall')->with([
+        //     'title' => $this->_title,
+        //     'fields' => $response->data->attributes,
+        //     'base_url' => $this->_base_url,
+        //     'items' => $response->data->items
+        // ]);
+    }
+    
+
 
     // public function postimport(Request $request) {
     //     if( $request->file('importfile') ) {
diff --git a/app/Http/Controllers/ContactlistController.php b/app/Http/Controllers/ContactlistController.php
new file mode 100644
index 00000000..182c5119
--- /dev/null
+++ b/app/Http/Controllers/ContactlistController.php
@@ -0,0 +1,85 @@
+middleware('auth');
+        $this->_service = 'ums';
+        $this->_module = 'contact_list';
+        $this->_viewname = 'contactlist';
+        $this->_title = 'Contact List';
+        $this->_base_url = '/contactlist';
+    }
+
+    protected function get_list_fields()
+    {
+        return [
+            'actions' => ['title' => 'Actions', 'buttons' => ['edit', 'delete']],
+            'name' => ['title' => 'Name', 'type' => 'text'],
+            'status' => ['title' => 'Status', 'type' => 'select']
+        ];
+    }
+
+    protected function get_form_fields($type, $values)
+    {
+        $teams = $this->getlambda('get', 'communication', 'template', 'dropdown');
+        // echo '
'; print_r($teams); exit;
+        $templates = [];
+        foreach ($teams->data->items as $team) {
+            $templates[$team->template_code] = $team->name;
+        }
+
+        $chans = $this->getlambda('get', 'communication', 'channel', 'dropdown');
+        // echo '
'; print_r($teams); exit;
+        $channels = [];
+        foreach ($chans->data->items as $chan) {
+            $channels[$chan->id] = $chan->name;
+        }
+
+        return [
+            'name' => ['title' => 'Name', 'type' => 'text', 'required' => true],
+            'template_code' => ['title' => 'Template', 'type' => 'select', 'values' => $templates, 'required' => true],
+            'channel' => ['title' => 'Channel', 'type' => 'select', 'values' => $channels, 'required' => true],
+            'type' => ['title' => 'Type', 'type' => 'select', 'required' => true, 'values' => ['whatsapp' => 'Whatsapp', 'sms' => 'SMS', 'email' => 'Email']],
+            'status' => ['title' => 'Status', 'type' => 'select', 'required' => true, 'values' => ['active' => 'Active', 'disabled' => 'Disabled']],
+        ];
+    }
+
+    public function form($type, $id = null)
+    {
+        $values = [];
+        if ($type == 'edit') {
+            $response = LambdaRequest::signedrequest('get', $this->_service, $this->_module . '/get_one', ['id' => $id]);
+            $values = $response->data->item;
+            // echo '
'; print_r($values); exit;
+        }
+        //echo '
'; print_r($values); exit;
+        $data = $this->_beforeform($type, $values);
+        $fields = $this->get_form_fields($type, $values);
+        //echo '
'; print_r($fields); exit;
+        return $this->view('form')->with([
+            'title' => $this->_title,
+            'mode' => $type,
+            'fields' => $fields,
+            'base_url' => $this->_base_url,
+            'item' => $values,
+        ]);
+    }
+
+    protected function _beforesave($type, $request)
+    {
+        $data = $request->except('_token');
+        if ($request->file('image')) {
+            $data['image'] = $this->_uploadMedia($request, 'image', 'template');
+        }
+        return $data;
+    }
+}
diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php
index eddb779c..0a8aae9d 100755
--- a/app/Http/Controllers/Controller.php
+++ b/app/Http/Controllers/Controller.php
@@ -110,6 +110,9 @@ class Controller extends BaseController
         $users = [];
         foreach($response->data->items as $item) {
             $user = [];
+            if(isset($item->id)) {
+                $user['id'] = $item->id;
+            }
             foreach($fields as $field => $props){
                 if($field != 'actions') {
                     switch($props['type']){
diff --git a/app/Http/Controllers/DetailingcontestController.php b/app/Http/Controllers/DetailingcontestController.php
index 834f45f0..630b8b5f 100644
--- a/app/Http/Controllers/DetailingcontestController.php
+++ b/app/Http/Controllers/DetailingcontestController.php
@@ -63,7 +63,7 @@ class DetailingcontestController extends Controller
             '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],
+            'media' => ['title' => 'Media', 'type' => 'file', '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',]  ],
@@ -84,8 +84,8 @@ class DetailingcontestController extends Controller
         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');
+        if( $request->file('media') ) {
+            $data['media'] = $this->_uploadMedia($request, 'media', 'detailing');
         }
         return $data;
     }
diff --git a/app/Http/Controllers/DomainController.php b/app/Http/Controllers/DomainController.php
index 4f70fb7a..f2231e4e 100644
--- a/app/Http/Controllers/DomainController.php
+++ b/app/Http/Controllers/DomainController.php
@@ -70,9 +70,9 @@ class DomainController extends Controller
             'description' => ['title' => 'Description', 'type' => 'textarea', 'required' => true],
             'use_default_otp' => ['title' => 'Use Default OTP', 'type' => 'select', 'required' => true, 'values' => ['Yes' => 'Yes', 'No' => 'No'] ],
             'default_otp' => ['title' => 'Default OTP to be used', 'type' => 'number', 'required' => true],
-
             'terms_text' => ['title' => 'Login Terms & Conditions Text', 'type' => 'textarea', 'required' => true, 'fullwidth' => true],
-
+            'android_server_key' => ['title' => 'Android Server Key', 'type' => 'textarea', 'fullwidth' => true],
+            'ios_server_key' => ['title' => 'IOS Server Key', 'type' => 'textarea', 'fullwidth' => true],
         ];
     }
 
diff --git a/app/Http/Controllers/FormController.php b/app/Http/Controllers/FormController.php
index 46498cb3..e38180a0 100644
--- a/app/Http/Controllers/FormController.php
+++ b/app/Http/Controllers/FormController.php
@@ -87,7 +87,9 @@ class FormController extends Controller
             return $this->deliverform($finfo->data->formdata, $finfo->data->questions);
         } elseif($finfo->status == 'success' && $finfo->data->formdata->link_type == 'list') {
             //echo '
'; print_r($finfo->data); exit;
-            if (\View::exists('form.list-'.$finfo->data->formdata->form_id)) {
+            if (\View::exists('form.'.$finfo->data->formdata->partition.'.list-'.$finfo->data->formdata->form_id)) {
+                return view('form.'.$finfo->data->formdata->partition.'.list-'.$finfo->data->formdata->form_id)->with(['questions' => $finfo->data->questions, 'submissions' => $finfo->data->submissions, 'formname' => $finfo->data->formdata->title, 'form_id' => $finfo->data->formdata->form_id, 'lastkey' => $finfo->data->lastkey ]);
+            } elseif (\View::exists('form.list-'.$finfo->data->formdata->form_id)) {
                 return view('form.list-'.$finfo->data->formdata->form_id)->with(['questions' => $finfo->data->questions, 'submissions' => $finfo->data->submissions, 'formname' => $finfo->data->formdata->title, 'form_id' => $finfo->data->formdata->form_id, 'lastkey' => $finfo->data->lastkey ]);
             } else {
                 return view('form.list')->with(['questions' => $finfo->data->questions, 'submissions' => $finfo->data->submissions, 'formname' => $finfo->data->formdata->title, 'form_id' => $finfo->data->formdata->form_id, 'lastkey' => $finfo->data->lastkey ]);
@@ -146,7 +148,7 @@ class FormController extends Controller
         foreach($files as $fname => $file) {
             $post[$fname] = $this->_uploadMedia($request, $fname, 'form/'.$post['form_id'].'/'.$fname);
         }
-        if($post['id']=='') unset($post['id']);
+        if(isset($post['id']) && $post['id']=='') unset($post['id']);
         $formdata = $request->session()->get('formdata');
         if(isset($post['user_id']) && $post['user_id'] != '') {
             $formdata->user_id = $post['user_id'];
@@ -375,6 +377,30 @@ class FormController extends Controller
                     LambdaRequest::postrequest('form', 'formentity/submitform', ['formdata' => $rxformdata, 'entity_id' => $rxformdata['form_id'], 'user_id' => $user_id, 'partition' => $partition ]);
                 }
                 break;
+            case '1653655224-724ec5b3-fccb-4a88-bf28-cf894fa27a78':
+                $contacts = [];
+                $indamet_80_rx = [];
+                $indamet_160_rx = [];
+                $indamet_320_rx = [];
+                $doctor_tagging = [];
+                $campaign = [];
+                foreach($post['contact_id'] as $i => $c) {
+                    if($post['indamet_80_rx'][$i] > 0 || $post['indamet_160_rx'][$i] > 0 || $post['indamet_320_rx'][$i] > 0) {
+                        $contacts[] = $c;
+                        $indamet_80_rx[] = $post['indamet_80_rx'][$i];
+                        $indamet_160_rx[] = $post['indamet_160_rx'][$i];
+                        $indamet_320_rx[] = $post['indamet_320_rx'][$i];
+                        $doctor_tagging[] = $post['doctor_tagging'][$i];
+                        $campaign[] = $post['campaign'][$i];
+                    }
+                }
+                $post['contact_id'] = $contacts;
+                $post['indamet_80_rx'] = $indamet_80_rx;
+                $post['indamet_160_rx'] = $indamet_160_rx;
+                $post['indamet_320_rx'] = $indamet_320_rx;
+                $post['doctor_tagging'] = $doctor_tagging;
+                $post['campaign'] = $campaign;
+                break;
 
         }
 
@@ -730,6 +756,10 @@ class FormController extends Controller
         $folder = storage_path('app/public/personalized/'.$form_info['form_id']);
         $templatename = 'template-'.$form_info['form_info']->id.'.'.$template['extension'];
         $outputImage = $this->retimage($folder.'/'.$templatename);
+        
+        // $form_info['form_info']->positions = json_decode('[{"x":"100-279","y":"485","align":"center","size":20,"type":"text","font":"klavika-medium.ttf","color":"110-23-19","field_name":"event_date_date"},{"x":"100-279","y":"526","align":"center","size":22,"type":"text","font":"klavika-light.ttf","color":"110-23-19","field_name":"event_date_year"},{"x":"340-514","y":"485","align":"center","size":20,"type":"text","font":"klavika-medium.ttf","color":"110-23-19","field_name":"venue_line_3"},{"x":"584-767","y":"480","align":"center","size":18,"type":"text","font":"klavika-medium.ttf","color":"110-23-19","field_name":"venue_line_1"},{"x":"584-767","y":"508","align":"center","size":18,"type":"text","font":"klavika-medium.ttf","color":"110-23-19","field_name":"venue_line_2"},{"x":"584-767","y":"535","align":"center","size":18,"type":"text","font":"klavika-medium.ttf","color":"110-23-19","field_name":"venue_line_3"},{"x":"264-613","y":"910","align":"center","size":11,"type":"text","font":"gadugib.ttf","color":"0-0-0","field_name":"speaker_details_line_1"},{"x":"264-613","y":"930","align":"center","size":11,"type":"text","font":"gadugib.ttf","color":"0-0-0","field_name":"speaker_details_line_2"},{"x":"264-613","y":"950","align":"center","size":11,"type":"text","font":"gadugib.ttf","color":"0-0-0","field_name":"speaker_details_line_3"},{"x":"264-613","y":"970","align":"center","size":11,"type":"text","font":"gadugib.ttf","color":"0-0-0","field_name":"speaker_details_line_4"},{"x":362,"width":154,"y":658,"type":"image","fill":"mask","height":154,"field_name":"speaker_image"},{"x":"259-618","y":"873","align":"center","size":23,"type":"text","font":"klavika-medium.ttf","color":"255-255-255","field_name":"speaker_name"}]');
+
+        //echo '
'; print_r($form_info); echo '
'; foreach($form_info['form_info']->positions as $pos) { switch($pos->type) { @@ -737,11 +767,27 @@ class FormController extends Controller $image = storage_path( str_replace('/storage', 'app/public', $form_info['cropped-'.$pos->field_name] ) ); $photoimg = $this->retimage( $image ); $photosize = getimagesize( $image ); - imagecopyresized($outputImage,$photoimg,$pos->x,$pos->y,0,0,$pos->width,$pos->height, $photosize[0], $photosize[1]); + if(isset($pos->fill) && $pos->fill == 'mask') { + $w = imagesx($outputImage); + $h = imagesy($outputImage); + $tempimage = imagecreatetruecolor($w, $h); + imagecopyresized($tempimage,$photoimg,$pos->x,$pos->y,0,0,$pos->width,$pos->height, $photosize[0], $photosize[1]); + imagecopyresized($tempimage,$outputImage,0,0,0,0,$w,$h,$w,$h); + $outputImage = $tempimage; + //imagedestroy($tempimage); + } else { + imagecopyresized($outputImage,$photoimg,$pos->x,$pos->y,0,0,$pos->width,$pos->height, $photosize[0], $photosize[1]); + } break; case 'text': - $font = storage_path('app').'/fonts/Poppins-Medium.ttf'; - $white = imagecolorallocate($outputImage, 0, 0, 0); + $font = storage_path('app').'/fonts/'.$pos->font; + $pos->color = explode('-',$pos->color); + $white = imagecolorallocate($outputImage, $pos->color[0], $pos->color[1], $pos->color[2]); + if(isset($pos->align) && $pos->align == 'center') { + $box = imagettfbbox($pos->size, 0, $font, $form_info[$pos->field_name]); + $pos->x = explode('-', $pos->x); + $pos->x = $pos->x[0] + (($pos->x[1] - $pos->x[0]) - $box[2])/2; + } imagettftext($outputImage, $pos->size, 0, $pos->x, $pos->y, $white, $font, $form_info[$pos->field_name] ); break; } @@ -757,6 +803,8 @@ class FormController extends Controller $post = $this->processformdata($formdata->form_id, $post, $formdata->user_id, $formdata->partition); $finfo = LambdaRequest::postrequest('form', 'formentity/submitform', ['formdata' => $form_info, 'entity_id' => $formdata->form_id, 'user_id' => $formdata->user_id, 'partition' => $formdata->partition ]); } + //return view('form.download')->with('image_url', 'personalized/'.$form_info['form_id'].'/'.$form_info['genareted_image']); + $request->session()->put('form_info', $form_info); return redirect('/form/downloadpersonalization'); } @@ -979,4 +1027,11 @@ class FormController extends Controller return response()->json(['status' => 'failure']); } } + + public function zipmultiple(Request $request) { + $files = $request->input('files', []); + $response = LambdaRequest::postrequest('form', 'formentity/zipmultiple', ['files' => $files], ''); + //Log::debug(print_r($response, true)); + return response()->json($response->data); + } } \ No newline at end of file diff --git a/app/Http/Controllers/FormdataController.php b/app/Http/Controllers/FormdataController.php index 36ed9b36..64441429 100644 --- a/app/Http/Controllers/FormdataController.php +++ b/app/Http/Controllers/FormdataController.php @@ -39,4 +39,8 @@ class FormdataController extends Controller return redirect('/formsubmissions'); } } + + protected function get_list_buttons() { + return []; + } } diff --git a/app/Http/Controllers/FormsubmissionController.php b/app/Http/Controllers/FormsubmissionController.php index 67c45079..cf3459c2 100644 --- a/app/Http/Controllers/FormsubmissionController.php +++ b/app/Http/Controllers/FormsubmissionController.php @@ -41,7 +41,11 @@ class FormsubmissionController extends Controller else $enddate = date("Y/m/d", strtotime("now") + 86400 ); - $reqdata = ["partition" => 'rapport-'.$user->domain, "form_id" => $form_id, "alldata" => true, "date_range" => $startdate.'_'.$enddate ]; + $reqdata = ["partition" => 'rapport-'.$user->domain, "form_id" => $form_id, "alldata" => true ]; + if(isset($post['startdate']) && isset($post['enddate'])) { + $reqdata['date_range'] = $startdate.'_'.$enddate; + } + $request->session()->put('formdata_request', $reqdata); //echo '
'; print_r($reqdata); exit;
         $response = LambdaRequest::signedrequest('post', $this->_service, $this->_module.'/getformhistory', $reqdata);
diff --git a/app/Http/Controllers/HierarchyController.php b/app/Http/Controllers/HierarchyController.php
index a8e5b651..c175a5f8 100644
--- a/app/Http/Controllers/HierarchyController.php
+++ b/app/Http/Controllers/HierarchyController.php
@@ -179,20 +179,20 @@ class HierarchyController extends Controller
             $row[] = isset($user->positions->Area) ? $user->positions->Area : '-';
             $row[] = isset($user->positions->Territory) ? $user->positions->Territory : '-';
 
-            if(isset($user->manager_level1) && isset($user->manager_level1->owner_info) && isset($user->manager_level1->owner_info->employee_code)){
-                $row[] = $user->manager_level1->owner_info->employee_code;
-                $row[] = $user->manager_level1->owner_info->firstname . ' ' . $user->manager_level1->owner_info->lastname;
-                $row[] = $user->manager_level1->owner_info->email;
+            if(isset($user->manager_level1) && isset($user->manager_level1->employee_code)) {
+                $row[] = $user->manager_level1->employee_code;
+                $row[] = $user->manager_level1->name;
+                $row[] = $user->manager_level1->email;
             } else {
                 $row[] = '';
                 $row[] = '';
                 $row[] = '';
             }
              
-            if(isset($user->manager_level2) && isset($user->manager_level2->owner_info) && isset($user->manager_level2->owner_info->employee_code)){
-                $row[] = $user->manager_level2->owner_info->employee_code;
-                $row[] = $user->manager_level2->owner_info->firstname . ' ' . $user->manager_level2->owner_info->lastname;
-                $row[] = $user->manager_level2->owner_info->email;
+            if(isset($user->manager_level2) && isset($user->manager_level2->employee_code)) {
+                $row[] = $user->manager_level2->employee_code;
+                $row[] = $user->manager_level2->name;
+                $row[] = $user->manager_level2->email;
             } else {
                 $row[] = '';
                 $row[] = '';
diff --git a/app/Http/Controllers/MetricreportController.php b/app/Http/Controllers/MetricreportController.php
index 502d645c..47becb67 100644
--- a/app/Http/Controllers/MetricreportController.php
+++ b/app/Http/Controllers/MetricreportController.php
@@ -50,7 +50,7 @@ class MetricreportController extends Controller
     public function report(Request $request) {
         $post = $request->except('_token');
         //echo '
';print_r($post); exit;
-        $response = LambdaRequest::signedrequest('post', $this->_service, $this->_module.'/view', $post, 60);
+        $response = LambdaRequest::signedrequest('post', $this->_service, $this->_module.'/view', $post, 300);
         //echo '
'; print_r($response); exit;
         if($post['type'] == 'trend' && $post['chart'] == 'tabularperuser') {
             echo '
'; print_r($tabledata); print_r($response); exit;
@@ -68,7 +68,7 @@ class MetricreportController extends Controller
             krsort($breadcrumbs);
         }
         //echo '
'; print_r(['periods' => $response->data->periods, 'charts' => $response->data->available_charts, 'graph' => $response->data->graph, 'post' => $post, 'colors' => $colors, 'breadcrumbs' => $breadcrumbs]); exit;
-        return $this->view('report')->with(['periods' => $response->data->periods, 'charts' => $response->data->available_charts, 'graph' => $response->data->graph, 'post' => $post, 'colors' => $colors, 'breadcrumbs' => $breadcrumbs]);
+        return $this->view('report')->with(['periods' => $response->data->periods, 'charts' => $response->data->available_charts, 'graph' => $response->data->graph, 'post' => array_merge((array)$response->data->post,$post) , 'colors' => $colors, 'breadcrumbs' => $breadcrumbs]);
     }
 
     public function export(Request $request) {
@@ -76,6 +76,7 @@ class MetricreportController extends Controller
         $post['export'] = 1;
         $response = LambdaRequest::signedrequest('post', $this->_service, $this->_module.'/view', $post, 60);
         //echo '
'; print_r($response); print_r($post); exit;
+        $post = (array)$response->data->post;
         $exceldata = [];
         $exceldata[] = [$response->data->graph->name];
         $exceldata[] = ['Report: '.ucwords($response->data->graph->agg_type).' Report'];
diff --git a/app/Http/Controllers/MetricviewController.php b/app/Http/Controllers/MetricviewController.php
index 259dc565..c101eb95 100644
--- a/app/Http/Controllers/MetricviewController.php
+++ b/app/Http/Controllers/MetricviewController.php
@@ -126,6 +126,9 @@ class MetricviewController extends Controller
             'contacts_views' => ['title' => 'Doctor views', 'type' => 'multiselect', 'values' => ['contacts' => 'Doctor View'] ],
             
             'intervals' => ['title' => 'Intervals', 'type' => 'multiselect', 'required' => true, 'values' => ['yearlycy' => 'Calender Year', 'yearlyfy' => 'Financial Year', 'monthly' => 'Monthly', 'weekly' => 'Weekly', 'daily' => 'Daily'] ],
+
+            'default_interval' => ['title' => 'Default Interval', 'type' => 'select', 'required' => true, 'values' => ['month-0' => 'This Month','month-1' => 'Last Month','month-3' => 'Last 3 Months','month-6' => 'Last 6 Months','month-12' => 'Last 12 Months','day-0' => 'Today','day-1' => 'Yesterday','day-7' => 'Last 7 Days','day-30' => 'Last 30 Days','week-0' => 'This week','week-1' => 'Last week','week-2' => '-2 week','week-3' => '-3 week','week-4' => '-4 week','yearfy-0' => 'This Financial Year','yearfy-1' => 'Last Financial Year','yearcy-0' => 'This Calender Year','yearcy-1' => 'Last Calender Year'] ],
+
             'combined_metrics' => ['title' => 'Combined Metrics (if any)', 'type' => 'textarea', 'fullwidth' => true ],
 
             'report_roles' => ['title' => 'Data Report from Roles', 'type' => 'multiselect', 'values' => $roles_dd, 'required' => true],
@@ -148,7 +151,7 @@ class MetricviewController extends Controller
 
         } else {
             foreach($data['metric'] as $k => $metric) {
-                $data['metrics'][] = ['metric' => $metric, 'display' => $data['display_unit'][$k], 'sort_order' => $data['sort_order'][$k] ];
+                $data['metrics'][] = ['metric' => $metric, 'display' => $data['display_unit'][$k], 'sort_order' => isset($data['sort_order'][$k]) ? $data['sort_order'][$k] : 0 ];
             }
         }
         unset($data['metric']);
diff --git a/app/Http/Controllers/ReminderController.php b/app/Http/Controllers/ReminderController.php
index 5abfd878..6987db96 100644
--- a/app/Http/Controllers/ReminderController.php
+++ b/app/Http/Controllers/ReminderController.php
@@ -68,10 +68,11 @@ class ReminderController extends Controller
         //echo '
'; print_r($data['reminder']); exit;
         $reminds = [];
         foreach ($data['reminder']['time'] as $k => $v) {
-            $reminds[] = ['time' => $v, 'days' => $data['reminder']['days'][$k], 'beore_or_after' => $data['reminder']['beore_or_after'][$k], 'manager' => $data['reminder']['manager'][$k] , 'message' => $data['reminder']['message'][$k]  ];
+            $reminds[] = ['time' => $v, 'days' => $data['reminder']['days'][$k], 'beore_or_after' => $data['reminder']['beore_or_after'][$k], 'manager' => $data['reminder']['manager'][$k] , 'message' => $data['reminder']['message'][$k] , 'checksubmission' => $data['reminder']['checksubmission'][$k] , 'plan_date_field' => $data['reminder']['plan_date_field'][$k]  ];
         }
         unset($data['reminder']);
         $data['reminders'] = $reminds;
+        //echo '
'; print_r($data); exit;
         return $data;
     }
 
diff --git a/app/Http/Controllers/SurveysubmissionController.php b/app/Http/Controllers/SurveysubmissionController.php
index efb2ead0..831a3737 100644
--- a/app/Http/Controllers/SurveysubmissionController.php
+++ b/app/Http/Controllers/SurveysubmissionController.php
@@ -48,10 +48,11 @@ class SurveysubmissionController extends Controller
         $request->session()->put('formdata_request', $reqdata);
         //echo '
'; print_r($reqdata); exit;
         $response = LambdaRequest::signedrequest('post', $this->_service, $this->_module . '/getformhistory', $reqdata);
+        //echo '
'; print_r($response); exit;
         if ($response->statusCode == 401) {
             return redirect('/unauthorised');
         }
-        //echo '
'; print_r($response); exit;
+        
         $fields = [
             'user' => ['title' => 'Submitted By', 'type' => 'text'],
             'date' => ['title' => 'Record Date', 'type' => 'text'],
diff --git a/app/Http/Controllers/TemplateController.php b/app/Http/Controllers/TemplateController.php
new file mode 100644
index 00000000..b2d49612
--- /dev/null
+++ b/app/Http/Controllers/TemplateController.php
@@ -0,0 +1,77 @@
+middleware('auth');
+        $this->_service = 'communication';
+        $this->_module = 'template';
+        $this->_viewname = 'template';
+        $this->_title = 'Template';
+        $this->_base_url = '/template';
+    }
+
+    protected function get_list_fields()
+    {
+        return [
+            'actions' => ['title' => 'Actions', 'buttons' => ['edit', 'delete']],
+            'name' => ['title' => 'Template Name', 'type' => 'text'],
+            'type' => ['title' => 'Type', 'type' => 'text'],
+            'template_code' => ['title' => 'Template Code', 'type' => 'text'],
+            'status' => ['title' => 'Status', 'type' => 'select']
+        ];
+    }
+
+    protected function get_form_fields($type, $values)
+    {
+        return [
+            'name' => ['title' => 'Template Name', 'type' => 'text', 'required' => true],
+            'type' => ['title' => 'Type', 'type' => 'select', 'required' => true, 'values' => ['whatsapp' => 'Whatsapp', 'whatsapp_interakt' => 'Whatsapp Interakt', 'sms' => 'SMS']],
+            'template_code' => ['title' => 'Template Code', 'type' => 'text', 'required' => true],
+            'status' => ['title' => 'Status', 'type' => 'select', 'required' => true, 'values' => ['active' => 'Active', 'disabled' => 'Disabled']],
+
+            'header_type' => ['title' => 'Header Type', 'type' => 'select', 'required' => true, 'values' => ['none' => 'None', 'text' => 'Text', 'video' => 'Video', 'image' => 'Image', 'document' => 'Document']  ],
+            'header_text' => ['title' => 'Header Text (if header type is text)', 'type' => 'text'],
+            'template_body' => ['title' => 'Template Body', 'type' => 'textarea', 'required' => true, 'fullwidth' => true],
+            'footer_text' => ['title' => 'Footer Text', 'type' => 'text'],
+            
+            // 'header_params' => ['title' => 'Header Params', 'type' => 'textarea', 'required' => true],
+            // 'body_params' => ['title' => 'Body Params', 'type' => 'textarea', 'required' => true],
+            // 'button_params' => ['title' => 'Button Params', 'type' => 'textarea', 'required' => true],
+
+            'status' => ['title' => 'Status', 'type' => 'select', 'required' => true, 'values' => ['active' => 'Active', 'disabled' => 'Disabled']],
+            'buttons' => ['title' => 'Options', 'type' => 'mapping', 'fullwidth' => true ],
+            //'image' => ['title' => 'Template Image', 'type' => 'image', 'required' => true]
+        ];
+    }
+
+    protected function _beforesave($type, $request)
+    {
+        $data = $request->except('_token');
+        $data['header_param_count'] = substr_count($data['header_text'],"{{");
+        $data['body_param_count'] = substr_count($data['template_body'],"{{");
+        return $data;
+    }
+
+    protected function _beforeform($type, $values) {
+        if ($type == 'edit') {
+            $buttons = [];
+            foreach($values )
+
+
+                    echo '
'; print_r($values); exit;
+            $values->body_params = json_encode($values->body_params);
+            $values->button_params = json_encode($values->button_params);
+            $values->header_params = json_encode($values->header_params);
+        }
+        return $values;
+    }
+}
diff --git a/app/Http/Controllers/TopicController.php b/app/Http/Controllers/TopicController.php
new file mode 100644
index 00000000..85c897a8
--- /dev/null
+++ b/app/Http/Controllers/TopicController.php
@@ -0,0 +1,77 @@
+middleware('auth');
+        $this->_service = 'communication';
+        $this->_module = 'topic';
+        $this->_viewname = 'topic';
+        $this->_title = 'Topics';
+        $this->_base_url = '/topic';
+    }
+
+    protected function get_list_fields()
+    {
+        return [
+            'actions' => ['title' => 'Actions', 'buttons' => ['edit', 'delete']],
+            'name' => ['title' => 'Template Name', 'type' => 'text'],
+            'message' => ['title' => 'Message', 'type' => 'text'],
+            'description' => ['title' => 'Description', 'type' => 'text'],
+            'status' => ['title' => 'Status', 'type' => 'select']
+        ];
+    }
+
+    protected function get_form_fields($type, $values)
+    {
+        return [
+            'name' => ['title' => 'Template Name', 'type' => 'text', 'required' => true],
+            'status' => ['title' => 'Status', 'type' => 'select', 'required' => true, 'values' => ['active' => 'Active', 'disabled' => 'Disabled']],
+            'description' => ['title' => 'Description', 'type' => 'text', 'required' => true, 'fullwidth' => true],
+            'message' => ['title' => 'Message', 'type' => 'textarea', 'required' => true, 'fullwidth' => true],
+            'image' => ['title' => 'Template Image', 'type' => 'image', 'required' => true]
+        ];
+    }
+
+    public function form($type, $id = null)
+    {
+        $values = [];
+        if ($type == 'edit') {
+            $response = LambdaRequest::signedrequest('get', $this->_service, $this->_module . '/get_one', ['id' => $id]);
+            $values = $response->data->item;
+            // echo '
'; print_r($values); exit;
+        }
+        //echo '
'; print_r($values); exit;
+        $data = $this->_beforeform($type, $values);
+        $fields = $this->get_form_fields($type, $values);
+        //echo '
'; print_r($fields); exit;
+        return $this->view('form')->with([
+            'title' => $this->_title,
+            'mode' => $type,
+            'fields' => $fields,
+            'base_url' => $this->_base_url,
+            'item' => $values,
+        ]);
+    }
+
+    protected function _beforesave($type, $request)
+    {
+        $data = $request->except('_token');
+        // if ($type == 'edit') {
+        //     $values->channels = explode('#', $values->channels);
+        // }
+
+        if ($request->file('image')) {
+            $data['image'] = $this->_uploadMedia($request, 'image', 'template');
+        }
+        return $data;
+    }
+}
diff --git a/app/Http/Controllers/TopicmediaController.php b/app/Http/Controllers/TopicmediaController.php
new file mode 100644
index 00000000..5bd71873
--- /dev/null
+++ b/app/Http/Controllers/TopicmediaController.php
@@ -0,0 +1,88 @@
+middleware('auth');
+        $this->_service = 'communication';
+        $this->_module = 'topicmedia';
+        $this->_viewname = 'topicmedia';
+        $this->_title = 'Topic Media';
+        $this->_base_url = '/topicmedia';
+    }
+
+    protected function get_list_fields()
+    {
+        return [
+            'actions' => ['title' => 'Actions', 'buttons' => ['edit', 'delete']],
+            'caption' => ['title' => 'Caption', 'type' => 'text'],
+            'type' => ['title' => 'Type', 'type' => 'text'],
+            'message' => ['title' => 'Message', 'type' => 'text'],
+            'status' => ['title' => 'Status', 'type' => 'select']
+        ];
+    }
+
+    protected function get_form_fields($type, $values)
+    {
+        $teams = $this->getlambda('get', 'communication', 'topic', 'dropdown');
+        // echo '
'; print_r($teams); exit;
+        $templates = [];
+        foreach ($teams->data->items as $team) {
+            $templates[$team->id] = $team->name;
+        }
+
+        return [
+            'template_id' => ['title' => 'Template', 'type' => 'multiselect', 'values' => $templates, 'required' => true, 'fullwidth' => true],
+            'caption' => ['title' => 'Caption', 'type' => 'text', 'required' => true],
+            'status' => ['title' => 'Status', 'type' => 'select', 'required' => true, 'values' => ['active' => 'Active', 'disabled' => 'Disabled']],
+            'message' => ['title' => 'Message', 'type' => 'textarea', 'required' => true],
+            'show_post_complete' => ['title' => 'Show Post Complete', 'type' => 'select', 'required' => true, 'values' => ['true' => 'Yes', 'false' => 'No']],
+            'post_complete_content' => ['title' => 'Post Complete Content', 'type' => 'textarea', 'required' => true],
+            'get_viewer_info' => ['title' => 'Get Viewer Info', 'type' => 'select', 'required' => true, 'values' => ['true' => 'Yes', 'false' => 'No']],
+            'viewer_info_fields' => ['title' => 'Viewer Info Fields', 'type' => 'checkbox', 'required' => true, 'values' => ['name' => 'Name', 'phone' => 'Phone', 'email' => 'Email', 'place' => 'Place']],
+            'show_post_quiz' => ['title' => 'Show Post Quiz', 'type' => 'select', 'required' => true, 'values' => ['true' => 'Yes', 'false' => 'No']],
+            'post_complete_quiz' => ['title' => 'Post Quiz', 'type' => 'select', 'required' => false, 'values' => $templates],
+            'type' => ['title' => 'Media Type', 'type' => 'select', 'required' => true, 'values' => ['video' => 'Video', 'pdf' => 'Pdf', 'audio' => 'Audio', 'image' => 'Image', 'external_url' => 'External Url']],
+            'media_url' => ['title' => 'Media Url', 'type' => 'text', 'required' => true],
+            'image' => ['title' => 'Media', 'type' => 'image', 'required' => true]
+        ];
+    }
+
+    public function form($type, $id = null)
+    {
+        $values = [];
+        if ($type == 'edit') {
+            $response = LambdaRequest::signedrequest('get', $this->_service, $this->_module . '/get_one', ['id' => $id]);
+            $values = $response->data->item;
+            // echo '
'; print_r($values); exit;
+        }
+        //echo '
'; print_r($values); exit;
+        $data = $this->_beforeform($type, $values);
+        $fields = $this->get_form_fields($type, $values);
+        //echo '
'; print_r($fields); exit;
+        return $this->view('form')->with([
+            'title' => $this->_title,
+            'mode' => $type,
+            'fields' => $fields,
+            'base_url' => $this->_base_url,
+            'item' => $values,
+        ]);
+    }
+
+    protected function _beforesave($type, $request)
+    {
+        $data = $request->except('_token');
+        if ($request->file('image')) {
+            $data['image'] = $this->_uploadMedia($request, 'image', 'template');
+        }
+        return $data;
+    }
+}
diff --git a/app/Http/Middleware/VerifyCsrfToken.php b/app/Http/Middleware/VerifyCsrfToken.php
index 2226b5de..d58ae70b 100755
--- a/app/Http/Middleware/VerifyCsrfToken.php
+++ b/app/Http/Middleware/VerifyCsrfToken.php
@@ -11,7 +11,7 @@ class VerifyCsrfToken extends Middleware
      *
      * @var array
      */
-    protected $except = ['/form/metricreport*', '/form/submitpersonalized'
+    protected $except = ['/form/metricreport*', '/form/submitpersonalized', '/formdatalist/zipmultiple'
         //
     ];
 }
diff --git a/app/Http/Requests/LambdaRequest.php b/app/Http/Requests/LambdaRequest.php
index e6bf6591..b4379405 100644
--- a/app/Http/Requests/LambdaRequest.php
+++ b/app/Http/Requests/LambdaRequest.php
@@ -17,6 +17,7 @@ class LambdaRequest
 		'form' => 'http://localhost:3015/dev/',
 		'detailing' => 'http://localhost:3016/dev/',
 		'competition' => 'http://localhost:3017/dev/',
+		'communication' => 'http://localhost:3018/dev/',
 	];
 	protected const PROD_URL = 'https://rapportapi.click/';
 
@@ -34,6 +35,10 @@ class LambdaRequest
 		if(self::REMOTE_ENV != 'local' && $service == 'form' && $url == 'formentity/getformhistory') {
 			$fullurl = 'https://sgrmuxa46z7xfouezyvg3tnhnq0yptjn.lambda-url.ap-south-1.on.aws/';
 		}
+		if(self::REMOTE_ENV != 'local' && $service == 'form' && $url == 'survey/getformhistory') {
+			$fullurl = 'https://tvp2drn5c2jpf7dpxdwwykdez40ikfbz.lambda-url.ap-south-1.on.aws/';
+		}
+		
 		if($token == '') {
 			$response = Http::post($fullurl, $params);
 		} else {
@@ -61,6 +66,11 @@ class LambdaRequest
 		$fullurl = self::genurl($service, $url);
 		if(self::REMOTE_ENV != 'local' && $service == 'metric' && $url == 'metric_report/view') {
 			$fullurl = 'https://zbmttswaqimy3nmo5wactmja3i0uosyv.lambda-url.ap-south-1.on.aws/';
+			$timeout = 600;
+		}
+		if(self::REMOTE_ENV != 'local' && $service == 'form' && $url == 'survey/getformhistory') {
+			$fullurl = 'https://tvp2drn5c2jpf7dpxdwwykdez40ikfbz.lambda-url.ap-south-1.on.aws/';
+			$timeout = 600;
 		}
 		if($type == 'post') {
 			$response = Http::timeout($timeout)->withHeaders(['Authorization' => Auth::user()->access_token])->post($fullurl, $data);
diff --git a/public/images/velogo-light.png b/public/images/velogo-light.png
new file mode 100644
index 00000000..3a6343c1
Binary files /dev/null and b/public/images/velogo-light.png differ
diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php
index 3510e469..618d0594 100755
--- a/resources/views/auth/login.blade.php
+++ b/resources/views/auth/login.blade.php
@@ -19,13 +19,13 @@
                                 
diff --git a/resources/views/auth/loginotp.blade.php b/resources/views/auth/loginotp.blade.php
index 0da669be..aa01b2f1 100644
--- a/resources/views/auth/loginotp.blade.php
+++ b/resources/views/auth/loginotp.blade.php
@@ -20,12 +20,12 @@
                                 
diff --git a/resources/views/commbotintent/list.blade.php b/resources/views/commbotintent/list.blade.php
new file mode 100644
index 00000000..7e83c332
--- /dev/null
+++ b/resources/views/commbotintent/list.blade.php
@@ -0,0 +1,136 @@
+@extends('layouts.vertical', ["page_title"=> "Add & Edit Products"])
+
+@section('css')
+
+
+
+@endsection
+
+@section('content')
+
+
+ +@if(session()->has('message')) +
+ {{ session()->get('message') }} +
+@endif +
+
+
+
+
+
+

Bot Intents

+
+
+ +
+
+
+ @include('commbotintent.part', ['myid' => 'root', 'items' => $items]) +
+
+
+
+
+
+
+ + + + + +
+ +@endsection + +@section('script') + + +@endsection \ No newline at end of file diff --git a/resources/views/commbotintent/part.blade.php b/resources/views/commbotintent/part.blade.php new file mode 100644 index 00000000..f44970d3 --- /dev/null +++ b/resources/views/commbotintent/part.blade.php @@ -0,0 +1,16 @@ +@if(isset($items[$myid])) +
    + @foreach($items[$myid] as $item) +
  1. +
    + {{$item->name}} + + + + +
    + @include('commbotintent.part', ['myid' => $item->id, 'items' => $items]) +
  2. + @endforeach +
+@endif \ No newline at end of file diff --git a/resources/views/commbotmessage/form.blade.php b/resources/views/commbotmessage/form.blade.php new file mode 100644 index 00000000..bc134dce --- /dev/null +++ b/resources/views/commbotmessage/form.blade.php @@ -0,0 +1,259 @@ +@extends('layouts.vertical', ["page_title"=> "Add & Edit Products"]) + +@section('css') + + + + + + + +@endsection + +@section('content') + +
+ +@if(session()->has('message')) +
+ {{ session()->get('message') }} +
+@endif +
+
+
+
+ @csrf +
+
+
+

Add / Edit {{$title}}

+
+
+
+ Back + +
+
+ @foreach($fields as $field => $props) + @if($props['type'] != 'hidden') +
+ + @endif + @switch($props['type']) + @case('hidden') + + @break + @case('text') + @case('email') + @case('number') + @case('tel') + + @break + @case('date') + + @break + @case('datetime') + + @break + @case('textarea') + + @break + @case('select') + + @break + @case('checkbox') + @foreach($props['values'] as $k => $v) +
+ {$field}) && in_array($k, $item->{$field}) ? 'checked':''}}> + +
+ @endforeach + @break + @case('multiselect') + + @break + @case('bigmultiselect') + + @break + @case('yesno') +
+
+ {$field}) && $item->{$field} == 'yes' ? 'checked':''}} {{isset($props['required'])&&$props['required']?'required':'' }}> + +
+
+ {$field}) && $item->{$field} == 'no' ? 'checked':''}}> + +
+
+ @break + @case('image') +
+ +

500MB Max File size

+
+ @break + @case('multiimage') +
+ +

500MB Max File size

+
+ @break + @case('file') +
+ +

1GB Max File size

+
+ @break + @case('mapping') +
+
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+ @if($mode=='edit') + @foreach($item->{$field} as $map) +
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+ @endforeach + @endif +
+ @break + + @endswitch + @if($props['type'] != 'hidden') +
+ @endif + @endforeach + +
+
+ Back + +
+
+
+
+
+
+
+
+
+ +@endsection + +@section('script') + + + + + + + + +@endsection \ No newline at end of file diff --git a/resources/views/commchannel/form.blade.php b/resources/views/commchannel/form.blade.php new file mode 100644 index 00000000..583d312e --- /dev/null +++ b/resources/views/commchannel/form.blade.php @@ -0,0 +1,327 @@ +"; +// print_r($fields); +// exit(); +?> + +@extends('layouts.vertical', ['page_title' => 'Add & Edit Products']) + +@section('css') + + + + + + +@endsection + +@section('content') + +
+ + @if (session()->has('message')) +
+ {{ session()->get('message') }} +
+ @endif +
+
+
+
+ @csrf +
+
+
+

Add / Edit {{ $title }}

+
+
+
+ Back + +
+
+ @foreach ($fields as $field => $props) + @if ($props['type'] != 'hidden') +
+ + @endif + @switch($props['type']) + @case('hidden') + + @break + + @case('text') + @case('email') + + @case('number') + @case('tel') + + @break + + @case('date') + + @break + + @case('textarea') + + @break + + @case('select') + + @break + + @case('multiselect') + + @break + + @case('bigmultiselect') + + @break + + @case('yesno') +
+
+ {$field} == 'yes' ? 'checked' : '' }} + {{ isset($props['required']) && $props['required'] ? 'required' : '' }}> + +
+
+ {$field} == 'no' ? 'checked' : '' }}> + +
+
+ @break + + @case('image') +
+ +

500MB Max File size

+
+ @break + + @case('file') +
+ +

1GB Max File size

+
+ @break + + @case('mapping') +
+ + + + + + + + + + @if ($mode == 'edit') + @foreach ($item->{$field} as $map) + + + + + + + @endforeach + @else + + + + + + + @endif + +
TypeTeam (if team)Position/Person (Emp or Pos Code)
+ + + + +
+ + + +
+ @break + @endswitch + @if ($props['type'] != 'hidden') +
+ @endif + @endforeach + +
+
+ Back + +
+
+
+
+
+
+
+
+
+ +@endsection + +@section('script') + + + + + +@endsection diff --git a/resources/views/common/form.blade.php b/resources/views/common/form.blade.php index 3a1f6595..747a455c 100644 --- a/resources/views/common/form.blade.php +++ b/resources/views/common/form.blade.php @@ -93,11 +93,11 @@ @case('yesno')
- {$field} == 'yes' ? 'checked':''}} {{isset($props['required'])&&$props['required']?'required':'' }}> + {$field}) && $item->{$field} == 'yes' ? 'checked':''}} {{isset($props['required'])&&$props['required']?'required':'' }}>
- {$field} == 'no' ? 'checked':''}}> + {$field}) && $item->{$field} == 'no' ? 'checked':''}}>
diff --git a/resources/views/common/list.blade.php b/resources/views/common/list.blade.php index c66cf718..1ba0bb4d 100644 --- a/resources/views/common/list.blade.php +++ b/resources/views/common/list.blade.php @@ -64,6 +64,9 @@ @case('date') {{ date("d M Y", strtotime($item->{$field})) }} @break + @case('datetime') + {{ date("d M Y, h:iA", strtotime($item->{$field})+19800 ) }} + @break @endswitch diff --git a/resources/views/contact/ajaxlist.blade.php b/resources/views/contact/ajaxlist.blade.php new file mode 100644 index 00000000..4f803fab --- /dev/null +++ b/resources/views/contact/ajaxlist.blade.php @@ -0,0 +1,272 @@ +@extends('layouts.vertical', ["page_title"=> "Datatables"]) + +@section('css') + + + + +@endsection + +@section('content') + +
+ + +
+
+

{{$title}} Management

+
+
+ @if(isset($buttons)) + @foreach($buttons as $button) + {{$button['title']}} + @endforeach + @endif +
+
+ +@if(session()->has('message')) +
+ {{ session()->get('message') }} +
+@endif +@if(session()->has('error')) +
+ {{ session()->get('error') }} +
+@endif +
+
+
+
+ + + + @foreach($fields as $field => $props) + + @endforeach + + + + + + +
{{$props['title']}}
+ +
+
+
+
+ +
+ + + + + + +@endsection + +@section('script') + + + + + +@endsection \ No newline at end of file diff --git a/resources/views/form/download.blade.php b/resources/views/form/download.blade.php index 777fd24e..7a0382e6 100755 --- a/resources/views/form/download.blade.php +++ b/resources/views/form/download.blade.php @@ -18,7 +18,7 @@

Now click below button to download

Download - Homepage +
diff --git a/resources/views/form/list.blade.php b/resources/views/form/list.blade.php index 4b9007dd..e39f0db8 100644 --- a/resources/views/form/list.blade.php +++ b/resources/views/form/list.blade.php @@ -116,6 +116,9 @@ @include('layouts.shared/footer-script') + + + + \ No newline at end of file diff --git a/resources/views/form/rapport-copd/1681375813-9cc53b88-c4b4-4f7c-8cc8-1d887ef631df.blade.php b/resources/views/form/rapport-copd/1681375813-9cc53b88-c4b4-4f7c-8cc8-1d887ef631df.blade.php new file mode 100644 index 00000000..75776b40 --- /dev/null +++ b/resources/views/form/rapport-copd/1681375813-9cc53b88-c4b4-4f7c-8cc8-1d887ef631df.blade.php @@ -0,0 +1,319 @@ + + + + @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/rapport-pulmocare/1669979081-e991fc27-e8c1-4120-9883-b42af09244d3.blade.php b/resources/views/form/rapport-pulmocare/1669979081-e991fc27-e8c1-4120-9883-b42af09244d3.blade.php new file mode 100644 index 00000000..b8a8db3a --- /dev/null +++ b/resources/views/form/rapport-pulmocare/1669979081-e991fc27-e8c1-4120-9883-b42af09244d3.blade.php @@ -0,0 +1,331 @@ + + + + @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/rapport-pulmocare/1669979083-e991fc27-e8c1-4120-9883-b42af09244d6.blade.php b/resources/views/form/rapport-pulmocare/1669979083-e991fc27-e8c1-4120-9883-b42af09244d6.blade.php new file mode 100644 index 00000000..99f74bde --- /dev/null +++ b/resources/views/form/rapport-pulmocare/1669979083-e991fc27-e8c1-4120-9883-b42af09244d6.blade.php @@ -0,0 +1,358 @@ + + + + @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/rapport-shwas2/1653655224-724ec5b3-fccb-4a88-bf28-cf894fa27a78.blade copy.php b/resources/views/form/rapport-shwas2/1653655224-724ec5b3-fccb-4a88-bf28-cf894fa27a78.blade copy.php new file mode 100644 index 00000000..c6a225ee --- /dev/null +++ b/resources/views/form/rapport-shwas2/1653655224-724ec5b3-fccb-4a88-bf28-cf894fa27a78.blade copy.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/rapport-shwas2/1653655224-724ec5b3-fccb-4a88-bf28-cf894fa27a78.blade.php b/resources/views/form/rapport-shwas2/1653655224-724ec5b3-fccb-4a88-bf28-cf894fa27a78.blade.php index c6a225ee..71a96ed4 100644 --- a/resources/views/form/rapport-shwas2/1653655224-724ec5b3-fccb-4a88-bf28-cf894fa27a78.blade.php +++ b/resources/views/form/rapport-shwas2/1653655224-724ec5b3-fccb-4a88-bf28-cf894fa27a78.blade.php @@ -34,24 +34,6 @@ @endif - @php - $start = strtotime("1 May 2021"); - $till = strtotime("now"); - if( request()->get('record_date') ) { - $target = strtotime(request()->get('record_date')); - } else { - $target = strtotime("now"); - } - $history = Formhelper::getMultiformData($form->partition, $form->form_id, $form->user_id, date("m-01-Y", $target) , date("m-t-Y", $target) ); - $contacts = []; - if(sizeof($history->data->submissions) > 0) { - foreach($history->data->submissions as $sub){ - $contacts[$sub->formdata->contact_id] = ['id' => $sub->id, 'indamet_80_rx' => isset($sub->formdata->indamet_80_rx) ? $sub->formdata->indamet_80_rx : 0, 'indamet_160_rx' => isset($sub->formdata->indamet_160_rx) ? $sub->formdata->indamet_160_rx : 0, 'indamet_320_rx' => isset($sub->formdata->indamet_320_rx) ? $sub->formdata->indamet_320_rx : 0 ]; - } - } - //echo '
';print_r($contacts);echo '
'; exit; - @endphp -
@csrf @@ -60,16 +42,7 @@ @endif
- -
-
- - +
@@ -78,30 +51,45 @@ Doctor Name + Campaign + Doctor Tagging Indamet 80 Indamet 160 Indamet 320 - @foreach($questions[2]->options as $doctor) - @if(sizeof($contacts) > 0 && isset($contacts[$doctor->display]) ) - - @endif + @foreach($questions[1]->options as $doctor) + {{-- @if(isset($doctor->contact->campaign) && $doctor->contact->campaign != "") --}} - + {{$doctor->display}} + {{isset($doctor->contact->campaign) ? $doctor->contact->campaign : '-'}} - + - + - + + + + + {{-- @endif --}} @endforeach diff --git a/resources/views/form/rapport-shwas2/1681455647-097aa7d8-21a0-44fe-b612-2a98518e6aeb.blade.php b/resources/views/form/rapport-shwas2/1681455647-097aa7d8-21a0-44fe-b612-2a98518e6aeb.blade.php new file mode 100644 index 00000000..998b6d1c --- /dev/null +++ b/resources/views/form/rapport-shwas2/1681455647-097aa7d8-21a0-44fe-b612-2a98518e6aeb.blade.php @@ -0,0 +1,209 @@ + + + + @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/rapport-shwas2/1681707866-177a330d-350e-4158-9db3-366814d4a324.blade.php b/resources/views/form/rapport-shwas2/1681707866-177a330d-350e-4158-9db3-366814d4a324.blade.php new file mode 100644 index 00000000..cf7e2156 --- /dev/null +++ b/resources/views/form/rapport-shwas2/1681707866-177a330d-350e-4158-9db3-366814d4a324.blade.php @@ -0,0 +1,209 @@ + + + + @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/rapport-shwas2/list-1681455647-097aa7d8-21a0-44fe-b612-2a98518e6aeb.blade.php b/resources/views/form/rapport-shwas2/list-1681455647-097aa7d8-21a0-44fe-b612-2a98518e6aeb.blade.php new file mode 100644 index 00000000..e8c0279f --- /dev/null +++ b/resources/views/form/rapport-shwas2/list-1681455647-097aa7d8-21a0-44fe-b612-2a98518e6aeb.blade.php @@ -0,0 +1,228 @@ +'; +// print_r($submissions); + +// echo '
';
+// print_r($questions);
+?>
+
+
+
+
+
+    @include('layouts.shared/title-meta', ['title' => 'History'])
+    @include('layouts.shared/head-css', ['mode' => $mode ?? '', 'demo' => $demo ?? ''])
+
+
+ processing... +
+ + + + + + + @include('layouts.shared/footer-script') + + + + diff --git a/resources/views/form/rapport-vitalis1/1670988660-38fb2d79-33dc-4972-816f-85d873ed6b01.blade.php b/resources/views/form/rapport-vitalis1/1670988660-38fb2d79-33dc-4972-816f-85d873ed6b01.blade.php new file mode 100644 index 00000000..f83c778f --- /dev/null +++ b/resources/views/form/rapport-vitalis1/1670988660-38fb2d79-33dc-4972-816f-85d873ed6b01.blade.php @@ -0,0 +1,209 @@ + + + + @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/rapport-vitalis1/1672051617-b274ae94-8706-4f0f-8e65-6e4380f7c005.blade.php b/resources/views/form/rapport-vitalis1/1672051617-b274ae94-8706-4f0f-8e65-6e4380f7c005.blade.php new file mode 100644 index 00000000..f83c778f --- /dev/null +++ b/resources/views/form/rapport-vitalis1/1672051617-b274ae94-8706-4f0f-8e65-6e4380f7c005.blade.php @@ -0,0 +1,209 @@ + + + + @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/index.blade.php b/resources/views/index.blade.php index a3192604..1304a4d7 100755 --- a/resources/views/index.blade.php +++ b/resources/views/index.blade.php @@ -31,14 +31,14 @@

{{$metric->name}}

-
{{$metric->periods[0]->label}}
+
{{$metric->current_period}}
{{$metric->label}}

{{$metric->value}} {{$metric->type=='verses' ? ' / ' . $metric->max : ''}}

@foreach($metric->available_charts as $chart) - {{$chart->name}} Chart + {{$chart->name}} Chart @endforeach
diff --git a/resources/views/layouts/shared/left-sidebar.blade.php b/resources/views/layouts/shared/left-sidebar.blade.php index fbfdf5f4..6ecf5bec 100755 --- a/resources/views/layouts/shared/left-sidebar.blade.php +++ b/resources/views/layouts/shared/left-sidebar.blade.php @@ -132,6 +132,11 @@ Attributes @endif + @if(in_array('contact_list_get_all', $permissions)) +
  • + Contact Lists +
  • + @endif
    @@ -214,6 +219,51 @@ @endif + @if(in_array('channel_get_all', $permissions) || + in_array('template_get_all', $permissions) || + in_array('templatemedia_get_all', $permissions) ) +
  • + + + Communications + + +
    + +
    +
  • + @endif @if(in_array('metric_get_all', $permissions) || in_array('injestion_mapping_get_all', $permissions) || diff --git a/resources/views/layouts/shared/title-meta.blade.php b/resources/views/layouts/shared/title-meta.blade.php index f338a512..64e5297d 100755 --- a/resources/views/layouts/shared/title-meta.blade.php +++ b/resources/views/layouts/shared/title-meta.blade.php @@ -5,4 +5,5 @@ - \ No newline at end of file + + \ No newline at end of file diff --git a/resources/views/layouts/shared/topbar.blade.php b/resources/views/layouts/shared/topbar.blade.php index c7e1a39d..ab31cce1 100755 --- a/resources/views/layouts/shared/topbar.blade.php +++ b/resources/views/layouts/shared/topbar.blade.php @@ -1,5 +1,5 @@ -