MDL-85002 mod_quiz: Navigation with standard tertiary nav elements.
This commit is contained in:
@@ -20,7 +20,7 @@ use moodle_url;
|
||||
use renderable;
|
||||
use renderer_base;
|
||||
use templatable;
|
||||
use url_select;
|
||||
use core\output\select_menu;
|
||||
|
||||
/**
|
||||
* Represents the tertiary navigation around the quiz edit pages.
|
||||
@@ -64,15 +64,18 @@ class edit_nav_actions implements renderable, templatable {
|
||||
$gradeitemsetupurl->out(false) => get_string('gradeitemsetup', 'quiz'),
|
||||
];
|
||||
|
||||
$overridesnav = new url_select(
|
||||
$overridesnav = new select_menu(
|
||||
'quizsetupnavigation',
|
||||
$menu,
|
||||
$this->whichpage === self::SUMMARY ? $questionsurl->out(false) : $gradeitemsetupurl->out(false),
|
||||
null
|
||||
);
|
||||
$overridesnav->set_label(get_string('quizsetupnavigation', 'quiz'), ['class' => 'visually-hidden']);
|
||||
$overridesnav->set_label(
|
||||
get_string('quizsetupnavigation', 'quiz'),
|
||||
['class' => 'visually-hidden']
|
||||
);
|
||||
|
||||
return [
|
||||
'navmenu' => $overridesnav->export_for_template($output),
|
||||
'navigation' => $overridesnav->export_for_template($output),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ use moodle_url;
|
||||
use renderable;
|
||||
use renderer_base;
|
||||
use templatable;
|
||||
use url_select;
|
||||
use core\output\select_menu;
|
||||
|
||||
/**
|
||||
* Render overrides action in the quiz secondary navigation
|
||||
@@ -98,8 +98,17 @@ class overrides_actions implements renderable, templatable {
|
||||
$groupoverridesurl->out(false) => get_string('groupoverrides', 'quiz')
|
||||
];
|
||||
|
||||
$overridesnav = new url_select($menu, $PAGE->url->out(false), null, 'quizoverrides');
|
||||
$templatecontext['overridesnav'] = $overridesnav->export_for_template($output);
|
||||
$overridesnav = new select_menu(
|
||||
'quizoverrides',
|
||||
$menu,
|
||||
$PAGE->url->out(false),
|
||||
);
|
||||
$overridesnav->set_label(
|
||||
get_string('overrides', 'quiz'),
|
||||
['class' => 'visually-hidden']
|
||||
);
|
||||
|
||||
$templatecontext['navigation'] = $overridesnav->export_for_template($output);
|
||||
|
||||
// Build the add button - but only if the user can edit.
|
||||
if ($this->canedit) {
|
||||
|
||||
@@ -25,28 +25,30 @@
|
||||
* none
|
||||
|
||||
Context variables required for this template:
|
||||
* overridesnav - must alwasy be present.
|
||||
* navigation - must always be present.
|
||||
* addoverridebutton - should only be present if the user has permission to add a new override.
|
||||
|
||||
Example context (json):
|
||||
{
|
||||
"overridesnav": {
|
||||
"id": "url_select_test",
|
||||
"action": "https://example.com/post",
|
||||
"formid": "url_select_form",
|
||||
"sesskey": "sesskey",
|
||||
"label": "core/url_select",
|
||||
"options": [{
|
||||
"navigation": {
|
||||
"name": "tertiarynavigation",
|
||||
"value": "/mod/quiz/overrides.php?cmid=71&mode=group",
|
||||
"baseid": "select-menu56789",
|
||||
"selectedoption": "Group overrides",
|
||||
"options": [
|
||||
{
|
||||
"name": "User overrides",
|
||||
"value": "/mod/quiz/overrides.php?cmid=71&mode=user"
|
||||
"value": "/mod/quiz/overrides.php?cmid=71&mode=user",
|
||||
"id": "select-menu-option1",
|
||||
"selected": false
|
||||
},
|
||||
{
|
||||
"name": "Group overrides",
|
||||
"value": "/mod/quiz/overrides.php?cmid=71&mode=group"
|
||||
"value": "/mod/quiz/overrides.php?cmid=71&mode=group",
|
||||
"id": "select-menu-option2",
|
||||
"selected": true
|
||||
}
|
||||
],
|
||||
"disabled": false,
|
||||
"title": "Some cool title"
|
||||
]
|
||||
},
|
||||
"addoverridebutton": {
|
||||
"id": "single_button1234",
|
||||
@@ -71,11 +73,11 @@
|
||||
}}
|
||||
<div class="tertiary-navigation">
|
||||
<div class="d-flex">
|
||||
{{#overridesnav}}
|
||||
{{#navigation}}
|
||||
<div class="navitem">
|
||||
{{>core/url_select}}
|
||||
{{>core/tertiary_navigation_selector}}
|
||||
</div>
|
||||
{{/overridesnav}}
|
||||
{{/navigation}}
|
||||
{{#addoverridebutton}}
|
||||
<div class="navitem">
|
||||
{{>core/single_button}}
|
||||
|
||||
@@ -118,6 +118,7 @@ Feature: Quiz group override
|
||||
And "Copy" "link" should not exist in the "Group 1" "table_row"
|
||||
And "Delete" "link" should not exist in the "Group 1" "table_row"
|
||||
|
||||
@javascript
|
||||
Scenario: "Not visible" groups should not be available for group overrides
|
||||
Given the following "groups" exist:
|
||||
| name | course | idnumber | visibility | participation |
|
||||
@@ -129,7 +130,7 @@ Feature: Quiz group override
|
||||
| Only visible to members/Non-Participation | C1 | MN | 1 | 0 |
|
||||
When I am on the "quiz1" Activity page logged in as teacher1
|
||||
And I navigate to "Overrides" in current page administration
|
||||
And I select "Group overrides" from the "jump" singleselect
|
||||
And I set the field "Overrides" to "Group overrides"
|
||||
And I press "Add group override"
|
||||
Then I should see "Visible to everyone/Participation" in the "Override group" "select"
|
||||
And I should see "Visible to everyone/Non-Participation" in the "Override group" "select"
|
||||
|
||||
Reference in New Issue
Block a user