function smarty_function_display_edit_submission_view_dropdown($params, &$smarty) { global $LANG; if (empty($params["form_id"])) { $smarty->trigger_error("assign: missing 'form_id' parameter."); return; } if (empty($params["view_id"])) { $smarty->trigger_error("assign: missing 'view_id' parameter."); return; } if (empty($params["submission_id"])) { $smarty->trigger_error("assign: missing 'submission_id' parameter."); return; } if (empty($params["account_id"])) { $smarty->trigger_error("assign: missing 'account_id' parameter."); return; } $is_admin = $params["is_admin"] ? $params["is_admin"] : false; $form_id = $params["form_id"]; $view_id = $params["view_id"]; $submission_id = $params["submission_id"]; $account_id = $params["account_id"]; if ($is_admin) { $views = ft_get_form_views($form_id); } else { $views = ft_get_form_views($form_id, $account_id); } // loop through the Views assigned to this user and IFF the view contains the submission, // add it to the dropdown list if (count($views) > 1) { $same_page = ft_get_clean_php_self(); $html = "<select onchange=\"window.location='{$same_page}?form_id={$form_id}&submission_id={$submission_id}&view_id=' + this.value\">\r\n\t <optgroup label=\"Views\">\n"; foreach ($views as $view_info) { $curr_view_id = $view_info["view_id"]; $curr_view_name = $view_info["view_name"]; if (ft_check_view_contains_submission($form_id, $curr_view_id, $submission_id)) { $selected = $curr_view_id == $view_id ? " selected" : ""; $html .= "<option value=\"{$curr_view_id}\"{$selected}>{$curr_view_name}</option>"; } } $html .= "</optgroup></select>\n"; } return $html; }
/** * This returns all forms and form Views that a client account may access. * * @param array $account_id */ function ft_get_client_form_views($account_id) { $client_forms = ft_search_forms($account_id); $info = array(); foreach ($client_forms as $form_info) { $form_id = $form_info["form_id"]; $views = ft_get_form_views($form_id, $account_id); $view_ids = array(); foreach ($views as $view_info) { $view_ids[] = $view_info["view_id"]; } $info[$form_id] = $view_ids; } extract(ft_process_hook_calls("end", compact("account_id", "info"), array("info")), EXTR_OVERWRITE); return $info; }
$views = implode(",", $v); $form_views_js_info[] = "page_ns.form_views.push([{$form_id},[{$views}]])"; } $forms_js = implode(";\n", $forms_js_rows); $form_views_js = implode(";\n", $form_views_js_info); // loop through each form and add all the Views $all_form_views = array(); foreach ($forms as $form_info) { $form_id = $form_info["form_id"]; $all_form_views[$form_id] = ft_get_form_views($form_id); } $client_forms = ft_search_forms($client_id, true); $updated_client_forms = array(); foreach ($client_forms as $form_info) { $form_id = $form_info["form_id"]; $form_info["views"] = ft_get_form_views($form_id, $client_id); $updated_client_forms[] = $form_info; } // ------------------------------------------------------------------------------------------- // compile header information $page_vars["page"] = "forms"; $page_vars["page_url"] = ft_get_page_url("edit_client_forms", array("client_id" => $client_id)); $page_vars["head_title"] = "{$LANG["phrase_edit_client"]} - {$LANG["word_forms"]}"; $page_vars["client_info"] = $client_info; $page_vars["forms"] = $forms; $page_vars["client_forms"] = $updated_client_forms; $page_vars["all_form_views"] = $all_form_views; $page_vars["client_id"] = $client_id; $page_vars["js_messages"] = array("word_delete", "phrase_please_select", "phrase_please_select_form", "word_add_uc_rightarrow", "word_remove_uc_leftarrow", "phrase_form_already_selected"); $page_vars["head_string"] = "<script type=\"text/javascript\" src=\"{$g_root_url}/global/scripts/manage_client_forms.js\"></script>"; $page_vars["head_js"] = <<<END