MDL-39554 cache: sharing link only shown in multiple options are available

This commit is contained in:
Sam Hemelryk 2013-05-08 11:02:14 +12:00
parent bd12f745b7
commit 5451933012
3 changed files with 20 additions and 18 deletions

2
cache/admin.php vendored
View File

@ -296,7 +296,7 @@ if ($mform instanceof moodleform) {
} else {
echo $renderer->store_plugin_summaries($plugins);
echo $renderer->store_instance_summariers($stores, $plugins);
echo $renderer->definition_summaries($definitions, cache_administration_helper::get_definition_actions($context));
echo $renderer->definition_summaries($definitions, $context);
echo $renderer->lock_summaries($locks);
$applicationstore = join(', ', $defaultmodestores[cache_store::MODE_APPLICATION]);

32
cache/locallib.php vendored
View File

@ -866,25 +866,27 @@ abstract class cache_administration_helper extends cache_helper {
* @param context $context
* @return array
*/
public static function get_definition_actions(context $context) {
public static function get_definition_actions(context $context, array $definition) {
if (has_capability('moodle/site:config', $context)) {
return array(
// Edit mappings.
array(
'text' => get_string('editmappings', 'cache'),
'url' => new moodle_url('/cache/admin.php', array('action' => 'editdefinitionmapping', 'sesskey' => sesskey()))
),
// Edit sharing.
array(
$actions = array();
// Edit mappings.
$actions[] = array(
'text' => get_string('editmappings', 'cache'),
'url' => new moodle_url('/cache/admin.php', array('action' => 'editdefinitionmapping', 'sesskey' => sesskey()))
);
// Edit sharing.
if (count($definition['sharingoptions']) > 1) {
$actions[] = array(
'text' => get_string('editsharing', 'cache'),
'url' => new moodle_url('/cache/admin.php', array('action' => 'editdefinitionsharing', 'sesskey' => sesskey()))
),
// Purge.
array(
'text' => get_string('purge', 'cache'),
'url' => new moodle_url('/cache/admin.php', array('action' => 'purgedefinition', 'sesskey' => sesskey()))
)
);
}
// Purge.
$actions[] = array(
'text' => get_string('purge', 'cache'),
'url' => new moodle_url('/cache/admin.php', array('action' => 'purgedefinition', 'sesskey' => sesskey()))
);
return $actions;
}
return array();
}

4
cache/renderer.php vendored
View File

@ -211,10 +211,9 @@ class core_cache_renderer extends plugin_renderer_base {
* Displays definition summaries
*
* @param array $definitions
* @param array $actions
* @return string HTML
*/
public function definition_summaries(array $definitions, array $actions) {
public function definition_summaries(array $definitions, context $context) {
$table = new html_table();
$table->head = array(
get_string('definition', 'cache'),
@ -238,6 +237,7 @@ class core_cache_renderer extends plugin_renderer_base {
$none = new lang_string('none', 'cache');
foreach ($definitions as $id => $definition) {
$actions = cache_administration_helper::get_definition_actions($context, $definition);
$htmlactions = array();
foreach ($actions as $action) {
$action['url']->param('definition', $id);