From 4e5fa682b59e8948e50b1b240fbce6443947bfb4 Mon Sep 17 00:00:00 2001 From: nicolasconnault Date: Wed, 5 Dec 2007 09:35:18 +0000 Subject: [PATCH] MDL-11835 Implemented changes discussed in http://moodle.org/mod/forum/discuss.php?d=85908. Also added item name and module name and category name (for category totals) in alt tags of icons --- grade/lib.php | 54 ++++++++++---- grade/report/grader/index.php | 1 + grade/report/grader/lib.php | 35 ++++++++- grade/report/grader/styles.php | 11 +++ lib/form/selectallornone.php | 126 --------------------------------- 5 files changed, 85 insertions(+), 142 deletions(-) delete mode 100644 lib/form/selectallornone.php diff --git a/grade/lib.php b/grade/lib.php index 899af8e9fb7..c666280501d 100644 --- a/grade/lib.php +++ b/grade/lib.php @@ -836,6 +836,32 @@ class grade_structure { function get_item_eid($grade_item) { return 'i'.$grade_item->id; } + + function get_params_for_iconstr($element) { + $strparams = new stdClass(); + $strparams->category = ''; + $strparams->itemname = ''; + $strparams->itemmodule = ''; + if (!method_exists($element['object'], 'get_name')) { + return $strparams; + } + + $strparams->itemname = $element['object']->get_name(); + + // If element name is categorytotal, get the name of the parent category + if ($strparams->itemname == get_string('categorytotal', 'grades')) { + $parent = $element['object']->get_parent_category(); + $strparams->category = $parent->get_name() . ' '; + } else { + $strparams->category = ''; + } + + $strparams->itemmodule = null; + if (isset($element['object']->itemmodule)) { + $strparams->itemmodule = $element['object']->itemmodule; + } + return $strparams; + } /** * Return edit icon for give element @@ -860,6 +886,10 @@ class grade_structure { $strfeedback = get_string('feedback'); } + $strparams = $this->get_params_for_iconstr($element); + if ($element['type'] == 'item' or $element['type'] == 'category') { + } + $object = $element['object']; $overlib = ''; @@ -867,6 +897,7 @@ class grade_structure { case 'item': case 'categoryitem': case 'courseitem': + $stredit = get_string('editverbose', 'grades', $strparams); if (empty($object->outcomeid) || empty($CFG->enableoutcomes)) { $url = $CFG->wwwroot.'/grade/edit/tree/item.php?courseid='.$this->courseid.'&id='.$object->id; } else { @@ -876,6 +907,7 @@ class grade_structure { break; case 'category': + $stredit = get_string('editverbose', 'grades', $strparams); $url = $CFG->wwwroot.'/grade/edit/tree/category.php?courseid='.$this->courseid.'&id='.$object->id; $url = $gpr->add_url_params($url); break; @@ -919,12 +951,9 @@ class grade_structure { return ''; } - static $strshow = null; - static $strhide = null; - if (is_null($strshow)) { - $strshow = get_string('show'); - $strhide = get_string('hide'); - } + $strparams = $this->get_params_for_iconstr($element); + $strshow = get_string('showverbose', 'grades', $strparams); + $strhide = get_string('hideverbose', 'grades', $strparams); if ($element['object']->is_hidden()) { $icon = 'show'; @@ -957,12 +986,9 @@ class grade_structure { function get_locking_icon($element, $gpr) { global $CFG; - static $strunlock = null; - static $strlock = null; - if (is_null($strunlock)) { - $strunlock = get_string('unlock', 'grades'); - $strlock = get_string('lock', 'grades'); - } + $strparams = $this->get_params_for_iconstr($element); + $strunlock = get_string('unlockverbose', 'grades', $strparams); + $strlock = get_string('lockverbose', 'grades', $strparams); if ($element['object']->is_locked()) { $icon = 'unlock'; @@ -1009,9 +1035,11 @@ class grade_structure { $type = $element['type']; $object = $element['object']; + if ($type == 'item' or $type == 'courseitem' or $type == 'categoryitem') { - $streditcalculation = get_string('editcalculation', 'grades'); + $strparams = $this->get_params_for_iconstr($element); + $streditcalculation = get_string('editcalculationverbose', 'grades', $strparams); // show calculation icon only when calculation possible if ((!$object->is_external_item() or $object->is_outcome_item()) diff --git a/grade/report/grader/index.php b/grade/report/grader/index.php index fd8fda9349a..b4558e8d1a4 100644 --- a/grade/report/grader/index.php +++ b/grade/report/grader/index.php @@ -163,6 +163,7 @@ $reporthtml = ''; $reporthtml .= ''; $reporthtml .= $report->get_headerhtml(); +$reporthtml .= $report->get_iconshtml(); $reporthtml .= $report->get_rangehtml(); $reporthtml .= $report->get_studentshtml(); $reporthtml .= $report->get_avghtml(true); diff --git a/grade/report/grader/lib.php b/grade/report/grader/lib.php index aab20c7a9f6..22d53d9e2af 100644 --- a/grade/report/grader/lib.php +++ b/grade/report/grader/lib.php @@ -566,7 +566,7 @@ class grade_report_grader extends grade_report { // Element is a category else if ($type == 'category') { $headerhtml .= ''; + $headerhtml .= ''; } } @@ -1041,6 +1042,34 @@ class grade_report_grader extends grade_report { } return $scalehtml; } + + /** + * Builds and return the HTML row of ranges for each column (i.e. range). + * @return string HTML + */ + function get_iconshtml() { + global $USER; + + $iconshtml = ''; + if ($USER->gradeediting[$this->courseid]) { + + $iconshtml = '' + . ''; + + $columncount = 1; + foreach ($this->gtree->items as $itemid=>$unused) { + // emulate grade element + $item =& $this->gtree->items[$itemid]; + + $eid = $this->gtree->get_item_eid($item); + $element = $this->gtree->locate_element($eid); + + $iconshtml .= ''; + } + $iconshtml .= ''; + } + return $iconshtml; + } /** * Given a grade_category, grade_item or grade_grade, this function diff --git a/grade/report/grader/styles.php b/grade/report/grader/styles.php index 1fd8f126f80..4a026011016 100644 --- a/grade/report/grader/styles.php +++ b/grade/report/grader/styles.php @@ -59,6 +59,9 @@ font-weight: bold; } +.grade-report-grader table#user-grades { + font-size: 80%; +} .grade-report-grader table#user-grades { border-width:1px; @@ -112,6 +115,7 @@ .grade-report-grader table#user-grades th.category { border-width:1px 1px 0px 1px; border-style:solid; + vertical-align: top; } .grade-report-grader table#user-grades th.user { @@ -124,6 +128,11 @@ .grade-report-grader table#user-grades td.topleft { border-width:0px 1px 0px 1px; border-style:solid; + vertical-align: top; +} + +.grade-report-grader table#participants th { + vertical-align: top; } .grade-report-grader table#user-grades td.fillerfirst { @@ -139,8 +148,10 @@ .grade-report-grader table#user-grades th.item { border-width:1px 1px 1px 1px; border-style:solid; + vertical-align: top; } + .grade-report-grader div.gradertoggle { display: inline; margin-left: 20px; diff --git a/lib/form/selectallornone.php b/lib/form/selectallornone.php deleted file mode 100644 index 32e099d00f2..00000000000 --- a/lib/form/selectallornone.php +++ /dev/null @@ -1,126 +0,0 @@ - - * @version 1.0 - * @since PHP4.04pl1 - * @access public - */ -class MoodleQuickForm_selectallornone extends HTML_QuickForm_link { - /** - * The original state of the checkboxes controlled by this element. This determines whether the first click of this element will switch them all to - * checked or to unchecked. It doesn't change the checked state of the original elements (there could be a mixed of checked/unchecked there), but - * there has to be a decision as to which action will be taken by clicking "select all/select none" the first time. - * @var int $originalValue - */ - var $_originalValue = 0; - - /** - * Constructor - * @param string $elementName The name of the group of advcheckboxes this element controls - * @param string $text The text of the link. Defaults to "select all/none" - * @param array $attributes associative array of HTML attributes - * @param int $originalValue The original general state of the checkboxes before the user first clicks this element - */ - function MoodleQuickForm_selectallornone($elementName=null, $text=null, $attributes=null, $originalValue=0) { - if (is_null($originalValue)) { - $originalValue = 0; - } - - global $FULLME; - $this->_originalValue = $originalValue; - - if (is_null($elementName)) { - return; - } - $elementLabel = ' '; - $strselectallornone = get_string('selectallornone', 'form'); - $attributes['onmouseover'] = "window.status='" . $strselectallornone . "';"; - $attributes['onmouseout'] = "window.status='';"; - $attributes['onclick'] = "html_quickform_toggle_checkboxes($elementName); return false;"; - $select_value = optional_param('select'. $elementName, $originalValue, PARAM_INT); - - if ($select_value == 0) { - $new_select_value = 1; - } else { - $new_select_value = 0; - } - - $old_selectstr = "&select$elementName=$select_value"; - $new_selectstr = "&select$elementName=$new_select_value"; - $new_fullme = str_replace($old_selectstr, '', $FULLME); - - $href = "$new_fullme$new_selectstr"; - - if (empty($text)) { - $text = $strselectallornone; - } - $this->HTML_QuickForm_link($elementName, $elementLabel, $href, $text, $attributes); - } - - function toHtml() { - if (is_null($this->_originalValue)) { - return false; - } - - $group = $this->_attributes['name']; - if ($this->_flagFrozen) { - $js = ''; - } else { - $js = ""; - } - return $js . parent::toHtml(); - } -} -?>
' - . $element['object']->get_name(); + . shorten_text($element['object']->get_name()); $headerhtml .= $this->get_collapsing_icon($element); // Print icons @@ -597,8 +597,9 @@ class grade_report_grader extends grade_report { } $headerlink = $this->gtree->get_element_header($element, true, $this->get_pref('showactivityicons'), false); - $headerhtml .= ''. $headerlink . $arrow; - $headerhtml .= $this->get_icons($element) . '' + . shorten_text($headerlink) . $arrow; + $headerhtml .= '
'.$this->get_lang_string('controls','grades').'' . $this->get_icons($element) . '