MDL-10368 Finished implementation of toggle actions, and added icons near each toggle. Also added a few css rules for display.

This commit is contained in:
nicolasconnault 2007-07-09 14:54:32 +00:00
parent bc7afe29c3
commit d490d87c22
4 changed files with 58 additions and 34 deletions

View file

@ -27,6 +27,13 @@ function get_grade_clean($gradeval) {
*/ */
function grader_report_print_toggle($type, $baseurl, $return=false) { function grader_report_print_toggle($type, $baseurl, $return=false) {
global $CFG; global $CFG;
$icons = array('eyecons' => 'hide',
'calculations' => 'calc',
'locks' => 'lock',
'grandtotals' => 'sigma',
'notes' => 'feedback');
$pref_name = 'grade_report_show' . $type; $pref_name = 'grade_report_show' . $type;
$show_pref = get_user_preferences($pref_name, $CFG->$pref_name); $show_pref = get_user_preferences($pref_name, $CFG->$pref_name);
@ -41,8 +48,19 @@ function grader_report_print_toggle($type, $baseurl, $return=false) {
$toggle_action = 0; $toggle_action = 0;
} }
$retval = '<div class="gradertoggle"><a href="' . $baseurl . "&amp;toggle=$toggle_action&amp;toggle_type=$type\">" if (array_key_exists($type, $icons)) {
. ${'str' . $show_hide} . '</a></div>'; $image_name = $icons[$type];
} else {
$image_name = $type;
}
$string = ${'str' . $show_hide};
$img = '<img src="'.$CFG->pixpath.'/t/'.$image_name.'.gif" class="iconsmall" alt="'
.$string.'" title="'.$string.'" />'. "\n";
$retval = '<div class="gradertoggle">' . $img . '<a href="' . $baseurl . "&amp;toggle=$toggle_action&amp;toggle_type=$type\">"
. $string . '</a></div>';
if ($return) { if ($return) {
return $retval; return $retval;
@ -100,11 +118,17 @@ $target = optional_param('target', 0, PARAM_ALPHANUM);
$toggle = optional_param('toggle', NULL, PARAM_INT); $toggle = optional_param('toggle', NULL, PARAM_INT);
$toggle_type = optional_param('toggle_type', 0, PARAM_ALPHANUM); $toggle_type = optional_param('toggle_type', 0, PARAM_ALPHANUM);
// Handle toggle change request
// TODO print visual feedback
if (!is_null($toggle) && !empty($toggle_type)) {
set_user_preferences(array('grade_report_show' . $toggle_type => $toggle));
}
// Get the user preferences // Get the user preferences
$perpage = get_user_preferences('grade_report_studentsperpage', $CFG->grade_report_studentsperpage); // number of users on a page $perpage = get_user_preferences('grade_report_studentsperpage', $CFG->grade_report_studentsperpage); // number of users on a page
$decimals = get_user_preferences('grade_report_decimalpoints', $CFG->grade_report_decimalpoints); // decimals in grades $decimals = get_user_preferences('grade_report_decimalpoints', $CFG->grade_report_decimalpoints); // decimals in grades
$displaytotals = get_user_preferences('grade_report_showgrandtotals', $CFG->grade_report_showgrandtotals); $showgrandtotals = get_user_preferences('grade_report_showgrandtotals', $CFG->grade_report_showgrandtotals);
$displaygrouptotals = get_user_preferences('grade_report_showgroups', $CFG->grade_report_showgroups); $showgroups = get_user_preferences('grade_report_showgroups', $CFG->grade_report_showgroups);
$aggregation_position = get_user_preferences('grade_report_aggregationposition', $CFG->grade_report_aggregationposition); $aggregation_position = get_user_preferences('grade_report_aggregationposition', $CFG->grade_report_aggregationposition);
$showscales = get_user_preferences('grade_report_showscales', $CFG->grade_report_showscales); $showscales = get_user_preferences('grade_report_showscales', $CFG->grade_report_showscales);
@ -124,29 +148,27 @@ $baseurl = 'report.php?id='.$courseid.'&amp;perpage='.$perpage.'&amp;report=grad
// base url for paging // base url for paging
$pbarurl = 'report.php?id='.$courseid.'&amp;perpage='.$perpage.'&amp;report=grader&amp;'; $pbarurl = 'report.php?id='.$courseid.'&amp;perpage='.$perpage.'&amp;report=grader&amp;';
// Handle toggle change request $groupsql = '';
// TODO print visual feedback $groupwheresql = '';
if (!is_null($toggle) && !empty($toggle_type)) { $group_selector = null;
set_user_preferences(array('grade_report_show' . $toggle_type => $toggle)); $currentgroup = null;
}
/// find out current groups mode if ($showgroups) {
$course = get_record('course', 'id', $courseid); /// find out current groups mode
$groupmode = $course->groupmode; $course = get_record('course', 'id', $courseid);
ob_start(); $groupmode = $course->groupmode;
$currentgroup = setup_and_print_groups($course, $groupmode, $baseurl); ob_start();
$group_selector = ob_get_clean(); $currentgroup = setup_and_print_groups($course, $groupmode, $baseurl);
$group_selector = ob_get_clean();
// update paging after group // update paging after group
$baseurl .= 'group='.$currentgroup.'&amp;'; $baseurl .= 'group='.$currentgroup.'&amp;';
$pbarurl .= 'group='.$currentgroup.'&amp;'; $pbarurl .= 'group='.$currentgroup.'&amp;';
if ($currentgroup) { if ($currentgroup) {
$groupsql = " LEFT JOIN {$CFG->prefix}groups_members gm ON gm.userid = u.id "; $groupsql = " LEFT JOIN {$CFG->prefix}groups_members gm ON gm.userid = u.id ";
$groupwheresql = " AND gm.groupid = $currentgroup "; $groupwheresql = " AND gm.groupid = $currentgroup ";
} else { }
$groupsql = '';
$groupwheresql = '';
} }
// Grab the grade_tree for this course // Grab the grade_tree for this course
@ -359,6 +381,7 @@ include('tabs.php');
echo $group_selector; echo $group_selector;
// Show/hide toggles // Show/hide toggles
echo '<div id="grade-report-toggles">';
if ($USER->gradeediting) { if ($USER->gradeediting) {
grader_report_print_toggle('eyecons', $baseurl); grader_report_print_toggle('eyecons', $baseurl);
grader_report_print_toggle('locks', $baseurl); grader_report_print_toggle('locks', $baseurl);
@ -369,6 +392,7 @@ grader_report_print_toggle('notes', $baseurl);
grader_report_print_toggle('grandtotals', $baseurl); grader_report_print_toggle('grandtotals', $baseurl);
grader_report_print_toggle('groups', $baseurl); grader_report_print_toggle('groups', $baseurl);
grader_report_print_toggle('scales', $baseurl); grader_report_print_toggle('scales', $baseurl);
echo '</div>';
// Paging bar // Paging bar
print_paging_bar($numusers, $page, $perpage, $pbarurl); print_paging_bar($numusers, $page, $perpage, $pbarurl);
@ -552,7 +576,9 @@ foreach ($users as $userid => $user) {
} }
// if user preference to display group sum // if user preference to display group sum
if ($currentgroup && ($displaygrouptotals || 1)) { $groupsumhtml = '';
if ($currentgroup && $showgroups) {
/** SQL for finding group sum */ /** SQL for finding group sum */
$SQL = "SELECT g.itemid, SUM(g.finalgrade) as sum $SQL = "SELECT g.itemid, SUM(g.finalgrade) as sum
@ -583,12 +609,11 @@ if ($currentgroup && ($displaygrouptotals || 1)) {
} }
} }
$groupsumhtml .= '</tr>'; $groupsumhtml .= '</tr>';
} else {
$groupsumhtml = '';
} }
// Grand totals // Grand totals
if ($displaytotals) { $gradesumhtml = '';
if ($showgrandtotals) {
/** SQL for finding the SUM grades of all visible users ($CFG->gradebookroles) */ /** SQL for finding the SUM grades of all visible users ($CFG->gradebookroles) */
@ -618,21 +643,16 @@ if ($displaytotals) {
} }
} }
$gradesumhtml .= '</tr>'; $gradesumhtml .= '</tr>';
} else {
$gradesumhtml = '';
} }
// finding the ranges of each gradeitem // finding the ranges of each gradeitem
$scalehtml = '';
if ($showscales) { if ($showscales) {
$scalehtml = '<tr><td>'.get_string('range','grades').'</td>'; $scalehtml = '<tr><td>'.get_string('range','grades').'</td>';
foreach ($items as $item) { foreach ($items as $item) {
$scalehtml .= '<td>'. get_grade_clean($item->grademin).'-'. get_grade_clean($item->grademax).'</td>'; $scalehtml .= '<td>'. get_grade_clean($item->grademin).'-'. get_grade_clean($item->grademax).'</td>';
} }
$scalehtml .= '</tr>'; $scalehtml .= '</tr>';
} else {
$scalehtml = '';
} }
$reporthtml = "<table class=\"boxaligncenter\">$headerhtml"; $reporthtml = "<table class=\"boxaligncenter\">$headerhtml";

BIN
pix/t/scales.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 B

BIN
pix/t/sigma.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 B

View file

@ -2163,6 +2163,10 @@ body#grade-index .grades .weighted {
margin-left: 4px; margin-left: 4px;
} }
#grade-report-toggles {
text-align: center;
}
/*** /***
*** Login *** Login
***/ ***/