예제 #1
0
    public static function lead_detail_page()
    {
        global $current_user;
        if (!GFCommon::ensure_wp_version()) {
            return;
        }
        echo GFCommon::get_remote_message();
        $form = RGFormsModel::get_form_meta(absint($_GET['id']));
        $form_id = absint($form['id']);
        $form = apply_filters('gform_admin_pre_render_' . $form_id, apply_filters('gform_admin_pre_render', $form));
        $lead_id = absint(rgget('lid'));
        $filter = rgget('filter');
        $status = in_array($filter, array('trash', 'spam')) ? $filter : 'active';
        $position = rgget('pos') ? rgget('pos') : 0;
        $sort_direction = rgget('dir') ? rgget('dir') : 'DESC';
        $sort_field = empty($_GET['sort']) ? 0 : $_GET['sort'];
        $sort_field_meta = RGFormsModel::get_field($form, $sort_field);
        $is_numeric = $sort_field_meta['type'] == 'number';
        $star = $filter == 'star' ? 1 : null;
        $read = $filter == 'unread' ? 0 : null;
        $search_criteria['status'] = $status;
        if ($star) {
            $search_criteria['field_filters'][] = array('key' => 'is_starred', 'value' => (bool) $star);
        }
        if (!is_null($read)) {
            $search_criteria['field_filters'][] = array('key' => 'is_read', 'value' => (bool) $read);
        }
        $search_field_id = rgget('field_id');
        if (isset($_GET['field_id']) && $_GET['field_id'] !== '') {
            $key = $search_field_id;
            $val = rgget('s');
            $strpos_row_key = strpos($search_field_id, '|');
            if ($strpos_row_key !== false) {
                //multi-row likert
                $key_array = explode('|', $search_field_id);
                $key = $key_array[0];
                $val = $key_array[1] . ':' . $val;
            }
            $search_criteria['field_filters'][] = array('key' => $key, 'operator' => rgempty('operator', $_GET) ? 'is' : rgget('operator'), 'value' => $val);
            $type = rgget('type');
            if (empty($type)) {
                if (rgget('field_id') == '0') {
                    $search_criteria['type'] = 'global';
                }
            }
        }
        $paging = array('offset' => $position, 'page_size' => 1);
        if (!empty($sort_field)) {
            $sorting = array('key' => $_GET['sort'], 'direction' => $sort_direction, 'is_numeric' => $is_numeric);
        } else {
            $sorting = array();
        }
        $total_count = 0;
        $leads = GFAPI::get_entries($form['id'], $search_criteria, $sorting, $paging, $total_count);
        $prev_pos = !rgblank($position) && $position > 0 ? $position - 1 : false;
        $next_pos = !rgblank($position) && $position < $total_count - 1 ? $position + 1 : false;
        // unread filter requires special handling for pagination since entries are filter out of the query as they are read
        if ($filter == 'unread') {
            $next_pos = $position;
            if ($next_pos + 1 == $total_count) {
                $next_pos = false;
            }
        }
        if (!$lead_id) {
            $lead = !empty($leads) ? $leads[0] : false;
        } else {
            $lead = GFAPI::get_entry($lead_id);
        }
        if (!$lead) {
            esc_html_e("Oops! We couldn't find your entry. Please try again", 'gravityforms');
            return;
        }
        RGFormsModel::update_lead_property($lead['id'], 'is_read', 1);
        switch (RGForms::post('action')) {
            case 'update':
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                //Loading files that have been uploaded to temp folder
                $files = GFCommon::json_decode(stripslashes(RGForms::post('gform_uploaded_files')));
                if (!is_array($files)) {
                    $files = array();
                }
                GFFormsModel::$uploaded_files[$form_id] = $files;
                GFFormsModel::save_lead($form, $lead);
                do_action('gform_after_update_entry', $form, $lead['id']);
                do_action("gform_after_update_entry_{$form['id']}", $form, $lead['id']);
                $lead = RGFormsModel::get_lead($lead['id']);
                $lead = GFFormsModel::set_entry_meta($lead, $form);
                break;
            case 'add_note':
                check_admin_referer('gforms_update_note', 'gforms_update_note');
                $user_data = get_userdata($current_user->ID);
                RGFormsModel::add_note($lead['id'], $current_user->ID, $user_data->display_name, stripslashes($_POST['new_note']));
                //emailing notes if configured
                if (rgpost('gentry_email_notes_to')) {
                    GFCommon::log_debug('GFEntryDetail::lead_detail_page(): Preparing to email entry notes.');
                    $email_to = $_POST['gentry_email_notes_to'];
                    $email_from = $current_user->user_email;
                    $email_subject = stripslashes($_POST['gentry_email_subject']);
                    $body = stripslashes($_POST['new_note']);
                    $headers = "From: \"{$email_from}\" <{$email_from}> \r\n";
                    GFCommon::log_debug("GFEntryDetail::lead_detail_page(): Emailing notes - TO: {$email_to} SUBJECT: {$email_subject} BODY: {$body} HEADERS: {$headers}");
                    $is_success = wp_mail($email_to, $email_subject, $body, $headers);
                    $result = is_wp_error($is_success) ? $is_success->get_error_message() : $is_success;
                    GFCommon::log_debug("GFEntryDetail::lead_detail_page(): Result from wp_mail(): {$result}");
                    if (!is_wp_error($is_success) && $is_success) {
                        GFCommon::log_debug('GFEntryDetail::lead_detail_page(): Mail was passed from WordPress to the mail server.');
                    } else {
                        GFCommon::log_error('GFEntryDetail::lead_detail_page(): The mail message was passed off to WordPress for processing, but WordPress was unable to send the message.');
                    }
                    if (has_filter('phpmailer_init')) {
                        GFCommon::log_debug(__METHOD__ . '(): The WordPress phpmailer_init hook has been detected, usually used by SMTP plugins, it can impact mail delivery.');
                    }
                    do_action('gform_post_send_entry_note', $result, $email_to, $email_from, $email_subject, $body, $form, $lead);
                }
                break;
            case 'add_quick_note':
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                $user_data = get_userdata($current_user->ID);
                RGFormsModel::add_note($lead['id'], $current_user->ID, $user_data->display_name, stripslashes($_POST['quick_note']));
                break;
            case 'bulk':
                check_admin_referer('gforms_update_note', 'gforms_update_note');
                if ($_POST['bulk_action'] == 'delete') {
                    if (!GFCommon::current_user_can_any('gravityforms_edit_entry_notes')) {
                        die(esc_html__("You don't have adequate permission to delete notes.", 'gravityforms'));
                    }
                    RGFormsModel::delete_notes($_POST['note']);
                }
                break;
            case 'trash':
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                RGFormsModel::update_lead_property($lead['id'], 'status', 'trash');
                $lead = RGFormsModel::get_lead($lead['id']);
                break;
            case 'restore':
            case 'unspam':
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                RGFormsModel::update_lead_property($lead['id'], 'status', 'active');
                $lead = RGFormsModel::get_lead($lead['id']);
                break;
            case 'spam':
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                RGFormsModel::update_lead_property($lead['id'], 'status', 'spam');
                $lead = RGFormsModel::get_lead($lead['id']);
                break;
            case 'delete':
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                if (!GFCommon::current_user_can_any('gravityforms_delete_entries')) {
                    die(esc_html__("You don't have adequate permission to delete entries.", 'gravityforms'));
                }
                RGFormsModel::delete_lead($lead['id']);
                ?>
				<script type="text/javascript">
					document.location.href = '<?php 
                echo 'admin.php?page=gf_entries&view=entries&id=' . absint($form['id']);
                ?>
';
				</script>
				<?php 
                break;
        }
        $mode = empty($_POST['screen_mode']) ? 'view' : $_POST['screen_mode'];
        $min = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG || isset($_GET['gform_debug']) ? '' : '.min';
        ?>
		<link rel="stylesheet" href="<?php 
        echo GFCommon::get_base_url();
        ?>
/css/admin<?php 
        echo $min;
        ?>
.css" />
		<script type="text/javascript">

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

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

					return true;
				}
			}

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

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

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

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

			function ResendNotifications() {

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

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

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

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

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

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

							toggleNotificationOverride();

						}

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

			}

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

			function toggleNotificationOverride(isInit) {

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

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

		</script>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

							</div>

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

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

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

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

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

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

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

                    return true;
                }
            }

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

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

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

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

            function ResendNotifications() {

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

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

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

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

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

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

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

            }

            function displayMessage(message, messageClass, container){

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

            }

            function toggleNotificationOverride(isInit) {

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

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

        </script>

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

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

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

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

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

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

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

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

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

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

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

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

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

                                        </div>

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

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

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

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

                                <form method="post">
                                    <?php 
            wp_nonce_field('gforms_update_note', 'gforms_update_note');
            ?>
                                    <div class="inside">
                                        <?php 
            $notes = RGFormsModel::get_lead_notes($lead["id"]);
            //getting email values
            $email_fields = GFCommon::get_email_fields($form);
            $emails = array();
            foreach ($email_fields as $email_field) {
                if (!empty($lead[$email_field["id"]])) {
                    $emails[] = $lead[$email_field["id"]];
                }
            }
            //displaying notes grid
            $subject = !empty($form["autoResponder"]["subject"]) ? "RE: " . GFCommon::replace_variables($form["autoResponder"]["subject"], $form, $lead) : "";
            self::notes_grid($notes, true, $emails, $subject);
            ?>
                                    </div>
                                </form>
                            </div>
                        <?php 
        }
        do_action("gform_entry_detail_content_after", $form, $lead);
        ?>
                    </div>
                </div>
            </div>
        </div>
        </form>
        <?php 
        if (rgpost("action") == "update") {
            ?>
            <div class="updated fade" style="padding:6px;">
                <?php 
            _e("Entry Updated.", "gravityforms");
            ?>
            </div>
            <?php 
        }
    }
예제 #3
0
    private static function get_notification_ui_settings($notification)
    {
        /**
         * These variables are used to convenient "wrap" child form settings in the appropriate HTML.
         */
        $subsetting_open = '
            <td colspan="2" class="gf_sub_settings_cell">
                <div class="gf_animate_sub_settings">
                    <table>
                        <tr>';
        $subsetting_close = '
                        </tr>
                    </table>
                </div>
            </td>';
        $ui_settings = array();
        $form_id = rgget('id');
        $form = RGFormsModel::get_form_meta($form_id);
        $form = apply_filters("gform_admin_pre_render_" . $form_id, apply_filters("gform_admin_pre_render", $form));
        $is_valid = empty(GFCommon::$errors);
        ob_start();
        ?>

        <tr valign="top">
            <th scope="row">
                <label for="gform_notification_name">
                    <?php 
        _e("Name", "gravityforms");
        ?>
                    <?php 
        gform_tooltip("notification_name");
        ?>
                </label>
            </th>
            <td>
                <input type="text" class="fieldwidth-2" name="gform_notification_name" id="gform_notification_name" value="<?php 
        echo esc_attr(rgget("name", $notification));
        ?>
"/>
            </td>
        </tr> <!-- / name -->
        <?php 
        $ui_settings['notification_name'] = ob_get_contents();
        ob_clean();
        ?>

        <?php 
        $notification_events = apply_filters("gform_notification_events", array("form_submission" => __("Form is submitted", "gravityforms")));
        $event_style = count($notification_events) == 1 ? "style='display:none'" : "";
        ?>
        <tr valign="top" <?php 
        echo $event_style;
        ?>
>
            <th scope="row">
                <label for="gform_notification_event">
                    <?php 
        _e("Event", "gravityforms");
        ?>
                    <?php 
        gform_tooltip("notification_event");
        ?>
                </label>

            </th>
            <td>
                <select name="gform_notification_event" id="gform_notification_event">
                <?php 
        foreach ($notification_events as $code => $label) {
            ?>
                    <option value="<?php 
            echo esc_attr($code);
            ?>
" <?php 
            selected(rgar($notification, 'event'), $code);
            ?>
><?php 
            echo esc_html($label);
            ?>
</option>
                    <?php 
        }
        ?>
                </select>
            </td>
        </tr> <!-- / event -->
        <?php 
        $ui_settings['notification_event'] = ob_get_contents();
        ob_clean();
        ?>

        <?php 
        $notification_to_type = !rgempty("gform_notification_to_type") ? rgpost("gform_notification_to_type") : rgar($notification, "toType");
        if (empty($notification_to_type)) {
            $notification_to_type = "email";
        }
        $is_invalid_email_to = !$is_valid && !self::is_valid_notification_to();
        $send_to_class = $is_invalid_email_to ? "gfield_error" : "";
        ?>
        <tr valign="top" class='<?php 
        echo $send_to_class;
        ?>
'>
            <th scope="row">
                <label for="gform_notification_to_email">
                    <?php 
        _e("Send To", "gravityforms");
        ?>
<span class="gfield_required">*</span>
                    <?php 
        gform_tooltip("notification_send_to_email");
        ?>
                </label>

            </th>
            <td>
                <input type="radio" id="gform_notification_to_type_email" name="gform_notification_to_type" <?php 
        checked("email", $notification_to_type);
        ?>
 value="email" onclick="jQuery('.notification_to_container').hide(); jQuery('#gform_notification_to_email_container').show('slow');"/>
                <label for="gform_notification_to_type_email" class="inline">
                    <?php 
        _e("Enter Email", "gravityforms");
        ?>
                </label>
                &nbsp;&nbsp;
                <input type="radio" id="gform_notification_to_type_field" name="gform_notification_to_type" <?php 
        checked("field", $notification_to_type);
        ?>
 value="field" onclick="jQuery('.notification_to_container').hide(); jQuery('#gform_notification_to_field_container').show('slow');"/>
                <label for="gform_notification_to_type_field" class="inline">
                    <?php 
        _e("Select a Field", "gravityforms");
        ?>
                </label>
                &nbsp;&nbsp;
                <input type="radio" id="gform_notification_to_type_routing" name="gform_notification_to_type" <?php 
        checked("routing", $notification_to_type);
        ?>
 value="routing" onclick="jQuery('.notification_to_container').hide(); jQuery('#gform_notification_to_routing_container').show('slow');"/>
                <label for="gform_notification_to_type_routing" class="inline">
                    <?php 
        _e("Configure Routing", "gravityforms");
        ?>
                    <?php 
        gform_tooltip("notification_send_to_routing");
        ?>
                </label>
            </td>
        </tr> <!-- / to email type -->
        <?php 
        $ui_settings['notification_to_email_type'] = ob_get_contents();
        ob_clean();
        ?>

        <tr id="gform_notification_to_email_container" class="notification_to_container <?php 
        echo $send_to_class;
        ?>
" <?php 
        echo $notification_to_type != "email" ? "style='display:none';" : "";
        ?>
>
            <?php 
        echo $subsetting_open;
        ?>
            <th scope="row"><?php 
        _e("Send to Email", "gravityforms");
        ?>
</th>
            <td>
                <?php 
        $to_email = rgget("toType", $notification) == "email" ? rgget("to", $notification) : "";
        ?>
                <input type="text" name="gform_notification_to_email" id="gform_notification_to_email" value="<?php 
        echo esc_attr($to_email);
        ?>
" class="fieldwidth-1" />

                <?php 
        if (rgpost("gform_notification_to_type") == "email" && $is_invalid_email_to) {
            ?>
                    <span class="validation_message"><?php 
            _e("Please enter a valid email address", "gravityforms");
            ?>
</span>
                <?php 
        }
        ?>
            </td>
            <?php 
        echo $subsetting_close;
        ?>
        </tr> <!-- / to email -->
        <?php 
        $ui_settings['notification_to_email'] = ob_get_contents();
        ob_clean();
        ?>

        <?php 
        $email_fields = apply_filters("gform_email_fields_notification_admin_{$form["id"]}", apply_filters("gform_email_fields_notification_admin", GFCommon::get_email_fields($form), $form), $form);
        ?>
        <tr id="gform_notification_to_field_container" class="notification_to_container <?php 
        echo $send_to_class;
        ?>
" <?php 
        echo $notification_to_type != "field" ? "style='display:none';" : "";
        ?>
>
            <?php 
        echo $subsetting_open;
        ?>
            <th scope="row"><?php 
        _e("Send to Field", "gravityforms");
        ?>
</th>
            <td>
                <?php 
        if (!empty($email_fields)) {
            ?>
                    <select name="gform_notification_to_field" id="gform_notification_to_field">
                        <option value=""><?php 
            _e("Select an email field", "gravityforms");
            ?>
</option>
                        <?php 
            $to_field = rgget("toType", $notification) == "field" ? rgget("to", $notification) : "";
            foreach ($email_fields as $field) {
                ?>
                            <option value="<?php 
                echo $field["id"];
                ?>
" <?php 
                echo selected($field["id"], $to_field);
                ?>
><?php 
                echo GFCommon::get_label($field);
                ?>
</option>
                            <?php 
            }
            ?>
                    </select>
                <?php 
        } else {
            ?>
                    <div class="error_base"><p><?php 
            _e("Your form does not have an email field. Add an email field to your form and try again.", "gravityforms");
            ?>
</p></div>
                <?php 
        }
        ?>
            </td>
            <?php 
        echo $subsetting_close;
        ?>
        </tr> <!-- / to email field -->
        <?php 
        $ui_settings['notification_to_email_field'] = ob_get_contents();
        ob_clean();
        ?>

        <tr id="gform_notification_to_routing_container" class="notification_to_container <?php 
        echo $send_to_class;
        ?>
" <?php 
        echo $notification_to_type != "routing" ? "style='display:none';" : "";
        ?>
>
            <?php 
        echo $subsetting_open;
        ?>
            <td colspan="2">
                <div id="gform_notification_to_routing_rules">
                    <?php 
        $routing_fields = self::get_routing_fields($form, "0");
        if (empty($routing_fields)) {
            //if(empty(){
            ?>
                        <div class="gold_notice">
                            <p><?php 
            _e("To use notification routing, your form must have a field supported by conditional logic.", "gravityforms");
            ?>
</p>
                        </div>
                        <?php 
        } else {
            if (empty($notification["routing"])) {
                $notification["routing"] = array(array());
            }
            $count = sizeof($notification["routing"]);
            $routing_list = ",";
            for ($i = 0; $i < $count; $i++) {
                $routing_list .= $i . ",";
                $routing = $notification["routing"][$i];
                $is_invalid_rule = !$is_valid && $_POST["gform_notification_to_type"] == "routing" && !self::is_valid_notification_email(rgar($routing, 'email'));
                $class = $is_invalid_rule ? "class='grouting_rule_error'" : "";
                ?>
                            <div style='width:99%' <?php 
                echo $class;
                ?>
>
                                <?php 
                _e("Send to", "gravityforms");
                ?>
 <input type="text" id="routing_email_<?php 
                echo $i;
                ?>
" value="<?php 
                echo rgar($routing, "email");
                ?>
" onkeyup="SetRouting(<?php 
                echo $i;
                ?>
);"/>
                                <?php 
                _e("if", "gravityforms");
                ?>
 <select id="routing_field_id_<?php 
                echo $i;
                ?>
" class='gfield_routing_select' onchange='jQuery("#routing_value_<?php 
                echo $i;
                ?>
").replaceWith(GetRoutingValues(<?php 
                echo $i;
                ?>
, jQuery(this).val())); SetRouting(<?php 
                echo $i;
                ?>
); '><?php 
                echo self::get_routing_fields($form, rgar($routing, "fieldId"));
                ?>
</select>
                                <select id="routing_operator_<?php 
                echo $i;
                ?>
" onchange="SetRouting(<?php 
                echo $i;
                ?>
)" class="gform_routing_operator">
                                    <option value="is" <?php 
                echo rgar($routing, "operator") == "is" ? "selected='selected'" : "";
                ?>
><?php 
                _e("is", "gravityforms");
                ?>
</option>
                                    <option value="isnot" <?php 
                echo rgar($routing, "operator") == "isnot" ? "selected='selected'" : "";
                ?>
><?php 
                _e("is not", "gravityforms");
                ?>
</option>
                                    <option value=">" <?php 
                echo rgar($routing, "operator") == ">" ? "selected='selected'" : "";
                ?>
><?php 
                _e("greater than", "gravityforms");
                ?>
</option>
                                    <option value="<" <?php 
                echo rgar($routing, "operator") == "<" ? "selected='selected'" : "";
                ?>
><?php 
                _e("less than", "gravityforms");
                ?>
</option>
                                    <option value="contains" <?php 
                echo rgar($routing, "operator") == "contains" ? "selected='selected'" : "";
                ?>
><?php 
                _e("contains", "gravityforms");
                ?>
</option>
                                    <option value="starts_with" <?php 
                echo rgar($routing, "operator") == "starts_with" ? "selected='selected'" : "";
                ?>
><?php 
                _e("starts with", "gravityforms");
                ?>
</option>
                                    <option value="ends_with" <?php 
                echo rgar($routing, "operator") == "ends_with" ? "selected='selected'" : "";
                ?>
><?php 
                _e("ends with", "gravityforms");
                ?>
</option>
                                </select>
                                <?php 
                echo self::get_field_values($i, $form, rgar($routing, "fieldId"), rgar($routing, "value"));
                ?>

                                <a class='gf_insert_field_choice' title='add another rule' onclick='SetRouting(<?php 
                echo $i;
                ?>
); InsertRouting(<?php 
                echo $i + 1;
                ?>
);'><i class='fa fa-plus-square'></i></a>

                                <?php 
                if ($count > 1) {
                    ?>
                                    <img src='<?php 
                    echo GFCommon::get_base_url();
                    ?>
/images/remove.png' id='routing_delete_<?php 
                    echo $i;
                    ?>
' title='remove this email routing' alt='remove this email routing' class='delete_field_choice' style='cursor:pointer;' onclick='DeleteRouting(<?php 
                    echo $i;
                    ?>
);' />
                                <?php 
                }
                ?>
                            </div>
                        <?php 
            }
            if ($is_invalid_rule) {
                ?>
                            <span class="validation_message"><?php 
                _e("Please enter a valid email address for all highlighted routing rules above.", "gravityforms");
                ?>
</span>
                        <?php 
            }
            ?>
                        <input type="hidden" name="routing_count" id="routing_count" value="<?php 
            echo $routing_list;
            ?>
