function update_helper_checklist_toolbar in Update helper 8
Same name and namespace in other branches
- 2.x modules/update_helper_checklist/update_helper_checklist.module \update_helper_checklist_toolbar()
Implements hook_toolbar().
File
- modules/
update_helper_checklist/ update_helper_checklist.module, line 143 - Update helper checklist hooks.
Code
function update_helper_checklist_toolbar() {
$user = \Drupal::currentUser();
/** @var Drupal\checklistapi\ChecklistapiChecklist $checklist */
$checklist = checklistapi_checklist_load('update_helper_checklist');
$items = [];
// We are varying our cache by path and by permission.
$items['update_helper_checklist'] = [
'#cache' => [
'keys' => [
'toolbar',
'updater_helper',
],
'contexts' => [
'user.permissions',
],
],
];
/** @var \Drupal\checklistapi\Storage\StateStorage $state_storage */
$state_storage = \Drupal::service('checklistapi_storage.state');
\Drupal::service('renderer')
->addCacheableDependency($items['update_helper_checklist'], $state_storage
->setChecklistId($checklist->id)
->getSavedProgress());
if ($checklist
->getPercentComplete() != 100 && $user
->hasPermission('view update_helper_checklist checklistapi checklist')) {
$items['update_helper_checklist'] += [
'#type' => 'toolbar_item',
'tab' => [
'#type' => 'link',
'#title' => t('Pending updates'),
'#url' => Url::fromRoute($checklist
->getRouteName()),
'#attributes' => [
'class' => [
'toolbar-icon',
'update-helper-checklist__toolbar-icon',
],
'aria-pressed' => 'false',
],
],
'#weight' => 500,
'#attached' => [
'library' => [
'update_helper_checklist/toolbar-button',
],
],
];
}
return $items;
}