MDL-75671 theme_boost: Refactor float classes for BS5

- Add SCSS code for float  utility classes to the Boostrap 5 bridge SCSS file
- Replace all occurrences in the codebase (float-left > float-start, float-sm-right > float-sm-end, ...)
This commit is contained in:
Mikel Martín 2024-06-17 12:41:41 +02:00
parent 0a03018116
commit 6baf2046d5
82 changed files with 163 additions and 176 deletions

View File

@ -655,7 +655,7 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
echo "</label>\n";
}
if ($helpicon) {
echo '<span class="float-sm-right text-nowrap">'.$helpicon.'</span>';
echo '<span class="float-sm-end text-nowrap">'.$helpicon.'</span>';
}
echo '</div>';
if (isset($this->errors[$name])) {

View File

@ -40,7 +40,7 @@
}
}}
<div class="mt-2 mb-1 float-right">
<div class="mt-2 mb-1 float-end">
{{#export}}{{> core/single_button}}{{/export}}
{{#import}}{{> core/single_button}}{{/import}}
</div>

View File

@ -383,7 +383,7 @@ At times, you maybe need to use margin or padding utilities to create that perfe
</div>
</div>
<fieldset class="form-group row">
<legend class="col-form-label col-sm-2 float-sm-left pt-0">Radios</legend>
<legend class="col-form-label col-sm-2 float-sm-start pt-0">Radios</legend>
<div class="col-sm-10">
<div class="form-check">
<input class="form-check-input" type="radio" name="gridRadios" id="gridRadios1" value="option1" checked>

View File

@ -105,7 +105,7 @@ Use [flexbox utilities][flex], [float utilities][float], or [text alignment][tex
{{< example >}}
<div class="clearfix">
<div class="spinner-border float-right" role="status">
<div class="spinner-border float-end" role="status">
<span class="sr-only">Loading...</span>
</div>
</div>

View File

@ -33,8 +33,8 @@ In addition to our [border-radius utilities]({{< docsref "/utilities/borders" >}
Align images with the [helper float classes]({{< docsref "/utilities/float" >}}) or [text alignment classes]({{< docsref "/utilities/text#text-alignment" >}}). `block`-level images can be centered using [the `.mx-auto` margin utility class]({{< docsref "/utilities/spacing#horizontal-centering" >}}).
{{< example >}}
{{< placeholder width="200" height="200" class="rounded float-left" >}}
{{< placeholder width="200" height="200" class="rounded float-right" >}}
{{< placeholder width="200" height="200" class="rounded float-start" >}}
{{< placeholder width="200" height="200" class="rounded float-end" >}}
{{< /example >}}
{{< example >}}

View File

@ -31,7 +31,7 @@ The following example shows how the clearfix can be used. Without the clearfix t
{{< example >}}
<div class="bg-info clearfix">
<button type="button" class="btn btn-secondary float-left">Example Button floated left</button>
<button type="button" class="btn btn-secondary float-right">Example Button floated right</button>
<button type="button" class="btn btn-secondary float-start">Example Button floated left</button>
<button type="button" class="btn btn-secondary float-end">Example Button floated right</button>
</div>
{{< /example >}}

View File

@ -15,8 +15,8 @@ These utility classes float an element to the left or right, or disable floating
Toggle a float with a class:
{{< example >}}
<div class="float-left">Float left on all viewport sizes</div><br>
<div class="float-right">Float right on all viewport sizes</div><br>
<div class="float-start">Float left on all viewport sizes</div><br>
<div class="float-end">Float right on all viewport sizes</div><br>
<div class="float-none">Don't float on all viewport sizes</div>
{{< /example >}}
@ -41,10 +41,10 @@ Or by Sass mixin:
Responsive variations also exist for each `float` value.
{{< example >}}
<div class="float-sm-left">Float left on viewports sized SM (small) or wider</div><br>
<div class="float-md-left">Float left on viewports sized MD (medium) or wider</div><br>
<div class="float-lg-left">Float left on viewports sized LG (large) or wider</div><br>
<div class="float-xl-left">Float left on viewports sized XL (extra-large) or wider</div><br>
<div class="float-sm-start">Float left on viewports sized SM (small) or wider</div><br>
<div class="float-md-start">Float left on viewports sized MD (medium) or wider</div><br>
<div class="float-lg-start">Float left on viewports sized LG (large) or wider</div><br>
<div class="float-xl-start">Float left on viewports sized XL (extra-large) or wider</div><br>
{{< /example >}}
Here are all the support classes;

View File

@ -58,13 +58,13 @@
<div class="alert alert-info">
{{#str}}datadeletionpagehelp, tool_dataprivacy{{/str}}
</div>
<div class="float-left">
<div class="float-start">
{{#filter}}
{{> core/single_select}}
{{/filter}}
</div>
{{#existingcontexts}}
<div class="float-right">
<div class="float-end">
<button data-action="markfordeletion" class="btn btn-secondary">{{#str}}deleteselected, moodle{{/str}}</button>
</div>
{{/existingcontexts}}
@ -74,7 +74,7 @@
</div>
<div class="row" data-region="bottom-nav">
{{#existingcontexts}}
<div class="float-right">
<div class="float-end">
<button data-action="markfordeletion" class="btn btn-secondary">{{#str}}deleteselected, moodle{{/str}}</button>
</div>
{{/existingcontexts}}

View File

@ -51,7 +51,7 @@
<dd>{{#str}}userlistexplanation, tool_dataprivacy{{/str}}</dd>
</dl>
<hr />
<div class="clearfix"><a class="tool_dataprivacy-expand-all float-right" href="#" data-visibility-state='visible'>{{#str}}visible, tool_dataprivacy{{/str}}</a></div>
<div class="clearfix"><a class="tool_dataprivacy-expand-all float-end" href="#" data-visibility-state='visible'>{{#str}}visible, tool_dataprivacy{{/str}}</a></div>
{{#types}}
<div>
<div>

View File

@ -61,7 +61,7 @@
<div data-region="datarequests">
<div class="mt-1 mb-1">
<div class="float-right">
<div class="float-end">
<a href="{{newdatarequesturl}}" class="btn btn-primary" data-action="new-request">
{{#str}}newrequest, tool_dataprivacy{{/str}}
</a>

View File

@ -45,7 +45,7 @@
}
}}
<div class="mt-1 d-inline-block w-100">
<div class="float-left">
<div class="float-start">
<select id="bulk-action" class="select custom-select">
{{#options}}
<option value="{{ value }}">{{ name }}</option>
@ -53,7 +53,7 @@
</select>
<button class="btn btn-primary" id="confirm-bulk-action">{{# str}} confirm {{/ str}}</button>
</div>
<div class="float-right">
<div class="float-end">
{{{ perpage }}}
</div>
</div>

View File

@ -66,15 +66,15 @@
</h4>
<a href="mailto:{{foruser.email}}">{{foruser.email}}</a>
<div class="clearfix mt-1 mb-1">
<span class="float-left me-1">
<span class="float-start me-1">
<strong>{{#str}}daterequesteddetail, tool_dataprivacy{{/str}}</strong>
{{#userdate}} {{timecreated}}, {{#str}} strftimedatetime, core_langconfig {{/str}} {{/userdate}}
</span>
<span class="float-left me-1">
<span class="float-start me-1">
<strong>{{#str}}statusdetail, tool_dataprivacy{{/str}}</strong>
<span class="badge {{statuslabelclass}}">{{statuslabel}}</span>
</span>
<span class="float-left me-1">
<span class="float-start me-1">
<strong>{{#str}}requestbydetail, tool_dataprivacy{{/str}}</strong>
<span><a href="{{requestedbyuser.profileurl}}" title="{{#str}}viewprofile{{/str}}">{{requestedbyuser.fullname}}</a></span>
</span>

View File

@ -53,7 +53,7 @@
</ul>
</div>
<div data-region="move-buttons" class="float-sm-right">
<div data-region="move-buttons" class="float-sm-end">
<input type="button" data-action="move" class="btn btn-primary" value="{{#str}}move{{/str}}"/>
<input type="button" data-action="cancel" class="btn btn-secondary" value="{{#str}}cancel{{/str}}"/>
</div>

View File

@ -50,7 +50,7 @@
<textarea name="comment" id="comment_{{uniqid}}" class="form-control mb-1"></textarea>
</div>
</div>
<div data-region="footer" class="float-sm-right">
<div data-region="footer" class="float-sm-end">
<button data-action="rate" class="btn btn-primary">{{#str}}rate, tool_lp{{/str}}</button>
<button data-action="cancel" class="btn btn-secondary">{{#str}}cancel{{/str}}</button>
</div>

View File

@ -78,7 +78,7 @@
</ul>
</li>
</ul>
<div data-region="link-buttons" class="mt-1 float-sm-right">
<div data-region="link-buttons" class="mt-1 float-sm-end">
<input type="button" class="btn btn-primary" data-action="add" value="{{#str}}add{{/str}}"/>
<input type="button" class="btn btn-secondary" data-action="cancel" value="{{#str}}cancel{{/str}}"/>
</div>

View File

@ -60,7 +60,7 @@
</ul>
</li>
</ul>
<div data-region="link-buttons" class="mt-1 float-sm-right">
<div data-region="link-buttons" class="mt-1 float-sm-end">
<input type="button" class="btn btn-primary" data-action="add" value="{{#str}}select{{/str}}"/>
<input type="button" class="btn btn-secondary" data-action="cancel" value="{{#str}}cancel{{/str}}"/>
</div>

View File

@ -84,7 +84,7 @@
</li>
</ul>
<div data-region="link-buttons" class="mt-1 float-sm-right">
<div data-region="link-buttons" class="mt-1 float-sm-end">
<input type="button" class="btn btn-primary" data-action="add" value="{{#str}}add{{/str}}"/>
<input type="button" class="btn btn-secondary" data-action="cancel" value="{{#str}}cancel{{/str}}"/>
</div>

View File

@ -32,7 +32,7 @@
// No example context because the JS is connected to webservices
}}
<div class="float-sm-right border p-2 mb-2">
<div class="float-sm-end border p-2 mb-2">
{{#hascompetencies}}
<span>
<label for="competency-nav-{{uniqid}}" class="accesshide">{{#str}}jumptocompetency, tool_lp{{/str}}</label>

View File

@ -81,7 +81,7 @@
{{/config}}
</div>
<div data-region="footer" class="float-sm-right mt-1">
<div data-region="footer" class="float-sm-end mt-1">
{{#config}}
<input type="button" class="btn btn-primary" data-action="save" value="{{#str}}savechanges{{/str}}"/>
{{/config}}

View File

@ -70,7 +70,7 @@
<p>{{{competency.description}}}</p>
{{/competency.description}}
{{#comppath}}
<span class="float-left">{{#str}}path, tool_lp{{/str}}&nbsp;</span>{{> tool_lp/competency_path }}
<span class="float-start">{{#str}}path, tool_lp{{/str}}&nbsp;</span>{{> tool_lp/competency_path }}
{{/comppath}}
{{#showrelatedcompetencies}}
{{> tool_lp/related_competencies }}

View File

@ -25,7 +25,7 @@
}}
<div data-region="coursecompetenciespage">
<div data-region="actions" class="clearfix">
<div class="float-sm-left">
<div class="float-sm-start">
{{#canmanagecoursecompetencies}}
<button class="btn btn-secondary" disabled>{{#str}}addcoursecompetencies, tool_lp{{/str}}</button>
{{/canmanagecoursecompetencies}}
@ -61,8 +61,8 @@
<tr class="drag-samenode" data-id="{{competency.id}}">
<td>
{{#canmanagecoursecompetencies}}
<span class="drag-handlecontainer float-sm-left"></span>
<div class="float-sm-right">
<span class="drag-handlecontainer float-sm-start"></span>
<div class="float-sm-end">
<a href="#" data-action="delete-competency-link" data-id="{{competency.id}}">
{{#pix}}t/delete, core, {{#str}}delete{{/str}}{{/pix}}
</a>
@ -78,7 +78,7 @@
<p>{{{competency.description}}}</p>
{{/competency}}
{{#comppath}}
<span class="float-sm-left">{{#str}}path, tool_lp{{/str}}&nbsp;</span>{{> tool_lp/competency_path }}
<span class="float-sm-start">{{#str}}path, tool_lp{{/str}}&nbsp;</span>{{> tool_lp/competency_path }}
{{/comppath}}
{{#usercompetencycourse}}
{{#grade}}

View File

@ -49,7 +49,7 @@
</label>
</fieldset>
<fieldset class="float-sm-right">
<fieldset class="float-sm-end">
<input type="button" class="btn btn-primary" data-action="save" value="{{#str}}savechanges{{/str}}"/>
<input type="button" class="btn btn-secondary" data-action="cancel" value="{{#str}}cancel{{/str}}"/>
</fieldset>

View File

@ -46,7 +46,7 @@
}}
<div class="border p-2 mb-2 evidence" data-region="evidence" data-id="{{id}}">
{{#candelete}}
<div class="float-sm-right">
<div class="float-sm-end">
<a href="#" data-action="delete-evidence">{{#pix}}t/delete{{/pix}}</a>
</div>
{{/candelete}}

View File

@ -48,7 +48,7 @@
<ul>
{{#competencies}}
<li>
<div class="float-right">
<div class="float-end">
<a href="#" data-action="deselect-competency" data-id="{{id}}">{{#pix}}t/delete, core, {{#str}}delete{{/str}}{{/pix}}</a>
</div>
<p>

View File

@ -68,7 +68,7 @@
<div class="border p-2 mb-2">
<div class="card-title">
<h4 data-region="selected-competency">{{#str}}selectedcompetency, tool_lp{{/str}}</h4>
<span data-region="competencyactionsmenu" class="float-sm-right">
<span data-region="competencyactionsmenu" class="float-sm-end">
<ul title="{{#str}}edit{{/str}}" class="competencyactionsmenu">
<li>
<a href="#">{{#str}}edit{{/str}}</a><b class="caret"></b>

View File

@ -34,7 +34,7 @@
* navigation - array of strings containing buttons for navigation
}}
<div data-region="managecompetencies">
<div class="float-left">
<div class="float-start">
{{#navigation}}
{{{.}}}
{{/navigation}}

View File

@ -32,7 +32,7 @@
* navigation - array of strings containing buttons for navigation
}}
<div data-region="managetemplates">
<div class="float-left">
<div class="float-start">
{{#navigation}}
{{{.}}}
{{/navigation}}

View File

@ -28,7 +28,7 @@
// No example context because the JS is connected to webservices
}}
<div class="float-right border mb-2 p-2">
<div class="float-end border mb-2 p-2">
<form class="user-competency-course-navigation">
<input type="hidden" name="courseid" value="{{courseid}}"/>
<input type="hidden" name="mod" value="{{moduleid}}"/>

View File

@ -26,7 +26,7 @@
</h2>
{{#plan.canbeedited}}
<div data-region="actions" class="clearfix">
<div class="float-left">
<div class="float-start">
<!-- Button to add competencies to the plan -->
<button class="btn btn-secondary" data-action="add">{{#pix}}t/add{{/pix}} {{#str}}addcompetency, tool_lp{{/str}}</button>
</div>
@ -129,13 +129,13 @@
data-userid="{{plan.userid}}">
<td>
{{#plan.canbeedited}}
<span class="drag-handlecontainer float-left"></span>
<span class="drag-handlecontainer float-start"></span>
{{/plan.canbeedited}}
<a data-usercompetency="true" href="#">{{{competency.shortname}}}</a>
<em>{{competency.idnumber}}</em>
{{#comppath}}
<br>
<span class="float-left">{{#str}}path, tool_lp{{/str}}&nbsp;</span>{{> tool_lp/competency_path }}
<span class="float-start">{{#str}}path, tool_lp{{/str}}&nbsp;</span>{{> tool_lp/competency_path }}
{{/comppath}}
</td>
{{#plan.iscompleted}}

View File

@ -34,7 +34,7 @@
}}
<div data-region="plans">
<div class="float-left">
<div class="float-start">
{{#navigation}}
{{{.}}}
{{/navigation}}
@ -155,7 +155,7 @@
{{/plans}}
{{#canreaduserevidence}}
<div class="float-left">
<div class="float-start">
<a href="{{pluginbaseurl}}/user_evidence_list.php?userid={{userid}}">{{#str}}userevidence, tool_lp{{/str}}</a>
</div>
{{/canreaduserevidence}}

View File

@ -54,7 +54,7 @@
{{#relatedcompetencies}}
<li>
{{#showdeleterelatedaction}}
<div class="float-sm-right">
<div class="float-sm-end">
<a href="#" data-action="deleterelation" id="id-related-{{id}}">{{#pix}}t/delete, core, {{#str}}delete{{/str}}{{/pix}}</a>
</div>
{{/showdeleterelatedaction}}

View File

@ -58,7 +58,7 @@
</table>
</div>
<div data-region="scale-buttons" class="mt-1 float-sm-right">
<div data-region="scale-buttons" class="mt-1 float-sm-end">
<input type="button" class="btn btn-secondary" data-action="close" value="{{#str}}closebuttontitle{{/str}}"/>
<input type="button" class="btn btn-secondary" data-action="cancel" value="{{#str}}cancel{{/str}}"/>
</div>

View File

@ -41,8 +41,8 @@
<div class="drag-samenode" data-id="{{competency.id}}">
<div class="border p-2 mb-2">
{{#canmanagetemplatecompetencies}}
<span class="drag-handlecontainer float-left"></span>
<div class="float-sm-right">
<span class="drag-handlecontainer float-start"></span>
<div class="float-sm-end">
<a href="#" data-action="delete-competency-link" data-id="{{competency.id}}">{{#pix}}t/delete, core, {{#str}}delete{{/str}}{{/pix}}</a>
</div>
{{/canmanagetemplatecompetencies}}

View File

@ -35,7 +35,7 @@
// No example context because the JS is connected to webservices
}}
<div class="float-sm-right border p-2 mb-2">
<div class="float-sm-end border p-2 mb-2">
<p>{{{groupselector}}}</p>
<form class="user-competency-course-navigation">
<input type="hidden" name="userid" value="{{userid}}"/>

View File

@ -57,7 +57,7 @@
</dd>
<dt>{{#str}}proficient, tool_lp{{/str}}</dt>
<dd>
<span class="badge {{#proficiency}}bg-success{{/proficiency}}{{^proficiency}}bg-danger{{/proficiency}} text-white float-left">
<span class="badge {{#proficiency}}bg-success{{/proficiency}}{{^proficiency}}bg-danger{{/proficiency}} text-white float-start">
{{proficiencyname}}
</span>
</dd>

View File

@ -81,7 +81,7 @@
{{#usercompetencycourse}}
<dt>{{#str}}proficient, tool_lp{{/str}}</dt>
<dd>
<span class="badge {{#proficiency}}bg-success{{/proficiency}}{{^proficiency}}bg-danger{{/proficiency}} text-white float-left">
<span class="badge {{#proficiency}}bg-success{{/proficiency}}{{^proficiency}}bg-danger{{/proficiency}} text-white float-start">
{{proficiencyname}}
</span>
</dd>

View File

@ -68,7 +68,7 @@
</dd>
<dt>{{#str}}proficient, tool_lp{{/str}}</dt>
<dd>
<span class="badge {{#proficiency}}bg-success{{/proficiency}}{{^proficiency}}bg-danger{{/proficiency}} text-white float-left">
<span class="badge {{#proficiency}}bg-success{{/proficiency}}{{^proficiency}}bg-danger{{/proficiency}} text-white float-start">
{{proficiencyname}}
</span>
</dd>
@ -101,7 +101,7 @@
<dd>{{gradename}} - {{#str}}plancompleted, tool_lp{{/str}}</dd>
<dt>{{#str}}proficient, tool_lp{{/str}}</dt>
<dd>
<span class="badge {{#proficiency}}bg-success{{/proficiency}}{{^proficiency}}bg-danger{{/proficiency}} text-white float-left">
<span class="badge {{#proficiency}}bg-success{{/proficiency}}{{^proficiency}}bg-danger{{/proficiency}} text-white float-start">
{{proficiencyname}}
</span>
</dd>

View File

@ -33,7 +33,7 @@
}}
<div data-region="user-evidence-list">
<div class="float-left">
<div class="float-start">
{{#navigation}}
{{{.}}}
{{/navigation}}

View File

@ -38,7 +38,7 @@
</h2>
{{#canmanage}}
<div data-region="actions" class="clearfix">
<div class="float-left">
<div class="float-start">
{{#userhasplan}}
<button class="btn btn-secondary mb-1" data-action="link-competency">{{#pix}}t/add{{/pix}} {{#str}}linkcompetencies, tool_lp{{/str}}</button>
{{/userhasplan}}
@ -85,7 +85,7 @@
</td>
{{#userevidence.canmanage}}
<td>
<div class="float-left">
<div class="float-start">
<a href="#" data-action="delete-competency-link" data-id="{{competency.id}}">{{#pix}}t/delete, core, {{#str}}delete{{/str}}{{/pix}}</a>
</div>
</td>

View File

@ -168,7 +168,7 @@ class factor extends object_factor_base {
get_string('editphonenumber', 'factor_sms'),
['class' => 'btn btn-secondary', 'type' => 'button']);
$mform->addElement('html', \html_writer::tag('div', $editphonenumber, ['class' => 'float-sm-left col-md-4']));
$mform->addElement('html', \html_writer::tag('div', $editphonenumber, ['class' => 'float-sm-start col-md-4']));
// Disable the form check prompt.
$mform->disable_form_change_checker();

View File

@ -60,14 +60,14 @@
{{#behalfuser}}
<div class="clearfix">
<div class="float-right mb-2">
<div class="float-end mb-2">
{{# str }} viewconsentpageforuser, tool_policy, {{{ . }}} {{/ str }}
</div>
</div>
{{/behalfuser}}
<div class="clearfix">
<div class="float-left">
<div class="float-start">
<h2>{{# str }}consentpagetitle, tool_policy{{/ str }}</h2>
</div>
</div>

View File

@ -100,7 +100,7 @@
<h3>{{# str }} policydoccontent, tool_policy {{/ str }}</h3>
{{{content}}}
</div>
<div class="float-right">
<div class="float-end">
<a href="#top">
{{# str }} backtotop, tool_policy {{/ str }}
<i class="icon text-primary fa fa-caret-up" title="{{# str }} backtotop, tool_policy {{/ str }}" ></i>

View File

@ -45,11 +45,11 @@
<a id="top"></a>
<div class="clearfix">
<div class="float-left">
<div class="float-start">
<h2>{{{policy.name}}}</h2>
</div>
{{# numpolicy }}
<div class="float-right">
<div class="float-end">
{{# str }} steppolicies, tool_policy,
{ "numpolicy": {{# quote }}{{numpolicy}}{{/quote }}, "totalpolicies": {{# quote }}{{totalpolicies}}{{/ quote }} }
{{/ str }}
@ -96,7 +96,7 @@
<a role="button" href="{{declineurl}}" class="btn btn-link">{{#str}} idontagree, tool_policy, {{{policy.name}}} {{/str}}</a>
{{/declineurl}}
<div class="float-right">
<div class="float-end">
<a href="#top">
{{# str }} backtotop, tool_policy {{/ str }}
<i class="icon text-primary fa fa-caret-up" title="{{# str }} backtotop, tool_policy {{/ str }}" ></i>

View File

@ -67,7 +67,7 @@
<div class="event-name-container flex-grow-1 line-height-3 nowrap text-truncate">
<div class="d-flex">
<h6 class="event-name mb-0 pb-1 text-truncate">
{{#overdue}}<span class="badge rounded-pill bg-danger text-white ms-1 float-right">{{#str}} overdue, block_timeline {{/str}}</span>{{/overdue}}
{{#overdue}}<span class="badge rounded-pill bg-danger text-white ms-1 float-end">{{#str}} overdue, block_timeline {{/str}}</span>{{/overdue}}
<a href="{{url}}"
title="{{name}}"
aria-label='{{#cleanstr}} ariaeventlistitem, block_timeline, { "name": {{#quote}}{{{activityname}}}{{/quote}}, "course": {{#quote}}{{{course.fullnamedisplay}}}{{/quote}}, "date": "{{#userdate}} {{timesort}}, {{#str}} strftimedatetime, core_langconfig {{/str}} {{/userdate}}" } {{/cleanstr}}'>

View File

@ -83,7 +83,7 @@ function blog_rss_print_link($context, $filtertype, $filterselect = 0, $tagid =
$url = blog_rss_get_url($context->id, $userid, $filtertype, $filterselect, $tagid);
$rsspix = $OUTPUT->pix_icon('i/rss', get_string('rss'), 'core', array('title' => $tooltiptext));
print '<div class="float-sm-right"><a href="'. $url .'">' . $rsspix . '</a></div>';
print '<div class="float-sm-end"><a href="'. $url .'">' . $rsspix . '</a></div>';
}
/**

View File

@ -116,7 +116,7 @@ class core_calendar_renderer extends plugin_renderer_base {
$deletelink = null;
}
$commands = html_writer::start_tag('div', array('class' => 'commands float-sm-right'));
$commands = html_writer::start_tag('div', array('class' => 'commands float-sm-end'));
$commands .= html_writer::start_tag('a', array('href' => $editlink));
$str = get_string('tt_editevent', 'calendar');
$commands .= $this->output->pix_icon('t/edit', $str);
@ -160,9 +160,9 @@ class core_calendar_renderer extends plugin_renderer_base {
$output .= html_writer::tag('div', $event->courselink);
}
if (!empty($event->time)) {
$output .= html_writer::tag('span', $event->time, array('class' => 'date float-sm-right me-1'));
$output .= html_writer::tag('span', $event->time, array('class' => 'date float-sm-end me-1'));
} else {
$attrs = array('class' => 'date float-sm-right me-1');
$attrs = array('class' => 'date float-sm-end me-1');
$output .= html_writer::tag('span', calendar_time_representation($event->timestart), $attrs);
}
@ -277,10 +277,10 @@ class core_calendar_renderer extends plugin_renderer_base {
public function render_subscriptions_header(): string {
$importcalendarbutton = new single_button(new moodle_url('/calendar/import.php', calendar_get_export_import_link_params()),
get_string('importcalendar', 'calendar'), 'get', single_button::BUTTON_PRIMARY);
$importcalendarbutton->class .= ' float-sm-right float-right';
$importcalendarbutton->class .= ' float-sm-end float-end';
$exportcalendarbutton = new single_button(new moodle_url('/calendar/export.php', calendar_get_export_import_link_params()),
get_string('exportcalendar', 'calendar'), 'get', single_button::BUTTON_PRIMARY);
$exportcalendarbutton->class .= ' float-sm-right float-right';
$exportcalendarbutton->class .= ' float-sm-end float-end';
$output = $this->output->heading(get_string('managesubscriptions', 'calendar'));
$output .= html_writer::start_div('header d-flex flex-wrap mt-5');
$headerattr = [
@ -395,7 +395,7 @@ class core_calendar_renderer extends plugin_renderer_base {
* @return string
*/
protected function subscription_action_links(): string {
$html = html_writer::start_tag('div', array('class' => 'btn-group float-left'));
$html = html_writer::start_tag('div', array('class' => 'btn-group float-start'));
$html .= html_writer::span(html_writer::link('#', get_string('delete'),
['data-action' => 'delete-subscription']), '');
$html .= html_writer::end_tag('div');

View File

@ -34,7 +34,7 @@
}}
{{#defaulteventcontext}}
<button{{!
}} class="btn btn-primary float-sm-right float-right ml-1 mb-2"{{!
}} class="btn btn-primary float-sm-end float-end ms-1 mb-2"{{!
}} data-context-id="{{defaulteventcontext}}"{{!
}} data-action="new-event-button"{{!
}}>

View File

@ -61,7 +61,7 @@
}}>
<div class="card rounded">
<div class="box card-header clearfix calendar_event_{{normalisedeventtype}}">
<div class="commands float-sm-right">
<div class="commands float-sm-end">
{{#canedit}}
{{#candelete}}
<a href="{{deleteurl}}" data-action="delete" aria-label="{{#str}}delete{{/str}}" title="{{#str}}delete{{/str}}">

View File

@ -211,7 +211,7 @@ class core_course_management_renderer extends plugin_renderer_base {
$viewcaturl,
$icon,
array(
'class' => 'float-left',
'class' => 'float-start',
'data-action' => 'collapse',
'title' => get_string('collapsecategory', 'moodle', $text),
'aria-controls' => 'subcategoryof'.$category->id
@ -224,7 +224,7 @@ class core_course_management_renderer extends plugin_renderer_base {
$viewcaturl,
$icon,
array(
'class' => 'float-left',
'class' => 'float-start',
'data-action' => 'expand',
'title' => get_string('expandcategory', 'moodle', $text)
)
@ -235,14 +235,14 @@ class core_course_management_renderer extends plugin_renderer_base {
'',
'moodle',
array('class' => 'tree-icon'));
$icon = html_writer::span($icon, 'float-left');
$icon = html_writer::span($icon, 'float-start');
}
$actions = \core_course\management\helper::get_category_listitem_actions($category);
$hasactions = !empty($actions) || $category->can_create_course();
$html = html_writer::start_tag('li', $attributes);
$html .= html_writer::start_div('clearfix');
$html .= html_writer::start_div('float-left ' . $checkboxclass);
$html .= html_writer::start_div('float-start ' . $checkboxclass);
$html .= html_writer::start_div('custom-control custom-checkbox me-1 ');
$html .= html_writer::empty_tag('input', $bcatinput);
$labeltext = html_writer::span(get_string('bulkactionselect', 'moodle', $text), 'sr-only');
@ -253,15 +253,15 @@ class core_course_management_renderer extends plugin_renderer_base {
$html .= html_writer::end_div();
$html .= $icon;
if ($hasactions) {
$textattributes = array('class' => 'float-left categoryname aalink');
$textattributes = array('class' => 'float-start categoryname aalink');
} else {
$textattributes = array('class' => 'float-left categoryname without-actions');
$textattributes = array('class' => 'float-start categoryname without-actions');
}
if (isset($textlabel)) {
$textattributes['aria-label'] = $textlabel;
}
$html .= html_writer::link($viewcaturl, $text, $textattributes);
$html .= html_writer::start_div('float-right d-flex');
$html .= html_writer::start_div('float-end d-flex');
if ($category->idnumber) {
$html .= html_writer::tag('span', s($category->idnumber), array('class' => 'text-muted idnumber'));
}
@ -620,10 +620,10 @@ class core_course_management_renderer extends plugin_renderer_base {
if ($category->can_resort_courses()) {
// In order for dnd to be available the user must be able to resort the category children..
$html .= html_writer::div($this->output->pix_icon('i/move_2d', get_string('dndcourse')), 'float-left drag-handle');
$html .= html_writer::div($this->output->pix_icon('i/move_2d', get_string('dndcourse')), 'float-start drag-handle');
}
$html .= html_writer::start_div('float-left ' . $checkboxclass);
$html .= html_writer::start_div('float-start ' . $checkboxclass);
$html .= html_writer::start_div('custom-control custom-checkbox me-1 ');
$html .= html_writer::empty_tag('input', $bulkcourseinput);
$labeltext = html_writer::span(get_string('bulkactionselect', 'moodle', $text), 'sr-only');
@ -1201,7 +1201,7 @@ class core_course_management_renderer extends plugin_renderer_base {
$html = html_writer::start_tag('li', $attributes);
$html .= html_writer::start_div('clearfix');
$html .= html_writer::start_div('float-left');
$html .= html_writer::start_div('float-start');
if ($bulkcourseinput) {
$html .= html_writer::start_div('custom-control custom-checkbox me-1');
$html .= html_writer::empty_tag('input', $bulkcourseinput);
@ -1212,9 +1212,9 @@ class core_course_management_renderer extends plugin_renderer_base {
$html .= html_writer::end_div();
}
$html .= html_writer::end_div();
$html .= html_writer::link($viewcourseurl, $text, array('class' => 'float-left coursename aalink'));
$html .= html_writer::tag('span', $categoryname, array('class' => 'float-left ms-3 text-muted'));
$html .= html_writer::start_div('float-right');
$html .= html_writer::link($viewcourseurl, $text, array('class' => 'float-start coursename aalink'));
$html .= html_writer::tag('span', $categoryname, array('class' => 'float-start ms-3 text-muted'));
$html .= html_writer::start_div('float-end');
$html .= $this->search_listitem_actions($course);
$html .= html_writer::tag('span', s($course->idnumber), array('class' => 'text-muted idnumber'));
$html .= html_writer::end_div();

View File

@ -67,7 +67,7 @@
<div class="mt-5 mb-1 activity-navigation container-fluid">
{{< core/columns-1to1to1}}
{{$column1}}
<div class="float-left">
<div class="float-start">
{{#prevlink}}{{> core/action_link }}{{/prevlink}}
</div>
{{/column1}}
@ -77,7 +77,7 @@
</div>
{{/column2}}
{{$column3}}
<div class="float-right">
<div class="float-end">
{{#nextlink}}{{> core/action_link }}{{/nextlink}}
</div>
{{/column3}}

View File

@ -108,7 +108,7 @@ class management implements renderable, templatable {
'data-typename' => $fieldname]);
$menu->add($action);
}
$menu->attributes['class'] .= ' float-left me-1';
$menu->attributes['class'] .= ' float-start me-1';
$categoryarray['addfieldmenu'] = $output->render($menu);

View File

@ -62,7 +62,7 @@
<div class="row">
<div class="col align-self-end">
{{#usescategories}}
<a tabindex="0" role="button" class="btn btn-secondary float-right" data-role="addnewcategory">{{#str}}addnewcategory, core_customfield{{/str}}</a>
<a tabindex="0" role="button" class="btn btn-secondary float-end" data-role="addnewcategory">{{#str}}addnewcategory, core_customfield{{/str}}</a>
{{/usescategories}}
</div>
</div>

View File

@ -191,7 +191,7 @@ class singleview extends grade_report {
['data-action' => $type, 'data-role' => 'bulkaction']);
$menu->add($action);
}
$menu->attributes['class'] .= ' float-left my-auto';
$menu->attributes['class'] .= ' float-start my-auto';
return $output->render($menu);
}

View File

@ -100,8 +100,8 @@
{{#types.0}}
{{! The tree provides its own accessibility controls, these two links are here for mouse users.
For that reason, we hide them from assistive technologies. }}
<small aria-hidden="true" data-filetypesbrowserfeature="hideifexpanded" class="float-right float-right"><a href="#">{{#str}}expand{{/str}}</a></small>
<small aria-hidden="true" data-filetypesbrowserfeature="hideifcollapsed" class="float-right float-right"><a href="#">{{#str}}collapse{{/str}}</a></small>
<small aria-hidden="true" data-filetypesbrowserfeature="hideifexpanded" class="float-end"><a href="#">{{#str}}expand{{/str}}</a></small>
<small aria-hidden="true" data-filetypesbrowserfeature="hideifcollapsed" class="float-end"><a href="#">{{#str}}collapse{{/str}}</a></small>
{{/types.0}}
<ul class="unstyled list-unstyled" role="group">
{{#types}}

View File

@ -43,7 +43,7 @@
{{/title}}
{{#hascontrols}}
<div class="block-controls float-right header">
<div class="block-controls float-end header">
{{{controls}}}
</div>
{{/hascontrols}}

View File

@ -63,7 +63,7 @@
</div>
<div class="fp-tb-message"></div>
</div>
<div class="fp-viewbar btn-group float-sm-right">
<div class="fp-viewbar btn-group float-sm-end">
<a role="button" title="{{#str}}displayicons, repository{{/str}}" class="fp-vb-icons btn btn-secondary btn-sm" href="#">
{{#pix}}fp/view_icon_active, theme{{/pix}}
</a>

View File

@ -59,7 +59,7 @@
{{#pix}}i/loading_small{{/pix}}
</span>
</div>
<div class="fp-viewbar btn-group float-sm-right">
<div class="fp-viewbar btn-group float-sm-end">
<a title="{{#str}}displayicons, repository{{/str}}" class="fp-vb-icons btn btn-secondary btn-sm" href="#">
{{#pix}}fp/view_icon_active, theme{{/pix}}
</a>

View File

@ -37,7 +37,7 @@
<button href="#" class="btn btn-secondary" data-for="pin" data-alt="{{#str}} reactive_pin , core_debug {{/str}}">
{{#str}} reactive_unpin , core_debug {{/str}}
</button>
<button href="#" class="btn btn-danger float-right" data-for="close">
<button href="#" class="btn btn-danger float-end" data-for="close">
{{#str}} close , admin {{/str}}
</button>
</h5>

View File

@ -87,7 +87,7 @@
aria-label="{{#str}} conversationactions, core_message {{/str}}" aria-controls="conversation-actions-menu">
{{#pix}} i/moremenu, core {{/pix}}
</button>
<div id="conversation-actions-menu" class="dropdown-menu float-right" role="menu"
<div id="conversation-actions-menu" class="dropdown-menu float-end" role="menu"
aria-labelledby="conversation-actions-menu-button">
<a class="dropdown-item" href="#" data-action="view-contact" role="menuitem">
{{#str}} info, core_message {{/str}}

View File

@ -81,7 +81,7 @@
aria-label="{{#str}} conversationactions, core_message {{/str}}" aria-controls="conversation-actions-menu">
{{#pix}} i/moremenu, core {{/pix}}
</button>
<div id="conversation-actions-menu" class="dropdown-menu float-right" role="menu"
<div id="conversation-actions-menu" class="dropdown-menu float-end" role="menu"
aria-labelledby="conversation-actions-menu-button">
<a class="dropdown-item" href="#" data-action="view-group-info" role="menuitem">
{{#str}} groupinfo, core_message {{/str}}

View File

@ -57,7 +57,7 @@
</div>
<div data-region="grade-actions-panel">
<div data-region="grade-actions">
<div class="tool_usertours-resettourcontainer float-left"></div>
<div class="tool_usertours-resettourcontainer float-start"></div>
{{> mod_assign/grading_actions }}
</div>
</div>

View File

@ -65,7 +65,7 @@
<div class="text-right">{{{ printdialoglink }}}</div>
<div class="text-center pb-3 book_title">{{{ booktitle }}}</div>
<div class="book_info w-100 pt-6 d-inline-block">
<div class="w-50 float-left">
<div class="w-50 float-start">
<table>
<tr>
<td>
@ -93,8 +93,8 @@
</tr>
</table>
</div>
<div class="w-50 float-left">
<table class="float-right">
<div class="w-50 float-start">
<table class="float-end">
<tr>
<td>
{{# str }} printedby, booktool_print {{/ str }}:

View File

@ -86,7 +86,7 @@
<td class="p-4">{{description}}</td>
<td class="p-4 preset_action_menu">
{{#actions}}
<div class="float-right">
<div class="float-end">
{{>core/action_menu}}
</div>
{{/actions}}

View File

@ -111,7 +111,7 @@ class subscription_actionbar implements renderable, templatable {
$urlselect = new url_select($menu, $this->currenturl, ['' => $set], 'selectsubscriptionoptions');
$urlselect->set_label(get_string('subscriptionmode', 'mod_forum'), ['class' => 'me-1']);
$urlselect->set_help_icon('subscriptionmode', 'mod_forum');
$urlselect->class .= ' float-right';
$urlselect->class .= ' float-end';
return $urlselect;
}

View File

@ -67,7 +67,7 @@
<br />
<div class="d-inline-block w-100">
{{#showbulkactions}}
<div class="buttons float-left">
<div class="buttons float-start">
<div class="d-flex flex-wrap align-items-center ps-1">
<label for="{{id}}">{{#str}}withselectedusers{{/str}}</label>
<select id="{{id}}" class="select custom-select ms-4" {{#attributes}}{{name}}="{{value}}" {{/attributes}}>
@ -79,7 +79,7 @@
</div>
</div>
{{/showbulkactions}}
<div class="float-right">
<div class="float-end">
{{#perpage}}
{{> core/single_select}}
{{/perpage}}

View File

@ -29,11 +29,11 @@
<h3 class="popover-header">{{# str}} filter:datesname, forumreport_summary {{/ str}}</h3>
<div class="popover-body" data-region="filter-dates">
{{{filterdatesform}}}
<div id="dates-filter-warning" class="form-control-feedback text-danger hidden float-right">
<div id="dates-filter-warning" class="form-control-feedback text-danger hidden float-end">
{{# str}} filter:datesorderwarning, forumreport_summary {{/ str}}
</div>
<br>&nbsp;
<button type="button" class="filter-save float-right btn btn-link p-0" aria-label="{{# str}} save {{/ str}}">
<button type="button" class="filter-save float-end btn btn-link p-0" aria-label="{{# str}} save {{/ str}}">
<strong>{{# str}} save {{/ str}}</strong>
</button>
</div>

View File

@ -66,7 +66,7 @@
</div>
<div class="filter-actions">
<button type="button" class="select-all btn btn-link p-0 pe-1" aria-label="{{# str}} selectall {{/ str}}">{{# str}} selectall {{/ str}}</button>
<div class="float-right">
<div class="float-end">
<button type="button" class="filter-clear btn btn-link p-0 px-1" aria-label="{{# str}} clear {{/ str}}">{{# str}} clear {{/ str}}</button>
<button type="button" class="filter-save btn btn-link p-0" aria-label="{{# str}} save {{/ str}}">
<strong>{{# str}} save {{/ str}}</strong>

View File

@ -27,7 +27,7 @@
{
"subscriptionoptions": {
"formid": "selectsubscriptions",
"classes": "urlselect float-right",
"classes": "urlselect float-end",
"disabled": false,
"sesskey": "abcdef",
"action": "http://localhost/course/jumpto.php",

View File

@ -65,7 +65,7 @@
<label class="form-check-label" for="private-reply-checkbox-{{uniqid}}">{{#str}} privatereply, forum {{/str}}</label>
</div>
{{/canreplyprivately}}
<button data-action="forum-advanced-reply" class="btn btn-link float-right" type="submit">
<button data-action="forum-advanced-reply" class="btn btn-link float-end" type="submit">
{{#str}} advanced, core {{/str}}
</button>
</div>

View File

@ -16,7 +16,7 @@
</div>
<div id="fitem_id_usedynalink" class="mb-3 row fitem">
<div class="col-md-3">
<span class="float-sm-right text-nowrap">
<span class="float-sm-end text-nowrap">
<?php echo $OUTPUT->help_icon('linkcategory', 'glossary') ?>
</span>
<label class="col-form-label d-inline " for="usedynalink">
@ -41,7 +41,7 @@
</div>
<div id="fgroup_id_buttonar" class="mb-3 row fitem femptylabel" data-groupname="buttonar">
<div class="col-md-3">
<span class="float-sm-right text-nowrap">
<span class="float-sm-end text-nowrap">
</span>
<label class="col-form-label d-inline " for="fgroup_id_buttonar">
</label>

View File

@ -106,7 +106,7 @@
{{#state.unknown}}bg-warning text-dark{{/state.unknown}}">
{{state.text}}
</div>
<div class="tool-card-actions float-sm-right">
<div class="tool-card-actions float-sm-end">
{{#courseid}}
<a href="{{{urls.course}}}" title="{{#str}} courselink, mod_lti {{/str}}">{{#pix}} i/course, core, {{#str}} courselink, mod_lti {{/str}}{{/pix}}</a>
{{/courseid}}

View File

@ -78,7 +78,7 @@
{{#state.unknown}}bg-warning text-dark{{/state.unknown}}">
{{state.text}}
</div>
<div class="tool-card-actions float-sm-right">
<div class="tool-card-actions float-sm-end">
{{#courseid}}
<a href="{{{urls.course}}}" title="{{#str}} courselink, mod_lti {{/str}}">{{#pix}} i/course, core, {{#str}} courselink, mod_lti {{/str}}{{/pix}}</a>
{{/courseid}}

View File

@ -65,7 +65,7 @@
{{/urlselect}}
{{#download}}
<div class="navitem ms-sm-auto">
<a class="btn btn-secondary float-right" href="{{link}}">{{text}}</a>
<a class="btn btn-secondary float-end" href="{{link}}">{{text}}</a>
</div>
{{/download}}
</div>

View File

@ -22,7 +22,7 @@
Example context (json):
{ "hasusers": false, "hasmodules": false}
}}
<div class="float-right border p-2 mb-2">
<div class="float-end border p-2 mb-2">
<p>{{{groupselector}}}</p>
<form class="user-competency-course-navigation">
<input type="hidden" name="user" value="{{userid}}"/>

View File

@ -52,7 +52,7 @@
data-column-sort-position="{{sortorder}}">
{{>core/drag_handle}}
{{#sorticon}}
<span class="float-right">
<span class="float-end">
<button id="toggle-sort-direction-{{id}}"
class="btn btn-link p-0"
data-action="report-toggle-sort-direction"

View File

@ -37,3 +37,15 @@
@extend .mr#{$infix}-auto;
}
}
// Generate all float classes for all breakpoints for directions start and end.
// float-start > float-left, float-sm-end > float-sm-right, ...
@each $breakpoint in map-keys($grid-breakpoints) {
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
.float#{$infix}-start {
@extend .float#{$infix}-left;
}
.float#{$infix}-end {
@extend .float#{$infix}-right;
}
}

View File

@ -2432,15 +2432,6 @@ body.h5p-embed {
z-index: 1 !important; /* stylelint-disable-line declaration-no-important */
}
// These floats are deprecated in Bootstrap 4.3.1. It is still okay to use them in Moodle.
.float-left {
float: left !important; /* stylelint-disable-line declaration-no-important */
}
.float-right {
float: right !important; /* stylelint-disable-line declaration-no-important */
}
.img-responsive {
@include img-fluid();
}

View File

@ -807,11 +807,11 @@ span.editinstructions {
.listitem {
> div {
> .float-left {
> .float-start {
float: left;
}
> .float-right {
> .float-end {
float: right;
text-align: right;
}

View File

@ -20313,11 +20313,11 @@ button.bg-dark:focus {
align-self: stretch !important;
}
}
.float-left {
.float-left, .float-start {
float: left !important;
}
.float-right {
.float-right, .float-end {
float: right !important;
}
@ -20326,10 +20326,10 @@ button.bg-dark:focus {
}
@media (min-width: 576px) {
.float-sm-left {
.float-sm-left, .float-sm-start {
float: left !important;
}
.float-sm-right {
.float-sm-right, .float-sm-end {
float: right !important;
}
.float-sm-none {
@ -20337,10 +20337,10 @@ button.bg-dark:focus {
}
}
@media (min-width: 768px) {
.float-md-left {
.float-md-left, .float-md-start {
float: left !important;
}
.float-md-right {
.float-md-right, .float-md-end {
float: right !important;
}
.float-md-none {
@ -20348,10 +20348,10 @@ button.bg-dark:focus {
}
}
@media (min-width: 992px) {
.float-lg-left {
.float-lg-left, .float-lg-start {
float: left !important;
}
.float-lg-right {
.float-lg-right, .float-lg-end {
float: right !important;
}
.float-lg-none {
@ -20359,10 +20359,10 @@ button.bg-dark:focus {
}
}
@media (min-width: 1200px) {
.float-xl-left {
.float-xl-left, .float-xl-start {
float: left !important;
}
.float-xl-right {
.float-xl-right, .float-xl-end {
float: right !important;
}
.float-xl-none {
@ -25433,14 +25433,6 @@ body.h5p-embed .h5pmessages {
z-index: 1 !important; /* stylelint-disable-line declaration-no-important */
}
.float-left {
float: left !important; /* stylelint-disable-line declaration-no-important */
}
.float-right {
float: right !important; /* stylelint-disable-line declaration-no-important */
}
.img-responsive {
max-width: 100%;
height: auto;
@ -28737,10 +28729,10 @@ span.editinstructions .alert-link {
#course-category-listings .item-actions .menu-action-text {
vertical-align: inherit;
}
#course-category-listings .listitem > div > .float-left {
#course-category-listings .listitem > div > .float-start {
float: left;
}
#course-category-listings .listitem > div > .float-right {
#course-category-listings .listitem > div > .float-end {
float: right;
text-align: right;
}

View File

@ -20313,11 +20313,11 @@ button.bg-dark:focus {
align-self: stretch !important;
}
}
.float-left {
.float-left, .float-start {
float: left !important;
}
.float-right {
.float-right, .float-end {
float: right !important;
}
@ -20326,10 +20326,10 @@ button.bg-dark:focus {
}
@media (min-width: 576px) {
.float-sm-left {
.float-sm-left, .float-sm-start {
float: left !important;
}
.float-sm-right {
.float-sm-right, .float-sm-end {
float: right !important;
}
.float-sm-none {
@ -20337,10 +20337,10 @@ button.bg-dark:focus {
}
}
@media (min-width: 768px) {
.float-md-left {
.float-md-left, .float-md-start {
float: left !important;
}
.float-md-right {
.float-md-right, .float-md-end {
float: right !important;
}
.float-md-none {
@ -20348,10 +20348,10 @@ button.bg-dark:focus {
}
}
@media (min-width: 992px) {
.float-lg-left {
.float-lg-left, .float-lg-start {
float: left !important;
}
.float-lg-right {
.float-lg-right, .float-lg-end {
float: right !important;
}
.float-lg-none {
@ -20359,10 +20359,10 @@ button.bg-dark:focus {
}
}
@media (min-width: 1200px) {
.float-xl-left {
.float-xl-left, .float-xl-start {
float: left !important;
}
.float-xl-right {
.float-xl-right, .float-xl-end {
float: right !important;
}
.float-xl-none {
@ -25433,14 +25433,6 @@ body.h5p-embed .h5pmessages {
z-index: 1 !important; /* stylelint-disable-line declaration-no-important */
}
.float-left {
float: left !important; /* stylelint-disable-line declaration-no-important */
}
.float-right {
float: right !important; /* stylelint-disable-line declaration-no-important */
}
.img-responsive {
max-width: 100%;
height: auto;
@ -28737,10 +28729,10 @@ span.editinstructions .alert-link {
#course-category-listings .item-actions .menu-action-text {
vertical-align: inherit;
}
#course-category-listings .listitem > div > .float-left {
#course-category-listings .listitem > div > .float-start {
float: left;
}
#course-category-listings .listitem > div > .float-right {
#course-category-listings .listitem > div > .float-end {
float: right;
text-align: right;
}

View File

@ -142,7 +142,7 @@ foreach ($categories as $category) {
'data-datatypename' => $fieldname]);
$menu->add($action);
}
$menu->attributes['class'] .= ' float-left me-1';
$menu->attributes['class'] .= ' float-start me-1';
// Add category information to the template.
$outputcategories[] = [

View File

@ -53,7 +53,7 @@
<div class="row profileeditor">
<div class="col align-self-end">
<a tabindex="0" role="button" class="btn btn-secondary float-right" data-action="editcategory">{{#str}}profilecreatecategory, admin{{/str}}</a>
<a tabindex="0" role="button" class="btn btn-secondary float-end" data-action="editcategory">{{#str}}profilecreatecategory, admin{{/str}}</a>
</div>
</div>