/** * @param $form * @param $entry * @param null|Gravity_Flow_Step $current_step * @param array $args */ public static function entry_detail($form, $entry, $current_step = null, $args = array()) { $form_id = absint($form['id']); $form = apply_filters('gform_pre_render', $form); $form = apply_filters('gform_pre_render_' . $form_id, $form); $defaults = array('display_empty_fields' => true, 'check_permissions' => true, 'show_header' => true, 'timeline' => true, 'display_instructions' => true); $args = array_merge($defaults, $args); $display_empty_fields = (bool) $args['display_empty_fields']; $check_view_entry_permissions = (bool) $args['check_permissions']; $show_header = (bool) $args['show_header']; $show_timeline = (bool) $args['timeline']; $display_instructions = (bool) $args['display_instructions']; ?> <script type="text/javascript"> if ( typeof ajaxurl == 'undefined' ) { ajaxurl = <?php echo json_encode(admin_url('admin-ajax.php')); ?> ; } function DeleteFile(leadId, fieldId, deleteButton) { if (confirm(<?php echo json_encode(__("Would you like to delete this file? 'Cancel' to stop. 'OK' to delete", 'gravityflow')); ?> )) { 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 file.', 'gravityflow')); ?> ) }; 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); } </script> <div class="wrap gf_entry_wrap gravityflow_workflow_wrap gravityflow_workflow_detail"> <?php if ($show_header) { ?> <h2 class="gf_admin_page_title"> <img width="45" height="22" src="<?php echo gravity_flow()->get_base_url(); ?> /images/gravityflow-icon-blue-grad.svg" style="margin-right:5px;"/> <span><?php echo esc_html__('Workflow Entry #', 'gravityflow') . absint($entry['id']); ?> </span><span class="gf_admin_page_subtitle"><span class='gf_admin_page_formname'><?php esc_html_e('Workflow Form', 'gravityflow'); ?> : <?php esc_html_e($form['title']); ?> </span></span> </h2> <div id="gf_form_toolbar"> <ul id="gf_form_toolbar_links"> <?php $menu_items = gravity_flow()->get_toolbar_menu_items(); echo GFForms::format_toolbar_menu_items($menu_items); ?> </ul> </div> <?php } if ($check_view_entry_permissions) { // Check view permissions global $current_user; if ($entry['created_by'] != $current_user->ID) { $user_status = false; if ($current_step) { $user_status = $current_step->get_user_status(); if (!$user_status) { $user_roles = gravity_flow()->get_user_roles(); foreach ($user_roles as $user_role) { $user_status = $current_step->get_role_status($user_role); } } } $full_access = GFAPI::current_user_can_any(array('gform_full_access', 'gravityflow_status_view_all')); if (!($user_status || $full_access)) { $permission_denied_message = esc_attr__("You don't have permission to view this entry.", 'gravityflow'); $permission_denied_message = apply_filters('gravityflow_permission_denied_message_entry_detail', $permission_denied_message, $current_step); echo $permission_denied_message; return; } } } $url = remove_query_arg(array('gworkflow_token', 'new_status')); ?> <div class="gform_wrapper"> <form method="post" id="entry_form" enctype='multipart/form-data' action="<?php echo esc_url($url); ?> "> <?php wp_nonce_field('gforms_save_entry', 'gforms_save_entry'); ?> <div id="poststuff" class="metabox-holder has-right-sidebar"> <div id="side-info-column" class="inner-sidebar"> <?php gravity_flow()->workflow_entry_detail_status_box($form, $entry, $current_step); if (is_user_logged_in() || $check_view_entry_permissions) { ?> <!-- begin print button --> <div class="detail-view-print"> <a href="javascript:;" onclick="var notes_qs = jQuery('#gform_print_notes').is(':checked') ? '¬es=1' : ''; var url='<?php echo admin_url('admin-ajax.php'); ?> ?action=gravityflow_print_entries&lid=<?php echo absint($entry['id']); ?> ' + notes_qs; printPage(url);" class="button"><?php esc_html_e('Print', 'gravityflow'); ?> </a> <?php if ($show_timeline) { ?> <input type="checkbox" name="print_notes" value="print_notes" checked="checked" id="gform_print_notes"/> <label for="print_notes"><?php esc_html_e('include timeline', 'gravityflow'); ?> </label> <?php } ?> </div> <!-- end print button --> <?php } ?> </div> <div id="post-body" class="has-sidebar"> <div id="post-body-content" class="has-sidebar-content"> <?php do_action('gravityflow_entry_detail_content_before', $form, $entry); $editable_fields = array(); if ($current_step) { $current_user_status = $current_step->get_user_status(); $current_role_status = false; if ($current_step) { foreach (gravity_flow()->get_user_roles() as $role) { $current_role_status = $current_step->get_role_status($role); if ($current_role_status == 'pending') { break; } } } $can_update = $current_step && ($current_user_status == 'pending' || $current_role_status == 'pending'); $editable_fields = $can_update ? $current_step->get_editable_fields() : array(); if ($can_update && $display_instructions && $current_step->instructionsEnable) { $instructions = $current_step->instructionsValue; $instructions = GFCommon::replace_variables($instructions, $form, $entry, false, true, true); $instructions = $current_step->replace_variables($instructions, null); $instructions = wp_kses_post($instructions); ?> <div class="postbox"> <div class="inside"> <?php echo $instructions; ?> </div> </div> <?php } } self::entry_detail_grid($form, $entry, $display_empty_fields, $editable_fields, $current_step); do_action('gravityflow_entry_detail', $form, $entry); if ($show_timeline) { ?> <div class="postbox"> <h3> <label for="name"><?php esc_html_e('Timeline', 'gravityflow'); ?> </label> </h3> <div class="inside"> <?php self::timeline($entry, $form); ?> </div> </div> <?php } ?> </div> </div> </div> </form> </div> </div> <?php }