MDL-68556 admin: Fix some minor styling issues on the plugins check page

The patch fixes missing space around elements and some other minor
visual issues detected. This was a good opportunity to get rid of custom
CSS rules and use the native bootstrap classes and utilities.
This commit is contained in:
David Mudrák
2020-04-29 14:53:15 +02:00
parent 686468bae6
commit 0b7412e092
4 changed files with 44 additions and 250 deletions
+42 -34
View File
@@ -361,14 +361,15 @@ class core_admin_renderer extends plugin_renderer_base {
$output = '';
if ($checker->enabled()) {
$output .= $this->container_start('checkforupdates');
$output .= $this->container_start('checkforupdates mb-4');
$output .= $this->single_button(
new moodle_url($reloadurl, array('fetchupdates' => 1)),
get_string('checkforupdates', 'core_plugin')
);
if ($timefetched = $checker->get_last_timefetched()) {
$timefetched = userdate($timefetched, get_string('strftimedatetime', 'core_langconfig'));
$output .= $this->container(get_string('checkforupdateslast', 'core_plugin', $timefetched), 'lasttimefetched');
$output .= $this->container(get_string('checkforupdateslast', 'core_plugin', $timefetched),
'lasttimefetched small text-muted mt-1');
}
$output .= $this->container_end();
}
@@ -1055,7 +1056,7 @@ class core_admin_renderer extends plugin_renderer_base {
$displayname = new html_table_cell(
$icon.
html_writer::span($plugin->displayname, 'pluginname').
html_writer::div($plugin->get_dir(), 'plugindir')
html_writer::div($plugin->get_dir(), 'plugindir text-muted small')
);
$versiondb = new html_table_cell($plugin->versiondb);
@@ -1090,7 +1091,7 @@ class core_admin_renderer extends plugin_renderer_base {
break;
case core_plugin_manager::PLUGIN_STATUS_NODB:
case core_plugin_manager::PLUGIN_STATUS_UPTODATE:
$statusclass .= $dependenciesok ? '' : 'badge-warning';
$statusclass .= $dependenciesok ? 'badge-light' : 'badge-warning';
break;
}
$status = html_writer::span(get_string('status_' . $statuscode, 'core_plugin'), $statusclass);
@@ -1100,7 +1101,7 @@ class core_admin_renderer extends plugin_renderer_base {
new moodle_url($this->page->url, array('abortinstall' => $plugin->component)),
get_string('cancelinstallone', 'core_plugin'),
'post',
array('class' => 'actionbutton cancelinstallone')
array('class' => 'actionbutton cancelinstallone d-block mt-1')
);
}
@@ -1109,7 +1110,7 @@ class core_admin_renderer extends plugin_renderer_base {
new moodle_url($this->page->url, array('abortupgrade' => $plugin->component)),
get_string('cancelupgradeone', 'core_plugin'),
'post',
array('class' => 'actionbutton cancelupgradeone')
array('class' => 'actionbutton cancelupgradeone d-block mt-1')
);
}
@@ -1179,7 +1180,7 @@ class core_admin_renderer extends plugin_renderer_base {
}
}
$out .= $this->output->container_start('actions');
$out .= $this->output->container_start('actions mb-2');
$installableupdates = $pluginman->filter_installable($pluginman->available_updates());
if ($installableupdates) {
@@ -1187,7 +1188,7 @@ class core_admin_renderer extends plugin_renderer_base {
new moodle_url($this->page->url, array('installupdatex' => 1)),
get_string('updateavailableinstallall', 'core_admin', count($installableupdates)),
'post',
array('class' => 'singlebutton updateavailableinstallall')
array('class' => 'singlebutton updateavailableinstallall mr-1')
);
}
@@ -1196,7 +1197,7 @@ class core_admin_renderer extends plugin_renderer_base {
new moodle_url($this->page->url, array('abortinstallx' => 1)),
get_string('cancelinstallall', 'core_plugin', count($installabortable)),
'post',
array('class' => 'singlebutton cancelinstallall')
array('class' => 'singlebutton cancelinstallall mr-1')
);
}
@@ -1205,15 +1206,17 @@ class core_admin_renderer extends plugin_renderer_base {
new moodle_url($this->page->url, array('abortupgradex' => 1)),
get_string('cancelupgradeall', 'core_plugin', count($upgradeabortable)),
'post',
array('class' => 'singlebutton cancelupgradeall')
array('class' => 'singlebutton cancelupgradeall mr-1')
);
}
$out .= html_writer::div(html_writer::link(new moodle_url($this->page->url, array('showallplugins' => 0)),
get_string('plugincheckattention', 'core_plugin')).' '.html_writer::span($sumattention, 'badge'));
get_string('plugincheckattention', 'core_plugin')).' '.html_writer::span($sumattention, 'badge badge-light'),
'btn btn-link mr-1');
$out .= html_writer::div(html_writer::link(new moodle_url($this->page->url, array('showallplugins' => 1)),
get_string('plugincheckall', 'core_plugin')).' '.html_writer::span($sumtotal, 'badge'));
get_string('plugincheckall', 'core_plugin')).' '.html_writer::span($sumtotal, 'badge badge-light'),
'btn btn-link mr-1');
$out .= $this->output->container_end(); // End of .actions container.
$out .= $this->output->container_end(); // End of #plugins-check-info container.
@@ -1281,12 +1284,13 @@ class core_admin_renderer extends plugin_renderer_base {
}
}
$out = $this->output->container_start('plugins-check-dependencies');
$out = $this->output->container_start('plugins-check-dependencies mb-4');
if ($unavailable or $unknown) {
$out .= $this->output->heading(get_string('misdepsunavail', 'core_plugin'));
if ($unknown) {
$out .= $this->output->notification(get_string('misdepsunknownlist', 'core_plugin', implode($unknown, ', ')));
$out .= $this->output->render((new \core\output\notification(get_string('misdepsunknownlist', 'core_plugin',
implode(', ', $unknown))))->set_show_closebutton(false));
}
if ($unavailable) {
$unavailablelist = array();
@@ -1300,18 +1304,18 @@ class core_admin_renderer extends plugin_renderer_base {
}
$unavailablelist[] = $unavailablelistitem;
}
$out .= $this->output->notification(get_string('misdepsunavaillist', 'core_plugin',
implode($unavailablelist, ', ')));
$out .= $this->output->render((new \core\output\notification(get_string('misdepsunavaillist', 'core_plugin',
implode(', ', $unavailablelist))))->set_show_closebutton(false));
}
$out .= $this->output->container_start('plugins-check-dependencies-actions');
$out .= $this->output->container_start('plugins-check-dependencies-actions mb-4');
$out .= ' '.html_writer::link(new moodle_url('/admin/tool/installaddon/'),
get_string('dependencyuploadmissing', 'core_plugin'));
get_string('dependencyuploadmissing', 'core_plugin'), array('class' => 'btn btn-secondary'));
$out .= $this->output->container_end(); // End of .plugins-check-dependencies-actions container.
}
if ($available) {
$out .= $this->output->heading(get_string('misdepsavail', 'core_plugin'));
$out .= $this->output->container_start('plugins-check-dependencies-actions');
$out .= $this->output->container_start('plugins-check-dependencies-actions mb-2');
$installable = $pluginman->filter_installable($available);
if ($installable) {
@@ -1319,12 +1323,13 @@ class core_admin_renderer extends plugin_renderer_base {
new moodle_url($this->page->url, array('installdepx' => 1)),
get_string('dependencyinstallmissing', 'core_plugin', count($installable)),
'post',
array('class' => 'singlebutton dependencyinstallmissing')
array('class' => 'singlebutton dependencyinstallmissing d-inline-block mr-1')
);
}
$out .= html_writer::div(html_writer::link(new moodle_url('/admin/tool/installaddon/'),
get_string('dependencyuploadmissing', 'core_plugin')), 'dependencyuploadmissing');
get_string('dependencyuploadmissing', 'core_plugin'), array('class' => 'btn btn-link')),
'dependencyuploadmissing d-inline-block mr-1');
$out .= $this->output->container_end(); // End of .plugins-check-dependencies-actions container.
@@ -1365,7 +1370,7 @@ class core_admin_renderer extends plugin_renderer_base {
if ($CFG->branch == str_replace('.', '', $moodle->release)) {
$supportedmoodles[] = html_writer::span($moodle->release, 'badge badge-success');
} else {
$supportedmoodles[] = html_writer::span($moodle->release, 'label');
$supportedmoodles[] = html_writer::span($moodle->release, 'badge badge-light');
}
}
@@ -1379,7 +1384,7 @@ class core_admin_renderer extends plugin_renderer_base {
}
$info = html_writer::div(
get_string('requiredby', 'core_plugin', implode(', ', $requriedby)),
'requiredby'
'requiredby mb-1'
);
} else {
$info = '';
@@ -1390,35 +1395,36 @@ class core_admin_renderer extends plugin_renderer_base {
$info .= html_writer::div(
html_writer::link('https://moodle.org/plugins/view.php?plugin='.$plugin->component,
get_string('misdepinfoplugin', 'core_plugin')),
'misdepinfoplugin'
'misdepinfoplugin d-inline-block mr-3 mb-1'
);
$info .= html_writer::div(
html_writer::link('https://moodle.org/plugins/pluginversion.php?id='.$plugin->version->id,
get_string('misdepinfoversion', 'core_plugin')),
'misdepinfoversion'
'misdepinfoversion d-inline-block mr-3 mb-1'
);
$info .= html_writer::div(html_writer::link($plugin->version->downloadurl, get_string('download')), 'misdepdownload');
$info .= html_writer::div(html_writer::link($plugin->version->downloadurl, get_string('download')),
'misdepdownload d-inline-block mr-3 mb-1');
if ($pluginman->is_remote_plugin_installable($plugin->component, $plugin->version->version, $reason)) {
$info .= $this->output->single_button(
new moodle_url($this->page->url, array('installdep' => $plugin->component)),
get_string('dependencyinstall', 'core_plugin'),
'post',
array('class' => 'singlebutton dependencyinstall')
array('class' => 'singlebutton dependencyinstall mr-3 mb-1')
);
} else {
$reasonhelp = $this->info_remote_plugin_not_installable($reason);
if ($reasonhelp) {
$info .= html_writer::div($reasonhelp, 'reasonhelp dependencyinstall');
$info .= html_writer::div($reasonhelp, 'reasonhelp dependencyinstall d-inline-block mr-3 mb-1');
}
}
$info .= $this->output->container_end(); // End of .actions container.
$table->data[] = array(
html_writer::div($plugin->name, 'name').' '.html_writer::div($plugin->component, 'component'),
html_writer::div($plugin->name, 'name').' '.html_writer::div($plugin->component, 'component text-muted small'),
$plugin->version->release,
$plugin->version->version,
implode($supportedmoodles, ' '),
@@ -1464,7 +1470,7 @@ class core_admin_renderer extends plugin_renderer_base {
foreach ($pluginman->resolve_requirements($plugin, $version) as $reqname => $reqinfo) {
if ($reqname === 'core') {
if ($reqinfo->status == $pluginman::REQUIREMENT_STATUS_OK) {
$class = 'requires-ok';
$class = 'requires-ok text-muted';
$label = '';
} else {
$class = 'requires-failed';
@@ -1481,7 +1487,7 @@ class core_admin_renderer extends plugin_renderer_base {
if ($reqinfo->status == $pluginman::REQUIREMENT_STATUS_OK) {
$label = '';
$class = 'requires-ok';
$class = 'requires-ok text-muted';
} else if ($reqinfo->status == $pluginman::REQUIREMENT_STATUS_MISSING) {
if ($reqinfo->availability == $pluginman::REQUIREMENT_AVAILABLE) {
@@ -1535,13 +1541,14 @@ class core_admin_renderer extends plugin_renderer_base {
return '';
}
$out = html_writer::tag('ul', implode("\n", $requires));
$out = html_writer::tag('ul', implode("\n", $requires), array('class' => 'm-0'));
if ($displayuploadlink) {
$out .= html_writer::div(
html_writer::link(
new moodle_url('/admin/tool/installaddon/'),
get_string('dependencyuploadmissing', 'core_plugin')
get_string('dependencyuploadmissing', 'core_plugin'),
array('class' => 'btn btn-secondary btn-sm m-1')
),
'dependencyuploadmissing'
);
@@ -1551,7 +1558,8 @@ class core_admin_renderer extends plugin_renderer_base {
$out .= html_writer::div(
html_writer::link(
new moodle_url($this->page->url, array('sesskey' => sesskey(), 'fetchupdates' => 1)),
get_string('checkforupdates', 'core_plugin')
get_string('checkforupdates', 'core_plugin'),
array('class' => 'btn btn-secondary btn-sm m-1')
),
'checkforupdates'
);
-104
View File
@@ -557,119 +557,15 @@
// Plugins check page displayed during upgrade.
#plugins-check-page {
.page-description {
@extend .text-muted;
}
// Check for updates.
.checkforupdates {
.singlebutton {
margin: 5px 0;
padding: 0;
div,
input {
margin: 0 3px 0 0;
}
}
}
// Section before the plugins check table.
#plugins-check-info {
.actions {
> div {
display: inline-block;
margin-right: 1em;
}
.singlebutton {
margin: 5px 0;
padding: 0;
div,
input {
margin: 0 3px 0 0;
}
}
}
}
// Plugins check table.
#plugins-check {
.requires-ok {
@extend .text-muted;
}
.status-missing,
.status-downgrade {
td {
background-color: $state-danger-bg;
}
}
.displayname {
.plugindir {
@extend .text-muted;
font-size: $font-size-sm;
}
}
.requires ul {
margin-left: 13px; // To undo the default 25px, does not look that great inside a table cell;
}
.status {
.actionbutton {
margin: 5px 0;
padding: 0;
input {
margin: 0;
}
}
}
}
.plugins-check-dependencies-actions {
> div {
display: inline-block;
margin-right: 1em;
}
.singlebutton {
margin: 5px 0;
padding: 0;
div,
input {
margin: 0 3px 0 0;
}
}
}
// List of available dependencies on the plugins check page.
#plugins-check-available-dependencies {
.displayname .component {
font-size: $font-size-sm;
@extend .text-muted;
}
.info .actions {
> div {
display: inline-block;
margin-right: 1em;
}
.dependencyinstall {
display: block;
margin: 5px 0;
padding: 0;
input {
margin: 0;
}
}
}
}
}
+1 -56
View File
@@ -8440,7 +8440,7 @@ a.dimmed_text:visited,
.usersuspended a:visited,
.dimmed_category,
.dimmed_category a, .tag_feed .media .muted a, #page-admin-qtypes .disabled,
#page-admin-qbehaviours .disabled, #page-admin-plugins #plugins-control-panel .pluginname .componentname, #page-admin-plugins #plugins-control-panel .version .versionnumber, #page-admin-plugins #plugins-control-panel .notes .requiredby, #plugins-check-page .page-description, #plugins-check-page #plugins-check .requires-ok, #plugins-check-page #plugins-check .displayname .plugindir, #plugins-check-page #plugins-check-available-dependencies .displayname .component, #page-admin-search .adminpagepath li, .block .minicalendar td.weekend, .section .activity .stealth, .course-content .section-summary .section-summary-activities .activity-count, .course-content ul li.section.hidden .sectionname > span,
#page-admin-qbehaviours .disabled, #page-admin-plugins #plugins-control-panel .pluginname .componentname, #page-admin-plugins #plugins-control-panel .version .versionnumber, #page-admin-plugins #plugins-control-panel .notes .requiredby, #page-admin-search .adminpagepath li, .block .minicalendar td.weekend, .section .activity .stealth, .course-content .section-summary .section-summary-activities .activity-count, .course-content ul li.section.hidden .sectionname > span,
.course-content ul li.section.hidden .content > div.summary,
.course-content ul li.section.hidden .activity .activityinstance, #course-category-listings .listitem[data-visible="0"], #course-category-listings .listitem[data-visible="0"] > div > a, #course-category-listings .listing-pagination-totals.dimmed, .fitem.disabled .fp-btn-choose, .form-defaultinfo,
.form-label .form-shortname, .formsettingheading .form-horizontal, .no-felement.fstatic, .path-backup .backup_progress .backup_stage {
@@ -11029,65 +11029,10 @@ div.editor_atto_toolbar button .icon {
#page-admin-plugins #plugins-control-panel .notes .requiredby {
font-size: 0.8203125rem; }
#plugins-check-page .checkforupdates .singlebutton {
margin: 5px 0;
padding: 0; }
#plugins-check-page .checkforupdates .singlebutton div,
#plugins-check-page .checkforupdates .singlebutton input {
margin: 0 3px 0 0; }
#plugins-check-page #plugins-check-info .actions > div {
display: inline-block;
margin-right: 1em; }
#plugins-check-page #plugins-check-info .actions .singlebutton {
margin: 5px 0;
padding: 0; }
#plugins-check-page #plugins-check-info .actions .singlebutton div,
#plugins-check-page #plugins-check-info .actions .singlebutton input {
margin: 0 3px 0 0; }
#plugins-check-page #plugins-check .status-missing td,
#plugins-check-page #plugins-check .status-downgrade td {
background-color: #f6d9d8; }
#plugins-check-page #plugins-check .displayname .plugindir {
font-size: 0.8203125rem; }
#plugins-check-page #plugins-check .requires ul {
margin-left: 13px; }
#plugins-check-page #plugins-check .status .actionbutton {
margin: 5px 0;
padding: 0; }
#plugins-check-page #plugins-check .status .actionbutton input {
margin: 0; }
#plugins-check-page .plugins-check-dependencies-actions > div {
display: inline-block;
margin-right: 1em; }
#plugins-check-page .plugins-check-dependencies-actions .singlebutton {
margin: 5px 0;
padding: 0; }
#plugins-check-page .plugins-check-dependencies-actions .singlebutton div,
#plugins-check-page .plugins-check-dependencies-actions .singlebutton input {
margin: 0 3px 0 0; }
#plugins-check-page #plugins-check-available-dependencies .displayname .component {
font-size: 0.8203125rem; }
#plugins-check-page #plugins-check-available-dependencies .info .actions > div {
display: inline-block;
margin-right: 1em; }
#plugins-check-page #plugins-check-available-dependencies .info .actions .dependencyinstall {
display: block;
margin: 5px 0;
padding: 0; }
#plugins-check-page #plugins-check-available-dependencies .info .actions .dependencyinstall input {
margin: 0; }
#plugins-check-page .pluginupdateinfo,
#plugins-control-panel .pluginupdateinfo {
background-color: #def2f8;
+1 -56
View File
@@ -8673,7 +8673,7 @@ a.dimmed_text:visited,
.usersuspended a:visited,
.dimmed_category,
.dimmed_category a, .tag_feed .media .muted a, #page-admin-qtypes .disabled,
#page-admin-qbehaviours .disabled, #page-admin-plugins #plugins-control-panel .pluginname .componentname, #page-admin-plugins #plugins-control-panel .version .versionnumber, #page-admin-plugins #plugins-control-panel .notes .requiredby, #plugins-check-page .page-description, #plugins-check-page #plugins-check .requires-ok, #plugins-check-page #plugins-check .displayname .plugindir, #plugins-check-page #plugins-check-available-dependencies .displayname .component, #page-admin-search .adminpagepath li, .block .minicalendar td.weekend, .section .activity .stealth, .course-content .section-summary .section-summary-activities .activity-count, .course-content ul li.section.hidden .sectionname > span,
#page-admin-qbehaviours .disabled, #page-admin-plugins #plugins-control-panel .pluginname .componentname, #page-admin-plugins #plugins-control-panel .version .versionnumber, #page-admin-plugins #plugins-control-panel .notes .requiredby, #page-admin-search .adminpagepath li, .block .minicalendar td.weekend, .section .activity .stealth, .course-content .section-summary .section-summary-activities .activity-count, .course-content ul li.section.hidden .sectionname > span,
.course-content ul li.section.hidden .content > div.summary,
.course-content ul li.section.hidden .activity .activityinstance, #course-category-listings .listitem[data-visible="0"], #course-category-listings .listitem[data-visible="0"] > div > a, #course-category-listings .listing-pagination-totals.dimmed, .fitem.disabled .fp-btn-choose, .form-defaultinfo,
.form-label .form-shortname, .formsettingheading .form-horizontal, .no-felement.fstatic, .path-backup .backup_progress .backup_stage {
@@ -11270,65 +11270,10 @@ div.editor_atto_toolbar button .icon {
#page-admin-plugins #plugins-control-panel .notes .requiredby {
font-size: 0.8203125rem; }
#plugins-check-page .checkforupdates .singlebutton {
margin: 5px 0;
padding: 0; }
#plugins-check-page .checkforupdates .singlebutton div,
#plugins-check-page .checkforupdates .singlebutton input {
margin: 0 3px 0 0; }
#plugins-check-page #plugins-check-info .actions > div {
display: inline-block;
margin-right: 1em; }
#plugins-check-page #plugins-check-info .actions .singlebutton {
margin: 5px 0;
padding: 0; }
#plugins-check-page #plugins-check-info .actions .singlebutton div,
#plugins-check-page #plugins-check-info .actions .singlebutton input {
margin: 0 3px 0 0; }
#plugins-check-page #plugins-check .status-missing td,
#plugins-check-page #plugins-check .status-downgrade td {
background-color: #f6d9d8; }
#plugins-check-page #plugins-check .displayname .plugindir {
font-size: 0.8203125rem; }
#plugins-check-page #plugins-check .requires ul {
margin-left: 13px; }
#plugins-check-page #plugins-check .status .actionbutton {
margin: 5px 0;
padding: 0; }
#plugins-check-page #plugins-check .status .actionbutton input {
margin: 0; }
#plugins-check-page .plugins-check-dependencies-actions > div {
display: inline-block;
margin-right: 1em; }
#plugins-check-page .plugins-check-dependencies-actions .singlebutton {
margin: 5px 0;
padding: 0; }
#plugins-check-page .plugins-check-dependencies-actions .singlebutton div,
#plugins-check-page .plugins-check-dependencies-actions .singlebutton input {
margin: 0 3px 0 0; }
#plugins-check-page #plugins-check-available-dependencies .displayname .component {
font-size: 0.8203125rem; }
#plugins-check-page #plugins-check-available-dependencies .info .actions > div {
display: inline-block;
margin-right: 1em; }
#plugins-check-page #plugins-check-available-dependencies .info .actions .dependencyinstall {
display: block;
margin: 5px 0;
padding: 0; }
#plugins-check-page #plugins-check-available-dependencies .info .actions .dependencyinstall input {
margin: 0; }
#plugins-check-page .pluginupdateinfo,
#plugins-control-panel .pluginupdateinfo {
background-color: #def2f8;