public function manage($model, $service, $request, $params)
 {
     if (isset($request->req['rm_action']) && $request->req['rm_action'] === 'delete') {
         $this->remove_field($model, $service, $request, $params);
     }
     if (isset($request->req['rm_form_id'])) {
         $fields_data = $service->get_all_form_fields($request->req['rm_form_id']);
     } else {
         die(RM_UI_Strings::get('MSG_NO_FORM_SELECTED'));
     }
     foreach ($fields_data as $index => $field_data) {
         if ($field_data->field_type === 'Price') {
             $price_field = $service->get('PAYPAL_FIELDS', array('field_id' => $field_data->field_value), array('%d'), 'row');
             if ($price_field && isset($price_field->type)) {
                 if ($price_field->type !== 'fixed') {
                     unset($fields_data[$index]);
                 }
             }
         } elseif ($field_data->field_type === 'File' || $field_data->field_type === 'Repeatable' || $field_data->field_type === 'Map' || $field_data->field_type === 'Address') {
             unset($fields_data[$index]);
         }
     }
     $data = new stdClass();
     $data->fields_data = $fields_data;
     $data->forms = RM_Utilities::get_forms_dropdown($service);
     $data->field_types = RM_Utilities::get_field_types();
     $data->form_id = $request->req['rm_form_id'];
     $view = $this->mv_handler->setView("field_manager");
     $view->render($data);
 }
 public function show_form($model, $service, $request, $params)
 {
     $data = new stdClass();
     $data->forms = RM_Utilities::get_forms_dropdown($service);
     if (isset($request->req['rm_form_id'])) {
         $data->current_form_id = $request->req['rm_form_id'];
     } else {
         //Get first form's id in this case
         reset($data->forms);
         $data->current_form_id = (string) key($data->forms);
     }
     $data->analysis = $this->calculate_form_stats($data->current_form_id, $service);
     //For pagination
     $entries_per_page = 10;
     $req_page = isset($request->req['rm_reqpage']) && $request->req['rm_reqpage'] > 0 ? $request->req['rm_reqpage'] : 1;
     $offset = ($req_page - 1) * $entries_per_page;
     $total_entries = $data->analysis->total_entries;
     $data->rm_slug = $request->req['page'];
     $data->stat_data = $service->get_form_stats($data->current_form_id, $offset, $entries_per_page);
     $data->total_pages = (int) ($total_entries / $entries_per_page) + ($total_entries % $entries_per_page == 0 ? 0 : 1);
     $data->curr_page = $req_page;
     $data->starting_serial_number = $offset + 1;
     //Pagination Ends
     $view = $this->mv_handler->setView("form_analytics");
     $view->render($data);
 }
 public function manage($model, $service, $request, $params)
 {
     $data = new stdClass();
     $data->forms = RM_Utilities::get_forms_dropdown($service);
     if (isset($request->req['rm_form_id'])) {
         $data->current_form_id = $request->req['rm_form_id'];
     } else {
         //Get first form's id in this case
         reset($data->forms);
         $data->current_form_id = (string) key($data->forms);
         //Set request parameter manually so wp-editor hook can use it.
         $_REQUEST['rm_form_id'] = $data->current_form_id;
     }
     $data->queue_view = false;
     if (isset($request->req['rm_queues']) && $request->req['rm_queues'] == 'true') {
         $data->queue_view = true;
         $data->queues = $service->get_queues();
         $data->queue_count = count($data->queues);
     }
     if ($this->mv_handler->validateForm("invitation_mail_content")) {
         //echo "<pre>", var_dump($request->req),die;
         $form_id = $data->current_form_id;
         if (!isset($data->forms[$form_id])) {
             die("Error: INVALID FORM ID, RETRY.");
         }
         $res = $service->add_job($form_id, $request->req["rm_mail_subject"], $request->req["rm_mail_body"]);
         //Always check via isset for this error in template file
         $data->no_mail_error = $res == false;
         // ? true : false;
         rm_start_cron();
         //Some return condition maybe?
     }
     /*$job = new stdClass;
     
             $job->total = RM_Job_Manager::get_job_total($data->current_form_id);
     
             if($job->total === null)
             {
                 $data->is_job_running = false;
                 $job->offset = null;
                 $job->started_on = null;
             }
             else
             {
                 $data->is_job_running = true;
                 $job->offset = RM_Job_Manager::get_job_offset($data->current_form_id);
                 $start_time = RM_Job_Manager::get_job_starting_time($data->current_form_id);
                 $job->started_on = RM_Utilities::localize_time($start_time,'d M Y');
             }*/
     $data->job = $service->get_job_stat($data->current_form_id);
     //$job;
     $data->total_resp = $service->get_resp_count($data->current_form_id);
     $view = $this->mv_handler->setView("invitations");
     $view->render($data);
 }
 public function manage($model, $service, $request, $params)
 {
     $data = new stdClass();
     if (isset($request->req['rm_action'])) {
         if ($request->req['rm_action'] === 'delete') {
             $this->remove_field($model, $service, $request, $params);
         } elseif ($request->req['rm_action'] === 'add_page') {
             $data->current_page = $this->add_page($model, $service, $request, $params);
         } elseif ($request->req['rm_action'] === 'delete_page') {
             $this->delete_page($model, $service, $request, $params);
         } elseif ($request->req['rm_action'] === 'rename_page') {
             $this->rename_page($model, $service, $request, $params);
         }
     }
     if (isset($request->req['rm_form_id'])) {
         $fields_data = $service->get_all_form_fields($request->req['rm_form_id']);
     } else {
         die(RM_UI_Strings::get('MSG_NO_FORM_SELECTED'));
     }
     $data->fields_data = $fields_data;
     $data->forms = RM_Utilities::get_forms_dropdown($service);
     $data->field_types = RM_Utilities::get_field_types();
     $data->form_id = $request->req['rm_form_id'];
     $form = new RM_Forms();
     $form->load_from_db($data->form_id);
     $fopts = $form->get_form_options();
     $g = array_keys($data->field_types);
     if ($data->fields_data && is_array($data->fields_data)) {
         foreach ($data->fields_data as $in => $out) {
             if (!in_array($out->field_type, $g)) {
                 unset($data->fields_data[$in]);
             }
         }
     }
     if (!$fopts->form_pages) {
         $data->total_page = 1;
         $data->form_pages = array('Page 1');
     } else {
         $data->total_page = count($fopts->form_pages);
         $data->form_pages = $fopts->form_pages;
     }
     if (!isset($data->current_page)) {
         $data->current_page = isset($request->req['rm_form_page_no']) ? $request->req['rm_form_page_no'] : 1;
     }
     $view = $this->mv_handler->setView("field_manager");
     $view->render($data);
 }
 public function manage($model, $service, $request, $params)
 {
     $data = new stdClass();
     if (isset($request->req['rm_field_to_search']) && isset($request->req['rm_value_to_serach']) && (int) $request->req['rm_field_to_search']) {
         $field_id = $request->req['rm_field_to_search'];
         $field_value = $request->req['rm_value_to_serach'];
     } else {
         $field_id = null;
         $field_value = null;
     }
     if (isset($request->req['rm_form_id'])) {
         $form_id = $request->req['rm_form_id'];
     } else {
         $form_id = $service->get('FORMS', 1, array('%d'), 'var', 0, 15, $column = 'form_id', null, true);
     }
     if ((int) $field_id) {
         $data->searched = true;
     } else {
         $data->searched = false;
     }
     $data->to_search = new stdClass();
     $data->to_search->id = $field_id;
     $data->to_search->value = $field_value;
     $data->form_id = $form_id;
     $data->forms = RM_Utilities::get_forms_dropdown($service);
     $data->fields = $service->get_all_form_fields($form_id);
     //$data->submissions = $service->get('SUBMISSIONS', array('form_id' => $form_id), array('%d'), 'results', 0, 100, '*', $sort_by = null, $descending = true);
     $data->interval = isset($request->req['rm_interval']) ? $request->req['rm_interval'] : 'all';
     $data->total_entries = count(RM_DBManager::get_results_for_last($data->interval, $form_id, $field_id, $field_value));
     //echo "<pre>",var_dump($data->x), die;
     $data->rm_slug = $request->req['page'];
     //Pagination
     $entries_per_page = 10;
     $req_page = isset($request->req['rm_reqpage']) && $request->req['rm_reqpage'] > 0 ? $request->req['rm_reqpage'] : 1;
     $offset = ($req_page - 1) * $entries_per_page;
     $total_entries = $data->total_entries;
     $data->total_pages = (int) ($total_entries / $entries_per_page) + ($total_entries % $entries_per_page == 0 ? 0 : 1);
     $data->curr_page = $req_page;
     $data->submissions = RM_DBManager::get_results_for_last($data->interval, $form_id, $field_id, $field_value, $offset, $entries_per_page, 'submission_id', true);
     $view = $this->mv_handler->setView('submissions_manager');
     $view->render($data);
 }
 function limits($model, $service, $request, $params)
 {
     if ($this->mv_handler->validateForm("form_sett_limits")) {
         $options['form_should_auto_expire'] = isset($request->req['form_should_auto_expire']) ? $request->req['form_should_auto_expire'] : null;
         $options['form_expired_by'] = isset($request->req['form_expired_by']) ? $request->req['form_expired_by'] : null;
         $options['form_submissions_limit'] = $request->req['form_submissions_limit'];
         $options['form_expiry_date'] = $request->req['form_expiry_date'];
         if (isset($request->req['form_message_after_expiry'])) {
             $options['form_message_after_expiry'] = $request->req['form_message_after_expiry'];
         }
         $options['enable_captcha'] = isset($request->req['enable_captcha']) ? $request->req['enable_captcha'] : null;
         //$options['allow_multiple_file_uploads'] =isset( $request->req['allow_multiple_file_uploads']) ? $request->req['allow_multiple_file_uploads'] : null;
         $options['sub_limit_antispam'] = isset($request->req['sub_limit_antispam']) ? $request->req['sub_limit_antispam'] : null;
         $options['post_expiry_action'] = isset($request->req['post_expiry_action']) ? $request->req['post_expiry_action'] : 'display_message';
         if (isset($request->req['post_expiry_form_id'])) {
             $options['post_expiry_form_id'] = $request->req['post_expiry_form_id'];
         }
         //var_dump($request->req);die;
         if (isset($request->req['rm_form_id']) && (int) $request->req['rm_form_id']) {
             $model->load_from_db($request->req['rm_form_id']);
             $model->set($options);
             if ($model->validate_limits('form_sett_limits')) {
                 $model->update_into_db();
                 RM_Utilities::redirect('?page=rm_form_sett_manage&rm_form_id=' . $request->req['rm_form_id']);
                 return;
             } else {
                 $visited = true;
             }
         } else {
             echo '<div class="rmnotice">' . RM_UI_Strings::get('MSG_FS_NOT_AUTHORIZED') . '</div>';
             return;
         }
     }
     if (isset($request->req['rm_form_id']) && (int) $request->req['rm_form_id']) {
         $data = new stdClass();
         if (!isset($visited)) {
             $model->load_from_db($request->req['rm_form_id']);
         }
         $view = $this->mv_handler->setView('form_limits_sett');
         $data->model = $model;
         $data->form_dropdown = RM_Utilities::get_forms_dropdown($service);
     } else {
         $view = $this->mv_handler->setView('show_notice');
         $data = RM_UI_Strings::get('MSG_FS_NOT_AUTHORIZED');
     }
     $view->render($data);
 }