function admin_display_edit_degree
Search API
4.x admin.degrees.inc | admin_display_edit_degree() |
5.x admin.degrees.inc | admin_display_edit_degree() |
This screen displays the form which allows the user to actually edit a degree.
File
- modules/
admin/ admin.degrees.inc, line 2416
Code
function admin_display_edit_degree() {
$de_catalog_year = admin_get_de_catalog_year();
$rtn = "";
$major_code = $_REQUEST ["major_code"];
$s_count = 0;
// Add in our CSS and JS
fp_add_js(fp_get_module_path("admin") . "/js/admin.js");
fp_add_css(fp_get_module_path("admin") . "/css/admin.css");
$button_msg = trim(addslashes(@$_REQUEST ["button_msg"]));
$db = get_global_database_handler();
$degree_id = intval($db->get_degree_id($major_code, $de_catalog_year, true));
// The intval says, if it's false, make it = 0. otherwise keep the number
// that is returned.
$degree = new DegreePlan($degree_id, null, false, false, true);
$degree->load_descriptive_data();
if (user_has_permission("can_view_advanced")) {
$rtn .= " <span class='tenpt deg-advanced-msg' style='background-color: yellow; margin-left: 20px;'>
advanced: degreeID = $degree_id. catalog year: $de_catalog_year
</span>";
}
$url = fp_url("admin/degrees/handle-edit-degree-submit");
$rtn .= "<form id='mainform' action='" . $url . "' method='POST'>
<input type='hidden' name='perform_action2' id='perform_action2'>
<input type='hidden' name='de_catalog_year' value='$de_catalog_year'>
<input type='hidden' name='scroll_top' id='scroll_top' value=''>
<input type='hidden' name='major_code' value='$major_code'>
";
$rtn .= "<div style='font-size: 16pt; font-weight:bold; padding-top: 20px;'>$degree->degree_type $degree->title<br>$major_code ($de_catalog_year)</div>";
$rtn .= "
<table border='0' class='degree-edit-top-part'>
<tr>
<td valign='top' class='tenpt td-d-type-lable' width='15%'>" . t("Degree Type:") . "</td>
<td valign='top' class='tenpt td-d-type' >
<input type='text' name='degree_type' value='$degree->degree_type' size='5' maxlength='20'>
<a href='javascript: adminPopupAlertHelp(\"degree_type\");'>?</a>
</td>
<td valign='top' class='tenpt' width=''>
" . t("Classification:") . "
<select name='degree_class' style='max-width: 120px;'> ";
//<input type='text' name='degree_class' value='$degree->degree_class' size='10' maxlength='40'>
// Display degree_class pulldown.
$degree_classes = fp_get_degree_classifications();
foreach ($degree_classes ["levels"] as $level => $details) {
foreach ($degree_classes ["levels"][$level] as $machine_name => $title) {
$sel = "";
if ($machine_name == $degree->degree_class) {
$sel = "selected";
}
$rtn .= "<option value='$machine_name' $sel>$level - $title</option>";
}
}
$rtn .= "</select>
<a href='javascript: adminPopupAlertHelp(\"degree_class\");'>?</a>
</td>
<td valign='top' class='tenpt td-lev-weight' >" . t("Level:") . "
<input type='text' id='edit-degree-level' name='degree_level' value='$degree->degree_level' size='1' maxlength='1'>
<a href='javascript: adminPopupAlertHelp(\"degree_level\");'>?</a>
" . t("Advising Weight:") . "
<input type='text' id='edit-advising-weight' name='advising_weight' value='$degree->db_advising_weight' size='1' maxlength='5'>
<a href='javascript: adminPopupAlertHelp(\"advising_weight\");'>?</a>
</td>
<td valign='top'>
</td>
</tr>
<tr>
<td valign='top' class='tenpt td-title-lab'>" . t("Title:") . "</td>
<td valign='top' class='tenpt td-title-field' colspan='4'><input type='text' name='title' value='$degree->title' size='80' maxlength='100'></td>
</tr>
<tr>
<td valign='top' class='tenpt td-ex-lab'>" . t("Exclude:") . "</td>
<td valign='top' class='tenpt td-ex'>
<input type='text' name='exclude' value='$degree->db_exclude' size='2' maxlength='1'>
<a href='javascript: adminPopupAlertHelp(\"degree_exclude\");'>?</a>
</td>
<td valign='top' class='tenpt td-al-dy' >
" . t("Allow Dynamic:") . "
<input type='text' name='allow_dynamic' value='$degree->db_allow_dynamic' size='2' maxlength='1'>
<a href='javascript: adminPopupAlertHelp(\"degree_allow_dynamic\");'>?</a>
</td>
<td valign='top' class='tenpt td-o-dh' >
" . t("Override Degree Hours:") . "
<input type='text' name='override_degree_hours' value='$degree->db_override_degree_hours' size='3' maxlength='10'>
<a href='javascript: adminPopupAlertHelp(\"degree_override_degree_hours\");'>?</a>
</td>
<td>
</td>
</tr>
</table> ";
if (strstr($major_code, "_"))
{
$rtn .= "<b>Edit track information:</b>
<blockquote style='margin-top: 0px; margin-bottom: 0px;'>
<font size='2'>Track title: <input type='text' name='track_title' value='$degree->track_title' size='60' maxlength='100'></font><br>
<font size='2'>Track description: " . fp_get_js_alert_link(t("You may enter simple HTML in this field, like <b>bold</b> or <i>italics</i>."), t("(Help - Formatting)")) . "
<a href='javascript: adminPopupAlertHelp(\"track_description\");'>(Help - Track Descriptions)</a>
</font><br>
<textarea name='track_description' cols='60' rows='3'>" . $degree->track_description . "</textarea>
</blockquote>
";
}
$rtn .= "<div class='tenpt' align='center'>(<a href='#bot'>Scroll to the bottom</a> of the page for advanced options)</div>
<!--PREVIOUS_SEMESTERS-->";
$first_semester_num = -999;
$degree->list_semesters->reset_counter();
while ($degree->list_semesters->has_more()) {
$semester = $degree->list_semesters->get_next();
if ($semester->semester_num < 0) {
continue;
}
// Record what is the first semester num we have...
if ($first_semester_num == -999) {
$first_semester_num = $semester->semester_num;
}
$sem_default_title = admin_get_semester_name($semester->semester_num);
if ($semester->title == $sem_default_title) {
$semester->title = "";
}
$rtn .= "<div class='elevenpt' style='padding-bottom: 30px;'>
<b>Block number: " . ($semester->semester_num + 1) . "</b>
Default title: $sem_default_title
Override: <input type='text' name='semester_title_$semester->semester_num' value='$semester->title' size='20'>
<a href='javascript: adminPopupAlertHelp(\"semester_title\");'>?</a>
<table border='1' width='100%'>
";
// Get the courses.
$rtn .= "<tr><td valign='top'>
<textarea name='courses_$semester->semester_num' rows='10' cols='20'>";
$semester->list_courses->sort_alphabetical_order();
$semester->list_courses->reset_counter();
while ($semester->list_courses->has_more()) {
$course = $semester->list_courses->get_next();
$course->load_descriptive_data();
$rtn .= "$course->subject_id $course->course_num $course->requirement_type";
if ($course->min_grade != "D" && $course->min_grade != "") {
$rtn .= " ($course->min_grade)";
}
$rtn .= "\n";
}
$rtn .= "</textarea>
<div class='tenpt'>(<a href='javascript: adminPopupAlertHelp(\"degree_entry\");'>Help - entering requirements, min grades, and repeats</a>)</div>
</td>";
// Get the groups...
$rtn .= "<td valign='top' class='tenpt' width='100%'>
<table width='100%' border='0' cellspacing='5'>
<tr>
<td valign='top' class='tenpt' width='1'> </td>
<td valign='top' class='tenpt'>Group</td>
<td valign='top' class='tenpt' width='5'>hrs</td>
<td valign='top' class='tenpt' width='5'>grd</td>
<td valign='top' class='tenpt' width='5'>type</td>
</tr>";
$semester->list_groups->sort_alphabetical_order();
$semester->list_groups->reset_counter();
while ($semester->list_groups->has_more()) {
$group = $semester->list_groups->get_next();
$group->load_descriptive_data();
$ghours = $group->hours_required;
// If min hours are specified, set to MIN-MAX.
if ($group->has_min_hours_allowed()) {
$ghours = $group->min_hours_allowed . "-" . $ghours;
}
$rtn .= "<tr><td valign='middle'>
<a href='javascript: adminDelGroup(\"" . $group->get_db_group_id() . "\",\"$semester->semester_num\");'><img src='" . fp_theme_location() . "/images/delete.png' border='0'></a>
<td valign='top' class='tenpt'>
$group->title<br><i>$group->group_name</i></td>
<td valign='top' class='tenpt'>$ghours</td>
<td valign='top' class='tenpt'>$group->min_grade</td>
<td valign='top' class='tenpt'>$group->requirement_type
<input type='hidden' name='group_" . $group->get_db_group_id() . "_" . rand(1, 999999) . "' value='" . $group->get_db_group_id() . "" . "_$semester->semester_num" . "_$ghours" . "_$group->requirement_type" . "_$group->min_grade'>
</td>";
}
$url = fp_url("admin/degrees/popup-add-group", "semester_num=$semester->semester_num&de_catalog_year=$de_catalog_year");
$rtn .= "</table>
<div style='margin-top: 10px; margin-left: 20px;'>
<a href='javascript: adminPopupWindow(\"" . $url . "\");'>Add an elective group</a>
</div>
</td>";
$rtn .= "</table><br>
" . fp_render_button(t("Save for @year", array("@year" => $de_catalog_year)), "adminSubmitForm();") . "
<span class='admin-button-msg'>$button_msg</span>
</div>
";
$s_count = $semester->semester_num + 1;
}
// Always add an additional 4 semesters to the bottom. Also, add in any missing semesters to the top of the degree as well.
$deltas = array("top", "bottom");
foreach ($deltas as $delta) {
$html = "";
// Set for if delta == bottom.
$start_at = $s_count; // s_count was the last semester we created above.
$less_than = 4;
if ($delta == "top") {
// We are creating semesters for the top of the page, if needed.
if ($first_semester_num == -999) {
continue; // None were put at the top! We can skip it.
}
else {
$start_at = 0;
$less_than = $first_semester_num;
}
}
for ($t = 0; $t < $less_than; $t++) {
$sem = $t + $start_at;
if ($sem > 99) {
// Max number of semesters. More or less arbitrarily set number.
$html .= "<br>" . t("Maximum number of semesters created.") . "<br>";
break;
}
$html .= "<div class='elevenpt' style='padding-bottom: 30px;'>
<b>Block number: " . ($sem + 1) . "</b>
Default title: " . admin_get_semester_name($sem) . "
Override: <input type='text' name='semester_title_$sem' value='' size='20'>
<a href='javascript: adminPopupAlertHelp(\"semester_title\");'>?</a>
<table border='1' width='100%'>
";
$html .= "<tr><td valign='top'>
<textarea name='courses_$sem' rows='10' cols='20'>";
$html .= "</textarea></td>";
// the groups...
$html .= "<td valign='top' class='tenpt' width='100%'>
<table width='100%' border='0' cellspacing='5'>
<tr>
<td valign='top' class='tenpt' width='1'> </td>
<td valign='top' class='tenpt'>Group</td>
<td valign='top' class='tenpt'>hrs</td>
<td valign='top' class='tenpt'>grd</td>
<td valign='top' class='tenpt'>type</td>
</tr>";
$url = fp_url("admin/degrees/popup-add-group", "semester_num=$sem&de_catalog_year=$de_catalog_year");
$html .= "</table>
<div style='margin-top: 10px; margin-left: 20px;'>
<a href='javascript: adminPopupWindow(\"" . $url . "\");'>Add an elective group</a>
</td>";
$html .= "</table><br>
" . fp_render_button(t("Save for @year", array("@year" => $de_catalog_year)), "adminSubmitForm();") . "
<span class='admin-button-msg'>$button_msg</span>
</div>";
} // creating a blank semester block
// Add $html to wherever it needs to go.
if ($delta == "bottom") {
$rtn .= $html;
}
else if ($delta == "top") {
// Place the HTML at the top of the page by replacing our html comment.
$rtn = str_replace("<!--PREVIOUS_SEMESTERS-->", $html, $rtn);
}
} //foreach delta
$rtn .= "<div class='elevenpt'>If you need more semester boxes, simply save this page, and additional blank
boxes will appear below.</div>
<a name='bot'></a>
<br><br>
";
$html = "";
$html .= "
<div class='elevenpt'>
Enter a public note for this degree:
<a href='javascript: adminPopupAlertHelp(\"public_note\");'>(Help - Public Note)</a>
" . fp_get_js_alert_link(t("You may enter simple HTML in this field, like <b>bold</b> or <i>italics</i>."), t("(Help - Formatting)")) . "
<br>
<textarea name='public_note' rows='4' cols='80'>" . @$degree->public_notes_array [$degree->degree_id] . "</textarea>
<br><br>
If this degree has tracks, you may enter rules for track selection below, for each type of level 3 degree (tracks) you might have.
<b>You may skip classifications which do not pertain to this degree.</b>
<br><br>
<table border='0' width='100%'>
<tr>
<th>Class:</th>
<th>Min: <a href='javascript: adminPopupAlertHelp(\"min_tracks\");'>?</a></th>
<th>Max: <a href='javascript: adminPopupAlertHelp(\"max_tracks\");'>?</a></th>
<th>Default tracks (CSV): <a href='javascript: adminPopupAlertHelp(\"default_tracks\");'>?</a></th>
</tr>
";
$degree_classes = fp_get_degree_classifications();
foreach ($degree_classes ["levels"] as $level => $details) {
if (intval($level) != 3) {
continue; // we only care about level 3...
}
foreach ($degree_classes ["levels"][$level] as $machine_name => $title) {
$min_tracks = @intval($degree->track_selection_config_array [$machine_name]["min_tracks"]);
$max_tracks = @intval($degree->track_selection_config_array [$machine_name]["max_tracks"]);
$default_tracks = @trim($degree->track_selection_config_array [$machine_name]["default_tracks"]);
$html .= "<tr class='admin-degrees-edit-track-selection-config track-selection-config-$machine_name'>
<td valign='top'>
<span class='track-selection-config-title'>$title</span>:
</td>
<td valign='top'>
<input type='text' name='tsc_{$machine_name}_min_tracks' size='2' value='$min_tracks'>
</td>
<td valign='top'>
<input type='text' name='tsc_{$machine_name}_max_tracks' size='2' value='$max_tracks'>
</td>
<td valign='top'>
<input type='text' name='tsc_{$machine_name}_default_tracks' size='25' value='$default_tracks' maxlength='255'>
</td>
</tr>";
}
}
$html .= "</table>
</div>";
/*
Min:
<input type='text' name='min_tracks' size='2' value='$degree->min_tracks'>
<a href='javascript: adminPopupAlertHelp(\"min_tracks\");'>?</a>
Max:
<input type='text' name='max_tracks' size='2' value='$degree->max_tracks'>
<a href='javascript: adminPopupAlertHelp(\"max_tracks\");'>?</a>
Default tracks: (CSV)
<input type='text' name='default_tracks' size='15' value='$degree->default_tracks' maxlength='255'>
<a href='javascript: adminPopupAlertHelp(\"default_tracks\");'>?</a>
</div>
"; */
$rtn .= fp_render_c_fieldset($html, t("View advanced options"), TRUE);
$rtn .= "</form>";
// Only show delete option based on permission
if (user_has_permission("can_delete_data_entry")) {
$rtn .= " <div align='right' class='degrees-delete-degree-wrapper'>
Delete this degree? <input type='button' value='X'
onClick='adminDeleteDegree(\"$degree_id\");'>
</div>
";
}
//$pC .= get_j_s();
if (@$_REQUEST ["serialize"] != "")
{
print "<br><textarea rows=20 cols=80>" . serialize($degree) . "</textarea>";
}
return $rtn;
}