/**
 * Print table body
 * @param $status_cols
 */
function print_tbody($status_cols)
{
    $storyboard_db_api = new storyboard_db_api();
    $project_spec_bug_ids = $storyboard_db_api->get_bugarray_by_project(helper_get_current_project());
    $types = $storyboard_db_api->select_all_types();
    echo '<tbody>';
    foreach ($types as $type) {
        echo '<tr>';
        echo '<td class="category">' . $type[1] . '</td>';
        foreach ($status_cols as $status_col) {
            echo '<td class="story_baord">';
            foreach ($project_spec_bug_ids as $project_spec_bug_id) {
                $card = $storyboard_db_api->select_story_card($project_spec_bug_id);
                if ($card[2] == $type[0]) {
                    $bug_status = bug_get_field($project_spec_bug_id, 'status');
                    if ($bug_status == $status_col) {
                        echo '<a href="' . string_get_bug_view_url($project_spec_bug_id) . '" class="rcv_tooltip">';
                        echo '<div class="story_card">';
                        echo string_display_line(bug_format_id($project_spec_bug_id));
                        echo '<span>';
                        print_story_card_title($project_spec_bug_id);
                        print_story_card_info('summary', bug_get_field($project_spec_bug_id, 'summary'), false);
                        print_story_card_info('description', bug_get_text_field($project_spec_bug_id, 'description'), false);
                        print_story_card_info('card_risk', $card[3], true);
                        print_story_card_info('card_story_pt', $card[4], true);
                        print_story_card_info('card_story_pt_post', $card[5], true);
                        print_story_card_info('card_acc_crit', $card[6], true);
                        echo '</span>';
                        echo '</div>';
                        echo '</a><br/><br/><br/>';
                    }
                }
            }
            echo '</td>';
        }
        echo '</tr>';
    }
    echo '</tbody>';
}
 /**
  * Add custom plugin fields to bug-specific sites (bug_report, bug_update, bug_view)
  *
  * @param $event
  * @return null
  */
 function bugViewFields($event)
 {
     require_once STORYBOARD_CORE_URI . 'storyboard_db_api.php';
     require_once STORYBOARD_CORE_URI . 'storyboard_print_api.php';
     $storyboard_db_api = new storyboard_db_api();
     $storyboard_print_api = new storyboard_print_api();
     $bug_id = null;
     switch ($event) {
         case 'EVENT_UPDATE_BUG_FORM':
             $bug_id = gpc_get_int('bug_id');
             break;
         case 'EVENT_VIEW_BUG_DETAILS':
             $bug_id = gpc_get_int('id');
             break;
     }
     $card_type = null;
     $card_risk = null;
     $card_story_pt = null;
     $card_story_pt_post = null;
     $card_acc_crit = null;
     if ($bug_id != null) {
         $card = $storyboard_db_api->select_story_card($bug_id);
         if (!is_null($card[2])) {
             $card_type = $storyboard_db_api->select_type_by_typeid($card[2]);
         }
         $card_risk = $card[3];
         $card_story_pt = $card[4];
         $card_story_pt_post = $card[5];
         $card_acc_crit = $card[6];
     }
     switch ($event) {
         case 'EVENT_VIEW_BUG_DETAILS':
             $storyboard_print_api->printBugViewFields($card_type, $card_risk, $card_story_pt, $card_story_pt_post, $card_acc_crit);
             break;
         case 'EVENT_REPORT_BUG_FORM':
             $storyboard_print_api->printBugReportFields();
             break;
         case 'EVENT_UPDATE_BUG_FORM':
             $storyboard_print_api->printBugUpdateFields($card_type, $card_risk, $card_story_pt, $card_story_pt_post, $card_acc_crit);
             break;
     }
     return null;
 }