Merge branch 'MDL-66999-master' of git://github.com/bmbrands/moodle

This commit is contained in:
Adrian Greeve 2019-12-23 14:26:39 +08:00
commit f00542c485
69 changed files with 1487 additions and 2168 deletions

View File

@ -156,7 +156,7 @@ class mnet_review_host_form extends moodleform {
if ($mnet_peer && !empty($mnet_peer->deleted)) {
$radioarray = array();
$radioarray[] = $mform->createElement('static', 'deletedinfo', '',
$OUTPUT->container(get_string('deletedhostinfo', 'mnet'), 'deletedhostinfo'));
$OUTPUT->container(get_string('deletedhostinfo', 'mnet'), 'alert alert-warning'));
$radioarray[] = $mform->createElement('radio', 'deleted', '', get_string('yes'), 1);
$radioarray[] = $mform->createElement('radio', 'deleted', '', get_string('no'), 0);
$mform->addGroup($radioarray, 'radioar', get_string('deleted'), array(' ', ' '), false);

View File

@ -170,7 +170,7 @@ foreach ($sortedbehaviours as $behaviour => $behaviourname) {
if ($version) {
$row[] = $version;
} else {
$row[] = html_writer::tag('span', get_string('nodatabase', 'admin'), array('class' => 'disabled'));
$row[] = html_writer::tag('span', get_string('nodatabase', 'admin'), array('class' => 'text-muted'));
}
// Other question types required by this one.

View File

@ -172,7 +172,7 @@ foreach ($sortedqtypes as $qtypename => $localname) {
if ($version) {
$row[] = $version;
} else {
$row[] = html_writer::tag('span', get_string('nodatabase', 'admin'), array('class' => 'disabled'));
$row[] = html_writer::tag('span', get_string('nodatabase', 'admin'), array('class' => 'text-muted'));
}
// Other question types required by this one.

View File

@ -253,7 +253,7 @@ class core_admin_renderer extends plugin_renderer_base {
$out .= $this->output->container(get_string('cancelinstallinfodir', 'core_plugin', $pluginfo->rootdir));
if ($repotype = $pluginman->plugin_external_source($pluginfo->component)) {
$out .= $this->output->container(get_string('uninstalldeleteconfirmexternal', 'core_plugin', $repotype),
'uninstalldeleteconfirmexternal');
'alert alert-warning mt-2');
}
}
@ -432,7 +432,7 @@ class core_admin_renderer extends plugin_renderer_base {
if ($repotype = $pluginman->plugin_external_source($pluginfo->component)) {
$confirm .= $this->output->container(get_string('uninstalldeleteconfirmexternal', 'core_plugin', $repotype),
'uninstalldeleteconfirmexternal');
'alert alert-warning mt-2');
}
// After any uninstall we must execute full upgrade to finish the cleanup!
@ -511,7 +511,7 @@ class core_admin_renderer extends plugin_renderer_base {
* @return string HTML to output.
*/
protected function warning($message, $type = 'warning') {
return $this->box($message, 'generalbox admin' . $type);
return $this->box($message, 'generalbox alert alert-' . $type);
}
/**
@ -526,7 +526,7 @@ class core_admin_renderer extends plugin_renderer_base {
return $this->warning(get_string('datarootsecuritywarning', 'admin', $CFG->dataroot));
} else if ($insecuredataroot == INSECURE_DATAROOT_ERROR) {
return $this->warning(get_string('datarootsecurityerror', 'admin', $CFG->dataroot), 'error');
return $this->warning(get_string('datarootsecurityerror', 'admin', $CFG->dataroot), 'danger');
} else {
return '';
@ -544,7 +544,7 @@ class core_admin_renderer extends plugin_renderer_base {
if ($devlibdir) {
$moreinfo = new moodle_url('/report/security/index.php');
$warning = get_string('devlibdirpresent', 'core_admin', ['moreinfourl' => $moreinfo->out()]);
return $this->warning($warning, 'error');
return $this->warning($warning, 'danger');
} else {
return '';
@ -721,7 +721,7 @@ class core_admin_renderer extends plugin_renderer_base {
return $this->warning(
$this->container(get_string('maturitycorewarning', 'admin', $maturitylevel)) .
$this->container($this->doc_link('admin/versions', get_string('morehelp'))),
'error');
'danger');
}
/*
@ -737,7 +737,7 @@ class core_admin_renderer extends plugin_renderer_base {
}
$warning = (get_string('testsiteupgradewarning', 'admin', $testsite));
return $this->warning($warning, 'error');
return $this->warning($warning, 'danger');
}
/**
@ -772,7 +772,7 @@ class core_admin_renderer extends plugin_renderer_base {
$level = 'warning';
if ($maturity == MATURITY_ALPHA) {
$level = 'error';
$level = 'danger';
}
$maturitylevel = get_string('maturity' . $maturity, 'admin');
@ -954,7 +954,7 @@ class core_admin_renderer extends plugin_renderer_base {
protected function release_notes_link() {
$releasenoteslink = get_string('releasenoteslink', 'admin', 'http://docs.moodle.org/dev/Releases');
$releasenoteslink = str_replace('target="_blank"', 'onclick="this.target=\'_blank\'"', $releasenoteslink); // extremely ugly validation hack
return $this->box($releasenoteslink, 'generalbox releasenoteslink');
return $this->box($releasenoteslink, 'generalbox alert alert-info');
}
/**
@ -1902,7 +1902,7 @@ class core_admin_renderer extends plugin_renderer_base {
get_string('status'),
);
$servertable->colclasses = array('centeralign name', 'centeralign info', 'leftalign report', 'leftalign plugin', 'centeralign status');
$servertable->attributes['class'] = 'admintable environmenttable generaltable';
$servertable->attributes['class'] = 'admintable environmenttable generaltable table-sm';
$servertable->id = 'serverstatus';
$serverdata = array('ok'=>array(), 'warn'=>array(), 'error'=>array());
@ -1915,7 +1915,7 @@ class core_admin_renderer extends plugin_renderer_base {
get_string('status'),
);
$othertable->colclasses = array('aligncenter info', 'alignleft report', 'alignleft plugin', 'aligncenter status');
$othertable->attributes['class'] = 'admintable environmenttable generaltable';
$othertable->attributes['class'] = 'admintable environmenttable generaltable table-sm';
$othertable->id = 'otherserverstatus';
$otherdata = array('ok'=>array(), 'warn'=>array(), 'error'=>array());

View File

@ -43,7 +43,7 @@ abstract class core_role_capability_table_base {
protected $id;
/** Added to the class="" attribute on output. */
protected $classes = array('rolecap');
protected $classes = array('rolecap table-hover');
/** Default number of capabilities in the table for the search UI to be shown. */
const NUM_CAPS_FOR_SEARCH = 12;

View File

@ -50,6 +50,7 @@ class core_role_check_capability_table extends core_role_capability_table_base {
$this->contextname = $contextname;
$this->stryes = get_string('yes');
$this->strno = get_string('no');
$this->add_classes(['table-striped']);
}
protected function add_header_cells() {

View File

@ -55,6 +55,7 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
foreach ($levels as $level => $classname) {
$this->allcontextlevels[$level] = context_helper::get_level_name($level);
}
$this->add_classes(['table-striped']);
}
protected function load_current_permissions() {

View File

@ -66,9 +66,9 @@ class core_role_override_permissions_table_advanced extends core_role_capability
$rowattributes = parent::get_row_attributes($capability);
if ($this->permissions[$capability->name] !== 0) {
if (empty($rowattributes['class'])) {
$rowattributes['class'] = "overriddenpermission";
$rowattributes['class'] = "overriddenpermission table-warning";
} else {
$rowattributes['class'] .= " overriddenpermission";
$rowattributes['class'] .= " overriddenpermission table-warning";
}
}
return $rowattributes;

View File

@ -52,10 +52,10 @@
<label {{#labelfor}}for="{{labelfor}}"{{/labelfor}}>
{{{title}}}
{{#override}}
<div class="form-overridden">{{override}}</div>
<div class="alert alert-info">{{override}}</div>
{{/override}}
{{#warning}}
<div class="form-warning">{{warning}}</div>
<div class="alert alert-warning">{{warning}}</div>
{{/warning}}
</label>
<span class="form-shortname d-block small text-muted">{{{name}}}</span>

View File

@ -47,7 +47,7 @@
<h3 class="adminpagetitle"><a href="{{url}}">{{{title}}}</a></h3>
<ul class="adminpagepath" aria-label="{{#str}} pagepath, core {{/str}}">
{{#path}}
<li>{{.}}</li>
<li class="small text-muted">{{.}}</li>
{{/path}}
</ul>
<fieldset class="adminsettings">

View File

@ -143,7 +143,7 @@ function print_report_tree($contextid, $contexts, $allroles) {
// If there are any role overrides here, print them.
if (!empty($contexts[$contextid]->rolecapabilities)) {
$rowcounter = 0;
echo '<table class="generaltable rolecaps"><tbody>';
echo '<table class="generaltable table-striped"><tbody>';
foreach ($allroles as $role) {
if (isset($contexts[$contextid]->rolecapabilities[$role->id])) {
$permission = $contexts[$contextid]->rolecapabilities[$role->id];

View File

@ -75,7 +75,7 @@
<hr />
<div class="p-l-3">
<dl class="row">
<dt class="col-xs-3">
<dt class="col-3">
{{#link}}
<a href="#{{name}}"><strong style="word-wrap:break-word">{{name}}</strong></a>
{{/link}}
@ -84,13 +84,13 @@
{{/link}}
<div class="small text-muted" style="word-wrap:break-word">{{type}}</div>
</dt>
<dd class="col-xs-9">{{summary}}</dd>
<dd class="col-9">{{summary}}</dd>
</dl>
<dl>
{{#fields}}
<div class="row">
<dt class="col-xs-3 font-weight-normal" style="word-wrap:break-word">{{field_name}}</dt>
<dd class="col-xs-9">{{field_summary}}</dd>
<dt class="col-3 font-weight-normal" style="word-wrap:break-word">{{field_name}}</dt>
<dd class="col-9">{{field_summary}}</dd>
</div>
{{/fields}}
</dl>
@ -100,7 +100,7 @@
<hr />
<div class="p-l-3">
<div class="row">
<div class="col-xs-12">
<div class="col-12">
{{nullprovider}}
</div>
</div>

View File

@ -52,7 +52,7 @@ class tool_filetypes_renderer extends plugin_renderer_base {
$out = $this->heading(get_string('pluginname', 'tool_filetypes'));
if ($restricted) {
$out .= html_writer::div(
html_writer::div(get_string('configoverride', 'admin'), 'form-overridden'),
html_writer::div(get_string('configoverride', 'admin'), 'alert alert-info'),
'', array('id' => 'adminsettings'));
}
if (count($combined) > 1) {

View File

@ -23,10 +23,3 @@
.path-admin-tool-filetypes .generaltable .nonstandard {
font-weight: bold;
}
/* Spacing around the 'Defined in config.php' stripe */
.path-admin-tool-filetypes .form-overridden {
display: inline-block;
margin-bottom: 1em;
padding: 4px 6px;
}

View File

@ -120,7 +120,8 @@ class main_view extends XMLDBAction {
$result = $this->launch('get_db_directories');
// Display list of DB directories if everything is ok
if ($result && !empty($XMLDB->dbdirs)) {
$o .= '<table id="listdirectories" border="0" cellpadding="5" cellspacing="1" class="admintable generaltable">';
$o .= '<table id="listdirectories" border="0" cellpadding="5" cellspacing="1"' .
' class="table-striped table-sm admintable generaltable">';
$row = 0;
foreach ($XMLDB->dbdirs as $key => $dbdir) {
// Detect if this is the lastused dir

View File

@ -300,7 +300,7 @@
$table->head = array ();
$table->colclasses = array();
$table->head[] = $fullnamedisplay;
$table->attributes['class'] = 'admintable generaltable';
$table->attributes['class'] = 'admintable generaltable table-sm';
foreach ($extracolumns as $field) {
$table->head[] = ${$field};
}

View File

@ -717,7 +717,7 @@ class core_backup_renderer extends plugin_renderer_base {
$url = $component->get_url();
$output = html_writer::start_tag('div', array('class' => 'restore-course-search form-inline mb-1'));
$output .= html_writer::start_tag('div', array('class' => 'rcs-results w-75'));
$output .= html_writer::start_tag('div', array('class' => 'rcs-results table-sm w-75'));
$table = new html_table();
$table->head = array('', get_string('shortnamecourse'), get_string('fullnamecourse'));
@ -877,7 +877,7 @@ class core_backup_renderer extends plugin_renderer_base {
$url = $component->get_url();
$output = html_writer::start_tag('div', array('class' => 'restore-course-search form-inline mb-1'));
$output .= html_writer::start_tag('div', array('class' => 'rcs-results w-75'));
$output .= html_writer::start_tag('div', array('class' => 'rcs-results table-sm w-75'));
$table = new html_table();
$table->head = array('', get_string('name'), get_string('description'));

View File

@ -685,7 +685,7 @@ class core_badges_renderer extends plugin_renderer_base {
$paging = new paging_bar($badges->totalcount, $badges->page, $badges->perpage, $this->page->url, 'page');
$htmlpagingbar = $this->render($paging);
$table = new html_table();
$table->attributes['class'] = 'collection';
$table->attributes['class'] = 'table table-bordered table-striped';
$sortbyname = $this->helper_sortable_heading(get_string('name'),
'name', $badges->sort, $badges->dir);
@ -743,7 +743,7 @@ class core_badges_renderer extends plugin_renderer_base {
$htmlpagingbar = $this->render($paging);
$table = new html_table();
$table->attributes['class'] = 'collection';
$table->attributes['class'] = 'table table-bordered table-striped';
$sortbyname = $this->helper_sortable_heading(get_string('name'),
'name', $badges->sort, $badges->dir);

View File

@ -56,60 +56,60 @@
}
}}
<div class="row">
<div class="col-xs-1">{{#pix}} i/calendareventtime, core, {{#str}} when, core_calendar {{/str}} {{/pix}}</div>
<div class="col-xs-11">{{{formattedtime}}}</div>
<div class="col-1">{{#pix}} i/calendareventtime, core, {{#str}} when, core_calendar {{/str}} {{/pix}}</div>
<div class="col-11">{{{formattedtime}}}</div>
</div>
{{#normalisedeventtypetext}}
<div class="row mt-1">
<div class="col-xs-1">{{#pix}} i/calendar, core, {{#str}} eventtype, core_calendar {{/str}} {{/pix}}</div>
<div class="col-xs-11">{{normalisedeventtypetext}}</div>
<div class="col-1">{{#pix}} i/calendar, core, {{#str}} eventtype, core_calendar {{/str}} {{/pix}}</div>
<div class="col-11">{{normalisedeventtypetext}}</div>
</div>
{{/normalisedeventtypetext}}
{{#description}}
<div class="row mt-1">
<div class="col-xs-1">{{#pix}} i/calendareventdescription, core, {{#str}} description {{/str}} {{/pix}}</div>
<div class="description-content col-xs-11">{{{.}}}</div>
<div class="col-1">{{#pix}} i/calendareventdescription, core, {{#str}} description {{/str}} {{/pix}}</div>
<div class="description-content col-11">{{{.}}}</div>
</div>
{{/description}}
{{#location}}
<div class="row mt-1">
<div class="col-xs-1">{{#pix}} i/location, core, {{#str}} location {{/str}} {{/pix}}</div>
<div class="location-content col-xs-11">{{{.}}}</div>
<div class="col-1">{{#pix}} i/location, core, {{#str}} location {{/str}} {{/pix}}</div>
<div class="location-content col-11">{{{.}}}</div>
</div>
{{/location}}
{{#isactionevent}}
<div class="row mt-1">
<div class="col-xs-1">{{#pix}} i/courseevent, core, {{#str}} course {{/str}} {{/pix}}</div>
<div class="col-xs-11"><a href="{{course.viewurl}}">{{{course.fullname}}}</a></div>
<div class="col-1">{{#pix}} i/courseevent, core, {{#str}} course {{/str}} {{/pix}}</div>
<div class="col-11"><a href="{{course.viewurl}}">{{{course.fullname}}}</a></div>
</div>
{{/isactionevent}}
{{#iscategoryevent}}
<div class="row mt-1">
<div class="col-xs-1">{{#pix}} i/categoryevent, core, {{#str}} category {{/str}} {{/pix}}</div>
<div class="col-xs-11">{{{category.nestedname}}}</div>
<div class="col-1">{{#pix}} i/categoryevent, core, {{#str}} category {{/str}} {{/pix}}</div>
<div class="col-11">{{{category.nestedname}}}</div>
</div>
{{/iscategoryevent}}
{{#iscourseevent}}
<div class="row mt-1">
<div class="col-xs-1">{{#pix}} i/courseevent, core, {{#str}} course {{/str}} {{/pix}}</div>
<div class="col-xs-11"><a href="{{url}}">{{{course.fullname}}}</a></div>
<div class="col-1">{{#pix}} i/courseevent, core, {{#str}} course {{/str}} {{/pix}}</div>
<div class="col-11"><a href="{{url}}">{{{course.fullname}}}</a></div>
</div>
{{/iscourseevent}}
{{#groupname}}
<div class="row mt-1">
<div class="col-xs-1">{{#pix}} i/courseevent, core, {{#str}} course {{/str}} {{/pix}}</div>
<div class="col-xs-11"><a href="{{url}}">{{{course.fullname}}}</a></div>
<div class="col-1">{{#pix}} i/courseevent, core, {{#str}} course {{/str}} {{/pix}}</div>
<div class="col-11"><a href="{{url}}">{{{course.fullname}}}</a></div>
</div>
<div class="row mt-1">
<div class="col-xs-1">{{#pix}} i/groupevent, core, {{#str}} group {{/str}} {{/pix}}</div>
<div class="col-xs-11">{{{groupname}}}</div>
<div class="col-1">{{#pix}} i/groupevent, core, {{#str}} group {{/str}} {{/pix}}</div>
<div class="col-11">{{{groupname}}}</div>
</div>
{{/groupname}}
{{#subscription}}
{{#displayeventsource}}
<div class="row mt-1">
<div class="col-xs-1">{{#pix}} i/rss, core, {{#str}} eventsource, core_calendar {{/str}} {{/pix}}</div>
<div class="col-xs-11">
<div class="col-1">{{#pix}} i/rss, core, {{#str}} eventsource, core_calendar {{/str}} {{/pix}}</div>
<div class="col-11">
{{#subscriptionurl}}
<p><a href="{{subscriptionurl}}">{{#str}}subscriptionsource, core_calendar, {{{subscriptionname}}}{{/str}}</a></p>
{{/subscriptionurl}}

View File

@ -34,7 +34,7 @@
}}
{{#activities}}
<div class="row mb-1 row-fluid">
<div class="activityinstance col-xs-6">
<div class="activityinstance col-6">
<div class="mod-indent-outer"></div>
<div>
{{#canmanage}}
@ -47,7 +47,7 @@
</a>
</div>
</div>
<div class="activity-completionstatus col-xs-6" id="completionstatus_{{cmid}}">
<div class="activity-completionstatus col-6" id="completionstatus_{{cmid}}">
<div class="col-sm-1 p-l-0">
{{#completionstatus.icon}}
{{{completionstatus.icon}}}

View File

@ -49,11 +49,11 @@
</div>
</div>
<div class="row mb-1">
<div class="col-xs-6">
<div class="col-6">
<input type="checkbox" class="mastercheck mr-1" aria-label="{{#str}}checkall, completion{{/str}}">
<label class="font-weight-bold">{{#str}}activitieslabel, core_completion{{/str}}</label>
</div>
<div class="col-xs-6">
<div class="col-6">
<label class="font-weight-bold">{{#str}}completion, core_completion{{/str}}</label>
<span>{{{helpicon}}}</span>
</div>

View File

@ -46,11 +46,11 @@
</div>
</div>
<div class="row mb-1">
<div class="col-xs-6">
<div class="col-6">
<input type="checkbox" class="mastercheck mr-1" aria-label="{{#str}}checkall, completion{{/str}}">
<label class="font-weight-bold">{{#str}}activitieslabel, core_completion{{/str}}</label>
</div>
<div class="col-xs-6">
<div class="col-6">
<label class="font-weight-bold">{{#str}}completion, core_completion{{/str}}</label>
<span>{{{helpicon}}}</span>
</div>
@ -61,13 +61,13 @@
{{#canmanage}}
<div class="mb-1">
<div class="row mb-1 row-fluid">
<div class="col-xs-6">
<div class="col-6">
<label class="accesshide" for="modtype_{{id}}">{{#str}}select, core_completion{{/str}} {{formattedname}}</label>
<input id="modtype_{{id}}" type="checkbox" class="mr-1" name="modids[]" value="{{id}}" aria-label="{{#str}}checkactivity, completion, {{{formattedname}}}{{/str}}">
<img class="iconlarge activityicon" src="{{icon}}" alt=" " role="presentation" />
<span>{{{formattedname}}}</span>
</div>
<div class="activity-completionstatus col-xs-6">
<div class="activity-completionstatus col-6">
<div class="col-sm-1 p-l-0">
{{#completionstatus.icon}}
{{{completionstatus.icon}}}

View File

@ -370,7 +370,7 @@ class course_enrolment_table extends html_table implements renderable {
$this->sort = optional_param(self::SORTVAR, self::DEFAULTSORT, PARAM_ALPHANUM);
$this->sortdirection = optional_param(self::SORTDIRECTIONVAR, self::DEFAULTSORTDIRECTION, PARAM_ALPHA);
$this->attributes = array('class'=>'userenrolment');
$this->attributes = array('class' => 'userenrolment table-striped');
if (!in_array($this->sort, self::$sortablefields)) {
$this->sort = self::DEFAULTSORT;
}

View File

@ -403,7 +403,7 @@ class gradingform_rubric_renderer extends plugin_renderer_base {
'value' => $value
);
$input = html_writer::empty_tag('input', $criteriainputparams);
$rubrictemplate .= html_writer::tag('div', $input, array('class' => 'addcriterion'));
$rubrictemplate .= html_writer::tag('div', $input, array('class' => 'addcriterion btn btn-secondary'));
}
$rubrictemplate .= $this->rubric_edit_options($mode, $options);
$rubrictemplate .= html_writer::end_tag('div');

View File

@ -66,7 +66,7 @@ class core_grading_renderer extends plugin_renderer_base {
$img = $this->output->pix_icon($icon, '');
$txt = html_writer::tag('div', $text, array('class' => 'action-text'));
return html_writer::link($url, $img . $txt, array('class' => 'action'));
return html_writer::link($url, $img . $txt, array('class' => 'action btn btn-lg'));
}
/**

View File

@ -66,7 +66,7 @@ class behat_grading extends behat_base {
$editactionliteral = behat_context_helper::escape(get_string("manageactionedit", "grading"));
// Working both when adding and editing.
$definitionxpath = "//a[@class='action']" .
$definitionxpath = "//a[@class='action btn btn-lg']" .
"[./descendant::*[contains(., $newactionliteral) or contains(., $editactionliteral)]]";
$this->execute('behat_grading::i_go_to_advanced_grading_page', $this->escape($activityname));

View File

@ -40,7 +40,7 @@
}
}}
{{#name}}
<div class="groupinfobox container-fluid p-x-1 p-y-1">
<div class="groupinfobox container-fluid card p-3">
{{#pictureurl}}
<div class="group-image"><img class="grouppicture" src="{{{pictureurl}}}" alt="{{{name}}}" title="{{{name}}}"/></div>
{{/pictureurl}}

View File

@ -2757,7 +2757,7 @@ class admin_setting_configfile extends admin_setting_configtext {
];
if ($context->readonly) {
$this->visiblename .= '<div class="form-overridden">'.get_string('execpathnotallowed', 'admin').'</div>';
$this->visiblename .= '<div class="alert alert-info">'.get_string('execpathnotallowed', 'admin').'</div>';
}
$element = $OUTPUT->render_from_template('core_admin/setting_configfile', $context);
@ -2818,7 +2818,7 @@ class admin_setting_configexecutable extends admin_setting_configfile {
];
if (!empty($CFG->preventexecpath)) {
$this->visiblename .= '<div class="form-overridden">'.get_string('execpathnotallowed', 'admin').'</div>';
$this->visiblename .= '<div class="alert alert-info">'.get_string('execpathnotallowed', 'admin').'</div>';
}
$element = $OUTPUT->render_from_template('core_admin/setting_configexecutable', $context);
@ -2858,7 +2858,7 @@ class admin_setting_configdirectory extends admin_setting_configfile {
];
if (!empty($CFG->preventexecpath)) {
$this->visiblename .= '<div class="form-overridden">'.get_string('execpathnotallowed', 'admin').'</div>';
$this->visiblename .= '<div class="alert alert-info">'.get_string('execpathnotallowed', 'admin').'</div>';
}
$element = $OUTPUT->render_from_template('core_admin/setting_configdirectory', $context);
@ -9548,7 +9548,7 @@ class admin_setting_webservicesoverview extends admin_setting {
$url = new moodle_url("/admin/search.php?query=enablewebservices");
$row[0] = "1. " . html_writer::tag('a', get_string('enablews', 'webservice'),
array('href' => $url));
$status = html_writer::tag('span', get_string('no'), array('class' => 'statuscritical'));
$status = html_writer::tag('span', get_string('no'), array('class' => 'badge badge-danger'));
if ($CFG->enablewebservices) {
$status = get_string('yes');
}
@ -9561,7 +9561,7 @@ class admin_setting_webservicesoverview extends admin_setting {
$url = new moodle_url("/admin/settings.php?section=webserviceprotocols");
$row[0] = "2. " . html_writer::tag('a', get_string('enableprotocols', 'webservice'),
array('href' => $url));
$status = html_writer::tag('span', get_string('none'), array('class' => 'statuscritical'));
$status = html_writer::tag('span', get_string('none'), array('class' => 'badge badge-danger'));
//retrieve activated protocol
$active_protocols = empty($CFG->webserviceprotocols) ?
array() : explode(',', $CFG->webserviceprotocols);
@ -9672,7 +9672,7 @@ class admin_setting_webservicesoverview extends admin_setting {
$url = new moodle_url("/admin/search.php?query=enablewebservices");
$row[0] = "1. " . html_writer::tag('a', get_string('enablews', 'webservice'),
array('href' => $url));
$status = html_writer::tag('span', get_string('no'), array('class' => 'statuscritical'));
$status = html_writer::tag('span', get_string('no'), array('class' => 'badge badge-danger'));
if ($CFG->enablewebservices) {
$status = get_string('yes');
}
@ -9685,7 +9685,7 @@ class admin_setting_webservicesoverview extends admin_setting {
$url = new moodle_url("/admin/settings.php?section=webserviceprotocols");
$row[0] = "2. " . html_writer::tag('a', get_string('enableprotocols', 'webservice'),
array('href' => $url));
$status = html_writer::tag('span', get_string('none'), array('class' => 'statuscritical'));
$status = html_writer::tag('span', get_string('none'), array('class' => 'badge badge-danger'));
//retrieve activated protocol
$active_protocols = empty($CFG->webserviceprotocols) ?
array() : explode(',', $CFG->webserviceprotocols);
@ -10770,10 +10770,10 @@ class admin_setting_searchsetupinfo extends admin_setting {
$row[0] = '1. ' . html_writer::tag('a', get_string('selectsearchengine', 'admin'),
array('href' => $url));
$status = html_writer::tag('span', get_string('no'), array('class' => 'statuscritical'));
$status = html_writer::tag('span', get_string('no'), array('class' => 'badge badge-danger'));
if (!empty($CFG->searchengine)) {
$status = html_writer::tag('span', get_string('pluginname', 'search_' . $CFG->searchengine),
array('class' => 'statusok'));
array('class' => 'badge badge-success'));
}
$row[1] = $status;
@ -10785,9 +10785,9 @@ class admin_setting_searchsetupinfo extends admin_setting {
$row[0] = '2. ' . html_writer::tag('a', get_string('enablesearchareas', 'admin'),
array('href' => $url));
$status = html_writer::tag('span', get_string('no'), array('class' => 'statuscritical'));
$status = html_writer::tag('span', get_string('no'), array('class' => 'badge badge-danger'));
if ($anyenabled) {
$status = html_writer::tag('span', get_string('yes'), array('class' => 'statusok'));
$status = html_writer::tag('span', get_string('yes'), array('class' => 'badge badge-success'));
}
$row[1] = $status;
@ -10797,7 +10797,7 @@ class admin_setting_searchsetupinfo extends admin_setting {
$row = array();
if (empty($CFG->searchengine)) {
$row[0] = '3. ' . get_string('setupsearchengine', 'admin');
$row[1] = html_writer::tag('span', get_string('no'), array('class' => 'statuscritical'));
$row[1] = html_writer::tag('span', get_string('no'), array('class' => 'badge badge-danger'));
} else {
$url = new moodle_url('/admin/settings.php?section=search' . $CFG->searchengine);
$row[0] = '3. ' . html_writer::tag('a', get_string('setupsearchengine', 'admin'),
@ -10810,9 +10810,9 @@ class admin_setting_searchsetupinfo extends admin_setting {
$serverstatus = $e->getMessage();
}
if ($serverstatus === true) {
$status = html_writer::tag('span', get_string('yes'), array('class' => 'statusok'));
$status = html_writer::tag('span', get_string('yes'), array('class' => 'badge badge-success'));
} else {
$status = html_writer::tag('span', $serverstatus, array('class' => 'statuscritical'));
$status = html_writer::tag('span', $serverstatus, array('class' => 'badge badge-danger'));
}
$row[1] = $status;
}
@ -10823,9 +10823,9 @@ class admin_setting_searchsetupinfo extends admin_setting {
$url = new moodle_url('/admin/searchareas.php');
$row[0] = '4. ' . html_writer::tag('a', get_string('indexdata', 'admin'), array('href' => $url));
if ($anyindexed) {
$status = html_writer::tag('span', get_string('yes'), array('class' => 'statusok'));
$status = html_writer::tag('span', get_string('yes'), array('class' => 'badge badge-success'));
} else {
$status = html_writer::tag('span', get_string('no'), array('class' => 'statuscritical'));
$status = html_writer::tag('span', get_string('no'), array('class' => 'badge badge-danger'));
}
$row[1] = $status;
$table->data[] = $row;
@ -10835,9 +10835,9 @@ class admin_setting_searchsetupinfo extends admin_setting {
$url = new moodle_url("/admin/search.php?query=enableglobalsearch");
$row[0] = '5. ' . html_writer::tag('a', get_string('enableglobalsearch', 'admin'),
array('href' => $url));
$status = html_writer::tag('span', get_string('no'), array('class' => 'statuscritical'));
$status = html_writer::tag('span', get_string('no'), array('class' => 'badge badge-danger'));
if (\core_search\manager::is_global_search_enabled()) {
$status = html_writer::tag('span', get_string('yes'), array('class' => 'statusok'));
$status = html_writer::tag('span', get_string('yes'), array('class' => 'badge badge-success'));
}
$row[1] = $status;
$table->data[] = $row;

View File

@ -217,7 +217,7 @@ Y.namespace('M.atto_recordrtc').Button = Y.Base.create('button', Y.M.editor_atto
_createContent: function(type) {
var isAudio = (type === 'audio'),
bsRow = 'row',
bsCol = 'col-xs-',
bsCol = 'col-',
bsAlDang = 'alert-danger',
bsSsBtn = 'btn btn-lg btn-outline-danger btn-block';

View File

@ -1 +1 @@
YUI.add("moodle-atto_recordrtc-button",function(e,t){var n="atto_recordrtc",r='<div class="{{PLUGINNAME}} container-fluid"><div class="{{bs_row}} hide"><div class="{{bs_col}}12"><div id="alert-danger" class="alert {{bs_al_dang}}"><strong>{{insecurealert_title}}</strong> {{insecurealert}}</div></div></div><div class="{{bs_row}} hide">{{#if isAudio}}<div class="{{bs_col}}1"></div><div class="{{bs_col}}10"><audio id="player"></audio></div><div class="{{bs_col}}1"></div>{{else}}<div class="{{bs_col}}12"><video id="player"></video></div>{{/if}}</div><div class="{{bs_row}}"><div class="{{bs_col}}1"></div><div class="{{bs_col}}10"><button id="start-stop" class="{{bs_ss_btn}}">{{startrecording}}</button></div><div class="{{bs_col}}1"></div></div><div class="{{bs_row}} hide"><div class="{{bs_col}}3"></div><div class="{{bs_col}}6"><button id="upload" class="btn btn-primary btn-block">{{attachrecording}}</button></div><div class="{{bs_col}}3"></div></div></div>';e.namespace("M.atto_recordrtc").Button=e.Base.create("button",e.M.editor_atto.EditorPlugin,[],{_lang:"en",initializer:function(){if(this.get("host").canShowFilepicker("media")){var e=this.get("allowedtypes"),t=!1;if(e==="both"||e==="audio")this._addButton("audio",this._audio),t=!0;if(e==="both"||e==="video")this._addButton("video",this._video),t=!0;if(!t)return;var n=this.getDialogue({width:1e3,focusAfterHide:null});n.after("visibleChange",function(){var e=!n.get("visible"),t=M.atto_recordrtc.commonmodule;e&&(window.clearInterval(t.countdownTicker),t.mediaRecorder&&t.mediaRecorder.state!=="inactive"&&t.mediaRecorder.stop(),t.stream&&t.stream.getTracks().forEach(function(e){e.readyState!=="ended"&&e.stop()}))}),n.on("click",function(){this.centered()}),window.require(["core/adapter"],function(e){window.adapter=e})}},_addButton:function(e,t){this.addButton({buttonName:e,icon:this.get(e+"rtcicon"),iconComponent:n,callback:t,title:e+"rtc",tags:e+"rtc",tagMatchRequiresAll:!1})},_audio:function(){var e=this.getDialogue();e.set("headerContent",M.util.get_string("audiortc","atto_recordrtc")),e.set("bodyContent",this._createContent("audio")),e.show(),M.atto_recordrtc.audiomodule.init(this)},_video:function(){var e=this.getDialogue();e.set("headerContent",M.util.get_string("videortc","atto_recordrtc")),e.set("bodyContent",this._createContent("video")),e.show(),M.atto_recordrtc.videomodule.init(this)},_createContent:function(t){var i=t==="audio",s="row",o="col-xs-",u="alert-danger",a="btn btn-lg btn-outline-danger btn-block",f=e.Handlebars.compile(r)({PLUGINNAME:n,isAudio:i,bs_row:s,bs_col:o,bs_al_dang:u,bs_ss_btn:a,insecurealert_title:M.util.get_string("insecurealert_title","atto_recordrtc"),insecurealert:M.util.get_string("insecurealert","atto_recordrtc"),startrecording:M.util.get_string("startrecording","atto_recordrtc"),attachrecording:M.util.get_string("attachrecording","atto_recordrtc")});return f},closeDialogue:function(e){e.getDialogue().hide(),e.editor.focus()},setLink:function(e,t){e.getDialogue().hide(),e.editor.focus(),e.get("host").insertContentAtFocusPoint(t),e.markUpdated()}},{ATTRS:{contextid:{value:null},sesskey:{value:null},allowedtypes:{value:null},audiobitrate:{value:null},videobitrate:{value:null},timelimit:{value:null},audiortcicon:{value:null},videortcicon:{value:null},maxrecsize:{value:null}}})},"@VERSION@",{requires:["moodle-editor_atto-plugin","moodle-atto_recordrtc-recording"]});
YUI.add("moodle-atto_recordrtc-button",function(e,t){var n="atto_recordrtc",r='<div class="{{PLUGINNAME}} container-fluid"><div class="{{bs_row}} hide"><div class="{{bs_col}}12"><div id="alert-danger" class="alert {{bs_al_dang}}"><strong>{{insecurealert_title}}</strong> {{insecurealert}}</div></div></div><div class="{{bs_row}} hide">{{#if isAudio}}<div class="{{bs_col}}1"></div><div class="{{bs_col}}10"><audio id="player"></audio></div><div class="{{bs_col}}1"></div>{{else}}<div class="{{bs_col}}12"><video id="player"></video></div>{{/if}}</div><div class="{{bs_row}}"><div class="{{bs_col}}1"></div><div class="{{bs_col}}10"><button id="start-stop" class="{{bs_ss_btn}}">{{startrecording}}</button></div><div class="{{bs_col}}1"></div></div><div class="{{bs_row}} hide"><div class="{{bs_col}}3"></div><div class="{{bs_col}}6"><button id="upload" class="btn btn-primary btn-block">{{attachrecording}}</button></div><div class="{{bs_col}}3"></div></div></div>';e.namespace("M.atto_recordrtc").Button=e.Base.create("button",e.M.editor_atto.EditorPlugin,[],{_lang:"en",initializer:function(){if(this.get("host").canShowFilepicker("media")){var e=this.get("allowedtypes"),t=!1;if(e==="both"||e==="audio")this._addButton("audio",this._audio),t=!0;if(e==="both"||e==="video")this._addButton("video",this._video),t=!0;if(!t)return;var n=this.getDialogue({width:1e3,focusAfterHide:null});n.after("visibleChange",function(){var e=!n.get("visible"),t=M.atto_recordrtc.commonmodule;e&&(window.clearInterval(t.countdownTicker),t.mediaRecorder&&t.mediaRecorder.state!=="inactive"&&t.mediaRecorder.stop(),t.stream&&t.stream.getTracks().forEach(function(e){e.readyState!=="ended"&&e.stop()}))}),n.on("click",function(){this.centered()}),window.require(["core/adapter"],function(e){window.adapter=e})}},_addButton:function(e,t){this.addButton({buttonName:e,icon:this.get(e+"rtcicon"),iconComponent:n,callback:t,title:e+"rtc",tags:e+"rtc",tagMatchRequiresAll:!1})},_audio:function(){var e=this.getDialogue();e.set("headerContent",M.util.get_string("audiortc","atto_recordrtc")),e.set("bodyContent",this._createContent("audio")),e.show(),M.atto_recordrtc.audiomodule.init(this)},_video:function(){var e=this.getDialogue();e.set("headerContent",M.util.get_string("videortc","atto_recordrtc")),e.set("bodyContent",this._createContent("video")),e.show(),M.atto_recordrtc.videomodule.init(this)},_createContent:function(t){var i=t==="audio",s="row",o="col-",u="alert-danger",a="btn btn-lg btn-outline-danger btn-block",f=e.Handlebars.compile(r)({PLUGINNAME:n,isAudio:i,bs_row:s,bs_col:o,bs_al_dang:u,bs_ss_btn:a,insecurealert_title:M.util.get_string("insecurealert_title","atto_recordrtc"),insecurealert:M.util.get_string("insecurealert","atto_recordrtc"),startrecording:M.util.get_string("startrecording","atto_recordrtc"),attachrecording:M.util.get_string("attachrecording","atto_recordrtc")});return f},closeDialogue:function(e){e.getDialogue().hide(),e.editor.focus()},setLink:function(e,t){e.getDialogue().hide(),e.editor.focus(),e.get("host").insertContentAtFocusPoint(t),e.markUpdated()}},{ATTRS:{contextid:{value:null},sesskey:{value:null},allowedtypes:{value:null},audiobitrate:{value:null},videobitrate:{value:null},timelimit:{value:null},audiortcicon:{value:null},videortcicon:{value:null},maxrecsize:{value:null}}})},"@VERSION@",{requires:["moodle-editor_atto-plugin","moodle-atto_recordrtc-recording"]});

View File

@ -217,7 +217,7 @@ Y.namespace('M.atto_recordrtc').Button = Y.Base.create('button', Y.M.editor_atto
_createContent: function(type) {
var isAudio = (type === 'audio'),
bsRow = 'row',
bsCol = 'col-xs-',
bsCol = 'col-',
bsAlDang = 'alert-danger',
bsSsBtn = 'btn btn-lg btn-outline-danger btn-block';

View File

@ -215,7 +215,7 @@ Y.namespace('M.atto_recordrtc').Button = Y.Base.create('button', Y.M.editor_atto
_createContent: function(type) {
var isAudio = (type === 'audio'),
bsRow = 'row',
bsCol = 'col-xs-',
bsCol = 'col-',
bsAlDang = 'alert-danger',
bsSsBtn = 'btn btn-lg btn-outline-danger btn-block';

View File

@ -574,11 +574,11 @@ class flexible_table {
// Always introduce the "flexible" class for the table if not specified
if (empty($this->attributes)) {
$this->attributes['class'] = 'flexible';
$this->attributes['class'] = 'flexible table table-striped table-hover';
} else if (!isset($this->attributes['class'])) {
$this->attributes['class'] = 'flexible';
$this->attributes['class'] = 'flexible table table-striped table-hover';
} else if (!in_array('flexible', explode(' ', $this->attributes['class']))) {
$this->attributes['class'] = trim('flexible ' . $this->attributes['class']);
$this->attributes['class'] = trim('flexible table table-striped table-hover ' . $this->attributes['class']);
}
}

View File

@ -156,7 +156,8 @@ class behat_permissions extends behat_base {
public function capability_has_permission($capabilityname, $permission) {
// We already know the name, so we just need the value.
$radioxpath = "//table[@class='rolecap']/descendant::input[@type='radio']" .
$radioxpath = "//table[contains(concat(' ',
normalize-space(@class), ' '), ' rolecap ')]/descendant::input[@type='radio']" .
"[@name='" . $capabilityname . "'][@checked]";
$checkedradio = $this->find('xpath', $radioxpath);

View File

@ -73,11 +73,11 @@
<td class="align-bottom">
<div class="container-fluid">
<div class="row-fluid">
<div class="col-xs-6">
<div class="col-6">
{{#str}} loggedin, message {{/str}}
{{#onlinehelphtml}}{{{.}}}{{/onlinehelphtml}}
</div>
<div class="col-xs-6">
<div class="col-6">
{{#str}} loggedoff, message {{/str}}
{{#offlinehelphtml}}{{{.}}}{{/offlinehelphtml}}
</div>

View File

@ -67,7 +67,7 @@
<form>
<div class="container-fluid">
<div class="row-fluid">
<div class="col-xs-6">
<div class="col-6">
{{#loggedin}}
{{< core/hover_tooltip }}
{{$anchor}}
@ -92,7 +92,7 @@
{{/ core/hover_tooltip }}
{{/loggedin}}
</div>
<div class="col-xs-6">
<div class="col-6">
{{#loggedoff}}
{{< core/hover_tooltip }}
{{$anchor}}

View File

@ -425,7 +425,7 @@ class mod_workshop_renderer extends plugin_renderer_base {
}
$table = new html_table();
$table->attributes['class'] = 'grading-report';
$table->attributes['class'] = 'grading-report table-striped table-hover';
$sortbyfirstname = $this->helper_sortable_heading(get_string('firstname'), 'firstname', $options->sortby, $options->sorthow);
$sortbylastname = $this->helper_sortable_heading(get_string('lastname'), 'lastname', $options->sortby, $options->sorthow);

View File

@ -68,7 +68,7 @@ class qbehaviour_adaptive_renderer extends qbehaviour_renderer {
// Display the grading details from the last graded state.
$class = $details->state->get_feedback_class();
return html_writer::tag('div', get_string($class, 'question'),
array('class' => 'correctness ' . $class))
array('class' => 'correctness badge ' . $class))
. html_writer::tag('div', $this->grading_details($details, $options),
array('class' => 'gradingdetails'));
}

View File

@ -58,7 +58,7 @@ class qbehaviour_adaptive_mark_display_test extends basic_testcase {
}
public function test_correct_no_penalty() {
$this->assertEquals('<div class="correctness correct">' . get_string('correct', 'question') . '</div>' .
$this->assertEquals('<div class="correctness badge correct">' . get_string('correct', 'question') . '</div>' .
'<div class="gradingdetails">' .
get_string('gradingdetails', 'qbehaviour_adaptive',
array('cur' => '1.00', 'raw' => '1.00', 'max' => '1.00')) . '</div>',
@ -67,8 +67,8 @@ class qbehaviour_adaptive_mark_display_test extends basic_testcase {
}
public function test_partial_first_try() {
$this->assertEquals('<div class="correctness partiallycorrect">' . get_string('partiallycorrect', 'question') . '</div>' .
'<div class="gradingdetails">' .
$this->assertEquals('<div class="correctness badge partiallycorrect">' . get_string('partiallycorrect', 'question') .
'</div><div class="gradingdetails">' .
get_string('gradingdetails', 'qbehaviour_adaptive',
array('cur' => '0.50', 'raw' => '0.50', 'max' => '1.00')) . ' ' .
get_string('gradingdetailspenalty', 'qbehaviour_adaptive', '0.10') . '</div>',
@ -78,8 +78,8 @@ class qbehaviour_adaptive_mark_display_test extends basic_testcase {
public function test_partial_second_try() {
$mark = array('cur' => '0.80', 'raw' => '0.90', 'max' => '1.00');
$this->assertEquals('<div class="correctness partiallycorrect">' . get_string('partiallycorrect', 'question') . '</div>' .
'<div class="gradingdetails">' .
$this->assertEquals('<div class="correctness badge partiallycorrect">' . get_string('partiallycorrect', 'question') .
'</div><div class="gradingdetails">' .
get_string('gradingdetails', 'qbehaviour_adaptive', $mark) . ' ' .
get_string('gradingdetailsadjustment', 'qbehaviour_adaptive', $mark) . ' ' .
get_string('gradingdetailspenalty', 'qbehaviour_adaptive', '0.10') . ' ' .
@ -90,8 +90,8 @@ class qbehaviour_adaptive_mark_display_test extends basic_testcase {
public function test_correct_third_try() {
$mark = array('cur' => '0.80', 'raw' => '1.00', 'max' => '1.00');
$this->assertEquals('<div class="correctness partiallycorrect">' . get_string('partiallycorrect', 'question') . '</div>' .
'<div class="gradingdetails">' .
$this->assertEquals('<div class="correctness badge partiallycorrect">' . get_string('partiallycorrect', 'question') .
'</div><div class="gradingdetails">' .
get_string('gradingdetails', 'qbehaviour_adaptive', $mark) . ' ' .
get_string('gradingdetailsadjustment', 'qbehaviour_adaptive', $mark) . '</div>',
$this->renderer->render_adaptive_marks(new qbehaviour_adaptive_mark_details(
@ -100,8 +100,8 @@ class qbehaviour_adaptive_mark_display_test extends basic_testcase {
public function test_correct_third_try_if_we_dont_increase_penalties_for_wrong() {
$mark = array('cur' => '0.80', 'raw' => '1.00', 'max' => '1.00');
$this->assertEquals('<div class="correctness partiallycorrect">' . get_string('partiallycorrect', 'question') . '</div>' .
'<div class="gradingdetails">' .
$this->assertEquals('<div class="correctness badge partiallycorrect">' . get_string('partiallycorrect', 'question') .
'</div><div class="gradingdetails">' .
get_string('gradingdetails', 'qbehaviour_adaptive', $mark) . ' ' .
get_string('gradingdetailsadjustment', 'qbehaviour_adaptive', $mark) . '</div>',
$this->renderer->render_adaptive_marks(new qbehaviour_adaptive_mark_details(

View File

@ -956,7 +956,7 @@ class view {
$classes[] = 'dimmed_text';
}
if ($question->id == $this->lastchangedid) {
$classes[] = 'highlight';
$classes[] = 'highlight text-dark';
}
$classes[] = 'r' . ($rowcount % 2);
return $classes;

View File

@ -118,7 +118,7 @@ class core_question_renderer extends plugin_renderer_base {
array('class' => 'comment clearfix'));
$output .= html_writer::nonempty_tag('div',
$this->response_history($qa, $behaviouroutput, $qtoutput, $options),
array('class' => 'history clearfix'));
array('class' => 'history clearfix border p-2'));
$output .= html_writer::end_tag('div');
$output .= html_writer::end_tag('div');

View File

@ -63,13 +63,13 @@ if ($courseid) {
// Get the backup status.
if ($backup->status == backup::STATUS_FINISHED_OK) {
$status = $strok;
$statusclass = 'backup-ok'; // Green.
$statusclass = 'table-success'; // Green.
} else if ($backup->status == backup::STATUS_AWAITING || $backup->status == backup::STATUS_EXECUTING) {
$status = $strunfinished;
$statusclass = 'backup-unfinished'; // Red.
$statusclass = 'table-danger'; // Red.
} else { // Else show error.
$status = $strerror;
$statusclass = 'backup-error'; // Red.
$statusclass = 'table-danger'; // Red.
}
$table = new html_table();
@ -140,25 +140,25 @@ foreach ($rs as $backuprow) {
// Prepare a cell to display the status of the entry.
if ($backuprow->laststatus == backup_cron_automated_helper::BACKUP_STATUS_OK) {
$status = $strok;
$statusclass = 'backup-ok'; // Green.
$statusclass = 'table-success'; // Green.
} else if ($backuprow->laststatus == backup_cron_automated_helper::BACKUP_STATUS_UNFINISHED) {
$status = $strunfinished;
$statusclass = 'backup-unfinished'; // Red.
$statusclass = 'table-danger'; // Red.
} else if ($backuprow->laststatus == backup_cron_automated_helper::BACKUP_STATUS_SKIPPED) {
$status = $strskipped;
$statusclass = 'backup-skipped'; // Green.
$statusclass = 'table-success'; // Green.
} else if ($backuprow->laststatus == backup_cron_automated_helper::BACKUP_STATUS_WARNING) {
$status = $strwarning;
$statusclass = 'backup-warning'; // Orange.
$statusclass = 'table-warning'; // Orange.
} else if ($backuprow->laststatus == backup_cron_automated_helper::BACKUP_STATUS_NOTYETRUN) {
$status = $strnotyetrun;
$statusclass = 'backup-notyetrun';
$statusclass = 'table-success';
} else if ($backuprow->laststatus == backup_cron_automated_helper::BACKUP_STATUS_QUEUED) {
$status = $strqueued;
$statusclass = 'backup-queued';
$statusclass = 'table-success';
} else {
$status = $strerror;
$statusclass = 'backup-error'; // Red.
$statusclass = 'table-danger'; // Red.
}
$status = new html_table_cell($status);
$status->attributes = array('class' => $statusclass);

View File

@ -46,16 +46,16 @@
}
}}
<tr data-prediction-id="{{predictionid}}" class="d-flex">
<td class="insight-checkbox-cell col-xs-1{{^bulkactions}} hidden{{/bulkactions}}">
<td class="insight-checkbox-cell col-1{{^bulkactions}} hidden{{/bulkactions}}">
{{{toggleslave}}}
</td>
<td class="col-xs-8">
<td class="col-8">
{{#sampleimage}}
{{{sampleimage}}}
{{/sampleimage}}
{{{sampledescription}}}
</td>
<td class="col-xs-3{{^actions}} hidden{{/actions}}">
<td class="col-3{{^actions}} hidden{{/actions}}">
{{#actions}}
{{> core/action_menu}}
{{/actions}}

View File

@ -108,9 +108,9 @@
{{/showpredictionheading}}
<thead>
<tr class="d-flex">
<th scope="col" class="col-xs-1{{^bulkactions}} hidden{{/bulkactions}}">{{{hiddencheckboxtoggleall}}}</th>
<th scope="col" class="col-xs-8">{{#str}}description{{/str}}</th>
<th scope="col" class="col-xs-3{{^actions}} hidden{{/actions}}">{{#str}}actions{{/str}}</th>
<th scope="col" class="col-1{{^bulkactions}} hidden{{/bulkactions}}">{{{hiddencheckboxtoggleall}}}</th>
<th scope="col" class="col-8">{{#str}}description{{/str}}</th>
<th scope="col" class="col-3{{^actions}} hidden{{/actions}}">{{#str}}actions{{/str}}</th>
</tr>
</thead>
<tbody>

View File

@ -59,7 +59,7 @@ class report_log_table_log extends table_sql {
public function __construct($uniqueid, $filterparams = null) {
parent::__construct($uniqueid);
$this->set_attribute('class', 'reportlog generaltable generalbox');
$this->set_attribute('class', 'reportlog generaltable generalbox table-sm');
$this->filterparams = $filterparams;
// Add course column if logs are displayed for site.
$cols = array();

View File

@ -64,7 +64,7 @@ class report_loglive_table_log extends table_sql {
public function __construct($uniqueid, $filterparams = null) {
parent::__construct($uniqueid);
$this->set_attribute('class', 'reportloglive generaltable generalbox');
$this->set_attribute('class', 'reportloglive generaltable table-sm');
$this->set_attribute('aria-live', 'polite');
$this->filterparams = $filterparams;
// Add course column if logs are displayed for site.

View File

@ -117,10 +117,10 @@ class report_performance {
*/
public function add_issue_to_table(&$table, $issueresult, $detailed = false) {
global $OUTPUT;
$statusarr = array(self::REPORT_PERFORMANCE_OK => 'statusok',
self::REPORT_PERFORMANCE_WARNING => 'statuswarning',
self::REPORT_PERFORMANCE_SERIOUS => 'statusserious',
self::REPORT_PERFORMANCE_CRITICAL => 'statuscritical');
$statusarr = array(self::REPORT_PERFORMANCE_OK => 'badge badge-success',
self::REPORT_PERFORMANCE_WARNING => 'badge badge-warning',
self::REPORT_PERFORMANCE_SERIOUS => 'badge badge-danger',
self::REPORT_PERFORMANCE_CRITICAL => 'badge badge-danger');
$row = array();
if ($detailed) {

View File

@ -51,11 +51,11 @@ echo $OUTPUT->heading(get_string('pluginname', 'report_security'));
echo '<div id="timewarning">'.get_string('timewarning', 'report_security').'</div>';
$strok = '<span class="statusok">'.get_string('statusok', 'report_security').'</span>';
$strinfo = '<span class="statusinfo">'.get_string('statusinfo', 'report_security').'</span>';
$strwarning = '<span class="statuswarning">'.get_string('statuswarning', 'report_security').'</span>';
$strserious = '<span class="statusserious">'.get_string('statusserious', 'report_security').'</span>';
$strcritical = '<span class="statuscritical">'.get_string('statuscritical', 'report_security').'</span>';
$strok = '<span class="badge badge-success">'.get_string('statusok', 'report_security').'</span>';
$strinfo = '<span class="badge badge-info">'.get_string('statusinfo', 'report_security').'</span>';
$strwarning = '<span class="badge badge-warning">'.get_string('statuswarning', 'report_security').'</span>';
$strserious = '<span class="badge badge-danger">'.get_string('statusserious', 'report_security').'</span>';
$strcritical = '<span class="badge badge-danger">'.get_string('statuscritical', 'report_security').'</span>';
$strissue = get_string('issue', 'report_security');
$strstatus = get_string('status', 'report_security');

View File

@ -34,7 +34,6 @@ $breadcrumb-divider-rtl: "◀" !default;
@import "moodle/templates";
@import "moodle/undo";
@import "moodle/debug";
@import "moodle/expendable";
@import "moodle/sticky-footer";
@import "moodle/popover-region";
@import "moodle/tool_usertours";

View File

@ -61,47 +61,10 @@
display: none;
}
.statusok {
@extend .tag;
@extend .tag-success;
}
.statuswarning {
@extend .tag;
@extend .tag-warning;
}
.statusserious,
.statuscritical {
@extend .tag;
@extend .tag-danger;
}
#page-admin-report-capability-index #capabilitysearch {
width: 30em;
}
#page-admin-report-backups-index .backup-error,
#page-admin-report-backups-index .backup-unfinished {
@extend .tag-danger;
}
#page-admin-report-backups-index .backup-skipped,
#page-admin-report-backups-index .backup-ok,
#page-admin-report-backups-index .backup-notyetrun,
#page-admin-report-backups-index .backup-queued {
@extend .tag-success;
}
#page-admin-report-backups-index .backup-warning {
@extend .tag-warning;
}
#page-admin-qtypes .disabled,
#page-admin-qbehaviours .disabled {
@extend .text-muted;
}
#page-admin-qtypes #qtypes div,
#page-admin-qtypes #qtypes form,
#page-admin-qbehaviours #qbehaviours div,
@ -184,24 +147,6 @@
text-align: left;
}
#page-admin-index .releasenoteslink,
#page-admin-index .adminwarning,
#page-admin-index .adminerror {
@extend .alert;
}
#page-admin-index .adminwarning {
@extend .alert-warning;
}
#page-admin-index .adminerror {
@extend .alert-danger;
}
#page-admin-index .releasenoteslink {
@extend .alert-info;
}
#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo span {
display: block;
}
@ -210,10 +155,6 @@
margin-bottom: 0.5em;
}
#page-admin-index .updateplugin .updatepluginconfirmexternal {
@extend .tag-warning;
}
#page-admin-user-user_bulk #users .fgroup {
white-space: nowrap;
}
@ -470,19 +411,6 @@
text-align: center;
}
#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo.maturity200 .info.release {
@extend .tag-info;
}
#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo.maturity100 .info.release,
#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo.maturity150 .info.release {
@extend .tag-warning;
}
#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo.maturity50 .info.release {
@extend .tag-danger;
}
// Plugins overview page at admin/plugins.php
#page-admin-plugins {
#plugins-overview-panel {
@ -524,7 +452,7 @@
.pluginname {
.componentname {
font-size: $font-size-sm;
@extend .text-muted;
color: $text-muted;
margin-left: 22px;
}
}
@ -532,7 +460,7 @@
.version {
.versionnumber {
font-size: $font-size-sm;
@extend .text-muted;
color: $text-muted;
}
}
@ -549,7 +477,7 @@
.requiredby {
font-size: $font-size-sm;
@extend .text-muted;
color: $text-muted;
}
}
}
@ -559,7 +487,7 @@
// Plugins check page displayed during upgrade.
#plugins-check-page {
.page-description {
@extend .text-muted;
color: $text-muted;
}
// Check for updates.
@ -598,7 +526,7 @@
// Plugins check table.
#plugins-check {
.requires-ok {
@extend .text-muted;
color: $text-muted;
}
.status-missing,
@ -610,7 +538,7 @@
.displayname {
.plugindir {
@extend .text-muted;
color: $text-muted;
font-size: $font-size-sm;
}
}
@ -652,7 +580,7 @@
#plugins-check-available-dependencies {
.displayname .component {
font-size: $font-size-sm;
@extend .text-muted;
color: $text-muted;
}
.info .actions {
@ -730,12 +658,6 @@
}
}
.uninstalldeleteconfirmexternal {
@extend .alert-warning;
padding: 0.5em 1em;
margin: 5px 0 10px 0;
}
#page-admin-index .upgradepluginsinfo {
text-align: center;
}
@ -750,12 +672,6 @@
font-size: $font-size-sm;
}
#page-admin-mnet-peers .mform .deletedhostinfo {
@extend .form-control-danger;
padding: 4px;
margin-bottom: 5px;
}
#core-cache-plugin-summaries table,
#core-cache-store-summaries table {
width: 100%;
@ -784,28 +700,12 @@
right: 0;
overflow: hidden;
z-index: $zindex-dropdown;
&.error {
@extend .form-control-danger;
}
&.warning {
@extend .form-control-warning;
}
}
#adminsettings .form-overridden {
@extend .alert-info;
}
.modal.modal-in-page {
z-index: 0;
}
#overriderolestable .overriddenpermission {
@extend .table-warning;
}
#page-admin-search {
.adminpagetitle {
margin-bottom: 0;
@ -818,8 +718,6 @@
padding: 0;
margin: 0 0 1.5rem 0;
li {
@extend .text-muted;
@extend .small;
+ li:before {
padding-right: 0.5rem;
padding-left: 0.5rem;

View File

@ -123,7 +123,7 @@
margin-bottom: $spacer-y;
.backup_stage {
@extend .text-muted;
color: $text-muted;
&.backup_stage_current {
font-weight: bold;

View File

@ -2,41 +2,51 @@
// Well -> Panel -> Card. We skipped panel (BS3) so lets just support well and card.
.well {
@extend .card;
border: $border-width solid $border-color;
padding: $card-spacer-x;
}
// Some things just got renamed.
.img-responsive {
@extend .img-fluid;
@include img-fluid;
}
.text-error {
@extend .text-danger;
color: map-get($theme-colors, 'danger');
}
.btn-default {
@extend .btn-secondary;
@include button-variant(map-get($theme-colors, 'secondary'), map-get($theme-colors, 'secondary'));
}
.label {
@extend .tag;
@include tag-variant($tag-default-bg);
display: inline-block;
padding: $badge-padding-y $badge-padding-x;
@include font-size($badge-font-size);
font-weight: $badge-font-weight;
line-height: 1;
text-align: center;
white-space: nowrap;
vertical-align: baseline;
@include border-radius($badge-border-radius);
@include transition($badge-transition);
@include badge-variant($tag-default-bg);
}
.label-success {
@include tag-variant($tag-success-bg);
@include badge-variant($tag-success-bg);
}
.label-info {
@include tag-variant($tag-info-bg);
@include badge-variant($tag-info-bg);
}
.label-warning {
@include tag-variant($tag-warning-bg);
@include badge-variant($tag-warning-bg);
}
.label-important {
@include tag-variant($tag-danger-bg);
@include badge-variant($tag-danger-bg);
}
// Floats.

View File

@ -215,13 +215,6 @@ $bs4aspacers: map-merge((
}
}
// Adding compatibility for col-xs-* classes.
@for $i from 1 through $grid-columns {
.col-xs-#{$i} {
@extend .col-#{$i};
}
}
input[disabled] {
cursor: not-allowed;
}

View File

@ -13,14 +13,6 @@
p.arrow_button {
margin-top: 5em;
text-align: center;
#remove {
margin: 3em auto 5em;
}
input {
@extend .btn-block;
}
}
#addcontrols {
@ -37,7 +29,7 @@ p.arrow_button {
#addcontrols,
#removecontrols {
input {
@extend .btn-block;
width: 100%;
margin: auto;
}
}
@ -47,8 +39,6 @@ p.arrow_button {
}
.btn.btn-icon {
@extend .btn-link;
height: ($icon-width + 20px);
width: ($icon-width + 20px);
font-size: $icon-width;

View File

@ -213,12 +213,6 @@ $calendarEventUserColor: #dce7ec !default; // Pale blue.
border-color: $calendarEventUserColor;
}
.calendar-controls {
.current {
@extend .h2;
}
}
.calendartable {
td,
li {
@ -275,7 +269,7 @@ $calendarEventUserColor: #dce7ec !default; // Pale blue.
td {
&.weekend {
@extend .text-muted;
color: $text-muted;
}
a {

View File

@ -24,7 +24,7 @@
}
// Override the default padding added by function $OUTPUT->box();
#chat-input-area.py-3 {
@extend .p-0;
padding: 0 !important; /* stylelint-disable-line declaration-no-important */
}
#chat-input-area table.generaltable,
#chat-input-area table.generaltable td.cell {

View File

@ -85,7 +85,7 @@ a.dimmed_text:visited,
.usersuspended a:visited,
.dimmed_category,
.dimmed_category a {
@extend .text-muted;
color: $text-muted;
}
.unlist,
@ -118,16 +118,16 @@ a.dimmed_text:visited,
.red,
.notifyproblem {
@extend .text-warning;
color: map-get($theme-colors, 'warning');
}
.green,
.notifysuccess {
@extend .text-success;
color: map-get($theme-colors, 'success');
}
.highlight {
@extend .text-info;
color: map-get($theme-colors, 'info');
}
.fitem.advanced .text-info {
@ -389,6 +389,7 @@ a.skip:active {
width: auto;
min-width: 80%;
margin: 0 auto;
display: block;
}
.groupmanagementtable #removeselect_wrapper,
@ -592,7 +593,7 @@ table.mod_index {
* Completion progress report
*/
.completion-expired {
@extend .text-warning;
color: map-get($theme-colors, 'warning');
}
.completion-expected {
@ -689,7 +690,7 @@ span.flagged-tag,
tr.flagged-tag,
span.flagged-tag a,
tr.flagged-tag a {
@extend .text-warning;
color: map-get($theme-colors, 'warning');
}
.tag-management-table td,
@ -766,7 +767,7 @@ tr.flagged-tag a {
}
.tag_feed .media .muted a {
@extend .text-muted;
color: $text-muted;
}
.tag_cloud {
@ -988,22 +989,6 @@ tr.flagged-tag a {
margin-left: 3px;
}
#page-enrol-users {
.enrol_user_buttons {
text-align: right;
}
#filterform {
@extend .card;
@extend .card-block;
}
}
#page-enrol-users .enrol-users-page-action input {
margin-left: 0;
}
.corelightbox {
background-color: #ccc;
position: absolute;
@ -1155,12 +1140,10 @@ body#page-lib-editor-tinymce-plugins-moodlemedia-preview {
display: block;
}
.moodle-dialogue-base .moodle-dialogue-wrap.moodle-dialogue-content {
@extend .modal-content;
}
.moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd {
@extend .modal-header;
display: flex;
padding: 1rem 1rem;
border-bottom: 1px solid #dee2e6;
}
.moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd.yui3-widget-hd {
@ -1173,7 +1156,6 @@ body#page-lib-editor-tinymce-plugins-moodlemedia-preview {
}
.moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd h1 {
@extend .modal-title;
font-size: 1.5rem;
}
@ -1182,12 +1164,24 @@ body#page-lib-editor-tinymce-plugins-moodlemedia-preview {
left: 0;
right: auto;
*/
padding: $spacer;
padding: 0;
position: relative;
margin-left: auto;
}
.moodle-dialogue-base .closebutton {
@extend .close;
padding: $modal-header-padding;
margin: (-$modal-header-padding-y) (-$modal-header-padding-x) (-$modal-header-padding-y) auto;
position: relative;
background-color: transparent;
border: 0;
background-image: none;
box-shadow: none;
opacity: 0.7;
&:hover,
&:active {
opacity: 1;
}
&::after {
content: "×";
}
@ -1195,6 +1189,9 @@ body#page-lib-editor-tinymce-plugins-moodlemedia-preview {
.moodle-dialogue-base .moodle-dialogue .moodle-dialogue-bd {
padding: 0.5rem;
body {
background-color: $body-bg;
}
}
.moodle-dialogue-base .moodle-dialogue-fullscreen .moodle-dialogue-content {
@ -1229,7 +1226,7 @@ body#page-lib-editor-tinymce-plugins-moodlemedia-preview {
}
.moodle-dialogue-exception .param-stacktrace .stacktrace-line {
@extend .text-warning;
color: map-get($theme-colors, 'warning');
font-size: $font-size-sm;
}
@ -1239,10 +1236,6 @@ body#page-lib-editor-tinymce-plugins-moodlemedia-preview {
border-bottom: 1px solid #eee;
}
.moodle-dialogue-base .moodle-dialogue .moodle-dialogue-content .moodle-dialogue-ft {
@extend .modal-footer;
}
.moodle-dialogue-base .moodle-dialogue .moodle-dialogue-content .moodle-dialogue-ft:empty {
display: none;
}
@ -1555,13 +1548,6 @@ body.jsenabled .formlisting {
display: block;
}
/* Badges styles */
table.collection {
@extend .table;
@extend .table-bordered;
@extend .table-striped;
}
a.criteria-action {
padding: 0 3px;
float: right;
@ -1684,15 +1670,15 @@ ul.badges {
}
.connected {
@extend .text-success;
color: map-get($theme-colors, 'success');
}
.notconnected {
@extend .text-danger;
color: map-get($theme-colors, 'danger');
}
.connecting {
@extend .text-warning;
color: map-get($theme-colors, 'warning');
}
#page-badges-award .recipienttable tr td {

View File

@ -106,7 +106,7 @@ body:not(.editing) .sitetopic ul.section {
}
.stealth {
@extend .text-muted;
color: $text-muted;
}
a.stealth,
a.stealth:hover {
@ -259,7 +259,7 @@ body:not(.editing) .sitetopic ul.section {
}
.course-content .section-summary .section-summary-activities .activity-count {
@extend .text-muted;
color: $text-muted;
font-size: $font-size-sm;
margin: 3px;
white-space: nowrap;
@ -323,7 +323,7 @@ body:not(.editing) .sitetopic ul.section {
.sectionname > span,
.content > div.summary,
.activity .activityinstance {
@extend .text-muted;
color: $text-muted;
}
}
@ -905,11 +905,11 @@ span.editinstructions {
}
// The category or course is hidden.
&[data-visible="0"] {
@extend .text-muted;
color: $text-muted;
> div {
> a {
@extend .text-muted;
color: $text-muted;
}
.item-actions {
@ -1057,7 +1057,7 @@ span.editinstructions {
text-align: center;
&.dimmed {
@extend .text-muted;
color: $text-muted;
margin: 0.4rem 1rem 0.45rem;
}
}

View File

@ -1,15 +1,8 @@
table#explaincaps,
table#defineroletable,
table.grading-report,
table#listdirectories,
table.rolecaps,
table.userenrolment,
form#movecourses table,
#page-admin-course-index .editcourse,
.forumheaderlist,
table.flexible,
.generaltable {
@extend .table-striped;
tbody tr:nth-of-type(#{$table-striped-order}) {
background-color: $table-accent-bg;
}
}
table {
@ -28,17 +21,23 @@ table {
#page-admin-user table,
.environmenttable,
.category_subcategories,
.rcs-results,
table#listdirectories {
@extend .table-sm;
.rcs-results {
th,
td {
padding: $table-cell-padding-sm;
}
}
table.grading-report,
.forumheaderlist,
.generaltable,
table.flexible,
.category_subcategories,
table#modules,
table#permissions {
@extend .table-hover;
tbody tr {
@include hover {
color: $table-hover-color;
background-color: $table-hover-bg;
}
}
}

View File

@ -115,12 +115,15 @@
}
.fp-viewbar:not(.disabled) a.checked {
@extend .btn-secondary.active;
background-color: darken(map-get($theme-colors, 'secondary'), 10%);
color: color-yiq(darken(map-get($theme-colors, 'secondary'), 10%));
border-color: darken(map-get($theme-colors, 'secondary'), 12.5%);
}
.fp-viewbar.disabled a {
@extend .btn.disabled;
@extend .btn-secondary.disabled;
pointer-events: none;
opacity: $btn-disabled-opacity;
@include box-shadow(none);
}
.file-picker .fp-clear-left {
@ -621,7 +624,7 @@ a.ygtvspacer:hover {
}
.fitem.disabled .fp-btn-choose {
@extend .text-muted;
color: $text-muted;
}
.fitem.disabled .filepicker-filelist .filepicker-filename {

View File

@ -90,7 +90,7 @@ input#id_externalurl {
.form-defaultinfo,
.form-label .form-shortname {
@extend .text-muted;
color: $text-muted;
}
.form-label .form-shortname {
@ -107,7 +107,7 @@ input#id_externalurl {
}
.formsettingheading .form-horizontal {
@extend .text-muted;
color: $text-muted;
}
// Moodle doesn't differentiate between what Bootstrap calls
@ -115,7 +115,7 @@ input#id_externalurl {
// uneditable looks ugly, styling both as form help is fairly
// subtle in it's impact. Going for the latter as the best option.
.no-felement.fstatic {
@extend .text-muted;
color: $text-muted;
padding-top: 5px;
}
@ -123,15 +123,6 @@ input#id_externalurl {
font-weight: bold;
}
// Pale grey container for submit buttons.
.form-buttons,
.path-admin .buttons,
.fp-content-center form + div,
div.backup-section + form {
@extend .form-group;
padding-left: 0;
}
.form-item .form-setting .defaultsnext > input {
display: inline-block;
}
@ -471,20 +462,20 @@ textarea[data-auto-rows] {
.input-group {
&.form-inset {
.form-inset-item {
@extend .position-absolute;
position: absolute;
padding-top: calc(#{$input-padding-y} + #{$input-border-width});
z-index: 3;
}
&.form-inset-left {
.form-control {
@extend .pl-4;
padding-left: $spacer * 1.5;
}
}
&.form-inset-right {
.form-control {
@extend .pr-4;
padding-right: $spacer * 1.5;
}
.form-inset-item {
right: 0;

View File

@ -70,8 +70,6 @@
margin-bottom: 1em;
.action {
@extend .btn;
@extend .btn-lg;
display: inline-block;
position: relative;
vertical-align: top;
@ -190,7 +188,6 @@
vertical-align: middle;
input {
@extend .btn;
background-position: 0 0;
height: 30px;
margin-right: 5px;
@ -201,7 +198,6 @@
.addcriterion {
margin-left: 5px;
@extend .btn;
padding: 0;
input {

View File

@ -293,7 +293,7 @@ $author-image-margin-sm: 8px;
/** Don't show the discussion locked alert in this mode because it's already indicated with a badge. */
.alert.discussionlocked {
@extend .sr-only;
@include sr-only();
}
/** Fix muted text contrast ratios for accessibility. */
@ -312,7 +312,7 @@ $author-image-margin-sm: 8px;
/** Make the tag list text screen reader visible only */
.tag_list > b {
@extend .sr-only;
@include sr-only();
}
:target > .focus-target {
@ -1323,7 +1323,9 @@ $popout-header-height: 4rem;
.path-mod-assign [data-region="grade-panel"] .popout > .col-md-3 {
@extend .modal-header;
display: flex;
align-items: flex-start;
justify-content: space-between;
font-size: $popout-header-font-size;
}
@ -1383,8 +1385,12 @@ $popout-header-height: 4rem;
}
.assignfeedback_editpdf_widget .label {
@extend .alert;
@extend .alert-info;
position: relative;
padding: $alert-padding-y $alert-padding-x;
margin-bottom: $alert-margin-bottom;
border: $alert-border-width solid transparent;
@include border-radius($alert-border-radius);
@include alert-variant(theme-color-level('info', $alert-bg-level), theme-color-level('info', $alert-border-level), theme-color-level('info', $alert-color-level)); /* stylelint-disable-line max-line-length */
}
.assignfeedback_editpdf_menu {

View File

@ -174,10 +174,6 @@
}
}
.highlight {
@extend .text-dark;
}
label {
margin: 0;
display: block;
@ -293,15 +289,19 @@ body.path-question-type {
.que .formulation,
.que .outcome,
.que .comment {
@extend .alert;
position: relative;
padding: $alert-padding-y $alert-padding-x;
margin-bottom: $alert-margin-bottom;
border: $alert-border-width solid transparent;
@include border-radius($alert-border-radius);
}
.que .outcome,
.que .comment {
@extend .alert-warning;
@include alert-variant(theme-color-level('warning', $alert-bg-level), theme-color-level('warning', $alert-border-level), theme-color-level('warning', $alert-color-level)); /* stylelint-disable-line max-line-length */
}
.que .formulation {
@extend .alert-info;
@include alert-variant(theme-color-level('info', $alert-bg-level), theme-color-level('info', $alert-border-level), theme-color-level('info', $alert-color-level)); /* stylelint-disable-line max-line-length */
}
.que.multichoice .answer div.r0 .icon.fa-check,
@ -339,11 +339,7 @@ body.path-question-type {
}
.que .comment {
@extend .alert-success;
}
.que .history {
@extend .card;
@include alert-variant(theme-color-level('success', $alert-bg-level), theme-color-level('success', $alert-border-level), theme-color-level('success', $alert-color-level)); /* stylelint-disable-line max-line-length */
}
.que .ablock {
@ -366,7 +362,6 @@ body.path-question-type {
}
.que .correctness {
@extend .tag;
&.correct {
background-color: $state-success-text;
}
@ -384,7 +379,7 @@ body.path-question-type {
}
.que .validationerror {
@extend .text-danger;
color: map-get($theme-colors, 'danger');
}
// copied from .formFieldState in mixin.less
// and made more specific

View File

@ -1,6 +1,48 @@
table.flexible,
.generaltable {
@extend .table;
width: 100%;
margin-bottom: $spacer;
color: $table-color;
background-color: $table-bg; // Reset for nesting within parents with `background-color`.
th,
td {
padding: $table-cell-padding;
vertical-align: top;
border-top: $table-border-width solid $table-border-color;
}
thead th {
vertical-align: bottom;
border-bottom: (2 * $table-border-width) solid $table-border-color;
}
tbody + tbody {
border-top: (2 * $table-border-width) solid $table-border-color;
}
tbody tr:nth-of-type(#{$table-striped-order}) {
background-color: $table-accent-bg;
}
&.table-sm {
th,
td {
padding: $table-cell-padding-sm;
}
}
tbody tr {
@include hover {
color: $table-hover-color;
background-color: $table-hover-bg;
}
}
}
table {
caption {
font-size: 24px;
font-weight: bold;
line-height: 42px;
text-align: left;
caption-side: top;
}
}
// fancier table styles moved to expendable.less
// to shift after 4096 selector break

View File

@ -15,18 +15,6 @@
.userprofile .profile_tree {
column-count: 2;
section {
@extend .card;
@extend .card-body;
display: inline-block;
width: 100%;
margin-bottom: 1rem;
h3 {
@extend .lead;
}
}
}
// This rule overrides the automatic no-overflow on the participants table. It kills the auto-complete.
@ -217,10 +205,6 @@
}
}
.groupinfobox {
@extend .card;
}
.groupinfobox .left {
padding: 10px;
width: 100px;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -60,11 +60,15 @@ class renderer extends \plugin_renderer_base {
public function render_category(category $category) {
$classes = $category->classes;
if (empty($classes)) {
$return = \html_writer::start_tag('section', array('class' => 'node_category'));
$return = \html_writer::start_tag('section',
array('class' => 'node_category card d-inline-block w-100 mb-3'));
$return .= \html_writer::start_tag('div', array('class' => 'card-body'));
} else {
$return = \html_writer::start_tag('section', array('class' => 'node_category ' . $classes));
$return = \html_writer::start_tag('section',
array('class' => 'node_category card d-inline-block w-100 mb-3' . $classes));
$return .= \html_writer::start_tag('div', array('class' => 'card-body'));
}
$return .= \html_writer::tag('h3', $category->title);
$return .= \html_writer::tag('h3', $category->title, array('class' => 'lead'));
$nodes = $category->nodes;
if (empty($nodes)) {
// No nodes, nothing to render.
@ -75,6 +79,7 @@ class renderer extends \plugin_renderer_base {
$return .= $this->render($node);
}
$return .= \html_writer::end_tag('ul');
$return .= \html_writer::end_tag('div');
$return .= \html_writer::end_tag('section');
return $return;
}