Exemple #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 
    }
Exemple #2
0
    public static function meta_box_entry_info($args, $metabox)
    {
        $form = $args['form'];
        $entry = $args['entry'];
        $mode = $args['mode'];
        ?>
		<div id="submitcomment" class="submitbox">
			<div id="minor-publishing" style="padding:10px;">
				<?php 
        esc_html_e('Entry Id', 'gravityforms');
        ?>
: <?php 
        echo absint($entry['id']);
        ?>
<br /><br />
				<?php 
        esc_html_e('Submitted on', 'gravityforms');
        ?>
: <?php 
        echo esc_html(GFCommon::format_date($entry['date_created'], false, 'Y/m/d'));
        ?>
				<br /><br />
				<?php 
        esc_html_e('User IP', 'gravityforms');
        ?>
: <?php 
        echo esc_html($entry['ip']);
        ?>
				<br /><br />
				<?php 
        if (!empty($entry['created_by']) && ($usermeta = get_userdata($entry['created_by']))) {
            ?>
					<?php 
            esc_html_e('User', 'gravityforms');
            ?>
:
					<a href="user-edit.php?user_id=<?php 
            echo absint($entry['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($entry['source_url']);
        ?>
" target="_blank" alt="<?php 
        echo esc_attr($entry['source_url']);
        ?>
" title="<?php 
        echo esc_attr($entry['source_url']);
        ?>
">.../<?php 
        echo esc_html(GFCommon::truncate_url($entry['source_url']));
        ?>
</a>
				<br /><br />
				<?php 
        if (!empty($entry['post_id'])) {
            $post = get_post($entry['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 
        }
        /**
         * Adds additional information to the entry details
         *
         * @param int   $form['id'] The form ID
         * @param array $lead       The Entry object
         */
        do_action('gform_entry_info', $form['id'], $entry);
        ?>
			</div>
			<div id="major-publishing-actions">
				<div id="delete-action">
					<?php 
        switch ($entry['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') && $entry['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 . '"/>';
            /**
             * A filter to allow the modification of the button to update an entry detail
             *
             * @param string $update_button The HTML Rendered for the Entry Detail update button
             */
            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>
		<?php 
    }
Exemple #3
0
 /**
  * Allow formatting date and time based on GravityView standards
  *
  * @since 1.16
  *
  * @see GVCommon_Test::test_format_date for examples
  *
  * @param string $date_string The date as stored by Gravity Forms (`Y-m-d h:i:s` GMT)
  * @param string|array $args Array or string of settings for output parsed by `wp_parse_args()`; Can use `raw=1` or `array('raw' => true)` \n
  * - `raw` Un-formatted date string in original `Y-m-d h:i:s` format
  * - `timestamp` Integer timestamp returned by GFCommon::get_local_timestamp()
  * - `diff` "%s ago" format, unless other `format` is defined
  * - `human` Set $is_human parameter to true for `GFCommon::format_date()`. Shows `diff` within 24 hours or date after. Format based on blog setting, unless `format` is defined.
  * - `time` Include time in the `GFCommon::format_date()` output
  * - `format` Define your own date format, or `diff` format
  *
  * @return int|null|string Formatted date based on the original date
  */
 public static function format_date($date_string = '', $args = array())
 {
     $default_atts = array('raw' => false, 'timestamp' => false, 'diff' => false, 'human' => false, 'format' => '', 'time' => false);
     $atts = wp_parse_args($args, $default_atts);
     /**
      * Gravity Forms code to adjust date to locally-configured Time Zone
      * @see GFCommon::format_date() for original code
      */
     $date_gmt_time = mysql2date('G', $date_string);
     $date_local_timestamp = GFCommon::get_local_timestamp($date_gmt_time);
     $format = rgar($atts, 'format');
     $is_human = !empty($atts['human']);
     $is_diff = !empty($atts['diff']);
     $is_raw = !empty($atts['raw']);
     $is_timestamp = !empty($atts['timestamp']);
     $include_time = !empty($atts['time']);
     // If we're using time diff, we want to have a different default format
     if (empty($format)) {
         /* translators: %s: relative time from now, used for generic date comparisons. "1 day ago", or "20 seconds ago" */
         $format = $is_diff ? esc_html__('%s ago', 'gravityview') : get_option('date_format');
     }
     // If raw was specified, don't modify the stored value
     if ($is_raw) {
         $formatted_date = $date_string;
     } elseif ($is_timestamp) {
         $formatted_date = $date_local_timestamp;
     } elseif ($is_diff) {
         $formatted_date = sprintf($format, human_time_diff($date_gmt_time));
     } else {
         $formatted_date = GFCommon::format_date($date_string, $is_human, $format, $include_time);
     }
     unset($format, $is_diff, $is_human, $is_timestamp, $is_raw, $date_gmt_time, $date_local_timestamp, $default_atts);
     return $formatted_date;
 }
    public static function payment_details_box($lead, $form)
    {
        ?>
		<!-- PAYMENT BOX -->
		<div id="submitdiv" class="stuffbox">
			<h3 class="hndle" style="cursor:default;">
                <span><?php 
        echo $lead['transaction_type'] == 2 ? esc_html__('Subscription Details', 'gravityforms') : esc_html__('Payment Details', 'gravityforms');
        ?>
</span>
			</h3>

			<div class="inside">
				<div id="submitcomment" class="submitbox">
					<div id="minor-publishing" style="padding:10px;">
						<?php 
        $payment_status = apply_filters('gform_payment_status', $lead['payment_status'], $form, $lead);
        if (!empty($payment_status)) {
            ?>
							<div id="gf_payment_status" class="gf_payment_detail">
								<?php 
            esc_html_e('Status', 'gravityforms');
            ?>
:
								<span id="gform_payment_status"><?php 
            echo $payment_status;
            // May contain HTML
            ?>
</span>
							</div>

							<?php 
            $payment_date = apply_filters('gform_payment_date', GFCommon::format_date($lead['payment_date'], false, 'Y/m/d', $lead['transaction_type'] != 2), $form, $lead);
            if (!empty($payment_date)) {
                ?>
								<div id="gf_payment_date" class="gf_payment_detail">
									<?php 
                echo $lead['transaction_type'] == 2 ? esc_html__('Start Date', 'gravityforms') : esc_html__('Date', 'gravityforms');
                ?>
:
									<span id='gform_payment_date'><?php 
                echo $payment_date;
                // May contain HTML
                ?>
</span>
								</div>
							<?php 
            }
            $transaction_id = apply_filters('gform_payment_transaction_id', $lead['transaction_id'], $form, $lead);
            if (!empty($transaction_id)) {
                ?>
								<div id="gf_payment_transaction_id" class="gf_payment_detail">
									<?php 
                echo $lead['transaction_type'] == 2 ? esc_html__('Subscription Id', 'gravityforms') : esc_html__('Transaction Id', 'gravityforms');
                ?>
:
									<span id='gform_payment_transaction_id'><?php 
                echo $transaction_id;
                // May contain HTML
                ?>
</span>
								</div>
							<?php 
            }
            $payment_amount = apply_filters('gform_payment_amount', GFCommon::to_money($lead['payment_amount'], $lead['currency']), $form, $lead);
            if (!rgblank($payment_amount)) {
                ?>
								<div id="gf_payment_amount" class="gf_payment_detail">
									<?php 
                echo $lead['transaction_type'] == 2 ? esc_html__('Recurring Amount', 'gravityforms') : esc_html__('Amount', 'gravityforms');
                ?>
:
									<span id='gform_payment_amount'><?php 
                echo $payment_amount;
                // May contain HTML
                ?>
</span>
								</div>
							<?php 
            }
        }
        do_action('gform_payment_details', $form['id'], $lead);
        ?>
					</div>
				</div>
			</div>
		</div>
	<?php 
    }
 private static function monthly_chart_info($config)
 {
     global $wpdb;
     $tz_offset = self::get_mysql_tz_offset();
     $results = $wpdb->get_results("SELECT date_format(CONVERT_TZ(t.date_created, '+00:00', '" . $tz_offset . "'), '%Y-%m-02') date, sum(t.amount) as amount_sold, sum(is_renewal) as renewals, sum(is_renewal=0) as new_sales\r\n                                            FROM {$wpdb->prefix}rg_lead l\r\n                                            INNER JOIN {$wpdb->prefix}rg_paypal_transaction t ON l.id = t.entry_id\r\n                                            WHERE form_id={$config["form_id"]} AND t.transaction_type='payment'\r\n                                            group by date\r\n                                            order by date desc\r\n                                            LIMIT 30");
     $sales_month = 0;
     $revenue_month = 0;
     $tooltips = "";
     if (!empty($results)) {
         $data = "[";
         foreach ($results as $result) {
             $timestamp = self::get_graph_timestamp($result->date);
             if (self::matches_current_date("Y-m", $timestamp)) {
                 $sales_month += $result->new_sales;
                 $revenue_month += $result->amount_sold;
             }
             $data .= "[{$timestamp},{$result->amount_sold}],";
             if ($config["meta"]["type"] == "subscription") {
                 $sales_line = " <div class='paypal_tooltip_subscription'><span class='paypal_tooltip_heading'>" . __("New Subscriptions", "gravityformspaypal") . ": </span><span class='paypal_tooltip_value'>" . $result->new_sales . "</span></div><div class='paypal_tooltip_subscription'><span class='paypal_tooltip_heading'>" . __("Renewals", "gravityformspaypal") . ": </span><span class='paypal_tooltip_value'>" . $result->renewals . "</span></div>";
             } else {
                 $sales_line = "<div class='paypal_tooltip_sales'><span class='paypal_tooltip_heading'>" . __("Orders", "gravityformspaypal") . ": </span><span class='paypal_tooltip_value'>" . $result->new_sales . "</span></div>";
             }
             $tooltips .= "\"<div class='paypal_tooltip_date'>" . GFCommon::format_date($result->date, false, "F, Y", false) . "</div>{$sales_line}<div class='paypal_tooltip_revenue'><span class='paypal_tooltip_heading'>" . __("Revenue", "gravityformspaypal") . ": </span><span class='paypal_tooltip_value'>" . GFCommon::to_money($result->amount_sold) . "</span></div>\",";
         }
         $data = substr($data, 0, strlen($data) - 1);
         $tooltips = substr($tooltips, 0, strlen($tooltips) - 1);
         $data .= "]";
         $series = "[{data:" . $data . "}]";
         $month_names = self::get_chart_month_names();
         $options = "\r\n                {\r\n                    xaxis: {mode: 'time', monthnames: {$month_names}, timeformat: '%b %y', minTickSize: [1, 'month']},\r\n                    yaxis: {tickFormatter: convertToMoney},\r\n                    bars: {show:true, align:'center', barWidth: (24 * 60 * 60 * 30 * 1000) - 130000000},\r\n                    colors: ['#a3bcd3', '#14568a'],\r\n                    grid: {hoverable: true, clickable: true, tickColor: '#F1F1F1', backgroundColor:'#FFF', borderWidth: 1, borderColor: '#CCC'}\r\n                }";
     }
     switch ($config["meta"]["type"]) {
         case "product":
             $sales_label = __("Orders this Month", "gravityformspaypal");
             break;
         case "donation":
             $sales_label = __("Donations this Month", "gravityformspaypal");
             break;
         case "subscription":
             $sales_label = __("Subscriptions this Month", "gravityformspaypal");
             break;
     }
     $revenue_month = GFCommon::to_money($revenue_month);
     return array("series" => $series, "options" => $options, "tooltips" => "[{$tooltips}]", "revenue_label" => __("Revenue this Month", "gravityformspaypal"), "revenue" => $revenue_month, "sales_label" => $sales_label, "sales" => $sales_month);
 }
Exemple #6
0
    /**
     * @param $lead
     * @param $form
     * @return mixed
     */
    public static function payment_details_box($lead, $form)
    {
        ?>
        <!-- PAYMENT BOX -->
        <div id="submitdiv" class="stuffbox">
            <h3>
                <span
                    class="hndle"><?php 
        echo $lead["transaction_type"] == 2 ? __("Subscription Details", "gravityforms") : __("Payment Details", "gravityforms");
        ?>
</span>
            </h3>

            <div class="inside">
                <div id="submitcomment" class="submitbox">
                    <div id="minor-publishing" style="padding:10px;">
                        <br/>
                        <?php 
        if (!empty($lead["payment_status"])) {
            echo __("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") : __("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 ? __("Subscription Id", "gravityforms") : __("Transaction Id", "gravityforms");
                ?>
: <?php 
                echo $lead["transaction_id"];
                ?>
                                <br/><br/>
                            <?php 
            }
            if (!rgblank($lead["payment_amount"])) {
                echo $lead["transaction_type"] == 2 ? __("Recurring Amount", "gravityforms") : __("Amount", "gravityforms");
                ?>
: <?php 
                echo GFCommon::to_money($lead["payment_amount"], $lead["currency"]);
                ?>
                                <br/><br/>
                            <?php 
            }
        }
        do_action("gform_payment_details", $form["id"], $lead);
        ?>
                    </div>
                </div>
            </div>
        </div>
        <?php 
    }
    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 
    }
function notes_sidebar_grid($notes, $is_editable, $emails = null, $subject = '')
{
    ?>
<table class="widefat fixed entry-detail-notes">
	<tbody id="the-comment-list" class="list:comment">
		<?php 
    $count = 0;
    $notes_count = sizeof($notes);
    foreach ($notes as $note) {
        $count++;
        $is_last = $count >= $notes_count ? true : false;
        ?>
		<tr valign="top">
                        <?php 
        if ($is_editable && GFCommon::current_user_can_any('gravityforms_edit_entry_notes')) {
            ?>
                        <th class="check-column" scope="row" style="padding:9px 3px 0 0">
                                <input type="checkbox" value="<?php 
            echo $note->id;
            ?>
" name="note[]" />                                
                        </th>
                        <?php 
        }
        ?>
			<td class="entry-detail-note<?php 
        echo $is_last ? ' lastrow' : '';
        ?>
">
				<?php 
        $class = $note->note_type ? " gforms_note_{$note->note_type}" : '';
        ?>
				<div style="margin-top: 4px;">
					<div class="note-avatar">
						<?php 
        echo apply_filters('gform_notes_avatar', get_avatar($note->user_id, 48), $note);
        ?>
					</div>
					<h6 class="note-author">
						<?php 
        echo esc_html($note->user_name);
        ?>
					</h6>
					<p class="note-email">
						<a href="mailto:<?php 
        echo esc_attr($note->user_email);
        ?>
"><?php 
        echo esc_html($note->user_email);
        ?>
</a><br />
						<?php 
        _e('added on', 'gravityforms');
        ?>
						<?php 
        echo esc_html(GFCommon::format_date($note->date_created, false));
        ?>
					</p>
				</div>
				<div class="detail-note-content<?php 
        echo $class;
        ?>
">
					<?php 
        echo html_entity_decode($note->value);
        ?>
				</div>
			</td>

		</tr>
		<?php 
    }
    ?>
	</tbody>
</table>
<?php 
    if (sizeof($notes) > 0 && $is_editable && GFCommon::current_user_can_any('gravityforms_edit_entry_notes')) {
        ?>
            <input type="submit" name="delete_note_sidebar" value="Delete Selected Note(s)" class="button" style="width:100%;padding-bottom:2px;" onclick="jQuery('#action').val('delete_note_sidebar');">
	<?php 
    }
}
    public function contacts_tab($contact_id)
    {
        if (false === empty($contact_id)) {
            $search_criteria['status'] = 'active';
            $search_criteria['field_filters'][] = array('type' => 'meta', 'key' => 'gcontacts_contact_id', 'value' => $contact_id);
            $search_criteria['field_filters'][] = array('type' => 'meta', 'key' => 'gquiz_score', 'operator' => '>=', 'value' => 0, 'is_numeric' => true);
            $form_id = 0;
            //all forms
            $entries = GFAPI::get_entries($form_id, $search_criteria);
            if (empty($entries)) {
                _e('This contact has not submitted any quiz entries yet.', 'gravityformsquiz');
            } else {
                ?>
				<h3><span><?php 
                _e('Quiz Entries', 'gravityformsquiz');
                ?>
</span></h3>
				<div>
					<table id="gcontacts-entry-list" class="widefat">
						<tr class="gcontacts-entries-header">
							<td>
								<?php 
                _e('Entry Id', 'gravityformsquiz');
                ?>
							</td>
							<td>
								<?php 
                _e('Date', 'gravityformsquiz');
                ?>
							</td>
							<td>
								<?php 
                _e('Form', 'gravityformsquiz');
                ?>
							</td>
							<td>
								<?php 
                _e('Score', 'gravityformsquiz');
                ?>
							</td>
							<td>
								<?php 
                _e('Pass/Fail', 'gravityformsquiz');
                ?>
							</td>
							<td>
								<?php 
                _e('Grade', 'gravityformsquiz');
                ?>
							</td>
						</tr>
						<?php 
                foreach ($entries as $entry) {
                    $form_id = $entry['form_id'];
                    $form = GFFormsModel::get_form_meta($form_id);
                    $form_title = rgar($form, 'title');
                    $entry_id = $entry['id'];
                    $entry_date = GFCommon::format_date(rgar($entry, 'date_created'), false);
                    $entry_url = admin_url("admin.php?page=gf_entries&view=entry&id={$form_id}&lid={$entry_id}");
                    $passfail = '';
                    $grading = $this->get_form_setting($form, 'grading');
                    if ('passfail' == $grading) {
                        $is_pass = rgar($entry, 'gquiz_is_pass') ? true : false;
                        $passfail = $is_pass ? __('Pass', 'gravityformsquiz') : __('Fail', 'gravityformsquiz');
                        $color = $is_pass ? 'green' : 'red';
                        $passfail = sprintf('<span style="color:%s">%s</span>', $color, $passfail);
                    }
                    $grade = '';
                    if ('letter' == $grading) {
                        $grade = rgar($entry, 'gquiz_grade');
                    }
                    ?>
							<tr>
								<td>
									<a href="<?php 
                    echo $entry_url;
                    ?>
"><?php 
                    echo $entry_id;
                    ?>
</a>
								</td>
								<td>
									<?php 
                    echo $entry_date;
                    ?>
								</td>
								<td>
									<?php 
                    echo $form_title;
                    ?>
								</td>
								<td>
									<?php 
                    echo rgar($entry, 'gquiz_score');
                    ?>
								</td>
								<td>
									<?php 
                    echo $passfail;
                    ?>
								</td>
								<td>
									<?php 
                    echo $grade;
                    ?>
								</td>
							</tr>
							<?php 
                }
                ?>
					</table>
				</div>
				<?php 
            }
        }
    }
    function make_directory($atts)
    {
        global $wpdb, $wp_rewrite, $post, $wpdb, $directory_shown, $kws_gf_scripts, $kws_gf_styles;
        if (!class_exists('GFEntryDetail')) {
            @(require_once GFCommon::get_base_path() . "/entry_detail.php");
        }
        if (!class_exists('GFCommon')) {
            @(require_once WP_PLUGIN_DIR . "/gravityforms/common.php");
        }
        if (!class_exists('RGFormsModel')) {
            @(require_once WP_PLUGIN_DIR . "/gravityforms/forms_model.php");
        }
        //quit if version of wp is not supported
        if (!class_exists('GFCommon') || !GFCommon::ensure_wp_version()) {
            return;
        }
        ob_start();
        // Using ob_start() allows us to use echo instead of $output .=
        foreach ($atts as $key => $att) {
            if (strtolower($att) == 'false') {
                $atts[$key] = false;
            }
            if (strtolower($att) == 'true') {
                $atts[$key] = true;
            }
        }
        $atts['approved'] = isset($atts['approved']) ? $atts['approved'] : -1;
        if (!empty($atts['lightboxsettings']) && is_string($atts['lightboxsettings'])) {
            $atts['lightboxsettings'] = explode(',', $atts['lightboxsettings']);
        }
        $options = self::directory_defaults($atts);
        // Make sure everything is on the same page.
        if (is_array($options['lightboxsettings'])) {
            foreach ($options['lightboxsettings'] as $key => $value) {
                if (is_numeric($key)) {
                    $options['lightboxsettings']["{$value}"] = $value;
                    unset($options['lightboxsettings']["{$key}"]);
                }
            }
        }
        extract($options);
        $form_id = $form;
        $form = RGFormsModel::get_form_meta($form_id);
        if (empty($form)) {
            return;
        }
        $sort_field = empty($_GET["sort"]) ? $sort : $_GET["sort"];
        $sort_direction = empty($_GET["dir"]) ? $dir : $_GET["dir"];
        $search_query = !empty($_GET["gf_search"]) ? $_GET["gf_search"] : null;
        $start_date = !empty($_GET["start_date"]) ? $_GET["start_date"] : $start_date;
        $end_date = !empty($_GET["end_date"]) ? $_GET["end_date"] : $end_date;
        $page_index = empty($_GET["page"]) ? $startpage - 1 : intval($_GET["page"]) - 1;
        $star = isset($_GET["star"]) && is_numeric($_GET["star"]) ? intval($_GET["star"]) : null;
        $read = isset($_GET["read"]) && is_numeric($_GET["read"]) ? intval($_GET["read"]) : null;
        $first_item_index = $page_index * $page_size;
        $link_params = array();
        if (!empty($page_index)) {
            $link_params['page'] = $page_index;
        }
        $formaction = remove_query_arg(array('gf_search', 'sort', 'dir', 'page', 'edit'), add_query_arg($link_params));
        $tableclass .= !empty($jstable) ? ' tablesorter' : '';
        $title = $form["title"];
        $sort_field_meta = RGFormsModel::get_field($form, $sort_field);
        $is_numeric = $sort_field_meta["type"] == "number";
        $columns = RGFormsModel::get_grid_columns($form_id, true);
        $approvedcolumn = false;
        if ($approved || !empty($smartapproval) && $approved === -1) {
            $approvedcolumn = self::get_approved_column($form);
        }
        if (!empty($smartapproval) && $approved === -1 && !empty($approvedcolumn)) {
            $approved = true;
            // If there is an approved column, turn on approval
        } else {
            $approved = false;
            // Otherwise, show entries as normal.
        }
        $entrylinkcolumns = self::get_entrylink_column($form, $entry);
        $adminonlycolumns = self::get_admin_only($form);
        //
        // Show only a single entry
        //
        if (!empty($entry) && ($detail = self::process_lead_detail(true, $entryback, $showadminonly, $adminonlycolumns, $approvedcolumn, $options, $entryonly))) {
            echo $detail;
            if (!empty($entryonly)) {
                do_action('kws_gf_after_directory', do_action('kws_gf_after_directory_form_' . $form_id, $form, compact($approved, $sort_field, $sort_direction, $search_query, $first_item_index, $page_size, $star, $read, $is_numeric, $start_date, $end_date)));
                $content = ob_get_contents();
                // Get the output
                ob_end_clean();
                // Clear the cache
                // If the form is form #2, two filters are applied: `kws_gf_directory_output_2` and `kws_gf_directory_output`
                $content = apply_filters('kws_gf_directory_output', apply_filters('kws_gf_directory_output_' . $form_id, self::pseudo_filter($content, $directoryview)));
                return $content;
            }
        }
        //
        // Or start to generate the directory
        //
        $leads = GFDirectory::get_leads($form_id, $sort_field, $sort_direction, $search_query, $first_item_index, $page_size, $star, $read, $is_numeric, $start_date, $end_date, 'active', $approvedcolumn, $limituser);
        #			if(!$showadminonly)	 {
        $columns = self::remove_admin_only($columns, $adminonlycolumns, $approvedcolumn, false, false, $form);
        $leads = self::remove_admin_only($leads, $adminonlycolumns, $approvedcolumn, true, false, $form);
        #			}
        // Allow lightbox to determine whether showadminonly is valid without passing a query string in URL
        if ($entry === true && !empty($lightboxsettings['entry'])) {
            if (get_transient('gf_form_' . $form_id . '_post_' . $post->ID . '_showadminonly') != $showadminonly) {
                set_transient('gf_form_' . $form_id . '_post_' . $post->ID . '_showadminonly', $showadminonly, 60 * 60);
            }
        } else {
            delete_transient('gf_form_' . $form_id . '_post_' . $post->ID . '_showadminonly');
        }
        // Get a list of query args for the pagination links
        if (!empty($search_query)) {
            $args["gf_search"] = urlencode($search_query);
        }
        if (!empty($sort_field)) {
            $args["sort"] = $sort_field;
        }
        if (!empty($sort_direction)) {
            $args["dir"] = $sort_direction;
        }
        if (!empty($star)) {
            $args["star"] = $star;
        }
        if ($page_size > 0) {
            $lead_count = self::get_lead_count($form_id, $search_query, $star, $read, $approvedcolumn, $approved, $leads, $start_date, $end_date, $limituser);
            $page_links = array('base' => @add_query_arg('page', '%#%'), 'format' => '&page=%#%', 'add_args' => $args, 'prev_text' => $prev_text, 'next_text' => $next_text, 'total' => ceil($lead_count / $page_size), 'current' => $page_index + 1, 'show_all' => $pagelinksshowall);
            $page_links = apply_filters('kws_gf_results_pagination', $page_links);
            $page_links = paginate_links($page_links);
        } else {
            // Showing all results
            $page_links = false;
            $lead_count = sizeof($leads);
        }
        if (!isset($directory_shown)) {
            $directory_shown = true;
            if (!empty($lightboxsettings['images']) || !empty($lightboxsettings['entry'])) {
                if (!is_array($kws_gf_scripts) || !in_array('colorbox', $kws_gf_scripts)) {
                    wp_print_scripts(array("colorbox"));
                }
                if (!is_array($kws_gf_styles) || !in_array('colorbox', $kws_gf_styles)) {
                    wp_print_styles(array("colorbox"));
                }
            }
            if (!empty($jstable)) {
                ?>
				<?php 
                if (!in_array('tablesorter-blue', $kws_gf_styles)) {
                    ?>
					<link href="<?php 
                    echo WP_PLUGIN_URL . "/" . basename(dirname(__FILE__));
                    ?>
/tablesorter/themes/blue/style.css" rel="stylesheet" />
				<?php 
                }
                if (!in_array('tablesorter-min', $kws_gf_scripts)) {
                    ?>
					<script type="text/javascript" src="<?php 
                    echo WP_PLUGIN_URL . "/" . basename(dirname(__FILE__));
                    ?>
/tablesorter/jquery.tablesorter.min.js"></script>				
				<?php 
                }
            }
            ?>
				
				<script type="text/javascript">
					<?php 
            if (!empty($lightboxsettings['images']) || !empty($lightboxsettings['entry'])) {
                ?>
		
					var tb_pathToImage = "<?php 
                echo site_url('/wp-includes/js/thickbox/loadingAnimation.gif');
                ?>
";
					var tb_closeImage = "<?php 
                echo site_url('/wp-includes/js/thickbox/tb-close.png');
                ?>
";
					var tb_height = 600;
					<?php 
            }
            ?>
					function not_empty(variable) { 
						if(variable == '' || variable == null || variable == 'undefined' || typeof(variable) == 'undefined') {
							return false;
						} else { 
							return true;
						}
					}
				
				<?php 
            if (!empty($jstable)) {
                ?>
					jQuery(document).ready(function($) {
						jQuery('.tablesorter').each(function() { 
							$(this).tablesorter(<?php 
                echo apply_filters('kws_gf_directory_tablesorter_options', '');
                ?>
); 
						});
					});
				<?php 
            } else {
                if (isset($jssearch) && $jssearch) {
                    ?>
					function Search(search, sort_field_id, sort_direction){
						if(not_empty(search)) { var search = "&gf_search=" + encodeURIComponent(search); } else {  var search = ''; }
						if(not_empty(sort_field_id)) { var sort = "&sort=" + sort_field_id; } else {  var sort = ''; }
						if(not_empty(sort_direction)) { var dir = "&dir=" + sort_direction; } else {  var dir = ''; }
						var page = '<?php 
                    if ($wp_rewrite->using_permalinks()) {
                        echo '?';
                    } else {
                        echo '&';
                    }
                    ?>
page='+<?php 
                    echo isset($_GET['page']) ? intval($_GET['page']) : '"1"';
                    ?>
;
						var location = "<?php 
                    echo get_permalink($post->ID);
                    ?>
"+page+search+sort+dir;
						document.location = location;
					}
				<?php 
                }
            }
            ?>
				</script>
				<link rel="stylesheet" href="<?php 
            echo GFCommon::get_base_url();
            ?>
/css/admin.css" type="text/css" />
			<?php 
        }
        ?>
			
			<div class="wrap">
				<?php 
        if ($icon) {
            ?>
<img alt="<?php 
            _e("Gravity Forms", "gravity-forms-addons");
            ?>
" src="<?php 
            echo GFCommon::get_base_url();
            ?>
/images/gravity-title-icon-32.png" style="float:left; margin:15px 7px 0 0;"/><?php 
        }
        ?>
				<?php 
        if ($titleshow) {
            ?>
<h2><?php 
            echo $titleprefix . $title;
            ?>
 </h2><?php 
        }
        ?>
				<?php 
        if ($search && ($lead_count > 0 || !empty($_GET['gf_search']))) {
            ?>
				<form id="lead_form" method="get" action="<?php 
            echo $formaction;
            ?>
">
					<p class="search-box">
						<label class="hidden" for="lead_search"><?php 
            _e("Search Entries:", "gravity-forms-addons");
            ?>
</label>
						<input type="text" name="gf_search" id="lead_search" value="<?php 
            echo $search_query;
            ?>
"<?php 
            if ($searchtabindex) {
                echo ' tabindex="' . intval($searchtabindex) . '"';
            }
            ?>
 />
						<?php 
            if (!empty($_GET['p'])) {
                ?>
							<input name="p" type="hidden" value="<?php 
                echo esc_html($_GET['p']);
                ?>
" />
						<?php 
            }
            ?>
						<input type="submit" class="button" id="lead_search_button" value="<?php 
            _e("Search", "gravity-forms-addons");
            ?>
"<?php 
            if ($searchtabindex) {
                echo ' tabindex="' . intval($searchtabindex++) . '"';
            }
            ?>
 />
					</p>
				</form>
				<?php 
        }
        //Displaying paging links if appropriate
        if ($lead_count > 0 && $showcount || $page_links) {
            if ($lead_count == 0) {
                $first_item_index--;
            }
            ?>
					<div class="tablenav">
						<div class="tablenav-pages">
							<?php 
            if ($showcount) {
                if ($first_item_index + $page_size > $lead_count || $page_size <= 0) {
                    $second_part = $lead_count;
                } else {
                    $second_part = $first_item_index + $page_size;
                }
                ?>
							<span class="displaying-num"><?php 
                printf(__("Displaying %d - %d of %d", "gravity-forms-addons"), $first_item_index + 1, $second_part, $lead_count);
                ?>
</span>
							<?php 
            }
            if ($page_links) {
                echo $page_links;
            }
            ?>
						</div>
						<div class="clear"></div>
					</div>
						<?php 
        }
        do_action('kws_gf_before_directory_after_nav', do_action('kws_gf_before_directory_after_nav_form_' . $form_id, $form, $leads, compact($approved, $sort_field, $sort_direction, $search_query, $first_item_index, $page_size, $star, $read, $is_numeric, $start_date, $end_date)));
        ?>
					
					<table class="<?php 
        echo $tableclass;
        ?>
" cellspacing="0"<?php 
        if (!empty($tablewidth)) {
            echo ' width="' . $tablewidth . '"';
        }
        echo $tablestyle ? ' style="' . $tablestyle . '"' : '';
        ?>
>
					<?php 
        if ($thead) {
            ?>
					<thead>
						<tr>
							<?php 
            $addressesExist = false;
            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";
                }
                if (is_array($adminonlycolumns) && !in_array($field_id, $adminonlycolumns) || is_array($adminonlycolumns) && in_array($field_id, $adminonlycolumns) && $showadminonly || !$showadminonly) {
                    if ($field_info['type'] == 'address' && $appendaddress && $hideaddresspieces) {
                        $addressesExist = true;
                        continue;
                    }
                    ?>
								<?php 
                    if (isset($jssearch) && $jssearch && !isset($jstable)) {
                        ?>
								<th scope="col" class="manage-column" onclick="Search('<?php 
                        echo $search_query;
                        ?>
', '<?php 
                        echo $field_id;
                        ?>
', '<?php 
                        echo $dir;
                        ?>
');" style="cursor:pointer;"><?php 
                    } elseif (isset($jstable) && $jstable) {
                        ?>
									<th scope="col" class="manage-column">
								<?php 
                    } else {
                        ?>
								<th scope="col" class="manage-column">
								<a href="<?php 
                        $searchpage = isset($_GET['page']) ? intval($_GET['page']) : 1;
                        echo add_query_arg(array('gf_search' => $search_query, 'sort' => $field_id, 'dir' => $dir, 'page' => $searchpage), get_permalink($post->ID));
                        ?>
"><?php 
                    }
                    if ($field_info['type'] == 'id' && $entry) {
                        $label = $entryth;
                    } else {
                        $label = $field_info["label"];
                    }
                    $label = apply_filters('kws_gf_directory_th', apply_filters('kws_gf_directory_th_' . $field_id, apply_filters('kws_gf_directory_th_' . sanitize_title($label), $label)));
                    echo esc_html($label);
                    if (!isset($jssearch) || !$jssearch && empty($jstable)) {
                        ?>
							   </a>
							   <?php 
                    }
                    ?>
							   </th>
								<?php 
                }
            }
            if ($appendaddress && $addressesExist) {
                ?>
								<th scope="col" class="manage-column" onclick="Search('<?php 
                echo $search_query;
                ?>
', '<?php 
                echo $field_id;
                ?>
', '<?php 
                echo $dir;
                ?>
');" style="cursor:pointer;"><?php 
                $label = apply_filters('kws_gf_directory_th', apply_filters('kws_gf_directory_th_address', 'Address'));
                echo esc_html($label);
                ?>
</th>
								<?php 
            }
            ?>
						</tr>
					</thead>
					<?php 
        }
        ?>
					<tbody class="list:user user-list">
						<?php 
        if (sizeof($leads) > 0 && $lead_count > 0) {
            $field_ids = array_keys($columns);
            $evenodd = '';
            foreach ($leads as $lead) {
                flush();
                echo "\n\t\t\t\t\t\t";
                $address = array();
                $celltitle = '';
                if ($approved) {
                    $leadapproved = self::check_approval($lead, $approvedcolumn);
                }
                if (isset($leadapproved) && $leadapproved && $approved || !$approved) {
                    $target = '';
                    if ($linknewwindow && empty($lightboxsettings['images'])) {
                        $target = ' target="_blank"';
                    }
                    $valignattr = '';
                    if ($valign && $directoryview == 'table') {
                        $valignattr = ' valign="' . $valign . '"';
                    }
                    $nofollow = '';
                    if ($nofollowlinks) {
                        $nofollow = ' rel="nofollow"';
                    }
                    $evenodd = $evenodd == ' odd' ? ' even' : ' odd';
                    $evenodd = apply_filters('kws_gf_directory_evenodd', $evenodd);
                    ?>
<tr<?php 
                    if ($showrowids) {
                        ?>
 id="lead_row_<?php 
                        echo $lead["id"];
                        ?>
" <?php 
                    }
                    ?>
 class='<?php 
                    echo trim($rowclass . $evenodd);
                    echo $lead["is_starred"] ? " featured" : "";
                    ?>
'<?php 
                    echo $rowstyle ? ' style="' . $rowstyle . '"' : '';
                    echo $valignattr;
                    ?>
><?php 
                    $class = "";
                    $is_first_column = true;
                    $full_address = '';
                    foreach ($field_ids as $field_id) {
                        $lightboxclass = '';
                        if (!empty($lightboxsettings['images'])) {
                            $lightboxclass = ' class="thickbox colorbox lightbox"';
                        }
                        $value = isset($lead[$field_id]) ? $lead[$field_id] : '';
                        $input_type = !empty($columns[$field_id]["inputType"]) ? $columns[$field_id]["inputType"] : $columns[$field_id]["type"];
                        switch ($input_type) {
                            case "address":
                                $address['id'] = floor((int) $field_id);
                                $address[$field_id] = $value;
                                if ($hideaddresspieces) {
                                    $value = NULL;
                                    break;
                                }
                                break;
                            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) && $lead[$input_id] == $columns[$field_id]["label"]) {
                                        $value = "<img src='" . GFCommon::get_base_url() . "/images/tick.png'/>";
                                    }
                                }
                                break;
                            case "fileupload":
                            case "post_image":
                                $valueArray = explode("|:|", $value);
                                @(list($url, $title, $caption, $description) = $valueArray);
                                $size = '';
                                if (!empty($url)) {
                                    //displaying thumbnail (if file is an image) or an icon based on the extension
                                    $icon = self::get_icon_url($url);
                                    if (!preg_match('/icon\\_image\\.gif/ism', $icon)) {
                                        $src = $icon;
                                        if (!empty($getimagesize)) {
                                            $size = @getimagesize($src);
                                            $img = "<img src='{$src}' {$size[3]}/>";
                                        } else {
                                            $size = false;
                                            $img = "<img src='{$src}' />";
                                        }
                                    } else {
                                        // No thickbox for non-images please
                                        switch (strtolower(trim($postimage))) {
                                            case 'image':
                                                $src = $url;
                                                break;
                                            case 'icon':
                                            default:
                                                $src = $icon;
                                                break;
                                        }
                                        if (!empty($getimagesize)) {
                                            $size = @getimagesize($src);
                                        } else {
                                            $size = false;
                                        }
                                    }
                                    $img = array('src' => $src, 'size' => $size, 'title' => $title, 'caption' => $caption, 'description' => $description, 'url' => esc_attr($url), 'code' => isset($size[3]) ? "<img src='{$src}' {$size[3]} />" : "<img src='{$src}' />");
                                    $img = apply_filters('kws_gf_directory_lead_image', apply_filters('kws_gf_directory_lead_image_' . $postimage, apply_filters('kws_gf_directory_lead_image_' . $lead['id'], $img)));
                                    if (in_array('images', $lightboxsettings) || !empty($lightboxsettings['images'])) {
                                        $lightboxclass .= ' rel="directory_all directory_images"';
                                    }
                                    $value = "<a href='{$url}'{$target}{$lightboxclass}>{$img['code']}</a>";
                                }
                                break;
                            case "source_url":
                                if (in_array('urls', $lightboxsettings) || !empty($lightboxsettings['urls'])) {
                                    $lightboxclass .= ' rel="directory_all directory_urls"';
                                }
                                if ($linkwebsite) {
                                    $value = "<a href='" . esc_attr($lead["source_url"]) . "'{$target}{$lightboxclass} title='" . esc_attr($lead["source_url"]) . "'{$nofollow}>.../" . esc_attr(GFCommon::truncate_url($lead["source_url"])) . "</a>";
                                } else {
                                    $value = esc_attr(GFCommon::truncate_url($lead["source_url"]));
                                }
                                break;
                            case "textarea":
                            case "post_content":
                            case "post_excerpt":
                                if ($fulltext) {
                                    $long_text = $value = "";
                                    if (isset($lead[$field_id]) && strlen($lead[$field_id]) >= GFORMS_MAX_FIELD_LENGTH) {
                                        $long_text = get_gf_field_value_long($lead["id"], $field_id);
                                    }
                                    if (isset($lead[$field_id])) {
                                        $value = !empty($long_text) ? $long_text : $lead[$field_id];
                                    }
                                    if ($wpautop) {
                                        $value = wpautop($value);
                                    }
                                } else {
                                    $value = esc_html($value);
                                }
                                break;
                            case "date_created":
                                $value = GFCommon::format_date($value, false, $datecreatedformat);
                                break;
                            case "date":
                                $field = RGFormsModel::get_field($form, $field_id);
                                if ($dateformat) {
                                    $value = GFCommon::date_display($value, $dateformat);
                                } else {
                                    $value = GFCommon::date_display($value, $field["dateFormat"]);
                                }
                                break;
                            case "id":
                                $linkClass = '';
                                break;
                            case "list":
                                $field = RGFormsModel::get_field($form, $field_id);
                                $value = GFCommon::get_lead_field_display($field, $value);
                                break;
                            default:
                                $input_type = 'text';
                                if (is_email($value) && $linkemail) {
                                    $value = "<a href='mailto:{$value}'{$nofollow}>{$value}</a>";
                                } elseif (preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $value) && $linkwebsite) {
                                    $href = $value;
                                    if (!empty($lightboxsettings['images'])) {
                                        if (in_array('urls', $lightboxsettings) || !empty($lightboxsettings['urls'])) {
                                            $lightboxclass .= ' rel="directory_all directory_urls"';
                                        }
                                        $linkClass = $lightboxclass;
                                    } else {
                                        $linkClass = isset($linkClass) ? $linkClass : '';
                                    }
                                    if ($truncatelink) {
                                        $value = apply_filters('kws_gf_directory_anchor_text', $value);
                                    }
                                    $value = "<a href='{$href}'{$nofollow}{$target}{$linkClass}>{$value}</a>";
                                } else {
                                    $value = esc_html($value);
                                }
                        }
                        if ($is_first_column) {
                            echo "\n";
                        }
                        if ($value !== NULL) {
                            if (isset($columns["{$field_id}"]['label']) && $hovertitle || $directoryview !== 'table') {
                                $celltitle = ' title="' . esc_html(apply_filters('kws_gf_directory_th', apply_filters('kws_gf_directory_th_' . $field_id, apply_filters('kws_gf_directory_th_' . sanitize_title($columns["{$field_id}"]['label']), $columns["{$field_id}"]['label'])))) . '"';
                            } else {
                                $celltitle = '';
                            }
                            echo "\t\t\t\t\t\t\t";
                            ?>
<td<?php 
                            echo empty($class) ? ' class="' . $input_type . '"' : ' class="' . $input_type . ' ' . $class . '"';
                            echo $valignattr;
                            echo $celltitle;
                            ?>
><?php 
                            $value = empty($value) ? '&nbsp;' : $value;
                            if (isset($entrylinkcolumns[floor($field_id)])) {
                                $type = $entrylinkcolumns[floor($field_id)];
                                if ($input_type == 'id' && $entry) {
                                    $linkvalue = $entrylink;
                                } elseif ($type === 'label') {
                                    $linkvalue = $columns["{$field_id}"]['label'];
                                } elseif (!empty($type) && $type !== 'on') {
                                    $linkvalue = str_replace('%value%', $value, $type);
                                } else {
                                    $linkvalue = $value;
                                }
                                $value = self::make_entry_link($options, $linkvalue, $lead['id'], $form_id, $field_id);
                            }
                            $value = apply_filters('kws_gf_directory_value', apply_filters('kws_gf_directory_value_' . $input_type, apply_filters('kws_gf_directory_value_' . $field_id, $value)));
                            echo $value;
                            ?>
</td><?php 
                            echo "\n";
                            $is_first_column = false;
                        }
                    }
                    if (is_array($address) && !empty($address) && $appendaddress) {
                        $address = apply_filters('kws_gf_directory_td_address', $address, $linknewwindow);
                        if (!is_array($address)) {
                            echo "\t\t\t\t\t\t\t" . '<td class="address" title="' . esc_html(apply_filters('kws_gf_directory_th', apply_filters('kws_gf_directory_th_address', 'Address'))) . '">' . $address . '</td>';
                        }
                    }
                    ?>
							</tr>
								<?php 
                }
            }
        } else {
            ?>
							<tr>
								<td colspan="<?php 
            echo sizeof($columns);
            ?>
" style="padding:20px;"><?php 
            if ($search_query) {
                _e("This search returned no results.", "gravity-forms-addons");
            } elseif ($limituser) {
                _e("This form does not have any visible entries.", "gravity-forms-addons");
            } else {
                _e("This form does not have any entries yet.", "gravity-forms-addons");
            }
            ?>
</td>
							</tr>
							<?php 
        }
        ?>
					</tbody>
					<?php 
        if ($tfoot) {
            if (isset($jssearch) && $jssearch && !isset($jstable)) {
                $th = '<th scope="col" class="manage-column" onclick="Search(\'' . $search_query . '\', \'' . $field_id . '\', \'' . $dir . '\');" style="cursor:pointer;">';
            } else {
                $th = '<th scope="col" class="manage-column">';
            }
            ?>
					<tfoot>
						<tr>
							<?php 
            $addressesExist = false;
            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";
                }
                if (is_array($adminonlycolumns) && !in_array($field_id, $adminonlycolumns) || is_array($adminonlycolumns) && in_array($field_id, $adminonlycolumns) && $showadminonly || !$showadminonly) {
                    if ($field_info['type'] == 'address' && $appendaddress && $hideaddresspieces) {
                        $addressesExist = true;
                        continue;
                    }
                    echo $th;
                    if ($field_info['type'] == 'id' && $entry) {
                        $label = $entryth;
                    } else {
                        $label = $field_info["label"];
                    }
                    $label = apply_filters('kws_gf_directory_th', apply_filters('kws_gf_directory_th_' . $field_id, apply_filters('kws_gf_directory_th_' . sanitize_title($label), $label)));
                    echo esc_html($label);
                    ?>
</th>
								<?php 
                }
            }
            if ($appendaddress && $addressesExist) {
                ?>
								<th scope="col" class="manage-column" onclick="Search('<?php 
                echo $search_query;
                ?>
', '<?php 
                echo $field_id;
                ?>
', '<?php 
                echo $dir;
                ?>
');" style="cursor:pointer;"><?php 
                $label = apply_filters('kws_gf_directory_th', apply_filters('kws_gf_directory_th_address', 'Address'));
                echo esc_html($label);
                ?>
</th>
								<?php 
            }
            ?>
						</tr>
						<?php 
            if (!empty($credit)) {
                self::get_credit_link(sizeof($columns));
            }
            ?>
					</tfoot>
					<?php 
        }
        ?>
					</table>
					<?php 
        do_action('kws_gf_after_directory_before_nav', do_action('kws_gf_after_directory_before_nav_form_' . $form_id, $form, $leads, compact($approved, $sort_field, $sort_direction, $search_query, $first_item_index, $page_size, $star, $read, $is_numeric, $start_date, $end_date)));
        //Displaying paging links if appropriate
        if ($lead_count > 0 && $showcount || $page_links) {
            if ($lead_count == 0) {
                $first_item_index--;
            }
            ?>
					<div class="tablenav">
						<div class="tablenav-pages">
							<?php 
            if ($showcount) {
                if ($first_item_index + $page_size > $lead_count || $page_size <= 0) {
                    $second_part = $lead_count;
                } else {
                    $second_part = $first_item_index + $page_size;
                }
                ?>
							<span class="displaying-num"><?php 
                printf(__("Displaying %d - %d of %d", "gravity-forms-addons"), $first_item_index + 1, $second_part, $lead_count);
                ?>
</span>
							<?php 
            }
            if ($page_links) {
                echo $page_links;
            }
            ?>
						</div>
						<div class="clear"></div>
					</div>
						<?php 
        }
        ?>
 
			</div>
			<?php 
        if (empty($credit)) {
            echo "\n" . '<!-- Directory generated by Gravity Forms Directory & Addons : http://wordpress.org/extend/plugins/gravity-forms-addons/ -->' . "\n";
        }
        do_action('kws_gf_after_directory', do_action('kws_gf_after_directory_form_' . $form_id, $form, $leads, compact($approved, $sort_field, $sort_direction, $search_query, $first_item_index, $page_size, $star, $read, $is_numeric, $start_date, $end_date)));
        $content = ob_get_contents();
        // Get the output
        ob_end_clean();
        // Clear the cache
        // If the form is form #2, two filters are applied: `kws_gf_directory_output_2` and `kws_gf_directory_output`
        $content = apply_filters('kws_gf_directory_output', apply_filters('kws_gf_directory_output_' . $form_id, self::pseudo_filter($content, $directoryview)));
        return $content;
        // Return it!
    }
    public static function display($args)
    {
        global $current_user;
        $filter = apply_filters('gravityflow_inbox_filter', array('form_id' => 0, 'start_date' => '', 'end_date' => ''));
        $field_ids = apply_filters('gravityflow_inbox_fields', array());
        $defaults = array('display_empty_fields' => true, 'id_column' => true, 'submitter_column' => true, 'step_column' => true, 'check_permissions' => true, 'form_id' => absint(rgar($filter, 'form_id')), 'field_ids' => $field_ids, 'detail_base_url' => admin_url('admin.php?page=gravityflow-inbox&view=entry'), 'last_updated' => false);
        $args = array_merge($defaults, $args);
        if ($current_user->ID > 0) {
            $filter_key = 'user_id_' . $current_user->ID;
        } elseif ($token = gravity_flow()->decode_access_token()) {
            $filter_key = 'email_' . gravity_flow()->parse_token_assignee($token)->get_id();
        }
        $entries = array();
        $form_id = $args['form_id'];
        $total_count = 0;
        if (!empty($filter_key)) {
            $field_filters[] = array('key' => 'workflow_' . $filter_key, 'value' => 'pending');
            $user_roles = gravity_flow()->get_user_roles();
            foreach ($user_roles as $user_role) {
                $field_filters[] = array('key' => 'workflow_role_' . $user_role, 'value' => 'pending');
            }
            $field_filters['mode'] = 'any';
            $search_criteria['field_filters'] = $field_filters;
            $search_criteria['status'] = 'active';
            $form_ids = $args['form_id'] ? $args['form_id'] : gravity_flow()->get_workflow_form_ids();
            if (!empty($form_ids)) {
                $paging = array('page_size' => 150);
                $entries = GFAPI::get_entries($form_ids, $search_criteria, null, $paging, $total_count);
            }
        }
        if (sizeof($entries) > 0) {
            $id_style = $args['id_column'] ? '' : 'style="display:none;"';
            $submitter_style = $args['submitter_column'] ? '' : 'style="display:none;"';
            $step_style = $args['step_column'] ? '' : 'style="display:none;"';
            ?>

			<table id="gravityflow-inbox" class="widefat gravityflow-inbox" cellspacing="0" style="border:0px;">
				<thead>
				<tr>
					<th <?php 
            echo $id_style;
            ?>
 data-label="<?php 
            esc_html_e('ID', 'gravityflow');
            ?>
"><?php 
            esc_html_e('ID', 'gravityflow');
            ?>
</th>
					<?php 
            if (empty($form_id)) {
                ?>
						<th><?php 
                esc_html_e('Form', 'gravityflow');
                ?>
</th>
					<?php 
            }
            ?>
					<th <?php 
            echo $submitter_style;
            ?>
><?php 
            esc_html_e('Submitter', 'gravityflow');
            ?>
</th>
					<th <?php 
            echo $step_style;
            ?>
><?php 
            esc_html_e('Step', 'gravityflow');
            ?>
</th>
					<th><?php 
            esc_html_e('Submitted', 'gravityflow');
            ?>
</th>
					<?php 
            if ($args['form_id'] && is_array($args['field_ids'])) {
                $columns = RGFormsModel::get_grid_columns($args['form_id'], true);
                $field_ids = array_keys($columns);
                foreach ($args['field_ids'] as $field_id) {
                    $field_id = trim($field_id);
                    if (in_array($field_id, $field_ids)) {
                        $field_info = $columns[$field_id];
                        echo '<th>' . esc_html($field_info['label']) . '</th>';
                    }
                }
            }
            if ($args['last_updated']) {
                echo '<th>' . esc_html__('Last Updated', 'gravityflow') . '</th>';
            }
            ?>
				</tr>
				</thead>

				<tbody class="list:user user-list">
				<?php 
            foreach ($entries as $entry) {
                $form = GFAPI::get_form($entry['form_id']);
                $user = get_user_by('id', (int) $entry['created_by']);
                $name = $user ? $user->display_name : $entry['ip'];
                $base_url = $args['detail_base_url'];
                $url_entry = $base_url . sprintf('&id=%d&lid=%d', $entry['form_id'], $entry['id']);
                $url_entry = esc_url_raw($url_entry);
                $link = "<a href='%s'>%s</a>";
                ?>
					<tr>
						<td data-label="<?php 
                esc_html_e('ID', 'gravityflow');
                ?>
" <?php 
                echo $id_style;
                ?>
>
							<?php 
                printf($link, $url_entry, $entry['id']);
                ?>
						</td>
						<?php 
                if (empty($form_id)) {
                    ?>
							<td data-label="<?php 
                    esc_html_e('Form', 'gravityflow');
                    ?>
">
								<?php 
                    printf($link, $url_entry, $form['title']);
                    ?>
							</td>
						<?php 
                }
                ?>
						<td data-label="<?php 
                esc_html_e('Submitter', 'gravityflow');
                ?>
" <?php 
                echo $submitter_style;
                ?>
>
							<?php 
                printf($link, $url_entry, $name);
                ?>
						</td>
						<td data-label="<?php 
                esc_html_e('Step', 'gravityflow');
                ?>
" <?php 
                echo $step_style;
                ?>
>
							<?php 
                if (isset($entry['workflow_step'])) {
                    $step = gravity_flow()->get_step($entry['workflow_step']);
                    if ($step) {
                        printf($link, $url_entry, $step->get_name());
                    }
                }
                ?>
						</td>
						<td data-label="<?php 
                esc_html_e('Submitted', 'gravityflow');
                ?>
">
							<?php 
                printf($link, $url_entry, GFCommon::format_date($entry['date_created']));
                ?>
						</td>

						<?php 
                if ($args['form_id'] && is_array($args['field_ids'])) {
                    if (isset($form['fields']) && is_array($form['fields'])) {
                        $field_ids = array_keys($columns);
                        foreach ($args['field_ids'] as $field_id) {
                            /* @var GF_Field $field */
                            if (!in_array($field_id, $field_ids)) {
                                continue;
                            }
                            $field_id = trim($field_id);
                            $field_info = $columns[$field_id];
                            $value = rgar($entry, $field_id);
                            $field = GFFormsModel::get_field($form, $field_id);
                            ?>
									<td data-label="<?php 
                            echo esc_attr($field_info['label']);
                            ?>
">
										<?php 
                            printf($link, $url_entry, $field->get_value_entry_list($value, $entry, $field_id, $columns, $form));
                            ?>
									</td>
								<?php 
                        }
                    }
                }
                if ($args['last_updated']) {
                    ?>
							<td data-label="<?php 
                    esc_html_e('Last_Updated', 'gravityflow');
                    ?>
">
								<?php 
                    $last_updated = date('Y-m-d H:i:s', $entry['workflow_timestamp']);
                    if ($entry['date_created'] != $last_updated) {
                        echo esc_html(GFCommon::format_date($last_updated, true, 'Y/m/d'));
                    } else {
                        echo '-';
                    }
                    ?>
							</td>
							<?php 
                }
                ?>
					</tr>
				<?php 
            }
            ?>
				</tbody>
			</table>

			<?php 
            if ($total_count > 150) {
                echo '<br />';
                echo '<div class="excess_entries_indicator">';
                printf('(Showing 150 of %d)', absint($total_count));
                echo '</div>';
            }
        } else {
            ?>
			<div id="gravityflow-no-pending-tasks-container">
				<div id="gravityflow-no-pending-tasks-content">
					<i class="fa fa-check-circle-o gravityflow-inbox-check"></i>
					<br/><br/>
					<?php 
            esc_html_e('No pending tasks', 'gravityflow');
            ?>
				</div>

			</div>
		<?php 
        }
    }