"/>
                    <?php 
        }
        ?>
                </div>
            </td>
            <?php 
        echo $subsetting_close;
        ?>
        </tr> <!-- / to routing -->
        <?php 
        $ui_settings['notification_to_routing'] = ob_get_contents();
        ob_clean();
        ?>

        <tr valign="top">
            <th scope="row">
                <label for="gform_notification_from_name">
                    <?php 
        _e("From Name", "gravityforms");
        ?>
                    <?php 
        gform_tooltip("notification_from_name");
        ?>
                </label>
            </th>
            <td>
                <input type="text" class="fieldwidth-2 merge-tag-support mt-position-right mt-hide_all_fields" name="gform_notification_from_name" id="gform_notification_from_name" value="<?php 
        echo esc_attr(rgget("fromName", $notification));
        ?>
"/>
            </td>
        </tr> <!-- / from name -->
        <?php 
        $ui_settings['notification_from_name'] = ob_get_contents();
        ob_clean();
        ?>

        <tr valign="top">
            <th scope="row">
                <label for="gform_notification_from">
                    <?php 
        _e("From Email", "gravityforms");
        ?>
                    <?php 
        gform_tooltip("notification_from_email");
        ?>
                </label>
            </th>
            <td>
                <input type="text" class="fieldwidth-2 merge-tag-support mt-position-right mt-hide_all_fields" name="gform_notification_from" id="gform_notification_from" value="<?php 
        echo rgempty("from", $notification) ? "{admin_email}" : esc_attr(rgget("from", $notification));
        ?>
"/>
            </td>
        </tr> <!-- / to from email -->
        <?php 
        $ui_settings['notification_from'] = ob_get_contents();
        ob_clean();
        ?>

        <tr valign="top">
            <th scope="row">
                <label for="gform_notification_reply_to">
                    <?php 
        _e("Reply To", "gravityforms");
        ?>
                    <?php 
        gform_tooltip("notification_reply_to");
        ?>
                </label>
            </th>
            <td>
                <input type="text" name="gform_notification_reply_to" id="gform_notification_reply_to" class="merge-tag-support mt-hide_all_fields" value="<?php 
        echo esc_attr(rgget("replyTo", $notification));
        ?>
" class="fieldwidth-2" />
            </td>
        </tr> <!-- / reply to -->
        <?php 
        $ui_settings['notification_reply_to'] = ob_get_contents();
        ob_clean();
        ?>

        <tr valign="top">
            <th scope="row">
                <label for="gform_notification_bcc">
                    <?php 
        _e("BCC", "gravityforms");
        ?>
                    <?php 
        gform_tooltip("notification_bcc");
        ?>
                </label>
            </th>
            <td>
                <input type="text" name="gform_notification_bcc" id="gform_notification_bcc" value="<?php 
        echo esc_attr(rgget("bcc", $notification));
        ?>
" class="fieldwidth-1" />
            </td>
        </tr> <!-- / bcc -->
        <?php 
        $ui_settings['notification_bcc'] = ob_get_contents();
        ob_clean();
        ?>

        <?php 
        $is_invalid_subject = !$is_valid && empty($_POST["gform_notification_subject"]);
        $subject_class = $is_invalid_subject ? "class='gfield_error'" : "";
        ?>
        <tr valign="top" <?php 
        echo $subject_class;
        ?>
>
            <th scope="row">
                <label for="gform_notification_subject">
                    <?php 
        _e("Subject", "gravityforms");
        ?>
<span class="gfield_required">*</span>
                </label>
            </th>
            <td>
                <input type="text" name="gform_notification_subject" id="gform_notification_subject" class="fieldwidth-1 merge-tag-support mt-hide_all_fields mt-position-right" value="<?php 
        echo esc_attr(rgar($notification, "subject"));
        ?>
" />
                <?php 
        if ($is_invalid_subject) {
            ?>
                    <span class="validation_message"><?php 
            _e("Please enter a subject for the notification email", "gravityforms");
            ?>
</span><?php 
        }
        ?>
            </td>
        </tr> <!-- / subject -->
        <?php 
        $ui_settings['notification_subject'] = ob_get_contents();
        ob_clean();
        ?>

        <?php 
        $is_invalid_message = !$is_valid && empty($_POST["gform_notification_message"]);
        $message_class = $is_invalid_message ? "class='gfield_error'" : "";
        ?>
        <tr valign="top" <?php 
        echo $message_class;
        ?>
>
            <th scope="row">
                <label for="gform_notification_message">
                    <?php 
        _e("Message", "gravityforms");
        ?>
<span class="gfield_required">*</span>
                </label>
            </th>
            <td>

                <span class="mt-gform_notification_message"></span>

                <?php 
        if (GFCommon::is_wp_version("3.3")) {
            wp_editor(rgar($notification, "message"), "gform_notification_message", array("autop" => false, "editor_class" => "merge-tag-support mt-wp_editor mt-manual_position mt-position-right"));
        } else {
            ?>
                    <textarea name="gform_notification_message" id="gform_notification_message" class="fieldwidth-1 fieldheight-1" ><?php 
            echo esc_html($notification["message"]);
            ?>
</textarea><?php 
        }
        if ($is_invalid_message) {
            ?>
                    <span class="validation_message"><?php 
            _e("Please enter a message for the notification email", "gravityforms");
            ?>
</span><?php 
        }
        ?>
            </td>
        </tr> <!-- / message -->
        <?php 
        $ui_settings['notification_message'] = ob_get_contents();
        ob_clean();
        ?>

        <tr valign="top">
            <th scope="row">
                <label for="gform_notification_disable_autoformat">
                    <?php 
        _e("Auto-formatting", "gravityforms");
        ?>
                    <?php 
        gform_tooltip("notification_autoformat");
        ?>
                </label>
            </th>
            <td>
                <input type="checkbox" name="gform_notification_disable_autoformat" id="gform_notification_disable_autoformat" value="1" <?php 
        echo empty($notification["disableAutoformat"]) ? "" : "checked='checked'";
        ?>
/>
                <label for="form_notification_disable_autoformat" class="inline">
                    <?php 
        _e("Disable auto-formatting", "gravityforms");
        ?>
                    <?php 
        gform_tooltip("notification_autoformat");
        ?>
                </label>
            </td>
        </tr> <!-- / disable autoformat -->
        <?php 
        $ui_settings['notification_disable_autoformat'] = ob_get_contents();
        ob_clean();
        ?>

        <tr valign="top">
            <th scope="row">
                <label for="gform_notification_conditional_logic">
                    <?php 
        _e("Conditional Logic", "gravityforms");
        gform_tooltip("notification_conditional_logic");
        ?>
                </label>
            </th>
            <td>
                <input type="checkbox" id="notification_conditional_logic" onclick="SetConditionalLogic(this.checked); ToggleConditionalLogic(false, 'notification');" <?php 
        checked(is_array(rgar($notification, "conditionalLogic")), true);
        ?>
 />
                <label for="notification_conditional_logic" class="inline"><?php 
        _e("Enable conditional logic", "gravityforms");
        gform_tooltip("notification_conditional_logic");
        ?>
</label>
                <br/>
            </td>
        </tr> <!-- / conditional logic -->
        <tr>
            <td colspan="2">
                <div id="notification_conditional_logic_container" class="gf_animate_sub_settings" style="padding-left:10px;">
                    <!-- content dynamically created from form_admin.js -->
                </div>
            </td>
        </tr>

        <?php 
        $ui_settings['notification_conditional_logic'] = ob_get_contents();
        ob_clean();
        ?>

        <?php 
        ob_end_clean();
        $ui_settings = apply_filters("gform_notification_ui_settings_{$form_id}", apply_filters('gform_notification_ui_settings', $ui_settings, $notification, $form), $notification, $form);
        return $ui_settings;
    }
