public static function form_list_page() { global $wpdb; if (!GFCommon::ensure_wp_version()) { return; } echo GFCommon::get_remote_message(); $action = RGForms::post("action"); $bulk_action = RGForms::post("bulk_action"); $bulk_action = !empty($bulk_action) ? $bulk_action : RGForms::post("bulk_action2"); if ($action == "trash") { check_admin_referer('gforms_update_forms', 'gforms_update_forms'); $form_id = RGForms::post("action_argument"); RGFormsModel::trash_form($form_id); $message = __('Form moved to the trash.', 'gravityforms'); } else { if ($action == "restore") { check_admin_referer('gforms_update_forms', 'gforms_update_forms'); $form_id = RGForms::post("action_argument"); RGFormsModel::restore_form($form_id); $message = __('Form restored.', 'gravityforms'); } else { if ($action == "delete") { check_admin_referer('gforms_update_forms', 'gforms_update_forms'); $form_id = RGForms::post("action_argument"); if (GFCommon::current_user_can_any("gravityforms_delete_forms")) { RGFormsModel::delete_form($form_id); $message = __('Form deleted.', 'gravityforms'); } else { $message = __("You don't have adequate permissions to delete forms.", 'gravityforms'); } } else { if ($action == "duplicate") { check_admin_referer('gforms_update_forms', 'gforms_update_forms'); $form_id = RGForms::post("action_argument"); RGFormsModel::duplicate_form($form_id); $message = __('Form duplicated.', 'gravityforms'); } } } } if ($bulk_action) { check_admin_referer('gforms_update_forms', 'gforms_update_forms'); $form_ids = is_array(rgpost('form')) ? rgpost('form') : array(); $form_count = count($form_ids); switch ($bulk_action) { case 'trash': GFFormsModel::trash_forms($form_ids); $message = _n('%s form moved to the trash.', '%s forms moved to the trash.', $form_count, 'gravityforms'); break; case 'restore': GFFormsModel::restore_forms($form_ids); $message = _n('%s form restored.', '%s forms restored.', $form_count, 'gravityforms'); break; case 'delete': if (GFCommon::current_user_can_any("gravityforms_delete_forms")) { GFFormsModel::delete_forms($form_ids); $message = _n('%s form deleted.', '%s forms deleted.', $form_count, 'gravityforms'); } else { $message = __("You don't have adequate permissions to delete forms.", 'gravityforms'); } break; case 'reset_views': foreach ($form_ids as $form_id) { GFFormsModel::delete_views($form_id); } $message = _n('Views for %s form have been reset.', 'Views for %s forms have been reset.', $form_count, 'gravityforms'); break; case 'delete_entries': if (GFCommon::current_user_can_any("gravityforms_delete_entries")) { foreach ($form_ids as $form_id) { GFFormsModel::delete_leads_by_form($form_id); } $message = _n('Entries for %s form have been deleted.', 'Entries for %s forms have been deleted.', $form_count, 'gravityforms'); } else { $message = __("You don't have adequate permissions to delete entries.", "gravityforms"); } break; case 'activate': foreach ($form_ids as $form_id) { GFFormsModel::update_form_active($form_id, 1); } $message = _n('%s form has been marked as active.', '%s forms have been marked as active.', $form_count, 'gravityforms'); break; case 'deactivate': foreach ($form_ids as $form_id) { GFFormsModel::update_form_active($form_id, 0); } $message = _n('%s form has been marked as inactive.', '%s forms have been marked as inactive.', $form_count, 'gravityforms'); break; } if (isset($message)) { $message = sprintf($message, $form_count); } } $sort_column = empty($_GET["sort"]) ? "title" : $_GET["sort"]; $sort_direction = empty($_GET["dir"]) ? "ASC" : $_GET["dir"]; $active = RGForms::get("active") == "" ? null : RGForms::get("active"); $trash = RGForms::get("trash") == "" ? false : RGForms::get("trash"); $trash = esc_attr($trash); $forms = RGFormsModel::get_forms($active, $sort_column, $sort_direction, $trash); $form_count = RGFormsModel::get_form_count(); // - new form modal - // wp_print_styles(array('thickbox')); /*wp_enqueue_script( 'form_admin' ); wp_print_scripts( array( 'form_admin' ) );*/ ?> <script type="text/javascript"> jQuery(document).ready(function($) { <?php if (rgget('page') == 'gf_new_form') { ?> loadNewFormModal(); <?php } ?> $('.gf_form_action_has_submenu').hover(function(){ var l = jQuery(this).offset().left; jQuery(this).find('.gf_submenu') .toggle() .offset({ left: l }); }, function(){ jQuery(this).find('.gf_submenu').hide(); }); }); function loadNewFormModal() { resetNewFormModal(); tb_show('<?php _e('Create a New Form', 'gravityforms'); ?> ', '#TB_inline?width=375&inlineId=gf_new_form_modal'); jQuery('#new_form_title').focus(); return false; } function saveNewForm() { var createButton = jQuery('#save_new_form'); var spinner = new gfAjaxSpinner(createButton, gf_vars.baseUrl + '/images/spinner.gif'); // clear error message jQuery('#gf_new_form_error_message').html(''); var origVal = createButton.val(); createButton.val('<?php _e('Creating Form...', 'gravityforms'); ?> '); var form = { title: jQuery('#new_form_title').val(), description: jQuery('#new_form_description').val(), labelPlacement:'top_label', descriptionPlacement:'below', button: { type: 'text', text: '<?php _e("Submit", "gravityforms"); ?> ', imageUrl : '' }, fields:[] } jQuery.post(ajaxurl, { form: jQuery.toJSON(form), action: 'gf_save_new_form', gf_save_new_form: '<?php echo wp_create_nonce('gf_save_new_form'); ?> ' }, function(response){ spinner.destroy(); var respData = jQuery.parseJSON(response); if(respData['error']) { // adding class later otherwise WP moves box up to the top of the page jQuery('#gf_new_form_error_message').html( respData.error ); addInputErrorIcon( '#new_form_title' ); createButton.val(origVal); } else { location.href = respData.redirect; createButton.val('<?php _e('Saved! Redirecting...', 'gravityforms'); ?> '); } }); } function resetNewFormModal() { jQuery('#new_form_title').val(''); jQuery('#new_form_description').val(''); jQuery('#gf_new_form_error_message').html(''); removeInputErrorIcons( '.gf_new_form_modal_container' ); } function addInputErrorIcon( elem ) { var elem = jQuery(elem); elem.before( '<span class="gf_input_error_icon"></span>'); } function removeInputErrorIcons( elem ) { var elem = jQuery(elem); elem.find('span.gf_input_error_icon').remove(); } </script> <style type="text/css"> body div#TB_window[style] { width: 405px !important; height:340px !important; margin-left: -202px !important; } body #TB_ajaxContent { height: 290px !important; overflow: hidden; } .gf_new_form_modal_container { padding: 30px; } .gf_new_form_modal_container .setting-row { margin: 0 0 10px; } .gf_new_form_modal_container .setting-row label { line-height: 24px; } .gf_new_form_modal_container .setting-row input, .gf_new_form_modal_container .setting-row textarea { display: block; width: 100%; } .gf_new_form_modal_container .setting-row textarea { height: 110px; } .gf_new_form_modal_container .submit-row { margin-top: 18px; } .gf_new_form_modal_container #gf_new_form_error_message { margin: 0 0 18px 5px !important; color: #BC0B0B; } .gf_new_form_modal_container img.gfspinner { position: relative; top: 5px; left: 5px; } </style> <div id="gf_new_form_modal" style="display:none;"> <div class="gf_new_form_modal_container"> <div class="setting-row"> <label for="new_form_title"><?php _e('Form Title', 'gravityforms'); ?> <span class="gfield_required">*</span></label><br /> <input type="text" class="regular-text" value="" id="new_form_title" tabindex="9000"> </div> <div class="setting-row"> <label for="new_form_description"><?php _e('Form Description', 'gravityforms'); ?> </label><br /> <textarea class="regular-text" id="new_form_description" tabindex="9001"></textarea> </div> <div class="submit-row"> <?php echo apply_filters("gform_new_form_button", '<input id="save_new_form" type="button" class="button button-large button-primary" value="' . __('Create Form', 'gravityforms') . '" onclick="saveNewForm();" tabindex="9002" />'); ?> <div id="gf_new_form_error_message" style="display:inline-block;"></div> </div> </div> </div> <?php // - end of new form modal - // ?> <script text="text/javascript"> function TrashForm(form_id){ jQuery("#action_argument").val(form_id); jQuery("#action").val("trash"); jQuery("#forms_form")[0].submit(); } function RestoreForm(form_id){ jQuery("#action_argument").val(form_id); jQuery("#action").val("restore"); jQuery("#forms_form")[0].submit(); } function DeleteForm(form_id){ jQuery("#action_argument").val(form_id); jQuery("#action").val("delete"); jQuery("#forms_form")[0].submit(); } function DuplicateForm(form_id){ jQuery("#action_argument").val(form_id); jQuery("#action").val("duplicate"); jQuery("#forms_form")[0].submit(); } function ToggleActive(img, form_id){ var is_active = img.src.indexOf("active1.png") >=0 if(is_active){ img.src = img.src.replace("active1.png", "active0.png"); jQuery(img).attr('title','<?php _e("Inactive", "gravityforms"); ?> ').attr('alt', '<?php _e("Inactive", "gravityforms"); ?> '); } else{ img.src = img.src.replace("active0.png", "active1.png"); jQuery(img).attr('title','<?php _e("Active", "gravityforms"); ?> ').attr('alt', '<?php _e("Active", "gravityforms"); ?> '); } UpdateCount("active_count", is_active ? -1 : 1); UpdateCount("inactive_count", is_active ? 1 : -1); var mysack = new sack("<?php echo admin_url("admin-ajax.php"); ?> " ); mysack.execute = 1; mysack.method = 'POST'; mysack.setVar( "action", "rg_update_form_active" ); mysack.setVar( "rg_update_form_active", "<?php echo wp_create_nonce("rg_update_form_active"); ?> " ); mysack.setVar( "form_id", form_id); mysack.setVar( "is_active", is_active ? 0 : 1); mysack.onError = function() { alert('<?php echo esc_js(__("Ajax error while updating form", "gravityforms")); ?> ' )}; mysack.runAJAX(); return true; } function UpdateCount(element_id, change){ var element = jQuery("#" + element_id); var count = parseInt(element.html()) + change element.html(count + ""); } function gfConfirmBulkAction(element_id){ var element = "#" + element_id; if(jQuery(element).val() == 'delete') return confirm('<?php echo __("WARNING: You are about to delete these forms and ALL entries associated with them. ", "gravityforms") . __("\\'Cancel\\' to stop, \\'OK\\' to delete.", "gravityforms"); ?> '); else if(jQuery(element).val() == 'reset_views') return confirm('<?php echo __("Are you sure you would like to reset the Views for the selected forms? ", "gravityforms") . __("\\'Cancel\\' to stop, \\'OK\\' to reset.", "gravityforms"); ?> '); else if(jQuery(element).val() == 'delete_entries') return confirm('<?php echo __("WARNING: You are about to delete ALL entries associated with the selected forms. ", "gravityforms") . __("\\'Cancel\\' to stop, \\'OK\\' to delete.", "gravityforms"); ?> '); return true; } </script> <link rel="stylesheet" href="<?php echo GFCommon::get_base_url(); ?> /css/admin.css" /> <div class="wrap <?php echo GFCommon::get_browser_class(); ?> "> <h2> <?php _e("Forms", "gravityforms"); ?> <a class="add-new-h2" href="" onclick="return loadNewFormModal();"><?php _e("Add New", "gravityforms"); ?> </a> </h2> <?php if (isset($message)) { ?> <div class="updated below-h2" id="message"><p><?php echo $message; ?> </p></div> <?php } ?> <form id="forms_form" method="post"> <?php wp_nonce_field('gforms_update_forms', 'gforms_update_forms'); ?> <input type="hidden" id="action" name="action"/> <input type="hidden" id="action_argument" name="action_argument"/> <ul class="subsubsub"> <li><a class="<?php echo $active === null ? "current" : ""; ?> " href="?page=gf_edit_forms"><?php _e("All", "gravityforms"); ?> <span class="count">(<span id="all_count"><?php echo $form_count["total"]; ?> </span>)</span></a> | </li> <li><a class="<?php echo $active == "1" ? "current" : ""; ?> " href="?page=gf_edit_forms&active=1"><?php _e("Active", "gravityforms"); ?> <span class="count">(<span id="active_count"><?php echo $form_count["active"]; ?> </span>)</span></a> | </li> <li><a class="<?php echo $active == "0" ? "current" : ""; ?> " href="?page=gf_edit_forms&active=0"><?php _e("Inactive", "gravityforms"); ?> <span class="count">(<span id="inactive_count"><?php echo $form_count["inactive"]; ?> </span>)</span></a> | </li> <li><a class="<?php echo $active == "0" ? "current" : ""; ?> " href="?page=gf_edit_forms&trash=1"><?php _e("Trash", "gravityforms"); ?> <span class="count">(<span id="trash_count"><?php echo $form_count["trash"]; ?> </span>)</span></a></li> </ul> <?php if (GFCommon::current_user_can_any("gravityforms_delete_forms")) { ?> <div class="tablenav"> <div class="alignleft actions" style="padding:8px 0 7px 0;"> <label class="hidden" for="bulk_action"><?php _e("Bulk action", "gravityforms"); ?> </label> <select name="bulk_action" id="bulk_action"> <option value=''> <?php _e("Bulk action", "gravityforms"); ?> </option> <?php if ($trash) { ?> <option value='restore'><?php _e("Restore", "gravityforms"); ?> </option> <option value='delete'><?php _e("Delete permanently", "gravityforms"); ?> </option> <?php } else { ?> <option value='activate'><?php _e("Mark as Active", "gravityforms"); ?> </option> <option value='deactivate'><?php _e("Mark as Inactive", "gravityforms"); ?> </option> <option value='reset_views'><?php _e("Reset Views", "gravityforms"); ?> </option> <option value='delete_entries'><?php _e("Permanently Delete Entries", "gravityforms"); ?> </option> <option value='trash'><?php _e("Move to trash", "gravityforms"); ?> </option> <?php } ?> </select> <?php $apply_button = '<input type="submit" class="button" value="' . __("Apply", "gravityforms") . '" onclick="return gfConfirmBulkAction(\'bulk_action\');"/>'; echo apply_filters("gform_form_apply_button", $apply_button); ?> <br class="clear" /> </div> </div> <?php } ?> <table class="widefat fixed" cellspacing="0"> <thead> <tr> <?php if (GFCommon::current_user_can_any("gravityforms_delete_forms")) { ?> <th scope="col" id="cb" class="manage-column column-cb check-column" style=""><input type="checkbox" name="form_bulk_check_all" onclick="jQuery('.gform_list_checkbox').attr('checked', this.checked);" /></th> <?php } $dir = $sort_column == "is_active" && $sort_direction == "ASC" ? "DESC" : "ASC"; $url_active = admin_url("admin.php?page=gf_edit_forms&sort=is_active&dir={$dir}&trash={$trash}"); ?> <th scope="col" id="active" class="manage-column column-cb check-column" style="width:50px;cursor:pointer;" onclick="document.location='<?php echo $url_active; ?> '"></th> <?php $dir = $sort_column == "id" && $sort_direction == "ASC" ? "DESC" : "ASC"; $url_id = admin_url("admin.php?page=gf_edit_forms&sort=id&dir={$dir}&trash={$trash}"); ?> <th scope="col" id="id" class="manage-column" style="width:50px;cursor:pointer;" onclick="document.location='<?php echo $url_id; ?> '"><?php _e("Id", "gravityforms"); ?> </th> <?php $dir = $sort_column == "title" && $sort_direction == "ASC" ? "DESC" : "ASC"; $url_title = admin_url("admin.php?page=gf_edit_forms&sort=title&dir={$dir}&trash={$trash}"); ?> <th width="410" scope="col" id="title" class="manage-column column-title" style="cursor:pointer;" onclick="document.location='<?php echo $url_title; ?> '"><?php _e("Title", "gravityforms"); ?> </th> <th scope="col" id="author" class="manage-column column-author" style=""><?php _e("Views", "gravityforms"); ?> </th> <th scope="col" id="template" class="manage-column" style=""><?php _e("Entries", "gravityforms"); ?> </th> <th scope="col" id="template" class="manage-column" style=""><?php _e("Conversion", "gravityforms"); ?> <?php gform_tooltip("entries_conversion", "tooltip_left"); ?> </th> </tr> </thead> <tfoot> <tr> <?php if (GFCommon::current_user_can_any("gravityforms_delete_forms")) { ?> <th scope="col" id="cb" class="manage-column column-cb check-column" style=""><input type="checkbox" name="form_bulk_check_all" onclick="jQuery('.gform_list_checkbox').attr('checked', this.checked);" /></th> <?php } ?> <th scope="col" id="active" class="manage-column column-cb check-column"></th> <th scope="col" id="id" class="manage-column" style="cursor:pointer;" onclick="document.location='<?php echo $url_id; ?> '"><?php _e("Id", "gravityforms"); ?> </th> <th width="410" scope="col" id="title" style="cursor:pointer;" class="manage-column column-title" onclick="document.location='<?php echo $url_title; ?> '"><?php _e("Title", "gravityforms"); ?> </th> <th scope="col" id="author" class="manage-column column-author" style=""><?php _e("Views", "gravityforms"); ?> </th> <th scope="col" id="template" class="manage-column" style=""><?php _e("Entries", "gravityforms"); ?> </th> <th scope="col" id="template" class="manage-column" style=""><?php _e("Conversion", "gravityforms"); ?> </th> </tr> </tfoot> <tbody class="list:user user-list"> <?php if (sizeof($forms) > 0) { $alternate_row = false; foreach ($forms as $form) { $conversion = "0%"; if ($form->view_count > 0) { $conversion = number_format($form->lead_count / $form->view_count, 3) * 100 . "%"; } $gf_form_locking = new GFFormLocking(); ?> <tr class='author-self status-inherit <?php $gf_form_locking->list_row_class($form->id); ?> <?php echo ($alternate_row = !$alternate_row) ? 'alternate' : ''; ?> ' valign="top" data-id="<?php echo esc_attr($form->id); ?> "> <?php if (GFCommon::current_user_can_any("gravityforms_delete_forms")) { ?> <th scope="row" class="check-column"><input type="checkbox" name="form[]" value="<?php echo $form->id; ?> " class="gform_list_checkbox"/><?php $gf_form_locking->lock_indicator(); ?> </th> <?php } ?> <td> <?php if (!$trash) { ?> <img class="gform_active_icon" src="<?php echo GFCommon::get_base_url(); ?> /images/active<?php echo intval($form->is_active); ?> .png" style="cursor: pointer;" alt="<?php echo $form->is_active ? __("Active", "gravityforms") : __("Inactive", "gravityforms"); ?> " title="<?php echo $form->is_active ? __("Active", "gravityforms") : __("Inactive", "gravityforms"); ?> " onclick="ToggleActive(this, <?php echo $form->id; ?> ); " /> <?php } ?> </td> <td class="column-id"><?php echo $form->id; ?> </td> <td class="column-title"> <?php if ($trash) { echo $form->title; } else { ?> <strong><a class="row-title" disabled="<?php disabled(true, $trash); ?> " href="admin.php?page=gf_edit_forms&id=<?php echo $form->id; ?> " title="<?php _e("Edit", "gravityforms"); ?> "><?php echo $form->title; ?> </a></strong> <?php $gf_form_locking->lock_info($form->id); } ?> <div class="row-actions"> <?php if ($trash) { $form_actions['restore'] = array('label' => __("Restore", "gravityforms"), 'title' => __("Restore", "gravityforms"), 'url' => 'javascript:RestoreForm(' . $form->id . ');', 'capabilities' => "gravityforms_delete_forms", 'priority' => 600); $form_actions['delete'] = array('label' => __("Delete permanently", "gravityforms"), 'title' => __("Delete permanently", "gravityforms"), 'menu_class' => 'delete', 'url' => 'javascript: if(confirm("' . __("WARNING: You are about to delete this form and ALL entries associated with it. ", "gravityforms") . __('\\"Cancel\\" to stop, \\"OK\\" to delete.', "gravityforms") . '")){ DeleteForm(' . $form->id . ');}', 'capabilities' => "gravityforms_delete_forms", 'priority' => 500); } else { require_once GFCommon::get_base_path() . '/form_settings.php'; $form_actions = GFForms::get_toolbar_menu_items($form->id, true); $form_actions['duplicate'] = array('label' => __("Duplicate", "gravityforms"), 'title' => __("Duplicate this form", "gravityforms"), 'url' => 'javascript:DuplicateForm(' . $form->id . ');', 'capabilities' => "gravityforms_create_form", 'priority' => 600); $form_actions['trash'] = array('label' => __("Trash", "gravityforms"), 'title' => __("Move this form to the trash", "gravityforms"), 'url' => 'javascript:TrashForm(' . $form->id . ');', 'capabilities' => "gravityforms_delete_forms", 'menu_class' => 'trash', 'priority' => 500); } $form_actions = apply_filters("gform_form_actions", $form_actions, $form->id); echo GFForms::format_toolbar_menu_items($form_actions, true); ?> </div> </td> <td class="column-date"><strong><?php echo $form->view_count; ?> </strong></td> <td class="column-date"> <strong> <?php if ($form->lead_count > 0 && !$trash) { ?> <a href="<?php echo admin_url("admin.php?page=gf_entries&view=entries&id={$form->id}"); ?> "><?php echo $form->lead_count; ?> </a> <?php } else { echo $form->lead_count; } ?> </strong> </td> <td class="column-date"><?php echo $conversion; ?> </td> </tr> <?php } } else { ?> <tr> <td colspan="6" style="padding:20px;"> <?php if ($trash) { echo __("There are no forms in the trash.", "gravityforms"); } else { echo sprintf(__("You don't have any forms. Let's go %screate one%s!", "gravityforms"), '<a href="admin.php?page=gf_new_form">', "</a>"); } ?> </td> </tr> <?php } ?> </tbody> </table> <div class="tablenav"> <div class="alignleft actions" style="padding:8px 0 7px 0;"> <?php if (GFCommon::current_user_can_any("gravityforms_delete_forms")) { ?> <label class="hidden" for="bulk_action2"><?php _e("Bulk action", "gravityforms"); ?> </label> <select name="bulk_action2" id="bulk_action2"> <option value=''> <?php _e("Bulk action", "gravityforms"); ?> </option> <?php if ($trash) { ?> <option value='restore'><?php _e("Restore", "gravityforms"); ?> </option> <option value='delete'><?php _e("Delete permanently", "gravityforms"); ?> </option> <?php } else { ?> <option value='activate'><?php _e("Mark as Active", "gravityforms"); ?> </option> <option value='deactivate'><?php _e("Mark as Inactive", "gravityforms"); ?> </option> <option value='reset_views'><?php _e("Reset Views", "gravityforms"); ?> </option> <option value='delete_entries'><?php _e("Permanently Delete Entries", "gravityforms"); ?> </option> <option value='trash'><?php _e("Move to trash", "gravityforms"); ?> </option> <?php } ?> </select> <?php $apply_button = '<input type="submit" class="button" value="' . __("Apply", "gravityforms") . '" onclick="return gfConfirmBulkAction(\'bulk_action2\');"/>'; echo apply_filters("gform_form_apply_button", $apply_button); } ?> <br class="clear" /> </div> </div> </form> </div> <?php }
public static function form_list_page() { global $wpdb; if (!GFCommon::ensure_wp_version()) { return; } echo GFCommon::get_remote_message(); $action = RGForms::post('action'); $bulk_action = RGForms::post('bulk_action'); $bulk_action = !empty($bulk_action) ? $bulk_action : RGForms::post('bulk_action2'); if ($action == 'trash') { check_admin_referer('gforms_update_forms', 'gforms_update_forms'); $form_id = RGForms::post('action_argument'); RGFormsModel::trash_form($form_id); $message = __('Form moved to the trash.', 'gravityforms'); } else { if ($action == 'restore') { check_admin_referer('gforms_update_forms', 'gforms_update_forms'); $form_id = RGForms::post('action_argument'); RGFormsModel::restore_form($form_id); $message = __('Form restored.', 'gravityforms'); } else { if ($action == 'delete') { check_admin_referer('gforms_update_forms', 'gforms_update_forms'); $form_id = RGForms::post('action_argument'); if (GFCommon::current_user_can_any('gravityforms_delete_forms')) { RGFormsModel::delete_form($form_id); $message = __('Form deleted.', 'gravityforms'); } else { $message = __("You don't have adequate permission to delete forms.", 'gravityforms'); } } else { if ($action == 'duplicate') { check_admin_referer('gforms_update_forms', 'gforms_update_forms'); $form_id = RGForms::post('action_argument'); RGFormsModel::duplicate_form($form_id); $message = __('Form duplicated.', 'gravityforms'); } } } } if ($bulk_action) { check_admin_referer('gforms_update_forms', 'gforms_update_forms'); $form_ids = is_array(rgpost('form')) ? rgpost('form') : array(); $form_count = count($form_ids); switch ($bulk_action) { case 'trash': GFFormsModel::trash_forms($form_ids); $message = _n('%s form moved to the trash.', '%s forms moved to the trash.', $form_count, 'gravityforms'); break; case 'restore': GFFormsModel::restore_forms($form_ids); $message = _n('%s form restored.', '%s forms restored.', $form_count, 'gravityforms'); break; case 'delete': if (GFCommon::current_user_can_any('gravityforms_delete_forms')) { GFFormsModel::delete_forms($form_ids); $message = _n('%s form deleted.', '%s forms deleted.', $form_count, 'gravityforms'); } else { $message = __("You don't have adequate permissions to delete forms.", 'gravityforms'); } break; case 'reset_views': foreach ($form_ids as $form_id) { GFFormsModel::delete_views($form_id); } $message = _n('Views for %s form have been reset.', 'Views for %s forms have been reset.', $form_count, 'gravityforms'); break; case 'delete_entries': if (GFCommon::current_user_can_any('gravityforms_delete_entries')) { foreach ($form_ids as $form_id) { GFFormsModel::delete_leads_by_form($form_id); } $message = _n('Entries for %s form have been deleted.', 'Entries for %s forms have been deleted.', $form_count, 'gravityforms'); } else { $message = __("You don't have adequate permission to delete entries.", 'gravityforms'); } break; case 'activate': foreach ($form_ids as $form_id) { GFFormsModel::update_form_active($form_id, 1); } $message = _n('%s form has been marked as active.', '%s forms have been marked as active.', $form_count, 'gravityforms'); break; case 'deactivate': foreach ($form_ids as $form_id) { GFFormsModel::update_form_active($form_id, 0); } $message = _n('%s form has been marked as inactive.', '%s forms have been marked as inactive.', $form_count, 'gravityforms'); break; } if (isset($message)) { $message = sprintf($message, $form_count); } } $sort_column = empty($_GET['sort']) ? 'title' : $_GET['sort']; $db_columns = GFFormsModel::get_form_db_columns(); if (!in_array(strtolower($sort_column), $db_columns)) { $sort_column = 'title'; } $sort_direction = empty($_GET['dir']) ? 'ASC' : $_GET['dir']; $active = RGForms::get('active') == '' ? null : (bool) RGForms::get('active'); $trash = RGForms::get('trash') == '' ? false : (bool) RGForms::get('trash'); $forms = RGFormsModel::get_forms($active, $sort_column, $sort_direction, $trash); $form_count = RGFormsModel::get_form_count(); wp_print_styles(array('thickbox')); add_action('admin_print_footer_scripts', array(__CLASS__, 'output_form_list_script_block'), 20); $min = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG || isset($_GET['gform_debug']) ? '' : '.min'; ?> <script type="text/javascript"> // checked by the ToggleActive method to prevent errors when form status icon is clicked before page has fully loaded var gfPageLoaded = false; </script> <style type="text/css"> body div#TB_window[style] { width: 405px !important; height: 340px !important; margin-left: -202px !important; } body #TB_ajaxContent { height: 290px !important; overflow: hidden; } .gf_new_form_modal_container { padding: 30px; } .gf_new_form_modal_container .setting-row { margin: 0 0 10px; } .gf_new_form_modal_container .setting-row label { line-height: 24px; } .gf_new_form_modal_container .setting-row input, .gf_new_form_modal_container .setting-row textarea { display: block; width: 100%; } .gf_new_form_modal_container .setting-row textarea { height: 110px; } .gf_new_form_modal_container .submit-row { margin-top: 18px; } .gf_new_form_modal_container #gf_new_form_error_message { margin: 0 0 18px 5px !important; color: #BC0B0B; } .gf_new_form_modal_container img.gfspinner { position: relative; top: 5px; left: 5px; } .gf_not_ready { opacity: 0.25; } </style> <?php if (GFCommon::current_user_can_any('gravityforms_create_form')) { ?> <div id="gf_new_form_modal" style="display:none;"> <div class="gf_new_form_modal_container"> <div class="setting-row"> <label for="new_form_title"><?php esc_html_e('Form Title', 'gravityforms'); ?> <span class="gfield_required">*</span></label><br /> <input type="text" class="regular-text" value="" id="new_form_title" tabindex="9000"> </div> <div class="setting-row"> <label for="new_form_description"><?php esc_html_e('Form Description', 'gravityforms'); ?> </label><br /> <textarea class="regular-text" id="new_form_description" tabindex="9001"></textarea> </div> <div class="submit-row"> <?php /** * Allows for modification of the "New Form" button HTML * * @param string The HTML rendered for the "New Form" button. */ echo apply_filters('gform_new_form_button', '<input id="save_new_form" type="button" class="button button-large button-primary" value="' . esc_html__('Create Form', 'gravityforms') . '" onclick="saveNewForm();" tabindex="9002" />'); ?> <div id="gf_new_form_error_message" style="display:inline-block;"></div> </div> </div> </div> <?php } // - end of new form modal - // ?> <script text="text/javascript"> function TrashForm(form_id) { jQuery("#action_argument").val(form_id); jQuery("#action").val("trash"); jQuery("#forms_form")[0].submit(); } function RestoreForm(form_id) { jQuery("#action_argument").val(form_id); jQuery("#action").val("restore"); jQuery("#forms_form")[0].submit(); } function DeleteForm(form_id) { jQuery("#action_argument").val(form_id); jQuery("#action").val("delete"); jQuery("#forms_form")[0].submit(); } function ConfirmDeleteForm(form_id){ if( confirm(<?php echo json_encode(__('WARNING: You are about to delete this form and ALL entries associated with it. ', 'gravityforms') . esc_html__('Cancel to stop, OK to delete.', 'gravityforms')); ?> ) ){ DeleteForm(form_id); } } function DuplicateForm(form_id) { jQuery("#action_argument").val(form_id); jQuery("#action").val("duplicate"); jQuery("#forms_form")[0].submit(); } function ToggleActive(img, form_id) { if( ! gfPageLoaded ) { return; } var is_active = img.src.indexOf("active1.png") >= 0 if (is_active) { img.src = img.src.replace("active1.png", 'active0.png'); jQuery(img).attr('title', <?php echo json_encode(esc_attr__('Inactive', 'gravityforms')); ?> ).attr('alt', <?php echo json_encode(esc_attr__('Inactive', 'gravityforms')); ?> ); } else { img.src = img.src.replace("active0.png", 'active1.png'); jQuery(img).attr('title', <?php echo json_encode(esc_attr__('Active', 'gravityforms')); ?> ).attr('alt', <?php echo json_encode(esc_attr__('Active', 'gravityforms')); ?> ); } UpdateCount("active_count", is_active ? -1 : 1); UpdateCount("inactive_count", is_active ? 1 : -1); var mysack = new sack(<?php echo json_encode(admin_url('admin-ajax.php')); ?> ); mysack.execute = 1; mysack.method = 'POST'; mysack.setVar("action", "rg_update_form_active"); mysack.setVar("rg_update_form_active", <?php echo json_encode(wp_create_nonce('rg_update_form_active')); ?> ); mysack.setVar("form_id", form_id); mysack.setVar("is_active", is_active ? 0 : 1); mysack.onError = function () { alert(<?php echo json_encode(__('Ajax error while updating form', 'gravityforms')); ?> ) }; mysack.runAJAX(); return true; } function UpdateCount(element_id, change) { var element = jQuery("#" + element_id); var count = parseInt(element.html()) + change element.html(count + ""); } function gfConfirmBulkAction(element_id) { var element = "#" + element_id; if (jQuery(element).val() == 'delete') return confirm(<?php echo json_encode(__('WARNING: You are about to delete these forms and ALL entries associated with them. ', 'gravityforms') . __("'Cancel' to stop, 'OK' to delete.", 'gravityforms')); ?> ); else if (jQuery(element).val() == 'reset_views') return confirm(<?php echo json_encode(__('Are you sure you would like to reset the Views for the selected forms? ', 'gravityforms') . __("'Cancel' to stop, 'OK' to reset.", 'gravityforms')); ?> ); else if (jQuery(element).val() == 'delete_entries') return confirm(<?php echo json_encode(__('WARNING: You are about to delete ALL entries associated with the selected forms. ', 'gravityforms') . __("'Cancel' to stop, 'OK' to delete.", 'gravityforms')); ?> ); return true; } </script> <link rel="stylesheet" href="<?php echo esc_url(GFCommon::get_base_url()); ?> /css/admin<?php echo $min; ?> .css"/> <div class="wrap <?php echo sanitize_html_class(GFCommon::get_browser_class()); ?> "> <h2> <?php esc_html_e('Forms', 'gravityforms'); if (GFCommon::current_user_can_any('gravityforms_create_form')) { echo '<a class="add-new-h2" href="" onclick="return loadNewFormModal();">' . esc_html__('Add New', 'gravityforms') . '</a>'; } ?> </h2> <?php if (isset($message)) { ?> <div class="updated below-h2" id="message"><p><?php echo esc_html($message); ?> </p></div> <?php } ?> <form id="forms_form" method="post"> <?php wp_nonce_field('gforms_update_forms', 'gforms_update_forms'); ?> <input type="hidden" id="action" name="action" /> <input type="hidden" id="action_argument" name="action_argument" /> <ul class="subsubsub"> <li> <a class="<?php echo $active === null ? 'current' : ''; ?> " href="?page=gf_edit_forms"><?php echo esc_html(_x('All', 'Form List', 'gravityforms')); ?> <span class="count">(<span id="all_count"><?php echo $form_count['total']; ?> </span>)</span></a> | </li> <li> <a class="<?php echo $active == '1' ? 'current' : ''; ?> " href="?page=gf_edit_forms&active=1"><?php echo esc_html(_x('Active', 'Form List', 'gravityforms')); ?> <span class="count">(<span id="active_count"><?php echo $form_count['active']; ?> </span>)</span></a> | </li> <li> <a class="<?php echo $active == '0' ? 'current' : ''; ?> " href="?page=gf_edit_forms&active=0"><?php echo esc_html(_x('Inactive', 'Form List', 'gravityforms')); ?> <span class="count">(<span id="inactive_count"><?php echo $form_count['inactive']; ?> </span>)</span></a> | </li> <li> <a class="<?php echo $active == '0' ? 'current' : ''; ?> " href="?page=gf_edit_forms&trash=1"><?php esc_html_e('Trash', 'gravityforms'); ?> <span class="count">(<span id="trash_count"><?php echo $form_count['trash']; ?> </span>)</span></a> </li> </ul> <?php if (GFCommon::current_user_can_any('gravityforms_delete_forms')) { ?> <div class="tablenav"> <div class="alignleft actions" style="padding:8px 0 7px 0;"> <label class="hidden" for="bulk_action"><?php esc_html_e('Bulk action', 'gravityforms'); ?> </label> <select name="bulk_action" id="bulk_action"> <option value=''> <?php esc_html_e('Bulk action', 'gravityforms'); ?> </option> <?php if ($trash) { ?> <option value='restore'><?php esc_html_e('Restore', 'gravityforms'); ?> </option> <option value='delete'><?php esc_html_e('Delete permanently', 'gravityforms'); ?> </option> <?php } else { ?> <option value='activate'><?php esc_html_e('Mark as Active', 'gravityforms'); ?> </option> <option value='deactivate'><?php esc_html_e('Mark as Inactive', 'gravityforms'); ?> </option> <option value='reset_views'><?php esc_html_e('Reset Views', 'gravityforms'); ?> </option> <option value='delete_entries'><?php esc_html_e('Permanently Delete Entries', 'gravityforms'); ?> </option> <option value='trash'><?php esc_html_e('Move to trash', 'gravityforms'); ?> </option> <?php } ?> </select> <?php $apply_button = '<input type="submit" class="button" value="' . __('Apply', 'gravityforms') . '" onclick="return gfConfirmBulkAction(\'bulk_action\');"/>'; /** * A filter that allows for modification of the form "Apply" button * * @param string $apply_button The HTML for the "Apply" Button */ echo apply_filters('gform_form_apply_button', $apply_button); ?> <br class="clear" /> </div> </div> <?php } ?> <table class="widefat fixed" cellspacing="0"> <thead> <tr> <?php if (GFCommon::current_user_can_any('gravityforms_delete_forms')) { ?> <th scope="col" id="cb" class="manage-column column-cb check-column" style=""> <input type="checkbox" name="form_bulk_check_all" onclick="jQuery('.gform_list_checkbox').attr('checked', this.checked);" /> </th> <?php } $dir = $sort_column == 'is_active' && $sort_direction == 'ASC' ? 'DESC' : 'ASC'; $url_active = admin_url("admin.php?page=gf_edit_forms&sort=is_active&dir={$dir}&trash={$trash}"); ?> <th scope="col" id="active" class="manage-column column-cb check-column" style="width:50px;cursor:pointer;" onclick="document.location='<?php echo esc_url($url_active); ?> '"></th> <?php $dir = $sort_column == 'id' && $sort_direction == 'ASC' ? 'DESC' : 'ASC'; $url_id = admin_url("admin.php?page=gf_edit_forms&sort=id&dir={$dir}&trash={$trash}"); ?> <th scope="col" id="id" class="manage-column" style="width:50px;cursor:pointer;" onclick="document.location='<?php echo $url_id; ?> '"><?php esc_html_e('Id', 'gravityforms'); ?> </th> <?php $dir = $sort_column == 'title' && $sort_direction == 'ASC' ? 'DESC' : 'ASC'; $url_title = admin_url("admin.php?page=gf_edit_forms&sort=title&dir={$dir}&trash={$trash}"); ?> <th width="410" scope="col" id="title" class="manage-column column-title" style="cursor:pointer;" onclick="document.location='<?php echo $url_title; ?> '"><?php esc_html_e('Title', 'gravityforms'); ?> </th> <th scope="col" id="author" class="manage-column column-author" style=""><?php esc_html_e('Views', 'gravityforms'); ?> </th> <th scope="col" id="template" class="manage-column" style=""><?php esc_html_e('Entries', 'gravityforms'); ?> </th> <th scope="col" id="template" class="manage-column" style=""><?php esc_html_e('Conversion', 'gravityforms'); ?> <?php gform_tooltip('entries_conversion', 'tooltip_left'); ?> </th> </tr> </thead> <tfoot> <tr> <?php if (GFCommon::current_user_can_any('gravityforms_delete_forms')) { ?> <th scope="col" id="cb" class="manage-column column-cb check-column" style=""> <input type="checkbox" name="form_bulk_check_all" onclick="jQuery('.gform_list_checkbox').attr('checked', this.checked);" /> </th> <?php } ?> <th scope="col" id="active" class="manage-column column-cb check-column"></th> <th scope="col" id="id" class="manage-column" style="cursor:pointer;" onclick="document.location='<?php echo $url_id; ?> '"><?php esc_html_e('Id', 'gravityforms'); ?> </th> <th width="410" scope="col" id="title" style="cursor:pointer;" class="manage-column column-title" onclick="document.location='<?php echo $url_title; ?> '"><?php esc_html_e('Title', 'gravityforms'); ?> </th> <th scope="col" id="author" class="manage-column column-author" style=""><?php esc_html_e('Views', 'gravityforms'); ?> </th> <th scope="col" id="template" class="manage-column" style=""><?php esc_html_e('Entries', 'gravityforms'); ?> </th> <th scope="col" id="template" class="manage-column" style=""><?php esc_html_e('Conversion', 'gravityforms'); ?> </th> </tr> </tfoot> <tbody class="list:user user-list"> <?php if (sizeof($forms) > 0) { $alternate_row = false; foreach ($forms as $form) { $conversion = '0%'; if ($form->view_count > 0) { $conversion = number_format($form->lead_count / $form->view_count, 3) * 100 . '%'; } $gf_form_locking = new GFFormLocking(); ?> <tr class='author-self status-inherit <?php $gf_form_locking->list_row_class($form->id); ?> <?php echo ($alternate_row = !$alternate_row) ? 'alternate' : ''; ?> ' valign="top" data-id="<?php echo absint($form->id); ?> "> <?php if (GFCommon::current_user_can_any('gravityforms_delete_forms')) { ?> <th scope="row" class="check-column"> <input type="checkbox" name="form[]" value="<?php echo absint($form->id); ?> " class="gform_list_checkbox" /><?php $gf_form_locking->lock_indicator(); ?> </th> <?php } ?> <td> <?php if (!$trash) { ?> <img class="gform_active_icon gf_not_ready" src="<?php echo esc_url(GFCommon::get_base_url()); ?> /images/active<?php echo intval($form->is_active); ?> .png" style="cursor: pointer;" alt="<?php echo $form->is_active ? esc_attr__('Active', 'gravityforms') : esc_attr__('Inactive', 'gravityforms'); ?> " title="<?php echo $form->is_active ? esc_attr__('Active', 'gravityforms') : esc_attr__('Inactive', 'gravityforms'); ?> " onclick="ToggleActive(this, <?php echo absint($form->id); ?> ); " /> <?php } ?> </td> <td class="column-id"><?php echo absint($form->id); ?> </td> <td class="column-title"> <?php if ($trash) { echo esc_html($form->title); } else { ?> <strong><a class="row-title" disabled="<?php disabled(true, $trash); ?> " href="admin.php?page=gf_edit_forms&id=<?php echo absint($form->id); ?> " title="<?php esc_attr_e('Edit', 'gravityforms'); ?> "><?php echo esc_html($form->title); ?> </a></strong> <?php $gf_form_locking->lock_info($form->id); } ?> <div class="row-actions"> <?php if ($trash) { $form_actions['restore'] = array('label' => __('Restore', 'gravityforms'), 'title' => __('Restore', 'gravityforms'), 'url' => '#', 'onclick' => 'RestoreForm(' . absint($form->id) . ');', 'capabilities' => 'gravityforms_delete_forms', 'priority' => 600); $form_actions['delete'] = array('label' => __('Delete permanently', 'gravityforms'), 'title' => __('Delete permanently', 'gravityforms'), 'menu_class' => 'delete', 'url' => '#', 'onclick' => 'ConfirmDeleteForm(' . absint($form->id) . ');', 'capabilities' => 'gravityforms_delete_forms', 'priority' => 500); } else { require_once GFCommon::get_base_path() . '/form_settings.php'; $form_actions = GFForms::get_toolbar_menu_items($form->id, true); $form_actions['duplicate'] = array('label' => __('Duplicate', 'gravityforms'), 'title' => __('Duplicate this form', 'gravityforms'), 'url' => '#', 'onclick' => 'DuplicateForm(' . absint($form->id) . ');return false;', 'capabilities' => 'gravityforms_create_form', 'priority' => 600); $form_actions['trash'] = array('label' => __('Trash', 'gravityforms'), 'title' => __('Move this form to the trash', 'gravityforms'), 'url' => '#', 'onclick' => 'TrashForm(' . absint($form->id) . ');return false;', 'capabilities' => 'gravityforms_delete_forms', 'menu_class' => 'trash', 'priority' => 500); } $form_actions = apply_filters('gform_form_actions', $form_actions, $form->id); echo GFForms::format_toolbar_menu_items($form_actions, true); ?> </div> </td> <td class="column-date"><strong><?php echo absint($form->view_count); ?> </strong></td> <td class="column-date"> <strong> <?php if ($form->lead_count > 0 && !$trash) { ?> <a href="<?php echo esc_url(admin_url('admin.php?page=gf_entries&view=entries&id=' . absint($form->id))); ?> "><?php echo absint($form->lead_count); ?> </a> <?php } else { echo absint($form->lead_count); } ?> </strong> </td> <td class="column-date"><?php echo esc_html($conversion); ?> </td> </tr> <?php } } else { ?> <tr> <td colspan="6" style="padding:20px;"> <?php if ($trash) { esc_html_e('There are no forms in the trash.', 'gravityforms'); } else { printf(esc_html__("You don't have any forms. Let's go %screate one%s!", 'gravityforms'), '<a href="admin.php?page=gf_new_form">', '</a>'); } ?> </td> </tr> <?php } ?> </tbody> </table> <div class="tablenav"> <div class="alignleft actions" style="padding:8px 0 7px 0;"> <?php if (GFCommon::current_user_can_any('gravityforms_delete_forms')) { ?> <label class="hidden" for="bulk_action2"><?php esc_html_e('Bulk action', 'gravityforms'); ?> </label> <select name="bulk_action2" id="bulk_action2"> <option value=''> <?php esc_html_e('Bulk action', 'gravityforms'); ?> </option> <?php if ($trash) { ?> <option value='restore'><?php esc_html_e('Restore', 'gravityforms'); ?> </option> <option value='delete'><?php esc_html_e('Delete permanently', 'gravityforms'); ?> </option> <?php } else { ?> <option value='activate'><?php esc_html_e('Mark as Active', 'gravityforms'); ?> </option> <option value='deactivate'><?php esc_html_e('Mark as Inactive', 'gravityforms'); ?> </option> <option value='reset_views'><?php esc_html_e('Reset Views', 'gravityforms'); ?> </option> <option value='delete_entries'><?php esc_html_e('Permanently Delete Entries', 'gravityforms'); ?> </option> <option value='trash'><?php esc_html_e('Move to trash', 'gravityforms'); ?> </option> <?php } ?> </select> <?php $apply_button = '<input type="submit" class="button" value="' . esc_attr__('Apply', 'gravityforms') . '" onclick="return gfConfirmBulkAction(\'bulk_action2\');"/>'; /** * A filter that allows for modification of the form "Apply" button * * @param string $apply_button The HTML for the "Apply" Button */ echo apply_filters('gform_form_apply_button', $apply_button); } ?> <br class="clear" /> </div> </div> </form> </div> <?php }