Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • wcms/uw_cfg_common
1 result
Show changes
Commits on Source (49)
Showing
with 420 additions and 28 deletions
langcode: en
status: true
dependencies: { }
id: inline_blockuw_cbl_mailchimp
block_id: 'inline_block:uw_cbl_mailchimp'
category: uw_bc_content
label: Mailchimp
image_path: images/layout_builder_browser/mailchimp.svg
image_path_base: 'theme:uw_fdsu_theme_resp'
image_alt: ''
weight: null
langcode: en
status: true
dependencies: { }
id: inline_blockuw_cbl_social_intents
block_id: 'inline_block:uw_cbl_social_intents'
category: uw_bc_content
label: 'Social Intents'
image_path: images/layout_builder_browser/socialintents.svg
image_path_base: 'theme:uw_fdsu_theme_resp'
image_alt: ''
weight: null
langcode: en
status: true
dependencies: { }
id: uw_lbb_project_listing
block_id: 'views_block:uw_view_projects-projects_block'
category: uw_bc_listings
label: 'Project list'
weight: 0
image_path: images/layout_builder_browser/projectlist.svg
image_path_base: 'theme:uw_fdsu_theme_resp'
image_alt: 'Project list'
langcode: en
status: true
dependencies: { }
id: uw_lbb_project_search
block_id: uw_cbl_project_search
category: uw_bc_searches
label: 'Project search'
weight: 0
image_path: images/layout_builder_browser/projectsearch.svg
image_path_base: 'theme:uw_fdsu_theme_resp'
image_alt: 'Project search'
langcode: en
status: true
dependencies: { }
id: uw_lbb_project_teaser
block_id: uw_cbl_project_teaser
category: uw_bc_teasers
label: 'Project teaser'
weight: 0
image_path: images/layout_builder_browser/projectteaser.svg
image_path_base: 'theme:uw_fdsu_theme_resp'
image_alt: 'Project teaser'
......@@ -17,7 +17,7 @@ entity_type_groups:
advanced: advanced
open_graph: open_graph
twitter_cards: twitter_cards
schema_web_page: schema_person
schema_person: schema_person
uw_ct_event:
basic: basic
advanced: advanced
......@@ -41,13 +41,20 @@ entity_type_groups:
advanced: advanced
open_graph: open_graph
twitter_cards: twitter_cards
schema_web_page: schema_person
schema_person: schema_person
uw_ct_project:
basic: basic
advanced: advanced
open_graph: open_graph
twitter_cards: twitter_cards
schema_web_page: schema_web_page
uw_ct_service:
basic: basic
advanced: advanced
open_graph: open_graph
twitter_cards: twitter_cards
schema_web_page: schema_web_page
schema_service: schema_service
uw_ct_web_page:
basic: basic
advanced: advanced
......
......@@ -13,6 +13,7 @@ allowed_bundles:
- uw_ct_news_item
- uw_ct_opportunity
- uw_ct_profile
- uw_ct_project
- uw_ct_service
- uw_ct_sidebar
- uw_ct_web_page
......@@ -3,28 +3,50 @@ status: true
dependencies:
module:
- node
id: default
label: Default
id: default
description: 'A default Linkit profile'
matchers:
556010a3-e317-48b3-b4ed-854c10f4b950:
uuid: 556010a3-e317-48b3-b4ed-854c10f4b950
id: 'entity:node'
weight: 0
uuid: 556010a3-e317-48b3-b4ed-854c10f4b950
settings:
metadata: '[node:content-type] by [node:author] | [node:created:long] (node [node:nid])'
bundles: { }
group_by_bundle: false
include_unpublished: true
substitution_type: canonical
limit: 100
include_unpublished: true
weight: -9
6104a100-f463-4c40-8bde-6c442591afe7:
uuid: 6104a100-f463-4c40-8bde-6c442591afe7
id: email
weight: 0
uuid: 6104a100-f463-4c40-8bde-6c442591afe7
settings: { }
weight: -6
d53fbc60-f2a7-40b5-a643-1c20c21143a4:
uuid: d53fbc60-f2a7-40b5-a643-1c20c21143a4
id: anchor_basic
weight: 0
uuid: d53fbc60-f2a7-40b5-a643-1c20c21143a4
settings: { }
weight: -10
dbcc29e8-5c1a-4a8f-8a76-f4f7adc645a5:
id: 'entity:media'
uuid: dbcc29e8-5c1a-4a8f-8a76-f4f7adc645a5
settings:
metadata: '<img src="[media:field_media_image:linkit_result_thumbnail]" alt="[media:field_media_image:alt]">'
bundles:
uw_mt_image: uw_mt_image
group_by_bundle: true
substitution_type: media
limit: 100
weight: -8
280dc52b-0208-4458-b3dc-21ddbaac15e8:
id: 'entity:media'
uuid: 280dc52b-0208-4458-b3dc-21ddbaac15e8
settings:
metadata: ''
bundles:
uw_mt_file: uw_mt_file
group_by_bundle: true
substitution_type: media
limit: 100
weight: -7
......@@ -70,7 +70,7 @@ class UwNodeAccessCheck implements AccessInterface {
return AccessResult::forbidden();
}
// Check if this is a sidebar content type and if the user has permission
// Check if this is a footer content type and if the user has permission
// to edit the content type. Return access denied when user has no edit
// permission.
if ($node && $node->bundle() == 'uw_ct_site_footer' && !$account->hasPermission('edit any uw_ct_site_footer content')) {
......
......@@ -109,7 +109,7 @@ class UWService implements UWServiceInterface {
/**
* {@inheritDoc}
*/
public function prepareResponsiveImage(EntityInterface $entity, string $image_style): array {
public function prepareResponsiveImage(?EntityInterface $entity, string $image_style): array {
// Ensure that we can load an entity on the media.
if ($entity && isset($entity->field_media_image->entity)) {
......@@ -125,7 +125,7 @@ class UWService implements UWServiceInterface {
// Set the alt for the image.
$variables['alt'] = $entity->field_media_image->alt;
// These is a function from the responsive image module that sets all
// This is a function from the responsive image module that sets all
// the variables for the sources of the responsive image.
template_preprocess_responsive_image($variables);
......@@ -192,6 +192,7 @@ class UWService implements UWServiceInterface {
'uw_ct_news_item',
'uw_ct_opportunity',
'uw_ct_profile',
'uw_ct_project',
'uw_ct_web_page',
'uw_ct_service',
];
......@@ -205,6 +206,7 @@ class UWService implements UWServiceInterface {
'uw_ct_news_item',
'uw_ct_opportunity',
'uw_ct_profile',
'uw_ct_project',
'uw_ct_catalog_item',
'uw_ct_service',
];
......@@ -219,6 +221,7 @@ class UWService implements UWServiceInterface {
'uw_ct_news_item',
'uw_ct_opportunity',
'uw_ct_profile',
'uw_ct_project',
'uw_ct_web_page',
];
break;
......@@ -327,6 +330,7 @@ class UWService implements UWServiceInterface {
'uw_ct_news_item' => TRUE,
'uw_ct_opportunity' => FALSE,
'uw_ct_profile' => FALSE,
'uw_ct_project' => FALSE,
'uw_ct_service' => TRUE,
'uw_ct_sidebar' => FALSE,
'uw_ct_site_footer' => FALSE,
......
......@@ -38,7 +38,7 @@ interface UWServiceInterface {
* @return array
* Array with details for responsive image.
*/
public function prepareResponsiveImage(EntityInterface $entity, string $image_style): array;
public function prepareResponsiveImage(?EntityInterface $entity, string $image_style): array;
/**
* Get the UW images styles used in UW responsive image.
......
......@@ -81,6 +81,10 @@ class UwNodeContent {
$content_data = $this->getProfileContent($node_flags);
break;
case 'uw_ct_project':
$content_data = $this->getProjectContent($node_flags);
break;
case 'uw_ct_service':
$content_data = $this->getServiceContent($node_flags);
break;
......@@ -487,20 +491,42 @@ class UwNodeContent {
// on the view mode.
if ($node_flags['get_image']) {
// If we are on a layout page, use the portrait image.
if (\Drupal::routeMatch()->getRouteName() == 'layout_builder.overrides.node.view') {
$use_portrait = TRUE;
}
// If it is a teaser use the listing image, if not use the portrait image.
if ($view_mode == 'teaser') {
$content_data['image'] = $this->addToContentData('image', 'field_uw_contact_listing_image');
elseif ($view_mode == 'teaser') {
$use_portrait = FALSE;
}
else {
$use_portrait = TRUE;
}
// If we are to use the portrait image, set the variables and
// extra options. If not, use the listing image.
if ($use_portrait) {
// Set the portrait image.
$content_data['image'] = $this->addToContentData('image', 'field_uw_ct_contact_image');
// Add the extra options for portrait image style.
$content_data['image']['extra_options'] = [
'type' => 'portrait',
'crop' => 'portrait',
'is_responsive' => TRUE,
];
}
else {
// Add the extra options for portrait image style.
$content_data['image']['extra_options'] = [
'type' => 'portrait',
'crop' => 'portrait',
'is_responsive' => TRUE,
];
// Use the listing image.
$content_data['image'] = $this->addToContentData('image', 'field_uw_contact_listing_image');
$content_data['image']['extra_options'] = [
'type' => 'listing_image',
'is_responsive' => TRUE,
];
}
}
// Setup the actual content.
......@@ -576,6 +602,7 @@ class UwNodeContent {
$content_data['footer']['links']['has_children'] = TRUE;
$content_data['footer']['links']['profile'] = $this->addToContentData('link', 'field_uw_ct_profile_info_link');
$content_data['footer']['links']['webpage'] = $this->addToContentData('link', 'field_uw_ct_profile_link_persona');
$content_data['footer']['links']['link_to_contact'] = $this->addToContentData('link', 'field_uw_ct_profile_link_contact');
}
// Get the tags, if any.
......@@ -591,6 +618,56 @@ class UwNodeContent {
return $content_data;
}
/**
* Get the node content for project content type.
*
* @param array $node_flags
* The flags for the node.
*
* @return array
* Array of content to get from the node.
*/
public function getProjectContent(array $node_flags): array {
// Get the content data.
$content_data = $this->setupContentData($node_flags);
// Setup the actual content.
if ($node_flags['get_content']) {
$content_data['content'] = $this->addToContentData('content', 'field_uw_project_summary');
}
// Get listing image.
if ($node_flags['get_image']) {
$content_data['image'] = $this->addToContentData('image', 'field_uw_project_listing_image');
$content_data['image']['extra_options'] = [
'type' => 'listing_image',
'is_responsive' => TRUE,
];
}
// Get the footer.
if ($node_flags['get_footer']) {
$content_data['footer']['project_details']['has_children'] = TRUE;
$content_data['footer']['project_details']['status'] = $this->addToContentData('terms', ['field_uw_project_status']);
$content_data['footer']['project_details']['topics'] = $this->addToContentData('terms', ['field_uw_project_topics']);
$content_data['footer']['project_members'] = $this->addToContentData('project_members', 'field_uw_project_members');
$content_data['footer']['timeline'] = $this->addToContentData('timeline', 'field_uw_project_timeline');
}
// Get the tags, if any.
if ($node_flags['get_tags']) {
$content_data['tags'] = $this->addToContentData(
'terms',
[
'field_uw_audience',
]
);
}
return $content_data;
}
/**
* Get the node content for service content type.
*
......
......@@ -149,8 +149,13 @@ class UwNodeData {
// If we are on the footer, clean it by itself,
// since it is 3D array.
// We need to add a continue here so that elements
// from the footer are not cleared out, if we do not
// have the continue, footers with one element will be
// set to null.
if ($index == 'footer') {
$node_data['footer'] = $this->cleanFooterNodeData($node_data['footer']);
continue;
}
// If the element is an array, step through all the
......
......@@ -165,6 +165,11 @@ class UwNodeFieldValue {
}
}
// Project members.
if ($type == 'project_members') {
return $this->getProjectMembers($node, $field_name);
}
// Source or hero image field type.
if ($type == 'sources' || $type == 'hero') {
return $this->getSources($node, $field_name);
......@@ -176,6 +181,11 @@ class UwNodeFieldValue {
return $this->getCatalogTags($node, $field_name);
}
// Timeline from smart date range.
if ($type == 'timeline') {
return $this->getTimeline($node, $field_name);
}
// Title of the node.
if ($type == 'title') {
return $node->getTitle();
......@@ -728,6 +738,19 @@ class UwNodeFieldValue {
}
}
// If the dates are an array and there is more than one,
// sort the array so that the dates appear in order.
if (
is_array($return_dates) &&
count($return_dates) > 1
) {
// Sorting the array by the start date, so that
// the dates actually appear in the correct order.
$keys = array_column($return_dates, 'start_date');
array_multisort($keys, SORT_ASC, $return_dates);
}
return $return_dates;
}
......@@ -858,23 +881,25 @@ class UwNodeFieldValue {
if ($type == 'event') {
// If this is the same day, get the date and the start and end times.
if ($date['duration'] < '1439') {
$return_date['all_day'] = FALSE;
$return_date['date_range'] = TRUE;
$return_date['same_day'] = TRUE;
$return_date['start_date'] = $date['value'];
$return_date['end_date'] = $date['end_value'];
}
// This is not the day, get the start and end date with time.
elseif ($date['duration'] > '1439') {
$return_date['all_day'] = FALSE;
$return_date['date_range'] = TRUE;
$return_date['same_day'] = FALSE;
$return_date['start_date'] = $date['value'];
$return_date['end_date'] = $date['end_value'];
}
// The all date case, duration is always 1439.
else {
$return_date['all_day'] = TRUE;
$return_date['date'] = $date['value'];
$return_date['date_range'] = TRUE;
$return_date['same_day'] = FALSE;
}
$return_date['start_date'] = $date['value'];
$return_date['end_date'] = $date['end_value'];
}
else {
$return_date['date'] = $date[0];
......@@ -915,7 +940,29 @@ class UwNodeFieldValue {
else {
$link_info['uri'] = URL::fromUri($ld['uri'])->toString();
}
$link_info['title'] = $ld['title'];
// For 'Link to contact' field,
// if the uri is like 'internal:/blog', the link title is empty.
// if the uri is like 'entity:node/6', set the node title as link title.
if ($field_name == 'field_uw_ct_profile_link_contact') {
// Get uri from the given link data.
$uri = $ld['uri'];
// Split uri into an array.
$nid = explode('/', $uri);
// Get the node object.
$node = Node::load($nid[1]);
// If it is node object, set the link node title as link title.
if ($node) {
$link_info['title'] = $node->get('title')->value;
}
// If it is not node object, still use the existing title value.
else {
$link_info['title'] = $ld['title'];
}
}
// For other link fields except 'Link to contact' field.
else {
$link_info['title'] = $ld['title'];
}
$return_link_data[] = $link_info;
}
......@@ -924,4 +971,123 @@ class UwNodeFieldValue {
return $return_link_data;
}
/**
* Gets timeline from smart date range.
*
* @param \Drupal\node\Entity\Node $node
* Node entity.
* @param string $field_name
* The field name that has the timeline.
*
* @return array
* Array with link info.
*/
public function getTimeline(Node $node, string $field_name): array {
$timeline = $node->$field_name->getValue();
if ($timeline) {
$timeline = [
'start_date' => $timeline[0]['value'],
'end_date' => $timeline[0]['end_value'],
];
}
return $timeline;
}
/**
* Gets project members.
*
* @param \Drupal\node\Entity\Node $node
* Node entity.
* @param string $field_name
* The field name that has the timeline.
*
* @return array|null
* Array with link info.
*/
public function getProjectMembers(Node $node, string $field_name): ?array {
// Ensuring that we return something.
$project_members = NULL;
// Get the members from the node, which is a paragraph.
$members = $node->$field_name->referencedEntities();
// Step through each of the members and get the info.
foreach ($members as $member) {
// Default empty variables for roles and links.
$roles = NULL;
$link = NULL;
$member_name = NULL;
// Get the tids for the role from the paragraph.
$role_tids = $member->field_uw_project_role->getValue();
// If there are role tids, process them.
if ($role_tids) {
// Step through each of the tids and get the name of the role term.
foreach ($role_tids as $role_tid) {
// Load the term.
$role = $this->entityTypeManager->getStorage('taxonomy_term')->load($role_tid['target_id']);
// Set the role name in the array.
$roles[] = [
'title' => $role->getName(),
'url' => $role->toUrl()->toString(),
];
}
}
// Get the link from the paragraph.
$link_data = $member->field_uw_project_members_link->getValue();
// If there is data in the link, get the variables.
if ($link_data) {
// Step through each link and get the info.
foreach ($link_data as $ld) {
// Get correct uri, if external just use uri from node
// value, if not, then generate url from uri.
if (UrlHelper::isExternal($ld['uri'])) {
$link = $ld['uri'];
}
else {
$link = URL::fromUri($ld['uri'])->toString();
}
}
}
// Setup member name, if there is no member use the link.
if (
$member->field_uw_project_name->value == NULL &&
$link !== NULL
) {
$member_name = $link;
}
else {
$member_name = $member->field_uw_project_name->value;
}
// If there is any values in the project members,
// add it to the variables.
if ($member_name || $link || $roles) {
// Setup the project members array.
$project_members[] = [
'name' => $member_name,
'roles' => $roles,
'link' => $link,
];
}
}
return $project_members;
}
}
......@@ -207,6 +207,34 @@ class UwPermissions {
),
],
// Project permissions.
'Project' => [
'Use content type' =>
UwPermissions::buildRolePermissionsListContentType(
'uw_ct_project'
),
'Create/edit roles' =>
UwPermissions::buildRolePermissionsListTaxonomyTerm(
'uw_vocab_project_roles',
['create', 'edit']
),
'Delete roles' =>
UwPermissions::buildRolePermissionsListTaxonomyTerm(
'uw_vocab_project_roles',
['delete']
),
'Create/edit topics' =>
UwPermissions::buildRolePermissionsListTaxonomyTerm(
'uw_vocab_project_topics',
['create', 'edit']
),
'Delete topics' =>
UwPermissions::buildRolePermissionsListTaxonomyTerm(
'uw_vocab_project_topics',
['delete']
),
],
// Service permissions.
'Service' => [
'Use content type' =>
......
......@@ -22,6 +22,7 @@ permissions:
- 'view paragraph content uw_para_ff'
- 'view paragraph content uw_para_image_banner'
- 'view paragraph content uw_para_local_video_banner'
- 'view paragraph content uw_para_project_members'
- 'view paragraph content uw_para_timeline'
- 'view paragraph content uw_para_vimeo_video_banner'
- 'view the administration theme'
......@@ -50,6 +50,8 @@ permissions:
- 'clone uw_ct_news_item content'
- 'clone uw_ct_opportunity content'
- 'clone uw_ct_profile content'
- 'clone uw_ct_project content'
- 'clone uw_ct_opportunity content'
- 'clone uw_ct_service content'
- 'clone uw_ct_sidebar content'
- 'clone uw_ct_web_page content'
......@@ -60,6 +62,8 @@ permissions:
- 'configure editable uw_ct_news_item node layout overrides'
- 'configure editable uw_ct_opportunity node layout overrides'
- 'configure editable uw_ct_profile node layout overrides'
- 'configure editable uw_ct_project node layout overrides'
- 'configure editable uw_ct_opportunity node layout overrides'
- 'configure editable uw_ct_service node layout overrides'
- 'configure editable uw_ct_sidebar node layout overrides'
- 'configure editable uw_ct_site_footer node layout overrides'
......@@ -76,6 +80,7 @@ permissions:
- 'create paragraph content uw_para_ff'
- 'create paragraph content uw_para_image_banner'
- 'create paragraph content uw_para_local_video_banner'
- 'create paragraph content uw_para_project_members'
- 'create paragraph content uw_para_timeline'
- 'create paragraph content uw_para_vimeo_video_banner'
- 'create url aliases'
......@@ -89,6 +94,7 @@ permissions:
- 'delete paragraph content uw_para_ff'
- 'delete paragraph content uw_para_image_banner'
- 'delete paragraph content uw_para_local_video_banner'
- 'delete paragraph content uw_para_project_members'
- 'delete paragraph content uw_para_timeline'
- 'delete paragraph content uw_para_vimeo_video_banner'
- 'enter uw_ct_blog revision log entry'
......@@ -98,6 +104,7 @@ permissions:
- 'enter uw_ct_news_item revision log entry'
- 'enter uw_ct_opportunity revision log entry'
- 'enter uw_ct_profile revision log entry'
- 'enter uw_ct_project revision log entry'
- 'enter uw_ct_service revision log entry'
- 'enter uw_ct_web_page revision log entry'
- 'make smart dates recur'
......@@ -121,6 +128,8 @@ permissions:
- 'override uw_ct_opportunity revision option'
- 'override uw_ct_profile published option'
- 'override uw_ct_profile revision option'
- 'override uw_ct_project published option'
- 'override uw_ct_project revision option'
- 'override uw_ct_service published option'
- 'override uw_ct_service revision option'
- 'override uw_ct_web_page published option'
......@@ -137,6 +146,7 @@ permissions:
- 'update paragraph content uw_para_ff'
- 'update paragraph content uw_para_image_banner'
- 'update paragraph content uw_para_local_video_banner'
- 'update paragraph content uw_para_project_members'
- 'update paragraph content uw_para_timeline'
- 'update paragraph content uw_para_vimeo_video_banner'
- 'use uw_workflow transition needs_review'
......
......@@ -51,6 +51,7 @@ permissions:
- 'clone uw_ct_news_item content'
- 'clone uw_ct_opportunity content'
- 'clone uw_ct_profile content'
- 'clone uw_ct_project content'
- 'clone uw_ct_service content'
- 'clone uw_ct_sidebar content'
- 'clone uw_ct_web_page content'
......@@ -61,6 +62,7 @@ permissions:
- 'configure editable uw_ct_news_item node layout overrides'
- 'configure editable uw_ct_opportunity node layout overrides'
- 'configure editable uw_ct_profile node layout overrides'
- 'configure editable uw_ct_project node layout overrides'
- 'configure editable uw_ct_service node layout overrides'
- 'configure editable uw_ct_sidebar node layout overrides'
- 'configure editable uw_ct_site_footer node layout overrides'
......@@ -77,6 +79,7 @@ permissions:
- 'create paragraph content uw_para_ff'
- 'create paragraph content uw_para_image_banner'
- 'create paragraph content uw_para_local_video_banner'
- 'create paragraph content uw_para_project_members'
- 'create paragraph content uw_para_timeline'
- 'create paragraph content uw_para_vimeo_video_banner'
- 'create url aliases'
......@@ -87,6 +90,7 @@ permissions:
- 'enter uw_ct_news_item revision log entry'
- 'enter uw_ct_opportunity revision log entry'
- 'enter uw_ct_profile revision log entry'
- 'enter uw_ct_project revision log entry'
- 'enter uw_ct_service revision log entry'
- 'enter uw_ct_web_page revision log entry'
- 'make smart dates recur'
......@@ -110,6 +114,8 @@ permissions:
- 'override uw_ct_opportunity revision option'
- 'override uw_ct_profile published option'
- 'override uw_ct_profile revision option'
- 'override uw_ct_project published option'
- 'override uw_ct_project revision option'
- 'override uw_ct_service published option'
- 'override uw_ct_service revision option'
- 'override uw_ct_web_page published option'
......@@ -126,6 +132,7 @@ permissions:
- 'update paragraph content uw_para_ff'
- 'update paragraph content uw_para_image_banner'
- 'update paragraph content uw_para_local_video_banner'
- 'update paragraph content uw_para_project_members'
- 'update paragraph content uw_para_timeline'
- 'update paragraph content uw_para_vimeo_video_banner'
- 'use uw_workflow transition archived'
......
......@@ -55,6 +55,7 @@ permissions:
- 'clone uw_ct_news_item content'
- 'clone uw_ct_opportunity content'
- 'clone uw_ct_profile content'
- 'clone uw_ct_project content'
- 'clone uw_ct_service content'
- 'clone uw_ct_sidebar content'
- 'clone uw_ct_web_page content'
......@@ -65,6 +66,7 @@ permissions:
- 'configure editable uw_ct_news_item node layout overrides'
- 'configure editable uw_ct_opportunity node layout overrides'
- 'configure editable uw_ct_profile node layout overrides'
- 'configure editable uw_ct_project node layout overrides'
- 'configure editable uw_ct_service node layout overrides'
- 'configure editable uw_ct_sidebar node layout overrides'
- 'configure editable uw_ct_site_footer node layout overrides'
......@@ -81,6 +83,7 @@ permissions:
- 'create paragraph content uw_para_ff'
- 'create paragraph content uw_para_image_banner'
- 'create paragraph content uw_para_local_video_banner'
- 'create paragraph content uw_para_project_members'
- 'create paragraph content uw_para_timeline'
- 'create paragraph content uw_para_vimeo_video_banner'
- 'create url aliases'
......@@ -96,6 +99,7 @@ permissions:
- 'delete paragraph content uw_para_ff'
- 'delete paragraph content uw_para_image_banner'
- 'delete paragraph content uw_para_local_video_banner'
- 'delete paragraph content uw_para_project_members'
- 'delete paragraph content uw_para_timeline'
- 'delete paragraph content uw_para_vimeo_video_banner'
- 'enter uw_ct_blog revision log entry'
......@@ -105,6 +109,7 @@ permissions:
- 'enter uw_ct_news_item revision log entry'
- 'enter uw_ct_opportunity revision log entry'
- 'enter uw_ct_profile revision log entry'
- 'enter uw_ct_project revision log entry'
- 'enter uw_ct_service revision log entry'
- 'enter uw_ct_web_page revision log entry'
- 'make smart dates recur'
......@@ -128,6 +133,8 @@ permissions:
- 'override uw_ct_opportunity revision option'
- 'override uw_ct_profile published option'
- 'override uw_ct_profile revision option'
- 'override uw_ct_project published option'
- 'override uw_ct_project revision option'
- 'override uw_ct_service published option'
- 'override uw_ct_service revision option'
- 'override uw_ct_web_page published option'
......@@ -146,6 +153,7 @@ permissions:
- 'update paragraph content uw_para_ff'
- 'update paragraph content uw_para_image_banner'
- 'update paragraph content uw_para_local_video_banner'
- 'update paragraph content uw_para_project_members'
- 'update paragraph content uw_para_timeline'
- 'update paragraph content uw_para_vimeo_video_banner'
- 'use uw_workflow transition archived'
......
name: 'UW Configure Common'
description: 'Configuration for all common WCMS'
package: WCMS
type: module
core_version_requirement: '^8.9 || ^9'
dependencies:
......