MDL-75669 theme_boost: Refactor dropdowns positioning classes

- Replace .dropdown-menu-[left|right] with .dropdown-menu-[start|end].
This commit is contained in:
Mikel Martín
2025-02-14 09:10:33 +01:00
parent 59bc788992
commit 2aa19cb088
25 changed files with 30 additions and 29 deletions
@@ -33,7 +33,7 @@
<i class="icon fa fa-ellipsis-v fa-fw m-0" title="{{#str}} aria:courseactions, block_myoverview {{/str}} {{{fullname}}}" aria-hidden="true"></i>
<span class="visually-hidden">{{#str}} aria:courseactions, block_myoverview {{/str}} {{{fullname}}}</span>
</button>
<div class="dropdown-menu dropdown-menu-right">
<div class="dropdown-menu dropdown-menu-end">
<a class="dropdown-item {{#isfavourite}}hidden{{/isfavourite}}" href="#"
data-action="add-favourite"
data-course-id="{{id}}"
@@ -31,7 +31,7 @@
{{#sorttimelinedates}}{{#str}} sortbydates, block_timeline {{/str}}{{/sorttimelinedates}}
</span>
</button>
<div id="menusortby" role="menu" class="dropdown-menu dropdown-menu-right list-group hidden" data-show-active-item data-skip-active-class="true">
<div id="menusortby" role="menu" class="dropdown-menu dropdown-menu-end list-group hidden" data-show-active-item data-skip-active-class="true">
<a
class="dropdown-item"
href="#view_dates_{{uniqid}}-{{timelineinstanceid}}"
@@ -47,7 +47,7 @@
disabled{{/contenttypes}}>
{{#name}} {{name}} {{/name}}
</button>
<div class="dropdown-menu dropdown-scrollable dropdown-menu-right">
<div class="dropdown-menu dropdown-scrollable dropdown-menu-end">
{{#contenttypes}}
{{#types}}
{{^typeeditorparams}}
@@ -48,8 +48,8 @@ along with Moodle. If not, see <http://www.gnu.org/licenses/>.
<button aria-label="{{#str}}actionsmenu{{/str}}" class="btn btn-secondary dropdown-toggle" id="dropdown-actions" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
{{#str}}more, core_contentbank{{/str}}
</button>
{{! dropdown-menu-right style to fix RTL placement }}
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdown-actions">
{{! dropdown-menu-end style to fix RTL placement }}
<div class="dropdown-menu dropdown-menu-end" aria-labelledby="dropdown-actions">
{{#options}}
<a class="dropdown-item {{extraclasses}}" {{#attributes}}{{name}}="{{value}}"{{/attributes}} href="{{url}}">{{label}}</a>
{{/options}}
@@ -120,7 +120,7 @@ class action_bar extends \core_grades\output\action_bar {
);
$data['searchdropdown'] = $userselector->export_for_template($output);
// The collapsed column dialog is aligned to the edge of the screen, we need to place it such that it also aligns.
$collapsemenudirection = right_to_left() ? 'dropdown-menu-left' : 'dropdown-menu-right';
$collapsemenudirection = right_to_left() ? 'dropdown-menu-start' : 'dropdown-menu-end';
$collapse = new comboboxsearch(
true,
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+3 -3
View File
@@ -39,7 +39,7 @@ import {
const Selectors = {
mainMenu: '[role="menu"]',
dropdownRight: '.dropdown-menu-right',
dropdownRight: '.dropdown-menu-end',
subPanel: '.dropdown-subpanel',
subPanelMenuItem: '.dropdown-subpanel > .dropdown-item',
subPanelContent: '.dropdown-subpanel > .dropdown-menu',
@@ -51,8 +51,8 @@ const Selectors = {
};
const Classes = {
dropRight: 'dropright',
dropLeft: 'dropleft',
dropRight: 'dropend',
dropLeft: 'dropstart',
dropDown: 'dropdown',
forceLeft: 'downleft',
contentDisplayed: 'content-displayed',
-1
View File
@@ -97,7 +97,6 @@ const registerEventListeners = () => {
const index = Array.from(targetedCarouselItem.parentNode.children).indexOf(targetedCarouselItem);
// Navigate to the targeted carousel item.
$(selectors.userMenuCarousel).carousel(index);
};
// Handle the 'hide.bs.dropdown' event (Fired when the dropdown menu is being closed).
+2 -2
View File
@@ -168,7 +168,7 @@ class action_menu implements renderable, templatable {
'aria-labelledby' => 'action-menu-toggle-' . $this->instance,
'role' => 'menu',
];
$this->dropdownalignment = 'dropdown-menu-right';
$this->dropdownalignment = 'dropdown-menu-end';
foreach ($actions as $action) {
$this->add($action);
}
@@ -419,7 +419,7 @@ class action_menu implements renderable, templatable {
*
*/
public function set_menu_left() {
$this->dropdownalignment = 'dropdown-menu-left';
$this->dropdownalignment = 'dropdown-menu-start';
}
/**
+2 -2
View File
@@ -33,8 +33,8 @@ use core\output\renderable;
class dialog implements named_templatable, renderable {
/** Dropdown dialog positions. */
public const POSITION = [
'start' => 'dropdown-menu-left',
'end' => 'dropdown-menu-right',
'start' => 'dropdown-menu-start',
'end' => 'dropdown-menu-end',
];
/** Dropdown dialog positions. */
+1 -1
View File
@@ -37,7 +37,7 @@
],
"secondary": {
"classes": "menu align-tr-br",
"dropdownalignment": "dropdown-menu-right",
"dropdownalignment": "dropdown-menu-end",
"attributes": [
{"name": "id", "value": "action-menu-0-menu"},
{"name": "data-rel", "value": "menu-content"},
@@ -36,7 +36,7 @@
}
}}
<div
class="dropdown-subpanel position-relative dropright"
class="dropdown-subpanel position-relative dropend"
id="{{id}}"
>
<a
+1 -1
View File
@@ -59,7 +59,7 @@
<a class="dropdown-toggle nav-link {{#isactive}}active{{/isactive}}" href="#" id="moremenu-dropdown-{{moremenuid}}" role="{{#istablist}}tab{{/istablist}}{{^istablist}}menuitem{{/istablist}}" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" tabindex="-1">
{{#str}}moremenu, core{{/str}}
</a>
<ul class="dropdown-menu dropdown-menu-left" data-region="moredropdown" aria-labelledby="moremenu-dropdown-{{moremenuid}}" role="menu">
<ul class="dropdown-menu dropdown-menu-start" data-region="moredropdown" aria-labelledby="moremenu-dropdown-{{moremenuid}}" role="menu">
</ul>
</li>
</ul>
+1 -1
View File
@@ -72,7 +72,7 @@
{{> core/user_menu_metadata }}
</span>
</a>
<div id="user-action-menu" class="dropdown-menu dropdown-menu-right">
<div id="user-action-menu" class="dropdown-menu dropdown-menu-end">
<div id="usermenu-carousel" class="carousel slide" data-touch="false" data-interval="false" data-keyboard="false">
<div class="carousel-inner">
<div id="carousel-item-main" class="carousel-item active" role="menu" tabindex="-1" aria-label="{{#str}}user{{/str}}">
@@ -83,7 +83,7 @@
{{/settings.excludetext}}
</a>
{{/settingsselector}}
<div class="dropdown-menu dropdown-menu-right"
<div class="dropdown-menu dropdown-menu-end"
aria-labelledby="forum-action-menu-{{id}}-menu"
data-rel="menu-content"
role="menu"
@@ -154,7 +154,7 @@
{{#pix}} i/moremenu {{/pix}}
</button>
<!-- inline style to fix RTL placement bug -->
<div class="dropdown-menu dropdown-menu-right rounded-3 shadow border-0" aria-labelledby="post-actions-menu-{{id}}-{{uniqid}}" style="right: auto" role="menubar">
<div class="dropdown-menu dropdown-menu-end rounded-3 shadow border-0" aria-labelledby="post-actions-menu-{{id}}-{{uniqid}}" style="right: auto" role="menubar">
{{#capabilities}}
{{#view}}
<a
@@ -97,7 +97,7 @@
>
{{#pix}} i/menu, core {{/pix}}
</button>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="grader-actions-menu-{{uniqid}}">
<div class="dropdown-menu dropdown-menu-end" aria-labelledby="grader-actions-menu-{{uniqid}}">
<button
class="dropdown-item"
type="button"
@@ -138,7 +138,7 @@
...
<span class="visually-hidden">{{#str}} exportentries, mod_glossary {{/str}}</span>
</button>
<div class="dropdown-menu dropdown-menu-right">
<div class="dropdown-menu dropdown-menu-end">
{{#options}}
<a class="dropdown-item" href="{{url}}"
{{#openinnewwindow}}target="_blank"{{/openinnewwindow}}>{{string}}</a>
@@ -37,7 +37,7 @@
</span>
</button>
{{! Filters content }}
<div class="filters-dropdown dropdown-menu dropdown-menu-right moodle-has-zindex" aria-labelledby="dropdownFiltersButton">
<div class="filters-dropdown dropdown-menu dropdown-menu-end moodle-has-zindex" aria-labelledby="dropdownFiltersButton">
<div id="filters" class="reportbuilder-filters-sidebar scroll-shadow" data-region="report-filters">
<div class="px-3 pt-3">
{{#filtersform}}
+2
View File
@@ -2943,6 +2943,8 @@ body.dragging {
content: none;
}
// TODO: Check if these are still needed.
.dropleft .dropdown-toggle::before {
border: 0;
@extend .fa-solid;
@@ -33,7 +33,7 @@
>
<i class="icon fa fa-ellipsis-v fa-fw m-0" aria-hidden="true"></i>
</button>
<div class="dropdown-menu dropdown-menu-right">
<div class="dropdown-menu dropdown-menu-end">
<a class="dropdown-item"
href="#"
data-action="expandallcourseindexsections"
+1 -1
View File
@@ -50,7 +50,7 @@
</span>
<b class="caret"></b>
</a>
<div role="menu" aria-labelledby="lang-menu-toggle" id="lang-action-menu" class="dropdown-menu dropdown-menu-right">
<div role="menu" aria-labelledby="lang-menu-toggle" id="lang-action-menu" class="dropdown-menu dropdown-menu-end">
{{#items}}
{{#link}}
<a href="{{{url}}}" class="dropdown-item ps-5" role="menuitem" {{#isactive}}aria-current="true"{{/isactive}}
@@ -69,7 +69,7 @@
{{> core/user_menu_metadata }}
</span>
</a>
<div id="user-action-menu" class="dropdown-menu dropdown-menu-right">
<div id="user-action-menu" class="dropdown-menu dropdown-menu-end">
<div id="usermenu-carousel" class="carousel slide" data-touch="false" data-interval="false" data-keyboard="false">
<div class="carousel-inner">
<div id="carousel-item-main" class="carousel-item active" role="menu" tabindex="-1" aria-label="{{#str}}user{{/str}}">