예제 #4
0
function add_sidebar_text_before($form, $lead)
{
    $mode = empty($_POST['screen_mode']) ? 'view' : $_POST['screen_mode'];
    $street = $lead['101.1'];
    $street2 = !empty($lead["101.2"]) ? $lead["101.2"] . '<br />' : '';
    $city = $lead["101.3"];
    $state = $lead["101.4"];
    $zip = $lead["101.5"];
    $country = $lead["101.6"];
    $email = $lead["98"];
    $phone = $lead["99"];
    $phonetype = $lead["148"];
    ?>
	
<div id="infoboxdiv" class="postbox">
	<div id="minor-publishing" style="padding: 10px;">
			<?php 
    mf_sidebar_entry_status($form['id'], $lead);
    ?>
<br/>
			Contact:<div style="padding:5px"><?php 
    echo $lead['96.3'];
    ?>
 <?php 
    echo $lead['96.6'];
    ?>
<br />
				<?php 
    echo $street;
    ?>
<br />
				<?php 
    echo $street2;
    ?>
				<?php 
    echo $city;
    ?>
, <?php 
    echo $state;
    ?>
  <?php 
    echo $zip;
    ?>
<br />
				<?php 
    echo $country;
    ?>
<br />
				<a href="mailto:<?php 
    echo $email;
    ?>
"><?php 
    echo $email;
    ?>
</a><br />
				<?php 
    echo $phonetype;
    ?>
:  <?php 
    echo $phone;
    ?>
<br />
				
				</div>
			<?php 
    _e('Filled out: ', 'gravityforms');
    ?>
:<?php 
    echo esc_html(GFCommon::format_date($lead['date_created'], false, 'Y/m/d'));
    ?>
<br />
			</div>
			<div id="delete-action" style="float:none;padding: 10px;">
				<?php 
    switch ($lead['status']) {
        case 'spam':
            if (GFCommon::spam_enabled($form['id'])) {
                ?>
				<a
					onclick="jQuery('#action').val('unspam'); jQuery('#entry_form').submit()"
					href="#"><?php 
                _e('Not Spam', 'gravityforms');
                ?>
</a>
				<?php 
                echo GFCommon::current_user_can_any('gravityforms_delete_entries') ? '|' : '';
            }
            if (GFCommon::current_user_can_any('gravityforms_delete_entries')) {
                ?>
				<a class="submitdelete deletion"
					onclick="if ( confirm('<?php 
                _e(';You are about to delete this entry. \'Cancel\' to stop, \'OK\' to delete.', 'gravityforms');
                ?>
') ) {jQuery('#action').val('delete'); jQuery('#entry_form').submit(); return true;} return false;"
					href="#"><?php 
                _e('Delete Permanently', 'gravityforms');
                ?>
</a>
				<?php 
            }
            break;
        case 'trash':
            ?>
				<a
					onclick="jQuery('#action').val('restore'); jQuery('#entry_form').submit()"
					href="#"><?php 
            _e('Restore', 'gravityforms');
            ?>
</a>
				<?php 
            if (GFCommon::current_user_can_any('gravityforms_delete_entries')) {
                ?>
				| <a class="submitdelete deletion"
					onclick="if ( confirm('<?php 
                _e('You are about to delete this entry. \'Cancel\' to stop, \'OK\' to delete.', 'gravityforms');
                ?>
') ) {jQuery('#action').val('delete'); jQuery('#entry_form').submit(); return true;} return false;"
					href="#"><?php 
                _e('Delete Permanently', 'gravityforms');
                ?>
</a>
				<?php 
            }
            break;
        default:
            if (GFCommon::current_user_can_any('gravityforms_delete_entries')) {
                ?>
				<a class="submitdelete deletion"
					onclick="jQuery('#action').val('trash'); jQuery('#entry_form').submit()"
					href="#"><?php 
                _e('Move to Trash', 'gravityforms');
                ?>
</a>
				<?php 
                echo GFCommon::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 
                _e('Mark as Spam', 'gravityforms');
                ?>
</a>
				<?php 
            }
    }
    if (GFCommon::current_user_can_any('gravityforms_edit_entries') && $lead['status'] != 'trash') {
        $button_text = $mode == 'view' ? __('Edit', 'gravityforms') : __('Update', 'gravityforms');
        $disabled = $mode == 'view' ? '' : ' disabled="disabled" ';
        $update_button_id = $mode == 'view' ? 'gform_edit_button' : 'gform_update_button';
        $button_click = $mode == 'view' ? "jQuery('#screen_mode').val('edit');" : "jQuery('#action').val('update'); jQuery('#screen_mode').val('view');";
        $update_button = '<input id="' . $update_button_id . '" ' . $disabled . ' class="button button-large button-primary" type="submit" tabindex="4" value="' . $button_text . '" name="save" onclick="' . $button_click . '"/>';
        echo apply_filters('gform_entrydetail_update_button', $update_button);
        if ($mode == 'edit') {
            echo '&nbsp;&nbsp;<input class="button button-large" type="submit" tabindex="5" value="' . __('Cancel', 'gravityforms') . '" name="cancel" onclick="jQuery(\'#screen_mode\').val(\'view\');"/>';
        }
    }
    ?>
	</div>
</div>
		
<?php 
    /* Ratings Sidebar Area */
    global $wpdb;
    // Retrieve any ratings
    $entry_id = $lead['id'];
    $sql = "SELECT user_id, rating, ratingDate FROM `wp_rg_lead_rating` where entry_id = " . $entry_id;
    $ratingTotal = 0;
    $ratingNum = 0;
    $ratingResults = '';
    $user_ID = get_current_user_id();
    $currRating = '';
    foreach ($wpdb->get_results($sql) as $row) {
        $user = get_userdata($row->user_id);
        //don't display current user in the list of rankings
        if ($user_ID != $row->user_id) {
            $ratingResults .= '<tr><td style="text-align: center;">' . $row->rating . '</td><td>' . $user->display_name . '</td><td class="alignright">' . date("m-d-Y", strtotime($row->ratingDate)) . '</td></tr>';
        } else {
            $currRating = $row->rating;
        }
        $ratingTotal += $row->rating;
        $ratingNum++;
    }
    $ratingAvg = $ratingNum != 0 ? round($ratingTotal / $ratingNum) : 0;
    ?>
    <div class="postbox" style="float:none;padding: 10px">
        <h3> <label for="name"><?php 
    _e('Entry Rating: <a href="#" onclick="return false;" class="gf_tooltip" title="1 = No way<br/>2 = Low priority<br/>3 = Yes, If there’s room<br/>4 = Yes definitely<br/>5 = Hell yes">(?)</a> ' . $ratingAvg . ' stars', 'gravityforms');
    ?>
</label></h3>
        
        <div class="entryRating inside">
            
            <span class="star-rating">
                <input type="radio" name="rating" value="1" <?php 
    echo $currRating == 1 ? 'checked' : '';
    ?>
><i></i>
                <input type="radio" name="rating" value="2" <?php 
    echo $currRating == 2 ? 'checked' : '';
    ?>
><i></i>
                <input type="radio" name="rating" value="3" <?php 
    echo $currRating == 3 ? 'checked' : '';
    ?>
><i></i>
                <input type="radio" name="rating" value="4" <?php 
    echo $currRating == 4 ? 'checked' : '';
    ?>
><i></i>
                <input type="radio" name="rating" value="5" <?php 
    echo $currRating == 5 ? 'checked' : '';
    ?>
><i></i>
              </span>
              (Your Rating)<br/>
              <span id="updateMSG" style="font-size:smaller">Average Rating: <?php 
    echo $ratingAvg;
    ?>
 Stars from <?php 
    echo $ratingNum;
    ?>
 users.</span>
              <?php 
    if ($ratingResults != '') {
        echo '<table cellspacing="0" style="padding:10px 0">' . '       <tr>' . '   <td class="entry-view-field-name">Rating</td>' . '   <td class="entry-view-field-name">User</td>' . '   <td class="entry-view-field-name">Date Rated</td>' . '</tr>' . $ratingResults . '</table>';
    }
    ?>
        </div>
    </div>
<?php 
    /* Notes Sidebar Area */
    ?>
<div class="postbox" style="float:none;padding: 10px;">
        <h3>
		<label for="name"><?php 
    _e('Notes', 'gravityforms');
    ?>
</label>
	</h3>

		<?php 
    wp_nonce_field('gforms_update_note', 'gforms_update_note');
    ?>
		<div class="inside">
			<?php 
    $notes = RGFormsModel::get_lead_notes($lead['id']);
    //getting email values
    $email_fields = GFCommon::get_email_fields($form);
    $emails = array();
    foreach ($email_fields as $email_field) {
        if (!empty($lead[$email_field->id])) {
            $emails[] = $lead[$email_field->id];
        }
    }
    //displaying notes grid
    $subject = '';
    notes_sidebar_grid($notes, true, $emails, $subject);
    ?>
		</div>
</div>

<?php 
    /* Entry Management Sidebar Area */
    if ($mode == 'view') {
        ?>
	<div class='postbox' style="float:none;padding: 10px;">
	<?php 
        // Load Entry Sidebar details
        mf_sidebar_entry_info($form['id'], $lead);
        ?>
	<?php 
        // Create Update button for sidebar entry management
        $entry_sidebar_button = '<input type="submit" name="update_management" value="Update Management" class="button"
		 style="width:auto;padding-bottom:2px;" 
		onclick="jQuery(\'#action\').val(\'update_entry_management\');"/>';
        echo $entry_sidebar_button;
        ?>
	</div>
	<?php 
    }
    /* Shceduling Management Sidebar Area */
    if ($mode == 'view') {
        ?>
		<div class='postbox' style="float:none;padding: 10px;">
		<?php 
        // Load Entry Sidebar details: schedule
        mf_sidebar_entry_schedule($form['id'], $lead);
        ?>
		</div>
		<div class='postbox' style="float:none;padding: 10px;">
		<?php 
        // Load Entry Sidebar details: Ticket Code (Field 308)
        mf_sidebar_entry_ticket($form['id'], $lead);
        ?>
		</div>	
		<div class='postbox' style="float:none;padding: 10px;">
                    <?php 
        // Load Entry Sidebar details: Faire locations
        //mf_sidebar_entry_locations( $form['id'], $lead );
        ?>
		</div>
			
		<div class='postbox' style="float:none;padding: 10px;">				
                <?php 
        //load 'Change Form' form
        mf_sidebar_forms($form['id'], $lead);
        ?>
                </div>

		<div class='postbox' style="float:none;padding: 10px;">				
                <?php 
        //load Duplicate/Copy Entry form
        mf_sidebar_dup($form['id'], $lead);
        ?>
                </div>
	<?php 
    }
    ?>
		
	<div class="detail-view-print">
				<?php 
    $entry_sidebar_button = '<input type="submit" name="sync_jdb" value="Send to JDB" class="button"
				 style="width:auto;padding-bottom:2px;"
				onclick="jQuery(\'#action\').val(\'sync_jdb\');"/>';
    echo $entry_sidebar_button;
    ?>
					</div>
					<div class="detail-view-print">
				<?php 
    $entry_sidebar_button = '<input type="submit" name="sync_status_jdb" value="Sync Status JDB" class="button"
				 style="width:auto;padding-bottom:2px;"
				onclick="jQuery(\'#action\').val(\'sync_status_jdb\');"/>';
    echo $entry_sidebar_button;
    ?>
					</div>
				<?php 
}
    private static function get_notification_ui_settings($notification)
    {
        /**
         * These variables are used to convenient "wrap" child form settings in the appropriate HTML.
         */
        $subsetting_open = '
            <td colspan="2" class="gf_sub_settings_cell">
                <div class="gf_animate_sub_settings">
                    <table>
                        <tr>';
        $subsetting_close = '
                        </tr>
                    </table>
                </div>
            </td>';
        $ui_settings = array();
        $form_id = rgget('id');
        $form = RGFormsModel::get_form_meta($form_id);
        $form = apply_filters('gform_admin_pre_render_' . $form_id, apply_filters('gform_admin_pre_render', $form));
        $is_valid = empty(GFCommon::$errors);
        ob_start();
        ?>

		<tr valign="top" <?php 
        echo rgar($notification, 'isDefault') ? "style='display:none'" : '';
        ?>
 >
			<th scope="row">
				<label for="gform_notification_name">
					<?php 
        esc_html_e('Name', 'gravityforms');
        ?>
					<?php 
        gform_tooltip('notification_name');
        ?>
				</label>
			</th>
			<td>
				<input type="text" class="fieldwidth-2" name="gform_notification_name" id="gform_notification_name" value="<?php 
        echo esc_attr(rgget('name', $notification));
        ?>
" />
			</td>
		</tr> <!-- / name -->
		<?php 
        $ui_settings['notification_name'] = ob_get_contents();
        ob_clean();
        ?>

		<?php 
        $notification_events = array('form_submission' => esc_html__('Form is submitted', 'gravityforms'));
        if (rgars($form, 'save/enabled')) {
            $notification_events['form_saved'] = esc_html__('Form is saved', 'gravityforms');
            $notification_events['form_save_email_requested'] = esc_html__('Save and continue email is requested', 'gravityforms');
        }
        $notification_events = apply_filters('gform_notification_events', $notification_events, $form);
        $event_style = count($notification_events) == 1 || rgar($notification, 'isDefault') ? "style='display:none'" : '';
        ?>
		<tr valign="top" <?php 
        echo $event_style;
        ?>
>
			<th scope="row">
				<label for="gform_notification_event">
					<?php 
        esc_html_e('Event', 'gravityforms');
        ?>
					<?php 
        gform_tooltip('notification_event');
        ?>
				</label>

			</th>
			<td>
				<select name="gform_notification_event" id="gform_notification_event">
					<?php 
        foreach ($notification_events as $code => $label) {
            ?>
						<option value="<?php 
            echo esc_attr($code);
            ?>
" <?php 
            selected(rgar($notification, 'event'), $code);
            ?>
><?php 
            echo esc_html($label);
            ?>
</option>
					<?php 
        }
        ?>
				</select>
			</td>
		</tr> <!-- / event -->
		<?php 
        $ui_settings['notification_event'] = ob_get_contents();
        ob_clean();
        ?>

		<?php 
        $notification_to_type = !rgempty('gform_notification_to_type') ? rgpost('gform_notification_to_type') : rgar($notification, 'toType');
        if (empty($notification_to_type)) {
            $notification_to_type = 'email';
        }
        $is_invalid_email_to = !$is_valid && !self::is_valid_notification_to();
        $send_to_class = $is_invalid_email_to ? 'gfield_error' : '';
        ?>
		<tr valign="top" class='<?php 
        echo esc_attr($send_to_class);
        ?>
' <?php 
        echo $notification_to_type == 'hidden' ? 'style="display:none;"' : '';
        ?>
>
			<th scope="row">
				<label for="gform_notification_to_email">
					<?php 
        esc_html_e('Send To', 'gravityforms');
        ?>
<span class="gfield_required">*</span>
					<?php 
        gform_tooltip('notification_send_to_email');
        ?>
				</label>

			</th>
			<td>
				<input type="radio" id="gform_notification_to_type_email" name="gform_notification_to_type" <?php 
        checked('email', $notification_to_type);
        ?>
 value="email" onclick="jQuery('.notification_to_container').hide(); jQuery('#gform_notification_to_email_container').show('slow');" />
				<label for="gform_notification_to_type_email" class="inline">
					<?php 
        esc_html_e('Enter Email', 'gravityforms');
        ?>
				</label>
				&nbsp;&nbsp;
				<input type="radio" id="gform_notification_to_type_field" name="gform_notification_to_type" <?php 
        checked('field', $notification_to_type);
        ?>
 value="field" onclick="jQuery('.notification_to_container').hide(); jQuery('#gform_notification_to_field_container').show('slow');" />
				<label for="gform_notification_to_type_field" class="inline">
					<?php 
        esc_html_e('Select a Field', 'gravityforms');
        ?>
				</label>
				&nbsp;&nbsp;
				<input type="radio" id="gform_notification_to_type_routing" name="gform_notification_to_type" <?php 
        checked('routing', $notification_to_type);
        ?>
 value="routing" onclick="jQuery('.notification_to_container').hide(); jQuery('#gform_notification_to_routing_container').show('slow');" />
				<label for="gform_notification_to_type_routing" class="inline">
					<?php 
        esc_html_e('Configure Routing', 'gravityforms');
        ?>
					<?php 
        gform_tooltip('notification_send_to_routing');
        ?>
				</label>
			</td>
		</tr> <!-- / to email type -->
		<?php 
        $ui_settings['notification_to_email_type'] = ob_get_contents();
        ob_clean();
        if ($notification_to_type == 'hidden') {
            $ui_settings['notification_to_email_type'] = '<input type="hidden" name="gform_notification_to_type" value="hidden" />';
        }
        ?>

		<tr id="gform_notification_to_email_container" class="notification_to_container <?php 
        echo esc_attr($send_to_class);
        ?>
" <?php 
        echo $notification_to_type != 'email' ? "style='display:none';" : '';
        ?>
>
			<?php 
        echo $subsetting_open;
        ?>
			<th scope="row"><?php 
        esc_html_e('Send to Email', 'gravityforms');
        ?>
</th>
			<td>
				<?php 
        $to_email = rgget('toType', $notification) == 'email' ? rgget('to', $notification) : '';
        ?>
				<input type="text" name="gform_notification_to_email" id="gform_notification_to_email" value="<?php 
        echo esc_attr($to_email);
        ?>
" class="fieldwidth-1" />

				<?php 
        if (rgpost('gform_notification_to_type') == 'email' && $is_invalid_email_to) {
            ?>
					<span class="validation_message"><?php 
            esc_html_e('Please enter a valid email address', 'gravityforms');
            ?>
.</span>
				<?php 
        }
        ?>
			</td>
			<?php 
        echo $subsetting_close;
        ?>
		</tr> <!-- / to email -->
		<?php 
        $ui_settings['notification_to_email'] = ob_get_contents();
        ob_clean();
        ?>

		<?php 
        $email_fields = apply_filters("gform_email_fields_notification_admin_{$form['id']}", apply_filters('gform_email_fields_notification_admin', GFCommon::get_email_fields($form), $form), $form);
        ?>
		<tr id="gform_notification_to_field_container" class="notification_to_container <?php 
        echo esc_attr($send_to_class);
        ?>
" <?php 
        echo $notification_to_type != 'field' ? "style='display:none';" : '';
        ?>
>
			<?php 
        echo $subsetting_open;
        ?>
			<th scope="row"><?php 
        esc_html_e('Send to Field', 'gravityforms');
        ?>
</th>
			<td>
				<?php 
        if (!empty($email_fields)) {
            ?>
					<select name="gform_notification_to_field" id="gform_notification_to_field">
						<option value=""><?php 
            esc_html_e('Select an email field', 'gravityforms');
            ?>
</option>
						<?php 
            $to_field = rgget('toType', $notification) == 'field' ? rgget('to', $notification) : '';
            foreach ($email_fields as $field) {
                ?>
							<option value="<?php 
                echo esc_attr($field->id);
                ?>
" <?php 
                echo selected($field->id, $to_field);
                ?>
><?php 
                echo GFCommon::get_label($field);
                ?>
</option>
						<?php 
            }
            ?>
					</select>
				<?php 
        } else {
            ?>
					<div class="error_base">
						<p><?php 
            esc_html_e('Your form does not have an email field. Add an email field to your form and try again.', 'gravityforms');
            ?>
</p>
					</div>
				<?php 
        }
        ?>
			</td>
			<?php 
        echo $subsetting_close;
        ?>
		</tr> <!-- / to email field -->
		<?php 
        $ui_settings['notification_to_email_field'] = ob_get_contents();
        ob_clean();
        ?>

		<tr id="gform_notification_to_routing_container" class="notification_to_container <?php 
        echo esc_attr($send_to_class);
        ?>
" <?php 
        echo $notification_to_type != 'routing' ? "style='display:none';" : '';
        ?>
>
			<?php 
        echo $subsetting_open;
        ?>
			<td colspan="2">
				<div id="gform_notification_to_routing_rules">
					<?php 
        $routing_fields = self::get_routing_fields($form, '0');
        if (empty($routing_fields)) {
            ?>
						<div class="gold_notice">
							<p><?php 
            esc_html_e('To use notification routing, your form must have a field supported by conditional logic.', 'gravityforms');
            ?>
</p>
						</div>
					<?php 
        } else {
            if (empty($notification['routing'])) {
                $notification['routing'] = array(array());
            }
            $count = sizeof($notification['routing']);
            $routing_list = ',';
            for ($i = 0; $i < $count; $i++) {
                $routing_list .= $i . ',';
                $routing = $notification['routing'][$i];
                $is_invalid_rule = !$is_valid && $_POST['gform_notification_to_type'] == 'routing' && !self::is_valid_notification_email(rgar($routing, 'email'));
                $class = $is_invalid_rule ? "class='grouting_rule_error'" : '';
                ?>
							<div style='width:99%' <?php 
                echo $class;
                ?>
>
								<?php 
                esc_html_e('Send to', 'gravityforms');
                ?>
								<input type="text" id="routing_email_<?php 
                echo $i;
                ?>
" value="<?php 
                echo esc_attr(rgar($routing, 'email'));
                ?>
" onkeyup="SetRouting(<?php 
                echo $i;
                ?>
);" />
								<?php 
                esc_html_e('if', 'gravityforms');
                ?>
								<select id="routing_field_id_<?php 
                echo $i;
                ?>
" class='gfield_routing_select' onchange='jQuery("#routing_value_<?php 
                echo $i;
                ?>
").replaceWith(GetRoutingValues(<?php 
                echo $i;
                ?>
, jQuery(this).val())); SetRouting(<?php 
                echo $i;
                ?>
); '><?php 
                echo self::get_routing_fields($form, rgar($routing, 'fieldId'));
                ?>
</select>
								<select id="routing_operator_<?php 
                echo $i;
                ?>
" onchange="SetRouting(<?php 
                echo $i;
                ?>
)" class="gform_routing_operator">
									<option value="is" <?php 
                echo rgar($routing, 'operator') == 'is' ? "selected='selected'" : '';
                ?>
><?php 
                esc_html_e('is', 'gravityforms');
                ?>
</option>
									<option value="isnot" <?php 
                echo rgar($routing, 'operator') == 'isnot' ? "selected='selected'" : '';
                ?>
><?php 
                esc_html_e('is not', 'gravityforms');
                ?>
</option>
									<option value=">" <?php 
                echo rgar($routing, 'operator') == '>' ? "selected='selected'" : '';
                ?>
><?php 
                esc_html_e('greater than', 'gravityforms');
                ?>
</option>
									<option value="<" <?php 
                echo rgar($routing, 'operator') == '<' ? "selected='selected'" : '';
                ?>
><?php 
                esc_html_e('less than', 'gravityforms');
                ?>
</option>
									<option value="contains" <?php 
                echo rgar($routing, 'operator') == 'contains' ? "selected='selected'" : '';
                ?>
><?php 
                esc_html_e('contains', 'gravityforms');
                ?>
</option>
									<option value="starts_with" <?php 
                echo rgar($routing, 'operator') == 'starts_with' ? "selected='selected'" : '';
                ?>
><?php 
                esc_html_e('starts with', 'gravityforms');
                ?>
</option>
									<option value="ends_with" <?php 
                echo rgar($routing, 'operator') == 'ends_with' ? "selected='selected'" : '';
                ?>
><?php 
                esc_html_e('ends with', 'gravityforms');
                ?>
</option>
								</select>
								<?php 
                echo self::get_field_values($i, $form, rgar($routing, 'fieldId'), rgar($routing, 'value'));
                ?>

								<a class='gf_insert_field_choice' title='add another rule' onclick='SetRouting(<?php 
                echo $i;
                ?>
); InsertRouting(<?php 
                echo $i + 1;
                ?>
);'><i class='gficon-add'></i></a>

								<?php 
                if ($count > 1) {
                    ?>
									<img src='<?php 
                    echo GFCommon::get_base_url();
                    ?>
/images/remove.png' id='routing_delete_<?php 
                    echo $i;
                    ?>
' title='remove this email routing' alt='remove this email routing' class='delete_field_choice' style='cursor:pointer;' onclick='DeleteRouting(<?php 
                    echo $i;
                    ?>
);' />
								<?php 
                }
                ?>
							</div>
						<?php 
            }
            if ($is_invalid_rule) {
                ?>
							<span class="validation_message"><?php 
                esc_html_e('Please enter a valid email address for all highlighted routing rules above.', 'gravityforms');
                ?>
</span>
						<?php 
            }
            ?>
						<input type="hidden" name="routing_count" id="routing_count" value="<?php 
            echo $routing_list;
            ?>
" />
					<?php 
        }
        ?>
				</div>
			</td>
			<?php 
        echo $subsetting_close;
        ?>
		</tr> <!-- / to routing -->
		<?php 
        $ui_settings['notification_to_routing'] = ob_get_contents();
        ob_clean();
        ?>

		<tr valign="top">
			<th scope="row">
				<label for="gform_notification_from_name">
					<?php 
        esc_html_e('From Name', 'gravityforms');
        ?>
					<?php 
        gform_tooltip('notification_from_name');
        ?>
				</label>
			</th>
			<td>
				<input type="text" class="fieldwidth-2 merge-tag-support mt-position-right mt-hide_all_fields" name="gform_notification_from_name" id="gform_notification_from_name" value="<?php 
        echo esc_attr(rgget('fromName', $notification));
        ?>
" />
			</td>
		</tr> <!-- / from name -->
		<?php 
        $ui_settings['notification_from_name'] = ob_get_contents();
        ob_clean();
        ?>

		<tr valign="top">
			<th scope="row">
				<label for="gform_notification_from">
					<?php 
        esc_html_e('From Email', 'gravityforms');
        ?>
					<?php 
        gform_tooltip('notification_from_email');
        ?>
				</label>
			</th>
			<td>
				<input type="text" class="fieldwidth-2 merge-tag-support mt-position-right mt-hide_all_fields" name="gform_notification_from" id="gform_notification_from" value="<?php 
        echo rgempty('from', $notification) ? '{admin_email}' : esc_attr(rgget('from', $notification));
        ?>
" />
			</td>
		</tr> <!-- / to from email -->
		<?php 
        $ui_settings['notification_from'] = ob_get_contents();
        ob_clean();
        ?>

		<tr valign="top">
			<th scope="row">
				<label for="gform_notification_reply_to">
					<?php 
        $is_invalid_reply_to = !$is_valid && !self::is_valid_notification_email(rgar($notification, 'replyTo'));
        $class = $is_invalid_reply_to ? ' gfield_error' : '';
        ?>
					<?php 
        esc_html_e('Reply To', 'gravityforms');
        ?>
					<?php 
        gform_tooltip('notification_reply_to');
        ?>
				</label>
			</th>
			<td>
				<input type="text" name="gform_notification_reply_to" id="gform_notification_reply_to" class="merge-tag-support mt-hide_all_fields fieldwidth-2<?php 
        echo $class;
        ?>
