$dependency !== 'islandora_mirador/mirador' )); if (!in_array('islandora_mirador_annotations/annotated_mirador', $libraries['viewer']['dependencies'], TRUE)) { $libraries['viewer']['dependencies'][] = 'islandora_mirador_annotations/annotated_mirador'; } } /** * Implements hook_js_settings_alter(). */ function islandora_mirador_annotations_js_settings_alter(array &$settings, AttachedAssetsInterface $assets) { if (empty($settings['mirador']['viewers']) || !is_array($settings['mirador']['viewers'])) { return; } $account = \Drupal::currentUser(); if (!$account->hasPermission('view mirador annotations')) { return; } $endpoint = Url::fromRoute('islandora_mirador_annotations.collection', [], ['absolute' => TRUE])->toString(); $can_manage = $account->hasPermission('manage mirador annotations'); foreach ($settings['mirador']['viewers'] as &$viewer) { $viewer['annotation'] = [ 'adapter' => 'drupal', 'endpoint' => $endpoint, 'csrfTokenUrl' => Url::fromRoute('system.csrftoken', [], ['absolute' => TRUE])->toString(), 'user' => $account->isAuthenticated() ? $account->getDisplayName() : 'Anonymous', 'readonly' => !$can_manage, 'allowTargetShapesStyling' => TRUE, 'exportLocalStorageAnnotations' => FALSE, ]; $viewer['annotations'] = [ 'htmlSanitizationRuleSet' => 'liberal', ]; $viewer['window'] = $viewer['window'] ?? []; $viewer['window']['defaultSideBarPanel'] = 'annotations'; } }