mirror of
https://github.com/moodle/moodle.git
synced 2025-04-13 04:22:07 +02:00
MDL-72032 core_behat: secondary navigation behat fixes
- Part of: MDL-69588
This commit is contained in:
parent
3110abec03
commit
da33265d73
@ -3816,18 +3816,21 @@ EOD;
|
||||
* @return string
|
||||
*/
|
||||
public function more_menu($content, $navbarstyle) {
|
||||
$tabs = ($navbarstyle == 'nav-tabs');
|
||||
if (is_object($content)) {
|
||||
if (!isset($content->children) || count($content->children) == 0) {
|
||||
return false;
|
||||
}
|
||||
return $this->render_from_template('core/moremenu', (object) [
|
||||
'nodecollection' => $content,
|
||||
'navbarstyle' => $navbarstyle
|
||||
'navbarstyle' => $navbarstyle,
|
||||
'tabs' => $tabs
|
||||
]);
|
||||
} else {
|
||||
return $this->render_from_template('core/moremenu', (object) [
|
||||
'nodearray' => $content,
|
||||
'navbarstyle' => $navbarstyle
|
||||
'navbarstyle' => $navbarstyle,
|
||||
'tabs' => $tabs
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
@ -45,7 +45,7 @@
|
||||
}
|
||||
}}
|
||||
<nav class="moremenu">
|
||||
<ul id="moremenu-{{ uniqid }}" class="nav more-nav {{navbarstyle}}">
|
||||
<ul id="moremenu-{{ uniqid }}" {{#tabs}}role="tablist"{{/tabs}} class="nav more-nav {{navbarstyle}}">
|
||||
{{#nodecollection}}
|
||||
{{#children}}
|
||||
{{> core/moremenu_children}}
|
||||
|
@ -36,8 +36,29 @@
|
||||
}
|
||||
}
|
||||
}}
|
||||
|
||||
{{{secondarynavigation}}}
|
||||
{{#secondarynavigation}}
|
||||
{{{secondarynavigation}}}
|
||||
{{/secondarynavigation}}
|
||||
{{^secondarynavigation}}
|
||||
<ul class="nav nav-tabs" role="tablist">
|
||||
<!-- First the top most node and immediate children -->
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" href="#link{{node.key}}" data-toggle="tab" role="tab" aria-selected="true">{{node.text}}</a>
|
||||
</li>
|
||||
<!-- Now the first level children with sub nodes -->
|
||||
{{#node.children}}
|
||||
{{#children.count}}
|
||||
{{#display}}
|
||||
{{^is_short_branch}}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#link{{key}}" data-toggle="tab" role="tab" aria-selected="false" tabindex="-1">{{text}}</a>
|
||||
</li>
|
||||
{{/is_short_branch}}
|
||||
{{/display}}
|
||||
{{/children.count}}
|
||||
{{/node.children}}
|
||||
</ul>
|
||||
{{/secondarynavigation}}
|
||||
|
||||
<div class="tab-content mt-3">
|
||||
<div class="tab-pane active" id="link{{node.key}}" role="tabpanel">
|
||||
|
@ -936,6 +936,17 @@ class behat_navigation extends behat_base {
|
||||
$xpath .= '//div[@id = ' . $tabid . ']';
|
||||
}
|
||||
array_shift($parentnodes);
|
||||
} else {
|
||||
$linkname = behat_context_helper::escape(get_string('moremenu'));
|
||||
$menuxpath = '//ul[@role=\'tablist\']/li/a[contains(normalize-space(.), ' . $linkname . ')]';
|
||||
$morebutton = $this->getSession()->getPage()->find('xpath', $menuxpath);
|
||||
if ($morebutton) {
|
||||
$this->execute('behat_general::i_click_on', [$morebutton, 'NodeElement']);
|
||||
$moreitemxpath = '//ul[@data-region=\'moredropdown\']/li/a[contains(normalize-space(.), ' . $tabname . ')]';
|
||||
if ($morenode = $this->getSession()->getPage()->find('xpath', $moreitemxpath)) {
|
||||
$this->execute('behat_general::i_click_on', [$morenode, 'NodeElement']);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -68,6 +68,17 @@ $buildregionmainsettings = !$PAGE->include_region_main_settings_in_header_action
|
||||
// If the settings menu will be included in the header then don't add it here.
|
||||
$regionmainsettingsmenu = $buildregionmainsettings ? $OUTPUT->region_main_settings_menu() : false;
|
||||
|
||||
if (defined('BEHAT_SITE_RUNNING')) {
|
||||
$secondarynavigation = false;
|
||||
} else {
|
||||
$buildsecondarynavigation = $PAGE->has_secondary_navigation();
|
||||
$secondarynavigation = $buildsecondarynavigation ? $OUTPUT->more_menu($PAGE->secondarynav, 'nav-tabs') : false;
|
||||
}
|
||||
|
||||
$primary = new core\navigation\output\primary($PAGE);
|
||||
$renderer = $PAGE->get_renderer('core');
|
||||
$primarymenu = $primary->export_for_template($renderer);
|
||||
|
||||
$templatecontext = [
|
||||
'sitename' => format_string($SITE->shortname, true, ['context' => context_course::instance(SITEID), "escape" => false]),
|
||||
'output' => $OUTPUT,
|
||||
@ -79,7 +90,11 @@ $templatecontext = [
|
||||
'blockdraweropen' => $blockdraweropen,
|
||||
'regionmainsettingsmenu' => $regionmainsettingsmenu,
|
||||
'courseindex' => $courseindex,
|
||||
'hasregionmainsettingsmenu' => !empty($regionmainsettingsmenu)
|
||||
'hasregionmainsettingsmenu' => !empty($regionmainsettingsmenu),
|
||||
'primarymoremenu' => $OUTPUT->more_menu(array_merge($primarymenu['primary'], $primarymenu['custom']), 'navbar-nav'),
|
||||
'secondarymoremenu' => $secondarynavigation,
|
||||
'usermenu' => $primarymenu['user'],
|
||||
'langmenu' => $primarymenu['lang'],
|
||||
];
|
||||
|
||||
$nav = $PAGE->flatnav;
|
||||
|
@ -110,6 +110,9 @@
|
||||
{{/hasblocks}}
|
||||
</div>
|
||||
{{{ output.full_header }}}
|
||||
<div class="secondarynavigation">
|
||||
{{{ secondarymoremenu }}}
|
||||
</div>
|
||||
<div id="page-content" class="pb-3 d-print-block">
|
||||
<div id="region-main-box">
|
||||
{{#hasregionmainsettingsmenu}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user