" value="<?php 
        echo esc_attr(rgget('replyTo', $notification));
        ?>
" />
			</td>
		</tr> <!-- / reply to -->
		<?php 
        $ui_settings['notification_reply_to'] = ob_get_contents();
        ob_clean();
        ?>

		<tr valign="top">
			<th scope="row">
				<label for="gform_notification_bcc">
					<?php 
        esc_html_e('BCC', 'gravityforms');
        ?>
					<?php 
        gform_tooltip('notification_bcc');
        ?>
				</label>
			</th>
			<td>
				<?php 
        $is_invalid_bcc = !$is_valid && !self::is_valid_notification_email(rgar($notification, 'bcc'));
        $class = $is_invalid_bcc ? ' gfield_error' : '';
        ?>
				<input type="text" name="gform_notification_bcc" id="gform_notification_bcc" value="<?php 
        echo esc_attr(rgget('bcc', $notification));
        ?>
" class="merge-tag-support mt-hide_all_fields fieldwidth-2<?php 
        echo $class;
        ?>
" />
			</td>
		</tr> <!-- / bcc -->
		<?php 
        $ui_settings['notification_bcc'] = ob_get_contents();
        ob_clean();
        ?>

		<?php 
        $is_invalid_subject = !$is_valid && empty($_POST['gform_notification_subject']);
        $subject_class = $is_invalid_subject ? "class='gfield_error'" : '';
        ?>
		<tr valign="top" <?php 
        echo $subject_class;
        ?>
>
			<th scope="row">
				<label for="gform_notification_subject">
					<?php 
        esc_html_e('Subject', 'gravityforms');
        ?>
<span class="gfield_required">*</span>
				</label>
			</th>
			<td>
				<input type="text" name="gform_notification_subject" id="gform_notification_subject" class="fieldwidth-1 merge-tag-support mt-hide_all_fields mt-position-right" value="<?php 
        echo esc_attr(rgar($notification, 'subject'));
        ?>
" />
				<?php 
        if ($is_invalid_subject) {
            ?>
					<span class="validation_message"><?php 
            esc_html_e('Please enter a subject for the notification email', 'gravityforms');
            ?>
</span><?php 
        }
        ?>
			</td>
		</tr> <!-- / subject -->
		<?php 
        $ui_settings['notification_subject'] = ob_get_contents();
        ob_clean();
        ?>

		<?php 
        $is_invalid_message = !$is_valid && empty($_POST['gform_notification_message']);
        $message_class = $is_invalid_message ? "class='gfield_error'" : '';
        ?>
		<tr valign="top" <?php 
        echo $message_class;
        ?>
>
			<th scope="row">
				<label for="gform_notification_message">
					<?php 
        esc_html_e('Message', 'gravityforms');
        ?>
<span class="gfield_required">*</span>
				</label>
			</th>
			<td>

				<span class="mt-gform_notification_message"></span>

				<?php 
        if (GFCommon::is_wp_version('3.3')) {
            wp_editor(rgar($notification, 'message'), 'gform_notification_message', array('autop' => false, 'editor_class' => 'merge-tag-support mt-wp_editor mt-manual_position mt-position-right'));
        } else {
            ?>
					<textarea name="gform_notification_message" id="gform_notification_message" class="fieldwidth-1 fieldheight-1"><?php 
            echo esc_html($notification['message']);
            ?>
</textarea><?php 
        }
        if ($is_invalid_message) {
            ?>
					<span class="validation_message"><?php 
            esc_html_e('Please enter a message for the notification email', 'gravityforms');
            ?>
</span><?php 
        }
        ?>
			</td>
		</tr> <!-- / message -->
		<?php 
        $ui_settings['notification_message'] = ob_get_contents();
        ob_clean();
        ?>

		<tr valign="top">
			<th scope="row">
				<label for="gform_notification_disable_autoformat">
					<?php 
        esc_html_e('Auto-formatting', 'gravityforms');
        ?>
					<?php 
        gform_tooltip('notification_autoformat');
        ?>
				</label>
			</th>
			<td>
				<input type="checkbox" name="gform_notification_disable_autoformat" id="gform_notification_disable_autoformat" value="1" <?php 
        echo empty($notification['disableAutoformat']) ? '' : "checked='checked'";
        ?>
/>
				<label for="form_notification_disable_autoformat" class="inline">
					<?php 
        esc_html_e('Disable auto-formatting', 'gravityforms');
        ?>
					<?php 
        gform_tooltip('notification_autoformat');
        ?>
				</label>
			</td>
		</tr> <!-- / disable autoformat -->
		<?php 
        $ui_settings['notification_disable_autoformat'] = ob_get_contents();
        ob_clean();
        ?>

		<tr valign="top" <?php 
        echo rgar($notification, 'isDefault') ? 'style=display:none;' : '';
        ?>
 >
			<th scope="row">
				<label for="gform_notification_conditional_logic">
					<?php 
        esc_html_e('Conditional Logic', 'gravityforms');
        gform_tooltip('notification_conditional_logic');
        ?>
				</label>
			</th>
			<td>
				<input type="checkbox" id="notification_conditional_logic" onclick="SetConditionalLogic(this.checked); ToggleConditionalLogic(false, 'notification');" <?php 
        checked(is_array(rgar($notification, 'conditionalLogic')), true);
        ?>
 />
				<label for="notification_conditional_logic" class="inline"><?php 
        esc_html_e('Enable conditional logic', 'gravityforms');
        gform_tooltip('notification_conditional_logic');
        ?>
</label>
				<br />
			</td>
		</tr> <!-- / conditional logic -->
		<tr>
			<td colspan="2">
				<div id="notification_conditional_logic_container" class="gf_animate_sub_settings" style="padding-left:10px;">
					<!-- content dynamically created from form_admin.js -->
				</div>
			</td>
		</tr>

		<?php 
        $ui_settings['notification_conditional_logic'] = ob_get_contents();
        ob_clean();
        ?>

		<?php 
        ob_end_clean();
        $ui_settings = apply_filters("gform_notification_ui_settings_{$form_id}", apply_filters('gform_notification_ui_settings', $ui_settings, $notification, $form), $notification, $form);
        return $ui_settings;
    }
 /**
  * Get array of emails addresses from the stored entry
  *
  * @since 1.17
  *
  * @return array Array of email addresses connected to the entry
  */
 private static function get_note_emails_array()
 {
     $gravityview_view = GravityView_View::getInstance();
     //getting email values
     $email_fields = GFCommon::get_email_fields($gravityview_view->getForm());
     $entry = $gravityview_view->getCurrentEntry();
     $note_emails = array();
     foreach ($email_fields as $email_field) {
         if (!empty($entry["{$email_field->id}"]) && is_email($entry["{$email_field->id}"])) {
             $note_emails[] = $entry["{$email_field->id}"];
         }
     }
     /**
      * @filter `gravityview/field/notes/emails` Modify the dropdown values displayed in the "Also email note to" dropdown
      * @since 1.17
      * @param array $note_emails Array of email addresses connected to the entry
      * @param array $entry Current entry
      */
     $note_emails = apply_filters('gravityview/field/notes/emails', $note_emails, $entry);
     return (array) $note_emails;
 }
    public static function lead_detail_page()
    {
        global $wpdb;
        global $current_user;
        if (!GFCommon::ensure_wp_version()) {
            return;
        }
        echo GFCommon::get_remote_message();
        $form = RGFormsModel::get_form_meta($_GET["id"]);
        $lead_id = rgget('lid');
        $filter = rgget("filter");
        $status = in_array($filter, array("trash", "spam")) ? $filter : "active";
        $search = rgget("s");
        $position = rgget('pos') ? rgget('pos') : 0;
        $sort_direction = rgget('dir') ? rgget('dir') : 'DESC';
        $sort_field = empty($_GET["sort"]) ? 0 : $_GET["sort"];
        $sort_field_meta = RGFormsModel::get_field($form, $sort_field);
        $is_numeric = $sort_field_meta["type"] == "number";
        $star = $filter == "star" ? 1 : null;
        $read = $filter == "unread" ? 0 : null;
        // added status as an optional parameter to get_lead_count because the counts are inaccurate without using the status
        $lead_count = RGFormsModel::get_lead_count($form['id'], $search, $star, $read, null, null, $status);
        $prev_pos = !rgblank($position) && $position > 0 ? $position - 1 : false;
        $next_pos = !rgblank($position) && $position < $lead_count - 1 ? $position + 1 : false;
        // unread filter requires special handling for pagination since entries are filter out of the query as they are read
        if ($filter == 'unread') {
            $next_pos = $position;
            if ($next_pos + 1 == $lead_count) {
                $next_pos = false;
            }
        }
        // get the lead
        $leads = RGFormsModel::get_leads($form['id'], $sort_field, $sort_direction, $search, $position, 1, $star, $read, $is_numeric, null, null, $status);
        if (!$lead_id) {
            $lead = !empty($leads) ? $leads[0] : false;
        } else {
            $lead = RGFormsModel::get_lead($lead_id);
        }
        if (!$lead) {
            _e("Oops! We couldn't find your lead. Please try again", "gravityforms");
            return;
        }
        RGFormsModel::update_lead_property($lead["id"], "is_read", 1);
        switch (RGForms::post("action")) {
            case "update":
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                RGFormsModel::save_lead($form, $lead);
                do_action("gform_after_update_entry", $form, $lead["id"]);
                do_action("gform_after_update_entry_{$form["id"]}", $form, $lead["id"]);
                $lead = RGFormsModel::get_lead($lead["id"]);
                break;
            case "add_note":
                check_admin_referer('gforms_update_note', 'gforms_update_note');
                $user_data = get_userdata($current_user->ID);
                RGFormsModel::add_note($lead["id"], $current_user->ID, $user_data->display_name, stripslashes($_POST["new_note"]));
                //emailing notes if configured
                if (rgpost("gentry_email_notes_to")) {
                    $email_to = $_POST["gentry_email_notes_to"];
                    $email_from = $current_user->user_email;
                    $email_subject = stripslashes($_POST["gentry_email_subject"]);
                    $headers = "From: \"{$email_from}\" <{$email_from}> \r\n";
                    $result = wp_mail($email_to, $email_subject, stripslashes($_POST["new_note"]), $headers);
                }
                break;
            case "add_quick_note":
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                $user_data = get_userdata($current_user->ID);
                RGFormsModel::add_note($lead["id"], $current_user->ID, $user_data->display_name, stripslashes($_POST["quick_note"]));
                break;
            case "bulk":
                check_admin_referer('gforms_update_note', 'gforms_update_note');
                if ($_POST["bulk_action"] == "delete") {
                    RGFormsModel::delete_notes($_POST["note"]);
                }
                break;
            case "trash":
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                RGFormsModel::update_lead_property($lead["id"], "status", "trash");
                $lead = RGFormsModel::get_lead($lead["id"]);
                break;
            case "restore":
            case "unspam":
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                RGFormsModel::update_lead_property($lead["id"], "status", "active");
                $lead = RGFormsModel::get_lead($lead["id"]);
                break;
            case "spam":
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                RGFormsModel::update_lead_property($lead["id"], "status", "spam");
                $lead = RGFormsModel::get_lead($lead["id"]);
                break;
            case "delete":
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                RGFormsModel::delete_lead($lead["id"]);
                ?>
                <script type="text/javascript">
                    document.location.href='<?php 
                echo "admin.php?page=gf_entries&view=entries&id=" . absint($form["id"]);
                ?>
';
                </script>
                <?php 
                break;
        }
        $mode = empty($_POST["screen_mode"]) ? "view" : $_POST["screen_mode"];
        ?>
        <link rel="stylesheet" href="<?php 
        echo GFCommon::get_base_url();
        ?>
/css/admin.css" />
         <script type="text/javascript">

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

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

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

                    return true;
                }
            }

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

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

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

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

            function ResendNotifications() {

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

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

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

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

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

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

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

            }

            function displayMessage(message, messageClass, container){

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

            }

            function toggleNotificationOverride(isInit) {

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

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

            }

        </script>

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

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

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

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

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

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

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

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

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

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

                                    </div>

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

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

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

                </div>

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

                                <form method="post">
                                    <?php 
            wp_nonce_field('gforms_update_note', 'gforms_update_note');
            ?>
                                    <div class="inside">
                                        <?php 
            $notes = RGFormsModel::get_lead_notes($lead["id"]);
            //getting email values
            $email_fields = GFCommon::get_email_fields($form);
            $emails = array();
            foreach ($email_fields as $email_field) {
                if (!empty($lead[$email_field["id"]])) {
                    $emails[] = $lead[$email_field["id"]];
                }
            }
            //displaying notes grid
            $subject = !empty($form["autoResponder"]["subject"]) ? "RE: " . GFCommon::replace_variables($form["autoResponder"]["subject"], $form, $lead) : "";
            self::notes_grid($notes, true, $emails, $subject);
            ?>
                                    </div>
                                </form>
                            </div>
                        <?php 
        }
        ?>
                    </div>
                </div>
            </div>
        </div>
        </form>
        <?php 
        if (rgpost("action") == "update") {
            ?>
            <div class="updated fade" style="padding:6px;">
                <?php 
            _e("Entry Updated.", "gravityforms");
            ?>
            </div>
            <?php 
        }
    }
예제 #8
0
    public static function meta_box_notes($args, $metabox)
    {
        $entry = $args['entry'];
        $form = $args['form'];
        ?>
		<form method="post">
			<?php 
        wp_nonce_field('gforms_update_note', 'gforms_update_note');
        ?>
			<div class="inside">
				<?php 
        $notes = RGFormsModel::get_lead_notes($entry['id']);
        //getting email values
        $email_fields = GFCommon::get_email_fields($form);
        $emails = array();
        foreach ($email_fields as $email_field) {
            if (!empty($entry[$email_field->id])) {
                $emails[] = $entry[$email_field->id];
            }
        }
        //displaying notes grid
        $subject = '';
        self::notes_grid($notes, true, $emails, $subject);
        ?>
			</div>
		</form>
		<?php 
    }
