mirror of
https://github.com/moodle/moodle.git
synced 2025-08-03 08:09:47 +02:00
Merge branch 'MDL-67683-main' of https://github.com/junpataleta/moodle
This commit is contained in:
commit
d8dbb53c36
23 changed files with 120 additions and 92 deletions
|
@ -55,12 +55,13 @@ Feature: Authentication
|
||||||
And the page should meet accessibility standards with "wcag131, wcag141, wcag412" extra tests
|
And the page should meet accessibility standards with "wcag131, wcag141, wcag412" extra tests
|
||||||
|
|
||||||
@javascript @accessibility
|
@javascript @accessibility
|
||||||
Scenario: The login page must have sufficient colour contrast
|
Scenario: The login page must meet accessibility standards
|
||||||
Given the following config values are set as admin:
|
Given the following config values are set as admin:
|
||||||
| custommenuitems | -This is a custom item\|/customurl/ |
|
| custommenuitems | -This is a custom item\|/customurl/ |
|
||||||
When I am on site homepage
|
When I am on site homepage
|
||||||
Then the page should meet "wcag143" accessibility standards
|
Then the page should meet accessibility standards with "best-practice" extra tests
|
||||||
And the page should meet accessibility standards with "wcag143" extra tests
|
And I follow "Log in"
|
||||||
|
And the page should meet accessibility standards with "best-practice" extra tests
|
||||||
|
|
||||||
Scenario: Alternate login URL can be bypassed
|
Scenario: Alternate login URL can be bypassed
|
||||||
Given the following config values are set as admin:
|
Given the following config values are set as admin:
|
||||||
|
|
|
@ -46,12 +46,14 @@ Feature: Test if the login form provides the correct feedback
|
||||||
And I follow "Log in"
|
And I follow "Log in"
|
||||||
Then I should see "Lorem ipsum dolor sit amet"
|
Then I should see "Lorem ipsum dolor sit amet"
|
||||||
|
|
||||||
|
@javascript @accessibility
|
||||||
Scenario: Show the maintenance mode message
|
Scenario: Show the maintenance mode message
|
||||||
Given the following config values are set as admin:
|
Given the following config values are set as admin:
|
||||||
| maintenance_enabled | Disabled |
|
| maintenance_enabled | 1 |
|
||||||
| maintenance_message | Back online tomorrow |
|
| maintenance_message | Back online tomorrow |
|
||||||
And I follow "Log in"
|
And I follow "Log in"
|
||||||
Then I should see "Back online tomorrow"
|
Then I should see "Back online tomorrow"
|
||||||
|
And the page should meet accessibility standards with "best-practice" extra tests
|
||||||
|
|
||||||
Scenario: User self registration
|
Scenario: User self registration
|
||||||
Given the following config values are set as admin:
|
Given the following config values are set as admin:
|
||||||
|
|
|
@ -446,8 +446,11 @@ class block_base {
|
||||||
$attributes = array(
|
$attributes = array(
|
||||||
'id' => 'inst' . $this->instance->id,
|
'id' => 'inst' . $this->instance->id,
|
||||||
'class' => 'block_' . $this->name() . ' block',
|
'class' => 'block_' . $this->name() . ' block',
|
||||||
'role' => $this->get_aria_role()
|
|
||||||
);
|
);
|
||||||
|
$ariarole = $this->get_aria_role();
|
||||||
|
if ($ariarole) {
|
||||||
|
$attributes['role'] = $ariarole;
|
||||||
|
}
|
||||||
if ($this->hide_header()) {
|
if ($this->hide_header()) {
|
||||||
$attributes['class'] .= ' no-header';
|
$attributes['class'] .= ' no-header';
|
||||||
}
|
}
|
||||||
|
@ -739,20 +742,19 @@ EOD;
|
||||||
* a landmark child.
|
* a landmark child.
|
||||||
*
|
*
|
||||||
* Options are as follows:
|
* Options are as follows:
|
||||||
|
* - application
|
||||||
* - landmark
|
* - landmark
|
||||||
* - application
|
|
||||||
* - banner
|
|
||||||
* - complementary
|
|
||||||
* - contentinfo
|
|
||||||
* - form
|
* - form
|
||||||
* - main
|
|
||||||
* - navigation
|
* - navigation
|
||||||
* - search
|
* - search
|
||||||
*
|
*
|
||||||
|
* Please do not use top-level landmark roles such as 'banner', 'complementary', 'contentinfo', or 'main'. Read more at
|
||||||
|
* {@link https://www.w3.org/WAI/ARIA/apg/practices/landmark-regions/ ARIA Authoring Practices Guide - Landmark Regions}
|
||||||
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function get_aria_role() {
|
public function get_aria_role() {
|
||||||
return 'complementary';
|
return 'region';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -222,6 +222,8 @@ $string['block'] = 'Block';
|
||||||
$string['blockconfiga'] = 'Configuring a {$a} block';
|
$string['blockconfiga'] = 'Configuring a {$a} block';
|
||||||
$string['blockconfigbad'] = 'This block has not been implemented correctly and thus cannot provide a configuration interface.';
|
$string['blockconfigbad'] = 'This block has not been implemented correctly and thus cannot provide a configuration interface.';
|
||||||
$string['blocks'] = 'Blocks';
|
$string['blocks'] = 'Blocks';
|
||||||
|
$string['blocks_main'] = 'Main content blocks';
|
||||||
|
$string['blocks_supplementary'] = 'Supplementary blocks';
|
||||||
$string['blocksaddedit'] = 'Add/Edit blocks';
|
$string['blocksaddedit'] = 'Add/Edit blocks';
|
||||||
$string['blockseditoff'] = 'Blocks editing off';
|
$string['blockseditoff'] = 'Blocks editing off';
|
||||||
$string['blocksediton'] = 'Blocks editing on';
|
$string['blocksediton'] = 'Blocks editing on';
|
||||||
|
|
|
@ -1504,7 +1504,7 @@ class core_renderer extends renderer_base {
|
||||||
$context->skiptitle = strip_tags($bc->title);
|
$context->skiptitle = strip_tags($bc->title);
|
||||||
$context->showskiplink = !empty($context->skiptitle);
|
$context->showskiplink = !empty($context->skiptitle);
|
||||||
$context->arialabel = $bc->arialabel;
|
$context->arialabel = $bc->arialabel;
|
||||||
$context->ariarole = !empty($bc->attributes['role']) ? $bc->attributes['role'] : 'complementary';
|
$context->ariarole = !empty($bc->attributes['role']) ? $bc->attributes['role'] : '';
|
||||||
$context->class = $bc->attributes['class'];
|
$context->class = $bc->attributes['class'];
|
||||||
$context->type = $bc->attributes['data-block'];
|
$context->type = $bc->attributes['data-block'];
|
||||||
$context->title = $bc->title;
|
$context->title = $bc->title;
|
||||||
|
@ -3817,6 +3817,7 @@ EOD;
|
||||||
*/
|
*/
|
||||||
public function blocks($region, $classes = [], $tag = 'aside', $fakeblocksonly = false) {
|
public function blocks($region, $classes = [], $tag = 'aside', $fakeblocksonly = false) {
|
||||||
$displayregion = $this->page->apply_theme_region_manipulations($region);
|
$displayregion = $this->page->apply_theme_region_manipulations($region);
|
||||||
|
$headingid = $displayregion . '-block-region-heading';
|
||||||
$classes = (array)$classes;
|
$classes = (array)$classes;
|
||||||
$classes[] = 'block-region';
|
$classes[] = 'block-region';
|
||||||
$attributes = [
|
$attributes = [
|
||||||
|
@ -3824,12 +3825,23 @@ EOD;
|
||||||
'class' => join(' ', $classes),
|
'class' => join(' ', $classes),
|
||||||
'data-blockregion' => $displayregion,
|
'data-blockregion' => $displayregion,
|
||||||
'data-droptarget' => '1',
|
'data-droptarget' => '1',
|
||||||
|
'aria-labelledby' => $headingid,
|
||||||
];
|
];
|
||||||
|
// Generate an appropriate heading to uniquely identify the block region.
|
||||||
|
$blocksheading = match ($displayregion) {
|
||||||
|
'side-post' => get_string('blocks_supplementary'),
|
||||||
|
'content' => get_string('blocks_main'),
|
||||||
|
default => get_string('blocks'),
|
||||||
|
};
|
||||||
|
$content = html_writer::tag('h2', $blocksheading, ['class' => 'visually-hidden', 'id' => $headingid]);
|
||||||
if ($this->page->blocks->region_has_content($displayregion, $this)) {
|
if ($this->page->blocks->region_has_content($displayregion, $this)) {
|
||||||
$content = html_writer::tag('h2', get_string('blocks'), ['class' => 'visually-hidden']) .
|
$content .= $this->blocks_for_region($displayregion, $fakeblocksonly);
|
||||||
$this->blocks_for_region($displayregion, $fakeblocksonly);
|
}
|
||||||
} else {
|
// Given that <aside> has a default role of a complementary landmark and is supposed to be a top-level landmark,
|
||||||
$content = html_writer::tag('h2', get_string('blocks'), ['class' => 'visually-hidden']);
|
// blocks rendered as part of the main content should not have a complementary role and should be rendered in a more generic
|
||||||
|
// container.
|
||||||
|
if ($displayregion === 'content' && $tag === 'aside') {
|
||||||
|
$tag = 'section';
|
||||||
}
|
}
|
||||||
return html_writer::tag($tag, $content, $attributes);
|
return html_writer::tag($tag, $content, $attributes);
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
"class": "block block_html",
|
"class": "block block_html",
|
||||||
"showskiplink": true,
|
"showskiplink": true,
|
||||||
"type": "html",
|
"type": "html",
|
||||||
"ariarole": "complementary",
|
"ariarole": "",
|
||||||
"title": "Test block",
|
"title": "Test block",
|
||||||
"blockinstanceid": 1,
|
"blockinstanceid": 1,
|
||||||
"content": "<p>Hello block world!</p>"
|
"content": "<p>Hello block world!</p>"
|
||||||
|
@ -22,7 +22,7 @@
|
||||||
{{! Start Block Container }}
|
{{! Start Block Container }}
|
||||||
<section id="{{id}}"
|
<section id="{{id}}"
|
||||||
class="{{#hidden}}hidden{{/hidden}} {{class}} {{#hascontrols}}block_with_controls{{/hascontrols}} card mb-3"
|
class="{{#hidden}}hidden{{/hidden}} {{class}} {{#hascontrols}}block_with_controls{{/hascontrols}} card mb-3"
|
||||||
role="{{ariarole}}"
|
{{#ariarole}}role="{{.}}"{{/ariarole}}
|
||||||
data-block="{{type}}"
|
data-block="{{type}}"
|
||||||
data-instance-id="{{blockinstanceid}}"
|
data-instance-id="{{blockinstanceid}}"
|
||||||
{{#arialabel}}
|
{{#arialabel}}
|
||||||
|
|
|
@ -1168,7 +1168,7 @@ class behat_navigation extends behat_base {
|
||||||
protected function select_on_administration_page($nodelist) {
|
protected function select_on_administration_page($nodelist) {
|
||||||
$parentnodes = $nodelist;
|
$parentnodes = $nodelist;
|
||||||
$lastnode = array_pop($parentnodes);
|
$lastnode = array_pop($parentnodes);
|
||||||
$xpath = '//section[@id=\'region-main\']';
|
$xpath = '//div[@id=\'region-main\']';
|
||||||
|
|
||||||
// Check if there is a separate tab for this submenu of the page. If found go to it.
|
// Check if there is a separate tab for this submenu of the page. If found go to it.
|
||||||
if ($parentnodes) {
|
if ($parentnodes) {
|
||||||
|
|
|
@ -36,3 +36,9 @@ Feature: Page displaying with secure layout
|
||||||
And I am on "Course 1" course homepage
|
And I am on "Course 1" course homepage
|
||||||
When I follow "Fixture link"
|
When I follow "Fixture link"
|
||||||
Then I should not see "This is a custom item" in the "nav" "css_element"
|
Then I should not see "This is a custom item" in the "nav" "css_element"
|
||||||
|
|
||||||
|
@javascript @accessibility
|
||||||
|
Scenario: A page on the secure layout meets the accessibility standards
|
||||||
|
Given I am on the "C1" "Course" page logged in as "admin"
|
||||||
|
When I follow "Fixture link"
|
||||||
|
Then the page should meet accessibility standards with "best-practice" extra tests
|
||||||
|
|
3
lib/tests/fixtures/securetestpage.php
vendored
3
lib/tests/fixtures/securetestpage.php
vendored
|
@ -29,6 +29,9 @@ defined('BEHAT_SITE_RUNNING') || die('Only available on Behat test server');
|
||||||
$PAGE->set_pagelayout('secure');
|
$PAGE->set_pagelayout('secure');
|
||||||
$PAGE->set_url('/lib/tests/fixtures/securetestpage.php');
|
$PAGE->set_url('/lib/tests/fixtures/securetestpage.php');
|
||||||
$PAGE->set_context(context_system::instance());
|
$PAGE->set_context(context_system::instance());
|
||||||
|
$title = 'Secure test page';
|
||||||
|
$PAGE->set_title($title);
|
||||||
|
$PAGE->set_heading($title);
|
||||||
|
|
||||||
echo $OUTPUT->header();
|
echo $OUTPUT->header();
|
||||||
|
|
||||||
|
|
|
@ -609,7 +609,7 @@ table.calendartable caption {
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (min-width: 768px) {
|
@media (min-width: 768px) {
|
||||||
section:not(#region-main) {
|
[data-blockregion]:not([data-blockregion="content"]) {
|
||||||
.block {
|
.block {
|
||||||
&.block_calendar_month {
|
&.block_calendar_month {
|
||||||
.maincalendar {
|
.maincalendar {
|
||||||
|
|
|
@ -27773,41 +27773,41 @@ table.calendartable caption {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@media (min-width: 768px) {
|
@media (min-width: 768px) {
|
||||||
section:not(#region-main) .block.block_calendar_month .maincalendar div.header {
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar div.header {
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
height: 0;
|
height: 0;
|
||||||
}
|
}
|
||||||
section:not(#region-main) .block.block_calendar_month .maincalendar .calendarwrapper .current {
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendarwrapper .current {
|
||||||
width: 40%;
|
width: 40%;
|
||||||
font-size: inherit;
|
font-size: inherit;
|
||||||
line-height: inherit;
|
line-height: inherit;
|
||||||
}
|
}
|
||||||
section:not(#region-main) .block.block_calendar_month .maincalendar .calendarwrapper .previous,
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendarwrapper .previous,
|
||||||
section:not(#region-main) .block.block_calendar_month .maincalendar .calendarwrapper .next {
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendarwrapper .next {
|
||||||
width: 30%;
|
width: 30%;
|
||||||
}
|
}
|
||||||
section:not(#region-main) .block.block_calendar_month .maincalendar .calendarwrapper .previous .arrow_text,
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendarwrapper .previous .arrow_text,
|
||||||
section:not(#region-main) .block.block_calendar_month .maincalendar .calendarwrapper .next .arrow_text {
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendarwrapper .next .arrow_text {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth th,
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth th,
|
||||||
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td {
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td {
|
||||||
border: none;
|
border: none;
|
||||||
text-align: center !important;
|
text-align: center !important;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td {
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td {
|
||||||
height: auto;
|
height: auto;
|
||||||
font-size: 0.8em;
|
font-size: 0.8em;
|
||||||
}
|
}
|
||||||
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.hasevent [data-region=day-content] {
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.hasevent [data-region=day-content] {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.hasevent .day-number {
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.hasevent .day-number {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.hasevent .day-number:before {
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.hasevent .day-number:before {
|
||||||
content: ".";
|
content: ".";
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
@ -27818,19 +27818,19 @@ table.calendartable caption {
|
||||||
font-size: 3em;
|
font-size: 3em;
|
||||||
color: inherit;
|
color: inherit;
|
||||||
}
|
}
|
||||||
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td:after {
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td:after {
|
||||||
content: "";
|
content: "";
|
||||||
display: block;
|
display: block;
|
||||||
margin-top: calc(100% - 26px);
|
margin-top: calc(100% - 26px);
|
||||||
}
|
}
|
||||||
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.clickable:hover {
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.clickable:hover {
|
||||||
background-color: inherit;
|
background-color: inherit;
|
||||||
}
|
}
|
||||||
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.clickable:not(.today):hover .day-number-circle {
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.clickable:not(.today):hover .day-number-circle {
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
background-color: #ededed;
|
background-color: #ededed;
|
||||||
}
|
}
|
||||||
section:not(#region-main) .block.block_calendar_month .bottom {
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .bottom {
|
||||||
border-top: 1px solid rgba(0, 0, 0, 0.125);
|
border-top: 1px solid rgba(0, 0, 0, 0.125);
|
||||||
padding-top: 0.5rem;
|
padding-top: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
<div id="page" class="container-fluid d-print-block">
|
<div id="page" class="container-fluid d-print-block">
|
||||||
<div id="page-content" class="row pb-3 d-print-block">
|
<div id="page-content" class="row pb-3 d-print-block">
|
||||||
<div id="region-main-box" class="col-12">
|
<div id="region-main-box" class="col-12">
|
||||||
<section id="region-main" aria-label="{{#str}}content{{/str}}">
|
<div id="region-main">
|
||||||
{{{ output.course_content_header }}}
|
{{{ output.course_content_header }}}
|
||||||
{{#headercontent}}
|
{{#headercontent}}
|
||||||
{{> core/activity_header }}
|
{{> core/activity_header }}
|
||||||
|
@ -56,7 +56,7 @@
|
||||||
{{{ output.main_content }}}
|
{{{ output.main_content }}}
|
||||||
{{{ output.activity_navigation }}}
|
{{{ output.activity_navigation }}}
|
||||||
{{{ output.course_content_footer }}}
|
{{{ output.course_content_footer }}}
|
||||||
</section>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -73,7 +73,7 @@
|
||||||
<div> {{{ regionmainsettingsmenu }}} </div>
|
<div> {{{ regionmainsettingsmenu }}} </div>
|
||||||
</div>
|
</div>
|
||||||
{{/hasregionmainsettingsmenu}}
|
{{/hasregionmainsettingsmenu}}
|
||||||
<section id="region-main" {{#hasblocks}}class="has-blocks mb-3"{{/hasblocks}} aria-label="{{#str}}content{{/str}}">
|
<div id="region-main" {{#hasblocks}}class="has-blocks mb-3"{{/hasblocks}}>
|
||||||
|
|
||||||
{{#hasregionmainsettingsmenu}}
|
{{#hasregionmainsettingsmenu}}
|
||||||
<div class="region_main_settings_menu_proxy"></div>
|
<div class="region_main_settings_menu_proxy"></div>
|
||||||
|
@ -89,12 +89,12 @@
|
||||||
{{{ output.activity_navigation }}}
|
{{{ output.activity_navigation }}}
|
||||||
{{{ output.course_content_footer }}}
|
{{{ output.course_content_footer }}}
|
||||||
|
|
||||||
</section>
|
</div>
|
||||||
{{#hasblocks}}
|
{{#hasblocks}}
|
||||||
<section data-region="blocks-column" class="d-print-none" aria-label="{{#str}}blocks{{/str}}">
|
<div data-region="blocks-column" class="d-print-none">
|
||||||
{{{ addblockbutton }}}
|
{{{ addblockbutton }}}
|
||||||
{{{ sidepreblocks }}}
|
{{{ sidepreblocks }}}
|
||||||
</section>
|
</div>
|
||||||
{{/hasblocks}}
|
{{/hasblocks}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -79,10 +79,10 @@
|
||||||
{{$id}}theme_boost-drawers-blocks{{/id}}
|
{{$id}}theme_boost-drawers-blocks{{/id}}
|
||||||
{{$drawerclasses}}drawer drawer-right{{#blockdraweropen}} show{{/blockdraweropen}}{{/drawerclasses}}
|
{{$drawerclasses}}drawer drawer-right{{#blockdraweropen}} show{{/blockdraweropen}}{{/drawerclasses}}
|
||||||
{{$drawercontent}}
|
{{$drawercontent}}
|
||||||
<section class="d-print-none" aria-label="{{#str}}blocks{{/str}}">
|
<div class="d-print-none">
|
||||||
{{{ addblockbutton }}}
|
{{{ addblockbutton }}}
|
||||||
{{{ sidepreblocks }}}
|
{{{ sidepreblocks }}}
|
||||||
</section>
|
</div>
|
||||||
{{/drawercontent}}
|
{{/drawercontent}}
|
||||||
{{$drawerpreferencename}}drawer-open-block{{/drawerpreferencename}}
|
{{$drawerpreferencename}}drawer-open-block{{/drawerpreferencename}}
|
||||||
{{$forceopen}}{{#forceblockdraweropen}}1{{/forceblockdraweropen}}{{/forceopen}}
|
{{$forceopen}}{{#forceblockdraweropen}}1{{/forceblockdraweropen}}{{/forceopen}}
|
||||||
|
@ -142,7 +142,7 @@
|
||||||
<div> {{{ regionmainsettingsmenu }}} </div>
|
<div> {{{ regionmainsettingsmenu }}} </div>
|
||||||
</div>
|
</div>
|
||||||
{{/hasregionmainsettingsmenu}}
|
{{/hasregionmainsettingsmenu}}
|
||||||
<section id="region-main" aria-label="{{#str}}content{{/str}}">
|
<div id="region-main">
|
||||||
|
|
||||||
{{#hasregionmainsettingsmenu}}
|
{{#hasregionmainsettingsmenu}}
|
||||||
<div class="region_main_settings_menu_proxy"></div>
|
<div class="region_main_settings_menu_proxy"></div>
|
||||||
|
@ -162,7 +162,7 @@
|
||||||
{{{ output.activity_navigation }}}
|
{{{ output.activity_navigation }}}
|
||||||
{{{ output.course_content_footer }}}
|
{{{ output.course_content_footer }}}
|
||||||
|
|
||||||
</section>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -56,9 +56,9 @@
|
||||||
{{{ output.standard_top_of_body_html }}}
|
{{{ output.standard_top_of_body_html }}}
|
||||||
<div id="page" {{#hasfakeblocks}}class="has-fake-blocks"{{/hasfakeblocks}}>
|
<div id="page" {{#hasfakeblocks}}class="has-fake-blocks"{{/hasfakeblocks}}>
|
||||||
{{#hasfakeblocks}}
|
{{#hasfakeblocks}}
|
||||||
<section class="embedded-blocks" aria-label="{{#str}}blocks{{/str}}">
|
<div class="embedded-blocks">
|
||||||
{{{ fakeblocks }}}
|
{{{ fakeblocks }}}
|
||||||
</section>
|
</div>
|
||||||
{{/hasfakeblocks}}
|
{{/hasfakeblocks}}
|
||||||
<section class="embedded-main">
|
<section class="embedded-main">
|
||||||
{{#headercontent}}
|
{{#headercontent}}
|
||||||
|
|
|
@ -41,13 +41,13 @@
|
||||||
<div id="page" class="container-fluid pt-5 mt-0">
|
<div id="page" class="container-fluid pt-5 mt-0">
|
||||||
<div id="page-content" class="row">
|
<div id="page-content" class="row">
|
||||||
<div id="region-main-box" class="col-12">
|
<div id="region-main-box" class="col-12">
|
||||||
<section id="region-main" class="col-12 h-100" aria-label="{{#str}}content{{/str}}">
|
<div id="region-main" class="col-12 h-100">
|
||||||
<div class="login-wrapper">
|
<div class="login-wrapper">
|
||||||
<div class="login-container">
|
<div class="login-container">
|
||||||
{{{ output.main_content }}}
|
{{{ output.main_content }}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -57,9 +57,9 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="page-content" class="row">
|
<div id="page-content" class="row">
|
||||||
<section id="region-main" class="col-12" aria-label="{{#str}}content{{/str}}">
|
<div id="region-main" class="col-12">
|
||||||
{{{ output.main_content }}}
|
{{{ output.main_content }}}
|
||||||
</section>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
<div id="page" class="container-fluid">
|
<div id="page" class="container-fluid">
|
||||||
{{! Secured full header }}
|
{{! Secured full header }}
|
||||||
|
|
||||||
<div id="page-header" class="row">
|
<header id="page-header" class="row">
|
||||||
<div class="col-12 py-3">
|
<div class="col-12 py-3">
|
||||||
<div class="page-context-header">
|
<div class="page-context-header">
|
||||||
<div class="page-header-headings">
|
<div class="page-header-headings">
|
||||||
|
@ -56,11 +56,11 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</header>
|
||||||
|
|
||||||
<div id="page-content" class="row">
|
<div id="page-content" class="row">
|
||||||
<div id="region-main-box" class="col-12">
|
<div id="region-main-box" class="col-12">
|
||||||
<section id="region-main" {{#hasblocks}}class="has-blocks"{{/hasblocks}} aria-label="{{#str}}content{{/str}}">
|
<div id="region-main" {{#hasblocks}}class="has-blocks"{{/hasblocks}}>
|
||||||
|
|
||||||
{{{ output.course_content_header }}}
|
{{{ output.course_content_header }}}
|
||||||
{{#headercontent}}
|
{{#headercontent}}
|
||||||
|
@ -69,11 +69,11 @@
|
||||||
{{{ output.main_content }}}
|
{{{ output.main_content }}}
|
||||||
{{{ output.course_content_footer }}}
|
{{{ output.course_content_footer }}}
|
||||||
|
|
||||||
</section>
|
</div>
|
||||||
{{#hasblocks}}
|
{{#hasblocks}}
|
||||||
<section data-region="blocks-column" aria-label="{{#str}}blocks{{/str}}">
|
<div data-region="blocks-column">
|
||||||
{{{ sidepreblocks }}}
|
{{{ sidepreblocks }}}
|
||||||
</section>
|
</div>
|
||||||
{{/hasblocks}}
|
{{/hasblocks}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -27773,41 +27773,41 @@ table.calendartable caption {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@media (min-width: 768px) {
|
@media (min-width: 768px) {
|
||||||
section:not(#region-main) .block.block_calendar_month .maincalendar div.header {
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar div.header {
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
height: 0;
|
height: 0;
|
||||||
}
|
}
|
||||||
section:not(#region-main) .block.block_calendar_month .maincalendar .calendarwrapper .current {
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendarwrapper .current {
|
||||||
width: 40%;
|
width: 40%;
|
||||||
font-size: inherit;
|
font-size: inherit;
|
||||||
line-height: inherit;
|
line-height: inherit;
|
||||||
}
|
}
|
||||||
section:not(#region-main) .block.block_calendar_month .maincalendar .calendarwrapper .previous,
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendarwrapper .previous,
|
||||||
section:not(#region-main) .block.block_calendar_month .maincalendar .calendarwrapper .next {
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendarwrapper .next {
|
||||||
width: 30%;
|
width: 30%;
|
||||||
}
|
}
|
||||||
section:not(#region-main) .block.block_calendar_month .maincalendar .calendarwrapper .previous .arrow_text,
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendarwrapper .previous .arrow_text,
|
||||||
section:not(#region-main) .block.block_calendar_month .maincalendar .calendarwrapper .next .arrow_text {
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendarwrapper .next .arrow_text {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth th,
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth th,
|
||||||
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td {
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td {
|
||||||
border: none;
|
border: none;
|
||||||
text-align: center !important;
|
text-align: center !important;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td {
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td {
|
||||||
height: auto;
|
height: auto;
|
||||||
font-size: 0.8em;
|
font-size: 0.8em;
|
||||||
}
|
}
|
||||||
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.hasevent [data-region=day-content] {
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.hasevent [data-region=day-content] {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.hasevent .day-number {
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.hasevent .day-number {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.hasevent .day-number:before {
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.hasevent .day-number:before {
|
||||||
content: ".";
|
content: ".";
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
@ -27818,19 +27818,19 @@ table.calendartable caption {
|
||||||
font-size: 3em;
|
font-size: 3em;
|
||||||
color: inherit;
|
color: inherit;
|
||||||
}
|
}
|
||||||
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td:after {
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td:after {
|
||||||
content: "";
|
content: "";
|
||||||
display: block;
|
display: block;
|
||||||
margin-top: calc(100% - 26px);
|
margin-top: calc(100% - 26px);
|
||||||
}
|
}
|
||||||
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.clickable:hover {
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.clickable:hover {
|
||||||
background-color: inherit;
|
background-color: inherit;
|
||||||
}
|
}
|
||||||
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.clickable:not(.today):hover .day-number-circle {
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.clickable:not(.today):hover .day-number-circle {
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
background-color: #ededed;
|
background-color: #ededed;
|
||||||
}
|
}
|
||||||
section:not(#region-main) .block.block_calendar_month .bottom {
|
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .bottom {
|
||||||
border-top: 1px solid rgba(0, 0, 0, 0.125);
|
border-top: 1px solid rgba(0, 0, 0, 0.125);
|
||||||
padding-top: 0.5rem;
|
padding-top: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,7 +66,7 @@
|
||||||
<div> {{{ output.region_main_settings_menu }}} </div>
|
<div> {{{ output.region_main_settings_menu }}} </div>
|
||||||
</div>
|
</div>
|
||||||
{{/hasregionmainsettingsmenu}}
|
{{/hasregionmainsettingsmenu}}
|
||||||
<section id="region-main" class="region-main-content" aria-label="{{#str}}content{{/str}}">
|
<div id="region-main" class="region-main-content">
|
||||||
{{#hasregionmainsettingsmenu}}
|
{{#hasregionmainsettingsmenu}}
|
||||||
<div class="region_main_settings_menu_proxy"></div>
|
<div class="region_main_settings_menu_proxy"></div>
|
||||||
{{/hasregionmainsettingsmenu}}
|
{{/hasregionmainsettingsmenu}}
|
||||||
|
@ -77,18 +77,18 @@
|
||||||
{{{ output.main_content }}}
|
{{{ output.main_content }}}
|
||||||
{{{ output.activity_navigation }}}
|
{{{ output.activity_navigation }}}
|
||||||
{{{ output.course_content_footer }}}
|
{{{ output.course_content_footer }}}
|
||||||
</section>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="columnleft blockcolumn {{#haspreblocks}} has-blocks {{/haspreblocks}}">
|
<div class="columnleft blockcolumn {{#haspreblocks}} has-blocks {{/haspreblocks}}">
|
||||||
<section data-region="blocks-column" class="d-print-none" aria-label="{{#str}}blocks{{/str}}">
|
<div data-region="blocks-column" class="d-print-none">
|
||||||
{{{ sidepreblocks }}}
|
{{{ sidepreblocks }}}
|
||||||
</section>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="columnright blockcolumn {{#haspostblocks}} has-blocks {{/haspostblocks}}">
|
<div class="columnright blockcolumn {{#haspostblocks}} has-blocks {{/haspostblocks}}">
|
||||||
<section data-region="blocks-column" class="d-print-none" aria-label="{{#str}}blocks{{/str}}">
|
<div data-region="blocks-column" class="d-print-none">
|
||||||
{{{ sidepostblocks }}}
|
{{{ sidepostblocks }}}
|
||||||
</section>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -54,7 +54,7 @@
|
||||||
<div id="page" class="container-fluid">
|
<div id="page" class="container-fluid">
|
||||||
<div id="page-content" class="row">
|
<div id="page-content" class="row">
|
||||||
<div id="region-main-box" class="col-12">
|
<div id="region-main-box" class="col-12">
|
||||||
<section id="region-main" aria-label="{{#str}}content{{/str}}">
|
<div id="region-main">
|
||||||
{{{ output.course_content_header }}}
|
{{{ output.course_content_header }}}
|
||||||
{{#headercontent}}
|
{{#headercontent}}
|
||||||
{{> core/activity_header }}
|
{{> core/activity_header }}
|
||||||
|
@ -62,7 +62,7 @@
|
||||||
{{{ output.main_content }}}
|
{{{ output.main_content }}}
|
||||||
{{{ output.activity_navigation }}}
|
{{{ output.activity_navigation }}}
|
||||||
{{{ output.course_content_footer }}}
|
{{{ output.course_content_footer }}}
|
||||||
</section>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -59,7 +59,7 @@
|
||||||
<div id="page" class="container-fluid">
|
<div id="page" class="container-fluid">
|
||||||
{{! Secured full header }}
|
{{! Secured full header }}
|
||||||
|
|
||||||
<div id="page-header" class="row">
|
<header id="page-header" class="row">
|
||||||
<div class="col-12 py-3">
|
<div class="col-12 py-3">
|
||||||
<div class="page-context-header">
|
<div class="page-context-header">
|
||||||
<div class="page-header-headings">
|
<div class="page-header-headings">
|
||||||
|
@ -67,11 +67,11 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</header>
|
||||||
|
|
||||||
<div id="page-content" class="row {{#haspreblocks}} blocks-pre {{/haspreblocks}} {{#haspostblocks}} blocks-post {{/haspostblocks}}">
|
<div id="page-content" class="row {{#haspreblocks}} blocks-pre {{/haspreblocks}} {{#haspostblocks}} blocks-post {{/haspostblocks}}">
|
||||||
<div id="region-main-box" class="region-main">
|
<div id="region-main-box" class="region-main">
|
||||||
<section id="region-main" aria-label="{{#str}}content{{/str}}">
|
<div id="region-main">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
{{{ output.course_content_header }}}
|
{{{ output.course_content_header }}}
|
||||||
|
@ -82,18 +82,18 @@
|
||||||
{{{ output.course_content_footer }}}
|
{{{ output.course_content_footer }}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="columnleft {{#haspreblocks}} has-blocks {{/haspreblocks}}">
|
<div class="columnleft {{#haspreblocks}} has-blocks {{/haspreblocks}}">
|
||||||
<section data-region="blocks-column" class="d-print-none" aria-label="{{#str}}blocks{{/str}}">
|
<div data-region="blocks-column" class="d-print-none">
|
||||||
{{{ sidepreblocks }}}
|
{{{ sidepreblocks }}}
|
||||||
</section>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="columnright {{#haspostblocks}} has-blocks {{/haspostblocks}}">
|
<div class="columnright {{#haspostblocks}} has-blocks {{/haspostblocks}}">
|
||||||
<section data-region="blocks-column" class="d-print-none" aria-label="{{#str}}blocks{{/str}}">
|
<div data-region="blocks-column" class="d-print-none">
|
||||||
{{{ sidepostblocks }}}
|
{{{ sidepostblocks }}}
|
||||||
</section>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -289,7 +289,7 @@ class behat_theme_classic_behat_navigation extends behat_navigation {
|
||||||
protected function select_on_administration_page($nodelist) {
|
protected function select_on_administration_page($nodelist) {
|
||||||
$parentnodes = $nodelist;
|
$parentnodes = $nodelist;
|
||||||
$lastnode = array_pop($parentnodes);
|
$lastnode = array_pop($parentnodes);
|
||||||
$xpath = '//section[@id=\'region-main\']';
|
$xpath = '//div[@id=\'region-main\']';
|
||||||
|
|
||||||
// Check if there is a separate tab for this submenu of the page. If found go to it.
|
// Check if there is a separate tab for this submenu of the page. If found go to it.
|
||||||
if ($parentnodes) {
|
if ($parentnodes) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue