From 71eadbec622537dfb439eb8eb1a22b36efa16497 Mon Sep 17 00:00:00 2001 From: Jun Pataleta Date: Fri, 15 Mar 2019 10:31:10 +0800 Subject: [PATCH] MDL-65928 mod_choice: Add select/deselect all master button --- mod/choice/renderer.php | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/mod/choice/renderer.php b/mod/choice/renderer.php index 8b167d73b9b..ecd3e6a97dd 100644 --- a/mod/choice/renderer.php +++ b/mod/choice/renderer.php @@ -191,10 +191,11 @@ class mod_choice_renderer extends plugin_renderer_base { if ($choices->viewresponsecapability && $choices->deleterepsonsecapability) { // Build the select/deselect all for this option. - $selectallid = 'selectall-option-' . $optionid; + $selectallid = 'select-response-option-' . $optionid; + $togglegroup = 'responses response-option-' . $optionid; $selectalltext = get_string('selectall', 'moodle') . ' ' . $headertitle; $deselectalltext = get_string('deselectall', 'moodle') . ' ' . $headertitle; - $mastercheckbox = new \core\output\checkbox_toggleall($selectallid, true, [ + $mastercheckbox = new \core\output\checkbox_toggleall($togglegroup, true, [ 'id' => $selectallid, 'name' => $selectallid, 'value' => 1, @@ -257,7 +258,7 @@ class mod_choice_renderer extends plugin_renderer_base { $checkboxvalue = $user->id; } - $togglegroup = 'selectall-option-' . $optionid; + $togglegroup = 'responses response-option-' . $optionid; $slavecheckbox = new \core\output\checkbox_toggleall($togglegroup, false, [ 'id' => $checkboxid, 'name' => $checkboxname, @@ -288,6 +289,18 @@ class mod_choice_renderer extends plugin_renderer_base { $actiondata = ''; if ($choices->viewresponsecapability && $choices->deleterepsonsecapability) { + // Build the select/deselect all for all of options. + $selectallid = 'select-all-responses'; + $togglegroup = 'responses'; + $selectallcheckbox = new \core\output\checkbox_toggleall($togglegroup, true, [ + 'id' => $selectallid, + 'name' => $selectallid, + 'value' => 1, + 'label' => get_string('selectall'), + 'classes' => 'mr-1' + ], true); + $actiondata .= $OUTPUT->render($selectallcheckbox); + $actionurl = new moodle_url($PAGE->url, array('sesskey'=>sesskey(), 'action'=>'delete_confirmation()')); $actionoptions = array('delete' => get_string('delete')); foreach ($choices->options as $optionid => $option) { @@ -295,9 +308,16 @@ class mod_choice_renderer extends plugin_renderer_base { $actionoptions['choose_'.$optionid] = get_string('chooseoption', 'choice', $option->text); } } - $select = new single_select($actionurl, 'action', $actionoptions, null, - array('' => get_string('chooseaction', 'choice')), 'attemptsform'); + $selectattributes = [ + 'data-action' => 'toggle', + 'data-togglegroup' => 'responses', + 'data-toggle' => 'action', + ]; + $selectnothing = ['' => get_string('chooseaction', 'choice')]; + $select = new single_select($actionurl, 'action', $actionoptions, null, $selectnothing, 'attemptsform'); $select->set_label(get_string('withselected', 'choice')); + $select->disabled = true; + $select->attributes = $selectattributes; $actiondata .= $this->output->render($select); }