예제 #9
0
    public static function notification_page($form_id)
    {
        $form = RGFormsModel::get_form_meta($form_id);
        if ($_POST["save"]) {
            check_admin_referer('gforms_save_notification', 'gforms_save_notification');
            $form["notification"]["to"] = stripslashes($_POST["form_notification_to"]);
            $form["notification"]["bcc"] = stripslashes($_POST["form_notification_bcc"]);
            $form["notification"]["subject"] = stripslashes($_POST["form_notification_subject"]);
            $form["notification"]["message"] = stripslashes($_POST["form_notification_message"]);
            $form["notification"]["from"] = empty($_POST["form_notification_from_field"]) ? stripslashes($_POST["form_notification_from"]) : "";
            $form["notification"]["fromField"] = stripslashes($_POST["form_notification_from_field"]);
            $form["notification"]["fromName"] = empty($_POST["form_notification_from_name_field"]) ? stripslashes($_POST["form_notification_from_name"]) : "";
            $form["notification"]["fromNameField"] = stripslashes($_POST["form_notification_from_name_field"]);
            $form["notification"]["replyTo"] = empty($_POST["form_notification_reply_to_field"]) ? stripslashes($_POST["form_notification_reply_to"]) : "";
            $form["notification"]["replyToField"] = stripslashes($_POST["form_notification_reply_to_field"]);
            $form["notification"]["routing"] = !empty($_POST["gform_routing_meta"]) ? GFCommon::json_decode(stripslashes($_POST["gform_routing_meta"]), true) : null;
            $form["notification"]["disableAutoformat"] = $_POST["form_notification_disable_autoformat"];
            $form["autoResponder"]["toField"] = stripslashes($_POST["form_autoresponder_to"]);
            $form["autoResponder"]["bcc"] = stripslashes($_POST["form_autoresponder_bcc"]);
            $form["autoResponder"]["fromName"] = stripslashes($_POST["form_autoresponder_from_name"]);
            $form["autoResponder"]["from"] = stripslashes($_POST["form_autoresponder_from"]);
            $form["autoResponder"]["replyTo"] = stripslashes($_POST["form_autoresponder_reply_to"]);
            $form["autoResponder"]["subject"] = stripslashes($_POST["form_autoresponder_subject"]);
            $form["autoResponder"]["message"] = stripslashes($_POST["form_autoresponder_message"]);
            $form["autoResponder"]["disableAutoformat"] = $_POST["form_autoresponder_disable_autoformat"];
            //validating input...
            $invalid_tab = self::validate_notification();
            if ($invalid_tab == 0) {
                //input valid, updating...
                //emptying notification email if it is supposed to be disabled
                if (empty($_POST["form_notification_enable_admin"]) || $_POST["notification_to"] == "routing") {
                    $form["notification"]["to"] = "";
                }
                //emptying notification routing if it is supposed to be disabled
                if (empty($_POST["form_notification_enable_admin"]) || $_POST["notification_to"] == "email") {
                    $form["notification"]["routing"] = null;
                }
                //emptying autoResponder settings if it is supposed to be disabled
                if (empty($_POST["form_notification_enable_user"])) {
                    $form["autoResponder"]["toField"] = "";
                }
                RGFormsModel::update_form_meta($form_id, $form);
            }
        }
        $wp_email = get_bloginfo("admin_email");
        $email_fields = GFCommon::get_email_fields($form);
        $name_fields = GFCommon::get_fields_by_type($form, array("name"));
        $has_admin_notification_fields = (!empty($form["notification"]["to"]) || !empty($form["notification"]["routing"])) && (!empty($form["notification"]["subject"]) || !empty($form["notification"]["message"]));
        $has_user_notification_fields = !empty($form["autoResponder"]["toField"]) && (!empty($form["autoResponder"]["subject"]) || !empty($form["autoResponder"]["message"]));
        $is_admin_notification_enabled = $has_admin_notification_fields && empty($_POST["save"]) || !empty($_POST["form_notification_enable_admin"]);
        $is_user_notification_enabled = $has_user_notification_fields && empty($_POST["save"]) || !empty($_POST["form_notification_enable_user"]);
        $is_routing_enabled = !empty($form["notification"]["routing"]) && $_POST["notification_to"] != "email";
        ?>
        <link rel="stylesheet" href="<?php 
        echo GFCommon::get_base_url();
        ?>
/css/admin.css?ver=<?php 
        echo GFCommon::$version;
        ?>
" />
        <script type="text/javascript" src="<?php 
        echo GFCommon::get_base_url();
        ?>
/js/forms.js?ver=<?php 
        echo GFCommon::$version;
        ?>
"></script>
        <script src="<?php 
        echo GFCommon::get_base_url();
        ?>
/js/jquery.json-1.3.js?ver=<?php 
        echo GFCommon::$version;
        ?>
"></script>

        <script type="text/javascript">
        var gform_has_unsaved_changes = false;
        jQuery(document).ready(function(){

            jQuery("#entry_form input, #entry_form textarea, #entry_form select").change(function(){
                gform_has_unsaved_changes = true;
            });

            window.onbeforeunload = function(){
                if (gform_has_unsaved_changes){
                    return "You have unsaved changes.";
                }
            }
        });

        <?php 
        if (empty($form["notification"])) {
            $form["notification"] = array();
        }
        ?>

        var form = <?php 
        echo GFCommon::json_encode($form);
        ?>
;

        function InsertVariable(element_id){
            var variable = jQuery('#' + element_id + '_variable_select').val();
            var messageElement = jQuery("#" + element_id);

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


        function CreateRouting(routings){

            var str = "";
            for(var i=0; i< routings.length; i++){
                var isSelected = routings[i].operator == "is" ? "selected='selected'" :"";
                var isNotSelected = routings[i].operator == "isnot" ? "selected='selected'" :"";
                var email = routings[i]["email"] ? routings[i]["email"] : '';

                str += "<div style='width:99%'><?php 
        _e("Send to", "gravityforms");
        ?>
 <input type='text' id='routing_email_" + i +"' value='" + email + "' onkeyup='SetRouting(" + i + ");'/>";
                str += " <?php 
        _e("if", "gravityforms");
        ?>
 " + GetRoutingFields(i, routings[i].fieldId);
                str += "<select id='routing_operator_" + i + "' onchange='SetRouting(" + i + ");'><option value='is' " + isSelected + "><?php 
        _e("is", "gravityforms");
        ?>
</option><option value='isnot' " + isNotSelected + "><?php 
        _e("is not", "gravityforms");
        ?>
</option></select>";
                str += GetRoutingValues(i, routings[i].fieldId, routings[i].value);
                str += "<img src='<?php 
        echo GFCommon::get_base_url();
        ?>
/images/add.png' class='add_field_choice' title='add another rule' alt='add another rule' style='cursor:pointer; margin:0 3px;' onclick=\"InsertRouting(" + (i+1) + ");\" />";
                if(routings.length > 1 )
                    str += "<img src='<?php 
        echo GFCommon::get_base_url();
        ?>
/images/remove.png' title='remove this rule' alt='remove this rule' class='delete_field_choice' style='cursor:pointer;' onclick=\"DeleteRouting(" + i + ");\" /></li>";

                str += "</div>";
            }

            jQuery("#notification_to_routing_container").html(str);
        }

        function GetRoutingValues(index, fieldId, selectedValue){
            var str = "<select class='gfield_routing_select' id='routing_value_" + index + "' onchange='SetRouting(" + index + ");'>";
            str += GetFieldValues(fieldId, selectedValue, 16);
            str += "</select>";

            return str;
        }

        function GetRoutingFields(index, selectedItem){
            var str = "<select id='routing_field_id_" + index + "' class='gfield_routing_select' onchange='jQuery(\"#routing_value_" + index + "\").replaceWith(GetRoutingValues(" + index + ", jQuery(this).val())); SetRouting(" + index + "); '>";
            str += GetSelectableFields(selectedItem, 16);
            str += "</select>";

            return str;
        }


        //---------------------- generic ---------------
        function GetSelectableFields(selectedFieldId, labelMaxCharacters){
            var str = "";
            var inputType;
            for(var i=0; i<form.fields.length; i++){
                inputType = form.fields[i].inputType ? form.fields[i].inputType : form.fields[i].type;
                if(inputType == "checkbox" || inputType == "radio" || inputType == "select"){
                    var selected = form.fields[i].id == selectedFieldId ? "selected='selected'" : "";
                    str += "<option value='" + form.fields[i].id + "' " + selected + ">" + TruncateMiddle(form.fields[i].label, labelMaxCharacters) + "</option>";
                }
            }
            return str;
        }

        function GetFirstSelectableField(){
            var inputType;
            for(var i=0; i<form.fields.length; i++){
                inputType = form.fields[i].inputType ? form.fields[i].inputType : form.fields[i].type;
                if(inputType == "checkbox" || inputType == "radio" || inputType == "select")
                    return form.fields[i].id;
            }

            return 0;
        }

        function TruncateMiddle(text, maxCharacters){
            if(text.length <= maxCharacters)
                return text;
            var middle = parseInt(maxCharacters / 2);
            return text.substr(0, middle) + "..." + text.substr(text.length - middle, middle);
        }

        function GetFieldValues(fieldId, selectedValue, labelMaxCharacters){
            if(!fieldId)
                fieldId = GetFirstSelectableField();

            if(!fieldId)
                return "";

            var str = "";
            var field = GetFieldById(fieldId);
            var isAnySelected = false;
            for(var i=0; i<field.choices.length; i++){
                var choiceValue = field.choices[i].value ? field.choices[i].value : field.choices[i].text;
                var isSelected = choiceValue == selectedValue;
                var selected = isSelected ? "selected='selected'" : "";
                if(isSelected)
                    isAnySelected = true;

                str += "<option value='" + choiceValue.replace("'", "&#039;") + "' " + selected + ">" + TruncateMiddle(field.choices[i].text, labelMaxCharacters) + "</option>";
            }

            if(!isAnySelected && selectedValue){
                str += "<option value='" + selectedValue.replace("'", "&#039;") + "' selected='selected'>" + TruncateMiddle(selectedValue, labelMaxCharacters) + "</option>";
            }

            return str;
        }

        function GetFieldById(fieldId){
            for(var i=0; i<form.fields.length; i++){
                if(form.fields[i].id == fieldId)
                    return form.fields[i];
            }
            return null;
        }
        //---------------------------------------------------------------------------------


        function InsertRouting(index){
            var routings = form.notification.routing;
            routings.splice(index, 0, new ConditionalRule());
            CreateRouting(routings);
            SetRouting(index);
        }

        function SetRouting(ruleIndex){
            if(!form.notification.routing && ruleIndex == 0)
                form.notification.routing = [new ConditionalRule()];

            form.notification.routing[ruleIndex]["email"] = jQuery("#routing_email_" + ruleIndex).val();
            form.notification.routing[ruleIndex]["fieldId"] = jQuery("#routing_field_id_" + ruleIndex).val();
            form.notification.routing[ruleIndex]["operator"] = jQuery("#routing_operator_" + ruleIndex).val();
            form.notification.routing[ruleIndex]["value"] =jQuery("#routing_value_" + ruleIndex).val();

            var json = jQuery.toJSON(form.notification.routing);
            jQuery('#gform_routing_meta').val(json);
        }

        function DeleteRouting(ruleIndex){
            form.notification.routing.splice(ruleIndex, 1);
            CreateRouting(form.notification.routing);
        }


        </script>
        <?php 
        echo GFCommon::get_remote_message();
        ?>

        <form method="post" id="entry_form" onsubmit="gform_has_unsaved_changes = false; jQuery('#gform_routing_meta').val(jQuery.toJSON(form.notification.routing));">
            <?php 
        wp_nonce_field('gforms_save_notification', 'gforms_save_notification');
        ?>
            <input type="hidden" id="gform_routing_meta" name="gform_routing_meta" />
            <div class="wrap">
                <img alt="<?php 
        _e("Gravity Forms", "gravityforms");
        ?>
" src="<?php 
        echo GFCommon::get_base_url();
        ?>
/images/gravity-notification-icon-32.png" style="float:left; margin:15px 7px 0 0;"/>
                <h2><?php 
        _e("Notifications", "gravityforms");
        ?>
 : <?php 
        echo esc_html($form["title"]);
        ?>
</h2>

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

                <div id="poststuff" class="metabox-holder">
                    <div id="submitdiv" class="stuffbox">
                        <h3><span class="hndle"><?php 
        _e("Notification to Administrator", "gravityforms");
        ?>
</span></h3>
                        <div class="inside">
                            <div id="submitcomment" class="submitbox">

                                <div id="minor-publishingx" style="padding:10px;">
                                    <input type="checkbox" name="form_notification_enable_admin" id="form_notification_enable_admin" value="1" <?php 
        echo $is_admin_notification_enabled ? "checked='checked'" : "";
        ?>
 onclick="if(this.checked) {jQuery('#form_notification_admin_container').show('slow');} else {jQuery('#form_notification_to').val(''); jQuery('#form_notification_admin_container').hide('slow');}"/> <label for="form_notification_enable_admin"><?php 
        _e("Enable email notification to administrators", "gravityforms");
        ?>
</label>
                                    <div id="form_notification_admin_container" style="display:<?php 
        echo $is_admin_notification_enabled ? "block" : "none";
        ?>
;">
                                        <br/>
                                        <?php 
        _e("Enter a message below to receive a notification email when users submit this form.", "gravityforms");
        ?>
<br/><br/><br/>

                                        <ul id="form_notification_container">
                                            <?php 
        $is_invalid_email_to = $invalid_tab == 1 && !self::is_valid_admin_to();
        $class = $is_invalid_email_to ? "class='gfield_error'" : "";
        ?>
                                            <li <?php 
        echo $class;
        ?>
>
                                                <label for="notification_to_email">
                                                    <?php 
        _e("Send To Email", "gravityforms");
        ?>
<span class="gfield_required">*</span>
                                                    <?php 
        gform_tooltip("notification_send_to_email");
        ?>
                                                </label>

                                                <input type="radio" id="notification_to_email" name="notification_to" <?php 
        echo !$is_routing_enabled ? "checked='checked'" : "";
        ?>
 value="email" onclick="jQuery('#notification_to_routing_container').hide(); jQuery('#notification_to_email_container').show('slow');"/>
                                                <label for="notification_to_email" class="inline">
                                                    <?php 
        _e("Email", "gravityforms");
        ?>
                                                </label>
                                                &nbsp;&nbsp;
                                                <input type="radio" id="notification_to_routing" name="notification_to" <?php 
        echo $is_routing_enabled ? "checked='checked'" : "";
        ?>
 value="routing" onclick="jQuery('#notification_to_email_container').hide(); jQuery('#notification_to_routing_container').show('slow');"/>
                                                <label for="form_button_image" class="inline">
                                                    <?php 
        _e("Routing", "gravityforms");
        ?>
                                                    <?php 
        gform_tooltip("notification_send_to_routing");
        ?>
                                                </label>

                                                <div id="notification_to_email_container" style="margin-top:5px; display:<?php 
        echo $is_routing_enabled ? "none" : "block";
        ?>
;">
                                                    <input type="text" name="form_notification_to" id="form_notification_to" value="<?php 
        echo esc_attr($form["notification"]["to"]);
        ?>
" class="fieldwidth-1" />

                                                    <?php 
        if ($_POST["notification_to"] == "email" && $is_invalid_email_to) {
            ?>
                                                        <span class="validation_message"><?php 
            _e("Please enter a valid email address");
            ?>
</span>
                                                    <?php 
        }
        ?>
                                                </div>

                                                <div id="notification_to_routing_container" style="margin-top:5px;  display:<?php 
        echo $is_routing_enabled ? "block" : "none";
        ?>
;">
                                                    <div>
                                                        <?php 
        $routing_fields = self::get_routing_fields($form, "0");
        if (empty($routing_fields)) {
            //if(empty(){
            ?>
                                                            <div class="gold_notice">
                                                                <p><?php 
            _e("To use notification routing, your form must have a drop down, checkbox or multiple choice field.", "gravityforms");
            ?>
</p>
                                                            </div>
                                                            <?php 
        } else {
            if (empty($form["notification"]["routing"])) {
                $form["notification"]["routing"] = array(array());
            }
            $count = sizeof($form["notification"]["routing"]);
            $routing_list = ",";
            for ($i = 0; $i < $count; $i++) {
                $routing_list .= $i . ",";
                $routing = $form["notification"]["routing"][$i];
                $is_invalid_rule = $invalid_tab == 1 && $_POST["notification_to"] == "routing" && !self::is_valid_notification_email($routing["email"]);
                $class = $is_invalid_rule ? "class='grouting_rule_error'" : "";
                ?>
                                                                <div style='width:99%' <?php 
                echo $class;
                ?>
>
                                                                    <?php 
                _e("Send to", "gravityforms");
                ?>
 <input type="text" id="routing_email_<?php 
                echo $i;
                ?>
" value="<?php 
                echo $routing["email"];
                ?>
" onkeyup="SetRouting(<?php 
                echo $i;
                ?>
);"/>
                                                                    <?php 
                _e("if", "gravityforms");
                ?>
 <select id="routing_field_id_<?php 
                echo $i;
                ?>
" class='gfield_routing_select' onchange='jQuery("#routing_value_<?php 
                echo $i;
                ?>
").replaceWith(GetRoutingValues(<?php 
                echo $i;
                ?>
, jQuery(this).val())); SetRouting(<?php 
                echo $i;
                ?>
); '><?php 
                echo self::get_routing_fields($form, $routing["fieldId"]);
                ?>
</select>
                                                                    <select id="routing_operator_<?php 
                echo $i;
                ?>
" onchange="SetRouting(<?php 
                echo $i;
                ?>
);"/>
                                                                        <option value="is" <?php 
                echo $routing["operator"] == "is" ? "selected='selected'" : "";
                ?>
><?php 
                _e("is", "gravityforms");
                ?>
</option>
                                                                        <option value="isnot" <?php 
                echo $routing["operator"] == "isnot" ? "selected='selected'" : "";
                ?>
><?php 
                _e("is not", "gravityforms");
                ?>
</option>
                                                                    </select>
                                                                    <select id="routing_value_<?php 
                echo $i;
                ?>
" class='gfield_routing_select' onchange="SetRouting(<?php 
                echo $i;
                ?>
);">
                                                                        <?php 
                echo self::get_field_values($form, $routing["fieldId"], $routing["value"]);
                ?>
                                                                    </select>
                                                                    <img src='<?php 
                echo GFCommon::get_base_url();
                ?>
/images/add.png' class='add_field_choice' title='add another email routing' alt='add another email routing' style='cursor:pointer; margin:0 3px;' onclick='SetRouting(<?php 
                echo $i;
                ?>
); InsertRouting(<?php 
                echo $i + 1;
                ?>
);' />
                                                                    <?php 
                if ($count > 1) {
                    ?>
                                                                        <img src='<?php 
                    echo GFCommon::get_base_url();
                    ?>
/images/remove.png' id='routing_delete_<?php 
                    echo $i;
                    ?>
' title='remove this email routing' alt='remove this email routing' class='delete_field_choice' style='cursor:pointer;' onclick='DeleteRouting(<?php 
                    echo $i;
                    ?>
);' />
                                                                    <?php 
                }
                ?>
                                                                </div>
                                                            <?php 
            }
            if ($is_invalid_rule) {
                ?>
                                                                <span class="validation_message"><?php 
                _e("Please enter a valid email address for all highlighted routing rules above.");
                ?>
</span>
                                                            <?php 
            }
            ?>
                                                            <input type="hidden" name="routing_count" id="routing_count" value="<?php 
            echo $routing_list;
            ?>
"/>
                                                        <?php 
        }
        ?>
                                                    </div>

                                                </div>
                                            </li>
                                            <li>
                                                <label for="form_notification_from">
                                                    <?php 
        _e("From Name", "gravityforms");
        ?>
                                                    <?php 
        gform_tooltip("notification_from_name");
        ?>
                                                </label>
                                                <input type="text" class="fieldwidth-2" name="form_notification_from_name" id="form_notification_from_name" onkeydown="jQuery('#form_notification_from_name_field').val('');" onchange="jQuery('#form_notification_from_name_field').val('');" value="<?php 
        echo esc_attr($form["notification"]["fromName"]);
        ?>
"/>
                                                <?php 
        if (!empty($name_fields)) {
            ?>
                                                    <?php 
            _e("OR", "gravityforms");
            ?>
                                                    <select name="form_notification_from_name_field" id="form_notification_from_name_field" onchange="if(jQuery(this).val().length > 0 ) jQuery('#form_notification_from_name').val('');">
                                                        <option value=""><?php 
            _e("Select a name field", "gravityforms");
            ?>
</option>
                                                        <?php 
            foreach ($name_fields as $field) {
                $selected = $form["notification"]["fromNameField"] == $field["id"] ? "selected='selected'" : "";
                ?>
                                                            <option value="<?php 
                echo $field["id"];
                ?>
" <?php 
                echo $selected;
                ?>
><?php 
                echo GFCommon::get_label($field);
                ?>
</option>
                                                            <?php 
            }
            ?>
                                                    </select>
                                                <?php 
        }
        ?>
                                            </li>
                                            <li>
                                                <label for="form_notification_from">
                                                    <?php 
        _e("From Email", "gravityforms");
        ?>
                                                    <?php 
        gform_tooltip("notification_from_email");
        ?>
                                                </label>
                                                <input type="text" class="fieldwidth-2" name="form_notification_from" id="form_notification_from" onkeydown="jQuery('#form_notification_from_field').val('');" onchange="jQuery('#form_notification_from_field').val('');" value="<?php 
        echo empty($form["notification"]["from"]) && empty($form["notification"]["fromField"]) ? esc_attr($wp_email) : esc_attr($form["notification"]["from"]);
        ?>
"/>
                                                <?php 
        if (!empty($email_fields)) {
            ?>
                                                    <?php 
            _e("OR", "gravityforms");
            ?>
                                                    <select name="form_notification_from_field" id="form_notification_from_field" onchange="if(jQuery(this).val().length > 0 ) jQuery('#form_notification_from').val('');">
                                                        <option value=""><?php 
            _e("Select an email field", "gravityforms");
            ?>
</option>
                                                        <?php 
            foreach ($email_fields as $field) {
                $selected = $form["notification"]["fromField"] == $field["id"] ? "selected='selected'" : "";
                ?>
                                                            <option value="<?php 
                echo $field["id"];
                ?>
" <?php 
                echo $selected;
                ?>
><?php 
                echo GFCommon::get_label($field);
                ?>
</option>
                                                            <?php 
            }
            ?>
                                                    </select>
                                                <?php 
        }
        ?>
                                            </li>

                                            <li>
                                                <label for="form_notification_reply_to">
                                                    <?php 
        _e("Reply To", "gravityforms");
        ?>
                                                    <?php 
        gform_tooltip("notification_reply_to");
        ?>
                                                </label>
                                                <input type="text" name="form_notification_reply_to" id="form_notification_reply_to" onkeydown="jQuery('#form_notification_reply_to_field').val('');" onchange="jQuery('#form_notification_reply_to_field').val('');" value="<?php 
        echo esc_attr($form["notification"]["replyTo"]);
        ?>
