question bank: MDL-18000 Make select all work by clicking the checkbox column heading.

Yay! I got bug 18000 and it is already fixed.
This commit is contained in:
tjhunt
2009-01-23 06:05:25 +00:00
parent 3cbce27e14
commit bfb1691da3
2 changed files with 41 additions and 10 deletions
+6 -10
View File
@@ -140,6 +140,8 @@ abstract class question_bank_column_base {
public function __construct(question_bank_view $qbank) {
$this->qbank = $qbank;
$this->init();
require_js(array('yui_yahoo','yui_event'));
require_js('question/qbank.js');
}
/**
@@ -390,7 +392,7 @@ class question_bank_checkbox_column extends question_bank_column_base {
}
protected function get_title() {
return '<input type="checkbox" disabled="disabled" />';
return '<input type="checkbox" disabled="disabled" id="qbheadercheckbox" />';
}
protected function get_title_tip() {
@@ -399,7 +401,9 @@ class question_bank_checkbox_column extends question_bank_column_base {
protected function display_content($question, $rowclasses) {
echo '<input title="' . $this->strselect . '" type="checkbox" name="q' .
$question->id . '" id="checkq' . $question->id . '" value="1" />';
$question->id . '" id="checkq' . $question->id . '" value="1"/>';
print_js_call('question_bank.init_checkbox_column', array(get_string('selectall'),
get_string('deselectall'), 'checkq' . $question->id));
}
public function get_required_fields() {
@@ -1282,14 +1286,6 @@ class question_bank_view {
echo $paging;
echo '</div>';
echo '<div class="categoryselectallcontainer">';
if ($caneditall || $canmoveall || $canuseall){
echo '<a href="javascript:select_all_in(\'TABLE\',null,\'categoryquestions\');">'.$strselectall.'</a> /'.
' <a href="javascript:deselect_all_in(\'TABLE\',null,\'categoryquestions\');">'.$strselectnone.'</a>';
echo '<br />';
}
echo "</div>\n";
echo '<div class="modulespecificbuttonscontainer">';
if ($caneditall || $canmoveall || $canuseall){
echo '<strong>&nbsp;'.get_string('withselected', 'quiz').':</strong><br />';
+35
View File
@@ -0,0 +1,35 @@
// This script is included by question_bank_view in question/editlib.php.
question_bank = {
strselectall: '',
strdeselectall: '',
headercheckbox: null,
firstcheckbox: null,
init_checkbox_column: function(strselectall, strdeselectall, firstcbid) {
question_bank.strselectall = strselectall;
question_bank.strdeselectall = strdeselectall;
// Find the header checkbox, and initialise it.
question_bank.headercheckbox = document.getElementById('qbheadercheckbox');
question_bank.headercheckbox.disabled = false;
question_bank.headercheckbox.title = strselectall;
// Find the first real checkbox.
question_bank.firstcheckbox = document.getElementById(firstcbid);
// Add the event handler.
YAHOO.util.Event.addListener(question_bank.headercheckbox, 'change', question_bank.header_checkbox_click);
},
header_checkbox_click: function() {
if (question_bank.firstcheckbox.checked) {
deselect_all_in('TABLE', null, 'categoryquestions');
question_bank.headercheckbox.title = question_bank.strselectall;
} else {
select_all_in('TABLE', null, 'categoryquestions');
question_bank.headercheckbox.title = question_bank.strdeselectall;
}
question_bank.headercheckbox.checked = false;
}
};