Skip to content

Commit

Permalink
Merge branch 'MDL-30883_21' of git://github.com/timhunt/moodle into M…
Browse files Browse the repository at this point in the history
…OODLE_21_STABLE
  • Loading branch information
danpoltawski committed Jul 3, 2012
2 parents 30cab61 + bd874d2 commit 7e31c3b
Showing 1 changed file with 33 additions and 17 deletions.
50 changes: 33 additions & 17 deletions question/engine/renderer.php
Original file line number Diff line number Diff line change
Expand Up @@ -207,36 +207,52 @@ protected function mark_summary(question_attempt $qa, question_display_options $
*/
protected function question_flag(question_attempt $qa, $flagsoption) {
global $CFG;

$divattributes = array('class' => 'questionflag');

switch ($flagsoption) {
case question_display_options::VISIBLE:
$flagcontent = $this->get_flag_html($qa->is_flagged());
break;

case question_display_options::EDITABLE:
$id = $qa->get_flag_field_name();
if ($qa->is_flagged()) {
$checked = 'checked="checked" ';
} else {
$checked = '';
}
$postdata = question_flags::get_postdata($qa);
// The checkbox id must be different from any element name, because
// of a stupid IE bug:
// http://www.456bereastreet.com/archive/200802/beware_of_id_and_name_attribute_mixups_when_using_getelementbyid_in_internet_explorer/
$flagcontent = '<input type="hidden" name="' . $id . '" value="0" />' .
'<input type="checkbox" id="' . $id . 'checkbox" name="' . $id .
'" value="1" ' . $checked . ' />' .
'<input type="hidden" value="' . s($postdata) .
'" class="questionflagpostdata" />' .
'<label id="' . $id . 'label" for="' . $id . 'checkbox">' .
$this->get_flag_html($qa->is_flagged(), $id . 'img') .
'</label>' . "\n";
$checkboxattributes = array(
'type' => 'checkbox',
'id' => $id . 'checkbox',
'name' => $id,
'value' => 1,
);
if ($qa->is_flagged()) {
$checkboxattributes['checked'] = 'checked';
}
$postdata = question_flags::get_postdata($qa);

$flagcontent = html_writer::empty_tag('input',
array('type' => 'hidden', 'name' => $id, 'value' => 0)) .
html_writer::empty_tag('input', $checkboxattributes) .
html_writer::empty_tag('input',
array('type' => 'hidden', 'value' => $postdata, 'class' => 'questionflagpostdata')) .
html_writer::tag('label', $this->get_flag_html($qa->is_flagged(), $id . 'img'),
array('id' => $id . 'label', 'for' => $id . 'checkbox')) . "\n";

$divattributes = array(
'class' => 'questionflag editable',
'aria-atomic' => 'true',
'aria-relevant' => 'text',
'aria-live' => 'assertive',
);

break;

default:
$flagcontent = '';
}
if ($flagcontent) {
return '<div class="questionflag">' . $flagcontent . "</div>\n";
}

return html_writer::nonempty_tag('div', $flagcontent, $divattributes);
}

/**
Expand Down

0 comments on commit 7e31c3b

Please sign in to comment.