Exemple #12
0
     if (apply_filters('kws_gf_directory_post_title_link', false, $form, $lead) && !empty($lead['post_id'])) {
         $value = '<a href="' . esc_url(get_permalink($lead['post_id'])) . '" title="' . esc_attr($value) . '" ' . $nofollow . $target . '>' . esc_html($value) . '</a>';
     } else {
         $value = esc_html($value);
     }
     break;
 case "textarea":
 case "post_content":
 case "post_excerpt":
     $value = wpautop($value);
     break;
 case "post_category":
     $value = GFCommon::prepare_post_category_value($lead[$field_id], $field);
     break;
 case "date_created":
     $value = GFCommon::format_date($lead['date_created'], true, apply_filters('kws_gf_date_format', ''));
     break;
 case "date":
     if ($dateformat) {
         $value = GFCommon::date_display($value, $dateformat);
     } else {
         $value = GFCommon::date_display($value, $field["dateFormat"]);
     }
     break;
 case "id":
     $linkClass = '';
     break;
 case "list":
     $value = GFCommon::get_lead_field_display($field, $value);
     break;
 default:
 /**
  * Target for the gform_pre_replace_merge_tags filter. Replaces the workflow_timeline and created_by merge tags.
  *
  *
  * @param string $text
  * @param array $form
  * @param array $entry
  * @param bool $url_encode
  * @param bool $esc_html
  * @param bool $nl2br
  * @param string $format
  *
  * @return string
  */
 function replace_variables($text, $form, $entry, $url_encode, $esc_html, $nl2br, $format)
 {
     preg_match_all('/{workflow_timeline(:(.*?))?}/', $text, $timeline_matches, PREG_SET_ORDER);
     if (is_array($timeline_matches) && isset($timeline_matches[0])) {
         $full_tag = $timeline_matches[0][0];
         require_once gravity_flow()->get_base_path() . '/includes/pages/class-entry-detail.php';
         $notes = Gravity_Flow_Entry_Detail::get_timeline_notes($entry);
         $html = '';
         foreach ($notes as $note) {
             $html .= '<br />';
             $html .= GFCommon::format_date($note->date_created, false, 'd M Y g:i a', false);
             $html .= ': ';
             if (empty($note->user_id)) {
                 if ($note->user_name !== 'gravityflow') {
                     $step = Gravity_Flow_Steps::get($note->user_name);
                     if ($step) {
                         $html .= $step->get_label();
                     }
                 } else {
                     $html .= esc_html(gravity_flow()->translate_navigation_label('Workflow'));
                 }
             } else {
                 $html .= esc_html($note->user_name);
             }
             $html .= '<br />';
             $html .= nl2br(esc_html($note->value));
             $html .= '<br />';
         }
         $text = str_replace($full_tag, $html, $text);
     }
     preg_match_all('/{created_by(:(.*?))?}/', $text, $created_by_matches, PREG_SET_ORDER);
     if (is_array($created_by_matches)) {
         if (!empty($entry['created_by'])) {
             $entry_creator = new WP_User($entry['created_by']);
             foreach ($created_by_matches as $created_by_match) {
                 if (!isset($created_by_match[2])) {
                     continue;
                 }
                 $full_tag = $created_by_match[0];
                 $property = $created_by_match[2];
                 if ($property == 'roles') {
                     $value = implode(', ', $entry_creator->roles);
                 } else {
                     $value = $entry_creator->get($property);
                 }
                 $value = esc_html($value);
                 $text = str_replace($full_tag, $value, $text);
             }
         }
     }
     return $text;
 }
        public function contacts_tab($contact_id)
        {
            if (false === empty($contact_id)) {
                $search_criteria["status"] = "active";
                $search_criteria["field_filters"][] = array("type" => "meta", "key" => "gcontacts_contact_id", "value" => $contact_id);
                $form_ids = array();
                $forms = GFFormsModel::get_forms(true);
                foreach ($forms as $form) {
                    $form_meta = GFFormsModel::get_form_meta($form->id);
                    $poll_fields = GFCommon::get_fields_by_type($form_meta, array('poll'));
                    if (!empty($poll_fields)) {
                        $form_ids[] = $form->id;
                    }
                }
                if (empty($form_ids)) {
                    return;
                }
                $entries = GFAPI::get_entries($form_ids, $search_criteria);
                if (empty($entries)) {
                    _e("This contact has not submitted any poll entries yet.", "gravityformspolls");
                } else {
                    ?>

                    <h3><span><?php 
                    _e("Poll Entries", "gravityformspolls");
                    ?>
</span></h3>
                    <div>
                        <table id="gcontacts-entry-list" class="widefat">
                            <tr class="gcontacts-entries-header">
                                <td>
                                    <?php 
                    _e("Entry Id", "gravityformspolls");
                    ?>
                                </td>
                                <td>
                                    <?php 
                    _e("Date", "gravityformspolls");
                    ?>
                                </td>
                                <td>
                                    <?php 
                    _e("Form", "gravityformspolls");
                    ?>
                                </td>
                            </tr>
                            <?php 
                    foreach ($entries as $entry) {
                        $form_id = $entry["form_id"];
                        $form = GFFormsModel::get_form_meta($form_id);
                        $form_title = rgar($form, "title");
                        $entry_id = $entry["id"];
                        $entry_date = GFCommon::format_date(rgar($entry, "date_created"), false);
                        $entry_url = admin_url("admin.php?page=gf_entries&view=entry&id={$form_id}&lid={$entry_id}");
                        ?>
                                <tr>
                                    <td>
                                        <a href="<?php 
                        echo $entry_url;
                        ?>
"><?php 
                        echo $entry_id;
                        ?>
</a>
                                    </td>
                                    <td>
                                        <?php 
                        echo $entry_date;
                        ?>
                                    </td>
                                    <td>
                                        <?php 
                        echo $form_title;
                        ?>
                                    </td>
                                </tr>
                            <?php 
                    }
                    ?>
                        </table>
                    </div>
                <?php 
                }
            }
        }
