mirror of
https://github.com/moodle/moodle.git
synced 2025-04-22 08:55:15 +02:00
MDL-43033 cache: added a warning icon for mappings
We now show a warning icon with an explanatory alt if the user has mapped a store as a mode default that doesn't not fulfill the requirements of every known definition.
This commit is contained in:
parent
bf77c0b273
commit
d31fd615eb
1
cache/admin.php
vendored
1
cache/admin.php
vendored
@ -282,6 +282,7 @@ if (!empty($action) && confirm_sesskey()) {
|
||||
|
||||
$PAGE->set_title($title);
|
||||
$PAGE->set_heading($SITE->fullname);
|
||||
/* @var core_cache_renderer $renderer */
|
||||
$renderer = $PAGE->get_renderer('core_cache');
|
||||
|
||||
echo $renderer->header();
|
||||
|
24
cache/classes/helper.php
vendored
24
cache/classes/helper.php
vendored
@ -678,4 +678,28 @@ class cache_helper {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an array of stores that would meet the requirements for every definition.
|
||||
*
|
||||
* These stores would be 100% suitable to map as defaults for cache modes.
|
||||
*
|
||||
* @return array[] An array of stores, keys are the store names.
|
||||
*/
|
||||
public static function get_stores_suitable_for_mode_default() {
|
||||
$factory = cache_factory::instance();
|
||||
$config = $factory->create_config_instance();
|
||||
$requirements = 0;
|
||||
foreach ($config->get_definitions() as $definition) {
|
||||
$definition = cache_definition::load($definition['component'].'/'.$definition['area'], $definition);
|
||||
$requirements = $requirements | $definition->get_requirements_bin();
|
||||
}
|
||||
$stores = array();
|
||||
foreach ($config->get_all_stores() as $name => $store) {
|
||||
if (!empty($store['features']) && ($store['features'] & $requirements)) {
|
||||
$stores[$name] = $store;
|
||||
}
|
||||
}
|
||||
return $stores;
|
||||
}
|
||||
}
|
||||
|
6
cache/locallib.php
vendored
6
cache/locallib.php
vendored
@ -1126,7 +1126,10 @@ abstract class cache_administration_helper extends cache_helper {
|
||||
* @return array An array containing sub-arrays, one for each mode.
|
||||
*/
|
||||
public static function get_default_mode_stores() {
|
||||
global $OUTPUT;
|
||||
$instance = cache_config::instance();
|
||||
$adequatestores = cache_helper::get_stores_suitable_for_mode_default();
|
||||
$icon = new pix_icon('i/warning', new lang_string('inadequatestoreformapping', 'cache'));
|
||||
$storenames = array();
|
||||
foreach ($instance->get_all_stores() as $key => $store) {
|
||||
if (!empty($store['default'])) {
|
||||
@ -1149,6 +1152,9 @@ abstract class cache_administration_helper extends cache_helper {
|
||||
} else {
|
||||
$modemappings[$mode][$mapping['store']] = $mapping['store'];
|
||||
}
|
||||
if (!array_key_exists($mapping['store'], $adequatestores)) {
|
||||
$modemappings[$mode][$mapping['store']] = $modemappings[$mode][$mapping['store']].' '.$OUTPUT->render($icon);
|
||||
}
|
||||
}
|
||||
return $modemappings;
|
||||
}
|
||||
|
@ -92,6 +92,7 @@ $string['ex_unabletolock'] = 'Unable to acquire a lock for caching.';
|
||||
$string['ex_unmetstorerequirements'] = 'You are unable to use this store at the present time. Please refer to the documentation to determine its requirements.';
|
||||
$string['gethit'] = 'Get - Hit';
|
||||
$string['getmiss'] = 'Get - Miss';
|
||||
$string['inadequatestoreformapping'] = 'This store doesn\'t meet the requirements for all known definitions. Definitions for which this store is inadequate will be given the original default store instead of the selected store.';
|
||||
$string['invalidlock'] = 'Invalid lock';
|
||||
$string['invalidplugin'] = 'Invalid plugin';
|
||||
$string['invalidstore'] = 'Invalid cache store provided';
|
||||
|
Loading…
x
Reference in New Issue
Block a user