function advise_display_history

6.x advise.history.inc advise_display_history()
7.x advise.history.inc advise_display_history()
4.x advise.history.inc advise_display_history()
5.x advise.history.inc advise_display_history()

Displays the history tab on screen.

File

modules/advise/advise.history.inc, line 11

Code

function advise_display_history() {
  global $current_student_id, $user;

  $student_id = $current_student_id;
  $db = get_global_database_handler();
  $school_id = db_get_school_id_for_student_id($student_id);
  fp_set_title('');

  $extra_style = $ast = "";
  $rtn = "";

  fp_add_css(fp_get_module_path("advise") . "/css/advise.css");
  fp_add_js(fp_get_module_path("advise") . "/js/advise.js");


  $rtn .= "<table class='fp-semester-table'>";


  // If coming here from a save, display info here.
  if (@$_REQUEST ["adv_id_array_serialized"] != "") {
    $acount = 0;
    $click_links = "";
    $advising_session_id_array = unserialize($_REQUEST ["adv_id_array_serialized"]);

    foreach ($advising_session_id_array as $term_id => $value) {
      $term_id = (string) $term_id; // Make sure term_id is a standard string
      $aid = $advising_session_id_array [$term_id];
      if ($aid != "") 
       {
        $term_name = get_term_description($term_id, FALSE, $school_id);

        $turl = fp_url("advise/popup-display-summary", "advising_session_id=$aid");

        $click_links .= "<li class='just-saved-summary'>
                            <a href='javascript: popupLargeIframeDialog(\"" . $turl . "\",\"" . t("Advising Session @term", array("@term" => $term_name)) . "\",\"\");'>
                                <i class='fa fa-window-restore'></i> $term_name
                            </a>
                         </li>";

        $acount++;

      }
    }
    $group_link = "";
    if ($acount > 1) {
      $turl = fp_url("advise/popup-display-summary", "show_as_group=yes&advising_session_id=" . join(",", $advising_session_id_array));
      $on_click = "popupLargeIframeDialog(\"" . $turl . "\",\"" . t("Advising Sessions") . "\",\"\");";
      $group_link = "<a href='javascript:$on_click' class='advising-summary-group-link'><i class='fa fa-list-ul'></i> " . t("View Combined") . "</a>";
    }

    $acount = 0;

    $rtn .= "
        <tr>
          <td colspan='2' width='100%'>
          
        <div class='hypo' 
        align='left' style='border: 1px solid black;
              margin: 10px 0px 10px 0px; padding: 10px; 
              font-size: 12pt; font-weight: bold;'>
        " . t("You have successfully advised") . " " . $db->get_student_name($student_id) . " ($student_id).
        <br>" . t("Click to view a pop-up printable summary for:") . "
         <ul style='margin-top: 5px; margin-bottom: 5px;'>
        $click_links
        </ul>$group_link</div>
        
        </td>
        </tr>
    ";

  }

  $group_link = "";





  $rtn .= "<tr><td width='50%' valign='top'  class='left-side' style='padding-right: 10px;'>
          ";

  ///////////////////////////////////////////////////
  //////////////////////////////////////////////////
  /////////  Advising History
  ///////////////////////////////////////////////////
  $rtn .= fp_render_section_title(t("Advising History"));
  $render_left = array(); // creating a new render array.
  $render_left ["#id"] = "advise_history_left_column";
  $render_left ["#student_id"] = $student_id;

  $school_id = db_get_school_id_for_student_id($student_id);

  $old_session_d_t = 0;
  $last_session_id = 0;
  $a_count = 0;
  $c = 0;
  $is_empty = TRUE;
  $first_style = "color: maroon; font-weight:bold;";
  $advising_session_id_array = array();

  $on_mouse_over = "
            onmouseover='$(this).addClass(\"selection_highlight\");'
            onmouseout='$(this).removeClass(\"selection_highlight\");'
    ";




  $advising_session_groups_array = array();
  $previous_sessions = array();
  $session_group_code = $old_session_group_code = "";



  // First, find all of the advising session "groups".  That is, advising sessions over multiple
  // terms which were submitted together.
  $res = db_query("SELECT * FROM advising_sessions
                    WHERE student_id = ?
                    AND is_draft = 0
                    AND is_empty = 0
                    AND delete_flag = 0
                    GROUP BY advising_session_token
                    ORDER BY `posted` DESC                    
                     ", $student_id);
  while ($cur = db_fetch_array($res)) {
    $html = "";
    $is_empty = FALSE;
    $advtoken = $cur ['advising_session_token'];
    $bool_is_empty = FALSE;
    $faculty_id = $cur ['faculty_id'];
    $dt = date("m/d/Y g:ia", convert_time($cur ['posted']));

    $group_link = "";

    // If this has more than one session for this token, then show a group_link
    $sessions_arr = advise_get_advising_sessions_for_advising_token($advtoken);

    if ($sessions_arr && count($sessions_arr) > 1) {
      $turl = fp_url("advise/popup-display-summary", "show_as_group=yes&advising_session_id=" . join(",", $sessions_arr));
      $on_click = "popupLargeIframeDialog(\"" . $turl . "\",\"" . t("Advising Sessions - @date", array("@date" => $dt)) . "\",\"\");";
      $group_link = "<a href='javascript:$on_click' class='advising-summary-group-link'><i class='fa fa-list-ul'></i> " . t("View Combined") . "</a>";
    }


    $advised_by = "<div class='history-advised-row history-advised-row-$a_count'>
            <strong>" . t("Advised by") . " " . fp_get_faculty_name($cur ['faculty_id'], FALSE) . "</strong>$group_link
          </div>";


    $html .= "<div class=''>$advised_by</div>";

    $a_count++;
    if ($a_count > 1) {
      $first_style = "";
    }





    $res2 = db_query("SELECT * FROM advising_sessions
                      WHERE advising_session_token = ?
                      AND is_empty = 0
                      AND delete_flag = 0
                      ORDER BY term_id DESC", array($advtoken));
    while ($cur2 = db_fetch_array($res2)) {



      // Are we supposed to "delete" an advising session?  We will double-check the user has all needed permissions if so.
      if (intval(@$_GET ['deladv']) === intval($cur2 ['advising_session_id'])) {
        if (user_has_permission('can_advise_students') && user_has_permission('can_delete_own_advising_session_3_months') && $cur2 ['faculty_id'] == $user->cwid) {

          $del_range = strtotime("now -3 months");
          $then = intval($cur2 ["posted"]);
          if ($then > $del_range) {
            db_query("UPDATE advising_sessions 
                      SET delete_flag = 1
                      WHERE advising_session_id = ?", array($cur2 ['advising_session_id']));
            fp_add_message(t("Advising session has been successfully deleted."));
            fp_goto("history", "current_student_id=$current_student_id");
            die; // redirect from fp_goto above anyway.    
          }

        }
      } // if we are trying to delete          





      $turl = fp_url("advise/popup-display-summary", "advising_session_id={$cur2 ['advising_session_id']}");
      $advising_session_id_array [] = $cur2 ['advising_session_id'];
      $term = get_term_description($cur2 ['term_id'], FALSE, $school_id);
      $on_click = "popupLargeIframeDialog(\"" . $turl . "\",\"" . t("Advising Session @term - @date", array("@term" => $term, "@date" => $dt)) . "\",\"\");";


      $delete_html = "";
      // Should we show the "delete" link?      
      if (user_has_permission('can_advise_students') && user_has_permission('can_delete_own_advising_session_3_months') && $cur2 ['faculty_id'] == $user->cwid) {

        $del_range = strtotime("now -3 months");
        $then = intval($cur ["posted"]);
        if ($then > $del_range) {

          $safe_term = $term;
          $safe_term = str_replace("'", "", $safe_term);
          $safe_term = str_replace('"', "", $safe_term);
          $safe_term = str_replace(';', "", $safe_term);
          $safe_term = str_replace('\\', "", $safe_term);

          $confirm_link = fp_get_js_confirm_link(t("Are you sure you wish to delete the advising session from @dt for @term?  \\n\\nThis action cannot be undone.", array("@dt" => $dt, "@term" => $safe_term)), 
          "window.location=\"" . fp_url("history", "current_student_id=$current_student_id&deladv=" . $cur2 ['advising_session_id']) . "\";", "<i class='fa fa-remove'></i>", "action-link-remove", t("Delete?"));
          $delete_html .= "<div class='delete-adv-wrapper'>
                      $confirm_link                      
                    </div>";


        }


      } // user had permission to delete        


      $html .= "<div $on_mouse_over style='cursor: pointer; $first_style' class='advhist-row' onClick='$on_click'>
                  <div class='advhist-term' style='display: inline-block; padding-left:20px; width:165px;'>$term</div>
                  <div class='advhist-datetime' style='display: inline-block;'>$dt</div>                
                </div>
                $delete_html";



      // If this is more than X number, let's hide the rest in a collapsible fieldset.
      if ($c < 5) {
        $render_left ["advising_history_$c"] = array(
          "value" => $html,
          "weight" => $c,
        );
      }
      else {
        // Let's place in a collapsible fieldset!
        if (!isset($render_left ["advising_history_fs"])) {
          $render_left ["advising_history_fs"] = array(
            "type" => "cfieldset",
            "label" => t("Show complete advising history"),
            "start_closed" => TRUE,
            "elements" => array(),
            "weight" => $c,
          );
        }
        $render_left ["advising_history_fs"]["elements"][] = array("advising_history_$c" => array(
          "value" => $html,
        ));


      }

      $html = "";

      $c++;






    } // while cur2


  } // while cur group by advising session token 


  if ($is_empty == true) {
    //$rtn .= "<div class=' '>No advising history available.</div>";

    $render_left ["markup_no_adv_history"] = array(
      "value" => t("No advising history available."),
    );
  }
  else {

    $print_all_url = fp_url("advise/popup-display-summary", "advising_session_id=" . join(",", $advising_session_id_array));

    $render_left ["markup_print_all"] = array(
      "value" => "<a href='javascript: popupLargeIframeDialog(\"" . $print_all_url . "\",\"" . t("Complete Advising History") . "\",\"\");' class='view-print-all'>
                      <i class='fa fa-window-restore'></i> " . t("View Complete History") . "
                  </a>
          ",
      "weight" => -1,
    );
  }

  // Okay, we can render the left-hand side now.
  $rtn .= fp_render_content($render_left);




  //----------------------------------------------------------------------------------------
  //------------------------------ COMMENT HISTORY -----------------------------------------
  //----------------------------------------------------------------------------------------
  $rtn .= "</td><td width='50%' class='right-side' valign='top'>";
  $rtn .= fp_render_section_title(t("Comment History"));
  //$rtn .= "<table border='0' cellspacing='0'>";

  // Prepare a render array for the right-hand side.
  $render_right = array();
  $render_right ["#id"] = "advise_history_right_column";
  $render_right ["#student_id"] = $student_id;

  $html = "";

  $old_term_id = "";
  $first_style = "first";
  $is_empty = true;
  $has_admin_category = false;
  $access_line = "";

  //if (!user_has_permission("view_faculty_comments")) { 
  //  $access_line = "and `access_type`='public' ";    
  //}

  $access_types = (user_has_permission("view_faculty_comments")) ? array("faculty", "public") : array("public");


  $turl = fp_url("comments/popup-display-all-comments");


  $html .= "<div class='advising-comments-header'>
        <!--STARTCOM--><div style='padding-top: 10px;'>
          <strong>" . t("Advising Comments") . "</strong>
          &nbsp; 
          <a href='javascript: popupLargeIframeDialog(\"" . $turl . "\",\"" . t("All Comments for Student") . "\",\"\");' class='view-print-all'>
            <i class='fa fa-window-restore'></i> " . t("View All Comments") . "
          </a>
        </div><!--ENDCOM-->
        </div>";


  // Use the function comments_get_comments instead of a direct query.

  $res = comments_get_comments($student_id, FALSE, $access_types);
  foreach ($res as $cur) 
   {
    $dt = format_date(convert_time($cur ['posted']), 'custom', 'm/d/Y g:ia');

    if ($first_style == "first") {
      $first_style = "color: maroon; font-weight:bold;";
    }


    $turl = fp_url("comments/popup-display-comment", "id=" . $cur ['id']);

    $on_click = "popupLargeIframeDialog(\"" . $turl . "\",\"" . t("Comment @date", array("@date" => $dt)) . "\",\"\");";


    $html .= "<div $on_mouse_over class='history-comment-row' style='cursor:pointer; $first_style $extra_style'
          onClick='$on_click'>
          <div class=' ' style='padding-left: 20px; width:165px; display:inline-block;'>
            " . fp_get_faculty_name($cur ['faculty_id'], false) . "
          </div>
          <div class=' ' style='display: inline-block;'>
              $dt$ast
          </div>
        </div>";

    $is_empty = false;
    $first_style = "";
  }

  if ($is_empty == true) {

    $render_right ["markup_no_comment_history"] = array(
      "value" => "<span class='no-comment-history-msg'>" . t("No comment history available.") . "</span>",
    );

  }

  $render_right ["comment_history"] = array(
    "value" => "<span class='advising-comment-history-block'>" . $html . "</span>",
    "weight" => 0,
  );

  //$rtn .= "</table>";

  // Render our render array now...
  $rtn .= fp_render_content($render_right);




  $rtn .= "</td></tr>";




  $rtn .= "</table>";


  // Let's set our breadcrumbs
  $db = get_global_database_handler();
  $crumbs = array();
  $crumbs [] = array(
    'text' => 'Students',
    'path' => 'student-search',
  );
  $crumbs [] = array(
    'text' => $db->get_student_name($current_student_id) . " ({$current_student_id})",
    'path' => 'student-profile',
    'query' => "current_student_id={$current_student_id}",
  );
  fp_set_breadcrumbs($crumbs);


  watchdog("advise", "display_history $current_student_id", array(), WATCHDOG_DEBUG);


  return $rtn;
}