Exemple #15
0
 /**
  * Displays the entry value.
  *
  * @param object $entry
  * @param string $field_id
  */
 function column_default($entry, $column_id)
 {
     $field_id = (string) str_replace('field_id-', '', $column_id);
     $form = $this->get_form();
     $form_id = $this->get_form_id();
     $field = GFFormsModel::get_field($form, $field_id);
     $columns = GFFormsModel::get_grid_columns($form_id, true);
     $value = rgar($entry, $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, $entry, $field);
     switch ($field_id) {
         case 'source_url':
             $value = "<a href='" . esc_attr($entry['source_url']) . "' target='_blank' alt='" . esc_attr($entry['source_url']) . "' title='" . esc_attr($entry['source_url']) . "'>.../" . esc_attr(GFCommon::truncate_url($entry['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, $entry['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, $entry, $field_id, $columns, $form);
             } else {
                 $value = esc_html($value);
             }
     }
     $value = apply_filters('gform_entries_field_value', $value, $form_id, $field_id, $entry);
     $primary = $this->get_primary_column_name();
     if ($column_id == $primary) {
         $edit_url = $this->get_detail_url($entry);
         $value = '<a title="' . esc_attr__('View this entry', 'gravityforms') . '" href="' . $edit_url . '">' . $value . '</a>';
     }
     echo $value;
 }
Exemple #16
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 
    }
 /**
  * Generate HTML output for a single note
  *
  * @since 1.17
  *
  * @param object $note Note object with id, user_id, date_created, value, note_type, user_name, user_email vars
  * @param bool $show_delete Whether to show the bulk delete inputs
  *
  * @return string HTML
  */
 public static function display_note($note, $show_delete = false)
 {
     if (!is_object($note)) {
         return '';
     }
     $note_content = array('avatar' => get_avatar($note->user_id, 48), 'user_name' => $note->user_name, 'user_email' => $note->user_email, 'added_on' => esc_html__('added on {date_created_formatted}', 'gravityview'), 'value' => wpautop(esc_html($note->value)), 'date_created' => $note->date_created, 'date_created_formatted' => GFCommon::format_date($note->date_created, false), 'user_id' => intval($note->user_id), 'note_type' => $note->note_type, 'note_id' => intval($note->id));
     /**
      * @filter `gravityview/field/notes/content` Modify the note content before rendering in the template
      * @since 1.17
      * @param array $note_content Array of note content that will be replaced in template files
      * @param object $note Note object with id, user_id, date_created, value, note_type, user_name, user_email vars
      * @param boolean $show_delete True: Notes are editable. False: no editing notes.
      */
     $note_content = apply_filters('gravityview/field/notes/content', $note_content, $note, $show_delete);
     ob_start();
     GravityView_View::getInstance()->get_template_part('note', 'detail');
     $note_detail_html = ob_get_clean();
     foreach ($note_content as $tag => $value) {
         $note_detail_html = str_replace('{' . $tag . '}', $value, $note_detail_html);
     }
     $note_row_template = $show_delete && GVCommon::has_cap('gravityview_delete_entry_notes') ? 'row-editable' : 'row';
     ob_start();
     GravityView_View::getInstance()->get_template_part('note', $note_row_template);
     $note_row = ob_get_clean();
     $replacements = array('{note_id}' => $note_content['note_id'], '{row_class}' => 'gv-note', '{note_detail}' => $note_detail_html);
     // Strip extra whitespace in template
     $output = normalize_whitespace($note_row);
     foreach ($replacements as $tag => $replacement) {
         $output = str_replace($tag, $replacement, $output);
     }
     return $output;
 }