" class="fieldwidth-2" />
                                                <?php 
        if (!empty($email_fields)) {
            ?>
                                                    <?php 
            _e("OR", "gravityforms");
            ?>
                                                    <select name="form_notification_reply_to_field" id="form_notification_reply_to_field" onchange="if(jQuery(this).val().length > 0 ) jQuery('#form_notification_reply_to').val('');">
                                                        <option value=""><?php 
            _e("Select an email field", "gravityforms");
            ?>
</option>
                                                        <?php 
            foreach ($email_fields as $field) {
                $selected = $form["notification"]["replyToField"] == $field["id"] ? "selected='selected'" : "";
                ?>
                                                            <option value="<?php 
                echo $field["id"];
                ?>
" <?php 
                echo $selected;
                ?>
><?php 
                echo GFCommon::get_label($field);
                ?>
</option>
                                                            <?php 
            }
            ?>
                                                    </select>
                                                <?php 
        }
        ?>
                                            </li>
                                            <li>
                                                <label for="form_notification_bcc">
                                                    <?php 
        _e("BCC", "gravityforms");
        ?>
                                                    <?php 
        gform_tooltip("notification_bcc");
        ?>
                                                </label>
                                                <input type="text" name="form_notification_bcc" id="form_notification_bcc" value="<?php 
        echo esc_attr($form["notification"]["bcc"]);
        ?>
" class="fieldwidth-1" />
                                            </li>
                                            <?php 
        $is_invalid_subject = $invalid_tab == 1 && empty($_POST["form_notification_subject"]);
        $class = $is_invalid_subject ? "class='gfield_error'" : "";
        ?>
                                            <li <?php 
        echo $class;
        ?>
>
                                                <div>
                                                    <label for="form_notification_subject">
                                                        <?php 
        _e("Subject", "gravityforms");
        ?>
<span class="gfield_required">*</span>
                                                    </label>
                                                    <div>
                                                        <?php 
        GFCommon::insert_variables($form["fields"], "form_notification_subject", true);
        ?>
                                                    </div>
                                                    <input type="text" name="form_notification_subject" id="form_notification_subject" value="<?php 
        echo esc_attr($form["notification"]["subject"]);
        ?>
" class="fieldwidth-1" />

                                                    <?php 
        if ($is_invalid_subject) {
            ?>
                                                        <span class="validation_message"><?php 
            _e("Please enter a subject for the notification email");
            ?>
</span>
                                                    <?php 
        }
        ?>
                                                </div>
                                            </li>
                                            <?php 
        $is_invalid_message = $invalid_tab == 1 && empty($_POST["form_notification_message"]);
        $class = $is_invalid_message ? "class='gfield_error'" : "";
        ?>
                                            <li <?php 
        echo $class;
        ?>
>
                                                <div>
                                                    <label for="form_notification_message">
                                                        <?php 
        _e("Message", "gravityforms");
        ?>
<span class="gfield_required">*</span>
                                                    </label>
                                                    <div>
                                                        <?php 
        GFCommon::insert_variables($form["fields"], "form_notification_message");
        ?>
                                                    </div>
                                                    <textarea name="form_notification_message" id="form_notification_message" class="fieldwidth-1 fieldheight-1" ><?php 
        echo esc_html($form["notification"]["message"]);
        ?>
</textarea>

                                                    <?php 
        if ($is_invalid_message) {
            ?>
                                                        <span class="validation_message"><?php 
            _e("Please enter a message for the notification email");
            ?>
</span>
                                                    <?php 
        }
        ?>
                                                </div>
                                            </li>
                                            <li>
                                                <div>
                                                    <input type="checkbox" name="form_notification_disable_autoformat" id="form_notification_disable_autoformat" value="1" <?php 
        echo empty($form["notification"]["disableAutoformat"]) ? "" : "checked='checked'";
        ?>
/>
                                                    <label for="form_notification_disable_autoformat" class="inline">
                                                        <?php 
        _e("Disable Auto-formatting", "gravityforms");
        ?>
                                                        <?php 
        gform_tooltip("notification_autoformat");
        ?>
                                                    </label>
                                                </div>
                                            </li>
                                        </ul>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>

                    <div id="submitdiv" class="stuffbox">
                        <h3><span class="hndle"><?php 
        _e("Notification to User", "gravityforms");
        ?>
</span></h3>
                        <div class="inside">
                            <div id="submitcomment" class="submitbox">
                                <div id="minor-publishingx" style="padding:10px;">
                                    <?php 
        if (empty($email_fields)) {
            ?>
                                        <div class="gold_notice">
                                        <p><?php 
            echo sprintf(__("Your form does not have any %semail%s field.", "gravityforms"), "<strong>", "</strong>");
            ?>
</p>
                                        <p>
                                        <?php 
            echo sprintf(__("Sending notifications to users require that the form has at least one email field. %sEdit your form%s", "gravityforms"), '<a href="?page=gf_edit_forms&id=' . absint($form_id) . '">', '</a>');
            ?>
                                        </p>
                                        </div>
                                        <?php 
        } else {
            ?>

                                        <input type="checkbox" name="form_notification_enable_user" id="form_notification_enable_user" value="1" <?php 
            echo $is_user_notification_enabled ? "checked='checked'" : "";
            ?>
 onclick="if(this.checked) {jQuery('#form_notification_user_container').show('slow');} else {jQuery('#form_notification_user_container').hide('slow');}"/> <label for="form_notification_enable_user"><?php 
            _e("Enable email notification to users", "gravityforms");
            ?>
</label>

                                        <div id="form_notification_user_container" style="display:<?php 
            echo $is_user_notification_enabled ? "block" : "none";
            ?>
;">
                                            <br/>
                                            <?php 
            _e("Enter a message below to send users an automatic response when they submit this form.", "gravityforms");
            ?>
<br/><br/><br/>
                                            <ul id="form_autoresponder_container">
                                                <li>
                                                    <label for="form_autoresponder_to">
                                                        <?php 
            _e("Send To Field", "gravityforms");
            ?>
<span class="gfield_required">*</span>
                                                        <?php 
            gform_tooltip("autoresponder_send_to_email");
            ?>
                                                    </label>
                                                    <select name="form_autoresponder_to" id="form_autoresponder_to">
                                                        <?php 
            foreach ($email_fields as $field) {
                $selected = $form["autoResponder"]["toField"] == $field["id"] ? "selected='selected'" : "";
                ?>
                                                            <option value="<?php 
                echo $field["id"];
                ?>
" <?php 
                echo $selected;
                ?>
><?php 
                echo esc_html(GFCommon::get_label($field));
                ?>
</option>
                                                            <?php 
            }
            ?>
                                                    </select>
                                                </li>
                                                <li>
                                                    <label for="form_autoresponder_from_name">
                                                        <?php 
            _e("From Name", "gravityforms");
            ?>
                                                        <?php 
            gform_tooltip("autoresponder_from_name");
            ?>
                                                    </label>
                                                    <input type="text" name="form_autoresponder_from_name" id="form_autoresponder_from_name" value="<?php 
            echo esc_attr($form["autoResponder"]["fromName"]);
            ?>
" class="fieldwidth-2" />
                                                </li>
                                                <li>
                                                    <label for="form_autoresponder_from">
                                                        <?php 
            _e("From Email", "gravityforms");
            ?>
                                                        <?php 
            gform_tooltip("autoresponder_from");
            ?>
                                                    </label>
                                                    <input type="text" name="form_autoresponder_from" id="form_autoresponder_from" value="<?php 
            echo empty($form["autoResponder"]["from"]) ? esc_attr($wp_email) : esc_attr($form["autoResponder"]["from"]);
            ?>
" class="fieldwidth-2" />
                                                </li>
                                                <li>
                                                    <label for="form_autoresponder_reply_to" style="display:block;">
                                                        <?php 
            _e("Reply To (optional)", "gravityforms");
            ?>
                                                        <?php 
            gform_tooltip("autoresponder_reply_to");
            ?>
                                                    </label>
                                                    <input type="text" name="form_autoresponder_reply_to" id="form_autoresponder_reply_to" value="<?php 
            echo esc_attr($form["autoResponder"]["replyTo"]);
            ?>
" class="fieldwidth-2" />
                                                </li>
                                                <li>
                                                    <label for="form_autoresponder_bcc">
                                                        <?php 
            _e("BCC", "gravityforms");
            ?>
                                                        <?php 
            gform_tooltip("autoresponder_bcc");
            ?>
                                                    </label>
                                                    <input type="text" name="form_autoresponder_bcc" id="form_autoresponder_bcc" value="<?php 
            echo esc_attr($form["autoResponder"]["bcc"]);
            ?>
" class="fieldwidth-1" />
                                                </li>

                                                <?php 
            $is_invalid_subject = $invalid_tab == 2 && empty($_POST["form_autoresponder_subject"]);
            $class = $is_invalid_subject ? "class='gfield_error'" : "";
            ?>
                                                <li <?php 
            echo $class;
            ?>
>

                                                    <label for="form_autoresponder_subject">
                                                        <?php 
            _e("Subject", "gravityforms");
            ?>
<span class="gfield_required">*</span>
                                                    </label>
                                                    <div>
                                                        <?php 
            GFCommon::insert_variables($form["fields"], "form_autoresponder_subject", true);
            ?>
                                                    </div>
                                                    <input type="text" name="form_autoresponder_subject" id="form_autoresponder_subject" value="<?php 
            echo esc_attr($form["autoResponder"]["subject"]);
            ?>
" class="fieldwidth-1" />

                                                    <?php 
            if ($is_invalid_subject) {
                ?>
                                                        <span class="validation_message"><?php 
                _e("Please enter a subject for the user notification email");
                ?>
</span>
                                                    <?php 
            }
            ?>

                                                 </li>
                                                 <?php 
            $is_invalid_message = $invalid_tab == 2 && empty($_POST["form_autoresponder_message"]);
            $class = $is_invalid_message ? "class='gfield_error'" : "";
            ?>
                                                <li <?php 
            echo $class;
            ?>
>
                                                    <div>
                                                        <label for="form_autoresponder_message">
                                                            <?php 
            _e("Message", "gravityforms");
            ?>
<span class="gfield_required">*</span>
                                                        </label>
                                                        <div>
                                                            <?php 
            GFCommon::insert_variables($form["fields"], "form_autoresponder_message");
            ?>
                                                        </div>
                                                        <textarea name="form_autoresponder_message" id="form_autoresponder_message" class="fieldwidth-1 fieldheight-1"><?php 
            echo esc_html($form["autoResponder"]["message"]);
            ?>
</textarea>

                                                        <?php 
            if ($is_invalid_message) {
                ?>
                                                            <span class="validation_message"><?php 
                _e("Please enter a message for the user notification email");
                ?>
</span>
                                                        <?php 
            }
            ?>
                                                    </div>
                                                </li>
                                                <li>
                                                    <div>
                                                        <input type="checkbox" name="form_autoresponder_disable_autoformat" id="form_autoresponder_disable_autoformat" value="1" <?php 
            echo empty($form["autoResponder"]["disableAutoformat"]) ? "" : "checked='checked'";
            ?>
/>
                                                        <label for="form_notification_disable_autoformat" class="inline">
                                                            <?php 
            _e("Disable Auto-formatting", "gravityforms");
            ?>
                                                            <?php 
            gform_tooltip("notification_autoformat");
            ?>
                                                        </label>
                                                    </div>
                                                </li>
                                            </ul>
                                        </div>
                                        <?php 
        }
        ?>
                                </div>
                            </div>
                        </div>
                    </div>

                    <br class="clear" />
                    <div>
                        <?php 
        $notification_button = '<input class="button-primary" type="submit" value="' . __("Save Settings", "gravityforms") . '" name="save"/>';
        echo apply_filters("gform_save_notification_button", $notification_button);
        ?>
                    </div>
                </div>
            </div>
        </form>
        <?php 
        if ($_POST["save"]) {
            if ($invalid_tab == 0) {
                ?>
                <div class="updated fade" style="padding:6px;">
                    <?php 
                _e("Notification Updated.", "gravityforms");
                ?>
                </div>
                <?php 
            } else {
                ?>
                <div class="error" style="padding:6px;">
                    <?php 
                _e("Notification could not be updated. Please enter all required information below.", "gravityforms");
                ?>
                </div>
                <?php 
            }
        }
    }
예제 #10
0
    public static function lead_detail_page()
    {
        global $wpdb;
        global $current_user;
        if (!GFCommon::ensure_wp_version()) {
            return;
        }
        echo GFCommon::get_remote_message();
        $form = RGFormsModel::get_form_meta($_GET["id"]);
        $lead = RGFormsModel::get_lead($_GET["lid"]);
        if (!$lead) {
            _e("OOps! We couldn't find your lead. Please try again", "gravityforms");
            return;
        }
        RGFormsModel::update_lead_property($lead["id"], "is_read", 1);
        $search_qs = empty($_GET["s"]) ? "" : "&s=" . $_GET["s"];
        $sort_qs = empty($_GET["sort"]) ? "" : "&sort=" . $_GET["sort"];
        $dir_qs = empty($_GET["dir"]) ? "" : "&dir=" . $_GET["dir"];
        $page_qs = empty($_GET["paged"]) ? "" : "&paged=" . absint($_GET["paged"]);
        switch (RGForms::post("action")) {
            case "update":
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                RGFormsModel::save_lead($form, $lead);
                $lead = RGFormsModel::get_lead($_GET["lid"]);
                break;
            case "add_note":
                check_admin_referer('gforms_update_note', 'gforms_update_note');
                $user_data = get_userdata($current_user->ID);
                RGFormsModel::add_note($lead["id"], $current_user->ID, $user_data->display_name, stripslashes($_POST["new_note"]));
                //emailing notes if configured
                if (rgpost("gentry_email_notes_to")) {
                    $email_to = $_POST["gentry_email_notes_to"];
                    $email_from = $current_user->user_email;
                    $email_subject = stripslashes($_POST["gentry_email_subject"]);
                    $headers = "From: \"{$email_from}\" <{$email_from}> \r\n";
                    $result = wp_mail($email_to, $email_subject, stripslashes($_POST["new_note"]), $headers);
                }
                break;
            case "add_quick_note":
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                $user_data = get_userdata($current_user->ID);
                RGFormsModel::add_note($lead["id"], $current_user->ID, $user_data->display_name, stripslashes($_POST["quick_note"]));
                break;
            case "bulk":
                check_admin_referer('gforms_update_note', 'gforms_update_note');
                if ($_POST["bulk_action"] == "delete") {
                    RGFormsModel::delete_notes($_POST["note"]);
                }
                break;
            case "delete":
                check_admin_referer('gforms_save_entry', 'gforms_save_entry');
                RGFormsModel::delete_lead($lead["id"]);
                ?>
                <div id="message" class="updated fade" style="background-color: rgb(255, 251, 204); margin-top:50px; padding:50px;">
                    <?php 
                _e("Entry has been deleted.", "gravityforms");
                ?>
 <a href="<?php 
                echo esc_url("admin.php?page=gf_entries&view=entries&id=" . absint($form["id"]) . $search_qs . $sort_qs . $dir_qs . $page_qs);
                ?>
"><?php 
                _e("Back to entries list", "gravityforms");
                ?>
</a>
                </div>
                <?php 
                exit;
                break;
        }
        $mode = empty($_POST["screen_mode"]) ? "view" : $_POST["screen_mode"];
        ?>
        <link rel="stylesheet" href="<?php 
        echo GFCommon::get_base_url();
        ?>
/css/admin.css" />
        <script type="text/javascript">

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

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

                    return true;
                }
            }

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

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

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

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

        </script>

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

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

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

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

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

                </div>

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

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

                                <form method="post">
                                    <?php 
            wp_nonce_field('gforms_update_note', 'gforms_update_note');
            ?>
                                    <div class="inside">
                                        <?php 
            $notes = RGFormsModel::get_lead_notes($lead["id"]);
            //getting email values
            $email_fields = GFCommon::get_email_fields($form);
            $emails = array();
            foreach ($email_fields as $email_field) {
                if (!empty($lead[$email_field["id"]])) {
                    $emails[] = $lead[$email_field["id"]];
                }
            }
            //displaying notes grid
            $subject = !empty($form["autoResponder"]["subject"]) ? "RE: " . GFCommon::replace_variables($form["autoResponder"]["subject"], $form, $lead) : "";
            self::notes_grid($notes, true, $emails, $subject);
            ?>
                                    </div>
                                </form>
                            </div>
                        <?php 
        }
        ?>
                    </div>
                </div>
            </div>
        </div>
        </form>
        <?php 
        if (rgpost("action") == "update") {
            ?>
            <div class="updated fade" style="padding:6px;">
                <?php 
            _e("Entry Updated.", "gravityforms");
            ?>
            </div>
            <?php 
        }
    }
