# Menu list of Islandora configuration forms
system.admin_config_islandora:
  path: '/admin/config/islandora'
  defaults:
    _controller: '\Drupal\system\Controller\SystemController::systemAdminMenuBlockPage'
    _title: 'Islandora'
  requirements:
    _permission: 'access administration pages'

# Core Islandora configuration form
system.islandora_settings:
  path: '/admin/config/islandora/core'
  defaults:
    _form: '\Drupal\islandora\Form\IslandoraSettingsForm'
    _title: 'Islandora Settings'
  requirements:
    _permission: 'administer site configuration'

# RDF properties report
system.islandora_rdf_mappings:
  path: '/admin/reports/islandora/rdf_mappings'
  defaults:
    _controller: '\Drupal\islandora\Controller\RdfMappingsReportController::main'
    _title: 'Field and term RDF mappings'
  requirements:
    _permission: 'administer site configuration'

islandora.add_member_to_node_page:
  path: '/node/{node}/members/add'
  defaults:
    _controller: '\Drupal\islandora\Controller\ManageMembersController::addToNodePage'
    _title_callback: '\Drupal\islandora\Controller\ManageMembersController::addTitle'
    entity_type_id: node
  options:
    _admin_route: 'true'
  requirements:
    _entity_create_any_access: 'node'

islandora.upload_children:
  path: '/node/{node}/members/upload/{step}'
  defaults:
    _wizard: '\Drupal\islandora\Form\AddChildrenWizard\ChildForm'
    _title: 'Upload Children'
    step: 'type_selection'
  options:
    _admin_route: 'TRUE'
  requirements:
    _custom_access: '\Drupal\islandora\Form\AddChildrenWizard\Access::childAccess'

islandora.add_media_to_node_page:
  path: '/node/{node}/media/add'
  defaults:
    _controller: '\Drupal\islandora\Controller\ManageMediaController::addToNodePage'
    _title_callback: '\Drupal\islandora\Controller\ManageMediaController::addTitle'
    entity_type_id: media
  options:
    _admin_route: 'true'
  requirements:
    _entity_create_any_access: 'media'

islandora.upload_media:
  path: '/node/{node}/media/upload/{step}'
  defaults:
    _wizard: '\Drupal\islandora\Form\AddChildrenWizard\MediaForm'
    _title: 'Add media'
    step: 'type_selection'
  options:
    _admin_route: 'TRUE'
  requirements:
    _custom_access: '\Drupal\islandora\Form\AddChildrenWizard\Access::mediaAccess'

islandora.media_source_update:
  path: '/media/{media}/source'
  defaults:
    _controller: '\Drupal\islandora\Controller\MediaSourceController::put'
  methods: [PUT]
  requirements:
    _permission: 'update media'
  options:
    _auth: ['basic_auth', 'cookie', 'jwt_auth']

islandora.media_source_put_to_node:
  path: '/node/{node}/media/{media_type}/{taxonomy_term}'
  defaults:
    _controller: '\Drupal\islandora\Controller\MediaSourceController::putToNode'
  methods: [PUT]
  requirements:
    _custom_access: '\Drupal\islandora\Controller\MediaSourceController::putToNodeAccess'
  options:
    _auth: ['basic_auth', 'cookie', 'jwt_auth']

islandora.attach_file_to_media:
  path: '/media/add_derivative/{media}/{destination_field}'
  defaults:
    _controller: '\Drupal\islandora\Controller\MediaSourceController::attachToMedia'
  methods: [GET, PUT]
  requirements:
    _custom_access: '\Drupal\islandora\Controller\MediaSourceController::attachToMediaAccess'
  options:
    _auth: ['basic_auth', 'cookie', 'jwt_auth']
    no_cache: 'TRUE'
    parameters:
      media:
        type: entity:media

islandora.confirm_delete_media_and_file:
  path: '/media/delete_with_files'
  defaults:
    _form: 'Drupal\islandora\Form\ConfirmDeleteMediaAndFile'
  requirements:
    _permission: 'administer media+delete any media'