Exemple #18
0
 /**
  * Displays the entry value.
  *
  * @param object $entry
  * @param string $field_id
  */
 function column_default($entry, $column_id)
 {
     $field_id = (string) str_replace('field_id-', '', $column_id);
     $form = $this->get_form();
     $form_id = $this->get_form_id();
     $field = GFFormsModel::get_field($form, $field_id);
     $columns = GFFormsModel::get_grid_columns($form_id, true);
     $value = rgar($entry, $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, $entry, $field);
     switch ($field_id) {
         case 'source_url':
             $value = "<a href='" . esc_attr($entry['source_url']) . "' target='_blank' alt='" . esc_attr($entry['source_url']) . "' title='" . esc_attr($entry['source_url']) . "'>.../" . esc_attr(GFCommon::truncate_url($entry['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, $entry['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, $entry, $field_id, $columns, $form);
             } else {
                 $value = esc_html($value);
             }
     }
     $value = apply_filters('gform_entries_field_value', $value, $form_id, $field_id, $entry);
     $primary = $this->get_primary_column_name();
     $query_string = $this->get_detail_query_string($entry);
     if ($column_id == $primary) {
         $edit_url = $this->get_detail_url($entry);
         echo '<a title="' . esc_attr__('View this entry', 'gravityforms') . '" href="' . $edit_url . '">' . $value . '</a>';
     } else {
         /**
          * Used to inject markup and replace the value of any non-first column in the entry list grid.
          *
          * @param string $value        The value of the field
          * @param int    $form_id      The ID of the current form
          * @param int    $field_id     The ID of the field
          * @param array  $entry        The Entry object
          * @param string $query_string The current page's query string
          */
         echo apply_filters('gform_entries_column_filter', $value, $form_id, $field_id, $entry, $query_string);
         // Maintains gap between value and content from gform_entries_column which existed when using 1.9 and earlier.
         echo '&nbsp; ';
         /**
          * Fired within the entries column
          *
          * Used to insert additional entry details
          *
          * @param int    $form_id      The ID of the current form
          * @param int    $field_id     The ID of the field
          * @param string $value        The value of the field
          * @param array  $entry        The Entry object
          * @param string $query_string The current page's query string
          */
         do_action('gform_entries_column', $form_id, $field_id, $value, $entry, $query_string);
     }
 }
    public static function notes_grid($notes, $is_editable, $emails = null, $autoresponder_subject = "")
    {
        if (sizeof($notes) > 0 && $is_editable && GFCommon::current_user_can_any("gravityforms_edit_entry_notes")) {
            ?>
            <div class="alignleft actions" style="padding:3px 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>
                </select>
                <?php 
            $apply_button = '<input type="submit" class="button" value="' . __("Apply", "gravityforms") . '" onclick="jQuery(\'#action\').val(\'bulk\');" style="width: 50px;" />';
            echo apply_filters("gform_notes_apply_button", $apply_button);
            ?>
            </div>
            <?php 
        }
        ?>
        <table class="widefat fixed entry-detail-notes" cellspacing="0">
            <?php 
        if (!$is_editable) {
            ?>
            <thead>
                <tr>
                    <th id="notes">Notes</th>
                </tr>
            </thead>
            <?php 
        }
        ?>
            <tbody id="the-comment-list" class="list:comment">
            <?php 
        $count = 0;
        $notes_count = sizeof($notes);
        foreach ($notes as $note) {
            $count++;
            $is_last = $count >= $notes_count ? true : false;
            ?>
                <tr valign="top">
                    <?php 
            if ($is_editable && GFCommon::current_user_can_any("gravityforms_edit_entry_notes")) {
                ?>
                        <th class="check-column" scope="row" style="padding:9px 3px 0 0">
                            <input type="checkbox" value="<?php 
                echo $note->id;
                ?>
" name="note[]"/>
                        </th>
                        <td colspan="2">
                    <?php 
            } else {
                ?>
                        <td class="entry-detail-note<?php 
                echo $is_last ? " lastrow" : "";
                ?>
">
                    <?php 
            }
            ?>
                            <div style="margin-top:4px;">
                                <div class="note-avatar"><?php 
            echo get_avatar($note->user_id, 48);
            ?>
</div>
                                <h6 class="note-author"> <?php 
            echo esc_html($note->user_name);
            ?>
</h6>
                                <p style="line-height:130%; text-align:left; margin-top:3px;"><a href="mailto:<?php 
            echo esc_attr($note->user_email);
            ?>
"><?php 
            echo esc_html($note->user_email);
            ?>
</a><br />
                                <?php 
            _e("added on", "gravityforms");
            ?>
 <?php 
            echo esc_html(GFCommon::format_date($note->date_created, false));
            ?>
</p>
                            </div>
                            <div class="detail-note-content"><?php 
            echo esc_html($note->value);
            ?>
</div>
                        </td>

                </tr>
                <?php 
        }
        if ($is_editable && GFCommon::current_user_can_any("gravityforms_edit_entry_notes")) {
            ?>
                <tr>
                    <td colspan="3" style="padding:10px;" class="lastrow">
                        <textarea name="new_note" style="width:100%; height:50px; margin-bottom:4px;"></textarea>
                        <?php 
            $note_button = '<input type="submit" name="add_note" value="' . __("Add Note", "gravityforms") . '" class="button" style="width:auto;padding-bottom:2px;" onclick="jQuery(\'#action\').val(\'add_note\');"/>';
            echo apply_filters("gform_addnote_button", $note_button);
            if (!empty($emails)) {
                ?>
                            &nbsp;&nbsp;
                            <span>
                                <select name="gentry_email_notes_to" onchange="if(jQuery(this).val() != '') {jQuery('#gentry_email_subject_container').css('display', 'inline');} else{jQuery('#gentry_email_subject_container').css('display', 'none');}">
                                    <option value=""><?php 
                _e("Also email this note to", "gravityforms");
                ?>
</option>
                                    <?php 
                foreach ($emails as $email) {
                    ?>
                                        <option value="<?php 
                    echo $email;
                    ?>
"><?php 
                    echo $email;
                    ?>
</option>
                                    <?php 
                }
                ?>
                                </select>
                                &nbsp;&nbsp;

                                <span id='gentry_email_subject_container' style="display:none;">
                                    <label for="gentry_email_subject"><?php 
                _e("Subject:", "gravityforms");
                ?>
</label>
                                    <input type="text" name="gentry_email_subject" id="gentry_email_subject" value="<?php 
                echo $autoresponder_subject;
                ?>
" style="width:35%"/>
                                </span>
                            </span>
                        <?php 
            }
            ?>
                    </td>
                </tr>
            <?php 
        }
        ?>
            </tbody>
        </table>
        <?php 
    }
    public function contacts_tab($contact_id)
    {
        if (false === empty($contact_id)) {
            $search_criteria['status'] = 'active';
            $search_criteria['field_filters'][] = array('type' => 'meta', 'key' => 'gcontacts_contact_id', 'value' => $contact_id);
            $form_ids = array();
            $forms = GFFormsModel::get_forms(true);
            foreach ($forms as $form) {
                $form_meta = GFFormsModel::get_form_meta($form->id);
                $poll_fields = GFAPI::get_fields_by_type($form_meta, array('poll'));
                if (!empty($poll_fields)) {
                    $form_ids[] = $form->id;
                }
            }
            if (empty($form_ids)) {
                return;
            }
            $entries = GFAPI::get_entries($form_ids, $search_criteria);
            if (empty($entries)) {
                esc_html_e('This contact has not submitted any poll entries yet.', 'gravityformspolls');
            } else {
                ?>

				<h3><span><?php 
                esc_html_e('Poll Entries', 'gravityformspolls');
                ?>
</span></h3>
				<div>
					<table id="gcontacts-entry-list" class="widefat">
						<tr class="gcontacts-entries-header">
							<td>
								<?php 
                esc_html_e('Entry Id', 'gravityformspolls');
                ?>
							</td>
							<td>
								<?php 
                esc_html_e('Date', 'gravityformspolls');
                ?>
							</td>
							<td>
								<?php 
                esc_html_e('Form', 'gravityformspolls');
                ?>
							</td>
						</tr>
						<?php 
                foreach ($entries as $entry) {
                    $form_id = $entry['form_id'];
                    $form = GFFormsModel::get_form_meta($form_id);
                    $form_title = rgar($form, 'title');
                    $entry_id = $entry['id'];
                    $entry_date = GFCommon::format_date(rgar($entry, 'date_created'), false);
                    $entry_url = admin_url("admin.php?page=gf_entries&view=entry&id={$form_id}&lid={$entry_id}");
                    ?>
							<tr>
								<td>
									<a href="<?php 
                    echo $entry_url;
                    ?>
"><?php 
                    echo $entry_id;
                    ?>
</a>
								</td>
								<td>
									<?php 
                    echo $entry_date;
                    ?>
								</td>
								<td>
									<?php 
                    echo $form_title;
                    ?>
								</td>
							</tr>
							<?php 
                }
                ?>
					</table>
				</div>
				<?php 
            }
        }
    }
    public static function dashboard()
    {
        $forms = RGFormsModel::get_form_summary();
        if (sizeof($forms) > 0) {
            ?>
            <table class="widefat fixed" cellspacing="0" style="border:0px;">
                <thead>
                    <tr>
                        <td style="text-align:left; padding:8px 0!important; font-weight:bold;"><i><?php 
            _e("Form Name", "gravityforms");
            ?>
</i></td>
                        <td style="text-align:center; padding:8px 0!important; font-weight:bold;"><i><?php 
            _e("Unread Entries", "gravityforms");
            ?>
</i></td>
                        <td style="text-align:left; padding:8px 0!important; font-weight:bold;"><i><?php 
            _e("Last Entry", "gravityforms");
            ?>
</i></td>
                    </tr>
                </thead>

                <tbody class="list:user user-list">
                    <?php 
            foreach ($forms as $form) {
                $date_display = GFCommon::format_date($form["last_lead_date"]);
                ?>
                        <tr class='author-self status-inherit' valign="top">
                            <td class="column-title" style="padding:8px 0;">
                                <a style="display:inline;white-space: nowrap; width: 100%; overflow: hidden; text-overflow: ellipsis; <?php 
                echo $form["unread_count"] > 0 ? "font-weight:bold;" : "";
                ?>
" href="admin.php?page=gf_entries&view=entries&id=<?php 
                echo absint($form["id"]);
                ?>
" title="<?php 
                echo esc_html($form["title"]);
                ?>
 : <?php 
                _e("View All Entries", "gravityforms");
                ?>
"><?php 
                echo esc_html($form["title"]);
                ?>
</a>
                            </td>
                            <td class="column-date" style="padding:8px 0; text-align:center;"><a style="<?php 
                echo $form["unread_count"] > 0 ? "font-weight:bold;" : "";
                ?>
" href="admin.php?page=gf_entries&view=entries&id=<?php 
                echo absint($form["id"]);
                ?>
" title="<?php 
                _e("View Unread Entries", "gravityforms");
                ?>
"><?php 
                echo absint($form["unread_count"]);
                ?>
</a></td>
                            <td class="column-date" style="padding-top:7px;"><?php 
                echo esc_html($date_display);
                ?>
</td>
                        </tr>
                        <?php 
            }
            ?>
                </tbody>
            </table>

            <p class="textright">
            <a class="button" href="admin.php?page=gf_edit_forms"><?php 
            _e("View All Forms", "gravityforms");
            ?>
</a>
          </p>
            <?php 
        } else {
            ?>
            <div>
                <?php 
            echo sprintf(__("You don't have any forms. Let's go %s create one %s!", 'gravityforms'), '<a href="admin.php?page=gf_new_form">', '</a>');
            ?>
            </div>
            <?php 
        }
        if (GFCommon::current_user_can_any("gravityforms_view_updates") && (!function_exists("is_multisite") || !is_multisite() || is_super_admin())) {
            //displaying update message if there is an update and user has permission
            self::dashboard_update_message();
        }
    }
 function column_date($item)
 {
     return GFCommon::format_date(rgar($item, 'date'), false);
 }
 function column_workflow_timestamp($item)
 {
     $label = '-';
     if (isset($item['workflow_timestamp'])) {
         $last_updated = date('Y-m-d H:i:s', $item['workflow_timestamp']);
         if ($item['date_created'] != $last_updated) {
             $url_entry = $this->detail_base_url . sprintf('&id=%d&lid=%d', $item['form_id'], $item['id']);
             $last_updated = esc_html(GFCommon::format_date($last_updated, true, 'Y/m/d'));
             $label = "<a href='{$url_entry}'>{$last_updated}</a>";
         }
     }
     echo $label;
 }
Exemple #24
0
 private static function set_form_array_common($form, $lead, $form_id)
 {
     /*
      * Reorder the $form array as we can access the info by Field ID 
      */
     self::get_form_fields($form);
     $form_array = array();
     /*
      * Add form_id and lead_id
      */
     $form_array['form_id'] = $form_id;
     $form_array['entry_id'] = $lead['id'];
     /*
      * Set title and dates (both US and international)
      */
     $form_array['form_title'] = $form['title'];
     $form_array['form_description'] = isset($form['description']) ? $form['description'] : '';
     $form_array['date_created'] = GFCommon::format_date($lead['date_created'], false, 'j/n/Y', false);
     $form_array['date_created_usa'] = GFCommon::format_date($lead['date_created'], false, 'n/j/Y', false);
     /*
      * Include page names
      */
     $form_array['pages'] = $form['pagination']['pages'];
     /*
      * Add misc fields
      */
     $form_array['misc']['date_time'] = GFCommon::format_date($lead['date_created'], false, 'Y-m-d H:i:s', false);
     $form_array['misc']['time_24hr'] = GFCommon::format_date($lead['date_created'], false, 'H:i', false);
     $form_array['misc']['time_12hr'] = GFCommon::format_date($lead['date_created'], false, 'g:ia', false);
     $form_array['misc']['is_starred'] = $lead['is_starred'];
     $form_array['misc']['is_read'] = $lead['is_read'];
     $form_array['misc']['ip'] = $lead['ip'];
     $form_array['misc']['source_url'] = $lead['source_url'];
     $form_array['misc']['post_id'] = $lead['post_id'];
     $form_array['misc']['currency'] = $lead['currency'];
     $form_array['misc']['payment_status'] = $lead['payment_status'];
     $form_array['misc']['payment_date'] = $lead['payment_date'];
     $form_array['misc']['transaction_id'] = $lead['transaction_id'];
     $form_array['misc']['payment_amount'] = $lead['payment_amount'];
     $form_array['misc']['is_fulfilled'] = $lead['is_fulfilled'];
     $form_array['misc']['created_by'] = $lead['created_by'];
     $form_array['misc']['transaction_type'] = $lead['transaction_type'];
     $form_array['misc']['user_agent'] = $lead['user_agent'];
     $form_array['misc']['status'] = $lead['status'];
     /*
      * Add quiz/survey/poll results
      */
     if (class_exists('GFQuiz')) {
         $form_array = self::get_quiz_results($form_array, $form, $lead);
     }
     if (class_exists('GFSurvey')) {
         $form_array = self::get_survey_results($form_array, $form, $lead);
     }
     if (class_exists('GFPolls')) {
         $form_array = self::get_poll_results($form_array, $form, $lead);
     }
     return $form_array;
 }
Exemple #25
0
    public static function payment_details_box($lead, $form)
    {
        ?>
		<!-- PAYMENT BOX -->
		<div id="submitdiv" class="stuffbox">
			<h3 class="hndle" style="cursor:default;">
                <span><?php 
        echo $lead['transaction_type'] == 2 ? esc_html__('Subscription Details', 'gravityforms') : esc_html__('Payment Details', 'gravityforms');
        ?>
</span>
			</h3>

			<div class="inside">
				<div id="submitcomment" class="submitbox">
					<div id="minor-publishing" style="padding:10px;">
						<?php 
        $payment_status = apply_filters('gform_payment_status', $lead['payment_status'], $form, $lead);
        if (!empty($payment_status)) {
            ?>
							<div id="gf_payment_status" class="gf_payment_detail">
								<?php 
            esc_html_e('Status', 'gravityforms');
            ?>
:
								<span id="gform_payment_status"><?php 
            echo $payment_status;
            // May contain HTML
            ?>
</span>
							</div>

							<?php 
            /**
             * Allows for modification on the form payment date format
             *
             * @param array $form The Form object to filter through
             * @param array $lead The Lead object to filter through
             */
            $payment_date = apply_filters('gform_payment_date', GFCommon::format_date($lead['payment_date'], false, 'Y/m/d', $lead['transaction_type'] != 2), $form, $lead);
            if (!empty($payment_date)) {
                ?>
								<div id="gf_payment_date" class="gf_payment_detail">
									<?php 
                echo $lead['transaction_type'] == 2 ? esc_html__('Start Date', 'gravityforms') : esc_html__('Date', 'gravityforms');
                ?>
:
									<span id='gform_payment_date'><?php 
                echo $payment_date;
                // May contain HTML
                ?>
</span>
								</div>
							<?php 
            }
            /**
             * Allows filtering through a payment transaction ID
             *
             * @param int $lead['transaction_id'] The transaction ID that can be modified
             * @param array $form The Form object to be filtered when modifying the transaction ID
             * @param array $lead The Lead object to be filtered when modifying the transaction ID
             */
            $transaction_id = apply_filters('gform_payment_transaction_id', $lead['transaction_id'], $form, $lead);
            if (!empty($transaction_id)) {
                ?>
								<div id="gf_payment_transaction_id" class="gf_payment_detail">
									<?php 
                echo $lead['transaction_type'] == 2 ? esc_html__('Subscription Id', 'gravityforms') : esc_html__('Transaction Id', 'gravityforms');
                ?>
:
									<span id='gform_payment_transaction_id'><?php 
                echo $transaction_id;
                // May contain HTML
                ?>
</span>
								</div>
							<?php 
            }
            /**
             * Filter through the way the Payment Amount is rendered
             *
             * @param string $lead['payment_amount'] The payment amount taken from the lead object
             * @param string $lead['currency'] The payment currency taken from the lead object
             * @param array $form The Form onject to filter through
             * @param array $lead The lead object to filter through
             */
            $payment_amount = apply_filters('gform_payment_amount', GFCommon::to_money($lead['payment_amount'], $lead['currency']), $form, $lead);
            if (!rgblank($payment_amount)) {
                ?>
								<div id="gf_payment_amount" class="gf_payment_detail">
									<?php 
                echo $lead['transaction_type'] == 2 ? esc_html__('Recurring Amount', 'gravityforms') : esc_html__('Amount', 'gravityforms');
                ?>
:
									<span id='gform_payment_amount'><?php 
                echo $payment_amount;
                // May contain HTML
                ?>
</span>
								</div>
							<?php 
            }
        }
        /**
         * Fires after the Form Payment Details (The type of payment, the cost, the ID, etc)
         *
         * @param int $form['id'] The current Form ID
         * @param array $lead The current Lead object
         */
        do_action('gform_payment_details', $form['id'], $lead);
        ?>
					</div>
				</div>
			</div>
		</div>
	<?php 
    }
    public static function display($args)
    {
        $defaults = array('check_permissions' => true, 'detail_base_url' => admin_url('admin.php?page=gravityflow-inbox&view=entry'));
        $args = array_merge($defaults, $args);
        if ($args['check_permissions'] && !GFAPI::current_user_can_any('gravityflow_activity')) {
            esc_html_e("You don't have permission to view this page", 'gravityflow');
            return;
        }
        $events = Gravity_Flow_Activity::get_events();
        if (sizeof($events) > 0) {
            ?>

			<table id="gravityflow-activity" class="widefat" cellspacing="0" style="border:0px;">
				<thead>
				<tr>
					<th data-label="<?php 
            esc_html_e('Event ID', 'gravityflow');
            ?>
"><?php 
            esc_html_e('Event ID', 'gravityflow');
            ?>
</th>
					<th><?php 
            esc_html_e('Date', 'gravityflow');
            ?>
</th>
					<th><?php 
            esc_html_e('Form', 'gravityflow');
            ?>
</th>
					<th><?php 
            esc_html_e('Entry ID', 'gravityflow');
            ?>
</th>
					<th><?php 
            esc_html_e('Type', 'gravityflow');
            ?>
</th>
					<th><?php 
            esc_html_e('Event', 'gravityflow');
            ?>
</th>
					<th><?php 
            esc_html_e('Step', 'gravityflow');
            ?>
</th>
					<th><?php 
            esc_html_e('Duration', 'gravityflow');
            ?>
</th>
				</tr>
				</thead>

				<tbody class="list:user user-list">
				<?php 
            foreach ($events as $event) {
                $form = GFAPI::get_form($event->form_id);
                $base_url = $args['detail_base_url'];
                $url_entry = $base_url . sprintf('&id=%d&lid=%d', $event->form_id, $event->lead_id);
                $url_entry = esc_url_raw($url_entry);
                $link = "<a href='%s'>%s</a>";
                ?>
					<tr>
						<td data-label="<?php 
                esc_html_e('ID', 'gravityflow');
                ?>
">
							<?php 
                echo esc_html($event->id);
                ?>
						</td>
						<td data-label="<?php 
                esc_html_e('Date', 'gravityflow');
                ?>
">
							<?php 
                echo esc_html(GFCommon::format_date($event->date_created));
                ?>
						</td>
						<td data-label="<?php 
                esc_html_e('Form', 'gravityflow');
                ?>
">
							<?php 
                printf($link, $url_entry, $form['title']);
                ?>
						</td>
						<td data-label="<?php 
                esc_html_e('Entry ID', 'gravityflow');
                ?>
">
							<?php 
                printf($link, $url_entry, $event->lead_id);
                ?>
						</td>
						<td data-label="<?php 
                esc_html_e('Type', 'gravityflow');
                ?>
">
							<?php 
                echo esc_html($event->log_object);
                ?>
						</td>
						<td data-label="<?php 
                esc_html_e('Event', 'gravityflow');
                ?>
">
							<?php 
                switch ($event->log_object) {
                    case 'workflow':
                        echo $event->log_event;
                        break;
                    case 'step':
                        echo esc_html($event->log_event);
                        break;
                    case 'assignee':
                        echo esc_html($event->display_name) . ' <i class="fa fa-arrow-right"></i> ' . esc_html($event->log_value);
                        break;
                    default:
                        echo esc_html($event->log_value);
                }
                ?>
						</td>
						<td data-label="<?php 
                esc_html_e('Step', 'gravityflow');
                ?>
">
							<?php 
                if ($event->feed_id) {
                    $step = gravity_flow()->get_step($event->feed_id);
                    if ($step) {
                        $step_name = $step->get_name();
                        echo esc_html($step_name);
                    }
                }
                ?>
						</td>
						<td data-label="<?php 
                esc_html_e('Event', 'gravityflow');
                ?>
">
							<?php 
                if (!empty($event->duration)) {
                    echo self::format_duration($event->duration);
                }
                ?>
						</td>

					</tr>
				<?php 
            }
            ?>
				</tbody>
			</table>

		<?php 
        } else {
            ?>
				<div id="gravityflow-no-activity-container">

					<div id="gravityflow-no-activity-content">
						<i class="fa fa-spinner fa-pulse fa-3x fa-fw"></i>
						<br /><br />
						<?php 
            esc_html_e('Waiting for workflow activity', 'gravityflow');
            ?>
					</div>

				</div>
			<?php 
        }
    }
Exemple #27
0
    public static function dashboard()
    {
        $forms = RGFormsModel::get_form_summary();
        if (sizeof($forms) > 0) {
            ?>
			<table class="widefat gf_dashboard_view" cellspacing="0" style="border:0px;">
				<thead>
				<tr>
					<td class="gf_dashboard_form_title_header" style="text-align:left; padding:8px 18px!important; font-weight:bold;">
						<i><?php 
            esc_html_e('Title', 'gravityforms');
            ?>
</i></td>
					<td class="gf_dashboard_entries_unread_header" style="text-align:center; padding:8px 18px!important; font-weight:bold;">
						<i><?php 
            esc_html_e('Unread', 'gravityforms');
            ?>
</i></td>
					<td class="gf_dashboard_entries_total_header" style="text-align:center; padding:8px 18px!important; font-weight:bold;">
						<i><?php 
            esc_html_e('Total', 'gravityforms');
            ?>
</i></td>
				</tr>
				</thead>

				<tbody class="list:user user-list">
				<?php 
            foreach ($forms as $form) {
                $date_display = GFCommon::format_date($form['last_lead_date']);
                if (!empty($form['total_leads'])) {
                    ?>
						<tr class='author-self status-inherit' valign="top">
							<td class="gf_dashboard_form_title column-title" style="padding:8px 18px;">
								<a <?php 
                    echo $form['unread_count'] > 0 ? "class='form_title_unread' style='font-weight:bold;'" : '';
                    ?>
 href="admin.php?page=gf_entries&view=entries&id=<?php 
                    echo absint($form['id']);
                    ?>
" title="<?php 
                    echo esc_attr($form['title']);
                    ?>
 : <?php 
                    esc_attr_e('View All Entries', 'gravityforms');
                    ?>
"><?php 
                    echo esc_html($form['title']);
                    ?>
</a>
							</td>
							<td class="gf_dashboard_entries_unread column-date" style="padding:8px 18px; text-align:center;">
								<a <?php 
                    echo $form['unread_count'] > 0 ? "class='form_entries_unread' style='font-weight:bold;'" : '';
                    ?>
 href="admin.php?page=gf_entries&view=entries&filter=unread&id=<?php 
                    echo absint($form['id']);
                    ?>
" title="<?php 
                    printf(esc_attr__('Last Entry: %s', 'gravityforms'), $date_display);
                    ?>
"><?php 
                    echo absint($form['unread_count']);
                    ?>
</a>
							</td>
							<td class="gf_dashboard_entries_total column-date" style="padding:8px 18px; text-align:center;">
								<a href="admin.php?page=gf_entries&view=entries&id=<?php 
                    echo absint($form['id']);
                    ?>
" title="<?php 
                    esc_attr_e('View All Entries', 'gravityforms');
                    ?>
"><?php 
                    echo absint($form['total_leads']);
                    ?>
</a>
							</td>
						</tr>
					<?php 
                }
            }
            ?>
				</tbody>
			</table>

			<?php 
            if (GFCommon::current_user_can_any('gravityforms_edit_forms')) {
                ?>
				<p class="textright">
				<a class="gf_dashboard_button button" href="admin.php?page=gf_edit_forms"><?php 
                esc_html_e('View All Forms', 'gravityforms');
                ?>
</a>
			<?php 
            }
            ?>
			</p>
		<?php 
        } else {
            ?>
			<div class="gf_dashboard_noforms_notice">
				<?php 
            echo sprintf(esc_html__("You don't have any forms. Let's go %s create one %s!", 'gravityforms'), '<a href="admin.php?page=gf_new_form">', '</a>');
            ?>
			</div>
		<?php 
        }
        if (GFCommon::current_user_can_any('gravityforms_view_updates') && (!function_exists('is_multisite') || !is_multisite() || is_super_admin())) {
            //displaying update message if there is an update and user has permission
            self::dashboard_update_message();
        }
    }
    public static function notes_grid($notes, $is_editable, $emails = null, $subject = '')
    {
        if (empty($notes)) {
            return;
        }
        foreach ($notes as $note) {
            ?>

			<div id="gravityflow-note-<?php 
            echo $note->id;
            ?>
" class="gravityflow-note gravityflow-note-<?php 
            echo $note->user_name;
            ?>
">
				<div class="gravityflow-note-avatar">
					<div>
						<?php 
            if (empty($note->user_id)) {
                $img_url = '';
                if ($note->user_name !== 'gravityflow') {
                    $step = Gravity_Flow_Steps::get($note->user_name);
                    if ($step) {
                        $img_url = $step->get_icon_url();
                    }
                }
                if (empty($img_url)) {
                    $img_url = gravity_flow()->get_base_url() . '/images/gravityflow-icon-blue.svg';
                }
                if (strpos($img_url, 'http') !== false) {
                    printf('<img class="avatar avatar-65 photo" src="%s" style="width:65px;height:65px;" />', $img_url);
                } else {
                    printf('<span class="avatar avatar-65 photo">%s</span>', $img_url);
                }
            } else {
                echo get_avatar($note->user_id, 65);
            }
            ?>
					</div>
					<div></div>
				</div>

				<div class="gravityflow-note-body-wrap">
					<div class="gravityflow-note-body">
						<div class="gravityflow-note-header">

							<div class="gravityflow-note-title">
								<?php 
            if (empty($note->user_id)) {
                if ($note->user_name == 'gravityflow') {
                    echo esc_html(gravity_flow()->translate_navigation_label('Workflow'));
                } else {
                    $step = Gravity_Flow_Steps::get($note->user_name);
                    if ($step) {
                        echo $step->get_label();
                    } else {
                        echo esc_html($note->user_name);
                    }
                }
            } else {
                echo esc_html($note->user_name);
            }
            ?>
							</div>
							<div class="gravityflow-note-meta">
								<?php 
            echo esc_html(GFCommon::format_date($note->date_created, false, 'd M Y g:i a', false));
            ?>
							</div>
						</div>

						<div class="gravityflow-note-body">
							<?php 
            echo nl2br(esc_html($note->value));
            ?>
						</div>

					</div>
				</div>

			</div>
		<?php 
        }
    }