From 029a6335985ccde2c3c07448982fe78cc7e6330f Mon Sep 17 00:00:00 2001 From: Bethany Seeger Date: Tue, 9 Mar 2021 11:54:02 -0500 Subject: [PATCH 1/9] first pass at adding collection level admin and global admin permissions --- codebase/composer.json | 4 + codebase/composer.lock | 234 ++- ...ntity_form_display.media.audio.default.yml | 2 +- ...ty_form_display.media.document.default.yml | 2 +- ...m_display.media.extracted_text.default.yml | 15 +- ...entity_form_display.media.file.default.yml | 2 +- ...ntity_form_display.media.image.default.yml | 2 +- ...orm_display.media.remote_video.default.yml | 17 +- ...ntity_form_display.media.video.default.yml | 2 +- ...display.node.collection_object.default.yml | 7 + ..._display.node.islandora_object.default.yml | 12 +- ...ay.taxonomy_term.access_rights.default.yml | 10 +- ...axonomy_term.copyright_and_use.default.yml | 2 +- ...y.taxonomy_term.corporate_body.default.yml | 2 +- ...w_display.media.extracted_text.default.yml | 9 + ...iew_display.media.remote_video.default.yml | 9 + ...display.node.collection_object.default.yml | 9 + ..._display.node.collection_object.teaser.yml | 2 + codebase/config/sync/core.extension.yml | 4 + ...edia.extracted_text.field_access_terms.yml | 29 + ....media.remote_video.field_access_terms.yml | 29 + ...collection_object.field_access_control.yml | 29 + ...ield.storage.node.field_access_control.yml | 24 + .../field.storage.node.field_access_terms.yml | 2 +- .../config/sync/role_hierarchy.settings.yml | 8 + .../sync/shortcut.set.islandora-shortcuts.yml | 6 + .../sync/simplesamlphp_auth.settings.yml | 2 + ...add_role_action.collection_level_admin.yml | 14 + ...tion.user_add_role_action.global_admin.yml | 14 + ...stem.action.user_add_role_action.staff.yml | 14 - ...ove_role_action.collection_level_admin.yml | 14 + ...n.user_remove_role_action.global_admin.yml | 14 + ...m.action.user_remove_role_action.staff.yml | 14 - .../config/sync/system.menu.workbench.yml | 10 + .../config/sync/user.role.administrator.yml | 2 +- codebase/config/sync/user.role.anonymous.yml | 4 +- .../config/sync/user.role.authenticated.yml | 6 +- .../sync/user.role.collection_level_admin.yml | 92 ++ .../config/sync/user.role.fedoraadmin.yml | 2 +- .../config/sync/user.role.global_admin.yml | 124 ++ codebase/config/sync/user.role.staff.yml | 9 - .../views.view.openseadragon_media_evas.yml | 17 +- .../views.view.repository_item_member_of.yml | 169 +++ ....view.repsitory_item_access_perm_types.yml | 282 ++++ .../views.view.workbench_current_user.yml | 444 ++++++ .../sync/views.view.workbench_edited.yml | 1007 +++++++++++++ .../views.view.workbench_recent_content.yml | 1331 +++++++++++++++++ .../sync/views.view.workbench_taxonomies.yml | 303 ++++ codebase/config/sync/workbench.settings.yml | 7 + ...kbench_access.access_scheme.collection.yml | 59 + .../config/sync/workbench_access.settings.yml | 3 + codebase/web/sites/simpletest/.htaccess | 14 + 52 files changed, 4367 insertions(+), 77 deletions(-) create mode 100644 codebase/config/sync/field.field.media.extracted_text.field_access_terms.yml create mode 100644 codebase/config/sync/field.field.media.remote_video.field_access_terms.yml create mode 100644 codebase/config/sync/field.field.node.collection_object.field_access_control.yml create mode 100644 codebase/config/sync/field.storage.node.field_access_control.yml create mode 100644 codebase/config/sync/role_hierarchy.settings.yml create mode 100644 codebase/config/sync/shortcut.set.islandora-shortcuts.yml create mode 100644 codebase/config/sync/system.action.user_add_role_action.collection_level_admin.yml create mode 100644 codebase/config/sync/system.action.user_add_role_action.global_admin.yml delete mode 100644 codebase/config/sync/system.action.user_add_role_action.staff.yml create mode 100644 codebase/config/sync/system.action.user_remove_role_action.collection_level_admin.yml create mode 100644 codebase/config/sync/system.action.user_remove_role_action.global_admin.yml delete mode 100644 codebase/config/sync/system.action.user_remove_role_action.staff.yml create mode 100644 codebase/config/sync/system.menu.workbench.yml create mode 100644 codebase/config/sync/user.role.collection_level_admin.yml create mode 100644 codebase/config/sync/user.role.global_admin.yml delete mode 100644 codebase/config/sync/user.role.staff.yml create mode 100644 codebase/config/sync/views.view.repository_item_member_of.yml create mode 100644 codebase/config/sync/views.view.repsitory_item_access_perm_types.yml create mode 100644 codebase/config/sync/views.view.workbench_current_user.yml create mode 100644 codebase/config/sync/views.view.workbench_edited.yml create mode 100644 codebase/config/sync/views.view.workbench_recent_content.yml create mode 100644 codebase/config/sync/views.view.workbench_taxonomies.yml create mode 100644 codebase/config/sync/workbench.settings.yml create mode 100644 codebase/config/sync/workbench_access.access_scheme.collection.yml create mode 100644 codebase/config/sync/workbench_access.settings.yml create mode 100644 codebase/web/sites/simpletest/.htaccess diff --git a/codebase/composer.json b/codebase/composer.json index 388e9c9984..db0e71b7cd 100644 --- a/codebase/composer.json +++ b/codebase/composer.json @@ -66,9 +66,13 @@ "drupal/remote_stream_wrapper": "^1.5", "drupal/rest_oai_pmh": "^1.0", "drupal/restui": "^1.16", + "drupal/role_delegation": "^1.1", + "drupal/role_hierarchy": "^2.2", "drupal/search_api_solr": "^4.1", "drupal/simplesamlphp_auth": "^3.2", "drupal/transliterate_filenames": "^1.3", + "drupal/workbench": "^1.3", + "drupal/workbench_access": "^1.0@beta", "drush/drush": "^9.7.1", "islandora-rdm/islandora_fits": "dev-master", "islandora/carapace": "dev-8.x-3.x", diff --git a/codebase/composer.lock b/codebase/composer.lock index af621cc954..aaa3ebbfaf 100644 --- a/codebase/composer.lock +++ b/codebase/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "ddec2ca9e1b9f3e133e1e8245344f175", + "content-hash": "c7c4bc901f6e2e75ac266bfb81e173ec", "packages": [ { "name": "alchemy/zippy", @@ -5216,6 +5216,104 @@ "source": "https://git.drupalcode.org/project/restui" } }, + { + "name": "drupal/role_delegation", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/role_delegation.git", + "reference": "8.x-1.1" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/role_delegation-8.x-1.1.zip", + "reference": "8.x-1.1", + "shasum": "a63b548056cc729beacfd385625fafb983e0f73e" + }, + "require": { + "drupal/core": "^8 || ^9" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "8.x-1.1", + "datestamp": "1580498751", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "Jeroen Tubex", + "homepage": "https://www.drupal.org/u/jeroent", + "role": "Maintainer" + }, + { + "name": "benjy", + "homepage": "https://www.drupal.org/user/1852732" + } + ], + "description": "Allows site administrators to grant some roles the authority to assign selected roles to users.", + "homepage": "http://drupal.org/project/role_delegation", + "support": { + "source": "https://git.drupalcode.org/project/role_delegation", + "issues": "http://drupal.org/project/role_delegation" + } + }, + { + "name": "drupal/role_hierarchy", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/role_hierarchy.git", + "reference": "8.x-2.2" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/role_hierarchy-8.x-2.2.zip", + "reference": "8.x-2.2", + "shasum": "b5dc500ffbcdab00f3fc2200816f041730efd4f2" + }, + "require": { + "drupal/core": "^8 || ^9" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "8.x-2.2", + "datestamp": "1613641956", + "security-coverage": { + "status": "not-covered", + "message": "Project has not opted into security advisory coverage!" + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "cristiroma", + "homepage": "https://www.drupal.org/user/2267390" + }, + { + "name": "stefan.butura", + "homepage": "https://www.drupal.org/user/3535177" + } + ], + "description": "Provides security updates for platforms that are using a clear role hierarchy.", + "homepage": "https://www.drupal.org/project/role_hierarchy", + "support": { + "source": "https://git.drupalcode.org/project/role_hierarchy" + } + }, { "name": "drupal/search_api", "version": "1.18.0", @@ -5577,6 +5675,139 @@ "issues": "https://www.drupal.org/project/issues/transliterate_filenames" } }, + { + "name": "drupal/workbench", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/workbench.git", + "reference": "8.x-1.3" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/workbench-8.x-1.3.zip", + "reference": "8.x-1.3", + "shasum": "643d5f27503d7fceda8673812ca9a3bc25ed53e5" + }, + "require": { + "drupal/core": "^8.8 || ^9" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "8.x-1.3", + "datestamp": "1590419810", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "Dave Reid", + "homepage": "https://www.drupal.org/user/53892" + }, + { + "name": "agentrickard", + "homepage": "https://www.drupal.org/user/20975" + }, + { + "name": "bbinkovitz", + "homepage": "https://www.drupal.org/user/161263" + }, + { + "name": "becw", + "homepage": "https://www.drupal.org/user/81067" + }, + { + "name": "caroltron", + "homepage": "https://www.drupal.org/user/171342" + }, + { + "name": "robeano", + "homepage": "https://www.drupal.org/user/67660" + }, + { + "name": "stevector", + "homepage": "https://www.drupal.org/user/179805" + } + ], + "description": "Provides convenient dashboards and shortcuts for editors.", + "homepage": "https://www.drupal.org/project/workbench", + "support": { + "source": "https://git.drupalcode.org/project/workbench" + } + }, + { + "name": "drupal/workbench_access", + "version": "1.0.0-beta4", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/workbench_access.git", + "reference": "8.x-1.0-beta4" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/workbench_access-8.x-1.0-beta4.zip", + "reference": "8.x-1.0-beta4", + "shasum": "8d81c3daef91d89ecb3c0e3823ee0144b37889a8" + }, + "require": { + "drupal/core": "^8.7.7 || ^9" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "8.x-1.0-beta4", + "datestamp": "1591119383", + "security-coverage": { + "status": "not-covered", + "message": "Beta releases are not covered by Drupal security advisories." + } + }, + "drush": { + "services": { + "drush.services.yml": "^9 || ^10" + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0+" + ], + "authors": [ + { + "name": "Dave Reid", + "homepage": "https://www.drupal.org/user/53892" + }, + { + "name": "agentrickard", + "homepage": "https://www.drupal.org/user/20975" + }, + { + "name": "becw", + "homepage": "https://www.drupal.org/user/81067" + }, + { + "name": "robeano", + "homepage": "https://www.drupal.org/user/67660" + }, + { + "name": "stevector", + "homepage": "https://www.drupal.org/user/179805" + } + ], + "description": "Hierarchical access control for content.", + "homepage": "https://www.drupal.org/project/workbench_access", + "support": { + "source": "https://git.drupalcode.org/project/workbench_access" + } + }, { "name": "drush/drush", "version": "9.7.2", @@ -16317,6 +16548,7 @@ "drupal/libraries": 20, "drupal/migrate_source_ui": 5, "drupal/pdf": 20, + "drupal/workbench_access": 10, "islandora-rdm/islandora_fits": 20, "islandora/carapace": 20, "jhu-idc/idc-ui-theme": 20, diff --git a/codebase/config/sync/core.entity_form_display.media.audio.default.yml b/codebase/config/sync/core.entity_form_display.media.audio.default.yml index 78f4bfa194..ce76b55289 100644 --- a/codebase/config/sync/core.entity_form_display.media.audio.default.yml +++ b/codebase/config/sync/core.entity_form_display.media.audio.default.yml @@ -31,7 +31,7 @@ content: weight: 3 settings: { } third_party_settings: { } - type: options_buttons + type: options_select region: content field_media_audio_file: weight: 1 diff --git a/codebase/config/sync/core.entity_form_display.media.document.default.yml b/codebase/config/sync/core.entity_form_display.media.document.default.yml index a5fff0a9e8..cbf3739016 100644 --- a/codebase/config/sync/core.entity_form_display.media.document.default.yml +++ b/codebase/config/sync/core.entity_form_display.media.document.default.yml @@ -31,7 +31,7 @@ content: weight: 3 settings: { } third_party_settings: { } - type: options_buttons + type: options_select region: content field_media_document: settings: diff --git a/codebase/config/sync/core.entity_form_display.media.extracted_text.default.yml b/codebase/config/sync/core.entity_form_display.media.extracted_text.default.yml index ecd182be0c..03a71d49ec 100644 --- a/codebase/config/sync/core.entity_form_display.media.extracted_text.default.yml +++ b/codebase/config/sync/core.entity_form_display.media.extracted_text.default.yml @@ -3,6 +3,7 @@ langcode: en status: true dependencies: config: + - field.field.media.extracted_text.field_access_terms - field.field.media.extracted_text.field_edited_text - field.field.media.extracted_text.field_media_file - field.field.media.extracted_text.field_media_of @@ -26,9 +27,15 @@ content: region: content settings: { } third_party_settings: { } + field_access_terms: + weight: 4 + settings: { } + third_party_settings: { } + type: options_select + region: content field_edited_text: type: text_textarea - weight: 7 + weight: 8 region: content settings: rows: 5 @@ -36,7 +43,7 @@ content: third_party_settings: { } field_media_file: type: file_generic - weight: 6 + weight: 7 region: content settings: progress_indicator: throbber @@ -58,7 +65,7 @@ content: third_party_settings: { } path: type: path - weight: 4 + weight: 5 region: content settings: { } third_party_settings: { } @@ -66,7 +73,7 @@ content: type: boolean_checkbox settings: display_label: true - weight: 5 + weight: 6 region: content third_party_settings: { } uid: diff --git a/codebase/config/sync/core.entity_form_display.media.file.default.yml b/codebase/config/sync/core.entity_form_display.media.file.default.yml index 027d54e4ef..c184d5ad46 100644 --- a/codebase/config/sync/core.entity_form_display.media.file.default.yml +++ b/codebase/config/sync/core.entity_form_display.media.file.default.yml @@ -31,7 +31,7 @@ content: weight: 3 settings: { } third_party_settings: { } - type: options_buttons + type: options_select region: content field_media_file: settings: diff --git a/codebase/config/sync/core.entity_form_display.media.image.default.yml b/codebase/config/sync/core.entity_form_display.media.image.default.yml index 33e0962124..8719ab4e2d 100644 --- a/codebase/config/sync/core.entity_form_display.media.image.default.yml +++ b/codebase/config/sync/core.entity_form_display.media.image.default.yml @@ -34,7 +34,7 @@ content: weight: 3 settings: { } third_party_settings: { } - type: options_buttons + type: options_select region: content field_media_image: settings: diff --git a/codebase/config/sync/core.entity_form_display.media.remote_video.default.yml b/codebase/config/sync/core.entity_form_display.media.remote_video.default.yml index 71b9d4296a..59824576a4 100644 --- a/codebase/config/sync/core.entity_form_display.media.remote_video.default.yml +++ b/codebase/config/sync/core.entity_form_display.media.remote_video.default.yml @@ -3,6 +3,7 @@ langcode: en status: true dependencies: config: + - field.field.media.remote_video.field_access_terms - field.field.media.remote_video.field_media_oembed_video - media.type.remote_video module: @@ -17,10 +18,16 @@ mode: default content: created: type: datetime_timestamp - weight: 10 + weight: 3 region: content settings: { } third_party_settings: { } + field_access_terms: + weight: 4 + settings: { } + third_party_settings: { } + type: options_select + region: content field_media_oembed_video: type: oembed_textfield weight: 0 @@ -31,14 +38,14 @@ content: region: content langcode: type: language_select - weight: 2 + weight: 1 region: content settings: include_locked: true third_party_settings: { } path: type: path - weight: 30 + weight: 5 region: content settings: { } third_party_settings: { } @@ -46,12 +53,12 @@ content: type: boolean_checkbox settings: display_label: true - weight: 100 + weight: 6 region: content third_party_settings: { } uid: type: entity_reference_autocomplete - weight: 5 + weight: 2 settings: match_operator: CONTAINS match_limit: 10 diff --git a/codebase/config/sync/core.entity_form_display.media.video.default.yml b/codebase/config/sync/core.entity_form_display.media.video.default.yml index 351957f91b..0de361675b 100644 --- a/codebase/config/sync/core.entity_form_display.media.video.default.yml +++ b/codebase/config/sync/core.entity_form_display.media.video.default.yml @@ -31,7 +31,7 @@ content: weight: 3 settings: { } third_party_settings: { } - type: options_buttons + type: options_select region: content field_media_of: type: entity_reference_autocomplete diff --git a/codebase/config/sync/core.entity_form_display.node.collection_object.default.yml b/codebase/config/sync/core.entity_form_display.node.collection_object.default.yml index 429162a532..08c0a841d0 100644 --- a/codebase/config/sync/core.entity_form_display.node.collection_object.default.yml +++ b/codebase/config/sync/core.entity_form_display.node.collection_object.default.yml @@ -3,6 +3,7 @@ langcode: en status: true dependencies: config: + - field.field.node.collection_object.field_access_control - field.field.node.collection_object.field_alternative_title - field.field.node.collection_object.field_citable_url - field.field.node.collection_object.field_collection_contact_email @@ -28,6 +29,12 @@ content: region: content settings: { } third_party_settings: { } + field_access_control: + weight: 26 + settings: { } + third_party_settings: { } + type: options_select + region: content field_alternative_title: weight: 3 settings: diff --git a/codebase/config/sync/core.entity_form_display.node.islandora_object.default.yml b/codebase/config/sync/core.entity_form_display.node.islandora_object.default.yml index 046b614e3c..3c2ba06c56 100644 --- a/codebase/config/sync/core.entity_form_display.node.islandora_object.default.yml +++ b/codebase/config/sync/core.entity_form_display.node.islandora_object.default.yml @@ -63,6 +63,7 @@ third_party_settings: - field_member_of - langcode - field_display_hints + - field_access_terms - field_weight parent_name: '' weight: 6 @@ -232,6 +233,12 @@ content: third_party_settings: { } type: options_buttons region: content + field_access_terms: + type: options_select + weight: 12 + region: content + settings: { } + third_party_settings: { } field_alternative_title: weight: 15 settings: @@ -358,7 +365,7 @@ content: region: content field_display_hints: type: options_buttons - weight: 13 + weight: 11 region: content settings: { } third_party_settings: { } @@ -555,7 +562,7 @@ content: type: options_select region: content field_weight: - weight: 15 + weight: 13 settings: placeholder: '' third_party_settings: { } @@ -603,7 +610,6 @@ content: match_limit: 10 third_party_settings: { } hidden: - field_access_terms: true path: true promote: true sticky: true diff --git a/codebase/config/sync/core.entity_form_display.taxonomy_term.access_rights.default.yml b/codebase/config/sync/core.entity_form_display.taxonomy_term.access_rights.default.yml index 16813a2c3f..abf092978c 100644 --- a/codebase/config/sync/core.entity_form_display.taxonomy_term.access_rights.default.yml +++ b/codebase/config/sync/core.entity_form_display.taxonomy_term.access_rights.default.yml @@ -15,14 +15,14 @@ mode: default content: description: type: text_textarea - weight: 0 + weight: 1 region: content settings: placeholder: '' rows: 5 third_party_settings: { } field_authority_link: - weight: 102 + weight: 2 settings: placeholder_url: '' placeholder_title: '' @@ -31,17 +31,17 @@ content: region: content name: type: string_textfield - weight: -5 + weight: 0 region: content settings: - size: 60 + size: 255 placeholder: '' third_party_settings: { } status: type: boolean_checkbox settings: display_label: true - weight: 103 + weight: 4 region: content third_party_settings: { } hidden: diff --git a/codebase/config/sync/core.entity_form_display.taxonomy_term.copyright_and_use.default.yml b/codebase/config/sync/core.entity_form_display.taxonomy_term.copyright_and_use.default.yml index e392264457..adc4a298d8 100644 --- a/codebase/config/sync/core.entity_form_display.taxonomy_term.copyright_and_use.default.yml +++ b/codebase/config/sync/core.entity_form_display.taxonomy_term.copyright_and_use.default.yml @@ -34,7 +34,7 @@ content: weight: -5 region: content settings: - size: 60 + size: 255 placeholder: '' third_party_settings: { } status: diff --git a/codebase/config/sync/core.entity_form_display.taxonomy_term.corporate_body.default.yml b/codebase/config/sync/core.entity_form_display.taxonomy_term.corporate_body.default.yml index 13c132b945..44f535f7c5 100644 --- a/codebase/config/sync/core.entity_form_display.taxonomy_term.corporate_body.default.yml +++ b/codebase/config/sync/core.entity_form_display.taxonomy_term.corporate_body.default.yml @@ -139,7 +139,7 @@ content: weight: 0 region: content settings: - size: 60 + size: 1024 placeholder: '' third_party_settings: { } status: diff --git a/codebase/config/sync/core.entity_view_display.media.extracted_text.default.yml b/codebase/config/sync/core.entity_view_display.media.extracted_text.default.yml index 346a5734a5..8c4c629019 100644 --- a/codebase/config/sync/core.entity_view_display.media.extracted_text.default.yml +++ b/codebase/config/sync/core.entity_view_display.media.extracted_text.default.yml @@ -3,6 +3,7 @@ langcode: en status: true dependencies: config: + - field.field.media.extracted_text.field_access_terms - field.field.media.extracted_text.field_edited_text - field.field.media.extracted_text.field_media_file - field.field.media.extracted_text.field_media_of @@ -30,6 +31,14 @@ content: custom_date_format: '' timezone: '' third_party_settings: { } + field_access_terms: + weight: 5 + label: above + settings: + link: true + third_party_settings: { } + type: entity_reference_label + region: content field_edited_text: type: text_default weight: 3 diff --git a/codebase/config/sync/core.entity_view_display.media.remote_video.default.yml b/codebase/config/sync/core.entity_view_display.media.remote_video.default.yml index 790b5e9652..72aa35a616 100644 --- a/codebase/config/sync/core.entity_view_display.media.remote_video.default.yml +++ b/codebase/config/sync/core.entity_view_display.media.remote_video.default.yml @@ -3,6 +3,7 @@ langcode: en status: true dependencies: config: + - field.field.media.remote_video.field_access_terms - field.field.media.remote_video.field_media_oembed_video - media.type.remote_video module: @@ -14,6 +15,14 @@ targetEntityType: media bundle: remote_video mode: default content: + field_access_terms: + weight: 1 + label: above + settings: + link: true + third_party_settings: { } + type: entity_reference_label + region: content field_media_oembed_video: type: oembed weight: 0 diff --git a/codebase/config/sync/core.entity_view_display.node.collection_object.default.yml b/codebase/config/sync/core.entity_view_display.node.collection_object.default.yml index 85087f189e..ab1de90534 100644 --- a/codebase/config/sync/core.entity_view_display.node.collection_object.default.yml +++ b/codebase/config/sync/core.entity_view_display.node.collection_object.default.yml @@ -3,6 +3,7 @@ langcode: en status: true dependencies: config: + - field.field.node.collection_object.field_access_control - field.field.node.collection_object.field_alternative_title - field.field.node.collection_object.field_citable_url - field.field.node.collection_object.field_collection_contact_email @@ -33,6 +34,14 @@ content: region: content settings: { } third_party_settings: { } + field_access_control: + weight: 16 + label: above + settings: + link: true + third_party_settings: { } + type: entity_reference_label + region: content field_alternative_title: type: reference_value_formatter weight: 6 diff --git a/codebase/config/sync/core.entity_view_display.node.collection_object.teaser.yml b/codebase/config/sync/core.entity_view_display.node.collection_object.teaser.yml index caa56ef866..479dd4b6bd 100644 --- a/codebase/config/sync/core.entity_view_display.node.collection_object.teaser.yml +++ b/codebase/config/sync/core.entity_view_display.node.collection_object.teaser.yml @@ -4,6 +4,7 @@ status: true dependencies: config: - core.entity_view_mode.node.teaser + - field.field.node.collection_object.field_access_control - field.field.node.collection_object.field_alternative_title - field.field.node.collection_object.field_citable_url - field.field.node.collection_object.field_collection_contact_email @@ -49,6 +50,7 @@ hidden: display_media_entity_view_1: true display_media_entity_view_2: true display_media_service_file: true + field_access_control: true field_alternative_title: true field_collection_contact_email: true field_collection_contact_name: true diff --git a/codebase/config/sync/core.extension.yml b/codebase/config/sync/core.extension.yml index 07e533580a..d1b7fe560b 100644 --- a/codebase/config/sync/core.extension.yml +++ b/codebase/config/sync/core.extension.yml @@ -100,6 +100,8 @@ module: rest: 0 rest_oai_pmh: 0 restui: 0 + role_delegation: 0 + role_hierarchy: 0 search_api: 0 search_api_solr: 0 search_api_solr_defaults: 0 @@ -118,6 +120,8 @@ module: update: 0 user: 0 views_ui: 0 + workbench: 0 + workbench_access: 0 content_translation: 10 externalauth: 10 views: 10 diff --git a/codebase/config/sync/field.field.media.extracted_text.field_access_terms.yml b/codebase/config/sync/field.field.media.extracted_text.field_access_terms.yml new file mode 100644 index 0000000000..b1f01875a7 --- /dev/null +++ b/codebase/config/sync/field.field.media.extracted_text.field_access_terms.yml @@ -0,0 +1,29 @@ +uuid: fa2e8118-8d80-4a79-ba4a-6acf41055780 +langcode: en +status: true +dependencies: + config: + - field.storage.media.field_access_terms + - media.type.extracted_text + - taxonomy.vocabulary.islandora_access +id: media.extracted_text.field_access_terms +field_name: field_access_terms +entity_type: media +bundle: extracted_text +label: 'Access terms' +description: '' +required: false +translatable: true +default_value: { } +default_value_callback: '' +settings: + handler: 'default:taxonomy_term' + handler_settings: + target_bundles: + islandora_access: islandora_access + sort: + field: name + direction: asc + auto_create: false + auto_create_bundle: '' +field_type: entity_reference diff --git a/codebase/config/sync/field.field.media.remote_video.field_access_terms.yml b/codebase/config/sync/field.field.media.remote_video.field_access_terms.yml new file mode 100644 index 0000000000..c3492e6d15 --- /dev/null +++ b/codebase/config/sync/field.field.media.remote_video.field_access_terms.yml @@ -0,0 +1,29 @@ +uuid: b73980c8-30b8-4995-bc23-02a04547b84c +langcode: en +status: true +dependencies: + config: + - field.storage.media.field_access_terms + - media.type.remote_video + - taxonomy.vocabulary.islandora_access +id: media.remote_video.field_access_terms +field_name: field_access_terms +entity_type: media +bundle: remote_video +label: 'Access terms' +description: '' +required: false +translatable: true +default_value: { } +default_value_callback: '' +settings: + handler: 'default:taxonomy_term' + handler_settings: + target_bundles: + islandora_access: islandora_access + sort: + field: name + direction: asc + auto_create: false + auto_create_bundle: '' +field_type: entity_reference diff --git a/codebase/config/sync/field.field.node.collection_object.field_access_control.yml b/codebase/config/sync/field.field.node.collection_object.field_access_control.yml new file mode 100644 index 0000000000..73c37cdbee --- /dev/null +++ b/codebase/config/sync/field.field.node.collection_object.field_access_control.yml @@ -0,0 +1,29 @@ +uuid: 1f872323-83c3-47c7-a7a9-798cd1ec1729 +langcode: en +status: true +dependencies: + config: + - field.storage.node.field_access_control + - node.type.collection_object + - taxonomy.vocabulary.islandora_access +id: node.collection_object.field_access_control +field_name: field_access_control +entity_type: node +bundle: collection_object +label: 'Access Control' +description: '' +required: true +translatable: false +default_value: { } +default_value_callback: '' +settings: + handler: 'default:taxonomy_term' + handler_settings: + target_bundles: + islandora_access: islandora_access + sort: + field: name + direction: asc + auto_create: false + auto_create_bundle: '' +field_type: entity_reference diff --git a/codebase/config/sync/field.storage.node.field_access_control.yml b/codebase/config/sync/field.storage.node.field_access_control.yml new file mode 100644 index 0000000000..abdab8ba72 --- /dev/null +++ b/codebase/config/sync/field.storage.node.field_access_control.yml @@ -0,0 +1,24 @@ +uuid: 09ebab33-9519-475e-9b30-d031a3de708c +langcode: en +status: true +dependencies: + module: + - field_permissions + - node + - taxonomy +third_party_settings: + field_permissions: + permission_type: custom +id: node.field_access_control +field_name: field_access_control +entity_type: node +type: entity_reference +settings: + target_type: taxonomy_term +module: core +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/codebase/config/sync/field.storage.node.field_access_terms.yml b/codebase/config/sync/field.storage.node.field_access_terms.yml index 097b2d3e0e..97a173de9f 100644 --- a/codebase/config/sync/field.storage.node.field_access_terms.yml +++ b/codebase/config/sync/field.storage.node.field_access_terms.yml @@ -8,7 +8,7 @@ dependencies: - taxonomy third_party_settings: field_permissions: - permission_type: private + permission_type: custom _core: default_config_hash: yf5ONBhEFtk6wecSjGIXs8lk_eatTCLSPPVBBG6pk4o id: node.field_access_terms diff --git a/codebase/config/sync/role_hierarchy.settings.yml b/codebase/config/sync/role_hierarchy.settings.yml new file mode 100644 index 0000000000..96c79a8387 --- /dev/null +++ b/codebase/config/sync/role_hierarchy.settings.yml @@ -0,0 +1,8 @@ +strict: 0 +non_hierarchical_roles: + administrator: administrator + global_admin: 0 + collection_level_admin: 0 + fedoraadmin: 0 + authenticated: 0 + anonymous: 0 diff --git a/codebase/config/sync/shortcut.set.islandora-shortcuts.yml b/codebase/config/sync/shortcut.set.islandora-shortcuts.yml new file mode 100644 index 0000000000..def47c5868 --- /dev/null +++ b/codebase/config/sync/shortcut.set.islandora-shortcuts.yml @@ -0,0 +1,6 @@ +uuid: d1a3d7e1-cf30-4e02-8375-ab7bb9d862cb +langcode: en +status: true +dependencies: { } +id: islandora-shortcuts +label: Islandora diff --git a/codebase/config/sync/simplesamlphp_auth.settings.yml b/codebase/config/sync/simplesamlphp_auth.settings.yml index f081715694..172cc3db9b 100644 --- a/codebase/config/sync/simplesamlphp_auth.settings.yml +++ b/codebase/config/sync/simplesamlphp_auth.settings.yml @@ -16,6 +16,8 @@ allow: default_login: true default_login_roles: administrator: administrator + collection_level_admin: collection_level_admin + global_admin: global_admin default_login_users: '1' logout_goto_url: '' user_register_original: visitors_admin_approval diff --git a/codebase/config/sync/system.action.user_add_role_action.collection_level_admin.yml b/codebase/config/sync/system.action.user_add_role_action.collection_level_admin.yml new file mode 100644 index 0000000000..915bd215a9 --- /dev/null +++ b/codebase/config/sync/system.action.user_add_role_action.collection_level_admin.yml @@ -0,0 +1,14 @@ +uuid: 034f7b73-cc86-451b-b1b0-d18280043319 +langcode: en +status: true +dependencies: + config: + - user.role.collection_level_admin + module: + - user +id: user_add_role_action.collection_level_admin +label: 'Add the Collection Level Admin role to the selected user(s)' +type: user +plugin: user_add_role_action +configuration: + rid: collection_level_admin diff --git a/codebase/config/sync/system.action.user_add_role_action.global_admin.yml b/codebase/config/sync/system.action.user_add_role_action.global_admin.yml new file mode 100644 index 0000000000..7e1949d3db --- /dev/null +++ b/codebase/config/sync/system.action.user_add_role_action.global_admin.yml @@ -0,0 +1,14 @@ +uuid: 9525d141-a3a2-4e79-8691-e941247c5946 +langcode: en +status: true +dependencies: + config: + - user.role.global_admin + module: + - user +id: user_add_role_action.global_admin +label: 'Add the Global Admin role to the selected user(s)' +type: user +plugin: user_add_role_action +configuration: + rid: global_admin diff --git a/codebase/config/sync/system.action.user_add_role_action.staff.yml b/codebase/config/sync/system.action.user_add_role_action.staff.yml deleted file mode 100644 index 477c70c3cd..0000000000 --- a/codebase/config/sync/system.action.user_add_role_action.staff.yml +++ /dev/null @@ -1,14 +0,0 @@ -uuid: e63e8081-e550-4e21-9c43-f28db9ff1975 -langcode: en -status: true -dependencies: - config: - - user.role.staff - module: - - user -id: user_add_role_action.staff -label: 'Add the Staff role to the selected user(s)' -type: user -plugin: user_add_role_action -configuration: - rid: staff diff --git a/codebase/config/sync/system.action.user_remove_role_action.collection_level_admin.yml b/codebase/config/sync/system.action.user_remove_role_action.collection_level_admin.yml new file mode 100644 index 0000000000..ad610bf93b --- /dev/null +++ b/codebase/config/sync/system.action.user_remove_role_action.collection_level_admin.yml @@ -0,0 +1,14 @@ +uuid: 592d0999-dc2d-4d96-8387-8dcf3ff9ab87 +langcode: en +status: true +dependencies: + config: + - user.role.collection_level_admin + module: + - user +id: user_remove_role_action.collection_level_admin +label: 'Remove the Collection Level Admin role from the selected user(s)' +type: user +plugin: user_remove_role_action +configuration: + rid: collection_level_admin diff --git a/codebase/config/sync/system.action.user_remove_role_action.global_admin.yml b/codebase/config/sync/system.action.user_remove_role_action.global_admin.yml new file mode 100644 index 0000000000..043c1034bf --- /dev/null +++ b/codebase/config/sync/system.action.user_remove_role_action.global_admin.yml @@ -0,0 +1,14 @@ +uuid: b839bd0a-3d5c-4bbe-b987-58ccd9f474f8 +langcode: en +status: true +dependencies: + config: + - user.role.global_admin + module: + - user +id: user_remove_role_action.global_admin +label: 'Remove the Global Admin role from the selected user(s)' +type: user +plugin: user_remove_role_action +configuration: + rid: global_admin diff --git a/codebase/config/sync/system.action.user_remove_role_action.staff.yml b/codebase/config/sync/system.action.user_remove_role_action.staff.yml deleted file mode 100644 index d2ecc9ad99..0000000000 --- a/codebase/config/sync/system.action.user_remove_role_action.staff.yml +++ /dev/null @@ -1,14 +0,0 @@ -uuid: f41e3554-bf90-433c-92c1-958a57eec8fb -langcode: en -status: true -dependencies: - config: - - user.role.staff - module: - - user -id: user_remove_role_action.staff -label: 'Remove the Staff role from the selected user(s)' -type: user -plugin: user_remove_role_action -configuration: - rid: staff diff --git a/codebase/config/sync/system.menu.workbench.yml b/codebase/config/sync/system.menu.workbench.yml new file mode 100644 index 0000000000..989ffd0761 --- /dev/null +++ b/codebase/config/sync/system.menu.workbench.yml @@ -0,0 +1,10 @@ +uuid: 8d36e189-cfa4-4090-a67c-a6b2b2a7b448 +langcode: en +status: true +dependencies: { } +_core: + default_config_hash: Uk5hyWhkNv7DHmWKBBnOc-W05llRdbXe19rUxCsSt8Y +id: workbench +label: Workbench +description: 'The editorial workbench.' +locked: true diff --git a/codebase/config/sync/user.role.administrator.yml b/codebase/config/sync/user.role.administrator.yml index 521450855a..e0d4038207 100644 --- a/codebase/config/sync/user.role.administrator.yml +++ b/codebase/config/sync/user.role.administrator.yml @@ -6,6 +6,6 @@ _core: default_config_hash: Om6FEO7vZZMkPIbVvfxtdkWerQ2PvQM4sWUd6Q3ZnfI id: administrator label: Administrator -weight: 2 +weight: -10 is_admin: true permissions: { } diff --git a/codebase/config/sync/user.role.anonymous.yml b/codebase/config/sync/user.role.anonymous.yml index c7eae6c1ab..43d3f2e858 100644 --- a/codebase/config/sync/user.role.anonymous.yml +++ b/codebase/config/sync/user.role.anonymous.yml @@ -6,12 +6,12 @@ _core: default_config_hash: pq_mEIu_B4widZN7Ap81iCJSjShFFdcL0jEiCi8VrDk id: anonymous label: 'Anonymous user' -weight: 0 +weight: -5 is_admin: false permissions: - - 'access comments' - 'access content' - 'access site-wide contact form' + - 'restful get oai_pmh' - 'search content' - 'use text format restricted_html' - 'view field_citable_url' diff --git a/codebase/config/sync/user.role.authenticated.yml b/codebase/config/sync/user.role.authenticated.yml index d5a74c453e..321e182ca9 100644 --- a/codebase/config/sync/user.role.authenticated.yml +++ b/codebase/config/sync/user.role.authenticated.yml @@ -6,17 +6,15 @@ _core: default_config_hash: btW6TFHajhy7Eo6YUvdFiPh4TcPggo8GBXYctjV6zag id: authenticated label: 'Authenticated user' -weight: 1 +weight: -6 is_admin: false permissions: - - 'access comments' - 'access content' - 'access shortcuts' - 'access site-wide contact form' - 'opt-in or out of matomo tracking' - - 'post comments' + - 'restful get oai_pmh' - 'search content' - - 'skip comment approval' - 'use text format basic_html' - 'view field_citable_url' - 'view media' diff --git a/codebase/config/sync/user.role.collection_level_admin.yml b/codebase/config/sync/user.role.collection_level_admin.yml new file mode 100644 index 0000000000..c8b90ffe45 --- /dev/null +++ b/codebase/config/sync/user.role.collection_level_admin.yml @@ -0,0 +1,92 @@ +uuid: dd96fbc1-cb9a-42fc-ae6e-82c3eceae88d +langcode: en +status: true +dependencies: { } +id: collection_level_admin +label: 'Collection Level Admin' +weight: -8 +is_admin: null +permissions: + - 'access media overview' + - 'access migrate source ui' + - 'access site reports' + - 'access taxonomy overview' + - 'access toolbar' + - 'access workbench' + - 'administer migrations' + - 'batch update workbench access' + - 'create audio media' + - 'create document media' + - 'create extracted_text media' + - 'create field_access_terms' + - 'create file media' + - 'create fits_technical_metadata media' + - 'create image media' + - 'create islandora_object content' + - 'create media' + - 'create remote_video media' + - 'create terms in access_rights' + - 'create terms in copyright_and_use' + - 'create terms in corporate_body' + - 'create terms in family' + - 'create terms in genre' + - 'create terms in geo_location' + - 'create terms in language' + - 'create terms in person' + - 'create terms in resource_types' + - 'create terms in subject' + - 'create video media' + - 'edit any audio media' + - 'edit any collection_object content' + - 'edit any document media' + - 'edit any extracted_text media' + - 'edit any file media' + - 'edit any fits_technical_metadata media' + - 'edit any image media' + - 'edit any islandora_object content' + - 'edit any remote_video media' + - 'edit any video media' + - 'edit own audio media' + - 'edit own collection_object content' + - 'edit own document media' + - 'edit own extracted_text media' + - 'edit own field_access_control' + - 'edit own field_access_terms' + - 'edit own file media' + - 'edit own fits_technical_metadata media' + - 'edit own image media' + - 'edit own islandora_object content' + - 'edit own remote_video media' + - 'edit own video media' + - 'edit terms in access_rights' + - 'edit terms in copyright_and_use' + - 'edit terms in corporate_body' + - 'edit terms in family' + - 'edit terms in genre' + - 'edit terms in geo_location' + - 'edit terms in language' + - 'edit terms in person' + - 'edit terms in resource_types' + - 'edit terms in subject' + - 'manage media' + - 'manage members' + - 'restful get oai_pmh' + - 'revert collection_object revisions' + - 'revert islandora_object revisions' + - 'update any media' + - 'update media' + - 'use text format full_html' + - 'use text format restricted_html' + - 'use workbench access' + - 'view all media revisions' + - 'view checksums' + - 'view collection_object revisions' + - 'view field_access_control' + - 'view field_access_terms' + - 'view islandora_object revisions' + - 'view own field_access_control' + - 'view own field_access_terms' + - 'view own unpublished content' + - 'view own unpublished media' + - 'view the administration theme' + - 'view workbench access information' diff --git a/codebase/config/sync/user.role.fedoraadmin.yml b/codebase/config/sync/user.role.fedoraadmin.yml index 64b85f9126..300bcfbfc5 100644 --- a/codebase/config/sync/user.role.fedoraadmin.yml +++ b/codebase/config/sync/user.role.fedoraadmin.yml @@ -6,6 +6,6 @@ _core: default_config_hash: e6W733rBSNmewsIQsvWQ-8mIE5H-CIeArLBwIbN5vVQ id: fedoraadmin label: fedoraAdmin -weight: 3 +weight: -7 is_admin: null permissions: { } diff --git a/codebase/config/sync/user.role.global_admin.yml b/codebase/config/sync/user.role.global_admin.yml new file mode 100644 index 0000000000..b04a4e6837 --- /dev/null +++ b/codebase/config/sync/user.role.global_admin.yml @@ -0,0 +1,124 @@ +uuid: 5e61c5ea-bc1c-4d5f-afae-8c80a33eeadd +langcode: en +status: true +dependencies: { } +id: global_admin +label: 'Global Admin' +weight: -9 +is_admin: null +permissions: + - 'access browse_content entity browser pages' + - 'access browse_content_iframe entity browser pages' + - 'access content overview' + - 'access media overview' + - 'access migrate source ui' + - 'access site reports' + - 'access taxonomy overview' + - 'access toolbar' + - 'access user profiles' + - 'access workbench' + - 'administer migrations' + - 'administer nodes' + - 'administer users' + - 'assign collection_level_admin role' + - 'assign selected workbench access' + - 'assign workbench access' + - 'batch update workbench access' + - 'bypass workbench access' + - 'create audio media' + - 'create collection_object content' + - 'create document media' + - 'create extracted_text media' + - 'create field_access_control' + - 'create field_access_group' + - 'create field_access_terms' + - 'create file media' + - 'create fits_technical_metadata media' + - 'create image media' + - 'create islandora_object content' + - 'create media' + - 'create remote_video media' + - 'create terms in access_rights' + - 'create terms in copyright_and_use' + - 'create terms in corporate_body' + - 'create terms in family' + - 'create terms in genre' + - 'create terms in geo_location' + - 'create terms in islandora_access' + - 'create terms in language' + - 'create terms in person' + - 'create terms in resource_types' + - 'create terms in subject' + - 'create video media' + - 'delete terms in access_rights' + - 'delete terms in copyright_and_use' + - 'delete terms in corporate_body' + - 'delete terms in family' + - 'delete terms in genre' + - 'delete terms in geo_location' + - 'delete terms in islandora_access' + - 'delete terms in language' + - 'delete terms in person' + - 'delete terms in resource_types' + - 'delete terms in subject' + - 'edit any audio media' + - 'edit any collection_object content' + - 'edit any document media' + - 'edit any extracted_text media' + - 'edit any file media' + - 'edit any fits_technical_metadata media' + - 'edit any image media' + - 'edit any islandora_object content' + - 'edit any remote_video media' + - 'edit any video media' + - 'edit field_access_control' + - 'edit field_access_group' + - 'edit field_access_terms' + - 'edit own audio media' + - 'edit own collection_object content' + - 'edit own document media' + - 'edit own extracted_text media' + - 'edit own field_access_control' + - 'edit own field_access_group' + - 'edit own field_access_terms' + - 'edit own file media' + - 'edit own fits_technical_metadata media' + - 'edit own image media' + - 'edit own islandora_object content' + - 'edit own remote_video media' + - 'edit own video media' + - 'edit terms in access_rights' + - 'edit terms in copyright_and_use' + - 'edit terms in corporate_body' + - 'edit terms in family' + - 'edit terms in genre' + - 'edit terms in geo_location' + - 'edit terms in islandora_access' + - 'edit terms in language' + - 'edit terms in person' + - 'edit terms in resource_types' + - 'edit terms in subject' + - 'manage media' + - 'manage members' + - 'restful get oai_pmh' + - 'revert collection_object revisions' + - 'revert islandora_object revisions' + - 'update any media' + - 'update media' + - 'use text format full_html' + - 'use text format restricted_html' + - 'use workbench access' + - 'view all media revisions' + - 'view checksums' + - 'view collection_object revisions' + - 'view field_access_control' + - 'view field_access_group' + - 'view field_access_terms' + - 'view islandora_object revisions' + - 'view own field_access_control' + - 'view own field_access_group' + - 'view own field_access_terms' + - 'view own unpublished content' + - 'view own unpublished media' + - 'view the administration theme' + - 'view workbench access information' diff --git a/codebase/config/sync/user.role.staff.yml b/codebase/config/sync/user.role.staff.yml deleted file mode 100644 index 761d65b12f..0000000000 --- a/codebase/config/sync/user.role.staff.yml +++ /dev/null @@ -1,9 +0,0 @@ -uuid: 7d946c88-d762-4efb-83be-27a57ec81223 -langcode: en -status: true -dependencies: { } -id: staff -label: Staff -weight: 4 -is_admin: null -permissions: { } diff --git a/codebase/config/sync/views.view.openseadragon_media_evas.yml b/codebase/config/sync/views.view.openseadragon_media_evas.yml index af08af7cc6..bd6ecb3725 100644 --- a/codebase/config/sync/views.view.openseadragon_media_evas.yml +++ b/codebase/config/sync/views.view.openseadragon_media_evas.yml @@ -224,20 +224,25 @@ display: group: 1 exposed: false expose: - operator_id: '' - label: '' + operator_id: field_external_uri_uri_op + label: 'External URI (field_external_uri:uri)' description: '' use_operator: false - operator: '' - identifier: '' + operator: field_external_uri_uri_op + operator_limit_selection: false + operator_list: { } + identifier: field_external_uri_uri required: false remember: false multiple: false remember_roles: authenticated: authenticated + anonymous: '0' + administrator: '0' + fedoraadmin: '0' + collection_level_admin: '0' + global_admin: '0' placeholder: '' - operator_limit_selection: false - operator_list: { } is_grouped: false group_info: label: '' diff --git a/codebase/config/sync/views.view.repository_item_member_of.yml b/codebase/config/sync/views.view.repository_item_member_of.yml new file mode 100644 index 0000000000..039df2f215 --- /dev/null +++ b/codebase/config/sync/views.view.repository_item_member_of.yml @@ -0,0 +1,169 @@ +uuid: b158dfcb-d334-4b99-8dce-3abee480a7b5 +langcode: en +status: true +dependencies: + config: + - taxonomy.vocabulary.islandora_access + module: + - taxonomy + - user +id: repository_item_member_of +label: 'Repository Item member_of' +module: views +description: '' +tag: '' +base_table: taxonomy_term_field_data +base_field: nid +display: + default: + display_plugin: default + id: default + display_title: Master + position: 0 + display_options: + access: + type: perm + options: + perm: 'access content' + cache: + type: tag + options: { } + query: + type: views_query + options: + disable_sql_rewrite: false + distinct: false + replica: false + query_comment: '' + query_tags: { } + exposed_form: + type: basic + options: + submit_button: Apply + reset_button: false + reset_button_label: Reset + exposed_sorts_label: 'Sort by' + expose_sort_order: true + sort_asc_label: Asc + sort_desc_label: Desc + pager: + type: mini + options: + items_per_page: 10 + offset: 0 + id: 0 + total_pages: null + expose: + items_per_page: false + items_per_page_label: 'Items per page' + items_per_page_options: '5, 10, 25, 50' + items_per_page_options_all: false + items_per_page_options_all_label: '- All -' + offset: false + offset_label: Offset + tags: + previous: ‹‹ + next: ›› + style: + type: default + options: + grouping: { } + row_class: '' + default_row_class: true + uses_fields: false + row: + type: fields + options: + inline: { } + separator: '' + hide_empty: false + default_field_elements: true + fields: + name: + id: name + table: taxonomy_term_field_data + field: name + entity_type: taxonomy_term + entity_field: name + label: '' + alter: + alter_text: false + make_link: false + absolute: false + trim: false + word_boundary: false + ellipsis: false + strip_tags: false + html: false + hide_empty: false + empty_zero: false + type: string + settings: + link_to_entity: true + plugin_id: term_name + relationship: none + group_type: group + admin_label: '' + exclude: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_alter_empty: true + click_sort_column: value + group_column: value + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + convert_spaces: false + filters: + status: + value: '1' + table: taxonomy_term_field_data + field: status + plugin_id: boolean + entity_type: taxonomy_term + entity_field: status + id: status + expose: + operator: '' + operator_limit_selection: false + operator_list: { } + group: 1 + vid: + id: vid + table: taxonomy_term_field_data + field: vid + value: + islandora_access: islandora_access + entity_type: taxonomy_term + entity_field: vid + plugin_id: bundle + expose: + operator_limit_selection: false + operator_list: { } + sorts: { } + header: { } + footer: { } + empty: { } + relationships: { } + arguments: { } + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - url.query_args + - user.permissions + tags: { } diff --git a/codebase/config/sync/views.view.repsitory_item_access_perm_types.yml b/codebase/config/sync/views.view.repsitory_item_access_perm_types.yml new file mode 100644 index 0000000000..fbde41f0f3 --- /dev/null +++ b/codebase/config/sync/views.view.repsitory_item_access_perm_types.yml @@ -0,0 +1,282 @@ +uuid: 74b8b5d4-2bd2-4ea2-84ed-e061d8ce0521 +langcode: en +status: true +dependencies: + config: + - taxonomy.vocabulary.resource_types + module: + - taxonomy + - user +id: repsitory_item_access_perm_types +label: 'Repsitory Item Access Perm Types' +module: views +description: 'These are the models in Islandora Models that are applicable to Repository Items. View is used on the Repsitory Item Edit page.' +tag: '' +base_table: taxonomy_term_field_data +base_field: tid +display: + default: + display_plugin: default + id: default + display_title: Master + position: 0 + display_options: + access: + type: perm + options: + perm: 'access content' + cache: + type: tag + options: { } + query: + type: views_query + options: + disable_sql_rewrite: false + distinct: false + replica: false + query_comment: '' + query_tags: { } + exposed_form: + type: basic + options: + submit_button: Apply + reset_button: false + reset_button_label: Reset + exposed_sorts_label: 'Sort by' + expose_sort_order: true + sort_asc_label: Asc + sort_desc_label: Desc + pager: + type: mini + options: + items_per_page: 10 + offset: 0 + id: 0 + total_pages: null + expose: + items_per_page: false + items_per_page_label: 'Items per page' + items_per_page_options: '5, 10, 25, 50' + items_per_page_options_all: false + items_per_page_options_all_label: '- All -' + offset: false + offset_label: Offset + tags: + previous: ‹‹ + next: ›› + style: + type: default + options: + grouping: { } + row_class: '' + default_row_class: true + uses_fields: false + row: + type: fields + options: + inline: { } + separator: '' + hide_empty: false + default_field_elements: true + fields: + name: + id: name + table: taxonomy_term_field_data + field: name + relationship: none + group_type: group + admin_label: '' + label: '' + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: false + ellipsis: false + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: false + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: value + type: string + settings: + link_to_entity: true + group_column: value + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + convert_spaces: false + entity_type: taxonomy_term + entity_field: name + plugin_id: term_name + filters: + status: + value: '1' + table: taxonomy_term_field_data + field: status + plugin_id: boolean + entity_type: taxonomy_term + entity_field: status + id: status + expose: + operator: '' + operator_limit_selection: false + operator_list: { } + group: 1 + vid: + id: vid + table: taxonomy_term_field_data + field: vid + relationship: none + group_type: group + admin_label: '' + operator: in + value: + resource_types: resource_types + group: 1 + exposed: false + expose: + operator_id: '' + label: '' + description: '' + use_operator: false + operator: '' + operator_limit_selection: false + operator_list: { } + identifier: '' + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + reduce: false + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + entity_type: taxonomy_term + entity_field: vid + plugin_id: bundle + name: + id: name + table: taxonomy_term_field_data + field: name + relationship: none + group_type: group + admin_label: '' + operator: '!=' + value: Collection + group: 1 + exposed: false + expose: + operator_id: name_op + label: Name + description: '' + use_operator: false + operator: name_op + operator_limit_selection: false + operator_list: { } + identifier: name + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + anonymous: '0' + administrator: '0' + fedoraadmin: '0' + staff: '0' + placeholder: '' + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + entity_type: taxonomy_term + entity_field: name + plugin_id: string + sorts: { } + header: { } + footer: { } + empty: { } + relationships: { } + arguments: { } + display_extenders: { } + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - url.query_args + - user.permissions + tags: { } + entity_reference_1: + display_plugin: entity_reference + id: entity_reference_1 + display_title: 'Entity Reference' + position: 1 + display_options: + display_extenders: { } + style: + type: entity_reference + options: + search_fields: + name: name + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - user.permissions + tags: { } diff --git a/codebase/config/sync/views.view.workbench_current_user.yml b/codebase/config/sync/views.view.workbench_current_user.yml new file mode 100644 index 0000000000..2e850235f1 --- /dev/null +++ b/codebase/config/sync/views.view.workbench_current_user.yml @@ -0,0 +1,444 @@ +uuid: fe6c65c7-1489-45a3-81fd-af775c480caf +langcode: en +status: true +dependencies: + module: + - user +_core: + default_config_hash: x0E2jGoxP9eHkfDCa_squULlpvddE5h3gln_1oKeViY +id: workbench_current_user +label: 'Workbench: Current user' +module: views +description: 'Information about the current user.' +tag: Workbench +base_table: users_field_data +base_field: uid +display: + default: + display_plugin: default + id: default + display_title: Master + position: 0 + display_options: + access: + type: perm + options: + perm: 'access user profiles' + cache: + type: tag + options: { } + query: + type: views_query + options: + disable_sql_rewrite: false + distinct: false + replica: false + query_comment: '' + query_tags: { } + exposed_form: + type: basic + options: + submit_button: Apply + reset_button: false + reset_button_label: Reset + exposed_sorts_label: 'Sort by' + expose_sort_order: true + sort_asc_label: Asc + sort_desc_label: Desc + pager: + type: none + options: + items_per_page: 0 + offset: 0 + style: + type: default + row: + type: fields + fields: + uid: + id: uid + table: users_field_data + field: uid + relationship: none + group_type: group + admin_label: '' + label: '' + exclude: true + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: false + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: value + type: number_integer + settings: + thousand_separator: '' + prefix_suffix: false + group_column: value + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + entity_type: user + entity_field: uid + plugin_id: field + name: + id: name + table: users_field_data + field: name + relationship: none + group_type: group + admin_label: '' + label: '' + exclude: true + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: false + ellipsis: false + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: false + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: value + type: user_name + settings: + link_to_entity: false + group_column: value + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + entity_type: user + entity_field: name + plugin_id: field + edit_user: + id: edit_user + table: users + field: edit_user + relationship: none + group_type: group + admin_label: '' + label: '' + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: false + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + text: 'Edit my profile' + entity_type: user + plugin_id: entity_link_edit + access: + id: access + table: users_field_data + field: access + relationship: none + group_type: group + admin_label: '' + label: 'Last visit' + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: value + type: timestamp + settings: + date_format: long + custom_date_format: '' + timezone: '' + group_column: value + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + entity_type: user + entity_field: access + plugin_id: field + roles: + id: roles + table: user__roles + field: roles_target_id + relationship: none + group_type: group + admin_label: '' + label: 'Assigned roles' + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + type: entity_reference_label + separator: ', ' + entity_type: user + entity_field: roles + plugin_id: user_roles + filters: + uid_current: + id: uid_current + table: users + field: uid_current + relationship: none + group_type: group + admin_label: '' + operator: '=' + value: '1' + group: 1 + exposed: false + expose: + operator_id: '' + label: '' + description: '' + use_operator: false + operator: '' + identifier: '' + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + operator_limit_selection: false + operator_list: { } + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + entity_type: user + plugin_id: user_current + sorts: { } + title: '' + header: + area: + id: area + table: views + field: area + relationship: none + group_type: group + admin_label: '' + empty: false + tokenize: true + content: + value: '

{{ name }}''s profile

' + format: basic_html + plugin_id: text + footer: { } + empty: { } + relationships: { } + arguments: { } + display_extenders: { } + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - user + - user.permissions + tags: { } + block_1: + display_plugin: block + id: block_1 + display_title: 'Overview block' + position: 1 + display_options: + display_extenders: { } + display_description: 'Displays information about the current user.' + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - user + - user.permissions + tags: { } diff --git a/codebase/config/sync/views.view.workbench_edited.yml b/codebase/config/sync/views.view.workbench_edited.yml new file mode 100644 index 0000000000..b49f1acf73 --- /dev/null +++ b/codebase/config/sync/views.view.workbench_edited.yml @@ -0,0 +1,1007 @@ +uuid: ba52939d-8b08-4168-82c3-be2522169bbc +langcode: en +status: true +dependencies: + module: + - node + - user +_core: + default_config_hash: WMpzvSWjygJfcGxqX_wcDKoUpyl9ihHN0zbCJVzVhXw +id: workbench_edited +label: 'Workbench: Edits by user' +module: views +description: 'Lists content edited by the user.' +tag: Workbench +base_table: node_field_revision +base_field: vid +display: + default: + display_plugin: default + id: default + display_title: Master + position: 0 + display_options: + access: + type: perm + options: + perm: 'access workbench' + cache: + type: tag + options: { } + query: + type: views_query + options: + disable_sql_rewrite: false + distinct: false + replica: false + query_comment: '' + query_tags: { } + exposed_form: + type: basic + options: + submit_button: Apply + reset_button: false + reset_button_label: Reset + exposed_sorts_label: 'Sort by' + expose_sort_order: true + sort_asc_label: Asc + sort_desc_label: Desc + pager: + type: full + options: + items_per_page: 25 + offset: 0 + id: 0 + total_pages: null + tags: + previous: '‹ Previous' + next: 'Next ›' + first: '« First' + last: 'Last »' + expose: + items_per_page: true + items_per_page_label: 'Items per page' + items_per_page_options: '10,25,50,100,200' + items_per_page_options_all: false + items_per_page_options_all_label: '- All -' + offset: false + offset_label: Offset + quantity: 9 + style: + type: table + options: + grouping: { } + row_class: '' + default_row_class: true + override: true + sticky: false + caption: '' + summary: '' + description: '' + columns: + nid: nid + title: title + type: type + status: status + changed: changed + info: + nid: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + title: + sortable: true + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + type: + sortable: true + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: priority-low + status: + sortable: true + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: priority-low + changed: + sortable: true + default_sort_order: desc + align: '' + separator: '' + empty_column: false + responsive: '' + default: changed + empty_table: false + row: + type: fields + fields: + nid: + id: nid + table: node_field_data + field: nid + relationship: vid + group_type: group + admin_label: '' + label: '' + exclude: true + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: false + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: value + type: number_integer + settings: + thousand_separator: '' + prefix_suffix: false + group_column: value + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + entity_type: node + entity_field: nid + plugin_id: field + title: + id: title + table: node_field_revision + field: title + relationship: vid + group_type: group + admin_label: '' + label: Title + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: false + ellipsis: false + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: value + type: string + settings: + link_to_entity: true + group_column: value + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + entity_type: node + entity_field: title + plugin_id: field + type: + id: type + table: node_field_data + field: type + relationship: vid + group_type: group + admin_label: '' + label: Type + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: target_id + type: entity_reference_label + settings: + link: false + group_column: target_id + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + entity_type: node + entity_field: type + plugin_id: field + status: + id: status + table: node_field_data + field: status + relationship: vid + group_type: group + admin_label: '' + label: Published + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: value + type: boolean + settings: + format: yes-no + format_custom_true: '' + format_custom_false: '' + group_column: value + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + entity_type: node + entity_field: status + plugin_id: field + changed: + id: changed + table: node_field_revision + field: changed + relationship: vid + group_type: group + admin_label: '' + label: 'Last updated' + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: false + ellipsis: false + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: value + type: timestamp_ago + settings: + date_format: medium + custom_date_format: '' + timezone: '' + group_column: value + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + entity_type: node + entity_field: changed + plugin_id: field + uid: + id: uid + table: node_field_revision + field: uid + relationship: none + group_type: group + admin_label: '' + label: Author + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: target_id + type: entity_reference_label + settings: + link: true + group_column: target_id + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + entity_type: node + entity_field: uid + plugin_id: field + revision_uid: + id: revision_uid + table: node_revision + field: revision_uid + relationship: vid + group_type: group + admin_label: '' + label: 'Revised by' + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: target_id + type: entity_reference_label + settings: + link: true + group_column: target_id + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + entity_type: node + entity_field: revision_uid + plugin_id: field + filters: + title: + id: title + table: node_field_revision + field: title + relationship: none + group_type: group + admin_label: '' + operator: contains + value: '' + group: 1 + exposed: true + expose: + operator_id: title_op + label: Title + description: '' + use_operator: false + operator: title_op + identifier: title + required: false + remember: true + multiple: false + remember_roles: + authenticated: authenticated + anonymous: '0' + administrator: '0' + editor: '0' + operator_limit_selection: false + operator_list: { } + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + entity_type: node + entity_field: title + plugin_id: string + type: + id: type + table: node_field_data + field: type + relationship: vid + group_type: group + admin_label: '' + operator: in + value: { } + group: 1 + exposed: true + expose: + operator_id: type_op + label: Type + description: '' + use_operator: false + operator: type_op + identifier: type + required: false + remember: true + multiple: false + remember_roles: + authenticated: authenticated + anonymous: '0' + administrator: '0' + editor: '0' + reduce: false + operator_limit_selection: false + operator_list: { } + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + entity_type: node + entity_field: type + plugin_id: bundle + status: + id: status + table: node_field_data + field: status + relationship: vid + group_type: group + admin_label: '' + operator: '=' + value: '1' + group: 1 + exposed: true + expose: + operator_id: '' + label: Published + description: '' + use_operator: false + operator: status_op + identifier: published + required: false + remember: true + multiple: false + remember_roles: + authenticated: authenticated + anonymous: '0' + administrator: '0' + editor: '0' + operator_limit_selection: false + operator_list: { } + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + entity_type: node + entity_field: status + plugin_id: boolean + type_1: + id: type_1 + table: node_field_data + field: type + relationship: vid + group_type: group + admin_label: '' + operator: 'not empty' + value: { } + group: 1 + exposed: false + expose: + operator_id: '' + label: '' + description: '' + use_operator: false + operator: '' + identifier: '' + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + reduce: false + operator_limit_selection: false + operator_list: { } + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + entity_type: node + entity_field: type + plugin_id: bundle + sorts: + changed: + id: changed + table: node_field_revision + field: changed + relationship: vid + group_type: group + admin_label: '' + order: DESC + exposed: false + expose: + label: '' + granularity: second + entity_type: node + entity_field: changed + plugin_id: date + title: 'My Edits' + header: { } + footer: { } + empty: + area: + id: area + table: views + field: area + relationship: none + group_type: group + admin_label: '' + empty: true + tokenize: false + content: + value: 'You haven''t created or edited any content.' + format: basic_html + plugin_id: text + relationships: + uid: + id: uid + table: node_field_revision + field: uid + relationship: none + group_type: group + admin_label: User + required: false + entity_type: node + entity_field: uid + plugin_id: standard + vid: + id: vid + table: node_field_revision + field: vid + relationship: none + group_type: group + admin_label: 'Get the actual content from a content revision.' + required: false + entity_type: node + entity_field: vid + plugin_id: standard + arguments: + uid_revision: + id: uid_revision + table: node_field_data + field: uid_revision + relationship: vid + group_type: group + admin_label: '' + default_action: default + exception: + value: all + title_enable: false + title: All + title_enable: false + title: '' + default_argument_type: current_user + default_argument_options: { } + default_argument_skip_url: false + summary_options: + base_path: '' + count: true + items_per_page: 25 + override: false + summary: + sort_order: asc + number_of_records: 0 + format: default_summary + specify_validation: false + validate: + type: none + fail: 'not found' + validate_options: { } + break_phrase: false + not: false + entity_type: node + plugin_id: node_uid_revision + display_extenders: { } + filter_groups: + operator: AND + groups: + 1: AND + use_ajax: false + link_url: /admin + link_display: '0' + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - url + - url.query_args + - user + - 'user.node_grants:view' + - user.permissions + tags: { } + block_1: + display_plugin: block + id: block_1 + display_title: 'Overview block' + position: 2 + display_options: + display_extenders: { } + pager: + type: full + options: + items_per_page: 5 + offset: 0 + id: 0 + total_pages: null + tags: + previous: ‹‹ + next: ›› + first: '« First' + last: 'Last »' + expose: + items_per_page: false + items_per_page_label: 'Items per page' + items_per_page_options: '5, 10, 25, 50' + items_per_page_options_all: false + items_per_page_options_all_label: '- All -' + offset: false + offset_label: Offset + quantity: 9 + defaults: + pager: false + header: false + filters: false + filter_groups: false + footer: false + use_more: false + use_more_always: false + use_more_text: false + link_display: true + link_url: true + use_ajax: false + header: + area: + id: area + table: views + field: area + relationship: none + group_type: group + admin_label: '' + empty: false + tokenize: false + content: + value: '

Your most recent edits

' + format: basic_html + plugin_id: text + filters: + type_1: + id: type_1 + table: node_field_data + field: type + relationship: vid + group_type: group + admin_label: '' + operator: 'not empty' + value: { } + group: 1 + exposed: false + expose: + operator_id: '' + label: '' + description: '' + use_operator: false + operator: '' + identifier: '' + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + reduce: false + operator_limit_selection: false + operator_list: { } + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + entity_type: node + entity_field: type + plugin_id: bundle + filter_groups: + operator: AND + groups: + 1: AND + footer: { } + use_more: false + use_more_always: false + use_more_text: 'view all' + link_display: /admin/workbench/content/edited + display_description: 'The five most recent edits by this user' + use_ajax: true + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - url + - url.query_args + - user + - 'user.node_grants:view' + - user.permissions + tags: { } + embed_1: + display_plugin: embed + id: embed_1 + display_title: 'Page Embed' + position: 3 + display_options: + display_extenders: { } + display_description: 'The embedded view for use on a landing page' + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - url + - url.query_args + - user + - 'user.node_grants:view' + - user.permissions + tags: { } diff --git a/codebase/config/sync/views.view.workbench_recent_content.yml b/codebase/config/sync/views.view.workbench_recent_content.yml new file mode 100644 index 0000000000..05373e1547 --- /dev/null +++ b/codebase/config/sync/views.view.workbench_recent_content.yml @@ -0,0 +1,1331 @@ +uuid: 997401d2-1e82-41fe-91dc-8c9d3d22558e +langcode: en +status: true +dependencies: + config: + - field.storage.node.field_access_control + - field.storage.node.field_access_terms + module: + - node + - user +_core: + default_config_hash: sE8LcWl4XA93if6pA-KTbMmgz3gKkd40g4wxUVmBD8I +id: workbench_recent_content +label: 'Workbench: Recent content' +module: views +description: 'Content overview page for Workbench.' +tag: Workbench +base_table: node_field_data +base_field: nid +display: + default: + display_plugin: default + id: default + display_title: Master + position: 0 + display_options: + access: + type: perm + options: + perm: 'access workbench' + cache: + type: tag + options: { } + query: + type: views_query + options: + disable_sql_rewrite: false + distinct: false + replica: false + query_comment: '' + query_tags: { } + exposed_form: + type: basic + options: + submit_button: Apply + reset_button: false + reset_button_label: Reset + exposed_sorts_label: 'Sort by' + expose_sort_order: true + sort_asc_label: Asc + sort_desc_label: Desc + pager: + type: full + options: + items_per_page: 25 + offset: 0 + id: 0 + total_pages: null + tags: + previous: '‹ Previous' + next: 'Next ›' + first: '« First' + last: 'Last »' + expose: + items_per_page: true + items_per_page_label: 'Items per page' + items_per_page_options: '10,25,50,100,200' + items_per_page_options_all: false + items_per_page_options_all_label: '- All -' + offset: false + offset_label: Offset + quantity: 9 + style: + type: table + options: + grouping: { } + row_class: '' + default_row_class: true + override: true + sticky: false + caption: '' + summary: '' + description: '' + columns: + title: title + type: type + status: status + name: name + changed: changed + edit_node: edit_node + info: + title: + sortable: true + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + type: + sortable: true + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: priority-low + status: + sortable: true + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: priority-low + name: + sortable: true + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: priority-low + changed: + sortable: true + default_sort_order: desc + align: '' + separator: '' + empty_column: false + responsive: priority-low + edit_node: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: priority-medium + default: changed + empty_table: false + row: + type: fields + fields: + title: + id: title + table: node_field_data + field: title + relationship: none + group_type: group + admin_label: '' + label: Title + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: value + type: string + settings: + link_to_entity: true + group_column: value + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + plugin_id: field + type: + id: type + table: node_field_data + field: type + relationship: none + group_type: group + admin_label: '' + label: Type + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: target_id + type: entity_reference_label + settings: + link: true + group_column: target_id + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + entity_type: node + entity_field: type + plugin_id: field + status: + id: status + table: node_field_data + field: status + relationship: none + group_type: group + admin_label: '' + label: Published + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: value + type: boolean + settings: + format: yes-no + format_custom_true: '' + format_custom_false: '' + group_column: value + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + entity_type: node + entity_field: status + plugin_id: field + name: + id: name + table: users_field_data + field: name + relationship: uid + group_type: group + admin_label: '' + label: Author + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: value + type: user_name + settings: + link_to_entity: true + group_column: value + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + entity_type: user + entity_field: name + plugin_id: field + changed: + id: changed + table: node_field_data + field: changed + relationship: none + group_type: group + admin_label: '' + label: 'Last updated' + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: value + type: timestamp_ago + settings: + date_format: medium + custom_date_format: '' + timezone: '' + group_column: value + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + entity_type: node + entity_field: changed + plugin_id: field + edit_node: + id: edit_node + table: node + field: edit_node + relationship: none + group_type: group + admin_label: '' + label: Actions + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + text: edit + entity_type: node + plugin_id: entity_link_edit + filters: + title: + id: title + table: node_field_data + field: title + relationship: none + group_type: group + admin_label: '' + operator: contains + value: '' + group: 1 + exposed: true + expose: + operator_id: title_op + label: Title + description: '' + use_operator: false + operator: title_op + identifier: title + required: false + remember: true + multiple: false + remember_roles: + authenticated: authenticated + anonymous: '0' + administrator: '0' + editor: '0' + operator_limit_selection: false + operator_list: { } + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + entity_type: node + entity_field: title + plugin_id: string + type: + id: type + table: node_field_data + field: type + relationship: none + group_type: group + admin_label: '' + operator: in + value: { } + group: 1 + exposed: true + expose: + operator_id: type_op + label: Type + description: '' + use_operator: false + operator: type_op + identifier: type + required: false + remember: true + multiple: false + remember_roles: + authenticated: authenticated + anonymous: '0' + administrator: '0' + editor: '0' + reduce: false + operator_limit_selection: false + operator_list: { } + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + entity_type: node + entity_field: type + plugin_id: bundle + status: + id: status + table: node_field_data + field: status + relationship: none + group_type: group + admin_label: '' + operator: '=' + value: '1' + group: 1 + exposed: true + expose: + operator_id: '' + label: Published + description: '' + use_operator: false + operator: status_op + identifier: published + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + anonymous: '0' + administrator: '0' + editor: '0' + operator_limit_selection: false + operator_list: { } + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + plugin_id: boolean + entity_type: node + entity_field: status + status_extra: + id: status_extra + table: node_field_data + field: status_extra + relationship: none + group_type: group + admin_label: '' + operator: '=' + value: false + group: 1 + exposed: false + expose: + operator_id: '' + label: '' + description: '' + use_operator: false + operator: '' + identifier: '' + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + operator_limit_selection: false + operator_list: { } + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + entity_type: node + plugin_id: node_status + sorts: + changed: + id: changed + table: node_field_data + field: changed + relationship: none + group_type: group + admin_label: '' + order: DESC + exposed: false + expose: + label: '' + granularity: second + entity_type: node + entity_field: changed + plugin_id: date + title: 'Workbench: Recent content' + header: + area: + id: area + table: views + field: area + plugin_id: text + footer: { } + empty: + area: + id: area + table: views + field: area + relationship: none + group_type: group + admin_label: '' + empty: true + tokenize: false + content: + value: 'There is no content available for you to edit.' + format: basic_html + plugin_id: text + relationships: + uid: + id: uid + table: node_field_data + field: uid + relationship: none + group_type: group + admin_label: author + required: false + entity_type: node + entity_field: uid + plugin_id: standard + arguments: { } + display_extenders: { } + filter_groups: + operator: AND + groups: + 1: AND + link_url: /admin/workbench/content/all + link_display: '0' + use_more: false + use_more_always: false + use_more_text: 'view all' + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - url + - url.query_args + - user + - 'user.node_grants:view' + - user.permissions + tags: { } + block_1: + display_plugin: block + id: block_1 + display_title: 'Overview block' + position: 2 + display_options: + display_extenders: { } + defaults: + style: true + row: true + pager: false + fields: false + filters: false + filter_groups: false + use_more: true + use_more_always: true + use_more_text: true + header: false + use_ajax: false + pager: + type: full + options: + items_per_page: 10 + offset: 0 + id: 2 + total_pages: null + tags: + previous: ‹‹ + next: ›› + first: '« First' + last: 'Last »' + expose: + items_per_page: false + items_per_page_label: 'Items per page' + items_per_page_options: '5, 10, 25, 50' + items_per_page_options_all: false + items_per_page_options_all_label: '- All -' + offset: false + offset_label: Offset + quantity: 9 + display_description: 'The ten most recent posts to the site' + filters: + status: + id: status + table: node_field_data + field: status + relationship: none + group_type: group + admin_label: '' + operator: '=' + value: '1' + group: 1 + exposed: false + expose: + operator_id: '' + label: Published + description: '' + use_operator: false + operator: status_op + identifier: published + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + anonymous: '0' + administrator: '0' + editor: '0' + operator_limit_selection: false + operator_list: { } + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + plugin_id: boolean + entity_type: node + entity_field: status + filter_groups: + operator: AND + groups: + 1: AND + fields: + title: + id: title + table: node_field_data + field: title + relationship: none + group_type: group + admin_label: '' + label: Title + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: value + type: string + settings: + link_to_entity: true + group_column: value + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + plugin_id: field + type: + id: type + table: node_field_data + field: type + relationship: none + group_type: group + admin_label: '' + label: Type + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: target_id + type: entity_reference_label + settings: + link: true + group_column: target_id + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + entity_type: node + entity_field: type + plugin_id: field + name: + id: name + table: users_field_data + field: name + relationship: uid + group_type: group + admin_label: '' + label: Author + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: value + type: user_name + settings: + link_to_entity: true + group_column: value + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + entity_type: user + entity_field: name + plugin_id: field + changed: + id: changed + table: node_field_data + field: changed + relationship: none + group_type: group + admin_label: '' + label: 'Last updated' + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: value + type: timestamp_ago + settings: + date_format: medium + custom_date_format: '' + timezone: '' + group_column: value + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + entity_type: node + entity_field: changed + plugin_id: field + edit_node: + id: edit_node + table: node + field: edit_node + relationship: none + group_type: group + admin_label: '' + label: Actions + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + text: edit + entity_type: node + plugin_id: entity_link_edit + field_access_control: + id: field_access_control + table: node__field_access_control + field: field_access_control + relationship: none + group_type: group + admin_label: '' + label: 'Access Control' + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: target_id + type: entity_reference_label + settings: + link: true + group_column: target_id + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + plugin_id: field + field_access_terms: + id: field_access_terms + table: node__field_access_terms + field: field_access_terms + relationship: none + group_type: group + admin_label: '' + label: 'Access Group' + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: target_id + type: entity_reference_label + settings: + link: true + group_column: target_id + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + plugin_id: field + link_display: /admin/workbench/content/all + header: + area: + id: area + table: views + field: area + relationship: none + group_type: group + admin_label: '' + empty: false + tokenize: false + content: + value: '

Recent content

' + format: basic_html + plugin_id: text + use_ajax: true + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - url.query_args + - 'user.node_grants:view' + - user.permissions + tags: + - 'config:field.storage.node.field_access_control' + - 'config:field.storage.node.field_access_terms' + embed_1: + display_plugin: embed + id: embed_1 + display_title: 'Page Embed' + position: 3 + display_options: + display_extenders: { } + display_description: 'The embedded view for use on a landing page' + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - url + - url.query_args + - user + - 'user.node_grants:view' + - user.permissions + tags: { } diff --git a/codebase/config/sync/views.view.workbench_taxonomies.yml b/codebase/config/sync/views.view.workbench_taxonomies.yml new file mode 100644 index 0000000000..8e8dbcdf1d --- /dev/null +++ b/codebase/config/sync/views.view.workbench_taxonomies.yml @@ -0,0 +1,303 @@ +uuid: a142f192-a5b8-4e5a-9640-414ed3b783af +langcode: en +status: true +dependencies: + config: + - taxonomy.vocabulary.access_rights + - taxonomy.vocabulary.copyright_and_use + - taxonomy.vocabulary.corporate_body + - taxonomy.vocabulary.family + - taxonomy.vocabulary.genre + - taxonomy.vocabulary.geo_location + - taxonomy.vocabulary.language + - taxonomy.vocabulary.person + - taxonomy.vocabulary.resource_types + - taxonomy.vocabulary.subject + module: + - taxonomy + - user +id: workbench_taxonomies +label: 'Workbench: Taxonomies' +module: views +description: '' +tag: '' +base_table: taxonomy_term_field_data +base_field: tid +display: + default: + display_plugin: default + id: default + display_title: Master + position: 0 + display_options: + access: + type: perm + options: + perm: 'access content' + cache: + type: tag + options: { } + query: + type: views_query + options: + disable_sql_rewrite: false + distinct: false + replica: false + query_comment: '' + query_tags: { } + exposed_form: + type: basic + options: + submit_button: Apply + reset_button: false + reset_button_label: Reset + exposed_sorts_label: 'Sort by' + expose_sort_order: true + sort_asc_label: Asc + sort_desc_label: Desc + pager: + type: some + options: + items_per_page: 100 + offset: 0 + style: + type: default + options: + grouping: + - + field: vid + rendered: true + rendered_strip: false + row_class: '' + default_row_class: true + row: + type: 'entity:taxonomy_term' + options: + relationship: none + view_mode: default + fields: + name: + id: name + table: taxonomy_term_field_data + field: name + relationship: none + group_type: group + admin_label: '' + label: '' + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: false + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: value + type: string + settings: + link_to_entity: false + group_column: value + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + convert_spaces: false + entity_type: taxonomy_term + entity_field: name + plugin_id: term_name + vid: + id: vid + table: taxonomy_term_field_data + field: vid + relationship: none + group_type: group + admin_label: '' + label: '' + exclude: true + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: false + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: target_id + type: entity_reference_label + settings: + link: true + group_column: target_id + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + entity_type: taxonomy_term + entity_field: vid + plugin_id: field + filters: + status: + value: '1' + table: taxonomy_term_field_data + field: status + plugin_id: boolean + entity_type: taxonomy_term + entity_field: status + id: status + expose: + operator: '' + operator_limit_selection: false + operator_list: { } + group: 1 + vid: + id: vid + table: taxonomy_term_field_data + field: vid + relationship: none + group_type: group + admin_label: '' + operator: in + value: + access_rights: access_rights + copyright_and_use: copyright_and_use + corporate_body: corporate_body + family: family + genre: genre + geo_location: geo_location + language: language + person: person + resource_types: resource_types + subject: subject + group: 1 + exposed: false + expose: + operator_id: '' + label: '' + description: '' + use_operator: false + operator: '' + operator_limit_selection: false + operator_list: { } + identifier: '' + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + reduce: false + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + entity_type: taxonomy_term + entity_field: vid + plugin_id: bundle + sorts: { } + title: 'Workbench: Taxonomies' + header: { } + footer: { } + empty: { } + relationships: { } + arguments: { } + display_extenders: { } + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - user.permissions + tags: { } + block_1: + display_plugin: block + id: block_1 + display_title: Block + position: 1 + display_options: + display_extenders: { } + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - user.permissions + tags: { } diff --git a/codebase/config/sync/workbench.settings.yml b/codebase/config/sync/workbench.settings.yml new file mode 100644 index 0000000000..49b7f0e481 --- /dev/null +++ b/codebase/config/sync/workbench.settings.yml @@ -0,0 +1,7 @@ +overview_left: 'workbench_edited:block_1' +overview_right: 'workbench_current_user:block_1' +overview_main: 'workbench_recent_content:embed_1' +edits_main: 'workbench_edited:embed_1' +all_main: 'workbench_recent_content:embed_1' +_core: + default_config_hash: aGR45_bxRagev3Ecuwgjvr3x2Ccgsmsk-Evv-SIkwQM diff --git a/codebase/config/sync/workbench_access.access_scheme.collection.yml b/codebase/config/sync/workbench_access.access_scheme.collection.yml new file mode 100644 index 0000000000..7c4ab0cc48 --- /dev/null +++ b/codebase/config/sync/workbench_access.access_scheme.collection.yml @@ -0,0 +1,59 @@ +uuid: e4c9d6e9-b784-4128-bd85-c3c932dbfa31 +langcode: en +status: true +dependencies: + config: + - field.field.media.audio.field_access_terms + - field.field.media.document.field_access_terms + - field.field.media.extracted_text.field_access_terms + - field.field.media.file.field_access_terms + - field.field.media.image.field_access_terms + - field.field.media.remote_video.field_access_terms + - field.field.media.video.field_access_terms + - field.field.node.collection_object.field_access_control + - field.field.node.islandora_object.field_access_terms + - taxonomy.vocabulary.islandora_access +id: collection +label: Collection +plural_label: Collections +scheme: taxonomy +scheme_settings: + vocabularies: + - islandora_access + fields: + - + entity_type: media + bundle: video + field: field_access_terms + - + entity_type: media + bundle: image + field: field_access_terms + - + entity_type: media + bundle: file + field: field_access_terms + - + entity_type: media + bundle: document + field: field_access_terms + - + entity_type: media + bundle: audio + field: field_access_terms + - + entity_type: media + bundle: extracted_text + field: field_access_terms + - + entity_type: media + bundle: remote_video + field: field_access_terms + - + entity_type: node + bundle: islandora_object + field: field_access_terms + - + entity_type: node + bundle: collection_object + field: field_access_control diff --git a/codebase/config/sync/workbench_access.settings.yml b/codebase/config/sync/workbench_access.settings.yml new file mode 100644 index 0000000000..7560b27a4f --- /dev/null +++ b/codebase/config/sync/workbench_access.settings.yml @@ -0,0 +1,3 @@ +deny_on_empty: true +_core: + default_config_hash: Y6xetsHwk8FUA3WQMga3J7Imf3wRlur5ALeppr16dJM diff --git a/codebase/web/sites/simpletest/.htaccess b/codebase/web/sites/simpletest/.htaccess new file mode 100644 index 0000000000..183a1ffebc --- /dev/null +++ b/codebase/web/sites/simpletest/.htaccess @@ -0,0 +1,14 @@ +# Turn off all options we don't need. +Options -Indexes -ExecCGI -Includes -MultiViews + +# Set the catch-all handler to prevent scripts from being executed. +SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006 + + # Override the handler again if we're run later in the evaluation list. + SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003 + + +# If we know how to do it safely, disable the PHP engine entirely. + + php_flag engine off + \ No newline at end of file From ebc40e07c1918e702bdc508734f02d27030f9bce Mon Sep 17 00:00:00 2001 From: Bethany Seeger Date: Tue, 9 Mar 2021 12:06:29 -0500 Subject: [PATCH 2/9] Adding env --- ' | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 ' diff --git a/' b/' new file mode 100644 index 0000000000..d77ab9fee1 --- /dev/null +++ b/' @@ -0,0 +1,81 @@ +# Environment variables defined in this file apply to both the Makefile and to +# docker-compose.yml +# +# Due to restrictions in the `env-file` format we cannot specify multi-line +# values for environment variables. For this reason the environment +# variables are set on service definitions in the docker-compose.*.yml files, +# rather than defined in `env-file` files. + +# Determines which docker-compose file(s) will be used for the `drupal` service. +# See documentation for more details. +ENVIRONMENT=local + +REQUIRED_SERIVCES=activemq alpaca cantaloupe idc-crayfish crayfits drupal mariadb solr idc-snapshot testcafe +############################################################################### +# Environment variables specific to composer. +############################################################################### +COMPOSE_HTTP_TIMEOUT=480 + +# Also used for naming services in traefik as well as defining network alias and urls. +# For example the `drupal` service will be found at `islandora.${COMPOSE_PROJECT_NAME}.${DRUPAL_SITE_HOST}`. +# See https://docs.docker.com/compose/reference/envvars/ +COMPOSE_PROJECT_NAME=idc + +# If you are running locally, leave this. traefik.me resolves to localhost. +# If you are deploying to a remote server and you own a domain for it, place it here. +# If you have an IP but no domain, change this to X-X-X-X.traefik.me, where X-X-X-X +# is your IP address but with hyphens instead of dots. +DRUPAL_SITE_HOST=traefik.me + +# Allows building custom image with buildkit. +COMPOSE_DOCKER_CLI_BUILD=1 +DOCKER_BUILDKIT=1 + +# Dockerfile to use when building the custom project. +PROJECT_DRUPAL_DOCKERFILE=Dockerfile + +# Includes `traefik` as a service, if false assume we are sharing a traefik +# from another project. +INCLUDE_TRAEFIK_SERVICE=true + +# Includes `watchtower` as a service. +INCLUDE_WATCHTOWER_SERVICE=false + +# Includes `etcd` as a service. +INCLUDE_ETCD_SERVICE=false + +# Include SAML-related services. +INCLUDE_SAML_SERVICE=true + +# Choose which database backend to use: mariadb/postgresql +# Services that only support MySQL (Matomo) do not have the option to change. +# Also at this time not all Drupal modules work with PostgresSQL, it is provided +# as option here so it can be tested and fixed at some later date. +DRUPAL_DATABASE_SERVICE=mariadb +FCREPO_DATABASE_SERVICE=mariadb +GEMINI_DATABASE_SERVICE=mariadb + +# Root database password +MYSQL_ROOT_PASSWORD=password + +# Repository to use for pulling isle-buildkit images, change to `local` +# To use images you have built locally with isle-buildkit, or use your +# custom docker registry if you have set up one. +# +REPOSITORY=ghcr.io/jhu-sheridan-libraries/idc-isle-dc + +# The version of the isle-buildkit images, non isle-buildkit images have +# their versions specified explicitly in their respective docker-compose files. +TAG=upstream-20200824-f8d1e8e-23-g9fe79fc + +# Docker image and tag for snapshot image +SNAPSHOT_TAG=upstream-20201007-739693ae-227-gc04a62b0.1616075568 + +# IdP, SP entity URIs and base URLs +SP_BASEURL=https://islandora-idc.traefik.me +SP_ENTITYID=https://islandora-idc.traefik.me/sp/shibboleth +IDP_BASEURL=https://islandora-idp.traefik.me:4443 +IDP_ENTITYID=https://islandora-idp.traefik.me/idp/shibboleth + +# DB params +DRUPAL_DEFAULT_DB_PASSWORD=password From 679cf44f66c6e0dfbc51b7feec44639ee8850c68 Mon Sep 17 00:00:00 2001 From: Bethany Seeger Date: Wed, 17 Mar 2021 16:04:56 -0400 Subject: [PATCH 3/9] Latest changes, still a WIP --- codebase/composer.json | 2 + codebase/composer.lock | 149 ++++++++++- .../config/sync/block.block.contributors.yml | 42 ---- ...k.exposedformsolr_search_contentpage_1.yml | 25 -- ...exposedformsolr_search_contentpage_1_2.yml | 40 --- ...i_exposedformsolr_search_contentpage_1.yml | 25 -- .../config/sync/block.block.idcui_subject.yml | 31 --- codebase/config/sync/block.block.subject.yml | 31 --- codebase/config/sync/block.block.years.yml | 40 --- ...display.node.collection_object.default.yml | 10 +- ..._display.node.islandora_object.default.yml | 48 ++-- ...display.node.collection_object.default.yml | 2 +- ...w_display.node.islandora_object.binary.yml | 4 +- ..._display.node.islandora_object.default.yml | 11 +- ...y.node.islandora_object.open_seadragon.yml | 11 +- ...ew_display.node.islandora_object.pdfjs.yml | 4 +- ...w_display.node.islandora_object.teaser.yml | 4 +- codebase/config/sync/core.extension.yml | 1 + .../config/sync/facets.facet.contributors.yml | 72 ------ codebase/config/sync/facets.facet.subject.yml | 70 ------ codebase/config/sync/facets.facet.years.yml | 57 ----- ...node.collection_object.field_member_of.yml | 12 +- ...islandora_object.field_access_control.yml} | 17 +- ....node.islandora_object.field_member_of.yml | 14 +- ...ield.storage.node.field_access_control.yml | 2 +- .../field.storage.node.field_access_terms.yml | 26 -- .../search_api.index.default_solr_index.yml | 17 +- .../config/sync/system.menu.collections.yml | 8 + .../taxonomy.vocabulary.islandora_access.yml | 4 +- .../sync/user.role.collection_level_admin.yml | 1 - .../views.view.content_type_member_of.yml | 191 ++++++++++++++ .../views.view.repository_item_member_of.yml | 60 +++-- .../sync/views.view.solr_search_content.yml | 238 +++++++++--------- .../views.view.workbench_recent_content.yml | 65 ----- ...kbench_access.access_scheme.collection.yml | 12 +- .../config/sync/workbench_access.settings.yml | 2 +- 36 files changed, 586 insertions(+), 762 deletions(-) delete mode 100644 codebase/config/sync/block.block.contributors.yml delete mode 100644 codebase/config/sync/block.block.exposedformsolr_search_contentpage_1.yml delete mode 100644 codebase/config/sync/block.block.exposedformsolr_search_contentpage_1_2.yml delete mode 100644 codebase/config/sync/block.block.idcui_exposedformsolr_search_contentpage_1.yml delete mode 100644 codebase/config/sync/block.block.idcui_subject.yml delete mode 100644 codebase/config/sync/block.block.subject.yml delete mode 100644 codebase/config/sync/block.block.years.yml delete mode 100644 codebase/config/sync/facets.facet.contributors.yml delete mode 100644 codebase/config/sync/facets.facet.subject.yml delete mode 100644 codebase/config/sync/facets.facet.years.yml rename codebase/config/sync/{field.field.node.islandora_object.field_access_terms.yml => field.field.node.islandora_object.field_access_control.yml} (57%) delete mode 100644 codebase/config/sync/field.storage.node.field_access_terms.yml create mode 100644 codebase/config/sync/system.menu.collections.yml create mode 100644 codebase/config/sync/views.view.content_type_member_of.yml diff --git a/codebase/composer.json b/codebase/composer.json index db0e71b7cd..88b8ef9816 100644 --- a/codebase/composer.json +++ b/codebase/composer.json @@ -45,7 +45,9 @@ "composer/installers": "^1.2", "cweagans/composer-patches": "^1.6.5", "drupal/admin_toolbar": "^2.0", + "drupal/auto_entitylabel": "^3.0@beta", "drupal/captcha": "^1.1", + "drupal/conditional_fields": "^1.0@alpha", "drupal/console": "~1.0", "drupal/contact_ajax": "^1.5", "drupal/contact_block": "^1.5", diff --git a/codebase/composer.lock b/codebase/composer.lock index aaa3ebbfaf..1561c803e6 100644 --- a/codebase/composer.lock +++ b/codebase/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "c7c4bc901f6e2e75ac266bfb81e173ec", + "content-hash": "e0760a221aa4cd9a031a7c45f1f00ea8", "packages": [ { "name": "alchemy/zippy", @@ -2264,6 +2264,75 @@ "issues": "https://www.drupal.org/project/issues/admin_toolbar" } }, + { + "name": "drupal/auto_entitylabel", + "version": "3.0.0-beta4", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/auto_entitylabel.git", + "reference": "8.x-3.0-beta4" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/auto_entitylabel-8.x-3.0-beta4.zip", + "reference": "8.x-3.0-beta4", + "shasum": "916befd4ce95b5d73de48ac1b105cc33e9f7821f" + }, + "require": { + "drupal/core": "^8 || ^9" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "8.x-3.0-beta4", + "datestamp": "1609349103", + "security-coverage": { + "status": "not-covered", + "message": "Beta releases are not covered by Drupal security advisories." + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "Pravin Ajaaz", + "homepage": "https://www.drupal.org/user/2910049" + }, + { + "name": "RenatoG", + "homepage": "https://www.drupal.org/user/3326031" + }, + { + "name": "VladimirAus", + "homepage": "https://www.drupal.org/user/673120" + }, + { + "name": "bforchhammer", + "homepage": "https://www.drupal.org/user/216396" + }, + { + "name": "colan", + "homepage": "https://www.drupal.org/user/58704" + }, + { + "name": "diqidoq", + "homepage": "https://www.drupal.org/user/1001934" + }, + { + "name": "purushotam.rai", + "homepage": "https://www.drupal.org/user/3193859" + } + ], + "description": "Allows hiding of entity label fields and automatic label creation.", + "homepage": "https://www.drupal.org/project/auto_entitylabel", + "support": { + "source": "https://git.drupalcode.org/project/auto_entitylabel", + "issues": "https://www.drupal.org/project/issues/auto_entitylabel" + } + }, { "name": "drupal/captcha", "version": "1.1.0", @@ -2336,6 +2405,82 @@ "issues": "https://www.drupal.org/project/issues/captcha" } }, + { + "name": "drupal/conditional_fields", + "version": "1.0.0-alpha10", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/conditional_fields.git", + "reference": "8.x-1.0-alpha10" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/conditional_fields-8.x-1.0-alpha10.zip", + "reference": "8.x-1.0-alpha10", + "shasum": "ac11881a07eaf3ce796dea1cb0e537434d1fbd3d" + }, + "require": { + "drupal/core": "^8 || ^9" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "8.x-1.0-alpha10", + "datestamp": "1610130227", + "security-coverage": { + "status": "not-covered", + "message": "Project has not opted into security advisory coverage!" + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "Adyax", + "homepage": "https://www.adyax.com/" + }, + { + "name": "OlgaRabodzei", + "homepage": "https://www.drupal.org/user/3389198" + }, + { + "name": "colan", + "homepage": "https://www.drupal.org/user/58704" + }, + { + "name": "ergonlogic", + "homepage": "https://www.drupal.org/user/368613" + }, + { + "name": "geek-merlin", + "homepage": "https://www.drupal.org/user/229048" + }, + { + "name": "itsekhmistro", + "homepage": "https://www.drupal.org/user/928152" + }, + { + "name": "mparker17", + "homepage": "https://www.drupal.org/user/536298" + }, + { + "name": "peterpoe", + "homepage": "https://www.drupal.org/user/55674" + }, + { + "name": "thalles", + "homepage": "https://www.drupal.org/user/3589086" + } + ], + "description": "Conditional fields", + "homepage": "https://www.drupal.org/project/conditional_fields", + "support": { + "source": "https://git.drupalcode.org/project/conditional_fields" + } + }, { "name": "drupal/config_update", "version": "1.7.0", @@ -16544,6 +16689,8 @@ "aliases": [], "minimum-stability": "dev", "stability-flags": { + "drupal/auto_entitylabel": 10, + "drupal/conditional_fields": 15, "drupal/content_browser": 15, "drupal/libraries": 20, "drupal/migrate_source_ui": 5, diff --git a/codebase/config/sync/block.block.contributors.yml b/codebase/config/sync/block.block.contributors.yml deleted file mode 100644 index f71668aba8..0000000000 --- a/codebase/config/sync/block.block.contributors.yml +++ /dev/null @@ -1,42 +0,0 @@ -uuid: d92feaba-2c95-4c66-b7c9-7b29ec550258 -langcode: en -status: true -dependencies: - config: - - facets.facet.contributors - module: - - context - - facets - - islandora - theme: - - carapace -_core: - default_config_hash: dvifUKfHq5BtFKPJWQrVbQbqMwwCzHTqtcNxY0b5XwA -id: contributors -theme: carapace -region: sidebar_second -weight: -7 -provider: null -plugin: 'facet_block:contributors' -settings: - id: 'facet_block:contributors' - label: Contributors - provider: facets - label_display: visible - block_id: contributors -visibility: - request_path_exclusion: - id: request_path_exclusion - pages: '' - negate: null - context_mapping: { } - view_inclusion: - id: view_inclusion - negate: null - view_inclusion: { } - context_mapping: { } - media_source_mimetype: - id: media_source_mimetype - mimetype: '' - negate: false - context_mapping: { } diff --git a/codebase/config/sync/block.block.exposedformsolr_search_contentpage_1.yml b/codebase/config/sync/block.block.exposedformsolr_search_contentpage_1.yml deleted file mode 100644 index 15da8d948f..0000000000 --- a/codebase/config/sync/block.block.exposedformsolr_search_contentpage_1.yml +++ /dev/null @@ -1,25 +0,0 @@ -uuid: 64b40114-4835-4f02-b14b-7704bbff3929 -langcode: en -status: true -dependencies: - config: - - views.view.solr_search_content - module: - - views - theme: - - carapace -_core: - default_config_hash: qAfb4caT_8NQ1iWN2j6l0TBEGLytvNolwkPexVyhDxs -id: exposedformsolr_search_contentpage_1 -theme: carapace -region: sidebar_second -weight: -8 -provider: null -plugin: 'views_exposed_filter_block:solr_search_content-page_1' -settings: - id: 'views_exposed_filter_block:solr_search_content-page_1' - label: '' - provider: views - label_display: visible - views_label: '' -visibility: { } diff --git a/codebase/config/sync/block.block.exposedformsolr_search_contentpage_1_2.yml b/codebase/config/sync/block.block.exposedformsolr_search_contentpage_1_2.yml deleted file mode 100644 index da49575b67..0000000000 --- a/codebase/config/sync/block.block.exposedformsolr_search_contentpage_1_2.yml +++ /dev/null @@ -1,40 +0,0 @@ -uuid: b5d69653-1f42-46f5-b24c-12a410e39af1 -langcode: en -status: true -dependencies: - config: - - views.view.solr_search_content - module: - - context - - islandora - - views - theme: - - idcui -id: exposedformsolr_search_contentpage_1_2 -theme: idcui -region: header_2 -weight: 0 -provider: null -plugin: 'views_exposed_filter_block:solr_search_content-page_1' -settings: - id: 'views_exposed_filter_block:solr_search_content-page_1' - label: '' - provider: views - label_display: '0' - views_label: '' -visibility: - view_inclusion: - id: view_inclusion - negate: null - view_inclusion: { } - context_mapping: { } - request_path_exclusion: - id: request_path_exclusion - pages: '' - negate: null - context_mapping: { } - media_source_mimetype: - id: media_source_mimetype - mimetype: '' - negate: false - context_mapping: { } diff --git a/codebase/config/sync/block.block.idcui_exposedformsolr_search_contentpage_1.yml b/codebase/config/sync/block.block.idcui_exposedformsolr_search_contentpage_1.yml deleted file mode 100644 index fc34a9526a..0000000000 --- a/codebase/config/sync/block.block.idcui_exposedformsolr_search_contentpage_1.yml +++ /dev/null @@ -1,25 +0,0 @@ -uuid: caf57bab-6094-40ed-b151-5eb6a09ac705 -langcode: en -status: true -dependencies: - config: - - views.view.solr_search_content - module: - - views - theme: - - idcui -_core: - default_config_hash: qAfb4caT_8NQ1iWN2j6l0TBEGLytvNolwkPexVyhDxs -id: idcui_exposedformsolr_search_contentpage_1 -theme: idcui -region: top_menu -weight: -5 -provider: null -plugin: 'views_exposed_filter_block:solr_search_content-page_1' -settings: - id: 'views_exposed_filter_block:solr_search_content-page_1' - label: '' - provider: views - label_display: visible - views_label: '' -visibility: { } diff --git a/codebase/config/sync/block.block.idcui_subject.yml b/codebase/config/sync/block.block.idcui_subject.yml deleted file mode 100644 index dc8aafa6bf..0000000000 --- a/codebase/config/sync/block.block.idcui_subject.yml +++ /dev/null @@ -1,31 +0,0 @@ -uuid: 1081880b-7aad-4418-90fa-d6499d7afc48 -langcode: en -status: true -dependencies: - config: - - facets.facet.subject - module: - - facets - - system - theme: - - idcui -_core: - default_config_hash: Qy_nSE_PRV3YUVnl6KeCHqh_Ja3TtmqZD6bjj0ANEoM -id: idcui_subject -theme: idcui -region: top_menu -weight: 0 -provider: null -plugin: 'facet_block:subject' -settings: - id: 'facet_block:subject' - label: Subject - provider: facets - label_display: visible - block_id: subject -visibility: - request_path: - id: request_path - pages: /solr-search/content - negate: false - context_mapping: { } diff --git a/codebase/config/sync/block.block.subject.yml b/codebase/config/sync/block.block.subject.yml deleted file mode 100644 index 25f4c62b2c..0000000000 --- a/codebase/config/sync/block.block.subject.yml +++ /dev/null @@ -1,31 +0,0 @@ -uuid: 841432f2-31bf-4e89-a0ce-6185596c015c -langcode: en -status: true -dependencies: - config: - - facets.facet.subject - module: - - facets - - system - theme: - - carapace -_core: - default_config_hash: Qy_nSE_PRV3YUVnl6KeCHqh_Ja3TtmqZD6bjj0ANEoM -id: subject -theme: carapace -region: sidebar_second -weight: -6 -provider: null -plugin: 'facet_block:subject' -settings: - id: 'facet_block:subject' - label: Subject - provider: facets - label_display: visible - block_id: subject -visibility: - request_path: - id: request_path - pages: /solr-search/content - negate: false - context_mapping: { } diff --git a/codebase/config/sync/block.block.years.yml b/codebase/config/sync/block.block.years.yml deleted file mode 100644 index 1c50a1a5aa..0000000000 --- a/codebase/config/sync/block.block.years.yml +++ /dev/null @@ -1,40 +0,0 @@ -uuid: bfe5207d-5568-4184-82fe-63343bb2c66c -langcode: en -status: true -dependencies: - config: - - facets.facet.years - module: - - context - - facets - - islandora - theme: - - carapace -id: years -theme: carapace -region: sidebar_second -weight: -5 -provider: null -plugin: 'facet_block:years' -settings: - id: 'facet_block:years' - label: Years - provider: facets - label_display: visible - block_id: years -visibility: - request_path_exclusion: - id: request_path_exclusion - pages: '' - negate: null - context_mapping: { } - view_inclusion: - id: view_inclusion - negate: null - view_inclusion: { } - context_mapping: { } - media_source_mimetype: - id: media_source_mimetype - mimetype: '' - negate: false - context_mapping: { } diff --git a/codebase/config/sync/core.entity_form_display.node.collection_object.default.yml b/codebase/config/sync/core.entity_form_display.node.collection_object.default.yml index 08c0a841d0..7737b16ba6 100644 --- a/codebase/config/sync/core.entity_form_display.node.collection_object.default.yml +++ b/codebase/config/sync/core.entity_form_display.node.collection_object.default.yml @@ -30,7 +30,7 @@ content: settings: { } third_party_settings: { } field_access_control: - weight: 26 + weight: 14 settings: { } third_party_settings: { } type: options_select @@ -102,13 +102,9 @@ content: region: content field_member_of: weight: 10 - settings: - match_operator: CONTAINS - match_limit: 10 - size: 60 - placeholder: '' + settings: { } third_party_settings: { } - type: entity_reference_autocomplete + type: options_select region: content field_title_language: weight: 1 diff --git a/codebase/config/sync/core.entity_form_display.node.islandora_object.default.yml b/codebase/config/sync/core.entity_form_display.node.islandora_object.default.yml index 3c2ba06c56..40259c75b7 100644 --- a/codebase/config/sync/core.entity_form_display.node.islandora_object.default.yml +++ b/codebase/config/sync/core.entity_form_display.node.islandora_object.default.yml @@ -4,8 +4,8 @@ status: true dependencies: config: - field.field.node.islandora_object.field_abstract + - field.field.node.islandora_object.field_access_control - field.field.node.islandora_object.field_access_rights - - field.field.node.islandora_object.field_access_terms - field.field.node.islandora_object.field_alternative_title - field.field.node.islandora_object.field_citable_url - field.field.node.islandora_object.field_collection_number @@ -63,7 +63,6 @@ third_party_settings: - field_member_of - langcode - field_display_hints - - field_access_terms - field_weight parent_name: '' weight: 6 @@ -227,18 +226,22 @@ content: third_party_settings: { } type: reference_value_select region: content + field_access_control: + weight: 69 + settings: + match_operator: CONTAINS + match_limit: 10 + size: 60 + placeholder: '' + third_party_settings: { } + type: entity_reference_autocomplete + region: content field_access_rights: weight: 59 settings: { } third_party_settings: { } type: options_buttons region: content - field_access_terms: - type: options_select - weight: 12 - region: content - settings: { } - third_party_settings: { } field_alternative_title: weight: 15 settings: @@ -477,15 +480,30 @@ content: type: link_default region: content field_member_of: - type: entity_reference_autocomplete + type: options_select weight: 9 region: content - settings: - match_operator: CONTAINS - size: 60 - placeholder: '' - match_limit: 10 - third_party_settings: { } + settings: { } + third_party_settings: + conditional_fields: + 4f370f9a-983c-415f-9f05-684f9a7369fb: + dependee: field_access_terms + settings: + state: '!empty' + condition: '!empty' + grouping: AND + values_set: 1 + value: '' + values: { } + value_form: { } + effect: fill + effect_options: + fill: + value: '' + reset: 1 + selector: '%val' + entity_type: node + bundle: islandora_object field_model: type: options_select weight: 8 diff --git a/codebase/config/sync/core.entity_view_display.node.collection_object.default.yml b/codebase/config/sync/core.entity_view_display.node.collection_object.default.yml index ab1de90534..f18a613951 100644 --- a/codebase/config/sync/core.entity_view_display.node.collection_object.default.yml +++ b/codebase/config/sync/core.entity_view_display.node.collection_object.default.yml @@ -64,7 +64,7 @@ content: type: link region: content field_collection_contact_email: - weight: 9 + weight: 17 label: above settings: { } third_party_settings: { } diff --git a/codebase/config/sync/core.entity_view_display.node.islandora_object.binary.yml b/codebase/config/sync/core.entity_view_display.node.islandora_object.binary.yml index 5bd0f2b070..182fd2376c 100644 --- a/codebase/config/sync/core.entity_view_display.node.islandora_object.binary.yml +++ b/codebase/config/sync/core.entity_view_display.node.islandora_object.binary.yml @@ -5,8 +5,8 @@ dependencies: config: - core.entity_view_mode.node.binary - field.field.node.islandora_object.field_abstract + - field.field.node.islandora_object.field_access_control - field.field.node.islandora_object.field_access_rights - - field.field.node.islandora_object.field_access_terms - field.field.node.islandora_object.field_alternative_title - field.field.node.islandora_object.field_citable_url - field.field.node.islandora_object.field_collection_number @@ -138,8 +138,8 @@ hidden: display_media_service_file: true display_media_thumbnail: true field_abstract: true + field_access_control: true field_access_rights: true - field_access_terms: true field_alternative_title: true field_citable_url: true field_collection_number: true diff --git a/codebase/config/sync/core.entity_view_display.node.islandora_object.default.yml b/codebase/config/sync/core.entity_view_display.node.islandora_object.default.yml index 4aba882ebb..493ca3a3e8 100644 --- a/codebase/config/sync/core.entity_view_display.node.islandora_object.default.yml +++ b/codebase/config/sync/core.entity_view_display.node.islandora_object.default.yml @@ -4,8 +4,8 @@ status: true dependencies: config: - field.field.node.islandora_object.field_abstract + - field.field.node.islandora_object.field_access_control - field.field.node.islandora_object.field_access_rights - - field.field.node.islandora_object.field_access_terms - field.field.node.islandora_object.field_alternative_title - field.field.node.islandora_object.field_citable_url - field.field.node.islandora_object.field_collection_number @@ -76,6 +76,14 @@ content: third_party_settings: { } type: reference_value_formatter region: content + field_access_control: + weight: 42 + label: above + settings: + link: true + third_party_settings: { } + type: entity_reference_label + region: content field_access_rights: weight: 15 label: above @@ -442,7 +450,6 @@ hidden: display_media_entity_view_1: true display_media_entity_view_2: true display_media_thumbnail: true - field_access_terms: true field_display_hints: true field_gemini_uri: true field_model: true diff --git a/codebase/config/sync/core.entity_view_display.node.islandora_object.open_seadragon.yml b/codebase/config/sync/core.entity_view_display.node.islandora_object.open_seadragon.yml index 2021dc1dff..be385cf1f5 100644 --- a/codebase/config/sync/core.entity_view_display.node.islandora_object.open_seadragon.yml +++ b/codebase/config/sync/core.entity_view_display.node.islandora_object.open_seadragon.yml @@ -5,8 +5,8 @@ dependencies: config: - core.entity_view_mode.node.open_seadragon - field.field.node.islandora_object.field_abstract + - field.field.node.islandora_object.field_access_control - field.field.node.islandora_object.field_access_rights - - field.field.node.islandora_object.field_access_terms - field.field.node.islandora_object.field_alternative_title - field.field.node.islandora_object.field_citable_url - field.field.node.islandora_object.field_collection_number @@ -55,7 +55,6 @@ dependencies: - controlled_access_terms - link - reference_value_pair - - taxonomy - user _core: default_config_hash: BOKmqgfhsFt_yEb5fjCzV99sysk7G9p43DoVfTsh3OQ @@ -86,13 +85,6 @@ content: settings: link: true third_party_settings: { } - field_access_terms: - type: entity_reference_rss_category - weight: 27 - region: content - label: above - settings: { } - third_party_settings: { } field_alternative_title: type: reference_value_formatter weight: 26 @@ -442,6 +434,7 @@ hidden: display_media_entity_view_2: true display_media_service_file: true display_media_thumbnail: true + field_access_control: true field_display_hints: true field_dspace_identifier: true field_dspace_item_id: true diff --git a/codebase/config/sync/core.entity_view_display.node.islandora_object.pdfjs.yml b/codebase/config/sync/core.entity_view_display.node.islandora_object.pdfjs.yml index ff8a98b935..09f9070e3d 100644 --- a/codebase/config/sync/core.entity_view_display.node.islandora_object.pdfjs.yml +++ b/codebase/config/sync/core.entity_view_display.node.islandora_object.pdfjs.yml @@ -5,8 +5,8 @@ dependencies: config: - core.entity_view_mode.node.pdfjs - field.field.node.islandora_object.field_abstract + - field.field.node.islandora_object.field_access_control - field.field.node.islandora_object.field_access_rights - - field.field.node.islandora_object.field_access_terms - field.field.node.islandora_object.field_alternative_title - field.field.node.islandora_object.field_citable_url - field.field.node.islandora_object.field_collection_number @@ -134,8 +134,8 @@ hidden: display_media_service_file: true display_media_thumbnail: true field_abstract: true + field_access_control: true field_access_rights: true - field_access_terms: true field_alternative_title: true field_citable_url: true field_collection_number: true diff --git a/codebase/config/sync/core.entity_view_display.node.islandora_object.teaser.yml b/codebase/config/sync/core.entity_view_display.node.islandora_object.teaser.yml index 112828bcee..5368d78cde 100644 --- a/codebase/config/sync/core.entity_view_display.node.islandora_object.teaser.yml +++ b/codebase/config/sync/core.entity_view_display.node.islandora_object.teaser.yml @@ -5,8 +5,8 @@ dependencies: config: - core.entity_view_mode.node.teaser - field.field.node.islandora_object.field_abstract + - field.field.node.islandora_object.field_access_control - field.field.node.islandora_object.field_access_rights - - field.field.node.islandora_object.field_access_terms - field.field.node.islandora_object.field_alternative_title - field.field.node.islandora_object.field_citable_url - field.field.node.islandora_object.field_collection_number @@ -75,8 +75,8 @@ hidden: display_media_entity_view_2: true display_media_service_file: true field_abstract: true + field_access_control: true field_access_rights: true - field_access_terms: true field_alternative_title: true field_citable_url: true field_collection_number: true diff --git a/codebase/config/sync/core.extension.yml b/codebase/config/sync/core.extension.yml index d1b7fe560b..1c54755e2b 100644 --- a/codebase/config/sync/core.extension.yml +++ b/codebase/config/sync/core.extension.yml @@ -11,6 +11,7 @@ module: ckeditor: 0 color: 0 comment: 0 + conditional_fields: 0 config: 0 config_update: 0 contact: 0 diff --git a/codebase/config/sync/facets.facet.contributors.yml b/codebase/config/sync/facets.facet.contributors.yml deleted file mode 100644 index 58bffa402f..0000000000 --- a/codebase/config/sync/facets.facet.contributors.yml +++ /dev/null @@ -1,72 +0,0 @@ -uuid: 2f3314ec-7bba-461d-8992-9ec4e01cc1ac -langcode: en -status: true -dependencies: - config: - - search_api.index.default_solr_index - - views.view.solr_search_content - module: - - search_api -_core: - default_config_hash: dMN5WpPPKoWAenqVLJW8dUMrHoVXLE_eVewFvMBVg6o -id: contributors -name: Contributors -url_alias: contributors -weight: 0 -min_count: 1 -show_only_one_result: false -field_identifier: aggregated_field -facet_source_id: 'search_api:views_page__solr_search_content__page_1' -widget: - type: links - config: - show_numbers: false - soft_limit: 0 - soft_limit_settings: - show_less_label: 'Show less' - show_more_label: 'Show more' - show_reset_link: false - reset_text: 'Show all' - hide_reset_when_no_selection: false -query_operator: or -use_hierarchy: false -expand_hierarchy: false -enable_parent_when_child_gets_disabled: true -hard_limit: 0 -exclude: false -only_visible_when_facet_source_is_visible: true -processor_configs: - active_widget_order: - processor_id: active_widget_order - weights: - sort: 20 - settings: - sort: DESC - count_widget_order: - processor_id: count_widget_order - weights: - sort: 30 - settings: - sort: DESC - display_value_widget_order: - processor_id: display_value_widget_order - weights: - sort: 40 - settings: - sort: ASC - translate_entity_aggregated_fields: - processor_id: translate_entity_aggregated_fields - weights: - build: 5 - settings: { } - url_processor_handler: - processor_id: url_processor_handler - weights: - pre_query: 50 - build: 15 - settings: { } -empty_behavior: - behavior: text - text_format: plain_text - text: '-empty-' -show_title: false diff --git a/codebase/config/sync/facets.facet.subject.yml b/codebase/config/sync/facets.facet.subject.yml deleted file mode 100644 index 4f283b1b2a..0000000000 --- a/codebase/config/sync/facets.facet.subject.yml +++ /dev/null @@ -1,70 +0,0 @@ -uuid: d67fc4d6-be0b-408f-a0f8-cb1a7817e273 -langcode: en -status: true -dependencies: - config: - - search_api.index.default_solr_index - - views.view.solr_search_content - module: - - search_api -_core: - default_config_hash: TJP2yG8ZBf2x4H9SYx7VkrLBTYmBm2kE9uxA1cbrCas -id: subject -name: Subject -url_alias: subject -weight: -2 -min_count: 1 -show_only_one_result: false -field_identifier: field_subject -facet_source_id: 'search_api:views_page__solr_search_content__page_1' -widget: - type: links - config: - show_numbers: true - soft_limit: 10 - soft_limit_settings: - show_less_label: 'Show less' - show_more_label: 'Show more' - show_reset_link: true - reset_text: 'Show all' - hide_reset_when_no_selection: true -query_operator: or -use_hierarchy: false -expand_hierarchy: false -enable_parent_when_child_gets_disabled: true -hard_limit: 0 -exclude: false -only_visible_when_facet_source_is_visible: true -processor_configs: - active_widget_order: - processor_id: active_widget_order - weights: - sort: 20 - settings: - sort: DESC - count_widget_order: - processor_id: count_widget_order - weights: - sort: 30 - settings: - sort: DESC - display_value_widget_order: - processor_id: display_value_widget_order - weights: - sort: 40 - settings: - sort: ASC - hide_non_narrowing_result_processor: - processor_id: hide_non_narrowing_result_processor - weights: - build: 40 - settings: { } - url_processor_handler: - processor_id: url_processor_handler - weights: - pre_query: 50 - build: 15 - settings: { } -empty_behavior: - behavior: none -show_title: false diff --git a/codebase/config/sync/facets.facet.years.yml b/codebase/config/sync/facets.facet.years.yml deleted file mode 100644 index 0daf448d8c..0000000000 --- a/codebase/config/sync/facets.facet.years.yml +++ /dev/null @@ -1,57 +0,0 @@ -uuid: 16c03018-b899-4733-a40b-e2c79f897976 -langcode: en -status: true -dependencies: - config: - - search_api.index.default_solr_index - - views.view.solr_search_content - module: - - search_api -id: years -name: Years -url_alias: years -weight: 0 -min_count: 1 -show_only_one_result: true -field_identifier: field_years -facet_source_id: 'search_api:views_page__solr_search_content__page_1' -widget: - type: dropdown - config: - show_numbers: true - default_option_label: Choose -query_operator: or -use_hierarchy: false -expand_hierarchy: false -enable_parent_when_child_gets_disabled: true -hard_limit: 0 -exclude: false -only_visible_when_facet_source_is_visible: true -processor_configs: - active_widget_order: - processor_id: active_widget_order - weights: - sort: 20 - settings: - sort: DESC - count_widget_order: - processor_id: count_widget_order - weights: - sort: 30 - settings: - sort: DESC - display_value_widget_order: - processor_id: display_value_widget_order - weights: - sort: 40 - settings: - sort: ASC - url_processor_handler: - processor_id: url_processor_handler - weights: - pre_query: 50 - build: 15 - settings: { } -empty_behavior: - behavior: none -show_title: false diff --git a/codebase/config/sync/field.field.node.collection_object.field_member_of.yml b/codebase/config/sync/field.field.node.collection_object.field_member_of.yml index c8f7f5c17c..ab32698084 100644 --- a/codebase/config/sync/field.field.node.collection_object.field_member_of.yml +++ b/codebase/config/sync/field.field.node.collection_object.field_member_of.yml @@ -16,12 +16,10 @@ translatable: true default_value: { } default_value_callback: '' settings: - handler: 'default:node' + handler: views handler_settings: - target_bundles: - collection_object: collection_object - sort: - field: _none - auto_create: false - auto_create_bundle: '' + view: + view_name: content_type_member_of + display_name: entity_reference_1 + arguments: { } field_type: entity_reference diff --git a/codebase/config/sync/field.field.node.islandora_object.field_access_terms.yml b/codebase/config/sync/field.field.node.islandora_object.field_access_control.yml similarity index 57% rename from codebase/config/sync/field.field.node.islandora_object.field_access_terms.yml rename to codebase/config/sync/field.field.node.islandora_object.field_access_control.yml index a509939081..f991c3d862 100644 --- a/codebase/config/sync/field.field.node.islandora_object.field_access_terms.yml +++ b/codebase/config/sync/field.field.node.islandora_object.field_access_control.yml @@ -1,24 +1,19 @@ -uuid: ed674684-92f4-478e-a7bf-6105dd0b39f1 +uuid: 0de81f9f-22ac-4c6a-9f92-90554e2d57b5 langcode: en status: true dependencies: config: - - field.storage.node.field_access_terms + - field.storage.node.field_access_control - node.type.islandora_object - taxonomy.vocabulary.islandora_access - enforced: - module: - - islandora_defaults -_core: - default_config_hash: bxdvVF5ex2stzftf8k4q-FcAOHcefS7mz8lKm1MitYU -id: node.islandora_object.field_access_terms -field_name: field_access_terms +id: node.islandora_object.field_access_control +field_name: field_access_control entity_type: node bundle: islandora_object label: 'Access Control' -description: 'Terms that define who has access to view/edit this resource.' +description: '' required: false -translatable: false +translatable: true default_value: { } default_value_callback: '' settings: diff --git a/codebase/config/sync/field.field.node.islandora_object.field_member_of.yml b/codebase/config/sync/field.field.node.islandora_object.field_member_of.yml index 864aaba995..d4fdb9573d 100644 --- a/codebase/config/sync/field.field.node.islandora_object.field_member_of.yml +++ b/codebase/config/sync/field.field.node.islandora_object.field_member_of.yml @@ -4,7 +4,6 @@ status: true dependencies: config: - field.storage.node.field_member_of - - node.type.collection_object - node.type.islandora_object enforced: module: @@ -22,13 +21,10 @@ translatable: false default_value: { } default_value_callback: '' settings: - handler: 'default:node' + handler: views handler_settings: - target_bundles: - collection_object: collection_object - islandora_object: islandora_object - sort: - field: _none - auto_create: false - auto_create_bundle: collection_object + view: + view_name: content_type_member_of + display_name: entity_reference_1 + arguments: { } field_type: entity_reference diff --git a/codebase/config/sync/field.storage.node.field_access_control.yml b/codebase/config/sync/field.storage.node.field_access_control.yml index abdab8ba72..54bc2296b1 100644 --- a/codebase/config/sync/field.storage.node.field_access_control.yml +++ b/codebase/config/sync/field.storage.node.field_access_control.yml @@ -17,7 +17,7 @@ settings: target_type: taxonomy_term module: core locked: false -cardinality: 1 +cardinality: -1 translatable: true indexes: { } persist_with_no_fields: false diff --git a/codebase/config/sync/field.storage.node.field_access_terms.yml b/codebase/config/sync/field.storage.node.field_access_terms.yml deleted file mode 100644 index 97a173de9f..0000000000 --- a/codebase/config/sync/field.storage.node.field_access_terms.yml +++ /dev/null @@ -1,26 +0,0 @@ -uuid: 20f6e0ac-0bf1-442f-89c4-6bac50c26bc5 -langcode: en -status: true -dependencies: - module: - - field_permissions - - node - - taxonomy -third_party_settings: - field_permissions: - permission_type: custom -_core: - default_config_hash: yf5ONBhEFtk6wecSjGIXs8lk_eatTCLSPPVBBG6pk4o -id: node.field_access_terms -field_name: field_access_terms -entity_type: node -type: entity_reference -settings: - target_type: taxonomy_term -module: core -locked: false -cardinality: -1 -translatable: true -indexes: { } -persist_with_no_fields: false -custom_storage: false diff --git a/codebase/config/sync/search_api.index.default_solr_index.yml b/codebase/config/sync/search_api.index.default_solr_index.yml index 441cf5f2d4..8d828de8b5 100644 --- a/codebase/config/sync/search_api.index.default_solr_index.yml +++ b/codebase/config/sync/search_api.index.default_solr_index.yml @@ -6,16 +6,15 @@ dependencies: - search_api_solr - node - user - - token - - taxonomy - content_translation + - taxonomy + - token - search_api config: + - field.storage.node.body - field.storage.node.field_abstract - - field.storage.node.field_access_terms - field.storage.node.field_access_rights - field.storage.node.field_alternative_title - - field.storage.node.body - field.storage.node.field_citable_url - field.storage.node.field_collection_contact_name - field.storage.node.field_collection_number @@ -35,6 +34,7 @@ dependencies: - field.storage.node.field_featured_item - field.storage.node.field_finding_aid - field.storage.node.field_genre + - field.storage.taxonomy_term.field_geo_alt_name - field.storage.node.field_geoportal_link - field.storage.node.field_image - field.storage.node.field_is_part_of @@ -54,7 +54,6 @@ dependencies: - field.storage.node.field_table_of_contents - field.storage.node.field_tags - field.storage.node.field_years - - field.storage.taxonomy_term.field_geo_alt_name - search_api.server.default_solr_server - core.entity_view_mode.node.search_index third_party_settings: @@ -185,14 +184,6 @@ field_settings: dependencies: config: - field.storage.node.field_access_rights - field_access_terms: - label: 'Access Control' - datasource_id: 'entity:node' - property_path: field_access_terms - type: integer - dependencies: - config: - - field.storage.node.field_access_terms field_alternative_title: label: 'Alternative Title' datasource_id: 'entity:node' diff --git a/codebase/config/sync/system.menu.collections.yml b/codebase/config/sync/system.menu.collections.yml new file mode 100644 index 0000000000..451f663a29 --- /dev/null +++ b/codebase/config/sync/system.menu.collections.yml @@ -0,0 +1,8 @@ +uuid: 4557f1a2-3738-4b2a-b2ba-05c68408d95c +langcode: en +status: true +dependencies: { } +id: collections +label: Collections +description: '' +locked: false diff --git a/codebase/config/sync/taxonomy.vocabulary.islandora_access.yml b/codebase/config/sync/taxonomy.vocabulary.islandora_access.yml index f08ec5bbea..0eb453e1ab 100644 --- a/codebase/config/sync/taxonomy.vocabulary.islandora_access.yml +++ b/codebase/config/sync/taxonomy.vocabulary.islandora_access.yml @@ -4,7 +4,7 @@ status: true dependencies: { } _core: default_config_hash: sQg5b6M8H_5jJt0gGa3xqAIh7ny7yU8TdHFwnwmzDdc -name: 'Islandora Access' +name: 'Islandora Access Communites' vid: islandora_access -description: 'Terms used to limit, restrict or coordinate access' +description: 'Terms used to limit, restrict or coordinate access among collections' weight: 1 diff --git a/codebase/config/sync/user.role.collection_level_admin.yml b/codebase/config/sync/user.role.collection_level_admin.yml index c8b90ffe45..1e811ffce4 100644 --- a/codebase/config/sync/user.role.collection_level_admin.yml +++ b/codebase/config/sync/user.role.collection_level_admin.yml @@ -81,7 +81,6 @@ permissions: - 'view all media revisions' - 'view checksums' - 'view collection_object revisions' - - 'view field_access_control' - 'view field_access_terms' - 'view islandora_object revisions' - 'view own field_access_control' diff --git a/codebase/config/sync/views.view.content_type_member_of.yml b/codebase/config/sync/views.view.content_type_member_of.yml new file mode 100644 index 0000000000..40298ab69a --- /dev/null +++ b/codebase/config/sync/views.view.content_type_member_of.yml @@ -0,0 +1,191 @@ +uuid: 597dff21-e9e8-459a-a058-60422b46723b +langcode: en +status: true +dependencies: + module: + - node + - user +id: content_type_member_of +label: 'Content Type member_of' +module: views +description: '' +tag: '' +base_table: node_field_data +base_field: nid +display: + default: + display_plugin: default + id: default + display_title: Master + position: 0 + display_options: + access: + type: perm + options: + perm: 'edit any collection_object content' + cache: + type: tag + options: { } + query: + type: views_query + options: + disable_sql_rewrite: false + distinct: false + replica: false + query_comment: '' + query_tags: { } + exposed_form: + type: basic + options: + submit_button: Apply + reset_button: false + reset_button_label: Reset + exposed_sorts_label: 'Sort by' + expose_sort_order: true + sort_asc_label: Asc + sort_desc_label: Desc + pager: + type: mini + options: + items_per_page: 10 + offset: 0 + id: 0 + total_pages: null + expose: + items_per_page: false + items_per_page_label: 'Items per page' + items_per_page_options: '5, 10, 25, 50' + items_per_page_options_all: false + items_per_page_options_all_label: '- All -' + offset: false + offset_label: Offset + tags: + previous: ‹‹ + next: ›› + style: + type: default + options: + grouping: { } + row_class: '' + default_row_class: true + uses_fields: false + row: + type: fields + options: + inline: { } + separator: '' + hide_empty: false + default_field_elements: true + fields: + title: + id: title + table: node_field_data + field: title + entity_type: node + entity_field: title + label: '' + alter: + alter_text: false + make_link: false + absolute: false + trim: false + word_boundary: false + ellipsis: false + strip_tags: false + html: false + hide_empty: false + empty_zero: false + settings: + link_to_entity: true + plugin_id: field + relationship: none + group_type: group + admin_label: '' + exclude: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_alter_empty: true + click_sort_column: value + type: string + group_column: value + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + filters: + status: + value: '1' + table: node_field_data + field: status + plugin_id: boolean + entity_type: node + entity_field: status + id: status + expose: + operator: '' + operator_limit_selection: false + operator_list: { } + group: 1 + sorts: + created: + id: created + table: node_field_data + field: created + order: DESC + entity_type: node + entity_field: created + plugin_id: date + relationship: none + group_type: group + admin_label: '' + exposed: false + expose: + label: '' + granularity: second + header: { } + footer: { } + empty: { } + relationships: { } + arguments: { } + display_extenders: { } + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - url.query_args + - 'user.node_grants:view' + - user.permissions + tags: { } + entity_reference_1: + display_plugin: entity_reference + id: entity_reference_1 + display_title: 'Entity Reference' + position: 1 + display_options: + display_extenders: { } + style: + type: entity_reference + options: + search_fields: + title: title + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - 'user.node_grants:view' + - user.permissions + tags: { } diff --git a/codebase/config/sync/views.view.repository_item_member_of.yml b/codebase/config/sync/views.view.repository_item_member_of.yml index 039df2f215..83ea17ce8b 100644 --- a/codebase/config/sync/views.view.repository_item_member_of.yml +++ b/codebase/config/sync/views.view.repository_item_member_of.yml @@ -1,18 +1,18 @@ -uuid: b158dfcb-d334-4b99-8dce-3abee480a7b5 +uuid: aacd4289-a518-47bd-b864-566f74310187 langcode: en status: true dependencies: config: - - taxonomy.vocabulary.islandora_access + - node.type.collection_object module: - - taxonomy + - node - user id: repository_item_member_of label: 'Repository Item member_of' module: views description: '' tag: '' -base_table: taxonomy_term_field_data +base_table: node_field_data base_field: nid display: default: @@ -79,12 +79,12 @@ display: hide_empty: false default_field_elements: true fields: - name: - id: name - table: taxonomy_term_field_data - field: name - entity_type: taxonomy_term - entity_field: name + title: + id: title + table: node_field_data + field: title + entity_type: node + entity_field: title label: '' alter: alter_text: false @@ -97,10 +97,9 @@ display: html: false hide_empty: false empty_zero: false - type: string settings: link_to_entity: true - plugin_id: term_name + plugin_id: field relationship: none group_type: group admin_label: '' @@ -116,6 +115,7 @@ display: empty: '' hide_alter_empty: true click_sort_column: value + type: string group_column: value group_columns: { } group_rows: true @@ -126,14 +126,13 @@ display: multi_type: separator separator: ', ' field_api_classes: false - convert_spaces: false filters: status: value: '1' - table: taxonomy_term_field_data + table: node_field_data field: status plugin_id: boolean - entity_type: taxonomy_term + entity_type: node entity_field: status id: status expose: @@ -141,19 +140,33 @@ display: operator_limit_selection: false operator_list: { } group: 1 - vid: - id: vid - table: taxonomy_term_field_data - field: vid + type: + id: type + table: node_field_data + field: type value: - islandora_access: islandora_access - entity_type: taxonomy_term - entity_field: vid + collection_object: collection_object + entity_type: node + entity_field: type plugin_id: bundle expose: operator_limit_selection: false operator_list: { } - sorts: { } + sorts: + title: + id: title + table: node_field_data + field: title + order: ASC + entity_type: node + entity_field: title + plugin_id: standard + relationship: none + group_type: group + admin_label: '' + exposed: false + expose: + label: '' header: { } footer: { } empty: { } @@ -165,5 +178,6 @@ display: - 'languages:language_content' - 'languages:language_interface' - url.query_args + - 'user.node_grants:view' - user.permissions tags: { } diff --git a/codebase/config/sync/views.view.solr_search_content.yml b/codebase/config/sync/views.view.solr_search_content.yml index 5a5a0893f8..64a61e0e7d 100644 --- a/codebase/config/sync/views.view.solr_search_content.yml +++ b/codebase/config/sync/views.view.solr_search_content.yml @@ -4,8 +4,8 @@ status: true dependencies: config: - field.storage.node.field_abstract + - field.storage.node.field_access_control - field.storage.node.field_access_rights - - field.storage.node.field_access_terms - field.storage.node.field_alternative_title - field.storage.node.field_citable_url - field.storage.node.field_collection_contact_email @@ -901,12 +901,6 @@ display: table: search_api_index_default_solr_index field: field_abstract plugin_id: search_api_field - field_access_terms: - id: field_access_terms - table: search_api_datasource_default_solr_index_entity_node - field: field_access_terms - entity_type: node - plugin_id: search_api_field field_access_rights: id: field_access_rights table: search_api_datasource_default_solr_index_entity_node @@ -1184,7 +1178,6 @@ display: tags: - 'config:field.storage.node.field_abstract' - 'config:field.storage.node.field_access_rights' - - 'config:field.storage.node.field_access_terms' - 'config:field.storage.node.field_alternative_title' - 'config:field.storage.node.field_citable_url' - 'config:field.storage.node.field_collection_contact_name' @@ -1248,7 +1241,6 @@ display: tags: - 'config:field.storage.node.field_abstract' - 'config:field.storage.node.field_access_rights' - - 'config:field.storage.node.field_access_terms' - 'config:field.storage.node.field_alternative_title' - 'config:field.storage.node.field_citable_url' - 'config:field.storage.node.field_collection_contact_name' @@ -1642,119 +1634,6 @@ display: multi_separator: ', ' entity_type: node plugin_id: search_api_field - field_access_terms: - id: field_access_terms - table: search_api_datasource_default_solr_index_entity_node - field: field_access_terms - relationship: none - group_type: group - admin_label: '' - label: '' - exclude: false - alter: - alter_text: false - text: '' - make_link: false - path: '' - absolute: false - external: false - replace_spaces: false - path_case: none - trim_whitespace: false - alt: '' - rel: '' - link_class: '' - prefix: '' - suffix: '' - target: '' - nl2br: false - max_length: 0 - word_boundary: true - ellipsis: true - more_link: false - more_link_text: '' - more_link_path: '' - strip_tags: false - trim: false - preserve_tags: '' - html: false - element_type: '' - element_class: '' - element_label_type: '' - element_label_class: '' - element_label_colon: false - element_wrapper_type: '' - element_wrapper_class: '' - element_default_classes: true - empty: '' - hide_empty: false - empty_zero: false - hide_alter_empty: true - click_sort_column: target_id - type: entity_reference_label - settings: - link: true - group_column: target_id - group_columns: { } - group_rows: true - delta_limit: 0 - delta_offset: 0 - delta_reversed: false - delta_first_last: false - multi_type: separator - separator: ', ' - field_api_classes: false - field_rendering: true - fallback_handler: search_api_entity - fallback_options: - link_to_item: false - use_highlighting: false - multi_type: separator - multi_separator: ', ' - display_methods: - access_rights: - display_method: label - view_mode: default - copyright_and_use: - display_method: label - view_mode: default - corporate_body: - display_method: label - view_mode: default - family: - display_method: label - view_mode: default - genre: - display_method: label - view_mode: default - geo_location: - display_method: label - view_mode: default - islandora_access: - display_method: label - islandora_display: - display_method: label - view_mode: default - islandora_media_use: - display_method: label - view_mode: default - islandora_models: - display_method: label - view_mode: default - language: - display_method: label - view_mode: default - person: - display_method: label - view_mode: default - resource_types: - display_method: label - view_mode: default - subject: - display_method: label - view_mode: default - entity_type: node - plugin_id: search_api_field field_access_rights: id: field_access_rights table: search_api_datasource_default_solr_index_entity_node @@ -5624,6 +5503,119 @@ display: multi_separator: ', ' entity_type: node plugin_id: search_api_field + field_access_control: + id: field_access_control + table: search_api_datasource_default_solr_index_entity_node + field: field_access_control + relationship: none + group_type: group + admin_label: '' + label: '' + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: false + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: target_id + type: entity_reference_label + settings: + link: true + group_column: target_id + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + field_rendering: true + fallback_handler: search_api_entity + fallback_options: + link_to_item: false + use_highlighting: false + multi_type: separator + multi_separator: ', ' + display_methods: + access_rights: + display_method: label + view_mode: default + copyright_and_use: + display_method: label + view_mode: default + corporate_body: + display_method: label + view_mode: default + family: + display_method: label + view_mode: default + genre: + display_method: label + view_mode: default + geo_location: + display_method: label + view_mode: default + islandora_access: + display_method: label + islandora_display: + display_method: label + view_mode: default + islandora_media_use: + display_method: label + view_mode: default + islandora_models: + display_method: label + view_mode: default + language: + display_method: label + view_mode: default + person: + display_method: label + view_mode: default + resource_types: + display_method: label + view_mode: default + subject: + display_method: label + view_mode: default + entity_type: node + plugin_id: search_api_field field_collection_contact_email: id: field_collection_contact_email table: search_api_datasource_default_solr_index_entity_node @@ -5709,8 +5701,8 @@ display: - 'user.node_grants:view' tags: - 'config:field.storage.node.field_abstract' + - 'config:field.storage.node.field_access_control' - 'config:field.storage.node.field_access_rights' - - 'config:field.storage.node.field_access_terms' - 'config:field.storage.node.field_alternative_title' - 'config:field.storage.node.field_citable_url' - 'config:field.storage.node.field_collection_contact_email' diff --git a/codebase/config/sync/views.view.workbench_recent_content.yml b/codebase/config/sync/views.view.workbench_recent_content.yml index 05373e1547..af1a0f7b1d 100644 --- a/codebase/config/sync/views.view.workbench_recent_content.yml +++ b/codebase/config/sync/views.view.workbench_recent_content.yml @@ -4,7 +4,6 @@ status: true dependencies: config: - field.storage.node.field_access_control - - field.storage.node.field_access_terms module: - node - user @@ -1220,69 +1219,6 @@ display: separator: ', ' field_api_classes: false plugin_id: field - field_access_terms: - id: field_access_terms - table: node__field_access_terms - field: field_access_terms - relationship: none - group_type: group - admin_label: '' - label: 'Access Group' - exclude: false - alter: - alter_text: false - text: '' - make_link: false - path: '' - absolute: false - external: false - replace_spaces: false - path_case: none - trim_whitespace: false - alt: '' - rel: '' - link_class: '' - prefix: '' - suffix: '' - target: '' - nl2br: false - max_length: 0 - word_boundary: true - ellipsis: true - more_link: false - more_link_text: '' - more_link_path: '' - strip_tags: false - trim: false - preserve_tags: '' - html: false - element_type: '' - element_class: '' - element_label_type: '' - element_label_class: '' - element_label_colon: true - element_wrapper_type: '' - element_wrapper_class: '' - element_default_classes: true - empty: '' - hide_empty: false - empty_zero: false - hide_alter_empty: true - click_sort_column: target_id - type: entity_reference_label - settings: - link: true - group_column: target_id - group_columns: { } - group_rows: true - delta_limit: 0 - delta_offset: 0 - delta_reversed: false - delta_first_last: false - multi_type: separator - separator: ', ' - field_api_classes: false - plugin_id: field link_display: /admin/workbench/content/all header: area: @@ -1309,7 +1245,6 @@ display: - user.permissions tags: - 'config:field.storage.node.field_access_control' - - 'config:field.storage.node.field_access_terms' embed_1: display_plugin: embed id: embed_1 diff --git a/codebase/config/sync/workbench_access.access_scheme.collection.yml b/codebase/config/sync/workbench_access.access_scheme.collection.yml index 7c4ab0cc48..775d0ee6bd 100644 --- a/codebase/config/sync/workbench_access.access_scheme.collection.yml +++ b/codebase/config/sync/workbench_access.access_scheme.collection.yml @@ -11,11 +11,11 @@ dependencies: - field.field.media.remote_video.field_access_terms - field.field.media.video.field_access_terms - field.field.node.collection_object.field_access_control - - field.field.node.islandora_object.field_access_terms + - field.field.node.islandora_object.field_access_control - taxonomy.vocabulary.islandora_access id: collection -label: Collection -plural_label: Collections +label: Communities +plural_label: Communities scheme: taxonomy scheme_settings: vocabularies: @@ -51,9 +51,9 @@ scheme_settings: field: field_access_terms - entity_type: node - bundle: islandora_object - field: field_access_terms + bundle: collection_object + field: field_access_control - entity_type: node - bundle: collection_object + bundle: islandora_object field: field_access_control diff --git a/codebase/config/sync/workbench_access.settings.yml b/codebase/config/sync/workbench_access.settings.yml index 7560b27a4f..998d461f25 100644 --- a/codebase/config/sync/workbench_access.settings.yml +++ b/codebase/config/sync/workbench_access.settings.yml @@ -1,3 +1,3 @@ -deny_on_empty: true +deny_on_empty: false _core: default_config_hash: Y6xetsHwk8FUA3WQMga3J7Imf3wRlur5ALeppr16dJM From c193a452dc32bf2ea6f85fb75c06e58c0a3529a0 Mon Sep 17 00:00:00 2001 From: Bethany Seeger Date: Mon, 22 Mar 2021 13:46:49 -0400 Subject: [PATCH 4/9] Almost there. Tweaks a bunch of small things. --- codebase/composer.json | 1 - codebase/composer.lock | 79 +---------- ...display.node.collection_object.default.yml | 27 +++- ...display.node.collection_object.default.yml | 14 ++ ..._display.node.collection_object.teaser.yml | 7 + codebase/config/sync/core.extension.yml | 2 +- ...eld.node.collection_object.field_model.yml | 33 +++++ .../sync/field.storage.node.field_model.yml | 2 +- .../sync/user.role.collection_level_admin.yml | 1 + .../config/sync/user.role.global_admin.yml | 1 + codebase/config/sync/views.view.media_of.yml | 8 +- .../views.view.workbench_recent_content.yml | 134 +++++++++++++++++- .../sync/views.view.workbench_taxonomies.yml | 103 +++----------- .../config/sync/workbench_access.settings.yml | 2 +- 14 files changed, 234 insertions(+), 180 deletions(-) create mode 100644 codebase/config/sync/field.field.node.collection_object.field_model.yml diff --git a/codebase/composer.json b/codebase/composer.json index 88b8ef9816..fe5ef8e6cd 100644 --- a/codebase/composer.json +++ b/codebase/composer.json @@ -47,7 +47,6 @@ "drupal/admin_toolbar": "^2.0", "drupal/auto_entitylabel": "^3.0@beta", "drupal/captcha": "^1.1", - "drupal/conditional_fields": "^1.0@alpha", "drupal/console": "~1.0", "drupal/contact_ajax": "^1.5", "drupal/contact_block": "^1.5", diff --git a/codebase/composer.lock b/codebase/composer.lock index 1561c803e6..2ef78be230 100644 --- a/codebase/composer.lock +++ b/codebase/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "e0760a221aa4cd9a031a7c45f1f00ea8", + "content-hash": "cc1692073f96b6d0488c0deff318ebee", "packages": [ { "name": "alchemy/zippy", @@ -2405,82 +2405,6 @@ "issues": "https://www.drupal.org/project/issues/captcha" } }, - { - "name": "drupal/conditional_fields", - "version": "1.0.0-alpha10", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/conditional_fields.git", - "reference": "8.x-1.0-alpha10" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/conditional_fields-8.x-1.0-alpha10.zip", - "reference": "8.x-1.0-alpha10", - "shasum": "ac11881a07eaf3ce796dea1cb0e537434d1fbd3d" - }, - "require": { - "drupal/core": "^8 || ^9" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "8.x-1.0-alpha10", - "datestamp": "1610130227", - "security-coverage": { - "status": "not-covered", - "message": "Project has not opted into security advisory coverage!" - } - } - }, - "notification-url": "https://packages.drupal.org/8/downloads", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Adyax", - "homepage": "https://www.adyax.com/" - }, - { - "name": "OlgaRabodzei", - "homepage": "https://www.drupal.org/user/3389198" - }, - { - "name": "colan", - "homepage": "https://www.drupal.org/user/58704" - }, - { - "name": "ergonlogic", - "homepage": "https://www.drupal.org/user/368613" - }, - { - "name": "geek-merlin", - "homepage": "https://www.drupal.org/user/229048" - }, - { - "name": "itsekhmistro", - "homepage": "https://www.drupal.org/user/928152" - }, - { - "name": "mparker17", - "homepage": "https://www.drupal.org/user/536298" - }, - { - "name": "peterpoe", - "homepage": "https://www.drupal.org/user/55674" - }, - { - "name": "thalles", - "homepage": "https://www.drupal.org/user/3589086" - } - ], - "description": "Conditional fields", - "homepage": "https://www.drupal.org/project/conditional_fields", - "support": { - "source": "https://git.drupalcode.org/project/conditional_fields" - } - }, { "name": "drupal/config_update", "version": "1.7.0", @@ -16690,7 +16614,6 @@ "minimum-stability": "dev", "stability-flags": { "drupal/auto_entitylabel": 10, - "drupal/conditional_fields": 15, "drupal/content_browser": 15, "drupal/libraries": 20, "drupal/migrate_source_ui": 5, diff --git a/codebase/config/sync/core.entity_form_display.node.collection_object.default.yml b/codebase/config/sync/core.entity_form_display.node.collection_object.default.yml index 7737b16ba6..e94e5fb2b2 100644 --- a/codebase/config/sync/core.entity_form_display.node.collection_object.default.yml +++ b/codebase/config/sync/core.entity_form_display.node.collection_object.default.yml @@ -13,6 +13,7 @@ dependencies: - field.field.node.collection_object.field_featured_item - field.field.node.collection_object.field_finding_aid - field.field.node.collection_object.field_member_of + - field.field.node.collection_object.field_model - field.field.node.collection_object.field_title_language - node.type.collection_object module: @@ -25,12 +26,12 @@ mode: default content: created: type: datetime_timestamp - weight: 12 + weight: 13 region: content settings: { } third_party_settings: { } field_access_control: - weight: 14 + weight: 11 settings: { } third_party_settings: { } type: options_select @@ -102,9 +103,23 @@ content: region: content field_member_of: weight: 10 - settings: { } + settings: + match_operator: CONTAINS + match_limit: 10 + size: 60 + placeholder: '' third_party_settings: { } - type: options_select + type: entity_reference_autocomplete + region: content + field_model: + weight: 15 + settings: + match_operator: CONTAINS + match_limit: 10 + size: 60 + placeholder: '' + third_party_settings: { } + type: entity_reference_autocomplete region: content field_title_language: weight: 1 @@ -116,7 +131,7 @@ content: type: boolean_checkbox settings: display_label: true - weight: 13 + weight: 14 region: content third_party_settings: { } title: @@ -129,7 +144,7 @@ content: third_party_settings: { } uid: type: entity_reference_autocomplete - weight: 11 + weight: 12 settings: match_operator: CONTAINS size: 60 diff --git a/codebase/config/sync/core.entity_view_display.node.collection_object.default.yml b/codebase/config/sync/core.entity_view_display.node.collection_object.default.yml index f18a613951..27bd7282f1 100644 --- a/codebase/config/sync/core.entity_view_display.node.collection_object.default.yml +++ b/codebase/config/sync/core.entity_view_display.node.collection_object.default.yml @@ -13,6 +13,7 @@ dependencies: - field.field.node.collection_object.field_featured_item - field.field.node.collection_object.field_finding_aid - field.field.node.collection_object.field_member_of + - field.field.node.collection_object.field_model - field.field.node.collection_object.field_title_language - node.type.collection_object module: @@ -125,6 +126,14 @@ content: third_party_settings: { } type: entity_reference_label region: content + field_model: + weight: 101 + label: above + settings: + link: true + third_party_settings: { } + type: entity_reference_label + region: content field_title_language: weight: 5 label: above @@ -133,6 +142,11 @@ content: third_party_settings: { } type: entity_reference_label region: content + islandora_fits_checksum: + weight: 100 + settings: { } + third_party_settings: { } + region: content links: weight: 4 region: content diff --git a/codebase/config/sync/core.entity_view_display.node.collection_object.teaser.yml b/codebase/config/sync/core.entity_view_display.node.collection_object.teaser.yml index 479dd4b6bd..84e96d83d2 100644 --- a/codebase/config/sync/core.entity_view_display.node.collection_object.teaser.yml +++ b/codebase/config/sync/core.entity_view_display.node.collection_object.teaser.yml @@ -14,6 +14,7 @@ dependencies: - field.field.node.collection_object.field_featured_item - field.field.node.collection_object.field_finding_aid - field.field.node.collection_object.field_member_of + - field.field.node.collection_object.field_model - field.field.node.collection_object.field_title_language - node.type.collection_object module: @@ -41,6 +42,11 @@ content: rel: '' target: '' third_party_settings: { } + islandora_fits_checksum: + weight: 100 + settings: { } + third_party_settings: { } + region: content links: weight: 3 region: content @@ -59,6 +65,7 @@ hidden: field_featured_item: true field_finding_aid: true field_member_of: true + field_model: true field_title_language: true langcode: true openseadragon_media_evas_entity_view_1: true diff --git a/codebase/config/sync/core.extension.yml b/codebase/config/sync/core.extension.yml index 1c54755e2b..e502abd946 100644 --- a/codebase/config/sync/core.extension.yml +++ b/codebase/config/sync/core.extension.yml @@ -1,6 +1,7 @@ module: action: 0 admin_toolbar: 0 + admin_toolbar_links_access_filter: 0 automated_cron: 0 basic_auth: 0 big_pipe: 0 @@ -11,7 +12,6 @@ module: ckeditor: 0 color: 0 comment: 0 - conditional_fields: 0 config: 0 config_update: 0 contact: 0 diff --git a/codebase/config/sync/field.field.node.collection_object.field_model.yml b/codebase/config/sync/field.field.node.collection_object.field_model.yml new file mode 100644 index 0000000000..04896d54b5 --- /dev/null +++ b/codebase/config/sync/field.field.node.collection_object.field_model.yml @@ -0,0 +1,33 @@ +uuid: 958f6e3b-7796-4c0f-9b1e-c73963877f30 +langcode: en +status: true +dependencies: + config: + - field.storage.node.field_model + - node.type.collection_object + - taxonomy.vocabulary.islandora_models + content: + - 'taxonomy_term:islandora_models:e9ee0e3a-791b-4888-8ace-3c1529380dd1' +id: node.collection_object.field_model +field_name: field_model +entity_type: node +bundle: collection_object +label: Model +description: '' +required: false +translatable: true +default_value: + - + target_uuid: e9ee0e3a-791b-4888-8ace-3c1529380dd1 +default_value_callback: '' +settings: + handler: 'default:taxonomy_term' + handler_settings: + target_bundles: + islandora_models: islandora_models + sort: + field: name + direction: asc + auto_create: false + auto_create_bundle: '' +field_type: entity_reference diff --git a/codebase/config/sync/field.storage.node.field_model.yml b/codebase/config/sync/field.storage.node.field_model.yml index 4ef94d7374..9492e11741 100644 --- a/codebase/config/sync/field.storage.node.field_model.yml +++ b/codebase/config/sync/field.storage.node.field_model.yml @@ -8,7 +8,7 @@ dependencies: - taxonomy third_party_settings: field_permissions: - permission_type: public + permission_type: custom _core: default_config_hash: A_k0ZwrnLc07NfPad0ADTT6O09l691c3_s6Jztrphg0 id: node.field_model diff --git a/codebase/config/sync/user.role.collection_level_admin.yml b/codebase/config/sync/user.role.collection_level_admin.yml index 1e811ffce4..403ae68092 100644 --- a/codebase/config/sync/user.role.collection_level_admin.yml +++ b/codebase/config/sync/user.role.collection_level_admin.yml @@ -7,6 +7,7 @@ label: 'Collection Level Admin' weight: -8 is_admin: null permissions: + - 'access administration pages' - 'access media overview' - 'access migrate source ui' - 'access site reports' diff --git a/codebase/config/sync/user.role.global_admin.yml b/codebase/config/sync/user.role.global_admin.yml index b04a4e6837..622969adef 100644 --- a/codebase/config/sync/user.role.global_admin.yml +++ b/codebase/config/sync/user.role.global_admin.yml @@ -7,6 +7,7 @@ label: 'Global Admin' weight: -9 is_admin: null permissions: + - 'access administration pages' - 'access browse_content entity browser pages' - 'access browse_content_iframe entity browser pages' - 'access content overview' diff --git a/codebase/config/sync/views.view.media_of.yml b/codebase/config/sync/views.view.media_of.yml index af1c680139..94a80b1e57 100644 --- a/codebase/config/sync/views.view.media_of.yml +++ b/codebase/config/sync/views.view.media_of.yml @@ -480,7 +480,6 @@ display: - user.permissions tags: - 'config:field.storage.media.field_mime_type' - - extensions page_1: display_plugin: page id: page_1 @@ -928,6 +927,11 @@ display: plugin_id: entity_operations defaults: fields: false + tab_options: + type: none + title: '' + description: '' + weight: 0 cache_metadata: max-age: 0 contexts: @@ -939,7 +943,6 @@ display: tags: - 'config:field.storage.media.field_media_use' - 'config:field.storage.media.field_mime_type' - - extensions rest_export_1: display_plugin: rest_export id: rest_export_1 @@ -1234,4 +1237,3 @@ display: - user.permissions tags: - 'config:field.storage.media.field_mime_type' - - extensions diff --git a/codebase/config/sync/views.view.workbench_recent_content.yml b/codebase/config/sync/views.view.workbench_recent_content.yml index af1a0f7b1d..266868e3d4 100644 --- a/codebase/config/sync/views.view.workbench_recent_content.yml +++ b/codebase/config/sync/views.view.workbench_recent_content.yml @@ -4,6 +4,7 @@ status: true dependencies: config: - field.storage.node.field_access_control + - field.storage.node.field_member_of module: - node - user @@ -263,6 +264,69 @@ display: entity_type: node entity_field: type plugin_id: field + field_member_of: + id: field_member_of + table: node__field_member_of + field: field_member_of + relationship: none + group_type: group + admin_label: '' + label: Parent + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: target_id + type: entity_reference_label + settings: + link: true + group_column: target_id + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + plugin_id: field status: id: status table: node_field_data @@ -754,7 +818,8 @@ display: - user - 'user.node_grants:view' - user.permissions - tags: { } + tags: + - 'config:field.storage.node.field_member_of' block_1: display_plugin: block id: block_1 @@ -973,6 +1038,69 @@ display: entity_type: node entity_field: type plugin_id: field + field_member_of: + id: field_member_of + table: node__field_member_of + field: field_member_of + relationship: none + group_type: group + admin_label: '' + label: Parent + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: target_id + type: entity_reference_label + settings: + link: true + group_column: target_id + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + plugin_id: field name: id: name table: users_field_data @@ -1245,6 +1373,7 @@ display: - user.permissions tags: - 'config:field.storage.node.field_access_control' + - 'config:field.storage.node.field_member_of' embed_1: display_plugin: embed id: embed_1 @@ -1263,4 +1392,5 @@ display: - user - 'user.node_grants:view' - user.permissions - tags: { } + tags: + - 'config:field.storage.node.field_member_of' diff --git a/codebase/config/sync/views.view.workbench_taxonomies.yml b/codebase/config/sync/views.view.workbench_taxonomies.yml index 8e8dbcdf1d..904a3aa807 100644 --- a/codebase/config/sync/views.view.workbench_taxonomies.yml +++ b/codebase/config/sync/views.view.workbench_taxonomies.yml @@ -71,77 +71,14 @@ display: row_class: '' default_row_class: true row: - type: 'entity:taxonomy_term' + type: fields options: - relationship: none - view_mode: default - fields: - name: - id: name - table: taxonomy_term_field_data - field: name - relationship: none - group_type: group - admin_label: '' - label: '' - exclude: false - alter: - alter_text: false - text: '' - make_link: false - path: '' - absolute: false - external: false - replace_spaces: false - path_case: none - trim_whitespace: false - alt: '' - rel: '' - link_class: '' - prefix: '' - suffix: '' - target: '' - nl2br: false - max_length: 0 - word_boundary: true - ellipsis: true - more_link: false - more_link_text: '' - more_link_path: '' - strip_tags: false - trim: false - preserve_tags: '' - html: false - element_type: '' - element_class: '' - element_label_type: '' - element_label_class: '' - element_label_colon: false - element_wrapper_type: '' - element_wrapper_class: '' - element_default_classes: true - empty: '' + default_field_elements: true + inline: + vid: vid + separator: '' hide_empty: false - empty_zero: false - hide_alter_empty: true - click_sort_column: value - type: string - settings: - link_to_entity: false - group_column: value - group_columns: { } - group_rows: true - delta_limit: 0 - delta_offset: 0 - delta_reversed: false - delta_first_last: false - multi_type: separator - separator: ', ' - field_api_classes: false - convert_spaces: false - entity_type: taxonomy_term - entity_field: name - plugin_id: term_name + fields: vid: id: vid table: taxonomy_term_field_data @@ -150,7 +87,7 @@ display: group_type: group admin_label: '' label: '' - exclude: true + exclude: false alter: alter_text: false text: '' @@ -208,19 +145,6 @@ display: entity_field: vid plugin_id: field filters: - status: - value: '1' - table: taxonomy_term_field_data - field: status - plugin_id: boolean - entity_type: taxonomy_term - entity_field: status - id: status - expose: - operator: '' - operator_limit_selection: false - operator_list: { } - group: 1 vid: id: vid table: taxonomy_term_field_data @@ -243,19 +167,24 @@ display: group: 1 exposed: false expose: - operator_id: '' - label: '' + operator_id: vid_op + label: Vocabulary description: '' use_operator: false - operator: '' + operator: vid_op operator_limit_selection: false operator_list: { } - identifier: '' + identifier: vid required: false remember: false multiple: false remember_roles: authenticated: authenticated + administrator: '0' + global_admin: '0' + collection_level_admin: '0' + fedoraadmin: '0' + anonymous: '0' reduce: false is_grouped: false group_info: diff --git a/codebase/config/sync/workbench_access.settings.yml b/codebase/config/sync/workbench_access.settings.yml index 998d461f25..7560b27a4f 100644 --- a/codebase/config/sync/workbench_access.settings.yml +++ b/codebase/config/sync/workbench_access.settings.yml @@ -1,3 +1,3 @@ -deny_on_empty: false +deny_on_empty: true _core: default_config_hash: Y6xetsHwk8FUA3WQMga3J7Imf3wRlur5ALeppr16dJM From aa6d610ca9faa0ee50c70b75de90f042e2aaf83f Mon Sep 17 00:00:00 2001 From: Bethany Seeger Date: Thu, 25 Mar 2021 07:50:19 -0400 Subject: [PATCH 5/9] More tweaks --- codebase/composer.lock | 246 +++++++++++++++++- ...display.node.collection_object.default.yml | 8 +- ..._display.node.islandora_object.default.yml | 14 +- ...taxonomy_term.islandora_access.default.yml | 34 +++ ...taxonomy_term.islandora_access.default.yml | 23 ++ ...node.collection_object.field_member_of.yml | 13 +- ....node.islandora_object.field_member_of.yml | 15 +- .../config/sync/role_hierarchy.settings.yml | 2 +- .../sync/simplesamlphp_auth.settings.yml | 2 +- .../views.view.content_type_member_of.yml | 191 -------------- 10 files changed, 324 insertions(+), 224 deletions(-) create mode 100644 codebase/config/sync/core.entity_form_display.taxonomy_term.islandora_access.default.yml create mode 100644 codebase/config/sync/core.entity_view_display.taxonomy_term.islandora_access.default.yml delete mode 100644 codebase/config/sync/views.view.content_type_member_of.yml diff --git a/codebase/composer.lock b/codebase/composer.lock index 2ef78be230..afc2bafbda 100644 --- a/codebase/composer.lock +++ b/codebase/composer.lock @@ -1760,6 +1760,20 @@ "sqlserver", "sqlsrv" ], + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal", + "type": "tidelift" + } + ], "time": "2020-11-14T20:26:58+00:00" }, { @@ -4246,10 +4260,22 @@ "GPL-2.0-or-later" ], "authors": [ + { + "name": "benjifisher", + "homepage": "https://www.drupal.org/user/683300" + }, + { + "name": "bradjones1", + "homepage": "https://www.drupal.org/user/405824" + }, { "name": "jungle", "homepage": "https://www.drupal.org/user/2919723" }, + { + "name": "lhridley", + "homepage": "https://www.drupal.org/user/1223730" + }, { "name": "twistor", "homepage": "https://www.drupal.org/user/473738" @@ -4714,7 +4740,7 @@ }, "notification-url": "https://packages.drupal.org/8/downloads", "license": [ - "GPL-2.0+" + "GPL-2.0-or-later" ], "authors": [ { @@ -7101,12 +7127,12 @@ "source": { "type": "git", "url": "https://github.com/jhu-idc/islandora_defaults.git", - "reference": "e6a1083a7d7ea821dad45043fe1863127538d5af" + "reference": "4fbbc2d2f2d09aa9aebec1ecbd3bb5a5c1a7103d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jhu-idc/islandora_defaults/zipball/e6a1083a7d7ea821dad45043fe1863127538d5af", - "reference": "e6a1083a7d7ea821dad45043fe1863127538d5af", + "url": "https://api.github.com/repos/jhu-idc/islandora_defaults/zipball/4fbbc2d2f2d09aa9aebec1ecbd3bb5a5c1a7103d", + "reference": "4fbbc2d2f2d09aa9aebec1ecbd3bb5a5c1a7103d", "shasum": "" }, "require": { @@ -7132,7 +7158,7 @@ "issues": "https://github.com/jhu-idc/islandora_defaults/issues", "source": "https://github.com/jhu-idc/islandora_defaults/tree/8.x-1.x" }, - "time": "2021-03-17T14:28:23+00:00" + "time": "2021-03-24T20:22:40+00:00" }, { "name": "jhu-idc/reference_value_pair", @@ -7625,6 +7651,12 @@ "transform", "write" ], + "funding": [ + { + "url": "https://github.com/sponsors/nyamsprod", + "type": "github" + } + ], "time": "2020-09-05T08:40:12+00:00" }, { @@ -7710,6 +7742,12 @@ "sftp", "storage" ], + "funding": [ + { + "url": "https://offset.earth/frankdejonge", + "type": "other" + } + ], "time": "2020-08-23T07:39:11+00:00" }, { @@ -7797,6 +7835,16 @@ } ], "description": "Mime-type detection for Flysystem", + "funding": [ + { + "url": "https://github.com/frankdejonge", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/flysystem", + "type": "tidelift" + } + ], "time": "2020-10-18T11:50:25+00:00" }, { @@ -8091,6 +8139,16 @@ "logging", "psr-3" ], + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], "time": "2020-12-14T12:56:38+00:00" }, { @@ -11131,6 +11189,16 @@ "rabbitmq", "stomp" ], + "funding": [ + { + "url": "https://github.com/jmglsn", + "type": "github" + }, + { + "url": "https://github.com/staabm", + "type": "github" + } + ], "time": "2020-06-15T18:01:49+00:00" }, { @@ -11670,6 +11738,20 @@ ], "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], "time": "2020-09-07T11:33:47+00:00" }, { @@ -12073,6 +12155,20 @@ "symfony", "words" ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], "time": "2020-10-24T12:01:57+00:00" }, { @@ -12135,6 +12231,20 @@ "polyfill", "portable" ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], "time": "2021-01-07T16:49:33+00:00" }, { @@ -12262,6 +12372,20 @@ "portable", "shim" ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], "time": "2020-10-23T14:02:19+00:00" }, { @@ -12332,6 +12456,20 @@ "portable", "shim" ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], "time": "2021-01-07T16:49:33+00:00" }, { @@ -12399,6 +12537,20 @@ "portable", "shim" ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], "time": "2021-01-07T17:09:11+00:00" }, { @@ -12462,6 +12614,20 @@ "portable", "shim" ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], "time": "2021-01-07T16:49:33+00:00" }, { @@ -12623,6 +12789,20 @@ "portable", "shim" ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], "time": "2021-01-07T16:49:33+00:00" }, { @@ -12689,6 +12869,20 @@ "portable", "shim" ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], "time": "2020-10-23T14:02:19+00:00" }, { @@ -12795,6 +12989,20 @@ "property path", "reflection" ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], "time": "2020-10-31T22:44:29+00:00" }, { @@ -13009,6 +13217,20 @@ ], "description": "Symfony Security Component", "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], "time": "2020-10-28T05:23:51+00:00" }, { @@ -13149,6 +13371,20 @@ "utf-8", "utf8" ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], "time": "2020-10-24T12:08:07+00:00" }, { diff --git a/codebase/config/sync/core.entity_form_display.node.collection_object.default.yml b/codebase/config/sync/core.entity_form_display.node.collection_object.default.yml index e94e5fb2b2..17e6e4f00a 100644 --- a/codebase/config/sync/core.entity_form_display.node.collection_object.default.yml +++ b/codebase/config/sync/core.entity_form_display.node.collection_object.default.yml @@ -103,13 +103,9 @@ content: region: content field_member_of: weight: 10 - settings: - match_operator: CONTAINS - match_limit: 10 - size: 60 - placeholder: '' + settings: { } third_party_settings: { } - type: entity_reference_autocomplete + type: options_select region: content field_model: weight: 15 diff --git a/codebase/config/sync/core.entity_form_display.node.islandora_object.default.yml b/codebase/config/sync/core.entity_form_display.node.islandora_object.default.yml index 40259c75b7..5e5a0f92de 100644 --- a/codebase/config/sync/core.entity_form_display.node.islandora_object.default.yml +++ b/codebase/config/sync/core.entity_form_display.node.islandora_object.default.yml @@ -61,7 +61,7 @@ third_party_settings: children: - field_model - field_member_of - - langcode + - field_access_control - field_display_hints - field_weight parent_name: '' @@ -227,7 +227,7 @@ content: type: reference_value_select region: content field_access_control: - weight: 69 + weight: 10 settings: match_operator: CONTAINS match_limit: 10 @@ -580,7 +580,7 @@ content: type: options_select region: content field_weight: - weight: 13 + weight: 12 settings: placeholder: '' third_party_settings: { } @@ -595,13 +595,6 @@ content: third_party_settings: { } type: edtf_default region: content - langcode: - type: language_select - weight: 10 - region: content - settings: - include_locked: true - third_party_settings: { } status: type: boolean_checkbox settings: @@ -628,6 +621,7 @@ content: match_limit: 10 third_party_settings: { } hidden: + langcode: true path: true promote: true sticky: true diff --git a/codebase/config/sync/core.entity_form_display.taxonomy_term.islandora_access.default.yml b/codebase/config/sync/core.entity_form_display.taxonomy_term.islandora_access.default.yml new file mode 100644 index 0000000000..0d87898578 --- /dev/null +++ b/codebase/config/sync/core.entity_form_display.taxonomy_term.islandora_access.default.yml @@ -0,0 +1,34 @@ +uuid: 60e06ae4-0b0d-46bd-9b0a-b214bc8bae21 +langcode: en +status: true +dependencies: + config: + - taxonomy.vocabulary.islandora_access + module: + - text +id: taxonomy_term.islandora_access.default +targetEntityType: taxonomy_term +bundle: islandora_access +mode: default +content: + description: + type: text_textarea + weight: 1 + region: content + settings: + placeholder: '' + rows: 5 + third_party_settings: { } + name: + type: string_textfield + weight: 0 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } +hidden: + langcode: true + path: true + status: true + translation: true diff --git a/codebase/config/sync/core.entity_view_display.taxonomy_term.islandora_access.default.yml b/codebase/config/sync/core.entity_view_display.taxonomy_term.islandora_access.default.yml new file mode 100644 index 0000000000..1122054c74 --- /dev/null +++ b/codebase/config/sync/core.entity_view_display.taxonomy_term.islandora_access.default.yml @@ -0,0 +1,23 @@ +uuid: d1633c2a-6d57-41d6-b1b6-c8025fe5fd0e +langcode: en +status: true +dependencies: + config: + - taxonomy.vocabulary.islandora_access + module: + - text +id: taxonomy_term.islandora_access.default +targetEntityType: taxonomy_term +bundle: islandora_access +mode: default +content: + description: + label: hidden + type: text_default + weight: 0 + region: content + settings: { } + third_party_settings: { } +hidden: + langcode: true + search_api_excerpt: true diff --git a/codebase/config/sync/field.field.node.collection_object.field_member_of.yml b/codebase/config/sync/field.field.node.collection_object.field_member_of.yml index ab32698084..509618c0b0 100644 --- a/codebase/config/sync/field.field.node.collection_object.field_member_of.yml +++ b/codebase/config/sync/field.field.node.collection_object.field_member_of.yml @@ -16,10 +16,13 @@ translatable: true default_value: { } default_value_callback: '' settings: - handler: views + handler: 'default:node' handler_settings: - view: - view_name: content_type_member_of - display_name: entity_reference_1 - arguments: { } + target_bundles: + collection_object: collection_object + sort: + field: title + direction: ASC + auto_create: false + auto_create_bundle: collection_object field_type: entity_reference diff --git a/codebase/config/sync/field.field.node.islandora_object.field_member_of.yml b/codebase/config/sync/field.field.node.islandora_object.field_member_of.yml index d4fdb9573d..33391ec542 100644 --- a/codebase/config/sync/field.field.node.islandora_object.field_member_of.yml +++ b/codebase/config/sync/field.field.node.islandora_object.field_member_of.yml @@ -4,6 +4,7 @@ status: true dependencies: config: - field.storage.node.field_member_of + - node.type.collection_object - node.type.islandora_object enforced: module: @@ -21,10 +22,14 @@ translatable: false default_value: { } default_value_callback: '' settings: - handler: views + handler: 'default:node' handler_settings: - view: - view_name: content_type_member_of - display_name: entity_reference_1 - arguments: { } + target_bundles: + collection_object: collection_object + islandora_object: islandora_object + sort: + field: title + direction: ASC + auto_create: false + auto_create_bundle: collection_object field_type: entity_reference diff --git a/codebase/config/sync/role_hierarchy.settings.yml b/codebase/config/sync/role_hierarchy.settings.yml index 96c79a8387..7a7636608e 100644 --- a/codebase/config/sync/role_hierarchy.settings.yml +++ b/codebase/config/sync/role_hierarchy.settings.yml @@ -1,6 +1,6 @@ strict: 0 non_hierarchical_roles: - administrator: administrator + administrator: 0 global_admin: 0 collection_level_admin: 0 fedoraadmin: 0 diff --git a/codebase/config/sync/simplesamlphp_auth.settings.yml b/codebase/config/sync/simplesamlphp_auth.settings.yml index 172cc3db9b..3f88813b2d 100644 --- a/codebase/config/sync/simplesamlphp_auth.settings.yml +++ b/codebase/config/sync/simplesamlphp_auth.settings.yml @@ -8,7 +8,7 @@ login_link_show: true login_link_display_name: 'Federated login' header_no_cache: false role: - population: 'staff:eduPersonAffiliation,~=,STAFF' + population: 'global_admin:eduPersonPrincipalName,=,staff1@johnshopkins.edu|collection_level_admin:eduPersonPrincipalName,=,staff2@johnshopkins.edu' eval_every_time: true register_users: true allow: diff --git a/codebase/config/sync/views.view.content_type_member_of.yml b/codebase/config/sync/views.view.content_type_member_of.yml deleted file mode 100644 index 40298ab69a..0000000000 --- a/codebase/config/sync/views.view.content_type_member_of.yml +++ /dev/null @@ -1,191 +0,0 @@ -uuid: 597dff21-e9e8-459a-a058-60422b46723b -langcode: en -status: true -dependencies: - module: - - node - - user -id: content_type_member_of -label: 'Content Type member_of' -module: views -description: '' -tag: '' -base_table: node_field_data -base_field: nid -display: - default: - display_plugin: default - id: default - display_title: Master - position: 0 - display_options: - access: - type: perm - options: - perm: 'edit any collection_object content' - cache: - type: tag - options: { } - query: - type: views_query - options: - disable_sql_rewrite: false - distinct: false - replica: false - query_comment: '' - query_tags: { } - exposed_form: - type: basic - options: - submit_button: Apply - reset_button: false - reset_button_label: Reset - exposed_sorts_label: 'Sort by' - expose_sort_order: true - sort_asc_label: Asc - sort_desc_label: Desc - pager: - type: mini - options: - items_per_page: 10 - offset: 0 - id: 0 - total_pages: null - expose: - items_per_page: false - items_per_page_label: 'Items per page' - items_per_page_options: '5, 10, 25, 50' - items_per_page_options_all: false - items_per_page_options_all_label: '- All -' - offset: false - offset_label: Offset - tags: - previous: ‹‹ - next: ›› - style: - type: default - options: - grouping: { } - row_class: '' - default_row_class: true - uses_fields: false - row: - type: fields - options: - inline: { } - separator: '' - hide_empty: false - default_field_elements: true - fields: - title: - id: title - table: node_field_data - field: title - entity_type: node - entity_field: title - label: '' - alter: - alter_text: false - make_link: false - absolute: false - trim: false - word_boundary: false - ellipsis: false - strip_tags: false - html: false - hide_empty: false - empty_zero: false - settings: - link_to_entity: true - plugin_id: field - relationship: none - group_type: group - admin_label: '' - exclude: false - element_type: '' - element_class: '' - element_label_type: '' - element_label_class: '' - element_label_colon: true - element_wrapper_type: '' - element_wrapper_class: '' - element_default_classes: true - empty: '' - hide_alter_empty: true - click_sort_column: value - type: string - group_column: value - group_columns: { } - group_rows: true - delta_limit: 0 - delta_offset: 0 - delta_reversed: false - delta_first_last: false - multi_type: separator - separator: ', ' - field_api_classes: false - filters: - status: - value: '1' - table: node_field_data - field: status - plugin_id: boolean - entity_type: node - entity_field: status - id: status - expose: - operator: '' - operator_limit_selection: false - operator_list: { } - group: 1 - sorts: - created: - id: created - table: node_field_data - field: created - order: DESC - entity_type: node - entity_field: created - plugin_id: date - relationship: none - group_type: group - admin_label: '' - exposed: false - expose: - label: '' - granularity: second - header: { } - footer: { } - empty: { } - relationships: { } - arguments: { } - display_extenders: { } - cache_metadata: - max-age: -1 - contexts: - - 'languages:language_content' - - 'languages:language_interface' - - url.query_args - - 'user.node_grants:view' - - user.permissions - tags: { } - entity_reference_1: - display_plugin: entity_reference - id: entity_reference_1 - display_title: 'Entity Reference' - position: 1 - display_options: - display_extenders: { } - style: - type: entity_reference - options: - search_fields: - title: title - cache_metadata: - max-age: -1 - contexts: - - 'languages:language_content' - - 'languages:language_interface' - - 'user.node_grants:view' - - user.permissions - tags: { } From a0789bfd9882853ee4c8b04a406574ac20c2bdd5 Mon Sep 17 00:00:00 2001 From: Bethany Seeger Date: Thu, 25 Mar 2021 07:51:16 -0400 Subject: [PATCH 6/9] Removed bad file. --- ' | 81 --------------------------------------------------------------- 1 file changed, 81 deletions(-) delete mode 100644 ' diff --git a/' b/' deleted file mode 100644 index d77ab9fee1..0000000000 --- a/' +++ /dev/null @@ -1,81 +0,0 @@ -# Environment variables defined in this file apply to both the Makefile and to -# docker-compose.yml -# -# Due to restrictions in the `env-file` format we cannot specify multi-line -# values for environment variables. For this reason the environment -# variables are set on service definitions in the docker-compose.*.yml files, -# rather than defined in `env-file` files. - -# Determines which docker-compose file(s) will be used for the `drupal` service. -# See documentation for more details. -ENVIRONMENT=local - -REQUIRED_SERIVCES=activemq alpaca cantaloupe idc-crayfish crayfits drupal mariadb solr idc-snapshot testcafe -############################################################################### -# Environment variables specific to composer. -############################################################################### -COMPOSE_HTTP_TIMEOUT=480 - -# Also used for naming services in traefik as well as defining network alias and urls. -# For example the `drupal` service will be found at `islandora.${COMPOSE_PROJECT_NAME}.${DRUPAL_SITE_HOST}`. -# See https://docs.docker.com/compose/reference/envvars/ -COMPOSE_PROJECT_NAME=idc - -# If you are running locally, leave this. traefik.me resolves to localhost. -# If you are deploying to a remote server and you own a domain for it, place it here. -# If you have an IP but no domain, change this to X-X-X-X.traefik.me, where X-X-X-X -# is your IP address but with hyphens instead of dots. -DRUPAL_SITE_HOST=traefik.me - -# Allows building custom image with buildkit. -COMPOSE_DOCKER_CLI_BUILD=1 -DOCKER_BUILDKIT=1 - -# Dockerfile to use when building the custom project. -PROJECT_DRUPAL_DOCKERFILE=Dockerfile - -# Includes `traefik` as a service, if false assume we are sharing a traefik -# from another project. -INCLUDE_TRAEFIK_SERVICE=true - -# Includes `watchtower` as a service. -INCLUDE_WATCHTOWER_SERVICE=false - -# Includes `etcd` as a service. -INCLUDE_ETCD_SERVICE=false - -# Include SAML-related services. -INCLUDE_SAML_SERVICE=true - -# Choose which database backend to use: mariadb/postgresql -# Services that only support MySQL (Matomo) do not have the option to change. -# Also at this time not all Drupal modules work with PostgresSQL, it is provided -# as option here so it can be tested and fixed at some later date. -DRUPAL_DATABASE_SERVICE=mariadb -FCREPO_DATABASE_SERVICE=mariadb -GEMINI_DATABASE_SERVICE=mariadb - -# Root database password -MYSQL_ROOT_PASSWORD=password - -# Repository to use for pulling isle-buildkit images, change to `local` -# To use images you have built locally with isle-buildkit, or use your -# custom docker registry if you have set up one. -# -REPOSITORY=ghcr.io/jhu-sheridan-libraries/idc-isle-dc - -# The version of the isle-buildkit images, non isle-buildkit images have -# their versions specified explicitly in their respective docker-compose files. -TAG=upstream-20200824-f8d1e8e-23-g9fe79fc - -# Docker image and tag for snapshot image -SNAPSHOT_TAG=upstream-20201007-739693ae-227-gc04a62b0.1616075568 - -# IdP, SP entity URIs and base URLs -SP_BASEURL=https://islandora-idc.traefik.me -SP_ENTITYID=https://islandora-idc.traefik.me/sp/shibboleth -IDP_BASEURL=https://islandora-idp.traefik.me:4443 -IDP_ENTITYID=https://islandora-idp.traefik.me/idp/shibboleth - -# DB params -DRUPAL_DEFAULT_DB_PASSWORD=password From 9a58e4a00d311eaefd81cb82cd1d61c9515bf180 Mon Sep 17 00:00:00 2001 From: Bethany Seeger Date: Mon, 5 Apr 2021 08:22:51 -0400 Subject: [PATCH 7/9] Adds tests. They are a WIP though. --- codebase/composer.json | 2 + codebase/composer.lock | 46 +- ...display.node.collection_object.default.yml | 14 +- ..._display.node.islandora_object.default.yml | 28 +- ...display.node.collection_object.default.yml | 6 +- ..._display.node.collection_object.teaser.yml | 4 +- ...w_display.node.islandora_object.binary.yml | 4 +- ..._display.node.islandora_object.default.yml | 10 +- ...y.node.islandora_object.open_seadragon.yml | 4 +- ...ew_display.node.islandora_object.pdfjs.yml | 4 +- ...w_display.node.islandora_object.teaser.yml | 4 +- ...view_display.node.page.content_browser.yml | 50 +++ ....entity_view_display.node.page.default.yml | 50 +++ ...e.entity_view_display.node.page.teaser.yml | 50 +++ codebase/config/sync/core.extension.yml | 1 + .../core.menu.static_menu_link_overrides.yml | 6 + ....collection_object.field_access_terms.yml} | 18 +- ...node.collection_object.field_member_of.yml | 10 +- ...e.islandora_object.field_access_terms.yml} | 16 +- ....node.islandora_object.field_member_of.yml | 10 +- ...xonomy_term.geo_location.field_broader.yml | 9 +- ...field.storage.node.field_access_terms.yml} | 6 +- ...us.migration.idc_ingest_new_collection.yml | 15 + ...te_plus.migration.idc_ingest_new_items.yml | 392 ++++++++++++------ ..._ingest_taxonomy_islandora_accessterms.yml | 38 ++ .../taxonomy.vocabulary.islandora_access.yml | 2 +- .../sync/user.role.collection_level_admin.yml | 5 + .../config/sync/user.role.global_admin.yml | 2 + .../sync/views.view.solr_search_content.yml | 115 ----- .../views.view.workbench_current_user.yml | 2 +- .../sync/views.view.workbench_edited.yml | 2 +- .../views.view.workbench_recent_content.yml | 67 +-- codebase/config/sync/workbench.settings.yml | 2 +- ...kbench_access.access_scheme.collection.yml | 12 +- .../testcafe/migrate_tests.spec.js | 15 + .../testcafe/migrations/accessterms.csv | 8 + .../testcafe/migrations/collection-01.csv | 6 +- .../testcafe/migrations/collection-02.csv | 6 +- .../islandora_object-accessterms.csv | 4 + .../islandora_object-collections.csv | 6 +- .../testcafe/migrations/islandora_object.csv | 2 +- .../verification/expected/collection-01.json | 5 +- .../verification/expected/collection-02.json | 5 +- .../verification/expected/item-01.json | 4 + .../expected/taxonomy-accessterms-01.json | 10 + .../expected/taxonomy-accessterms-02.json | 13 + .../verification/expected_json_types_test.go | 17 +- .../verification/jsonapi_types_test.go | 32 +- .../verification/verify_migrations_test.go | 171 ++++++-- 49 files changed, 871 insertions(+), 439 deletions(-) rename codebase/config/sync/{field.field.node.collection_object.field_access_control.yml => field.field.node.collection_object.field_access_terms.yml} (64%) rename codebase/config/sync/{field.field.node.islandora_object.field_access_control.yml => field.field.node.islandora_object.field_access_terms.yml} (66%) rename codebase/config/sync/{field.storage.node.field_access_control.yml => field.storage.node.field_access_terms.yml} (78%) create mode 100644 codebase/config/sync/migrate_plus.migration.idc_ingest_taxonomy_islandora_accessterms.yml create mode 100644 tests/10-migration-backend-tests/testcafe/migrations/accessterms.csv create mode 100644 tests/10-migration-backend-tests/testcafe/migrations/islandora_object-accessterms.csv create mode 100644 tests/10-migration-backend-tests/verification/expected/taxonomy-accessterms-01.json create mode 100644 tests/10-migration-backend-tests/verification/expected/taxonomy-accessterms-02.json diff --git a/codebase/composer.json b/codebase/composer.json index fe5ef8e6cd..bd3b170af4 100644 --- a/codebase/composer.json +++ b/codebase/composer.json @@ -56,6 +56,8 @@ "drupal/core": "^8.9.13", "drupal/core-composer-scaffold": "^8.9.13", "drupal/devel": "^2.0", + "drupal/embed": "^1.4", + "drupal/entity_reference_unpublished": "^1.2", "drupal/epp": "^1.0", "drupal/facets": "^1.3", "drupal/libraries": "3.x-dev@dev", diff --git a/codebase/composer.lock b/codebase/composer.lock index afc2bafbda..056b897042 100644 --- a/codebase/composer.lock +++ b/codebase/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "cc1692073f96b6d0488c0deff318ebee", + "content-hash": "69c4b74f8ed53e6c92f9fce0fabc884d", "packages": [ { "name": "alchemy/zippy", @@ -3680,6 +3680,50 @@ "irc": "irc://irc.freenode.org/drupal-media" } }, + { + "name": "drupal/entity_reference_unpublished", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/entity_reference_unpublished.git", + "reference": "8.x-1.2" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/entity_reference_unpublished-8.x-1.2.zip", + "reference": "8.x-1.2", + "shasum": "a0685c19126506cda83cb2becb7cfa6c51b2bd1c" + }, + "require": { + "drupal/core": "^8 || ^9" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "8.x-1.2", + "datestamp": "1589564667", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "lahoosascoots", + "homepage": "https://www.drupal.org/user/1933614" + } + ], + "description": "Allows unpublished content to be referenced in an entity reference.", + "homepage": "https://www.drupal.org/project/entity_reference_unpublished", + "support": { + "source": "https://git.drupalcode.org/project/entity_reference_unpublished" + } + }, { "name": "drupal/epp", "version": "1.0.0", diff --git a/codebase/config/sync/core.entity_form_display.node.collection_object.default.yml b/codebase/config/sync/core.entity_form_display.node.collection_object.default.yml index 17e6e4f00a..fc2940b91c 100644 --- a/codebase/config/sync/core.entity_form_display.node.collection_object.default.yml +++ b/codebase/config/sync/core.entity_form_display.node.collection_object.default.yml @@ -3,7 +3,7 @@ langcode: en status: true dependencies: config: - - field.field.node.collection_object.field_access_control + - field.field.node.collection_object.field_access_terms - field.field.node.collection_object.field_alternative_title - field.field.node.collection_object.field_citable_url - field.field.node.collection_object.field_collection_contact_email @@ -30,8 +30,8 @@ content: region: content settings: { } third_party_settings: { } - field_access_control: - weight: 11 + field_access_terms: + weight: 26 settings: { } third_party_settings: { } type: options_select @@ -103,9 +103,13 @@ content: region: content field_member_of: weight: 10 - settings: { } + settings: + match_operator: CONTAINS + match_limit: 10 + size: 60 + placeholder: '' third_party_settings: { } - type: options_select + type: entity_reference_autocomplete region: content field_model: weight: 15 diff --git a/codebase/config/sync/core.entity_form_display.node.islandora_object.default.yml b/codebase/config/sync/core.entity_form_display.node.islandora_object.default.yml index 5e5a0f92de..cbe7b967aa 100644 --- a/codebase/config/sync/core.entity_form_display.node.islandora_object.default.yml +++ b/codebase/config/sync/core.entity_form_display.node.islandora_object.default.yml @@ -4,8 +4,8 @@ status: true dependencies: config: - field.field.node.islandora_object.field_abstract - - field.field.node.islandora_object.field_access_control - field.field.node.islandora_object.field_access_rights + - field.field.node.islandora_object.field_access_terms - field.field.node.islandora_object.field_alternative_title - field.field.node.islandora_object.field_citable_url - field.field.node.islandora_object.field_collection_number @@ -61,7 +61,7 @@ third_party_settings: children: - field_model - field_member_of - - field_access_control + - field_access_terms - field_display_hints - field_weight parent_name: '' @@ -226,22 +226,18 @@ content: third_party_settings: { } type: reference_value_select region: content - field_access_control: - weight: 10 - settings: - match_operator: CONTAINS - match_limit: 10 - size: 60 - placeholder: '' - third_party_settings: { } - type: entity_reference_autocomplete - region: content field_access_rights: weight: 59 settings: { } third_party_settings: { } type: options_buttons region: content + field_access_terms: + weight: 10 + settings: { } + third_party_settings: { } + type: options_select + region: content field_alternative_title: weight: 15 settings: @@ -480,10 +476,14 @@ content: type: link_default region: content field_member_of: - type: options_select + type: entity_reference_autocomplete weight: 9 region: content - settings: { } + settings: + match_operator: CONTAINS + match_limit: 10 + size: 60 + placeholder: '' third_party_settings: conditional_fields: 4f370f9a-983c-415f-9f05-684f9a7369fb: diff --git a/codebase/config/sync/core.entity_view_display.node.collection_object.default.yml b/codebase/config/sync/core.entity_view_display.node.collection_object.default.yml index 27bd7282f1..0625b7e813 100644 --- a/codebase/config/sync/core.entity_view_display.node.collection_object.default.yml +++ b/codebase/config/sync/core.entity_view_display.node.collection_object.default.yml @@ -3,7 +3,7 @@ langcode: en status: true dependencies: config: - - field.field.node.collection_object.field_access_control + - field.field.node.collection_object.field_access_terms - field.field.node.collection_object.field_alternative_title - field.field.node.collection_object.field_citable_url - field.field.node.collection_object.field_collection_contact_email @@ -35,8 +35,8 @@ content: region: content settings: { } third_party_settings: { } - field_access_control: - weight: 16 + field_access_terms: + weight: 102 label: above settings: link: true diff --git a/codebase/config/sync/core.entity_view_display.node.collection_object.teaser.yml b/codebase/config/sync/core.entity_view_display.node.collection_object.teaser.yml index 84e96d83d2..faeed4b1ac 100644 --- a/codebase/config/sync/core.entity_view_display.node.collection_object.teaser.yml +++ b/codebase/config/sync/core.entity_view_display.node.collection_object.teaser.yml @@ -4,7 +4,7 @@ status: true dependencies: config: - core.entity_view_mode.node.teaser - - field.field.node.collection_object.field_access_control + - field.field.node.collection_object.field_access_terms - field.field.node.collection_object.field_alternative_title - field.field.node.collection_object.field_citable_url - field.field.node.collection_object.field_collection_contact_email @@ -56,7 +56,7 @@ hidden: display_media_entity_view_1: true display_media_entity_view_2: true display_media_service_file: true - field_access_control: true + field_access_terms: true field_alternative_title: true field_collection_contact_email: true field_collection_contact_name: true diff --git a/codebase/config/sync/core.entity_view_display.node.islandora_object.binary.yml b/codebase/config/sync/core.entity_view_display.node.islandora_object.binary.yml index 182fd2376c..5bd0f2b070 100644 --- a/codebase/config/sync/core.entity_view_display.node.islandora_object.binary.yml +++ b/codebase/config/sync/core.entity_view_display.node.islandora_object.binary.yml @@ -5,8 +5,8 @@ dependencies: config: - core.entity_view_mode.node.binary - field.field.node.islandora_object.field_abstract - - field.field.node.islandora_object.field_access_control - field.field.node.islandora_object.field_access_rights + - field.field.node.islandora_object.field_access_terms - field.field.node.islandora_object.field_alternative_title - field.field.node.islandora_object.field_citable_url - field.field.node.islandora_object.field_collection_number @@ -138,8 +138,8 @@ hidden: display_media_service_file: true display_media_thumbnail: true field_abstract: true - field_access_control: true field_access_rights: true + field_access_terms: true field_alternative_title: true field_citable_url: true field_collection_number: true diff --git a/codebase/config/sync/core.entity_view_display.node.islandora_object.default.yml b/codebase/config/sync/core.entity_view_display.node.islandora_object.default.yml index 493ca3a3e8..f3572a185e 100644 --- a/codebase/config/sync/core.entity_view_display.node.islandora_object.default.yml +++ b/codebase/config/sync/core.entity_view_display.node.islandora_object.default.yml @@ -4,8 +4,8 @@ status: true dependencies: config: - field.field.node.islandora_object.field_abstract - - field.field.node.islandora_object.field_access_control - field.field.node.islandora_object.field_access_rights + - field.field.node.islandora_object.field_access_terms - field.field.node.islandora_object.field_alternative_title - field.field.node.islandora_object.field_citable_url - field.field.node.islandora_object.field_collection_number @@ -76,16 +76,16 @@ content: third_party_settings: { } type: reference_value_formatter region: content - field_access_control: - weight: 42 + field_access_rights: + weight: 15 label: above settings: link: true third_party_settings: { } type: entity_reference_label region: content - field_access_rights: - weight: 15 + field_access_terms: + weight: 42 label: above settings: link: true diff --git a/codebase/config/sync/core.entity_view_display.node.islandora_object.open_seadragon.yml b/codebase/config/sync/core.entity_view_display.node.islandora_object.open_seadragon.yml index be385cf1f5..8aec3a5375 100644 --- a/codebase/config/sync/core.entity_view_display.node.islandora_object.open_seadragon.yml +++ b/codebase/config/sync/core.entity_view_display.node.islandora_object.open_seadragon.yml @@ -5,8 +5,8 @@ dependencies: config: - core.entity_view_mode.node.open_seadragon - field.field.node.islandora_object.field_abstract - - field.field.node.islandora_object.field_access_control - field.field.node.islandora_object.field_access_rights + - field.field.node.islandora_object.field_access_terms - field.field.node.islandora_object.field_alternative_title - field.field.node.islandora_object.field_citable_url - field.field.node.islandora_object.field_collection_number @@ -434,7 +434,7 @@ hidden: display_media_entity_view_2: true display_media_service_file: true display_media_thumbnail: true - field_access_control: true + field_access_terms: true field_display_hints: true field_dspace_identifier: true field_dspace_item_id: true diff --git a/codebase/config/sync/core.entity_view_display.node.islandora_object.pdfjs.yml b/codebase/config/sync/core.entity_view_display.node.islandora_object.pdfjs.yml index 09f9070e3d..ff8a98b935 100644 --- a/codebase/config/sync/core.entity_view_display.node.islandora_object.pdfjs.yml +++ b/codebase/config/sync/core.entity_view_display.node.islandora_object.pdfjs.yml @@ -5,8 +5,8 @@ dependencies: config: - core.entity_view_mode.node.pdfjs - field.field.node.islandora_object.field_abstract - - field.field.node.islandora_object.field_access_control - field.field.node.islandora_object.field_access_rights + - field.field.node.islandora_object.field_access_terms - field.field.node.islandora_object.field_alternative_title - field.field.node.islandora_object.field_citable_url - field.field.node.islandora_object.field_collection_number @@ -134,8 +134,8 @@ hidden: display_media_service_file: true display_media_thumbnail: true field_abstract: true - field_access_control: true field_access_rights: true + field_access_terms: true field_alternative_title: true field_citable_url: true field_collection_number: true diff --git a/codebase/config/sync/core.entity_view_display.node.islandora_object.teaser.yml b/codebase/config/sync/core.entity_view_display.node.islandora_object.teaser.yml index 5368d78cde..112828bcee 100644 --- a/codebase/config/sync/core.entity_view_display.node.islandora_object.teaser.yml +++ b/codebase/config/sync/core.entity_view_display.node.islandora_object.teaser.yml @@ -5,8 +5,8 @@ dependencies: config: - core.entity_view_mode.node.teaser - field.field.node.islandora_object.field_abstract - - field.field.node.islandora_object.field_access_control - field.field.node.islandora_object.field_access_rights + - field.field.node.islandora_object.field_access_terms - field.field.node.islandora_object.field_alternative_title - field.field.node.islandora_object.field_citable_url - field.field.node.islandora_object.field_collection_number @@ -75,8 +75,8 @@ hidden: display_media_entity_view_2: true display_media_service_file: true field_abstract: true - field_access_control: true field_access_rights: true + field_access_terms: true field_alternative_title: true field_citable_url: true field_collection_number: true diff --git a/codebase/config/sync/core.entity_view_display.node.page.content_browser.yml b/codebase/config/sync/core.entity_view_display.node.page.content_browser.yml index d6f2d6747f..1d0d663763 100644 --- a/codebase/config/sync/core.entity_view_display.node.page.content_browser.yml +++ b/codebase/config/sync/core.entity_view_display.node.page.content_browser.yml @@ -24,9 +24,59 @@ content: settings: trim_length: 600 third_party_settings: { } + display_media_entity_view_1: + weight: 10 + settings: { } + third_party_settings: { } + region: content + display_media_entity_view_2: + weight: 10 + settings: { } + third_party_settings: { } + region: content + display_media_service_file: + weight: 10 + settings: { } + third_party_settings: { } + region: content + display_media_thumbnail: + weight: 10 + settings: { } + third_party_settings: { } + region: content links: weight: 101 region: content + openseadragon_media_evas_entity_view_1: + weight: 10 + settings: { } + third_party_settings: { } + region: content + openseadragon_media_evas_entity_view_2: + weight: 10 + settings: { } + third_party_settings: { } + region: content + openseadragon_media_evas_service_file: + weight: 10 + settings: { } + third_party_settings: { } + region: content + pdfjs_media_evas_entity_view_1: + weight: 10 + settings: { } + third_party_settings: { } + region: content + pdfjs_media_evas_entity_view_2: + weight: 10 + settings: { } + third_party_settings: { } + region: content + pdfjs_media_evas_service_file: + weight: 10 + settings: { } + third_party_settings: { } + region: content hidden: langcode: true search_api_excerpt: true diff --git a/codebase/config/sync/core.entity_view_display.node.page.default.yml b/codebase/config/sync/core.entity_view_display.node.page.default.yml index eea1a5d465..3f9415bcd4 100644 --- a/codebase/config/sync/core.entity_view_display.node.page.default.yml +++ b/codebase/config/sync/core.entity_view_display.node.page.default.yml @@ -22,9 +22,59 @@ content: region: content settings: { } third_party_settings: { } + display_media_entity_view_1: + weight: 10 + settings: { } + third_party_settings: { } + region: content + display_media_entity_view_2: + weight: 10 + settings: { } + third_party_settings: { } + region: content + display_media_service_file: + weight: 10 + settings: { } + third_party_settings: { } + region: content + display_media_thumbnail: + weight: 10 + settings: { } + third_party_settings: { } + region: content links: weight: 101 region: content + openseadragon_media_evas_entity_view_1: + weight: 10 + settings: { } + third_party_settings: { } + region: content + openseadragon_media_evas_entity_view_2: + weight: 10 + settings: { } + third_party_settings: { } + region: content + openseadragon_media_evas_service_file: + weight: 10 + settings: { } + third_party_settings: { } + region: content + pdfjs_media_evas_entity_view_1: + weight: 10 + settings: { } + third_party_settings: { } + region: content + pdfjs_media_evas_entity_view_2: + weight: 10 + settings: { } + third_party_settings: { } + region: content + pdfjs_media_evas_service_file: + weight: 10 + settings: { } + third_party_settings: { } + region: content hidden: langcode: true search_api_excerpt: true diff --git a/codebase/config/sync/core.entity_view_display.node.page.teaser.yml b/codebase/config/sync/core.entity_view_display.node.page.teaser.yml index 7f8a6fb639..7a11248d75 100644 --- a/codebase/config/sync/core.entity_view_display.node.page.teaser.yml +++ b/codebase/config/sync/core.entity_view_display.node.page.teaser.yml @@ -24,9 +24,59 @@ content: settings: trim_length: 600 third_party_settings: { } + display_media_entity_view_1: + weight: 10 + settings: { } + third_party_settings: { } + region: content + display_media_entity_view_2: + weight: 10 + settings: { } + third_party_settings: { } + region: content + display_media_service_file: + weight: 10 + settings: { } + third_party_settings: { } + region: content + display_media_thumbnail: + weight: 10 + settings: { } + third_party_settings: { } + region: content links: weight: 101 region: content + openseadragon_media_evas_entity_view_1: + weight: 10 + settings: { } + third_party_settings: { } + region: content + openseadragon_media_evas_entity_view_2: + weight: 10 + settings: { } + third_party_settings: { } + region: content + openseadragon_media_evas_service_file: + weight: 10 + settings: { } + third_party_settings: { } + region: content + pdfjs_media_evas_entity_view_1: + weight: 10 + settings: { } + third_party_settings: { } + region: content + pdfjs_media_evas_entity_view_2: + weight: 10 + settings: { } + third_party_settings: { } + region: content + pdfjs_media_evas_service_file: + weight: 10 + settings: { } + third_party_settings: { } + region: content hidden: langcode: true search_api_excerpt: true diff --git a/codebase/config/sync/core.extension.yml b/codebase/config/sync/core.extension.yml index e502abd946..333a655e89 100644 --- a/codebase/config/sync/core.extension.yml +++ b/codebase/config/sync/core.extension.yml @@ -33,6 +33,7 @@ module: embed: 0 entity_browser: 0 entity_embed: 0 + entity_reference_unpublished: 0 epp: 0 eva: 0 facets: 0 diff --git a/codebase/config/sync/core.menu.static_menu_link_overrides.yml b/codebase/config/sync/core.menu.static_menu_link_overrides.yml index 55dc4b6e86..70ff36a3f4 100644 --- a/codebase/config/sync/core.menu.static_menu_link_overrides.yml +++ b/codebase/config/sync/core.menu.static_menu_link_overrides.yml @@ -5,5 +5,11 @@ definitions: parent: '' weight: 0 expanded: false + workbench__create_content: + menu_name: workbench + parent: '' + weight: 1 + expanded: false + enabled: true _core: default_config_hash: o4bYR9ZupWb3AsOIizTUG4g-nu1mdJqA59UB7QT-ifQ diff --git a/codebase/config/sync/field.field.node.collection_object.field_access_control.yml b/codebase/config/sync/field.field.node.collection_object.field_access_terms.yml similarity index 64% rename from codebase/config/sync/field.field.node.collection_object.field_access_control.yml rename to codebase/config/sync/field.field.node.collection_object.field_access_terms.yml index 73c37cdbee..d9f710d23f 100644 --- a/codebase/config/sync/field.field.node.collection_object.field_access_control.yml +++ b/codebase/config/sync/field.field.node.collection_object.field_access_terms.yml @@ -1,18 +1,24 @@ -uuid: 1f872323-83c3-47c7-a7a9-798cd1ec1729 +uuid: 7cf1a8b0-cec5-42e1-b85c-366f1301ff5d langcode: en status: true dependencies: config: - - field.storage.node.field_access_control + - field.storage.node.field_access_terms - node.type.collection_object - taxonomy.vocabulary.islandora_access -id: node.collection_object.field_access_control -field_name: field_access_control + module: + - epp +third_party_settings: + epp: + value: '' + on_update: 1 +id: node.collection_object.field_access_terms +field_name: field_access_terms entity_type: node bundle: collection_object -label: 'Access Control' +label: 'Access Terms' description: '' -required: true +required: false translatable: false default_value: { } default_value_callback: '' diff --git a/codebase/config/sync/field.field.node.collection_object.field_member_of.yml b/codebase/config/sync/field.field.node.collection_object.field_member_of.yml index 509618c0b0..7536593c62 100644 --- a/codebase/config/sync/field.field.node.collection_object.field_member_of.yml +++ b/codebase/config/sync/field.field.node.collection_object.field_member_of.yml @@ -5,6 +5,12 @@ dependencies: config: - field.storage.node.field_member_of - node.type.collection_object + module: + - epp +third_party_settings: + epp: + value: '' + on_update: 1 id: node.collection_object.field_member_of field_name: field_member_of entity_type: node @@ -16,13 +22,13 @@ translatable: true default_value: { } default_value_callback: '' settings: - handler: 'default:node' + handler: unpublished handler_settings: target_bundles: collection_object: collection_object sort: field: title direction: ASC - auto_create: false + auto_create: 0 auto_create_bundle: collection_object field_type: entity_reference diff --git a/codebase/config/sync/field.field.node.islandora_object.field_access_control.yml b/codebase/config/sync/field.field.node.islandora_object.field_access_terms.yml similarity index 66% rename from codebase/config/sync/field.field.node.islandora_object.field_access_control.yml rename to codebase/config/sync/field.field.node.islandora_object.field_access_terms.yml index f991c3d862..872e157759 100644 --- a/codebase/config/sync/field.field.node.islandora_object.field_access_control.yml +++ b/codebase/config/sync/field.field.node.islandora_object.field_access_terms.yml @@ -1,16 +1,22 @@ -uuid: 0de81f9f-22ac-4c6a-9f92-90554e2d57b5 +uuid: f8542ca6-17e6-4b23-abc0-4c92060a650b langcode: en status: true dependencies: config: - - field.storage.node.field_access_control + - field.storage.node.field_access_terms - node.type.islandora_object - taxonomy.vocabulary.islandora_access -id: node.islandora_object.field_access_control -field_name: field_access_control + module: + - epp +third_party_settings: + epp: + value: '' + on_update: 0 +id: node.islandora_object.field_access_terms +field_name: field_access_terms entity_type: node bundle: islandora_object -label: 'Access Control' +label: 'Access Terms' description: '' required: false translatable: true diff --git a/codebase/config/sync/field.field.node.islandora_object.field_member_of.yml b/codebase/config/sync/field.field.node.islandora_object.field_member_of.yml index 33391ec542..2b647bee5e 100644 --- a/codebase/config/sync/field.field.node.islandora_object.field_member_of.yml +++ b/codebase/config/sync/field.field.node.islandora_object.field_member_of.yml @@ -9,6 +9,12 @@ dependencies: enforced: module: - islandora_defaults + module: + - epp +third_party_settings: + epp: + value: '' + on_update: 1 _core: default_config_hash: v20YaVtVj46zHNe2jXTgkFAVVLS2UcyzL9Pw1ng9038 id: node.islandora_object.field_member_of @@ -22,7 +28,7 @@ translatable: false default_value: { } default_value_callback: '' settings: - handler: 'default:node' + handler: unpublished handler_settings: target_bundles: collection_object: collection_object @@ -30,6 +36,6 @@ settings: sort: field: title direction: ASC - auto_create: false + auto_create: 0 auto_create_bundle: collection_object field_type: entity_reference diff --git a/codebase/config/sync/field.field.taxonomy_term.geo_location.field_broader.yml b/codebase/config/sync/field.field.taxonomy_term.geo_location.field_broader.yml index d3515d53dd..5375150e5e 100644 --- a/codebase/config/sync/field.field.taxonomy_term.geo_location.field_broader.yml +++ b/codebase/config/sync/field.field.taxonomy_term.geo_location.field_broader.yml @@ -6,7 +6,12 @@ dependencies: - field.storage.taxonomy_term.field_broader - taxonomy.vocabulary.geo_location module: + - epp - link +third_party_settings: + epp: + value: '' + on_update: 1 id: taxonomy_term.geo_location.field_broader field_name: field_broader entity_type: taxonomy_term @@ -18,6 +23,6 @@ translatable: false default_value: { } default_value_callback: '' settings: - link_type: 17 - title: 1 + link_type: 16 + title: 0 field_type: link diff --git a/codebase/config/sync/field.storage.node.field_access_control.yml b/codebase/config/sync/field.storage.node.field_access_terms.yml similarity index 78% rename from codebase/config/sync/field.storage.node.field_access_control.yml rename to codebase/config/sync/field.storage.node.field_access_terms.yml index 54bc2296b1..81c8cf424b 100644 --- a/codebase/config/sync/field.storage.node.field_access_control.yml +++ b/codebase/config/sync/field.storage.node.field_access_terms.yml @@ -1,4 +1,4 @@ -uuid: 09ebab33-9519-475e-9b30-d031a3de708c +uuid: 5adeb564-8f1d-486f-a890-9323e4c169da langcode: en status: true dependencies: @@ -9,8 +9,8 @@ dependencies: third_party_settings: field_permissions: permission_type: custom -id: node.field_access_control -field_name: field_access_control +id: node.field_access_terms +field_name: field_access_terms entity_type: node type: entity_reference settings: diff --git a/codebase/config/sync/migrate_plus.migration.idc_ingest_new_collection.yml b/codebase/config/sync/migrate_plus.migration.idc_ingest_new_collection.yml index fb7c2e3f14..4a826d1229 100644 --- a/codebase/config/sync/migrate_plus.migration.idc_ingest_new_collection.yml +++ b/codebase/config/sync/migrate_plus.migration.idc_ingest_new_collection.yml @@ -78,6 +78,21 @@ process: plugin: migration_lookup migration: idc_ingest_new_collection source: member_of + field_access_terms: + - + plugin: skip_on_empty + method: process + source: access_terms + - + plugin: explode + delimiter: '|' + strict: false + - + plugin: entity_lookup + bundle_key: vid + bundle: islandora_access + entity_type: taxonomy_term + value_key: name field_title_language: plugin: entity_lookup source: title_language diff --git a/codebase/config/sync/migrate_plus.migration.idc_ingest_new_items.yml b/codebase/config/sync/migrate_plus.migration.idc_ingest_new_items.yml index c37458b3ae..5c6d4d8205 100644 --- a/codebase/config/sync/migrate_plus.migration.idc_ingest_new_items.yml +++ b/codebase/config/sync/migrate_plus.migration.idc_ingest_new_items.yml @@ -1,7 +1,7 @@ uuid: 2c14b68f-1c0c-446e-99cf-bc2bbd0e346c langcode: en status: true -dependencies: { } +dependencies: { } id: idc_ingest_new_items class: null field_plugin_method: null @@ -17,116 +17,166 @@ source: process: title: title field_abstract: - - plugin: explode + - + plugin: explode source: abstract delimiter: '|' strict: false - - plugin: deepen - - plugin: sub_process + - + plugin: deepen + - + plugin: sub_process process: value: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: value - - plugin: explode - delimiter: ';' - - plugin: extract + - + plugin: explode + delimiter: ; + - + plugin: extract index: - 0 target_id: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: value - - plugin: explode - delimiter: ';' - - plugin: extract + - + plugin: explode + delimiter: ; + - + plugin: extract index: - 1 - - plugin: entity_lookup + - + plugin: entity_lookup entity_type: taxonomy_term bundle: language bundle_key: vid value_key: field_language_code field_access_rights: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: access_rights - - plugin: explode + - + plugin: explode delimiter: '|' strict: false - - plugin: entity_lookup + - + plugin: entity_lookup bundle_key: vid bundle: access_rights entity_type: taxonomy_term value_key: name - # TODO field_access_terms: + field_access_terms: + - + plugin: skip_on_empty + method: process + source: access_terms + - + plugin: explode + delimiter: '|' + strict: false + - + plugin: entity_lookup + bundle_key: vid + bundle: islandora_access + entity_type: taxonomy_term + value_key: name field_alternative_title: - - plugin: explode + - + plugin: explode source: alt_title delimiter: '|' strict: false - - plugin: deepen - - plugin: sub_process + - + plugin: deepen + - + plugin: sub_process process: value: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: value - - plugin: explode - delimiter: ';' - - plugin: extract + - + plugin: explode + delimiter: ; + - + plugin: extract index: - 0 target_id: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: value - - plugin: explode - delimiter: ';' - - plugin: extract + - + plugin: explode + delimiter: ; + - + plugin: extract index: - 1 - - plugin: entity_lookup + - + plugin: entity_lookup entity_type: taxonomy_term bundle: language bundle_key: vid value_key: field_language_code field_collection_number: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: collection_number - - plugin: explode + - + plugin: explode delimiter: '|' strict: false field_contributor: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: contributor - - plugin: explode + - + plugin: explode delimiter: '|' strict: false - - plugin: deepen - - plugin: sub_process + - + plugin: deepen + - + plugin: sub_process process: rel_type: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: value - - plugin: explode - delimiter: ';' - - plugin: extract + - + plugin: explode + delimiter: ; + - + plugin: extract index: - 0 target_id: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: value - - plugin: explode - delimiter: ';' - - plugin: extract + - + plugin: explode + delimiter: ; + - + plugin: extract index: - 1 - - plugin: entity_lookup + - + plugin: entity_lookup entity_type: taxonomy_term bundle: person bundle_key: vid @@ -138,127 +188,161 @@ process: bundle: copyright_and_use bundle_key: vid value_key: name - # FIXME: test data references a Person and Corporate Body, only one can be resolved field_copyright_holder: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: copyright_holder - - plugin: explode + - + plugin: explode delimiter: '|' strict: false - - plugin: entity_lookup + - + plugin: entity_lookup entity_type: taxonomy_term bundle: person bundle_key: vid value_key: name field_creator: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: creator - - plugin: explode + - + plugin: explode delimiter: '|' strict: false - - plugin: deepen - - plugin: sub_process + - + plugin: deepen + - + plugin: sub_process process: rel_type: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: value - - plugin: explode - delimiter: ';' - - plugin: extract + - + plugin: explode + delimiter: ; + - + plugin: extract index: - 0 target_id: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: value - - plugin: explode - delimiter: ';' - - plugin: extract + - + plugin: explode + delimiter: ; + - + plugin: extract index: - 1 - - plugin: entity_lookup + - + plugin: entity_lookup entity_type: taxonomy_term bundle: person bundle_key: vid value_key: name field_date_available: date_available field_date_copyrighted: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: date_copyrighted - - plugin: explode + - + plugin: explode delimiter: '|' strict: false field_date_created: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: date_created - - plugin: explode + - + plugin: explode delimiter: '|' strict: false field_date_published: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: date_published - - plugin: explode + - + plugin: explode delimiter: '|' strict: false field_description: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: description - - plugin: explode + - + plugin: explode delimiter: '|' strict: false - - plugin: deepen - - plugin: sub_process + - + plugin: deepen + - + plugin: sub_process process: value: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: value - - plugin: explode - delimiter: ';' - - plugin: extract + - + plugin: explode + delimiter: ; + - + plugin: extract index: - 0 target_id: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: value - - plugin: explode - delimiter: ';' - - plugin: extract + - + plugin: explode + delimiter: ; + - + plugin: extract index: - 1 - - plugin: entity_lookup + - + plugin: entity_lookup entity_type: taxonomy_term bundle: language bundle_key: vid value_key: field_language_code field_digital_identifier: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: digital_identifier - - plugin: explode + - + plugin: explode delimiter: '|' strict: false field_digital_publisher: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: digital_publisher - - plugin: explode + - + plugin: explode delimiter: '|' strict: false - - plugin: entity_lookup + - + plugin: entity_lookup entity_type: taxonomy_term bundle: corporate_body bundle_key: vid value_key: name - # note: only available in JSON view field_display_hints: plugin: entity_lookup source: display_hints @@ -266,26 +350,29 @@ process: bundle: islandora_display entity_type: taxonomy_term value_key: name - # note: only available in JSON view field_dspace_identifier/uri: dspace_identifier - # note: only available in JSON view field_dspace_item_id: dspace_itemid field_extent: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: extent - - plugin: explode + - + plugin: explode delimiter: '|' strict: false field_finding_aid/uri: finding_aid field_genre: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: genre - - plugin: explode + - + plugin: explode delimiter: '|' strict: false - - plugin: entity_lookup + - + plugin: entity_lookup entity_type: taxonomy_term bundle: genre bundle_key: vid @@ -294,29 +381,34 @@ process: field_issn: issn field_is_part_of: is_part_of field_item_barcode: item_barcode - # note: only available in JSON view field_jhir/uri: jhir_uri field_language: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: language - - plugin: explode + - + plugin: explode delimiter: '|' strict: false - - plugin: entity_lookup + - + plugin: entity_lookup entity_type: taxonomy_term bundle: language bundle_key: vid value_key: name field_library_catalog_link/uri: library_catalog_link field_member_of: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: member_of - - plugin: explode + - + plugin: explode delimiter: '|' strict: false - - plugin: migration_lookup + - + plugin: migration_lookup migration: idc_ingest_new_collection no_stub: true field_model: @@ -327,119 +419,151 @@ process: value_key: name source: model field_oclc_number: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: oclc_number - - plugin: explode + - + plugin: explode delimiter: '|' strict: false field_publisher: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: publisher - - plugin: explode + - + plugin: explode delimiter: '|' strict: false - - plugin: entity_lookup + - + plugin: entity_lookup bundle_key: vid bundle: corporate_body entity_type: taxonomy_term value_key: name field_publisher_country: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: publisher_country - - plugin: explode + - + plugin: explode delimiter: '|' strict: false - - plugin: entity_lookup + - + plugin: entity_lookup bundle_key: vid bundle: geo_location entity_type: taxonomy_term value_key: name field_resource_type: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: resource_type - - plugin: explode + - + plugin: explode delimiter: '|' strict: false - - plugin: entity_lookup + - + plugin: entity_lookup bundle_key: vid bundle: resource_types entity_type: taxonomy_term value_key: name field_spatial_coverage: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: spatial_coverage - - plugin: explode + - + plugin: explode delimiter: '|' strict: false - - plugin: entity_lookup + - + plugin: entity_lookup bundle_key: vid bundle: geo_location entity_type: taxonomy_term value_key: name field_subject: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: subject - - plugin: explode + - + plugin: explode delimiter: '|' strict: false - - plugin: entity_lookup + - + plugin: entity_lookup bundle_key: vid bundle: subject entity_type: taxonomy_term value_key: name field_table_of_contents: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: table_of_contents - - plugin: explode + - + plugin: explode delimiter: '|' strict: false - - plugin: deepen - - plugin: sub_process + - + plugin: deepen + - + plugin: sub_process process: value: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: value - - plugin: explode - delimiter: ';' - - plugin: extract + - + plugin: explode + delimiter: ; + - + plugin: extract index: - 0 target_id: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: value - - plugin: explode - delimiter: ';' - - plugin: extract + - + plugin: explode + delimiter: ; + - + plugin: extract index: - 1 - - plugin: entity_lookup + - + plugin: entity_lookup entity_type: taxonomy_term bundle: language bundle_key: vid value_key: field_language_code field_title_language: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: title_language - - plugin: entity_lookup + - + plugin: entity_lookup entity_type: taxonomy_term bundle: language bundle_key: vid value_key: name field_years: - - plugin: skip_on_empty + - + plugin: skip_on_empty method: process source: years - - plugin: explode + - + plugin: explode delimiter: '|' strict: false destination: diff --git a/codebase/config/sync/migrate_plus.migration.idc_ingest_taxonomy_islandora_accessterms.yml b/codebase/config/sync/migrate_plus.migration.idc_ingest_taxonomy_islandora_accessterms.yml new file mode 100644 index 0000000000..ea8634b528 --- /dev/null +++ b/codebase/config/sync/migrate_plus.migration.idc_ingest_taxonomy_islandora_accessterms.yml @@ -0,0 +1,38 @@ +uuid: abe27bf2-82e0-4a30-aa2f-39463059e718 +langcode: en +status: true +dependencies: { } +id: idc_ingest_taxonomy_islandora_accessterms +class: null +field_plugin_method: null +cck_plugin_method: null +migration_tags: null +migration_group: idc_ingest +label: 'Taxonomy: Islandora Access Terms' +source: + plugin: csv + ids: + - local_id + path: 'Will be populated by the Migrate Source UI' + constants: + STATUS: true + ADMIN: 1 + DESC_FORMAT: basic_html +process: + name: name + description/value: description + description/format: + plugin: default_value + default_value: basic_html + status: constants/STATUS + parent: + plugin: entity_lookup + source: parent + entity_type: taxonomy_term + value_key: name + bundle_key: vid + bundle: islandora_access +destination: + plugin: 'entity:taxonomy_term' + default_bundle: islandora_access +migration_dependencies: null diff --git a/codebase/config/sync/taxonomy.vocabulary.islandora_access.yml b/codebase/config/sync/taxonomy.vocabulary.islandora_access.yml index 0eb453e1ab..75d2de3fd8 100644 --- a/codebase/config/sync/taxonomy.vocabulary.islandora_access.yml +++ b/codebase/config/sync/taxonomy.vocabulary.islandora_access.yml @@ -4,7 +4,7 @@ status: true dependencies: { } _core: default_config_hash: sQg5b6M8H_5jJt0gGa3xqAIh7ny7yU8TdHFwnwmzDdc -name: 'Islandora Access Communites' +name: 'Islandora Access' vid: islandora_access description: 'Terms used to limit, restrict or coordinate access among collections' weight: 1 diff --git a/codebase/config/sync/user.role.collection_level_admin.yml b/codebase/config/sync/user.role.collection_level_admin.yml index 403ae68092..eb9a7a46b9 100644 --- a/codebase/config/sync/user.role.collection_level_admin.yml +++ b/codebase/config/sync/user.role.collection_level_admin.yml @@ -19,6 +19,7 @@ permissions: - 'create audio media' - 'create document media' - 'create extracted_text media' + - 'create field_access_control' - 'create field_access_terms' - 'create file media' - 'create fits_technical_metadata media' @@ -47,6 +48,8 @@ permissions: - 'edit any islandora_object content' - 'edit any remote_video media' - 'edit any video media' + - 'edit field_access_control' + - 'edit field_access_terms' - 'edit own audio media' - 'edit own collection_object content' - 'edit own document media' @@ -71,6 +74,7 @@ permissions: - 'edit terms in subject' - 'manage media' - 'manage members' + - 'replace files' - 'restful get oai_pmh' - 'revert collection_object revisions' - 'revert islandora_object revisions' @@ -82,6 +86,7 @@ permissions: - 'view all media revisions' - 'view checksums' - 'view collection_object revisions' + - 'view field_access_control' - 'view field_access_terms' - 'view islandora_object revisions' - 'view own field_access_control' diff --git a/codebase/config/sync/user.role.global_admin.yml b/codebase/config/sync/user.role.global_admin.yml index 622969adef..c2fb798ef8 100644 --- a/codebase/config/sync/user.role.global_admin.yml +++ b/codebase/config/sync/user.role.global_admin.yml @@ -11,6 +11,7 @@ permissions: - 'access browse_content entity browser pages' - 'access browse_content_iframe entity browser pages' - 'access content overview' + - 'access files overview' - 'access media overview' - 'access migrate source ui' - 'access site reports' @@ -101,6 +102,7 @@ permissions: - 'edit terms in subject' - 'manage media' - 'manage members' + - 'replace files' - 'restful get oai_pmh' - 'revert collection_object revisions' - 'revert islandora_object revisions' diff --git a/codebase/config/sync/views.view.solr_search_content.yml b/codebase/config/sync/views.view.solr_search_content.yml index 64a61e0e7d..6392d760c9 100644 --- a/codebase/config/sync/views.view.solr_search_content.yml +++ b/codebase/config/sync/views.view.solr_search_content.yml @@ -4,7 +4,6 @@ status: true dependencies: config: - field.storage.node.field_abstract - - field.storage.node.field_access_control - field.storage.node.field_access_rights - field.storage.node.field_alternative_title - field.storage.node.field_citable_url @@ -5503,119 +5502,6 @@ display: multi_separator: ', ' entity_type: node plugin_id: search_api_field - field_access_control: - id: field_access_control - table: search_api_datasource_default_solr_index_entity_node - field: field_access_control - relationship: none - group_type: group - admin_label: '' - label: '' - exclude: false - alter: - alter_text: false - text: '' - make_link: false - path: '' - absolute: false - external: false - replace_spaces: false - path_case: none - trim_whitespace: false - alt: '' - rel: '' - link_class: '' - prefix: '' - suffix: '' - target: '' - nl2br: false - max_length: 0 - word_boundary: true - ellipsis: true - more_link: false - more_link_text: '' - more_link_path: '' - strip_tags: false - trim: false - preserve_tags: '' - html: false - element_type: '' - element_class: '' - element_label_type: '' - element_label_class: '' - element_label_colon: false - element_wrapper_type: '' - element_wrapper_class: '' - element_default_classes: true - empty: '' - hide_empty: false - empty_zero: false - hide_alter_empty: true - click_sort_column: target_id - type: entity_reference_label - settings: - link: true - group_column: target_id - group_columns: { } - group_rows: true - delta_limit: 0 - delta_offset: 0 - delta_reversed: false - delta_first_last: false - multi_type: separator - separator: ', ' - field_api_classes: false - field_rendering: true - fallback_handler: search_api_entity - fallback_options: - link_to_item: false - use_highlighting: false - multi_type: separator - multi_separator: ', ' - display_methods: - access_rights: - display_method: label - view_mode: default - copyright_and_use: - display_method: label - view_mode: default - corporate_body: - display_method: label - view_mode: default - family: - display_method: label - view_mode: default - genre: - display_method: label - view_mode: default - geo_location: - display_method: label - view_mode: default - islandora_access: - display_method: label - islandora_display: - display_method: label - view_mode: default - islandora_media_use: - display_method: label - view_mode: default - islandora_models: - display_method: label - view_mode: default - language: - display_method: label - view_mode: default - person: - display_method: label - view_mode: default - resource_types: - display_method: label - view_mode: default - subject: - display_method: label - view_mode: default - entity_type: node - plugin_id: search_api_field field_collection_contact_email: id: field_collection_contact_email table: search_api_datasource_default_solr_index_entity_node @@ -5701,7 +5587,6 @@ display: - 'user.node_grants:view' tags: - 'config:field.storage.node.field_abstract' - - 'config:field.storage.node.field_access_control' - 'config:field.storage.node.field_access_rights' - 'config:field.storage.node.field_alternative_title' - 'config:field.storage.node.field_citable_url' diff --git a/codebase/config/sync/views.view.workbench_current_user.yml b/codebase/config/sync/views.view.workbench_current_user.yml index 2e850235f1..4519bceb5d 100644 --- a/codebase/config/sync/views.view.workbench_current_user.yml +++ b/codebase/config/sync/views.view.workbench_current_user.yml @@ -25,7 +25,7 @@ display: options: perm: 'access user profiles' cache: - type: tag + type: none options: { } query: type: views_query diff --git a/codebase/config/sync/views.view.workbench_edited.yml b/codebase/config/sync/views.view.workbench_edited.yml index b49f1acf73..a1ab941bc5 100644 --- a/codebase/config/sync/views.view.workbench_edited.yml +++ b/codebase/config/sync/views.view.workbench_edited.yml @@ -26,7 +26,7 @@ display: options: perm: 'access workbench' cache: - type: tag + type: none options: { } query: type: views_query diff --git a/codebase/config/sync/views.view.workbench_recent_content.yml b/codebase/config/sync/views.view.workbench_recent_content.yml index 266868e3d4..2ec6535920 100644 --- a/codebase/config/sync/views.view.workbench_recent_content.yml +++ b/codebase/config/sync/views.view.workbench_recent_content.yml @@ -3,7 +3,6 @@ langcode: en status: true dependencies: config: - - field.storage.node.field_access_control - field.storage.node.field_member_of module: - node @@ -29,7 +28,7 @@ display: options: perm: 'access workbench' cache: - type: tag + type: none options: { } query: type: views_query @@ -1284,69 +1283,6 @@ display: text: edit entity_type: node plugin_id: entity_link_edit - field_access_control: - id: field_access_control - table: node__field_access_control - field: field_access_control - relationship: none - group_type: group - admin_label: '' - label: 'Access Control' - exclude: false - alter: - alter_text: false - text: '' - make_link: false - path: '' - absolute: false - external: false - replace_spaces: false - path_case: none - trim_whitespace: false - alt: '' - rel: '' - link_class: '' - prefix: '' - suffix: '' - target: '' - nl2br: false - max_length: 0 - word_boundary: true - ellipsis: true - more_link: false - more_link_text: '' - more_link_path: '' - strip_tags: false - trim: false - preserve_tags: '' - html: false - element_type: '' - element_class: '' - element_label_type: '' - element_label_class: '' - element_label_colon: true - element_wrapper_type: '' - element_wrapper_class: '' - element_default_classes: true - empty: '' - hide_empty: false - empty_zero: false - hide_alter_empty: true - click_sort_column: target_id - type: entity_reference_label - settings: - link: true - group_column: target_id - group_columns: { } - group_rows: true - delta_limit: 0 - delta_offset: 0 - delta_reversed: false - delta_first_last: false - multi_type: separator - separator: ', ' - field_api_classes: false - plugin_id: field link_display: /admin/workbench/content/all header: area: @@ -1372,7 +1308,6 @@ display: - 'user.node_grants:view' - user.permissions tags: - - 'config:field.storage.node.field_access_control' - 'config:field.storage.node.field_member_of' embed_1: display_plugin: embed diff --git a/codebase/config/sync/workbench.settings.yml b/codebase/config/sync/workbench.settings.yml index 49b7f0e481..559d5dfefd 100644 --- a/codebase/config/sync/workbench.settings.yml +++ b/codebase/config/sync/workbench.settings.yml @@ -1,6 +1,6 @@ overview_left: 'workbench_edited:block_1' overview_right: 'workbench_current_user:block_1' -overview_main: 'workbench_recent_content:embed_1' +overview_main: 'workbench_recent_content:block_1' edits_main: 'workbench_edited:embed_1' all_main: 'workbench_recent_content:embed_1' _core: diff --git a/codebase/config/sync/workbench_access.access_scheme.collection.yml b/codebase/config/sync/workbench_access.access_scheme.collection.yml index 775d0ee6bd..9fdb7b97df 100644 --- a/codebase/config/sync/workbench_access.access_scheme.collection.yml +++ b/codebase/config/sync/workbench_access.access_scheme.collection.yml @@ -10,8 +10,8 @@ dependencies: - field.field.media.image.field_access_terms - field.field.media.remote_video.field_access_terms - field.field.media.video.field_access_terms - - field.field.node.collection_object.field_access_control - - field.field.node.islandora_object.field_access_control + - field.field.node.collection_object.field_access_terms + - field.field.node.islandora_object.field_access_terms - taxonomy.vocabulary.islandora_access id: collection label: Communities @@ -43,17 +43,17 @@ scheme_settings: field: field_access_terms - entity_type: media - bundle: extracted_text + bundle: remote_video field: field_access_terms - entity_type: media - bundle: remote_video + bundle: extracted_text field: field_access_terms - entity_type: node bundle: collection_object - field: field_access_control + field: field_access_terms - entity_type: node bundle: islandora_object - field: field_access_control + field: field_access_terms diff --git a/tests/10-migration-backend-tests/testcafe/migrate_tests.spec.js b/tests/10-migration-backend-tests/testcafe/migrate_tests.spec.js index 1d0f064755..5def3bf849 100644 --- a/tests/10-migration-backend-tests/testcafe/migrate_tests.spec.js +++ b/tests/10-migration-backend-tests/testcafe/migrate_tests.spec.js @@ -15,6 +15,7 @@ const migrate_copyrightanduse_taxonomy = 'idc_ingest_taxonomy_copyrightanduse'; const migrate_family_taxonomy = 'idc_ingest_taxonomy_family'; const migrate_genre_taxonomy = 'idc_ingest_taxonomy_genre'; const migrate_geolocation_taxonomy = 'idc_ingest_taxonomy_geolocation'; +const migrate_islandora_accessterms_taxonomy = 'idc_ingest_taxonomy_islandora_accessterms'; const migrate_language_taxonomy = 'idc_ingest_taxonomy_language'; const migrate_new_items = 'idc_ingest_new_items'; const migrate_new_collection = 'idc_ingest_new_collection'; @@ -91,6 +92,20 @@ test('Perform Access Rights Taxonomy Migration', async t => { }); +test('Perform Islandora Access Terms Taxonomy Migration', async t => { + + await t + .click(selectMigration) + .click(migrationOptions.withAttribute('value', migrate_islandora_accessterms_taxonomy)); + + await t + .setFilesToUpload('#edit-source-file', [ + './migrations/accessterms.csv' + ]) + .click('#edit-import'); + +}); + test('Perform Copyright and Use Taxonomy Migration', async t => { await t diff --git a/tests/10-migration-backend-tests/testcafe/migrations/accessterms.csv b/tests/10-migration-backend-tests/testcafe/migrations/accessterms.csv new file mode 100644 index 0000000000..4df8a6a03d --- /dev/null +++ b/tests/10-migration-backend-tests/testcafe/migrations/accessterms.csv @@ -0,0 +1,8 @@ +local_id,name,parent,description +accesscontrol_01,Archives and Special Collections,,"

Collections from the archives

", +accesscontrol_02,Collection A,Archives and Special Collections,"

For items in Collection A

", +accesscontrol_03,Collection B,Collection A,, +accesscontrol_04,Collection C,Collection A,, +accesscontrol_05,Collection D,Archives and Special Collections,, +accesscontrol_06,Collection E,Collection D,, +accesscontrol_07,Parent Collection,,, diff --git a/tests/10-migration-backend-tests/testcafe/migrations/collection-01.csv b/tests/10-migration-backend-tests/testcafe/migrations/collection-01.csv index b517c3ca7e..cbf62980a7 100644 --- a/tests/10-migration-backend-tests/testcafe/migrations/collection-01.csv +++ b/tests/10-migration-backend-tests/testcafe/migrations/collection-01.csv @@ -1,3 +1,3 @@ -local_id,title,title_language,alternative_title,member_of,contact_email,contact_name,collection_number,description,finding_aid -collection-01,Parent Collection,,,,,,,, -collection-02,Test Collection One,eng,Titre alternatif pour Test Collection One;fre|Alternate Title for Test Collection One;eng,,emetsger@gmail.com,Elliot Metsger,1|2,This is a description for Test Collection One;eng|Esta es una descripción de la colección de pruebas uno;spa,http://wikipedia.org +local_id,title,title_language,alternative_title,member_of,access_terms,contact_email,contact_name,collection_number,description,finding_aid +collection-01,Parent Collection,,,,Parent Collection,,,,,, +collection-02,Test Collection One,eng,Titre alternatif pour Test Collection One;fre|Alternate Title for Test Collection One;eng,,Parent Collection,emetsger@gmail.com,Elliot Metsger,1|2,This is a description for Test Collection One;eng|Esta es una descripción de la colección de pruebas uno;spa,http://wikipedia.org diff --git a/tests/10-migration-backend-tests/testcafe/migrations/collection-02.csv b/tests/10-migration-backend-tests/testcafe/migrations/collection-02.csv index 0a443ac6be..b1807166d3 100644 --- a/tests/10-migration-backend-tests/testcafe/migrations/collection-02.csv +++ b/tests/10-migration-backend-tests/testcafe/migrations/collection-02.csv @@ -1,3 +1,3 @@ -local_id,title,title_language,alternative_title,member_of,contact_email,contact_name,collection_number,description,finding_aid -collection-01,Parent Collection,,,,,,,, -collection-02,Test Collection One,eng,Titre alternatif pour Test Collection One;fre|Alternate Title for Test Collection One;eng,collection-01,emetsger@gmail.com,Elliot Metsger,1|2,This is a description for Test Collection One;eng|Esta es una descripción de la colección de pruebas uno;spa,http://wikipedia.org +local_id,title,title_language,alternative_title,member_of,access_terms,contact_email,contact_name,collection_number,description,finding_aid +collection-01,Parent Collection,,,,Parent Collection,,,,,, +collection-02,Test Collection One,eng,Titre alternatif pour Test Collection One;fre|Alternate Title for Test Collection One;eng,collection-01,Parent Collection,emetsger@gmail.com,Elliot Metsger,1|2,This is a description for Test Collection One;eng|Esta es una descripción de la colección de pruebas uno;spa,http://wikipedia.org diff --git a/tests/10-migration-backend-tests/testcafe/migrations/islandora_object-accessterms.csv b/tests/10-migration-backend-tests/testcafe/migrations/islandora_object-accessterms.csv new file mode 100644 index 0000000000..91549c7ea0 --- /dev/null +++ b/tests/10-migration-backend-tests/testcafe/migrations/islandora_object-accessterms.csv @@ -0,0 +1,4 @@ +local_id,name,parent,description +io-accesscontrol_01,Images Collection,,, +io-accesscontrol_02,Ansel Adams,Images Collection,, + diff --git a/tests/10-migration-backend-tests/testcafe/migrations/islandora_object-collections.csv b/tests/10-migration-backend-tests/testcafe/migrations/islandora_object-collections.csv index cc1212ade3..5c70c4078a 100644 --- a/tests/10-migration-backend-tests/testcafe/migrations/islandora_object-collections.csv +++ b/tests/10-migration-backend-tests/testcafe/migrations/islandora_object-collections.csv @@ -1,3 +1,3 @@ -local_id,title,title_language,alternative_title,member_of,contact_email,contact_name,collection_number,description,finding_aid -io-collection-01,Images Collection,eng,,,,,,Collections of images;eng, -io-collection-02,Ansel Adams,eng,,,,,,Collection of Ansel Adams images;eng, +local_id,title,title_language,alternative_title,member_of,access_terms,contact_email,contact_name,collection_number,description,finding_aid +io-collection-01,Images Collection,eng,,,Images Collection,,,,Collections of images;eng, +io-collection-02,Ansel Adams,eng,,,Ansel Adams,,,,Collection of Ansel Adams images;eng, diff --git a/tests/10-migration-backend-tests/testcafe/migrations/islandora_object.csv b/tests/10-migration-backend-tests/testcafe/migrations/islandora_object.csv index 29e944aaa3..d3d533f034 100644 --- a/tests/10-migration-backend-tests/testcafe/migrations/islandora_object.csv +++ b/tests/10-migration-backend-tests/testcafe/migrations/islandora_object.csv @@ -1,2 +1,2 @@ local_id,title,abstract,access_rights,access_terms,alt_title,collection_number,contributor,copyright,copyright_holder,creator,date_available,date_copyrighted,date_created,date_published,description,digital_identifier,digital_publisher,display_hints,dspace_identifier,dspace_itemid,extent,finding_aid,genre,geoportal_link,issn,is_part_of,item_barcode,jhir_uri,language,library_catalog_link,member_of,model,oclc_number,publisher,publisher_country,resource_type,spatial_coverage,subject,table_of_contents,title_language,years -io_01,Sample Repository Item,Sample Repository Item Abstract in English;eng|日本語のサンプルリポジトリアイテムの要約;jpn,Public digital access|Public Domain,,Sample Repository Item Alternate Title;eng|Пример альтернативного названия элемента репозитория на русском языке;rus,1|2,"relators:art;Adams, Islandora Object Ansel Easton, 1902-1984|relators:pht;Adams, Islandora Object Ansel Easton, 1902-1984",Copyright Undetermined,"Weston, Islandora Object Edward, 1886-1958|Adams, Islandora Object Ansel Easton, 1902-1984","relators:art;Adams, Islandora Object Ansel Easton, 1902-1984|relators:pht;Weston, Islandora Object Edward, 1886-1958",2020-01-01,2010-01-01|1941-11,1941-11-01|1941-11,1943|1944,Sample Repository Item Description in English;eng|सैंपल रिपोजिटरी आइटम का विवरण हिंदी मे;hin,a digital identifier one|a digital identifier two,Ansel Adams Publishing Rights Trust|Johns Hopkins Sheridan Libraries,Open Seadragon,http://jscholarship.library.jhu.edu,DSpace Item ID,1 item|one image file,http://www.google.com,Analog|Nature,http://catalyst.library.jhu.edu,12345678,https://en.wikipedia.org/wiki/San_Rafael_Reef,123456,http://jhir.jhu.edu,English|German,http://catalog.library.jhu.edu,io-collection-01|io-collection-02,Image,oclc_one|oclc_two,Ansel Adams Publishing Rights Trust|Johns Hopkins Sheridan Libraries,Mountain Light Gallery|Nevada,Dataset|Image,"Hernandez, NM|San Rafael Reef, UT",Analog Islandora Object Photography|General Islandora Object Photography,Table of Contents in English;eng|Inhaltsverzeichnis in deutscher Sprache;ger,English,1941|1943 \ No newline at end of file +io_01,Sample Repository Item,Sample Repository Item Abstract in English;eng|日本語のサンプルリポジトリアイテムの要約;jpn,Public digital access|Public Domain,Images Collection|Ansel Adams,Sample Repository Item Alternate Title;eng|Пример альтернативного названия элемента репозитория на русском языке;rus,1|2,"relators:art;Adams, Islandora Object Ansel Easton, 1902-1984|relators:pht;Adams, Islandora Object Ansel Easton, 1902-1984",Copyright Undetermined,"Weston, Islandora Object Edward, 1886-1958|Adams, Islandora Object Ansel Easton, 1902-1984","relators:art;Adams, Islandora Object Ansel Easton, 1902-1984|relators:pht;Weston, Islandora Object Edward, 1886-1958",2020-01-01,2010-01-01|1941-11,1941-11-01|1941-11,1943|1944,Sample Repository Item Description in English;eng|सैंपल रिपोजिटरी आइटम का विवरण हिंदी मे;hin,a digital identifier one|a digital identifier two,Ansel Adams Publishing Rights Trust|Johns Hopkins Sheridan Libraries,Open Seadragon,http://jscholarship.library.jhu.edu,DSpace Item ID,1 item|one image file,http://www.google.com,Analog|Nature,http://catalyst.library.jhu.edu,12345678,https://en.wikipedia.org/wiki/San_Rafael_Reef,123456,http://jhir.jhu.edu,English|German,http://catalog.library.jhu.edu,io-collection-01|io-collection-02,Image,oclc_one|oclc_two,Ansel Adams Publishing Rights Trust|Johns Hopkins Sheridan Libraries,Mountain Light Gallery|Nevada,Dataset|Image,"Hernandez, NM|San Rafael Reef, UT",Analog Islandora Object Photography|General Islandora Object Photography,Table of Contents in English;eng|Inhaltsverzeichnis in deutscher Sprache;ger,English,1941|1943 diff --git a/tests/10-migration-backend-tests/verification/expected/collection-01.json b/tests/10-migration-backend-tests/verification/expected/collection-01.json index ef6c7c7fae..bad964a32f 100644 --- a/tests/10-migration-backend-tests/verification/expected/collection-01.json +++ b/tests/10-migration-backend-tests/verification/expected/collection-01.json @@ -31,7 +31,10 @@ "member_of": [ "Parent Collection" ], - "finding_aid": + "access_terms": [ + "Parent Collection" + ], + "finding_aid": { "uri": "http://wikipedia.org", "title": "Wikipedia" diff --git a/tests/10-migration-backend-tests/verification/expected/collection-02.json b/tests/10-migration-backend-tests/verification/expected/collection-02.json index 0f1a1d5aed..67b55fdfc5 100644 --- a/tests/10-migration-backend-tests/verification/expected/collection-02.json +++ b/tests/10-migration-backend-tests/verification/expected/collection-02.json @@ -1,5 +1,8 @@ { "type": "node", "bundle": "collection_object", - "title": "Parent Collection" + "title": "Parent Collection", + "access_terms": [ + "Parent Collection" + ] } diff --git a/tests/10-migration-backend-tests/verification/expected/item-01.json b/tests/10-migration-backend-tests/verification/expected/item-01.json index ebb70292ea..ab8b377870 100644 --- a/tests/10-migration-backend-tests/verification/expected/item-01.json +++ b/tests/10-migration-backend-tests/verification/expected/item-01.json @@ -112,6 +112,10 @@ "Images Collection", "Ansel Adams" ], + "access_terms": [ + "Images Collection", + "Ansel Adams" + ], "model": { "name": "Image", "external_uri": "http://purl.org/coar/resource_type/c_c513" diff --git a/tests/10-migration-backend-tests/verification/expected/taxonomy-accessterms-01.json b/tests/10-migration-backend-tests/verification/expected/taxonomy-accessterms-01.json new file mode 100644 index 0000000000..7525762aaa --- /dev/null +++ b/tests/10-migration-backend-tests/verification/expected/taxonomy-accessterms-01.json @@ -0,0 +1,10 @@ +{ + "type": "taxonomy_term", + "bundle": "islandora_access", + "name": "Archives and Special Collections", + "description": { + "value": "

Collections from the archives

", + "format": "basic_html", + "processed": "

Collections from the archives

" + } +} diff --git a/tests/10-migration-backend-tests/verification/expected/taxonomy-accessterms-02.json b/tests/10-migration-backend-tests/verification/expected/taxonomy-accessterms-02.json new file mode 100644 index 0000000000..ef68ca203a --- /dev/null +++ b/tests/10-migration-backend-tests/verification/expected/taxonomy-accessterms-02.json @@ -0,0 +1,13 @@ +{ + "type": "taxonomy_term", + "bundle": "islandora_access", + "name": "Collection A", + "parent": [ + "Archives and Special Collections" + ], + "description": { + "value": "

For items in Collection A

", + "format": "basic_html", + "processed": "

For items in Collection A

" + } +} diff --git a/tests/10-migration-backend-tests/verification/expected_json_types_test.go b/tests/10-migration-backend-tests/verification/expected_json_types_test.go index 3878bedd16..73129b53e0 100644 --- a/tests/10-migration-backend-tests/verification/expected_json_types_test.go +++ b/tests/10-migration-backend-tests/verification/expected_json_types_test.go @@ -76,7 +76,8 @@ type ExpectedRepoObj struct { Extent []string FindingAid string `json:"finding_aid"` Genre []string - GeoportalLink string `json:"geoportal_link"` + GeoportalLink string `json:"geoportal_link"` + AccessTerms []string `json:"access_terms"` Issn string IsPartOf string `json:"is_part_of"` ItemBarcode string `json:"item_barcode"` @@ -122,6 +123,19 @@ type ExpectedAccessRights struct { } } +// Represents the expected results of a migrated Islandora Access Terms taxonomy term +type ExpectedIslandoraAccessTerms struct { + Type string + Bundle string + Name string + Parent []string `json:"parent"` + Description struct { + Value string + Format string + Processed string + } +} + // Represents the expected results of a migrated Copyright and Use taxonomy term type ExpectedCopyrightAndUse struct { Type string @@ -269,6 +283,7 @@ type ExpectedCollection struct { ContactName string `json:"contact_name"` CollectionNumber []string `json:"collection_number"` MemberOf []string `json:"member_of"` + AccessTerms []string `json:"access_terms"` FindingAid struct { Uri string Title string diff --git a/tests/10-migration-backend-tests/verification/jsonapi_types_test.go b/tests/10-migration-backend-tests/verification/jsonapi_types_test.go index d9d8cdb2ca..d05f531f87 100644 --- a/tests/10-migration-backend-tests/verification/jsonapi_types_test.go +++ b/tests/10-migration-backend-tests/verification/jsonapi_types_test.go @@ -4,11 +4,12 @@ import ( "encoding/json" "errors" "fmt" - "github.com/stretchr/testify/assert" "log" "net/url" "strings" "testing" + + "github.com/stretchr/testify/assert" ) // Encapsulates the relevant components of a URL which executes a JSON API request against Drupal @@ -165,6 +166,27 @@ type JsonApiAccessRights struct { } `json:"data"` } +// Represents the results of a JSONAPI query for a single Islandora Access Taxonomy Term +type JsonApiIslandoraAccessTerms struct { + JsonApiData []struct { + Type DrupalType + Id string + JsonApiAttributes struct { + Name string + Description struct { + Value string + Format string + Processed string + } + } `json:"attributes"` + JsonApiRelationships struct { + AccessTerms struct { + Data []JsonApiData + } `json:"parent"` + } `json:"relationships"` + } `json:"data"` +} + // Represents the results of a JSONAPI query for a single Copyright and Use Taxonomy Term type JsonApiCopyrightAndUse struct { JsonApiData []struct { @@ -257,10 +279,11 @@ type JsonApiCollection struct { Description struct { Data []JsonApiLanguageValue } `json:"field_description"` + AccessTerms struct { + Data []JsonApiData + } `json:"field_access_terms"` MemberOf struct { - Data []struct { - JsonApiData - } + Data []JsonApiData } `json:"field_member_of"` } `json:"relationships"` } `json:"data"` @@ -317,7 +340,6 @@ type JsonApiIslandoraObj struct { AccessRights struct { Data []JsonApiData } `json:"field_access_rights"` - // TODO AccessTerms struct { Data []JsonApiData } `json:"field_access_terms"` diff --git a/tests/10-migration-backend-tests/verification/verify_migrations_test.go b/tests/10-migration-backend-tests/verification/verify_migrations_test.go index 1839fd38d1..7627fce9f2 100644 --- a/tests/10-migration-backend-tests/verification/verify_migrations_test.go +++ b/tests/10-migration-backend-tests/verification/verify_migrations_test.go @@ -4,13 +4,14 @@ import ( "encoding/json" "errors" "fmt" - "github.com/stretchr/testify/assert" "io/ioutil" "log" "net/http" "os" "path/filepath" "testing" + + "github.com/stretchr/testify/assert" ) const ( @@ -136,6 +137,104 @@ func Test_VerifyTaxonomyTermAccessRights(t *testing.T) { } } +// Verifies that the Islandora Access Terms migrated by testcafe accessterms.csv +// match the expected fields and values present in taxonomy-person-01.json +// This is testing a term with no parent +func Test_VerifyTaxonomyTermIslandoraAccessTerms_Term1(t *testing.T) { + verifyTaxonomyTermIslandoraAccessTerms(t, "taxonomy-accessterms-01.json") +} + +// Verifies that the Islandora Access Terms migrated by testcafe accessterms.csv +// match the expected fields and values present in taxonomy-person-02.json +// This is testing a term with a parent +func Test_VerifyTaxonomyTermIslandoraAccessTerms_Term2(t *testing.T) { + verifyTaxonomyTermIslandoraAccessTerms(t, "taxonomy-accessterms-02.json") +} + +func verifyTaxonomyTermIslandoraAccessTerms(t *testing.T, fileName string) { + expectedJson := ExpectedIslandoraAccessTerms{} + + unmarshalJson(t, fileName, &expectedJson) + + // sanity check the expected json + assert.Equal(t, "taxonomy_term", expectedJson.Type) + assert.Equal(t, "islandora_access", expectedJson.Bundle) + + u := &JsonApiUrl{ + t: t, + baseUrl: DrupalBaseurl, + drupalEntity: expectedJson.Type, + drupalBundle: expectedJson.Bundle, + filter: "name", + value: expectedJson.Name, + } + + // retrieve json of the migrated entity from the jsonapi and unmarshal the single response + accessTermsRes := &JsonApiIslandoraAccessTerms{} + u.get(accessTermsRes) + + actual := accessTermsRes.JsonApiData[0] + assert.Equal(t, expectedJson.Type, actual.Type.entity()) + assert.Equal(t, expectedJson.Bundle, actual.Type.bundle()) + assert.Equal(t, expectedJson.Name, actual.JsonApiAttributes.Name) + assert.Equal(t, expectedJson.Description.Format, actual.JsonApiAttributes.Description.Format) + assert.Equal(t, expectedJson.Description.Value, actual.JsonApiAttributes.Description.Value) + assert.Equal(t, expectedJson.Description.Processed, actual.JsonApiAttributes.Description.Processed) + + // one test doesn't have a parent. + if len(expectedJson.Parent) != 0 { + u.value = expectedJson.Parent[0] + + // retrieve json of the resolved entity from the jsonapi + accessTermsRes = &JsonApiIslandoraAccessTerms{} + u.get(accessTermsRes) + relParent := accessTermsRes.JsonApiData[0] + + // sanity + assert.Equal(t, relParent.Type.bundle(), "islandora_access") + assert.Equal(t, relParent.Type.entity(), "taxonomy_term") + + // test + assert.Equal(t, expectedJson.Parent[0], relParent.JsonApiAttributes.Name) + } +} + +func Test_VerifyTaxonomyTermResourceType(t *testing.T) { + expectedJson := ExpectedResourceType{} + unmarshalJson(t, "taxonomy-resourcetypes.json", &expectedJson) + + // sanity check the expected json + assert.Equal(t, "taxonomy_term", expectedJson.Type) + assert.Equal(t, "resource_types", expectedJson.Bundle) + + u := &JsonApiUrl{ + t: t, + baseUrl: DrupalBaseurl, + drupalEntity: expectedJson.Type, + drupalBundle: expectedJson.Bundle, + filter: "name", + value: expectedJson.Name, + } + + // retrieve json of the migrated entity from the jsonapi and unmarshal the single response + res := &JsonApiResourceType{} + u.get(res) + + actual := res.JsonApiData[0] + assert.Equal(t, expectedJson.Type, actual.Type.entity()) + assert.Equal(t, expectedJson.Bundle, actual.Type.bundle()) + assert.Equal(t, expectedJson.Name, actual.JsonApiAttributes.Name) + assert.Equal(t, expectedJson.Description.Format, actual.JsonApiAttributes.Description.Format) + assert.Equal(t, expectedJson.Description.Value, actual.JsonApiAttributes.Description.Value) + assert.Equal(t, expectedJson.Description.Processed, actual.JsonApiAttributes.Description.Processed) + assert.Equal(t, len(expectedJson.Authority), len(actual.JsonApiAttributes.Authority)) + assert.Equal(t, 2, len(actual.JsonApiAttributes.Authority)) + for i, v := range actual.JsonApiAttributes.Authority { + assert.Equal(t, expectedJson.Authority[i].Source, v.Source) + assert.Equal(t, expectedJson.Authority[i].Uri, v.Uri) + } +} + func Test_VerifyTaxonomyCopyrightAndUse(t *testing.T) { expectedJson := ExpectedCopyrightAndUse{} unmarshalJson(t, "taxonomy-copyrightanduse.json", &expectedJson) @@ -318,42 +417,6 @@ func Test_VerifyTaxonomyTermGeolocation(t *testing.T) { } } -func Test_VerifyTaxonomyTermResourceType(t *testing.T) { - expectedJson := ExpectedAccessRights{} - unmarshalJson(t, "taxonomy-resourcetypes.json", &expectedJson) - - // sanity check the expected json - assert.Equal(t, "taxonomy_term", expectedJson.Type) - assert.Equal(t, "resource_types", expectedJson.Bundle) - - u := &JsonApiUrl{ - t: t, - baseUrl: DrupalBaseurl, - drupalEntity: expectedJson.Type, - drupalBundle: expectedJson.Bundle, - filter: "name", - value: expectedJson.Name, - } - - // retrieve json of the migrated entity from the jsonapi and unmarshal the single response - res := &JsonApiResourceType{} - u.get(res) - - actual := res.JsonApiData[0] - assert.Equal(t, expectedJson.Type, actual.Type.entity()) - assert.Equal(t, expectedJson.Bundle, actual.Type.bundle()) - assert.Equal(t, expectedJson.Name, actual.JsonApiAttributes.Name) - assert.Equal(t, expectedJson.Description.Format, actual.JsonApiAttributes.Description.Format) - assert.Equal(t, expectedJson.Description.Value, actual.JsonApiAttributes.Description.Value) - assert.Equal(t, expectedJson.Description.Processed, actual.JsonApiAttributes.Description.Processed) - assert.Equal(t, len(expectedJson.Authority), len(actual.JsonApiAttributes.Authority)) - assert.Equal(t, 2, len(actual.JsonApiAttributes.Authority)) - for i, v := range actual.JsonApiAttributes.Authority { - assert.Equal(t, expectedJson.Authority[i].Source, v.Source) - assert.Equal(t, expectedJson.Authority[i].Uri, v.Uri) - } -} - func Test_VerifyTaxonomySubject(t *testing.T) { expectedJson := ExpectedSubject{} unmarshalJson(t, "taxonomy-subject.json", &expectedJson) @@ -528,12 +591,14 @@ func Test_VerifyCollection(t *testing.T) { relData := res.JsonApiData[0].JsonApiRelationships + strB, _ := json.Marshal(relData) + log.Println(string(strB)) + // Resolve and verify title language assert.NotNil(t, relData.TitleLanguage.Data) assert.Equal(t, "taxonomy_term", relData.TitleLanguage.Data.Type.entity()) assert.Equal(t, "language", relData.TitleLanguage.Data.Type.bundle()) assert.Equal(t, expectedJson.TitleLangCode, relData.TitleLanguage.Data.langCode(t)) - // Resolve and verify alternate title values and languages assert.NotNil(t, relData.AltTitle.Data) assert.Equal(t, 2, len(relData.AltTitle.Data)) @@ -576,7 +641,28 @@ func Test_VerifyCollection(t *testing.T) { u.get(&memberCol) assert.Equal(t, expectedJson.MemberOf[i], memberCol.JsonApiData[0].JsonApiAttributes.Title) + } + // Resolve and verify access_terms values + assert.NotNil(t, relData.AccessTerms) + assert.Equal(t, 1, len(relData.AccessTerms.Data)) + assert.Equal(t, len(expectedJson.AccessTerms), len(relData.AccessTerms.Data)) + for i, accessTermsData := range relData.AccessTerms.Data { + assert.Equal(t, "taxonomy_term", accessTermsData.Type.entity()) + assert.Equal(t, "islandora_access", accessTermsData.Type.bundle()) + + u = &JsonApiUrl{ + t: t, + baseUrl: DrupalBaseurl, + drupalEntity: accessTermsData.Type.entity(), + drupalBundle: accessTermsData.Type.bundle(), + filter: "id", + value: accessTermsData.Id, + } + accessTerm := JsonApiIslandoraAccessTerms{} + u.get(&accessTerm) + + assert.Equal(t, expectedJson.AccessTerms[i], accessTerm.JsonApiData[0].JsonApiAttributes.Name) } } @@ -689,6 +775,15 @@ func Test_VerifyRepositoryItem(t *testing.T) { assert.Equal(t, expectedJson.AccessRights[i], expectedAccessRights.JsonApiData[0].JsonApiAttributes.Name) } + // Access Terms + assert.Equal(t, 2, len(expectedJson.AccessTerms)) + assert.Equal(t, len(expectedJson.AccessTerms), len(relData.AccessTerms.Data)) + for i := range relData.AccessTerms.Data { + expectedAccessTerms := &JsonApiIslandoraAccessTerms{} + relData.AccessTerms.Data[i].resolve(t, expectedAccessTerms) + assert.Equal(t, expectedJson.AccessTerms[i], expectedAccessTerms.JsonApiData[0].JsonApiAttributes.Name) + } + // Alt title assert.Equal(t, 2, len(expectedJson.AltTitle)) assert.Equal(t, len(expectedJson.AltTitle), len(relData.AltTitle.Data)) From fdc8b217b9979c5bd7c0a649b183520ed852e886 Mon Sep 17 00:00:00 2001 From: Bethany Seeger Date: Mon, 5 Apr 2021 16:03:38 -0400 Subject: [PATCH 8/9] Fixed the migration tests. Minor tweaks to other things. --- ...eld.node.collection_object.field_model.yml | 20 +- ...ield.node.islandora_object.field_model.yml | 6 + .../search_api.index.default_solr_index.yml | 17 +- codebase/config/sync/user.role.anonymous.yml | 4 + .../config/sync/user.role.authenticated.yml | 4 + .../sync/user.role.collection_level_admin.yml | 3 + .../config/sync/user.role.global_admin.yml | 3 + .../views.view.collection_object_models.yml | 252 ++++++++++++++++++ .../testcafe/migrate_tests.spec.js | 11 + .../verification/verify_migrations_test.go | 31 +-- 10 files changed, 321 insertions(+), 30 deletions(-) create mode 100644 codebase/config/sync/views.view.collection_object_models.yml diff --git a/codebase/config/sync/field.field.node.collection_object.field_model.yml b/codebase/config/sync/field.field.node.collection_object.field_model.yml index 04896d54b5..f6cd6f5d4e 100644 --- a/codebase/config/sync/field.field.node.collection_object.field_model.yml +++ b/codebase/config/sync/field.field.node.collection_object.field_model.yml @@ -5,9 +5,14 @@ dependencies: config: - field.storage.node.field_model - node.type.collection_object - - taxonomy.vocabulary.islandora_models content: - 'taxonomy_term:islandora_models:e9ee0e3a-791b-4888-8ace-3c1529380dd1' + module: + - epp +third_party_settings: + epp: + value: '' + on_update: 1 id: node.collection_object.field_model field_name: field_model entity_type: node @@ -21,13 +26,10 @@ default_value: target_uuid: e9ee0e3a-791b-4888-8ace-3c1529380dd1 default_value_callback: '' settings: - handler: 'default:taxonomy_term' + handler: views handler_settings: - target_bundles: - islandora_models: islandora_models - sort: - field: name - direction: asc - auto_create: false - auto_create_bundle: '' + view: + view_name: collection_object_models + display_name: entity_reference_1 + arguments: { } field_type: entity_reference diff --git a/codebase/config/sync/field.field.node.islandora_object.field_model.yml b/codebase/config/sync/field.field.node.islandora_object.field_model.yml index 02700d3eb6..46ac449f71 100644 --- a/codebase/config/sync/field.field.node.islandora_object.field_model.yml +++ b/codebase/config/sync/field.field.node.islandora_object.field_model.yml @@ -8,6 +8,12 @@ dependencies: enforced: module: - islandora_defaults + module: + - epp +third_party_settings: + epp: + value: '' + on_update: 1 _core: default_config_hash: T8b37Vjp-fwzxYT0ebD4CZEIvVM1NmZkK2bStnHYskw id: node.islandora_object.field_model diff --git a/codebase/config/sync/search_api.index.default_solr_index.yml b/codebase/config/sync/search_api.index.default_solr_index.yml index 8d828de8b5..8fe97ce2e9 100644 --- a/codebase/config/sync/search_api.index.default_solr_index.yml +++ b/codebase/config/sync/search_api.index.default_solr_index.yml @@ -6,15 +6,16 @@ dependencies: - search_api_solr - node - user - - content_translation - - taxonomy - token + - taxonomy + - content_translation - search_api config: - - field.storage.node.body - field.storage.node.field_abstract - field.storage.node.field_access_rights + - field.storage.node.field_access_terms - field.storage.node.field_alternative_title + - field.storage.node.body - field.storage.node.field_citable_url - field.storage.node.field_collection_contact_name - field.storage.node.field_collection_number @@ -34,7 +35,6 @@ dependencies: - field.storage.node.field_featured_item - field.storage.node.field_finding_aid - field.storage.node.field_genre - - field.storage.taxonomy_term.field_geo_alt_name - field.storage.node.field_geoportal_link - field.storage.node.field_image - field.storage.node.field_is_part_of @@ -54,6 +54,7 @@ dependencies: - field.storage.node.field_table_of_contents - field.storage.node.field_tags - field.storage.node.field_years + - field.storage.taxonomy_term.field_geo_alt_name - search_api.server.default_solr_server - core.entity_view_mode.node.search_index third_party_settings: @@ -184,6 +185,14 @@ field_settings: dependencies: config: - field.storage.node.field_access_rights + field_access_terms: + label: 'Access Terms' + datasource_id: 'entity:node' + property_path: field_access_terms + type: integer + dependencies: + config: + - field.storage.node.field_access_terms field_alternative_title: label: 'Alternative Title' datasource_id: 'entity:node' diff --git a/codebase/config/sync/user.role.anonymous.yml b/codebase/config/sync/user.role.anonymous.yml index 43d3f2e858..94a17e7cfd 100644 --- a/codebase/config/sync/user.role.anonymous.yml +++ b/codebase/config/sync/user.role.anonymous.yml @@ -14,6 +14,10 @@ permissions: - 'restful get oai_pmh' - 'search content' - 'use text format restricted_html' + - 'view field_access_terms' - 'view field_citable_url' + - 'view field_model' - 'view media' + - 'view own field_access_terms' - 'view own field_citable_url' + - 'view own field_model' diff --git a/codebase/config/sync/user.role.authenticated.yml b/codebase/config/sync/user.role.authenticated.yml index 321e182ca9..d3b0671a9f 100644 --- a/codebase/config/sync/user.role.authenticated.yml +++ b/codebase/config/sync/user.role.authenticated.yml @@ -16,6 +16,10 @@ permissions: - 'restful get oai_pmh' - 'search content' - 'use text format basic_html' + - 'view field_access_terms' - 'view field_citable_url' + - 'view field_model' - 'view media' + - 'view own field_access_terms' - 'view own field_citable_url' + - 'view own field_model' diff --git a/codebase/config/sync/user.role.collection_level_admin.yml b/codebase/config/sync/user.role.collection_level_admin.yml index eb9a7a46b9..e836c413f6 100644 --- a/codebase/config/sync/user.role.collection_level_admin.yml +++ b/codebase/config/sync/user.role.collection_level_admin.yml @@ -21,6 +21,7 @@ permissions: - 'create extracted_text media' - 'create field_access_control' - 'create field_access_terms' + - 'create field_model' - 'create file media' - 'create fits_technical_metadata media' - 'create image media' @@ -50,12 +51,14 @@ permissions: - 'edit any video media' - 'edit field_access_control' - 'edit field_access_terms' + - 'edit field_model' - 'edit own audio media' - 'edit own collection_object content' - 'edit own document media' - 'edit own extracted_text media' - 'edit own field_access_control' - 'edit own field_access_terms' + - 'edit own field_model' - 'edit own file media' - 'edit own fits_technical_metadata media' - 'edit own image media' diff --git a/codebase/config/sync/user.role.global_admin.yml b/codebase/config/sync/user.role.global_admin.yml index c2fb798ef8..8c483b7fc9 100644 --- a/codebase/config/sync/user.role.global_admin.yml +++ b/codebase/config/sync/user.role.global_admin.yml @@ -34,6 +34,7 @@ permissions: - 'create field_access_control' - 'create field_access_group' - 'create field_access_terms' + - 'create field_model' - 'create file media' - 'create fits_technical_metadata media' - 'create image media' @@ -76,6 +77,7 @@ permissions: - 'edit field_access_control' - 'edit field_access_group' - 'edit field_access_terms' + - 'edit field_model' - 'edit own audio media' - 'edit own collection_object content' - 'edit own document media' @@ -83,6 +85,7 @@ permissions: - 'edit own field_access_control' - 'edit own field_access_group' - 'edit own field_access_terms' + - 'edit own field_model' - 'edit own file media' - 'edit own fits_technical_metadata media' - 'edit own image media' diff --git a/codebase/config/sync/views.view.collection_object_models.yml b/codebase/config/sync/views.view.collection_object_models.yml new file mode 100644 index 0000000000..df8221e96a --- /dev/null +++ b/codebase/config/sync/views.view.collection_object_models.yml @@ -0,0 +1,252 @@ +uuid: 87aa2d8b-c59a-49cd-905f-8da4ebf8757a +langcode: en +status: true +dependencies: + config: + - taxonomy.vocabulary.islandora_models + module: + - taxonomy + - user +id: collection_object_models +label: 'Collection Object Models' +module: views +description: 'These are the models in Islandora Models that are applicable to Repository Items. View is used on the Repository Item Edit page' +tag: '' +base_table: taxonomy_term_field_data +base_field: tid +display: + default: + display_plugin: default + id: default + display_title: Master + position: 0 + display_options: + access: + type: perm + options: + perm: 'access content' + cache: + type: tag + options: { } + query: + type: views_query + options: + disable_sql_rewrite: false + distinct: false + replica: false + query_comment: '' + query_tags: { } + exposed_form: + type: basic + options: + submit_button: Apply + reset_button: false + reset_button_label: Reset + exposed_sorts_label: 'Sort by' + expose_sort_order: true + sort_asc_label: Asc + sort_desc_label: Desc + pager: + type: mini + options: + items_per_page: 10 + offset: 0 + id: 0 + total_pages: null + expose: + items_per_page: false + items_per_page_label: 'Items per page' + items_per_page_options: '5, 10, 25, 50' + items_per_page_options_all: false + items_per_page_options_all_label: '- All -' + offset: false + offset_label: Offset + tags: + previous: ‹‹ + next: ›› + style: + type: default + options: + grouping: { } + row_class: '' + default_row_class: true + uses_fields: false + row: + type: fields + options: + inline: { } + separator: '' + hide_empty: false + default_field_elements: true + fields: + name: + id: name + table: taxonomy_term_field_data + field: name + relationship: none + group_type: group + admin_label: '' + label: '' + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: false + ellipsis: false + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: false + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: value + type: string + settings: + link_to_entity: true + group_column: value + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + convert_spaces: false + entity_type: taxonomy_term + entity_field: name + plugin_id: term_name + filters: + status: + value: '1' + table: taxonomy_term_field_data + field: status + plugin_id: boolean + entity_type: taxonomy_term + entity_field: status + id: status + expose: + operator: '' + operator_limit_selection: false + operator_list: { } + group: 1 + vid: + id: vid + table: taxonomy_term_field_data + field: vid + value: + islandora_models: islandora_models + entity_type: taxonomy_term + entity_field: vid + plugin_id: bundle + expose: + operator_limit_selection: false + operator_list: { } + name: + id: name + table: taxonomy_term_field_data + field: name + relationship: none + group_type: group + admin_label: '' + operator: '=' + value: Collection + group: 1 + exposed: false + expose: + operator_id: name_op + label: Name + description: '' + use_operator: false + operator: name_op + operator_limit_selection: false + operator_list: { } + identifier: name + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + anonymous: '0' + administrator: '0' + fedoraadmin: '0' + staff: '0' + placeholder: '' + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + entity_type: taxonomy_term + entity_field: name + plugin_id: string + sorts: { } + header: { } + footer: { } + empty: { } + relationships: { } + arguments: { } + display_extenders: { } + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - url.query_args + - user.permissions + tags: { } + entity_reference_1: + display_plugin: entity_reference + id: entity_reference_1 + display_title: 'Entity Reference' + position: 1 + display_options: + display_extenders: { } + style: + type: entity_reference + options: + search_fields: + name: name + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - user.permissions + tags: { } diff --git a/tests/10-migration-backend-tests/testcafe/migrate_tests.spec.js b/tests/10-migration-backend-tests/testcafe/migrate_tests.spec.js index 5def3bf849..c71c565f2b 100644 --- a/tests/10-migration-backend-tests/testcafe/migrate_tests.spec.js +++ b/tests/10-migration-backend-tests/testcafe/migrate_tests.spec.js @@ -243,6 +243,17 @@ test('Perform Genre Taxonomy Migration', async t => { test('Perform Repository Object Migration', async t => { // Migrate dependencies first + // access terms + await t + .click(selectMigration) + .click(migrationOptions.withAttribute('value', migrate_islandora_accessterms_taxonomy)); + + await t + .setFilesToUpload('#edit-source-file', [ + './migrations/islandora_object-accessterms.csv' + ]) + .click('#edit-import'); + // persons await t .click(selectMigration) diff --git a/tests/10-migration-backend-tests/verification/verify_migrations_test.go b/tests/10-migration-backend-tests/verification/verify_migrations_test.go index 7627fce9f2..1abdaa345c 100644 --- a/tests/10-migration-backend-tests/verification/verify_migrations_test.go +++ b/tests/10-migration-backend-tests/verification/verify_migrations_test.go @@ -199,13 +199,13 @@ func verifyTaxonomyTermIslandoraAccessTerms(t *testing.T, fileName string) { } } -func Test_VerifyTaxonomyTermResourceType(t *testing.T) { - expectedJson := ExpectedResourceType{} - unmarshalJson(t, "taxonomy-resourcetypes.json", &expectedJson) +func Test_VerifyTaxonomyCopyrightAndUse(t *testing.T) { + expectedJson := ExpectedCopyrightAndUse{} + unmarshalJson(t, "taxonomy-copyrightanduse.json", &expectedJson) // sanity check the expected json assert.Equal(t, "taxonomy_term", expectedJson.Type) - assert.Equal(t, "resource_types", expectedJson.Bundle) + assert.Equal(t, "copyright_and_use", expectedJson.Bundle) u := &JsonApiUrl{ t: t, @@ -217,10 +217,10 @@ func Test_VerifyTaxonomyTermResourceType(t *testing.T) { } // retrieve json of the migrated entity from the jsonapi and unmarshal the single response - res := &JsonApiResourceType{} - u.get(res) + copyrightRes := &JsonApiCopyrightAndUse{} + u.get(copyrightRes) - actual := res.JsonApiData[0] + actual := copyrightRes.JsonApiData[0] assert.Equal(t, expectedJson.Type, actual.Type.entity()) assert.Equal(t, expectedJson.Bundle, actual.Type.bundle()) assert.Equal(t, expectedJson.Name, actual.JsonApiAttributes.Name) @@ -235,13 +235,13 @@ func Test_VerifyTaxonomyTermResourceType(t *testing.T) { } } -func Test_VerifyTaxonomyCopyrightAndUse(t *testing.T) { - expectedJson := ExpectedCopyrightAndUse{} - unmarshalJson(t, "taxonomy-copyrightanduse.json", &expectedJson) +func Test_VerifyTaxonomyTermResourceType(t *testing.T) { + expectedJson := ExpectedResourceType{} + unmarshalJson(t, "taxonomy-resourcetypes.json", &expectedJson) // sanity check the expected json assert.Equal(t, "taxonomy_term", expectedJson.Type) - assert.Equal(t, "copyright_and_use", expectedJson.Bundle) + assert.Equal(t, "resource_types", expectedJson.Bundle) u := &JsonApiUrl{ t: t, @@ -253,10 +253,10 @@ func Test_VerifyTaxonomyCopyrightAndUse(t *testing.T) { } // retrieve json of the migrated entity from the jsonapi and unmarshal the single response - copyrightRes := &JsonApiCopyrightAndUse{} - u.get(copyrightRes) + res := &JsonApiResourceType{} + u.get(res) - actual := copyrightRes.JsonApiData[0] + actual := res.JsonApiData[0] assert.Equal(t, expectedJson.Type, actual.Type.entity()) assert.Equal(t, expectedJson.Bundle, actual.Type.bundle()) assert.Equal(t, expectedJson.Name, actual.JsonApiAttributes.Name) @@ -591,9 +591,6 @@ func Test_VerifyCollection(t *testing.T) { relData := res.JsonApiData[0].JsonApiRelationships - strB, _ := json.Marshal(relData) - log.Println(string(strB)) - // Resolve and verify title language assert.NotNil(t, relData.TitleLanguage.Data) assert.Equal(t, "taxonomy_term", relData.TitleLanguage.Data.Type.entity()) From 1549d1ae4aafd203e4cb42757883be1d20e64130 Mon Sep 17 00:00:00 2001 From: Bethany Seeger Date: Tue, 6 Apr 2021 08:35:44 -0400 Subject: [PATCH 9/9] Updates .env file. --- .env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env b/.env index 3074c00efe..d80754ecdd 100644 --- a/.env +++ b/.env @@ -69,7 +69,7 @@ REPOSITORY=ghcr.io/jhu-sheridan-libraries/idc-isle-dc TAG=upstream-20200824-f8d1e8e-23-g9fe79fc # Docker image and tag for snapshot image -SNAPSHOT_TAG=upstream-20201007-739693ae-223-ga8d6180.1616414495 +SNAPSHOT_TAG=upstream-20201007-739693ae-218-gfdc8b21.1617653579 # IdP, SP entity URIs and base URLs SP_BASEURL=https://islandora-idc.traefik.me