diff --git a/composer.json b/composer.json index 89cc7c1c8..cbeea6607 100644 --- a/composer.json +++ b/composer.json @@ -157,6 +157,7 @@ "drupal/entity_share": "^3.0@RC", "drupal/entity_share_cron": "^3.0", "drupal/entity_usage": "^2.0", + "drupal/entitygroupfield": "^2.0@alpha", "drupal/external_entities": "2.x-dev@dev", "drupal/features": "5.0.x-dev@dev", "drupal/feeds": "^3.0@beta", @@ -165,6 +166,8 @@ "drupal/field_group": "^3.0", "drupal/file_delete": "^2.0", "drupal/google_analytics": "^4.0", + "drupal/group": "^3.2", + "drupal/group_content_menu": "^3.0", "drupal/heading": "^1.7", "drupal/honeypot": "^2.1", "drupal/image_class": "^2.0", @@ -319,6 +322,10 @@ "drupal/feeds": { "Custom (gh#365) - Remove Url creation from feeds_install which breaks site installation on prod": "patches/unlcms-365-feeds-remove-url-creation.patch" }, + "drupal/group": { + "2815971 - More contexts needed": "patches/group-context-2815971-52.patch", + "2774827 - Get a token of a node's parent group to create a pathauto pattern": "patches/group-2774827-90-gnode-tokens-updated-for-3.0.x-dev.patch" + }, "drupal/heading": { "3354814 - Configuration schema is not complete": "patches/3354814-heading-config-schema.patch" }, diff --git a/composer.lock b/composer.lock index 7e55950cf..d7f2e9134 100644 --- a/composer.lock +++ b/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": "57a336d6cbdce8a7e4983c1649a6d411", + "content-hash": "88393d750055006f7b3893e89764584f", "packages": [ { "name": "arthurkushman/query-path", @@ -2827,6 +2827,75 @@ "issues": "https://www.drupal.org/project/issues/diff" } }, + { + "name": "drupal/entity", + "version": "1.4.0", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/entity.git", + "reference": "8.x-1.4" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/entity-8.x-1.4.zip", + "reference": "8.x-1.4", + "shasum": "1cf7712318fad144eab106a8fcfcd396aeb5676f" + }, + "require": { + "drupal/core": "^9.2|^10.0" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "8.x-1.4", + "datestamp": "1661898023", + "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": "Berdir", + "homepage": "https://www.drupal.org/user/214652" + }, + { + "name": "bojanz", + "homepage": "https://www.drupal.org/user/86106" + }, + { + "name": "dawehner", + "homepage": "https://www.drupal.org/user/99340" + }, + { + "name": "dixon_", + "homepage": "https://www.drupal.org/user/239911" + }, + { + "name": "fago", + "homepage": "https://www.drupal.org/user/16747" + }, + { + "name": "mglaman", + "homepage": "https://www.drupal.org/user/2416470" + }, + { + "name": "TR", + "homepage": "https://www.drupal.org/user/202830" + } + ], + "description": "Provides expanded entity APIs, which will be moved to Drupal core one day.", + "homepage": "https://www.drupal.org/project/entity", + "support": { + "source": "https://git.drupalcode.org/project/entity", + "issues": "https://www.drupal.org/project/issues/entity" + } + }, { "name": "drupal/entity_reference_revisions", "version": "1.10.0", @@ -3149,6 +3218,61 @@ "issues": "http://drupal.org/project/issues/entity_usage" } }, + { + "name": "drupal/entitygroupfield", + "version": "2.0.0-alpha1", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/entitygroupfield.git", + "reference": "2.0.0-alpha1" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/entitygroupfield-2.0.0-alpha1.zip", + "reference": "2.0.0-alpha1", + "shasum": "8a652543ba7cf587d023c8e4e8652592691b3565" + }, + "require": { + "drupal/core": "^9.2 || ^10", + "drupal/group": "^2.0 || ^3.0" + }, + "require-dev": { + "drupal/variationcache": "~1.0" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "2.0.0-alpha1", + "datestamp": "1687130173", + "security-coverage": { + "status": "not-covered", + "message": "Alpha releases are not covered by Drupal security advisories." + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "Derek Wright", + "homepage": "https://www.drupal.org/u/dww", + "role": "Maintainer" + }, + { + "name": "Ivan Duarte", + "homepage": "https://www.drupal.org/u/jidrone", + "role": "Co-Maintainer" + } + ], + "description": "Defines a field to view and edit the groups associated with content.", + "homepage": "http://drupal.org/project/entitygroupfield", + "support": { + "source": "https://git.drupalcode.org/project/entitygroupfield", + "issues": "https://drupal.org/project/issues/entitygroupfield" + } + }, { "name": "drupal/external_entities", "version": "dev-2.x", @@ -3831,6 +3955,58 @@ "source": "https://git.drupalcode.org/project/file_mdm" } }, + { + "name": "drupal/flexible_permissions", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/flexible_permissions.git", + "reference": "1.1.0" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/flexible_permissions-1.1.0.zip", + "reference": "1.1.0", + "shasum": "cfda615388131e96a5cf3fce1f24b1c220f91fce" + }, + "require": { + "drupal/core": "^9.5 || ^10", + "drupal/variationcache": "^1.0" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "1.1.0", + "datestamp": "1697027409", + "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": "Kristiaan Van den Eynde", + "homepage": "https://www.drupal.org/u/kristiaanvandeneynde", + "role": "Maintainer" + }, + { + "name": "Mathias Wächter", + "homepage": "https://www.drupal.org/u/mef", + "role": "Maintainer" + } + ], + "description": "This module allows you to gather, calculate and cache permissions from a myriad of sources", + "homepage": "http://drupal.org/project/flexible_permissions", + "support": { + "source": "https://git.drupalcode.org/project/flexible_permissions", + "issues": "https://drupal.org/project/issues/flexible_permissions" + } + }, { "name": "drupal/google_analytics", "version": "4.0.2", @@ -3902,6 +4078,116 @@ "issues": "https://www.drupal.org/project/issues/google_analytics" } }, + { + "name": "drupal/group", + "version": "3.2.2", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/group.git", + "reference": "3.2.2" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/group-3.2.2.zip", + "reference": "3.2.2", + "shasum": "d44d51828ca6554c32aa2d27e3a898e1d38b9efa" + }, + "require": { + "drupal/core": "^9.5 || ^10", + "drupal/entity": "^1.2", + "drupal/flexible_permissions": "^1.0" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "3.2.2", + "datestamp": "1701886939", + "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": "Kristiaan Van den Eynde", + "homepage": "https://www.drupal.org/u/kristiaanvandeneynde", + "role": "Maintainer" + }, + { + "name": "kristiaanvandeneynde", + "homepage": "https://www.drupal.org/user/1345130" + } + ], + "description": "This module allows you to group users, content and other entities", + "homepage": "http://drupal.org/project/group", + "support": { + "source": "https://git.drupalcode.org/project/group", + "issues": "https://drupal.org/project/issues/group" + } + }, + { + "name": "drupal/group_content_menu", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/group_content_menu.git", + "reference": "3.0.2" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/group_content_menu-3.0.2.zip", + "reference": "3.0.2", + "shasum": "542c84b0031ba049713e67ca3781c21047f3a541" + }, + "require": { + "drupal/core": "^9.1 || ^10", + "drupal/group": "^3.0@beta" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "3.0.2", + "datestamp": "1717168696", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0+" + ], + "authors": [ + { + "name": "Lucas Hedding", + "homepage": "https://www.drupal.org/u/heddn", + "role": "Maintainer" + }, + { + "name": "Ghost of Drupal Past", + "homepage": "https://www.drupal.org/user/3619592" + }, + { + "name": "heddn", + "homepage": "https://www.drupal.org/user/1463982" + } + ], + "description": "Provides features for a menu per group", + "homepage": "https://www.drupal.org/project/group_content_menu", + "keywords": [ + "Drupal" + ], + "support": { + "source": "https://git.drupalcode.org/project/group_content_menu", + "issues": "https://www.drupal.org/project/issues/group_content_menu" + } + }, { "name": "drupal/heading", "version": "1.7.0", @@ -6405,6 +6691,57 @@ "issues": "https://www.drupal.org/project/issues/twig_ui" } }, + { + "name": "drupal/variationcache", + "version": "1.5.0", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/variationcache.git", + "reference": "8.x-1.5" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/variationcache-8.x-1.5.zip", + "reference": "8.x-1.5", + "shasum": "6165baee8c6fe5a7773f3499896e8fb464607a32" + }, + "require": { + "drupal/core": "^9.5 || ^10" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "8.x-1.5", + "datestamp": "1705485386", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0+" + ], + "authors": [ + { + "name": "Kristiaan Van den Eynde", + "homepage": "https://www.drupal.org/u/kristiaanvandeneynde", + "role": "Maintainer" + }, + { + "name": "Brad Jones", + "homepage": "https://www.drupal.org/u/bradjones1", + "role": "Maintainer" + } + ], + "description": "This project provides VariationCache, a redirect-aware caching implementation.", + "homepage": "http://drupal.org/project/variationcache", + "support": { + "source": "https://git.drupalcode.org/project/variationcache", + "issues": "https://drupal.org/project/issues/variationcache" + } + }, { "name": "drupal/views_data_export", "version": "1.4.0", @@ -12604,16 +12941,16 @@ }, { "name": "unlcms/unl_five", - "version": "10.5.3.19", + "version": "10.5.3.20", "source": { "type": "git", "url": "https://github.com/unlcms/unl_five.git", - "reference": "b15510427e4e2ebd55ebf935b8ee1371213d9fd4" + "reference": "064cf201f8db5ee3289eacdd7f6342841ecaf5b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/unlcms/unl_five/zipball/b15510427e4e2ebd55ebf935b8ee1371213d9fd4", - "reference": "b15510427e4e2ebd55ebf935b8ee1371213d9fd4", + "url": "https://api.github.com/repos/unlcms/unl_five/zipball/064cf201f8db5ee3289eacdd7f6342841ecaf5b9", + "reference": "064cf201f8db5ee3289eacdd7f6342841ecaf5b9", "shasum": "" }, "require": { @@ -12631,9 +12968,9 @@ "description": "UNLedu Framework 5.x theme.", "support": { "issues": "https://github.com/unlcms/unl_five/issues", - "source": "https://github.com/unlcms/unl_five/tree/10.5.3.19" + "source": "https://github.com/unlcms/unl_five/tree/10.5.3.20" }, - "time": "2024-04-25T17:12:37+00:00" + "time": "2024-06-07T18:40:55+00:00" }, { "name": "unlcms/unl_multisite", @@ -17269,6 +17606,7 @@ "drupal/config_update": 15, "drupal/default_content": 15, "drupal/entity_share": 5, + "drupal/entitygroupfield": 15, "drupal/external_entities": 20, "drupal/features": 20, "drupal/feeds": 10, @@ -17290,5 +17628,5 @@ "ext-dom": "*" }, "platform-dev": [], - "plugin-api-version": "2.6.0" + "plugin-api-version": "2.3.0" } diff --git a/config/sync/block.block.subsitemenu.yml b/config/sync/block.block.subsitemenu.yml new file mode 100644 index 000000000..93d0dfa1b --- /dev/null +++ b/config/sync/block.block.subsitemenu.yml @@ -0,0 +1,27 @@ +uuid: 393f755f-a83c-4d6a-b696-c9049d4c0b38 +langcode: en +status: true +dependencies: + config: + - group_content_menu.group_content_menu_type.gcm_subsite_menu + module: + - group_content_menu + theme: + - unl_five_herbie +id: subsitemenu +theme: unl_five_herbie +region: navlinks +weight: -4 +provider: null +plugin: 'group_content_menu:gcm_subsite_menu' +settings: + id: 'group_content_menu:gcm_subsite_menu' + label: 'Subsite menu' + label_display: '0' + provider: group_content_menu + context_mapping: + group: '@group.group_route_context:group' + level: 1 + depth: 0 + expand_all_items: true +visibility: { } diff --git a/config/sync/block.block.unl_five_herbie_local_tasks.yml b/config/sync/block.block.unl_five_herbie_local_tasks.yml index 778432ad7..715523062 100644 --- a/config/sync/block.block.unl_five_herbie_local_tasks.yml +++ b/config/sync/block.block.unl_five_herbie_local_tasks.yml @@ -2,6 +2,8 @@ uuid: 7bcae009-2daf-45fe-856d-f3775daa1f90 langcode: en status: true dependencies: + module: + - user theme: - unl_five_herbie _core: @@ -9,7 +11,7 @@ _core: id: unl_five_herbie_local_tasks theme: unl_five_herbie region: navlinks -weight: -4 +weight: -5 provider: null plugin: local_tasks_block settings: diff --git a/config/sync/config_ignore.settings.yml b/config/sync/config_ignore.settings.yml index 2023d35a3..6027e7380 100644 --- a/config/sync/config_ignore.settings.yml +++ b/config/sync/config_ignore.settings.yml @@ -7,6 +7,7 @@ ignored_config_entities: - ~block.block.breadcrumbs - ~block.block.mainnavigation - ~block.block.mainpagecontent + - ~block.block.subsitemenu - ~block.block.claro_breadcrumbs - ~block.block.claro_content - ~block.block.claro_messages diff --git a/config/sync/core.base_field_override.group.group_subsite.label.yml b/config/sync/core.base_field_override.group.group_subsite.label.yml new file mode 100644 index 000000000..8e0b2ab61 --- /dev/null +++ b/config/sync/core.base_field_override.group.group_subsite.label.yml @@ -0,0 +1,20 @@ +uuid: 380e63b8-8c24-459b-a175-d54396e07b7e +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite +_core: + default_config_hash: mUacsIEy7KcxhlxphUEg5wGzuC6Ra8v6yVJ7yMC9tKg +id: group.group_subsite.label +field_name: label +entity_type: group +bundle: group_subsite +label: 'Subsite name' +description: '' +required: true +translatable: true +default_value: { } +default_value_callback: '' +settings: { } +field_type: string diff --git a/config/sync/core.entity_form_display.group.group_subsite.default.yml b/config/sync/core.entity_form_display.group.group_subsite.default.yml new file mode 100644 index 000000000..d1241b3a4 --- /dev/null +++ b/config/sync/core.entity_form_display.group.group_subsite.default.yml @@ -0,0 +1,49 @@ +uuid: 3947a290-4ce9-4438-9101-3244d38a4801 +langcode: en +status: true +dependencies: + config: + - field.field.group.group_subsite.group_subsite_node_reference + - group.type.group_subsite + module: + - path +_core: + default_config_hash: UQQvqGuooqrzRxw3aLY_Gubd2GfbXnK9B38Cb_6xyl0 +id: group.group_subsite.default +targetEntityType: group +bundle: group_subsite +mode: default +content: + group_subsite_node_reference: + type: entity_reference_autocomplete + weight: 1 + region: content + settings: + match_operator: CONTAINS + match_limit: 10 + size: 60 + placeholder: '' + third_party_settings: { } + label: + type: string_textfield + weight: 0 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } + path: + type: path + weight: 2 + region: content + settings: { } + third_party_settings: { } + status: + type: boolean_checkbox + weight: 3 + region: content + settings: + display_label: true + third_party_settings: { } +hidden: + uid: true diff --git a/config/sync/core.entity_form_display.group_relationship.group_subsite-group_membership.default.yml b/config/sync/core.entity_form_display.group_relationship.group_subsite-group_membership.default.yml new file mode 100644 index 000000000..f060f83e9 --- /dev/null +++ b/config/sync/core.entity_form_display.group_relationship.group_subsite-group_membership.default.yml @@ -0,0 +1,40 @@ +uuid: 19e91616-30b8-4ad0-8e9a-10b26c8b3045 +langcode: en +status: true +dependencies: + config: + - field.field.group_relationship.group_subsite-group_membership.group_roles + - group.relationship_type.group_subsite-group_membership + module: + - path +_core: + default_config_hash: Cb6sf4jR1t-RGKpJ60rLnWQQdQGd2cBkcAziIG_QkBM +id: group_relationship.group_subsite-group_membership.default +targetEntityType: group_relationship +bundle: group_subsite-group_membership +mode: default +content: + entity_id: + type: entity_reference_autocomplete + weight: 5 + region: content + settings: + match_operator: CONTAINS + match_limit: 10 + size: 60 + placeholder: '' + third_party_settings: { } + group_roles: + type: options_buttons + weight: 31 + region: content + settings: { } + third_party_settings: { } + path: + type: path + weight: 30 + region: content + settings: { } + third_party_settings: { } +hidden: + uid: true diff --git a/config/sync/core.entity_form_display.node.builder_page.default.yml b/config/sync/core.entity_form_display.node.builder_page.default.yml index 9445eb7ff..618f9e933 100644 --- a/config/sync/core.entity_form_display.node.builder_page.default.yml +++ b/config/sync/core.entity_form_display.node.builder_page.default.yml @@ -8,7 +8,10 @@ dependencies: - field.field.node.builder_page.s_n_hero - field.field.node.builder_page.s_n_page_options - node.type.builder_page + - workflows.workflow.editorial module: + - content_moderation + - entitygroupfield - field_group - inline_entity_form - path @@ -54,6 +57,22 @@ content: region: content settings: { } third_party_settings: { } + entitygroupfield: + type: entitygroupfield_select_widget + weight: 12 + region: content + settings: + help_text: '' + label: Subsite + multiple: false + required: false + third_party_settings: { } + moderation_state: + type: moderation_state_default + weight: 13 + region: content + settings: { } + third_party_settings: { } path: type: path weight: 6 diff --git a/config/sync/core.entity_form_display.node.news.default.yml b/config/sync/core.entity_form_display.node.news.default.yml index 2c3c86546..995f36f0f 100644 --- a/config/sync/core.entity_form_display.node.news.default.yml +++ b/config/sync/core.entity_form_display.node.news.default.yml @@ -16,6 +16,7 @@ dependencies: - workflows.workflow.editorial module: - content_moderation + - entitygroupfield - field_group - link - media_library @@ -79,6 +80,16 @@ content: region: content settings: { } third_party_settings: { } + entitygroupfield: + type: entitygroupfield_select_widget + weight: 15 + region: content + settings: + help_text: '' + label: 'Group name' + multiple: false + required: false + third_party_settings: { } moderation_state: type: moderation_state_default weight: 14 diff --git a/config/sync/core.entity_view_display.group.group_subsite.default.yml b/config/sync/core.entity_view_display.group.group_subsite.default.yml new file mode 100644 index 000000000..458cc626e --- /dev/null +++ b/config/sync/core.entity_view_display.group.group_subsite.default.yml @@ -0,0 +1,35 @@ +uuid: 1c1d4b0c-5a47-4154-ba26-485fc616338b +langcode: en +status: true +dependencies: + config: + - field.field.group.group_subsite.group_subsite_node_reference + - group.type.group_subsite +_core: + default_config_hash: 43JTXYCv0LTqy0CbMDuAPvI7VEbhmtV6yP0n8qCTCrs +id: group.group_subsite.default +targetEntityType: group +bundle: group_subsite +mode: default +content: + group_subsite_node_reference: + type: entity_reference_entity_view + label: hidden + settings: + view_mode: full + link: false + third_party_settings: { } + weight: -4 + region: content + label: + type: string + label: hidden + settings: + link_to_entity: false + third_party_settings: { } + weight: -5 + region: content +hidden: + changed: true + created: true + uid: true diff --git a/config/sync/core.entity_view_display.group_relationship.group_subsite-group_membership.default.yml b/config/sync/core.entity_view_display.group_relationship.group_subsite-group_membership.default.yml new file mode 100644 index 000000000..67720d85f --- /dev/null +++ b/config/sync/core.entity_view_display.group_relationship.group_subsite-group_membership.default.yml @@ -0,0 +1,25 @@ +uuid: 2a6c3a0e-9211-4ccf-89ad-ca4b7fc82242 +langcode: en +status: true +dependencies: + config: + - field.field.group_relationship.group_subsite-group_membership.group_roles + - group.relationship_type.group_subsite-group_membership +_core: + default_config_hash: A7LPfM6rtFeoY8R40ZgHw0JQNMUEpNXN2CPUBRVn91Q +id: group_relationship.group_subsite-group_membership.default +targetEntityType: group_relationship +bundle: group_subsite-group_membership +mode: default +content: + group_roles: + type: entity_reference_label + label: above + settings: + link: false + third_party_settings: { } + weight: -4 + region: content +hidden: + entity_id: true + uid: true diff --git a/config/sync/core.extension.yml b/config/sync/core.extension.yml index 83923f921..8e7e97151 100644 --- a/config/sync/core.extension.yml +++ b/config/sync/core.extension.yml @@ -40,6 +40,7 @@ module: diff: 0 dynamic_page_cache: 0 editor: 0 + entity: 0 entity_reference_revisions: 0 entity_share: 0 entity_share_client: 0 @@ -47,6 +48,7 @@ module: entity_share_lock: 0 entity_share_server: 0 entity_usage: 0 + entitygroupfield: 0 external_entities: 0 external_entities_pathauto: 0 external_entities_unldirectory: 0 @@ -65,13 +67,19 @@ module: file_mdm_exif: 0 file_mdm_font: 0 filter: 0 + flexible_permissions: 0 + gnode: 0 google_analytics: 0 + group: 0 + group_content_menu: 0 + group_support_revisions: 0 heading: 0 herbie_archive_page: 0 herbie_book: 0 herbie_builder_page: 0 herbie_config: 0 herbie_entity_share: 0 + herbie_group: 0 herbie_major: 0 herbie_media_types: 0 herbie_news: 0 @@ -150,6 +158,7 @@ module: unl_config: 0 unl_contenthub: 0 unl_events: 0 + unl_group: 0 unl_icon: 0 unl_layout_builder_custom: 0 unl_media: 0 @@ -165,6 +174,7 @@ module: unl_views: 0 unl_webform: 0 user: 0 + variationcache: 0 views_data_export: 0 views_ui: 0 webform: 0 diff --git a/config/sync/field.field.group.group_subsite.group_subsite_node_reference.yml b/config/sync/field.field.group.group_subsite.group_subsite_node_reference.yml new file mode 100644 index 000000000..98d19f827 --- /dev/null +++ b/config/sync/field.field.group.group_subsite.group_subsite_node_reference.yml @@ -0,0 +1,33 @@ +uuid: 81413790-e06a-469f-a636-d6e1602666ed +langcode: en +status: true +dependencies: + config: + - field.storage.group.group_subsite_node_reference + - group.type.group_subsite + - node.type.archive_page + - node.type.builder_page +_core: + default_config_hash: q8pgB-kgzVaPI6vRhk-OiBReExMJR7jytDTTFBSzg8s +id: group.group_subsite.group_subsite_node_reference +field_name: group_subsite_node_reference +entity_type: group +bundle: group_subsite +label: 'Subsite front page' +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: + handler: 'default:node' + handler_settings: + target_bundles: + builder_page: builder_page + archive_page: archive_page + sort: + field: _none + direction: ASC + auto_create: false + auto_create_bundle: builder_page +field_type: entity_reference diff --git a/config/sync/field.field.group_relationship.group_subsite-group_membership.group_roles.yml b/config/sync/field.field.group_relationship.group_subsite-group_membership.group_roles.yml new file mode 100644 index 000000000..682e79a34 --- /dev/null +++ b/config/sync/field.field.group_relationship.group_subsite-group_membership.group_roles.yml @@ -0,0 +1,24 @@ +uuid: 3a7f9a3b-12d3-4349-84a6-717c864e91f8 +langcode: en +status: true +dependencies: + config: + - field.storage.group_relationship.group_roles + - group.relationship_type.group_subsite-group_membership +_core: + default_config_hash: K1IEv2-MJwj7GH8AG1JCHio3wHfqn2RCcousgSrDzww +id: group_relationship.group_subsite-group_membership.group_roles +field_name: group_roles +entity_type: group_relationship +bundle: group_subsite-group_membership +label: Roles +description: '' +required: false +translatable: true +default_value: { } +default_value_callback: '' +settings: + handler: 'group_type:group_role' + handler_settings: + group_type_id: group_subsite +field_type: entity_reference diff --git a/config/sync/field.storage.group.group_subsite_node_reference.yml b/config/sync/field.storage.group.group_subsite_node_reference.yml new file mode 100644 index 000000000..0dd65209e --- /dev/null +++ b/config/sync/field.storage.group.group_subsite_node_reference.yml @@ -0,0 +1,22 @@ +uuid: fcc4f312-9c24-4a28-ad9c-27fb782743e8 +langcode: en +status: true +dependencies: + module: + - group + - node +_core: + default_config_hash: 7FVSJ8d836pWSrvUZ7LyBH3Q8knii_DSv4CLk52Cuz4 +id: group.group_subsite_node_reference +field_name: group_subsite_node_reference +entity_type: group +type: entity_reference +settings: + target_type: node +module: core +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/config/sync/field.storage.group_relationship.group_roles.yml b/config/sync/field.storage.group_relationship.group_roles.yml new file mode 100644 index 000000000..d6e7ec02c --- /dev/null +++ b/config/sync/field.storage.group_relationship.group_roles.yml @@ -0,0 +1,21 @@ +uuid: 07fdacca-11f5-49fa-9621-c53924c8dcac +langcode: en +status: true +dependencies: + module: + - group +_core: + default_config_hash: TZ8t-H80bD2Xfr8ZeLluK6VQkKfMFejouFgxFRm5PuQ +id: group_relationship.group_roles +field_name: group_roles +entity_type: group_relationship +type: entity_reference +settings: + target_type: group_role +module: core +locked: true +cardinality: -1 +translatable: false +indexes: { } +persist_with_no_fields: true +custom_storage: false diff --git a/config/sync/field.storage.node.n_major_college.yml b/config/sync/field.storage.node.n_major_college.yml index a2988e9be..a40e6c8f3 100644 --- a/config/sync/field.storage.node.n_major_college.yml +++ b/config/sync/field.storage.node.n_major_college.yml @@ -5,6 +5,8 @@ dependencies: module: - node - options +_core: + default_config_hash: yPKA3Gp75Empbp1Q75_beUdFftAKQ5Zj8eRz2gLBtVA id: node.n_major_college field_name: n_major_college entity_type: node diff --git a/config/sync/group.relationship_type.group_subsite-56a9de5424e052ff12.yml b/config/sync/group.relationship_type.group_subsite-56a9de5424e052ff12.yml new file mode 100644 index 000000000..bda3ecf3c --- /dev/null +++ b/config/sync/group.relationship_type.group_subsite-56a9de5424e052ff12.yml @@ -0,0 +1,19 @@ +uuid: b6bf3780-bff9-4946-9c90-920544ff9fd2 +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + - node.type.major_option + module: + - gnode + - node +_core: + default_config_hash: 0_a8ks-MRn9SThu19bz3Ns8MLUFGaaXOJDB16U66pWs +id: group_subsite-56a9de5424e052ff12 +group_type: group_subsite +content_plugin: 'group_node:major_option' +plugin_config: + group_cardinality: 1 + entity_cardinality: 1 + use_creation_wizard: false diff --git a/config/sync/group.relationship_type.group_subsite-8e58d9c4803f1e627b.yml b/config/sync/group.relationship_type.group_subsite-8e58d9c4803f1e627b.yml new file mode 100644 index 000000000..18ed81df2 --- /dev/null +++ b/config/sync/group.relationship_type.group_subsite-8e58d9c4803f1e627b.yml @@ -0,0 +1,19 @@ +uuid: f0c2aaa3-d0b8-476b-b3c4-a1087488e92f +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + - node.type.builder_page + module: + - gnode + - node +_core: + default_config_hash: 3G6R4DgC-yNpmefge4GydSKpH1Ss2_cAYSN9nu5uc3k +id: group_subsite-8e58d9c4803f1e627b +group_type: group_subsite +content_plugin: 'group_node:builder_page' +plugin_config: + group_cardinality: 1 + entity_cardinality: 1 + use_creation_wizard: false diff --git a/config/sync/group.relationship_type.group_subsite-9dd1cceeda12b0773a.yml b/config/sync/group.relationship_type.group_subsite-9dd1cceeda12b0773a.yml new file mode 100644 index 000000000..227bc1dc6 --- /dev/null +++ b/config/sync/group.relationship_type.group_subsite-9dd1cceeda12b0773a.yml @@ -0,0 +1,19 @@ +uuid: afd5fedd-b3ad-4a83-b143-e0e687beb7dc +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + - node.type.archive_page + module: + - gnode + - node +_core: + default_config_hash: 4VdJoPKL65fDUpijD5Q8hysfGbwYhK5l-d0WMr_xvlU +id: group_subsite-9dd1cceeda12b0773a +group_type: group_subsite +content_plugin: 'group_node:archive_page' +plugin_config: + group_cardinality: 1 + entity_cardinality: 1 + use_creation_wizard: false diff --git a/config/sync/group.relationship_type.group_subsite-c2dd4163d526684825.yml b/config/sync/group.relationship_type.group_subsite-c2dd4163d526684825.yml new file mode 100644 index 000000000..9df43f086 --- /dev/null +++ b/config/sync/group.relationship_type.group_subsite-c2dd4163d526684825.yml @@ -0,0 +1,21 @@ +uuid: 57eb5829-5859-40b6-a959-9b550d129548 +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + - group_content_menu.group_content_menu_type.gcm_subsite_menu + module: + - group_content_menu +_core: + default_config_hash: EWfOCxHSxMvYOaP4ink6I68BMVOyJvd191_57PdnRC4 +id: group_subsite-c2dd4163d526684825 +group_type: group_subsite +content_plugin: 'group_content_menu:gcm_subsite_menu' +plugin_config: + group_cardinality: 1 + entity_cardinality: 1 + use_creation_wizard: false + auto_create_group_menu: true + auto_create_home_link: true + auto_create_home_link_title: Home diff --git a/config/sync/group.relationship_type.group_subsite-group_membership.yml b/config/sync/group.relationship_type.group_subsite-group_membership.yml new file mode 100644 index 000000000..765a5444f --- /dev/null +++ b/config/sync/group.relationship_type.group_subsite-group_membership.yml @@ -0,0 +1,17 @@ +uuid: 607d2b60-00c9-46f7-9a1b-a415f5bc817c +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + module: + - user +_core: + default_config_hash: nkN2liwAFe9j6vclRwqBCRNRifXm1pe1rZuEaY1nzQ8 +id: group_subsite-group_membership +group_type: group_subsite +content_plugin: group_membership +plugin_config: + group_cardinality: 0 + entity_cardinality: 1 + use_creation_wizard: false diff --git a/config/sync/group.relationship_type.group_subsite-group_node-book.yml b/config/sync/group.relationship_type.group_subsite-group_node-book.yml new file mode 100644 index 000000000..f99ae86c0 --- /dev/null +++ b/config/sync/group.relationship_type.group_subsite-group_node-book.yml @@ -0,0 +1,19 @@ +uuid: 6efe5ddf-0171-4b53-833c-69faad459f2a +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + - node.type.book + module: + - gnode + - node +_core: + default_config_hash: f8pcrvnPVFm6OkGgDuzGuvC5AFDYuhbNwMYLX8hg0So +id: group_subsite-group_node-book +group_type: group_subsite +content_plugin: 'group_node:book' +plugin_config: + group_cardinality: 1 + entity_cardinality: 1 + use_creation_wizard: false diff --git a/config/sync/group.relationship_type.group_subsite-group_node-major.yml b/config/sync/group.relationship_type.group_subsite-group_node-major.yml new file mode 100644 index 000000000..7deae81f6 --- /dev/null +++ b/config/sync/group.relationship_type.group_subsite-group_node-major.yml @@ -0,0 +1,19 @@ +uuid: 48bd2044-6753-4d02-9280-90ffca5b22b4 +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + - node.type.major + module: + - gnode + - node +_core: + default_config_hash: qZMpKeJ9Q-XYxwMCcUIQxK46TASSl7m3lGDNZgngWQE +id: group_subsite-group_node-major +group_type: group_subsite +content_plugin: 'group_node:major' +plugin_config: + group_cardinality: 1 + entity_cardinality: 1 + use_creation_wizard: false diff --git a/config/sync/group.relationship_type.group_subsite-group_node-news.yml b/config/sync/group.relationship_type.group_subsite-group_node-news.yml new file mode 100644 index 000000000..025810571 --- /dev/null +++ b/config/sync/group.relationship_type.group_subsite-group_node-news.yml @@ -0,0 +1,19 @@ +uuid: 5ac684aa-0600-418b-8979-9c8f5933e82c +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + - node.type.news + module: + - gnode + - node +_core: + default_config_hash: TZDJSJ4BIGNA9Ruq6-jyw8uJ4WSDUkkWZTqLyXlyKPY +id: group_subsite-group_node-news +group_type: group_subsite +content_plugin: 'group_node:news' +plugin_config: + group_cardinality: 1 + entity_cardinality: 1 + use_creation_wizard: false diff --git a/config/sync/group.relationship_type.group_subsite-group_node-person.yml b/config/sync/group.relationship_type.group_subsite-group_node-person.yml new file mode 100644 index 000000000..93caab052 --- /dev/null +++ b/config/sync/group.relationship_type.group_subsite-group_node-person.yml @@ -0,0 +1,19 @@ +uuid: d2da5183-210e-4576-a739-a8936c0ee666 +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + - node.type.person + module: + - gnode + - node +_core: + default_config_hash: 0OQskrYXjV1S-vMOl1jqnQfcLtcl8q4W1C62xLz7x50 +id: group_subsite-group_node-person +group_type: group_subsite +content_plugin: 'group_node:person' +plugin_config: + group_cardinality: 1 + entity_cardinality: 1 + use_creation_wizard: false diff --git a/config/sync/group.relationship_type.group_subsite-group_node-webform.yml b/config/sync/group.relationship_type.group_subsite-group_node-webform.yml new file mode 100644 index 000000000..fe70bfc9e --- /dev/null +++ b/config/sync/group.relationship_type.group_subsite-group_node-webform.yml @@ -0,0 +1,19 @@ +uuid: 05470adc-d610-41e0-a80a-13d3a51e3e0c +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + - node.type.webform + module: + - gnode + - node +_core: + default_config_hash: N41mFibDv0KT3HQQb9rjI4Nu19Eu9BDbJLGs_HQcnKg +id: group_subsite-group_node-webform +group_type: group_subsite +content_plugin: 'group_node:webform' +plugin_config: + group_cardinality: 1 + entity_cardinality: 1 + use_creation_wizard: false diff --git a/config/sync/group.role.group_subsite-admin.yml b/config/sync/group.role.group_subsite-admin.yml new file mode 100644 index 000000000..a69eb7b68 --- /dev/null +++ b/config/sync/group.role.group_subsite-admin.yml @@ -0,0 +1,168 @@ +uuid: a44457e7-9770-4e2e-af48-7cd5838280e1 +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite +_core: + default_config_hash: UvZe1Vojfm8ffjyjQbC8Fp_5aL_KeWFEds8lAr84Hj4 +id: group_subsite-admin +label: 'Group admin' +weight: -7 +admin: false +scope: individual +global_role: null +group_type: group_subsite +permissions: + - 'access group_node overview' + - 'administer members' + - 'create group_node:archive_page relationship' + - 'create group_node:book entity' + - 'create group_node:book relationship' + - 'create group_node:builder_page entity' + - 'create group_node:builder_page relationship' + - 'create group_node:major relationship' + - 'create group_node:major_option relationship' + - 'create group_node:news entity' + - 'create group_node:news relationship' + - 'create group_node:person entity' + - 'create group_node:person relationship' + - 'create group_node:webform entity' + - 'create group_node:webform relationship' + - 'delete any group_node:archive_page entity' + - 'delete any group_node:archive_page relationship' + - 'delete any group_node:book entity' + - 'delete any group_node:book relationship' + - 'delete any group_node:builder_page entity' + - 'delete any group_node:builder_page relationship' + - 'delete any group_node:major entity' + - 'delete any group_node:major relationship' + - 'delete any group_node:major_option entity' + - 'delete any group_node:major_option relationship' + - 'delete any group_node:news entity' + - 'delete any group_node:news relationship' + - 'delete any group_node:person entity' + - 'delete any group_node:person relationship' + - 'delete any group_node:webform entity' + - 'delete any group_node:webform relationship' + - 'delete group_node:archive_page entity revisions' + - 'delete group_node:book entity revisions' + - 'delete group_node:builder_page entity revisions' + - 'delete group_node:major entity revisions' + - 'delete group_node:major_option entity revisions' + - 'delete group_node:news entity revisions' + - 'delete group_node:person entity revisions' + - 'delete group_node:webform entity revisions' + - 'delete own group_node:archive_page entity' + - 'delete own group_node:archive_page relationship' + - 'delete own group_node:book entity' + - 'delete own group_node:book relationship' + - 'delete own group_node:builder_page entity' + - 'delete own group_node:builder_page relationship' + - 'delete own group_node:major entity' + - 'delete own group_node:major relationship' + - 'delete own group_node:major_option entity' + - 'delete own group_node:major_option relationship' + - 'delete own group_node:news entity' + - 'delete own group_node:news relationship' + - 'delete own group_node:person entity' + - 'delete own group_node:person relationship' + - 'delete own group_node:webform entity' + - 'delete own group_node:webform relationship' + - 'edit group' + - 'leave group' + - 'manage group_content_menu menu items' + - 'revert group revisions' + - 'revert group_node:archive_page entity revisions' + - 'revert group_node:book entity revisions' + - 'revert group_node:builder_page entity revisions' + - 'revert group_node:major entity revisions' + - 'revert group_node:major_option entity revisions' + - 'revert group_node:news entity revisions' + - 'revert group_node:person entity revisions' + - 'revert group_node:webform entity revisions' + - 'update any group_node:archive_page entity' + - 'update any group_node:archive_page relationship' + - 'update any group_node:book entity' + - 'update any group_node:book relationship' + - 'update any group_node:builder_page entity' + - 'update any group_node:builder_page relationship' + - 'update any group_node:major entity' + - 'update any group_node:major relationship' + - 'update any group_node:major_option entity' + - 'update any group_node:major_option relationship' + - 'update any group_node:news entity' + - 'update any group_node:news relationship' + - 'update any group_node:person entity' + - 'update any group_node:person relationship' + - 'update any group_node:webform entity' + - 'update any group_node:webform relationship' + - 'update own group_node:archive_page entity' + - 'update own group_node:archive_page relationship' + - 'update own group_node:book entity' + - 'update own group_node:book relationship' + - 'update own group_node:builder_page entity' + - 'update own group_node:builder_page relationship' + - 'update own group_node:major entity' + - 'update own group_node:major relationship' + - 'update own group_node:major_option entity' + - 'update own group_node:major_option relationship' + - 'update own group_node:news entity' + - 'update own group_node:news relationship' + - 'update own group_node:person entity' + - 'update own group_node:person relationship' + - 'update own group_node:webform entity' + - 'update own group_node:webform relationship' + - 'view all group revisions' + - 'view all group_node:archive_page entity revisions' + - 'view all group_node:book entity revisions' + - 'view all group_node:builder_page entity revisions' + - 'view all group_node:major entity revisions' + - 'view all group_node:major_option entity revisions' + - 'view all group_node:news entity revisions' + - 'view all group_node:person entity revisions' + - 'view all group_node:webform entity revisions' + - 'view group' + - 'view group revisions' + - 'view group_membership relationship' + - 'view group_node:archive_page entity' + - 'view group_node:archive_page entity revisions' + - 'view group_node:archive_page relationship' + - 'view group_node:book entity' + - 'view group_node:book entity revisions' + - 'view group_node:book relationship' + - 'view group_node:builder_page entity' + - 'view group_node:builder_page entity revisions' + - 'view group_node:builder_page relationship' + - 'view group_node:major entity' + - 'view group_node:major entity revisions' + - 'view group_node:major relationship' + - 'view group_node:major_option entity' + - 'view group_node:major_option entity revisions' + - 'view group_node:major_option relationship' + - 'view group_node:news entity' + - 'view group_node:news entity revisions' + - 'view group_node:news relationship' + - 'view group_node:person entity' + - 'view group_node:person entity revisions' + - 'view group_node:person relationship' + - 'view group_node:webform entity' + - 'view group_node:webform entity revisions' + - 'view group_node:webform relationship' + - 'view own unpublished group' + - 'view own unpublished group_node:archive_page entity' + - 'view own unpublished group_node:book entity' + - 'view own unpublished group_node:builder_page entity' + - 'view own unpublished group_node:major entity' + - 'view own unpublished group_node:major_option entity' + - 'view own unpublished group_node:news entity' + - 'view own unpublished group_node:person entity' + - 'view own unpublished group_node:webform entity' + - 'view unpublished group_node:archive_page entity' + - 'view unpublished group_node:book entity' + - 'view unpublished group_node:builder_page entity' + - 'view unpublished group_node:major entity' + - 'view unpublished group_node:major_option entity' + - 'view unpublished group_node:news entity' + - 'view unpublished group_node:person entity' + - 'view unpublished group_node:webform entity' diff --git a/config/sync/group.role.group_subsite-admin_in.yml b/config/sync/group.role.group_subsite-admin_in.yml new file mode 100644 index 000000000..9de9fc324 --- /dev/null +++ b/config/sync/group.role.group_subsite-admin_in.yml @@ -0,0 +1,17 @@ +uuid: 62180b2c-cd0f-4bdc-930a-ccdb6d69fb63 +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + - user.role.administrator +_core: + default_config_hash: U4w_OdRuvlwPkP7IN3ESbSjZ2fStHCd29V12TOrcQts +id: group_subsite-admin_in +label: Administrator +weight: -3 +admin: true +scope: insider +global_role: administrator +group_type: group_subsite +permissions: { } diff --git a/config/sync/group.role.group_subsite-admin_out.yml b/config/sync/group.role.group_subsite-admin_out.yml new file mode 100644 index 000000000..f05b55a3a --- /dev/null +++ b/config/sync/group.role.group_subsite-admin_out.yml @@ -0,0 +1,17 @@ +uuid: f5fc3dc9-52c6-4f66-975f-d5fbf55fa599 +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + - user.role.administrator +_core: + default_config_hash: mxze7frdrROgjiKw4rWmVAjVZzcbWsq6exd9M6_WsHo +id: group_subsite-admin_out +label: Administrator +weight: -4 +admin: true +scope: outsider +global_role: administrator +group_type: group_subsite +permissions: { } diff --git a/config/sync/group.role.group_subsite-anonymous.yml b/config/sync/group.role.group_subsite-anonymous.yml new file mode 100644 index 000000000..ad55fcd25 --- /dev/null +++ b/config/sync/group.role.group_subsite-anonymous.yml @@ -0,0 +1,17 @@ +uuid: 28875a34-1385-4a69-b8f7-8063c9a8b343 +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + - user.role.anonymous +_core: + default_config_hash: fu5B0KPTqPpn26Jk-cwMCEoLlnruVMh3FhWyT5VzkJU +id: group_subsite-anonymous +label: Anonymous +weight: -10 +admin: false +scope: outsider +global_role: anonymous +group_type: group_subsite +permissions: { } diff --git a/config/sync/group.role.group_subsite-developer_in.yml b/config/sync/group.role.group_subsite-developer_in.yml new file mode 100644 index 000000000..1524305ce --- /dev/null +++ b/config/sync/group.role.group_subsite-developer_in.yml @@ -0,0 +1,15 @@ +uuid: 2e9511e8-c5e0-4793-845e-1c8a1c0d7f41 +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + - user.role.coder +id: group_subsite-developer_in +label: Developer +weight: -5 +admin: true +scope: insider +global_role: coder +group_type: group_subsite +permissions: { } diff --git a/config/sync/group.role.group_subsite-developer_out.yml b/config/sync/group.role.group_subsite-developer_out.yml new file mode 100644 index 000000000..32fda9e0b --- /dev/null +++ b/config/sync/group.role.group_subsite-developer_out.yml @@ -0,0 +1,15 @@ +uuid: d95c74be-899f-4b8a-9f10-0df1a078633a +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + - user.role.coder +id: group_subsite-developer_out +label: Developer +weight: -6 +admin: true +scope: outsider +global_role: coder +group_type: group_subsite +permissions: { } diff --git a/config/sync/group.role.group_subsite-member.yml b/config/sync/group.role.group_subsite-member.yml new file mode 100644 index 000000000..9dad94510 --- /dev/null +++ b/config/sync/group.role.group_subsite-member.yml @@ -0,0 +1,132 @@ +uuid: 14380cfa-7f0c-4fd5-9ce6-242bc90d19d2 +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite +_core: + default_config_hash: 292E5Zz7kjyirFqpc_7IbpCi6_V1NF9RoZ3F7T0NO9g +id: group_subsite-member +label: 'Group member' +weight: -8 +admin: false +scope: individual +global_role: null +group_type: group_subsite +permissions: + - 'access group_node overview' + - 'create group_node:archive_page relationship' + - 'create group_node:book entity' + - 'create group_node:book relationship' + - 'create group_node:builder_page entity' + - 'create group_node:builder_page relationship' + - 'create group_node:major relationship' + - 'create group_node:major_option relationship' + - 'create group_node:news entity' + - 'create group_node:news relationship' + - 'create group_node:person entity' + - 'create group_node:person relationship' + - 'create group_node:webform entity' + - 'create group_node:webform relationship' + - 'delete any group_node:archive_page relationship' + - 'delete any group_node:book relationship' + - 'delete any group_node:builder_page relationship' + - 'delete any group_node:major relationship' + - 'delete any group_node:major_option relationship' + - 'delete any group_node:news relationship' + - 'delete any group_node:person relationship' + - 'delete any group_node:webform relationship' + - 'delete own group_node:archive_page relationship' + - 'delete own group_node:book relationship' + - 'delete own group_node:builder_page relationship' + - 'delete own group_node:major relationship' + - 'delete own group_node:major_option relationship' + - 'delete own group_node:news relationship' + - 'delete own group_node:person relationship' + - 'delete own group_node:webform relationship' + - 'manage group_content_menu menu items' + - 'update any group_node:archive_page entity' + - 'update any group_node:archive_page relationship' + - 'update any group_node:book entity' + - 'update any group_node:book relationship' + - 'update any group_node:builder_page entity' + - 'update any group_node:builder_page relationship' + - 'update any group_node:major entity' + - 'update any group_node:major relationship' + - 'update any group_node:major_option entity' + - 'update any group_node:major_option relationship' + - 'update any group_node:news entity' + - 'update any group_node:news relationship' + - 'update any group_node:person entity' + - 'update any group_node:person relationship' + - 'update any group_node:webform entity' + - 'update any group_node:webform relationship' + - 'update own group_node:archive_page entity' + - 'update own group_node:archive_page relationship' + - 'update own group_node:book entity' + - 'update own group_node:book relationship' + - 'update own group_node:builder_page entity' + - 'update own group_node:builder_page relationship' + - 'update own group_node:major entity' + - 'update own group_node:major relationship' + - 'update own group_node:major_option entity' + - 'update own group_node:major_option relationship' + - 'update own group_node:news entity' + - 'update own group_node:news relationship' + - 'update own group_node:person entity' + - 'update own group_node:person relationship' + - 'update own group_node:webform entity' + - 'update own group_node:webform relationship' + - 'view all group revisions' + - 'view all group_node:archive_page entity revisions' + - 'view all group_node:book entity revisions' + - 'view all group_node:builder_page entity revisions' + - 'view all group_node:major entity revisions' + - 'view all group_node:major_option entity revisions' + - 'view all group_node:news entity revisions' + - 'view all group_node:person entity revisions' + - 'view all group_node:webform entity revisions' + - 'view group' + - 'view group revisions' + - 'view group_membership relationship' + - 'view group_node:archive_page entity' + - 'view group_node:archive_page entity revisions' + - 'view group_node:archive_page relationship' + - 'view group_node:book entity' + - 'view group_node:book entity revisions' + - 'view group_node:book relationship' + - 'view group_node:builder_page entity' + - 'view group_node:builder_page entity revisions' + - 'view group_node:builder_page relationship' + - 'view group_node:major entity' + - 'view group_node:major entity revisions' + - 'view group_node:major relationship' + - 'view group_node:major_option entity' + - 'view group_node:major_option entity revisions' + - 'view group_node:major_option relationship' + - 'view group_node:news entity' + - 'view group_node:news entity revisions' + - 'view group_node:news relationship' + - 'view group_node:person entity' + - 'view group_node:person entity revisions' + - 'view group_node:person relationship' + - 'view group_node:webform entity' + - 'view group_node:webform entity revisions' + - 'view group_node:webform relationship' + - 'view own unpublished group' + - 'view own unpublished group_node:archive_page entity' + - 'view own unpublished group_node:book entity' + - 'view own unpublished group_node:builder_page entity' + - 'view own unpublished group_node:major entity' + - 'view own unpublished group_node:major_option entity' + - 'view own unpublished group_node:news entity' + - 'view own unpublished group_node:person entity' + - 'view own unpublished group_node:webform entity' + - 'view unpublished group_node:archive_page entity' + - 'view unpublished group_node:book entity' + - 'view unpublished group_node:builder_page entity' + - 'view unpublished group_node:major entity' + - 'view unpublished group_node:major_option entity' + - 'view unpublished group_node:news entity' + - 'view unpublished group_node:person entity' + - 'view unpublished group_node:webform entity' diff --git a/config/sync/group.role.group_subsite-outsider.yml b/config/sync/group.role.group_subsite-outsider.yml new file mode 100644 index 000000000..0e5c57280 --- /dev/null +++ b/config/sync/group.role.group_subsite-outsider.yml @@ -0,0 +1,17 @@ +uuid: 9b88ced0-27d6-4dee-abd3-2c890fe64112 +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + - user.role.authenticated +_core: + default_config_hash: bEuqC4QZkNitSW2CYLNGQa2GfXDhExiZQwL6IgHDBOI +id: group_subsite-outsider +label: Outsider +weight: -9 +admin: false +scope: outsider +global_role: authenticated +group_type: group_subsite +permissions: { } diff --git a/config/sync/group.settings.yml b/config/sync/group.settings.yml new file mode 100644 index 000000000..911c9f08b --- /dev/null +++ b/config/sync/group.settings.yml @@ -0,0 +1,3 @@ +_core: + default_config_hash: W0cgFPhPJ3gAdqm06-az48BLf5MVcoZVS0HdByoofi0 +use_admin_theme: true diff --git a/config/sync/group.type.group_subsite.yml b/config/sync/group.type.group_subsite.yml new file mode 100644 index 000000000..d1ea99f7e --- /dev/null +++ b/config/sync/group.type.group_subsite.yml @@ -0,0 +1,14 @@ +uuid: bec2e498-59f7-4a15-bda1-57be6268ce94 +langcode: en +status: true +dependencies: { } +_core: + default_config_hash: AR2ElS1Es80xXrQKgJp1da24Es2nWLEzHJypKnN0h4s +id: group_subsite +label: Subsite +description: 'A section of the site with its own site title, menu, content, and editors.' +new_revision: true +creator_membership: true +creator_wizard: false +creator_roles: + - group_subsite-admin diff --git a/config/sync/group_content_menu.group_content_menu_type.gcm_subsite_menu.yml b/config/sync/group_content_menu.group_content_menu_type.gcm_subsite_menu.yml new file mode 100644 index 000000000..4964f9498 --- /dev/null +++ b/config/sync/group_content_menu.group_content_menu_type.gcm_subsite_menu.yml @@ -0,0 +1,8 @@ +uuid: cd1f29eb-b2c6-41f7-8818-3eb0b7238b84 +langcode: en +status: true +dependencies: { } +_core: + default_config_hash: fuqKkMCuqGjVEthv_iN77Tl2lJ0KAS87wvDjrFFARDA +id: gcm_subsite_menu +label: 'Subsite menu' diff --git a/config/sync/pathauto.pattern.archive_page.yml b/config/sync/pathauto.pattern.archive_page.yml new file mode 100644 index 000000000..ddf46e795 --- /dev/null +++ b/config/sync/pathauto.pattern.archive_page.yml @@ -0,0 +1,22 @@ +uuid: 13fda3c2-5420-4e5f-8113-b0ae773f16af +langcode: en +status: true +dependencies: + module: + - node +id: archive_page +label: 'Archive page' +type: 'canonical_entities:node' +pattern: '[node:group:url:path]/[node:book:parents:join-path]/[node:title]' +selection_criteria: + 4d3ea3ce-681e-4270-99ea-4f773ac327e3: + id: 'entity_bundle:node' + negate: false + uuid: 4d3ea3ce-681e-4270-99ea-4f773ac327e3 + context_mapping: + node: node + bundles: + archive_page: archive_page +selection_logic: and +weight: -10 +relationships: { } diff --git a/config/sync/pathauto.pattern.builder_page.yml b/config/sync/pathauto.pattern.builder_page.yml index 0bf8db9db..cb657e27c 100644 --- a/config/sync/pathauto.pattern.builder_page.yml +++ b/config/sync/pathauto.pattern.builder_page.yml @@ -9,16 +9,16 @@ _core: id: builder_page label: 'Builder Page' type: 'canonical_entities:node' -pattern: '[node:menu-link:parents:join-path]/[node:menu-link:title]' +pattern: '[node:group:url:path]/[node:menu-link:parents:join-path]/[node:menu-link:title]' selection_criteria: - 4c5a8d87-c394-482e-9720-4dbb7af5d8e5: + d6219c80-d3d7-4b42-8185-cd5e13c0bab5: id: 'entity_bundle:node' negate: false - uuid: 4c5a8d87-c394-482e-9720-4dbb7af5d8e5 + uuid: d6219c80-d3d7-4b42-8185-cd5e13c0bab5 context_mapping: node: node bundles: builder_page: builder_page selection_logic: and -weight: -5 +weight: -8 relationships: { } diff --git a/config/sync/pathauto.pattern.group_relationship.yml b/config/sync/pathauto.pattern.group_relationship.yml new file mode 100644 index 000000000..45650d1a3 --- /dev/null +++ b/config/sync/pathauto.pattern.group_relationship.yml @@ -0,0 +1,18 @@ +uuid: 86fbd744-4fb4-4137-ab60-ad108bb9be71 +langcode: en +status: true +dependencies: + module: + - group +_core: + default_config_hash: 1tEtbHvVBjy2ChRMYjieiOpb_YY3pH9m3ug1UJOvWrg +id: group_relationship +label: 'Group relationship' +type: 'canonical_entities:group_relationship' +pattern: 'group/[group_relationship:group:id]/[group_relationship:pretty-path-key]/[group_relationship:id]' +selection_criteria: { } +selection_logic: and +weight: -1 +relationships: + 'group_relationship:langcode:language': + label: Language diff --git a/config/sync/pathauto.pattern.major.yml b/config/sync/pathauto.pattern.major.yml index 8eed11895..36f6c7e62 100644 --- a/config/sync/pathauto.pattern.major.yml +++ b/config/sync/pathauto.pattern.major.yml @@ -9,16 +9,16 @@ _core: id: major label: Major type: 'canonical_entities:node' -pattern: 'major/[node:title]' +pattern: '[node:group:url:path]/major/[node:title]' selection_criteria: - c326c991-c933-430a-ac56-5d01cac08d9e: + 43578d2a-92a5-4ad4-ac96-b198655e2e54: id: 'entity_bundle:node' negate: false - uuid: c326c991-c933-430a-ac56-5d01cac08d9e + uuid: 43578d2a-92a5-4ad4-ac96-b198655e2e54 context_mapping: node: node bundles: major: major selection_logic: and -weight: -5 +weight: -7 relationships: { } diff --git a/config/sync/pathauto.pattern.major_option.yml b/config/sync/pathauto.pattern.major_option.yml index 3932fc2ea..45fb34bde 100644 --- a/config/sync/pathauto.pattern.major_option.yml +++ b/config/sync/pathauto.pattern.major_option.yml @@ -7,16 +7,16 @@ dependencies: id: major_option label: 'Major option' type: 'canonical_entities:node' -pattern: 'major/[node:n_major_option_parent_major:entity:title]/option/[node:title]' +pattern: '[node:group:url:path]/major/[node:n_major_option_parent_major:entity:title]/option/[node:title]' selection_criteria: - 9a636fd3-7b46-45c5-b859-410d1c23cb4c: + ae03cbfe-eaa2-4280-9fbd-0e85321617e4: id: 'entity_bundle:node' negate: false - uuid: 9a636fd3-7b46-45c5-b859-410d1c23cb4c + uuid: ae03cbfe-eaa2-4280-9fbd-0e85321617e4 context_mapping: node: node bundles: major_option: major_option selection_logic: and -weight: -5 +weight: -6 relationships: { } diff --git a/config/sync/pathauto.pattern.n_book.yml b/config/sync/pathauto.pattern.n_book.yml index 321375e3d..d1d0db3c2 100644 --- a/config/sync/pathauto.pattern.n_book.yml +++ b/config/sync/pathauto.pattern.n_book.yml @@ -9,16 +9,16 @@ _core: id: n_book label: 'Book node' type: 'canonical_entities:node' -pattern: '[node:book:parents:join-path]/[node:title]' +pattern: '[node:group:url:path]/[node:book:parents:join-path]/[node:title]' selection_criteria: - 8a2d12b0-c87e-439d-95ca-147d1f476e07: + 669cc965-e8cc-49f5-92b8-ebe3b2002408: id: 'entity_bundle:node' negate: false - uuid: 8a2d12b0-c87e-439d-95ca-147d1f476e07 + uuid: 669cc965-e8cc-49f5-92b8-ebe3b2002408 context_mapping: node: node bundles: book: book selection_logic: and -weight: -5 +weight: -9 relationships: { } diff --git a/config/sync/pathauto.pattern.news.yml b/config/sync/pathauto.pattern.news.yml index dde61d3d0..d14896263 100644 --- a/config/sync/pathauto.pattern.news.yml +++ b/config/sync/pathauto.pattern.news.yml @@ -9,12 +9,12 @@ _core: id: news label: News type: 'canonical_entities:node' -pattern: 'news/[node:title]' +pattern: '[node:group:url:path]/news/[node:title]' selection_criteria: - 80ad37f3-e73c-4042-a295-cb1b9f79b939: + 5591e308-2874-4da4-91ef-39d344b29c9f: id: 'entity_bundle:node' negate: false - uuid: 80ad37f3-e73c-4042-a295-cb1b9f79b939 + uuid: 5591e308-2874-4da4-91ef-39d344b29c9f context_mapping: node: node bundles: diff --git a/config/sync/pathauto.pattern.node.yml b/config/sync/pathauto.pattern.node.yml index fbb62a554..dd9d94891 100644 --- a/config/sync/pathauto.pattern.node.yml +++ b/config/sync/pathauto.pattern.node.yml @@ -7,8 +7,8 @@ dependencies: id: node label: Node type: 'canonical_entities:node' -pattern: '[node:menu-link:parents:join-path]/[node:menu-link:title]' +pattern: '[node:group:url:path]/[node:menu-link:parents:join-path]/[node:title]' selection_criteria: { } selection_logic: and -weight: 0 +weight: -2 relationships: { } diff --git a/config/sync/pathauto.pattern.person.yml b/config/sync/pathauto.pattern.person.yml index aa18dd3e0..cde78f87c 100644 --- a/config/sync/pathauto.pattern.person.yml +++ b/config/sync/pathauto.pattern.person.yml @@ -9,16 +9,16 @@ _core: id: person label: Person type: 'canonical_entities:node' -pattern: 'person/[node:title]' +pattern: '[node:group:url:path]/person/[node:title]' selection_criteria: - d138bafe-e2f4-4842-ae75-34223692c5de: + 3ecb54a2-672e-4a38-a03f-bf92383ab783: id: 'entity_bundle:node' negate: false - uuid: d138bafe-e2f4-4842-ae75-34223692c5de + uuid: 3ecb54a2-672e-4a38-a03f-bf92383ab783 context_mapping: node: node bundles: person: person selection_logic: and -weight: -5 +weight: -4 relationships: { } diff --git a/config/sync/pathauto.pattern.webform_node.yml b/config/sync/pathauto.pattern.webform_node.yml index e684aa08d..5139951ec 100644 --- a/config/sync/pathauto.pattern.webform_node.yml +++ b/config/sync/pathauto.pattern.webform_node.yml @@ -9,16 +9,16 @@ _core: id: webform_node label: 'Webform node' type: 'canonical_entities:node' -pattern: '[node:menu-link:parents:join-path]/[node:menu-link:title]' +pattern: '[node:group:url:path]/[node:menu-link:parents:join-path]/[node:title]' selection_criteria: - f1d9a318-ae19-4c77-88c2-7e73fd7f85a8: + c8db6360-cc82-4e1a-bfec-5cb25d8a04fb: id: 'entity_bundle:node' negate: false - uuid: f1d9a318-ae19-4c77-88c2-7e73fd7f85a8 + uuid: c8db6360-cc82-4e1a-bfec-5cb25d8a04fb context_mapping: node: node bundles: webform: webform selection_logic: and -weight: -5 +weight: -3 relationships: { } diff --git a/config/sync/user.role.administrator.yml b/config/sync/user.role.administrator.yml index 0377c0a2d..7fe6c1d2a 100644 --- a/config/sync/user.role.administrator.yml +++ b/config/sync/user.role.administrator.yml @@ -40,6 +40,7 @@ dependencies: - file_delete - filter - google_analytics + - group - layout_builder - media - media_file_delete @@ -80,6 +81,7 @@ permissions: - 'access entity usage statistics' - 'access feed overview' - 'access files overview' + - 'access group overview' - 'access media overview' - 'access own webform configuration' - 'access protected page password screen' @@ -135,6 +137,7 @@ permissions: - 'create content block content' - 'create cta block content' - 'create file media' + - 'create group_subsite group' - 'create hero block content' - 'create html_code block content' - 'create icon_links block content' diff --git a/config/sync/user.role.authenticated.yml b/config/sync/user.role.authenticated.yml index 0016f734b..544f6a628 100644 --- a/config/sync/user.role.authenticated.yml +++ b/config/sync/user.role.authenticated.yml @@ -19,4 +19,5 @@ permissions: - 'access protected page password screen' - 'bypass honeypot protection' - 'view media' + - 'view the administration theme' - 'view unl_directory_entry external entity' diff --git a/config/sync/user.role.coder.yml b/config/sync/user.role.coder.yml index 16bd6eded..78e9cfec0 100644 --- a/config/sync/user.role.coder.yml +++ b/config/sync/user.role.coder.yml @@ -14,6 +14,7 @@ dependencies: - field_ui - filter - google_analytics + - group - metatag - node - paragraphs @@ -33,6 +34,7 @@ permissions: - 'access contextual links' - 'access css fields' - 'access feed overview' + - 'access group overview' - 'access protected page password screen' - 'access site reports' - 'access taxonomy overview' @@ -56,6 +58,7 @@ permissions: - 'administer twig templates' - 'administer views' - 'bypass pages password protection' + - 'create group_subsite group' - 'create html_code block content' - 'delete any html_code block content' - 'load twig templates from file system' diff --git a/config/sync/user.role.editor.yml b/config/sync/user.role.editor.yml index ef9390d6f..68eeb5152 100644 --- a/config/sync/user.role.editor.yml +++ b/config/sync/user.role.editor.yml @@ -32,6 +32,7 @@ dependencies: - external_entities - file - filter + - group - layout_builder - media - menu_admin_per_menu @@ -57,6 +58,7 @@ permissions: - 'access contextual links' - 'access entity usage statistics' - 'access files overview' + - 'access group overview' - 'access media overview' - 'access site in maintenance mode' - 'access toolbar' diff --git a/config/sync/user.role.site_admin.yml b/config/sync/user.role.site_admin.yml index c360e5e20..65b62b98d 100644 --- a/config/sync/user.role.site_admin.yml +++ b/config/sync/user.role.site_admin.yml @@ -35,6 +35,7 @@ dependencies: - file_delete - filter - google_analytics + - group - layout_builder - media - media_file_delete @@ -68,6 +69,7 @@ permissions: - 'access contextual links' - 'access entity usage statistics' - 'access files overview' + - 'access group overview' - 'access media overview' - 'access own webform configuration' - 'access site in maintenance mode' diff --git a/config/sync/views.view.group_members.yml b/config/sync/views.view.group_members.yml new file mode 100644 index 000000000..2974d0c3c --- /dev/null +++ b/config/sync/views.view.group_members.yml @@ -0,0 +1,738 @@ +uuid: c8c9fb21-0563-4be5-b49f-c0718e831623 +langcode: en +status: true +dependencies: + module: + - group + - user +_core: + default_config_hash: JObBEUBjxiblsPypD-apV4KDHMD6JetwJds-xV_IBs4 +id: group_members +label: 'Group members' +module: group +description: '' +tag: '' +base_table: group_relationship_field_data +base_field: id +display: + default: + id: default + display_title: Master + display_plugin: default + position: 0 + display_options: + title: Members + fields: + name: + id: name + table: users_field_data + field: name + relationship: gc__user + group_type: group + admin_label: '' + entity_type: user + entity_field: name + plugin_id: field + label: User + 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 + group_roles: + id: group_roles + table: group_relationship__group_roles + field: group_roles + relationship: none + group_type: group + admin_label: '' + plugin_id: field + label: 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: None + 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: ul + separator: ', ' + field_api_classes: false + changed: + id: changed + table: group_relationship_field_data + field: changed + relationship: none + group_type: group + admin_label: '' + entity_type: group_relationship + entity_field: changed + plugin_id: field + label: 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 + settings: + date_format: short + 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 + created: + id: created + table: group_relationship_field_data + field: created + relationship: none + group_type: group + admin_label: '' + entity_type: group_relationship + entity_field: created + plugin_id: field + label: Joined + 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: short + 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 + view_group_relationship: + id: view_group_relationship + table: group_relationship + field: view_group_relationship + relationship: none + group_type: group + admin_label: 'View member link' + entity_type: group_relationship + plugin_id: entity_link + 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 + text: 'View member' + output_url_as_text: false + absolute: false + edit_group_relationship: + id: edit_group_relationship + table: group_relationship + field: edit_group_relationship + relationship: none + group_type: group + admin_label: 'Edit member link' + entity_type: group_relationship + plugin_id: entity_link_edit + 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 + text: 'Edit member' + delete_group_relationship: + id: delete_group_relationship + table: group_relationship + field: delete_group_relationship + relationship: none + group_type: group + admin_label: 'Remove member link' + entity_type: group_relationship + plugin_id: entity_link_delete + 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 + text: 'Remove member' + dropbutton: + id: dropbutton + table: views + field: dropbutton + relationship: none + group_type: group + admin_label: '' + plugin_id: dropbutton + label: Operations + 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 + destination: true + fields: + view_group_relationship: view_group_relationship + edit_group_relationship: edit_group_relationship + delete_group_relationship: delete_group_relationship + name: '0' + group_roles: '0' + changed: '0' + created: '0' + pager: + type: full + options: + offset: 0 + items_per_page: 50 + total_pages: null + id: 0 + tags: + next: ›› + previous: ‹‹ + 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 + 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 + access: + type: group_permission + options: + group_permission: 'administer members' + cache: + type: tag + options: { } + empty: + area_text_custom: + id: area_text_custom + table: views + field: area_text_custom + relationship: none + group_type: group + admin_label: '' + plugin_id: text_custom + empty: true + content: 'No members available.' + tokenize: false + sorts: { } + arguments: + gid: + id: gid + table: group_relationship_field_data + field: gid + relationship: none + group_type: group + admin_label: '' + entity_type: group_relationship + entity_field: gid + plugin_id: numeric + default_action: 'access denied' + exception: + value: all + title_enable: false + title: All + title_enable: true + title: '{{ arguments.gid|placeholder }} members' + default_argument_type: fixed + default_argument_options: + argument: '' + default_argument_skip_url: false + summary_options: + base_path: '' + count: true + override: false + items_per_page: 25 + 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 + filters: { } + style: + type: table + options: + grouping: { } + row_class: '' + default_row_class: true + columns: + name: name + group_roles: group_roles + changed: changed + created: created + view_group_relationship: view_group_relationship + edit_group_relationship: edit_group_relationship + delete_group_relationship: delete_group_relationship + dropbutton: dropbutton + default: '-1' + info: + name: + sortable: true + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + group_roles: + align: '' + separator: '' + empty_column: false + responsive: '' + changed: + sortable: true + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + created: + sortable: true + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + view_group_relationship: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + edit_group_relationship: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + delete_group_relationship: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + dropbutton: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + override: true + sticky: true + summary: '' + empty_table: true + caption: '' + description: '' + row: + type: fields + options: + default_field_elements: true + inline: { } + separator: '' + hide_empty: false + query: + type: views_query + options: + query_comment: '' + disable_sql_rewrite: false + distinct: false + replica: false + query_tags: { } + relationships: + gc__user: + id: gc__user + table: group_relationship_field_data + field: gc__user + relationship: none + group_type: group + admin_label: 'Member account' + entity_type: group_relationship + plugin_id: group_relationship_to_entity + required: true + group_relation_plugins: + group_membership: group_membership + header: { } + footer: { } + display_extenders: { } + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - route.group + - url + - url.query_args + - user.group_permissions + tags: + - 'config:field.storage.group_relationship.group_roles' + page_1: + id: page_1 + display_title: Page + display_plugin: page + position: 1 + display_options: + display_extenders: { } + path: group/%group/members + menu: + type: tab + title: Members + description: '' + weight: 20 + enabled: true + expanded: false + menu_name: main + parent: '' + context: '0' + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - route.group + - url + - url.query_args + - user.group_permissions + tags: + - 'config:field.storage.group_relationship.group_roles' diff --git a/config/sync/views.view.group_nodes.yml b/config/sync/views.view.group_nodes.yml new file mode 100644 index 000000000..012dddda7 --- /dev/null +++ b/config/sync/views.view.group_nodes.yml @@ -0,0 +1,953 @@ +uuid: 690731e0-6f27-435a-90f1-cad03b99447b +langcode: en +status: true +dependencies: + module: + - gnode + - group + - node +_core: + default_config_hash: 0bibzgCqmSgspCrEA2qTxfywBYHKOs3E6hju9O0acTw +id: group_nodes +label: 'Group nodes' +module: gnode +description: 'Lists all of the nodes that have been added to a group.' +tag: '' +base_table: node_field_data +base_field: nid +display: + default: + id: default + display_title: Master + display_plugin: default + position: 0 + display_options: + title: Nodes + fields: + title: + id: title + table: node_field_data + field: title + relationship: none + group_type: group + admin_label: '' + entity_type: node + entity_field: title + plugin_id: field + 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 + type: + id: type + table: node_field_data + field: type + relationship: none + group_type: group + admin_label: '' + entity_type: node + entity_field: type + plugin_id: field + label: 'Content 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 + status: + id: status + table: node_field_data + field: status + relationship: none + group_type: group + admin_label: '' + entity_type: node + entity_field: status + plugin_id: field + label: Status + 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: custom + format_custom_false: Unpublished + format_custom_true: Published + 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 + changed: + id: changed + table: node_field_data + field: changed + relationship: none + group_type: group + admin_label: '' + entity_type: node + entity_field: changed + plugin_id: field + label: 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 + settings: + date_format: short + 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 + view_group_relationship: + id: view_group_relationship + table: group_relationship + field: view_group_relationship + relationship: group_relationship + group_type: group + admin_label: 'View relation link' + entity_type: group_relationship + plugin_id: entity_link + label: 'Link to Group relationship' + 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: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + text: 'View relation' + output_url_as_text: false + absolute: false + edit_group_relationship: + id: edit_group_relationship + table: group_relationship + field: edit_group_relationship + relationship: group_relationship + group_type: group + admin_label: 'Edit relation link' + entity_type: group_relationship + plugin_id: entity_link_edit + label: 'Link to edit Group relationship' + 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: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + text: 'Edit relation' + delete_group_relationship: + id: delete_group_relationship + table: group_relationship + field: delete_group_relationship + relationship: group_relationship + group_type: group + admin_label: 'Delete relation link' + entity_type: group_relationship + plugin_id: entity_link_delete + label: 'Link to delete Group relationship' + 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: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + text: 'Delete relation' + edit_node: + id: edit_node + table: node + field: edit_node + relationship: none + group_type: group + admin_label: 'Edit node link' + entity_type: node + plugin_id: entity_link_edit + label: 'Link to edit Content' + 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: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + text: 'Edit node' + delete_node: + id: delete_node + table: node + field: delete_node + relationship: none + group_type: group + admin_label: 'Delete node link' + entity_type: node + plugin_id: entity_link_delete + label: 'Link to delete Content' + 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: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + text: 'Delete node' + dropbutton: + id: dropbutton + table: views + field: dropbutton + relationship: none + group_type: group + admin_label: '' + plugin_id: dropbutton + label: Operations + 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 + destination: true + fields: + view_group_relationship: view_group_relationship + edit_group_relationship: edit_group_relationship + delete_group_relationship: delete_group_relationship + edit_node: edit_node + delete_node: delete_node + title: '0' + type: '0' + status: '0' + changed: '0' + pager: + type: full + options: + offset: 0 + items_per_page: 50 + total_pages: null + id: 0 + tags: + next: ›› + previous: ‹‹ + 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 + 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 + access: + type: group_permission + options: + group_permission: 'access group_node overview' + cache: + type: tag + options: { } + empty: + area_text_custom: + id: area_text_custom + table: views + field: area_text_custom + relationship: none + group_type: group + admin_label: '' + plugin_id: text_custom + empty: true + content: 'No content available.' + tokenize: false + sorts: { } + arguments: + gid: + id: gid + table: group_relationship_field_data + field: gid + relationship: group_relationship + group_type: group + admin_label: '' + entity_type: group_relationship + entity_field: gid + plugin_id: numeric + default_action: 'access denied' + exception: + value: all + title_enable: false + title: All + title_enable: true + title: '{{ arguments.gid|placeholder }} nodes' + default_argument_type: fixed + default_argument_options: + argument: '' + default_argument_skip_url: false + summary_options: + base_path: '' + count: true + override: false + items_per_page: 25 + 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 + filters: + status: + id: status + table: node_field_data + field: status + relationship: none + group_type: group + admin_label: '' + entity_type: node + entity_field: status + plugin_id: boolean + operator: '=' + value: '1' + group: 1 + exposed: true + expose: + operator_id: '' + label: 'Published status' + description: '' + use_operator: false + operator: status_op + identifier: status + required: true + remember: false + multiple: false + remember_roles: + authenticated: authenticated + anonymous: '0' + administrator: '0' + group_admin: '0' + is_grouped: true + group_info: + label: 'Published status' + description: '' + identifier: status + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: + 1: + title: Published + operator: '=' + value: '1' + 2: + title: Unpublished + operator: '=' + value: '0' + type: + id: type + table: node_field_data + field: type + relationship: none + group_type: group + admin_label: '' + entity_type: node + entity_field: type + plugin_id: bundle + 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: false + multiple: false + remember_roles: + authenticated: authenticated + anonymous: '0' + administrator: '0' + group_admin: '0' + 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: { } + style: + type: table + options: + grouping: { } + row_class: '' + default_row_class: true + columns: + title: title + type: type + status: status + changed: changed + view_group_relationship: view_group_relationship + edit_group_relationship: edit_group_relationship + delete_group_relationship: delete_group_relationship + edit_node: edit_node + delete_node: delete_node + dropbutton: dropbutton + default: changed + 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: '' + status: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + changed: + sortable: true + default_sort_order: desc + align: '' + separator: '' + empty_column: false + responsive: '' + view_group_relationship: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + edit_group_relationship: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + delete_group_relationship: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + edit_node: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + delete_node: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + dropbutton: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + override: true + sticky: true + summary: '' + empty_table: true + caption: '' + description: '' + row: + type: fields + options: + default_field_elements: true + inline: { } + separator: '' + hide_empty: false + query: + type: views_query + options: + query_comment: '' + disable_sql_rewrite: false + distinct: false + replica: false + query_tags: { } + relationships: + group_relationship: + id: group_relationship + table: node_field_data + field: group_relationship + relationship: none + group_type: group + admin_label: 'Content relation' + entity_type: node + plugin_id: group_relationship_to_entity_reverse + required: true + group_relation_plugins: { } + header: { } + footer: { } + display_extenders: { } + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - route.group + - url + - url.query_args + - user.group_permissions + - 'user.node_grants:view' + tags: { } + page_1: + id: page_1 + display_title: Page + display_plugin: page + position: 1 + display_options: + display_extenders: { } + path: group/%group/nodes + menu: + type: tab + title: Nodes + description: '' + weight: 25 + enabled: true + expanded: false + menu_name: main + parent: '' + context: '0' + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - route.group + - url + - url.query_args + - user.group_permissions + - 'user.node_grants:view' + tags: { } diff --git a/patches/group-2774827-90-gnode-tokens-updated-for-3.0.x-dev.patch b/patches/group-2774827-90-gnode-tokens-updated-for-3.0.x-dev.patch new file mode 100644 index 000000000..d70aa08c8 --- /dev/null +++ b/patches/group-2774827-90-gnode-tokens-updated-for-3.0.x-dev.patch @@ -0,0 +1,143 @@ +diff --git a/group.tokens.inc b/group.tokens.inc +index 686b275..69e30ec 100644 +--- a/group.tokens.inc ++++ b/group.tokens.inc +@@ -172,10 +172,6 @@ function group_tokens($type, $tokens, array $data, array $options, BubbleableMet + $replacements[$original] = $group->language()->getId(); + break; + +- case 'url': +- $replacements[$original] = $group->toUrl('canonical', $url_options)->toString(); +- break; +- + case 'edit-url': + $replacements[$original] = $group->toUrl('edit-form', $url_options)->toString(); + break; +@@ -198,6 +194,12 @@ function group_tokens($type, $tokens, array $data, array $options, BubbleableMet + $bubbleable_metadata->addCacheableDependency($date_format); + $replacements[$original] = \Drupal::service('date.formatter')->format($group->getChangedTime(), 'medium', '', NULL, $langcode); + break; ++ ++ case 'url': ++ $url = $group->toUrl('canonical', $url_options); ++ $bubbleable_metadata->addCacheableDependency($url); ++ $replacements[$original] = $url->toString(); ++ break; + } + } + +@@ -213,6 +215,10 @@ function group_tokens($type, $tokens, array $data, array $options, BubbleableMet + if ($changed_tokens = $token_service->findWithPrefix($tokens, 'changed')) { + $replacements += $token_service->generate('date', $changed_tokens, ['date' => $group->getChangedTime()], $options, $bubbleable_metadata); + } ++ ++ if ($url_tokens = $token_service->findWithPrefix($tokens, 'url')) { ++ $replacements += $token_service->generate('url', $url_tokens, ['url' => $group->toUrl()], $options, $bubbleable_metadata); ++ } + } + elseif ($type == 'group_relationship' && !empty($data[$type])) { + $group_relationship = $data['group_relationship']; +diff --git a/modules/gnode/gnode.tokens.inc b/modules/gnode/gnode.tokens.inc +new file mode 100644 +index 0000000..d605c21 +--- /dev/null ++++ b/modules/gnode/gnode.tokens.inc +@@ -0,0 +1,98 @@ ++ t('Group'), ++ 'description' => t('The parent group.'), ++ 'type' => 'group', ++ ]; ++ ++ if (\Drupal::moduleHandler()->moduleExists('token')) { ++ $tokens['groups'] = [ ++ 'name' => t('Groups'), ++ 'description' => t("An array of all the node parent groups."), ++ 'type' => 'array', ++ ]; ++ } ++ ++ return array( ++ 'tokens' => array('node' => $tokens), ++ ); ++} ++ ++/** ++ * Implements hook_tokens(). ++ */ ++function gnode_tokens($type, $tokens, array $data, array $options, BubbleableMetadata $bubbleable_metadata) { ++ if ($type != 'node' || empty($data['node'])) { ++ return []; ++ } ++ ++ $token_service = \Drupal::token(); ++ $replacements = []; ++ ++ if (!$data['node']->id()) { ++ return []; ++ } ++ ++ $group_relationship_array = GroupRelationship::loadByEntity($data['node']); ++ if (empty($group_relationship_array)) { ++ return []; ++ } ++ ++ $groups = []; ++ /** @var \Drupal\group\Entity\GroupRelationshipInterface $group_relationship */ ++ foreach ($group_relationship_array as $group_relationship) { ++ $group = $group_relationship->getGroup(); ++ $groups[$group->id()] = $group->label(); ++ $bubbleable_metadata->addCacheableDependency($group); ++ }; ++ ++ if (isset($tokens['groups'])) { ++ $replacements[$tokens['groups']] = token_render_array($groups, $options); ++ } ++ ++ // [node:groups:*] chained tokens. ++ if ($parents_tokens = \Drupal::token()->findWithPrefix($tokens, 'groups')) { ++ $replacements += \Drupal::token()->generate('array', $parents_tokens, array('array' => $groups), $options, $bubbleable_metadata); ++ } ++ ++ /** @var \Drupal\group\Entity\GroupRelationshipInterface $group_relationship */ ++ $group_relationship = array_pop($group_relationship_array); ++ $group = $group_relationship->getGroup(); ++ if (isset($tokens['group'])) { ++ $replacements[$tokens['group']] = $group->label(); ++ } ++ ++ $langcode = $data['node']->language()->getId(); ++ if ($group->hasTranslation($langcode)) { ++ $group = $group->getTranslation($langcode); ++ } ++ ++ if ($group_tokens = $token_service->findWithPrefix($tokens, 'group')) { ++ $replacements += $token_service->generate('group', $group_tokens, array('group' => $group), $options, $bubbleable_metadata); ++ } ++ ++ return $replacements; ++} diff --git a/patches/group-context-2815971-52.patch b/patches/group-context-2815971-52.patch new file mode 100644 index 000000000..01b6851d5 --- /dev/null +++ b/patches/group-context-2815971-52.patch @@ -0,0 +1,209 @@ +diff --git a/group.services.yml b/group.services.yml +index 45ac1ef..1f0f77b 100644 +--- a/group.services.yml ++++ b/group.services.yml +@@ -1,6 +1,7 @@ + services: + access_check.group.permission: + class: 'Drupal\group\Access\GroupPermissionAccessCheck' ++ arguments: ['@group.group_route_context'] + tags: + - { name: 'access_check', applies_to: '_group_permission' } + access_check.group.member: +diff --git a/src/Access/GroupPermissionAccessCheck.php b/src/Access/GroupPermissionAccessCheck.php +index 709bb23..05ef1e7 100644 +--- a/src/Access/GroupPermissionAccessCheck.php ++++ b/src/Access/GroupPermissionAccessCheck.php +@@ -2,6 +2,7 @@ + + namespace Drupal\group\Access; + ++use Drupal\group\Context\GroupRouteContext; + use Drupal\group\Entity\GroupInterface; + use Drupal\Core\Access\AccessResult; + use Drupal\Core\Routing\Access\AccessInterface; +@@ -15,6 +16,21 @@ use Symfony\Component\Routing\Route; + */ + class GroupPermissionAccessCheck implements AccessInterface { + ++ /** ++ * @var \Drupal\group\Context\GroupRouteContext ++ */ ++ protected $groupRouteContext; ++ ++ /** ++ * Constructs a new GroupPermissionAccessCheck. ++ * ++ * @param \Drupal\group\Context\GroupRouteContext $group_route_context ++ * Group context provider. ++ */ ++ public function __construct(GroupRouteContext $group_route_context) { ++ $this->groupRouteContext = $group_route_context; ++ } ++ + /** + * Checks access. + * +@@ -31,20 +47,9 @@ class GroupPermissionAccessCheck implements AccessInterface { + public function access(Route $route, RouteMatchInterface $route_match, AccountInterface $account) { + $permission = $route->getRequirement('_group_permission'); + +- // Don't interfere if no permission was specified. +- if ($permission === NULL) { +- return AccessResult::neutral(); +- } +- +- // Don't interfere if no group was specified. +- $parameters = $route_match->getParameters(); +- if (!$parameters->has('group')) { +- return AccessResult::neutral(); +- } +- +- // Don't interfere if the group isn't a real group. +- $group = $parameters->get('group'); +- if (!$group instanceof GroupInterface) { ++ // Don't interfere if no group available. ++ $group = $this->groupRouteContext->getBestCandidate(); ++ if (!$group) { + return AccessResult::neutral(); + } + +diff --git a/src/Cache/Context/RouteGroupCacheContext.php b/src/Cache/Context/RouteGroupCacheContext.php +index aca3ba1..8e0eb0a 100644 +--- a/src/Cache/Context/RouteGroupCacheContext.php ++++ b/src/Cache/Context/RouteGroupCacheContext.php +@@ -46,7 +46,7 @@ class RouteGroupCacheContext implements CacheContextInterface { + * {@inheritdoc} + */ + public function getContext() { +- if ($group = $this->getGroupFromRoute()) { ++ if ($group = $this->getBestCandidate()) { + // If a group was found on the route, we return its ID as the context. + if ($gid = $group->id()) { + return $gid; +diff --git a/src/Context/GroupRouteContext.php b/src/Context/GroupRouteContext.php +index 4fd4b1f..1586716 100644 +--- a/src/Context/GroupRouteContext.php ++++ b/src/Context/GroupRouteContext.php +@@ -49,7 +49,7 @@ class GroupRouteContext implements ContextProviderInterface { + $cacheability->setCacheContexts(['route.group']); + + // Create a context from the definition and retrieved or created group. +- $context = new Context($context_definition, $this->getGroupFromRoute()); ++ $context = new Context($context_definition, $this->getBestCandidate()); + $context->addCacheableDependency($cacheability); + + return ['group' => $context]; +diff --git a/src/Context/GroupRouteContextTrait.php b/src/Context/GroupRouteContextTrait.php +index 99e9a41..806c019 100644 +--- a/src/Context/GroupRouteContextTrait.php ++++ b/src/Context/GroupRouteContextTrait.php +@@ -2,6 +2,9 @@ + + namespace Drupal\group\Context; + ++use Drupal\Core\Entity\ContentEntityInterface; ++use Drupal\group\Entity\GroupRelationship; ++use Drupal\node\NodeInterface; + use Drupal\group\Entity\GroupInterface; + + /** +@@ -81,4 +84,36 @@ trait GroupRouteContextTrait { + return NULL; + } + ++ /** ++ * Retrieves the group entity from the current route. ++ * ++ * Expands $this->getGroupFromRoute() to also return a Group based if ++ * interacting with Group Content such as nodes assigned to a Group. ++ * ++ * @return \Drupal\group\Entity\GroupInterface|null ++ * A group entity if one could be found or created, NULL otherwise. ++ */ ++ public function getBestCandidate() { ++ if ($group = $this->getGroupFromRoute()) { ++ return $group; ++ } ++ ++ if (empty($this->getCurrentRouteMatch()->getParameters())) { ++ return NULL; ++ } ++ $entities = array_filter(iterator_to_array($this->getCurrentRouteMatch()->getParameters()), static function ($parameter) { ++ return $parameter instanceof NodeInterface; ++ }); ++ if (empty($entities)) { ++ return NULL; ++ } ++ foreach ($entities as $entity) { ++ foreach ($this->getEntityTypeManager()->getStorage('group_relationship')->loadByEntity($entity) as $group_relationship) { ++ return $group_relationship->getGroup(); ++ } ++ } ++ ++ return NULL; ++ } ++ + } +diff --git a/tests/src/Unit/RouteGroupCacheContextTest.php b/tests/src/Unit/RouteGroupCacheContextTest.php +index bf8ae00..db390a6 100644 +--- a/tests/src/Unit/RouteGroupCacheContextTest.php ++++ b/tests/src/Unit/RouteGroupCacheContextTest.php +@@ -7,9 +7,13 @@ use Drupal\Core\Entity\ContentEntityStorageInterface; + use Drupal\Core\Entity\EntityTypeManagerInterface; + use Drupal\Core\Routing\RouteMatchInterface; + use Drupal\group\Cache\Context\RouteGroupCacheContext; ++use Drupal\group\Entity\GroupRelationship; + use Drupal\group\Entity\GroupInterface; + use Drupal\group\Entity\GroupTypeInterface; ++use Drupal\group\Entity\Storage\GroupRelationshipStorageInterface; + use Drupal\Tests\UnitTestCase; ++use Drupal\user\Entity\User; ++use Symfony\Component\HttpFoundation\ParameterBag; + + /** + * Tests the route.group cache context. +@@ -49,6 +53,7 @@ class RouteGroupCacheContextTest extends UnitTestCase { + */ + public function testGetContextNoGroup() { + $this->currentRouteMatch->getParameter('group')->willReturn(NULL); ++ $this->currentRouteMatch->getParameters()->willReturn(new ParameterBag()); + $this->currentRouteMatch->getRouteName()->willReturn('foo'); + + $cache_context = new RouteGroupCacheContext($this->currentRouteMatch->reveal(), $this->entityTypeManager->reveal()); +@@ -70,6 +75,35 @@ class RouteGroupCacheContextTest extends UnitTestCase { + $this->assertSame(1, $cache_context->getContext()); + } + ++ /** ++ * Tests getting the context value when there is a group_relationship on the route. ++ * ++ * @covers ::getContext ++ */ ++ public function testGetContextWithGroupRelationship() { ++ $this->currentRouteMatch->getParameter('group')->willReturn(NULL); ++ $this->currentRouteMatch->getRouteName()->willReturn('foo'); ++ ++ $group = $this->prophesize(GroupInterface::class); ++ $group->id()->willReturn(1); ++ ++ $user = $this->prophesize(User::class)->reveal(); ++ ++ $group_relationship = $this->prophesize(GroupRelationship::class); ++ $group_relationship->getGroup()->willReturn($group->reveal()); ++ $group_relationship->getEntity()->willReturn($user); ++ ++ $storage = $this->prophesize(GroupRelationshipStorageInterface::class); ++ $storage->loadByEntity($user)->willReturn([$group_relationship->reveal()]); ++ $this->entityTypeManager->getStorage('group_relationship')->willReturn($storage->reveal()); ++ ++ $parameters = new ParameterBag(['user' => $user]); ++ $this->currentRouteMatch->getParameters()->willReturn($parameters); ++ ++ $cache_context = new RouteGroupCacheContext($this->currentRouteMatch->reveal(), $this->entityTypeManager->reveal()); ++ $this->assertSame(1, $cache_context->getContext()); ++ } ++ + /** + * Tests getting the context value when on the group add form route. + * diff --git a/web/modules/custom/features/herbie_archive_page/config/install/pathauto.pattern.archive_page.yml b/web/modules/custom/features/herbie_archive_page/config/install/pathauto.pattern.archive_page.yml new file mode 100644 index 000000000..b4a1f84a3 --- /dev/null +++ b/web/modules/custom/features/herbie_archive_page/config/install/pathauto.pattern.archive_page.yml @@ -0,0 +1,21 @@ +langcode: en +status: true +dependencies: + module: + - node +id: archive_page +label: 'Archive page' +type: 'canonical_entities:node' +pattern: '[node:group:url:path]/[node:book:parents:join-path]/[node:title]' +selection_criteria: + 4d3ea3ce-681e-4270-99ea-4f773ac327e3: + id: 'entity_bundle:node' + negate: false + uuid: 4d3ea3ce-681e-4270-99ea-4f773ac327e3 + context_mapping: + node: node + bundles: + archive_page: archive_page +selection_logic: and +weight: -10 +relationships: { } diff --git a/web/modules/custom/features/herbie_archive_page/herbie_archive_page.info.yml b/web/modules/custom/features/herbie_archive_page/herbie_archive_page.info.yml index d67b4807b..c031f358a 100644 --- a/web/modules/custom/features/herbie_archive_page/herbie_archive_page.info.yml +++ b/web/modules/custom/features/herbie_archive_page/herbie_archive_page.info.yml @@ -2,7 +2,6 @@ name: 'Archive page' type: module core_version_requirement: '^9.4 || ^10' dependencies: - - ':herbie_builder_page' - 'allowed_formats:allowed_formats' - 'codemirror_editor:codemirror_editor' - 'dcf_ckeditor5:dcf_ckeditor5' @@ -19,8 +18,10 @@ dependencies: - 'drupal:text' - 'drupal:user' - 'field_group:field_group' + - 'herbie_builder_page:herbie_builder_page' - 'herbie_media_types:herbie_media_types' - 'linkit:linkit' -version: '1.1' + - 'pathauto:pathauto' +version: '1.2' package: Herbie description: 'Provides Temporary transition page (Archive page) content type and related configuration. ' diff --git a/web/modules/custom/features/herbie_book/config/install/pathauto.pattern.n_book.yml b/web/modules/custom/features/herbie_book/config/install/pathauto.pattern.n_book.yml index da01b7267..5f589cd98 100644 --- a/web/modules/custom/features/herbie_book/config/install/pathauto.pattern.n_book.yml +++ b/web/modules/custom/features/herbie_book/config/install/pathauto.pattern.n_book.yml @@ -6,16 +6,16 @@ dependencies: id: n_book label: 'Book node' type: 'canonical_entities:node' -pattern: '[node:book:parents:join-path]/[node:title]' +pattern: '[node:group:url:path]/[node:book:parents:join-path]/[node:title]' selection_criteria: - 8a2d12b0-c87e-439d-95ca-147d1f476e07: + 669cc965-e8cc-49f5-92b8-ebe3b2002408: id: 'entity_bundle:node' negate: false - uuid: 8a2d12b0-c87e-439d-95ca-147d1f476e07 + uuid: 669cc965-e8cc-49f5-92b8-ebe3b2002408 context_mapping: node: node bundles: book: book selection_logic: and -weight: -5 +weight: -9 relationships: { } diff --git a/web/modules/custom/features/herbie_book/herbie_book.info.yml b/web/modules/custom/features/herbie_book/herbie_book.info.yml index 0fb15affd..668221b66 100644 --- a/web/modules/custom/features/herbie_book/herbie_book.info.yml +++ b/web/modules/custom/features/herbie_book/herbie_book.info.yml @@ -4,6 +4,7 @@ type: module core_version_requirement: '^9.4 || ^10' dependencies: - 'drupal:node' + - 'herbie_webform:herbie_webform' - 'pathauto:pathauto' -version: 1.1.0 +version: '1.2' package: Herbie diff --git a/web/modules/custom/features/herbie_builder_page/config/install/core.entity_form_display.node.builder_page.default.yml b/web/modules/custom/features/herbie_builder_page/config/install/core.entity_form_display.node.builder_page.default.yml index d304cbf32..97bbff47b 100644 --- a/web/modules/custom/features/herbie_builder_page/config/install/core.entity_form_display.node.builder_page.default.yml +++ b/web/modules/custom/features/herbie_builder_page/config/install/core.entity_form_display.node.builder_page.default.yml @@ -7,7 +7,10 @@ dependencies: - field.field.node.builder_page.s_n_hero - field.field.node.builder_page.s_n_page_options - node.type.builder_page + - workflows.workflow.editorial module: + - content_moderation + - entitygroupfield - field_group - inline_entity_form - path @@ -51,6 +54,22 @@ content: region: content settings: { } third_party_settings: { } + entitygroupfield: + type: entitygroupfield_select_widget + weight: 12 + region: content + settings: + help_text: '' + label: Subsite + multiple: false + required: false + third_party_settings: { } + moderation_state: + type: moderation_state_default + weight: 13 + region: content + settings: { } + third_party_settings: { } path: type: path weight: 6 diff --git a/web/modules/custom/features/herbie_builder_page/config/install/pathauto.pattern.builder_page.yml b/web/modules/custom/features/herbie_builder_page/config/install/pathauto.pattern.builder_page.yml index 2eb579db5..ca181865b 100644 --- a/web/modules/custom/features/herbie_builder_page/config/install/pathauto.pattern.builder_page.yml +++ b/web/modules/custom/features/herbie_builder_page/config/install/pathauto.pattern.builder_page.yml @@ -6,16 +6,16 @@ dependencies: id: builder_page label: 'Builder Page' type: 'canonical_entities:node' -pattern: '[node:menu-link:parents:join-path]/[node:menu-link:title]' +pattern: '[node:group:url:path]/[node:menu-link:parents:join-path]/[node:menu-link:title]' selection_criteria: - 4c5a8d87-c394-482e-9720-4dbb7af5d8e5: + d6219c80-d3d7-4b42-8185-cd5e13c0bab5: id: 'entity_bundle:node' negate: false - uuid: 4c5a8d87-c394-482e-9720-4dbb7af5d8e5 + uuid: d6219c80-d3d7-4b42-8185-cd5e13c0bab5 context_mapping: node: node bundles: builder_page: builder_page selection_logic: and -weight: -5 +weight: -8 relationships: { } diff --git a/web/modules/custom/features/herbie_builder_page/herbie_builder_page.info.yml b/web/modules/custom/features/herbie_builder_page/herbie_builder_page.info.yml index 85758274d..c33f68ddc 100644 --- a/web/modules/custom/features/herbie_builder_page/herbie_builder_page.info.yml +++ b/web/modules/custom/features/herbie_builder_page/herbie_builder_page.info.yml @@ -43,6 +43,7 @@ dependencies: - 'drupal:views_ui' - 'entity_reference_revisions:entity_reference_revisions' - 'entity_usage:entity_usage' + - 'entitygroupfield:entitygroupfield' - 'external_entities:external_entities' - 'field_css:field_css' - 'field_group:field_group' @@ -73,5 +74,5 @@ dependencies: - 'unl_news:unl_news' - 'webform:webform' - 'webform:webform_submission_log' -version: 1.7.3 +version: 1.8.0 package: Herbie diff --git a/web/modules/custom/features/herbie_group/config/install/block.block.subsitemenu.yml b/web/modules/custom/features/herbie_group/config/install/block.block.subsitemenu.yml new file mode 100644 index 000000000..5e9c24e35 --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/block.block.subsitemenu.yml @@ -0,0 +1,26 @@ +langcode: en +status: true +dependencies: + config: + - group_content_menu.group_content_menu_type.gcm_subsite_menu + module: + - group_content_menu + theme: + - unl_five_herbie +id: subsitemenu +theme: unl_five_herbie +region: navlinks +weight: -4 +provider: null +plugin: 'group_content_menu:gcm_subsite_menu' +settings: + id: 'group_content_menu:gcm_subsite_menu' + label: 'Subsite menu' + label_display: '0' + provider: group_content_menu + context_mapping: + group: '@group.group_route_context:group' + level: 1 + depth: 0 + expand_all_items: true +visibility: { } diff --git a/web/modules/custom/features/herbie_group/config/install/core.base_field_override.group.group_subsite.label.yml b/web/modules/custom/features/herbie_group/config/install/core.base_field_override.group.group_subsite.label.yml new file mode 100644 index 000000000..4ad8c8a7e --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/core.base_field_override.group.group_subsite.label.yml @@ -0,0 +1,17 @@ +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite +id: group.group_subsite.label +field_name: label +entity_type: group +bundle: group_subsite +label: 'Subsite name' +description: '' +required: true +translatable: true +default_value: { } +default_value_callback: '' +settings: { } +field_type: string diff --git a/web/modules/custom/features/herbie_group/config/install/core.entity_form_display.group.group_subsite.default.yml b/web/modules/custom/features/herbie_group/config/install/core.entity_form_display.group.group_subsite.default.yml new file mode 100644 index 000000000..14db0642b --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/core.entity_form_display.group.group_subsite.default.yml @@ -0,0 +1,46 @@ +langcode: en +status: true +dependencies: + config: + - field.field.group.group_subsite.group_subsite_node_reference + - group.type.group_subsite + module: + - path +id: group.group_subsite.default +targetEntityType: group +bundle: group_subsite +mode: default +content: + group_subsite_node_reference: + type: entity_reference_autocomplete + weight: 1 + region: content + settings: + match_operator: CONTAINS + match_limit: 10 + size: 60 + placeholder: '' + third_party_settings: { } + label: + type: string_textfield + weight: 0 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } + path: + type: path + weight: 2 + region: content + settings: { } + third_party_settings: { } + status: + type: boolean_checkbox + weight: 3 + region: content + settings: + display_label: true + third_party_settings: { } +hidden: + uid: true diff --git a/web/modules/custom/features/herbie_group/config/install/core.entity_form_display.group_relationship.group_subsite-group_membership.default.yml b/web/modules/custom/features/herbie_group/config/install/core.entity_form_display.group_relationship.group_subsite-group_membership.default.yml new file mode 100644 index 000000000..c2e0993b8 --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/core.entity_form_display.group_relationship.group_subsite-group_membership.default.yml @@ -0,0 +1,37 @@ +langcode: en +status: true +dependencies: + config: + - field.field.group_relationship.group_subsite-group_membership.group_roles + - group.relationship_type.group_subsite-group_membership + module: + - path +id: group_relationship.group_subsite-group_membership.default +targetEntityType: group_relationship +bundle: group_subsite-group_membership +mode: default +content: + entity_id: + type: entity_reference_autocomplete + weight: 5 + region: content + settings: + match_operator: CONTAINS + match_limit: 10 + size: 60 + placeholder: '' + third_party_settings: { } + group_roles: + type: options_buttons + weight: 31 + region: content + settings: { } + third_party_settings: { } + path: + type: path + weight: 30 + region: content + settings: { } + third_party_settings: { } +hidden: + uid: true diff --git a/web/modules/custom/features/herbie_group/config/install/core.entity_view_display.group.group_subsite.default.yml b/web/modules/custom/features/herbie_group/config/install/core.entity_view_display.group.group_subsite.default.yml new file mode 100644 index 000000000..7a0ad7b05 --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/core.entity_view_display.group.group_subsite.default.yml @@ -0,0 +1,32 @@ +langcode: en +status: true +dependencies: + config: + - field.field.group.group_subsite.group_subsite_node_reference + - group.type.group_subsite +id: group.group_subsite.default +targetEntityType: group +bundle: group_subsite +mode: default +content: + group_subsite_node_reference: + type: entity_reference_entity_view + label: hidden + settings: + view_mode: full + link: false + third_party_settings: { } + weight: -4 + region: content + label: + type: string + label: hidden + settings: + link_to_entity: false + third_party_settings: { } + weight: -5 + region: content +hidden: + changed: true + created: true + uid: true diff --git a/web/modules/custom/features/herbie_group/config/install/core.entity_view_display.group_relationship.group_subsite-group_membership.default.yml b/web/modules/custom/features/herbie_group/config/install/core.entity_view_display.group_relationship.group_subsite-group_membership.default.yml new file mode 100644 index 000000000..9d1121deb --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/core.entity_view_display.group_relationship.group_subsite-group_membership.default.yml @@ -0,0 +1,22 @@ +langcode: en +status: true +dependencies: + config: + - field.field.group_relationship.group_subsite-group_membership.group_roles + - group.relationship_type.group_subsite-group_membership +id: group_relationship.group_subsite-group_membership.default +targetEntityType: group_relationship +bundle: group_subsite-group_membership +mode: default +content: + group_roles: + type: entity_reference_label + label: above + settings: + link: false + third_party_settings: { } + weight: -4 + region: content +hidden: + entity_id: true + uid: true diff --git a/web/modules/custom/features/herbie_group/config/install/field.field.group.group_subsite.group_subsite_node_reference.yml b/web/modules/custom/features/herbie_group/config/install/field.field.group.group_subsite.group_subsite_node_reference.yml new file mode 100644 index 000000000..2f55fdb08 --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/field.field.group.group_subsite.group_subsite_node_reference.yml @@ -0,0 +1,30 @@ +langcode: en +status: true +dependencies: + config: + - field.storage.group.group_subsite_node_reference + - group.type.group_subsite + - node.type.archive_page + - node.type.builder_page +id: group.group_subsite.group_subsite_node_reference +field_name: group_subsite_node_reference +entity_type: group +bundle: group_subsite +label: 'Subsite front page' +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: + handler: 'default:node' + handler_settings: + target_bundles: + builder_page: builder_page + archive_page: archive_page + sort: + field: _none + direction: ASC + auto_create: false + auto_create_bundle: builder_page +field_type: entity_reference diff --git a/web/modules/custom/features/herbie_group/config/install/field.field.group_relationship.group_subsite-group_membership.group_roles.yml b/web/modules/custom/features/herbie_group/config/install/field.field.group_relationship.group_subsite-group_membership.group_roles.yml new file mode 100644 index 000000000..0ca584ca2 --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/field.field.group_relationship.group_subsite-group_membership.group_roles.yml @@ -0,0 +1,21 @@ +langcode: en +status: true +dependencies: + config: + - field.storage.group_relationship.group_roles + - group.relationship_type.group_subsite-group_membership +id: group_relationship.group_subsite-group_membership.group_roles +field_name: group_roles +entity_type: group_relationship +bundle: group_subsite-group_membership +label: Roles +description: '' +required: false +translatable: true +default_value: { } +default_value_callback: '' +settings: + handler: 'group_type:group_role' + handler_settings: + group_type_id: group_subsite +field_type: entity_reference diff --git a/web/modules/custom/features/herbie_group/config/install/field.storage.group.group_subsite_node_reference.yml b/web/modules/custom/features/herbie_group/config/install/field.storage.group.group_subsite_node_reference.yml new file mode 100644 index 000000000..647f92c4b --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/field.storage.group.group_subsite_node_reference.yml @@ -0,0 +1,19 @@ +langcode: en +status: true +dependencies: + module: + - group + - node +id: group.group_subsite_node_reference +field_name: group_subsite_node_reference +entity_type: group +type: entity_reference +settings: + target_type: node +module: core +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/web/modules/custom/features/herbie_group/config/install/field.storage.group_relationship.group_roles.yml b/web/modules/custom/features/herbie_group/config/install/field.storage.group_relationship.group_roles.yml new file mode 100644 index 000000000..7f3f65bc4 --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/field.storage.group_relationship.group_roles.yml @@ -0,0 +1,18 @@ +langcode: en +status: true +dependencies: + module: + - group +id: group_relationship.group_roles +field_name: group_roles +entity_type: group_relationship +type: entity_reference +settings: + target_type: group_role +module: core +locked: true +cardinality: -1 +translatable: false +indexes: { } +persist_with_no_fields: true +custom_storage: false diff --git a/web/modules/custom/features/herbie_group/config/install/group.relationship_type.group_subsite-56a9de5424e052ff12.yml b/web/modules/custom/features/herbie_group/config/install/group.relationship_type.group_subsite-56a9de5424e052ff12.yml new file mode 100644 index 000000000..a14ef3b0a --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/group.relationship_type.group_subsite-56a9de5424e052ff12.yml @@ -0,0 +1,16 @@ +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + - node.type.major_option + module: + - gnode + - node +id: group_subsite-56a9de5424e052ff12 +group_type: group_subsite +content_plugin: 'group_node:major_option' +plugin_config: + group_cardinality: 1 + entity_cardinality: 1 + use_creation_wizard: false diff --git a/web/modules/custom/features/herbie_group/config/install/group.relationship_type.group_subsite-8e58d9c4803f1e627b.yml b/web/modules/custom/features/herbie_group/config/install/group.relationship_type.group_subsite-8e58d9c4803f1e627b.yml new file mode 100644 index 000000000..adbdd7900 --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/group.relationship_type.group_subsite-8e58d9c4803f1e627b.yml @@ -0,0 +1,16 @@ +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + - node.type.builder_page + module: + - gnode + - node +id: group_subsite-8e58d9c4803f1e627b +group_type: group_subsite +content_plugin: 'group_node:builder_page' +plugin_config: + group_cardinality: 1 + entity_cardinality: 1 + use_creation_wizard: false diff --git a/web/modules/custom/features/herbie_group/config/install/group.relationship_type.group_subsite-9dd1cceeda12b0773a.yml b/web/modules/custom/features/herbie_group/config/install/group.relationship_type.group_subsite-9dd1cceeda12b0773a.yml new file mode 100644 index 000000000..5ed960523 --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/group.relationship_type.group_subsite-9dd1cceeda12b0773a.yml @@ -0,0 +1,16 @@ +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + - node.type.archive_page + module: + - gnode + - node +id: group_subsite-9dd1cceeda12b0773a +group_type: group_subsite +content_plugin: 'group_node:archive_page' +plugin_config: + group_cardinality: 1 + entity_cardinality: 1 + use_creation_wizard: false diff --git a/web/modules/custom/features/herbie_group/config/install/group.relationship_type.group_subsite-c2dd4163d526684825.yml b/web/modules/custom/features/herbie_group/config/install/group.relationship_type.group_subsite-c2dd4163d526684825.yml new file mode 100644 index 000000000..888f23d6a --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/group.relationship_type.group_subsite-c2dd4163d526684825.yml @@ -0,0 +1,18 @@ +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + - group_content_menu.group_content_menu_type.gcm_subsite_menu + module: + - group_content_menu +id: group_subsite-c2dd4163d526684825 +group_type: group_subsite +content_plugin: 'group_content_menu:gcm_subsite_menu' +plugin_config: + group_cardinality: 1 + entity_cardinality: 1 + use_creation_wizard: false + auto_create_group_menu: true + auto_create_home_link: true + auto_create_home_link_title: Home diff --git a/web/modules/custom/features/herbie_group/config/install/group.relationship_type.group_subsite-group_membership.yml b/web/modules/custom/features/herbie_group/config/install/group.relationship_type.group_subsite-group_membership.yml new file mode 100644 index 000000000..9501ffe54 --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/group.relationship_type.group_subsite-group_membership.yml @@ -0,0 +1,14 @@ +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + module: + - user +id: group_subsite-group_membership +group_type: group_subsite +content_plugin: group_membership +plugin_config: + group_cardinality: 0 + entity_cardinality: 1 + use_creation_wizard: false diff --git a/web/modules/custom/features/herbie_group/config/install/group.relationship_type.group_subsite-group_node-book.yml b/web/modules/custom/features/herbie_group/config/install/group.relationship_type.group_subsite-group_node-book.yml new file mode 100644 index 000000000..93480f388 --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/group.relationship_type.group_subsite-group_node-book.yml @@ -0,0 +1,16 @@ +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + - node.type.book + module: + - gnode + - node +id: group_subsite-group_node-book +group_type: group_subsite +content_plugin: 'group_node:book' +plugin_config: + group_cardinality: 1 + entity_cardinality: 1 + use_creation_wizard: false diff --git a/web/modules/custom/features/herbie_group/config/install/group.relationship_type.group_subsite-group_node-major.yml b/web/modules/custom/features/herbie_group/config/install/group.relationship_type.group_subsite-group_node-major.yml new file mode 100644 index 000000000..2724e5508 --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/group.relationship_type.group_subsite-group_node-major.yml @@ -0,0 +1,16 @@ +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + - node.type.major + module: + - gnode + - node +id: group_subsite-group_node-major +group_type: group_subsite +content_plugin: 'group_node:major' +plugin_config: + group_cardinality: 1 + entity_cardinality: 1 + use_creation_wizard: false diff --git a/web/modules/custom/features/herbie_group/config/install/group.relationship_type.group_subsite-group_node-news.yml b/web/modules/custom/features/herbie_group/config/install/group.relationship_type.group_subsite-group_node-news.yml new file mode 100644 index 000000000..14b5bbe82 --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/group.relationship_type.group_subsite-group_node-news.yml @@ -0,0 +1,16 @@ +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + - node.type.news + module: + - gnode + - node +id: group_subsite-group_node-news +group_type: group_subsite +content_plugin: 'group_node:news' +plugin_config: + group_cardinality: 1 + entity_cardinality: 1 + use_creation_wizard: false diff --git a/web/modules/custom/features/herbie_group/config/install/group.relationship_type.group_subsite-group_node-person.yml b/web/modules/custom/features/herbie_group/config/install/group.relationship_type.group_subsite-group_node-person.yml new file mode 100644 index 000000000..2f07dc321 --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/group.relationship_type.group_subsite-group_node-person.yml @@ -0,0 +1,16 @@ +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + - node.type.person + module: + - gnode + - node +id: group_subsite-group_node-person +group_type: group_subsite +content_plugin: 'group_node:person' +plugin_config: + group_cardinality: 1 + entity_cardinality: 1 + use_creation_wizard: false diff --git a/web/modules/custom/features/herbie_group/config/install/group.relationship_type.group_subsite-group_node-webform.yml b/web/modules/custom/features/herbie_group/config/install/group.relationship_type.group_subsite-group_node-webform.yml new file mode 100644 index 000000000..1e04f2900 --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/group.relationship_type.group_subsite-group_node-webform.yml @@ -0,0 +1,16 @@ +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + - node.type.webform + module: + - gnode + - node +id: group_subsite-group_node-webform +group_type: group_subsite +content_plugin: 'group_node:webform' +plugin_config: + group_cardinality: 1 + entity_cardinality: 1 + use_creation_wizard: false diff --git a/web/modules/custom/features/herbie_group/config/install/group.role.group_subsite-admin.yml b/web/modules/custom/features/herbie_group/config/install/group.role.group_subsite-admin.yml new file mode 100644 index 000000000..e1ee6a27c --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/group.role.group_subsite-admin.yml @@ -0,0 +1,165 @@ +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite +id: group_subsite-admin +label: 'Group admin' +weight: -7 +admin: false +scope: individual +global_role: null +group_type: group_subsite +permissions: + - 'access group_node overview' + - 'administer members' + - 'create group_node:archive_page relationship' + - 'create group_node:book entity' + - 'create group_node:book relationship' + - 'create group_node:builder_page entity' + - 'create group_node:builder_page relationship' + - 'create group_node:major relationship' + - 'create group_node:major_option relationship' + - 'create group_node:news entity' + - 'create group_node:news relationship' + - 'create group_node:person entity' + - 'create group_node:person relationship' + - 'create group_node:webform entity' + - 'create group_node:webform relationship' + - 'delete any group_node:archive_page entity' + - 'delete any group_node:archive_page relationship' + - 'delete any group_node:book entity' + - 'delete any group_node:book relationship' + - 'delete any group_node:builder_page entity' + - 'delete any group_node:builder_page relationship' + - 'delete any group_node:major entity' + - 'delete any group_node:major relationship' + - 'delete any group_node:major_option entity' + - 'delete any group_node:major_option relationship' + - 'delete any group_node:news entity' + - 'delete any group_node:news relationship' + - 'delete any group_node:person entity' + - 'delete any group_node:person relationship' + - 'delete any group_node:webform entity' + - 'delete any group_node:webform relationship' + - 'delete group_node:archive_page entity revisions' + - 'delete group_node:book entity revisions' + - 'delete group_node:builder_page entity revisions' + - 'delete group_node:major entity revisions' + - 'delete group_node:major_option entity revisions' + - 'delete group_node:news entity revisions' + - 'delete group_node:person entity revisions' + - 'delete group_node:webform entity revisions' + - 'delete own group_node:archive_page entity' + - 'delete own group_node:archive_page relationship' + - 'delete own group_node:book entity' + - 'delete own group_node:book relationship' + - 'delete own group_node:builder_page entity' + - 'delete own group_node:builder_page relationship' + - 'delete own group_node:major entity' + - 'delete own group_node:major relationship' + - 'delete own group_node:major_option entity' + - 'delete own group_node:major_option relationship' + - 'delete own group_node:news entity' + - 'delete own group_node:news relationship' + - 'delete own group_node:person entity' + - 'delete own group_node:person relationship' + - 'delete own group_node:webform entity' + - 'delete own group_node:webform relationship' + - 'edit group' + - 'leave group' + - 'manage group_content_menu menu items' + - 'revert group revisions' + - 'revert group_node:archive_page entity revisions' + - 'revert group_node:book entity revisions' + - 'revert group_node:builder_page entity revisions' + - 'revert group_node:major entity revisions' + - 'revert group_node:major_option entity revisions' + - 'revert group_node:news entity revisions' + - 'revert group_node:person entity revisions' + - 'revert group_node:webform entity revisions' + - 'update any group_node:archive_page entity' + - 'update any group_node:archive_page relationship' + - 'update any group_node:book entity' + - 'update any group_node:book relationship' + - 'update any group_node:builder_page entity' + - 'update any group_node:builder_page relationship' + - 'update any group_node:major entity' + - 'update any group_node:major relationship' + - 'update any group_node:major_option entity' + - 'update any group_node:major_option relationship' + - 'update any group_node:news entity' + - 'update any group_node:news relationship' + - 'update any group_node:person entity' + - 'update any group_node:person relationship' + - 'update any group_node:webform entity' + - 'update any group_node:webform relationship' + - 'update own group_node:archive_page entity' + - 'update own group_node:archive_page relationship' + - 'update own group_node:book entity' + - 'update own group_node:book relationship' + - 'update own group_node:builder_page entity' + - 'update own group_node:builder_page relationship' + - 'update own group_node:major entity' + - 'update own group_node:major relationship' + - 'update own group_node:major_option entity' + - 'update own group_node:major_option relationship' + - 'update own group_node:news entity' + - 'update own group_node:news relationship' + - 'update own group_node:person entity' + - 'update own group_node:person relationship' + - 'update own group_node:webform entity' + - 'update own group_node:webform relationship' + - 'view all group revisions' + - 'view all group_node:archive_page entity revisions' + - 'view all group_node:book entity revisions' + - 'view all group_node:builder_page entity revisions' + - 'view all group_node:major entity revisions' + - 'view all group_node:major_option entity revisions' + - 'view all group_node:news entity revisions' + - 'view all group_node:person entity revisions' + - 'view all group_node:webform entity revisions' + - 'view group' + - 'view group revisions' + - 'view group_membership relationship' + - 'view group_node:archive_page entity' + - 'view group_node:archive_page entity revisions' + - 'view group_node:archive_page relationship' + - 'view group_node:book entity' + - 'view group_node:book entity revisions' + - 'view group_node:book relationship' + - 'view group_node:builder_page entity' + - 'view group_node:builder_page entity revisions' + - 'view group_node:builder_page relationship' + - 'view group_node:major entity' + - 'view group_node:major entity revisions' + - 'view group_node:major relationship' + - 'view group_node:major_option entity' + - 'view group_node:major_option entity revisions' + - 'view group_node:major_option relationship' + - 'view group_node:news entity' + - 'view group_node:news entity revisions' + - 'view group_node:news relationship' + - 'view group_node:person entity' + - 'view group_node:person entity revisions' + - 'view group_node:person relationship' + - 'view group_node:webform entity' + - 'view group_node:webform entity revisions' + - 'view group_node:webform relationship' + - 'view own unpublished group' + - 'view own unpublished group_node:archive_page entity' + - 'view own unpublished group_node:book entity' + - 'view own unpublished group_node:builder_page entity' + - 'view own unpublished group_node:major entity' + - 'view own unpublished group_node:major_option entity' + - 'view own unpublished group_node:news entity' + - 'view own unpublished group_node:person entity' + - 'view own unpublished group_node:webform entity' + - 'view unpublished group_node:archive_page entity' + - 'view unpublished group_node:book entity' + - 'view unpublished group_node:builder_page entity' + - 'view unpublished group_node:major entity' + - 'view unpublished group_node:major_option entity' + - 'view unpublished group_node:news entity' + - 'view unpublished group_node:person entity' + - 'view unpublished group_node:webform entity' diff --git a/web/modules/custom/features/herbie_group/config/install/group.role.group_subsite-admin_in.yml b/web/modules/custom/features/herbie_group/config/install/group.role.group_subsite-admin_in.yml new file mode 100644 index 000000000..106b36559 --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/group.role.group_subsite-admin_in.yml @@ -0,0 +1,14 @@ +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + - user.role.administrator +id: group_subsite-admin_in +label: Administrator +weight: -3 +admin: true +scope: insider +global_role: administrator +group_type: group_subsite +permissions: { } diff --git a/web/modules/custom/features/herbie_group/config/install/group.role.group_subsite-admin_out.yml b/web/modules/custom/features/herbie_group/config/install/group.role.group_subsite-admin_out.yml new file mode 100644 index 000000000..fdab12d9b --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/group.role.group_subsite-admin_out.yml @@ -0,0 +1,14 @@ +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + - user.role.administrator +id: group_subsite-admin_out +label: Administrator +weight: -4 +admin: true +scope: outsider +global_role: administrator +group_type: group_subsite +permissions: { } diff --git a/web/modules/custom/features/herbie_group/config/install/group.role.group_subsite-anonymous.yml b/web/modules/custom/features/herbie_group/config/install/group.role.group_subsite-anonymous.yml new file mode 100644 index 000000000..ebffc33bf --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/group.role.group_subsite-anonymous.yml @@ -0,0 +1,14 @@ +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + - user.role.anonymous +id: group_subsite-anonymous +label: Anonymous +weight: -10 +admin: false +scope: outsider +global_role: anonymous +group_type: group_subsite +permissions: { } diff --git a/web/modules/custom/features/herbie_group/config/install/group.role.group_subsite-developer_in.yml b/web/modules/custom/features/herbie_group/config/install/group.role.group_subsite-developer_in.yml new file mode 100644 index 000000000..cbcb573ab --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/group.role.group_subsite-developer_in.yml @@ -0,0 +1,14 @@ +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + - user.role.coder +id: group_subsite-developer_in +label: Developer +weight: -5 +admin: true +scope: insider +global_role: coder +group_type: group_subsite +permissions: { } diff --git a/web/modules/custom/features/herbie_group/config/install/group.role.group_subsite-developer_out.yml b/web/modules/custom/features/herbie_group/config/install/group.role.group_subsite-developer_out.yml new file mode 100644 index 000000000..b84fb4912 --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/group.role.group_subsite-developer_out.yml @@ -0,0 +1,14 @@ +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + - user.role.coder +id: group_subsite-developer_out +label: Developer +weight: -6 +admin: true +scope: outsider +global_role: coder +group_type: group_subsite +permissions: { } diff --git a/web/modules/custom/features/herbie_group/config/install/group.role.group_subsite-member.yml b/web/modules/custom/features/herbie_group/config/install/group.role.group_subsite-member.yml new file mode 100644 index 000000000..7fd19c35a --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/group.role.group_subsite-member.yml @@ -0,0 +1,129 @@ +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite +id: group_subsite-member +label: 'Group member' +weight: -8 +admin: false +scope: individual +global_role: null +group_type: group_subsite +permissions: + - 'access group_node overview' + - 'create group_node:archive_page relationship' + - 'create group_node:book entity' + - 'create group_node:book relationship' + - 'create group_node:builder_page entity' + - 'create group_node:builder_page relationship' + - 'create group_node:major relationship' + - 'create group_node:major_option relationship' + - 'create group_node:news entity' + - 'create group_node:news relationship' + - 'create group_node:person entity' + - 'create group_node:person relationship' + - 'create group_node:webform entity' + - 'create group_node:webform relationship' + - 'delete any group_node:archive_page relationship' + - 'delete any group_node:book relationship' + - 'delete any group_node:builder_page relationship' + - 'delete any group_node:major relationship' + - 'delete any group_node:major_option relationship' + - 'delete any group_node:news relationship' + - 'delete any group_node:person relationship' + - 'delete any group_node:webform relationship' + - 'delete own group_node:archive_page relationship' + - 'delete own group_node:book relationship' + - 'delete own group_node:builder_page relationship' + - 'delete own group_node:major relationship' + - 'delete own group_node:major_option relationship' + - 'delete own group_node:news relationship' + - 'delete own group_node:person relationship' + - 'delete own group_node:webform relationship' + - 'manage group_content_menu menu items' + - 'update any group_node:archive_page entity' + - 'update any group_node:archive_page relationship' + - 'update any group_node:book entity' + - 'update any group_node:book relationship' + - 'update any group_node:builder_page entity' + - 'update any group_node:builder_page relationship' + - 'update any group_node:major entity' + - 'update any group_node:major relationship' + - 'update any group_node:major_option entity' + - 'update any group_node:major_option relationship' + - 'update any group_node:news entity' + - 'update any group_node:news relationship' + - 'update any group_node:person entity' + - 'update any group_node:person relationship' + - 'update any group_node:webform entity' + - 'update any group_node:webform relationship' + - 'update own group_node:archive_page entity' + - 'update own group_node:archive_page relationship' + - 'update own group_node:book entity' + - 'update own group_node:book relationship' + - 'update own group_node:builder_page entity' + - 'update own group_node:builder_page relationship' + - 'update own group_node:major entity' + - 'update own group_node:major relationship' + - 'update own group_node:major_option entity' + - 'update own group_node:major_option relationship' + - 'update own group_node:news entity' + - 'update own group_node:news relationship' + - 'update own group_node:person entity' + - 'update own group_node:person relationship' + - 'update own group_node:webform entity' + - 'update own group_node:webform relationship' + - 'view all group revisions' + - 'view all group_node:archive_page entity revisions' + - 'view all group_node:book entity revisions' + - 'view all group_node:builder_page entity revisions' + - 'view all group_node:major entity revisions' + - 'view all group_node:major_option entity revisions' + - 'view all group_node:news entity revisions' + - 'view all group_node:person entity revisions' + - 'view all group_node:webform entity revisions' + - 'view group' + - 'view group revisions' + - 'view group_membership relationship' + - 'view group_node:archive_page entity' + - 'view group_node:archive_page entity revisions' + - 'view group_node:archive_page relationship' + - 'view group_node:book entity' + - 'view group_node:book entity revisions' + - 'view group_node:book relationship' + - 'view group_node:builder_page entity' + - 'view group_node:builder_page entity revisions' + - 'view group_node:builder_page relationship' + - 'view group_node:major entity' + - 'view group_node:major entity revisions' + - 'view group_node:major relationship' + - 'view group_node:major_option entity' + - 'view group_node:major_option entity revisions' + - 'view group_node:major_option relationship' + - 'view group_node:news entity' + - 'view group_node:news entity revisions' + - 'view group_node:news relationship' + - 'view group_node:person entity' + - 'view group_node:person entity revisions' + - 'view group_node:person relationship' + - 'view group_node:webform entity' + - 'view group_node:webform entity revisions' + - 'view group_node:webform relationship' + - 'view own unpublished group' + - 'view own unpublished group_node:archive_page entity' + - 'view own unpublished group_node:book entity' + - 'view own unpublished group_node:builder_page entity' + - 'view own unpublished group_node:major entity' + - 'view own unpublished group_node:major_option entity' + - 'view own unpublished group_node:news entity' + - 'view own unpublished group_node:person entity' + - 'view own unpublished group_node:webform entity' + - 'view unpublished group_node:archive_page entity' + - 'view unpublished group_node:book entity' + - 'view unpublished group_node:builder_page entity' + - 'view unpublished group_node:major entity' + - 'view unpublished group_node:major_option entity' + - 'view unpublished group_node:news entity' + - 'view unpublished group_node:person entity' + - 'view unpublished group_node:webform entity' diff --git a/web/modules/custom/features/herbie_group/config/install/group.role.group_subsite-outsider.yml b/web/modules/custom/features/herbie_group/config/install/group.role.group_subsite-outsider.yml new file mode 100644 index 000000000..4f3d240bf --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/group.role.group_subsite-outsider.yml @@ -0,0 +1,14 @@ +langcode: en +status: true +dependencies: + config: + - group.type.group_subsite + - user.role.authenticated +id: group_subsite-outsider +label: Outsider +weight: -9 +admin: false +scope: outsider +global_role: authenticated +group_type: group_subsite +permissions: { } diff --git a/web/modules/custom/features/herbie_group/config/install/group.settings.yml b/web/modules/custom/features/herbie_group/config/install/group.settings.yml new file mode 100644 index 000000000..6cb95cbc4 --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/group.settings.yml @@ -0,0 +1 @@ +use_admin_theme: true diff --git a/web/modules/custom/features/herbie_group/config/install/group.type.group_subsite.yml b/web/modules/custom/features/herbie_group/config/install/group.type.group_subsite.yml new file mode 100644 index 000000000..1b979ce46 --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/group.type.group_subsite.yml @@ -0,0 +1,11 @@ +langcode: en +status: true +dependencies: { } +id: group_subsite +label: Subsite +description: 'A section of the site with its own site title, menu, content, and editors.' +new_revision: true +creator_membership: true +creator_wizard: false +creator_roles: + - group_subsite-admin diff --git a/web/modules/custom/features/herbie_group/config/install/group_content_menu.group_content_menu_type.gcm_subsite_menu.yml b/web/modules/custom/features/herbie_group/config/install/group_content_menu.group_content_menu_type.gcm_subsite_menu.yml new file mode 100644 index 000000000..4e9f8315f --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/install/group_content_menu.group_content_menu_type.gcm_subsite_menu.yml @@ -0,0 +1,5 @@ +langcode: en +status: true +dependencies: { } +id: gcm_subsite_menu +label: 'Subsite menu' diff --git a/web/modules/custom/features/herbie_group/config/optional/pathauto.pattern.group_relationship.yml b/web/modules/custom/features/herbie_group/config/optional/pathauto.pattern.group_relationship.yml new file mode 100644 index 000000000..93bc34c72 --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/optional/pathauto.pattern.group_relationship.yml @@ -0,0 +1,15 @@ +langcode: en +status: true +dependencies: + module: + - group +id: group_relationship +label: 'Group relationship' +type: 'canonical_entities:group_relationship' +pattern: 'group/[group_relationship:group:id]/[group_relationship:pretty-path-key]/[group_relationship:id]' +selection_criteria: { } +selection_logic: and +weight: -1 +relationships: + 'group_relationship:langcode:language': + label: Language diff --git a/web/modules/custom/features/herbie_group/config/optional/views.view.group_members.yml b/web/modules/custom/features/herbie_group/config/optional/views.view.group_members.yml new file mode 100644 index 000000000..e8d8555aa --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/optional/views.view.group_members.yml @@ -0,0 +1,735 @@ +langcode: en +status: true +dependencies: + module: + - group + - user +id: group_members +label: 'Group members' +module: group +description: '' +tag: '' +base_table: group_relationship_field_data +base_field: id +display: + default: + id: default + display_title: Master + display_plugin: default + position: 0 + display_options: + title: Members + fields: + name: + id: name + table: users_field_data + field: name + relationship: gc__user + group_type: group + admin_label: '' + entity_type: user + entity_field: name + plugin_id: field + label: User + 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 + group_roles: + id: group_roles + table: group_relationship__group_roles + field: group_roles + relationship: none + group_type: group + admin_label: '' + plugin_id: field + label: 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: None + 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: ul + separator: ', ' + field_api_classes: false + changed: + id: changed + table: group_relationship_field_data + field: changed + relationship: none + group_type: group + admin_label: '' + entity_type: group_relationship + entity_field: changed + plugin_id: field + label: 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 + settings: + date_format: short + 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 + created: + id: created + table: group_relationship_field_data + field: created + relationship: none + group_type: group + admin_label: '' + entity_type: group_relationship + entity_field: created + plugin_id: field + label: Joined + 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: short + 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 + view_group_relationship: + id: view_group_relationship + table: group_relationship + field: view_group_relationship + relationship: none + group_type: group + admin_label: 'View member link' + entity_type: group_relationship + plugin_id: entity_link + 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 + text: 'View member' + output_url_as_text: false + absolute: false + edit_group_relationship: + id: edit_group_relationship + table: group_relationship + field: edit_group_relationship + relationship: none + group_type: group + admin_label: 'Edit member link' + entity_type: group_relationship + plugin_id: entity_link_edit + 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 + text: 'Edit member' + delete_group_relationship: + id: delete_group_relationship + table: group_relationship + field: delete_group_relationship + relationship: none + group_type: group + admin_label: 'Remove member link' + entity_type: group_relationship + plugin_id: entity_link_delete + 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 + text: 'Remove member' + dropbutton: + id: dropbutton + table: views + field: dropbutton + relationship: none + group_type: group + admin_label: '' + plugin_id: dropbutton + label: Operations + 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 + destination: true + fields: + view_group_relationship: view_group_relationship + edit_group_relationship: edit_group_relationship + delete_group_relationship: delete_group_relationship + name: '0' + group_roles: '0' + changed: '0' + created: '0' + pager: + type: full + options: + offset: 0 + items_per_page: 50 + total_pages: null + id: 0 + tags: + next: ›› + previous: ‹‹ + 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 + 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 + access: + type: group_permission + options: + group_permission: 'administer members' + cache: + type: tag + options: { } + empty: + area_text_custom: + id: area_text_custom + table: views + field: area_text_custom + relationship: none + group_type: group + admin_label: '' + plugin_id: text_custom + empty: true + content: 'No members available.' + tokenize: false + sorts: { } + arguments: + gid: + id: gid + table: group_relationship_field_data + field: gid + relationship: none + group_type: group + admin_label: '' + entity_type: group_relationship + entity_field: gid + plugin_id: numeric + default_action: 'access denied' + exception: + value: all + title_enable: false + title: All + title_enable: true + title: '{{ arguments.gid|placeholder }} members' + default_argument_type: fixed + default_argument_options: + argument: '' + default_argument_skip_url: false + summary_options: + base_path: '' + count: true + override: false + items_per_page: 25 + 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 + filters: { } + style: + type: table + options: + grouping: { } + row_class: '' + default_row_class: true + columns: + name: name + group_roles: group_roles + changed: changed + created: created + view_group_relationship: view_group_relationship + edit_group_relationship: edit_group_relationship + delete_group_relationship: delete_group_relationship + dropbutton: dropbutton + default: '-1' + info: + name: + sortable: true + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + group_roles: + align: '' + separator: '' + empty_column: false + responsive: '' + changed: + sortable: true + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + created: + sortable: true + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + view_group_relationship: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + edit_group_relationship: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + delete_group_relationship: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + dropbutton: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + override: true + sticky: true + summary: '' + empty_table: true + caption: '' + description: '' + row: + type: fields + options: + default_field_elements: true + inline: { } + separator: '' + hide_empty: false + query: + type: views_query + options: + query_comment: '' + disable_sql_rewrite: false + distinct: false + replica: false + query_tags: { } + relationships: + gc__user: + id: gc__user + table: group_relationship_field_data + field: gc__user + relationship: none + group_type: group + admin_label: 'Member account' + entity_type: group_relationship + plugin_id: group_relationship_to_entity + required: true + group_relation_plugins: + group_membership: group_membership + header: { } + footer: { } + display_extenders: { } + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - route.group + - url + - url.query_args + - user.group_permissions + tags: + - 'config:field.storage.group_relationship.group_roles' + page_1: + id: page_1 + display_title: Page + display_plugin: page + position: 1 + display_options: + display_extenders: { } + path: group/%group/members + menu: + type: tab + title: Members + description: '' + weight: 20 + enabled: true + expanded: false + menu_name: main + parent: '' + context: '0' + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - route.group + - url + - url.query_args + - user.group_permissions + tags: + - 'config:field.storage.group_relationship.group_roles' diff --git a/web/modules/custom/features/herbie_group/config/optional/views.view.group_nodes.yml b/web/modules/custom/features/herbie_group/config/optional/views.view.group_nodes.yml new file mode 100644 index 000000000..db5274616 --- /dev/null +++ b/web/modules/custom/features/herbie_group/config/optional/views.view.group_nodes.yml @@ -0,0 +1,950 @@ +langcode: en +status: true +dependencies: + module: + - gnode + - group + - node +id: group_nodes +label: 'Group nodes' +module: gnode +description: 'Lists all of the nodes that have been added to a group.' +tag: '' +base_table: node_field_data +base_field: nid +display: + default: + id: default + display_title: Master + display_plugin: default + position: 0 + display_options: + title: Nodes + fields: + title: + id: title + table: node_field_data + field: title + relationship: none + group_type: group + admin_label: '' + entity_type: node + entity_field: title + plugin_id: field + 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 + type: + id: type + table: node_field_data + field: type + relationship: none + group_type: group + admin_label: '' + entity_type: node + entity_field: type + plugin_id: field + label: 'Content 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 + status: + id: status + table: node_field_data + field: status + relationship: none + group_type: group + admin_label: '' + entity_type: node + entity_field: status + plugin_id: field + label: Status + 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: custom + format_custom_false: Unpublished + format_custom_true: Published + 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 + changed: + id: changed + table: node_field_data + field: changed + relationship: none + group_type: group + admin_label: '' + entity_type: node + entity_field: changed + plugin_id: field + label: 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 + settings: + date_format: short + 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 + view_group_relationship: + id: view_group_relationship + table: group_relationship + field: view_group_relationship + relationship: group_relationship + group_type: group + admin_label: 'View relation link' + entity_type: group_relationship + plugin_id: entity_link + label: 'Link to Group relationship' + 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: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + text: 'View relation' + output_url_as_text: false + absolute: false + edit_group_relationship: + id: edit_group_relationship + table: group_relationship + field: edit_group_relationship + relationship: group_relationship + group_type: group + admin_label: 'Edit relation link' + entity_type: group_relationship + plugin_id: entity_link_edit + label: 'Link to edit Group relationship' + 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: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + text: 'Edit relation' + delete_group_relationship: + id: delete_group_relationship + table: group_relationship + field: delete_group_relationship + relationship: group_relationship + group_type: group + admin_label: 'Delete relation link' + entity_type: group_relationship + plugin_id: entity_link_delete + label: 'Link to delete Group relationship' + 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: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + text: 'Delete relation' + edit_node: + id: edit_node + table: node + field: edit_node + relationship: none + group_type: group + admin_label: 'Edit node link' + entity_type: node + plugin_id: entity_link_edit + label: 'Link to edit Content' + 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: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + text: 'Edit node' + delete_node: + id: delete_node + table: node + field: delete_node + relationship: none + group_type: group + admin_label: 'Delete node link' + entity_type: node + plugin_id: entity_link_delete + label: 'Link to delete Content' + 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: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + text: 'Delete node' + dropbutton: + id: dropbutton + table: views + field: dropbutton + relationship: none + group_type: group + admin_label: '' + plugin_id: dropbutton + label: Operations + 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 + destination: true + fields: + view_group_relationship: view_group_relationship + edit_group_relationship: edit_group_relationship + delete_group_relationship: delete_group_relationship + edit_node: edit_node + delete_node: delete_node + title: '0' + type: '0' + status: '0' + changed: '0' + pager: + type: full + options: + offset: 0 + items_per_page: 50 + total_pages: null + id: 0 + tags: + next: ›› + previous: ‹‹ + 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 + 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 + access: + type: group_permission + options: + group_permission: 'access group_node overview' + cache: + type: tag + options: { } + empty: + area_text_custom: + id: area_text_custom + table: views + field: area_text_custom + relationship: none + group_type: group + admin_label: '' + plugin_id: text_custom + empty: true + content: 'No content available.' + tokenize: false + sorts: { } + arguments: + gid: + id: gid + table: group_relationship_field_data + field: gid + relationship: group_relationship + group_type: group + admin_label: '' + entity_type: group_relationship + entity_field: gid + plugin_id: numeric + default_action: 'access denied' + exception: + value: all + title_enable: false + title: All + title_enable: true + title: '{{ arguments.gid|placeholder }} nodes' + default_argument_type: fixed + default_argument_options: + argument: '' + default_argument_skip_url: false + summary_options: + base_path: '' + count: true + override: false + items_per_page: 25 + 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 + filters: + status: + id: status + table: node_field_data + field: status + relationship: none + group_type: group + admin_label: '' + entity_type: node + entity_field: status + plugin_id: boolean + operator: '=' + value: '1' + group: 1 + exposed: true + expose: + operator_id: '' + label: 'Published status' + description: '' + use_operator: false + operator: status_op + identifier: status + required: true + remember: false + multiple: false + remember_roles: + authenticated: authenticated + anonymous: '0' + administrator: '0' + group_admin: '0' + is_grouped: true + group_info: + label: 'Published status' + description: '' + identifier: status + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: + 1: + title: Published + operator: '=' + value: '1' + 2: + title: Unpublished + operator: '=' + value: '0' + type: + id: type + table: node_field_data + field: type + relationship: none + group_type: group + admin_label: '' + entity_type: node + entity_field: type + plugin_id: bundle + 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: false + multiple: false + remember_roles: + authenticated: authenticated + anonymous: '0' + administrator: '0' + group_admin: '0' + 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: { } + style: + type: table + options: + grouping: { } + row_class: '' + default_row_class: true + columns: + title: title + type: type + status: status + changed: changed + view_group_relationship: view_group_relationship + edit_group_relationship: edit_group_relationship + delete_group_relationship: delete_group_relationship + edit_node: edit_node + delete_node: delete_node + dropbutton: dropbutton + default: changed + 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: '' + status: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + changed: + sortable: true + default_sort_order: desc + align: '' + separator: '' + empty_column: false + responsive: '' + view_group_relationship: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + edit_group_relationship: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + delete_group_relationship: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + edit_node: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + delete_node: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + dropbutton: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + override: true + sticky: true + summary: '' + empty_table: true + caption: '' + description: '' + row: + type: fields + options: + default_field_elements: true + inline: { } + separator: '' + hide_empty: false + query: + type: views_query + options: + query_comment: '' + disable_sql_rewrite: false + distinct: false + replica: false + query_tags: { } + relationships: + group_relationship: + id: group_relationship + table: node_field_data + field: group_relationship + relationship: none + group_type: group + admin_label: 'Content relation' + entity_type: node + plugin_id: group_relationship_to_entity_reverse + required: true + group_relation_plugins: { } + header: { } + footer: { } + display_extenders: { } + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - route.group + - url + - url.query_args + - user.group_permissions + - 'user.node_grants:view' + tags: { } + page_1: + id: page_1 + display_title: Page + display_plugin: page + position: 1 + display_options: + display_extenders: { } + path: group/%group/nodes + menu: + type: tab + title: Nodes + description: '' + weight: 25 + enabled: true + expanded: false + menu_name: main + parent: '' + context: '0' + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - route.group + - url + - url.query_args + - user.group_permissions + - 'user.node_grants:view' + tags: { } diff --git a/web/modules/custom/features/herbie_group/herbie_group.features.yml b/web/modules/custom/features/herbie_group/herbie_group.features.yml new file mode 100644 index 000000000..c3ef3e002 --- /dev/null +++ b/web/modules/custom/features/herbie_group/herbie_group.features.yml @@ -0,0 +1,2 @@ +bundle: herbie +required: true diff --git a/web/modules/custom/features/herbie_group/herbie_group.info.yml b/web/modules/custom/features/herbie_group/herbie_group.info.yml new file mode 100644 index 000000000..5f8bb2f21 --- /dev/null +++ b/web/modules/custom/features/herbie_group/herbie_group.info.yml @@ -0,0 +1,21 @@ +name: Group +description: 'Provides a Group type and related configuration. ' +type: module +core_version_requirement: '^9.4 || ^10' +dependencies: + - 'drupal:block' + - 'drupal:field' + - 'drupal:node' + - 'drupal:path' + - 'drupal:user' + - 'group:gnode' + - 'group:group' + - 'group_content_menu:group_content_menu' + - 'herbie_archive_page:herbie_archive_page' + - 'herbie_builder_page:herbie_builder_page' + - 'herbie_major:herbie_major' + - 'herbie_news:herbie_news' + - 'herbie_person:herbie_person' + - 'herbie_roles:herbie_roles' +version: '1.0' +package: Herbie diff --git a/web/modules/custom/features/herbie_major/config/install/pathauto.pattern.major.yml b/web/modules/custom/features/herbie_major/config/install/pathauto.pattern.major.yml index 14ba4eca8..d2f0b2e4d 100644 --- a/web/modules/custom/features/herbie_major/config/install/pathauto.pattern.major.yml +++ b/web/modules/custom/features/herbie_major/config/install/pathauto.pattern.major.yml @@ -6,16 +6,16 @@ dependencies: id: major label: Major type: 'canonical_entities:node' -pattern: 'major/[node:title]' +pattern: '[node:group:url:path]/major/[node:title]' selection_criteria: - c326c991-c933-430a-ac56-5d01cac08d9e: + 43578d2a-92a5-4ad4-ac96-b198655e2e54: id: 'entity_bundle:node' negate: false - uuid: c326c991-c933-430a-ac56-5d01cac08d9e + uuid: 43578d2a-92a5-4ad4-ac96-b198655e2e54 context_mapping: node: node bundles: major: major selection_logic: and -weight: -5 +weight: -7 relationships: { } diff --git a/web/modules/custom/features/herbie_major/config/install/pathauto.pattern.major_option.yml b/web/modules/custom/features/herbie_major/config/install/pathauto.pattern.major_option.yml index c9b7b33a3..1c0c0cedf 100644 --- a/web/modules/custom/features/herbie_major/config/install/pathauto.pattern.major_option.yml +++ b/web/modules/custom/features/herbie_major/config/install/pathauto.pattern.major_option.yml @@ -6,16 +6,16 @@ dependencies: id: major_option label: 'Major option' type: 'canonical_entities:node' -pattern: 'major/[node:n_major_option_parent_major:entity:title]/option/[node:title]' +pattern: '[node:group:url:path]/major/[node:n_major_option_parent_major:entity:title]/option/[node:title]' selection_criteria: - 9a636fd3-7b46-45c5-b859-410d1c23cb4c: + ae03cbfe-eaa2-4280-9fbd-0e85321617e4: id: 'entity_bundle:node' negate: false - uuid: 9a636fd3-7b46-45c5-b859-410d1c23cb4c + uuid: ae03cbfe-eaa2-4280-9fbd-0e85321617e4 context_mapping: node: node bundles: major_option: major_option selection_logic: and -weight: -5 +weight: -6 relationships: { } diff --git a/web/modules/custom/features/herbie_major/herbie_major.info.yml b/web/modules/custom/features/herbie_major/herbie_major.info.yml index e4ea974d6..0a81bf871 100644 --- a/web/modules/custom/features/herbie_major/herbie_major.info.yml +++ b/web/modules/custom/features/herbie_major/herbie_major.info.yml @@ -27,5 +27,5 @@ dependencies: - 'pathauto:pathauto' - 'svg_image:svg_image' - 'twig_ui:twig_ui' -version: 1.4.1 +version: '1.5' package: Herbie diff --git a/web/modules/custom/features/herbie_news/config/install/core.entity_form_display.node.news.default.yml b/web/modules/custom/features/herbie_news/config/install/core.entity_form_display.node.news.default.yml index 784dfb202..ba8ee2919 100644 --- a/web/modules/custom/features/herbie_news/config/install/core.entity_form_display.node.news.default.yml +++ b/web/modules/custom/features/herbie_news/config/install/core.entity_form_display.node.news.default.yml @@ -15,6 +15,7 @@ dependencies: - workflows.workflow.editorial module: - content_moderation + - entitygroupfield - field_group - link - media_library @@ -76,6 +77,16 @@ content: region: content settings: { } third_party_settings: { } + entitygroupfield: + type: entitygroupfield_select_widget + weight: 15 + region: content + settings: + help_text: '' + label: 'Group name' + multiple: false + required: false + third_party_settings: { } moderation_state: type: moderation_state_default weight: 14 diff --git a/web/modules/custom/features/herbie_news/config/install/pathauto.pattern.news.yml b/web/modules/custom/features/herbie_news/config/install/pathauto.pattern.news.yml index d1e98b39b..a0a49c768 100644 --- a/web/modules/custom/features/herbie_news/config/install/pathauto.pattern.news.yml +++ b/web/modules/custom/features/herbie_news/config/install/pathauto.pattern.news.yml @@ -6,12 +6,12 @@ dependencies: id: news label: News type: 'canonical_entities:node' -pattern: 'news/[node:title]' +pattern: '[node:group:url:path]/news/[node:title]' selection_criteria: - 80ad37f3-e73c-4042-a295-cb1b9f79b939: + 5591e308-2874-4da4-91ef-39d344b29c9f: id: 'entity_bundle:node' negate: false - uuid: 80ad37f3-e73c-4042-a295-cb1b9f79b939 + uuid: 5591e308-2874-4da4-91ef-39d344b29c9f context_mapping: node: node bundles: diff --git a/web/modules/custom/features/herbie_news/herbie_news.info.yml b/web/modules/custom/features/herbie_news/herbie_news.info.yml index a7c351aad..da29e0367 100644 --- a/web/modules/custom/features/herbie_news/herbie_news.info.yml +++ b/web/modules/custom/features/herbie_news/herbie_news.info.yml @@ -19,11 +19,12 @@ dependencies: - 'drupal:text' - 'drupal:user' - 'drupal:views' + - 'entitygroupfield:entitygroupfield' - 'field_group:field_group' - 'herbie_media_types:herbie_media_types' - 'herbie_person:herbie_person' - 'herbie_webform:herbie_webform' - 'image_class:image_class' - 'pathauto:pathauto' -version: 1.3.1 +version: '1.4' package: Herbie diff --git a/web/modules/custom/features/herbie_person/config/install/pathauto.pattern.person.yml b/web/modules/custom/features/herbie_person/config/install/pathauto.pattern.person.yml index bb8d3333b..d47030f77 100644 --- a/web/modules/custom/features/herbie_person/config/install/pathauto.pattern.person.yml +++ b/web/modules/custom/features/herbie_person/config/install/pathauto.pattern.person.yml @@ -6,16 +6,16 @@ dependencies: id: person label: Person type: 'canonical_entities:node' -pattern: 'person/[node:title]' +pattern: '[node:group:url:path]/person/[node:title]' selection_criteria: - d138bafe-e2f4-4842-ae75-34223692c5de: + 3ecb54a2-672e-4a38-a03f-bf92383ab783: id: 'entity_bundle:node' negate: false - uuid: d138bafe-e2f4-4842-ae75-34223692c5de + uuid: 3ecb54a2-672e-4a38-a03f-bf92383ab783 context_mapping: node: node bundles: person: person selection_logic: and -weight: -5 +weight: -4 relationships: { } diff --git a/web/modules/custom/features/herbie_person/herbie_person.info.yml b/web/modules/custom/features/herbie_person/herbie_person.info.yml index 1c5fc64a1..a4f9185f1 100644 --- a/web/modules/custom/features/herbie_person/herbie_person.info.yml +++ b/web/modules/custom/features/herbie_person/herbie_person.info.yml @@ -27,5 +27,5 @@ dependencies: - 'image_class:image_class' - 'pathauto:pathauto' - 'svg_image:svg_image_responsive' -version: 1.2.2 +version: '1.3' package: Herbie diff --git a/web/modules/custom/features/herbie_roles/config/install/user.role.administrator.yml b/web/modules/custom/features/herbie_roles/config/install/user.role.administrator.yml index 879feda6f..5fcb0f7f4 100644 --- a/web/modules/custom/features/herbie_roles/config/install/user.role.administrator.yml +++ b/web/modules/custom/features/herbie_roles/config/install/user.role.administrator.yml @@ -39,6 +39,7 @@ dependencies: - file_delete - filter - google_analytics + - group - layout_builder - media - media_file_delete @@ -77,6 +78,7 @@ permissions: - 'access entity usage statistics' - 'access feed overview' - 'access files overview' + - 'access group overview' - 'access media overview' - 'access own webform configuration' - 'access protected page password screen' @@ -132,6 +134,7 @@ permissions: - 'create content block content' - 'create cta block content' - 'create file media' + - 'create group_subsite group' - 'create hero block content' - 'create html_code block content' - 'create icon_links block content' diff --git a/web/modules/custom/features/herbie_roles/config/install/user.role.authenticated.yml b/web/modules/custom/features/herbie_roles/config/install/user.role.authenticated.yml index 1dcbbdb83..97068eb6a 100644 --- a/web/modules/custom/features/herbie_roles/config/install/user.role.authenticated.yml +++ b/web/modules/custom/features/herbie_roles/config/install/user.role.authenticated.yml @@ -16,4 +16,5 @@ permissions: - 'access protected page password screen' - 'bypass honeypot protection' - 'view media' + - 'view the administration theme' - 'view unl_directory_entry external entity' diff --git a/web/modules/custom/features/herbie_roles/config/install/user.role.coder.yml b/web/modules/custom/features/herbie_roles/config/install/user.role.coder.yml index 16624c829..4bc4ad38e 100644 --- a/web/modules/custom/features/herbie_roles/config/install/user.role.coder.yml +++ b/web/modules/custom/features/herbie_roles/config/install/user.role.coder.yml @@ -13,6 +13,7 @@ dependencies: - field_ui - filter - google_analytics + - group - metatag - node - paragraphs @@ -30,6 +31,7 @@ permissions: - 'access contextual links' - 'access css fields' - 'access feed overview' + - 'access group overview' - 'access protected page password screen' - 'access site reports' - 'access taxonomy overview' @@ -53,6 +55,7 @@ permissions: - 'administer twig templates' - 'administer views' - 'bypass pages password protection' + - 'create group_subsite group' - 'create html_code block content' - 'delete any html_code block content' - 'load twig templates from file system' diff --git a/web/modules/custom/features/herbie_roles/config/install/user.role.editor.yml b/web/modules/custom/features/herbie_roles/config/install/user.role.editor.yml index 525cf267a..b6487e7f0 100644 --- a/web/modules/custom/features/herbie_roles/config/install/user.role.editor.yml +++ b/web/modules/custom/features/herbie_roles/config/install/user.role.editor.yml @@ -31,6 +31,7 @@ dependencies: - external_entities - file - filter + - group - layout_builder - media - menu_admin_per_menu @@ -54,6 +55,7 @@ permissions: - 'access contextual links' - 'access entity usage statistics' - 'access files overview' + - 'access group overview' - 'access media overview' - 'access site in maintenance mode' - 'access toolbar' diff --git a/web/modules/custom/features/herbie_roles/config/install/user.role.site_admin.yml b/web/modules/custom/features/herbie_roles/config/install/user.role.site_admin.yml index 0aebfb7fd..8481b465a 100644 --- a/web/modules/custom/features/herbie_roles/config/install/user.role.site_admin.yml +++ b/web/modules/custom/features/herbie_roles/config/install/user.role.site_admin.yml @@ -34,6 +34,7 @@ dependencies: - file_delete - filter - google_analytics + - group - layout_builder - media - media_file_delete @@ -65,6 +66,7 @@ permissions: - 'access contextual links' - 'access entity usage statistics' - 'access files overview' + - 'access group overview' - 'access media overview' - 'access own webform configuration' - 'access site in maintenance mode' diff --git a/web/modules/custom/features/herbie_roles/herbie_roles.info.yml b/web/modules/custom/features/herbie_roles/herbie_roles.info.yml index 2a247a735..9d9924f9a 100644 --- a/web/modules/custom/features/herbie_roles/herbie_roles.info.yml +++ b/web/modules/custom/features/herbie_roles/herbie_roles.info.yml @@ -31,6 +31,7 @@ dependencies: - 'field_css:field_css' - 'file_delete:file_delete' - 'google_analytics:google_analytics' + - 'group:group' - 'herbie_archive_page:herbie_archive_page' - 'herbie_builder_page:herbie_builder_page' - 'herbie_media_types:herbie_media_types' @@ -54,5 +55,5 @@ dependencies: - 'webform:webform' - 'webform:webform_node' - 'webform:webform_submission_log' -version: 1.4.2 +version: '1.5' package: Herbie diff --git a/web/modules/custom/features/herbie_webform/config/install/pathauto.pattern.webform_node.yml b/web/modules/custom/features/herbie_webform/config/install/pathauto.pattern.webform_node.yml index ed6b9dcd2..0c4d531ba 100644 --- a/web/modules/custom/features/herbie_webform/config/install/pathauto.pattern.webform_node.yml +++ b/web/modules/custom/features/herbie_webform/config/install/pathauto.pattern.webform_node.yml @@ -6,16 +6,16 @@ dependencies: id: webform_node label: 'Webform node' type: 'canonical_entities:node' -pattern: '[node:menu-link:parents:join-path]/[node:menu-link:title]' +pattern: '[node:group:url:path]/[node:menu-link:parents:join-path]/[node:title]' selection_criteria: - f1d9a318-ae19-4c77-88c2-7e73fd7f85a8: + c8db6360-cc82-4e1a-bfec-5cb25d8a04fb: id: 'entity_bundle:node' negate: false - uuid: f1d9a318-ae19-4c77-88c2-7e73fd7f85a8 + uuid: c8db6360-cc82-4e1a-bfec-5cb25d8a04fb context_mapping: node: node bundles: webform: webform selection_logic: and -weight: -5 +weight: -3 relationships: { } diff --git a/web/modules/custom/features/herbie_webform/config/optional/filter.format.webform_default.yml b/web/modules/custom/features/herbie_webform/config/optional/filter.format.webform_default.yml index e5c650ff3..7062010e6 100644 --- a/web/modules/custom/features/herbie_webform/config/optional/filter.format.webform_default.yml +++ b/web/modules/custom/features/herbie_webform/config/optional/filter.format.webform_default.yml @@ -1,6 +1,8 @@ langcode: en status: true -dependencies: { } +dependencies: + module: + - webform name: 'Webform (Default) - DO NOT EDIT' format: webform_default weight: 100 diff --git a/web/modules/custom/features/herbie_webform/herbie_webform.info.yml b/web/modules/custom/features/herbie_webform/herbie_webform.info.yml index b4c43f731..4cb24c077 100644 --- a/web/modules/custom/features/herbie_webform/herbie_webform.info.yml +++ b/web/modules/custom/features/herbie_webform/herbie_webform.info.yml @@ -16,5 +16,5 @@ dependencies: - 'linkit:linkit' - 'pathauto:pathauto' - 'webform:webform' -version: 1.2.2 +version: '1.3' package: Herbie diff --git a/web/modules/custom/unl_group/src/Routing/RouteSubscriber.php b/web/modules/custom/unl_group/src/Routing/RouteSubscriber.php new file mode 100644 index 000000000..628eb425c --- /dev/null +++ b/web/modules/custom/unl_group/src/Routing/RouteSubscriber.php @@ -0,0 +1,27 @@ +get('entity.group.collection')) { + $groups = \Drupal::entityTypeManager()->getStorage('group')->loadMultiple(); + if (!$groups && empty(array_intersect(['super_administrator', 'administrator', 'coder'], \Drupal::currentUser()->getRoles()))) { + $route->setRequirement('_access', 'FALSE'); + } + } + } + +} diff --git a/web/modules/custom/unl_group/unl_group.info.yml b/web/modules/custom/unl_group/unl_group.info.yml new file mode 100644 index 000000000..09f7a2d47 --- /dev/null +++ b/web/modules/custom/unl_group/unl_group.info.yml @@ -0,0 +1,12 @@ +name: 'UNL Group' +description: 'Extends Group functionality' +package: UNL + +type: module +core_version_requirement: ^10 + +dependencies: +- group:group +- entitygroupfield:entitygroupfield + +version: 1.x diff --git a/web/modules/custom/unl_group/unl_group.module b/web/modules/custom/unl_group/unl_group.module new file mode 100644 index 000000000..0bf99e304 --- /dev/null +++ b/web/modules/custom/unl_group/unl_group.module @@ -0,0 +1,32 @@ +getPluginId() == 'entitygroupfield_select_widget') { + $groups = \Drupal::entityTypeManager()->getStorage('group')->loadMultiple(); + if (!$groups) { + $field_widget_complete_form['widget']['#access'] = FALSE; + } + } +} + +/** + * Implements hook_field_widget_single_element_form_alter(). + */ +function unl_group_field_widget_single_element_form_alter(&$field_widget_complete_form, FormStateInterface $form_state, $context) { + // Hide the alias/path field for the Group Relationship. This principally is on + // the node edit form. We're not concerned with the relationship entity at all. + if ($context['widget']->getPluginId() == 'entitygroupfield_select_widget') { + $field_widget_complete_form['subform']['#access'] = FALSE; + } +} diff --git a/web/modules/custom/unl_group/unl_group.services.yml b/web/modules/custom/unl_group/unl_group.services.yml new file mode 100644 index 000000000..f9e48c531 --- /dev/null +++ b/web/modules/custom/unl_group/unl_group.services.yml @@ -0,0 +1,5 @@ +services: + unl_group.route_subscriber: + class: Drupal\unl_group\Routing\RouteSubscriber + tags: + - { name: event_subscriber } diff --git a/web/modules/custom/unl_pathauto/unl_pathauto.module b/web/modules/custom/unl_pathauto/unl_pathauto.module index 5b529cfaf..ebf241b3d 100644 --- a/web/modules/custom/unl_pathauto/unl_pathauto.module +++ b/web/modules/custom/unl_pathauto/unl_pathauto.module @@ -16,8 +16,8 @@ function unl_pathauto_pathauto_pattern_alter(PathautoPatternInterface $pattern, // token instead of menu-based tokens. if ($context['module'] == 'node' && $context['bundle'] == 'builder_page') { $menu = $context['data']['node']->__get('menu'); - if ($menu['enabled'] === 0) { - $pattern->setPattern('[node:title]'); + if (!is_array($menu) || $menu['enabled'] === 0) { + $pattern->setPattern('[node:group:url:path]/[node:title]'); } } } @@ -33,12 +33,12 @@ function unl_pathauto_form_pathauto_pattern_form_alter(&$form, FormStateInterfac // Loop through selection criteria to find if this form is being used for the // builder_page node bundle. If so, then add markup to top of page. foreach ($selection_criteria as $criterion) { - if ($criterion['id'] == 'node_type' + if ($criterion['id'] == 'entity_bundle:node' && in_array('builder_page', $criterion['bundles']) ) { $form['unl_pathauto_notice'] = [ '#weight' => -10, - '#markup' => t('
In the event a Builder Page node does not have a menu title, then [node:title] is used instead as the pattern. This behavior is controlled by the UNL Pathauto module.
'), + '#markup' => t('In the event a Builder Page node does not have a menu title, then [node:group:url:path]/[node:title] is used instead as the pattern. This behavior is controlled by the UNL Pathauto module.
'), ]; break; } diff --git a/web/themes/custom/unl_five_herbie/templates/block/block--block-content-contact-info.html.twig b/web/themes/custom/unl_five_herbie/templates/block/block--block-content-contact-info.html.twig index f1571f21f..2e72648cd 100644 --- a/web/themes/custom/unl_five_herbie/templates/block/block--block-content-contact-info.html.twig +++ b/web/themes/custom/unl_five_herbie/templates/block/block--block-content-contact-info.html.twig @@ -40,7 +40,7 @@ {# @todo check if flagship site. if so, then swap out department for organization and remove parent #}