mirror of
https://github.com/moodle/moodle.git
synced 2025-04-21 08:22:07 +02:00
Merge branch 'MDL-72091-rebase-3' of https://github.com/Chocolate-lightning/moodle
This commit is contained in:
commit
843066ecf4
@ -22,6 +22,19 @@ if ($hassiteconfig && moodle_needs_upgrading()) {
|
||||
\core\hub\registration::registration_reminder('/admin/search.php');
|
||||
|
||||
admin_externalpage_setup('search', '', array('query' => $query)); // now hidden page
|
||||
$PAGE->set_heading(get_string('administrationsite')); // Has to be after setup since it has its' own heading set_heading.
|
||||
|
||||
if ($hassiteconfig) {
|
||||
$data = [
|
||||
'action' => new moodle_url('/admin/search.php'),
|
||||
'btnclass' => 'btn-primary',
|
||||
'inputname' => 'query',
|
||||
'searchstring' => get_string('search'),
|
||||
'query' => $query,
|
||||
'extraclasses' => 'd-flex justify-content-end'
|
||||
];
|
||||
$PAGE->add_header_action($OUTPUT->render_from_template('core/search_input', $data));
|
||||
}
|
||||
|
||||
$adminroot = admin_get_root(); // need all settings here
|
||||
$adminroot->search = $query; // So we can reference it in search boxes later in this invocation
|
||||
@ -59,8 +72,6 @@ if (empty($query)) {
|
||||
echo $adminrenderer->warn_if_not_registered();
|
||||
}
|
||||
|
||||
echo $OUTPUT->heading(get_string('administrationsite'));
|
||||
|
||||
if ($errormsg !== '') {
|
||||
echo $OUTPUT->notification($errormsg);
|
||||
|
||||
@ -70,22 +81,10 @@ if ($errormsg !== '') {
|
||||
|
||||
$showsettingslinks = true;
|
||||
|
||||
if ($hassiteconfig) {
|
||||
$data = [
|
||||
'action' => new moodle_url('/admin/search.php'),
|
||||
'btnclass' => 'btn-primary',
|
||||
'inputname' => 'query',
|
||||
'searchstring' => get_string('search'),
|
||||
'query' => $query,
|
||||
'extraclasses' => 'd-flex justify-content-center'
|
||||
];
|
||||
echo $OUTPUT->render_from_template('core/search_input', $data);
|
||||
|
||||
if ($query && $hassiteconfig) {
|
||||
echo '<hr>';
|
||||
if ($query) {
|
||||
echo admin_search_settings_html($query);
|
||||
$showsettingslinks = false;
|
||||
}
|
||||
echo admin_search_settings_html($query);
|
||||
$showsettingslinks = false;
|
||||
}
|
||||
|
||||
if ($showsettingslinks) {
|
||||
|
@ -34,7 +34,7 @@ Feature: Verify that keyboard steps work as expected
|
||||
| username | email | firstname | lastname |
|
||||
| saffronr | saffron.rutledge@example.com | Saffron | Rutledge |
|
||||
And I log in as "saffronr"
|
||||
And I click on "Saffron Rutledge" "button" in the ".usermenu" "css_element"
|
||||
And I click on "User menu" "button" in the ".usermenu" "css_element"
|
||||
When I press the up key
|
||||
Then the focused element is "Log out" "link"
|
||||
|
||||
|
@ -58,14 +58,14 @@ Feature: Apply accessibility to a tour
|
||||
When I press tab
|
||||
Then the focused element is ".usermenu" "css_element"
|
||||
When I press tab
|
||||
Then the focused element is "Admin User" "link_or_button" in the ".usermenu" "css_element"
|
||||
Then the focused element is "User menu" "button" in the ".usermenu" "css_element"
|
||||
When I press tab
|
||||
And I press tab
|
||||
Then the focused element is ".close" "css_element" in the "User menu" "dialogue"
|
||||
# Press shift-tab twice should lead us back to "Admin user" link.
|
||||
# Press shift-tab twice should lead us back to the user menu button.
|
||||
When I press shift tab
|
||||
And I press shift tab
|
||||
Then the focused element is "Admin User" "link_or_button" in the ".usermenu" "css_element"
|
||||
Then the focused element is "User menu" "button" in the ".usermenu" "css_element"
|
||||
|
||||
@javascript
|
||||
Scenario: Aria tags should not exist
|
||||
|
@ -96,6 +96,7 @@ $PAGE->set_docs_path('');
|
||||
$editing = $PAGE->user_is_editing();
|
||||
$PAGE->set_title($SITE->fullname);
|
||||
$PAGE->set_heading($SITE->fullname);
|
||||
$PAGE->has_secondary_navigation_setter(false);
|
||||
$courserenderer = $PAGE->get_renderer('core', 'course');
|
||||
echo $OUTPUT->header();
|
||||
|
||||
|
2
lib/amd/build/menu_navigation.min.js
vendored
2
lib/amd/build/menu_navigation.min.js
vendored
@ -1,2 +1,2 @@
|
||||
define ("core/menu_navigation",["exports","core/key_codes"],function(a,b){"use strict";Object.defineProperty(a,"__esModule",{value:!0});a.default=void 0;var c={menuitem:"[role=\"menuitem\"]",menu:"[role=\"menu\"]"},d=null,e=function(a,b){if(null!==a){return a}else{return b}},f=function(a){var e=a.srcElement,f=a.currentTarget.firstElementChild,k=j(a.currentTarget);if(e.classList.contains("dropdown-item")){if(a.keyCode===b.arrowRight||a.keyCode===b.arrowLeft){a.preventDefault();if(null!==d){d.parentElement.click()}}if(a.keyCode===b.space||a.keyCode===b.enter){a.preventDefault();Array.prototype.forEach.call(e.closest(".dropdown-menu").children,function(a){a.querySelector(c.menuitem).classList.remove("active");a.setAttribute("aria-current","false")});if(!e.parentElement.classList.contains("dropdown")){e.click()}}}else{if(a.keyCode===b.arrowRight){a.preventDefault();g(e,f)}if(a.keyCode===b.arrowLeft){a.preventDefault();h(e,k)}if(a.keyCode===b.arrowUp||a.keyCode===b.arrowDown){d=e;a.preventDefault()}if(a.keyCode===b.home){a.preventDefault();e.setAttribute("aria-current","false");i(f)}if(a.keyCode===b.end){a.preventDefault();e.currentNode.setAttribute("aria-current","false");i(k)}if(a.keyCode===b.space||a.keyCode===b.enter){a.preventDefault();if(!e.parentElement.classList.contains("dropdown")){e.click()}}}};a.default=function(a){a.removeEventListener("keydown",f);a.addEventListener("keydown",f)};var g=function(a,b){var d=a.parentElement.nextElementSibling,f=e(d,b),g=f.querySelector(c.menuitem);a.setAttribute("aria-current","false");g.setAttribute("aria-current","true");g.focus()},h=function(a,b){var d=a.parentElement.previousElementSibling,f=e(d,b),g=f.querySelector(c.menuitem);a.setAttribute("aria-current","false");g.setAttribute("aria-current","true");g.focus()},i=function(a){a.querySelector(c.menuitem).focus();a.querySelector(c.menuitem).setAttribute("aria-current","true")},j=function(a){var b=a.lastElementChild;if(!b.classList.contains("d-none")){return a.lastElementChild}else{var c=Array.prototype.map.call(a.children,function(a){return a}).reverse(),d=c.filter(function(a){if(!a.classList.contains("d-none")){return a}});if(0!==d.length){return d[0]}else{return a.firstElementChild}}};return a.default});
|
||||
define ("core/menu_navigation",["exports","core/key_codes"],function(a,b){"use strict";Object.defineProperty(a,"__esModule",{value:!0});a.default=void 0;var c={menuitem:"[role=\"menuitem\"]",menu:"[role=\"menu\"]"},d=null,e=function(a,b){if(null!==a){return a}else{return b}},f=function(a){var b;if(a.classList.contains("dropdown-item")){b=a.closest(".dropdown-menu");b.previousElementSibling.classList.add("active")}else{b=a.parentElement.parentElement.querySelector(".dropdown-menu")}Array.prototype.forEach.call(b.children,function(a){var b=a.querySelector(c.menuitem);if(null!==b){b.classList.remove("active");b.setAttribute("aria-current","false")}a.setAttribute("aria-current","false")});a.setAttribute("aria-current","true")},g=function(a){var c=a.srcElement,e=a.currentTarget.firstElementChild,g=l(a.currentTarget);if(c.classList.contains("dropdown-item")){if(a.keyCode===b.arrowRight||a.keyCode===b.arrowLeft){a.preventDefault();if(null!==d){d.parentElement.click()}}if(a.keyCode===b.space||a.keyCode===b.enter){a.preventDefault();f(c);if(!c.parentElement.classList.contains("dropdown")){c.click()}}}else{if(a.keyCode===b.arrowRight){a.preventDefault();i(c,e)}if(a.keyCode===b.arrowLeft){a.preventDefault();j(c,g)}if(a.keyCode===b.arrowUp||a.keyCode===b.arrowDown){d=c;a.preventDefault()}if(a.keyCode===b.home){a.preventDefault();c.setAttribute("aria-current","false");k(e)}if(a.keyCode===b.end){a.preventDefault();c.currentNode.setAttribute("aria-current","false");k(g)}if(a.keyCode===b.space||a.keyCode===b.enter){a.preventDefault();if(!c.parentElement.classList.contains("dropdown")){c.click()}}}},h=function(a){var b=a.srcElement;f(b)};a.default=function(a){a.removeEventListener("keydown",g);a.removeEventListener("click",h);a.addEventListener("keydown",g);a.addEventListener("click",h)};var i=function(a,b){var d=a.parentElement.nextElementSibling,f=e(d,b),g=f.querySelector(c.menuitem);a.setAttribute("aria-current","false");g.setAttribute("aria-current","true");g.focus()},j=function(a,b){var d=a.parentElement.previousElementSibling,f=e(d,b),g=f.querySelector(c.menuitem);a.setAttribute("aria-current","false");g.setAttribute("aria-current","true");g.focus()},k=function(a){a.querySelector(c.menuitem).focus();a.querySelector(c.menuitem).setAttribute("aria-current","true")},l=function(a){var b=a.lastElementChild;if(!b.classList.contains("d-none")){return a.lastElementChild}else{var c=Array.prototype.map.call(a.children,function(a){return a}).reverse(),d=c.filter(function(a){if(!a.classList.contains("d-none")){return a}});if(0!==d.length){return d[0]}else{return a.firstElementChild}}};return a.default});
|
||||
//# sourceMappingURL=menu_navigation.min.js.map
|
||||
|
File diff suppressed because one or more lines are too long
2
lib/amd/build/moremenu.min.js
vendored
2
lib/amd/build/moremenu.min.js
vendored
@ -1,2 +1,2 @@
|
||||
define ("core/moremenu",["exports","jquery","core/menu_navigation"],function(a,b,c){"use strict";Object.defineProperty(a,"__esModule",{value:!0});a.default=void 0;b=d(b);c=d(c);function d(a){return a&&a.__esModule?a:{default:a}}var f={regions:{moredropdown:"[data-region=\"moredropdown\"]",morebutton:"[data-region=\"morebutton\"]"},classes:{dropdownitem:"dropdown-item",dropdownmoremenu:"dropdownmoremenu",dropdowntoggle:"dropdown-toggle",hidden:"d-none",active:"active",nav:"nav",navlink:"nav-link",observed:"observed"},attributes:{menu:"[role=\"menu\"]"}},g=function(a){var b=a.parentNode.offsetHeight+1,c=a.querySelector(f.regions.moredropdown),d=a.querySelector(f.regions.morebutton);if(a.offsetHeight>b){d.classList.remove(f.classes.hidden);var e=Array.from(a.children).reverse();e.forEach(function(c){if(!c.classList.contains(f.classes.dropdownmoremenu)){if(a.offsetHeight>b){var d=a.removeChild(c);h(a,d,!0)}}})}else{if("children"in c){var j=Array.from(c.children);j.forEach(function(d){if(a.offsetHeight<b&&"true"!==d.dataset.forceintomoremenu){var e=c.removeChild(d);i(a,e)}});if(0===j.length){d.classList.add(f.classes.hidden)}}if(a.offsetHeight>b){g(a)}}a.parentNode.classList.add(f.classes.observed)},h=function(a,b){var c=2<arguments.length&&arguments[2]!==void 0?arguments[2]:!1,d=a.querySelector(f.regions.moredropdown),e=a.querySelector("."+f.classes.dropdowntoggle),g=b.querySelector("."+f.classes.navlink);if(g.classList.contains(f.classes.active)){e.classList.add(f.classes.active)}g.classList.remove(f.classes.navlink);g.classList.add(f.classes.dropdownitem);if(c){d.prepend(b)}else{d.append(b)}},i=function(a,b){var c=a.querySelector(f.regions.morebutton),d=a.querySelector("."+f.classes.dropdowntoggle),e=b.querySelector("."+f.classes.dropdownitem);if(e.classList.contains(f.classes.active)){d.classList.remove(f.classes.active)}e.classList.remove(f.classes.dropdownitem);e.classList.add(f.classes.navlink);a.insertBefore(b,c)},j=function(a){a.firstElementChild.querySelector("[role=\"menuitem\"]").setAttribute("tabindex","0");if("children"in a){var d=a.querySelector(f.regions.morebutton),e=Array.from(a.children);e.forEach(function(b){if(!b.classList.contains(f.classes.dropdownmoremenu)&&"true"===b.dataset.forceintomoremenu){h(a,b,!1);if(d.classList.contains(f.classes.hidden)){d.classList.remove(f.classes.hidden)}}})}g(a);(0,c.default)(a);window.addEventListener("resize",function(){g(a);(0,c.default)(a)});var i=function(a){var b=a.target.parentNode.querySelector(f.attributes.menu);if(b){b.classList.toggle("show")}a.stopPropagation()};(0,b.default)("."+f.classes.dropdownmoremenu).on("show.bs.dropdown",function(){var b=a.querySelector(f.regions.moredropdown);b.querySelectorAll(".dropdown").forEach(function(a){a.removeEventListener("click",i,!0);a.addEventListener("click",i,!0)})})};a.default=j;return a.default});
|
||||
define ("core/moremenu",["exports","jquery","core/menu_navigation"],function(a,b,c){"use strict";Object.defineProperty(a,"__esModule",{value:!0});a.default=void 0;b=d(b);c=d(c);function d(a){return a&&a.__esModule?a:{default:a}}var f={regions:{moredropdown:"[data-region=\"moredropdown\"]",morebutton:"[data-region=\"morebutton\"]"},classes:{dropdownitem:"dropdown-item",dropdownmoremenu:"dropdownmoremenu",hidden:"d-none",active:"active",nav:"nav",navlink:"nav-link",observed:"observed"},attributes:{menu:"[role=\"menu\"]",dropdowntoggle:"[data-toggle=\"dropdown\"]"}},g=function(a){var b=a.parentNode.offsetHeight+1,c=a.querySelector(f.regions.moredropdown),d=a.querySelector(f.regions.morebutton);if(a.offsetHeight>b){d.classList.remove(f.classes.hidden);var e=Array.from(a.children).reverse();e.forEach(function(c){if(!c.classList.contains(f.classes.dropdownmoremenu)){if(a.offsetHeight>b){var d=a.removeChild(c);h(a,d,!0)}}})}else{if("children"in c){var j=Array.from(c.children);j.forEach(function(d){if(a.offsetHeight<b&&"true"!==d.dataset.forceintomoremenu){var e=c.removeChild(d);i(a,e)}});if(0===j.length){d.classList.add(f.classes.hidden)}}if(a.offsetHeight>b){g(a)}}a.parentNode.classList.add(f.classes.observed)},h=function(a,b){var c=2<arguments.length&&arguments[2]!==void 0?arguments[2]:!1,d=a.querySelector(f.regions.moredropdown),e=a.querySelector(f.attributes.dropdowntoggle),g=b.querySelector("."+f.classes.navlink);if(g.classList.contains(f.classes.active)){e.classList.add(f.classes.active)}g.classList.remove(f.classes.navlink);g.classList.add(f.classes.dropdownitem);if(c){d.prepend(b)}else{d.append(b)}},i=function(a,b){var c=a.querySelector(f.regions.morebutton),d=a.querySelector(f.attributes.dropdowntoggle),e=b.querySelector("."+f.classes.dropdownitem);if(e.classList.contains(f.classes.active)){d.classList.remove(f.classes.active)}e.classList.remove(f.classes.dropdownitem);e.classList.add(f.classes.navlink);a.insertBefore(b,c)},j=function(a){a.firstElementChild.querySelector("[role=\"menuitem\"]").setAttribute("tabindex","0");if("children"in a){var d=a.querySelector(f.regions.morebutton),e=Array.from(a.children);e.forEach(function(b){if(!b.classList.contains(f.classes.dropdownmoremenu)&&"true"===b.dataset.forceintomoremenu){h(a,b,!1);if(d.classList.contains(f.classes.hidden)){d.classList.remove(f.classes.hidden)}}})}g(a);(0,c.default)(a);window.addEventListener("resize",function(){g(a);(0,c.default)(a)});var i=function(a){var b=a.target.parentNode.querySelector(f.attributes.menu);if(b){b.classList.toggle("show")}a.stopPropagation()};(0,b.default)("."+f.classes.dropdownmoremenu).on("show.bs.dropdown",function(){var b=a.querySelector(f.regions.moredropdown);b.querySelectorAll(".dropdown").forEach(function(a){a.removeEventListener("click",i,!0);a.addEventListener("click",i,!0)})})};a.default=j;return a.default});
|
||||
//# sourceMappingURL=moremenu.min.js.map
|
||||
|
File diff suppressed because one or more lines are too long
@ -47,11 +47,39 @@ const clickErrorHandler = (item, fallback) => {
|
||||
};
|
||||
|
||||
/**
|
||||
* Defined event handling so we can remove listeners on nodes on resize etc.
|
||||
* Control classes etc of the selected dropdown item and its' parent <a>
|
||||
*
|
||||
* @param {HTMLElement} src The node within the dropdown the user selected.
|
||||
*/
|
||||
const menuItemHelper = src => {
|
||||
let parent;
|
||||
|
||||
// Handling for dropdown escapes.
|
||||
// A bulk of the handling is already done by aria.js just add polish.
|
||||
if (src.classList.contains('dropdown-item')) {
|
||||
parent = src.closest('.dropdown-menu');
|
||||
parent.previousElementSibling.classList.add('active');
|
||||
} else {
|
||||
parent = src.parentElement.parentElement.querySelector('.dropdown-menu');
|
||||
}
|
||||
// Remove active class from any other dropdown elements.
|
||||
Array.prototype.forEach.call(parent.children, node => {
|
||||
const menuItem = node.querySelector(SELECTORS.menuitem);
|
||||
if (menuItem !== null) {
|
||||
menuItem.classList.remove('active');
|
||||
menuItem.setAttribute('aria-current', 'false');
|
||||
}
|
||||
node.setAttribute('aria-current', 'false');
|
||||
});
|
||||
src.setAttribute('aria-current', 'true');
|
||||
};
|
||||
|
||||
/**
|
||||
* Defined keyboard event handling so we can remove listeners on nodes on resize etc.
|
||||
*
|
||||
* @param {event} e The triggering element and key presses etc.
|
||||
*/
|
||||
const listenerEvents = e => {
|
||||
const keyboardListenerEvents = e => {
|
||||
const src = e.srcElement;
|
||||
const firstNode = e.currentTarget.firstElementChild;
|
||||
const lastNode = findUsableLastNode(e.currentTarget);
|
||||
@ -70,11 +98,7 @@ const listenerEvents = e => {
|
||||
e.keyCode === enter) {
|
||||
e.preventDefault();
|
||||
|
||||
// Remove active class from any other dropdown elements.
|
||||
Array.prototype.forEach.call(src.closest('.dropdown-menu').children, node => {
|
||||
node.querySelector(SELECTORS.menuitem).classList.remove('active');
|
||||
node.setAttribute('aria-current', 'false');
|
||||
});
|
||||
menuItemHelper(src);
|
||||
|
||||
if (!src.parentElement.classList.contains('dropdown')) {
|
||||
src.click();
|
||||
@ -116,14 +140,28 @@ const listenerEvents = e => {
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Defined click event handling so we can remove listeners on nodes on resize etc.
|
||||
*
|
||||
* @param {event} e The triggering element and key presses etc.
|
||||
*/
|
||||
const clickListenerEvents = e => {
|
||||
const src = e.srcElement;
|
||||
menuItemHelper(src);
|
||||
};
|
||||
|
||||
/**
|
||||
* The initial entry point that a given module can pass a HTMLElement.
|
||||
*
|
||||
* @param {HTMLElement} elementRoot The menu to add handlers upon.
|
||||
*/
|
||||
export default elementRoot => {
|
||||
elementRoot.removeEventListener('keydown', listenerEvents);
|
||||
elementRoot.addEventListener('keydown', listenerEvents);
|
||||
// Remove any and all instances of old listeners on the passed element.
|
||||
elementRoot.removeEventListener('keydown', keyboardListenerEvents);
|
||||
elementRoot.removeEventListener('click', clickListenerEvents);
|
||||
// (Re)apply our event listeners to the passed element.
|
||||
elementRoot.addEventListener('keydown', keyboardListenerEvents);
|
||||
elementRoot.addEventListener('click', clickListenerEvents);
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -35,7 +35,6 @@ const Selectors = {
|
||||
classes: {
|
||||
dropdownitem: 'dropdown-item',
|
||||
dropdownmoremenu: 'dropdownmoremenu',
|
||||
dropdowntoggle: 'dropdown-toggle',
|
||||
hidden: 'd-none',
|
||||
active: 'active',
|
||||
nav: 'nav',
|
||||
@ -43,7 +42,8 @@ const Selectors = {
|
||||
observed: 'observed',
|
||||
},
|
||||
attributes: {
|
||||
menu: '[role="menu"]'
|
||||
menu: '[role="menu"]',
|
||||
dropdowntoggle: '[data-toggle="dropdown"]'
|
||||
}
|
||||
};
|
||||
|
||||
@ -116,7 +116,7 @@ const autoCollapse = menu => {
|
||||
*/
|
||||
const moveIntoMoreDropdown = (menu, navNode, prepend = false) => {
|
||||
const moreDropdown = menu.querySelector(Selectors.regions.moredropdown);
|
||||
const dropdownToggle = menu.querySelector('.' + Selectors.classes.dropdowntoggle);
|
||||
const dropdownToggle = menu.querySelector(Selectors.attributes.dropdowntoggle);
|
||||
|
||||
const navLink = navNode.querySelector('.' + Selectors.classes.navlink);
|
||||
// If there are navLinks that contain an active link in the moreDropdown
|
||||
@ -146,7 +146,7 @@ const moveIntoMoreDropdown = (menu, navNode, prepend = false) => {
|
||||
*/
|
||||
const moveOutOfMoreDropdown = (menu, navNode) => {
|
||||
const moreButton = menu.querySelector(Selectors.regions.morebutton);
|
||||
const dropdownToggle = menu.querySelector('.' + Selectors.classes.dropdowntoggle);
|
||||
const dropdownToggle = menu.querySelector(Selectors.attributes.dropdowntoggle);
|
||||
const navLink = navNode.querySelector('.' + Selectors.classes.dropdownitem);
|
||||
|
||||
// Stop displaying the active state on the dropdownToggle if
|
||||
|
@ -212,7 +212,6 @@ class icon_system_fontawesome extends icon_system_font {
|
||||
'core:i/completion_self' => 'fa-user-o',
|
||||
'core:i/contentbank' => 'fa-paint-brush',
|
||||
'core:i/dashboard' => 'fa-tachometer',
|
||||
'core:i/lock' => 'fa-lock',
|
||||
'core:i/categoryevent' => 'fa-cubes',
|
||||
'core:i/course' => 'fa-graduation-cap',
|
||||
'core:i/courseevent' => 'fa-graduation-cap',
|
||||
@ -290,7 +289,7 @@ class icon_system_fontawesome extends icon_system_font {
|
||||
'core:i/news' => 'fa-newspaper-o',
|
||||
'core:i/next' => 'fa-chevron-right',
|
||||
'core:i/nosubcat' => 'fa-plus-square-o',
|
||||
'core:i/notifications' => 'fa-bell',
|
||||
'core:i/notifications' => 'fa-bell-o',
|
||||
'core:i/open' => 'fa-folder-open',
|
||||
'core:i/otherevent' => 'fa-calendar',
|
||||
'core:i/outcomes' => 'fa-tasks',
|
||||
@ -402,7 +401,7 @@ class icon_system_fontawesome extends icon_system_font {
|
||||
'core:t/locktime' => 'fa-lock',
|
||||
'core:t/markasread' => 'fa-check',
|
||||
'core:t/messages' => 'fa-comments',
|
||||
'core:t/message' => 'fa-comment',
|
||||
'core:t/message' => 'fa-comment-o',
|
||||
'core:t/more' => 'fa-caret-down',
|
||||
'core:t/move' => 'fa-arrows-v',
|
||||
'core:t/online' => 'fa-circle',
|
||||
|
@ -30,12 +30,12 @@
|
||||
}
|
||||
}}
|
||||
<header id="page-header" class="row">
|
||||
<div class="col-12 pt-3 pb-3">
|
||||
<div class="card {{^contextheader}}border-0 bg-transparent{{/contextheader}}">
|
||||
<div class="card-body {{^contextheader}}p-2{{/contextheader}}">
|
||||
<div class="col-12 pt-3">
|
||||
<div class="card border-0">
|
||||
<div class="card-body p-2 navigation-card">
|
||||
<div class="d-flex flex-wrap">
|
||||
{{#hasnavbar}}
|
||||
<div id="page-navbar">
|
||||
<div id="page-navbar" class="p-1">
|
||||
{{{navbar}}}
|
||||
</div>
|
||||
{{/hasnavbar}}
|
||||
|
@ -45,7 +45,7 @@
|
||||
"moremenuid": "614c104dbacfa"
|
||||
}
|
||||
}}
|
||||
<nav class="moremenu">
|
||||
<nav class="moremenu navigation">
|
||||
<ul id="moremenu-{{moremenuid}}-{{navbarstyle}}" role="menubar" class="nav more-nav {{navbarstyle}}">
|
||||
{{#nodecollection}}
|
||||
{{#children}}
|
||||
@ -56,16 +56,16 @@
|
||||
{{> core/moremenu_children}}
|
||||
{{/nodearray}}
|
||||
<li role="none" class="nav-item dropdown dropdownmoremenu d-none" data-region="morebutton">
|
||||
<a class="dropdown-toggle nav-link" href="#" id="moremenu-dropdown-{{moremenuid}}" role="menuitem" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" tabindex="-1">
|
||||
<a class="dropdown-toggle nav-link {{#isactive}}active{{/isactive}}" href="#" id="moremenu-dropdown-{{moremenuid}}" role="menuitem" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" tabindex="-1">
|
||||
{{#str}}moremenu, core{{/str}}
|
||||
</a>
|
||||
<ul class="dropdown-menu dropdown-menu-right" data-region="moredropdown" aria-labelledby="moremenu-dropdown-{{moremenuid}}" role="menu">
|
||||
<ul class="dropdown-menu dropdown-menu-left" data-region="moredropdown" aria-labelledby="moremenu-dropdown-{{moremenuid}}" role="menu">
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
{{#js}}
|
||||
require(['core/moremenu'], function(moremenu) {
|
||||
moremenu(document.querySelector('#moremenu-{{moremenuid}}-{{navbarstyle}}'));
|
||||
});
|
||||
require(['core/moremenu'], function(moremenu) {
|
||||
moremenu(document.querySelector('#moremenu-{{moremenuid}}-{{navbarstyle}}'));
|
||||
});
|
||||
{{/js}}
|
||||
|
@ -50,14 +50,14 @@
|
||||
{{^haschildren}}
|
||||
<li class="nav-item" role="none" data-forceintomoremenu="{{#forceintomoremenu}}true{{/forceintomoremenu}}{{^forceintomoremenu}}false{{/forceintomoremenu}}">
|
||||
{{#tab}}
|
||||
<a role="menuitem" class="nav-link {{#isactive}}active{{/isactive}} {{#classes}}{{.}} {{/classes}}" href="{{tab}}" data-toggle="tab" aria-current="false" tabindex="-1">
|
||||
<a role="menuitem" class="nav-link {{#isactive}}active{{/isactive}} {{#classes}}{{.}} {{/classes}}" href="{{tab}}" data-toggle="tab" data-text="{{{text}}}" aria-current="false" tabindex="-1">
|
||||
{{{text}}}
|
||||
</a>
|
||||
{{/tab}}
|
||||
{{^tab}}
|
||||
<a role="menuitem" class="nav-link {{#isactive}}active{{/isactive}} {{#classes}}{{.}} {{/classes}}" href="{{{url}}}{{{action}}}" {{#isactive}}aria-current="true"{{/isactive}} tabindex="-1">
|
||||
{{{text}}}
|
||||
</a>
|
||||
<a role="menuitem" class="nav-link {{#isactive}}active{{/isactive}} {{#classes}}{{.}} {{/classes}}" href="{{{url}}}{{{action}}}" {{#isactive}}aria-current="true"{{/isactive}} tabindex="-1">
|
||||
{{{text}}}
|
||||
</a>
|
||||
{{/tab}}
|
||||
</li>
|
||||
{{/haschildren}}
|
||||
|
@ -37,7 +37,9 @@
|
||||
}
|
||||
}}
|
||||
{{#secondarynavigation}}
|
||||
{{> core/moremenu}}
|
||||
<div class="secondary-navigation">
|
||||
{{> core/moremenu}}
|
||||
</div>
|
||||
{{/secondarynavigation}}
|
||||
{{^secondarynavigation}}
|
||||
<ul class="nav nav-tabs" role="tablist">
|
||||
@ -59,10 +61,9 @@
|
||||
{{/node.children}}
|
||||
</ul>
|
||||
{{/secondarynavigation}}
|
||||
|
||||
<div class="tab-content mt-3">
|
||||
<div class="tab-pane active" id="link{{node.key}}" {{^secondarynavigation}}role="tabpanel"{{/secondarynavigation}}>
|
||||
<div class="container">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
</div>
|
||||
@ -106,7 +107,7 @@
|
||||
{{#node.children}}
|
||||
{{#children.count}}
|
||||
<div class="tab-pane" id="link{{key}}" {{^secondarynavigation}}role="tabpanel"{{/secondarynavigation}}>
|
||||
<div class="container">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
{{#action}}<h4><a href="{{action}}">{{text}}</a></h4>{{/action}}
|
||||
|
@ -46,18 +46,17 @@
|
||||
"userfullname": "Admin User"
|
||||
}
|
||||
}}
|
||||
<span class="usertext mr-1">
|
||||
{{userfullname}}
|
||||
{{#metadata}}
|
||||
<span class="meta {{classes}}">
|
||||
{{#metadata}}
|
||||
<span class="usertext d-flex mr-1">
|
||||
<span class="meta d-flex {{classes}}">
|
||||
{{{content}}}
|
||||
</span>
|
||||
{{/metadata}}
|
||||
</span>
|
||||
<span class="avatars">
|
||||
{{#avatardata}}
|
||||
<span class="avatar {{classes}}">
|
||||
{{{content}}}
|
||||
</span>
|
||||
{{/avatardata}}
|
||||
{{/metadata}}
|
||||
<span class="avatars">
|
||||
{{#avatardata}}
|
||||
<span class="avatar {{classes}}">
|
||||
{{{content}}}
|
||||
</span>
|
||||
{{/avatardata}}
|
||||
</span>
|
||||
|
@ -315,7 +315,7 @@ if ($isnestedv2displaymode) {
|
||||
$settingstrigger = $OUTPUT->render_from_template('mod_forum/settings_drawer_trigger', null);
|
||||
$PAGE->add_header_action($settingstrigger);
|
||||
} else {
|
||||
$PAGE->set_button(forum_search_form($course));
|
||||
$PAGE->add_header_action(forum_search_form($course));
|
||||
}
|
||||
|
||||
echo $OUTPUT->header();
|
||||
|
@ -454,7 +454,7 @@ if ($course->id != SITEID) { // Only real courses have learning forums
|
||||
$PAGE->navbar->add($strforums);
|
||||
$PAGE->set_title("$course->shortname: $strforums");
|
||||
$PAGE->set_heading($course->fullname);
|
||||
$PAGE->set_button($searchform);
|
||||
$PAGE->add_header_action($searchform);
|
||||
echo $OUTPUT->header();
|
||||
|
||||
if (!isguestuser() && isloggedin() && $showsubscriptioncolumns) {
|
||||
|
@ -193,7 +193,7 @@ $rm = new rating_manager();
|
||||
|
||||
$PAGE->set_title($strsearchresults);
|
||||
$PAGE->set_heading($course->fullname);
|
||||
$PAGE->set_button($searchform);
|
||||
$PAGE->add_header_action($searchform);
|
||||
echo $OUTPUT->header();
|
||||
echo '<div class="reportlink">';
|
||||
|
||||
|
@ -105,7 +105,7 @@ $PAGE->set_context($forum->get_context());
|
||||
$PAGE->set_title($forum->get_name());
|
||||
$PAGE->add_body_class('forumtype-' . $forum->get_type());
|
||||
$PAGE->set_heading($course->fullname);
|
||||
$PAGE->set_button(forum_search_form($course, $search));
|
||||
$PAGE->add_header_action(forum_search_form($course, $search));
|
||||
|
||||
if ($istypesingle && $displaymode == FORUM_MODE_NESTED_V2) {
|
||||
$PAGE->add_body_class('nested-v2-display-mode reset-style');
|
||||
|
@ -89,6 +89,7 @@ $PAGE->blocks->add_region('content');
|
||||
$PAGE->set_subpage($currentpage->id);
|
||||
$PAGE->set_title($pagetitle);
|
||||
$PAGE->set_heading($header);
|
||||
$PAGE->has_secondary_navigation_setter(false);
|
||||
|
||||
if (!isguestuser()) { // Skip default home page for guests
|
||||
if (get_home_page() != HOMEPAGE_MY) {
|
||||
|
@ -53,8 +53,7 @@ Feature: Preview a drag-drop marker question
|
||||
And I drag "OU" to "345,230" in the drag and drop markers question
|
||||
And I drag "Railway station" to "262,197" in the drag and drop markers question
|
||||
And I drag "Railway station" to "334,319" in the drag and drop markers question
|
||||
And I change viewport size to "640x640"
|
||||
And I drag "Railway station" to "200,85" in the drag and drop markers question
|
||||
And I drag "Railway station" to "210,105" in the drag and drop markers question
|
||||
And I press "Submit and finish"
|
||||
Then the state of "Please place the markers on the map of Milton Keynes" question is shown as "Correct"
|
||||
And I should see "Mark 1.00 out of 1.00"
|
||||
|
@ -2010,6 +2010,9 @@ img#persona_signin {
|
||||
|
||||
/** Page header */
|
||||
#page-header {
|
||||
h1.h2 {
|
||||
font-weight: bold;
|
||||
}
|
||||
.logo {
|
||||
margin: $spacer 0;
|
||||
img {
|
||||
|
@ -105,17 +105,6 @@ select {
|
||||
font-weight: inherit;
|
||||
}
|
||||
}
|
||||
|
||||
// Style for the forum subscription mode node.
|
||||
.subscriptionmode {
|
||||
color: $body-color;
|
||||
}
|
||||
|
||||
// Style for the currently selected subscription mode.
|
||||
.activesetting {
|
||||
color: $body-color;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
.discussion-settings-container {
|
||||
@ -1063,6 +1052,7 @@ div#dock {
|
||||
}
|
||||
}
|
||||
|
||||
// Usermenu
|
||||
.userloggedinas,
|
||||
.userswitchedrole,
|
||||
.loginfailures {
|
||||
@ -1073,8 +1063,8 @@ div#dock {
|
||||
margin-right: $spacer / 2;
|
||||
height: 35px;
|
||||
.meta {
|
||||
display: block;
|
||||
font-size: $font-size-sm;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
.avatar {
|
||||
|
@ -8,10 +8,50 @@
|
||||
height: $moremenu-height;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border-right: none;
|
||||
border-bottom: solid 3px transparent;
|
||||
border-left: none;
|
||||
border-top: none;
|
||||
@include hover-focus() {
|
||||
@include hover-navbar();
|
||||
}
|
||||
|
||||
&.active {
|
||||
font-weight: bold;
|
||||
border-bottom: solid 3px $blue;
|
||||
}
|
||||
&[data-toggle="tab"] {
|
||||
display: inline-flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
&::after {
|
||||
content: attr(data-text) / "";
|
||||
height: 0;
|
||||
visibility: hidden;
|
||||
overflow: hidden;
|
||||
user-select: none;
|
||||
pointer-events: none;
|
||||
font-weight: bold;
|
||||
|
||||
@media speech {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.nav-tabs {
|
||||
margin-left: 0;
|
||||
background-color: $body-bg;
|
||||
}
|
||||
.show > .nav-link,
|
||||
.active > .nav-link,
|
||||
.nav-link.show,
|
||||
.nav-link.active {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
// Styling for dropdown menus inside the MoreButton.
|
||||
.dropdownmoremenu > .dropdown-menu {
|
||||
& > .dropdown-item {
|
||||
|
@ -1,7 +1,12 @@
|
||||
@mixin hover-navbar {
|
||||
background-color: $gray-200;
|
||||
}
|
||||
|
||||
.navbar.fixed-top {
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
|
||||
box-shadow: none;
|
||||
border-bottom: $gray-300 1px solid;
|
||||
align-items: stretch;
|
||||
height: $navbar-height;
|
||||
|
||||
@ -24,6 +29,10 @@
|
||||
#usernavigation .nav-link {
|
||||
padding: 0 $primary-nav-padding-x;
|
||||
}
|
||||
.login {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.usermenu {
|
||||
display: flex;
|
||||
.action-menu {
|
||||
@ -41,9 +50,6 @@
|
||||
align-items: center;
|
||||
height: 100%;
|
||||
}
|
||||
.dropdown-toggle::after {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
.dropdown-menu {
|
||||
min-width: 235px;
|
||||
@ -90,6 +96,22 @@
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
.usermenu,
|
||||
.langmenu {
|
||||
.dropdown {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 100%;
|
||||
.dropdown-toggle {
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
border-radius: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
.langmenu {
|
||||
.dropdown-menu {
|
||||
.dropdown-item {
|
||||
|
@ -173,6 +173,14 @@ $content-header-footer-height: $region-header-height + $region-footer-height;
|
||||
}
|
||||
}
|
||||
|
||||
.navbar-nav {
|
||||
.popover-region {
|
||||
.icon {
|
||||
font-weight: bolder;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.navbar {
|
||||
.popover-region {
|
||||
&.collapsed {
|
||||
|
@ -1,8 +1,9 @@
|
||||
.navbar.fixed-top {
|
||||
.moremenu {
|
||||
.primary-navigation {
|
||||
.navigation {
|
||||
height: $navbar-height;
|
||||
.nav-link {
|
||||
height: $navbar-height;
|
||||
color: $gray-900;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,9 @@
|
||||
.secondarynavigation {
|
||||
z-index: 1;
|
||||
.moremenu {
|
||||
margin-bottom: -1px;
|
||||
.secondary-navigation {
|
||||
border-top: 1px solid $gray-300;
|
||||
border-bottom: 1px solid $gray-300;
|
||||
.navigation {
|
||||
border-color: $gray-300;
|
||||
height: $moremenu-height;
|
||||
margin-bottom: map-get($spacers, 3);
|
||||
}
|
||||
}
|
||||
|
@ -22,10 +22,10 @@ $state-danger-border: theme-color-level("danger", -9) !default;
|
||||
$primary-nav-padding-y: ($spacer / 4) !default;
|
||||
$primary-nav-padding-x: ($spacer / 2) !default;
|
||||
|
||||
$navbar-height: 50px !default;
|
||||
$navbar-height: 60px !default;
|
||||
$course-content-maxwidth: 800px;
|
||||
|
||||
$box-shadow-drawer-left: -0.25rem .25rem .8rem rgba($black, .025) !default;
|
||||
$box-shadow-drawer-right: 0 .25rem .8rem rgba($black, .025) !default;
|
||||
|
||||
$moremenu-height: 40px !default;
|
||||
$moremenu-height: 60px !default;
|
||||
|
@ -11525,6 +11525,9 @@ img#persona_signin {
|
||||
border-width: 0; }
|
||||
|
||||
/** Page header */
|
||||
#page-header h1.h2 {
|
||||
font-weight: bold; }
|
||||
|
||||
#page-header .logo {
|
||||
margin: 1rem 0; }
|
||||
#page-header .logo img {
|
||||
@ -14452,7 +14455,7 @@ span.editinstructions {
|
||||
|
||||
/* Anchor link offset fix. This makes hash links scroll 60px down to account for the fixed header. */
|
||||
:target {
|
||||
scroll-margin-top: 60px; }
|
||||
scroll-margin-top: 70px; }
|
||||
|
||||
.pagelayout-embedded :target {
|
||||
padding-top: initial;
|
||||
@ -14468,8 +14471,8 @@ span.editinstructions {
|
||||
[data-region="drawer"] {
|
||||
position: fixed;
|
||||
width: 285px;
|
||||
top: 50px;
|
||||
height: calc(100% - 50px);
|
||||
top: 60px;
|
||||
height: calc(100% - 60px);
|
||||
overflow-y: auto;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
z-index: 999;
|
||||
@ -14503,7 +14506,7 @@ span.editinstructions {
|
||||
margin-bottom: 0; }
|
||||
|
||||
#page {
|
||||
margin-top: 50px; }
|
||||
margin-top: 60px; }
|
||||
|
||||
.pagelayout-embedded #page {
|
||||
margin-top: 0; }
|
||||
@ -14536,9 +14539,9 @@ body.drawer-ease {
|
||||
[data-region=right-hand-drawer].drawer {
|
||||
z-index: 1021;
|
||||
position: fixed;
|
||||
top: 50px;
|
||||
top: 60px;
|
||||
right: 0;
|
||||
height: calc(100% - 50px);
|
||||
height: calc(100% - 60px);
|
||||
width: 320px;
|
||||
box-shadow: -2px 2px 4px rgba(0, 0, 0, 0.08);
|
||||
padding: 0;
|
||||
@ -14655,7 +14658,7 @@ body.drawer-ease {
|
||||
|
||||
.drawerheader {
|
||||
padding: 0 0.75rem;
|
||||
height: 50px;
|
||||
height: 60px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border-bottom: 1px solid #dee2e6; }
|
||||
@ -14664,7 +14667,7 @@ body.drawer-ease {
|
||||
|
||||
.drawercontent {
|
||||
position: relative;
|
||||
height: calc(100% - 50px);
|
||||
height: calc(100% - 60px);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-wrap: nowrap;
|
||||
@ -16779,7 +16782,7 @@ body.path-question-type .mform fieldset.hidden {
|
||||
display: flex;
|
||||
background-color: #fff;
|
||||
z-index: 1060;
|
||||
height: 50px; }
|
||||
height: 60px; }
|
||||
.simplesearchform .collapse.show .form-inline,
|
||||
.simplesearchform .collapsing .form-inline {
|
||||
width: auto;
|
||||
@ -17242,13 +17245,6 @@ select {
|
||||
.path-mod-forum .discussion-list .topic {
|
||||
font-weight: inherit; }
|
||||
|
||||
.path-mod-forum .subscriptionmode {
|
||||
color: #212529; }
|
||||
|
||||
.path-mod-forum .activesetting {
|
||||
color: #212529;
|
||||
font-weight: bold; }
|
||||
|
||||
.discussion-settings-container .custom-select {
|
||||
width: 100%; }
|
||||
|
||||
@ -17912,8 +17908,8 @@ div#dock {
|
||||
.userloggedinas .usermenu .usertext .meta,
|
||||
.userswitchedrole .usermenu .usertext .meta,
|
||||
.loginfailures .usermenu .usertext .meta {
|
||||
display: block;
|
||||
font-size: 0.8203125rem; }
|
||||
font-size: 0.8203125rem;
|
||||
align-items: center; }
|
||||
|
||||
.userloggedinas .usermenu .avatar img,
|
||||
.userswitchedrole .usermenu .avatar img,
|
||||
@ -18091,7 +18087,7 @@ div#dock {
|
||||
display: none;
|
||||
position: sticky;
|
||||
justify-content: end;
|
||||
top: 55px;
|
||||
top: 65px;
|
||||
z-index: 1020; }
|
||||
#quiz-timer-wrapper #quiz-timer {
|
||||
border: 1px solid #ca3120;
|
||||
@ -19143,7 +19139,7 @@ body:not(.jsenabled) .langmenu:hover > .dropdown-menu,
|
||||
overflow-y: auto; }
|
||||
|
||||
.navbar.fixed-top .dropdown .dropdown-menu {
|
||||
max-height: calc(100vh - 50px);
|
||||
max-height: calc(100vh - 60px);
|
||||
overflow-y: auto; }
|
||||
|
||||
.page-item.active .page-link, .page-item.active .page-link:hover, .page-item.active .page-link:focus {
|
||||
@ -19444,6 +19440,9 @@ body {
|
||||
.popover-region-content-container.loading .empty-message {
|
||||
display: none; }
|
||||
|
||||
.navbar-nav .popover-region .icon {
|
||||
font-weight: bolder; }
|
||||
|
||||
.navbar .popover-region.collapsed .popover-region-container {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
@ -19463,7 +19462,7 @@ body {
|
||||
right: 0; }
|
||||
|
||||
.navbar .popover-region-container {
|
||||
top: calc(50px - (1rem / 2)); }
|
||||
top: calc(60px - (1rem / 2)); }
|
||||
|
||||
.content-item-container {
|
||||
width: 100%;
|
||||
@ -19790,7 +19789,7 @@ span[data-flexitour="container"][x-placement="right"], span[data-flexitour="cont
|
||||
font-size: 4em; }
|
||||
|
||||
#page.drawers {
|
||||
margin-top: calc(50px + 2rem);
|
||||
margin-top: calc(60px + 2rem);
|
||||
padding-left: 15px;
|
||||
padding-right: 15px; }
|
||||
#page.drawers .main-inner {
|
||||
@ -19804,7 +19803,7 @@ span[data-flexitour="container"][x-placement="right"], span[data-flexitour="cont
|
||||
|
||||
.drawer-left-toggle {
|
||||
position: fixed;
|
||||
top: calc(50px + 0.5rem);
|
||||
top: calc(60px + 0.5rem);
|
||||
left: 0;
|
||||
z-index: 2; }
|
||||
.drawer-left-toggle .btn {
|
||||
@ -19823,7 +19822,7 @@ span[data-flexitour="container"][x-placement="right"], span[data-flexitour="cont
|
||||
|
||||
.drawer-right-toggle {
|
||||
position: fixed;
|
||||
top: calc(50px + 0.5rem);
|
||||
top: calc(60px + 0.5rem);
|
||||
right: 0;
|
||||
z-index: 2; }
|
||||
.drawer-right-toggle .btn {
|
||||
@ -19857,21 +19856,21 @@ span[data-flexitour="container"][x-placement="right"], span[data-flexitour="cont
|
||||
|
||||
@media (min-width: 768px) {
|
||||
#page.drawers {
|
||||
margin-top: 50px;
|
||||
margin-top: 60px;
|
||||
padding-left: 3rem;
|
||||
padding-right: 3rem; } }
|
||||
|
||||
@media (min-width: 992px) {
|
||||
.drawer-left,
|
||||
.drawer-right {
|
||||
top: calc(50px + 1px);
|
||||
height: calc(100vh - 50px); }
|
||||
top: calc(60px + 1px);
|
||||
height: calc(100vh - 60px); }
|
||||
#page.drawers {
|
||||
position: relative;
|
||||
overflow-y: auto;
|
||||
transition: 0.2s;
|
||||
height: calc(100vh - 50px);
|
||||
margin-top: 50px;
|
||||
height: calc(100vh - 60px);
|
||||
margin-top: 60px;
|
||||
left: 0;
|
||||
right: 0; }
|
||||
#page.drawers.show-drawer-left {
|
||||
@ -20331,11 +20330,12 @@ div.editor_atto_toolbar button .icon {
|
||||
.navbar.fixed-top {
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
|
||||
box-shadow: none;
|
||||
border-bottom: #dee2e6 1px solid;
|
||||
align-items: stretch;
|
||||
height: 50px; }
|
||||
height: 60px; }
|
||||
.navbar.fixed-top .navbar-brand .logo {
|
||||
max-height: calc(50px - (0.25rem * 2)); }
|
||||
max-height: calc(60px - (0.25rem * 2)); }
|
||||
.navbar.fixed-top .nav-link {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
@ -20346,6 +20346,9 @@ div.editor_atto_toolbar button .icon {
|
||||
background-color: #dee2e6; }
|
||||
.navbar.fixed-top #usernavigation .nav-link {
|
||||
padding: 0 0.5rem; }
|
||||
.navbar.fixed-top .login {
|
||||
display: flex;
|
||||
align-items: center; }
|
||||
.navbar.fixed-top .usermenu {
|
||||
display: flex; }
|
||||
.navbar.fixed-top .usermenu .action-menu {
|
||||
@ -20361,8 +20364,6 @@ div.editor_atto_toolbar button .icon {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 100%; }
|
||||
.navbar.fixed-top .usermenu .dropdown .dropdown-toggle::after {
|
||||
display: none; }
|
||||
.navbar.fixed-top .usermenu .dropdown-menu {
|
||||
min-width: 235px; }
|
||||
.navbar.fixed-top .usermenu .dropdown-menu .carousel-navigation-link > * {
|
||||
@ -20391,6 +20392,19 @@ div.editor_atto_toolbar button .icon {
|
||||
.navbar.fixed-top .usermenu .login {
|
||||
display: flex;
|
||||
align-items: center; }
|
||||
.navbar.fixed-top .usermenu .dropdown,
|
||||
.navbar.fixed-top .langmenu .dropdown {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 100%; }
|
||||
.navbar.fixed-top .usermenu .dropdown .dropdown-toggle,
|
||||
.navbar.fixed-top .langmenu .dropdown .dropdown-toggle {
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
border-radius: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 100%; }
|
||||
.navbar.fixed-top .langmenu .dropdown-menu .dropdown-item[aria-current="true"]::before {
|
||||
content: "\f00c";
|
||||
font-size: 0.75rem;
|
||||
@ -20416,7 +20430,7 @@ div.editor_atto_toolbar button .icon {
|
||||
transform: translateX(100%); }
|
||||
|
||||
#page {
|
||||
margin-top: 50px; }
|
||||
margin-top: 60px; }
|
||||
|
||||
/* Rportbuilder */
|
||||
.reportbuilder-table-wrapper .filters-dropdown {
|
||||
@ -20509,15 +20523,46 @@ div.editor_atto_toolbar button .icon {
|
||||
|
||||
.moremenu {
|
||||
opacity: 0;
|
||||
height: 40px; }
|
||||
height: 60px; }
|
||||
.moremenu.observed {
|
||||
opacity: 1; }
|
||||
.moremenu .nav-link {
|
||||
height: 40px;
|
||||
height: 60px;
|
||||
display: flex;
|
||||
align-items: center; }
|
||||
align-items: center;
|
||||
border-right: none;
|
||||
border-bottom: solid 3px transparent;
|
||||
border-left: none;
|
||||
border-top: none; }
|
||||
.moremenu .nav-link:hover, .moremenu .nav-link:focus {
|
||||
background-color: #e9ecef; }
|
||||
.moremenu .nav-link.active {
|
||||
font-weight: bold;
|
||||
border-bottom: solid 3px #0f6fc5; }
|
||||
.moremenu .nav-link[data-toggle="tab"] {
|
||||
display: inline-flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center; }
|
||||
.moremenu .nav-link[data-toggle="tab"]::after {
|
||||
content: attr(data-text)/"";
|
||||
height: 0;
|
||||
visibility: hidden;
|
||||
overflow: hidden;
|
||||
user-select: none;
|
||||
pointer-events: none;
|
||||
font-weight: bold; }
|
||||
@media speech {
|
||||
.moremenu .nav-link[data-toggle="tab"]::after {
|
||||
display: none; } }
|
||||
.moremenu .nav-tabs {
|
||||
margin-left: 0; }
|
||||
margin-left: 0;
|
||||
background-color: #fff; }
|
||||
.moremenu .show > .nav-link,
|
||||
.moremenu .active > .nav-link,
|
||||
.moremenu .nav-link.show,
|
||||
.moremenu .nav-link.active {
|
||||
background: transparent; }
|
||||
.moremenu .dropdownmoremenu > .dropdown-menu > .dropdown-item {
|
||||
padding: 0; }
|
||||
.moremenu .dropdownmoremenu > .dropdown-menu .dropdown-menu {
|
||||
@ -20534,15 +20579,19 @@ div.editor_atto_toolbar button .icon {
|
||||
.moremenu .dropdownmoremenu > .dropdown-menu .dropdown-menu .dropdown-divider {
|
||||
display: none; }
|
||||
|
||||
.navbar.fixed-top .moremenu {
|
||||
height: 50px; }
|
||||
.navbar.fixed-top .moremenu .nav-link {
|
||||
height: 50px; }
|
||||
.primary-navigation .navigation {
|
||||
height: 60px; }
|
||||
.primary-navigation .navigation .nav-link {
|
||||
height: 60px;
|
||||
color: #212529; }
|
||||
|
||||
.secondarynavigation {
|
||||
z-index: 1; }
|
||||
.secondarynavigation .moremenu {
|
||||
margin-bottom: -1px; }
|
||||
.secondary-navigation {
|
||||
border-top: 1px solid #dee2e6;
|
||||
border-bottom: 1px solid #dee2e6; }
|
||||
.secondary-navigation .navigation {
|
||||
border-color: #dee2e6;
|
||||
height: 60px;
|
||||
margin-bottom: 1rem; }
|
||||
|
||||
body {
|
||||
-webkit-font-smoothing: antialiased;
|
||||
|
@ -62,11 +62,11 @@
|
||||
|
||||
<div id="page" class="container-fluid d-print-block">
|
||||
{{{ output.full_header }}}
|
||||
<div class="secondarynavigation">
|
||||
{{#secondarymoremenu}}
|
||||
{{> core/moremenu}}
|
||||
<div class="secondary-navigation">
|
||||
{{> core/moremenu}}
|
||||
</div>
|
||||
{{/secondarymoremenu}}
|
||||
</div>
|
||||
<div id="page-content" class="row pb-3 d-print-block">
|
||||
<div id="region-main-box" class="col-12">
|
||||
{{#hasregionmainsettingsmenu}}
|
||||
|
@ -111,11 +111,11 @@
|
||||
{{/hasblocks}}
|
||||
</div>
|
||||
{{{ output.full_header }}}
|
||||
<div class="secondarynavigation">
|
||||
{{#secondarymoremenu}}
|
||||
{{#secondarymoremenu}}
|
||||
<div class="secondary-navigation">
|
||||
{{> core/moremenu}}
|
||||
{{/secondarymoremenu}}
|
||||
</div>
|
||||
</div>
|
||||
{{/secondarymoremenu}}
|
||||
<div id="page-content" class="pb-3 d-print-block">
|
||||
<div id="region-main-box">
|
||||
{{#hasregionmainsettingsmenu}}
|
||||
|
@ -29,7 +29,7 @@
|
||||
}
|
||||
}}
|
||||
<nav class="navbar fixed-top navbar-light bg-white navbar-expand" aria-label="{{#str}}sitemenubar, admin{{/str}}">
|
||||
<div class="navbar-brand d-flex align-items-center m-1 p-0 aabtn">
|
||||
<div class="navbar-brand d-flex align-items-center m-0 p-0 aabtn">
|
||||
{{# output.should_display_navbar_logo }}
|
||||
<img src="{{output.get_compact_logo_url}}" class="logo mr-1" alt="{{sitename}}">
|
||||
{{/ output.should_display_navbar_logo }}
|
||||
|
@ -46,14 +46,18 @@
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<a href="{{{ config.wwwroot }}}" class="navbar-brand d-flex align-items-center m-1 p-0 aabtn">
|
||||
<a href="{{{ config.wwwroot }}}" class="navbar-brand d-flex align-items-center m-0 p-0 aabtn">
|
||||
{{# output.should_display_navbar_logo }}
|
||||
<img src="{{output.get_compact_logo_url}}" class="logo mr-1" alt="{{sitename}}">
|
||||
{{/ output.should_display_navbar_logo }}
|
||||
{{{ sitename }}}
|
||||
{{^ output.should_display_navbar_logo }}
|
||||
{{{ sitename }}}
|
||||
{{/ output.should_display_navbar_logo }}
|
||||
</a>
|
||||
{{#primarymoremenu}}
|
||||
{{> core/moremenu }}
|
||||
<div class="primary-navigation">
|
||||
{{> core/moremenu}}
|
||||
</div>
|
||||
{{/primarymoremenu}}
|
||||
|
||||
<ul class="navbar-nav d-none d-md-flex my-1 px-1">
|
||||
@ -61,11 +65,10 @@
|
||||
{{{ output.page_heading_menu }}}
|
||||
</ul>
|
||||
|
||||
<div id="usernavigation" class="navbar-nav my-1 ml-auto">
|
||||
<div id="usernavigation" class="navbar-nav ml-auto">
|
||||
{{#langmenu}}
|
||||
{{> theme_boost/language_menu }}
|
||||
{{/langmenu}}
|
||||
<div class="divider border-left h-50 align-self-center mx-1"></div>
|
||||
{{{ output.search_box }}}
|
||||
{{{ output.navbar_plugin_output }}}
|
||||
<div class="d-flex align-items-stretch usermenu-container" data-region="usermenu">
|
||||
@ -73,6 +76,7 @@
|
||||
{{> core/user_menu }}
|
||||
{{/usermenu}}
|
||||
</div>
|
||||
<div class="divider border-left h-75 align-self-center ml-1 mr-3"></div>
|
||||
{{{ output.edit_switch }}}
|
||||
</div>
|
||||
</nav>
|
||||
|
@ -2,3 +2,6 @@
|
||||
|
||||
// Disable the Boost theme reset styling and fixed width content.
|
||||
$allow-reset-style: false;
|
||||
|
||||
$navbar-height: 50px;
|
||||
$moremenu-height: 50px;
|
||||
|
@ -1,2 +1,19 @@
|
||||
// Import Boost Core moodle CSS
|
||||
@import "../../boost/scss/moodle";
|
||||
@import "../../boost/scss/moodle";
|
||||
|
||||
img.userpicture {
|
||||
margin-right: 0.5rem;
|
||||
}
|
||||
|
||||
.path-mod-forum {
|
||||
// Style for the forum subscription mode node.
|
||||
.subscriptionmode {
|
||||
color: $body-color;
|
||||
}
|
||||
|
||||
// Style for the currently selected subscription mode.
|
||||
.activesetting {
|
||||
color: $body-color;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
@ -11525,6 +11525,9 @@ img#persona_signin {
|
||||
border-width: 0; }
|
||||
|
||||
/** Page header */
|
||||
#page-header h1.h2 {
|
||||
font-weight: bold; }
|
||||
|
||||
#page-header .logo {
|
||||
margin: 1rem 0; }
|
||||
#page-header .logo img {
|
||||
@ -17242,13 +17245,6 @@ select {
|
||||
.path-mod-forum .discussion-list .topic {
|
||||
font-weight: inherit; }
|
||||
|
||||
.path-mod-forum .subscriptionmode {
|
||||
color: #212529; }
|
||||
|
||||
.path-mod-forum .activesetting {
|
||||
color: #212529;
|
||||
font-weight: bold; }
|
||||
|
||||
.discussion-settings-container .custom-select {
|
||||
width: 100%; }
|
||||
|
||||
@ -17912,8 +17908,8 @@ div#dock {
|
||||
.userloggedinas .usermenu .usertext .meta,
|
||||
.userswitchedrole .usermenu .usertext .meta,
|
||||
.loginfailures .usermenu .usertext .meta {
|
||||
display: block;
|
||||
font-size: 0.8203125rem; }
|
||||
font-size: 0.8203125rem;
|
||||
align-items: center; }
|
||||
|
||||
.userloggedinas .usermenu .avatar img,
|
||||
.userswitchedrole .usermenu .avatar img,
|
||||
@ -19390,6 +19386,9 @@ body {
|
||||
.popover-region-content-container.loading .empty-message {
|
||||
display: none; }
|
||||
|
||||
.navbar-nav .popover-region .icon {
|
||||
font-weight: bolder; }
|
||||
|
||||
.navbar .popover-region.collapsed .popover-region-container {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
@ -20277,7 +20276,8 @@ div.editor_atto_toolbar button .icon {
|
||||
.navbar.fixed-top {
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
|
||||
box-shadow: none;
|
||||
border-bottom: #dee2e6 1px solid;
|
||||
align-items: stretch;
|
||||
height: 50px; }
|
||||
.navbar.fixed-top .navbar-brand .logo {
|
||||
@ -20292,6 +20292,9 @@ div.editor_atto_toolbar button .icon {
|
||||
background-color: #dee2e6; }
|
||||
.navbar.fixed-top #usernavigation .nav-link {
|
||||
padding: 0 0.5rem; }
|
||||
.navbar.fixed-top .login {
|
||||
display: flex;
|
||||
align-items: center; }
|
||||
.navbar.fixed-top .usermenu {
|
||||
display: flex; }
|
||||
.navbar.fixed-top .usermenu .action-menu {
|
||||
@ -20307,8 +20310,6 @@ div.editor_atto_toolbar button .icon {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 100%; }
|
||||
.navbar.fixed-top .usermenu .dropdown .dropdown-toggle::after {
|
||||
display: none; }
|
||||
.navbar.fixed-top .usermenu .dropdown-menu {
|
||||
min-width: 235px; }
|
||||
.navbar.fixed-top .usermenu .dropdown-menu .carousel-navigation-link > * {
|
||||
@ -20337,6 +20338,19 @@ div.editor_atto_toolbar button .icon {
|
||||
.navbar.fixed-top .usermenu .login {
|
||||
display: flex;
|
||||
align-items: center; }
|
||||
.navbar.fixed-top .usermenu .dropdown,
|
||||
.navbar.fixed-top .langmenu .dropdown {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 100%; }
|
||||
.navbar.fixed-top .usermenu .dropdown .dropdown-toggle,
|
||||
.navbar.fixed-top .langmenu .dropdown .dropdown-toggle {
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
border-radius: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 100%; }
|
||||
.navbar.fixed-top .langmenu .dropdown-menu .dropdown-item[aria-current="true"]::before {
|
||||
content: "\f00c";
|
||||
font-size: 0.75rem;
|
||||
@ -20455,15 +20469,46 @@ div.editor_atto_toolbar button .icon {
|
||||
|
||||
.moremenu {
|
||||
opacity: 0;
|
||||
height: 40px; }
|
||||
height: 50px; }
|
||||
.moremenu.observed {
|
||||
opacity: 1; }
|
||||
.moremenu .nav-link {
|
||||
height: 40px;
|
||||
height: 50px;
|
||||
display: flex;
|
||||
align-items: center; }
|
||||
align-items: center;
|
||||
border-right: none;
|
||||
border-bottom: solid 3px transparent;
|
||||
border-left: none;
|
||||
border-top: none; }
|
||||
.moremenu .nav-link:hover, .moremenu .nav-link:focus {
|
||||
background-color: #e9ecef; }
|
||||
.moremenu .nav-link.active {
|
||||
font-weight: bold;
|
||||
border-bottom: solid 3px #0f6fc5; }
|
||||
.moremenu .nav-link[data-toggle="tab"] {
|
||||
display: inline-flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center; }
|
||||
.moremenu .nav-link[data-toggle="tab"]::after {
|
||||
content: attr(data-text)/"";
|
||||
height: 0;
|
||||
visibility: hidden;
|
||||
overflow: hidden;
|
||||
user-select: none;
|
||||
pointer-events: none;
|
||||
font-weight: bold; }
|
||||
@media speech {
|
||||
.moremenu .nav-link[data-toggle="tab"]::after {
|
||||
display: none; } }
|
||||
.moremenu .nav-tabs {
|
||||
margin-left: 0; }
|
||||
margin-left: 0;
|
||||
background-color: #fff; }
|
||||
.moremenu .show > .nav-link,
|
||||
.moremenu .active > .nav-link,
|
||||
.moremenu .nav-link.show,
|
||||
.moremenu .nav-link.active {
|
||||
background: transparent; }
|
||||
.moremenu .dropdownmoremenu > .dropdown-menu > .dropdown-item {
|
||||
padding: 0; }
|
||||
.moremenu .dropdownmoremenu > .dropdown-menu .dropdown-menu {
|
||||
@ -20480,15 +20525,19 @@ div.editor_atto_toolbar button .icon {
|
||||
.moremenu .dropdownmoremenu > .dropdown-menu .dropdown-menu .dropdown-divider {
|
||||
display: none; }
|
||||
|
||||
.navbar.fixed-top .moremenu {
|
||||
.primary-navigation .navigation {
|
||||
height: 50px; }
|
||||
.navbar.fixed-top .moremenu .nav-link {
|
||||
height: 50px; }
|
||||
.primary-navigation .navigation .nav-link {
|
||||
height: 50px;
|
||||
color: #212529; }
|
||||
|
||||
.secondarynavigation {
|
||||
z-index: 1; }
|
||||
.secondarynavigation .moremenu {
|
||||
margin-bottom: -1px; }
|
||||
.secondary-navigation {
|
||||
border-top: 1px solid #dee2e6;
|
||||
border-bottom: 1px solid #dee2e6; }
|
||||
.secondary-navigation .navigation {
|
||||
border-color: #dee2e6;
|
||||
height: 50px;
|
||||
margin-bottom: 1rem; }
|
||||
|
||||
body {
|
||||
-webkit-font-smoothing: antialiased;
|
||||
|
@ -51,8 +51,7 @@ Feature: Users' names are displayed across the site according to the user policy
|
||||
Scenario: As an authenticated user, 'fullnamedisplay' should be used in the navigation and when viewing my profile
|
||||
Given I log in as "user1"
|
||||
When I follow "Profile" in the user menu
|
||||
Then I should see "Gronya,Beecham" in the ".usermenu" "css_element"
|
||||
And I should see "Gronya,Beecham" in the ".page-context-header" "css_element"
|
||||
Then I should see "Gronya,Beecham" in the ".page-context-header" "css_element"
|
||||
And I should see "You are logged in as Gronya,Beecham" in the "page-footer" "region"
|
||||
And I log out
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user