MDL-75512 core_grades: Add sticky footer to setup page.

This commit is contained in:
Ilya Tregubov 2023-05-09 15:37:44 +08:00
parent 063ffc8073
commit 95a0ba16da
No known key found for this signature in database
GPG Key ID: 0F58186F748E55C1
3 changed files with 58 additions and 25 deletions

View File

@ -284,6 +284,10 @@ if ($moving) {
new moodle_url('index.php', ['id' => $course->id]), get_string('cancel'), 'get');
}
$footercontent = $OUTPUT->render_from_template('core_grades/edit_tree_sticky_footer', $tpldata);
$stickyfooter = new core\output\sticky_footer($footercontent);
$tpldata->stickyfooter = $OUTPUT->render($stickyfooter);
echo $OUTPUT->render_from_template('core_grades/edit_tree', $tpldata);
echo $OUTPUT->box_end();

View File

@ -23,10 +23,8 @@
* actionurl - string - Form action URL.
* sesskey - string - The session key.
* notification - object - Context data for the notification.
* showsave - boolean - Whether to show the save changes button.
* showbulkmove - boolean - Whether to show the bulk move select menu.
* table - string - HTML content of the grade items table.
* bulkmoveoptions - array - Key-value pair array for the options of the the bulk move select menu element.
* stickyfooter - string - HTML content of the sticky footer.
* cancelmovingbutton - HTML content of the cancel move button.
Example context (json):
@ -35,11 +33,7 @@
"sesskey": "fakesesskey",
"notification": "",
"table": "<table class='generaltable simple setup-grades' id='grade_edit_tree_table'><thead> <tr><th>Name</th><th>Weights</th><th>Max grade</th><th>Actions</th> </tr></thead><tbody></tbody></table>",
"showsave": "true",
"showbulkmove": "true",
"bulkmoveoptions": "{'value' : '1', 'name' : 'Test grade category'}",
"value": "1",
"name": "Test grade category",
"stickyfooter": "<div id='gradetreesubmit'></div>",
"cancelmovingbutton": "<div class='singlebutton'></div>"
}
}}
@ -51,23 +45,7 @@
<div>
<input type="hidden" name="sesskey" value="{{sesskey}}">
{{{table}}}
<div id="gradetreesubmit">
{{#showsave}}
<input class="advanced btn btn-primary" type="submit" value="{{#cleanstr}}savechanges{{/cleanstr}}">
{{/showsave}}
{{#showbulkmove}}
<div class="form-inline mt-3">
<input type="hidden" name="bulkmove" value="0" id="bulkmoveinput">
<label for="menumoveafter">{{#str}}moveselectedto, grades{{/str}}</label>
<select name="moveafter" id="menumoveafter" class="ignoredirty singleselect custom-select form-control"
data-action="toggle" data-toggle="action" data-togglegroup="category" disabled>
{{#bulkmoveoptions}}
<option value="{{value}}">{{{name}}}</option>
{{/bulkmoveoptions}}
</select>
</div>
{{/showbulkmove}}
</div>
{{{stickyfooter}}}
</div>
</form>
{{{cancelmovingbutton}}}

View File

@ -0,0 +1,51 @@
{{!
This file is part of Moodle - http://moodle.org/
Moodle is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Moodle is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Moodle. If not, see <http://www.gnu.org/licenses/>.
}}
{{!
@template core_grades/edit_tree_sticky_footer
Edit tree sticky footer template.
Context variables required for this template:
* showsave - boolean - Whether to show the save changes button.
* showbulkmove - boolean - Whether to show the bulk move select menu.
* bulkmoveoptions - array - Key-value pair array for the options of the the bulk move select menu element.
Example context (json):
{
"showsave": "true",
"showbulkmove": "true",
"bulkmoveoptions": "{'value' : '1', 'name' : 'Test grade category'}",
"value": "1",
"name": "Test grade category"
}
}}
<div class="col">
{{#showbulkmove}}
<input type="hidden" name="bulkmove" value="0" id="bulkmoveinput">
<label for="menumoveafter">{{#str}}moveselectedto, grades{{/str}}</label>
<select name="moveafter" id="menumoveafter" class="ignoredirty singleselect custom-select form-control"
data-action="toggle" data-toggle="action" data-togglegroup="category" disabled>
{{#bulkmoveoptions}}
<option value="{{value}}">{{{name}}}</option>
{{/bulkmoveoptions}}
</select>
{{/showbulkmove}}
</div>
<div class="col-auto">
{{#showsave}}
<input class="advanced btn btn-primary" type="submit" value="{{#cleanstr}}savechanges{{/cleanstr}}">
{{/showsave}}
</div>