예제 #11
0
    public static function notification_page($form_id)
    {
        add_action('media_buttons', array('GFNotification', 'media_buttons'), 40);
        $form = RGFormsModel::get_form_meta($form_id);
        $invalid_tab = "";
        if (rgpost("save")) {
            check_admin_referer('gforms_save_notification', 'gforms_save_notification');
            $form["notification"]["to"] = rgpost("form_notification_to");
            $form["notification"]["bcc"] = rgpost("form_notification_bcc");
            $form["notification"]["subject"] = rgpost("form_notification_subject");
            $form["notification"]["message"] = rgpost("form_notification_message");
            $form["notification"]["from"] = rgempty("form_notification_from_field") ? rgpost("form_notification_from") : "";
            $form["notification"]["fromField"] = rgpost("form_notification_from_field");
            $form["notification"]["fromName"] = rgempty("form_notification_from_name_field") ? rgpost("form_notification_from_name") : "";
            $form["notification"]["fromNameField"] = rgpost("form_notification_from_name_field");
            $form["notification"]["replyTo"] = rgempty("form_notification_reply_to_field") ? rgpost("form_notification_reply_to") : "";
            $form["notification"]["replyToField"] = rgpost("form_notification_reply_to_field");
            $form["notification"]["routing"] = !rgempty("gform_routing_meta") ? GFCommon::json_decode(rgpost("gform_routing_meta"), true) : null;
            $form["notification"]["disableAutoformat"] = rgpost("form_notification_disable_autoformat");
            $form["autoResponder"]["toField"] = rgpost("form_autoresponder_to");
            $form["autoResponder"]["bcc"] = rgpost("form_autoresponder_bcc");
            $form["autoResponder"]["fromName"] = rgpost("form_autoresponder_from_name");
            $form["autoResponder"]["from"] = rgpost("form_autoresponder_from");
            $form["autoResponder"]["replyTo"] = rgpost("form_autoresponder_reply_to");
            $form["autoResponder"]["subject"] = rgpost("form_autoresponder_subject");
            $form["autoResponder"]["message"] = rgpost("form_autoresponder_message");
            $form["autoResponder"]["disableAutoformat"] = rgpost("form_autoresponder_disable_autoformat");
            //validating input...
            $invalid_tab = self::validate_notification();
            if ($invalid_tab == 0) {
                //input valid, updating...
                //emptying notification email if it is supposed to be disabled
                if (empty($_POST["form_notification_enable_admin"]) || $_POST["notification_to"] == "routing") {
                    $form["notification"]["to"] = "";
                }
                //emptying notification routing if it is supposed to be disabled
                if (empty($_POST["form_notification_enable_admin"]) || $_POST["notification_to"] == "email") {
                    $form["notification"]["routing"] = null;
                }
                //emptying autoResponder settings if it is supposed to be disabled
                if (empty($_POST["form_notification_enable_user"])) {
                    $form["autoResponder"]["toField"] = "";
                }
                RGFormsModel::update_form_meta($form_id, $form);
            }
        }
        $wp_email = "{admin_email}";
        $email_fields = GFCommon::get_email_fields($form);
        $name_fields = GFCommon::get_fields_by_type($form, array("name"));
        $has_admin_notification_fields = GFCommon::has_admin_notification($form);
        $has_user_notification_fields = GFCommon::has_user_notification($form);
        $is_admin_notification_enabled = $has_admin_notification_fields && empty($_POST["save"]) || !empty($_POST["form_notification_enable_admin"]);
        $is_user_notification_enabled = $has_user_notification_fields && empty($_POST["save"]) || !empty($_POST["form_notification_enable_user"]);
        $is_routing_enabled = !empty($form["notification"]["routing"]) && rgpost("notification_to") != "email";
        ?>
        <link rel="stylesheet" href="<?php 
        echo GFCommon::get_base_url();
        ?>
/css/admin.css?ver=<?php 
        echo GFCommon::$version;
        ?>
" />
        <script type="text/javascript" src="<?php 
        echo GFCommon::get_base_url();
        ?>
/js/forms.js?ver=<?php 
        echo GFCommon::$version;
        ?>
"></script>
        <script src="<?php 
        echo GFCommon::get_base_url();
        ?>
/js/jquery.json-1.3.js?ver=<?php 
        echo GFCommon::$version;
        ?>
"></script>

        <script type="text/javascript">
        var gform_has_unsaved_changes = false;
        jQuery(document).ready(function(){

            jQuery("#entry_form input, #entry_form textarea, #entry_form select").change(function(){
                gform_has_unsaved_changes = true;
            });

            window.onbeforeunload = function(){
                if (gform_has_unsaved_changes){
                    return "You have unsaved changes.";
                }
            }


            if(jQuery(document).on){
                jQuery(document).on('change', '.gfield_routing_value_dropdown', function(){
                        SetRoutingValueDropDown(jQuery(this));
                    });
            }
            else{
                jQuery('.gfield_routing_value_dropdown').live('change', function(){
                    SetRoutingValueDropDown(jQuery(this));
                });
            }
        });


        <?php 
        if (empty($form["notification"])) {
            $form["notification"] = array();
        }
        ?>

        var form = <?php 
        echo GFCommon::json_encode($form);
        ?>
;

        function SetRoutingValueDropDown(element){
            //parsing ID to get routing Index
            var index = element.attr("id").replace("routing_value_", "");
            SetRouting(index);
        }

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

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

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

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


                if(callback && window[callback]){
                    window[callback].call(null, element_id, variable);
                }
        }

        function InsertEditorVariable(elementId){
            var select = jQuery("#" + elementId + "_variable_select");
            var variable = select.val();
            select[0].selectedIndex = 0;

            wpActiveEditor = elementId;
            window.send_to_editor(variable);
        }

        function CreateRouting(routings){
            var str = "";
            for(var i=0; i< routings.length; i++){

                var isSelected = routings[i].operator == "is" ? "selected='selected'" :"";
                var isNotSelected = routings[i].operator == "isnot" ? "selected='selected'" :"";
                var greaterThanSelected = routings[i].operator == ">" ? "selected='selected'" :"";
                var lessThanSelected = routings[i].operator == "<" ? "selected='selected'" :"";
                var containsSelected = routings[i].operator == "contains" ? "selected='selected'" :"";
                var startsWithSelected = routings[i].operator == "starts_with" ? "selected='selected'" :"";
                var endsWithSelected = routings[i].operator == "ends_with" ? "selected='selected'" :"";
                var email = routings[i]["email"] ? routings[i]["email"] : '';

                str += "<div style='width:99%'><?php 
        _e("Send to", "gravityforms");
        ?>
 <input type='text' id='routing_email_" + i +"' value='" + email + "' onkeyup='SetRouting(" + i + ");'/>";
                str += " <?php 
        _e("if", "gravityforms");
        ?>
 " + GetRoutingFields(i, routings[i].fieldId);
                str += "<select id='routing_operator_" + i + "' onchange='SetRouting(" + i + ");'>";
                str += "<option value='is' " + isSelected + "><?php 
        _e("is", "gravityforms");
        ?>
</option>";
                str += "<option value='isnot' " + isNotSelected + "><?php 
        _e("is not", "gravityforms");
        ?>
</option>";
                str += "<option value='>' " + greaterThanSelected + "><?php 
        _e("greater than", "gravityforms");
        ?>
</option>";
                str += "<option value='<' " + lessThanSelected + "><?php 
        _e("less than", "gravityforms");
        ?>
</option>";
                str += "<option value='contains' " + containsSelected + "><?php 
        _e("contains", "gravityforms");
        ?>
</option>";
                str += "<option value='starts_with' " + startsWithSelected + "><?php 
        _e("starts with", "gravityforms");
        ?>
</option>";
                str += "<option value='ends_with' " + endsWithSelected + "><?php 
        _e("ends with", "gravityforms");
        ?>
</option>";
                str += "</select>";
                str += GetRoutingValues(i, routings[i].fieldId, routings[i].value);
                str += "<img src='<?php 
        echo GFCommon::get_base_url();
        ?>
/images/add.png' class='add_field_choice' title='add another rule' alt='add another rule' style='cursor:pointer; margin:0 3px;' onclick=\"InsertRouting(" + (i+1) + ");\" />";
                if(routings.length > 1 )
                    str += "<img src='<?php 
        echo GFCommon::get_base_url();
        ?>
/images/remove.png' title='remove this rule' alt='remove this rule' class='delete_field_choice' style='cursor:pointer;' onclick=\"DeleteRouting(" + i + ");\" /></li>";

                str += "</div>";
            }

            jQuery("#notification_to_routing_container").html(str);
        }

        function GetRoutingValues(index, fieldId, selectedValue){
            str = GetFieldValues(index, fieldId, selectedValue, 16);

            return str;
        }

        function GetRoutingFields(index, selectedItem){
            var str = "<select id='routing_field_id_" + index + "' class='gfield_routing_select' onchange='jQuery(\"#routing_value_" + index + "\").replaceWith(GetRoutingValues(" + index + ", jQuery(this).val())); SetRouting(" + index + "); '>";
            str += GetSelectableFields(selectedItem, 16);
            str += "</select>";

            return str;
        }

        //---------------------- generic ---------------
        function GetSelectableFields(selectedFieldId, labelMaxCharacters){
            var str = "";
            var inputType;
            for(var i=0; i<form.fields.length; i++){
                inputType = form.fields[i].inputType ? form.fields[i].inputType : form.fields[i].type;
                //see if this field type can be used for conditionals
                if (IsNotificationConditionalLogicField(form.fields[i])) {
                    var selected = form.fields[i].id == selectedFieldId ? "selected='selected'" : "";
                    str += "<option value='" + form.fields[i].id + "' " + selected + ">" + form.fields[i].label + "</option>";
                }
            }
            return str;
        }

        function IsNotificationConditionalLogicField(field){
        	//this function is a duplicate of IsConditionalLogicField from form_editor.js
		    inputType = field.inputType ? field.inputType : field.type;
		    var supported_fields = ["checkbox", "radio", "select", "text", "website", "textarea", "email", "hidden", "number", "phone", "multiselect", "post_title",
		                            "post_tags", "post_custom_field", "post_content", "post_excerpt"];

		    var index = jQuery.inArray(inputType, supported_fields);

		    return index >= 0;
		}

        function GetFirstSelectableField(){
            var inputType;
            for(var i=0; i<form.fields.length; i++){
                inputType = form.fields[i].inputType ? form.fields[i].inputType : form.fields[i].type;
                if (IsNotificationConditionalLogicField(form.fields[i])){
                    return form.fields[i].id;
				}
            }

            return 0;
        }

        function TruncateMiddle(text, maxCharacters){
            if(!text)
                return "";

            if(text.length <= maxCharacters)
                return text;
            var middle = parseInt(maxCharacters / 2);
            return text.substr(0, middle) + "..." + text.substr(text.length - middle, middle);

        }

        function GetFieldValues(index, fieldId, selectedValue, labelMaxCharacters){
            if(!fieldId)
                fieldId = GetFirstSelectableField();

            if(!fieldId)
                return "";

            var str = "";
            var field = GetFieldById(fieldId);
            var isAnySelected = false;

            if(!field)
        		return "";

            if(field["type"] == "post_category" && field["displayAllCategories"]){
            	var dropdown_id = "routing_value_" + index;
		        var dropdown = jQuery('#' + dropdown_id + ".gfield_category_dropdown");

		        //don't load category drop down if it already exists (to avoid unecessary ajax requests)
		        if(dropdown.length > 0){

		            var options = dropdown.html();
		            options = options.replace("value=\"" + selectedValue + "\"", "value=\"" + selectedValue + "\" selected=\"selected\"");
		            str = "<select id='" + dropdown_id + "' class='gfield_routing_select gfield_category_dropdown gfield_routing_value_dropdown'>" + options + "</select>";
		        }
		        else{
		            //loading categories via AJAX
		            jQuery.post(ajaxurl,{   action:"gf_get_notification_post_categories",
		                                    ruleIndex: index,
		                                    selectedValue: selectedValue},
		                                function(dropdown_string){
		                                    if(dropdown_string){
		                                        jQuery('#gfield_ajax_placeholder_' + index).replaceWith(dropdown_string.trim());
		                                    }
		                                }
		                        );

		            //will be replaced by real drop down during the ajax callback
		            str = "<select id='gfield_ajax_placeholder_" + index + "' class='gfield_routing_select'><option><?php 
        _e("Loading...", "gravityforms");
        ?>
</option></select>";
		        }
			}
            else if(field.choices){
            	//create a drop down for fields that have choices (i.e. drop down, radio, checkboxes, etc...)
	            str = "<select class='gfield_routing_select gfield_routing_value_dropdown' id='routing_value_" + index + "'>";
	            for(var i=0; i<field.choices.length; i++){
	                var choiceValue = field.choices[i].value ? field.choices[i].value : field.choices[i].text;
	                var isSelected = choiceValue == selectedValue;
	                var selected = isSelected ? "selected='selected'" : "";
	                if(isSelected)
	                    isAnySelected = true;

	                str += "<option value='" + choiceValue.replace(/'/g, "&#039;") + "' " + selected + ">" + field.choices[i].text + "</option>";
	            }

	            if(!isAnySelected && selectedValue){
	                str += "<option value='" + selectedValue.replace(/'/g, "&#039;") + "' selected='selected'>" + selectedValue + "</option>";
	            }
	            str += "</select>";
			}
			else
			{
			    selectedValue = selectedValue ? selectedValue.replace(/'/g, "&#039;") : "";
			    //create a text field for fields that don't have choices (i.e text, textarea, number, email, etc...)
			    str = "<input type='text' placeholder='<?php 
        _e("Enter value", "gravityforms");
        ?>
' class='gfield_routing_select' id='routing_value_" + index + "' value='" + selectedValue.replace(/'/g, "&#039;") + "' onchange='SetRouting(" + index + ");' onkeyup='SetRouting(" + index + ");'>";
			}
            return str;
        }

        function GetFieldById(fieldId){
            for(var i=0; i<form.fields.length; i++){
                if(form.fields[i].id == fieldId)
                    return form.fields[i];
            }
            return null;
        }
        //---------------------------------------------------------------------------------

        function InsertRouting(index){
            var routings = form.notification.routing;
            routings.splice(index, 0, new ConditionalRule());

            CreateRouting(routings);
            SetRouting(index);
        }

        function SetRouting(ruleIndex){
            if(!form.notification.routing && ruleIndex == 0)
                form.notification.routing = [new ConditionalRule()];

            form.notification.routing[ruleIndex]["email"] = jQuery("#routing_email_" + ruleIndex).val();
            form.notification.routing[ruleIndex]["fieldId"] = jQuery("#routing_field_id_" + ruleIndex).val();
            form.notification.routing[ruleIndex]["operator"] = jQuery("#routing_operator_" + ruleIndex).val();
            form.notification.routing[ruleIndex]["value"] =jQuery("#routing_value_" + ruleIndex).val();

            var json = jQuery.toJSON(form.notification.routing);
            jQuery('#gform_routing_meta').val(json);
        }

        function DeleteRouting(ruleIndex){
            form.notification.routing.splice(ruleIndex, 1);
            CreateRouting(form.notification.routing);
        }

        </script>
        <?php 
        echo GFCommon::get_remote_message();
        ?>

        <form method="post" id="entry_form" onsubmit="gform_has_unsaved_changes = false; jQuery('#gform_routing_meta').val(jQuery.toJSON(form.notification.routing));">
            <?php 
        wp_nonce_field('gforms_save_notification', 'gforms_save_notification');
        ?>
            <input type="hidden" id="gform_routing_meta" name="gform_routing_meta" />
            <div class="wrap">

                <div class="icon32" id="gravity-notification-icon"><br></div>

                <h2><?php 
        _e("Notifications", "gravityforms");
        ?>
 : <?php 
        echo esc_html($form["title"]);
        ?>
</h2>

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

                <div id="poststuff" class="metabox-holder">
                    <div id="submitdiv" class="stuffbox">
                        <h3><span class="hndle"><?php 
        _e("Notification to Administrator", "gravityforms");
        ?>
</span></h3>
                        <div class="inside">
                            <div id="submitcomment" class="submitbox">

                                <div id="minor-publishingx" style="padding:10px;">
                                    <input type="checkbox" name="form_notification_enable_admin" id="form_notification_enable_admin" value="1" <?php 
        echo $is_admin_notification_enabled ? "checked='checked'" : "";
        ?>
 onclick="if(this.checked) {jQuery('#form_notification_admin_container').show('slow');} else {jQuery('#form_notification_to').val(''); jQuery('#form_notification_admin_container').hide('slow');}"/> <label for="form_notification_enable_admin"><?php 
        _e("Enable email notification to administrators", "gravityforms");
        ?>
</label>
                                    <div id="form_notification_admin_container" style="display:<?php 
        echo $is_admin_notification_enabled ? "block" : "none";
        ?>
;">
                                        <br/>
                                        <?php 
        _e("Enter a message below to receive a notification email when users submit this form.", "gravityforms");
        ?>
<br/><br/><br/>

                                        <ul id="form_notification_container">
                                            <?php 
        $is_invalid_email_to = $invalid_tab == 1 && !self::is_valid_admin_to();
        $class = $is_invalid_email_to ? "class='gfield_error'" : "";
        ?>
                                            <li <?php 
        echo $class;
        ?>
>
                                                <label for="notification_to_email">
                                                    <?php 
        _e("Send To Email", "gravityforms");
        ?>
<span class="gfield_required">*</span>
                                                    <?php 
        gform_tooltip("notification_send_to_email");
        ?>
                                                </label>

                                                <input type="radio" id="notification_to_email" name="notification_to" <?php 
        echo !$is_routing_enabled ? "checked='checked'" : "";
        ?>
 value="email" onclick="jQuery('#notification_to_routing_container').hide(); jQuery('#notification_to_email_container').show('slow');"/>
                                                <label for="notification_to_email" class="inline">
                                                    <?php 
        _e("Email", "gravityforms");
        ?>
                                                </label>
                                                &nbsp;&nbsp;
                                                <input type="radio" id="notification_to_routing" name="notification_to" <?php 
        echo $is_routing_enabled ? "checked='checked'" : "";
        ?>
 value="routing" onclick="jQuery('#notification_to_email_container').hide(); jQuery('#notification_to_routing_container').show('slow');"/>
                                                <label for="form_button_image" class="inline">
                                                    <?php 
        _e("Routing", "gravityforms");
        ?>
                                                    <?php 
        gform_tooltip("notification_send_to_routing");
        ?>
                                                </label>

                                                <div id="notification_to_email_container" style="margin-top:5px; display:<?php 
        echo $is_routing_enabled ? "none" : "block";
        ?>
;">
                                                    <input type="text" name="form_notification_to" id="form_notification_to" value="<?php 
        echo esc_attr($form["notification"]["to"]);
        ?>
" class="fieldwidth-1" />

                                                    <?php 
        if (rgpost("notification_to") == "email" && $is_invalid_email_to) {
            ?>
                                                        <span class="validation_message"><?php 
            _e("Please enter a valid email address");
            ?>
</span>
                                                    <?php 
        }
        ?>
                                                </div>

                                                <div id="notification_to_routing_container" style="margin-top:5px;  display:<?php 
        echo $is_routing_enabled ? "block" : "none";
        ?>
;">
                                                    <div>
                                                        <?php 
        $routing_fields = self::get_routing_fields($form, "0");
        if (empty($routing_fields)) {
            //if(empty(){
            ?>
                                                            <div class="gold_notice">
                                                                <p><?php 
            _e("To use notification routing, your form must have a field supported by conditional logic.", "gravityforms");
            ?>
</p>
                                                            </div>
                                                            <?php 
        } else {
            if (empty($form["notification"]["routing"])) {
                $form["notification"]["routing"] = array(array());
            }
            $count = sizeof($form["notification"]["routing"]);
            $routing_list = ",";
            for ($i = 0; $i < $count; $i++) {
                $routing_list .= $i . ",";
                $routing = $form["notification"]["routing"][$i];
                $is_invalid_rule = $invalid_tab == 1 && $_POST["notification_to"] == "routing" && !self::is_valid_notification_email($routing["email"]);
                $class = $is_invalid_rule ? "class='grouting_rule_error'" : "";
                ?>
                                                                <div style='width:99%' <?php 
                echo $class;
                ?>
>
                                                                    <?php 
                _e("Send to", "gravityforms");
                ?>
 <input type="text" id="routing_email_<?php 
                echo $i;
                ?>
" value="<?php 
                echo rgar($routing, "email");
                ?>
" onkeyup="SetRouting(<?php 
                echo $i;
                ?>
);"/>
                                                                    <?php 
                _e("if", "gravityforms");
                ?>
 <select id="routing_field_id_<?php 
                echo $i;
                ?>
" class='gfield_routing_select' onchange='jQuery("#routing_value_<?php 
                echo $i;
                ?>
").replaceWith(GetRoutingValues(<?php 
                echo $i;
                ?>
, jQuery(this).val())); SetRouting(<?php 
                echo $i;
                ?>
); '><?php 
                echo self::get_routing_fields($form, rgar($routing, "fieldId"));
                ?>
</select>
                                                                    <select id="routing_operator_<?php 
                echo $i;
                ?>
" onchange="SetRouting(<?php 
                echo $i;
                ?>
)" >
                                                                        <option value="is" <?php 
                echo rgar($routing, "operator") == "is" ? "selected='selected'" : "";
                ?>
><?php 
                _e("is", "gravityforms");
                ?>
</option>
                                                                        <option value="isnot" <?php 
                echo rgar($routing, "operator") == "isnot" ? "selected='selected'" : "";
                ?>
><?php 
                _e("is not", "gravityforms");
                ?>
</option>
                                                                        <option value=">" <?php 
                echo rgar($routing, "operator") == ">" ? "selected='selected'" : "";
                ?>
><?php 
                _e("greater than", "gravityforms");
                ?>
</option>
                                                                        <option value="<" <?php 
                echo rgar($routing, "operator") == "<" ? "selected='selected'" : "";
                ?>
><?php 
                _e("less than", "gravityforms");
                ?>
</option>
                                                                        <option value="contains" <?php 
                echo rgar($routing, "operator") == "contains" ? "selected='selected'" : "";
                ?>
><?php 
                _e("contains", "gravityforms");
                ?>
</option>
                                                                        <option value="starts_with" <?php 
                echo rgar($routing, "operator") == "starts_with" ? "selected='selected'" : "";
                ?>
><?php 
                _e("starts with", "gravityforms");
                ?>
</option>
                                                                        <option value="ends_with" <?php 
                echo rgar($routing, "operator") == "ends_with" ? "selected='selected'" : "";
                ?>
><?php 
                _e("ends with", "gravityforms");
                ?>
</option>
                                                                    </select>
                                                                    <?php 
                echo self::get_field_values($i, $form, rgar($routing, "fieldId"), rgar($routing, "value"));
                ?>
                                                                    <img src='<?php 
                echo GFCommon::get_base_url();
                ?>
/images/add.png' class='add_field_choice' title='add another email routing' alt='add another email routing' style='cursor:pointer; margin:0 3px;' onclick='SetRouting(<?php 
                echo $i;
                ?>
); InsertRouting(<?php 
                echo $i + 1;
                ?>
);' />
                                                                    <?php 
                if ($count > 1) {
                    ?>
                                                                        <img src='<?php 
                    echo GFCommon::get_base_url();
                    ?>
/images/remove.png' id='routing_delete_<?php 
                    echo $i;
                    ?>
' title='remove this email routing' alt='remove this email routing' class='delete_field_choice' style='cursor:pointer;' onclick='DeleteRouting(<?php 
                    echo $i;
                    ?>
);' />
                                                                    <?php 
                }
                ?>
                                                                </div>
                                                            <?php 
            }
            if ($is_invalid_rule) {
                ?>
                                                                <span class="validation_message"><?php 
                _e("Please enter a valid email address for all highlighted routing rules above.");
                ?>
</span>
                                                            <?php 
            }
            ?>
                                                            <input type="hidden" name="routing_count" id="routing_count" value="<?php 
            echo $routing_list;
            ?>
"/>
                                                        <?php 
        }
        ?>
                                                    </div>

                                                </div>
                                            </li>
                                            <li>
                                                <label for="form_notification_from">
                                                    <?php 
        _e("From Name", "gravityforms");
        ?>
                                                    <?php 
        gform_tooltip("notification_from_name");
        ?>
                                                </label>
                                                <input type="text" class="fieldwidth-2" name="form_notification_from_name" id="form_notification_from_name" onkeydown="jQuery('#form_notification_from_name_field').val('');" onchange="jQuery('#form_notification_from_name_field').val('');" value="<?php 
        echo esc_attr(rgget("fromName", $form["notification"]));
        ?>
"/>
                                                <?php 
        if (!empty($name_fields)) {
            ?>
                                                    <?php 
            _e("OR", "gravityforms");
            ?>
                                                    <select name="form_notification_from_name_field" id="form_notification_from_name_field" onchange="if(jQuery(this).val().length > 0 ) jQuery('#form_notification_from_name').val('');">
                                                        <option value=""><?php 
            _e("Select a name field", "gravityforms");
            ?>
</option>
                                                        <?php 
            foreach ($name_fields as $field) {
                $selected = rgget("fromNameField", $form["notification"]) == $field["id"] ? "selected='selected'" : "";
                ?>
                                                            <option value="<?php 
                echo $field["id"];
                ?>
" <?php 
                echo $selected;
                ?>
><?php 
                echo GFCommon::get_label($field);
                ?>
</option>
                                                            <?php 
            }
            ?>
                                                    </select>
                                                <?php 
        }
        ?>
                                            </li>
                                            <li>
                                                <label for="form_notification_from">
                                                    <?php 
        _e("From Email", "gravityforms");
        ?>
                                                    <?php 
        gform_tooltip("notification_from_email");
        ?>
                                                </label>
                                                <input type="text" class="fieldwidth-2" name="form_notification_from" id="form_notification_from" onkeydown="jQuery('#form_notification_from_field').val('');" onchange="jQuery('#form_notification_from_field').val('');" value="<?php 
        echo rgempty("from", $form["notification"]) && rgempty("fromField", $form["notification"]) ? esc_attr($wp_email) : esc_attr(rgget("from", $form["notification"]));
        ?>
"/>
                                                <?php 
        if (!empty($email_fields)) {
            ?>
                                                    <?php 
            _e("OR", "gravityforms");
            ?>
                                                    <select name="form_notification_from_field" id="form_notification_from_field" onchange="if(jQuery(this).val().length > 0 ) jQuery('#form_notification_from').val('');">
                                                        <option value=""><?php 
            _e("Select an email field", "gravityforms");
            ?>
</option>
                                                        <?php 
            foreach ($email_fields as $field) {
                $selected = rgget("fromField", $form["notification"]) == $field["id"] ? "selected='selected'" : "";
                ?>
                                                            <option value="<?php 
                echo $field["id"];
                ?>
" <?php 
                echo $selected;
                ?>
><?php 
                echo GFCommon::get_label($field);
                ?>
</option>
                                                            <?php 
            }
            ?>
                                                    </select>
                                                <?php 
        }
        ?>
                                            </li>

                                            <li>
                                                <label for="form_notification_reply_to">
                                                    <?php 
        _e("Reply To", "gravityforms");
        ?>
                                                    <?php 
        gform_tooltip("notification_reply_to");
        ?>
                                                </label>
                                                <input type="text" name="form_notification_reply_to" id="form_notification_reply_to" onkeydown="jQuery('#form_notification_reply_to_field').val('');" onchange="jQuery('#form_notification_reply_to_field').val('');" value="<?php 
        echo esc_attr(rgget("replyTo", $form["notification"]));
        ?>
" class="fieldwidth-2" />
                                                <?php 
        if (!empty($email_fields)) {
            ?>
                                                    <?php 
            _e("OR", "gravityforms");
            ?>
                                                    <select name="form_notification_reply_to_field" id="form_notification_reply_to_field" onchange="if(jQuery(this).val().length > 0 ) jQuery('#form_notification_reply_to').val('');">
                                                        <option value=""><?php 
            _e("Select an email field", "gravityforms");
            ?>
</option>
                                                        <?php 
            foreach ($email_fields as $field) {
                $selected = rgar($form["notification"], "replyToField") == $field["id"] ? "selected='selected'" : "";
                ?>
                                                            <option value="<?php 
                echo $field["id"];
                ?>
" <?php 
                echo $selected;
                ?>
><?php 
                echo GFCommon::get_label($field);
                ?>
</option>
                                                            <?php 
            }
            ?>
                                                    </select>
                                                <?php 
        }
        ?>
                                            </li>
                                            <li>
                                                <label for="form_notification_bcc">
                                                    <?php 
        _e("BCC", "gravityforms");
        ?>
                                                    <?php 
        gform_tooltip("notification_bcc");
        ?>
                                                </label>
                                                <input type="text" name="form_notification_bcc" id="form_notification_bcc" value="<?php 
        echo esc_attr(rgget("bcc", $form["notification"]));
        ?>
" class="fieldwidth-1" />
                                            </li>
                                            <?php 
        $is_invalid_subject = $invalid_tab == 1 && empty($_POST["form_notification_subject"]);
        $class = $is_invalid_subject ? "class='gfield_error'" : "";
        ?>
                                            <li <?php 
        echo $class;
        ?>
>
                                                <div>
                                                    <label for="form_notification_subject">
                                                        <?php 
        _e("Subject", "gravityforms");
        ?>
<span class="gfield_required">*</span>
                                                    </label>
                                                    <div>
                                                        <?php 
        GFCommon::insert_variables($form["fields"], "form_notification_subject", true);
        ?>
                                                    </div>
                                                    <input type="text" name="form_notification_subject" id="form_notification_subject" value="<?php 
        echo esc_attr($form["notification"]["subject"]);
        ?>
" class="fieldwidth-1" />

                                                    <?php 
        if ($is_invalid_subject) {
            ?>
                                                        <span class="validation_message"><?php 
            _e("Please enter a subject for the notification email");
            ?>
</span>
                                                    <?php 
        }
        ?>
                                                </div>
                                            </li>
                                            <?php 
        $is_invalid_message = $invalid_tab == 1 && empty($_POST["form_notification_message"]);
        $class = $is_invalid_message ? "class='gfield_error'" : "";
        ?>
                                            <li <?php 
        echo $class;
        ?>
>
                                                <div>
                                                    <label for="form_notification_message">
                                                        <?php 
        _e("Message", "gravityforms");
        ?>
<span class="gfield_required">*</span>
                                                    </label>
                                                    <?php 
        if (GFCommon::is_wp_version("3.3")) {
            wp_editor($form["notification"]["message"], "form_notification_message", array("autop" => false));
        } else {
            ?>
                                                        <textarea name="form_notification_message" id="form_notification_message" class="fieldwidth-1 fieldheight-1" ><?php 
            echo esc_html($form["notification"]["message"]);
            ?>
</textarea>
                                                        <?php 
        }
        if ($is_invalid_message) {
            ?>
                                                        <span class="validation_message"><?php 
            _e("Please enter a message for the notification email");
            ?>
</span>
                                                    <?php 
        }
        ?>
                                                </div>
                                            </li>
                                            <li>
                                                <div>
                                                    <input type="checkbox" name="form_notification_disable_autoformat" id="form_notification_disable_autoformat" value="1" <?php 
        echo empty($form["notification"]["disableAutoformat"]) ? "" : "checked='checked'";
        ?>
/>
                                                    <label for="form_notification_disable_autoformat" class="inline">
                                                        <?php 
        _e("Disable Auto-formatting", "gravityforms");
        ?>
                                                        <?php 
        gform_tooltip("notification_autoformat");
        ?>
                                                    </label>
                                                </div>
                                            </li>
                                        </ul>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>

                    <div id="submitdiv" class="stuffbox">
                        <h3><span class="hndle"><?php 
        _e("Notification to User", "gravityforms");
        ?>
</span></h3>
                        <div class="inside">
                            <div id="submitcomment" class="submitbox">
                                <div id="minor-publishingx" style="padding:10px;">
                                    <?php 
        if (!isset($form["autoResponder"])) {
            $form["autoResponder"] = array();
        }
        if (empty($email_fields)) {
            ?>
                                        <div class="gold_notice">
                                        <p><?php 
            echo sprintf(__("Your form does not have any %semail%s field.", "gravityforms"), "<strong>", "</strong>");
            ?>
</p>
                                        <p>
                                        <?php 
            echo sprintf(__("Sending notifications to users require that the form has at least one email field. %sEdit your form%s", "gravityforms"), '<a href="?page=gf_edit_forms&id=' . absint($form_id) . '">', '</a>');
            ?>
                                        </p>
                                        </div>
                                        <?php 
        } else {
            ?>

                                        <input type="checkbox" name="form_notification_enable_user" id="form_notification_enable_user" value="1" <?php 
            echo $is_user_notification_enabled ? "checked='checked'" : "";
            ?>
 onclick="if(this.checked) {jQuery('#form_notification_user_container').show('slow');} else {jQuery('#form_notification_user_container').hide('slow');}"/> <label for="form_notification_enable_user"><?php 
            _e("Enable email notification to users", "gravityforms");
            ?>
</label>

                                        <div id="form_notification_user_container" style="display:<?php 
            echo $is_user_notification_enabled ? "block" : "none";
            ?>
;">
                                            <br/>
                                            <?php 
            _e("Enter a message below to send users an automatic response when they submit this form.", "gravityforms");
            ?>
<br/><br/><br/>
                                            <ul id="form_autoresponder_container">
                                                <li>
                                                    <label for="form_autoresponder_to">
                                                        <?php 
            _e("Send To Field", "gravityforms");
            ?>
<span class="gfield_required">*</span>
                                                        <?php 
            gform_tooltip("autoresponder_send_to_email");
            ?>
                                                    </label>
                                                    <select name="form_autoresponder_to" id="form_autoresponder_to">
                                                        <?php 
            foreach ($email_fields as $field) {
                $selected = rgget("toField", $form["autoResponder"]) == $field["id"] ? "selected='selected'" : "";
                ?>
                                                            <option value="<?php 
                echo $field["id"];
                ?>
" <?php 
                echo $selected;
                ?>
><?php 
                echo esc_html(GFCommon::get_label($field));
                ?>
</option>
                                                            <?php 
            }
            ?>
                                                    </select>
                                                </li>
                                                <li>
                                                    <label for="form_autoresponder_from_name">
                                                        <?php 
            _e("From Name", "gravityforms");
            ?>
                                                        <?php 
            gform_tooltip("autoresponder_from_name");
            ?>
                                                    </label>
                                                    <input type="text" name="form_autoresponder_from_name" id="form_autoresponder_from_name" value="<?php 
            echo esc_attr(rgget("fromName", $form["autoResponder"]));
            ?>
" class="fieldwidth-2" />
                                                </li>
                                                <li>
                                                    <label for="form_autoresponder_from">
                                                        <?php 
            _e("From Email", "gravityforms");
            ?>
                                                        <?php 
            gform_tooltip("autoresponder_from");
            ?>
                                                    </label>
                                                    <input type="text" name="form_autoresponder_from" id="form_autoresponder_from" value="<?php 
            echo rgempty("from", $form["autoResponder"]) ? esc_attr($wp_email) : esc_attr(rgget("from", $form["autoResponder"]));
            ?>
" class="fieldwidth-2" />
                                                </li>
                                                <li>
                                                    <label for="form_autoresponder_reply_to" style="display:block;">
                                                        <?php 
            _e("Reply To (optional)", "gravityforms");
            ?>
                                                        <?php 
            gform_tooltip("autoresponder_reply_to");
            ?>
                                                    </label>
                                                    <input type="text" name="form_autoresponder_reply_to" id="form_autoresponder_reply_to" value="<?php 
            echo esc_attr(rgget("replyTo", $form["autoResponder"]));
            ?>
" class="fieldwidth-2" />
                                                </li>
                                                <li>
                                                    <label for="form_autoresponder_bcc">
                                                        <?php 
            _e("BCC", "gravityforms");
            ?>
                                                        <?php 
            gform_tooltip("autoresponder_bcc");
            ?>
                                                    </label>
                                                    <input type="text" name="form_autoresponder_bcc" id="form_autoresponder_bcc" value="<?php 
            echo esc_attr(rgget("bcc", $form["autoResponder"]));
            ?>
" class="fieldwidth-1" />
                                                </li>

                                                <?php 
            $is_invalid_subject = $invalid_tab == 2 && rgempty("form_autoresponder_subject");
            $class = $is_invalid_subject ? "class='gfield_error'" : "";
            ?>
                                                <li <?php 
            echo $class;
            ?>
>

                                                    <label for="form_autoresponder_subject">
                                                        <?php 
            _e("Subject", "gravityforms");
            ?>
<span class="gfield_required">*</span>
                                                    </label>
                                                    <div>
                                                        <?php 
            GFCommon::insert_variables($form["fields"], "form_autoresponder_subject", true);
            ?>
                                                    </div>
                                                    <input type="text" name="form_autoresponder_subject" id="form_autoresponder_subject" value="<?php 
            echo esc_attr(rgget("subject", $form["autoResponder"]));
            ?>
" class="fieldwidth-1" />

                                                    <?php 
            if ($is_invalid_subject) {
                ?>
                                                        <span class="validation_message"><?php 
                _e("Please enter a subject for the user notification email");
                ?>
</span>
                                                    <?php 
            }
            ?>

                                                 </li>
                                                 <?php 
            $is_invalid_message = $invalid_tab == 2 && rgempty("form_autoresponder_message");
            $class = $is_invalid_message ? "class='gfield_error'" : "";
            ?>
                                                <li <?php 
            echo $class;
            ?>
>
                                                    <div>
                                                        <label for="form_autoresponder_message">
                                                            <?php 
            _e("Message", "gravityforms");
            ?>
<span class="gfield_required">*</span>
                                                        </label>
                                                        <?php 
            if (GFCommon::is_wp_version("3.3")) {
                wp_editor(rgget("message", $form["autoResponder"]), "form_autoresponder_message", array("autop" => false));
            } else {
                ?>
                                                            <textarea name="form_autoresponder_message" id="form_autoresponder_message" class="fieldwidth-1 fieldheight-1"><?php 
                echo esc_html(rgget("message", $form["autoResponder"]));
                ?>
</textarea>
                                                            <?php 
            }
            if ($is_invalid_message) {
                ?>
                                                            <span class="validation_message"><?php 
                _e("Please enter a message for the user notification email");
                ?>
</span>
                                                        <?php 
            }
            ?>
                                                    </div>
                                                </li>
                                                <li>
                                                    <div>
                                                        <input type="checkbox" name="form_autoresponder_disable_autoformat" id="form_autoresponder_disable_autoformat" value="1" <?php 
            echo rgempty("disableAutoformat", $form["autoResponder"]) ? "" : "checked='checked'";
            ?>
/>
                                                        <label for="form_notification_disable_autoformat" class="inline">
                                                            <?php 
            _e("Disable Auto-formatting", "gravityforms");
            ?>
                                                            <?php 
            gform_tooltip("notification_autoformat");
            ?>
                                                        </label>
                                                    </div>
                                                </li>
                                            </ul>
                                        </div>
                                        <?php 
        }
        ?>
                                </div>
                            </div>
                        </div>
                    </div>

                    <br class="clear" />
                    <div>
                        <?php 
        $notification_button = '<input class="button-primary" type="submit" value="' . __("Save Settings", "gravityforms") . '" name="save"/>';
        echo apply_filters("gform_save_notification_button", $notification_button);
        ?>
                    </div>
                </div>
            </div>
        </form>
        <?php 
        if (rgpost("save")) {
            if ($invalid_tab == 0) {
                ?>
                <div class="updated fade" style="padding:6px;">
                    <?php 
                _e("Notification Updated.", "gravityforms");
                ?>
                </div>
                <?php 
            } else {
                ?>
                <div class="error" style="padding:6px;">
                    <?php 
                _e("Notification could not be updated. Please enter all required information below.", "gravityforms");
                ?>
                </div>
                <?php 
            }
        }
    }
 public static function timeline($entry, $form)
 {
     $notes = self::get_timeline_notes($entry);
     //getting email values
     $email_fields = GFCommon::get_email_fields($form);
     $emails = array();
     foreach ($email_fields as $email_field) {
         if (!empty($entry[$email_field->id])) {
             $emails[] = $entry[$email_field->id];
         }
     }
     //displaying notes grid
     $subject = '';
     self::notes_grid($notes, true, $emails, $subject);
 }