Ejemplo n.º 1
5
    public static function leads_page($form_id)
    {
        global $wpdb;
        //quit if version of wp is not supported
        if (!GFCommon::ensure_wp_version()) {
            return;
        }
        $form_id = absint($form_id);
        echo GFCommon::get_remote_message();
        $action = RGForms::post('action');
        $filter = rgget('filter');
        $search = stripslashes(rgget('s'));
        $page_index = empty($_GET['paged']) ? 0 : intval($_GET['paged']) - 1;
        $star = $filter == 'star' ? 1 : null;
        $read = $filter == 'unread' ? 0 : null;
        $status = in_array($filter, array('trash', 'spam')) ? $filter : 'active';
        $form = RGFormsModel::get_form_meta($form_id);
        $search_criteria['status'] = $status;
        if ($star) {
            $search_criteria['field_filters'][] = array('key' => 'is_starred', 'value' => (bool) $star);
        }
        if (!is_null($read)) {
            $search_criteria['field_filters'][] = array('key' => 'is_read', 'value' => (bool) $read);
        }
        $search_field_id = rgget('field_id');
        $search_operator = rgget('operator');
        if (isset($_GET['field_id']) && $_GET['field_id'] !== '') {
            $key = $search_field_id;
            $val = stripslashes(rgget('s'));
            $strpos_row_key = strpos($search_field_id, '|');
            if ($strpos_row_key !== false) {
                //multi-row likert
                $key_array = explode('|', $search_field_id);
                $key = $key_array[0];
                $val = $key_array[1] . ':' . $val;
            }
            if ('entry_id' == $key) {
                $key = 'id';
            }
            $filter_operator = empty($search_operator) ? 'is' : $search_operator;
            $field = GFFormsModel::get_field($form, $key);
            if ($field) {
                $input_type = GFFormsModel::get_input_type($field);
                if ($field->type == 'product' && in_array($input_type, array('radio', 'select'))) {
                    $filter_operator = 'contains';
                }
            }
            $search_criteria['field_filters'][] = array('key' => $key, 'operator' => $filter_operator, 'value' => $val);
        }
        $update_message = '';
        switch ($action) {
            case 'delete':
                check_admin_referer('gforms_entry_list', 'gforms_entry_list');
                $lead_id = $_POST['action_argument'];
                if (GFCommon::current_user_can_any('gravityforms_delete_entries')) {
                    RGFormsModel::delete_lead($lead_id);
                    $update_message = esc_html__('Entry deleted.', 'gravityforms');
                } else {
                    $update_message = esc_html__("You don't have adequate permission to delete entries.", 'gravityforms');
                }
                break;
            case 'bulk':
                check_admin_referer('gforms_entry_list', 'gforms_entry_list');
                $bulk_action = !empty($_POST['bulk_action']) ? $_POST['bulk_action'] : $_POST['bulk_action2'];
                $select_all = rgpost('all_entries');
                $leads = empty($select_all) ? $_POST['lead'] : GFFormsModel::search_lead_ids($form_id, $search_criteria);
                $entry_count = count($leads) > 1 ? sprintf(esc_html__('%d entries', 'gravityforms'), count($leads)) : esc_html__('1 entry', 'gravityforms');
                switch ($bulk_action) {
                    case 'delete':
                        if (GFCommon::current_user_can_any('gravityforms_delete_entries')) {
                            RGFormsModel::delete_leads($leads);
                            $update_message = sprintf(esc_html__('%s deleted.', 'gravityforms'), $entry_count);
                        } else {
                            $update_message = esc_html__("You don't have adequate permission to delete entries.", 'gravityforms');
                        }
                        break;
                    case 'trash':
                        RGFormsModel::update_leads_property($leads, 'status', 'trash');
                        $update_message = sprintf(esc_html__('%s moved to Trash.', 'gravityforms'), $entry_count);
                        break;
                    case 'restore':
                        RGFormsModel::update_leads_property($leads, 'status', 'active');
                        $update_message = sprintf(esc_html__('%s restored from the Trash.', 'gravityforms'), $entry_count);
                        break;
                    case 'unspam':
                        RGFormsModel::update_leads_property($leads, 'status', 'active');
                        $update_message = sprintf(esc_html__('%s restored from the spam.', 'gravityforms'), $entry_count);
                        break;
                    case 'spam':
                        RGFormsModel::update_leads_property($leads, 'status', 'spam');
                        $update_message = sprintf(esc_html__('%s marked as spam.', 'gravityforms'), $entry_count);
                        break;
                    case 'mark_read':
                        RGFormsModel::update_leads_property($leads, 'is_read', 1);
                        $update_message = sprintf(esc_html__('%s marked as read.', 'gravityforms'), $entry_count);
                        break;
                    case 'mark_unread':
                        RGFormsModel::update_leads_property($leads, 'is_read', 0);
                        $update_message = sprintf(esc_html__('%s marked as unread.', 'gravityforms'), $entry_count);
                        break;
                    case 'add_star':
                        RGFormsModel::update_leads_property($leads, 'is_starred', 1);
                        $update_message = sprintf(esc_html__('%s starred.', 'gravityforms'), $entry_count);
                        break;
                    case 'remove_star':
                        RGFormsModel::update_leads_property($leads, 'is_starred', 0);
                        $update_message = sprintf(esc_html__('%s unstarred.', 'gravityforms'), $entry_count);
                        break;
                }
                break;
            case 'change_columns':
                check_admin_referer('gforms_entry_list', 'gforms_entry_list');
                $columns = GFCommon::json_decode(stripslashes($_POST['grid_columns']), true);
                RGFormsModel::update_grid_column_meta($form_id, $columns);
                break;
        }
        if (rgpost('button_delete_permanently')) {
            if (GFCommon::current_user_can_any('gravityforms_delete_entries')) {
                RGFormsModel::delete_leads_by_form($form_id, $filter);
            }
        }
        $sort_field = empty($_GET['sort']) ? 0 : $_GET['sort'];
        $sort_direction = empty($_GET['dir']) ? 'DESC' : $_GET['dir'];
        $sort_field_meta = RGFormsModel::get_field($form, $sort_field);
        $is_numeric = $sort_field_meta['type'] == 'number';
        $page_size = gf_apply_filters('gform_entry_page_size', $form_id, 20, $form_id);
        $first_item_index = $page_index * $page_size;
        if (!empty($sort_field)) {
            $sorting = array('key' => $_GET['sort'], 'direction' => $sort_direction, 'is_numeric' => $is_numeric);
        } else {
            $sorting = array();
        }
        $paging = array('offset' => $first_item_index, 'page_size' => $page_size);
        $total_count = 0;
        $leads = GFAPI::get_entries($form_id, $search_criteria, $sorting, $paging, $total_count);
        $summary = RGFormsModel::get_form_counts($form_id);
        $active_lead_count = $summary['total'];
        $unread_count = $summary['unread'];
        $starred_count = $summary['starred'];
        $spam_count = $summary['spam'];
        $trash_count = $summary['trash'];
        $columns = RGFormsModel::get_grid_columns($form_id, true);
        $search_qs = empty($search) ? '' : '&s=' . esc_attr(urlencode($search));
        $sort_qs = empty($sort_field) ? '' : '&sort=' . esc_attr($sort_field);
        $dir_qs = empty($sort_direction) ? '' : '&dir=' . esc_attr($sort_direction);
        $star_qs = $star !== null ? '&star=' . esc_attr($star) : '';
        $read_qs = $read !== null ? '&read=' . esc_attr($read) : '';
        $filter_qs = '&filter=' . esc_attr($filter);
        $search_field_id_qs = !isset($_GET['field_id']) ? '' : '&field_id=' . esc_attr($search_field_id);
        $search_operator_urlencoded = urlencode($search_operator);
        $search_operator_qs = empty($search_operator_urlencoded) ? '' : '&operator=' . esc_attr($search_operator_urlencoded);
        $display_total = ceil($total_count / $page_size);
        $page_links = paginate_links(array('base' => admin_url('admin.php') . "?page=gf_entries&view=entries&id={$form_id}&%_%" . $search_qs . $sort_qs . $dir_qs . $star_qs . $read_qs . $filter_qs . $search_field_id_qs . $search_operator_qs, 'format' => 'paged=%#%', 'prev_text' => esc_html__('«', 'gravityforms'), 'next_text' => esc_html__('»', 'gravityforms'), 'total' => $display_total, 'current' => $page_index + 1, 'show_all' => false));
        wp_print_styles(array('thickbox'));
        $field_filters = GFCommon::get_field_filter_settings($form);
        $init_field_id = empty($search_field_id) ? 0 : $search_field_id;
        $init_field_operator = empty($search_operator) ? 'contains' : $search_operator;
        $init_filter_vars = array('mode' => 'off', 'filters' => array(array('field' => $init_field_id, 'operator' => $init_field_operator, 'value' => $search)));
        $min = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG || isset($_GET['gform_debug']) ? '' : '.min';
        ?>

		<script type="text/javascript">

		var messageTimeout = false,
			gformFieldFilters = <?php 
        echo json_encode($field_filters);
        ?>
,
			gformInitFilter = <?php 
        echo json_encode($init_filter_vars);
        ?>

				function ChangeColumns(columns) {
					jQuery("#action").val("change_columns");
					jQuery("#grid_columns").val(jQuery.toJSON(columns));
					tb_remove();
					jQuery("#lead_form")[0].submit();
				}

		function Search(sort_field_id, sort_direction, form_id, search, star, read, filter, field_id, operator) {
			var search_qs = search == "" ? "" : "&s=" + encodeURIComponent(search);
			var star_qs = star == "" ? "" : "&star=" + star;
			var read_qs = read == "" ? "" : "&read=" + read;
			var filter_qs = filter == "" ? "" : "&filter=" + filter;
			var field_id_qs = field_id == "" ? "" : "&field_id=" + field_id;
			var operator_qs = operator == "" ? "" : "&operator=" + operator;

			var location = "?page=gf_entries&view=entries&id=" + form_id + "&sort=" + sort_field_id + "&dir=" + sort_direction + search_qs + star_qs + read_qs + filter_qs + field_id_qs + operator_qs;
			document.location = location;
		}

		function ToggleStar(img, lead_id, filter) {
			var is_starred = img.src.indexOf("star1.png") >= 0;
			if (is_starred)
				img.src = img.src.replace("star1.png", "star0.png");
			else
				img.src = img.src.replace("star0.png", "star1.png");

			jQuery("#lead_row_" + lead_id).toggleClass("lead_starred");
			//if viewing the starred entries, hide the row and adjust the paging counts
			if (filter == "star") {
				var title = jQuery("#lead_row_" + lead_id);
				title.css("display", 'none');
				UpdatePagingCounts(1);
			}

			UpdateCount("star_count", is_starred ? -1 : 1);

			UpdateLeadProperty(lead_id, "is_starred", is_starred ? 0 : 1);
		}

		function ToggleRead(lead_id, filter) {
			var title = jQuery("#lead_row_" + lead_id);
			var marking_read = title.hasClass("lead_unread");

			jQuery("#mark_read_" + lead_id).css("display", marking_read ? "none" : "inline");
			jQuery("#mark_unread_" + lead_id).css("display", marking_read ? "inline" : "none");
			jQuery("#is_unread_" + lead_id).css("display", marking_read ? "inline" : "none");
			title.toggleClass("lead_unread");
			//if viewing the unread entries, hide the row and adjust the paging counts
			if (filter == "unread") {
				title.css("display", "none");
				UpdatePagingCounts(1);
			}

			UpdateCount("unread_count", marking_read ? -1 : 1);
			UpdateLeadProperty(lead_id, "is_read", marking_read ? 1 : 0);
		}

		function UpdateLeadProperty(lead_id, name, value) {
			var mysack = new sack("<?php 
        echo admin_url('admin-ajax.php');
        ?>
");
			mysack.execute = 1;
			mysack.method = 'POST';
			mysack.setVar("action", "rg_update_lead_property");
			mysack.setVar("rg_update_lead_property", "<?php 
        echo wp_create_nonce('rg_update_lead_property');
        ?>
");
			mysack.setVar("lead_id", lead_id);
			mysack.setVar("name", name);
			mysack.setVar("value", value);
			mysack.onError = function () {
				alert(<?php 
        echo json_encode(__('Ajax error while setting lead property', '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 UpdatePagingCounts(change) {
			//update paging header/footer Displaying # - # of #, use counts from header, no need to use footer since they are the same, just update footer paging with header info
			var paging_range_max_header = jQuery("#paging_range_max_header");
			var paging_range_max_footer = jQuery("#paging_range_max_footer");
			var range_change_max = parseInt(paging_range_max_header.html()) - change;
			var paging_total_header = jQuery("#paging_total_header");
			var paging_total_footer = jQuery("#paging_total_footer");
			var total_change = parseInt(paging_total_header.html()) - change;
			var paging_range_min_header = jQuery("#paging_range_min_header");
			var paging_range_min_footer = jQuery("#paging_range_min_footer");
			//if min and max are the same, this is the last entry item on the page, clear out the displaying # - # of # text
			if (parseInt(paging_range_min_header.html()) == parseInt(paging_range_max_header.html())) {
				var paging_header = jQuery("#paging_header");
				paging_header.html("");
				var paging_footer = jQuery("#paging_footer");
				paging_footer.html("");
			}
			else {
				paging_range_max_header.html(range_change_max + "");
				paging_range_max_footer.html(range_change_max + "");
				paging_total_header.html(total_change + "");
				paging_total_footer.html(total_change + "");
			}
			gformVars.countAllEntries = gformVars.countAllEntries - change;
			setSelectAllText();
		}

		function DeleteLead(lead_id) {
			jQuery("#action").val("delete");
			jQuery("#action_argument").val(lead_id);
			jQuery("#lead_form")[0].submit();
			return true;
		}

		function handleBulkApply(actionElement) {

			var action = jQuery("#" + actionElement).val();
			var defaultModalOptions = '';
			var leadIds = getLeadIds();

			if (leadIds.length == 0) {
				alert(<?php 
        echo json_encode(__('Please select at least one entry.', 'gravityforms'));
        ?>
);
				return false;
			}

			switch (action) {

				case 'resend_notifications':
					resetResendNotificationsUI();
					tb_show(<?php 
        echo json_encode(esc_html__('Resend Notifications', 'gravityforms'));
        ?>
, '#TB_inline?width=350&amp;inlineId=notifications_modal_container', '');
					return false;
					break;

				case 'print':
					resetPrintUI();
					tb_show(<?php 
        echo json_encode(esc_html__('Print Entries', 'gravityforms'));
        ?>
, '#TB_inline?width=350&amp;height=250&amp;inlineId=print_modal_container', '');
					return false;
					break;

				default:
					jQuery('#action').val('bulk');
			}

		}

		function getLeadIds() {
			var all = jQuery("#all_entries").val();
			//compare string, the boolean isn't correct, even when casting to a boolean the 0 is set to true
			if (all == "1")
				return 0;

			var leads = jQuery(".check-column input[name='lead[]']:checked");
			var leadIds = new Array();

			jQuery(leads).each(function (i) {
				leadIds[i] = jQuery(leads[i]).val();
			});

			return leadIds;
		}

		function BulkResendNotifications() {


			var selectedNotifications = new Array();
			jQuery(".gform_notifications:checked").each(function () {
				selectedNotifications.push(jQuery(this).val());
			});
			var leadIds = getLeadIds();

			var sendTo = jQuery('#notification_override_email').val();

			if (selectedNotifications.length <= 0) {
				displayMessage(<?php 
        echo json_encode(esc_html__('You must select at least one type of notification to resend.', 'gravityforms'));
        ?>
, "error", "#notifications_container");
				return;
			}

			jQuery('#please_wait_container').fadeIn();

			jQuery.post(ajaxurl, {
					action                 : "gf_resend_notifications",
					gf_resend_notifications: '<?php 
        echo wp_create_nonce('gf_resend_notifications');
        ?>
',
					notifications          : jQuery.toJSON(selectedNotifications),
					sendTo                 : sendTo,
					leadIds                : leadIds,
					filter                 : <?php 
        echo json_encode(rgget('filter'));
        ?>
,
					search                 : <?php 
        echo json_encode(rgget('s'));
        ?>
,
					operator               : <?php 
        echo json_encode(rgget('operator'));
        ?>
,
					fieldId                : <?php 
        echo json_encode(rgget('field_id'));
        ?>
,
					formId                 : <?php 
        echo json_encode($form['id']);
        ?>
				},
				function (response) {

					jQuery('#please_wait_container').hide();

					if (response) {
						displayMessage(response, 'error', '#notifications_container');
					} else {
						var message = <?php 
        echo json_encode(__('Notifications for %s were resent successfully.', 'gravityforms'));
        ?>
;
						var c = leadIds == 0 ? gformVars.countAllEntries : leadIds.length;
						displayMessage(message.replace('%s', c + ' ' + getPlural(c, <?php 
        echo json_encode(__('entry', 'gravityforms'));
        ?>
, <?php 
        echo json_encode(__('entries', 'gravityforms'));
        ?>
)), "updated", "#lead_form");
						closeModal(true);
					}

				}
			);

		}

		function resetResendNotificationsUI() {

			jQuery(".gform_notifications").attr('checked', false);
			jQuery('#notifications_container .message, #notifications_override_settings').hide();

		}

		function BulkPrint() {

			var leadIds = getLeadIds();
			if (leadIds != 0)
				leadIds = leadIds.join(',');
			var leadsQS = '&lid=' + leadIds;
			var notesQS = jQuery('#gform_print_notes').is(':checked') ? '&notes=1' : '';
			var pageBreakQS = jQuery('#gform_print_page_break').is(':checked') ? '&page_break=1' : '';
			var filterQS = '&filter=' + <?php 
        echo json_encode(rgget('filter'));
        ?>
;
			var searchQS = '&s=' + <?php 
        echo json_encode(rgget('s'));
        ?>
;
			var searchFieldIdQS = '&field_id=' + <?php 
        echo json_encode(rgget('field_id'));
        ?>
;
			var searchOperatorQS = '&operator=' + <?php 
        echo json_encode(rgget('operator'));
        ?>
;

			var url = '<?php 
        echo trailingslashit(site_url());
        ?>
?gf_page=print-entry&fid=<?php 
        echo absint($form['id']);
        ?>
' + leadsQS + notesQS + pageBreakQS + filterQS + searchQS + searchFieldIdQS + searchOperatorQS;
			window.open(url, 'printwindow');

			closeModal(true);
			hideMessage('#lead_form', false);
		}

		function resetPrintUI() {

			jQuery('#print_options input[type="checkbox"]').attr('checked', false);

		}

		function displayMessage(message, messageClass, container) {

			hideMessage(container, true);

			var messageBox = jQuery('<div class="message ' + messageClass + '" style="display:none;"><p>' + message + '</p></div>');
			jQuery(messageBox).prependTo(container).slideDown();

			if (messageClass == 'updated')
				messageTimeout = setTimeout(function () {
					hideMessage(container, false);
				}, 10000);

		}

		function hideMessage(container, messageQueued) {

			if (messageTimeout)
				clearTimeout(messageTimeout);

			var messageBox = jQuery(container).find('.message');

			if (messageQueued)
				jQuery(messageBox).remove();
			else
				jQuery(messageBox).slideUp(function () {
					jQuery(this).remove();
				});

		}

		function closeModal(isSuccess) {

			if (isSuccess)
				jQuery('.check-column input[type="checkbox"]').attr('checked', false);

			tb_remove();

		}

		function getPlural(count, singular, plural) {
			return count > 1 ? plural : singular;
		}

		function toggleNotificationOverride(isInit) {

			if (isInit)
				jQuery('#notification_override_email').val('');

			if (jQuery(".gform_notifications:checked").length > 0) {
				jQuery('#notifications_override_settings').slideDown();
			} else {
				jQuery('#notifications_override_settings').slideUp(function () {
					jQuery('#notification_override_email').val('');
				});
			}

		}

		// Select All

		var gformStrings = {
			"allEntriesOnPageAreSelected": <?php 
        echo json_encode(sprintf(esc_html__('All %s{0}%s entries on this page are selected.', 'gravityforms'), '<strong>', '</strong>'));
        ?>
,
			"selectAll"                  : <?php 
        echo json_encode(sprintf(esc_html__('Select all %s{0}%s entries.', 'gravityforms'), '<strong>', '</strong>'));
        ?>
,
			"allEntriesSelected"         : <?php 
        echo json_encode(sprintf(esc_html__('All %s{0}%s entries have been selected.', 'gravityforms'), '<strong>', '</strong>'));
        ?>
,
			"clearSelection"             : <?php 
        echo json_encode(__('Clear selection', 'gravityforms'));
        ?>
		}

		var gformVars = {
			"countAllEntries": <?php 
        echo intval($total_count);
        ?>
,
			"perPage"        : <?php 
        echo intval($page_size);
        ?>
		}

		function setSelectAllText() {
			var tr = getSelectAllText();
			jQuery("#gform-select-all-message td").html(tr);
		}

		function getSelectAllText() {
			var count;
			count = jQuery("#gf_entry_list tr:visible:not('#gform-select-all-message')").length;
			return gformStrings.allEntriesOnPageAreSelected.format(count) + " <a href='javascript:void(0)' onclick='selectAllEntriesOnAllPages();'>" + gformStrings.selectAll.format(gformVars.countAllEntries) + "</a>";
		}

		function getSelectAllTr() {
			var t = getSelectAllText();
			var colspan = jQuery("#gf_entry_list").find("tr:first td").length + 1;
			return "<tr id='gform-select-all-message' style='display:none;background-color:lightyellow;text-align:center;'><td colspan='{0}'>{1}</td></tr>".format(colspan, t);
		}
		function toggleSelectAll(visible) {
			if (gformVars.countAllEntries <= gformVars.perPage) {
				jQuery('#gform-select-all-message').hide();
				return;
			}

			if (visible)
				setSelectAllText();
			jQuery('#gform-select-all-message').toggle(visible);
		}


		function clearSelectAllEntries() {
			jQuery(".check-column input[type=checkbox]").prop('checked', false);
			clearSelectAllMessage();
		}

		function clearSelectAllMessage() {
			jQuery("#all_entries").val("0");
			jQuery("#gform-select-all-message").hide();
			jQuery("#gform-select-all-message td").html('');
		}

		function selectAllEntriesOnAllPages() {
			var trHtmlClearSelection;
			trHtmlClearSelection = gformStrings.allEntriesSelected.format(gformVars.countAllEntries) + " <a href='javascript:void(0);' onclick='clearSelectAllEntries();'>" + gformStrings.clearSelection + "</a>";
			jQuery("#all_entries").val("1");
			jQuery("#gform-select-all-message td").html(trHtmlClearSelection);
		}

		function initSelectAllEntries() {

			if (gformVars.countAllEntries > gformVars.perPage) {
				var tr = getSelectAllTr();
				jQuery("#gf_entry_list").prepend(tr);
				jQuery(".headercb").click(function () {
					toggleSelectAll(jQuery(this).prop('checked'));
				});
				jQuery("#gf_entry_list .check-column input[type=checkbox]").click(function () {
					clearSelectAllMessage();
				})
			}
		}

		String.prototype.format = function () {
			var args = arguments;
			return this.replace(/{(\d+)}/g, function (match, number) {
				return typeof args[number] != 'undefined' ? args[number] : match;
			});
		};

		// end Select All

		jQuery(document).ready(function () {


			var action = <?php 
        echo json_encode($action);
        ?>
;
			var message = <?php 
        echo json_encode($update_message);
        ?>
;
			if (action && message)
				displayMessage(message, 'updated', '#lead_form');

			var list = jQuery("#gf_entry_list").wpList({ alt: <?php 
        echo json_encode(esc_html__('Entry List', 'gravityforms'));
        ?>
});
			list.bind('wpListDelEnd', function (e, s, list) {

				var currentStatus = <?php 
        echo json_encode($filter == 'trash' || $filter == 'spam' ? $filter : 'active');
        ?>
;
				var filter = <?php 
        echo json_encode($filter);
        ?>
;
				var movingTo = "active";
				if (s.data.status == "trash")
					movingTo = "trash";
				else if (s.data.status == "spam")
					movingTo = "spam";
				else if (s.data.status == "delete")
					movingTo = "delete";

				var id = s.data.entry;
				var title = jQuery("#lead_row_" + id);
				var isUnread = title.hasClass("lead_unread");
				var isStarred = title.hasClass("lead_starred");

				if (movingTo != "delete") {
					//Updating All count
					var allCount = currentStatus == "active" ? -1 : 1;
					UpdateCount("all_count", allCount);

					//Updating Unread count
					if (isUnread) {
						var unreadCount = currentStatus == "active" ? -1 : 1;
						UpdateCount("unread_count", unreadCount);
					}

					//Updating Starred count
					if (isStarred) {
						var starCount = currentStatus == "active" ? -1 : 1;
						UpdateCount("star_count", starCount);
					}
				}

				//Updating Spam count
				if (currentStatus == "spam" || movingTo == "spam") {
					var spamCount = movingTo == "spam" ? 1 : -1;
					UpdateCount("spam_count", spamCount);
					//adjust paging counts
					if (filter == "spam") {
						UpdatePagingCounts(1);
					}
					else {
						UpdatePagingCounts(spamCount);
					}
				}

				//Updating trash count
				if (currentStatus == "trash" || movingTo == "trash") {
					var trashCount = movingTo == "trash" ? 1 : -1;
					UpdateCount("trash_count", trashCount);
					//adjust paging counts
					if (filter == "trash") {
						UpdatePagingCounts(1);
					}
					else {
						UpdatePagingCounts(trashCount);
					}
				}

			});

			initSelectAllEntries();

			jQuery('#entry_filters').gfFilterUI(gformFieldFilters, gformInitFilter, false);
			jQuery("#entry_filters").on("keypress", ".gform-filter-value", (function (event) {
				if (event.keyCode == 13) {
					Search(<?php 
        echo json_encode($sort_field);
        ?>
, <?php 
        echo json_encode($sort_direction);
        ?>
, <?php 
        echo absint($form_id);
        ?>
, jQuery('.gform-filter-value').val(), <?php 
        echo json_encode($star);
        ?>
, <?php 
        echo json_encode($read);
        ?>
, <?php 
        echo json_encode($filter);
        ?>
, jQuery('.gform-filter-field').val(), jQuery('.gform-filter-operator').val());
					event.preventDefault();
				}
			}));
		});


		</script>
		<link rel="stylesheet" href="<?php 
        echo GFCommon::get_base_url();
        ?>
/css/admin<?php 
        echo $min;
        ?>
.css" type="text/css" />
		<style>
			/*#TB_window { height: 400px !important; }
			#TB_ajaxContent[style] { height: 370px !important; }*/
			.lead_unread a, .lead_unread td {
				font-weight: bold;
			}

			.lead_spam_trash a, .lead_spam_trash td {
				font-weight: normal;
			}

			.row-actions a {
				font-weight: normal;
			}

			.entry_nowrap {
				overflow: hidden;
				white-space: nowrap;
			}
			.gform-filter-operator {
				width: 100px
			}
		</style>


		<div class="wrap <?php 
        echo GFCommon::get_browser_class();
        ?>
">
		<h2 class="gf_admin_page_title">
			<span><?php 
        esc_html_e('Entries', 'gravityforms');
        ?>
</span><span class="gf_admin_page_subtitle"><span class="gf_admin_page_formid">ID: <?php 
        echo absint($form['id']);
        ?>
</span><span class="gf_admin_page_formname"><?php 
        esc_html_e('Form Name', 'gravityforms');
        ?>
: <?php 
        echo esc_html($form['title']);
        ?>
</span></span>
		</h2>

		<?php 
        RGForms::top_toolbar();
        ?>

		<form id="lead_form" method="post">
		<?php 
        wp_nonce_field('gforms_entry_list', 'gforms_entry_list');
        ?>

		<input type="hidden" value="" name="grid_columns" id="grid_columns" />
		<input type="hidden" value="" name="action" id="action" />
		<input type="hidden" value="" name="action_argument" id="action_argument" />
		<input type="hidden" value="" name="all_entries" id="all_entries" />

		<ul class="subsubsub">
			<li>
				<a class="<?php 
        echo empty($filter) ? 'current' : '';
        ?>
" href="?page=gf_entries&view=entries&id=<?php 
        echo absint($form_id);
        ?>
"><?php 
        _ex('All', 'Entry List', 'gravityforms');
        ?>
					<span class="count">(<span id="all_count"><?php 
        echo $active_lead_count;
        ?>
</span>)</span></a> |
			</li>
			<li>
				<a class="<?php 
        echo $read !== null ? 'current' : '';
        ?>
" href="?page=gf_entries&view=entries&id=<?php 
        echo absint($form_id);
        ?>
&filter=unread"><?php 
        _ex('Unread', 'Entry List', 'gravityforms');
        ?>
					<span class="count">(<span id="unread_count"><?php 
        echo $unread_count;
        ?>
</span>)</span></a> |
			</li>
			<li>
				<a class="<?php 
        echo $star !== null ? 'current' : '';
        ?>
" href="?page=gf_entries&view=entries&id=<?php 
        echo absint($form_id);
        ?>
&filter=star"><?php 
        _ex('Starred', 'Entry List', 'gravityforms');
        ?>
					<span class="count">(<span id="star_count"><?php 
        echo $starred_count;
        ?>
</span>)</span></a> |
			</li>
			<?php 
        if (GFCommon::spam_enabled($form_id)) {
            ?>
				<li>
					<a class="<?php 
            echo $filter == 'spam' ? 'current' : '';
            ?>
" href="?page=gf_entries&view=entries&id=<?php 
            echo absint($form_id);
            ?>
&filter=spam"><?php 
            esc_html_e('Spam', 'gravityforms');
            ?>
						<span class="count">(<span id="spam_count"><?php 
            echo esc_html($spam_count);
            ?>
</span>)</span></a> |
				</li>
			<?php 
        }
        ?>
			<li>
				<a class="<?php 
        echo $filter == 'trash' ? 'current' : '';
        ?>
" href="?page=gf_entries&view=entries&id=<?php 
        echo absint($form_id);
        ?>
&filter=trash"><?php 
        esc_html_e('Trash', 'gravityforms');
        ?>
					<span class="count">(<span id="trash_count"><?php 
        echo esc_html($trash_count);
        ?>
</span>)</span></a></li>
		</ul>
		<div style="margin-top:12px;float:right;">
			<a style="float:right;" class="button" id="lead_search_button" href="javascript:Search('<?php 
        echo esc_js($sort_field);
        ?>
', '<?php 
        echo esc_js($sort_direction);
        ?>
', <?php 
        echo absint($form_id);
        ?>
, jQuery('.gform-filter-value').val(), '<?php 
        echo esc_js($star);
        ?>
', '<?php 
        echo esc_js($read);
        ?>
', '<?php 
        echo esc_js($filter);
        ?>
', jQuery('.gform-filter-field').val(), jQuery('.gform-filter-operator').val());"><?php 
        esc_html_e('Search', 'gravityforms');
        ?>
</a>

			<div id="entry_filters" style="float:right"></div>
		</div>
		<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 
        switch ($filter) {
            case 'trash':
                ?>
							<option value='restore'><?php 
                esc_html_e('Restore', 'gravityforms');
                ?>
</option>
							<?php 
                if (GFCommon::current_user_can_any('gravityforms_delete_entries')) {
                    ?>
								<option value='delete'><?php 
                    esc_html_e('Delete Permanently', 'gravityforms');
                    ?>
</option>
							<?php 
                }
                break;
            case 'spam':
                ?>
							<option value='unspam'><?php 
                esc_html_e('Not Spam', 'gravityforms');
                ?>
</option>
							<?php 
                if (GFCommon::current_user_can_any('gravityforms_delete_entries')) {
                    ?>
								<option value='delete'><?php 
                    esc_html_e('Delete Permanently', 'gravityforms');
                    ?>
</option>
							<?php 
                }
                break;
            default:
                ?>
								<option value='mark_read'><?php 
                esc_html_e('Mark as Read', 'gravityforms');
                ?>
</option>
								<option value='mark_unread'><?php 
                esc_html_e('Mark as Unread', 'gravityforms');
                ?>
</option>
								<option value='add_star'><?php 
                esc_html_e('Add Star', 'gravityforms');
                ?>
</option>
								<option value='remove_star'><?php 
                esc_html_e('Remove Star', 'gravityforms');
                ?>
</option>
								<option value='resend_notifications'><?php 
                esc_html_e('Resend Notifications', 'gravityforms');
                ?>
</option>
								<option value='print'><?php 
                esc_html_e('Print', 'gravityforms');
                ?>
</option>

							<?php 
                if (GFCommon::spam_enabled($form_id)) {
                    ?>
								<option value='spam'><?php 
                    esc_html_e('Spam', 'gravityforms');
                    ?>
</option>
							<?php 
                }
                if (GFCommon::current_user_can_any('gravityforms_delete_entries')) {
                    ?>
								<option value='trash'><?php 
                    esc_html_e('Trash', 'gravityforms');
                    ?>
</option>
							<?php 
                }
        }
        ?>
				</select>
				<?php 
        $apply_button = '<input type="submit" class="button" value="' . esc_attr__('Apply', 'gravityforms') . '" onclick="return handleBulkApply(\'bulk_action\');" />';
        /**
         * Allows for the modification of the Entry apply button HTML (When modifying entries)
         *
         * @param string $apply_button The Entry apply button HTML
         */
        echo apply_filters('gform_entry_apply_button', $apply_button);
        if (in_array($filter, array('trash', 'spam'))) {
            $message = $filter == 'trash' ? esc_html__("WARNING! This operation cannot be undone. Empty trash? 'Ok' to empty trash. 'Cancel' to abort.", 'gravityforms') : esc_html__("WARNING! This operation cannot be undone. Permanently delete all spam? 'Ok' to delete. 'Cancel' to abort.", 'gravityforms');
            $button_label = $filter == 'trash' ? __('Empty Trash', 'gravityforms') : __('Delete All Spam', 'gravityforms');
            ?>
					<input type="submit" class="button" name="button_delete_permanently" value="<?php 
            echo esc_attr($button_label);
            ?>
" onclick="return confirm('<?php 
            echo esc_js($message);
            ?>
');" />
				<?php 
        }
        ?>
				<div id="notifications_modal_container" style="display:none;">
					<div id="notifications_container">

						<div id="post_tag" class="tagsdiv">
							<div id="resend_notifications_options">

								<?php 
        $notifications = GFCommon::get_notifications('resend_notifications', $form);
        if (!is_array($notifications) || count($form['notifications']) <= 0) {
            ?>
									<p class="description"><?php 
            esc_html_e('You cannot resend notifications for these entries because this form does not currently have any notifications configured.', 'gravityforms');
            ?>
</p>

									<a href="<?php 
            echo esc_url(admin_url("admin.php?page=gf_edit_forms&view=settings&subview=notification&id={$form['id']}"));
            ?>
" class="button"><?php 
            esc_html_e('Configure Notifications', 'gravityforms');
            ?>
</a>
								<?php 
        } else {
            ?>
									<p class="description"><?php 
            esc_html_e('Specify which notifications you would like to resend for the selected entries.', 'gravityforms');
            ?>
</p>
									<?php 
            foreach ($notifications as $notification) {
                ?>
										<input type="checkbox" class="gform_notifications" value="<?php 
                echo esc_attr($notification['id']);
                ?>
" id="notification_<?php 
                echo esc_attr($notification['id']);
                ?>
" onclick="toggleNotificationOverride();" />
										<label for="notification_<?php 
                echo esc_attr($notification['id']);
                ?>
"><?php 
                echo esc_html($notification['name']);
                ?>
</label>
										<br /><br />
									<?php 
            }
            ?>
									<div id="notifications_override_settings" style="display:none;">

										<p class="description" style="padding-top:0; margin-top:0;">
											<?php 
            esc_html_e('You may override the default notification settings by entering a comma delimited list of emails to which the selected notifications should be sent.', 'gravityforms');
            ?>
										</p>
										<label for="notification_override_email"><?php 
            esc_html_e('Send To', 'gravityforms');
            ?>
 <?php 
            gform_tooltip('notification_override_email');
            ?>
</label><br />
										<input type="text" name="notification_override_email" id="notification_override_email" style="width:99%;" /><br /><br />

									</div>

									<input type="button" name="notification_resend" id="notification_resend" value="<?php 
            esc_attr_e('Resend Notifications', 'gravityforms');
            ?>
" class="button" style="" onclick="BulkResendNotifications();" />
									<span id="please_wait_container" style="display:none; margin-left: 5px;">
                                                <i class='gficon-gravityforms-spinner-icon gficon-spin'></i> <?php 
            esc_html_e('Resending...', 'gravityforms');
            ?>
                                            </span>
								<?php 
        }
        ?>

							</div>

							<div id="resend_notifications_close" style="display:none;margin:10px 0 0;">
								<input type="button" name="resend_notifications_close_button" value="<?php 
        esc_attr_e('Close Window', 'gravityforms');
        ?>
" class="button" style="" onclick="closeModal(true);" />
							</div>

						</div>

					</div>
				</div>
				<!-- / Resend Notifications -->

				<div id="print_modal_container" style="display:none;">
					<div id="print_container">

						<div class="tagsdiv">
							<div id="print_options">

								<p class="description"><?php 
        esc_html_e('Print all of the selected entries at once.', 'gravityforms');
        ?>
</p>

								<?php 
        if (GFCommon::current_user_can_any('gravityforms_view_entry_notes')) {
            ?>
									<input type="checkbox" name="gform_print_notes" value="print_notes" checked="checked" id="gform_print_notes" />
									<label for="gform_print_notes"><?php 
            esc_html_e('Include notes', 'gravityforms');
            ?>
</label>
									<br /><br />
								<?php 
        }
        ?>

								<input type="checkbox" name="gform_print_page_break" value="print_notes" checked="checked" id="gform_print_page_break" />
								<label for="gform_print_page_break"><?php 
        esc_html_e('Add page break between entries', 'gravityforms');
        ?>
</label>
								<br /><br />

								<input type="button" value="<?php 
        esc_attr_e('Print', 'gravityforms');
        ?>
" class="button" onclick="BulkPrint();" />

							</div>
						</div>

					</div>
				</div>
				<!-- / Print -->

			</div>

			<?php 
        echo self::display_paging_links('header', $page_links, $first_item_index, $page_size, $total_count);
        ?>

			<div class="clear"></div>
		</div>

		<table class="widefat fixed" cellspacing="0">
		<thead>
		<tr>
			<th scope="col" id="cb" class="manage-column column-cb check-column">
				<input type="checkbox" class="headercb" /></th>
			<?php 
        if (!in_array($filter, array('spam', 'trash'))) {
            ?>
				<th scope="col" id="cb" class="manage-column column-cb check-column">&nbsp;</th>
			<?php 
        }
        foreach ($columns as $field_id => $field_info) {
            $dir = $field_id == 0 ? 'DESC' : 'ASC';
            //default every field so ascending sorting except date_created (id=0)
            if ($field_id == $sort_field) {
                //reverting direction if clicking on the currently sorted field
                $dir = $sort_direction == 'ASC' ? 'DESC' : 'ASC';
            }
            ?>
				<th scope="col" class="manage-column entry_nowrap" onclick="Search('<?php 
            echo esc_js($field_id);
            ?>
', '<?php 
            echo esc_js($dir);
            ?>
', <?php 
            echo absint($form_id);
            ?>
, '<?php 
            echo esc_js($search);
            ?>
', '<?php 
            echo esc_js($star);
            ?>
', '<?php 
            echo esc_js($read);
            ?>
', '<?php 
            echo esc_js($filter);
            ?>
', '<?php 
            echo esc_js($search_field_id);
            ?>
', '<?php 
            echo esc_js($search_operator);
            ?>
');" style="cursor:pointer;"><?php 
            echo esc_html($field_info['label']);
            ?>
</th>
			<?php 
        }
        ?>
			<th scope="col" align="right" width="50">
				<a title="<?php 
        esc_attr_e('click to select columns to display', 'gravityforms');
        ?>
" href="<?php 
        echo trailingslashit(site_url(null, 'admin'));
        ?>
?gf_page=select_columns&id=<?php 
        echo absint($form_id);
        ?>
&TB_iframe=true&height=365&width=600" class="thickbox entries_edit_icon"><i class="fa fa-cog"></i></a>
			</th>
		</tr>
		</thead>
		<tfoot>
		<tr>
			<th scope="col" id="cb" class="manage-column column-cb check-column" style=""><input type="checkbox" /></th>
			<?php 
        if (!in_array($filter, array('spam', 'trash'))) {
            ?>
				<th scope="col" id="cb" class="manage-column column-cb check-column">&nbsp;</th>
			<?php 
        }
        foreach ($columns as $field_id => $field_info) {
            $dir = $field_id == 0 ? 'DESC' : 'ASC';
            //default every field so ascending sorting except date_created (id=0)
            if ($field_id == $sort_field) {
                //reverting direction if clicking on the currently sorted field
                $dir = $sort_direction == 'ASC' ? 'DESC' : 'ASC';
            }
            ?>
				<th scope="col" class="manage-column entry_nowrap" onclick="Search('<?php 
            echo esc_js($field_id);
            ?>
', '<?php 
            echo esc_js($dir);
            ?>
', <?php 
            echo absint($form_id);
            ?>
, '<?php 
            echo esc_js($search);
            ?>
', '<?php 
            echo esc_js($star);
            ?>
', '<?php 
            echo esc_js($read);
            ?>
', '<?php 
            echo esc_js($filter);
            ?>
', '<?php 
            echo esc_js($search_field_id);
            ?>
', '<?php 
            echo esc_js($search_operator);
            ?>
');" style="cursor:pointer;"><?php 
            echo esc_html($field_info['label']);
            ?>
</th>
			<?php 
        }
        ?>
			<th scope="col" style="width:15px;">
				<a title="<?php 
        esc_attr_e('click to select columns to display', 'gravityforms');
        ?>
" href="<?php 
        echo trailingslashit(site_url());
        ?>
?gf_page=select_columns&id=<?php 
        echo absint($form_id);
        ?>
&TB_iframe=true&height=365&width=600" class="thickbox entries_edit_icon"><i class=fa-cog"></i></a>
			</th>
		</tr>
		</tfoot>

		<tbody data-wp-lists="list:gf_entry" class="user-list" id="gf_entry_list">
		<?php 
        if (sizeof($leads) > 0) {
            $field_ids = array_keys($columns);
            $gf_entry_locking = new GFEntryLocking();
            $alternate_row = false;
            foreach ($leads as $position => $lead) {
                $position = $page_size * $page_index + $position;
                ?>
				<tr id="lead_row_<?php 
                echo esc_attr($lead['id']);
                ?>
" class='author-self status-inherit <?php 
                echo $lead['is_read'] ? '' : 'lead_unread';
                ?>
 <?php 
                echo $lead['is_starred'] ? 'lead_starred' : '';
                ?>
 <?php 
                echo in_array($filter, array('trash', 'spam')) ? 'lead_spam_trash' : '';
                ?>
 <?php 
                $gf_entry_locking->list_row_class($lead['id']);
                ?>
 <?php 
                echo ($alternate_row = !$alternate_row) ? 'alternate' : '';
                ?>
' valign="top" data-id="<?php 
                echo esc_attr($lead['id']);
                ?>
">
				<th scope="row" class="check-column">
					<input type="checkbox" name="lead[]" value="<?php 
                echo esc_attr($lead['id']);
                ?>
" />
					<?php 
                $gf_entry_locking->lock_indicator();
                ?>
				</th>
				<?php 
                if (!in_array($filter, array('spam', 'trash'))) {
                    ?>
					<td>
						<img id="star_image_<?php 
                    echo esc_attr($lead['id']);
                    ?>
" src="<?php 
                    echo GFCommon::get_base_url();
                    ?>
/images/star<?php 
                    echo intval($lead['is_starred']);
                    ?>
.png" onclick="ToggleStar(this, '<?php 
                    echo esc_js($lead['id']);
                    ?>
','<?php 
                    echo esc_js($filter);
                    ?>
');" />
					</td>
				<?php 
                }
                $is_first_column = true;
                $nowrap_class = 'entry_nowrap';
                foreach ($field_ids as $field_id) {
                    $field = RGFormsModel::get_field($form, $field_id);
                    $value = rgar($lead, $field_id);
                    if (!empty($field) && $field->type == 'post_category') {
                        $value = GFCommon::prepare_post_category_value($value, $field, 'entry_list');
                    }
                    //filtering lead value
                    $value = apply_filters('gform_get_field_value', $value, $lead, $field);
                    $input_type = !empty($columns[$field_id]['inputType']) ? $columns[$field_id]['inputType'] : $columns[$field_id]['type'];
                    switch ($input_type) {
                        case 'source_url':
                            $value = "<a href='" . esc_attr($lead['source_url']) . "' target='_blank' alt='" . esc_attr($lead['source_url']) . "' title='" . esc_attr($lead['source_url']) . "'>.../" . esc_attr(GFCommon::truncate_url($lead['source_url'])) . '</a>';
                            break;
                        case 'date_created':
                        case 'payment_date':
                            $value = GFCommon::format_date($value, false);
                            break;
                        case 'payment_amount':
                            $value = GFCommon::to_money($value, $lead['currency']);
                            break;
                        case 'created_by':
                            if (!empty($value)) {
                                $userdata = get_userdata($value);
                                if (!empty($userdata)) {
                                    $value = $userdata->user_login;
                                }
                            }
                            break;
                        default:
                            if ($field !== null) {
                                $value = $field->get_value_entry_list($value, $lead, $field_id, $columns, $form);
                            } else {
                                $value = esc_html($value);
                            }
                    }
                    $value = apply_filters('gform_entries_field_value', $value, $form_id, $field_id, $lead);
                    /* ^ maybe move to function */
                    $query_string = "gf_entries&view=entry&id={$form_id}&lid={$lead['id']}{$search_qs}{$sort_qs}{$dir_qs}{$filter_qs}&paged=" . ($page_index + 1);
                    if ($is_first_column) {
                        ?>
						<td class="column-title">
							<a href="admin.php?page=gf_entries&view=entry&id=<?php 
                        echo absint($form_id);
                        ?>
&lid=<?php 
                        echo esc_attr($lead['id'] . $search_qs . $sort_qs . $dir_qs . $filter_qs);
                        ?>
&paged=<?php 
                        echo $page_index + 1;
                        ?>
&pos=<?php 
                        echo $position;
                        ?>
&field_id=<?php 
                        echo esc_attr($search_field_id);
                        ?>
&operator=<?php 
                        echo esc_attr($search_operator);
                        ?>
"><?php 
                        echo $value;
                        ?>
</a>

							<?php 
                        $gf_entry_locking->lock_info($lead['id']);
                        ?>

							<div class="row-actions">
								<?php 
                        switch ($filter) {
                            case 'trash':
                                ?>
										<span class="edit">
                                            <a title="<?php 
                                esc_attr_e('View this entry', 'gravityforms');
                                ?>
" href="admin.php?page=gf_entries&view=entry&id=<?php 
                                echo absint($form_id);
                                ?>
&lid=<?php 
                                echo esc_attr($lead['id'] . $search_qs . $sort_qs . $dir_qs . $filter_qs);
                                ?>
&paged=<?php 
                                echo $page_index + 1;
                                ?>
&pos=<?php 
                                echo $position;
                                ?>
&field_id=<?php 
                                echo esc_attr($search_field_id);
                                ?>
&operator=<?php 
                                echo esc_attr($search_operator);
                                ?>
"><?php 
                                esc_html_e('View', 'gravityforms');
                                ?>
</a>
                                            |
                                        </span>

										<span class="edit">
                                            <a data-wp-lists='delete:gf_entry_list:lead_row_<?php 
                                echo esc_attr($lead['id']);
                                ?>
::status=active&entry=<?php 
                                echo esc_attr($lead['id']);
                                ?>
' title="<?php 
                                esc_attr_e('Restore this entry', 'gravityforms');
                                ?>
" href="<?php 
                                echo wp_nonce_url('?page=gf_entries', 'gf_delete_entry');
                                ?>
"><?php 
                                esc_html_e('Restore', 'gravityforms');
                                ?>
</a>
											<?php 
                                echo GFCommon::current_user_can_any('gravityforms_delete_entries') ? '|' : '';
                                ?>
                                        </span>

										<?php 
                                if (GFCommon::current_user_can_any('gravityforms_delete_entries')) {
                                    ?>
											<span class="delete">
                                                <?php 
                                    $delete_link = '<a data-wp-lists="delete:gf_entry_list:lead_row_' . esc_attr($lead['id']) . '::status=delete&entry=' . esc_attr($lead['id']) . '" title="' . esc_attr__('Delete this entry permanently', 'gravityforms') . '"  href="' . wp_nonce_url('?page=gf_entries', 'gf_delete_entry') . '">' . esc_html__('Delete Permanently', 'gravityforms') . '</a>';
                                    /**
                                     * Allows for modification of a Form entry "delete" link
                                     *
                                     * @param string $delete_link The Entry Delete Link (Formatted in HTML)
                                     */
                                    echo apply_filters('gform_delete_entry_link', $delete_link);
                                    ?>
                                            </span>
										<?php 
                                }
                                break;
                            case 'spam':
                                ?>
										<span class="edit">
                                            <a title="<?php 
                                esc_attr_e('View this entry', 'gravityforms');
                                ?>
" href="admin.php?page=gf_entries&view=entry&id=<?php 
                                echo absint($form_id);
                                ?>
&lid=<?php 
                                echo esc_attr($lead['id'] . $search_qs . $sort_qs . $dir_qs . $filter_qs);
                                ?>
&paged=<?php 
                                echo $page_index + 1;
                                ?>
&pos=<?php 
                                echo $position;
                                ?>
"><?php 
                                esc_html_e('View', 'gravityforms');
                                ?>
</a>
                                            |
                                        </span>

										<span class="unspam">
                                            <a data-wp-lists='delete:gf_entry_list:lead_row_<?php 
                                echo esc_attr($lead['id']);
                                ?>
::status=unspam&entry=<?php 
                                echo esc_attr($lead['id']);
                                ?>
' title="<?php 
                                esc_attr_e('Mark this entry as not spam', 'gravityforms');
                                ?>
" href="<?php 
                                echo wp_nonce_url('?page=gf_entries', 'gf_delete_entry');
                                ?>
"><?php 
                                esc_html_e('Not Spam', 'gravityforms');
                                ?>
</a>
											<?php 
                                echo GFCommon::current_user_can_any('gravityforms_delete_entries') ? '|' : '';
                                ?>
                                        </span>

										<?php 
                                if (GFCommon::current_user_can_any('gravityforms_delete_entries')) {
                                    ?>
											<span class="delete">
                                                <?php 
                                    $delete_link = '<a data-wp-lists="delete:gf_entry_list:lead_row_' . esc_attr($lead['id']) . '::status=delete&entry=' . esc_attr($lead['id']) . '" title="' . esc_attr__('Delete this entry permanently', 'gravityforms') . '"  href="' . wp_nonce_url('?page=gf_entries', 'gf_delete_entry') . '">' . esc_html__('Delete Permanently', 'gravityforms') . '</a>';
                                    /**
                                     * Allows for modification of a Form entry "delete" link
                                     *
                                     * @param string $delete_link The Entry Delete Link (Formatted in HTML)
                                     */
                                    echo apply_filters('gform_delete_entry_link', $delete_link);
                                    ?>
                                            </span>
										<?php 
                                }
                                break;
                            default:
                                ?>
											<span class="edit">
                                                <a title="<?php 
                                esc_attr_e('View this entry', 'gravityforms');
                                ?>
" href="admin.php?page=gf_entries&view=entry&id=<?php 
                                echo absint($form_id);
                                ?>
&lid=<?php 
                                echo esc_attr($lead['id'] . $search_qs . $sort_qs . $dir_qs . $filter_qs);
                                ?>
&paged=<?php 
                                echo $page_index + 1;
                                ?>
&pos=<?php 
                                echo $position;
                                ?>
&field_id=<?php 
                                echo esc_attr($search_field_id);
                                ?>
&operator=<?php 
                                echo esc_attr($search_operator);
                                ?>
"><?php 
                                esc_html_e('View', 'gravityforms');
                                ?>
</a>
                                                |
                                            </span>
											<span class="edit">
                                                <a id="mark_read_<?php 
                                echo esc_attr($lead['id']);
                                ?>
" title="Mark this entry as read" href="javascript:ToggleRead('<?php 
                                echo esc_js($lead['id']);
                                ?>
', '<?php 
                                echo esc_js($filter);
                                ?>
');" style="display:<?php 
                                echo $lead['is_read'] ? 'none' : 'inline';
                                ?>
;"><?php 
                                esc_html_e('Mark read', 'gravityforms');
                                ?>
</a><a id="mark_unread_<?php 
                                echo absint($lead['id']);
                                ?>
" title="<?php 
                                esc_attr_e('Mark this entry as unread', 'gravityforms');
                                ?>
" href="javascript:ToggleRead('<?php 
                                echo esc_js($lead['id']);
                                ?>
', '<?php 
                                echo esc_js($filter);
                                ?>
');" style="display:<?php 
                                echo $lead['is_read'] ? 'inline' : 'none';
                                ?>
;"><?php 
                                esc_html_e('Mark unread', 'gravityforms');
                                ?>
</a>
											<?php 
                                echo GFCommon::current_user_can_any('gravityforms_delete_entries') || GFCommon::akismet_enabled($form_id) ? '|' : '';
                                ?>
                                            </span>
										<?php 
                                if (GFCommon::spam_enabled($form_id)) {
                                    ?>
											<span class="spam">
                                                <a data-wp-lists='delete:gf_entry_list:lead_row_<?php 
                                    echo esc_attr($lead['id']);
                                    ?>
::status=spam&entry=<?php 
                                    echo esc_attr($lead['id']);
                                    ?>
' title="<?php 
                                    esc_attr_e('Mark this entry as spam', 'gravityforms');
                                    ?>
" href="<?php 
                                    echo wp_nonce_url('?page=gf_entries', 'gf_delete_entry');
                                    ?>
"><?php 
                                    esc_html_e('Spam', 'gravityforms');
                                    ?>
</a>
												<?php 
                                    echo GFCommon::current_user_can_any('gravityforms_delete_entries') ? '|' : '';
                                    ?>
                                            </span>

										<?php 
                                }
                                if (GFCommon::current_user_can_any('gravityforms_delete_entries')) {
                                    ?>
											<span class="trash">
                                                <a data-wp-lists='delete:gf_entry_list:lead_row_<?php 
                                    echo esc_attr($lead['id']);
                                    ?>
::status=trash&entry=<?php 
                                    echo esc_attr($lead['id']);
                                    ?>
' title="<?php 
                                    esc_attr_e('Move this entry to the trash', 'gravityforms');
                                    ?>
" href="<?php 
                                    echo wp_nonce_url('?page=gf_entries', 'gf_delete_entry');
                                    ?>
"><?php 
                                    esc_html_e('Trash', 'gravityforms');
                                    ?>
</a>
                                            </span>
										<?php 
                                }
                                break;
                        }
                        do_action('gform_entries_first_column_actions', $form_id, $field_id, $value, $lead, $query_string);
                        ?>

							</div>
							<?php 
                        do_action('gform_entries_first_column', $form_id, $field_id, $value, $lead, $query_string);
                        ?>
						</td>
					<?php 
                    } else {
                        ?>
						<td class="<?php 
                        echo $nowrap_class;
                        ?>
">
							<?php 
                        echo apply_filters('gform_entries_column_filter', $value, $form_id, $field_id, $lead, $query_string);
                        ?>
&nbsp;
							<?php 
                        do_action('gform_entries_column', $form_id, $field_id, $value, $lead, $query_string);
                        ?>
						</td>
					<?php 
                    }
                    $is_first_column = false;
                }
                ?>
				<td>&nbsp;</td>
				</tr>
			<?php 
            }
        } else {
            $column_count = sizeof($columns) + 3;
            switch ($filter) {
                case 'unread':
                    $message = isset($_GET['field_id']) ? esc_html__('This form does not have any unread entries matching the search criteria.', 'gravityforms') : esc_html__('This form does not have any unread entries.', 'gravityforms');
                    break;
                case 'star':
                    $message = isset($_GET['field_id']) ? esc_html__('This form does not have any starred entries matching the search criteria.', 'gravityforms') : esc_html__('This form does not have any starred entries.', 'gravityforms');
                    break;
                case 'spam':
                    $message = esc_html__('This form does not have any spam.', 'gravityforms');
                    $column_count = sizeof($columns) + 2;
                    break;
                case 'trash':
                    $message = isset($_GET['field_id']) ? esc_html__('This form does not have any entries in the trash matching the search criteria.', 'gravityforms') : esc_html__('This form does not have any entries in the trash.', 'gravityforms');
                    $column_count = sizeof($columns) + 2;
                    break;
                default:
                    $message = isset($_GET['field_id']) ? esc_html__('This form does not have any entries matching the search criteria.', 'gravityforms') : esc_html__('This form does not have any entries yet.', 'gravityforms');
            }
            ?>
			<tr>
				<td colspan="<?php 
            echo esc_attr($column_count);
            ?>
" style="padding:20px;"><?php 
            echo esc_html($message);
            ?>
</td>
			</tr>
		<?php 
        }
        ?>
		</tbody>
		</table>

		<div class="clear"></div>

		<div class="tablenav">

			<div class="alignleft actions" style="padding:8px 0 7px 0;">
				<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 
        switch ($filter) {
            case 'trash':
                ?>
							<option value='restore'><?php 
                esc_html_e('Restore', 'gravityforms');
                ?>
</option>
							<?php 
                if (GFCommon::current_user_can_any('gravityforms_delete_entries')) {
                    ?>
								<option value='delete'><?php 
                    esc_html_e('Delete Permanently', 'gravityforms');
                    ?>
</option>
							<?php 
                }
                break;
            case 'spam':
                ?>
							<option value='unspam'><?php 
                esc_html_e('Not Spam', 'gravityforms');
                ?>
</option>
							<?php 
                if (GFCommon::current_user_can_any('gravityforms_delete_entries')) {
                    ?>
								<option value='delete'><?php 
                    esc_html_e('Delete Permanently', 'gravityforms');
                    ?>
</option>
							<?php 
                }
                break;
            default:
                ?>
								<option value='mark_read'><?php 
                esc_html_e('Mark as Read', 'gravityforms');
                ?>
</option>
								<option value='mark_unread'><?php 
                esc_html_e('Mark as Unread', 'gravityforms');
                ?>
</option>
								<option value='add_star'><?php 
                esc_html_e('Add Star', 'gravityforms');
                ?>
</option>
								<option value='remove_star'><?php 
                esc_html_e('Remove Star', 'gravityforms');
                ?>
</option>
								<option value='resend_notifications'><?php 
                esc_html_e('Resend Notifications', 'gravityforms');
                ?>
</option>
								<option value='print'><?php 
                esc_html_e('Print Entries', 'gravityforms');
                ?>
</option>
							<?php 
                if (GFCommon::spam_enabled($form_id)) {
                    ?>
								<option value='spam'><?php 
                    esc_html_e('Spam', 'gravityforms');
                    ?>
</option>
							<?php 
                }
                if (GFCommon::current_user_can_any('gravityforms_delete_entries')) {
                    ?>
								<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 handleBulkApply(\'bulk_action2\');" />';
        /**
         * Allows for the modification of the Entry apply button HTML (When modifying entries)
         *
         * @param string $apply_button The Entry apply button HTML
         */
        echo apply_filters('gform_entry_apply_button', $apply_button);
        ?>
			</div>

			<?php 
        echo self::display_paging_links('footer', $page_links, $first_item_index, $page_size, $total_count);
        ?>

			<div class="clear"></div>
		</div>

		</form>
		</div>
	<?php 
    }
Ejemplo n.º 2
0
 function get_form_parent_post_id($form)
 {
     foreach ($form['fields'] as $field) {
         if ($field['type'] == 'select' && $field['setParentPost']) {
             $parent_id = RGForms::post('input_' . $field['id']);
             return $parent_id;
         }
     }
     return 0;
 }
 public function get_field_input($form, $value = '', $entry = null)
 {
     if (is_array($value)) {
         $value = array_values($value);
     }
     $form_id = $form['id'];
     $is_entry_detail = $this->is_entry_detail();
     $is_form_editor = $this->is_form_editor();
     $is_admin = $is_entry_detail || $is_form_editor;
     $id = (int) $this->id;
     $field_id = $is_entry_detail || $is_form_editor || $form_id == 0 ? "input_{$id}" : 'input_' . $form_id . "_{$id}";
     $class_suffix = $is_entry_detail ? '_admin' : '';
     $form_sub_label_placement = rgar($form, 'subLabelPlacement');
     $field_sub_label_placement = $this->subLabelPlacement;
     $is_sub_label_above = $field_sub_label_placement == 'above' || empty($field_sub_label_placement) && $form_sub_label_placement == 'above';
     $sub_label_class_attribute = $field_sub_label_placement == 'hidden_label' ? "class='hidden_sub_label'" : '';
     $disabled_text = $is_form_editor ? 'disabled="disabled"' : '';
     $first_tabindex = $this->get_tabindex();
     $last_tabindex = $this->get_tabindex();
     $strength_style = !$this->passwordStrengthEnabled ? "style='display:none;'" : '';
     $strength_indicator_label = __('Strength indicator', 'gravityforms');
     $strength = $this->passwordStrengthEnabled || $is_admin ? "<div id='{$field_id}_strength_indicator' class='gfield_password_strength' {$strength_style}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{$strength_indicator_label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input type='hidden' class='gform_hidden' id='{$field_id}_strength' name='input_{$id}_strength' />" : '';
     $action = !$is_admin ? "gformShowPasswordStrength(\"{$field_id}\");" : '';
     $onchange = $this->passwordStrengthEnabled ? "onchange='{$action}'" : '';
     $onkeyup = $this->passwordStrengthEnabled ? "onkeyup='{$action}'" : '';
     $confirmation_value = RGForms::post('input_' . $id . '_2');
     $password_value = is_array($value) ? $value[0] : $value;
     $password_value = esc_attr($password_value);
     $confirmation_value = esc_attr($confirmation_value);
     $enter_password_field_input = GFFormsModel::get_input($this, $this->id . '');
     $confirm_password_field_input = GFFormsModel::get_input($this, $this->id . '.2');
     $enter_password_label = rgar($enter_password_field_input, 'customLabel') != '' ? $enter_password_field_input['customLabel'] : __('Enter Password', 'gravityforms');
     $enter_password_label = apply_filters("gform_password_{$form_id}", apply_filters('gform_password', $enter_password_label, $form_id), $form_id);
     $confirm_password_label = rgar($confirm_password_field_input, 'customLabel') != '' ? $confirm_password_field_input['customLabel'] : __('Confirm Password', 'gravityforms');
     $confirm_password_label = apply_filters("gform_password_confirm_{$form_id}", apply_filters('gform_password_confirm', $confirm_password_label, $form_id), $form_id);
     $enter_password_placeholder_attribute = GFCommon::get_input_placeholder_attribute($enter_password_field_input);
     $confirm_password_placeholder_attribute = GFCommon::get_input_placeholder_attribute($confirm_password_field_input);
     if ($is_sub_label_above) {
         return "<div class='ginput_complex{$class_suffix} ginput_container' id='{$field_id}_container'>\n\t\t\t\t\t<span id='{$field_id}_container' class='ginput_left'>\n\t\t\t\t\t\t<label for='{$field_id}' {$sub_label_class_attribute}>{$enter_password_label}</label>\n\t\t\t\t\t\t<input type='password' name='input_{$id}' id='{$field_id}' {$onkeyup} {$onchange} value='{$password_value}' {$first_tabindex} {$enter_password_placeholder_attribute} {$disabled_text}/>\n\t\t\t\t\t</span>\n\t\t\t\t\t<span id='{$field_id}_2_container' class='ginput_right'>\n\t\t\t\t\t\t<label for='{$field_id}_2' {$sub_label_class_attribute}>{$confirm_password_label}</label>\n\t\t\t\t\t\t<input type='password' name='input_{$id}_2' id='{$field_id}_2' {$onkeyup} {$onchange} value='{$confirmation_value}' {$last_tabindex} {$confirm_password_placeholder_attribute} {$disabled_text}/>\n\t\t\t\t\t</span>\n\t\t\t\t\t<div class='gf_clear gf_clear_complex'></div>\n\t\t\t\t</div>{$strength}";
     } else {
         return "<div class='ginput_complex{$class_suffix} ginput_container' id='{$field_id}_container'>\n\t\t\t\t\t<span id='{$field_id}_container' class='ginput_left'>\n\t\t\t\t\t\t<input type='password' name='input_{$id}' id='{$field_id}' {$onkeyup} {$onchange} value='{$password_value}' {$first_tabindex} {$enter_password_placeholder_attribute} {$disabled_text}/>\n\t\t\t\t\t\t<label for='{$field_id}' {$sub_label_class_attribute}>{$enter_password_label}</label>\n\t\t\t\t\t</span>\n\t\t\t\t\t<span id='{$field_id}_2_container' class='ginput_right'>\n\t\t\t\t\t\t<input type='password' name='input_{$id}_2' id='{$field_id}_2' {$onkeyup} {$onchange} value='{$confirmation_value}' {$last_tabindex} {$confirm_password_placeholder_attribute} {$disabled_text}/>\n\t\t\t\t\t\t<label for='{$field_id}_2' {$sub_label_class_attribute}>{$confirm_password_label}</label>\n\t\t\t\t\t</span>\n\t\t\t\t\t<div class='gf_clear gf_clear_complex'></div>\n\t\t\t\t</div>{$strength}";
     }
 }
Ejemplo n.º 4
0
 public static function process_bulk_update()
 {
     global $process_bulk_update_message;
     if (RGForms::post("action") === 'bulk') {
         check_admin_referer('gforms_entry_list', 'gforms_entry_list');
         $bulk_action = !empty($_POST["bulk_action"]) ? $_POST["bulk_action"] : $_POST["bulk_action2"];
         $leads = $_POST["lead"];
         $entry_count = count($leads) > 1 ? sprintf(__("%d entries", "gravityforms"), count($leads)) : __("1 entry", "gravityforms");
         $bulk_action = explode('-', $bulk_action);
         if (!isset($bulk_action[1]) || empty($leads)) {
             return false;
         }
         switch ($bulk_action[0]) {
             case "approve":
                 self::directory_update_bulk($leads, 1, $bulk_action[1]);
                 $process_bulk_update_message = sprintf(__("%s approved.", "gravity-forms-addons"), $entry_count);
                 break;
             case "unapprove":
                 self::directory_update_bulk($leads, 0, $bulk_action[1]);
                 $process_bulk_update_message = sprintf(__("%s disapproved.", "gravity-forms-addons"), $entry_count);
                 break;
         }
     }
 }
 /**
  * Capture bulk actions - gf_entries table
  *
  * @uses  GravityView_frontend::get_search_criteria() Convert the $_POST search request into a properly formatted request.
  * @access public
  * @return void|boolean
  */
 public function process_bulk_action()
 {
     if (!class_exists('RGForms')) {
         return;
     }
     if ('bulk' === RGForms::post('action')) {
         check_admin_referer('gforms_entry_list', 'gforms_entry_list');
         // The action is formatted like: approve-16 or disapprove-16, where the first word is the name of the action and the second is the ID of the form. Bulk action 2 is the bottom bulk action select form.
         $bulk_action = !empty($_POST['bulk_action']) ? $_POST['bulk_action'] : $_POST['bulk_action2'];
         /**
          * The extra '-' is to make sure that there are at *least* two items in array.
          * @see https://github.com/katzwebservices/GravityView/issues/370
          */
         $bulk_action .= '-';
         list($approved_status, $form_id) = explode('-', $bulk_action);
         if (empty($form_id)) {
             do_action('gravityview_log_error', '[process_bulk_action] Form ID is empty from parsing bulk action.', $bulk_action);
             return false;
         }
         // All entries are set to be updated, not just the visible ones
         if (!empty($_POST['all_entries'])) {
             // Convert the current entry search into GF-formatted search criteria
             $search = array('search_field' => isset($_POST['f']) ? $_POST['f'][0] : 0, 'search_value' => isset($_POST['v'][0]) ? $_POST['v'][0] : '', 'search_operator' => isset($_POST['o'][0]) ? $_POST['o'][0] : 'contains');
             $search_criteria = GravityView_frontend::get_search_criteria($search, $form_id);
             // Get all the entry IDs for the form
             $entries = gravityview_get_entry_ids($form_id, $search_criteria);
         } else {
             $entries = $_POST['lead'];
         }
         if (empty($entries)) {
             do_action('gravityview_log_error', '[process_bulk_action] Entries are empty');
             return false;
         }
         $entry_count = count($entries) > 1 ? sprintf(__('%d entries', 'gravityview'), count($entries)) : __('1 entry', 'gravityview');
         switch ($approved_status) {
             case 'approve':
                 self::update_bulk($entries, 1, $form_id);
                 $this->bulk_update_message = sprintf(__('%s approved.', 'gravityview'), $entry_count);
                 break;
             case 'unapprove':
                 self::update_bulk($entries, 0, $form_id);
                 $this->bulk_update_message = sprintf(__('%s disapproved.', 'gravityview'), $entry_count);
                 break;
         }
     }
 }
 /**
  * Process validation for a edit entry submission
  *
  * Sets the `is_valid` object var
  *
  * @return void
  */
 function validate()
 {
     // If using GF User Registration Add-on, remove the validation step, otherwise generates error when updating the entry
     if (class_exists('GFUser')) {
         remove_filter('gform_validation', array('GFUser', 'user_registration_validation'));
     }
     /**
      * For some crazy reason, Gravity Forms doesn't validate Edit Entry form submissions.
      * You can enter whatever you want!
      * We try validating, and customize the results using `self::custom_validation()`
      */
     add_filter('gform_validation_' . $this->form_id, array($this, 'custom_validation'), 10, 4);
     // Needed by the validate funtion
     $failed_validation_page = NULL;
     $field_values = RGForms::post('gform_field_values');
     // Prevent entry limit from running when editing an entry, also
     // prevent form scheduling from preventing editing
     unset($this->form['limitEntries'], $this->form['scheduleForm']);
     // Hide fields depending on Edit Entry settings
     $this->form['fields'] = $this->get_configured_edit_fields($this->form, $this->view_id);
     $this->is_valid = GFFormDisplay::validate($this->form, $field_values, 1, $failed_validation_page);
     remove_filter('gform_validation_' . $this->form_id, array($this, 'custom_validation'), 10);
 }
 public static function initialise_form_edit()
 {
     /*
      * If we aren't editing our form, don't do anything
      */
     if (empty($_GET['action']) || empty($_GET['lid']) || !is_user_logged_in()) {
         return false;
     }
     $lid = isset($_GET['lid']) ? (int) $_GET['lid'] : 0;
     self::$lead = $lead = GFAPI::get_entry($lid);
     self::$form = $form = GFAPI::get_form(self::$lead['form_id']);
     if (!self::check_user_permission(self::$lead)) {
         return false;
     }
     self::$allowed_edit = true;
     if (!class_exists('GFFormDisplay')) {
         require_once GFCommon::get_base_path() . "/form_display.php";
     }
     $field_values = RGForms::post("gform_field_values");
     /*
      * Include appropriate css/javascript here...
      */
     GFFormDisplay::enqueue_form_scripts($form, false);
     GFFormDisplay::add_init_script($form["id"], "conditional_logic", GFFormDisplay::ON_PAGE_RENDER, self::get_conditional_logic($form, $field_values));
     GFFormDisplay::add_init_script($form["id"], "pricing", GFFormDisplay::ON_PAGE_RENDER, GFFormDisplay::get_pricing_init_script($form));
     $chosen_script = GFFormDisplay::get_chosen_init_script($form);
     GFFormDisplay::add_init_script($form["id"], "chosen", GFFormDisplay::ON_PAGE_RENDER, $chosen_script);
     GFFormDisplay::add_init_script($form["id"], "chosen", GFFormDisplay::ON_CONDITIONAL_LOGIC, $chosen_script);
     GFFormDisplay::add_init_script($form['id'], 'input_mask', GFFormDisplay::ON_PAGE_RENDER, GFFormDisplay::get_input_mask_init_script($form));
     GFFormDisplay::add_init_script($form['id'], 'calculation', GFFormDisplay::ON_PAGE_RENDER, GFFormDisplay::get_calculations_init_script($form));
     GFFormDisplay::add_init_script($form['id'], 'currency_format', GFFormDisplay::ON_PAGE_RENDER, GFFormDisplay::get_currency_format_init_script($form));
     return true;
 }
Ejemplo n.º 8
0
    public static function lead_detail_page()
    {
        global $wpdb;
        global $current_user;
        if (!GFCommon::ensure_wp_version()) {
            return;
        }
        echo GFCommon::get_remote_message();
        $form = RGFormsModel::get_form_meta($_GET["id"]);
        $lead = RGFormsModel::get_lead($_GET["lid"]);
        if (!$lead) {
            _e("OOps! We couldn't find your lead. Please try again", "gravityforms");
            return;
        }
        RGFormsModel::update_lead_property($lead["id"], "is_read", 1);
        $search_qs = empty($_GET["s"]) ? "" : "&s=" . $_GET["s"];
        $sort_qs = empty($_GET["sort"]) ? "" : "&sort=" . $_GET["sort"];
        $dir_qs = empty($_GET["dir"]) ? "" : "&dir=" . $_GET["dir"];
        $page_qs = empty($_GET["paged"]) ? "" : "&paged=" . absint($_GET["paged"]);
        switch (RGForms::post("action")) {
            case "update":
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                RGFormsModel::save_lead($form, $lead);
                $lead = RGFormsModel::get_lead($_GET["lid"]);
                break;
            case "add_note":
                check_admin_referer('gforms_update_note', 'gforms_update_note');
                $user_data = get_userdata($current_user->ID);
                RGFormsModel::add_note($lead["id"], $current_user->ID, $user_data->display_name, stripslashes($_POST["new_note"]));
                //emailing notes if configured
                if (rgpost("gentry_email_notes_to")) {
                    $email_to = $_POST["gentry_email_notes_to"];
                    $email_from = $current_user->user_email;
                    $email_subject = stripslashes($_POST["gentry_email_subject"]);
                    $headers = "From: \"{$email_from}\" <{$email_from}> \r\n";
                    $result = wp_mail($email_to, $email_subject, stripslashes($_POST["new_note"]), $headers);
                }
                break;
            case "add_quick_note":
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                $user_data = get_userdata($current_user->ID);
                RGFormsModel::add_note($lead["id"], $current_user->ID, $user_data->display_name, stripslashes($_POST["quick_note"]));
                break;
            case "bulk":
                check_admin_referer('gforms_update_note', 'gforms_update_note');
                if ($_POST["bulk_action"] == "delete") {
                    RGFormsModel::delete_notes($_POST["note"]);
                }
                break;
            case "delete":
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                RGFormsModel::delete_lead($lead["id"]);
                ?>
                <div id="message" class="updated fade" style="background-color: rgb(255, 251, 204); margin-top:50px; padding:50px;">
                    <?php 
                _e("Entry has been deleted.", "gravityforms");
                ?>
 <a href="<?php 
                echo esc_url("admin.php?page=gf_entries&view=entries&id=" . absint($form["id"]) . $search_qs . $sort_qs . $dir_qs . $page_qs);
                ?>
"><?php 
                _e("Back to entries list", "gravityforms");
                ?>
</a>
                </div>
                <?php 
                exit;
                break;
        }
        $mode = empty($_POST["screen_mode"]) ? "view" : $_POST["screen_mode"];
        ?>
        <link rel="stylesheet" href="<?php 
        echo GFCommon::get_base_url();
        ?>
/css/admin.css" />
        <script type="text/javascript">

            function DeleteFile(leadId, fieldId){
                if(confirm(<?php 
        _e("'Would you like to delete this file? \\'Cancel\\' to stop. \\'OK\\' to delete'", "gravityforms");
        ?>
)){

                    var mysack = new sack("<?php 
        echo admin_url("admin-ajax.php");
        ?>
");
                    mysack.execute = 1;
                    mysack.method = 'POST';
                    mysack.setVar( "action", "rg_delete_file" );
                    mysack.setVar( "rg_delete_file", "<?php 
        echo wp_create_nonce("rg_delete_file");
        ?>
" );
                    mysack.setVar( "lead_id", leadId );
                    mysack.setVar( "field_id", fieldId );
                    mysack.encVar( "cookie", document.cookie, false );
                    mysack.onError = function() { alert('<?php 
        echo esc_js(__("Ajax error while deleting field.", "gravityforms"));
        ?>
' )};
                    mysack.runAJAX();

                    return true;
                }
            }

            function EndDeleteFile(fieldId){
                jQuery('#preview_' + fieldId).hide();
                jQuery('#upload_' + fieldId).show('slow');
            }

            function ToggleShowEmptyFields(){
                if(jQuery("#gentry_display_empty_fields").is(":checked")){
                    createCookie("gf_display_empty_fields", true, 10000);
                    document.location = document.location.href;
                }
                else{
                    eraseCookie("gf_display_empty_fields");
                    document.location = document.location.href;
                }
            }

            function createCookie(name,value,days) {
                if (days) {
                    var date = new Date();
                    date.setTime(date.getTime()+(days*24*60*60*1000));
                    var expires = "; expires="+date.toGMTString();
                }
                else var expires = "";
                document.cookie = name+"="+value+expires+"; path=/";
            }

            function eraseCookie(name) {
                createCookie(name,"",-1);
            }

        </script>

        <form method="post" id="entry_form" enctype='multipart/form-data'>
            <?php 
        wp_nonce_field('gforms_save_entry', 'gforms_save_entry');
        ?>
            <input type="hidden" name="action" id="action" value=""/>
            <input type="hidden" name="screen_mode" id="screen_mode" value="<?php 
        echo esc_attr(rgpost("screen_mode"));
        ?>
" />

            <div class="wrap">
            <img alt="<?php 
        _e("Gravity Forms", "gravityforms");
        ?>
" src="<?php 
        echo GFCommon::get_base_url();
        ?>
/images/gravity-title-icon-32.png" style="float:left; margin:15px 7px 0 0;"/>
            <h2><?php 
        _e("Entry #", "gravityforms");
        echo absint($lead["id"]);
        ?>
</h2>
            <a href="<?php 
        echo esc_url("admin.php?page=gf_entries&view=entries&id=" . absint($form["id"]) . $search_qs . $sort_qs . $dir_qs . $page_qs);
        ?>
"><?php 
        _e("&laquo; back to entries list", "gravityforms");
        ?>
</a>
            <div id="poststuff" class="metabox-holder has-right-sidebar">
                <div id="side-info-column" class="inner-sidebar">
                    <div id="submitdiv" class="stuffbox">
                        <h3>
                            <span class="hndle"><?php 
        _e("Info", "gravityforms");
        ?>
</span>
                        </h3>
                        <div class="inside">
                            <div id="submitcomment" class="submitbox">
                                <div id="minor-publishing" style="padding:10px;">
                                    <br/>
                                    <?php 
        _e("Entry Id", "gravityforms");
        ?>
: <?php 
        echo absint($lead["id"]);
        ?>
<br/><br/>
                                    <?php 
        _e("Submitted on", "gravityforms");
        ?>
: <?php 
        echo esc_html(GFCommon::format_date($lead["date_created"], false, "Y/m/d"));
        ?>
                                    <br/><br/>
                                    <?php 
        _e("User IP", "gravityforms");
        ?>
: <?php 
        echo $lead["ip"];
        ?>
                                    <br/><br/>
                                    <?php 
        if (!empty($lead["created_by"]) && ($usermeta = get_userdata($lead["created_by"]))) {
            ?>
                                        <?php 
            _e("User", "gravityforms");
            ?>
: <a href="user-edit.php?user_id=<?php 
            echo absint($lead["created_by"]);
            ?>
" alt="<?php 
            _e("View user profile", "gravityforms");
            ?>
" title="<?php 
            _e("View user profile", "gravityforms");
            ?>
"><?php 
            echo esc_html($usermeta->user_login);
            ?>
</a>
                                        <br/><br/>
                                        <?php 
        }
        ?>

                                    <?php 
        _e("Embed Url", "gravityforms");
        ?>
: <a href="<?php 
        echo esc_url($lead["source_url"]);
        ?>
" target="_blank" alt="<?php 
        echo esc_url($lead["source_url"]);
        ?>
" title="<?php 
        echo esc_url($lead["source_url"]);
        ?>
">.../<?php 
        echo esc_html(GFCommon::truncate_url($lead["source_url"]));
        ?>
</a>
                                    <br/><br/>
                                    <?php 
        if (!empty($lead["post_id"])) {
            $post = get_post($lead["post_id"]);
            ?>
                                        <?php 
            _e("Edit Post", "gravityforms");
            ?>
: <a href="post.php?action=edit&post=<?php 
            echo absint($post->ID);
            ?>
" alt="<?php 
            _e("Click to edit post", "gravityforms");
            ?>
" title="<?php 
            _e("Click to edit post", "gravityforms");
            ?>
"><?php 
            echo esc_html($post->post_title);
            ?>
</a>
                                        <br/><br/>
                                        <?php 
        }
        if (!empty($lead["payment_status"])) {
            echo $lead["transaction_type"] != 2 ? __("Payment Status", "gravityforms") : __("Subscription Status", "gravityforms");
            ?>
: <?php 
            echo $lead["payment_status"];
            ?>
                                        <br/><br/>
                                        <?php 
            if (!empty($lead["payment_date"])) {
                echo $lead["transaction_type"] == 1 ? __("Payment Date", "gravityforms") : __("Start Date", "gravityforms");
                ?>
: <?php 
                echo GFCommon::format_date($lead["payment_date"], false, "Y/m/d", $lead["transaction_type"] == 1);
                ?>
                                            <br/><br/>
                                            <?php 
            }
            if (!empty($lead["transaction_id"])) {
                echo $lead["transaction_type"] == 1 ? __("Transaction Id", "gravityforms") : __("Subscriber Id", "gravityforms");
                ?>
: <?php 
                echo $lead["transaction_id"];
                ?>
                                            <br/><br/>
                                            <?php 
            }
            if (strlen($lead["payment_amount"]) > 0) {
                echo $lead["transaction_type"] == 1 ? __("Payment Amount", "gravityforms") : __("Subscription Amount", "gravityforms");
                ?>
: <?php 
                echo GFCommon::to_money($lead["payment_amount"], $lead["currency"]);
                ?>
                                            <br/><br/>
                                            <?php 
            }
        }
        do_action("gform_entry_info", $form["id"], $lead);
        ?>
                                </div>
                                <div id="major-publishing-actions">
                                    <div id="delete-action">
                                        <?php 
        if (GFCommon::current_user_can_any("gravityforms_delete_entries")) {
            $delete_link = '<a class="submitdelete deletion" onclick="if ( confirm(\'' . __("You are about to delete this entry. \\'Cancel\\' to stop, \\'OK\\' to delete.", "gravityforms") . '\') ) { jQuery(\'#action\').val(\'delete\'); jQuery(\'#entry_form\')[0].submit();} return false;" href="#">' . __("Delete", "gravityforms") . '</a>';
            echo apply_filters("gform_entrydetail_delete_link", $delete_link);
        }
        ?>
                                    </div>
                                    <div id="publishing-action">
                                        <?php 
        if (GFCommon::current_user_can_any("gravityforms_edit_entries")) {
            $button_text = $mode == "view" ? __("Edit Entry", "gravityforms") : __("Update Entry", "gravityforms");
            $button_click = $mode == "view" ? "jQuery('#screen_mode').val('edit');" : "jQuery('#action').val('update'); jQuery('#screen_mode').val('view');";
            $update_button = '<input class="button-primary" type="submit" tabindex="4" value="' . $button_text . '" name="save" onclick="' . $button_click . '"/>';
            echo apply_filters("gform_entrydetail_update_button", $update_button);
            if ($mode == "edit") {
                echo '&nbsp;&nbsp;<input class="button" style="color:#bbb;" type="submit" tabindex="5" value="' . __("Cancel", "gravityforms") . '" name="cancel" onclick="jQuery(\'#screen_mode\').val(\'view\');"/>';
            }
        }
        ?>
                                    </div>
                                    <br/> <br/><br/>
                                </div>
                            </div>
                        </div>
                    </div>

                    <?php 
        if (GFCommon::current_user_can_any("gravityforms_edit_entry_notes")) {
            ?>
                        <!-- start side notes -->
                        <div class="postbox" id="tagsdiv-post_tag">
                            <h3 style="cursor:default;"><span>Quick Note</span></h3>
                            <div class="inside">
                                <div id="post_tag" class="tagsdiv">
                                    <div>
                                        <span>
                                            <textarea name="quick_note" style="width:99%; height:180px; margin-bottom:4px;"></textarea>
                                            <input type="submit" name="add_quick_note" value="<?php 
            _e("Add Note", "gravityforms");
            ?>
" class="button" style="width:60px;" onclick="jQuery('#action').val('add_quick_note');"/>
                                        </span>
                                    </div>
                                </div>
                            </div>
                        </div>
                       <!-- end side notes -->
                   <?php 
        }
        ?>

                   <!-- begin print button -->
                   <div class="detail-view-print">
                       <a href="javascript:;" onclick="var notes_qs = jQuery('#gform_print_notes').is(':checked') ? '&notes=1' : ''; var url='<?php 
        echo GFCommon::get_base_url();
        ?>
/print-entry.php?fid=<?php 
        echo $form['id'];
        ?>
&lid=<?php 
        echo $lead['id'];
        ?>
' + notes_qs; window.open (url,'printwindow');" class="button">Print</a>
                       <?php 
        if (GFCommon::current_user_can_any("gravityforms_view_entry_notes")) {
            ?>
                           <input type="checkbox" name="print_notes" value="print_notes" checked="checked" id="gform_print_notes"/>
                           <label for="print_notes">include notes</label>
                       <?php 
        }
        ?>
                   </div>
                   <!-- end print button -->

                </div>

                <div id="post-body" class="has-sidebar">
                    <div id="post-body-content" class="has-sidebar-content">
                        <?php 
        if ($mode == "view") {
            self::lead_detail_grid($form, $lead, true);
        } else {
            self::lead_detail_edit($form, $lead);
        }
        ?>

                        <?php 
        if (GFCommon::current_user_can_any("gravityforms_view_entry_notes")) {
            ?>
                            <div id="namediv" class="stuffbox">
                                <h3>
                                    <label for="name"><?php 
            _e("Notes", "gravityforms");
            ?>
</label>
                                </h3>

                                <form method="post">
                                    <?php 
            wp_nonce_field('gforms_update_note', 'gforms_update_note');
            ?>
                                    <div class="inside">
                                        <?php 
            $notes = RGFormsModel::get_lead_notes($lead["id"]);
            //getting email values
            $email_fields = GFCommon::get_email_fields($form);
            $emails = array();
            foreach ($email_fields as $email_field) {
                if (!empty($lead[$email_field["id"]])) {
                    $emails[] = $lead[$email_field["id"]];
                }
            }
            //displaying notes grid
            $subject = !empty($form["autoResponder"]["subject"]) ? "RE: " . GFCommon::replace_variables($form["autoResponder"]["subject"], $form, $lead) : "";
            self::notes_grid($notes, true, $emails, $subject);
            ?>
                                    </div>
                                </form>
                            </div>
                        <?php 
        }
        ?>
                    </div>
                </div>
            </div>
        </div>
        </form>
        <?php 
        if (rgpost("action") == "update") {
            ?>
            <div class="updated fade" style="padding:6px;">
                <?php 
            _e("Entry Updated.", "gravityforms");
            ?>
            </div>
            <?php 
        }
    }
Ejemplo n.º 9
0
    public static function lead_detail_page()
    {
        global $wpdb;
        global $current_user;
        if (!GFCommon::ensure_wp_version()) {
            return;
        }
        echo GFCommon::get_remote_message();
        $form = RGFormsModel::get_form_meta($_GET["id"]);
        $form_id = $form["id"];
        $form = apply_filters("gform_admin_pre_render_" . $form["id"], apply_filters("gform_admin_pre_render", $form));
        $lead_id = rgget('lid');
        $filter = rgget("filter");
        $status = in_array($filter, array("trash", "spam")) ? $filter : "active";
        $position = rgget('pos') ? rgget('pos') : 0;
        $sort_direction = rgget('dir') ? rgget('dir') : 'DESC';
        $sort_field = empty($_GET["sort"]) ? 0 : $_GET["sort"];
        $sort_field_meta = RGFormsModel::get_field($form, $sort_field);
        $is_numeric = $sort_field_meta["type"] == "number";
        $star = $filter == "star" ? 1 : null;
        $read = $filter == "unread" ? 0 : null;
        $search_criteria["status"] = $status;
        if ($star) {
            $search_criteria["field_filters"][] = array("key" => "is_starred", "value" => (bool) $star);
        }
        if (!is_null($read)) {
            $search_criteria["field_filters"][] = array("key" => "is_read", "value" => (bool) $read);
        }
        $search_field_id = rgget("field_id");
        if (isset($_GET["field_id"]) && $_GET["field_id"] !== '') {
            $key = $search_field_id;
            $val = rgget("s");
            $strpos_row_key = strpos($search_field_id, "|");
            if ($strpos_row_key !== false) {
                //multi-row likert
                $key_array = explode("|", $search_field_id);
                $key = $key_array[0];
                $val = $key_array[1] . ":" . $val;
            }
            $type = rgget("type");
            if (empty($type)) {
                $type = rgget("field_id") == "0" ? "global" : "field";
            }
            $search_criteria["field_filters"][] = array("key" => $key, "type" => $type, "operator" => rgempty("operator", $_GET) ? "is" : rgget("operator"), "value" => $val);
        }
        $paging = array('offset' => $position, 'page_size' => 1);
        if (!empty($sort_field)) {
            $sorting = array('key' => $_GET["sort"], 'direction' => $sort_direction, 'is_numeric' => $is_numeric);
        } else {
            $sorting = array();
        }
        $total_count = 0;
        $leads = GFAPI::get_entries($form['id'], $search_criteria, $sorting, $paging, $total_count);
        $prev_pos = !rgblank($position) && $position > 0 ? $position - 1 : false;
        $next_pos = !rgblank($position) && $position < $total_count - 1 ? $position + 1 : false;
        // unread filter requires special handling for pagination since entries are filter out of the query as they are read
        if ($filter == 'unread') {
            $next_pos = $position;
            if ($next_pos + 1 == $total_count) {
                $next_pos = false;
            }
        }
        if (!$lead_id) {
            $lead = !empty($leads) ? $leads[0] : false;
        } else {
            $lead = GFAPI::get_entry($lead_id);
        }
        if (!$lead) {
            _e("Oops! We couldn't find your entry. Please try again", "gravityforms");
            return;
        }
        RGFormsModel::update_lead_property($lead["id"], "is_read", 1);
        switch (RGForms::post("action")) {
            case "update":
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                //Loading files that have been uploaded to temp folder
                $files = GFCommon::json_decode(stripslashes(RGForms::post("gform_uploaded_files")));
                if (!is_array($files)) {
                    $files = array();
                }
                GFFormsModel::$uploaded_files[$form_id] = $files;
                GFFormsModel::save_lead($form, $lead);
                do_action("gform_after_update_entry", $form, $lead["id"]);
                do_action("gform_after_update_entry_{$form["id"]}", $form, $lead["id"]);
                $lead = RGFormsModel::get_lead($lead["id"]);
                $lead = GFFormsModel::set_entry_meta($lead, $form);
                break;
            case "add_note":
                check_admin_referer('gforms_update_note', 'gforms_update_note');
                $user_data = get_userdata($current_user->ID);
                RGFormsModel::add_note($lead["id"], $current_user->ID, $user_data->display_name, stripslashes($_POST["new_note"]));
                //emailing notes if configured
                if (rgpost("gentry_email_notes_to")) {
                    $email_to = $_POST["gentry_email_notes_to"];
                    $email_from = $current_user->user_email;
                    $email_subject = stripslashes($_POST["gentry_email_subject"]);
                    $headers = "From: \"{$email_from}\" <{$email_from}> \r\n";
                    $result = wp_mail($email_to, $email_subject, stripslashes($_POST["new_note"]), $headers);
                }
                break;
            case "add_quick_note":
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                $user_data = get_userdata($current_user->ID);
                RGFormsModel::add_note($lead["id"], $current_user->ID, $user_data->display_name, stripslashes($_POST["quick_note"]));
                break;
            case "bulk":
                check_admin_referer('gforms_update_note', 'gforms_update_note');
                if ($_POST["bulk_action"] == "delete") {
                    RGFormsModel::delete_notes($_POST["note"]);
                }
                break;
            case "trash":
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                RGFormsModel::update_lead_property($lead["id"], "status", "trash");
                $lead = RGFormsModel::get_lead($lead["id"]);
                break;
            case "restore":
            case "unspam":
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                RGFormsModel::update_lead_property($lead["id"], "status", "active");
                $lead = RGFormsModel::get_lead($lead["id"]);
                break;
            case "spam":
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                RGFormsModel::update_lead_property($lead["id"], "status", "spam");
                $lead = RGFormsModel::get_lead($lead["id"]);
                break;
            case "delete":
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                if (!GFCommon::current_user_can_any("gravityforms_delete_entries")) {
                    die(__("You don't have adequate permissions to delete entries.", "gravityforms"));
                }
                RGFormsModel::delete_lead($lead["id"]);
                ?>
                <script type="text/javascript">
                    document.location.href='<?php 
                echo "admin.php?page=gf_entries&view=entries&id=" . absint($form["id"]);
                ?>
';
                </script>
                <?php 
                break;
        }
        $mode = empty($_POST["screen_mode"]) ? "view" : $_POST["screen_mode"];
        ?>
        <link rel="stylesheet" href="<?php 
        echo GFCommon::get_base_url();
        ?>
/css/admin.css" />
         <script type="text/javascript">

            jQuery(document).ready(function(){
                toggleNotificationOverride(true);
            });

            function DeleteFile(leadId, fieldId, deleteButton){
                if(confirm(<?php 
        _e("'Would you like to delete this file? \\'Cancel\\' to stop. \\'OK\\' to delete'", "gravityforms");
        ?>
)){
                    var fileIndex = jQuery(deleteButton).parent().index();
                    var mysack = new sack("<?php 
        echo admin_url("admin-ajax.php");
        ?>
");
                    mysack.execute = 1;
                    mysack.method = 'POST';
                    mysack.setVar( "action", "rg_delete_file" );
                    mysack.setVar( "rg_delete_file", "<?php 
        echo wp_create_nonce("rg_delete_file");
        ?>
" );
                    mysack.setVar( "lead_id", leadId );
                    mysack.setVar( "field_id", fieldId );
                    mysack.setVar( "file_index", fileIndex );
                    mysack.onError = function() { alert('<?php 
        echo esc_js(__("Ajax error while deleting field.", "gravityforms"));
        ?>
' )};
                    mysack.runAJAX();

                    return true;
                }
            }

            function EndDeleteFile(fieldId, fileIndex){
                var previewFileSelector = "#preview_existing_files_" + fieldId + " .ginput_preview";
                var $previewFiles = jQuery(previewFileSelector);
                var rr = $previewFiles.eq(fileIndex);
                $previewFiles.eq(fileIndex).remove();
                var $visiblePreviewFields = jQuery(previewFileSelector);
                if($visiblePreviewFields.length == 0){
                    jQuery('#preview_' + fieldId).hide();
                    jQuery('#upload_' + fieldId).show('slow');
                }
            }

            function ToggleShowEmptyFields(){
                if(jQuery("#gentry_display_empty_fields").is(":checked")){
                    createCookie("gf_display_empty_fields", true, 10000);
                    document.location = document.location.href;
                }
                else{
                    eraseCookie("gf_display_empty_fields");
                    document.location = document.location.href;
                }
            }

            function createCookie(name,value,days) {
                if (days) {
                    var date = new Date();
                    date.setTime(date.getTime()+(days*24*60*60*1000));
                    var expires = "; expires="+date.toGMTString();
                }
                else var expires = "";
                document.cookie = name+"="+value+expires+"; path=/";
            }

            function eraseCookie(name) {
                createCookie(name,"",-1);
            }

            function ResendNotifications() {

                var selectedNotifications = new Array();
                jQuery(".gform_notifications:checked").each(function(){
                    selectedNotifications.push(jQuery(this).val());
                });

                var sendTo = jQuery('#notification_override_email').val();

                if(selectedNotifications.length <=0) {
                    displayMessage("<?php 
        _e("You must select at least one type of notification to resend.", "gravityforms");
        ?>
", "error", "#notifications_container");
                    return;
                }

                jQuery('#please_wait_container').fadeIn();

                jQuery.post(ajaxurl, {
                        action : "gf_resend_notifications",
                        gf_resend_notifications : '<?php 
        echo wp_create_nonce('gf_resend_notifications');
        ?>
',
                        notifications: jQuery.toJSON(selectedNotifications),
                        sendTo : sendTo,
                        leadIds : '<?php 
        echo $lead['id'];
        ?>
',
                        formId : '<?php 
        echo $form['id'];
        ?>
'
                    },
                    function(response) {
                        if(response) {
                            displayMessage(response, "error", "#notifications_container");
                        } else {
                            displayMessage("<?php 
        _e("Notifications were resent successfully.", "gravityforms");
        ?>
", "updated", "#notifications_container");

                            // reset UI
                            jQuery(".gform_notifications").attr('checked', false);
                            jQuery('#notification_override_email').val('');
                        }

                        jQuery('#please_wait_container').hide();
                        setTimeout(function(){jQuery('#notifications_container').find('.message').slideUp();}, 5000);
                    }
                );

            }

            function displayMessage(message, messageClass, container){

                jQuery(container).find('.message').hide().html(message).attr('class', 'message ' + messageClass).slideDown();

            }

            function toggleNotificationOverride(isInit) {

                if(isInit)
                    jQuery('#notification_override_email').val('');

                if(jQuery(".gform_notifications:checked").length > 0 ) {
                    jQuery('#notifications_override_settings').slideDown();
                }
                else {
                    jQuery('#notifications_override_settings').slideUp(function(){
                        jQuery('#notification_override_email').val('');
                    });
                }
            }

        </script>

        <form method="post" id="entry_form" enctype='multipart/form-data'>
            <?php 
        wp_nonce_field('gforms_save_entry', 'gforms_save_entry');
        ?>
            <input type="hidden" name="action" id="action" value=""/>
            <input type="hidden" name="screen_mode" id="screen_mode" value="<?php 
        echo esc_attr(rgpost("screen_mode"));
        ?>
" />

            <div class="wrap gf_entry_wrap">
            <h2 class="gf_admin_page_title"><span><?php 
        echo __("Entry #", "gravityforms") . absint($lead["id"]);
        ?>
</span><span class="gf_admin_page_subtitle"><span class="gf_admin_page_formid">ID: <?php 
        echo $form['id'];
        ?>
</span><?php 
        echo $form['title'];
        $gf_entry_locking = new GFEntryLocking();
        $gf_entry_locking->lock_info($lead_id);
        ?>
</span></h2>

            <?php 
        if (isset($_GET["pos"])) {
            ?>
            <div class="gf_entry_detail_pagination">
                <ul>
                    <li class="gf_entry_count"><span>entry <strong><?php 
            echo $position + 1;
            ?>
</strong> of <strong><?php 
            echo $total_count;
            ?>
</strong></span></li>
                    <li class="gf_entry_prev gf_entry_pagination"><?php 
            echo GFEntryDetail::entry_detail_pagination_link($prev_pos, 'Previous Entry', 'gf_entry_prev_link', "fa fa-arrow-circle-o-left");
            ?>
</li>
                    <li class="gf_entry_next gf_entry_pagination"><?php 
            echo GFEntryDetail::entry_detail_pagination_link($next_pos, 'Next Entry', 'gf_entry_next_link', "fa fa-arrow-circle-o-right");
            ?>
</li>
                </ul>
            </div>
            <?php 
        }
        ?>

            <?php 
        RGForms::top_toolbar();
        ?>

            <div id="poststuff" class="metabox-holder has-right-sidebar">
                <div id="side-info-column" class="inner-sidebar">
                	<?php 
        do_action("gform_entry_detail_sidebar_before", $form, $lead);
        ?>

                    <!-- INFO BOX -->
                    <div id="submitdiv" class="stuffbox">
                        <h3>
                            <span class="hndle"><?php 
        _e("Entry", "gravityforms");
        ?>
</span>
                        </h3>
                        <div class="inside">
                            <div id="submitcomment" class="submitbox">
                                <div id="minor-publishing" style="padding:10px;">
                                    <br/>
                                    <?php 
        _e("Entry Id", "gravityforms");
        ?>
: <?php 
        echo absint($lead["id"]);
        ?>
<br/><br/>
                                    <?php 
        _e("Submitted on", "gravityforms");
        ?>
: <?php 
        echo esc_html(GFCommon::format_date($lead["date_created"], false, "Y/m/d"));
        ?>
                                    <br/><br/>
                                    <?php 
        _e("User IP", "gravityforms");
        ?>
: <?php 
        echo $lead["ip"];
        ?>
                                    <br/><br/>
                                    <?php 
        if (!empty($lead["created_by"]) && ($usermeta = get_userdata($lead["created_by"]))) {
            ?>
                                        <?php 
            _e("User", "gravityforms");
            ?>
: <a href="user-edit.php?user_id=<?php 
            echo absint($lead["created_by"]);
            ?>
" alt="<?php 
            _e("View user profile", "gravityforms");
            ?>
" title="<?php 
            _e("View user profile", "gravityforms");
            ?>
"><?php 
            echo esc_html($usermeta->user_login);
            ?>
</a>
                                        <br/><br/>
                                        <?php 
        }
        ?>

                                    <?php 
        _e("Embed Url", "gravityforms");
        ?>
: <a href="<?php 
        echo esc_url($lead["source_url"]);
        ?>
" target="_blank" alt="<?php 
        echo esc_url($lead["source_url"]);
        ?>
" title="<?php 
        echo esc_url($lead["source_url"]);
        ?>
">.../<?php 
        echo esc_html(GFCommon::truncate_url($lead["source_url"]));
        ?>
</a>
                                    <br/><br/>
                                    <?php 
        if (!empty($lead["post_id"])) {
            $post = get_post($lead["post_id"]);
            ?>
                                        <?php 
            _e("Edit Post", "gravityforms");
            ?>
: <a href="post.php?action=edit&post=<?php 
            echo absint($post->ID);
            ?>
" alt="<?php 
            _e("Click to edit post", "gravityforms");
            ?>
" title="<?php 
            _e("Click to edit post", "gravityforms");
            ?>
"><?php 
            echo esc_html($post->post_title);
            ?>
</a>
                                        <br/><br/>
                                        <?php 
        }
        if (apply_filters("gform_enable_entry_info_payment_details", true, $lead)) {
            if (!empty($lead["payment_status"])) {
                echo $lead["transaction_type"] == 2 ? __("Subscription Status", "gravityforms") : __("Payment Status", "gravityforms");
                ?>
: <span id="gform_payment_status"><?php 
                echo apply_filters("gform_payment_status", $lead["payment_status"], $form, $lead);
                ?>
</span>
                                            <br/><br/>
                                            <?php 
                if (!empty($lead["payment_date"])) {
                    echo $lead["transaction_type"] == 2 ? __("Start Date", "gravityforms") : __("Payment Date", "gravityforms");
                    ?>
: <?php 
                    echo GFCommon::format_date($lead["payment_date"], false, "Y/m/d", $lead["transaction_type"] != 2);
                    ?>
                                                <br/><br/>
                                                <?php 
                }
                if (!empty($lead["transaction_id"])) {
                    echo $lead["transaction_type"] == 2 ? __("Subscriber Id", "gravityforms") : __("Transaction Id", "gravityforms");
                    ?>
: <?php 
                    echo $lead["transaction_id"];
                    ?>
                                                <br/><br/>
                                                <?php 
                }
                if (!rgblank($lead["payment_amount"])) {
                    echo $lead["transaction_type"] == 2 ? __("Subscription Amount", "gravityforms") : __("Payment Amount", "gravityforms");
                    ?>
: <?php 
                    echo GFCommon::to_money($lead["payment_amount"], $lead["currency"]);
                    ?>
                                                <br/><br/>
                                                <?php 
                }
            }
        }
        do_action("gform_entry_info", $form["id"], $lead);
        ?>
                                </div>
                                <div id="major-publishing-actions">
                                    <div id="delete-action">
                                        <?php 
        switch ($lead["status"]) {
            case "spam":
                if (GFCommon::akismet_enabled($form['id'])) {
                    ?>
                                                    <a onclick="jQuery('#action').val('unspam'); jQuery('#entry_form').submit()" href="#"><?php 
                    _e("Not Spam", "gravityforms");
                    ?>
</a>
                                                    <?php 
                    echo GFCommon::current_user_can_any("gravityforms_delete_entries") ? "|" : "";
                }
                if (GFCommon::current_user_can_any("gravityforms_delete_entries")) {
                    ?>
                                                    <a class="submitdelete deletion" onclick="if ( confirm('<?php 
                    _e("You are about to delete this entry. \\'Cancel\\' to stop, \\'OK\\' to delete.", "gravityforms");
                    ?>
') ) {jQuery('#action').val('delete'); jQuery('#entry_form').submit(); return true;} return false;" href="#"><?php 
                    _e("Delete Permanently", "gravityforms");
                    ?>
</a>
                                                    <?php 
                }
                break;
            case "trash":
                ?>
                                                <a onclick="jQuery('#action').val('restore'); jQuery('#entry_form').submit()" href="#"><?php 
                _e("Restore", "gravityforms");
                ?>
</a>
                                                <?php 
                if (GFCommon::current_user_can_any("gravityforms_delete_entries")) {
                    ?>
                                                    |
                                                    <a class="submitdelete deletion" onclick="if ( confirm('<?php 
                    _e("You are about to delete this entry. \\'Cancel\\' to stop, \\'OK\\' to delete.", "gravityforms");
                    ?>
') ) {jQuery('#action').val('delete'); jQuery('#entry_form').submit(); return true;} return false;" href="#"><?php 
                    _e("Delete Permanently", "gravityforms");
                    ?>
</a>
                                                    <?php 
                }
                break;
            default:
                if (GFCommon::current_user_can_any("gravityforms_delete_entries")) {
                    ?>
                                                    <a class="submitdelete deletion" onclick="jQuery('#action').val('trash'); jQuery('#entry_form').submit()" href="#"><?php 
                    _e("Move to Trash", "gravityforms");
                    ?>
</a>
                                                    <?php 
                    echo GFCommon::akismet_enabled($form['id']) ? "|" : "";
                }
                if (GFCommon::akismet_enabled($form['id'])) {
                    ?>
                                                    <a class="submitdelete deletion" onclick="jQuery('#action').val('spam'); jQuery('#entry_form').submit()" href="#"><?php 
                    _e("Mark as Spam", "gravityforms");
                    ?>
</a>
                                                <?php 
                }
        }
        ?>
                                    </div>
                                    <div id="publishing-action">
                                        <?php 
        if (GFCommon::current_user_can_any("gravityforms_edit_entries") && $lead["status"] != "trash") {
            $button_text = $mode == "view" ? __("Edit", "gravityforms") : __("Update", "gravityforms");
            $button_click = $mode == "view" ? "jQuery('#screen_mode').val('edit');" : "jQuery('#action').val('update'); jQuery('#screen_mode').val('view');";
            $update_button = '<input class="button button-large button-primary" type="submit" tabindex="4" value="' . $button_text . '" name="save" onclick="' . $button_click . '"/>';
            echo apply_filters("gform_entrydetail_update_button", $update_button);
            if ($mode == "edit") {
                echo '&nbsp;&nbsp;<input class="button button-large" type="submit" tabindex="5" value="' . __("Cancel", "gravityforms") . '" name="cancel" onclick="jQuery(\'#screen_mode\').val(\'view\');"/>';
            }
        }
        ?>
                                    </div>
                                    <div class="clear"></div>
                                </div>
                            </div>
                        </div>
                    </div>

                    <?php 
        if (!empty($lead["payment_status"]) && !apply_filters("gform_enable_entry_info_payment_details", true, $lead)) {
            self::payment_details_box($lead, $form);
        }
        ?>

                    <?php 
        do_action("gform_entry_detail_sidebar_middle", $form, $lead);
        ?>

                    <?php 
        if (GFCommon::current_user_can_any("gravityforms_edit_entry_notes")) {
            ?>
                        <!-- start notifications -->
                        <div class="postbox" id="notifications_container">
                            <h3 style="cursor:default;"><span><?php 
            _e("Notifications", "gravityforms");
            ?>
</span></h3>
                            <div class="inside">
                                <div class="message" style="display:none; padding:10px; margin:10px 0px;"></div>
                                <div>
                                    <?php 
            if (!is_array($form["notifications"]) || count($form["notifications"]) <= 0) {
                ?>
                                        <p class="description"><?php 
                _e("You cannot resend notifications for this entry because this form does not currently have any notifications configured.", "gravityforms");
                ?>
</p>

                                        <a href="<?php 
                echo admin_url("admin.php?page=gf_edit_forms&view=settings&subview=notification&id={$form["id"]}");
                ?>
" class="button"><?php 
                _e("Configure Notifications", "gravityforms");
                ?>
</a>
                                    <?php 
            } else {
                foreach ($form["notifications"] as $notification) {
                    ?>
                                            <input type="checkbox" class="gform_notifications" value="<?php 
                    echo $notification["id"];
                    ?>
" id="notification_<?php 
                    echo $notification["id"];
                    ?>
" onclick="toggleNotificationOverride();" />
                                            <label for="notification_<?php 
                    echo $notification["id"];
                    ?>
"><?php 
                    echo $notification["name"];
                    ?>
</label> <br /><br />
                                        <?php 
                }
                ?>

                                        <div id="notifications_override_settings" style="display:none;">

                                            <p class="description" style="padding-top:0; margin-top:0; width:99%;">You may override the default notification settings
                                                by entering a comma delimited list of emails to which the selected notifications should be sent.</p>
                                            <label for="notification_override_email"><?php 
                _e("Send To", "gravityforms");
                ?>
 <?php 
                gform_tooltip("notification_override_email");
                ?>
</label><br />
                                            <input type="text" name="notification_override_email" id="notification_override_email" style="width:99%;" />
                                            <br /><br />

                                        </div>

                                        <input type="button" name="notification_resend" value="<?php 
                _e("Resend Notifications", "gravityforms");
                ?>
" class="button" style="" onclick="ResendNotifications();"/>
                                        <span id="please_wait_container" style="display:none; margin-left: 5px;">
                                            <img src="<?php 
                echo GFCommon::get_base_url();
                ?>
/images/loading.gif"> <?php 
                _e("Resending...", "gravityforms");
                ?>
                                        </span>
                                    <?php 
            }
            ?>

                                </div>
                            </div>
                        </div>
                       <!-- / end notifications -->
                   <?php 
        }
        ?>

                   <!-- begin print button -->
                   <div class="detail-view-print">
                       <a href="javascript:;" onclick="var notes_qs = jQuery('#gform_print_notes').is(':checked') ? '&notes=1' : ''; var url='<?php 
        echo trailingslashit(site_url());
        ?>
?gf_page=print-entry&fid=<?php 
        echo $form['id'];
        ?>
&lid=<?php 
        echo $lead['id'];
        ?>
' + notes_qs; window.open (url,'printwindow');" class="button"><?php 
        _e("Print", "gravityforms");
        ?>
</a>
                       <?php 
        if (GFCommon::current_user_can_any("gravityforms_view_entry_notes")) {
            ?>
                           <input type="checkbox" name="print_notes" value="print_notes" checked="checked" id="gform_print_notes"/>
                           <label for="print_notes"><?php 
            _e("include notes", "gravityforms");
            ?>
</label>
                       <?php 
        }
        ?>
                   </div>
                   <!-- end print button -->
				   <?php 
        do_action("gform_entry_detail_sidebar_after", $form, $lead);
        ?>
                </div>

                <div id="post-body" class="has-sidebar">
                    <div id="post-body-content" class="has-sidebar-content">
                        <?php 
        do_action("gform_entry_detail_content_before", $form, $lead);
        if ($mode == "view") {
            self::lead_detail_grid($form, $lead, true);
        } else {
            self::lead_detail_edit($form, $lead);
        }
        do_action("gform_entry_detail", $form, $lead);
        if (GFCommon::current_user_can_any("gravityforms_view_entry_notes")) {
            ?>
                            <div class="postbox">
                                <h3>
                                    <label for="name"><?php 
            _e("Notes", "gravityforms");
            ?>
</label>
                                </h3>

                                <form method="post">
                                    <?php 
            wp_nonce_field('gforms_update_note', 'gforms_update_note');
            ?>
                                    <div class="inside">
                                        <?php 
            $notes = RGFormsModel::get_lead_notes($lead["id"]);
            //getting email values
            $email_fields = GFCommon::get_email_fields($form);
            $emails = array();
            foreach ($email_fields as $email_field) {
                if (!empty($lead[$email_field["id"]])) {
                    $emails[] = $lead[$email_field["id"]];
                }
            }
            //displaying notes grid
            $subject = !empty($form["autoResponder"]["subject"]) ? "RE: " . GFCommon::replace_variables($form["autoResponder"]["subject"], $form, $lead) : "";
            self::notes_grid($notes, true, $emails, $subject);
            ?>
                                    </div>
                                </form>
                            </div>
                        <?php 
        }
        do_action("gform_entry_detail_content_after", $form, $lead);
        ?>
                    </div>
                </div>
            </div>
        </div>
        </form>
        <?php 
        if (rgpost("action") == "update") {
            ?>
            <div class="updated fade" style="padding:6px;">
                <?php 
            _e("Entry Updated.", "gravityforms");
            ?>
            </div>
            <?php 
        }
    }
Ejemplo n.º 10
0
 public static function get_form_unique_id($form_id)
 {
     if (RGForms::post("gform_submit") == $form_id) {
         return RGForms::post("gform_unique_id");
     } else {
         return uniqid();
     }
 }
 /**
  * load the form data we care about from the form array
  * @param array $form
  */
 private function loadForm(&$form)
 {
     foreach ($form['fields'] as &$field) {
         $id = $field['id'];
         switch (GFFormsModel::get_input_type($field)) {
             case 'name':
                 // only pick up the first name field (assume later ones are additional info)
                 if (empty($this->firstName) && empty($this->lastName)) {
                     $this->namePrefix = trim(rgpost("input_{$id}_2"));
                     $this->firstName = trim(rgpost("input_{$id}_3"));
                     $this->lastName = trim(rgpost("input_{$id}_6"));
                 }
                 break;
             case 'email':
                 // only pick up the first email address field (assume later ones are additional info)
                 if (empty($this->email)) {
                     $this->email = trim(rgpost("input_{$id}"));
                 }
                 break;
             case 'phone':
                 // only pick up the first phone number field (assume later ones are additional info)
                 if (empty($this->phone)) {
                     $this->phone = trim(rgpost("input_{$id}"));
                 }
                 break;
             case 'address':
                 // only pick up the first address field (assume later ones are additional info, e.g. shipping)
                 if (empty($this->address) && empty($this->postcode)) {
                     $parts = array(trim(rgpost("input_{$id}_1")), trim(rgpost("input_{$id}_2")));
                     $this->address_street = implode(', ', array_filter($parts, 'strlen'));
                     $this->address_suburb = trim(rgpost("input_{$id}_3"));
                     $this->address_state = trim(rgpost("input_{$id}_4"));
                     $this->address_country = trim(rgpost("input_{$id}_6"));
                     $this->postcode = trim(rgpost("input_{$id}_5"));
                     // aggregate street, city, state, country into a single string (for regular one-off payments)
                     $parts = array($this->address_street, $this->address_suburb, $this->address_state, $this->address_country);
                     $this->address = implode(', ', array_filter($parts, 'strlen'));
                 }
                 break;
             case 'creditcard':
                 $this->isCcHiddenFlag = GFFormsModel::is_field_hidden($form, $field, RGForms::post('gform_field_values'));
                 $this->ccField =& $field;
                 $this->ccName = trim(rgpost("input_{$id}_5"));
                 $this->ccNumber = self::cleanCcNumber(trim(rgpost("input_{$id}_1")));
                 $ccExp = rgpost("input_{$id}_2");
                 if (is_array($ccExp)) {
                     list($this->ccExpMonth, $this->ccExpYear) = $ccExp;
                 }
                 $this->ccCVN = trim(rgpost("input_{$id}_3"));
                 break;
             case 'total':
                 $this->total = GFCommon::to_number(rgpost("input_{$id}"));
                 $this->hasPurchaseFieldsFlag = true;
                 break;
             case GFEWAY_FIELD_RECURRING:
                 // only pick it up if it isn't hidden
                 if (!GFFormsModel::is_field_hidden($form, $field, RGForms::post('gform_field_values'))) {
                     $this->recurring = GFEwayRecurringField::getPost($id);
                 }
                 break;
             default:
                 // check for shipping field
                 if ($field['type'] == 'shipping') {
                     $this->shipping += self::getShipping($form, $field);
                     $this->hasPurchaseFieldsFlag = true;
                 } elseif (in_array($field['type'], array('option', 'donation', 'product', 'calculation'))) {
                     $this->amount += self::getProductPrice($form, $field);
                     $this->hasPurchaseFieldsFlag = true;
                 }
                 break;
         }
     }
     // if form didn't pass the total, use sum of the product and shipping fields
     if ($this->total === 0) {
         $this->total = $this->amount + $this->shipping;
     }
 }
    public static function lead_detail_page()
    {
        global $wpdb;
        global $current_user;
        if (!GFCommon::ensure_wp_version()) {
            return;
        }
        echo GFCommon::get_remote_message();
        $form = RGFormsModel::get_form_meta($_GET["id"]);
        $lead_id = rgget('lid');
        $filter = rgget("filter");
        $status = in_array($filter, array("trash", "spam")) ? $filter : "active";
        $search = rgget("s");
        $position = rgget('pos') ? rgget('pos') : 0;
        $sort_direction = rgget('dir') ? rgget('dir') : 'DESC';
        $sort_field = empty($_GET["sort"]) ? 0 : $_GET["sort"];
        $sort_field_meta = RGFormsModel::get_field($form, $sort_field);
        $is_numeric = $sort_field_meta["type"] == "number";
        $star = $filter == "star" ? 1 : null;
        $read = $filter == "unread" ? 0 : null;
        // added status as an optional parameter to get_lead_count because the counts are inaccurate without using the status
        $lead_count = RGFormsModel::get_lead_count($form['id'], $search, $star, $read, null, null, $status);
        $prev_pos = !rgblank($position) && $position > 0 ? $position - 1 : false;
        $next_pos = !rgblank($position) && $position < $lead_count - 1 ? $position + 1 : false;
        // unread filter requires special handling for pagination since entries are filter out of the query as they are read
        if ($filter == 'unread') {
            $next_pos = $position;
            if ($next_pos + 1 == $lead_count) {
                $next_pos = false;
            }
        }
        // get the lead
        $leads = RGFormsModel::get_leads($form['id'], $sort_field, $sort_direction, $search, $position, 1, $star, $read, $is_numeric, null, null, $status);
        if (!$lead_id) {
            $lead = !empty($leads) ? $leads[0] : false;
        } else {
            $lead = RGFormsModel::get_lead($lead_id);
        }
        if (!$lead) {
            _e("Oops! We couldn't find your lead. Please try again", "gravityforms");
            return;
        }
        RGFormsModel::update_lead_property($lead["id"], "is_read", 1);
        switch (RGForms::post("action")) {
            case "update":
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                RGFormsModel::save_lead($form, $lead);
                do_action("gform_after_update_entry", $form, $lead["id"]);
                do_action("gform_after_update_entry_{$form["id"]}", $form, $lead["id"]);
                $lead = RGFormsModel::get_lead($lead["id"]);
                break;
            case "add_note":
                check_admin_referer('gforms_update_note', 'gforms_update_note');
                $user_data = get_userdata($current_user->ID);
                RGFormsModel::add_note($lead["id"], $current_user->ID, $user_data->display_name, stripslashes($_POST["new_note"]));
                //emailing notes if configured
                if (rgpost("gentry_email_notes_to")) {
                    $email_to = $_POST["gentry_email_notes_to"];
                    $email_from = $current_user->user_email;
                    $email_subject = stripslashes($_POST["gentry_email_subject"]);
                    $headers = "From: \"{$email_from}\" <{$email_from}> \r\n";
                    $result = wp_mail($email_to, $email_subject, stripslashes($_POST["new_note"]), $headers);
                }
                break;
            case "add_quick_note":
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                $user_data = get_userdata($current_user->ID);
                RGFormsModel::add_note($lead["id"], $current_user->ID, $user_data->display_name, stripslashes($_POST["quick_note"]));
                break;
            case "bulk":
                check_admin_referer('gforms_update_note', 'gforms_update_note');
                if ($_POST["bulk_action"] == "delete") {
                    RGFormsModel::delete_notes($_POST["note"]);
                }
                break;
            case "trash":
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                RGFormsModel::update_lead_property($lead["id"], "status", "trash");
                $lead = RGFormsModel::get_lead($lead["id"]);
                break;
            case "restore":
            case "unspam":
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                RGFormsModel::update_lead_property($lead["id"], "status", "active");
                $lead = RGFormsModel::get_lead($lead["id"]);
                break;
            case "spam":
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                RGFormsModel::update_lead_property($lead["id"], "status", "spam");
                $lead = RGFormsModel::get_lead($lead["id"]);
                break;
            case "delete":
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                RGFormsModel::delete_lead($lead["id"]);
                ?>
                <script type="text/javascript">
                    document.location.href='<?php 
                echo "admin.php?page=gf_entries&view=entries&id=" . absint($form["id"]);
                ?>
';
                </script>
                <?php 
                break;
        }
        $mode = empty($_POST["screen_mode"]) ? "view" : $_POST["screen_mode"];
        ?>
        <link rel="stylesheet" href="<?php 
        echo GFCommon::get_base_url();
        ?>
/css/admin.css" />
         <script type="text/javascript">

            jQuery(document).ready(function(){
                toggleNotificationOverride(true);
            });

            function DeleteFile(leadId, fieldId){
                if(confirm(<?php 
        _e("'Would you like to delete this file? \\'Cancel\\' to stop. \\'OK\\' to delete'", "gravityforms");
        ?>
)){

                    var mysack = new sack("<?php 
        echo admin_url("admin-ajax.php");
        ?>
");
                    mysack.execute = 1;
                    mysack.method = 'POST';
                    mysack.setVar( "action", "rg_delete_file" );
                    mysack.setVar( "rg_delete_file", "<?php 
        echo wp_create_nonce("rg_delete_file");
        ?>
" );
                    mysack.setVar( "lead_id", leadId );
                    mysack.setVar( "field_id", fieldId );
                    mysack.encVar( "cookie", document.cookie, false );
                    mysack.onError = function() { alert('<?php 
        echo esc_js(__("Ajax error while deleting field.", "gravityforms"));
        ?>
' )};
                    mysack.runAJAX();

                    return true;
                }
            }

            function EndDeleteFile(fieldId){
                jQuery('#preview_' + fieldId).hide();
                jQuery('#upload_' + fieldId).show('slow');
            }

            function ToggleShowEmptyFields(){
                if(jQuery("#gentry_display_empty_fields").is(":checked")){
                    createCookie("gf_display_empty_fields", true, 10000);
                    document.location = document.location.href;
                }
                else{
                    eraseCookie("gf_display_empty_fields");
                    document.location = document.location.href;
                }
            }

            function createCookie(name,value,days) {
                if (days) {
                    var date = new Date();
                    date.setTime(date.getTime()+(days*24*60*60*1000));
                    var expires = "; expires="+date.toGMTString();
                }
                else var expires = "";
                document.cookie = name+"="+value+expires+"; path=/";
            }

            function eraseCookie(name) {
                createCookie(name,"",-1);
            }

            function ResendNotifications() {

                var sendAdmin = jQuery("#notification_admin").is(":checked") ? 1 : 0;
                var sendUser = jQuery("#notification_user").is(":checked") ? 1 : 0;

                var sendTo = jQuery('#notification_override_email').val();

                if(!sendAdmin && !sendUser) {
                    displayMessage("<?php 
        _e("You must select at least one type of notification to resend.", "gravityforms");
        ?>
", "error", "#notifications_container");
                    return;
                }

                jQuery('#please_wait_container').fadeIn();

                jQuery.post(ajaxurl, {
                        action : "gf_resend_notifications",
                        gf_resend_notifications : '<?php 
        echo wp_create_nonce('gf_resend_notifications');
        ?>
',
                        sendAdmin : sendAdmin,
                        sendUser : sendUser,
                        sendTo : sendTo,
                        leadIds : '<?php 
        echo $lead['id'];
        ?>
',
                        formId : '<?php 
        echo $form['id'];
        ?>
'
                    },
                    function(response) {
                        if(response) {
                            displayMessage(response, "error", "#notifications_container");
                        } else {
                            displayMessage("<?php 
        _e("Notifications were resent successfully.", "gravityforms");
        ?>
", "updated", "#notifications_container");

                            // reset UI
                            jQuery("#notification_admin, #notification_user").attr('checked', false);
                            jQuery('#notification_override_email').val('');
                        }

                        jQuery('#please_wait_container').hide();
                        setTimeout(function(){jQuery('#notifications_container').find('.message').slideUp();}, 5000);
                    }
                );

            }

            function displayMessage(message, messageClass, container){

                jQuery(container).find('.message').hide().html(message).attr('class', 'message ' + messageClass).slideDown();

            }

            function toggleNotificationOverride(isInit) {

                if(isInit)
                    jQuery('#notification_override_email').val('');

                if(jQuery('#notification_admin').is(':checked') || jQuery('#notification_user').is(':checked')) {
                    jQuery('#notifications_override_settings').slideDown();
                } else {
                    jQuery('#notifications_override_settings').slideUp(function(){
                        jQuery('#notification_override_email').val('');
                    });
                }

            }

        </script>

        <form method="post" id="entry_form" enctype='multipart/form-data'>
            <?php 
        wp_nonce_field('gforms_save_entry', 'gforms_save_entry');
        ?>
            <input type="hidden" name="action" id="action" value=""/>
            <input type="hidden" name="screen_mode" id="screen_mode" value="<?php 
        echo esc_attr(rgpost("screen_mode"));
        ?>
" />

            <div class="wrap gf_entry_wrap">
            <div class="icon32" id="gravity-title-icon"><br></div>
            <h2><?php 
        _e("Entry #", "gravityforms");
        echo absint($lead["id"]);
        ?>
</h2>

            <?php 
        if (isset($_GET["pos"])) {
            ?>
            <div class="gf_entry_detail_pagination">
                <ul>
                    <li class="gf_entry_count"><span>entry <strong><?php 
            echo $position + 1;
            ?>
</strong> of <strong><?php 
            echo $lead_count;
            ?>
</strong></span></li>
                    <li class="gf_entry_prev gf_entry_pagination"><?php 
            echo GFEntryDetail::entry_detail_pagination_link($prev_pos, 'Previous Entry', 'gf_entry_prev_link');
            ?>
</li>
                    <li class="gf_entry_next gf_entry_pagination"><?php 
            echo GFEntryDetail::entry_detail_pagination_link($next_pos, 'Next Entry', 'gf_entry_next_link');
            ?>
</li>
                </ul>
            </div>
            <?php 
        }
        ?>

            <?php 
        RGForms::top_toolbar();
        ?>

            <div id="poststuff" class="metabox-holder has-right-sidebar">
                <div id="side-info-column" class="inner-sidebar">
                    <div id="submitdiv" class="stuffbox">
                        <h3>
                            <span class="hndle"><?php 
        _e("Info", "gravityforms");
        ?>
</span>
                        </h3>
                        <div class="inside">
                            <div id="submitcomment" class="submitbox">
                                <div id="minor-publishing" style="padding:10px;">
                                    <br/>
                                    <?php 
        _e("Entry Id", "gravityforms");
        ?>
: <?php 
        echo absint($lead["id"]);
        ?>
<br/><br/>
                                    <?php 
        _e("Submitted on", "gravityforms");
        ?>
: <?php 
        echo esc_html(GFCommon::format_date($lead["date_created"], false, "Y/m/d"));
        ?>
                                    <br/><br/>
                                    <?php 
        _e("User IP", "gravityforms");
        ?>
: <?php 
        echo $lead["ip"];
        ?>
                                    <br/><br/>
                                    <?php 
        if (!empty($lead["created_by"]) && ($usermeta = get_userdata($lead["created_by"]))) {
            ?>
                                        <?php 
            _e("User", "gravityforms");
            ?>
: <a href="user-edit.php?user_id=<?php 
            echo absint($lead["created_by"]);
            ?>
" alt="<?php 
            _e("View user profile", "gravityforms");
            ?>
" title="<?php 
            _e("View user profile", "gravityforms");
            ?>
"><?php 
            echo esc_html($usermeta->user_login);
            ?>
</a>
                                        <br/><br/>
                                        <?php 
        }
        ?>

                                    <?php 
        _e("Embed Url", "gravityforms");
        ?>
: <a href="<?php 
        echo esc_url($lead["source_url"]);
        ?>
" target="_blank" alt="<?php 
        echo esc_url($lead["source_url"]);
        ?>
" title="<?php 
        echo esc_url($lead["source_url"]);
        ?>
">.../<?php 
        echo esc_html(GFCommon::truncate_url($lead["source_url"]));
        ?>
</a>
                                    <br/><br/>
                                    <?php 
        if (!empty($lead["post_id"])) {
            $post = get_post($lead["post_id"]);
            ?>
                                        <?php 
            _e("Edit Post", "gravityforms");
            ?>
: <a href="post.php?action=edit&post=<?php 
            echo absint($post->ID);
            ?>
" alt="<?php 
            _e("Click to edit post", "gravityforms");
            ?>
" title="<?php 
            _e("Click to edit post", "gravityforms");
            ?>
"><?php 
            echo esc_html($post->post_title);
            ?>
</a>
                                        <br/><br/>
                                        <?php 
        }
        if (!empty($lead["payment_status"])) {
            echo $lead["transaction_type"] != 2 ? __("Payment Status", "gravityforms") : __("Subscription Status", "gravityforms");
            ?>
: <span id="gform_payment_status"><?php 
            echo apply_filters("gform_payment_status", $lead["payment_status"], $form, $lead);
            ?>
</span>
                                        <br/><br/>
                                        <?php 
            if (!empty($lead["payment_date"])) {
                echo $lead["transaction_type"] == 1 ? __("Payment Date", "gravityforms") : __("Start Date", "gravityforms");
                ?>
: <?php 
                echo GFCommon::format_date($lead["payment_date"], false, "Y/m/d", $lead["transaction_type"] == 1);
                ?>
                                            <br/><br/>
                                            <?php 
            }
            if (!empty($lead["transaction_id"])) {
                echo $lead["transaction_type"] == 1 ? __("Transaction Id", "gravityforms") : __("Subscriber Id", "gravityforms");
                ?>
: <?php 
                echo $lead["transaction_id"];
                ?>
                                            <br/><br/>
                                            <?php 
            }
            if (!rgblank($lead["payment_amount"])) {
                echo $lead["transaction_type"] == 1 ? __("Payment Amount", "gravityforms") : __("Subscription Amount", "gravityforms");
                ?>
: <?php 
                echo GFCommon::to_money($lead["payment_amount"], $lead["currency"]);
                ?>
                                            <br/><br/>
                                            <?php 
            }
        }
        do_action("gform_entry_info", $form["id"], $lead);
        ?>
                                </div>
                                <div id="major-publishing-actions">
                                    <div>
                                        <?php 
        switch ($lead["status"]) {
            case "spam":
                if (GFCommon::akismet_enabled($form['id'])) {
                    ?>
                                                    <a onclick="jQuery('#action').val('unspam'); jQuery('#entry_form').submit()" href="#"><?php 
                    _e("Not Spam", "gravityforms");
                    ?>
</a>
                                                    <?php 
                    echo GFCommon::current_user_can_any("gravityforms_delete_entries") ? "|" : "";
                }
                if (GFCommon::current_user_can_any("gravityforms_delete_entries")) {
                    ?>
                                                    <a class="submitdelete deletion" onclick="if ( confirm('<?php 
                    _e("You are about to delete this entry. \\'Cancel\\' to stop, \\'OK\\' to delete.", "gravityforms");
                    ?>
') ) {jQuery('#action').val('delete'); jQuery('#entry_form').submit(); return true;} return false;" href="#"><?php 
                    _e("Delete Permanently", "gravityforms");
                    ?>
</a>
                                                    <?php 
                }
                break;
            case "trash":
                ?>
                                                <a onclick="jQuery('#action').val('restore'); jQuery('#entry_form').submit()" href="#"><?php 
                _e("Restore", "gravityforms");
                ?>
</a>
                                                <?php 
                if (GFCommon::current_user_can_any("gravityforms_delete_entries")) {
                    ?>
                                                    |
                                                    <a class="submitdelete deletion" onclick="if ( confirm('<?php 
                    _e("You are about to delete this entry. \\'Cancel\\' to stop, \\'OK\\' to delete.", "gravityforms");
                    ?>
') ) {jQuery('#action').val('delete'); jQuery('#entry_form').submit(); return true;} return false;" href="#"><?php 
                    _e("Delete Permanently", "gravityforms");
                    ?>
</a>
                                                    <?php 
                }
                break;
            default:
                if (GFCommon::current_user_can_any("gravityforms_delete_entries")) {
                    ?>
                                                    <a class="submitdelete deletion" onclick="jQuery('#action').val('trash'); jQuery('#entry_form').submit()" href="#"><?php 
                    _e("Move to Trash", "gravityforms");
                    ?>
</a>
                                                    <?php 
                    echo GFCommon::akismet_enabled($form['id']) ? "|" : "";
                }
                if (GFCommon::akismet_enabled($form['id'])) {
                    ?>
                                                    <a class="submitdelete deletion" onclick="jQuery('#action').val('spam'); jQuery('#entry_form').submit()" href="#"><?php 
                    _e("Mark as Spam", "gravityforms");
                    ?>
</a>
                                                <?php 
                }
        }
        /*if(GFCommon::current_user_can_any("gravityforms_delete_entries")){
              $delete_link = '<a class="submitdelete deletion" onclick="if ( confirm(\''. __("You are about to delete this entry. \'Cancel\' to stop, \'OK\' to delete.", "gravityforms") .'\') ) { jQuery(\'#action\').val(\'delete\'); jQuery(\'#entry_form\')[0].submit();} return false;" href="#">' . __("Delete", "gravityforms") . '</a>';
              echo apply_filters("gform_entrydetail_delete_link", $delete_link);
          }*/
        ?>
                                    </div>
                                    <div id="publishing-action">
                                        <?php 
        if (GFCommon::current_user_can_any("gravityforms_edit_entries") && $lead["status"] != "trash") {
            $button_text = $mode == "view" ? __("Edit", "gravityforms") : __("Update", "gravityforms");
            $button_click = $mode == "view" ? "jQuery('#screen_mode').val('edit');" : "jQuery('#action').val('update'); jQuery('#screen_mode').val('view');";
            $update_button = '<input class="button-primary" type="submit" tabindex="4" value="' . $button_text . '" name="save" onclick="' . $button_click . '"/>';
            echo apply_filters("gform_entrydetail_update_button", $update_button);
            if ($mode == "edit") {
                echo '&nbsp;&nbsp;<input class="button" style="color:#bbb;" type="submit" tabindex="5" value="' . __("Cancel", "gravityforms") . '" name="cancel" onclick="jQuery(\'#screen_mode\').val(\'view\');"/>';
            }
        }
        ?>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>

                    <?php 
        if (GFCommon::current_user_can_any("gravityforms_edit_entry_notes") && (GFCommon::has_admin_notification($form) || GFCommon::has_user_notification($form))) {
            // TODO: do we need to set a permission for this?
            ?>
                        <!-- start notifications -->
                        <div class="postbox" id="notifications_container">
                            <h3 style="cursor:default;"><span><?php 
            _e("Notifications", "gravityforms");
            ?>
</span></h3>
                            <div class="inside">
                                <div class="message" style="display:none;padding:10px;margin:10px 0 0;"></div>
                                <div>

                                    <br />
                                    <?php 
            if (GFCommon::has_admin_notification($form)) {
                ?>
                                        <input type="checkbox" name="notification_admin" id="notification_admin" onclick="toggleNotificationOverride();" /> <label for="notification_admin"><?php 
                _e("Admin Notification", "gravityforms");
                ?>
</label> <br /><br />
                                    <?php 
            }
            ?>
                                    <?php 
            if (GFCommon::has_user_notification($form)) {
                ?>
                                        <input type="checkbox" name="notification_user" id="notification_user" onclick="toggleNotificationOverride();" /> <label for="notification_user"><?php 
                _e("User Notification", "gravityforms");
                ?>
</label> <br /><br />
                                    <?php 
            }
            ?>

                                    <div id="notifications_override_settings" style="display:none;">

                                        <p class="description" style="padding-top:0; margin-top:0; width:99%;">You may override the default notification settings
                                         by entering a comma delimited list of emails to which the selected notifications should be sent.</p>
                                        <label for="notification_override_email"><?php 
            _e("Send To", "gravityforms");
            ?>
 <?php 
            gform_tooltip("notification_override_email");
            ?>
</label><br />
                                        <input type="text" name="notification_override_email" id="notification_override_email" style="width:99%;" />
                                        <br /><br />

                                    </div>

                                    <input type="button" name="notification_resend" value="<?php 
            _e("Resend Notifications", "gravityforms");
            ?>
" class="button" style="" onclick="ResendNotifications();"/>
                                    <span id="please_wait_container" style="display:none; margin-left: 5px;">
                                        <img src="<?php 
            echo GFCommon::get_base_url();
            ?>
/images/loading.gif"> <?php 
            _e("Resending...", "gravityforms");
            ?>
                                    </span>

                                </div>
                            </div>
                        </div>
                       <!-- / end notifications -->
                   <?php 
        }
        ?>

                   <!-- begin print button -->
                   <div class="detail-view-print">
                       <a href="javascript:;" onclick="var notes_qs = jQuery('#gform_print_notes').is(':checked') ? '&notes=1' : ''; var url='<?php 
        echo site_url();
        ?>
/?gf_page=print-entry&fid=<?php 
        echo $form['id'];
        ?>
&lid=<?php 
        echo $lead['id'];
        ?>
' + notes_qs; window.open (url,'printwindow');" class="button"><?php 
        _e("Print", "gravityforms");
        ?>
</a>
                       <?php 
        if (GFCommon::current_user_can_any("gravityforms_view_entry_notes")) {
            ?>
                           <input type="checkbox" name="print_notes" value="print_notes" checked="checked" id="gform_print_notes"/>
                           <label for="print_notes"><?php 
            _e("include notes", "gravityforms");
            ?>
</label>
                       <?php 
        }
        ?>
                   </div>
                   <!-- end print button -->

                </div>

                <div id="post-body" class="has-sidebar">
                    <div id="post-body-content" class="has-sidebar-content">
                        <?php 
        if ($mode == "view") {
            self::lead_detail_grid($form, $lead, true);
        } else {
            self::lead_detail_edit($form, $lead);
        }
        do_action("gform_entry_detail", $form, $lead);
        if (GFCommon::current_user_can_any("gravityforms_view_entry_notes")) {
            ?>
                            <div id="namediv" class="stuffbox">
                                <h3>
                                    <label for="name"><?php 
            _e("Notes", "gravityforms");
            ?>
</label>
                                </h3>

                                <form method="post">
                                    <?php 
            wp_nonce_field('gforms_update_note', 'gforms_update_note');
            ?>
                                    <div class="inside">
                                        <?php 
            $notes = RGFormsModel::get_lead_notes($lead["id"]);
            //getting email values
            $email_fields = GFCommon::get_email_fields($form);
            $emails = array();
            foreach ($email_fields as $email_field) {
                if (!empty($lead[$email_field["id"]])) {
                    $emails[] = $lead[$email_field["id"]];
                }
            }
            //displaying notes grid
            $subject = !empty($form["autoResponder"]["subject"]) ? "RE: " . GFCommon::replace_variables($form["autoResponder"]["subject"], $form, $lead) : "";
            self::notes_grid($notes, true, $emails, $subject);
            ?>
                                    </div>
                                </form>
                            </div>
                        <?php 
        }
        ?>
                    </div>
                </div>
            </div>
        </div>
        </form>
        <?php 
        if (rgpost("action") == "update") {
            ?>
            <div class="updated fade" style="padding:6px;">
                <?php 
            _e("Entry Updated.", "gravityforms");
            ?>
            </div>
            <?php 
        }
    }
Ejemplo n.º 13
0
    public static function metarecovery_page()
    {
        if (RGForms::post("gf_metarecovery_submit")) {
            global $wpdb;
            $table_name = RGFormsModel::get_meta_table_name();
            $form_id = RGForms::post("gf_metarecovery_form_id");
            $meta = $wpdb->get_var($wpdb->prepare("SELECT display_meta FROM {$table_name} WHERE form_id=%d", $form_id));
            //fixing meta
            $meta = preg_replace('!s:(\\d+):"(.*?)";!e', "'s:'.strlen('\$2').':\"\$2\";'", $meta);
            //if successfull, store new meta
            $obj = unserialize($meta);
            if ($obj) {
                RGFormsModel::update_form_meta($form_id, $obj);
                $is_success = true;
            } else {
                $is_failure = true;
            }
        }
        ?>
        <style>
            .left_header{float:left; width:200px;}
            .margin_vertical_10{margin: 10px 0;}
        </style>
        <div class="wrap">
            <form method="post">

                <h2><?php 
        _e("Meta Recovery Utility", "gravityformsmetarecovery");
        ?>
</h2>

                <?php 
        if ($is_success) {
            ?>
                    <div class="updated fade" style="padding:6px"><?php 
            echo sprintf(__("Meta recovered successfully. %sGo to form editor%s", "gravityformsmetarecovery"), "<a href='?page=gf_edit_forms&id={$form_id}'>", "</a>");
            ?>
</div>
                    <?php 
        }
        if ($is_failure) {
            ?>
                    <div class="error" style="padding:6px"><?php 
            echo __("This form's meta could not be recovered.", "gravityformsmetarecovery");
            ?>
</div>
                    <?php 
        }
        ?>
                <div class="margin_vertical_10">
                    <label for="gf_metarecovery_form_id" class="left_header"><?php 
        _e("Gravity Form", "gravityforms_feed");
        ?>
 </label>
                    <select name="gf_metarecovery_form_id" id="gf_metarecovery_form_id">
                        <option value=""><?php 
        _e("Select a form", "gravityforms_feed");
        ?>
 </option>
                        <?php 
        $forms = RGFormsModel::get_forms();
        foreach ($forms as $form) {
            ?>
                            <option value="<?php 
            echo absint($form->id);
            ?>
"><?php 
            echo esc_html($form->title);
            ?>
</option>
                            <?php 
        }
        ?>
                    </select>
                </div>
                <div class="margin_vertical_10">
                    <input type="submit" class="button-primary" name="gf_metarecovery_submit" value="<?php 
        _e("Submit", "gravityformsmetarecovery");
        ?>
" />
                </div>

            </form>
        </div>
        <?php 
    }
Ejemplo n.º 14
0
    public static function leads_page($form_id)
    {
        global $wpdb;
        //quit if version of wp is not supported
        if (!GFCommon::ensure_wp_version()) {
            return;
        }
        echo GFCommon::get_remote_message();
        $action = RGForms::post("action");
        switch ($action) {
            case "delete":
                check_admin_referer('gforms_entry_list', 'gforms_entry_list');
                $lead_id = $_POST["action_argument"];
                RGFormsModel::delete_lead($lead_id);
                break;
            case "bulk":
                check_admin_referer('gforms_entry_list', 'gforms_entry_list');
                $bulk_action = !empty($_POST["bulk_action"]) ? $_POST["bulk_action"] : $_POST["bulk_action2"];
                $leads = $_POST["lead"];
                switch ($bulk_action) {
                    case "delete":
                        RGFormsModel::delete_leads($leads);
                        break;
                    case "mark_read":
                        RGFormsModel::update_leads_property($leads, "is_read", 1);
                        break;
                    case "mark_unread":
                        RGFormsModel::update_leads_property($leads, "is_read", 0);
                        break;
                    case "add_star":
                        RGFormsModel::update_leads_property($leads, "is_starred", 1);
                        break;
                    case "remove_star":
                        RGFormsModel::update_leads_property($leads, "is_starred", 0);
                        break;
                }
                break;
            case "change_columns":
                check_admin_referer('gforms_entry_list', 'gforms_entry_list');
                $columns = GFCommon::json_decode(stripslashes($_POST["grid_columns"]), true);
                RGFormsModel::update_grid_column_meta($form_id, $columns);
                break;
        }
        $sort_field = empty($_GET["sort"]) ? 0 : $_GET["sort"];
        $sort_direction = empty($_GET["dir"]) ? "DESC" : $_GET["dir"];
        $search = RGForms::get("s");
        $page_index = empty($_GET["paged"]) ? 0 : intval($_GET["paged"]) - 1;
        $star = is_numeric(RGForms::get("star")) ? intval(RGForms::get("star")) : null;
        $read = is_numeric(RGForms::get("read")) ? intval(RGForms::get("read")) : null;
        $page_size = 20;
        $first_item_index = $page_index * $page_size;
        $form = RGFormsModel::get_form_meta($form_id);
        $sort_field_meta = RGFormsModel::get_field($form, $sort_field);
        $is_numeric = $sort_field_meta["type"] == "number";
        $leads = RGFormsModel::get_leads($form_id, $sort_field, $sort_direction, $search, $first_item_index, $page_size, $star, $read, $is_numeric);
        $lead_count = RGFormsModel::get_lead_count($form_id, $search, $star, $read);
        $summary = RGFormsModel::get_form_counts($form_id);
        $total_lead_count = $summary["total"];
        $unread_count = $summary["unread"];
        $starred_count = $summary["starred"];
        $columns = RGFormsModel::get_grid_columns($form_id, true);
        $search_qs = empty($search) ? "" : "&s=" . urlencode($search);
        $sort_qs = empty($sort_field) ? "" : "&sort={$sort_field}";
        $dir_qs = empty($sort_field) ? "" : "&dir={$sort_direction}";
        $star_qs = $star !== null ? "&star={$star}" : "";
        $read_qs = $read !== null ? "&read={$read}" : "";
        $page_links = paginate_links(array('base' => admin_url("admin.php") . "?page=gf_entries&view=entries&id={$form_id}&%_%" . $search_qs . $sort_qs . $dir_qs . $star_qs . $read_qs, 'format' => 'paged=%#%', 'prev_text' => __('&laquo;'), 'next_text' => __('&raquo;'), 'total' => ceil($lead_count / $page_size), 'current' => $page_index + 1, 'show_all' => false));
        wp_print_scripts(array("thickbox"));
        wp_print_styles(array("thickbox"));
        ?>

        <script src="<?php 
        echo GFCommon::get_base_url();
        ?>
/js/jquery.json-1.3.js?ver=<?php 
        echo GFCommon::$version;
        ?>
"></script>

        <script>
            function ChangeColumns(columns){
                jQuery("#action").val("change_columns");
                jQuery("#grid_columns").val(jQuery.toJSON(columns));
                tb_remove();
                jQuery("#lead_form")[0].submit();
            }

            function Search(sort_field_id, sort_direction, form_id, search, star, read){
                var search_qs = search == "" ? "" : "&s=" + search;
                var star_qs = star == "" ? "" : "&star=" + star;
                var read_qs = read == "" ? "" : "&read=" + read;

                var location = "?page=gf_entries&view=entries&id=" + form_id + "&sort=" + sort_field_id + "&dir=" + sort_direction + search_qs + star_qs + read_qs;
                document.location = location;
            }

            function ToggleStar(img, lead_id){
                var is_starred = img.src.indexOf("star1.png") >=0
                if(is_starred)
                    img.src = img.src.replace("star1.png", "star0.png");
                else
                    img.src = img.src.replace("star0.png", "star1.png");

                UpdateCount("star_count", is_starred ? -1 : 1);

                UpdateLeadProperty(lead_id, "is_starred", is_starred ? 0 : 1);
            }

            function ToggleRead(lead_id){
                var title = jQuery("#lead_row_" + lead_id);

                marking_read = title.hasClass("lead_unread");

                jQuery("#mark_read_" + lead_id).css("display", marking_read ? "none" : "inline");
                jQuery("#mark_unread_" + lead_id).css("display", marking_read ? "inline" : "none");
                title.toggleClass("lead_unread");

                UpdateCount("unread_count", marking_read ? -1 : 1);

                UpdateLeadProperty(lead_id, "is_read", marking_read ? 1 : 0);
            }

            function UpdateLeadProperty(lead_id, name, value){
                var mysack = new sack("<?php 
        echo admin_url("admin-ajax.php");
        ?>
" );
                mysack.execute = 1;
                mysack.method = 'POST';
                mysack.setVar( "action", "rg_update_lead_property" );
                mysack.setVar( "rg_update_lead_property", "<?php 
        echo wp_create_nonce("rg_update_lead_property");
        ?>
" );
                mysack.setVar( "lead_id", lead_id);
                mysack.setVar( "name", name);
                mysack.setVar( "value", value);
                mysack.encVar( "cookie", document.cookie, false );
                mysack.onError = function() { alert('<?php 
        echo esc_js(__("Ajax error while setting lead property", "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 DeleteLead(lead_id){
                jQuery("#action").val("delete");
                jQuery("#action_argument").val(lead_id);
                jQuery("#lead_form")[0].submit();
                return true;
            }



            jQuery(document).ready(function(){
                jQuery("#lead_search").keyup(function(event){
                  if(event.keyCode == 13)
                    Search('<?php 
        echo $sort_field;
        ?>
', '<?php 
        echo $sort_direction;
        ?>
', <?php 
        echo $form_id;
        ?>
, this.value, '<?php 
        echo $star;
        ?>
', '<?php 
        echo $read;
        ?>
');
                });

            });

        </script>
        <link rel="stylesheet" href="<?php 
        echo GFCommon::get_base_url();
        ?>
/css/admin.css" type="text/css" />
        <style>
            .lead_unread a, .lead_unread td{font-weight: bold;}
            .row-actions a{ font-weight:normal;}
            .entry_nowrap{
                overflow:hidden; white-space:nowrap;
            }
        </style>


        <div class="wrap">
            <img alt="<?php 
        _e("Gravity Forms", "gravityforms");
        ?>
" src="<?php 
        echo GFCommon::get_base_url();
        ?>
/images/gravity-entry-icon-32.png" style="float:left; margin:15px 7px 0 0;"/>
            <h2><?php 
        _e("Entries", "gravityforms");
        ?>
 : <?php 
        echo $form["title"];
        ?>
 </h2>

            <?php 
        RGForms::top_toolbar();
        ?>

            <form id="lead_form" method="post">
                <?php 
        wp_nonce_field('gforms_entry_list', 'gforms_entry_list');
        ?>

                <input type="hidden" value="" name="grid_columns" id="grid_columns" />
                <input type="hidden" value="" name="action" id="action" />
                <input type="hidden" value="" name="action_argument" id="action_argument" />

                <ul class="subsubsub">
                    <li><a class="<?php 
        echo $star === null && $read === null ? "current" : "";
        ?>
" href="?page=gf_entries&view=entries&id=<?php 
        echo $form_id;
        ?>
"><?php 
        _e("All", "gravityforms");
        ?>
 <span class="count">(<span id="all_count"><?php 
        echo $total_lead_count;
        ?>
</span>)</span></a> | </li>
                    <li><a class="<?php 
        echo $read !== null ? "current" : "";
        ?>
" href="?page=gf_entries&view=entries&id=<?php 
        echo $form_id;
        ?>
&read=0"><?php 
        _e("Unread", "gravityforms");
        ?>
 <span class="count">(<span id="unread_count"><?php 
        echo $unread_count;
        ?>
</span>)</span></a> | </li>
                    <li><a class="<?php 
        echo $star !== null ? "current" : "";
        ?>
" href="?page=gf_entries&view=entries&id=<?php 
        echo $form_id;
        ?>
&star=1"><?php 
        _e("Starred", "gravityforms");
        ?>
 <span class="count">(<span id="star_count"><?php 
        echo $starred_count;
        ?>
</span>)</span></a></li>
                </ul>
                <p class="search-box">
                    <label class="hidden" for="lead_search"><?php 
        _e("Search Entries:", "gravityforms");
        ?>
</label>
                    <input type="text" id="lead_search" value="<?php 
        echo $search;
        ?>
"><a class="button" id="lead_search_button" href="javascript:Search('<?php 
        echo $sort_field;
        ?>
', '<?php 
        echo $sort_direction;
        ?>
', <?php 
        echo $form_id;
        ?>
, jQuery('#lead_search').val(), '<?php 
        echo $star;
        ?>
', '<?php 
        echo $read;
        ?>
');"><?php 
        _e("Search", "gravityforms");
        ?>
</a>
                </p>
                <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 (GFCommon::current_user_can_any("gravityforms_delete_entries")) {
            ?>
                            <option value='delete'><?php 
            _e("Delete", "gravityforms");
            ?>
</option>
                            <?php 
        }
        ?>

                            <option value='mark_read'><?php 
        _e("Mark as Read", "gravityforms");
        ?>
</option>
                            <option value='mark_unread'><?php 
        _e("Mark as Unread", "gravityforms");
        ?>
</option>
                            <option value='add_star'><?php 
        _e("Add Star", "gravityforms");
        ?>
</option>
                            <option value='remove_star'><?php 
        _e("Remove Star", "gravityforms");
        ?>
</option>
                        </select>
                        <?php 
        $apply_button = '<input type="submit" class="button" value="' . __("Apply", "gravityforms") . '" onclick="jQuery(\'#action\').val(\'bulk\');" />';
        echo apply_filters("gform_entry_apply_button", $apply_button);
        ?>

                    </div>

                    <?php 
        //Displaying paging links if appropriate
        if ($page_links) {
            ?>
                        <div class="tablenav-pages">
                            <span class="displaying-num"><?php 
            printf(__("Displaying %d - %d of %d", "gravityforms"), $first_item_index + 1, $first_item_index + $page_size > $lead_count ? $lead_count : $first_item_index + $page_size, $lead_count);
            ?>
</span>
                            <?php 
            echo $page_links;
            ?>
                        </div>
                        <?php 
        }
        ?>
                    <div class="clear"></div>
                </div>

                <table class="widefat fixed" cellspacing="0">
                <thead>
                    <tr>
                        <th scope="col" id="cb" class="manage-column column-cb check-column" style="vertical-align:middle;"><input type="checkbox" class="headercb" /></th>
                        <th scope="col" class="manage-column column-cb check-column" >&nbsp;</th>
                        <?php 
        foreach ($columns as $field_id => $field_info) {
            $dir = $field_id == 0 ? "DESC" : "ASC";
            //default every field so ascending sorting except date_created (id=0)
            if ($field_id == $sort_field) {
                //reverting direction if clicking on the currently sorted field
                $dir = $sort_direction == "ASC" ? "DESC" : "ASC";
            }
            ?>
                            <th scope="col" class="manage-column entry_nowrap" onclick="Search('<?php 
            echo $field_id;
            ?>
', '<?php 
            echo $dir;
            ?>
', <?php 
            echo $form_id;
            ?>
, '<?php 
            echo $search;
            ?>
', '<?php 
            echo $star;
            ?>
', '<?php 
            echo $read;
            ?>
');" style="cursor:pointer;"><?php 
            echo esc_html($field_info["label"]);
            ?>
</th>
                            <?php 
        }
        ?>
                        <th scope="col" align="right" width="50">
                            <a title="<?php 
        _e("Select Columns", "gravityforms");
        ?>
" href="<?php 
        echo GFCommon::get_base_url();
        ?>
/select_columns.php?id=<?php 
        echo $form_id;
        ?>
&TB_iframe=true&height=365&width=600" class="thickbox entries_edit_icon">Edit</a>
                        </th>
                    </tr>
                </thead>
                <tfoot>
                    <tr>
                        <th scope="col" id="cb" class="manage-column column-cb check-column" style=""><input type="checkbox" /></th>
                        <th scope="col" id="cb" class="manage-column column-cb check-column" >&nbsp;</th>
                        <?php 
        foreach ($columns as $field_id => $field_info) {
            $dir = $field_id == 0 ? "DESC" : "ASC";
            //default every field so ascending sorting except date_created (id=0)
            if ($field_id == $sort_field) {
                //reverting direction if clicking on the currently sorted field
                $dir = $sort_direction == "ASC" ? "DESC" : "ASC";
            }
            ?>
                            <th scope="col" class="manage-column entry_nowrap" onclick="Search('<?php 
            echo $field_id;
            ?>
', '<?php 
            echo $dir;
            ?>
', <?php 
            echo $form_id;
            ?>
, '<?php 
            echo $search;
            ?>
', '<?php 
            echo $star;
            ?>
', '<?php 
            echo $read;
            ?>
');" style="cursor:pointer;"><?php 
            echo esc_html($field_info["label"]);
            ?>
</th>
                            <?php 
        }
        ?>
                        <th scope="col" style="width:15px;">
                            <a href="<?php 
        echo GFCommon::get_base_url();
        ?>
/select_columns.php?id=<?php 
        echo $form_id;
        ?>
&TB_iframe=true&height=350&width=500" class="thickbox entries_edit_icon">Edit</a>
                        </th>
                    </tr>
                </tfoot>

                <tbody class="list:user user-list">
                    <?php 
        if (sizeof($leads) > 0) {
            $field_ids = array_keys($columns);
            foreach ($leads as $lead) {
                ?>
                            <tr id="lead_row_<?php 
                echo $lead["id"];
                ?>
" class='author-self status-inherit <?php 
                echo $lead["is_read"] ? "" : "lead_unread";
                ?>
' valign="top">
                                <th scope="row" class="check-column">
                                    <input type="checkbox" name="lead[]" value="<?php 
                echo $lead["id"];
                ?>
" />
                                </th>
                                <td >
                                    <img src="<?php 
                echo GFCommon::get_base_url();
                ?>
/images/star<?php 
                echo intval($lead["is_starred"]);
                ?>
.png" onclick="ToggleStar(this, <?php 
                echo $lead["id"];
                ?>
);" />
                                </td>
                                <?php 
                $is_first_column = true;
                $nowrap_class = "entry_nowrap";
                foreach ($field_ids as $field_id) {
                    $value = RGForms::get($field_id, $lead);
                    //filtering lead value
                    $value = apply_filters("gform_get_field_value", $value, $lead, RGFormsModel::get_field($form, $field_id));
                    $input_type = !empty($columns[$field_id]["inputType"]) ? $columns[$field_id]["inputType"] : $columns[$field_id]["type"];
                    switch ($input_type) {
                        case "checkbox":
                            $value = "";
                            //looping through lead detail values trying to find an item identical to the column label. Mark with a tick if found.
                            $lead_field_keys = array_keys($lead);
                            foreach ($lead_field_keys as $input_id) {
                                //mark as a tick if input label (from form meta) is equal to submitted value (from lead)
                                if (is_numeric($input_id) && absint($input_id) == absint($field_id)) {
                                    if ($lead[$input_id] == $columns[$field_id]["label"]) {
                                        $value = "<img src='" . GFCommon::get_base_url() . "/images/tick.png'/>";
                                    } else {
                                        $field = RGFormsModel::get_field($form, $field_id);
                                        if ($field["enableChoiceValue"] || $field["enablePrice"]) {
                                            foreach ($field["choices"] as $choice) {
                                                if ($choice["value"] == $lead[$field_id]) {
                                                    $value = "<img src='" . GFCommon::get_base_url() . "/images/tick.png'/>";
                                                    break;
                                                } else {
                                                    if ($field["enablePrice"]) {
                                                        list($val, $price) = explode("|", $lead[$field_id]);
                                                        if ($val == $choice["value"]) {
                                                            $value = "<img src='" . GFCommon::get_base_url() . "/images/tick.png'/>";
                                                            break;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            break;
                        case "post_image":
                            list($url, $title, $caption, $description) = explode("|:|", $value);
                            if (!empty($url)) {
                                //displaying thumbnail (if file is an image) or an icon based on the extension
                                $thumb = self::get_icon_url($url);
                                $value = "<a href='" . esc_attr($url) . "' target='_blank' title='" . __("Click to view", "gravityforms") . "'><img src='{$thumb}'/></a>";
                            }
                            break;
                        case "post_category":
                            $ary = explode(":", $value);
                            $cat_name = count($ary) > 0 ? $ary[0] : "";
                            $value = $cat_name;
                            break;
                        case "fileupload":
                            $file_path = $value;
                            if (!empty($file_path)) {
                                //displaying thumbnail (if file is an image) or an icon based on the extension
                                $thumb = self::get_icon_url($file_path);
                                $file_path = esc_attr($file_path);
                                $value = "<a href='{$file_path}' target='_blank' title='" . __("Click to view", "gravityforms") . "'><img src='{$thumb}'/></a>";
                            }
                            break;
                        case "source_url":
                            $value = "<a href='" . esc_attr($lead["source_url"]) . "' target='_blank' alt='" . esc_attr($lead["source_url"]) . "' title='" . esc_attr($lead["source_url"]) . "'>.../" . esc_attr(GFCommon::truncate_url($lead["source_url"])) . "</a>";
                            break;
                        case "textarea":
                        case "post_content":
                        case "post_excerpt":
                            $value = esc_html($value);
                            break;
                        case "date_created":
                        case "payment_date":
                            $value = GFCommon::format_date($value, false);
                            break;
                        case "date":
                            $field = RGFormsModel::get_field($form, $field_id);
                            $value = GFCommon::date_display($value, $field["dateFormat"]);
                            break;
                        case "radio":
                        case "select":
                            $field = RGFormsModel::get_field($form, $field_id);
                            $value = GFCommon::selection_display($value, $field, $lead["currency"]);
                            break;
                        case "total":
                        case "payment_amount":
                            $value = GFCommon::to_money($value, $lead["currency"]);
                            break;
                        case "created_by":
                            if (!empty($value)) {
                                $userdata = get_userdata($value);
                                $value = $userdata->user_login;
                            }
                            break;
                        default:
                            $value = esc_html($value);
                    }
                    $value = apply_filters("gform_entries_field_value", $value, $form_id, $field_id, $lead);
                    $query_string = "gf_entries&view=entry&id={$form_id}&lid={$lead["id"]}{$search_qs}{$sort_qs}{$dir_qs}&paged=" . $page_index + 1;
                    if ($is_first_column) {
                        ?>
                                        <td class="column-title" >
                                            <a href="admin.php?page=gf_entries&view=entry&id=<?php 
                        echo $form_id;
                        ?>
&lid=<?php 
                        echo $lead["id"] . $search_qs . $sort_qs . $dir_qs;
                        ?>
&paged=<?php 
                        echo $page_index + 1;
                        ?>
"><?php 
                        echo $value;
                        ?>
</a>
                                            <div class="row-actions">
                                                <span class="edit">
                                                    <a title="<?php 
                        _e("View this entry", "gravityforms");
                        ?>
" href="admin.php?page=gf_entries&view=entry&id=<?php 
                        echo $form_id;
                        ?>
&lid=<?php 
                        echo $lead["id"] . $search_qs . $sort_qs . $dir_qs;
                        ?>
&paged=<?php 
                        echo $page_index + 1;
                        ?>
"><?php 
                        _e("View", "gravityforms");
                        ?>
</a>
                                                    |
                                                </span>
                                                <span class="edit">
                                                    <a id="mark_read_<?php 
                        echo $lead["id"];
                        ?>
" title="Mark this entry as read" href="javascript:ToggleRead(<?php 
                        echo $lead["id"];
                        ?>
);" style="display:<?php 
                        echo $lead["is_read"] ? "none" : "inline";
                        ?>
;"><?php 
                        _e("Mark read", "gravityforms");
                        ?>
</a><a id="mark_unread_<?php 
                        echo $lead["id"];
                        ?>
" title="<?php 
                        _e("Mark this entry as unread", "gravityforms");
                        ?>
" href="javascript:ToggleRead(<?php 
                        echo $lead["id"];
                        ?>
);" style="display:<?php 
                        echo $lead["is_read"] ? "inline" : "none";
                        ?>
;"><?php 
                        _e("Mark unread", "gravityforms");
                        ?>
</a>
                                                    <?php 
                        echo GFCommon::current_user_can_any("gravityforms_delete_entries") ? "|" : "";
                        ?>
                                                </span>

                                                <?php 
                        if (GFCommon::current_user_can_any("gravityforms_delete_entries")) {
                            ?>
                                                    <span class="edit">
                                                        <?php 
                            $delete_link = '<a title="' . __("Delete this entry", "gravityforms") . '"  href="javascript:if ( confirm(' . __("'You are about to delete this entry. \\'Cancel\\' to stop, \\'OK\\' to delete.'", "gravityforms") . ') ) { DeleteLead(' . $lead["id"] . ')};">' . __("Delete", "gravityforms") . '</a>';
                            echo apply_filters("gform_delete_entry_link", $delete_link);
                            ?>
                                                    </span>
                                                    <?php 
                        }
                        do_action("gform_entries_first_column_actions", $form_id, $field_id, $value, $lead, $query_string);
                        ?>

                                            </div>
                                            <?php 
                        do_action("gform_entries_first_column", $form_id, $field_id, $value, $lead, $query_string);
                        ?>
                                        </td>
                                        <?php 
                    } else {
                        ?>
                                        <td class="<?php 
                        echo $nowrap_class;
                        ?>
">
                                            <?php 
                        echo $value;
                        ?>
&nbsp;
                                            <?php 
                        do_action("gform_entries_column", $form_id, $field_id, $value, $lead, $query_string);
                        ?>
                                        </td>
                                        <?php 
                    }
                    $is_first_column = false;
                }
                ?>
                                <td>&nbsp;</td>
                            </tr>
                            <?php 
            }
        } else {
            ?>
                        <tr>
                            <td colspan="<?php 
            echo sizeof($columns) + 3;
            ?>
" style="padding:20px;"><?php 
            _e("This form does not have any entries yet.", "gravityforms");
            ?>
</td>
                        </tr>
                        <?php 
        }
        ?>
                </tbody>
                </table>

                <div class="clear"></div>

                <div class="tablenav">

                    <div class="alignleft actions" style="padding:8px 0 7px 0;">
                        <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>
                            <option value='delete'><?php 
        _e("Delete", "gravityforms");
        ?>
</option>
                            <option value='mark_read'><?php 
        _e("Mark as Read", "gravityforms");
        ?>
</option>
                            <option value='mark_unread'><?php 
        _e("Mark as Unread", "gravityforms");
        ?>
</option>
                            <option value='add_star'><?php 
        _e("Add Star", "gravityforms");
        ?>
</option>
                            <option value='remove_star'><?php 
        _e("Remove Star", "gravityforms");
        ?>
</option>
                        </select>
                        <?php 
        $apply_button = '<input type="submit" class="button" value="' . __("Apply", "gravityforms") . '" onclick="jQuery(\'#action\').val(\'bulk\');" />';
        echo apply_filters("gform_entry_apply_button", $apply_button);
        ?>
                    </div>

                    <?php 
        //Displaying paging links if appropriate
        if ($page_links) {
            ?>
                        <div class="tablenav-pages">
                            <span class="displaying-num"><?php 
            printf(__("Displaying %d - %d of %d", "gravityforms"), $first_item_index + 1, $first_item_index + $page_size > $lead_count ? $lead_count : $first_item_index + $page_size, $lead_count);
            ?>
</span>
                            <?php 
            echo $page_links;
            ?>
                        </div>
                        <?php 
        }
        ?>
                    <div class="clear"></div>
                </div>

            </form>
        </div>
        <?php 
    }
Ejemplo n.º 15
0
    public static function lead_detail_page()
    {
        global $current_user;
        if (!GFCommon::ensure_wp_version()) {
            return;
        }
        echo GFCommon::get_remote_message();
        $requested_form_id = absint($_GET['id']);
        if (empty($requested_form_id)) {
            return;
        }
        $lead = self::get_current_entry();
        if (is_wp_error($lead) || !$lead) {
            esc_html_e("Oops! We couldn't find your entry. Please try again", 'gravityforms');
            return;
        }
        $lead_id = $lead['id'];
        $form = self::get_current_form();
        $form_id = absint($form['id']);
        $total_count = self::get_total_count();
        $position = rgget('pos') ? rgget('pos') : 0;
        $prev_pos = !rgblank($position) && $position > 0 ? $position - 1 : false;
        $next_pos = !rgblank($position) && $position < self::$_total_count - 1 ? $position + 1 : false;
        $filter = rgget('filter');
        // unread filter requires special handling for pagination since entries are filter out of the query as they are read
        if ($filter == 'unread') {
            $next_pos = $position;
            if ($next_pos + 1 == $total_count) {
                $next_pos = false;
            }
        }
        RGFormsModel::update_lead_property($lead['id'], 'is_read', 1);
        switch (RGForms::post('action')) {
            case 'update':
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                //Loading files that have been uploaded to temp folder
                $files = GFCommon::json_decode(stripslashes(RGForms::post('gform_uploaded_files')));
                if (!is_array($files)) {
                    $files = array();
                }
                $original_entry = $lead;
                GFFormsModel::$uploaded_files[$form_id] = $files;
                GFFormsModel::save_lead($form, $lead);
                /**
                 * Fires after the Entry is updated from the entry detail page.
                 *
                 * @param array   $form           The form object for the entry.
                 * @param integer $lead['id']     The entry ID.
                 * @param array   $original_entry The entry object before being updated.
                 */
                gf_do_action(array('gform_after_update_entry', $form['id']), $form, $lead['id'], $original_entry);
                $lead = RGFormsModel::get_lead($lead['id']);
                $lead = GFFormsModel::set_entry_meta($lead, $form);
                self::set_current_entry($lead);
                break;
            case 'add_note':
                check_admin_referer('gforms_update_note', 'gforms_update_note');
                $user_data = get_userdata($current_user->ID);
                RGFormsModel::add_note($lead['id'], $current_user->ID, $user_data->display_name, stripslashes($_POST['new_note']));
                //emailing notes if configured
                if (rgpost('gentry_email_notes_to')) {
                    GFCommon::log_debug('GFEntryDetail::lead_detail_page(): Preparing to email entry notes.');
                    $email_to = $_POST['gentry_email_notes_to'];
                    $email_from = $current_user->user_email;
                    $email_subject = stripslashes($_POST['gentry_email_subject']);
                    $body = stripslashes($_POST['new_note']);
                    $headers = "From: \"{$email_from}\" <{$email_from}> \r\n";
                    GFCommon::log_debug("GFEntryDetail::lead_detail_page(): Emailing notes - TO: {$email_to} SUBJECT: {$email_subject} BODY: {$body} HEADERS: {$headers}");
                    $is_success = wp_mail($email_to, $email_subject, $body, $headers);
                    $result = is_wp_error($is_success) ? $is_success->get_error_message() : $is_success;
                    GFCommon::log_debug("GFEntryDetail::lead_detail_page(): Result from wp_mail(): {$result}");
                    if (!is_wp_error($is_success) && $is_success) {
                        GFCommon::log_debug('GFEntryDetail::lead_detail_page(): Mail was passed from WordPress to the mail server.');
                    } else {
                        GFCommon::log_error('GFEntryDetail::lead_detail_page(): The mail message was passed off to WordPress for processing, but WordPress was unable to send the message.');
                    }
                    if (has_filter('phpmailer_init')) {
                        GFCommon::log_debug(__METHOD__ . '(): The WordPress phpmailer_init hook has been detected, usually used by SMTP plugins, it can impact mail delivery.');
                    }
                    /**
                     * Fires after a note is attached to an entry and sent as an email
                     *
                     * @param string $result        The Error message or success message when the entry note is sent
                     * @param string $email_to      The email address to send the entry note to
                     * @param string $email_from    The email address from which the email is sent from
                     * @param string $email_subject The subject of the email that is sent
                     * @param mixed  $body          The Full body of the email containing the message after the note is sent
                     * @param array  $form          The current form object
                     * @param array  $lead          The Current lead object
                     */
                    do_action('gform_post_send_entry_note', $result, $email_to, $email_from, $email_subject, $body, $form, $lead);
                }
                break;
            case 'add_quick_note':
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                $user_data = get_userdata($current_user->ID);
                RGFormsModel::add_note($lead['id'], $current_user->ID, $user_data->display_name, stripslashes($_POST['quick_note']));
                break;
            case 'bulk':
                check_admin_referer('gforms_update_note', 'gforms_update_note');
                if ($_POST['bulk_action'] == 'delete') {
                    if (!GFCommon::current_user_can_any('gravityforms_edit_entry_notes')) {
                        die(esc_html__("You don't have adequate permission to delete notes.", 'gravityforms'));
                    }
                    RGFormsModel::delete_notes($_POST['note']);
                }
                break;
            case 'trash':
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                RGFormsModel::update_lead_property($lead['id'], 'status', 'trash');
                $lead = RGFormsModel::get_lead($lead['id']);
                self::set_current_entry($lead);
                break;
            case 'restore':
            case 'unspam':
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                RGFormsModel::update_lead_property($lead['id'], 'status', 'active');
                $lead = RGFormsModel::get_lead($lead['id']);
                self::set_current_entry($lead);
                break;
            case 'spam':
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                RGFormsModel::update_lead_property($lead['id'], 'status', 'spam');
                $lead = RGFormsModel::get_lead($lead['id']);
                self::set_current_entry($lead);
                break;
            case 'delete':
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                if (!GFCommon::current_user_can_any('gravityforms_delete_entries')) {
                    die(esc_html__("You don't have adequate permission to delete entries.", 'gravityforms'));
                }
                RGFormsModel::delete_lead($lead['id']);
                ?>
				<script type="text/javascript">
					document.location.href = '<?php 
                echo 'admin.php?page=gf_entries&view=entries&id=' . absint($form['id']);
                ?>
';
				</script>
				<?php 
                break;
        }
        $mode = empty($_POST['screen_mode']) ? 'view' : $_POST['screen_mode'];
        $screen = get_current_screen();
        $min = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG || isset($_GET['gform_debug']) ? '' : '.min';
        ?>
		<link rel="stylesheet" href="<?php 
        echo GFCommon::get_base_url();
        ?>
/css/admin<?php 
        echo $min;
        ?>
.css?ver=<?php 
        echo GFForms::$version;
        ?>
" />
		<script type="text/javascript">

			jQuery(document).ready(function () {
				toggleNotificationOverride(true);
				jQuery('#gform_update_button').prop('disabled', false);
				if(typeof postboxes != 'undefined'){
					jQuery('.if-js-closed').removeClass('if-js-closed').addClass('closed');
					postboxes.add_postbox_toggles( <?php 
        echo json_encode($screen->id);
        ?>
);
				}
			});

			function DeleteFile(leadId, fieldId, deleteButton) {
				if (confirm(<?php 
        echo json_encode(__("Would you like to delete this file? 'Cancel' to stop. 'OK' to delete", 'gravityforms'));
        ?>
)) {
					var fileIndex = jQuery(deleteButton).parent().index();
					var mysack = new sack("<?php 
        echo admin_url('admin-ajax.php');
        ?>
");
					mysack.execute = 1;
					mysack.method = 'POST';
					mysack.setVar("action", "rg_delete_file");
					mysack.setVar("rg_delete_file", "<?php 
        echo wp_create_nonce('rg_delete_file');
        ?>
");
					mysack.setVar("lead_id", leadId);
					mysack.setVar("field_id", fieldId);
					mysack.setVar("file_index", fileIndex);
					mysack.onError = function () {
						alert(<?php 
        echo json_encode(__('Ajax error while deleting field.', 'gravityforms'));
        ?>
)
					};
					mysack.runAJAX();

					return true;
				}
			}

			function EndDeleteFile(fieldId, fileIndex) {
				var previewFileSelector = "#preview_existing_files_" + fieldId + " .ginput_preview";
				var $previewFiles = jQuery(previewFileSelector);
				var rr = $previewFiles.eq(fileIndex);
				$previewFiles.eq(fileIndex).remove();
				var $visiblePreviewFields = jQuery(previewFileSelector);
				if ($visiblePreviewFields.length == 0) {
					jQuery('#preview_' + fieldId).hide();
					jQuery('#upload_' + fieldId).show('slow');
				}
			}

			function ToggleShowEmptyFields() {
				if (jQuery("#gentry_display_empty_fields").is(":checked")) {
					createCookie("gf_display_empty_fields", true, 10000);
					document.location = document.location.href;
				}
				else {
					eraseCookie("gf_display_empty_fields");
					document.location = document.location.href;
				}
			}

			function createCookie(name, value, days) {
				if (days) {
					var date = new Date();
					date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
					var expires = "; expires=" + date.toGMTString();
				}
				else var expires = "";
				document.cookie = name + "=" + value + expires + "; path=/";
			}

			function eraseCookie(name) {
				createCookie(name, "", -1);
			}

			function ResendNotifications() {

				var selectedNotifications = new Array();
				jQuery(".gform_notifications:checked").each(function () {
					selectedNotifications.push(jQuery(this).val());
				});

				var sendTo = jQuery('#notification_override_email').val();

				if (selectedNotifications.length <= 0) {
					displayMessage(<?php 
        echo json_encode(__('You must select at least one type of notification to resend.', 'gravityforms'));
        ?>
, 'error', '#notifications');
					return;
				}

				jQuery('#please_wait_container').fadeIn();

				jQuery.post(ajaxurl, {
						action                 : "gf_resend_notifications",
						gf_resend_notifications: '<?php 
        echo wp_create_nonce('gf_resend_notifications');
        ?>
',
						notifications          : jQuery.toJSON(selectedNotifications),
						sendTo                 : sendTo,
						leadIds                : '<?php 
        echo absint($lead['id']);
        ?>
',
						formId                 : '<?php 
        echo absint($form['id']);
        ?>
'
					},
					function (response) {
						if (response) {
							displayMessage(response, "error", "#notifications");
						} else {
							displayMessage(<?php 
        echo json_encode(esc_html__('Notifications were resent successfully.', 'gravityforms'));
        ?>
, "updated", "#notifications" );

							// reset UI
							jQuery(".gform_notifications").attr( 'checked', false );
							jQuery('#notification_override_email').val('');

							toggleNotificationOverride();

						}

						jQuery('#please_wait_container').hide();
						setTimeout(function () {
							jQuery('#notifications_container').find('.message').slideUp();
						}, 5000);
					}
				);

			}

			function displayMessage( message, messageClass, container ) {
				jQuery( container ).find( '.message' ).hide().html( message ).attr( 'class', 'message ' + messageClass ).slideDown();
			}

			function toggleNotificationOverride(isInit) {

				if (isInit)
					jQuery('#notification_override_email').val('');

				if (jQuery(".gform_notifications:checked").length > 0) {
					jQuery('#notifications_override_settings').slideDown();
				}
				else {
					jQuery('#notifications_override_settings').slideUp(function () {
						jQuery('#notification_override_email').val('');
					});
				}
			}

		</script>

		<form method="post" id="entry_form" enctype='multipart/form-data'>
			<?php 
        wp_nonce_field('gforms_save_entry', 'gforms_save_entry');
        ?>
			<input type="hidden" name="action" id="action" value="" />
			<input type="hidden" name="screen_mode" id="screen_mode" value="<?php 
        echo esc_attr(rgpost('screen_mode'));
        ?>
" />

			<input type="hidden" name="entry_id" id="entry_id" value="<?php 
        echo absint($lead['id']);
        ?>
" />

			<div class="wrap gf_entry_wrap">
				<h2 class="gf_admin_page_title">
					<span><?php 
        echo esc_html(rgar($form, 'title'));
        ?>
</span>
					<?php 
        if (isset($_GET['pos'])) {
            ?>
						<div class="gf_entry_detail_pagination">
							<ul>
								<li class="gf_entry_count">
									<span>entry <strong><?php 
            echo $position + 1;
            ?>
</strong> of <strong><?php 
            echo $total_count;
            ?>
</strong></span>
								</li>
								<li class="gf_entry_prev gf_entry_pagination"><?php 
            echo GFEntryDetail::entry_detail_pagination_link($prev_pos, 'Previous Entry', 'gf_entry_prev_link', 'fa fa-arrow-circle-o-left');
            ?>
</li>
								<li class="gf_entry_next gf_entry_pagination"><?php 
            echo GFEntryDetail::entry_detail_pagination_link($next_pos, 'Next Entry', 'gf_entry_next_link', 'fa fa-arrow-circle-o-right');
            ?>
</li>
							</ul>
						</div>
					<?php 
        }
        ?>

					<span class="gf_admin_page_subtitle">
				<span class="gf_admin_page_formid">ID: <?php 
        echo absint($form['id']);
        ?>
</span>
			</span>

					<?php 
        $gf_entry_locking = new GFEntryLocking();
        $gf_entry_locking->lock_info($lead_id);
        ?>
				</h2>

				<?php 
        GFCommon::display_dismissible_message();
        ?>

				<?php 
        RGForms::top_toolbar();
        ?>

				<div id="poststuff">
					<?php 
        wp_nonce_field('closedpostboxes', 'closedpostboxesnonce', false);
        ?>
					<?php 
        wp_nonce_field('meta-box-order', 'meta-box-order-nonce', false);
        ?>


					<div id="post-body" class="metabox-holder columns-2">
						<div id="post-body-content">
							<?php 
        /**
         * Fires before the entry detail content is displayed
         *
         * @param array $form The Form object
         * @param array $lead The Entry object
         */
        do_action('gform_entry_detail_content_before', $form, $lead);
        if ($mode == 'view') {
            self::lead_detail_grid($form, $lead, true);
        } else {
            self::lead_detail_edit($form, $lead);
        }
        /**
         * Fires when entry details are displayed
         *
         * @param array $form The Form object
         * @param array $lead The Entry object
         */
        do_action('gform_entry_detail', $form, $lead);
        ?>
						</div>

						<div id="postbox-container-1" class="postbox-container">

							<?php 
        /**
         * Fires before the entry detail sidebar is generated
         *
         * @param array $form The Form object
         * @param array $lead The Entry object
         */
        do_action('gform_entry_detail_sidebar_before', $form, $lead);
        ?>
							<?php 
        do_meta_boxes($screen->id, 'side', array('form' => $form, 'entry' => $lead, 'mode' => $mode));
        ?>

							<?php 
        /**
         * Inserts information into the middle of the entry detail sidebar
         *
         * @param array $form The Form object
         * @param array $lead The Entry object
         */
        do_action('gform_entry_detail_sidebar_middle', $form, $lead);
        ?>

							<!-- begin print button -->
							<div class="detail-view-print">
								<a href="javascript:;" onclick="var notes_qs = jQuery('#gform_print_notes').is(':checked') ? '&notes=1' : ''; var url='<?php 
        echo trailingslashit(site_url());
        ?>
?gf_page=print-entry&fid=<?php 
        echo absint($form['id']);
        ?>
&lid=<?php 
        echo absint($lead['id']);
        ?>
' + notes_qs; window.open (url,'printwindow');" class="button"><?php 
        esc_html_e('Print', 'gravityforms');
        ?>
</a>
								<?php 
        if (GFCommon::current_user_can_any('gravityforms_view_entry_notes')) {
            ?>
									<input type="checkbox" name="print_notes" value="print_notes" checked="checked" id="gform_print_notes" />
									<label for="print_notes"><?php 
            esc_html_e('include notes', 'gravityforms');
            ?>
</label>
								<?php 
        }
        ?>
							</div>
							<!-- end print button -->
							<?php 
        /**
         * Fires after the entry detail sidebar information.
         *
         * @param array $form The Form object
         * @param array $lead The Entry object
         */
        do_action('gform_entry_detail_sidebar_after', $form, $lead);
        ?>
						</div>

						<div id="postbox-container-2" class="postbox-container">
							<?php 
        do_meta_boxes($screen->id, 'normal', array('form' => $form, 'entry' => $lead, 'mode' => $mode));
        ?>
							<?php 
        /**
         * Fires after the entry detail content is displayed
         *
         * @param array $form The Form object
         * @param array $lead The Entry object
         */
        do_action('gform_entry_detail_content_after', $form, $lead);
        ?>
						</div>
					</div>
				</div>
			</div>
		</form>
		<?php 
        if (rgpost('action') == 'update') {
            ?>
			<div class="updated fade" style="padding:6px;">
				<?php 
            esc_html_e('Entry Updated.', 'gravityforms');
            ?>
			</div>
			<?php 
        }
    }
<?php

if (isset($_POST) && !empty($_POST)) {
    check_admin_referer('gforms_save_entry', 'gforms_save_entry');
    //Loading files that have been uploaded to temp folder
    $files = GFCommon::json_decode(stripslashes(RGForms::post("gform_uploaded_files")));
    if (!is_array($files)) {
        $files = array();
    }
    GFFormsModel::$uploaded_files[$form_id] = $files;
    GFFormsModel::save_lead($form, $lead);
    do_action("gform_after_update_entry", $form, $lead["id"]);
    do_action("gform_after_update_entry_{$form["id"]}", $form, $lead["id"]);
    $lead = RGFormsModel::get_lead($lead["id"]);
    $lead = GFFormsModel::set_entry_meta($lead, $form);
    $formid = $lead['form_id'];
    $where = 'form_id =' . $formid;
    $params = array('where' => $where);
    $templates = gettplList($params);
    $fieldmap = gettplFieldMap($params);
    if (!empty($templates['meta']['files'])) {
        $return = tpl_combine($lead, $templates, $fieldmap);
    }
}
Ejemplo n.º 17
0
    public static function leads_page($form_id)
    {
        global $wpdb;
        //quit if version of wp is not supported
        if (!GFCommon::ensure_wp_version()) {
            return;
        }
        echo GFCommon::get_remote_message();
        $action = RGForms::post("action");
        $filter = rgget("filter");
        $search = rgget("s");
        $page_index = empty($_GET["paged"]) ? 0 : intval($_GET["paged"]) - 1;
        $star = $filter == "star" ? 1 : null;
        // is_numeric(RGForms::get("star")) ? intval(RGForms::get("star")) : null;
        $read = $filter == "unread" ? 0 : null;
        //is_numeric(RGForms::get("read")) ? intval(RGForms::get("read")) : null;
        $status = in_array($filter, array("trash", "spam")) ? $filter : "active";
        $update_message = "";
        switch ($action) {
            case "delete":
                check_admin_referer('gforms_entry_list', 'gforms_entry_list');
                $lead_id = $_POST["action_argument"];
                RGFormsModel::delete_lead($lead_id);
                $update_message = __("Entry deleted.", "gravityforms");
                break;
            case "bulk":
                check_admin_referer('gforms_entry_list', 'gforms_entry_list');
                $bulk_action = !empty($_POST["bulk_action"]) ? $_POST["bulk_action"] : $_POST["bulk_action2"];
                $select_all = rgpost("all_entries");
                $leads = empty($select_all) ? $_POST["lead"] : GFFormsModel::get_lead_ids($form_id, $search, $star, $read, null, null, $status);
                $entry_count = count($leads) > 1 ? sprintf(__("%d entries", "gravityforms"), count($leads)) : __("1 entry", "gravityforms");
                switch ($bulk_action) {
                    case "delete":
                        RGFormsModel::delete_leads($leads);
                        $update_message = sprintf(__("%s deleted.", "gravityforms"), $entry_count);
                        break;
                    case "trash":
                        RGFormsModel::update_leads_property($leads, "status", "trash");
                        $update_message = sprintf(__("%s moved to Trash.", "gravityforms"), $entry_count);
                        break;
                    case "restore":
                        RGFormsModel::update_leads_property($leads, "status", "active");
                        $update_message = sprintf(__("%s restored from the Trash.", "gravityforms"), $entry_count);
                        break;
                    case "unspam":
                        RGFormsModel::update_leads_property($leads, "status", "active");
                        $update_message = sprintf(__("%s restored from the spam.", "gravityforms"), $entry_count);
                        break;
                    case "spam":
                        RGFormsModel::update_leads_property($leads, "status", "spam");
                        $update_message = sprintf(__("%s marked as spam.", "gravityforms"), $entry_count);
                        break;
                    case "mark_read":
                        RGFormsModel::update_leads_property($leads, "is_read", 1);
                        $update_message = sprintf(__("%s marked as read.", "gravityforms"), $entry_count);
                        break;
                    case "mark_unread":
                        RGFormsModel::update_leads_property($leads, "is_read", 0);
                        $update_message = sprintf(__("%s marked as unread.", "gravityforms"), $entry_count);
                        break;
                    case "add_star":
                        RGFormsModel::update_leads_property($leads, "is_starred", 1);
                        $update_message = sprintf(__("%s starred.", "gravityforms"), $entry_count);
                        break;
                    case "remove_star":
                        RGFormsModel::update_leads_property($leads, "is_starred", 0);
                        $update_message = sprintf(__("%s unstarred.", "gravityforms"), $entry_count);
                        break;
                }
                break;
            case "change_columns":
                check_admin_referer('gforms_entry_list', 'gforms_entry_list');
                $columns = GFCommon::json_decode(stripslashes($_POST["grid_columns"]), true);
                RGFormsModel::update_grid_column_meta($form_id, $columns);
                break;
        }
        if (rgpost("button_delete_permanently")) {
            RGFormsModel::delete_leads_by_form($form_id, $filter);
        }
        $sort_field = empty($_GET["sort"]) ? 0 : $_GET["sort"];
        $sort_direction = empty($_GET["dir"]) ? "DESC" : $_GET["dir"];
        $form = RGFormsModel::get_form_meta($form_id);
        $sort_field_meta = RGFormsModel::get_field($form, $sort_field);
        $is_numeric = $sort_field_meta["type"] == "number";
        $page_size = apply_filters("gform_entry_page_size", apply_filters("gform_entry_page_size_{$form_id}", 20, $form_id), $form_id);
        $first_item_index = $page_index * $page_size;
        $leads = RGFormsModel::get_leads($form_id, $sort_field, $sort_direction, $search, $first_item_index, $page_size, $star, $read, $is_numeric, null, null, $status);
        $lead_count = RGFormsModel::get_lead_count($form_id, $search, $star, $read, null, null, $status);
        $summary = RGFormsModel::get_form_counts($form_id);
        $active_lead_count = $summary["total"];
        $unread_count = $summary["unread"];
        $starred_count = $summary["starred"];
        $spam_count = $summary["spam"];
        $trash_count = $summary["trash"];
        $columns = RGFormsModel::get_grid_columns($form_id, true);
        $search_qs = empty($search) ? "" : "&s=" . urlencode($search);
        $sort_qs = empty($sort_field) ? "" : "&sort={$sort_field}";
        $dir_qs = empty($sort_field) ? "" : "&dir={$sort_direction}";
        $star_qs = $star !== null ? "&star={$star}" : "";
        $read_qs = $read !== null ? "&read={$read}" : "";
        $filter_qs = "&filter=" . $filter;
        $display_total = ceil($lead_count / $page_size);
        $page_links = paginate_links(array('base' => admin_url("admin.php") . "?page=gf_entries&view=entries&id={$form_id}&%_%" . $search_qs . $sort_qs . $dir_qs . $star_qs . $read_qs . $filter_qs, 'format' => 'paged=%#%', 'prev_text' => __('&laquo;', 'gravityforms'), 'next_text' => __('&raquo;', 'gravityforms'), 'total' => $display_total, 'current' => $page_index + 1, 'show_all' => false));
        wp_print_styles(array("thickbox"));
        ?>

        <script type="text/javascript">

            var messageTimeout = false;

            function ChangeColumns(columns){
                jQuery("#action").val("change_columns");
                jQuery("#grid_columns").val(jQuery.toJSON(columns));
                tb_remove();
                jQuery("#lead_form")[0].submit();
            }

            function Search(sort_field_id, sort_direction, form_id, search, star, read, filter){
                var search_qs = search == "" ? "" : "&s=" + search;
                var star_qs = star == "" ? "" : "&star=" + star;
                var read_qs = read == "" ? "" : "&read=" + read;
                var filter_qs = filter == "" ? "" : "&filter=" + filter;

                var location = "?page=gf_entries&view=entries&id=" + form_id + "&sort=" + sort_field_id + "&dir=" + sort_direction + search_qs + star_qs + read_qs + filter_qs;
                document.location = location;
            }

            function ToggleStar(img, lead_id, filter){
                var is_starred = img.src.indexOf("star1.png") >=0
                if(is_starred)
                    img.src = img.src.replace("star1.png", "star0.png");
                else
                    img.src = img.src.replace("star0.png", "star1.png");

                jQuery("#lead_row_" + lead_id).toggleClass("lead_starred");
                //if viewing the starred entries, hide the row and adjust the paging counts
                if (filter == "star")
                {
                	var title = jQuery("#lead_row_" + lead_id);
                	title.css("display", "none");
                	UpdatePagingCounts(1);
				}

                UpdateCount("star_count", is_starred ? -1 : 1);

                UpdateLeadProperty(lead_id, "is_starred", is_starred ? 0 : 1);
            }

            function ToggleRead(lead_id, filter){
                var title = jQuery("#lead_row_" + lead_id);
                marking_read = title.hasClass("lead_unread");

                jQuery("#mark_read_" + lead_id).css("display", marking_read ? "none" : "inline");
                jQuery("#mark_unread_" + lead_id).css("display", marking_read ? "inline" : "none");
                jQuery("#is_unread_" + lead_id).css("display", marking_read ? "inline" : "none");
                title.toggleClass("lead_unread");
                //if viewing the unread entries, hide the row and adjust the paging counts
                if (filter == "unread")
                {
                	title.css("display", "none");
                	UpdatePagingCounts(1);
				}

                UpdateCount("unread_count", marking_read ? -1 : 1);
                UpdateLeadProperty(lead_id, "is_read", marking_read ? 1 : 0);
            }

            function UpdateLeadProperty(lead_id, name, value){
                var mysack = new sack("<?php 
        echo admin_url("admin-ajax.php");
        ?>
" );
                mysack.execute = 1;
                mysack.method = 'POST';
                mysack.setVar( "action", "rg_update_lead_property" );
                mysack.setVar( "rg_update_lead_property", "<?php 
        echo wp_create_nonce("rg_update_lead_property");
        ?>
" );
                mysack.setVar( "lead_id", lead_id);
                mysack.setVar( "name", name);
                mysack.setVar( "value", value);
                mysack.onError = function() { alert('<?php 
        echo esc_js(__("Ajax error while setting lead property", "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 UpdatePagingCounts(change){
				//update paging header/footer Displaying # - # of #, use counts from header, no need to use footer since they are the same, just update footer paging with header info
                var paging_range_max_header = jQuery("#paging_range_max_header");
                var paging_range_max_footer = jQuery("#paging_range_max_footer");
                var range_change_max = parseInt(paging_range_max_header.html()) - change;
                var paging_total_header = jQuery("#paging_total_header");
                var paging_total_footer = jQuery("#paging_total_footer");
                var total_change = parseInt(paging_total_header.html()) - change;
                var paging_range_min_header = jQuery("#paging_range_min_header");
                var paging_range_min_footer = jQuery("#paging_range_min_footer");
				//if min and max are the same, this is the last entry item on the page, clear out the displaying # - # of # text
                if (parseInt(paging_range_min_header.html()) == parseInt(paging_range_max_header.html()))
                {
					var paging_header = jQuery("#paging_header");
					paging_header.html("");
					var paging_footer = jQuery("#paging_footer");
					paging_footer.html("");
                }
                else
                {
                	paging_range_max_header.html(range_change_max + "");
                	paging_range_max_footer.html(range_change_max + "");
                	paging_total_header.html(total_change + "");
                	paging_total_footer.html(total_change + "");
				}
                gformVars.countAllEntries = gformVars.countAllEntries - change;
                setSelectAllText();
            }

            function DeleteLead(lead_id){
                jQuery("#action").val("delete");
                jQuery("#action_argument").val(lead_id);
                jQuery("#lead_form")[0].submit();
                return true;
            }

            function handleBulkApply(actionElement){

                var action = jQuery("#" + actionElement).val();
                var defaultModalOptions = '';
                var leadIds = getLeadIds();

                if(leadIds.length == 0){
                    alert('<?php 
        _e('Please select at least one entry.', 'gravityforms');
        ?>
');
                    return false;
                }

                switch(action){

                case 'resend_notifications':
                    resetResendNotificationsUI();
                    tb_show('<?php 
        _e("Resend Notifications", "gravityforms");
        ?>
', '#TB_inline?width=350&amp;inlineId=notifications_modal_container', '');
                    return false;
                    break;

                case 'print':
                    resetPrintUI();
                    tb_show('<?php 
        _e("Print Entries", "gravityforms");
        ?>
', '#TB_inline?width=350&amp;height=250&amp;inlineId=print_modal_container', '');
                    return false;
                    break;

                default:
                    jQuery('#action').val('bulk');
                }

            }

            function getLeadIds(){
                var all = jQuery("#all_entries").val();
                //compare string, the boolean isn't correct, even when casting to a boolean the 0 is set to true
                if(all == "1")
                    return 0;

                var leads = jQuery(".check-column input[name='lead[]']:checked");
                var leadIds = new Array();

                jQuery(leads).each(function(i){
                    leadIds[i] = jQuery(leads[i]).val();
                });

                return leadIds;
            }

            function BulkResendNotifications(){


                var selectedNotifications = new Array();
                jQuery(".gform_notifications:checked").each(function(){
                    selectedNotifications.push(jQuery(this).val());
                });
                var leadIds = getLeadIds();

                var sendTo = jQuery('#notification_override_email').val();

                if(selectedNotifications.length <=0) {
                    displayMessage("<?php 
        _e("You must select at least one type of notification to resend.", "gravityforms");
        ?>
", "error", "#notifications_container");
                    return;
                }

                jQuery('#please_wait_container').fadeIn();

                jQuery.post(ajaxurl, {
                    action : "gf_resend_notifications",
                    gf_resend_notifications : '<?php 
        echo wp_create_nonce('gf_resend_notifications');
        ?>
',
                    notifications: jQuery.toJSON(selectedNotifications),
                    sendTo : sendTo,
                    leadIds : leadIds,
                    filter: '<?php 
        echo esc_attr(rgget("filter"));
        ?>
',
                    search: '<?php 
        echo esc_attr(rgget("s"));
        ?>
',
                    formId : '<?php 
        echo $form['id'];
        ?>
'
                    },
                    function(response){

                        jQuery('#please_wait_container').hide();

                        if(response) {
                            displayMessage(response, "error", "#notifications_container");
                        } else {
                            var message = '<?php 
        _e("Notifications for %s were resent successfully.", "gravityforms");
        ?>
';
                            displayMessage(message.replace('%s', leadIds.length + ' ' + getPlural(leadIds.length, '<?php 
        _e('entry', 'gravityforms');
        ?>
', '<?php 
        _e('entries', 'gravityforms');
        ?>
')), "updated", "#lead_form");
                            closeModal(true);
                        }

                    }
                );

            }

            function resetResendNotificationsUI(){

                jQuery('#notification_admin, #notification_user').attr('checked', false);
                jQuery('#notifications_container .message, #notifications_override_settings').hide();

            }

            function BulkPrint(){

                var leadIds = getLeadIds();
                if(leadIds != 0)
                    leadIds = leadIds.join(',');
                var leadsQS = '&lid=' + leadIds;
                var notesQS = jQuery('#gform_print_notes').is(':checked') ? '&notes=1' : '';
                var pageBreakQS = jQuery('#gform_print_page_break').is(':checked') ? '&page_break=1' : '';
                var filterQS = '&filter=<?php 
        echo esc_attr(rgget("filter"));
        ?>
';
                var searchQS = '&search=<?php 
        echo esc_attr(rgget("s"));
        ?>
';

                var url = '<?php 
        echo trailingslashit(site_url());
        ?>
?gf_page=print-entry&fid=<?php 
        echo $form['id'];
        ?>
' + leadsQS + notesQS + pageBreakQS + filterQS + searchQS;
                window.open (url,'printwindow');

                closeModal(true);
                hideMessage('#lead_form', false);
            }

            function resetPrintUI(){

                jQuery('#print_options input[type="checkbox"]').attr('checked', false);

            }

            function displayMessage(message, messageClass, container){

                hideMessage(container, true);

                var messageBox = jQuery('<div class="message ' + messageClass + '" style="display:none;"><p>' + message + '</p></div>');
                jQuery(messageBox).prependTo(container).slideDown();

                if(messageClass == 'updated')
                    messageTimeout = setTimeout(function(){ hideMessage(container, false); }, 10000);

            }

            function hideMessage(container, messageQueued){

                if(messageTimeout)
                    clearTimeout(messageTimeout);

                var messageBox = jQuery(container).find('.message');

                if(messageQueued)
                    jQuery(messageBox).remove();
                else
                    jQuery(messageBox).slideUp(function(){ jQuery(this).remove(); });

            }

            function closeModal(isSuccess) {

                if(isSuccess)
                    jQuery('.check-column input[type="checkbox"]').attr('checked', false);

                tb_remove();

            }

            function getPlural(count, singular, plural) {
                return count > 1 ? plural : singular;
            }

            function toggleNotificationOverride(isInit) {

                if(isInit)
                    jQuery('#notification_override_email').val('');

                if(jQuery(".gform_notifications:checked").length > 0 ) {
                    jQuery('#notifications_override_settings').slideDown();
                } else {
                    jQuery('#notifications_override_settings').slideUp(function(){
                        jQuery('#notification_override_email').val('');
                    });
                }

            }

            // Select All

            var gformStrings = {
                "allEntriesOnPageAreSelected" : "<?php 
        printf(__("All %s{0}%s entries on this page are selected.", "gravityforms"), "<strong>", "</strong>");
        ?>
",
                "selectAll" : "<?php 
        printf(__("Select all %s{0}%s entries.", "gravityforms"), "<strong>", "</strong>");
        ?>
",
                "allEntriesSelected" : "<?php 
        printf(__("All %s{0}%s entries have been selected.", "gravityforms"), "<strong>", "</strong>");
        ?>
",
                "clearSelection" : "<?php 
        _e("Clear selection", "gravityforms");
        ?>
"
            }

            var gformVars = {
                "countAllEntries" : <?php 
        echo intval($lead_count);
        ?>
,
                "perPage" : <?php 
        echo intval($page_size);
        ?>
            }

            function setSelectAllText(){
                var tr = getSelectAllText();
                jQuery("#gform-select-all-message td").html(tr);
            }

            function getSelectAllText(){
                var count;
                count = jQuery("#gf_entry_list tr:visible:not('#gform-select-all-message')").length;
                return gformStrings.allEntriesOnPageAreSelected.format(count) + " <a href='javascript:void(0)' onclick='selectAllEntriesOnAllPages();'>" + gformStrings.selectAll.format(gformVars.countAllEntries) + "</a>";
            }

            function getSelectAllTr(){
                var t = getSelectAllText();
                var colspan = jQuery("#gf_entry_list").find("tr:first td").length + 1;
                return "<tr id='gform-select-all-message' style='display:none;background-color:lightyellow;text-align:center;'><td colspan='{0}'>{1}</td></tr>".format(colspan, t);
            }
            function toggleSelectAll(visible){
                if(gformVars.countAllEntries <= gformVars.perPage){
                    jQuery('#gform-select-all-message').hide();
                    return;
                }

                if(visible)
                    setSelectAllText();
                jQuery('#gform-select-all-message').toggle(visible);
            }


            function clearSelectAllEntries(){
                jQuery(".check-column input[type=checkbox]").prop('checked', false);
                clearSelectAllMessage();
            }

            function clearSelectAllMessage(){
                jQuery("#all_entries").val("0");
                jQuery("#gform-select-all-message").hide();
                jQuery("#gform-select-all-message td").html('');
            }

            function selectAllEntriesOnAllPages (){
                var trHtmlClearSelection;
                trHtmlClearSelection = gformStrings.allEntriesSelected.format(gformVars.countAllEntries) + " <a href='javascript:void(0);' onclick='clearSelectAllEntries();'>" + gformStrings.clearSelection + "</a>";
                jQuery("#all_entries").val("1");
                jQuery("#gform-select-all-message td").html(trHtmlClearSelection);
            }

            function SetUpSelectAllEntries(){

                if(gformVars.countAllEntries > gformVars.perPage){
                    var tr = getSelectAllTr();
                    jQuery("#gf_entry_list").prepend(tr);
                    jQuery(".headercb").click(function(){
                        toggleSelectAll(jQuery(this).prop('checked'));
                    });
                    jQuery("#gf_entry_list .check-column input[type=checkbox]").click(function(){
                        clearSelectAllMessage();
                    })
                }
            }

            String.prototype.format = function() {
                var args = arguments;
                return this.replace(/{(\d+)}/g, function (match, number) {
                    return typeof args[number] != 'undefined' ? args[number] : match;
                });
            };

            // end Select All

            jQuery(document).ready(function(){
                jQuery("#lead_search").keypress(function(event){
                    if(event.keyCode == 13){
                        Search('<?php 
        echo $sort_field;
        ?>
', '<?php 
        echo $sort_direction;
        ?>
', <?php 
        echo $form_id;
        ?>
, this.value, '<?php 
        echo $star;
        ?>
', '<?php 
        echo $read;
        ?>
', '<?php 
        echo $filter;
        ?>
');
                        event.preventDefault();
                    }
                });

                var action = '<?php 
        echo $action;
        ?>
';
                var message = '<?php 
        echo $update_message;
        ?>
';
                if(action && message)
                    displayMessage(message, 'updated', '#lead_form');

                var list = jQuery("#gf_entry_list").wpList( { alt: '<?php 
        echo esc_js(__('Entry List', 'gravityforms'));
        ?>
'} );
                list.bind('wpListDelEnd', function(e, s, list){

                    var currentStatus = "<?php 
        echo $filter == "trash" || $filter == "spam" ? $filter : "active";
        ?>
";
                    var filter = "<?php 
        echo $filter;
        ?>
";
                    var movingTo = "active";
                    if(s.data.status == "trash")
                        movingTo = "trash";
                    else if(s.data.status == "spam")
                        movingTo = "spam";
                    else if(s.data.status == "delete")
                        movingTo = "delete";

                    var id = s.data.entry;
                    var title = jQuery("#lead_row_" + id);
                    var isUnread = title.hasClass("lead_unread");
                    var isStarred = title.hasClass("lead_starred");

                    if(movingTo != "delete"){
                        //Updating All count
                        var allCount = currentStatus == "active" ? -1 : 1;
                        UpdateCount("all_count", allCount);

                        //Updating Unread count
                        if(isUnread){
                            var unreadCount = currentStatus == "active" ? -1 : 1;
                            UpdateCount("unread_count", unreadCount);
                        }

                        //Updating Starred count
                        if(isStarred){
                            var starCount = currentStatus == "active" ? -1 : 1;
                            UpdateCount("star_count", starCount);
                        }
                    }

                    //Updating Spam count
                    if(currentStatus == "spam" || movingTo == "spam"){
                        var spamCount = movingTo == "spam" ? 1 : -1;
                        UpdateCount("spam_count", spamCount);
                        //adjust paging counts
                        if (filter == "spam")
                        {
                        	UpdatePagingCounts(1);
						}
						else
						{
							UpdatePagingCounts(spamCount);
						}
                    }

                    //Updating trash count
                    if(currentStatus == "trash" || movingTo == "trash"){
                        var trashCount = movingTo == "trash" ? 1 : -1;
                        UpdateCount("trash_count", trashCount);
                        //adjust paging counts
                        if (filter == "trash")
                        {
                        	UpdatePagingCounts(1);
						}
						else
						{
							UpdatePagingCounts(trashCount);
						}
                    }

                });

                SetUpSelectAllEntries();
            });

        </script>
        <link rel="stylesheet" href="<?php 
        echo GFCommon::get_base_url();
        ?>
/css/admin.css" type="text/css" />
        <style>
            /*#TB_window { height: 400px !important; }
            #TB_ajaxContent[style] { height: 370px !important; }*/
            .lead_unread a, .lead_unread td{font-weight: bold;}
            .lead_spam_trash a, .lead_spam_trash td{font-weight:normal;}
            .row-actions a { font-weight:normal;}
            .entry_nowrap{ overflow:hidden; white-space:nowrap; }
            .message { margin: 15px 0 0 !important; }
        </style>


        <div class="wrap">

            <div class="icon32" id="gravity-entry-icon"><br></div>
            <h2 class="gf_admin_page_title"><span><?php 
        _e("Entries", "gravityforms");
        ?>
</span><span class="gf_admin_page_subtitle"><span class="gf_admin_page_formid">ID: <?php 
        echo $form['id'];
        ?>
</span><?php 
        echo $form['title'];
        ?>
</span></h2>

            <?php 
        RGForms::top_toolbar();
        ?>

            <form id="lead_form" method="post">
                <?php 
        wp_nonce_field('gforms_entry_list', 'gforms_entry_list');
        ?>

                <input type="hidden" value="" name="grid_columns" id="grid_columns" />
                <input type="hidden" value="" name="action" id="action" />
                <input type="hidden" value="" name="action_argument" id="action_argument" />
                <input type="hidden" value="" name="all_entries" id="all_entries" />

                <ul class="subsubsub">
                    <li><a class="<?php 
        echo empty($filter) ? "current" : "";
        ?>
" href="?page=gf_entries&view=entries&id=<?php 
        echo $form_id;
        ?>
"><?php 
        _e("All", "gravityforms");
        ?>
 <span class="count">(<span id="all_count"><?php 
        echo $active_lead_count;
        ?>
</span>)</span></a> | </li>
                    <li><a class="<?php 
        echo $read !== null ? "current" : "";
        ?>
" href="?page=gf_entries&view=entries&id=<?php 
        echo $form_id;
        ?>
&filter=unread"><?php 
        _e("Unread", "gravityforms");
        ?>
 <span class="count">(<span id="unread_count"><?php 
        echo $unread_count;
        ?>
</span>)</span></a> | </li>
                    <li><a class="<?php 
        echo $star !== null ? "current" : "";
        ?>
" href="?page=gf_entries&view=entries&id=<?php 
        echo $form_id;
        ?>
&filter=star"><?php 
        _e("Starred", "gravityforms");
        ?>
 <span class="count">(<span id="star_count"><?php 
        echo $starred_count;
        ?>
</span>)</span></a> | </li>
                    <?php 
        if (GFCommon::akismet_enabled($form_id)) {
            ?>
                        <li><a class="<?php 
            echo $filter == "spam" ? "current" : "";
            ?>
" href="?page=gf_entries&view=entries&id=<?php 
            echo $form_id;
            ?>
&filter=spam"><?php 
            _e("Spam", "gravityforms");
            ?>
 <span class="count">(<span id="spam_count"><?php 
            echo $spam_count;
            ?>
</span>)</span></a> | </li>
                        <?php 
        }
        ?>
                    <li><a class="<?php 
        echo $filter == "trash" ? "current" : "";
        ?>
" href="?page=gf_entries&view=entries&id=<?php 
        echo $form_id;
        ?>
&filter=trash"><?php 
        _e("Trash", "gravityforms");
        ?>
 <span class="count">(<span id="trash_count"><?php 
        echo $trash_count;
        ?>
</span>)</span></a></li>
                </ul>
                <p class="search-box">
                    <label class="hidden" for="lead_search"><?php 
        _e("Search Entries:", "gravityforms");
        ?>
</label>
                    <input type="text" id="lead_search" value="<?php 
        echo $search;
        ?>
"><a class="button" id="lead_search_button" href="javascript:Search('<?php 
        echo $sort_field;
        ?>
', '<?php 
        echo $sort_direction;
        ?>
', <?php 
        echo $form_id;
        ?>
, jQuery('#lead_search').val(), '<?php 
        echo $star;
        ?>
', '<?php 
        echo $read;
        ?>
', '<?php 
        echo $filter;
        ?>
');"><?php 
        _e("Search", "gravityforms");
        ?>
</a>

                </p>
                <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 
        switch ($filter) {
            case "trash":
                ?>
                                    <option value='restore'><?php 
                _e("Restore", "gravityforms");
                ?>
</option>
                                    <?php 
                if (GFCommon::current_user_can_any("gravityforms_delete_entries")) {
                    ?>
                                        <option value='delete'><?php 
                    _e("Delete Permanently", "gravityforms");
                    ?>
</option>
                                        <?php 
                }
                break;
            case "spam":
                ?>
                                    <option value='unspam'><?php 
                _e("Not Spam", "gravityforms");
                ?>
</option>
                                    <?php 
                if (GFCommon::current_user_can_any("gravityforms_delete_entries")) {
                    ?>
                                        <option value='delete'><?php 
                    _e("Delete Permanently", "gravityforms");
                    ?>
</option>
                                        <?php 
                }
                break;
            default:
                ?>
                                    <option value='mark_read'><?php 
                _e("Mark as Read", "gravityforms");
                ?>
</option>
                                    <option value='mark_unread'><?php 
                _e("Mark as Unread", "gravityforms");
                ?>
</option>
                                    <option value='add_star'><?php 
                _e("Add Star", "gravityforms");
                ?>
</option>
                                    <option value='remove_star'><?php 
                _e("Remove Star", "gravityforms");
                ?>
</option>
                                    <option value='resend_notifications'><?php 
                _e("Resend Notifications", "gravityforms");
                ?>
</option>
                                    <option value='print'><?php 
                _e("Print", "gravityforms");
                ?>
</option>

                                    <?php 
                if (GFCommon::akismet_enabled($form_id)) {
                    ?>
                                        <option value='spam'><?php 
                    _e("Spam", "gravityforms");
                    ?>
</option>
                                        <?php 
                }
                if (GFCommon::current_user_can_any("gravityforms_delete_entries")) {
                    ?>
                                        <option value='trash'><?php 
                    _e("Trash", "gravityforms");
                    ?>
</option>
                                        <?php 
                }
        }
        ?>
                        </select>
                        <?php 
        $apply_button = '<input type="submit" class="button" value="' . __("Apply", "gravityforms") . '" onclick="return handleBulkApply(\'bulk_action\');" />';
        echo apply_filters("gform_entry_apply_button", $apply_button);
        if (in_array($filter, array("trash", "spam"))) {
            $message = $filter == "trash" ? __("WARNING! This operation cannot be undone. Empty trash? \\'Ok\\' to empty trash. \\'Cancel\\' to abort.", "gravityforms") : __("WARNING! This operation cannot be undone. Permanently delete all spam? \\'Ok\\' to delete. \\'Cancel\\' to abort.", "gravityforms");
            $button_label = $filter == "trash" ? __("Empty Trash", "gravityforms") : __("Delete All Spam", "gravityforms");
            ?>
                            <input type="submit" class="button" name="button_delete_permanently" value="<?php 
            echo $button_label;
            ?>
" onclick="return confirm('<?php 
            echo esc_attr($message);
            ?>
');" />
                            <?php 
        }
        ?>

                        <div id="notifications_modal_container" style="display:none;">
                            <div id="notifications_container">

                                <div id="post_tag" class="tagsdiv">
                                    <div id="resend_notifications_options">

                                        <?php 
        if (!is_array($form["notifications"]) || count($form["notifications"]) <= 0) {
            ?>
                                            <p class="description"><?php 
            _e("You cannot resend notifications for these entries because this form does not currently have any notifications configured.", "gravityforms");
            ?>
</p>

                                            <a href="<?php 
            echo admin_url("admin.php?page=gf_edit_forms&view=settings&subview=notification&id={$form["id"]}");
            ?>
" class="button"><?php 
            _e("Configure Notifications", "gravityforms");
            ?>
</a>
                                        <?php 
        } else {
            ?>
                                            <p class="description"><?php 
            _e("Specify which notifications you would like to resend for the selected entries.", "gravityforms");
            ?>
</p>
                                            <?php 
            foreach ($form["notifications"] as $notification) {
                ?>
                                                <input type="checkbox" class="gform_notifications" value="<?php 
                echo $notification["id"];
                ?>
" id="notification_<?php 
                echo $notification["id"];
                ?>
" onclick="toggleNotificationOverride();" />
                                                <label for="notification_<?php 
                echo $notification["id"];
                ?>
"><?php 
                echo $notification["name"];
                ?>
</label> <br /><br />
                                            <?php 
            }
            ?>
                                            <div id="notifications_override_settings" style="display:none;">

                                                <p class="description" style="padding-top:0; margin-top:0;">You may override the default notification settings
                                                    by entering a comma delimited list of emails to which the selected notifications should be sent.</p>
                                                <label for="notification_override_email"><?php 
            _e("Send To", "gravityforms");
            ?>
 <?php 
            gform_tooltip("notification_override_email");
            ?>
</label><br />
                                                <input type="text" name="notification_override_email" id="notification_override_email" style="width:99%;" /><br /><br />

                                            </div>

                                            <input type="button" name="notification_resend" id="notification_resend" value="<?php 
            _e("Resend Notifications", "gravityforms");
            ?>
" class="button" style="" onclick="BulkResendNotifications();"/>
                                            <span id="please_wait_container" style="display:none; margin-left: 5px;">
                                                <img src="<?php 
            echo GFCommon::get_base_url();
            ?>
/images/loading.gif"> <?php 
            _e("Resending...", "gravityforms");
            ?>
                                            </span>
                                        <?php 
        }
        ?>

                                    </div>

                                    <div id="resend_notifications_close" style="display:none;margin:10px 0 0;">
                                        <input type="button" name="resend_notifications_close_button" value="<?php 
        _e("Close Window", "gravityforms");
        ?>
" class="button" style="" onclick="closeModal(true);"/>
                                    </div>

                                </div>

                            </div>
                        </div> <!-- / Resend Notifications -->

                        <div id="print_modal_container" style="display:none;">
                            <div id="print_container">

                                <div class="tagsdiv">
                                    <div id="print_options">

                                        <p class="description"><?php 
        _e("Print all of the selected entries at once.", "gravityforms");
        ?>
</p>

                                        <?php 
        if (GFCommon::current_user_can_any("gravityforms_view_entry_notes")) {
            ?>
                                            <input type="checkbox" name="gform_print_notes" value="print_notes" checked="checked" id="gform_print_notes" />
                                            <label for="gform_print_notes"><?php 
            _e("Include notes", "gravityforms");
            ?>
</label>
                                            <br /><br />
                                        <?php 
        }
        ?>

                                        <input type="checkbox" name="gform_print_page_break" value="print_notes" checked="checked" id="gform_print_page_break" />
                                        <label for="gform_print_page_break"><?php 
        _e("Add page break between entries", "gravityforms");
        ?>
</label>
                                        <br /><br />

                                        <input type="button" value="<?php 
        _e("Print", "gravityforms");
        ?>
" class="button" onclick="BulkPrint();" />

                                    </div>
                                </div>

                            </div>
                        </div> <!-- / Print -->

                    </div>

                    <?php 
        echo self::display_paging_links("header", $page_links, $first_item_index, $page_size, $lead_count);
        ?>

                    <div class="clear"></div>
                </div>

                <table class="widefat fixed" cellspacing="0">
                <thead>
                    <tr>
                        <th scope="col" id="cb" class="manage-column column-cb check-column"><input type="checkbox" class="headercb" /></th>
                        <?php 
        if (!in_array($filter, array("spam", "trash"))) {
            ?>
                            <th scope="col" id="cb" class="manage-column column-cb check-column" >&nbsp;</th>
                            <?php 
        }
        foreach ($columns as $field_id => $field_info) {
            $dir = $field_id == 0 ? "DESC" : "ASC";
            //default every field so ascending sorting except date_created (id=0)
            if ($field_id == $sort_field) {
                //reverting direction if clicking on the currently sorted field
                $dir = $sort_direction == "ASC" ? "DESC" : "ASC";
            }
            ?>
                            <th scope="col" class="manage-column entry_nowrap" onclick="Search('<?php 
            echo $field_id;
            ?>
', '<?php 
            echo $dir;
            ?>
', <?php 
            echo $form_id;
            ?>
, '<?php 
            echo $search;
            ?>
', '<?php 
            echo $star;
            ?>
', '<?php 
            echo $read;
            ?>
', '<?php 
            echo $filter;
            ?>
');" style="cursor:pointer;"><?php 
            echo esc_html($field_info["label"]);
            ?>
</th>
                            <?php 
        }
        ?>
                        <th scope="col" align="right" width="50">
                            <a title="<?php 
        _e("Select Columns", "gravityforms");
        ?>
" href="<?php 
        echo trailingslashit(site_url());
        ?>
?gf_page=select_columns&id=<?php 
        echo $form_id;
        ?>
&TB_iframe=true&height=365&width=600" class="thickbox entries_edit_icon"><?php 
        _e("Edit", "gravityforms");
        ?>
</a>
                        </th>
                    </tr>
                </thead>
                <tfoot>
                    <tr>
                        <th scope="col" id="cb" class="manage-column column-cb check-column" style=""><input type="checkbox" /></th>
                        <?php 
        if (!in_array($filter, array("spam", "trash"))) {
            ?>
                            <th scope="col" id="cb" class="manage-column column-cb check-column" >&nbsp;</th>
                        <?php 
        }
        foreach ($columns as $field_id => $field_info) {
            $dir = $field_id == 0 ? "DESC" : "ASC";
            //default every field so ascending sorting except date_created (id=0)
            if ($field_id == $sort_field) {
                //reverting direction if clicking on the currently sorted field
                $dir = $sort_direction == "ASC" ? "DESC" : "ASC";
            }
            ?>
                            <th scope="col" class="manage-column entry_nowrap" onclick="Search('<?php 
            echo $field_id;
            ?>
', '<?php 
            echo $dir;
            ?>
', <?php 
            echo $form_id;
            ?>
, '<?php 
            echo $search;
            ?>
', '<?php 
            echo $star;
            ?>
', '<?php 
            echo $read;
            ?>
', '<?php 
            echo $filter;
            ?>
');" style="cursor:pointer;"><?php 
            echo esc_html($field_info["label"]);
            ?>
</th>
                            <?php 
        }
        ?>
                        <th scope="col" style="width:15px;">
                            <a href="<?php 
        echo trailingslashit(site_url());
        ?>
?gf_page=select_columns&id=<?php 
        echo $form_id;
        ?>
&TB_iframe=true&height=365&width=600" class="thickbox entries_edit_icon"><?php 
        _e("Edit", "gravityforms");
        ?>
</a>
                        </th>
                    </tr>
                </tfoot>

                <tbody data-wp-lists="list:gf_entry" class="user-list" id="gf_entry_list">
                    <?php 
        if (sizeof($leads) > 0) {
            $field_ids = array_keys($columns);
            foreach ($leads as $position => $lead) {
                $position = $page_size * $page_index + $position;
                ?>
                            <tr id="lead_row_<?php 
                echo $lead["id"];
                ?>
" class='author-self status-inherit <?php 
                echo $lead["is_read"] ? "" : "lead_unread";
                ?>
 <?php 
                echo $lead["is_starred"] ? "lead_starred" : "";
                ?>
 <?php 
                echo in_array($filter, array("trash", "spam")) ? "lead_spam_trash" : "";
                ?>
'  valign="top">
                                <th scope="row" class="check-column">
                                    <input type="checkbox" name="lead[]" value="<?php 
                echo $lead["id"];
                ?>
" />
                                </th>
                                <?php 
                if (!in_array($filter, array("spam", "trash"))) {
                    ?>
                                    <td >
                                        <img id="star_image_<?php 
                    echo $lead["id"];
                    ?>
" src="<?php 
                    echo GFCommon::get_base_url();
                    ?>
/images/star<?php 
                    echo intval($lead["is_starred"]);
                    ?>
.png" onclick="ToggleStar(this, <?php 
                    echo $lead["id"] . ",'" . $filter . "'";
                    ?>
);" />
                                    </td>
                                <?php 
                }
                $is_first_column = true;
                $nowrap_class = "entry_nowrap";
                foreach ($field_ids as $field_id) {
                    /* maybe move to function */
                    $field = RGFormsModel::get_field($form, $field_id);
                    $value = rgar($lead, $field_id);
                    if ($field['type'] == 'post_category') {
                        $value = GFCommon::prepare_post_category_value($value, $field, 'entry_list');
                    }
                    //filtering lead value
                    $value = apply_filters("gform_get_field_value", $value, $lead, $field);
                    $input_type = !empty($columns[$field_id]["inputType"]) ? $columns[$field_id]["inputType"] : $columns[$field_id]["type"];
                    switch ($input_type) {
                        case "checkbox":
                            $value = "";
                            //if this is the main checkbox field (not an input), display a comma separated list of all inputs
                            if (absint($field_id) == $field_id) {
                                $lead_field_keys = array_keys($lead);
                                $items = array();
                                foreach ($lead_field_keys as $input_id) {
                                    if (is_numeric($input_id) && absint($input_id) == $field_id) {
                                        $items[] = GFCommon::selection_display(rgar($lead, $input_id), null, $lead["currency"], false);
                                    }
                                }
                                $value = GFCommon::implode_non_blank(", ", $items);
                                // special case for post category checkbox fields
                                if ($field['type'] == 'post_category') {
                                    $value = GFCommon::prepare_post_category_value($value, $field, 'entry_list');
                                }
                            } else {
                                $value = "";
                                //looping through lead detail values trying to find an item identical to the column label. Mark with a tick if found.
                                $lead_field_keys = array_keys($lead);
                                foreach ($lead_field_keys as $input_id) {
                                    //mark as a tick if input label (from form meta) is equal to submitted value (from lead)
                                    if (is_numeric($input_id) && absint($input_id) == absint($field_id)) {
                                        if ($lead[$input_id] == $columns[$field_id]["label"]) {
                                            $value = "<img src='" . GFCommon::get_base_url() . "/images/tick.png'/>";
                                        } else {
                                            $field = RGFormsModel::get_field($form, $field_id);
                                            if (rgar($field, "enableChoiceValue") || rgar($field, "enablePrice")) {
                                                foreach ($field["choices"] as $choice) {
                                                    if ($choice["value"] == $lead[$field_id]) {
                                                        $value = "<img src='" . GFCommon::get_base_url() . "/images/tick.png'/>";
                                                        break;
                                                    } else {
                                                        if (rgar($field, "enablePrice")) {
                                                            $ary = explode("|", $lead[$field_id]);
                                                            $val = count($ary) > 0 ? $ary[0] : "";
                                                            $price = count($ary) > 1 ? $ary[1] : "";
                                                            if ($val == $choice["value"]) {
                                                                $value = "<img src='" . GFCommon::get_base_url() . "/images/tick.png'/>";
                                                                break;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            break;
                        case "post_image":
                            list($url, $title, $caption, $description) = rgexplode("|:|", $value, 4);
                            if (!empty($url)) {
                                //displaying thumbnail (if file is an image) or an icon based on the extension
                                $thumb = self::get_icon_url($url);
                                $value = "<a href='" . esc_attr($url) . "' target='_blank' title='" . __("Click to view", "gravityforms") . "'><img src='{$thumb}'/></a>";
                            }
                            break;
                        case "fileupload":
                            $file_path = $value;
                            if (!empty($file_path)) {
                                //displaying thumbnail (if file is an image) or an icon based on the extension
                                $thumb = self::get_icon_url($file_path);
                                $file_path = esc_attr($file_path);
                                $value = "<a href='{$file_path}' target='_blank' title='" . __("Click to view", "gravityforms") . "'><img src='{$thumb}'/></a>";
                            }
                            break;
                        case "source_url":
                            $value = "<a href='" . esc_attr($lead["source_url"]) . "' target='_blank' alt='" . esc_attr($lead["source_url"]) . "' title='" . esc_attr($lead["source_url"]) . "'>.../" . esc_attr(GFCommon::truncate_url($lead["source_url"])) . "</a>";
                            break;
                        case "textarea":
                        case "post_content":
                        case "post_excerpt":
                            $value = esc_html($value);
                            break;
                        case "date_created":
                        case "payment_date":
                            $value = GFCommon::format_date($value, false);
                            break;
                        case "date":
                            $field = RGFormsModel::get_field($form, $field_id);
                            $value = GFCommon::date_display($value, rgar($field, "dateFormat"));
                            break;
                        case "radio":
                        case "select":
                            $field = RGFormsModel::get_field($form, $field_id);
                            $value = GFCommon::selection_display($value, $field, $lead["currency"]);
                            break;
                        case "number":
                            $field = RGFormsModel::get_field($form, $field_id);
                            $value = GFCommon::format_number($value, rgar($field, "numberFormat"));
                            break;
                        case "total":
                        case "payment_amount":
                            $value = GFCommon::to_money($value, $lead["currency"]);
                            break;
                        case "created_by":
                            if (!empty($value)) {
                                $userdata = get_userdata($value);
                                $value = $userdata->user_login;
                            }
                            break;
                        case "multiselect":
                            // add space after comma-delimited values
                            $value = implode(', ', explode(',', $value));
                            break;
                        default:
                            $value = esc_html($value);
                    }
                    $value = apply_filters("gform_entries_field_value", $value, $form_id, $field_id, $lead);
                    /* ^ maybe move to function */
                    $query_string = "gf_entries&view=entry&id={$form_id}&lid={$lead["id"]}{$search_qs}{$sort_qs}{$dir_qs}{$filter_qs}&paged=" . ($page_index + 1);
                    if ($is_first_column) {
                        ?>
                                        <td class="column-title" >
                                            <a href="admin.php?page=gf_entries&view=entry&id=<?php 
                        echo $form_id;
                        ?>
&lid=<?php 
                        echo $lead["id"] . $search_qs . $sort_qs . $dir_qs . $filter_qs;
                        ?>
&paged=<?php 
                        echo $page_index + 1;
                        ?>
&pos=<?php 
                        echo $position;
                        ?>
"><?php 
                        echo $value;
                        ?>
</a>
                                            <div class="row-actions">
                                                <?php 
                        switch ($filter) {
                            case "trash":
                                ?>
                                                        <span class="edit">
                                                            <a title="<?php 
                                _e("View this entry", "gravityforms");
                                ?>
" href="admin.php?page=gf_entries&view=entry&id=<?php 
                                echo $form_id;
                                ?>
&lid=<?php 
                                echo $lead["id"] . $search_qs . $sort_qs . $dir_qs . $filter_qs;
                                ?>
&paged=<?php 
                                echo $page_index + 1;
                                ?>
&pos=<?php 
                                echo $position;
                                ?>
"><?php 
                                _e("View", "gravityforms");
                                ?>
</a>
                                                            |
                                                        </span>

                                                        <span class="edit">
                                                            <a data-wp-lists='delete:gf_entry_list:lead_row_<?php 
                                echo $lead["id"];
                                ?>
::status=active&entry=<?php 
                                echo $lead["id"];
                                ?>
' title="<?php 
                                echo _e("Restore this entry", "gravityforms");
                                ?>
" href="<?php 
                                echo wp_nonce_url("?page=gf_entries", "gf_delete_entry");
                                ?>
"><?php 
                                _e("Restore", "gravityforms");
                                ?>
</a>
                                                            <?php 
                                echo GFCommon::current_user_can_any("gravityforms_delete_entries") ? "|" : "";
                                ?>
                                                        </span>

                                                        <?php 
                                if (GFCommon::current_user_can_any("gravityforms_delete_entries")) {
                                    ?>
                                                            <span class="delete">
                                                                <?php 
                                    $delete_link = '<a data-wp-lists="delete:gf_entry_list:lead_row_' . $lead["id"] . '::status=delete&entry=' . $lead["id"] . '" title="' . __("Delete this entry permanently", "gravityforms") . '"  href="' . wp_nonce_url("?page=gf_entries", "gf_delete_entry") . '">' . __("Delete Permanently", "gravityforms") . '</a>';
                                    echo apply_filters("gform_delete_entry_link", $delete_link);
                                    ?>
                                                            </span>
                                                            <?php 
                                }
                                break;
                            case "spam":
                                ?>
                                                        <span class="edit">
                                                            <a title="<?php 
                                _e("View this entry", "gravityforms");
                                ?>
" href="admin.php?page=gf_entries&view=entry&id=<?php 
                                echo $form_id;
                                ?>
&lid=<?php 
                                echo $lead["id"] . $search_qs . $sort_qs . $dir_qs . $filter_qs;
                                ?>
&paged=<?php 
                                echo $page_index + 1;
                                ?>
&pos=<?php 
                                echo $position;
                                ?>
"><?php 
                                _e("View", "gravityforms");
                                ?>
</a>
                                                            |
                                                        </span>

                                                        <span class="unspam">
                                                            <a data-wp-lists='delete:gf_entry_list:lead_row_<?php 
                                echo $lead["id"];
                                ?>
::status=unspam&entry=<?php 
                                echo $lead["id"];
                                ?>
' title="<?php 
                                echo _e("Mark this entry as not spam", "gravityforms");
                                ?>
" href="<?php 
                                echo wp_nonce_url("?page=gf_entries", "gf_delete_entry");
                                ?>
"><?php 
                                _e("Not Spam", "gravityforms");
                                ?>
</a>
                                                            <?php 
                                echo GFCommon::current_user_can_any("gravityforms_delete_entries") ? "|" : "";
                                ?>
                                                        </span>

                                                        <?php 
                                if (GFCommon::current_user_can_any("gravityforms_delete_entries")) {
                                    ?>
                                                            <span class="delete">
                                                                <?php 
                                    $delete_link = '<a data-wp-lists="delete:gf_entry_list:lead_row_' . $lead["id"] . '::status=delete&entry=' . $lead["id"] . '" title="' . __("Delete this entry permanently", "gravityforms") . '"  href="' . wp_nonce_url("?page=gf_entries", "gf_delete_entry") . '">' . __("Delete Permanently", "gravityforms") . '</a>';
                                    echo apply_filters("gform_delete_entry_link", $delete_link);
                                    ?>
                                                            </span>
                                                            <?php 
                                }
                                break;
                            default:
                                ?>
                                                        <span class="edit">
                                                            <a title="<?php 
                                _e("View this entry", "gravityforms");
                                ?>
" href="admin.php?page=gf_entries&view=entry&id=<?php 
                                echo $form_id;
                                ?>
&lid=<?php 
                                echo $lead["id"] . $search_qs . $sort_qs . $dir_qs . $filter_qs;
                                ?>
&paged=<?php 
                                echo $page_index + 1;
                                ?>
&pos=<?php 
                                echo $position;
                                ?>
"><?php 
                                _e("View", "gravityforms");
                                ?>
</a>
                                                            |
                                                        </span>
                                                        <span class="edit">
                                                            <a id="mark_read_<?php 
                                echo $lead["id"];
                                ?>
" title="Mark this entry as read" href="javascript:ToggleRead(<?php 
                                echo $lead["id"] . ",'" . $filter . "'";
                                ?>
);" style="display:<?php 
                                echo $lead["is_read"] ? "none" : "inline";
                                ?>
;"><?php 
                                _e("Mark read", "gravityforms");
                                ?>
</a><a id="mark_unread_<?php 
                                echo $lead["id"];
                                ?>
" title="<?php 
                                _e("Mark this entry as unread", "gravityforms");
                                ?>
" href="javascript:ToggleRead(<?php 
                                echo $lead["id"] . ",'" . $filter . "'";
                                ?>
);" style="display:<?php 
                                echo $lead["is_read"] ? "inline" : "none";
                                ?>
;"><?php 
                                _e("Mark unread", "gravityforms");
                                ?>
</a>
                                                            <?php 
                                echo GFCommon::current_user_can_any("gravityforms_delete_entries") || GFCommon::akismet_enabled($form_id) ? "|" : "";
                                ?>
                                                        </span>
                                                        <?php 
                                if (GFCommon::akismet_enabled($form_id)) {
                                    ?>
                                                            <span class="spam">
                                                                <a data-wp-lists='delete:gf_entry_list:lead_row_<?php 
                                    echo $lead["id"];
                                    ?>
::status=spam&entry=<?php 
                                    echo $lead["id"];
                                    ?>
' title="<?php 
                                    _e("Mark this entry as spam", "gravityforms");
                                    ?>
" href="<?php 
                                    echo wp_nonce_url("?page=gf_entries", "gf_delete_entry");
                                    ?>
"><?php 
                                    _e("Spam", "gravityforms");
                                    ?>
</a>
                                                                <?php 
                                    echo GFCommon::current_user_can_any("gravityforms_delete_entries") ? "|" : "";
                                    ?>
                                                            </span>

                                                        <?php 
                                }
                                if (GFCommon::current_user_can_any("gravityforms_delete_entries")) {
                                    ?>
                                                            <span class="trash">
                                                                <a data-wp-lists='delete:gf_entry_list:lead_row_<?php 
                                    echo $lead["id"];
                                    ?>
::status=trash&entry=<?php 
                                    echo $lead["id"];
                                    ?>
' title="<?php 
                                    _e("Move this entry to the trash", "gravityforms");
                                    ?>
" href="<?php 
                                    echo wp_nonce_url("?page=gf_entries", "gf_delete_entry");
                                    ?>
"><?php 
                                    _e("Trash", "gravityforms");
                                    ?>
</a>
                                                            </span>
                                                            <?php 
                                }
                                break;
                        }
                        do_action("gform_entries_first_column_actions", $form_id, $field_id, $value, $lead, $query_string);
                        ?>

                                            </div>
                                            <?php 
                        do_action("gform_entries_first_column", $form_id, $field_id, $value, $lead, $query_string);
                        ?>
                                        </td>
                                        <?php 
                    } else {
                        ?>
                                        <td class="<?php 
                        echo $nowrap_class;
                        ?>
">
                                            <?php 
                        echo apply_filters("gform_entries_column_filter", $value, $form_id, $field_id, $lead, $query_string);
                        ?>
&nbsp;
                                            <?php 
                        do_action("gform_entries_column", $form_id, $field_id, $value, $lead, $query_string);
                        ?>
                                        </td>
                                        <?php 
                    }
                    $is_first_column = false;
                }
                ?>
                                <td>&nbsp;</td>
                            </tr>
                            <?php 
            }
        } else {
            $message = "";
            $column_count = sizeof($columns) + 3;
            switch ($filter) {
                case "unread":
                    $message = __("This form does not have any unread entries.", "gravityforms");
                    break;
                case "star":
                    $message = __("This form does not have any starred entries.", "gravityforms");
                    break;
                case "spam":
                    $message = __("This form does not have any spam.", "gravityforms");
                    $column_count = sizeof($columns) + 2;
                    break;
                case "trash":
                    $message = __("This form does not have any entries in the trash.", "gravityforms");
                    $column_count = sizeof($columns) + 2;
                    break;
                default:
                    $message = __("This form does not have any entries yet.", "gravityforms");
            }
            ?>
                        <tr>
                            <td colspan="<?php 
            echo $column_count;
            ?>
" style="padding:20px;"><?php 
            echo $message;
            ?>
</td>
                        </tr>
                        <?php 
        }
        ?>
                </tbody>
                </table>

                <div class="clear"></div>

                <div class="tablenav">

                    <div class="alignleft actions" style="padding:8px 0 7px 0;">
                        <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 
        switch ($filter) {
            case "trash":
                ?>
                                    <option value='restore'><?php 
                _e("Restore", "gravityforms");
                ?>
</option>
                                    <?php 
                if (GFCommon::current_user_can_any("gravityforms_delete_entries")) {
                    ?>
                                        <option value='delete'><?php 
                    _e("Delete Permanently", "gravityforms");
                    ?>
</option>
                                        <?php 
                }
                break;
            case "spam":
                ?>
                                    <option value='unspam'><?php 
                _e("Not Spam", "gravityforms");
                ?>
</option>
                                    <?php 
                if (GFCommon::current_user_can_any("gravityforms_delete_entries")) {
                    ?>
                                        <option value='delete'><?php 
                    _e("Delete Permanently", "gravityforms");
                    ?>
</option>
                                        <?php 
                }
                break;
            default:
                ?>
                                <option value='mark_read'><?php 
                _e("Mark as Read", "gravityforms");
                ?>
</option>
                                <option value='mark_unread'><?php 
                _e("Mark as Unread", "gravityforms");
                ?>
</option>
                                <option value='add_star'><?php 
                _e("Add Star", "gravityforms");
                ?>
</option>
                                <option value='remove_star'><?php 
                _e("Remove Star", "gravityforms");
                ?>
</option>
                                <option value='resend_notifications'><?php 
                _e("Resend Notifications", "gravityforms");
                ?>
</option>
                                <option value='print'><?php 
                _e("Print", "gravityforms");
                ?>
</option>
                                <?php 
                if (GFCommon::akismet_enabled($form_id)) {
                    ?>
                                    <option value='spam'><?php 
                    _e("Spam", "gravityforms");
                    ?>
</option>
                                    <?php 
                }
                if (GFCommon::current_user_can_any("gravityforms_delete_entries")) {
                    ?>
                                    <option value='trash'><?php 
                    _e("Trash", "gravityforms");
                    ?>
</option>
                                    <?php 
                }
        }
        ?>
                        </select>
                        <?php 
        $apply_button = '<input type="submit" class="button" value="' . __("Apply", "gravityforms") . '" onclick="return handleBulkApply(\'bulk_action2\');" />';
        echo apply_filters("gform_entry_apply_button", $apply_button);
        ?>
                    </div>

                    <?php 
        echo self::display_paging_links("footer", $page_links, $first_item_index, $page_size, $lead_count);
        ?>

                    <div class="clear"></div>
                </div>

            </form>
        </div>
        <?php 
    }
Ejemplo n.º 18
0
function mf_admin_pre_render()
{
    //Get the current action
    $mfAction = RGForms::post('action');
    //Only process if there was a gravity forms action
    if (!empty($mfAction)) {
        $entry_info_entry_id = $_POST['entry_info_entry_id'];
        $lead = GFAPI::get_entry($entry_info_entry_id);
        $form_id = isset($lead['form_id']) ? $lead['form_id'] : 0;
        $form = RGFormsModel::get_form_meta($form_id);
        $entry_status = isset($lead['303']) ? $lead['303'] : '';
        switch ($mfAction) {
            // Entry Management Update
            case 'update_entry_management':
                set_entry_status_content($lead, $form);
                break;
            case 'update_entry_status':
                set_entry_status($lead, $form);
                break;
            case 'update_ticket_code':
                $ticket_code = $_POST['entry_ticket_code'];
                $entry_info_entry_id = $_POST['entry_info_entry_id'];
                mf_update_entry_field($entry_info_entry_id, '308', $ticket_code);
                break;
            case 'update_entry_schedule':
                set_entry_schedule($lead, $form);
                break;
            case 'delete_entry_schedule':
                delete_entry_schedule($lead, $form);
                break;
            case 'update_entry_location':
                set_entry_location($lead, $form);
                break;
            case 'delete_entry_location':
                delete_entry_location($lead, $form);
                break;
            case 'change_form_id':
                set_form_id($lead, $form);
                break;
            case 'duplicate_entry_id':
                duplicate_entry_id($lead, $form);
                break;
            case 'sync_jdb':
                GFJDBHELPER::gravityforms_send_entry_to_jdb($entry_info_entry_id);
                break;
            case 'sync_status_jdb':
                GFJDBHELPER::gravityforms_sync_status_jdb($entry_info_entry_id, $entry_status);
                break;
            case 'send_conf_letter':
                //first update the schedule if one is set
                set_entry_schedule($lead, $form);
                //then send confirmation letter
                $notifications_to_send = GFCommon::get_notifications_to_send('confirmation_letter', $form, $lead);
                foreach ($notifications_to_send as $notification) {
                    if ($notification['isActive']) {
                        GFCommon::send_notification($notification, $form, $lead);
                    }
                }
                mf_add_note($entry_info_entry_id, 'Confirmation Letter sent');
                break;
                //Sidebar Note Add
            //Sidebar Note Add
            case 'add_note_sidebar':
                add_note_sidebar($lead, $form);
                break;
                //Sidebar Note Delete
            //Sidebar Note Delete
            case 'delete_note_sidebar':
                if (is_array($_POST['note'])) {
                    delete_note_sidebar($_POST['note']);
                }
                break;
        }
        // Return the original form which is required for the filter we're including for our custom processing.
        return $form;
    }
}
Ejemplo n.º 19
0
 public static function get_field_input($field, $value = "", $lead_id = 0, $form_id = 0)
 {
     $id = $field["id"];
     $field_id = IS_ADMIN || $form_id == 0 ? "input_{$id}" : "input_" . $form_id . "_{$id}";
     $form_id = IS_ADMIN && empty($form_id) ? rgget("id") : $form_id;
     $size = rgar($field, "size");
     $disabled_text = IS_ADMIN && RG_CURRENT_VIEW != "entry" ? "disabled='disabled'" : "";
     $class_suffix = RG_CURRENT_VIEW == "entry" ? "_admin" : "";
     $class = $size . $class_suffix;
     $currency = "";
     if (RG_CURRENT_VIEW == "entry") {
         $lead = RGFormsModel::get_lead($lead_id);
         $post_id = $lead["post_id"];
         $post_link = "";
         if (is_numeric($post_id) && self::is_post_field($field)) {
             $post_link = "You can <a href='post.php?action=edit&post={$post_id}'>edit this post</a> from the post page.";
         }
         $currency = $lead["currency"];
     }
     $field_input = apply_filters("gform_field_input", "", $field, $value, $lead_id, $form_id);
     if ($field_input) {
         return $field_input;
     }
     //product fields are not editable
     if (RG_CURRENT_VIEW == "entry" && self::is_product_field($field["type"])) {
         return "<div class='ginput_container'>" . __("Product fields are not editable", "gravityforms") . "</div>";
     } else {
         if (RG_CURRENT_VIEW == "entry" && $field["type"] == "donation") {
             return "<div class='ginput_container'>" . __("Donations are not editable", "gravityforms") . "</div>";
         }
     }
     // add categories as choices for Post Category field
     if ($field['type'] == 'post_category') {
         $field = self::add_categories_as_choices($field, $value);
     }
     $max_length = "";
     $html5_attributes = "";
     switch (RGFormsModel::get_input_type($field)) {
         case "total":
             if (RG_CURRENT_VIEW == "entry") {
                 return "<div class='ginput_container'><input type='text' name='input_{$id}' value='{$value}' /></div>";
             } else {
                 return "<div class='ginput_container'><span class='ginput_total ginput_total_{$form_id}'>" . self::to_money("0") . "</span><input type='hidden' name='input_{$id}' id='{$field_id}' class='gform_hidden'/></div>";
             }
             break;
         case "calculation":
         case "singleproduct":
             $product_name = !is_array($value) || empty($value[$field["id"] . ".1"]) ? esc_attr($field["label"]) : esc_attr($value[$field["id"] . ".1"]);
             $price = !is_array($value) || empty($value[$field["id"] . ".2"]) ? rgget("basePrice", $field) : esc_attr($value[$field["id"] . ".2"]);
             $quantity = is_array($value) ? esc_attr($value[$field["id"] . ".3"]) : "";
             if (empty($price)) {
                 $price = 0;
             }
             $form = RGFormsModel::get_form_meta($form_id);
             $has_quantity = sizeof(GFCommon::get_product_fields_by_type($form, array("quantity"), $field["id"])) > 0;
             if ($has_quantity) {
                 $field["disableQuantity"] = true;
             }
             $quantity_field = "";
             if (IS_ADMIN) {
                 $style = rgget("disableQuantity", $field) ? "style='display:none;'" : "";
                 $quantity_field = " <span class='ginput_quantity_label' {$style}>" . apply_filters("gform_product_quantity_{$form_id}", apply_filters("gform_product_quantity", __("Quantity:", "gravityforms"), $form_id), $form_id) . "</span> <input type='text' name='input_{$id}.3' value='{$quantity}' id='ginput_quantity_{$form_id}_{$field["id"]}' class='ginput_quantity' size='10' />";
             } else {
                 if (!rgget("disableQuantity", $field)) {
                     $tabindex = self::get_tabindex();
                     $quantity_field .= " <span class='ginput_quantity_label'>" . apply_filters("gform_product_quantity_{$form_id}", apply_filters("gform_product_quantity", __("Quantity:", "gravityforms"), $form_id), $form_id) . "</span> <input type='text' name='input_{$id}.3' value='{$quantity}' id='ginput_quantity_{$form_id}_{$field["id"]}' class='ginput_quantity' size='10' {$tabindex}/>";
                 } else {
                     if (!is_numeric($quantity)) {
                         $quantity = 1;
                     }
                     if (!$has_quantity) {
                         $quantity_field .= "<input type='hidden' name='input_{$id}.3' value='{$quantity}' class='ginput_quantity_{$form_id}_{$field["id"]} gform_hidden' />";
                     }
                 }
             }
             return "<div class='ginput_container'><input type='hidden' name='input_{$id}.1' value='{$product_name}' class='gform_hidden' /><span class='ginput_product_price_label'>" . apply_filters("gform_product_price_{$form_id}", apply_filters("gform_product_price", __("Price", "gravityforms"), $form_id), $form_id) . ":</span> <span class='ginput_product_price' id='{$field_id}'>" . esc_html(GFCommon::to_money($price, $currency)) . "</span><input type='hidden' name='input_{$id}.2' id='ginput_base_price_{$form_id}_{$field["id"]}' class='gform_hidden' value='" . esc_attr($price) . "'/>{$quantity_field}</div>";
             break;
         case "hiddenproduct":
             $form = RGFormsModel::get_form_meta($form_id);
             $has_quantity_field = sizeof(GFCommon::get_product_fields_by_type($form, array("quantity"), $field["id"])) > 0;
             $product_name = !is_array($value) || empty($value[$field["id"] . ".1"]) ? esc_attr($field["label"]) : esc_attr($value[$field["id"] . ".1"]);
             $quantity = is_array($value) ? esc_attr($value[$field["id"] . ".3"]) : "1";
             $price = !is_array($value) || empty($value[$field["id"] . ".2"]) ? rgget("basePrice", $field) : esc_attr($value[$field["id"] . ".2"]);
             if (empty($price)) {
                 $price = 0;
             }
             $quantity_field = $has_quantity_field ? "" : "<input type='hidden' name='input_{$id}.3' value='" . esc_attr($quantity) . "' id='ginput_quantity_{$form_id}_{$field["id"]}' class='gform_hidden' />";
             $product_name_field = "<input type='hidden' name='input_{$id}.1' value='{$product_name}' class='gform_hidden' />";
             $field_type = IS_ADMIN ? "text" : "hidden";
             return $quantity_field . $product_name_field . sprintf("<input name='input_%d.2' id='ginput_base_price_{$form_id}_{$field["id"]}' type='{$field_type}' value='%s' class='gform_hidden ginput_amount' %s/>", $id, esc_attr($price), $disabled_text);
             break;
         case "singleshipping":
             $price = !empty($value) ? $value : rgget("basePrice", $field);
             if (empty($price)) {
                 $price = 0;
             }
             return "<div class='ginput_container'><input type='hidden' name='input_{$id}' value='{$price}' class='gform_hidden'/><span class='ginput_shipping_price' id='{$field_id}'>" . GFCommon::to_money($price, $currency) . "</span></div>";
             break;
         case "website":
             $is_html5 = RGFormsModel::is_html5_enabled();
             $value = empty($value) && !$is_html5 ? "http://" : $value;
             $html_input_type = $is_html5 ? "url" : "text";
             $html5_attributes = $is_html5 ? "placeholder='http://'" : "";
         case "text":
             if (empty($html_input_type)) {
                 $html_input_type = "text";
             }
             if (rgget("enablePasswordInput", $field) && RG_CURRENT_VIEW != "entry") {
                 $html_input_type = "password";
             }
             if (is_numeric(rgget("maxLength", $field))) {
                 $max_length = "maxlength='{$field["maxLength"]}'";
             }
             if (!empty($post_link)) {
                 return $post_link;
             }
             $logic_event = self::get_logic_event($field, "keyup");
             $tabindex = self::get_tabindex();
             return sprintf("<div class='ginput_container'><input name='input_%d' id='%s' type='%s' value='%s' class='%s' {$max_length} {$tabindex} {$logic_event} {$html5_attributes} %s/></div>", $id, $field_id, $html_input_type, esc_attr($value), esc_attr($class), $disabled_text);
             break;
         case "email":
             if (!empty($post_link)) {
                 return $post_link;
             }
             $html_input_type = RGFormsModel::is_html5_enabled() ? "email" : "text";
             if (IS_ADMIN && RG_CURRENT_VIEW != "entry") {
                 $single_style = rgget("emailConfirmEnabled", $field) ? "style='display:none;'" : "";
                 $confirm_style = rgget("emailConfirmEnabled", $field) ? "" : "style='display:none;'";
                 return "<div class='ginput_container ginput_single_email' {$single_style}><input name='input_{$id}' type='{$html_input_type}' class='" . esc_attr($class) . "' disabled='disabled' /></div><div class='ginput_complex ginput_container ginput_confirm_email' {$confirm_style} id='{$field_id}_container'><span id='{$field_id}_1_container' class='ginput_left'><input type='text' name='input_{$id}' id='{$field_id}' disabled='disabled' /><label for='{$field_id}'>" . apply_filters("gform_email_{$form_id}", apply_filters("gform_email", __("Enter Email", "gravityforms"), $form_id), $form_id) . "</label></span><span id='{$field_id}_2_container' class='ginput_right'><input type='text' name='input_{$id}_2' id='{$field_id}_2' disabled='disabled' /><label for='{$field_id}_2'>" . apply_filters("gform_email_confirm_{$form_id}", apply_filters("gform_email_confirm", __("Confirm Email", "gravityforms"), $form_id), $form_id) . "</label></span></div>";
             } else {
                 $logic_event = self::get_logic_event($field, "keyup");
                 if (rgget("emailConfirmEnabled", $field) && RG_CURRENT_VIEW != "entry") {
                     $first_tabindex = self::get_tabindex();
                     $last_tabindex = self::get_tabindex();
                     return "<div class='ginput_complex ginput_container' id='{$field_id}_container'><span id='{$field_id}_1_container' class='ginput_left'><input type='{$html_input_type}' name='input_{$id}' id='{$field_id}' value='" . esc_attr($value) . "' {$first_tabindex} {$logic_event} {$disabled_text}/><label for='{$field_id}'>" . apply_filters("gform_email_{$form_id}", apply_filters("gform_email", __("Enter Email", "gravityforms"), $form_id), $form_id) . "</label></span><span id='{$field_id}_2_container' class='ginput_right'><input type='{$html_input_type}' name='input_{$id}_2' id='{$field_id}_2' value='" . esc_attr(rgpost("input_" . $id . "_2")) . "' {$last_tabindex} {$disabled_text}/><label for='{$field_id}_2'>" . apply_filters("gform_email_confirm_{$form_id}", apply_filters("gform_email_confirm", __("Confirm Email", "gravityforms"), $form_id), $form_id) . "</label></span></div>";
                 } else {
                     $tabindex = self::get_tabindex();
                     return sprintf("<div class='ginput_container'><input name='input_%d' id='%s' type='%s' value='%s' class='%s' {$max_length} {$tabindex} {$html5_attributes} {$logic_event} %s/></div>", $id, $field_id, $html_input_type, esc_attr($value), esc_attr($class), $disabled_text);
                 }
             }
             break;
         case "honeypot":
             $autocomplete = RGFormsModel::is_html5_enabled() ? "autocomplete='off'" : "";
             return "<div class='ginput_container'><input name='input_{$id}' id='{$field_id}' type='text' value='' {$autocomplete}/></div>";
             break;
         case "hidden":
             if (!empty($post_link)) {
                 return $post_link;
             }
             $field_type = IS_ADMIN ? "text" : "hidden";
             $class_attribute = IS_ADMIN ? "" : "class='gform_hidden'";
             return sprintf("<input name='input_%d' id='%s' type='{$field_type}' {$class_attribute} value='%s' %s/>", $id, $field_id, esc_attr($value), $disabled_text);
             break;
         case "html":
             $content = IS_ADMIN ? "<img class='gfield_html_block' src='" . self::get_base_url() . "/images/gf_html_admin_placeholder.jpg' alt='HTML Block'/>" : $field["content"];
             $content = GFCommon::replace_variables_prepopulate($content);
             //adding support for merge tags
             $content = do_shortcode($content);
             //adding support for shortcodes
             return $content;
             break;
         case "adminonly_hidden":
             if (!is_array($field["inputs"])) {
                 return sprintf("<input name='input_%d' id='%s' class='gform_hidden' type='hidden' value='%s'/>", $id, $field_id, esc_attr($value));
             }
             $fields = "";
             foreach ($field["inputs"] as $input) {
                 $fields .= sprintf("<input name='input_%s' class='gform_hidden' type='hidden' value='%s'/>", $input["id"], esc_attr(rgar($value, $input["id"])));
             }
             return $fields;
             break;
         case "number":
             if (!empty($post_link)) {
                 return $post_link;
             }
             $instruction = "";
             $read_only = "";
             if (!IS_ADMIN) {
                 if (GFCommon::has_field_calculation($field)) {
                     // calculation-enabled fields should be read only
                     $read_only = 'readonly="readonly"';
                 } else {
                     $message = self::get_range_message($field);
                     $validation_class = $field["failed_validation"] ? "validation_message" : "";
                     if (!$field["failed_validation"] && !empty($message) && empty($field["errorMessage"])) {
                         $instruction = "<div class='instruction {$validation_class}'>" . $message . "</div>";
                     }
                 }
             }
             $is_html5 = RGFormsModel::is_html5_enabled();
             $html_input_type = $is_html5 && !GFCommon::has_field_calculation($field) ? "number" : "text";
             // chrome does not allow number fields to have commas, calculations display numbers with commas
             $step_attr = $is_html5 ? "step='any'" : "";
             $logic_event = self::get_logic_event($field, "keyup");
             $tabindex = self::get_tabindex();
             return sprintf("<div class='ginput_container'><input name='input_%d' id='%s' type='{$html_input_type}' {$step_attr} value='%s' class='%s' {$tabindex} {$logic_event} {$read_only} %s/>%s</div>", $id, $field_id, esc_attr($value), esc_attr($class), $disabled_text, $instruction);
         case "donation":
             $tabindex = self::get_tabindex();
             return sprintf("<div class='ginput_container'><input name='input_%d' id='%s' type='text' value='%s' class='%s ginput_donation_amount' {$tabindex} %s/></div>", $id, $field_id, esc_attr($value), esc_attr($class), $disabled_text);
         case "price":
             $logic_event = self::get_logic_event($field, "keyup");
             $tabindex = self::get_tabindex();
             return sprintf("<div class='ginput_container'><input name='input_%d' id='%s' type='text' value='%s' class='%s ginput_amount' {$tabindex} {$logic_event} %s/></div>", $id, $field_id, esc_attr($value), esc_attr($class), $disabled_text);
         case "phone":
             if (!empty($post_link)) {
                 return $post_link;
             }
             $instruction = $field["phoneFormat"] == "standard" ? __("Phone format:", "gravityforms") . " (###)###-####" : "";
             $instruction_div = rgget("failed_validation", $field) ? "<div class='instruction validation_message'>{$instruction}</div>" : "";
             $html_input_type = RGFormsModel::is_html5_enabled() ? "tel" : "text";
             $logic_event = self::get_logic_event($field, "keyup");
             $tabindex = self::get_tabindex();
             return sprintf("<div class='ginput_container'><input name='input_%d' id='%s' type='{$html_input_type}' value='%s' class='%s' {$tabindex} {$logic_event} %s/>{$instruction_div}</div>", $id, $field_id, esc_attr($value), esc_attr($class), $disabled_text);
         case "textarea":
             $max_chars = "";
             $logic_event = self::get_logic_event($field, "keyup");
             $tabindex = self::get_tabindex();
             return sprintf("<div class='ginput_container'><textarea name='input_%d' id='%s' class='textarea %s' {$tabindex} {$logic_event} %s rows='10' cols='50'>%s</textarea></div>{$max_chars}", $id, $field_id, esc_attr($class), $disabled_text, esc_html($value));
         case "post_title":
         case "post_tags":
         case "post_custom_field":
             $tabindex = self::get_tabindex();
             $logic_event = self::get_logic_event($field, "keyup");
             return !empty($post_link) ? $post_link : sprintf("<div class='ginput_container'><input name='input_%d' id='%s' type='text' value='%s' class='%s' {$tabindex} {$logic_event} %s/></div>", $id, $field_id, esc_attr($value), esc_attr($class), $disabled_text);
             break;
         case "post_content":
         case "post_excerpt":
             $max_chars = "";
             $logic_event = self::get_logic_event($field, "keyup");
             $tabindex = self::get_tabindex();
             return !empty($post_link) ? $post_link : sprintf("<div class='ginput_container'><textarea name='input_%d' id='%s' class='textarea %s' {$tabindex} {$logic_event} %s rows='10' cols='50'>%s</textarea></div>{$max_chars}", $id, $field_id, esc_attr($class), $disabled_text, esc_html($value));
             break;
         case "post_category":
             if (!empty($post_link)) {
                 return $post_link;
             }
             if (rgget("displayAllCategories", $field) && !IS_ADMIN) {
                 $default_category = rgget("categoryInitialItemEnabled", $field) ? "-1" : get_option('default_category');
                 $selected = empty($value) ? $default_category : $value;
                 $args = array('echo' => 0, 'selected' => $selected, "class" => esc_attr($class) . " gfield_select", 'hide_empty' => 0, 'name' => "input_{$id}", 'orderby' => 'name', 'hierarchical' => true);
                 if (self::$tab_index > 0) {
                     $args["tab_index"] = self::$tab_index++;
                 }
                 if (rgget("categoryInitialItemEnabled", $field)) {
                     $args["show_option_none"] = empty($field["categoryInitialItem"]) ? " " : $field["categoryInitialItem"];
                 }
                 return "<div class='ginput_container'>" . wp_dropdown_categories($args) . "</div>";
             } else {
                 $tabindex = self::get_tabindex();
                 if (is_array(rgar($field, "choices"))) {
                     usort($field["choices"], create_function('$a,$b', 'return strcmp($a["text"], $b["text"]);'));
                 }
                 $choices = self::get_select_choices($field, $value);
                 //Adding first option
                 if (rgget("categoryInitialItemEnabled", $field)) {
                     $selected = empty($value) ? "selected='selected'" : "";
                     $choices = "<option value='-1' {$selected}>{$field["categoryInitialItem"]}</option>" . $choices;
                 }
                 return sprintf("<div class='ginput_container'><select name='input_%d' id='%s' class='%s gfield_select' {$tabindex} %s>%s</select></div>", $id, $field_id, esc_attr($class), $disabled_text, $choices);
             }
             break;
         case "post_image":
             if (!empty($post_link)) {
                 return $post_link;
             }
             $title = esc_attr(rgget($field["id"] . ".1", $value));
             $caption = esc_attr(rgget($field["id"] . ".4", $value));
             $description = esc_attr(rgget($field["id"] . ".7", $value));
             //hidding meta fields for admin
             $hidden_style = "style='display:none;'";
             $title_style = !rgget("displayTitle", $field) && IS_ADMIN ? $hidden_style : "";
             $caption_style = !rgget("displayCaption", $field) && IS_ADMIN ? $hidden_style : "";
             $description_style = !rgget("displayDescription", $field) && IS_ADMIN ? $hidden_style : "";
             $file_label_style = IS_ADMIN && !(rgget("displayTitle", $field) || rgget("displayCaption", $field) || rgget("displayDescription", $field)) ? $hidden_style : "";
             $hidden_class = $preview = "";
             $file_info = RGFormsModel::get_temp_filename($form_id, "input_{$id}");
             if ($file_info) {
                 $hidden_class = " gform_hidden";
                 $file_label_style = $hidden_style;
                 $preview = "<span class='ginput_preview'><strong>" . esc_html($file_info["uploaded_filename"]) . "</strong> | <a href='javascript:;' onclick='gformDeleteUploadedFile({$form_id}, {$id});'>" . __("delete", "gravityforms") . "</a></span>";
             }
             //in admin, render all meta fields to allow for immediate feedback, but hide the ones not selected
             $file_label = IS_ADMIN || rgget("displayTitle", $field) || rgget("displayCaption", $field) || rgget("displayDescription", $field) ? "<label for='{$field_id}' class='ginput_post_image_file' {$file_label_style}>" . apply_filters("gform_postimage_file_{$form_id}", apply_filters("gform_postimage_file", __("File", "gravityforms"), $form_id), $form_id) . "</label>" : "";
             $tabindex = self::get_tabindex();
             $upload = sprintf("<span class='ginput_full{$class_suffix}'>{$preview}<input name='input_%d' id='%s' type='file' value='%s' class='%s' {$tabindex} %s/>{$file_label}</span>", $id, $field_id, esc_attr($value), esc_attr($class . $hidden_class), $disabled_text);
             $tabindex = self::get_tabindex();
             $title_field = rgget("displayTitle", $field) || IS_ADMIN ? sprintf("<span class='ginput_full{$class_suffix} ginput_post_image_title' {$title_style}><input type='text' name='input_%d.1' id='%s_1' value='%s' {$tabindex} %s/><label for='%s_1'>" . apply_filters("gform_postimage_title_{$form_id}", apply_filters("gform_postimage_title", __("Title", "gravityforms"), $form_id), $form_id) . "</label></span>", $id, $field_id, $title, $disabled_text, $field_id) : "";
             $tabindex = self::get_tabindex();
             $caption_field = rgget("displayCaption", $field) || IS_ADMIN ? sprintf("<span class='ginput_full{$class_suffix} ginput_post_image_caption' {$caption_style}><input type='text' name='input_%d.4' id='%s_4' value='%s' {$tabindex} %s/><label for='%s_4'>" . apply_filters("gform_postimage_caption_{$form_id}", apply_filters("gform_postimage_caption", __("Caption", "gravityforms"), $form_id), $form_id) . "</label></span>", $id, $field_id, $caption, $disabled_text, $field_id) : "";
             $tabindex = self::get_tabindex();
             $description_field = rgget("displayDescription", $field) || IS_ADMIN ? sprintf("<span class='ginput_full{$class_suffix} ginput_post_image_description' {$description_style}><input type='text' name='input_%d.7' id='%s_7' value='%s' {$tabindex} %s/><label for='%s_7'>" . apply_filters("gform_postimage_description_{$form_id}", apply_filters("gform_postimage_description", __("Description", "gravityforms"), $form_id), $form_id) . "</label></span>", $id, $field_id, $description, $disabled_text, $field_id) : "";
             return "<div class='ginput_complex{$class_suffix} ginput_container'>" . $upload . $title_field . $caption_field . $description_field . "</div>";
             break;
         case "multiselect":
             if (!empty($post_link)) {
                 return $post_link;
             }
             $placeholder = rgar($field, "enableEnhancedUI") ? "data-placeholder='" . esc_attr(apply_filters("gform_multiselect_placeholder_{$form_id}", apply_filters("gform_multiselect_placeholder", __("Click to select...", "gravityforms"), $form_id), $form_id)) . "'" : "";
             $logic_event = self::get_logic_event($field, "keyup");
             $css_class = trim(esc_attr($class) . " gfield_select");
             $size = rgar($field, "multiSelectSize");
             if (empty($size)) {
                 $size = 7;
             }
             $tabindex = self::get_tabindex();
             return sprintf("<div class='ginput_container'><select multiple='multiple' {$placeholder} size='{$size}' name='input_%d[]' id='%s' {$logic_event} class='%s' {$tabindex} %s>%s</select></div>", $id, $field_id, $css_class, $disabled_text, self::get_select_choices($field, $value));
             break;
         case "select":
             if (!empty($post_link)) {
                 return $post_link;
             }
             $logic_event = self::get_logic_event($field, "change");
             $css_class = trim(esc_attr($class) . " gfield_select");
             $tabindex = self::get_tabindex();
             return sprintf("<div class='ginput_container'><select name='input_%d' id='%s' {$logic_event} class='%s' {$tabindex} %s>%s</select></div>", $id, $field_id, $css_class, $disabled_text, self::get_select_choices($field, $value));
         case "checkbox":
             if (!empty($post_link)) {
                 return $post_link;
             }
             return sprintf("<div class='ginput_container'><ul class='gfield_checkbox' id='%s'>%s</ul></div>", $field_id, self::get_checkbox_choices($field, $value, $disabled_text));
         case "radio":
             if (!empty($post_link)) {
                 return $post_link;
             }
             return sprintf("<div class='ginput_container'><ul class='gfield_radio' id='%s'>%s</ul></div>", $field_id, self::get_radio_choices($field, $value, $disabled_text));
         case "password":
             $first_tabindex = self::get_tabindex();
             $last_tabindex = self::get_tabindex();
             $strength_style = !rgar($field, "passwordStrengthEnabled") ? "style='display:none;'" : "";
             $strength = rgar($field, "passwordStrengthEnabled") || IS_ADMIN ? "<div id='{$field_id}_strength_indicator' class='gfield_password_strength' {$strength_style}>" . __("Strength indicator", "gravityforms") . "</div><input type='hidden' class='gform_hidden' id='{$field_id}_strength' name='input_{$id}_strength' />" : "";
             $action = !IS_ADMIN ? "gformShowPasswordStrength(\"{$field_id}\");" : "";
             $onchange = rgar($field, "passwordStrengthEnabled") ? "onchange='{$action}'" : "";
             $onkeyup = rgar($field, "passwordStrengthEnabled") ? "onkeyup='{$action}'" : "";
             $pass = RGForms::post("input_" . $id . "_2");
             return sprintf("<div class='ginput_complex{$class_suffix} ginput_container' id='{$field_id}_container'><span id='" . $field_id . "_1_container' class='ginput_left'><input type='password' name='input_%d' id='%s' {$onkeyup} {$onchange} value='%s' {$first_tabindex} %s/><label for='%s'>" . apply_filters("gform_password_{$form_id}", apply_filters("gform_password", __("Enter Password", "gravityforms"), $form_id), $form_id) . "</label></span><span id='" . $field_id . "_2_container' class='ginput_right'><input type='password' name='input_%d_2' id='%s_2' {$onkeyup} {$onchange} value='%s' {$last_tabindex} %s/><label for='%s_2'>" . apply_filters("gform_password_confirm_{$form_id}", apply_filters("gform_password_confirm", __("Confirm Password", "gravityforms"), $form_id), $form_id) . "</label></span></div>{$strength}", $id, $field_id, esc_attr($value), $disabled_text, $field_id, $id, $field_id, esc_attr($pass), $disabled_text, $field_id);
         case "name":
             $prefix = "";
             $first = "";
             $last = "";
             $suffix = "";
             if (is_array($value)) {
                 $prefix = esc_attr(RGForms::get($field["id"] . ".2", $value));
                 $first = esc_attr(RGForms::get($field["id"] . ".3", $value));
                 $last = esc_attr(RGForms::get($field["id"] . ".6", $value));
                 $suffix = esc_attr(RGForms::get($field["id"] . ".8", $value));
             }
             switch (rgget("nameFormat", $field)) {
                 case "extended":
                     $prefix_tabindex = self::get_tabindex();
                     $first_tabindex = self::get_tabindex();
                     $last_tabindex = self::get_tabindex();
                     $suffix_tabindex = self::get_tabindex();
                     return sprintf("<div class='ginput_complex{$class_suffix} ginput_container' id='{$field_id}'><span id='" . $field_id . "_2_container' class='name_prefix'><input type='text' name='input_%d.2' id='%s_2' value='%s' {$prefix_tabindex} %s/><label for='%s_2'>" . apply_filters("gform_name_prefix_{$form_id}", apply_filters("gform_name_prefix", __("Prefix", "gravityforms"), $form_id), $form_id) . "</label></span><span id='" . $field_id . "_3_container' class='name_first'><input type='text' name='input_%d.3' id='%s_3' value='%s' {$first_tabindex} %s/><label for='%s_3'>" . apply_filters("gform_name_first_{$form_id}", apply_filters("gform_name_first", __("First", "gravityforms"), $form_id), $form_id) . "</label></span><span id='" . $field_id . "_6_container' class='name_last'><input type='text' name='input_%d.6' id='%s_6' value='%s' {$last_tabindex} %s/><label for='%s_6'>" . apply_filters("gform_name_last_{$form_id}", apply_filters("gform_name_last", __("Last", "gravityforms"), $form_id), $form_id) . "</label></span><span id='" . $field_id . "_8_container' class='name_suffix'><input type='text' name='input_%d.8' id='%s_8' value='%s' {$suffix_tabindex} %s/><label for='%s_8'>" . apply_filters("gform_name_suffix_{$form_id}", apply_filters("gform_name_suffix", __("Suffix", "gravityforms"), $form_id), $form_id) . "</label></span></div>", $id, $field_id, $prefix, $disabled_text, $field_id, $id, $field_id, $first, $disabled_text, $field_id, $id, $field_id, $last, $disabled_text, $field_id, $id, $field_id, $suffix, $disabled_text, $field_id);
                 case "simple":
                     $tabindex = self::get_tabindex();
                     return sprintf("<div class='ginput_container'><input name='input_%d' id='%s' type='text' value='%s' class='%s' {$tabindex} %s/></div>", $id, $field_id, esc_attr($value), esc_attr($class), $disabled_text);
                 default:
                     $first_tabindex = self::get_tabindex();
                     $last_tabindex = self::get_tabindex();
                     return sprintf("<div class='ginput_complex{$class_suffix} ginput_container' id='{$field_id}'><span id='" . $field_id . "_3_container' class='ginput_left'><input type='text' name='input_%d.3' id='%s_3' value='%s' {$first_tabindex} %s/><label for='%s_3'>" . apply_filters("gform_name_first_{$form_id}", apply_filters("gform_name_first", __("First", "gravityforms"), $form_id), $form_id) . "</label></span><span id='" . $field_id . "_6_container' class='ginput_right'><input type='text' name='input_%d.6' id='%s_6' value='%s' {$last_tabindex} %s/><label for='%s_6'>" . apply_filters("gform_name_last_{$form_id}", apply_filters("gform_name_last", __("Last", "gravityforms"), $form_id), $form_id) . "</label></span></div>", $id, $field_id, $first, $disabled_text, $field_id, $id, $field_id, $last, $disabled_text, $field_id);
             }
         case "address":
             $street_value = "";
             $street2_value = "";
             $city_value = "";
             $state_value = "";
             $zip_value = "";
             $country_value = "";
             if (is_array($value)) {
                 $street_value = esc_attr(rgget($field["id"] . ".1", $value));
                 $street2_value = esc_attr(rgget($field["id"] . ".2", $value));
                 $city_value = esc_attr(rgget($field["id"] . ".3", $value));
                 $state_value = esc_attr(rgget($field["id"] . ".4", $value));
                 $zip_value = esc_attr(rgget($field["id"] . ".5", $value));
                 $country_value = esc_attr(rgget($field["id"] . ".6", $value));
             }
             $address_types = self::get_address_types($form_id);
             $addr_type = empty($field["addressType"]) ? "international" : $field["addressType"];
             $address_type = $address_types[$addr_type];
             $state_label = empty($address_type["state_label"]) ? __("State", "gravityforms") : $address_type["state_label"];
             $zip_label = empty($address_type["zip_label"]) ? __("Zip Code", "gravityforms") : $address_type["zip_label"];
             $hide_country = !empty($address_type["country"]) || rgget("hideCountry", $field);
             if (empty($country_value)) {
                 $country_value = rgget("defaultCountry", $field);
             }
             if (empty($state_value)) {
                 $state_value = rgget("defaultState", $field);
             }
             $country_list = self::get_country_dropdown($country_value);
             //changing css classes based on field format to ensure proper display
             $address_display_format = apply_filters("gform_address_display_format", "default");
             $city_location = $address_display_format == "zip_before_city" ? "right" : "left";
             $zip_location = $address_display_format != "zip_before_city" && rgar($field, "hideState") ? "right" : "left";
             $state_location = $address_display_format == "zip_before_city" ? "left" : "right";
             $country_location = rgar($field, "hideState") ? "left" : "right";
             //address field
             $tabindex = self::get_tabindex();
             $street_address = sprintf("<span class='ginput_full{$class_suffix}' id='" . $field_id . "_1_container'><input type='text' name='input_%d.1' id='%s_1' value='%s' {$tabindex} %s/><label for='%s_1' id='" . $field_id . "_1_label'>" . apply_filters("gform_address_street_{$form_id}", apply_filters("gform_address_street", __("Street Address", "gravityforms"), $form_id), $form_id) . "</label></span>", $id, $field_id, $street_value, $disabled_text, $field_id);
             //address line 2 field
             $street_address2 = "";
             $style = IS_ADMIN && rgget("hideAddress2", $field) ? "style='display:none;'" : "";
             if (IS_ADMIN || !rgget("hideAddress2", $field)) {
                 $tabindex = self::get_tabindex();
                 $street_address2 = sprintf("<span class='ginput_full{$class_suffix}' id='" . $field_id . "_2_container' {$style}><input type='text' name='input_%d.2' id='%s_2' value='%s' {$tabindex} %s/><label for='%s_2' id='" . $field_id . "_2_label'>" . apply_filters("gform_address_street2_{$form_id}", apply_filters("gform_address_street2", __("Address Line 2", "gravityforms"), $form_id), $form_id) . "</label></span>", $id, $field_id, $street2_value, $disabled_text, $field_id);
             }
             if ($address_display_format == "zip_before_city") {
                 //zip field
                 $tabindex = self::get_tabindex();
                 $zip = sprintf("<span class='ginput_{$zip_location}{$class_suffix}' id='" . $field_id . "_5_container'><input type='text' name='input_%d.5' id='%s_5' value='%s' {$tabindex} %s/><label for='%s_5' id='" . $field_id . "_5_label'>" . apply_filters("gform_address_zip_{$form_id}", apply_filters("gform_address_zip", $zip_label, $form_id), $form_id) . "</label></span>", $id, $field_id, $zip_value, $disabled_text, $field_id);
                 //city field
                 $tabindex = self::get_tabindex();
                 $city = sprintf("<span class='ginput_{$city_location}{$class_suffix}' id='" . $field_id . "_3_container'><input type='text' name='input_%d.3' id='%s_3' value='%s' {$tabindex} %s/><label for='%s_3' id='{$field_id}.3_label'>" . apply_filters("gform_address_city_{$form_id}", apply_filters("gform_address_city", __("City", "gravityforms"), $form_id), $form_id) . "</label></span>", $id, $field_id, $city_value, $disabled_text, $field_id);
                 //state field
                 $style = IS_ADMIN && rgget("hideState", $field) ? "style='display:none;'" : "";
                 if (IS_ADMIN || !rgget("hideState", $field)) {
                     $state_field = self::get_state_field($field, $id, $field_id, $state_value, $disabled_text, $form_id);
                     $state = sprintf("<span class='ginput_{$state_location}{$class_suffix}' id='" . $field_id . "_4_container' {$style}>{$state_field}<label for='%s_4' id='" . $field_id . "_4_label'>" . apply_filters("gform_address_state_{$form_id}", apply_filters("gform_address_state", $state_label, $form_id), $form_id) . "</label></span>", $field_id);
                 } else {
                     $state = sprintf("<input type='hidden' class='gform_hidden' name='input_%d.4' id='%s_4' value='%s'/>", $id, $field_id, $state_value);
                 }
             } else {
                 //city field
                 $tabindex = self::get_tabindex();
                 $city = sprintf("<span class='ginput_{$city_location}{$class_suffix}' id='" . $field_id . "_3_container'><input type='text' name='input_%d.3' id='%s_3' value='%s' {$tabindex} %s/><label for='%s_3' id='{$field_id}.3_label'>" . apply_filters("gform_address_city_{$form_id}", apply_filters("gform_address_city", __("City", "gravityforms"), $form_id), $form_id) . "</label></span>", $id, $field_id, $city_value, $disabled_text, $field_id);
                 //state field
                 $style = IS_ADMIN && rgget("hideState", $field) ? "style='display:none;'" : "";
                 if (IS_ADMIN || !rgget("hideState", $field)) {
                     $state_field = self::get_state_field($field, $id, $field_id, $state_value, $disabled_text, $form_id);
                     $state = sprintf("<span class='ginput_{$state_location}{$class_suffix}' id='" . $field_id . "_4_container' {$style}>{$state_field}<label for='%s_4' id='" . $field_id . "_4_label'>" . apply_filters("gform_address_state_{$form_id}", apply_filters("gform_address_state", $state_label, $form_id), $form_id) . "</label></span>", $field_id);
                 } else {
                     $state = sprintf("<input type='hidden' class='gform_hidden' name='input_%d.4' id='%s_4' value='%s'/>", $id, $field_id, $state_value);
                 }
                 //zip field
                 $tabindex = self::get_tabindex();
                 $zip = sprintf("<span class='ginput_{$zip_location}{$class_suffix}' id='" . $field_id . "_5_container'><input type='text' name='input_%d.5' id='%s_5' value='%s' {$tabindex} %s/><label for='%s_5' id='" . $field_id . "_5_label'>" . apply_filters("gform_address_zip_{$form_id}", apply_filters("gform_address_zip", $zip_label, $form_id), $form_id) . "</label></span>", $id, $field_id, $zip_value, $disabled_text, $field_id);
             }
             if (IS_ADMIN || !$hide_country) {
                 $style = $hide_country ? "style='display:none;'" : "";
                 $tabindex = self::get_tabindex();
                 $country = sprintf("<span class='ginput_{$country_location}{$class_suffix}' id='" . $field_id . "_6_container' {$style}><select name='input_%d.6' id='%s_6' {$tabindex} %s>%s</select><label for='%s_6' id='" . $field_id . "_6_label'>" . apply_filters("gform_address_country_{$form_id}", apply_filters("gform_address_country", __("Country", "gravityforms"), $form_id), $form_id) . "</label></span>", $id, $field_id, $disabled_text, $country_list, $field_id);
             } else {
                 $country = sprintf("<input type='hidden' class='gform_hidden' name='input_%d.6' id='%s_6' value='%s'/>", $id, $field_id, $country_value);
             }
             $inputs = $address_display_format == "zip_before_city" ? $street_address . $street_address2 . $zip . $city . $state . $country : $street_address . $street_address2 . $city . $state . $zip . $country;
             return "<div class='ginput_complex{$class_suffix} ginput_container' id='{$field_id}'>" . $inputs . "</div>";
         case "date":
             if (!empty($post_link)) {
                 return $post_link;
             }
             $format = empty($field["dateFormat"]) ? "mdy" : esc_attr($field["dateFormat"]);
             $field_position = substr($format, 0, 3);
             if (IS_ADMIN && RG_CURRENT_VIEW != "entry") {
                 $datepicker_display = in_array(rgget("dateType", $field), array("datefield", "datedropdown")) ? "none" : "inline";
                 $datefield_display = rgget("dateType", $field) == "datefield" ? "inline" : "none";
                 $dropdown_display = rgget("dateType", $field) == "datedropdown" ? "inline" : "none";
                 $icon_display = rgget("calendarIconType", $field) == "calendar" ? "inline" : "none";
                 $month_field = "<div class='gfield_date_month ginput_date' id='gfield_input_date_month' style='display:{$datefield_display}'><input name='ginput_month' type='text' disabled='disabled'/><label>" . __("MM", "gravityforms") . "</label></div>";
                 $day_field = "<div class='gfield_date_day ginput_date' id='gfield_input_date_day' style='display:{$datefield_display}'><input name='ginput_day' type='text' disabled='disabled'/><label>" . __("DD", "gravityforms") . "</label></div>";
                 $year_field = "<div class='gfield_date_year ginput_date' id='gfield_input_date_year' style='display:{$datefield_display}'><input type='text' name='ginput_year' disabled='disabled'/><label>" . __("YYYY", "gravityforms") . "</label></div>";
                 $month_dropdown = "<div class='gfield_date_dropdown_month ginput_date_dropdown' id='gfield_dropdown_date_month' style='display:{$dropdown_display}'>" . self::get_month_dropdown("", "", "", "", "disabled='disabled'") . "</div>";
                 $day_dropdown = "<div class='gfield_date_dropdown_day ginput_date_dropdown' id='gfield_dropdown_date_day' style='display:{$dropdown_display}'>" . self::get_day_dropdown("", "", "", "", "disabled='disabled'") . "</div>";
                 $year_dropdown = "<div class='gfield_date_dropdown_year ginput_date_dropdown' id='gfield_dropdown_date_year' style='display:{$dropdown_display}'>" . self::get_year_dropdown("", "", "", "", "disabled='disabled'") . "</div>";
                 $field_string = "<div class='ginput_container' id='gfield_input_datepicker' style='display:{$datepicker_display}'><input name='ginput_datepicker' type='text' /><img src='" . GFCommon::get_base_url() . "/images/calendar.png' id='gfield_input_datepicker_icon' style='display:{$icon_display}'/></div>";
                 switch ($field_position) {
                     case "dmy":
                         $field_string .= $day_field . $month_field . $year_field . $day_dropdown . $month_dropdown . $year_dropdown;
                         break;
                     case "ymd":
                         $field_string .= $year_field . $month_field . $day_field . $year_dropdown . $month_dropdown . $day_dropdown;
                         break;
                     default:
                         $field_string .= $month_field . $day_field . $year_field . $month_dropdown . $day_dropdown . $year_dropdown;
                         break;
                 }
                 return $field_string;
             } else {
                 $date_info = self::parse_date($value, $format);
                 $date_type = rgget("dateType", $field);
                 if (in_array($date_type, array("datefield", "datedropdown"))) {
                     switch ($field_position) {
                         case "dmy":
                             $tabindex = self::get_tabindex();
                             $field_str = $date_type == "datedropdown" ? "<div class='clear-multi'><div class='gfield_date_dropdown_day ginput_container' id='{$field_id}'>" . self::get_day_dropdown("input_{$id}[]", "{$field_id}_1", rgar($date_info, "day"), $tabindex, $disabled_text) . "</div>" : sprintf("<div class='clear-multi'><div class='gfield_date_day ginput_container' id='%s'><input type='text' maxlength='2' name='input_%d[]' id='%s_2' value='%s' {$tabindex} %s/><label for='%s_2'>" . __("DD", "gravityforms") . "</label></div>", $field_id, $id, $field_id, rgget("day", $date_info), $disabled_text, $field_id);
                             $tabindex = self::get_tabindex();
                             $field_str .= $date_type == "datedropdown" ? "<div class='gfield_date_dropdown_month ginput_container' id='{$field_id}'>" . self::get_month_dropdown("input_{$id}[]", "{$field_id}_1", rgar($date_info, "month"), $tabindex, $disabled_text) . "</div>" : sprintf("<div class='gfield_date_month ginput_container' id='%s'><input type='text' maxlength='2' name='input_%d[]' id='%s_1' value='%s' {$tabindex} %s/><label for='%s_1'>" . __("MM", "gravityforms") . "</label></div>", $field_id, $id, $field_id, rgget("month", $date_info), $disabled_text, $field_id);
                             $tabindex = self::get_tabindex();
                             $field_str .= $date_type == "datedropdown" ? "<div class='gfield_date_dropdown_year ginput_container' id='{$field_id}'>" . self::get_year_dropdown("input_{$id}[]", "{$field_id}_1", rgar($date_info, "year"), $tabindex, $disabled_text) . "</div></div>" : sprintf("<div class='gfield_date_year ginput_container' id='%s'><input type='text' maxlength='4' name='input_%d[]' id='%s_3' value='%s' {$tabindex} %s/><label for='%s_3'>" . __("YYYY", "gravityforms") . "</label></div></div>", $field_id, $id, $field_id, rgget("year", $date_info), $disabled_text, $field_id);
                             break;
                         case "ymd":
                             $tabindex = self::get_tabindex();
                             $field_str = $date_type == "datedropdown" ? "<div class='clear-multi'><div class='gfield_date_dropdown_year ginput_container' id='{$field_id}'>" . self::get_year_dropdown("input_{$id}[]", "{$field_id}_1", rgar($date_info, "year"), $tabindex, $disabled_text) . "</div>" : sprintf("<div class='clear-multi'><div class='gfield_date_year ginput_container' id='%s'><input type='text' maxlength='4' name='input_%d[]' id='%s_3' value='%s' {$tabindex} %s/><label for='%s_3'>" . __("YYYY", "gravityforms") . "</label></div>", $field_id, $id, $field_id, rgget("year", $date_info), $disabled_text, $field_id);
                             $field_str .= $date_type == "datedropdown" ? "<div class='gfield_date_dropdown_month ginput_container' id='{$field_id}'>" . self::get_month_dropdown("input_{$id}[]", "{$field_id}_1", rgar($date_info, "month"), $tabindex, $disabled_text) . "</div>" : sprintf("<div class='gfield_date_month ginput_container' id='%s'><input type='text' maxlength='2' name='input_%d[]' id='%s_1' value='%s' {$tabindex} %s/><label for='%s_1'>" . __("MM", "gravityforms") . "</label></div>", $field_id, $id, $field_id, rgar($date_info, "month"), $disabled_text, $field_id);
                             $tabindex = self::get_tabindex();
                             $field_str .= $date_type == "datedropdown" ? "<div class='gfield_date_dropdown_day ginput_container' id='{$field_id}'>" . self::get_day_dropdown("input_{$id}[]", "{$field_id}_1", rgar($date_info, "day"), $tabindex, $disabled_text) . "</div></div>" : sprintf("<div class='gfield_date_day ginput_container' id='%s'><input type='text' maxlength='2' name='input_%d[]' id='%s_2' value='%s' {$tabindex} %s/><label for='%s_2'>" . __("DD", "gravityforms") . "</label></div></div>", $field_id, $id, $field_id, rgar($date_info, "day"), $disabled_text, $field_id);
                             break;
                         default:
                             $tabindex = self::get_tabindex();
                             $field_str = $date_type == "datedropdown" ? "<div class='clear-multi'><div class='gfield_date_dropdown_month ginput_container' id='{$field_id}'>" . self::get_month_dropdown("input_{$id}[]", "{$field_id}_1", rgar($date_info, "month"), $tabindex, $disabled_text) . "</div>" : sprintf("<div class='clear-multi'><div class='gfield_date_month ginput_container' id='%s'><input type='text' maxlength='2' name='input_%d[]' id='%s_1' value='%s' {$tabindex} %s/><label for='%s_1'>" . __("MM", "gravityforms") . "</label></div>", $field_id, $id, $field_id, rgar($date_info, "month"), $disabled_text, $field_id);
                             $tabindex = self::get_tabindex();
                             $field_str .= $date_type == "datedropdown" ? "<div class='gfield_date_dropdown_day ginput_container' id='{$field_id}'>" . self::get_day_dropdown("input_{$id}[]", "{$field_id}_1", rgar($date_info, "day"), $tabindex, $disabled_text) . "</div>" : sprintf("<div class='gfield_date_day ginput_container' id='%s'><input type='text' maxlength='2' name='input_%d[]' id='%s_2' value='%s' {$tabindex} %s/><label for='%s_2'>" . __("DD", "gravityforms") . "</label></div>", $field_id, $id, $field_id, rgar($date_info, "day"), $disabled_text, $field_id);
                             $tabindex = self::get_tabindex();
                             $field_str .= $date_type == "datedropdown" ? "<div class='gfield_date_dropdown_year ginput_container' id='{$field_id}'>" . self::get_year_dropdown("input_{$id}[]", "{$field_id}_1", rgar($date_info, "year"), $tabindex, $disabled_text) . "</div></div>" : sprintf("<div class='gfield_date_year ginput_container' id='%s'><input type='text' maxlength='4' name='input_%d[]' id='%s_3' value='%s' {$tabindex} %s/><label for='%s_3'>" . __("YYYY", "gravityforms") . "</label></div></div>", $field_id, $id, $field_id, rgget("year", $date_info), $disabled_text, $field_id);
                             break;
                     }
                     return $field_str;
                 } else {
                     $value = GFCommon::date_display($value, $format);
                     $icon_class = $field["calendarIconType"] == "none" ? "datepicker_no_icon" : "datepicker_with_icon";
                     $icon_url = empty($field["calendarIconUrl"]) ? GFCommon::get_base_url() . "/images/calendar.png" : $field["calendarIconUrl"];
                     $tabindex = self::get_tabindex();
                     return sprintf("<div class='ginput_container'><input name='input_%d' id='%s' type='text' value='%s' class='datepicker %s %s %s' {$tabindex} %s/> </div><input type='hidden' id='gforms_calendar_icon_{$field_id}' class='gform_hidden' value='{$icon_url}'/>", $id, $field_id, esc_attr($value), esc_attr($class), $format, $icon_class, $disabled_text);
                 }
             }
         case "time":
             if (!empty($post_link)) {
                 return $post_link;
             }
             $hour = $minute = $am_selected = $pm_selected = "";
             if (!is_array($value) && !empty($value)) {
                 preg_match('/^(\\d*):(\\d*) ?(.*)$/', $value, $matches);
                 $hour = esc_attr($matches[1]);
                 $minute = esc_attr($matches[2]);
                 $am_selected = rgar($matches, 3) == "am" ? "selected='selected'" : "";
                 $pm_selected = rgar($matches, 3) == "pm" ? "selected='selected'" : "";
             } else {
                 if (is_array($value)) {
                     $hour = esc_attr($value[0]);
                     $minute = esc_attr($value[1]);
                     $am_selected = rgar($value, 2) == "am" ? "selected='selected'" : "";
                     $pm_selected = rgar($value, 2) == "pm" ? "selected='selected'" : "";
                 }
             }
             $hour_tabindex = self::get_tabindex();
             $minute_tabindex = self::get_tabindex();
             $ampm_tabindex = self::get_tabindex();
             $ampm_field_style = is_admin() && rgar($field, "timeFormat") == "24" ? "style='display:none;'" : "";
             $ampm_field = is_admin() || rgar($field, "timeFormat") != "24" ? "<div class='gfield_time_ampm ginput_container' {$ampm_field_style}><select name='input_{$id}[]' id='{$field_id}_3' {$ampm_tabindex} {$disabled_text}><option value='am' {$am_selected}>" . __("AM", "gravityforms") . "</option><option value='pm' {$pm_selected}>" . __("PM", "gravityforms") . "</option></select></div>" : "";
             return sprintf("<div class='clear-multi'><div class='gfield_time_hour ginput_container' id='%s'><input type='text' maxlength='2' name='input_%d[]' id='%s_1' value='%s' {$hour_tabindex} %s/> : <label for='%s_1'>" . __("HH", "gravityforms") . "</label></div><div class='gfield_time_minute ginput_container'><input type='text' maxlength='2' name='input_%d[]' id='%s_2' value='%s' {$minute_tabindex} %s/><label for='%s_2'>" . __("MM", "gravityforms") . "</label></div>{$ampm_field}</div>", $field_id, $id, $field_id, $hour, $disabled_text, $field_id, $id, $field_id, $minute, $disabled_text, $field_id);
         case "fileupload":
             $tabindex = self::get_tabindex();
             $upload = sprintf("<input name='input_%d' id='%s' type='file' value='%s' size='20' class='%s' {$tabindex} %s/>", $id, $field_id, esc_attr($value), esc_attr($class), $disabled_text);
             if (IS_ADMIN && !empty($value)) {
                 $value = esc_attr($value);
                 $preview = sprintf("<div id='preview_%d'><a href='%s' target='_blank' alt='%s' title='%s'>%s</a><a href='%s' target='_blank' alt='" . __("Download file", "gravityforms") . "' title='" . __("Download file", "gravityforms") . "'><img src='%s' style='margin-left:10px;'/></a><a href='javascript:void(0);' alt='" . __("Delete file", "gravityforms") . "' title='" . __("Delete file", "gravityforms") . "' onclick='DeleteFile(%d,%d);' ><img src='%s' style='margin-left:10px;'/></a></div>", $id, $value, $value, $value, GFCommon::truncate_url($value), $value, GFCommon::get_base_url() . "/images/download.png", $lead_id, $id, GFCommon::get_base_url() . "/images/delete.png");
                 return $preview . "<div id='upload_{$id}' style='display:none;'>{$upload}</div>";
             } else {
                 $file_info = RGFormsModel::get_temp_filename($form_id, "input_{$id}");
                 if ($file_info && !$field["failed_validation"]) {
                     $preview = "<span class='ginput_preview'><strong>" . esc_html($file_info["uploaded_filename"]) . "</strong> | <a href='javascript:;' onclick='gformDeleteUploadedFile({$form_id}, {$id});'>" . __("delete", "gravityforms") . "</a></span>";
                     return "<div class='ginput_container'>" . str_replace(" class='", " class='gform_hidden ", $upload) . " {$preview}</div>";
                 } else {
                     return "<div class='ginput_container'>{$upload}</div>";
                 }
             }
         case "captcha":
             switch (rgget("captchaType", $field)) {
                 case "simple_captcha":
                     $size = rgempty("simpleCaptchaSize", $field) ? "medium" : $field["simpleCaptchaSize"];
                     $captcha = self::get_captcha($field);
                     $tabindex = self::get_tabindex();
                     $dimensions = IS_ADMIN ? "" : "width='" . rgar($captcha, "width") . "' height='" . rgar($captcha, "height") . "'";
                     return "<div class='gfield_captcha_container'><img class='gfield_captcha' src='" . rgar($captcha, "url") . "' alt='' {$dimensions} /><div class='gfield_captcha_input_container simple_captcha_{$size}'><input type='text' name='input_{$id}' id='{$field_id}' {$tabindex}/><input type='hidden' name='input_captcha_prefix_{$id}' value='" . rgar($captcha, "prefix") . "' /></div></div>";
                     break;
                 case "math":
                     $size = empty($field["simpleCaptchaSize"]) ? "medium" : $field["simpleCaptchaSize"];
                     $captcha_1 = self::get_math_captcha($field, 1);
                     $captcha_2 = self::get_math_captcha($field, 2);
                     $captcha_3 = self::get_math_captcha($field, 3);
                     $tabindex = self::get_tabindex();
                     $dimensions = IS_ADMIN ? "" : "width='{$captcha_1["width"]}' height='{$captcha_1["height"]}'";
                     return "<div class='gfield_captcha_container'><img class='gfield_captcha' src='{$captcha_1["url"]}' alt='' {$dimensions} /><img class='gfield_captcha' src='{$captcha_2["url"]}' alt='' {$dimensions} /><img class='gfield_captcha' src='{$captcha_3["url"]}' alt='' {$dimensions} /><div class='gfield_captcha_input_container math_{$size}'><input type='text' name='input_{$id}' id='input_{$field_id}' {$tabindex}/><input type='hidden' name='input_captcha_prefix_{$id}' value='{$captcha_1["prefix"]},{$captcha_2["prefix"]},{$captcha_3["prefix"]}' /></div></div>";
                     break;
                 default:
                     if (!function_exists("recaptcha_get_html")) {
                         require_once GFCommon::get_base_path() . '/recaptchalib.php';
                     }
                     $theme = empty($field["captchaTheme"]) ? "red" : esc_attr($field["captchaTheme"]);
                     $publickey = get_option("rg_gforms_captcha_public_key");
                     $privatekey = get_option("rg_gforms_captcha_private_key");
                     if (IS_ADMIN) {
                         if (empty($publickey) || empty($privatekey)) {
                             return "<div class='captcha_message'>" . __("To use the reCaptcha field you must first do the following:", "gravityforms") . "</div><div class='captcha_message'>1 - <a href='http://www.google.com/recaptcha/whyrecaptcha' target='_blank'>" . sprintf(__("Sign up%s for a free reCAPTCHA account", "gravityforms"), "</a>") . "</div><div class='captcha_message'>2 - " . sprintf(__("Enter your reCAPTCHA keys in the %ssettings page%s", "gravityforms"), "<a href='?page=gf_settings'>", "</a>") . "</div>";
                         } else {
                             return "<div class='ginput_container'><img class='gfield_captcha' src='" . GFCommon::get_base_url() . "/images/captcha_{$theme}.jpg' alt='reCAPTCHA' title='reCAPTCHA'/></div>";
                         }
                     } else {
                         $language = empty($field["captchaLanguage"]) ? "en" : esc_attr($field["captchaLanguage"]);
                         $options = "<script type='text/javascript'>" . apply_filters("gform_cdata_open", "") . " var RecaptchaOptions = {theme : '{$theme}'}; if(parseInt('" . self::$tab_index . "') > 0) {RecaptchaOptions.tabindex = " . self::$tab_index++ . ";}" . apply_filters("gform_recaptcha_init_script", "", $form_id, $field) . apply_filters("gform_cdata_close", "") . "</script>";
                         $is_ssl = !empty($_SERVER['HTTPS']);
                         return $options . "<div class='ginput_container' id='{$field_id}'>" . recaptcha_get_html($publickey, null, $is_ssl, $language) . "</div>";
                     }
             }
             break;
         case "creditcard":
             $card_number = "";
             $card_name = "";
             $expiration_date = "";
             $expiration_month = "";
             $expiration_year = "";
             $security_code = "";
             if (is_array($value)) {
                 $card_number = esc_attr(rgget($field["id"] . ".1", $value));
                 $card_name = esc_attr(rgget($field["id"] . ".5", $value));
                 $expiration_date = rgget($field["id"] . ".2", $value);
                 if (!is_array($expiration_date) && !empty($expiration_date)) {
                     $expiration_date = explode("/", $expiration_date);
                 }
                 if (is_array($expiration_date) && count($expiration_date) == 2) {
                     $expiration_month = $expiration_date[0];
                     $expiration_year = $expiration_date[1];
                 }
                 $security_code = esc_attr(rgget($field["id"] . ".3", $value));
             }
             $action = !IS_ADMIN ? "gformMatchCard(\"{$field_id}_1\");" : "";
             $onchange = "onchange='{$action}'";
             $onkeyup = "onkeyup='{$action}'";
             $card_icons = '';
             $cards = GFCommon::get_card_types();
             $card_style = rgar($field, 'creditCardStyle') ? rgar($field, 'creditCardStyle') : 'style1';
             foreach ($cards as $card) {
                 $style = "";
                 if (self::is_card_supported($field, $card["slug"])) {
                     $print_card = true;
                 } else {
                     if (IS_ADMIN) {
                         $print_card = true;
                         $style = "style='display:none;'";
                     } else {
                         $print_card = false;
                     }
                 }
                 if ($print_card) {
                     $card_icons .= "<div class='gform_card_icon gform_card_icon_{$card['slug']}' {$style}>{$card['name']}</div>";
                 }
             }
             $card_icons = "<div class='gform_card_icon_container gform_card_icon_{$card_style}'>{$card_icons}</div>";
             //card number fields
             $tabindex = self::get_tabindex();
             $card_field = sprintf("<span class='ginput_full{$class_suffix}' id='{$field_id}_1_container'>{$card_icons}<input type='text' name='input_%d.1' id='%s_1' value='%s' {$tabindex} %s {$onchange} {$onkeyup} /><label for='%s_1' id='{$field_id}_1_label'>" . apply_filters("gform_card_number_{$form_id}", apply_filters("gform_card_number", __("Card Number", "gravityforms"), $form_id), $form_id) . "</label></span>", $id, $field_id, $card_number, $disabled_text, $field_id);
             //expiration date field
             $expiration_field = "<span class='ginput_full{$class_suffix} ginput_cardextras' id='{$field_id}_2_container'>" . "<span class='ginput_cardinfo_left{$class_suffix}' id='{$field_id}_2_container'>" . "<span class='ginput_card_expiration_container'>" . "<select name='input_{$id}.2[]' id='{$field_id}_2_month' " . self::get_tabindex() . " {$disabled_text} class='ginput_card_expiration ginput_card_expiration_month'>" . self::get_expiration_months($expiration_month) . "</select>" . "<select name='input_{$id}.2[]' id='{$field_id}_2_year' " . self::get_tabindex() . " {$disabled_text} class='ginput_card_expiration ginput_card_expiration_year'>" . self::get_expiration_years($expiration_year) . "</select>" . "<label for='{$field_id}_2_month' >" . apply_filters("gform_card_expiration_{$form_id}", apply_filters("gform_card_expiration", __("Expiration Date", "gravityforms"), $form_id), $form_id) . "</label>" . "</span>" . "</span>";
             //security code field
             $tabindex = self::get_tabindex();
             $security_field = "<span class='ginput_cardinfo_right{$class_suffix}' id='{$field_id}_2_container'>" . "<input type='text' name='input_{$id}.3' id='{$field_id}_3' {$tabindex} {$disabled_text} class='ginput_card_security_code' value='{$security_code}' />" . "<span class='ginput_card_security_code_icon'>&nbsp;</span>" . "<label for='{$field_id}_3' >" . apply_filters("gform_card_security_code_{$form_id}", apply_filters("gform_card_security_code", __("Security Code", "gravityforms"), $form_id), $form_id) . "</label>" . "</span>" . "</span>";
             $tabindex = self::get_tabindex();
             $card_name_field = sprintf("<span class='ginput_full{$class_suffix}' id='{$field_id}_5_container'><input type='text' name='input_%d.5' id='%s_5' value='%s' {$tabindex} %s /><label for='%s_5' id='{$field_id}_5_label'>" . apply_filters("gform_card_name_{$form_id}", apply_filters("gform_card_name", __("Cardholder Name", "gravityforms"), $form_id), $form_id) . "</label></span>", $id, $field_id, $card_name, $disabled_text, $field_id);
             return "<div class='ginput_complex{$class_suffix} ginput_container' id='{$field_id}'>" . $card_field . $expiration_field . $security_field . $card_name_field . " </div>";
             break;
         case "list":
             if (!empty($value)) {
                 $value = maybe_unserialize($value);
             }
             if (!is_array($value)) {
                 $value = array(array());
             }
             $has_columns = is_array(rgar($field, "choices"));
             $columns = $has_columns ? rgar($field, "choices") : array(array());
             $list = "<div class='ginput_container ginput_list'>" . "<table class='gfield_list'>";
             $class_attr = "";
             if ($has_columns) {
                 $list .= "<colgroup>";
                 $colnum = 1;
                 foreach ($columns as $column) {
                     $odd_even = $colnum % 2 == 0 ? "even" : "odd";
                     $list .= "<col id='gfield_list_{$field["id"]}_col{$colnum}' class='gfield_list_col_{$odd_even}'></col>";
                     $colnum++;
                 }
                 $list .= "</colgroup>";
                 $list .= "<thead><tr>";
                 foreach ($columns as $column) {
                     $list .= "<th>" . esc_html($column["text"]) . "</th>";
                 }
                 $list .= "<th>&nbsp;</th></tr></thead>";
             } else {
                 $list .= "<colgroup><col id='gfield_list_{$field["id"]}_col1' class='gfield_list_col_odd'></col></colgroup>";
             }
             $delete_display = count($value) == 1 ? "visibility:hidden;" : "";
             $maxRow = intval(rgar($field, "maxRows"));
             $disabled_icon_class = !empty($maxRow) && count($value) >= $maxRow ? "gfield_icon_disabled" : "";
             $list .= "<tbody>";
             $rownum = 1;
             foreach ($value as $item) {
                 $odd_even = $rownum % 2 == 0 ? "even" : "odd";
                 $list .= "<tr class='gfield_list_row_{$odd_even}'>";
                 $colnum = 1;
                 foreach ($columns as $column) {
                     //getting value. taking into account columns being added/removed from form meta
                     if (is_array($item)) {
                         if ($has_columns) {
                             $val = rgar($item, $column["text"]);
                         } else {
                             $vals = array_values($item);
                             $val = rgar($vals, 0);
                         }
                     } else {
                         $val = $colnum == 1 ? $item : "";
                     }
                     $list .= "<td class='gfield_list_cell gfield_list_{$field["id"]}_cell{$colnum}'>" . self::get_list_input($field, $has_columns, $column, $val, $form_id) . "</td>";
                     $colnum++;
                 }
                 $add_icon = !rgempty("addIconUrl", $field) ? $field["addIconUrl"] : GFCommon::get_base_url() . "/images/add.png";
                 $delete_icon = !rgempty("deleteIconUrl", $field) ? $field["deleteIconUrl"] : GFCommon::get_base_url() . "/images/remove.png";
                 $on_click = IS_ADMIN && RG_CURRENT_VIEW != "entry" ? "" : "onclick='gformAddListItem(this, {$maxRow})'";
                 if (rgar($field, "maxRows") != 1) {
                     $list .= "<td class='gfield_list_icons'>";
                     $list .= "   <img src='{$add_icon}' class='add_list_item {$disabled_icon_class}' {$disabled_text} title='" . __("Add a row", "gravityforms") . "' alt='" . __("Add a row", "gravityforms") . "' {$on_click} style='cursor:pointer; margin:0 3px;' />" . "   <img src='{$delete_icon}' {$disabled_text} title='" . __("Remove this row", "gravityforms") . "' alt='" . __("Remove this row", "gravityforms") . "' class='delete_list_item' style='cursor:pointer; {$delete_display}' onclick='gformDeleteListItem(this, {$maxRow})' />";
                     $list .= "</td>";
                 }
                 $list .= "</tr>";
                 if (!empty($maxRow) && $rownum >= $maxRow) {
                     break;
                 }
                 $rownum++;
             }
             $list .= "</tbody></table></div>";
             return $list;
             break;
     }
 }
Ejemplo n.º 20
0
    public static function forms_page($form_id)
    {
        global $wpdb;
        if (!GFCommon::ensure_wp_version()) {
            return;
        }
        if (RGForms::post("operation") == "delete") {
            check_admin_referer('gforms_delete_form', 'gforms_delete_form');
            RGFormsModel::delete_form($form_id);
            ?>
                <script>
                jQuery(document).ready(
                    function(){document.location.href="?page=gf_edit_forms";}
                );
                </script>
            <?php 
            exit;
        }
        wp_register_script("rg_currency", GFCommon::get_base_url() . "/js/gravityforms.js", null, GFCommon::$version);
        wp_print_scripts(array("jquery-ui-core", "jquery-ui-sortable", "jquery-ui-tabs", "sack", "thickbox", "rg_currency"));
        wp_print_styles(array("thickbox"));
        ?>
        <script src="<?php 
        echo GFCommon::get_base_url();
        ?>
/js/jquery.dimensions.js?ver=<?php 
        echo GFCommon::$version;
        ?>
"></script>
        <script src="<?php 
        echo GFCommon::get_base_url();
        ?>
/js/floatmenu_init.js?ver=<?php 
        echo GFCommon::$version;
        ?>
"></script>
        <script src="<?php 
        echo GFCommon::get_base_url();
        ?>
/js/menu.js?ver=<?php 
        echo GFCommon::$version;
        ?>
"></script>
        <script src="<?php 
        echo GFCommon::get_base_url();
        ?>
/js/jquery.json-1.3.js?ver=<?php 
        echo GFCommon::$version;
        ?>
"></script>
        <script src="<?php 
        echo GFCommon::get_base_url();
        ?>
/js/jquery.simplemodal-1.3.min.js?ver=<?php 
        echo GFCommon::$version;
        ?>
"></script>
        <script src="<?php 
        echo GFCommon::get_base_url();
        ?>
/js/forms.js?ver=<?php 
        echo GFCommon::$version;
        ?>
"></script>
        <script src="<?php 
        echo GFCommon::get_base_url();
        ?>
/js/jquery-ui/ui.datepicker.js?ver=<?php 
        echo GFCommon::$version;
        ?>
"></script>

        <link rel="stylesheet" href="<?php 
        echo GFCommon::get_base_url();
        ?>
/css/jquery-ui-1.7.2.custom.css?ver=<?php 
        echo GFCommon::$version;
        ?>
" type="text/css" />
        <link rel="stylesheet" href="<?php 
        echo GFCommon::get_base_url();
        ?>
/css/admin.css?ver=<?php 
        echo GFCommon::$version;
        ?>
" type="text/css" />
        <script>
            jQuery(document).ready(
                function() {
                    jQuery('.datepicker').datepicker({showOn: "both", buttonImage: "<?php 
        echo GFCommon::get_base_url();
        ?>
/images/calendar.png", buttonImageOnly: true});
                }
            );

            function has_entry(fieldNumber){
                var submitted_fields = new Array(<?php 
        echo RGFormsModel::get_submitted_fields($form_id);
        ?>
);
                for(var i=0; i<submitted_fields.length; i++){
                    if(submitted_fields[i] == fieldNumber)
                        return true;
                }
                return false;
            }

            function InsertVariable(element_id, callback, variable){
                if(!variable)
                    variable = jQuery('#' + element_id + '_variable_select').val();

                var messageElement = jQuery("#" + element_id);

                if(document.selection) {
                    // Go the IE way
                    messageElement[0].focus();
                    document.selection.createRange().text=variable;
                }
                else if(messageElement[0].selectionStart) {
                    // Go the Gecko way
                    obj = messageElement[0]
                    obj.value = obj.value.substr(0, obj.selectionStart) + variable + obj.value.substr(obj.selectionEnd, obj.value.length);
                }
                else {
                    messageElement.val(variable + messageElement.val());
                }

                jQuery('#' + element_id + '_variable_select')[0].selectedIndex = 0;

                if(callback && window[callback])
                    window[callback].call();
            }

            function InsertPostImageVariable(element_id, callback){
                var variable = jQuery('#' + element_id + '_image_size_select').attr("variable");
                var size = jQuery('#' + element_id + '_image_size_select').val();
                if(size){
                    variable = "{" + variable + ":" + size + "}";
                    InsertVariable(element_id, callback, variable);
                    jQuery('#' + element_id + '_image_size_select').hide();
                    jQuery('#' + element_id + '_image_size_select')[0].selectedIndex = 0;
                }
            }

            function InsertPostContentVariable(element_id, callback){
                var variable = jQuery('#' + element_id + '_variable_select').val();
                var regex=/{([^{]*?: *(\d+\.?\d*).*?)}/;
                matches = regex.exec(variable);
                if(!matches){
                    InsertVariable(element_id, callback);
                    return;
                }

                variable = matches[1];
                field_id = matches[2];

                for(var i=0; i<form["fields"].length; i++){
                    if(form["fields"][i]["id"] == field_id){
                        if(form["fields"][i]["type"] == "post_image"){
                            jQuery('#' + element_id + '_image_size_select').attr("variable", variable);
                            jQuery('#' + element_id + '_image_size_select').show();
                            return;
                        }
                    }
                }

                InsertVariable(element_id, callback);
            }
        </script>

        <style>
            .field_type li {
                float:left;
                width:50%;
            }
            .field_type input{
                width:100px;
            }
        </style>

        <?php 
        $form = RGFormsModel::get_form_meta($form_id);
        $form = RGFormsModel::add_default_properties($form);
        if ($form == null) {
            $form = array("fields" => array());
        }
        $form = apply_filters("gform_admin_pre_render_" . $form_id, apply_filters("gform_admin_pre_render", $form));
        if (isset($form['id'])) {
            echo "<script>var form = " . GFCommon::json_encode($form) . ";</script>";
        } else {
            echo "<script>var form = new Form();</script>";
        }
        ?>

        <?php 
        echo GFCommon::get_remote_message();
        ?>
        <div class="wrap gforms_edit_form">

            <img alt="<?php 
        _e("Gravity Forms", "gravityforms");
        ?>
" src="<?php 
        echo GFCommon::get_base_url();
        ?>
/images/gravity-edit-icon-32.png" class="gtitle_icon"/>
            <h2><?php 
        echo empty($form_id) ? __("New Form", "gravityforms") : __("Form Editor :", "gravityforms") . " " . esc_html($form["title"]);
        ?>
</h2>

            <?php 
        RGForms::top_toolbar();
        ?>

            <table width="100%">
            <tr>
                <td class="pad_top" valign="top">

                    <div id="gform_heading" class="selectable">
                        <form method="post" id="form_delete">
                            <?php 
        wp_nonce_field('gforms_delete_form', 'gforms_delete_form');
        ?>

                            <?php 
        if (GFCommon::current_user_can_any("gravityforms_delete_forms")) {
            $delete_link = '<a href="javascript:void(0);" class="form_delete_icon" title="' . __("Delete this Form", "gravityforms") . '" onclick="if(confirm(\'' . __("Would you like to delete this form and ALL entries associated with it? \\'Cancel\\' to stop. \\'OK\\' to delete", "gravityforms") . '\')){jQuery(\'#form_delete\')[0].submit();} else{return false;}">' . __("Delete Form", "gravityforms") . '</a>';
            echo apply_filters("gform_form_delete_link", $delete_link);
            ?>

                            <?php 
        }
        ?>
                            <a href="javascript:void(0);" class="form_edit_icon edit_icon_collapsed" title="<?php 
        _e("Edit Form's properties", "gravityforms");
        ?>
"><?php 
        _e("Edit", "gravityforms");
        ?>
</a>

                            <input type="hidden" value="delete" name="operation"/>
                        </form>
                        <h3 id="gform_title"></h3>
                        <span id="gform_description">&nbsp;</span>

                        <div id="form_settings" style="display:none;">
                            <ul>
                                <li style="width:100px; padding:0px;"><a href="#gform_settings_tab_1"><?php 
        _e("Properties", "gravityforms");
        ?>
</a></li>
                                <li style="width:100px; padding:0px; "><a href="#gform_settings_tab_2"><?php 
        _e("Advanced", "gravityforms");
        ?>
</a></li>
                                <li style="width:120px; padding:0px; "><a href="#gform_settings_tab_3"><?php 
        _e("Confirmation", "gravityforms");
        ?>
</a></li>
                            </ul>
                            <div id="gform_settings_tab_1">
                                <ul class="gforms_form_settings">
                                    <li>
                                        <label for="form_title_input" style="display:block;">
                                            <?php 
        _e("Title", "gravityforms");
        ?>
                                            <?php 
        gform_tooltip("form_tile");
        ?>
                                        </label>
                                        <input type="text" id="form_title_input" class="fieldwidth-3" onkeyup="UpdateFormProperty('title', this.value);" />
                                    </li>
                                    <li>
                                        <label for="form_description_input" style="display:block;">
                                            <?php 
        _e("Description", "gravityforms");
        ?>
                                            <?php 
        gform_tooltip("form_description");
        ?>
                                        </label>
                                        <textarea id="form_description_input" class="fieldwidth-3 fieldheight-2" onkeyup="UpdateFormProperty('description', this.value);"/></textarea>
                                    </li>
                                    <li>
                                        <label for="form_label_placement" style="display:block;">
                                            <?php 
        _e("Label Placement", "gravityforms");
        ?>
                                            <?php 
        gform_tooltip("form_label_placement");
        ?>
                                        </label>
                                        <select id="form_label_placement" onchange="UpdateLabelPlacement();">
                                            <option value="top_label"><?php 
        _e("Top aligned", "gravityforms");
        ?>
</option>
                                            <option value="left_label"><?php 
        _e("Left aligned", "gravityforms");
        ?>
</option>
                                            <option value="right_label"><?php 
        _e("Right aligned", "gravityforms");
        ?>
</option>
                                        </select>
                                    </li>
                                </ul>
                            </div>
                            <div id="gform_settings_tab_2">
                                <ul class="gforms_form_settings">
                                    <li>
                                        <label><?php 
        _e("Form Button", "gravityforms");
        ?>
</label>
                                        <div class="form_button_options">
                                            <input type="radio" id="form_button_text" name="form_button" value="text" onclick="ToggleButton();"/>
                                            <label for="form_button_text" class="inline">
                                                <?php 
        _e("Default", "gravityforms");
        ?>
                                                <?php 
        gform_tooltip("form_button_text");
        ?>
                                            </label>
                                            &nbsp;&nbsp;
                                            <input type="radio" id="form_button_image" name="form_button" value="image" onclick="ToggleButton();"/>
                                            <label for="form_button_image" class="inline">
                                                <?php 
        _e("Image", "gravityforms");
        ?>
                                                <?php 
        gform_tooltip("form_button_image");
        ?>
                                            </label>

                                            <div id="form_button_text_container" style="margin-top:5px;">
                                            <label for="form_button_text_input" class="float_label">
                                                    <?php 
        _e("Text:", "gravityforms");
        ?>
                                                </label>
                                                <input type="text" id="form_button_text_input" class="input_size_b" size="40" />
                                            </div>

                                            <div id="form_button_image_container" style="margin-top:5px;">
                                                <label for="form_button_image_url" class="inline">
                                                    <?php 
        _e("Image Path:", "gravityforms");
        ?>
                                                </label>
                                                <input type="text" id="form_button_image_url" size="45"/>
                                            </div>

                                            <div style="margin-top:9px;">

                                                <input type="checkbox" id="form_button_conditional_logic" onclick="SetButtonConditionalLogic(this.checked); ToggleConditionalLogic(false, 'form_button');"/>
                                                <label for="form_button_conditional_logic" class="inline"><?php 
        _e("Enable Conditional Logic", "gravityforms");
        gform_tooltip("form_button_conditional_logic");
        ?>
</label>
                                                <br/>
                                                <div id="form_button_conditional_logic_container" style="display:none; padding-top:10px;">
                                                    <!-- content dynamically created from js.php -->
                                                </div>

                                            </div>
                                        </div>
                                    </li>
                                    <li>
                                        <label for="form_css_class" style="display:block;">
                                            <?php 
        _e("CSS Class Name", "gravityforms");
        ?>
                                            <?php 
        gform_tooltip("form_css_class");
        ?>
                                        </label>
                                        <input type="text" id="form_css_class" class="fieldwidth-3"/>
                                    </li>
                                   <li>
                                        <input type="checkbox" id="gform_limit_entries" onclick="ToggleLimitEntry();"/> <label for="gform_limit_entries"><?php 
        _e("Limit number of entries", "gravityforms");
        ?>
 <?php 
        gform_tooltip("form_limit_entries");
        ?>
</label>
                                        <br/>
                                        <div id="gform_limit_entries_container" style="display:none;">
                                            <br/>
                                            <label for="gform_limit_entries_count" style="display:block;">
                                                <?php 
        _e("Number of Entries", "gravityforms");
        ?>
                                            </label>
                                            <input type="text" id="gform_limit_entries_count"/>
                                            <br/><br/>
                                            <label for="form_limit_entries_message" style="display:block;">
                                                <?php 
        _e("Entry Limit Reached Message", "gravityforms");
        ?>
                                            </label>
                                            <textarea id="form_limit_entries_message" class="fieldwidth-3"></textarea>
                                        </div>
                                   </li>
                                   <li>
                                        <input type="checkbox" id="gform_schedule_form" onclick="ToggleSchedule();"/> <label for="gform_schedule_form"><?php 
        _e("Schedule form", "gravityforms");
        ?>
 <?php 
        gform_tooltip("form_schedule_form");
        ?>
</label>
                                        <br/>
                                        <div id="gform_schedule_form_container" style="display:none;">
                                            <br/>
                                            <label for="gform_schedule_start" style="display:block;">
                                                <?php 
        _e("Start Date/Time", "gravityforms");
        ?>
                                            </label>
                                            <input type="text" id="gform_schedule_start" name="gform_schedule_start" class="datepicker"/>
                                            &nbsp;&nbsp;
                                            <select id="gform_schedule_start_hour">
                                                <option value="1">1</option>
                                                <option value="2">2</option>
                                                <option value="3">3</option>
                                                <option value="4">4</option>
                                                <option value="5">5</option>
                                                <option value="6">6</option>
                                                <option value="7">7</option>
                                                <option value="8">8</option>
                                                <option value="9">9</option>
                                                <option value="10">10</option>
                                                <option value="11">11</option>
                                                <option value="12">12</option>
                                            </select>
                                            :
                                            <select id="gform_schedule_start_minute">
                                                <option value="00">00</option>
                                                <option value="15">15</option>
                                                <option value="30">30</option>
                                                <option value="45">45</option>
                                            </select>
                                            <select id="gform_schedule_start_ampm">
                                                <option value="am">AM</option>
                                                <option value="pm">PM</option>
                                            </select>
                                            <br/><br/>
                                            <label for="gform_schedule_end" style="display:block;">
                                                <?php 
        _e("End Date/Time", "gravityforms");
        ?>
                                            </label>
                                            <input type="text" id="gform_schedule_end" class="datepicker"/>
                                            &nbsp;&nbsp;
                                            <select id="gform_schedule_end_hour">
                                                <option value="1">1</option>
                                                <option value="2">2</option>
                                                <option value="3">3</option>
                                                <option value="4">4</option>
                                                <option value="5">5</option>
                                                <option value="6">6</option>
                                                <option value="7">7</option>
                                                <option value="8">8</option>
                                                <option value="9">9</option>
                                                <option value="10">10</option>
                                                <option value="11">11</option>
                                                <option value="12">12</option>
                                            </select>
                                            :
                                            <select id="gform_schedule_end_minute">
                                                <option value="00">00</option>
                                                <option value="15">15</option>
                                                <option value="30">30</option>
                                                <option value="45">45</option>
                                            </select>
                                            <select id="gform_schedule_end_ampm">
                                                <option value="am">AM</option>
                                                <option value="pm">PM</option>
                                            </select>

                                            <br/><br/>
                                            <label for="gform_schedule_message" style="display:block;">
                                                <?php 
        _e("Form Expired Message", "gravityforms");
        ?>
                                            </label>
                                            <textarea id="gform_schedule_message" class="fieldwidth-3"></textarea>
                                        </div>
                                    </li>
                                    <li>
                                        <input type="checkbox" id="gform_enable_honeypot" /> <label for="gform_enable_honeypot"><?php 
        _e("Enable anti-spam honeypot", "gravityforms");
        ?>
 <?php 
        gform_tooltip("form_honeypot");
        ?>
</label>
                                    </li>
                                     <li>
                                        <input type="checkbox" id="gform_enable_animation" /> <label for="gform_enable_animation"><?php 
        _e("Enable animation", "gravityforms");
        ?>
 <?php 
        gform_tooltip("form_animation");
        ?>
</label>
                                    </li>
                                </ul>
                            </div>
                            <div id="gform_settings_tab_3">
                                <ul class="gforms_form_settings">
                                    <li>
                                        <label><?php 
        _e("Confirmation Message", "gravityforms");
        ?>
</label>
                                        <div style="margin:4px 0;">
                                            <input type="radio" id="form_confirmation_show_message" name="form_confirmation" value="message" onclick="ToggleConfirmation();" />
                                            <label for="form_confirmation_show_message" class="inline">
                                                <?php 
        _e("Text", "gravityforms");
        ?>
                                                <?php 
        gform_tooltip("form_confirmation_message");
        ?>
                                            </label>
                                            &nbsp;&nbsp;
                                            <input type="radio" id="form_confirmation_show_page" name="form_confirmation" value="page" onclick="ToggleConfirmation();" />
                                            <label for="form_confirmation_show_page" class="inline">
                                                <?php 
        _e("Page", "gravityforms");
        ?>
                                                <?php 
        gform_tooltip("form_redirect_to_webpage");
        ?>
                                            </label>
                                            &nbsp;&nbsp;
                                            <input type="radio" id="form_confirmation_redirect" name="form_confirmation" value="redirect" onclick="ToggleConfirmation();" />
                                            <label for="form_confirmation_redirect" class="inline">
                                                <?php 
        _e("Redirect", "gravityforms");
        ?>
                                                <?php 
        gform_tooltip("form_redirect_to_url");
        ?>
                                            </label>

                                            <div id="form_confirmation_message_container" style="padding-top:10px;">
                                                <div>
                                                    <?php 
        GFCommon::insert_variables($form["fields"], "form_confirmation_message");
        ?>
                                                </div>
                                                <textarea id="form_confirmation_message" style="width:400px; height:300px;" /></textarea>
                                                <div style="margin-top:5px;">
                                                    <input type="checkbox" id="form_disable_autoformatting" /> <label for="form_disable_autoformatting"><?php 
        _e("Disable Auto-formatting", "gravityforms");
        ?>
 <?php 
        gform_tooltip("form_confirmation_autoformat");
        ?>
</label>
                                                </div>
                                            </div>

                                            <div id="form_confirmation_page_container" style="margin-top:5px;">
                                                <div>
                                                    <?php 
        wp_dropdown_pages(array("name" => "form_confirmation_page", "show_option_none" => "Select a page"));
        ?>
                                                </div>
                                            </div>

                                            <div id="form_confirmation_redirect_container" style="margin-top:5px;">
                                                <div>
                                                    <input type="text" id="form_confirmation_url" style="width:98%;"/>
                                                </div>
                                                <div style="margin-top:15px;">
                                                    <input type="checkbox" id="form_redirect_use_querystring" onclick="ToggleQueryString()"/> <label for="form_redirect_use_querystring"><?php 
        _e("Pass Field Data Via Query String", "gravityforms");
        ?>
 <?php 
        gform_tooltip("form_redirect_querystring");
        ?>
</label>
                                                    <br/>
                                                    <div id="form_redirect_querystring_container" style="display:none;">
                                                        <div style="margin-top:6px;">
                                                            <?php 
        GFCommon::insert_variables($form["fields"], "form_redirect_querystring", true);
        ?>
                                                        </div>
                                                        <textarea name="form_redirect_querystring" id="form_redirect_querystring" style="width:98%; height:100px;"></textarea><br/>
                                                        <div class="instruction"><?php 
        _e("Sample: phone={Phone:1}&email{Email:2}", "gravityforms");
        ?>
</div>
                                                    </div>
                                                </div>
                                            </div>
                                        </div>
                                    </li>
                                </ul>
                            </div>
                        </div>
                    </div>
                    <?php 
        $has_pages = GFCommon::has_pages($form);
        ?>
                    <div id="gform_pagination" class="selectable gform_settings_container" style="display:<?php 
        echo $has_pages ? "block" : "none";
        ?>
;">
                        <div class="settings_control_container">
                            <a href="javascript:void(0);" class="form_edit_icon edit_icon_collapsed" title="<?php 
        _e("Edit Last Page", "gravityforms");
        ?>
"><?php 
        _e("Edit", "gravityforms");
        ?>
</a>
                        </div>
                        <img src="<?php 
        echo GFCommon::get_base_url() . "/images/gf_pagebreak_first.png";
        ?>
" alt="<?php 
        __("First Page Options", "gravityforms");
        ?>
" title="<?php 
        __("First Page Options", "gravityforms");
        ?>
" />
                        <div id="pagination_settings" style="display: none;">
                            <ul>
                                <li style="width:100px; padding:0px;"><a href="#gform_pagination_settings_tab_1"><?php 
        _e("Properties", "gravityforms");
        ?>
</a></li>
                                <li style="width:100px; padding:0px;"><a href="#gform_pagination_settings_tab_2"><?php 
        _e("Advanced", "gravityforms");
        ?>
</a></li>
                            </ul>

                            <div id="gform_pagination_settings_tab_1">
                                <ul class="gforms_form_settings">
                                    <li>
                                        <label for="pagination_type_container">
                                            <?php 
        _e("Progress Indicator", "gravityforms");
        ?>
                                            <?php 
        gform_tooltip("form_progress_indicator");
        ?>
                                        </label>
                                        <div id="pagination_type_container" class="pagination_container" >
                                            <input type="radio" id="pagination_type_percentage" name="pagination_type" value="percentage" onclick='InitPaginationOptions();'/>
                                            <label for="pagination_type_percentage" class="inline">
                                                <?php 
        _e("Progress Bar", "gravityforms");
        ?>
                                            </label>
                                            &nbsp;&nbsp;
                                            <input type="radio" id="pagination_type_steps" name="pagination_type" value="steps" onclick='InitPaginationOptions();'/>
                                            <label for="pagination_type_steps" class="inline">
                                                <?php 
        _e("Steps", "gravityforms");
        ?>
                                            </label>
                                            &nbsp;&nbsp;
                                            <input type="radio" id="pagination_type_none" name="pagination_type" value="none" onclick='InitPaginationOptions();'/>
                                            <label for="pagination_type_none" class="inline">
                                                <?php 
        _e("None", "gravityforms");
        ?>
                                            </label>
                                        </div>
                                    </li>

                                    <li id="percentage_style_setting">

                                        <div class="percentage_style_setting" style="float:left; z-index: 99;">
                                             <label for="percentage_style" style="display:block;">
                                                <?php 
        _e("Style", "gravityforms");
        ?>
                                                <?php 
        gform_tooltip("form_percentage_style");
        ?>
                                            </label>
                                            <select id="percentage_style" onchange="TogglePercentageStyle();">
                                                <option value="blue">  <?php 
        _e("Blue", "gravityforms");
        ?>
  </option>
                                                <option value="gray">  <?php 
        _e("Gray", "gravityforms");
        ?>
  </option>
                                                <option value="green">  <?php 
        _e("Green", "gravityforms");
        ?>
  </option>
                                                <option value="orange">  <?php 
        _e("Orange", "gravityforms");
        ?>
  </option>
                                                <option value="red">  <?php 
        _e("Red", "gravityforms");
        ?>
  </option>
                                                <option value="custom">  <?php 
        _e("Custom", "gravityforms");
        ?>
  </option>
                                            </select>
                                        </div>

                                        <div class="percentage_custom_container" style="float:left; padding-left:20px;">
                                            <label for="percentage_background_color" style="display:block;">
                                                <?php 
        _e("Text Color", "gravityforms");
        ?>
                                            </label>
                                            <?php 
        self::color_picker("percentage_style_custom_color", "");
        ?>
                                        </div>

                                        <div class="percentage_custom_container" style="float:left; padding-left:20px;">
                                            <label for="percentage_background_bgcolor" style="display:block;">
                                                <?php 
        _e("Background Color", "gravityforms");
        ?>
                                            </label>
                                            <?php 
        self::color_picker("percentage_style_custom_bgcolor", "");
        ?>
                                        </div>
                                    </li>

                                    <li id="page_names_setting">
                                        <label for="page_names_container">
                                            <?php 
        _e("Page Names", "gravityforms");
        ?>
                                            <?php 
        gform_tooltip("form_page_names");
        ?>
                                        </label>
                                        <div id="page_names_container" style="margin-top:5px;">
                                            <!-- Populated dynamically from js.php -->
                                        </div>
                                    </li>
                                </ul>
                            </div>

                            <div id="gform_pagination_settings_tab_2">
                                <ul class="gforms_form_settings">
                                    <li>
                                        <label for="first_page_css_class" style="display:block;">
                                            <?php 
        _e("CSS Class Name", "gravityforms");
        ?>
                                            <?php 
        gform_tooltip("form_field_css_class");
        ?>
                                        </label>
                                        <input type="text" id="first_page_css_class" size="30"/>
                                    </li>
                                </ul>
                            </div>
                        </div>
                    </div>

                    <ul id="gform_fields" class="<?php 
        echo $form["labelPlacement"];
        ?>
" style="position: relative;">
                        <?php 
        if (is_array($form["fields"])) {
            require_once GFCommon::get_base_path() . "/form_display.php";
            foreach ($form["fields"] as $field) {
                echo GFFormDisplay::get_field($field, "", true);
            }
        }
        ?>
                    </ul>

                    <div id="gform_last_page_settings" class="selectable gform_settings_container" style="display:<?php 
        echo $has_pages ? "block" : "none";
        ?>
;">
                        <div class="settings_control_container">
                            <a href="javascript:void(0);" class="form_edit_icon edit_icon_collapsed" title="<?php 
        _e("Edit Last Page", "gravityforms");
        ?>
"><?php 
        _e("Edit", "gravityforms");
        ?>
</a>
                        </div>
                        <img src="<?php 
        echo GFCommon::get_base_url() . "/images/gf_pagebreak_end.png";
        ?>
" alt="<?php 
        __("Last Page Options", "gravityforms");
        ?>
" title="<?php 
        __("Last Page Options", "gravityforms");
        ?>
" />
                        <div id="last_page_settings" style="display:none;">
                            <ul>
                                <li style="width:100px; padding:0px;"><a href="#gform_last_page_settings_tab_1"><?php 
        _e("Properties", "gravityforms");
        ?>
</a></li>
                            </ul>
                            <div id="gform_last_page_settings_tab_1">
                                <ul class="gforms_form_settings">
                                    <li>
                                        <label for="last_page_button_container">
                                            <?php 
        _e("Previous Button", "gravityforms");
        ?>
                                            <?php 
        gform_tooltip("form_field_last_page_button");
        ?>
                                        </label>
                                        <div class="last_page_button_options" id="last_page_button_container">
                                            <input type="radio" id="last_page_button_text" name="last_page_button" value="text" onclick="TogglePageButton('last_page');"/>
                                            <label for="last_page_button_text" class="inline">
                                                <?php 
        _e("Default", "gravityforms");
        ?>
                                                <?php 
        gform_tooltip("previous_button_text");
        ?>
                                            </label>
                                            &nbsp;&nbsp;
                                            <input type="radio" id="last_page_button_image" name="last_page_button" value="image" onclick="TogglePageButton('last_page');"/>
                                            <label for="last_page_button_image" class="inline">
                                                <?php 
        _e("Image", "gravityforms");
        ?>
                                                <?php 
        gform_tooltip("previous_button_image");
        ?>
                                            </label>

                                            <div id="last_page_button_text_container" style="margin-top:5px;">
                                                <label for="last_page_button_text_input" class="inline">
                                                    <?php 
        _e("Text:", "gravityforms");
        ?>
                                                </label>
                                                <input type="text" id="last_page_button_text_input" class="input_size_b" size="40" />
                                            </div>

                                            <div id="last_page_button_image_container" style="margin-top:5px;">
                                                <label for="last_page_button_image_url" class="inline">
                                                    <?php 
        _e("Image Path:", "gravityforms");
        ?>
                                                </label>
                                                <input type="text" id="last_page_button_image_url" size="45"/>
                                            </div>
                                        </div>
                                    </li>
                                </ul>
                            </div>
                        </div>
                    </div>

                    <div>
                        <?php 
        $button_text = rgar($form, "id") > 0 ? __("Update Form", "gravityforms") : __("Save Form", "gravityforms");
        $save_button = '<input type="button" class="button-primary gfbutton" value="' . $button_text . '" onclick="SaveForm();" />';
        $save_button = apply_filters("gform_save_form_button", $save_button);
        echo $save_button;
        ?>
                        <span id="please_wait_container" style="display:none; margin-left:15px;">
                            <img src="<?php 
        echo GFCommon::get_base_url();
        ?>
/images/loading.gif"> <?php 
        _e("Saving form. Please wait...", "gravityforms");
        ?>
                        </span>
                        <div id="after_insert_dialog" style="display:none;">
                            <h3><?php 
        _e("You have successfully saved your form!", "gravityforms");
        ?>
</h3>
                            <p><?php 
        _e("What do you want to do next?", "gravityforms");
        ?>
</p>
                            <div class="new-form-option"><a title="<?php 
        _e("Preview this form", "gravityforms");
        ?>
" id="preview_form_link" href="<?php 
        echo GFCommon::get_base_url();
        ?>
/preview.php?id={formid}" target="_blank"><?php 
        _e("Preview this Form", "gravityforms");
        ?>
</a></div>

                            <?php 
        if (GFCommon::current_user_can_any("gravityforms_edit_forms")) {
            ?>
                                <div class="new-form-option"><a title="<?php 
            _e("Setup email notifications for this form", "gravityforms");
            ?>
" id="notification_form_link" href="#"><?php 
            _e("Setup Email Notifications for this Form", "gravityforms");
            ?>
</a></div>
                            <?php 
        }
        ?>

                            <div class="new-form-option"><a title="<?php 
        _e("Continue editing this form", "gravityforms");
        ?>
" id="edit_form_link" href="#"><?php 
        _e("Continue Editing this Form", "gravityforms");
        ?>
</a></div>

                            <div class="new-form-option"><a title="<?php 
        _e("I am done. Take me back to form list", "gravityforms");
        ?>
" href="?page=gf_edit_forms"><?php 
        _e("Return to Form List", "gravityforms");
        ?>
</a></div>

                        </div>
                        <div class="updated_base" id="after_update_dialog" style="padding:10px 10px 16px 10px; display:none;">
                            <strong><?php 
        _e("Form updated successfully.", "gravityforms");
        ?>
</strong><br />
                            <a title="<?php 
        _e("Continue editing this form", "gravityforms");
        ?>
" id="continue_form_link" href="?page=gf_edit_forms&id=<?php 
        echo rgar($form, "id");
        ?>
" onclick="jQuery('#after_update_dialog').slideUp();"><?php 
        _e("Continue Editing", "gravityforms");
        ?>
</a> |
                            <a title="<?php 
        _e("Setup email notifications for this form", "gravityforms");
        ?>
" href="?page=gf_edit_forms&view=notification&id=<?php 
        echo absint(rgar($form, "id"));
        ?>
"><?php 
        _e("Setup Email Notifications", "gravityforms");
        ?>
</a> |

                            <?php 
        if (GFCommon::current_user_can_any("gravityforms_view_entries")) {
            ?>
                                <a title="<?php 
            _e("View this form's entries", "gravityforms");
            ?>
" href="?page=gf_entries&view=entries&id=<?php 
            echo absint(rgar($form, "id"));
            ?>
"><?php 
            _e("View Entries", "gravityforms");
            ?>
</a> |
                            <?php 
        }
        ?>

                            <a title="<?php 
        _e("Preview this form", "gravityforms");
        ?>
" href="<?php 
        echo GFCommon::get_base_url();
        ?>
/preview.php?id=<?php 
        echo absint(rgar($form, "id"));
        ?>
" target="_blank"><?php 
        _e("Preview Form", "gravityforms");
        ?>
</a>
                        </div>
                        <div class="error_base" id="after_update_error_dialog" style="padding:10px 10px 16px 10px; display:none;">
                            There was an error while saving your form, most likely caused by a plugin conflict.
                            Please <a href="http://www.gravityhelp.com">contact us</a> and we will be happy to help you get this corrected.
                        </div>


                    </div>
                    <div id="field_settings" style="display: none;">
                        <ul>
                            <li style="width:100px; padding:0px;"><a href="#gform_tab_1"><?php 
        _e("Properties", "gravityforms");
        ?>
</a></li>
                            <li style="width:100px; padding:0px; "><a href="#gform_tab_2"><?php 
        _e("Advanced", "gravityforms");
        ?>
</a></li>
                        </ul>
                        <div id="gform_tab_1">
                            <ul>
                            <?php 
        do_action("gform_field_standard_settings", 0, $form_id);
        ?>
                            <li class="label_setting field_setting">
                                <label for="field_label">
                                    <?php 
        _e("Field Label", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_label");
        ?>
                                    <?php 
        gform_tooltip("form_field_label_html");
        ?>
                                </label>
                                <input type="text" id="field_label" class="fieldwidth-3" onkeyup="SetFieldLabel(this.value)" size="35"/>
                            </li>
                            <li class="product_field_setting field_setting">
                                <label for="product_field">
                                    <?php 
        _e("Product Field", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_product");
        ?>
                                </label>
                               <select id="product_field" onchange="SetFieldProperty('productField', jQuery(this).val());">
                                   <!-- will be populated when field is selected (js.php) -->
                               </select>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 25, $form_id);
        ?>
                            <li class="product_field_type_setting field_setting">
                                <label for="product_field_type">
                                    <?php 
        _e("Field Type", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_type");
        ?>
                                </label>
                                <select id="product_field_type" onchange="if(jQuery(this).val() == '') return; jQuery('#field_settings').slideUp(function(){StartChangeProductType(jQuery('#product_field_type').val());});">
                                    <option value="singleproduct"><?php 
        _e("Single Product", "gravityforms");
        ?>
</option>
                                    <option value="select"><?php 
        _e("Drop Down", "gravityforms");
        ?>
</option>
                                    <option value="radio"><?php 
        _e("Multiple Choice", "gravityforms");
        ?>
</option>
                                    <option value="price"><?php 
        _e("User Defined Price", "gravityforms");
        ?>
</option>
                                </select>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 37, $form_id);
        ?>
                            <li class="shipping_field_type_setting field_setting">
                                <label for="shipping_field_type">
                                    <?php 
        _e("Field Type", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_type");
        ?>
                                </label>
                                <select id="shipping_field_type" onchange="if(jQuery(this).val() == '') return; jQuery('#field_settings').slideUp(function(){StartChangeShippingType(jQuery('#shipping_field_type').val());});">
                                    <option value="singleshipping"><?php 
        _e("Single Method", "gravityforms");
        ?>
</option>
                                    <option value="select"><?php 
        _e("Drop Down", "gravityforms");
        ?>
</option>
                                    <option value="radio"><?php 
        _e("Multiple Choice", "gravityforms");
        ?>
</option>
                                </select>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 50, $form_id);
        ?>
                            <li class="base_price_setting field_setting">
                                <label for="field_base_price">
                                    <?php 
        _e("Price", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_base_price");
        ?>
                                </label>
                                <input type="text" id="field_base_price" onchange="SetBasePrice(this.value)"/>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 75, $form_id);
        ?>
                            <li class="disable_quantity_setting field_setting">
                                <input type="checkbox" name="field_disable_quantity" id="field_disable_quantity" onclick="SetDisableQuantity(jQuery(this).is(':checked'));"/>
                                <label for="field_disable_quantity" class="inline">
                                    <?php 
        _e("Disable quantity field", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_disable_quantity");
        ?>
                                </label>

                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 100, $form_id);
        ?>
                            <li class="option_field_type_setting field_setting">
                                <label for="option_field_type">
                                    <?php 
        _e("Field Type", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_type");
        ?>
                                </label>
                                <select id="option_field_type" onchange="if(jQuery(this).val() == '') return; jQuery('#field_settings').slideUp(function(){StartChangeInputType(jQuery('#option_field_type').val());});">
                                    <option value="select"><?php 
        _e("Drop Down", "gravityforms");
        ?>
</option>
                                    <option value="checkbox"><?php 
        _e("Checkboxes", "gravityforms");
        ?>
</option>
                                    <option value="radio"><?php 
        _e("Multiple Choice", "gravityforms");
        ?>
</option>
                                </select>
                            </li>
                             <?php 
        do_action("gform_field_standard_settings", 125, $form_id);
        ?>
                            <li class="donation_field_type_setting field_setting">
                                <label for="donation_field_type">
                                    <?php 
        _e("Field Type", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_type");
        ?>
                                </label>
                                <select id="donation_field_type" onchange="if(jQuery(this).val() == '') return; jQuery('#field_settings').slideUp(function(){StartChangeDonationType(jQuery('#donation_field_type').val());});">
                                    <option value="select"><?php 
        _e("Drop Down", "gravityforms");
        ?>
</option>
                                    <option value="donation"><?php 
        _e("User Defined Price", "gravityforms");
        ?>
</option>
                                    <option value="radio"><?php 
        _e("Multiple Choice", "gravityforms");
        ?>
</option>
                                </select>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 150, $form_id);
        ?>
                            <li class="quantity_field_type_setting field_setting">
                                <label for="quantity_field_type">
                                    <?php 
        _e("Field Type", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_type");
        ?>
                                </label>
                                <select id="quantity_field_type" onchange="if(jQuery(this).val() == '') return; jQuery('#field_settings').slideUp(function(){StartChangeInputType(jQuery('#quantity_field_type').val());});">
                                    <option value="number"><?php 
        _e("Number", "gravityforms");
        ?>
</option>
                                    <option value="select"><?php 
        _e("Drop Down", "gravityforms");
        ?>
</option>
                                    <option value="hidden"><?php 
        _e("Hidden", "gravityforms");
        ?>
</option>
                                </select>
                            </li>

                            <?php 
        do_action("gform_field_standard_settings", 200, $form_id);
        ?>
                            <li class="content_setting field_setting">
                                <label for="field_content">
                                    <?php 
        _e("Content", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_content");
        ?>
                                </label>
                                <textarea id="field_content" class="fieldwidth-3 fieldheight-1" onkeyup="SetFieldProperty('content', this.value);"/></textarea>
                            </li>

                            <?php 
        do_action("gform_field_standard_settings", 225, $form_id);
        ?>
                            <li class="next_button_setting field_setting">
                                <label for="next_button_container">
                                    <?php 
        _e("Next Button", "gravityforms");
        ?>
                                </label>
                                <div class="next_button_options" id="next_button_container">
                                    <input type="radio" id="next_button_text" name="next_button" value="text" onclick="TogglePageButton('next'); SetPageButton('next');"/>
                                    <label for="next_button_text" class="inline">
                                        <?php 
        _e("Default", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("next_button_text");
        ?>
                                    </label>
                                    &nbsp;&nbsp;
                                    <input type="radio" id="next_button_image" name="next_button" value="image" onclick="TogglePageButton('next'); SetPageButton('next');"/>
                                    <label for="next_button_image" class="inline">
                                        <?php 
        _e("Image", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("next_button_image");
        ?>
                                    </label>

                                    <div id="next_button_text_container" style="margin-top:5px;">
                                    <label for="next_button_text_input" class="inline">
                                            <?php 
        _e("Text:", "gravityforms");
        ?>
                                        </label>
                                        <input type="text" id="next_button_text_input" class="input_size_b" size="40" onkeyup="SetPageButton('next');"/>
                                    </div>

                                    <div id="next_button_image_container" style="margin-top:5px;">
                                        <label for="next_button_image_url" class="inline">
                                            <?php 
        _e("Image Path:", "gravityforms");
        ?>
                                        </label>
                                        <input type="text" id="next_button_image_url" size="45" onkeyup="SetPageButton('next');"/>
                                    </div>
                                </div>
                            </li>

                            <?php 
        do_action("gform_field_standard_settings", 237, $form_id);
        ?>
                            <li class="previous_button_setting field_setting">
                                <label for="previous_button_container">
                                    <?php 
        _e("Previous Button", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_previous_button");
        ?>
                                </label>
                                <div class="previous_button_options" id="previous_button_container">
                                    <input type="radio" id="previous_button_text" name="previous_button" value="text" onclick="TogglePageButton('previous'); SetPageButton('previous');"/>
                                    <label for="previous_button_text" class="inline">
                                        <?php 
        _e("Default", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("previous_button_text");
        ?>
                                    </label>
                                    &nbsp;&nbsp;
                                    <input type="radio" id="previous_button_image" name="previous_button" value="image" onclick="TogglePageButton('previous'); SetPageButton('previous');"/>
                                    <label for="previous_button_image" class="inline">
                                        <?php 
        _e("Image", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("previous_button_image");
        ?>
                                    </label>

                                    <div id="previous_button_text_container" style="margin-top:5px;">
                                        <label for="previous_button_text_input" class="inline">
                                            <?php 
        _e("Text:", "gravityforms");
        ?>
                                        </label>
                                        <input type="text" id="previous_button_text_input" class="input_size_b" size="40" onkeyup="SetPageButton('previous');" />
                                    </div>

                                    <div id="previous_button_image_container" style="margin-top:5px;">
                                        <label for="previous_button_image_url" class="inline">
                                            <?php 
        _e("Image Path:", "gravityforms");
        ?>
                                        </label>
                                        <input type="text" id="previous_button_image_url" size="45" onkeyup="SetPageButton('previous');"/>
                                    </div>
                                </div>
                            </li>

                            <?php 
        do_action("gform_field_standard_settings", 250, $form_id);
        ?>
                            <li class="disable_margins_setting field_setting">
                                <input type="checkbox" id="field_margins" onclick="SetFieldProperty('disableMargins', this.checked);"/>
                                <label for="field_disable_margins" class="inline">
                                    <?php 
        _e("Disable default margins", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_disable_margins");
        ?>
                                </label><br/>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 300, $form_id);
        ?>
                            <li class="post_custom_field_type_setting field_setting">
                                <label for="post_custom_field_type">
                                    <?php 
        _e("Field Type", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_type");
        ?>
                                </label>
                                <select id="post_custom_field_type" onchange="if(jQuery(this).val() == '') return; jQuery('#field_settings').slideUp(function(){StartChangeInputType(jQuery('#post_custom_field_type').val());});">
                                    <option value="" class="option_header"><?php 
        _e("Standard Fields", "gravityforms");
        ?>
</option>
                                    <option value="text"><?php 
        _e("Single line text", "gravityforms");
        ?>
</option>
                                    <option value="textarea"><?php 
        _e("Paragraph Text", "gravityforms");
        ?>
</option>
                                    <option value="select"><?php 
        _e("Drop Down", "gravityforms");
        ?>
</option>
                                    <option value="number"><?php 
        _e("Number", "gravityforms");
        ?>
</option>
                                    <option value="radio"><?php 
        _e("Multiple Choice", "gravityforms");
        ?>
</option>
                                    <option value="hidden"><?php 
        _e("Hidden", "gravityforms");
        ?>
</option>

                                    <option value="" class="option_header"><?php 
        _e("Advanced Fields", "gravityforms");
        ?>
</option>
                                    <option value="date"><?php 
        _e("Date", "gravityforms");
        ?>
</option>
                                    <option value="time"><?php 
        _e("Time", "gravityforms");
        ?>
</option>
                                    <option value="phone"><?php 
        _e("Phone", "gravityforms");
        ?>
</option>
                                    <option value="website"><?php 
        _e("Website", "gravityforms");
        ?>
</option>
                                    <option value="email"><?php 
        _e("Email", "gravityforms");
        ?>
</option>
                                    <option value="fileupload"><?php 
        _e("File Upload", "gravityforms");
        ?>
</option>
                                </select>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 350, $form_id);
        ?>
                            <li class="post_tag_type_setting field_setting">
                                <label for="post_tag_type">
                                    <?php 
        _e("Field Type", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_type");
        ?>
                                </label>
                                <select id="post_tag_type" onchange="if(jQuery(this).val() == '') return; jQuery('#field_settings').slideUp(function(){StartChangeInputType(jQuery('#post_tag_type').val());});">
                                    <option value="text"><?php 
        _e("Single line text", "gravityforms");
        ?>
</option>
                                    <option value="select"><?php 
        _e("Drop Down", "gravityforms");
        ?>
</option>
                                    <option value="checkbox"><?php 
        _e("Checkboxes", "gravityforms");
        ?>
</option>
                                    <option value="radio"><?php 
        _e("Multiple Choice", "gravityforms");
        ?>
</option>
                                </select>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 400, $form_id);
        ?>
                            <?php 
        if (class_exists("ReallySimpleCaptcha")) {
            ?>
                                <li class="captcha_type_setting field_setting">
                                    <label for="field_captcha_type">
                                        <?php 
            _e("Type", "gravityforms");
            ?>
                                        <?php 
            gform_tooltip("form_field_captcha_type");
            ?>
                                    </label>
                                    <select id="field_captcha_type" onchange="StartChangeCaptchaType(jQuery(this).val())">
                                        <option value="captcha"><?php 
            _e("reCAPTCHA", "gravityforms");
            ?>
</option>
                                        <option value="simple_captcha"><?php 
            _e("Really Simple CAPTCHA", "gravityforms");
            ?>
</option>
                                        <option value="math"><?php 
            _e("Math Challenge", "gravityforms");
            ?>
</option>
                                    </select>
                                </li>
                                <?php 
            do_action("gform_field_standard_settings", 450, $form_id);
            ?>
                                <li class="captcha_size_setting field_setting">
                                    <label for="field_captcha_size">
                                        <?php 
            _e("Size", "gravityforms");
            ?>
                                    </label>
                                    <select id="field_captcha_size" onchange="SetCaptchaSize(jQuery(this).val());">
                                        <option value="small"><?php 
            _e("Small", "gravityforms");
            ?>
</option>
                                        <option value="medium"><?php 
            _e("Medium", "gravityforms");
            ?>
</option>
                                        <option value="large"><?php 
            _e("Large", "gravityforms");
            ?>
</option>
                                    </select>
                                </li>
                                <?php 
            do_action("gform_field_standard_settings", 500, $form_id);
            ?>
                                <li class="captcha_fg_setting field_setting">
                                    <label for="field_captcha_fg">
                                        <?php 
            _e("Font Color", "gravityforms");
            ?>
                                    </label>
                                    <?php 
            self::color_picker("field_captcha_fg", "SetCaptchaFontColor");
            ?>
                                </li>
                                <?php 
            do_action("gform_field_standard_settings", 550, $form_id);
            ?>
                                <li class="captcha_bg_setting field_setting">
                                    <label for="field_captcha_bg">
                                        <?php 
            _e("Background Color", "gravityforms");
            ?>
                                    </label>
                                    <?php 
            self::color_picker("field_captcha_bg", "SetCaptchaBackgroundColor");
            ?>
                                </li>
                                <?php 
        }
        do_action("gform_field_standard_settings", 600, $form_id);
        ?>
                            <li class="captcha_theme_setting field_setting">
                                <label for="field_captcha_theme">
                                    <?php 
        _e("Theme", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_recaptcha_theme");
        ?>
                                </label>
                                <select id="field_captcha_theme" onchange="SetCaptchaTheme(this.value, '<?php 
        echo GFCommon::get_base_url();
        ?>
/images/captcha_' + this.value + '.jpg')">
                                    <option value="red"><?php 
        _e("Red", "gravityforms");
        ?>
</option>
                                    <option value="white"><?php 
        _e("White", "gravityforms");
        ?>
</option>
                                    <option value="blackglass"><?php 
        _e("Black Glass", "gravityforms");
        ?>
</option>
                                    <option value="clean"><?php 
        _e("Clean", "gravityforms");
        ?>
</option>
                                </select>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 650, $form_id);
        ?>
                            <li class="post_custom_field_setting field_setting">
                                <label for="field_custom_field_name">
                                    <?php 
        _e("Custom Field Name", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_custom_field_name");
        ?>
                                </label>
                                <div style="width:100px; float:left;">
                                    <input type="radio" name="field_custom" id="field_custom_existing" size="10" onclick="ToggleCustomField();" />
                                    <label for="field_custom_existing" class="inline">
                                        <?php 
        _e("Existing", "gravityforms");
        ?>
                                    </label>
                                </div>
                                <div style="width:100px; float:left;">
                                    <input type="radio" name="field_custom" id="field_custom_new" size="10" onclick="ToggleCustomField();" />
                                    <label for="field_custom_new" class="inline">
                                        <?php 
        _e("New", "gravityforms");
        ?>
                                    </label>
                                </div>
                                <div class="clear">
                                   <input type="text" id="field_custom_field_name_text" size="35" onkeyup="SetFieldProperty('postCustomFieldName', this.value);"/>
                                   <select id="field_custom_field_name_select" onchange="SetFieldProperty('postCustomFieldName', jQuery(this).val());">
                                        <option value=""><?php 
        _e("Select an existing custom field", "gravityforms");
        ?>
</option>
                                        <?php 
        $custom_field_names = RGFormsModel::get_custom_field_names();
        foreach ($custom_field_names as $name) {
            ?>
                                                <option value="<?php 
            echo $name;
            ?>
"><?php 
            echo $name;
            ?>
</option>
                                                <?php 
        }
        ?>
                                    </select>
                                </div>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 700, $form_id);
        ?>
                            <li class="post_status_setting field_setting">
                                <label for="field_post_status">
                                    <?php 
        _e("Post Status", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_post_status");
        ?>
                                </label>
                                <select id="field_post_status" name="field_post_status">
                                    <option value="draft">Draft</option>
                                    <option value="pending">Pending Review</option>
                                    <option value="publish">Published</option>
                                </select>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 750, $form_id);
        ?>
                            <li class="post_author_setting field_setting">
                                <label for="field_post_author">
                                    <?php 
        _e("Default Post Author", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_post_author");
        ?>
                                </label>
                                <?php 
        $args = array('name' => 'field_post_author');
        $args = apply_filters("gform_author_dropdown_args_" . rgar($form, "id"), apply_filters("gform_author_dropdown_args", $args));
        wp_dropdown_users($args);
        ?>
                                <div>
                                    <input type="checkbox" id="gfield_current_user_as_author"/>
                                    <label for="gfield_current_user_as_author" class="inline"><?php 
        _e("Use logged in user as author", "gravityforms");
        ?>
 <?php 
        gform_tooltip("form_field_current_user_as_author");
        ?>
</label>
                                </div>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 800, $form_id);
        ?>
                            <li class="post_category_setting field_setting">
                                <label for="field_post_category">
                                    <?php 
        _e("Post Category", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_post_category");
        ?>
                                </label>
                                <?php 
        wp_dropdown_categories(array('selected' => get_option('default_category'), 'hide_empty' => 0, 'id' => 'field_post_category', 'name' => 'field_post_category', 'orderby' => 'name', 'selected' => 'field_post_category', 'hierarchical' => true));
        ?>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 850, $form_id);
        ?>
                            <li class="post_category_checkbox_setting field_setting">
                                <label for="field_post_category">
                                    <?php 
        _e("Category", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_post_category_selection");
        ?>
                                </label>

                                <input type="radio" id="gfield_category_all" name="gfield_category" value="all" onclick="ToggleCategory();"/>
                                <label for="gfield_category_all" class="inline">
                                    <?php 
        _e("All Categories", "gravityforms");
        ?>

                                </label>
                                &nbsp;&nbsp;
                                <input type="radio" id="gfield_category_select" name="gfield_category" value="select" onclick="ToggleCategory();"/>
                                <label for="form_button_image" class="inline">
                                    <?php 
        _e("Select Categories", "gravityforms");
        ?>
                                </label>

                                <div id="gfield_settings_category_container">
                                    <table cellpadding="0" cellspacing="5">
                                    <?php 
        $categories = get_categories(array('hide_empty' => 0));
        $count = 0;
        $category_rows = '';
        self::_cat_rows($categories, $count, $category_rows);
        echo $category_rows;
        ?>
                                    </table>
                                </div>
                            </li>

                            <?php 
        do_action("gform_field_standard_settings", 875, $form_id);
        ?>
                            <li class="post_category_initial_item_setting field_setting">
                                <input type="checkbox" id="gfield_post_category_initial_item_enabled" onclick="TogglePostCategoryInitialItem(); SetCategoryInitialItem();"/>
                                <label for="gfield_post_category_initial_item_enabled" class="inline">
                                    <?php 
        _e("Display placeholder", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_post_category_initial_item");
        ?>
                                </label>
                            </li>
                            <li id="gfield_post_category_initial_item_container">
                                <label for="field_post_category_initial_item">
                                    <?php 
        _e("Placeholder Label", "gravityforms");
        ?>
                                </label>
                                <input type="text" id="field_post_category_initial_item" onchange="SetCategoryInitialItem();" class="fieldwidth-3" size="35"/>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 900, $form_id);
        ?>
                            <li class="post_content_template_setting field_setting">
                                <input type="checkbox" id="gfield_post_content_enabled" onclick="TogglePostContentTemplate();"/>
                                <label for="gfield_post_content_enabled" class="inline">
                                    <?php 
        _e("Create content template", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_post_content_template_enable");
        ?>
                                </label>

                                <div id="gfield_post_content_container">
                                    <div>
                                        <?php 
        GFCommon::insert_post_content_variables($form["fields"], "field_post_content_template", '', 25);
        ?>
                                    </div>
                                    <textarea id="field_post_content_template" class="fieldwidth-3 fieldheight-1"></textarea>
                                </div>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 950, $form_id);
        ?>
                            <li class="post_title_template_setting field_setting">
                                <input type="checkbox" id="gfield_post_title_enabled" onclick="TogglePostTitleTemplate();" />
                                <label for="gfield_post_title_enabled" class="inline">
                                    <?php 
        _e("Create content template", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_post_title_template_enable");
        ?>
                                </label>

                                <div id="gfield_post_title_container">
                                    <div>
                                        <?php 
        GFCommon::insert_variables($form["fields"], "field_post_title_template", true, '', '', 25, array("post_image", "fileupload"));
        ?>
                                    </div>
                                    <input type="text" id="field_post_title_template" class="fieldwidth-3"/>
                                </div>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 975, $form_id);
        ?>
                            <li class="customfield_content_template_setting field_setting">
                                <input type="checkbox" id="gfield_customfield_content_enabled" onclick="ToggleCustomFieldTemplate(); SetCustomFieldTemplate();"/>
                                <label for="gfield_customfield_content_enabled" class="inline">
                                    <?php 
        _e("Create content template", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_customfield_content_template_enable");
        ?>
                                </label>

                                <div id="gfield_customfield_content_container">
                                    <div>
                                        <?php 
        GFCommon::insert_post_content_variables($form["fields"], "field_customfield_content_template", 'SetCustomFieldTemplate', 25);
        ?>
                                    </div>
                                    <textarea id="field_customfield_content_template" class="fieldwidth-3 fieldheight-1" onkeyup="SetCustomFieldTemplate();"></textarea>
                                </div>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 1000, $form_id);
        ?>
                            <li class="post_image_setting field_setting">
                                <label><?php 
        _e("Image Metadata", "gravityforms");
        ?>
 <?php 
        gform_tooltip("form_field_image_meta");
        ?>
</label>
                                <input type="checkbox" id="gfield_display_title" onclick="SetPostImageMeta();" />
                                <label for="gfield_display_title" class="inline">
                                    <?php 
        _e("Title", "gravityforms");
        ?>
                                </label>
                                <br/>
                                <input type="checkbox" id="gfield_display_caption"  onclick="SetPostImageMeta();" />
                                <label for="gfield_display_caption" class="inline">
                                    <?php 
        _e("Caption", "gravityforms");
        ?>
                                </label>
                                <br/>
                                <input type="checkbox" id="gfield_display_description"  onclick="SetPostImageMeta();"/>
                                <label for="gfield_display_description" class="inline">
                                    <?php 
        _e("Description", "gravityforms");
        ?>
                                </label>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 1050, $form_id);
        ?>
                            <li class="address_setting field_setting">
                                <?php 
        $addressTypes = GFCommon::get_address_types(rgar($form, "id"));
        ?>
                                <label for="field_address_type">
                                    <?php 
        _e("Address Type", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_address_type");
        ?>
                                </label>
                                <select id="field_address_type" onchange="SetAddressType();">
                                    <?php 
        foreach ($addressTypes as $key => $addressType) {
            ?>
                                        <option value="<?php 
            echo $key;
            ?>
"><?php 
            echo $addressType["label"];
            ?>
</option>
                                        <?php 
        }
        ?>
                                </select>

                                <?php 
        foreach ($addressTypes as $key => $addressType) {
            $state_label = isset($addressType["state_label"]) ? $addressType["state_label"] : __("State", "gravityforms");
            ?>
                                    <div id="address_type_container_<?php 
            echo $key;
            ?>
" class="gfield_sub_setting gfield_address_type_container">
                                        <input type="hidden" id="field_address_country_<?php 
            echo $key;
            ?>
" value="<?php 
            echo isset($addressType["country"]) ? $addressType["country"] : "";
            ?>
" />
                                        <input type="hidden" id="field_address_zip_label_<?php 
            echo $key;
            ?>
" value="<?php 
            echo isset($addressType["zip_label"]) ? $addressType["zip_label"] : __("Postal Code", "gravityforms");
            ?>
" />
                                        <input type="hidden" id="field_address_state_label_<?php 
            echo $key;
            ?>
" value="<?php 
            echo $state_label;
            ?>
" />
                                        <input type="hidden" id="field_address_has_states_<?php 
            echo $key;
            ?>
" value="<?php 
            echo is_array(rgget("states", $addressType)) ? "1" : "";
            ?>
" />

                                        <?php 
            if (isset($addressType["states"]) && is_array($addressType["states"])) {
                ?>
                                            <label for="field_address_default_state_<?php 
                echo $key;
                ?>
">
                                                <?php 
                echo sprintf(__("Default %s", "gravityforms"), $state_label);
                ?>
                                                <?php 
                gform_tooltip("form_field_address_default_state_{$key}");
                ?>
                                            </label>

                                            <select id="field_address_default_state_<?php 
                echo $key;
                ?>
" class="field_address_default_state" onchange="SetAddressProperties();">
                                                <?php 
                echo GFCommon::get_state_dropdown($addressType["states"]);
                ?>
                                            </select>
                                            <?php 
            }
            ?>

                                        <?php 
            if (!isset($addressType["country"])) {
                ?>
                                             <label for="field_address_default_country_<?php 
                echo $key;
                ?>
">
                                                <?php 
                _e("Default Country", "gravityforms");
                ?>
                                                <?php 
                gform_tooltip("form_field_address_default_country");
                ?>
                                            </label>
                                            <select id="field_address_default_country_<?php 
                echo $key;
                ?>
" class="field_address_default_country" onchange="SetAddressProperties();">
                                                <?php 
                echo GFCommon::get_country_dropdown();
                ?>
                                            </select>

                                            <div class="gfield_sub_setting">
                                                <input type="checkbox" id="field_address_hide_country_<?php 
                echo $key;
                ?>
" onclick="SetAddressProperties();"/>
                                                <label for="field_address_hide_country" class="inline">
                                                    <?php 
                _e("Hide Country Field", "gravityforms");
                ?>
                                                    <?php 
                gform_tooltip("form_field_address_hide_country");
                ?>
                                                </label>
                                            </div>
                                            <?php 
            }
            ?>

                                        <div class="gfield_sub_setting">
                                            <input type="checkbox" id="field_address_hide_state_<?php 
            echo $key;
            ?>
" onclick="SetAddressProperties();"/>
                                            <label for="field_address_hide_state_<?php 
            echo $key;
            ?>
" class="inline">
                                                <?php 
            echo sprintf(__("Hide %s Field", "gravityforms"), $addressType["state_label"]);
            ?>
                                                <?php 
            gform_tooltip("form_field_address_hide_state_{$key}");
            ?>
                                            </label>
                                        </div>
                                    </div>
                                    <?php 
        }
        ?>

                                <div class="gfield_sub_setting">
                                    <input type="checkbox" id="field_address_hide_address2" onclick="SetAddressProperties();"/>
                                    <label for="field_address_hide_address2" class="inline">
                                        <?php 
        _e("Hide Address Line 2 Field", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("form_field_address_hide_address2");
        ?>
                                    </label>
                                </div>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 1100, $form_id);
        ?>
                            <li class="name_format_setting field_setting">
                                <label for="field_name_format">
                                    <?php 
        _e("Name Format", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_name_format");
        ?>
                                </label>
                                <select id="field_name_format" onchange="StartChangeNameFormat(jQuery(this).val());">
                                    <option value="normal"><?php 
        _e("Normal", "gravityforms");
        ?>
</option>
                                    <option value="extended"><?php 
        _e("Extended", "gravityforms");
        ?>
</option>
                                    <option value="simple"><?php 
        _e("Simple", "gravityforms");
        ?>
</option>
                                </select>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 1150, $form_id);
        ?>
                            <li class="date_input_type_setting field_setting">
                                <label for="field_date_input_type">
                                    <?php 
        _e("Date Input Type", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_date_input_type");
        ?>
                                </label>
                                <select id="field_date_input_type" onchange="SetDateInputType(jQuery(this).val());">
                                    <option value="datefield"><?php 
        _e("Date Field", "gravityforms");
        ?>
</option>
                                    <option value="datepicker"><?php 
        _e("Date Picker", "gravityforms");
        ?>
</option>
                                </select>
                                <div id="date_picker_container">

                                    <input type="radio" id="gsetting_icon_none" name="gsetting_icon" value="none" onclick="SetCalendarIconType(this.value);"/>
                                    <label for="gsetting_icon_none" class="inline">
                                        <?php 
        _e("No Icon", "gravityforms");
        ?>
                                    </label>
                                    &nbsp;&nbsp;
                                    <input type="radio" id="gsetting_icon_calendar" name="gsetting_icon" value="calendar" onclick="SetCalendarIconType(this.value);"/>
                                    <label for="gsetting_icon_calendar" class="inline">
                                        <?php 
        _e("Calendar Icon", "gravityforms");
        ?>
                                    </label>
                                    &nbsp;&nbsp;
                                    <input type="radio" id="gsetting_icon_custom" name="gsetting_icon" value="custom" onclick="SetCalendarIconType(this.value);"/>
                                    <label for="gsetting_icon_custom" class="inline">
                                        <?php 
        _e("Custom Icon", "gravityforms");
        ?>
                                    </label>

                                    <div id="gfield_icon_url_container">
                                        <label for="gfield_calendar_icon_url" class="inline">
                                            <?php 
        _e("Image Path: ", "gravityforms");
        ?>
                                        </label>
                                        <input type="text" id="gfield_calendar_icon_url" size="45" onkeyup="SetFieldProperty('calendarIconUrl', this.value);"/>
                                        <div class="instruction"><?php 
        _e("Preview this form to see your custom icon.", "gravityforms");
        ?>
</div>
                                    </div>
                                </div>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 1200, $form_id);
        ?>
                            <li class="date_format_setting field_setting">
                                <label for="field_date_format">
                                    <?php 
        _e("Date Format", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_date_format");
        ?>
                                </label>
                                <select id="field_date_format" onchange="SetDateFormat(jQuery(this).val());">
                                    <option value="mdy">mm/dd/yyyy</option>
                                    <option value="dmy">dd/mm/yyyy</option>
                                </select>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 1250, $form_id);
        ?>
                            <li class="file_extensions_setting field_setting">
                                <label for="field_file_extension">
                                    <?php 
        _e("Allowed file extensions", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_fileupload_allowed_extensions");
        ?>
                                </label>
                               <input type="text" id="field_file_extension" size="40" onkeyup="SetFieldProperty('allowedExtensions', this.value);"/>
                               <div><small><?php 
        _e("Separated with commas (i.e. jpg, gif, png, pdf)", "gravityforms");
        ?>
</small></div>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 1300, $form_id);
        ?>
                            <li class="phone_format_setting field_setting">
                                <label for="field_phone_format">
                                    <?php 
        _e("Phone Format", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_phone_format");
        ?>
                                </label>
                                <select id="field_phone_format" onchange="SetFieldPhoneFormat(jQuery(this).val());">
                                    <option value="standard">(###)### - ####</option>
                                    <option value="international"><?php 
        _e("International", "gravityforms");
        ?>
</option>
                                </select>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 1350, $form_id);
        ?>
                            <li class="choices_setting field_setting">
                                <div style="float:right;">
                                    <input type="checkbox" id="field_choice_values_enabled" onclick="SetFieldProperty('enableChoiceValue', this.checked); ToggleChoiceValue(); SetFieldChoices();"/>
                                    <label for="field_choice_values_enabled" class="inline"><?php 
        _e("enable values", "gravityforms");
        gform_tooltip("form_field_choice_values");
        ?>
</label>
                                </div>
                                <?php 
        _e("Choices", "gravityforms");
        ?>
 <?php 
        gform_tooltip("form_field_choices");
        ?>
<br />

                                <div id="gfield_settings_choices_container">
                                    <label class="gfield_choice_header_label"><?php 
        _e("Label", "gravityforms");
        ?>
</label><label class="gfield_choice_header_value"><?php 
        _e("Value", "gravityforms");
        ?>
</label><label class="gfield_choice_header_price"><?php 
        _e("Price", "gravityforms");
        ?>
</label>
                                    <ul id="field_choices"></ul>
                                </div>

                                <?php 
        $window_title = __("Bulk Add / Predefined Choices", "gravityforms");
        ?>
                                <a title="<?php 
        echo $window_title;
        ?>
" href="javascript:void(0);" onclick="tb_show('<?php 
        echo esc_js($window_title);
        ?>
', '#TB_inline?height=500&amp;width=600&amp;inlineId=gfield_bulk_add', ''); return false;" class="button"><?php 
        echo $window_title;
        ?>
</a>


                                <div id="gfield_bulk_add" style="display:none;">
                                    <div>
                                        <?php 
        $predefined_choices = array(__("Countries", "gravityforms") => GFCommon::get_countries(), __("U.S. States", "gravityforms") => GFCommon::get_us_states(), __("Canadian Province/Territory", "gravityforms") => GFCommon::get_canadian_provinces(), __("Continents", "gravityforms") => array(__("Africa", "gravityforms"), __("Antarctica", "gravityforms"), __("Asia", "gravityforms"), __("Australia", "gravityforms"), __("Europe", "gravityforms"), __("North America", "gravityforms"), __("South America", "gravityforms")), __("Gender", "gravityforms") => array(__("Male", "gravityforms"), __("Female", "gravityforms"), __("Prefer Not to Answer", "gravityforms")), __("Age", "gravityforms") => array(__("Under 18", "gravityforms"), __("18-24", "gravityforms"), __("25-34", "gravityforms"), __("35-44", "gravityforms"), __("45-54", "gravityforms"), __("55-64", "gravityforms"), __("65 or Above", "gravityforms"), __("Prefer Not to Answer", "gravityforms")), __("Marital Status", "gravityforms") => array(__("Single", "gravityforms"), __("Married", "gravityforms"), __("Divorced", "gravityforms"), __("Widowed", "gravityforms")), __("Employment", "gravityforms") => array(__("Employed Full-Time", "gravityforms"), __("Employed Part-Time", "gravityforms"), __("Self-employed", "gravityforms"), __("Not employed", "gravityforms"), __(" but looking for work", "gravityforms"), __("Not employed and not looking for work", "gravityforms"), __("Homemaker", "gravityforms"), __("Retired", "gravityforms"), __("Student", "gravityforms"), __("Prefer Not to Answer", "gravityforms")), __("Job Type", "gravityforms") => array(__("Full-Time", "gravityforms"), __("Part-Time", "gravityforms"), __("Per Diem", "gravityforms"), __("Employee", "gravityforms"), __("Temporary", "gravityforms"), __("Contract", "gravityforms"), __("Intern", "gravityforms"), __("Seasonal", "gravityforms")), __("Industry", "gravityforms") => array(__("Accounting/Finance", "gravityforms"), __("Advertising/Public Relations", "gravityforms"), __("Aerospace/Aviation", "gravityforms"), __("Arts/Entertainment/Publishing", "gravityforms"), __("Automotive", "gravityforms"), __("Banking/Mortgage", "gravityforms"), __("Business Development", "gravityforms"), __("Business Opportunity", "gravityforms"), __("Clerical/Administrative", "gravityforms"), __("Construction/Facilities", "gravityforms"), __("Consumer Goods", "gravityforms"), __("Customer Service", "gravityforms"), __("Education/Training", "gravityforms"), __("Energy/Utilities", "gravityforms"), __("Engineering", "gravityforms"), __("Government/Military", "gravityforms"), __("Green", "gravityforms"), __("Healthcare", "gravityforms"), __("Hospitality/Travel", "gravityforms"), __("Human Resources", "gravityforms"), __("Installation/Maintenance", "gravityforms"), __("Insurance", "gravityforms"), __("Internet", "gravityforms"), __("Job Search Aids", "gravityforms"), __("Law Enforcement/Security", "gravityforms"), __("Legal", "gravityforms"), __("Management/Executive", "gravityforms"), __("Manufacturing/Operations", "gravityforms"), __("Marketing", "gravityforms"), __("Non-Profit/Volunteer", "gravityforms"), __("Pharmaceutical/Biotech", "gravityforms"), __("Professional Services", "gravityforms"), __("QA/Quality Control", "gravityforms"), __("Real Estate", "gravityforms"), __("Restaurant/Food Service", "gravityforms"), __("Retail", "gravityforms"), __("Sales", "gravityforms"), __("Science/Research", "gravityforms"), __("Skilled Labor", "gravityforms"), __("Technology", "gravityforms"), __("Telecommunications", "gravityforms"), __("Transportation/Logistics", "gravityforms"), __("Other", "gravityforms")), __("Income", "gravityforms") => array(__("Under \$20,000", "gravityforms"), __("\$20,000 - \$30,000", "gravityforms"), __("\$30,000 - \$40,000", "gravityforms"), __("\$40,000 - \$50,000", "gravityforms"), __("\$50,000 - \$75,000", "gravityforms"), __("\$75,000 - \$100,000", "gravityforms"), __("\$100,000 - \$150,000", "gravityforms"), __("\$150,000 or more", "gravityforms"), __("Prefer Not to Answer", "gravityforms")), __("Education", "gravityforms") => array(__("High School", "gravityforms"), __("Associate Degree", "gravityforms"), __("Bachelor's Degree", "gravityforms"), __("Graduate of Professional Degree", "gravityforms"), __("Some College", "gravityforms"), __("Other", "gravityforms"), __("Prefer Not to Answer", "gravityforms")), __("Days of the Week", "gravityforms") => array(__("Sunday", "gravityforms"), __("Monday", "gravityforms"), __("Tuesday", "gravityforms"), __("Wednesday", "gravityforms"), __("Thursday", "gravityforms"), __("Friday", "gravityforms"), __("Saturday", "gravityforms")), __("Months of the Year", "gravityforms") => array(__("January", "gravityforms"), __("February", "gravityforms"), __("March", "gravityforms"), __("April", "gravityforms"), __("May", "gravityforms"), __("June", "gravityforms"), __("July", "gravityforms"), __("August", "gravityforms"), __("September", "gravityforms"), __("October", "gravityforms"), __("November", "gravityforms"), __("December", "gravityforms")), __("How Often", "gravityforms") => array(__("Everyday", "gravityforms"), __("Once a week", "gravityforms"), __("2 to 3 times a week", "gravityforms"), __("Once a month", "gravityforms"), __(" 2 to 3 times a month", "gravityforms"), __("Less than once a month", "gravityforms")), __("How Long", "gravityforms") => array(__("Less than a month", "gravityforms"), __("1-6 months", "gravityforms"), __("1-3 years", "gravityforms"), __("Over 3 Years", "gravityforms"), __("Never used", "gravityforms")), __("Satisfaction", "gravityforms") => array(__("Very Satisfied", "gravityforms"), __("Satisfied", "gravityforms"), __("Neutral", "gravityforms"), __("Unsatisfied", "gravityforms"), __("Very Unsatisfied", "gravityforms")), __("Importance", "gravityforms") => array(__("Very Important", "gravityforms"), __("Important", "gravityforms"), __("Somewhat Important", "gravityforms"), __("Not Important", "gravityforms")), __("Agreement", "gravityforms") => array(__("Strongly Agree", "gravityforms"), __("Agree", "gravityforms"), __("Disagree", "gravityforms"), __("Strongly Disagree", "gravityforms")), __("Comparison", "gravityforms") => array(__("Much Better", "gravityforms"), __("Somewhat Better", "gravityforms"), __("About the Same", "gravityforms"), __("Somewhat Worse", "gravityforms"), __("Much Worse", "gravityforms")), __("Would You", "gravityforms") => array(__("Definitely", "gravityforms"), __("Probably", "gravityforms"), __("Not Sure", "gravityforms"), __("Probably Not", "gravityforms"), __("Definitely Not", "gravityforms")), __("Size", "gravityforms") => array(__("Extra Small", "gravityforms"), __("Small", "gravityforms"), __("Medium", "gravityforms"), __("Large", "gravityforms"), __("Extra Large", "gravityforms")));
        $predefined_choices = apply_filters("gform_predefined_choices_" . rgar($form, "id"), apply_filters("gform_predefined_choices", $predefined_choices));
        ?>
                                        <script type="text/javascript">
                                            var gform_predefined_choices = <?php 
        echo GFCommon::json_encode($predefined_choices);
        ?>
;
                                        </script>

                                <div class="panel-instructions">Select a category and customize the predefined choices or paste your own list to bulk add choices.</div>
                                        <div class="bulk-left-panel">
                                            <ul>
                                            <?php 
        foreach (array_keys($predefined_choices) as $name) {
            $key = str_replace("'", "\\'", $name);
            ?>
                                                <li><a href="javascript:void(0);" onclick="jQuery('#gfield_bulk_add_input').val(gform_predefined_choices['<?php 
            echo $key;
            ?>
'].join('\n'));" class="bulk-choice"><?php 
            echo $name;
            ?>
</a>
                                            <?php 
        }
        ?>
                                            </ul>
                                        </div>
                                        <div class="bulk-arrow-mid"></div>
                                        <textarea id="gfield_bulk_add_input"></textarea>
                                        <br style="clear:both;"/>

                                        <div class="panel-buttons">
                                            <input type="button" onclick="InsertBulkChoices(jQuery('#gfield_bulk_add_input').val().split('\n')); tb_remove();" class="button-primary" value="<?php 
        _e("Update Choices", "gravityforms");
        ?>
" />&nbsp;
                                            <input type="button" onclick="tb_remove();" class="button" value="Cancel" />
                                        </div>
                                    </div>
                                </div>

                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 1362, $form_id);
        ?>
                            <li class="email_confirm_setting field_setting">
                                <input type="checkbox" id="gfield_email_confirm_enabled" onclick="SetEmailConfirmation(this.checked);"/>
                                <label for="gfield_email_confirm_enabled" class="inline">
                                    <?php 
        _e("Enable Email Confirmation", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_email_confirm_enable");
        ?>
                                </label>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 1375, $form_id);
        ?>
                            <li class="password_strength_setting field_setting">
                                <input type="checkbox" id="gfield_password_strength_enabled" onclick="TogglePasswordStrength(); SetPasswordStrength(this.checked);"/>
                                <label for="gfield_password_strength_enabled" class="inline">
                                    <?php 
        _e("Enable Password Strength", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_password_strength_enable");
        ?>
                                </label>
                            </li>
                            <li id="gfield_min_strength_container">
                                <label for="gfield_min_strength">
                                    <?php 
        _e("Minimum Strength", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_password_strength_enable");
        ?>
                                </label>
                                <select id="gfield_min_strength" onchange="SetFieldProperty('minPasswordStrength', jQuery(this).val());">
                                    <option value=""><?php 
        _e("None", "gravityforms");
        ?>
</option>
                                    <option value="short"><?php 
        _e("Short", "gravityforms");
        ?>
</option>
                                    <option value="bad"><?php 
        _e("Bad", "gravityforms");
        ?>
</option>
                                    <option value="good"><?php 
        _e("Good", "gravityforms");
        ?>
</option>
                                    <option value="strong"><?php 
        _e("Strong", "gravityforms");
        ?>
</option>
                                </select>
                            </li>

                            <?php 
        do_action("gform_field_standard_settings", 1400, $form_id);
        ?>
                            <li class="description_setting field_setting">
                                <label for="field_description">
                                    <?php 
        _e("Description", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_description");
        ?>
                                </label>
                                <textarea id="field_description" class="fieldwidth-3  fieldheight-2" onkeyup="SetFieldDescription(this.value);"/></textarea>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 1450, $form_id);
        ?>
                            <li class="maxlen_setting field_setting">
                                <label for="field_maxlen">
                                    <?php 
        _e("Maximum Characters", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_maxlength");
        ?>
                                </label>
                                <input type="text" id="field_maxlen" onkeyup="SetFieldProperty('maxLength', this.value);"/></input>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 1500, $form_id);
        ?>
                            <li class="range_setting field_setting">
                                <div style="clear:both;"><?php 
        _e("Range", "gravityforms");
        ?>
                                <?php 
        gform_tooltip("form_field_number_range");
        ?>
                                </div>
                                <div style="width:90px; float:left;">
                                <input type="text" id="field_range_min" size="10" onkeyup="SetFieldProperty('rangeMin', this.value);" />
                                    <label for="field_range_min" >
                                        <?php 
        _e("Min", "gravityforms");
        ?>
                                    </label>
                                </div>
                                <div style="width:90px; float:left;">
                                <input type="text" id="field_range_max" size="10" onkeyup="SetFieldProperty('rangeMax', this.value);" />
                                    <label for="field_range_max">
                                        <?php 
        _e("Max", "gravityforms");
        ?>
                                    </label>

                                </div>
                                <br class="clear" />
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 1550, $form_id);
        ?>
                            <li class="rules_setting field_setting">
                                <?php 
        _e("Rules", "gravityforms");
        ?>
<br/>
                                <input type="checkbox" id="field_required" onclick="SetFieldRequired(this.checked);"/>
                                <label for="field_required" class="inline">
                                    <?php 
        _e("Required", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_required");
        ?>
                                </label><br/>
                                <div class="duplicate_setting field_setting">
                                    <input type="checkbox" id="field_no_duplicates" onclick="SetFieldProperty('noDuplicates', this.checked);"/>
                                    <label for="field_no_duplicates" class="inline">
                                        <?php 
        _e("No Duplicates", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("form_field_no_duplicate");
        ?>
                                    </label>
                                </div>
                            </li>

                            <?php 
        do_action("gform_field_standard_settings", -1, $form_id);
        ?>
                        </ul>
                        </div>
                        <div id="gform_tab_2">
                            <ul>
                                <?php 
        do_action("gform_field_advanced_settings", 0, $form_id);
        ?>
                                <li class="admin_label_setting field_setting">
                                    <label for="field_admin_label">
                                        <?php 
        _e("Admin Label", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("form_field_admin_label");
        ?>
                                    </label>
                                    <input type="text" id="field_admin_label" size="35" onkeyup="SetFieldProperty('adminLabel', this.value);"/>
                                </li>
                                <?php 
        do_action("gform_field_advanced_settings", 50, $form_id);
        ?>
                                <li class="size_setting field_setting">
                                    <label for="field_size">
                                        <?php 
        _e("Field Size", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("form_field_size");
        ?>
                                    </label>
                                    <select id="field_size" onchange="SetFieldSize(jQuery(this).val());">
                                        <option value="small"><?php 
        _e("Small", "gravityforms");
        ?>
</option>
                                        <option value="medium"><?php 
        _e("Medium", "gravityforms");
        ?>
</option>
                                        <option value="large"><?php 
        _e("Large", "gravityforms");
        ?>
</option>
                                    </select>
                                </li>
                                <?php 
        do_action("gform_field_advanced_settings", 100, $form_id);
        ?>
                                <li class="default_value_setting field_setting">
                                    <label for="field_default_value">
                                        <?php 
        _e("Default Value", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("form_field_default_value");
        ?>
                                    </label>
                                    <?php 
        self::insert_variable_prepopulate("field_default_value");
        ?>
<br/>
                                    <input type="text" id="field_default_value" class="fieldwidth-2" onkeyup="SetFieldDefaultValue(this.value);"/>
                                </li>
                                <?php 
        do_action("gform_field_advanced_settings", 150, $form_id);
        ?>
                                <li class="default_value_textarea_setting field_setting">
                                    <label for="field_default_value_textarea">
                                        <?php 
        _e("Default Value", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("form_field_default_value");
        ?>
                                    </label>
                                    <textarea id="field_default_value_textarea" onkeyup="SetFieldDefaultValue(this.value);" class="fieldwidth-3"></textarea>
                                </li>
                                <?php 
        do_action("gform_field_advanced_settings", 200, $form_id);
        ?>
                                <li class="error_message_setting field_setting">
                                    <label for="field_error_message">
                                        <?php 
        _e("Validation Message", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("form_field_validation_message");
        ?>
                                    </label>
                                    <input type="text" id="field_error_message" class="fieldwidth-2" onkeyup="SetFieldProperty('errorMessage', this.value);"/>
                                </li>
                                <?php 
        do_action("gform_field_advanced_settings", 250, $form_id);
        ?>
                                <li class="captcha_language_setting field_setting">
                                    <label for="field_captcha_language">
                                        <?php 
        _e("Language", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("form_field_recaptcha_language");
        ?>
                                    </label>
                                    <select id="field_captcha_language" onchange="SetFieldProperty('captchaLanguage', this.value);">
                                        <option value="en"><?php 
        _e("English", "gravityforms");
        ?>
</option>
                                        <option value="nl"><?php 
        _e("Dutch", "gravityforms");
        ?>
</option>
                                        <option value="fr"><?php 
        _e("French", "gravityforms");
        ?>
</option>
                                        <option value="de"><?php 
        _e("German", "gravityforms");
        ?>
</option>
                                        <option value="pt"><?php 
        _e("Portuguese", "gravityforms");
        ?>
</option>
                                        <option value="ru"><?php 
        _e("Russian", "gravityforms");
        ?>
</option>
                                        <option value="es"><?php 
        _e("Spanish", "gravityforms");
        ?>
</option>
                                        <option value="tr"><?php 
        _e("Turkish", "gravityforms");
        ?>
</option>
                                    </select>
                                </li>
                                <?php 
        do_action("gform_field_advanced_settings", 300, $form_id);
        ?>
                                <li class="css_class_setting field_setting">
                                    <label for="field_css_class">
                                        <?php 
        _e("CSS Class Name", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("form_field_css_class");
        ?>
                                    </label>
                                    <input type="text" id="field_css_class" size="30" onkeyup="SetFieldProperty('cssClass', this.value);"/>
                                </li>
                                <?php 
        do_action("gform_field_advanced_settings", 350, $form_id);
        ?>
                                <li class="password_field_setting field_setting">
                                    <input type="checkbox" id="field_password" onclick="SetPasswordProperty(this.checked);"/> <label for="field_password" class="inline"><?php 
        _e("Enable Password Input", "gravityforms");
        gform_tooltip("form_field_password");
        ?>
</label>
                                </li>
                                <?php 
        do_action("gform_field_advanced_settings", 400, $form_id);
        ?>
                                <li class="visibility_setting field_setting">
                                    <label><?php 
        _e("Visibility", "gravityforms");
        ?>
 <?php 
        gform_tooltip("form_field_visibility");
        ?>
</label>
                                    <div>
                                        <input type="radio" name="field_visibility" id="field_visibility_everyone" size="10" onclick="SetFieldAdminOnly(!this.checked);" />
                                        <label for="field_visibility_everyone" class="inline">
                                            <?php 
        _e("Everyone", "gravityforms");
        ?>
                                        </label>
                                        &nbsp;&nbsp;
                                        <input type="radio" name="field_visibility" id="field_visibility_admin" size="10" onclick="SetFieldAdminOnly(this.checked);" />
                                        <label for="field_visibility_admin" class="inline">
                                            <?php 
        _e("Admin Only", "gravityforms");
        ?>
                                        </label>
                                    </div>
                                    <br class="clear" />
                                </li>
                                <?php 
        do_action("gform_field_advanced_settings", 450, $form_id);
        ?>
                                <li class="prepopulate_field_setting field_setting">
                                    <input type="checkbox" id="field_prepopulate" onclick="SetFieldProperty('allowsPrepopulate', this.checked); ToggleInputName()"/> <label for="field_prepopulate" class="inline"><?php 
        _e("Allow field to be populated dynamically", "gravityforms");
        gform_tooltip("form_field_prepopulate");
        ?>
</label>
                                    <br/>
                                    <div id="field_input_name_container" style="display:none; padding-top:10px;">
                                        <!-- content dynamically created from js.php -->
                                    </div>
                                </li>
                                <?php 
        do_action("gform_field_advanced_settings", 500, $form_id);
        ?>
                                <li class="conditional_logic_field_setting field_setting">
                                    <input type="checkbox" id="field_conditional_logic" onclick="SetFieldProperty('conditionalLogic', this.checked ? new ConditionalLogic() : null); ToggleConditionalLogic(false, 'field');"/> <label for="field_conditional_logic" class="inline"><?php 
        _e("Enable Conditional Logic", "gravityforms");
        gform_tooltip("form_field_conditional_logic");
        ?>
</label>
                                    <br/>
                                    <div id="field_conditional_logic_container" style="display:none; padding-top:10px;">
                                        <!-- content dynamically created from js.php -->
                                    </div>
                                </li>

                                <?php 
        do_action("gform_field_advanced_settings", 525, $form_id);
        ?>
                                <li class="conditional_logic_page_setting field_setting">
                                    <input type="checkbox" id="page_conditional_logic" onclick="SetFieldProperty('conditionalLogic', this.checked ? new ConditionalLogic() : null); ToggleConditionalLogic(false, 'page');"/> <label for="page_conditional_logic" class="inline"><?php 
        _e("Enable Page Conditional Logic", "gravityforms");
        gform_tooltip("form_page_conditional_logic");
        ?>
</label>
                                    <br/>
                                    <div id="page_conditional_logic_container" style="display:none; padding-top:10px;">
                                        <!-- content dynamically created from js.php -->
                                    </div>
                                </li>

                                <?php 
        do_action("gform_field_advanced_settings", 550, $form_id);
        ?>
                                <li class="conditional_logic_nextbutton_setting field_setting">
                                    <input type="checkbox" id="next_button_conditional_logic" onclick="SetNextButtonConditionalLogic(this.checked); ToggleConditionalLogic(false, 'next_button');"/>
                                    <label for="next_button_conditional_logic" class="inline"><?php 
        _e("Enable Next Button Conditional Logic", "gravityforms");
        gform_tooltip("form_nextbutton_conditional_logic");
        ?>
</label>
                                    <br/>
                                    <div id="next_button_conditional_logic_container" style="display:none; padding-top:10px;">
                                        <!-- content dynamically created from js.php -->
                                    </div>
                                </li>

                                <?php 
        do_action("gform_field_advanced_settings", -1, $form_id);
        ?>
                            </ul>
                        </div>
                    </div>
                </td>
                <td valign="top" align="right">
                    <div id="add_fields" style="text-align:left; width:285px; padding:0 20px 0 15px;">
                        <div id="floatMenu">
                            <h3 class="gf_add_fields"><?php 
        _e("Add Fields", "gravityforms");
        ?>
</h3>

                            <!-- begin add button boxes -->
                            <ul id="sidebarmenu1" class="menu collapsible expandfirst">

                            <?php 
        $standard_fields = array(array("class" => "button", "value" => __("Single Line Text", "gravityforms"), "onclick" => "StartAddField('text');"), array("class" => "button", "value" => __("Paragraph Text", "gravityforms"), "onclick" => "StartAddField('textarea');"), array("class" => "button", "value" => __("Drop Down", "gravityforms"), "onclick" => "StartAddField('select');"), array("class" => "button", "value" => __("Number", "gravityforms"), "onclick" => "StartAddField('number');"), array("class" => "button", "value" => __("Checkboxes", "gravityforms"), "onclick" => "StartAddField('checkbox');"), array("class" => "button", "value" => __("Multiple Choice", "gravityforms"), "onclick" => "StartAddField('radio');"), array("class" => "button", "value" => __("Hidden", "gravityforms"), "onclick" => "StartAddField('hidden');"), array("class" => "button", "value" => __("HTML", "gravityforms"), "onclick" => "StartAddField('html');"), array("class" => "button", "value" => __("Section Break", "gravityforms"), "onclick" => "StartAddField('section');"), array("class" => "button", "value" => __("Page Break", "gravityforms"), "onclick" => "StartAddField('page');"));
        $advanced_fields = array(array("class" => "button", "value" => __("Name", "gravityforms"), "onclick" => "StartAddField('name');"), array("class" => "button", "value" => __("Date", "gravityforms"), "onclick" => "StartAddField('date');"), array("class" => "button", "value" => __("Time", "gravityforms"), "onclick" => "StartAddField('time');"), array("class" => "button", "value" => __("Phone", "gravityforms"), "onclick" => "StartAddField('phone');"), array("class" => "button", "value" => __("Address", "gravityforms"), "onclick" => "StartAddField('address');"), array("class" => "button", "value" => __("Website", "gravityforms"), "onclick" => "StartAddField('website');"), array("class" => "button", "value" => __("Email", "gravityforms"), "onclick" => "StartAddField('email');"));
        if (apply_filters("gform_enable_password_field", false)) {
            $advanced_fields[] = array("class" => "button", "value" => __("Password", "gravityforms"), "onclick" => "StartAddField('password');");
        }
        $advanced_fields[] = array("class" => "button", "value" => __("File Upload", "gravityforms"), "onclick" => "StartAddField('fileupload');");
        $advanced_fields[] = array("class" => "button", "value" => __("CAPTCHA", "gravityforms"), "onclick" => "AddCaptchaField();");
        $post_fields = array(array("class" => "button", "value" => __("Title", "gravityforms"), "onclick" => "StartAddField('post_title');"), array("class" => "button", "value" => __("Body", "gravityforms"), "onclick" => "StartAddField('post_content');"), array("class" => "button", "value" => __("Excerpt", "gravityforms"), "onclick" => "StartAddField('post_excerpt');"), array("class" => "button", "value" => __("Tags", "gravityforms"), "onclick" => "StartAddField('post_tags');"), array("class" => "button", "value" => __("Category", "gravityforms"), "onclick" => "StartAddField('post_category');"), array("class" => "button", "value" => __("Image", "gravityforms"), "onclick" => "StartAddField('post_image');"), array("class" => "button", "value" => __("Custom Field", "gravityforms"), "onclick" => "StartAddField('post_custom_field');"));
        $pricing_fields = array(array("class" => "button", "value" => __("Product", "gravityforms"), "onclick" => "StartAddField('product');"), array("class" => "button", "value" => __("Quantity", "gravityforms"), "onclick" => "StartAddField('quantity');"), array("class" => "button", "value" => __("Option", "gravityforms"), "onclick" => "StartAddField('option');"), array("class" => "button", "value" => __("Shipping", "gravityforms"), "onclick" => "StartAddField('shipping');"), array("class" => "button", "value" => __("Donation", "gravityforms"), "onclick" => "StartAddField('donation');"), array("class" => "button", "value" => __("Total", "gravityforms"), "onclick" => "StartAddField('total');"));
        $field_groups = array(array("name" => "standard_fields", "label" => __("Standard Fields", "gravityforms"), "fields" => $standard_fields, "tooltip_class" => "tooltip_bottomleft"), array("name" => "advanced_fields", "label" => __("Advanced Fields", "gravityforms"), "fields" => $advanced_fields), array("name" => "post_fields", "label" => __("Post Fields", "gravityforms"), "fields" => $post_fields));
        $field_groups[] = array("name" => "pricing_fields", "label" => __("Pricing Fields", "gravityforms"), "fields" => $pricing_fields);
        $field_groups = apply_filters("gform_add_field_buttons", $field_groups);
        foreach ($field_groups as $group) {
            $tooltip_class = empty($group["tooltip_class"]) ? "tooltip_left" : $group["tooltip_class"];
            ?>
                                    <li id="add_<?php 
            echo $group["name"];
            ?>
" class="add_field_button_container">
                                        <div class="button-title-link"><div class="add-buttons-title"><?php 
            echo $group["label"];
            ?>
 <?php 
            gform_tooltip("form_{$group["name"]}", $tooltip_class);
            ?>
</div></div>
                                        <ul>
                                            <li class="add-buttons">
                                                <ol class="field_type">
                                                    <?php 
            echo self::display_buttons($group["fields"]);
            ?>
                                                </ol>
                                            </li>
                                        </ul>
                                    </li>
                                    <?php 
        }
        ?>
                            </ul>
                            <br style="clear:both;"/>
                            <!--end add button boxes -->
                        </div>
                    </div>
                </td>
            </tr>
        </table>
        </div>

        <?php 
        require_once GFCommon::get_base_path() . "/js.php";
    }
Ejemplo n.º 21
0
    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&amp;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 
    }
Ejemplo n.º 22
0
 private static function verify_paypal_ipn()
 {
     //read the post from PayPal system and add 'cmd'
     $req = 'cmd=_notify-validate';
     foreach ($_POST as $key => $value) {
         $value = urlencode(stripslashes($value));
         $req .= "&{$key}={$value}";
     }
     $url = RGForms::post("test_ipn") ? self::$sandbox_url : self::$production_url;
     self::log_debug("Sending IPN request to PayPal for validation. URL: {$url} - Data: {$req}");
     //Post back to PayPal system to validate
     $request = new WP_Http();
     $response = $request->post($url, array("sslverify" => false, "ssl" => true, "body" => $req, "timeout" => 20));
     self::log_debug("Response: " . print_r($response, true));
     return !is_wp_error($response) && $response["body"] == "VERIFIED";
 }
Ejemplo n.º 23
0
 public static function save_paypal_user_config($config)
 {
     $config["meta"]["update_user_action"] = RGForms::post("gf_paypal_update_user_action");
     $config["meta"]["delay_registration"] = RGForms::post("gf_paypal_delay_registration");
     $config["meta"]["update_site_action"] = RGForms::post("gf_paypal_update_site_action");
     // multisite option
     return $config;
 }
 /**
  * validate inputs
  * @param array $validation_result an array with elements is_valid (boolean) and form (array of form elements)
  * @param string $value
  * @param array $form
  * @param array $field
  * @return array
  */
 public function gformFieldValidation($validation_result, $value, $form, $field)
 {
     if ($field['type'] == GFEWAY_FIELD_RECURRING) {
         if (!RGFormsModel::is_field_hidden($form, $field, RGForms::post('gform_field_values'))) {
             // get the real values
             $value = self::getPost($field['id']);
             if (!is_array($value)) {
                 $validation_result['is_valid'] = false;
                 $validation_result['message'] = __("This field is required.", "gravityforms");
             } else {
                 $messages = array();
                 if ($value['amountInit'] === false || $value['amountInit'] < 0) {
                     $messages[] = 'Please enter a valid initial amount.';
                 }
                 if (empty($value['dateInit'])) {
                     $messages[] = 'Please enter a valid initial date in the format dd/mm/yyyy.';
                 }
                 if (empty($value['amountRecur']) || $value['amountRecur'] < 0) {
                     $messages[] = 'Please enter a valid recurring amount.';
                 }
                 if (empty($value['dateStart'])) {
                     $messages[] = 'Please enter a valid start date in the format dd/mm/yyyy.';
                 }
                 if (empty($value['dateEnd'])) {
                     $messages[] = 'Please enter a valid end date in the format dd/mm/yyyy.';
                 }
                 if ($value['intervalType'] === -1) {
                     $messages[] = 'Please select a valid interval type.';
                 }
                 if (count($messages) > 0) {
                     $validation_result['is_valid'] = false;
                     $validation_result['message'] = implode("<br />\n", $messages);
                 }
             }
         }
     }
     return $validation_result;
 }
Ejemplo n.º 25
0
    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 == "delete") {
            check_admin_referer('gforms_update_forms', 'gforms_update_forms');
            $form_id = RGForms::post("action_argument");
            RGFormsModel::delete_form($form_id);
        } else {
            if ($action == "duplicate") {
                check_admin_referer('gforms_update_forms', 'gforms_update_forms');
                $form_id = RGForms::post("action_argument");
                RGFormsModel::duplicate_form($form_id);
            } else {
                if ($bulk_action == "delete") {
                    check_admin_referer('gforms_update_forms', 'gforms_update_forms');
                    $form_ids = RGForms::post("form");
                    RGFormsModel::delete_forms($form_ids);
                } else {
                    if ($bulk_action == "reset_views") {
                        check_admin_referer('gforms_update_forms', 'gforms_update_forms');
                        $form_ids = RGForms::post("form");
                        foreach ($form_ids as $form_id) {
                            RGFormsModel::delete_views($form_id);
                        }
                    } else {
                        if ($bulk_action == "delete_entries") {
                            check_admin_referer('gforms_update_forms', 'gforms_update_forms');
                            $form_ids = RGForms::post("form");
                            foreach ($form_ids as $form_id) {
                                RGFormsModel::delete_leads_by_form($form_id);
                            }
                        }
                    }
                }
            }
        }
        $active = RGForms::get("active") == "" ? null : RGForms::get("active");
        $forms = RGFormsModel::get_forms($active, "title");
        $form_count = RGFormsModel::get_form_count();
        ?>
        <script>
            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.encVar( "cookie", document.cookie, false );
                mysack.onError = function() { alert('<?php 
        echo esc_js(__("Ajax error while update 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 this form and ALL entries associated with it. ", "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">
            <img alt="<?php 
        _e("Gravity Forms", "gravityforms");
        ?>
" src="<?php 
        echo GFCommon::get_base_url();
        ?>
/images/gravity-edit-icon-32.png" style="float:left; margin:15px 7px 0 0;"/>
            <h2>
                <?php 
        _e("Edit Forms", "gravityforms");
        ?>
                <a class="button add-new-h2" href="admin.php?page=gf_new_form"><?php 
        _e("Add New", "gravityforms");
        ?>
</a>
            </h2>
            <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>
                </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>
                                <option value='delete'><?php 
            _e("Delete", "gravityforms");
            ?>
</option>
                                <option value='reset_views'><?php 
            _e("Reset Views", "gravityforms");
            ?>
</option>
                                <option value='delete_entries'><?php 
            _e("Delete Entries", "gravityforms");
            ?>
</option>
                            </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>
                    </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 
        }
        ?>
                            <th scope="col" id="active" class="manage-column column-cb check-column"></th>
                            <th scope="col" id="id" class="manage-column" style="width:50px;"><?php 
        _e("Id", "gravityforms");
        ?>
</th>
                            <th width="360" scope="col" id="title" class="manage-column column-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"><?php 
        _e("Id", "gravityforms");
        ?>
</th>
                            <th width="350" scope="col" id="title" class="manage-column column-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) {
            foreach ($forms as $form) {
                $conversion = "0%";
                if ($form->view_count > 0) {
                    $conversion = number_format($form->lead_count / $form->view_count, 3) * 100 . "%";
                }
                ?>
                                <tr class='author-self status-inherit' valign="top">
                                    <?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"/></th>
                                    <?php 
                }
                ?>

                                    <td><img src="<?php 
                echo GFCommon::get_base_url();
                ?>
/images/active<?php 
                echo intval($form->is_active);
                ?>
.png" 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;
                ?>
); " /></td>
                                    <td class="column-id"><?php 
                echo $form->id;
                ?>
</td>
                                    <td class="column-title">
                                        <strong><a class="row-title" href="admin.php?page=gf_edit_forms&id=<?php 
                echo $form->id;
                ?>
" title="<?php 
                _e("Edit", "gravityforms");
                ?>
"><?php 
                echo $form->title;
                ?>
</a></strong>
                                        <div class="row-actions">
                                            <span class="edit">
                                            <a title="Edit this form" href="admin.php?page=gf_edit_forms&id=<?php 
                echo $form->id;
                ?>
"><?php 
                _e("Edit", "gravityforms");
                ?>
</a>
                                            |
                                            </span>
                                            <span class="edit">
                                            <a title="<?php 
                _e("Preview this form", "gravityforms");
                ?>
" href="<?php 
                echo GFCommon::get_base_url();
                ?>
/preview.php?id=<?php 
                echo $form->id;
                ?>
" target="_blank"><?php 
                _e("Preview", "gravityforms");
                ?>
</a>
                                            |
                                            </span>

                                            <?php 
                if (GFCommon::current_user_can_any("gravityforms_view_entries")) {
                    ?>
                                                <span class="edit">
                                                <a title="<?php 
                    _e("View entries generated by this form", "gravityforms");
                    ?>
" href="admin.php?page=gf_entries&view=entries&id=<?php 
                    echo $form->id;
                    ?>
"><?php 
                    _e("Entries", "gravityforms");
                    ?>
</a>
                                                |
                                                </span>
                                            <?php 
                }
                ?>

                                            <span class="edit">
                                            <a title="<?php 
                _e("Edit notifications sent by this form", "gravityforms");
                ?>
" href="admin.php?page=gf_edit_forms&view=notification&id=<?php 
                echo $form->id;
                ?>
"><?php 
                _e("Notifications", "gravityforms");
                ?>
</a>
                                            <?php 
                echo GFCommon::current_user_can_any("gravityforms_create_form") || GFCommon::current_user_can_any("gravityforms_delete_forms") ? "|" : "";
                ?>
                                            </span>

                                            <?php 
                if (GFCommon::current_user_can_any("gravityforms_create_form")) {
                    ?>
                                                <span class="edit">
                                                <a title="<?php 
                    _e("Duplicate this form", "gravityforms");
                    ?>
" href="javascript:DuplicateForm(<?php 
                    echo $form->id;
                    ?>
);"><?php 
                    _e("Duplicate", "gravityforms");
                    ?>
</a>
                                                <?php 
                    echo GFCommon::current_user_can_any("gravityforms_delete_forms") ? "|" : "";
                    ?>
                                                </span>
                                            <?php 
                }
                ?>
                                            <?php 
                if (GFCommon::current_user_can_any("gravityforms_delete_forms")) {
                    ?>
                                                <span class="edit">
                                                <?php 
                    $delete_link = '<a title="Delete" href="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 . ');}">' . __("Delete", "gravityforms") . '</a>';
                    echo apply_filters("gform_form_delete_link", $delete_link);
                    ?>
                                                </span>
                                            <?php 
                }
                ?>
                                        </div>
                                    </td>
                                    <td class="column-date"><strong><?php 
                echo $form->view_count;
                ?>
</strong></td>
                                    <td class="column-date"><strong><?php 
                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 
            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>
                                <option value='delete'><?php 
            _e("Delete", "gravityforms");
            ?>
</option>
                                <option value='reset_views'><?php 
            _e("Reset Views", "gravityforms");
            ?>
</option>
                                <option value='delete_entries'><?php 
            _e("Delete Entries", "gravityforms");
            ?>
</option>
                            </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 
    }
Ejemplo n.º 26
0
 public static function process_ipn($wp)
 {
     if (!self::is_gravityforms_supported()) {
         return;
     }
     //Ignore requests that are not IPN
     if (RGForms::get("page") != "gf_paypal_ipn") {
         return;
     }
     self::log_debug("IPN request received. Starting to process...");
     self::log_debug(print_r($_POST, true));
     //Send request to paypal and verify it has not been spoofed
     if (!self::verify_paypal_ipn()) {
         self::log_error("IPN request could not be verified by PayPal. Aborting.");
         return;
     }
     self::log_debug("IPN message successfully verified by PayPal");
     //Valid IPN requests must have a custom field
     $custom = RGForms::post("custom");
     if (empty($custom)) {
         self::log_error("IPN request does not have a custom field, so it was not created by Gravity Forms. Aborting.");
         return;
     }
     //Getting entry associated with this IPN message (entry id is sent in the "custom" field)
     list($entry_id, $hash) = explode("|", $custom);
     $hash_matches = wp_hash($entry_id) == $hash;
     //Validates that Entry Id wasn't tampered with
     if (!RGForms::post("test_ipn") && !$hash_matches) {
         self::log_error("Entry Id verification failed. Hash does not match. Custom field: {$custom}. Aborting.");
         return;
     }
     self::log_debug("IPN message has a valid custom field: {$custom}");
     //$entry_id = RGForms::post("custom");
     $entry = RGFormsModel::get_lead($entry_id);
     //Ignore orphan IPN messages (ones without an entry)
     if (!$entry) {
         self::log_error("Entry could not be found. Entry ID: {$entry_id}. Aborting.");
         return;
     }
     self::log_debug("Entry has been found." . print_r($entry, true));
     // config ID is stored in entry via send_to_paypal() function
     $config = self::get_config_by_entry($entry);
     //Ignore IPN messages from forms that are no longer configured with the PayPal add-on
     if (!$config) {
         self::log_error("Form no longer is configured with PayPal Addon. Form ID: {$entry["form_id"]}. Aborting.");
         return;
     }
     self::log_debug("Form {$entry["form_id"]} is properly configured.");
     //Only process test messages coming fron SandBox and only process production messages coming from production PayPal
     if ($config["meta"]["mode"] == "test" && !RGForms::post("test_ipn") || $config["meta"]["mode"] == "production" && RGForms::post("test_ipn")) {
         self::log_error("Invalid test/production mode. IPN message mode (test/production) does not match mode configured in the PayPal feed. Configured Mode: {$config["meta"]["mode"]}. IPN test mode: " . RGForms::post("test_ipn"));
         return;
     }
     //Check business email to make sure it matches
     $recipient_email = rgempty("business") ? rgpost("receiver_email") : rgpost("business");
     if (strtolower(trim($recipient_email)) != strtolower(trim($config["meta"]["email"]))) {
         self::log_error("PayPal email does not match. Email entered on PayPal feed:" . strtolower(trim($config["meta"]["email"])) . " - Email from IPN message: " . $recipient_email);
         return;
     }
     //Pre IPN processing filter. Allows users to cancel IPN processing
     $cancel = apply_filters("gform_paypal_pre_ipn", false, $_POST, $entry, $config);
     if (!$cancel) {
         self::log_debug('Setting payment status...');
         self::set_payment_status($config, $entry, rgpost('payment_status'), rgpost('txn_type'), rgpost('txn_id'), rgpost('parent_txn_id'), rgpost('subscr_id'), rgpost('mc_gross'), rgpost('pending_reason'), rgpost('reason_code'));
         do_action('gform_paypal_ipn_' . rgpost('txn_type'), $entry, $config, rgpost('payment_status'), rgpost('txn_type'), rgpost('txn_id'), rgpost('parent_txn_id'), rgpost('subscr_id'), rgpost('mc_gross'), rgpost('pending_reason'), rgpost('reason_code'));
     } else {
         self::log_debug("IPN processing cancelled by the gform_paypal_pre_ipn filter. Aborting.");
     }
     self::log_debug("Before gform_paypal_post_ipn.");
     //Post IPN processing action
     do_action("gform_paypal_post_ipn", $_POST, $entry, $config, $cancel);
     self::log_debug("IPN processing complete.");
 }
Ejemplo n.º 27
0
 public static function get_source_page($form_id)
 {
     $page_number = RGForms::post("gform_source_page_number_{$form_id}");
     return !is_numeric($page_number) ? 1 : $page_number;
 }
Ejemplo n.º 28
0
    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 
    }
Ejemplo n.º 29
0
    public static function lead_detail_page()
    {
        global $current_user;
        if (!GFCommon::ensure_wp_version()) {
            return;
        }
        echo GFCommon::get_remote_message();
        $form = RGFormsModel::get_form_meta(absint($_GET['id']));
        $form_id = absint($form['id']);
        $form = apply_filters('gform_admin_pre_render_' . $form_id, apply_filters('gform_admin_pre_render', $form));
        $lead_id = absint(rgget('lid'));
        $filter = rgget('filter');
        $status = in_array($filter, array('trash', 'spam')) ? $filter : 'active';
        $position = rgget('pos') ? rgget('pos') : 0;
        $sort_direction = rgget('dir') ? rgget('dir') : 'DESC';
        $sort_field = empty($_GET['sort']) ? 0 : $_GET['sort'];
        $sort_field_meta = RGFormsModel::get_field($form, $sort_field);
        $is_numeric = $sort_field_meta['type'] == 'number';
        $star = $filter == 'star' ? 1 : null;
        $read = $filter == 'unread' ? 0 : null;
        $search_criteria['status'] = $status;
        if ($star) {
            $search_criteria['field_filters'][] = array('key' => 'is_starred', 'value' => (bool) $star);
        }
        if (!is_null($read)) {
            $search_criteria['field_filters'][] = array('key' => 'is_read', 'value' => (bool) $read);
        }
        $search_field_id = rgget('field_id');
        if (isset($_GET['field_id']) && $_GET['field_id'] !== '') {
            $key = $search_field_id;
            $val = rgget('s');
            $strpos_row_key = strpos($search_field_id, '|');
            if ($strpos_row_key !== false) {
                //multi-row likert
                $key_array = explode('|', $search_field_id);
                $key = $key_array[0];
                $val = $key_array[1] . ':' . $val;
            }
            $search_criteria['field_filters'][] = array('key' => $key, 'operator' => rgempty('operator', $_GET) ? 'is' : rgget('operator'), 'value' => $val);
            $type = rgget('type');
            if (empty($type)) {
                if (rgget('field_id') == '0') {
                    $search_criteria['type'] = 'global';
                }
            }
        }
        $paging = array('offset' => $position, 'page_size' => 1);
        if (!empty($sort_field)) {
            $sorting = array('key' => $_GET['sort'], 'direction' => $sort_direction, 'is_numeric' => $is_numeric);
        } else {
            $sorting = array();
        }
        $total_count = 0;
        $leads = GFAPI::get_entries($form['id'], $search_criteria, $sorting, $paging, $total_count);
        $prev_pos = !rgblank($position) && $position > 0 ? $position - 1 : false;
        $next_pos = !rgblank($position) && $position < $total_count - 1 ? $position + 1 : false;
        // unread filter requires special handling for pagination since entries are filter out of the query as they are read
        if ($filter == 'unread') {
            $next_pos = $position;
            if ($next_pos + 1 == $total_count) {
                $next_pos = false;
            }
        }
        if (!$lead_id) {
            $lead = !empty($leads) ? $leads[0] : false;
        } else {
            $lead = GFAPI::get_entry($lead_id);
        }
        if (!$lead) {
            esc_html_e("Oops! We couldn't find your entry. Please try again", 'gravityforms');
            return;
        }
        RGFormsModel::update_lead_property($lead['id'], 'is_read', 1);
        switch (RGForms::post('action')) {
            case 'update':
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                //Loading files that have been uploaded to temp folder
                $files = GFCommon::json_decode(stripslashes(RGForms::post('gform_uploaded_files')));
                if (!is_array($files)) {
                    $files = array();
                }
                GFFormsModel::$uploaded_files[$form_id] = $files;
                GFFormsModel::save_lead($form, $lead);
                do_action('gform_after_update_entry', $form, $lead['id']);
                do_action("gform_after_update_entry_{$form['id']}", $form, $lead['id']);
                $lead = RGFormsModel::get_lead($lead['id']);
                $lead = GFFormsModel::set_entry_meta($lead, $form);
                break;
            case 'add_note':
                check_admin_referer('gforms_update_note', 'gforms_update_note');
                $user_data = get_userdata($current_user->ID);
                RGFormsModel::add_note($lead['id'], $current_user->ID, $user_data->display_name, stripslashes($_POST['new_note']));
                //emailing notes if configured
                if (rgpost('gentry_email_notes_to')) {
                    GFCommon::log_debug('GFEntryDetail::lead_detail_page(): Preparing to email entry notes.');
                    $email_to = $_POST['gentry_email_notes_to'];
                    $email_from = $current_user->user_email;
                    $email_subject = stripslashes($_POST['gentry_email_subject']);
                    $body = stripslashes($_POST['new_note']);
                    $headers = "From: \"{$email_from}\" <{$email_from}> \r\n";
                    GFCommon::log_debug("GFEntryDetail::lead_detail_page(): Emailing notes - TO: {$email_to} SUBJECT: {$email_subject} BODY: {$body} HEADERS: {$headers}");
                    $is_success = wp_mail($email_to, $email_subject, $body, $headers);
                    $result = is_wp_error($is_success) ? $is_success->get_error_message() : $is_success;
                    GFCommon::log_debug("GFEntryDetail::lead_detail_page(): Result from wp_mail(): {$result}");
                    if (!is_wp_error($is_success) && $is_success) {
                        GFCommon::log_debug('GFEntryDetail::lead_detail_page(): Mail was passed from WordPress to the mail server.');
                    } else {
                        GFCommon::log_error('GFEntryDetail::lead_detail_page(): The mail message was passed off to WordPress for processing, but WordPress was unable to send the message.');
                    }
                    if (has_filter('phpmailer_init')) {
                        GFCommon::log_debug(__METHOD__ . '(): The WordPress phpmailer_init hook has been detected, usually used by SMTP plugins, it can impact mail delivery.');
                    }
                    do_action('gform_post_send_entry_note', $result, $email_to, $email_from, $email_subject, $body, $form, $lead);
                }
                break;
            case 'add_quick_note':
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                $user_data = get_userdata($current_user->ID);
                RGFormsModel::add_note($lead['id'], $current_user->ID, $user_data->display_name, stripslashes($_POST['quick_note']));
                break;
            case 'bulk':
                check_admin_referer('gforms_update_note', 'gforms_update_note');
                if ($_POST['bulk_action'] == 'delete') {
                    if (!GFCommon::current_user_can_any('gravityforms_edit_entry_notes')) {
                        die(esc_html__("You don't have adequate permission to delete notes.", 'gravityforms'));
                    }
                    RGFormsModel::delete_notes($_POST['note']);
                }
                break;
            case 'trash':
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                RGFormsModel::update_lead_property($lead['id'], 'status', 'trash');
                $lead = RGFormsModel::get_lead($lead['id']);
                break;
            case 'restore':
            case 'unspam':
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                RGFormsModel::update_lead_property($lead['id'], 'status', 'active');
                $lead = RGFormsModel::get_lead($lead['id']);
                break;
            case 'spam':
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                RGFormsModel::update_lead_property($lead['id'], 'status', 'spam');
                $lead = RGFormsModel::get_lead($lead['id']);
                break;
            case 'delete':
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                if (!GFCommon::current_user_can_any('gravityforms_delete_entries')) {
                    die(esc_html__("You don't have adequate permission to delete entries.", 'gravityforms'));
                }
                RGFormsModel::delete_lead($lead['id']);
                ?>
				<script type="text/javascript">
					document.location.href = '<?php 
                echo 'admin.php?page=gf_entries&view=entries&id=' . absint($form['id']);
                ?>
';
				</script>
				<?php 
                break;
        }
        $mode = empty($_POST['screen_mode']) ? 'view' : $_POST['screen_mode'];
        $min = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG || isset($_GET['gform_debug']) ? '' : '.min';
        ?>
		<link rel="stylesheet" href="<?php 
        echo GFCommon::get_base_url();
        ?>
/css/admin<?php 
        echo $min;
        ?>
.css" />
		<script type="text/javascript">

			jQuery(document).ready(function () {
				toggleNotificationOverride(true);
				jQuery('#gform_update_button').prop('disabled', false);
			});

			function DeleteFile(leadId, fieldId, deleteButton) {
				if (confirm(<?php 
        echo json_encode(__("Would you like to delete this file? 'Cancel' to stop. 'OK' to delete", 'gravityforms'));
        ?>
)) {
					var fileIndex = jQuery(deleteButton).parent().index();
					var mysack = new sack("<?php 
        echo admin_url('admin-ajax.php');
        ?>
");
					mysack.execute = 1;
					mysack.method = 'POST';
					mysack.setVar("action", "rg_delete_file");
					mysack.setVar("rg_delete_file", "<?php 
        echo wp_create_nonce('rg_delete_file');
        ?>
");
					mysack.setVar("lead_id", leadId);
					mysack.setVar("field_id", fieldId);
					mysack.setVar("file_index", fileIndex);
					mysack.onError = function () {
						alert(<?php 
        echo json_encode(__('Ajax error while deleting field.', 'gravityforms'));
        ?>
)
					};
					mysack.runAJAX();

					return true;
				}
			}

			function EndDeleteFile(fieldId, fileIndex) {
				var previewFileSelector = "#preview_existing_files_" + fieldId + " .ginput_preview";
				var $previewFiles = jQuery(previewFileSelector);
				var rr = $previewFiles.eq(fileIndex);
				$previewFiles.eq(fileIndex).remove();
				var $visiblePreviewFields = jQuery(previewFileSelector);
				if ($visiblePreviewFields.length == 0) {
					jQuery('#preview_' + fieldId).hide();
					jQuery('#upload_' + fieldId).show('slow');
				}
			}

			function ToggleShowEmptyFields() {
				if (jQuery("#gentry_display_empty_fields").is(":checked")) {
					createCookie("gf_display_empty_fields", true, 10000);
					document.location = document.location.href;
				}
				else {
					eraseCookie("gf_display_empty_fields");
					document.location = document.location.href;
				}
			}

			function createCookie(name, value, days) {
				if (days) {
					var date = new Date();
					date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
					var expires = "; expires=" + date.toGMTString();
				}
				else var expires = "";
				document.cookie = name + "=" + value + expires + "; path=/";
			}

			function eraseCookie(name) {
				createCookie(name, "", -1);
			}

			function ResendNotifications() {

				var selectedNotifications = new Array();
				jQuery(".gform_notifications:checked").each(function () {
					selectedNotifications.push(jQuery(this).val());
				});

				var sendTo = jQuery('#notification_override_email').val();

				if (selectedNotifications.length <= 0) {
					displayMessage(<?php 
        echo json_encode(__('You must select at least one type of notification to resend.', 'gravityforms'));
        ?>
, 'error', '#notifications_container');
					return;
				}

				jQuery('#please_wait_container').fadeIn();

				jQuery.post(ajaxurl, {
						action                 : "gf_resend_notifications",
						gf_resend_notifications: '<?php 
        echo wp_create_nonce('gf_resend_notifications');
        ?>
',
						notifications          : jQuery.toJSON(selectedNotifications),
						sendTo                 : sendTo,
						leadIds                : '<?php 
        echo absint($lead['id']);
        ?>
',
						formId                 : '<?php 
        echo absint($form['id']);
        ?>
'
					},
					function (response) {
						if (response) {
							displayMessage(response, "error", "#notifications_container");
						} else {
							displayMessage(<?php 
        echo json_encode(esc_html__('Notifications were resent successfully.', 'gravityforms'));
        ?>
, "updated", "#notifications_container" );

							// reset UI
							jQuery(".gform_notifications").attr( 'checked', false );
							jQuery('#notification_override_email').val('');

							toggleNotificationOverride();

						}

						jQuery('#please_wait_container').hide();
						setTimeout(function () {
							jQuery('#notifications_container').find('.message').slideUp();
						}, 5000);
					}
				);

			}

			function displayMessage( message, messageClass, container ) {
				jQuery( container ).find( '.message' ).hide().html( message ).attr( 'class', 'message ' + messageClass ).slideDown();
			}

			function toggleNotificationOverride(isInit) {

				if (isInit)
					jQuery('#notification_override_email').val('');

				if (jQuery(".gform_notifications:checked").length > 0) {
					jQuery('#notifications_override_settings').slideDown();
				}
				else {
					jQuery('#notifications_override_settings').slideUp(function () {
						jQuery('#notification_override_email').val('');
					});
				}
			}

		</script>

		<form method="post" id="entry_form" enctype='multipart/form-data'>
		<?php 
        wp_nonce_field('gforms_save_entry', 'gforms_save_entry');
        ?>
		<input type="hidden" name="action" id="action" value="" />
		<input type="hidden" name="screen_mode" id="screen_mode" value="<?php 
        echo esc_attr(rgpost('screen_mode'));
        ?>
" />

		<div class="wrap gf_entry_wrap">
		<h2 class="gf_admin_page_title">
			<span><?php 
        echo esc_html__('Entry #', 'gravityforms') . absint($lead['id']);
        ?>
</span><span class="gf_admin_page_subtitle"><span class="gf_admin_page_formid">ID: <?php 
        echo absint($form['id']);
        ?>
</span><span class='gf_admin_page_formname'><?php 
        esc_html_e('Form Name', 'gravityforms');
        ?>
: <?php 
        echo esc_html($form['title']);
        $gf_entry_locking = new GFEntryLocking();
        $gf_entry_locking->lock_info($lead_id);
        ?>
</span></span></h2>

		<?php 
        if (isset($_GET['pos'])) {
            ?>
			<div class="gf_entry_detail_pagination">
				<ul>
					<li class="gf_entry_count">
						<span>entry <strong><?php 
            echo $position + 1;
            ?>
</strong> of <strong><?php 
            echo $total_count;
            ?>
</strong></span>
					</li>
					<li class="gf_entry_prev gf_entry_pagination"><?php 
            echo GFEntryDetail::entry_detail_pagination_link($prev_pos, 'Previous Entry', 'gf_entry_prev_link', 'fa fa-arrow-circle-o-left');
            ?>
</li>
					<li class="gf_entry_next gf_entry_pagination"><?php 
            echo GFEntryDetail::entry_detail_pagination_link($next_pos, 'Next Entry', 'gf_entry_next_link', 'fa fa-arrow-circle-o-right');
            ?>
</li>
				</ul>
			</div>
		<?php 
        }
        ?>

		<?php 
        RGForms::top_toolbar();
        ?>

		<div id="poststuff" class="metabox-holder has-right-sidebar">
		<div id="side-info-column" class="inner-sidebar">
		<?php 
        do_action('gform_entry_detail_sidebar_before', $form, $lead);
        ?>

		<!-- INFO BOX -->
		<div id="submitdiv" class="stuffbox">
			<h3 class="hndle" style="cursor:default;">
				<span><?php 
        esc_html_e('Entry', 'gravityforms');
        ?>
</span>
			</h3>

			<div class="inside">
				<div id="submitcomment" class="submitbox">
					<div id="minor-publishing" style="padding:10px;">
						<?php 
        esc_html_e('Entry Id', 'gravityforms');
        ?>
: <?php 
        echo absint($lead['id']);
        ?>
<br /><br />
						<?php 
        esc_html_e('Submitted on', 'gravityforms');
        ?>
: <?php 
        echo esc_html(GFCommon::format_date($lead['date_created'], false, 'Y/m/d'));
        ?>
						<br /><br />
						<?php 
        esc_html_e('User IP', 'gravityforms');
        ?>
: <?php 
        echo esc_html($lead['ip']);
        ?>
						<br /><br />
						<?php 
        if (!empty($lead['created_by']) && ($usermeta = get_userdata($lead['created_by']))) {
            ?>
							<?php 
            esc_html_e('User', 'gravityforms');
            ?>
:
							<a href="user-edit.php?user_id=<?php 
            echo absint($lead['created_by']);
            ?>
" alt="<?php 
            esc_attr_e('View user profile', 'gravityforms');
            ?>
" title="<?php 
            esc_attr_e('View user profile', 'gravityforms');
            ?>
"><?php 
            echo esc_html($usermeta->user_login);
            ?>
</a>
							<br /><br />
						<?php 
        }
        ?>

						<?php 
        esc_html_e('Embed Url', 'gravityforms');
        ?>
:
						<a href="<?php 
        echo esc_url($lead['source_url']);
        ?>
" target="_blank" alt="<?php 
        echo esc_attr($lead['source_url']);
        ?>
" title="<?php 
        echo esc_attr($lead['source_url']);
        ?>
">.../<?php 
        echo esc_html(GFCommon::truncate_url($lead['source_url']));
        ?>
</a>
						<br /><br />
						<?php 
        if (!empty($lead['post_id'])) {
            $post = get_post($lead['post_id']);
            ?>
							<?php 
            esc_html_e('Edit Post', 'gravityforms');
            ?>
:
							<a href="post.php?action=edit&post=<?php 
            echo absint($post->ID);
            ?>
" alt="<?php 
            esc_attr_e('Click to edit post', 'gravityforms');
            ?>
" title="<?php 
            esc_attr_e('Click to edit post', 'gravityforms');
            ?>
"><?php 
            echo esc_html($post->post_title);
            ?>
</a>
							<br /><br />
						<?php 
        }
        if (do_action('gform_enable_entry_info_payment_details', true, $lead)) {
            if (!empty($lead['payment_status'])) {
                echo $lead['transaction_type'] != 2 ? esc_html__('Payment Status', 'gravityforms') : esc_html__('Subscription Status', 'gravityforms');
                ?>
:
								<span id="gform_payment_status"><?php 
                echo apply_filters('gform_payment_status', $lead['payment_status'], $form, $lead);
                ?>
</span>
								<br /><br />
								<?php 
                if (!empty($lead['payment_date'])) {
                    echo $lead['transaction_type'] != 2 ? esc_html__('Payment Date', 'gravityforms') : esc_html__('Start Date', 'gravityforms');
                    ?>
: <?php 
                    echo GFCommon::format_date($lead['payment_date'], false, 'Y/m/d', $lead['transaction_type'] != 2);
                    ?>
									<br /><br />
								<?php 
                }
                if (!empty($lead['transaction_id'])) {
                    echo $lead['transaction_type'] != 2 ? esc_html__('Transaction Id', 'gravityforms') : esc_html__('Subscriber Id', 'gravityforms');
                    ?>
: <?php 
                    echo esc_html($lead['transaction_id']);
                    ?>
									<br /><br />
								<?php 
                }
                if (!rgblank($lead['payment_amount'])) {
                    echo $lead['transaction_type'] != 2 ? esc_html__('Payment Amount', 'gravityforms') : esc_html__('Subscription Amount', 'gravityforms');
                    ?>
: <?php 
                    echo GFCommon::to_money($lead['payment_amount'], $lead['currency']);
                    ?>
									<br /><br />
								<?php 
                }
            }
        }
        do_action('gform_entry_info', $form['id'], $lead);
        ?>
					</div>
					<div id="major-publishing-actions">
						<div id="delete-action">
							<?php 
        switch ($lead['status']) {
            case 'spam':
                if (GFCommon::spam_enabled($form['id'])) {
                    ?>
										<a onclick="jQuery('#action').val('unspam'); jQuery('#entry_form').submit()" href="#"><?php 
                    esc_html_e('Not Spam', 'gravityforms');
                    ?>
</a>
										<?php 
                    echo GFCommon::current_user_can_any('gravityforms_delete_entries') ? '|' : '';
                }
                if (GFCommon::current_user_can_any('gravityforms_delete_entries')) {
                    ?>
										<a class="submitdelete deletion" onclick="if ( confirm('<?php 
                    echo esc_js(__("You are about to delete this entry. 'Cancel' to stop, 'OK' to delete.", 'gravityforms'));
                    ?>
') ) {jQuery('#action').val('delete'); jQuery('#entry_form').submit(); return true;} return false;" href="#"><?php 
                    esc_html_e('Delete Permanently', 'gravityforms');
                    ?>
</a>
									<?php 
                }
                break;
            case 'trash':
                ?>
									<a onclick="jQuery('#action').val('restore'); jQuery('#entry_form').submit()" href="#"><?php 
                esc_html_e('Restore', 'gravityforms');
                ?>
</a>
									<?php 
                if (GFCommon::current_user_can_any('gravityforms_delete_entries')) {
                    ?>
										|
										<a class="submitdelete deletion" onclick="if ( confirm('<?php 
                    echo esc_js(__("You are about to delete this entry. 'Cancel' to stop, 'OK' to delete.", 'gravityforms'));
                    ?>
') ) {jQuery('#action').val('delete'); jQuery('#entry_form').submit(); return true;} return false;" href="#"><?php 
                    esc_html_e('Delete Permanently', 'gravityforms');
                    ?>
</a>
									<?php 
                }
                break;
            default:
                if (GFCommon::current_user_can_any('gravityforms_delete_entries')) {
                    ?>
										<a class="submitdelete deletion" onclick="jQuery('#action').val('trash'); jQuery('#entry_form').submit()" href="#"><?php 
                    esc_html_e('Move to Trash', 'gravityforms');
                    ?>
</a>
										<?php 
                    echo GFCommon::spam_enabled($form['id']) ? '|' : '';
                }
                if (GFCommon::spam_enabled($form['id'])) {
                    ?>
										<a class="submitdelete deletion" onclick="jQuery('#action').val('spam'); jQuery('#entry_form').submit()" href="#"><?php 
                    esc_html_e('Mark as Spam', 'gravityforms');
                    ?>
</a>
									<?php 
                }
        }
        ?>
						</div>
						<div id="publishing-action">
							<?php 
        if (GFCommon::current_user_can_any('gravityforms_edit_entries') && $lead['status'] != 'trash') {
            $button_text = $mode == 'view' ? __('Edit', 'gravityforms') : __('Update', 'gravityforms');
            $disabled = $mode == 'view' ? '' : ' disabled="disabled" ';
            $update_button_id = $mode == 'view' ? 'gform_edit_button' : 'gform_update_button';
            $button_click = $mode == 'view' ? "jQuery('#screen_mode').val('edit');" : "jQuery('#action').val('update'); jQuery('#screen_mode').val('view');";
            $update_button = '<input id="' . $update_button_id . '" ' . $disabled . ' class="button button-large button-primary" type="submit" tabindex="4" value="' . esc_attr($button_text) . '" name="save" onclick="' . $button_click . '"/>';
            echo apply_filters('gform_entrydetail_update_button', $update_button);
            if ($mode == 'edit') {
                echo '&nbsp;&nbsp;<input class="button button-large" type="submit" tabindex="5" value="' . esc_attr__('Cancel', 'gravityforms') . '" name="cancel" onclick="jQuery(\'#screen_mode\').val(\'view\');"/>';
            }
        }
        ?>
						</div>
						<div class="clear"></div>
					</div>
				</div>
			</div>
		</div>

		<?php 
        if (!empty($lead['payment_status']) && !apply_filters('gform_enable_entry_info_payment_details', true, $lead)) {
            self::payment_details_box($lead, $form);
        }
        ?>

		<?php 
        do_action('gform_entry_detail_sidebar_middle', $form, $lead);
        ?>

		<?php 
        if (GFCommon::current_user_can_any('gravityforms_edit_entry_notes')) {
            ?>
			<!-- start notifications -->
			<div class="postbox" id="notifications_container">
				<h3 class="hndle" style="cursor:default;">
					<span><?php 
            esc_html_e('Notifications', 'gravityforms');
            ?>
</span>
				</h3>

				<div class="inside">
					<div class="message" style="display:none;padding:10px;"></div>
					<div>
						<?php 
            $notifications = GFCommon::get_notifications('resend_notifications', $form);
            if (!is_array($notifications) || count($form['notifications']) <= 0) {
                ?>
							<p class="description"><?php 
                esc_html_e('You cannot resend notifications for this entry because this form does not currently have any notifications configured.', 'gravityforms');
                ?>
</p>

							<a href="<?php 
                echo admin_url("admin.php?page=gf_edit_forms&view=settings&subview=notification&id={$form_id}");
                ?>
" class="button"><?php 
                esc_html_e('Configure Notifications', 'gravityforms');
                ?>
</a>
						<?php 
            } else {
                foreach ($notifications as $notification) {
                    ?>
								<input type="checkbox" class="gform_notifications" value="<?php 
                    echo esc_attr($notification['id']);
                    ?>
" id="notification_<?php 
                    echo esc_attr($notification['id']);
                    ?>
" onclick="toggleNotificationOverride();" />
								<label for="notification_<?php 
                    echo esc_attr($notification['id']);
                    ?>
"><?php 
                    echo esc_html($notification['name']);
                    ?>
</label>
								<br /><br />
							<?php 
                }
                ?>

							<div id="notifications_override_settings" style="display:none;">

								<p class="description" style="padding-top:0; margin-top:0; width:99%;">You may override the default notification settings
									by entering a comma delimited list of emails to which the selected notifications should be sent.</p>
								<label for="notification_override_email"><?php 
                esc_html_e('Send To', 'gravityforms');
                ?>
 <?php 
                gform_tooltip('notification_override_email');
                ?>
</label><br />
								<input type="text" name="notification_override_email" id="notification_override_email" style="width:99%;" />
								<br /><br />

							</div>

							<input type="button" name="notification_resend" value="<?php 
                esc_attr_e('Resend Notifications', 'gravityforms');
                ?>
" class="button" style="" onclick="ResendNotifications();" />
							<span id="please_wait_container" style="display:none; margin-left: 5px;">
								<i class='gficon-gravityforms-spinner-icon gficon-spin'></i> <?php 
                esc_html_e('Resending...', 'gravityforms');
                ?>
                            </span>
						<?php 
            }
            ?>

					</div>
				</div>
			</div>
			<!-- / end notifications -->
		<?php 
        }
        ?>

		<!-- begin print button -->
		<div class="detail-view-print">
			<a href="javascript:;" onclick="var notes_qs = jQuery('#gform_print_notes').is(':checked') ? '&notes=1' : ''; var url='<?php 
        echo trailingslashit(site_url());
        ?>
?gf_page=print-entry&fid=<?php 
        echo absint($form['id']);
        ?>
&lid=<?php 
        echo absint($lead['id']);
        ?>
' + notes_qs; window.open (url,'printwindow');" class="button"><?php 
        esc_html_e('Print', 'gravityforms');
        ?>
</a>
			<?php 
        if (GFCommon::current_user_can_any('gravityforms_view_entry_notes')) {
            ?>
				<input type="checkbox" name="print_notes" value="print_notes" checked="checked" id="gform_print_notes" />
				<label for="print_notes"><?php 
            esc_html_e('include notes', 'gravityforms');
            ?>
</label>
			<?php 
        }
        ?>
		</div>
		<!-- end print button -->
		<?php 
        do_action('gform_entry_detail_sidebar_after', $form, $lead);
        ?>
		</div>

		<div id="post-body" class="has-sidebar">
			<div id="post-body-content" class="has-sidebar-content">
				<?php 
        do_action('gform_entry_detail_content_before', $form, $lead);
        if ($mode == 'view') {
            self::lead_detail_grid($form, $lead, true);
        } else {
            self::lead_detail_edit($form, $lead);
        }
        do_action('gform_entry_detail', $form, $lead);
        if (GFCommon::current_user_can_any('gravityforms_view_entry_notes')) {
            ?>
					<div class="postbox">
						<h3>
							<label for="name"><?php 
            esc_html_e('Notes', 'gravityforms');
            ?>
</label>
						</h3>

						<form method="post">
							<?php 
            wp_nonce_field('gforms_update_note', 'gforms_update_note');
            ?>
							<div class="inside">
								<?php 
            $notes = RGFormsModel::get_lead_notes($lead['id']);
            //getting email values
            $email_fields = GFCommon::get_email_fields($form);
            $emails = array();
            foreach ($email_fields as $email_field) {
                if (!empty($lead[$email_field->id])) {
                    $emails[] = $lead[$email_field->id];
                }
            }
            //displaying notes grid
            $subject = '';
            self::notes_grid($notes, true, $emails, $subject);
            ?>
							</div>
						</form>
					</div>
				<?php 
        }
        do_action('gform_entry_detail_content_after', $form, $lead);
        ?>
			</div>
		</div>
		</div>
		</div>
		</form>
		<?php 
        if (rgpost('action') == 'update') {
            ?>
			<div class="updated fade" style="padding:6px;">
				<?php 
            esc_html_e('Entry Updated.', 'gravityforms');
            ?>
			</div>
		<?php 
        }
    }
Ejemplo n.º 30
0
 public static function get_field_input($field, $value = "", $lead_id = 0, $form_id = 0)
 {
     $id = $field["id"];
     $field_id = IS_ADMIN || $form_id == 0 ? "input_{$id}" : "input_" . $form_id . "_{$id}";
     $form_id = IS_ADMIN && empty($form_id) ? $_GET["id"] : $form_id;
     $size = $field["size"];
     $disabled_text = IS_ADMIN && RG_CURRENT_VIEW != "entry" ? "disabled='disabled'" : "";
     $class_suffix = RG_CURRENT_VIEW == "entry" ? "_admin" : "";
     $class = $size . $class_suffix;
     $currency = "";
     if (RG_CURRENT_VIEW == "entry") {
         $lead = RGFormsModel::get_lead($lead_id);
         $post_id = $lead["post_id"];
         $post_link = "";
         if (is_numeric($post_id) && self::is_post_field($field)) {
             $post_link = "You can <a href='post.php?action=edit&post={$post_id}'>edit this post</a> from the post page.";
         }
         $currency = $lead["currency"];
     }
     $field_input = apply_filters("gform_field_input", "", $field, $value, $lead_id, $form_id);
     if ($field_input) {
         return $field_input;
     }
     //product fields are not editable
     if (RG_CURRENT_VIEW == "entry" && self::is_product_field($field["type"])) {
         return "<div class='ginput_container'>" . _e("Product fields are not editable", "gravityforms") . "</div>";
     } else {
         if (RG_CURRENT_VIEW == "entry" && $field["type"] == "donation") {
             return "<div class='ginput_container'>" . _e("Donations are not editable", "gravityforms") . "</div>";
         }
     }
     $max_length = "";
     $html5_attributes = "";
     switch (RGFormsModel::get_input_type($field)) {
         case "total":
             if (RG_CURRENT_VIEW == "entry") {
                 return "<div class='ginput_container'><input type='text' name='input_{$id}' value='{$value}' /></div>";
             } else {
                 return "<div class='ginput_container'><span class='ginput_total ginput_total_{$form_id}'>" . self::to_money("0") . "</span><input type='hidden' name='input_{$id}' id='{$field_id}' class='gform_hidden'/></div>";
             }
             break;
         case "singleproduct":
             $product_name = !is_array($value) || empty($value[$field["id"] . ".1"]) ? esc_attr($field["label"]) : esc_attr($value[$field["id"] . ".1"]);
             $price = !is_array($value) || empty($value[$field["id"] . ".2"]) ? $field["basePrice"] : esc_attr($value[$field["id"] . ".2"]);
             $quantity = is_array($value) ? esc_attr($value[$field["id"] . ".3"]) : "";
             if (empty($price)) {
                 $price = 0;
             }
             $form = RGFormsModel::get_form_meta($form_id);
             $has_quantity = sizeof(GFCommon::get_product_fields_by_type($form, array("quantity"), $field["id"])) > 0;
             if ($has_quantity) {
                 $field["disableQuantity"] = true;
             }
             $quantity_field = "";
             if (IS_ADMIN) {
                 $style = $field["disableQuantity"] ? "style='display:none;'" : "";
                 $quantity_field = " <span class='ginput_quantity_label' {$style}>" . __("Quantity:", "gravityformspaypal") . "</span> <input type='text' name='input_{$id}.3' value='{$quantity}' id='ginput_quantity_{$form_id}_{$field["id"]}' class='ginput_quantity' size='10' />";
             } else {
                 if (!$field["disableQuantity"]) {
                     $tabindex = self::get_tabindex();
                     $quantity_field .= " <span class='ginput_quantity_label'>" . __("Quantity:", "gravityformspaypal") . "</span> <input type='text' name='input_{$id}.3' value='{$quantity}' id='ginput_quantity_{$form_id}_{$field["id"]}' class='ginput_quantity' size='10' {$tabindex}/>";
                 } else {
                     if (!is_numeric($quantity)) {
                         $quantity = 1;
                     }
                     if (!$has_quantity) {
                         $quantity_field .= "<input type='hidden' name='input_{$id}.3' value='{$quantity}' class='ginput_quantity_{$form_id}_{$field["id"]} gform_hidden' />";
                     }
                 }
             }
             return "<div class='ginput_container'><input type='hidden' name='input_{$id}.1' value='{$product_name}' class='gform_hidden' /><span class='ginput_product_price_label'>" . __("Price:", "gravityformspaypal") . "</span> <span class='ginput_product_price' id='{$field_id}'>" . GFCommon::to_money($price, $currency) . "</span><input type='hidden' name='input_{$id}.2' id='ginput_base_price_{$form_id}_{$field["id"]}' class='gform_hidden' value='{$price}'/>{$quantity_field}</div>";
             break;
         case "singleshipping":
             $price = !empty($value) ? $value : $field["basePrice"];
             if (empty($price)) {
                 $price = 0;
             }
             return "<div class='ginput_container'><input type='hidden' name='input_{$id}' value='{$price}' class='gform_hidden'/><span class='ginput_shipping_price' id='{$field_id}'>" . GFCommon::to_money($price, $currency) . "</span></div>";
             break;
         case "website":
             $is_html5 = RGFormsModel::is_html5_enabled();
             $value = empty($value) && !$is_html5 ? "http://" : $value;
             $html_input_type = $is_html5 ? "url" : "text";
             $html5_attributes = $is_html5 ? "placeholder='http://'" : "";
         case "text":
             if (empty($html_input_type)) {
                 $html_input_type = "text";
             }
             if ($field["enablePasswordInput"] && RG_CURRENT_VIEW != "entry") {
                 $html_input_type = "password";
             }
             if (is_numeric($field["maxLength"])) {
                 $max_length = "maxlength='{$field["maxLength"]}'";
             }
             if (!empty($post_link)) {
                 return $post_link;
             }
             $tabindex = self::get_tabindex();
             return sprintf("<div class='ginput_container'><input name='input_%d' id='%s' type='%s' value='%s' class='%s' {$max_length} {$tabindex} {$html5_attributes} %s/></div>", $id, $field_id, $html_input_type, esc_attr($value), esc_attr($class), $disabled_text);
             break;
         case "email":
             if (!empty($post_link)) {
                 return $post_link;
             }
             $html_input_type = RGFormsModel::is_html5_enabled() ? "email" : "text";
             if (IS_ADMIN && RG_CURRENT_VIEW != "entry") {
                 $single_style = $field["emailConfirmEnabled"] ? "style='display:none;'" : "";
                 $confirm_style = $field["emailConfirmEnabled"] ? "" : "style='display:none;'";
                 return "<div class='ginput_container ginput_single_email' {$single_style}><input name='input_{$id}' type='{$html_input_type}' class='" . esc_attr($class) . "' disabled='disabled' /></div><div class='ginput_complex ginput_container ginput_confirm_email' {$confirm_style} id='{$field_id}_container'><span id='{$field_id}_1_container' class='ginput_left'><input type='text' name='input_{$id}' id='{$field_id}' disabled='disabled' /><label for='{$field_id}'>" . apply_filters("gform_email_{$form_id}", apply_filters("gform_email", __("Enter Email", "gravityforms"), $form_id), $form_id) . "</label></span><span id='{$field_id}_2_container' class='ginput_right'><input type='text' name='input_{$id}_2' id='{$field_id}_2' disabled='disabled' /><label for='{$field_id}_2'>" . apply_filters("gform_email_confirm_{$form_id}", apply_filters("gform_email_confirm", __("Confirm Email", "gravityforms"), $form_id), $form_id) . "</label></span></div>";
             } else {
                 if ($field["emailConfirmEnabled"] && RG_CURRENT_VIEW != "entry") {
                     $first_tabindex = self::get_tabindex();
                     $last_tabindex = self::get_tabindex();
                     return "<div class='ginput_complex ginput_container' id='{$field_id}_container'><span id='{$field_id}_1_container' class='ginput_left'><input type='{$html_input_type}' name='input_{$id}' id='{$field_id}' value='" . esc_attr($value) . "' {$first_tabindex} {$disabled_text}/><label for='{$field_id}'>" . apply_filters("gform_email_{$form_id}", apply_filters("gform_email", __("Enter Email", "gravityforms"), $form_id), $form_id) . "</label></span><span id='{$field_id}_2_container' class='ginput_right'><input type='{$html_input_type}' name='input_{$id}_2' id='{$field_id}_2' value='{$_POST["input_" . $id . "_2"]}' {$last_tabindex} {$disabled_text}/><label for='{$field_id}_2'>" . apply_filters("gform_email_confirm_{$form_id}", apply_filters("gform_email_confirm", __("Confirm Email", "gravityforms"), $form_id), $form_id) . "</label></span></div>";
                 } else {
                     $tabindex = self::get_tabindex();
                     return sprintf("<div class='ginput_container'><input name='input_%d' id='%s' type='%s' value='%s' class='%s' {$max_length} {$tabindex} {$html5_attributes} %s/></div>", $id, $field_id, $html_input_type, esc_attr($value), esc_attr($class), $disabled_text);
                 }
             }
             break;
         case "honeypot":
             return "<div class='ginput_container'><input name='input_{$id}' id='{$field_id}' type='text' value=''/></div>";
             break;
         case "hidden":
             if (!empty($post_link)) {
                 return $post_link;
             }
             $field_type = IS_ADMIN ? "text" : "hidden";
             $class_attribute = IS_ADMIN ? "" : "class='gform_hidden'";
             return sprintf("<input name='input_%d' id='%s' type='{$field_type}' {$class_attribute} value='%s' %s/>", $id, $field_id, esc_attr($value), $disabled_text);
             break;
         case "html":
             $content = IS_ADMIN ? "<img class='gfield_html_block' src='" . self::get_base_url() . "/images/gf_html_admin_placeholder.jpg' alt='HTML Block'/>" : $field["content"];
             return do_shortcode($content);
             break;
         case "adminonly_hidden":
             if (!is_array($field["inputs"])) {
                 return sprintf("<input name='input_%d' id='%s' class='gform_hidden' type='hidden' value='%s'/>", $id, $field_id, esc_attr($value));
             }
             $fields = "";
             foreach ($field["inputs"] as $input) {
                 $fields .= sprintf("<input name='input_%s' class='gform_hidden' type='hidden' value='%s'/>", $input["id"], esc_attr($value[$input["id"]]));
             }
             return $fields;
             break;
         case "number":
             if (!empty($post_link)) {
                 return $post_link;
             }
             $instruction = "";
             if (!IS_ADMIN) {
                 $min = $field["rangeMin"];
                 $max = $field["rangeMax"];
                 $validation_class = $field["failed_validation"] ? "validation_message" : "";
                 $message = self::get_range_message($field);
                 if (!$field["failed_validation"] && !empty($message) && empty($field["errorMessage"])) {
                     $instruction = "<div class='instruction {$validation_class}'>" . $message . "</div>";
                 }
             }
             $html_input_type = RGFormsModel::is_html5_enabled() ? "number" : "text";
             $tabindex = self::get_tabindex();
             return sprintf("<div class='ginput_container'><input name='input_%d' id='%s' type='{$html_input_type}' value='%s' class='%s' {$tabindex} %s/>%s</div>", $id, $field_id, esc_attr($value), esc_attr($class), $disabled_text, $instruction);
         case "donation":
             $tabindex = self::get_tabindex();
             return sprintf("<div class='ginput_container'><input name='input_%d' id='%s' type='text' value='%s' class='%s' {$tabindex} %s/></div>", $id, $field_id, esc_attr($value), esc_attr($class), $disabled_text);
         case "price":
             $tabindex = self::get_tabindex();
             return sprintf("<div class='ginput_container'><input name='input_%d' id='%s' type='text' value='%s' class='%s ginput_amount' {$tabindex} %s/></div>", $id, $field_id, esc_attr($value), esc_attr($class), $disabled_text);
         case "phone":
             if (!empty($post_link)) {
                 return $post_link;
             }
             $instruction = $field["phoneFormat"] == "standard" ? __("Phone format:", "gravityforms") . " (###)###-####" : "";
             $instruction_div = $field["failed_validation"] ? "<div class='instruction validation_message'>{$instruction}</div>" : "";
             $html_input_type = RGFormsModel::is_html5_enabled() ? "tel" : "text";
             $tabindex = self::get_tabindex();
             return sprintf("<div class='ginput_container'><input name='input_%d' id='%s' type='{$html_input_type}' value='%s' class='%s' {$tabindex} %s/>{$instruction_div}</div>", $id, $field_id, esc_attr($value), esc_attr($class), $disabled_text);
         case "textarea":
             if (!IS_ADMIN && !empty($field["maxLength"]) && is_numeric($field["maxLength"])) {
                 $max_chars = self::get_counter_script($form_id, $field_id, $field["maxLength"]);
             }
             $tabindex = self::get_tabindex();
             return sprintf("<div class='ginput_container'><textarea name='input_%d' id='%s' class='textarea %s' {$tabindex} %s rows='10' cols='50'>%s</textarea></div>{$max_chars}", $id, $field_id, esc_attr($class), $disabled_text, esc_html($value));
         case "post_title":
         case "post_tags":
         case "post_custom_field":
             $tabindex = self::get_tabindex();
             return !empty($post_link) ? $post_link : sprintf("<div class='ginput_container'><input name='input_%d' id='%s' type='text' value='%s' class='%s' {$tabindex} %s/></div>", $id, $field_id, esc_attr($value), esc_attr($class), $disabled_text);
             break;
         case "post_content":
         case "post_excerpt":
             if (!IS_ADMIN && !empty($field["maxLength"]) && is_numeric($field["maxLength"])) {
                 $max_chars = self::get_counter_script($form_id, $field_id, $field["maxLength"]);
             }
             $tabindex = self::get_tabindex();
             return !empty($post_link) ? $post_link : sprintf("<div class='ginput_container'><textarea name='input_%d' id='%s' class='textarea %s' {$tabindex} %s rows='10' cols='50'>%s</textarea></div>{$max_chars}", $id, $field_id, esc_attr($class), $disabled_text, esc_html($value));
             break;
         case "post_category":
             if (!empty($post_link)) {
                 return $post_link;
             }
             if ($field["displayAllCategories"] && !IS_ADMIN) {
                 $default_category = $field["categoryInitialItemEnabled"] ? "-1" : get_option('default_category');
                 $selected = empty($value) ? $default_category : $value;
                 $args = array('echo' => 0, 'selected' => $selected, "class" => esc_attr($class) . " gfield_select", 'hide_empty' => 0, 'name' => "input_{$id}", 'orderby' => 'name', 'hierarchical' => true);
                 if (self::$tab_index > 0) {
                     $args["tab_index"] = self::$tab_index++;
                 }
                 if ($field["categoryInitialItemEnabled"]) {
                     $args["show_option_none"] = empty($field["categoryInitialItem"]) ? " " : $field["categoryInitialItem"];
                 }
                 return "<div class='ginput_container'>" . wp_dropdown_categories($args) . "</div>";
             } else {
                 $tabindex = self::get_tabindex();
                 $choices = self::get_select_choices($field, $value);
                 //Adding first option
                 if ($field["categoryInitialItemEnabled"]) {
                     $selected = empty($value) ? "selected='selected'" : "";
                     $choices = "<option value='-1' {$selected}>{$field["categoryInitialItem"]}</option>" . $choices;
                 }
                 return sprintf("<div class='ginput_container'><select name='input_%d' id='%s' class='%s gfield_select' {$tabindex} %s>%s</select></div>", $id, $field_id, esc_attr($class), $disabled_text, $choices);
             }
             break;
         case "post_image":
             if (!empty($post_link)) {
                 return $post_link;
             }
             $title = esc_attr($value[$field["id"] . ".1"]);
             $caption = esc_attr($value[$field["id"] . ".4"]);
             $description = esc_attr($value[$field["id"] . ".7"]);
             //hidding meta fields for admin
             $hidden_style = "style='display:none;'";
             $title_style = !$field["displayTitle"] && IS_ADMIN ? $hidden_style : "";
             $caption_style = !$field["displayCaption"] && IS_ADMIN ? $hidden_style : "";
             $description_style = !$field["displayDescription"] && IS_ADMIN ? $hidden_style : "";
             $file_label_style = IS_ADMIN && !($field["displayTitle"] || $field["displayCaption"] || $field["displayDescription"]) ? $hidden_style : "";
             $hidden_class = "";
             $file_info = RGFormsModel::get_temp_filename($form_id, "input_{$id}");
             if ($file_info) {
                 $hidden_class = " gform_hidden";
                 $file_label_style = $hidden_style;
                 $preview = "<span class='ginput_preview'><strong>{$file_info["uploaded_filename"]}</strong> | <a href='javascript:;' onclick='gformDeleteUploadedFile({$form_id}, {$id});'>" . __("delete", "gravityforms") . "</a></span>";
             }
             //in admin, render all meta fields to allow for immediate feedback, but hide the ones not selected
             $file_label = IS_ADMIN || $field["displayTitle"] || $field["displayCaption"] || $field["displayDescription"] ? "<label for='{$field_id}' class='ginput_post_image_file' {$file_label_style}>" . apply_filters("gform_postimage_file_{$form_id}", apply_filters("gform_postimage_file", __("File", "gravityforms"), $form_id), $form_id) . "</label>" : "";
             $tabindex = self::get_tabindex();
             $upload = sprintf("<span class='ginput_full{$class_suffix}'>{$preview}<input name='input_%d' id='%s' type='file' value='%s' class='%s' {$tabindex} %s/>{$file_label}</span>", $id, $field_id, esc_attr($value), esc_attr($class . $hidden_class), $disabled_text);
             $tabindex = self::get_tabindex();
             $title_field = $field["displayTitle"] || IS_ADMIN ? sprintf("<span class='ginput_full{$class_suffix} ginput_post_image_title' {$title_style}><input type='text' name='input_%d.1' id='%s.1' value='%s' {$tabindex} %s/><label for='%s.1'>" . apply_filters("gform_postimage_title_{$form_id}", apply_filters("gform_postimage_title", __("Title", "gravityforms"), $form_id), $form_id) . "</label></span>", $id, $field_id, $title, $disabled_text, $field_id) : "";
             $tabindex = self::get_tabindex();
             $caption_field = $field["displayCaption"] || IS_ADMIN ? sprintf("<span class='ginput_full{$class_suffix} ginput_post_image_caption' {$caption_style}><input type='text' name='input_%d.4' id='%s.4' value='%s' {$tabindex} %s/><label for='%s.4'>" . apply_filters("gform_postimage_caption_{$form_id}", apply_filters("gform_postimage_caption", __("Caption", "gravityforms"), $form_id), $form_id) . "</label></span>", $id, $field_id, $caption, $disabled_text, $field_id) : "";
             $tabindex = self::get_tabindex();
             $description_field = $field["displayDescription"] || IS_ADMIN ? sprintf("<span class='ginput_full{$class_suffix} ginput_post_image_description' {$description_style}><input type='text' name='input_%d.7' id='%s.7' value='%s' {$tabindex} %s/><label for='%s.7'>" . apply_filters("gform_postimage_description_{$form_id}", apply_filters("gform_postimage_description", __("Description", "gravityforms"), $form_id), $form_id) . "</label></span>", $id, $field_id, $description, $disabled_text, $field_id) : "";
             return "<div class='ginput_complex{$class_suffix} ginput_container'>" . $upload . $title_field . $caption_field . $description_field . "</div>";
             break;
         case "select":
             if (!empty($post_link)) {
                 return $post_link;
             }
             $logic_event = empty($field["conditionalLogicFields"]) || IS_ADMIN ? "" : "onchange='gf_apply_rules(" . $field["formId"] . "," . GFCommon::json_encode($field["conditionalLogicFields"]) . ");'";
             $css_class = trim(esc_attr($class) . " gfield_select");
             $tabindex = self::get_tabindex();
             return sprintf("<div class='ginput_container'><select name='input_%d' id='%s' {$logic_event} class='%s' {$tabindex} %s>%s</select></div>", $id, $field_id, $css_class, $disabled_text, self::get_select_choices($field, $value));
         case "checkbox":
             return sprintf("<div class='ginput_container'><ul class='gfield_checkbox' id='%s'>%s</ul></div>", $field_id, self::get_checkbox_choices($field, $value, $disabled_text));
         case "radio":
             if (!empty($post_link)) {
                 return $post_link;
             }
             return sprintf("<div class='ginput_container'><ul class='gfield_radio' id='%s'>%s</ul></div>", $field_id, self::get_radio_choices($field, $value, $disabled_text));
         case "password":
             $first_tabindex = self::get_tabindex();
             $last_tabindex = self::get_tabindex();
             $strength_style = !$field["passwordStrengthEnabled"] ? "style='display:none;'" : "";
             $strength = $field["passwordStrengthEnabled"] || IS_ADMIN ? "<div id='{$field_id}_strength_indicator' class='gfield_password_strength' {$strength_style}>" . __("Strength indicator", "gravityforms") . "</div><input type='hidden' class='gform_hidden' id='{$field_id}_strength' name='input_{$id}_strength' />" : "";
             $action = "gformShowPasswordStrength(\"{$field_id}\");";
             $onchange = $field["passwordStrengthEnabled"] ? "onchange='{$action}'" : "";
             $onkeyup = $field["passwordStrengthEnabled"] ? "onkeyup='{$action}'" : "";
             $script = $field["passwordStrengthEnabled"] && !IS_ADMIN ? "<script type=\"text/javascript\">if(window[\"gformShowPasswordStrength\"]) jQuery(document).ready(function(){{$action}});</script>" : "";
             $pass = RGForms::post("input_" . $id . "_2");
             return sprintf("<div class='ginput_complex{$class_suffix} ginput_container' id='{$field_id}_container'><span id='" . $field_id . "_1_container' class='ginput_left'><input type='password' name='input_%d' id='%s' {$onkeyup} {$onchange} value='%s' {$first_tabindex} %s/><label for='%s'>" . apply_filters("gform_password_{$form_id}", apply_filters("gform_password", __("Enter Password", "gravityforms"), $form_id), $form_id) . "</label></span><span id='" . $field_id . "_2_container' class='ginput_right'><input type='password' name='input_%d_2' id='%s_2' {$onkeyup} {$onchange} value='%s' {$last_tabindex} %s/><label for='%s_2'>" . apply_filters("gform_password_confirm_{$form_id}", apply_filters("gform_password_confirm", __("Confirm Password", "gravityforms"), $form_id), $form_id) . "</label></span>{$script}</div>{$strength}", $id, $field_id, $value, $disabled_text, $field_id, $id, $field_id, $pass, $disabled_text, $field_id);
         case "name":
             $prefix = "";
             $first = "";
             $last = "";
             $suffix = "";
             if (is_array($value)) {
                 $prefix = esc_attr(RGForms::get($field["id"] . ".2", $value));
                 $first = esc_attr(RGForms::get($field["id"] . ".3", $value));
                 $last = esc_attr(RGForms::get($field["id"] . ".6", $value));
                 $suffix = esc_attr(RGForms::get($field["id"] . ".8", $value));
             }
             switch ($field["nameFormat"]) {
                 case "extended":
                     $prefix_tabindex = self::get_tabindex();
                     $first_tabindex = self::get_tabindex();
                     $last_tabindex = self::get_tabindex();
                     $suffix_tabindex = self::get_tabindex();
                     return sprintf("<div class='ginput_complex{$class_suffix} ginput_container' id='{$field_id}'><span id='" . $field_id . "_2_container' class='name_prefix'><input type='text' name='input_%d.2' id='%s.2' value='%s' {$prefix_tabindex} %s/><label for='%s.2'>" . apply_filters("gform_name_prefix_{$form_id}", apply_filters("gform_name_prefix", __("Prefix", "gravityforms"), $form_id), $form_id) . "</label></span><span id='" . $field_id . "_3_container' class='name_first'><input type='text' name='input_%d.3' id='%s.3' value='%s' {$first_tabindex} %s/><label for='%s.3'>" . apply_filters("gform_name_first_{$form_id}", apply_filters("gform_name_first", __("First", "gravityforms"), $form_id), $form_id) . "</label></span><span id='" . $field_id . "_6_container' class='name_last'><input type='text' name='input_%d.6' id='%s.6' value='%s' {$last_tabindex} %s/><label for='%s.6'>" . apply_filters("gform_name_last_{$form_id}", apply_filters("gform_name_last", __("Last", "gravityforms"), $form_id), $form_id) . "</label></span><span id='" . $field_id . "_8_container' class='name_suffix'><input type='text' name='input_%d.8' id='%s.8' value='%s' {$suffix_tabindex} %s/><label for='%s.8'>" . apply_filters("gform_name_suffix_{$form_id}", apply_filters("gform_name_suffix", __("Suffix", "gravityforms"), $form_id), $form_id) . "</label></span></div>", $id, $field_id, $prefix, $disabled_text, $field_id, $id, $field_id, $first, $disabled_text, $field_id, $id, $field_id, $last, $disabled_text, $field_id, $id, $field_id, $suffix, $disabled_text, $field_id);
                 case "simple":
                     $tabindex = self::get_tabindex();
                     return sprintf("<div class='ginput_container'><input name='input_%d' id='%s' type='text' value='%s' class='%s' {$tabindex} %s/></div>", $id, $field_id, esc_attr($value), esc_attr($class), $disabled_text);
                 default:
                     $first_tabindex = self::get_tabindex();
                     $last_tabindex = self::get_tabindex();
                     return sprintf("<div class='ginput_complex{$class_suffix} ginput_container' id='{$field_id}'><span id='" . $field_id . "_3_container' class='ginput_left'><input type='text' name='input_%d.3' id='%s.3' value='%s' {$first_tabindex} %s/><label for='%s.3'>" . apply_filters("gform_name_first_{$form_id}", apply_filters("gform_name_first", __("First", "gravityforms"), $form_id), $form_id) . "</label></span><span id='" . $field_id . "_6_container' class='ginput_right'><input type='text' name='input_%d.6' id='%s.6' value='%s' {$last_tabindex} %s/><label for='%s.6'>" . apply_filters("gform_name_last_{$form_id}", apply_filters("gform_name_last", __("Last", "gravityforms"), $form_id), $form_id) . "</label></span></div>", $id, $field_id, $first, $disabled_text, $field_id, $id, $field_id, $last, $disabled_text, $field_id);
             }
         case "address":
             $street_value = "";
             $street2_value = "";
             $city_value = "";
             $state_value = "";
             $zip_value = "";
             $country_value = "";
             if (is_array($value)) {
                 $street_value = esc_attr($value[$field["id"] . ".1"]);
                 $street2_value = esc_attr($value[$field["id"] . ".2"]);
                 $city_value = esc_attr($value[$field["id"] . ".3"]);
                 $state_value = esc_attr($value[$field["id"] . ".4"]);
                 $zip_value = esc_attr($value[$field["id"] . ".5"]);
                 $country_value = esc_attr($value[$field["id"] . ".6"]);
             }
             $address_types = self::get_address_types($form_id);
             $addr_type = empty($field["addressType"]) ? "international" : $field["addressType"];
             $address_type = $address_types[$addr_type];
             $state_label = empty($address_type["state_label"]) ? __("State", "gravityforms") : $address_type["state_label"];
             $zip_label = empty($address_type["zip_label"]) ? __("Zip Code", "gravityforms") : $address_type["zip_label"];
             $hide_country = !empty($address_type["country"]) || $field["hideCountry"];
             if (empty($country_value)) {
                 $country_value = $field["defaultCountry"];
             }
             if (empty($state_value)) {
                 $state_value = $field["defaultState"];
             }
             $country_list = self::get_country_dropdown($country_value);
             //address field
             $tabindex = self::get_tabindex();
             $street_address = sprintf("<span class='ginput_full{$class_suffix}' id='" . $field_id . "_1_container'><input type='text' name='input_%d.1' id='%s_1' value='%s' {$tabindex} %s/><label for='%s_1' id='" . $field_id . "_1_label'>" . apply_filters("gform_address_street_{$form_id}", apply_filters("gform_address_street", __("Street Address", "gravityforms"), $form_id), $form_id) . "</label></span>", $id, $field_id, $street_value, $disabled_text, $field_id);
             //address line 2 field
             $style = IS_ADMIN && $field["hideAddress2"] ? "style='display:none;'" : "";
             if (IS_ADMIN || !$field["hideAddress2"]) {
                 $tabindex = self::get_tabindex();
                 $street_address2 = sprintf("<span class='ginput_full{$class_suffix}' id='" . $field_id . "_2_container' {$style}><input type='text' name='input_%d.2' id='%s_2' value='%s' {$tabindex} %s/><label for='%s_2' id='" . $field_id . "_2_label'>" . apply_filters("gform_address_street2_{$form_id}", apply_filters("gform_address_street2", __("Address Line 2", "gravityforms"), $form_id), $form_id) . "</label></span>", $id, $field_id, $street2_value, $disabled_text, $field_id);
             }
             //city field
             $tabindex = self::get_tabindex();
             $city = sprintf("<span class='ginput_left{$class_suffix}' id='" . $field_id . "_3_container'><input type='text' name='input_%d.3' id='%s_3' value='%s' {$tabindex} %s/><label for='%s_3' id='{$field_id}.3_label'>" . apply_filters("gform_address_city_{$form_id}", apply_filters("gform_address_city", __("City", "gravityforms"), $form_id), $form_id) . "</label></span>", $id, $field_id, $city_value, $disabled_text, $field_id);
             //state field
             $style = IS_ADMIN && $field["hideState"] ? "style='display:none;'" : "";
             if (IS_ADMIN || !$field["hideState"]) {
                 $state_field = self::get_state_field($field, $id, $field_id, $state_value, $disabled_text, $form_id);
                 $state = sprintf("<span class='ginput_right{$class_suffix}' id='" . $field_id . "_4_container' {$style}>{$state_field}<label for='%s.4' id='" . $field_id . "_4_label'>" . apply_filters("gform_address_state_{$form_id}", apply_filters("gform_address_state", $state_label, $form_id), $form_id) . "</label></span>", $field_id);
             } else {
                 $state = sprintf("<input type='hidden' class='gform_hidden' name='input_%d.4' id='%s_4' value='%s'/>", $id, $field_id, $state_value);
             }
             //zip field
             $tabindex = self::get_tabindex();
             $zip = sprintf("<span class='ginput_left{$class_suffix}' id='" . $field_id . "_5_container'><input type='text' name='input_%d.5' id='%s_5' value='%s' {$tabindex} %s/><label for='%s_5' id='" . $field_id . "_5_label'>" . apply_filters("gform_address_zip_{$form_id}", apply_filters("gform_address_zip", $zip_label, $form_id), $form_id) . "</label></span>", $id, $field_id, $zip_value, $disabled_text, $field_id);
             if (IS_ADMIN || !$hide_country) {
                 $style = $hide_country ? "style='display:none;'" : "";
                 $tabindex = self::get_tabindex();
                 $country = sprintf("<span class='ginput_right{$class_suffix}' id='" . $field_id . "_6_container' {$style}><select name='input_%d.6' id='%s_6' {$tabindex} %s>%s</select><label for='%s_6' id='" . $field_id . "_6_label'>" . apply_filters("gform_address_country_{$form_id}", apply_filters("gform_address_country", __("Country", "gravityforms"), $form_id), $form_id) . "</label></span>", $id, $field_id, $disabled_text, $country_list, $field_id);
             } else {
                 $country = sprintf("<input type='hidden' class='gform_hidden' name='input_%d.6' id='%s_6' value='%s'/>", $id, $field_id, $country_value);
             }
             return "<div class='ginput_complex{$class_suffix} ginput_container' id='{$field_id}'>" . $street_address . $street_address2 . $city . $state . $zip . $country . "</div>";
         case "date":
             if (!empty($post_link)) {
                 return $post_link;
             }
             $format = empty($field["dateFormat"]) ? "mdy" : esc_attr($field["dateFormat"]);
             if (IS_ADMIN && RG_CURRENT_VIEW != "entry") {
                 $datepicker_display = $field["dateType"] == "datefield" ? "none" : "inline";
                 $dropdown_display = $field["dateType"] == "datefield" ? "inline" : "none";
                 $icon_display = $field["calendarIconType"] == "calendar" ? "inline" : "none";
                 $month_field = "<div class='gfield_date_month ginput_date' id='gfield_input_date_month' style='display:{$dropdown_display}'><input name='ginput_month' type='text' disabled='disabled'/><label>" . __("MM", "gravityforms") . "</label></div>";
                 $day_field = "<div class='gfield_date_day ginput_date' id='gfield_input_date_day' style='display:{$dropdown_display}'><input name='ginput_day' type='text' disabled='disabled'/><label>" . __("DD", "gravityforms") . "</label></div>";
                 $year_field = "<div class='gfield_date_year ginput_date' id='gfield_input_date_year' style='display:{$dropdown_display}'><input type='text' name='ginput_year' disabled='disabled'/><label>" . __("YYYY", "gravityforms") . "</label></div>";
                 $field_string = "<div class='ginput_container' id='gfield_input_datepicker' style='display:{$datepicker_display}'><input name='ginput_datepicker' type='text' /><img src='" . GFCommon::get_base_url() . "/images/calendar.png' id='gfield_input_datepicker_icon' style='display:{$icon_display}'/></div>";
                 $field_string .= $field["dateFormat"] == "dmy" ? $day_field . $month_field . $year_field : $month_field . $day_field . $year_field;
                 return $field_string;
             } else {
                 $date_info = GFCommon::parse_date($value, $format);
                 if ($field["dateType"] == "datefield") {
                     if ($format == "mdy") {
                         $tabindex = self::get_tabindex();
                         $field_str = sprintf("<div class='clear-multi'><div class='gfield_date_month ginput_container' id='%s'><input type='text' maxlength='2' name='input_%d[]' id='%s.1' value='%s' {$tabindex} %s/><label for='%s.1'>" . __("MM", "gravityforms") . "</label></div>", $field_id, $id, $field_id, $date_info["month"], $disabled_text, $field_id);
                         $tabindex = self::get_tabindex();
                         $field_str .= sprintf("<div class='gfield_date_day ginput_container' id='%s'><input type='text' maxlength='2' name='input_%d[]' id='%s.2' value='%s' {$tabindex} %s/><label for='%s.2'>" . __("DD", "gravityforms") . "</label></div>", $field_id, $id, $field_id, $date_info["day"], $disabled_text, $field_id);
                     } else {
                         $tabindex = self::get_tabindex();
                         $field_str = sprintf("<div class='clear-multi'><div class='gfield_date_day ginput_container' id='%s'><input type='text' maxlength='2' name='input_%d[]' id='%s.2' value='%s' {$tabindex} %s/><label for='%s.2'>" . __("DD", "gravityforms") . "</label></div>", $field_id, $id, $field_id, $date_info["day"], $disabled_text, $field_id);
                         $tabindex = self::get_tabindex();
                         $field_str .= sprintf("<div class='gfield_date_month ginput_container' id='%s'><input type='text' maxlength='2' name='input_%d[]' id='%s.1' value='%s' {$tabindex} %s/><label for='%s.1'>" . __("MM", "gravityforms") . "</label></div>", $field_id, $id, $field_id, $date_info["month"], $disabled_text, $field_id);
                     }
                     $tabindex = self::get_tabindex();
                     $field_str .= sprintf("<div class='gfield_date_year ginput_container' id='%s'><input type='text' maxlength='4' name='input_%d[]' id='%s.3' value='%s' {$tabindex} %s/><label for='%s.3'>" . __("YYYY", "gravityforms") . "</label></div></div>", $field_id, $id, $field_id, $date_info["year"], $disabled_text, $field_id);
                     return $field_str;
                 } else {
                     $value = GFCommon::date_display($value, $format);
                     $icon_class = $field["calendarIconType"] == "none" ? "datepicker_no_icon" : "datepicker_with_icon";
                     $icon_url = empty($field["calendarIconUrl"]) ? GFCommon::get_base_url() . "/images/calendar.png" : $field["calendarIconUrl"];
                     $tabindex = self::get_tabindex();
                     return sprintf("<div class='ginput_container'><input name='input_%d' id='%s' type='text' value='%s' class='datepicker %s %s %s' {$tabindex} %s/> </div><input type='hidden' id='gforms_calendar_icon_{$field_id}' class='gform_hidden' value='{$icon_url}'/>", $id, $field_id, esc_attr($value), esc_attr($class), $format, $icon_class, $disabled_text);
                 }
             }
         case "time":
             if (!empty($post_link)) {
                 return $post_link;
             }
             if (!is_array($value) && !empty($value)) {
                 preg_match('/^(\\d*):(\\d*) (.*)$/', $value, $matches);
                 $hour = esc_attr($matches[1]);
                 $minute = esc_attr($matches[2]);
                 $am_selected = $matches[3] == "am" ? "selected='selected'" : "";
                 $pm_selected = $matches[3] == "pm" ? "selected='selected'" : "";
             } else {
                 $hour = esc_attr($value[0]);
                 $minute = esc_attr($value[1]);
                 $am_selected = $value[2] == "am" ? "selected='selected'" : "";
                 $pm_selected = $value[2] == "pm" ? "selected='selected'" : "";
             }
             $hour_tabindex = self::get_tabindex();
             $minute_tabindex = self::get_tabindex();
             $ampm_tabindex = self::get_tabindex();
             return sprintf("<div class='clear-multi'><div class='gfield_time_hour ginput_container' id='%s'><input type='text' maxlength='2' name='input_%d[]' id='%s.1' value='%s' {$hour_tabindex} %s/> : <label for='%s.1'>" . __("HH", "gravityforms") . "</label></div><div class='gfield_time_minute ginput_container'><input type='text' maxlength='2' name='input_%d[]' id='%s.2' value='%s' {$minute_tabindex} %s/><label for='%s.2'>" . __("MM", "gravityforms") . "</label></div><div class='gfield_time_ampm ginput_container'><select name='input_%d[]' id='%s.3' {$ampm_tabindex} %s><option value='am' %s>" . __("AM", "gravityforms") . "</option><option value='pm' %s>" . __("PM", "gravityforms") . "</option></select></div></div>", $field_id, $id, $field_id, $hour, $disabled_text, $field_id, $id, $field_id, $minute, $disabled_text, $field_id, $id, $field_id, $disabled_text, $am_selected, $pm_selected);
         case "fileupload":
             $tabindex = self::get_tabindex();
             $upload = sprintf("<input name='input_%d' id='%s' type='file' value='%s' size='20' class='%s' {$tabindex} %s/>", $id, $field_id, esc_attr($value), esc_attr($class), $disabled_text);
             if (IS_ADMIN && !empty($value)) {
                 $value = esc_attr($value);
                 $preview = sprintf("<div id='preview_%d'><a href='%s' target='_blank' alt='%s' title='%s'>%s</a><a href='%s' target='_blank' alt='" . __("Download file", "gravityforms") . "' title='" . __("Download file", "gravityforms") . "'><img src='%s' style='margin-left:10px;'/></a><a href='javascript:void(0);' alt='" . __("Delete file", "gravityforms") . "' title='" . __("Delete file", "gravityforms") . "' onclick='DeleteFile(%d,%d);' ><img src='%s' style='margin-left:10px;'/></a></div>", $id, $value, $value, $value, GFCommon::truncate_url($value), $value, GFCommon::get_base_url() . "/images/download.png", $lead_id, $id, GFCommon::get_base_url() . "/images/delete.png");
                 return $preview . "<div id='upload_{$id}' style='display:none;'>{$upload}</div>";
             } else {
                 $file_info = RGFormsModel::get_temp_filename($form_id, "input_{$id}");
                 if ($file_info && !$field["failed_validation"]) {
                     $preview = "<span class='ginput_preview'><strong>{$file_info["uploaded_filename"]}</strong> | <a href='javascript:;' onclick='gformDeleteUploadedFile({$form_id}, {$id});'>" . __("delete", "gravityforms") . "</a></span>";
                     return "<div class='ginput_container'>" . str_replace(" class='", " class='gform_hidden ", $upload) . " {$preview}</div>";
                 } else {
                     return "<div class='ginput_container'>{$upload}</div>";
                 }
             }
         case "captcha":
             switch ($field["captchaType"]) {
                 case "simple_captcha":
                     $size = empty($field["simpleCaptchaSize"]) ? "medium" : $field["simpleCaptchaSize"];
                     $captcha = self::get_captcha($field);
                     $tagindex = self::get_tabindex();
                     $dimensions = IS_ADMIN ? "" : "width='{$captcha["width"]}' height='{$captcha["height"]}'";
                     return "<div class='gfield_captcha_container'><img class='gfield_captcha' src='{$captcha["url"]}' alt='' {$dimensions} /><div class='gfield_captcha_input_container simple_captcha_{$size}'><input type='text' name='input_{$id}' id='input_{$field_id}' /><input type='hidden' name='input_captcha_prefix_{$id}' value='{$captcha["prefix"]}' /></div></div>";
                     break;
                 case "math":
                     $size = empty($field["simpleCaptchaSize"]) ? "medium" : $field["simpleCaptchaSize"];
                     $captcha_1 = self::get_math_captcha($field, 1);
                     $captcha_2 = self::get_math_captcha($field, 2);
                     $captcha_3 = self::get_math_captcha($field, 3);
                     $tagindex = self::get_tabindex();
                     $dimensions = IS_ADMIN ? "" : "width='{$captcha_1["width"]}' height='{$captcha_1["height"]}'";
                     return "<div class='gfield_captcha_container'><img class='gfield_captcha' src='{$captcha_1["url"]}' alt='' {$dimensions} /><img class='gfield_captcha' src='{$captcha_2["url"]}' alt='' {$dimensions} /><img class='gfield_captcha' src='{$captcha_3["url"]}' alt='' {$dimensions} /><div class='gfield_captcha_input_container math_{$size}'><input type='text' name='input_{$id}' id='input_{$field_id}' /><input type='hidden' name='input_captcha_prefix_{$id}' value='{$captcha_1["prefix"]},{$captcha_2["prefix"]},{$captcha_3["prefix"]}' /></div></div>";
                     break;
                 default:
                     if (!function_exists("recaptcha_get_html")) {
                         require_once GFCommon::get_base_path() . '/recaptchalib.php';
                     }
                     $theme = empty($field["captchaTheme"]) ? "red" : esc_attr($field["captchaTheme"]);
                     $publickey = get_option("rg_gforms_captcha_public_key");
                     $privatekey = get_option("rg_gforms_captcha_private_key");
                     if (IS_ADMIN) {
                         if (empty($publickey) || empty($privatekey)) {
                             return "<div class='captcha_message'>" . __("To use the reCaptcha field you must first do the following:", "gravityforms") . "</div><div class='captcha_message'>1 - <a href='https://admin.recaptcha.net/recaptcha/createsite/?app=php' target='_blank'>" . __(sprintf("Sign up%s for a free reCAPTCHA account", "</a>"), "gravityforms") . "</div><div class='captcha_message'>2 - " . __(sprintf("Enter your reCAPTCHA keys in the %ssettings page%s", "<a href='?page=gf_settings'>", "</a>"), "gravityforms") . "</div>";
                         } else {
                             return "<div class='ginput_container'><img class='gfield_captcha' src='" . GFCommon::get_base_url() . "/images/captcha_{$theme}.jpg' alt='reCAPTCHA' title='reCAPTCHA'/></div>";
                         }
                     } else {
                         $language = empty($field["captchaLanguage"]) ? "en" : esc_attr($field["captchaLanguage"]);
                         $options = "<script type='text/javascript'>var RecaptchaOptions = {theme : '{$theme}', lang : '{$language}'}; if(parseInt('" . self::$tab_index . "') > 0) {RecaptchaOptions.tabindex = " . self::$tab_index++ . ";}</script>";
                         $is_ssl = !empty($_SERVER['HTTPS']);
                         return $options . "<div class='ginput_container' id='{$field_id}'>" . recaptcha_get_html($publickey, null, $is_ssl) . "</div>";
                     }
             }
             break;
     }
 }