Browse Source

initial commit

main
astanley 2 weeks ago
commit
56d9f9e4e7
  1. 36
      config/install/block.block.authortasks.yml
  2. 25
      config/install/block.block.bartik_account_menu.yml
  3. 25
      config/install/block.block.bartik_tools.yml
  4. 29
      config/install/block.block.citethis.yml
  5. 25
      config/install/metatag.metatag_defaults.node__issue.yml
  6. 28
      config/install/metatag.metatag_defaults.node__journal_article.yml
  7. 23
      config/optional/block.block.bartik_account_menu.yml
  8. 22
      config/optional/block.block.bartik_branding.yml
  9. 19
      config/optional/block.block.bartik_breadcrumbs.yml
  10. 19
      config/optional/block.block.bartik_content.yml
  11. 23
      config/optional/block.block.bartik_footer.yml
  12. 19
      config/optional/block.block.bartik_help.yml
  13. 17
      config/optional/block.block.bartik_local_actions.yml
  14. 19
      config/optional/block.block.bartik_local_tasks.yml
  15. 23
      config/optional/block.block.bartik_main_menu.yml
  16. 19
      config/optional/block.block.bartik_messages.yml
  17. 17
      config/optional/block.block.bartik_page_title.yml
  18. 19
      config/optional/block.block.bartik_powered.yml
  19. 18
      config/optional/block.block.seven_breadcrumbs.yml
  20. 18
      config/optional/block.block.seven_content.yml
  21. 18
      config/optional/block.block.seven_help.yml
  22. 15
      config/optional/block.block.seven_local_actions.yml
  23. 18
      config/optional/block.block.seven_login.yml
  24. 17
      config/optional/block.block.seven_messages.yml
  25. 17
      config/optional/block.block.seven_page_title.yml
  26. 17
      config/optional/block.block.seven_primary_local_tasks.yml
  27. 17
      config/optional/block.block.seven_secondary_local_tasks.yml
  28. 5
      config/optional/block_content.type.text.yml
  29. 7
      config/optional/comment.type.comment.yml
  30. 31
      config/optional/core.entity_form_display.block_content.text.default.yml
  31. 33
      config/optional/core.entity_form_display.comment.comment.default.yml
  32. 21
      config/optional/core.entity_view_display.block_content.text.default.yml
  33. 24
      config/optional/core.entity_view_display.comment.comment.default.yml
  34. 21
      config/optional/field.field.block_content.text.body.yml
  35. 20
      config/optional/field.field.comment.comment.comment_body.yml
  36. 5
      config/optional/user.role.administrator.yml
  37. 16
      config/optional/user.settings.yml
  38. 88
      journal.info.yml
  39. 14
      journal.install
  40. 24
      journal.profile
  41. 7
      modules/custom/journal_cite_this/journal_cite_this.info.yml
  42. 24
      modules/custom/journal_cite_this/journal_cite_this.module
  43. 15
      modules/custom/journal_cite_this/journal_cite_this.routing.yml
  44. 66
      modules/custom/journal_cite_this/src/Controller/JournalExportController.php
  45. 128
      modules/custom/journal_cite_this/src/Plugin/Block/CiteThisBlock.php
  46. 46
      modules/custom/journal_cite_this/tests/src/Functional/LoadTest.php
  47. 7
      modules/custom/journal_devel/journal_devel.info.yml
  48. 35
      modules/custom/journal_devel/journal_devel.module
  49. 31
      modules/custom/journal_devel/src/Plugin/Block/DebugBlock.php
  50. 1
      modules/custom/journal_devel/templates/journal-devel.html.twig
  51. 218
      modules/custom/journal_editorial/config/install/user.role.issue_editor.yml
  52. 86
      modules/custom/journal_editorial/config/install/user.role.journal_article_creator.yml
  53. 30
      modules/custom/journal_editorial/config/install/user.role.journal_article_reviewer.yml
  54. 251
      modules/custom/journal_editorial/config/install/user.role.journal_editor.yml
  55. 95
      modules/custom/journal_editorial/config/install/user.role.web_editor.yml
  56. 85
      modules/custom/journal_editorial/config/install/workflows.workflow.journal_article_submission.yml
  57. 8
      modules/custom/journal_editorial/journal_editorial.info.yml
  58. 28
      modules/custom/journal_editorial/journal_editorial.module
  59. 122
      modules/custom/journal_news/config/install/core.entity_form_display.node.news_article.default.yml
  60. 64
      modules/custom/journal_news/config/install/core.entity_view_display.node.news_article.default.yml
  61. 33
      modules/custom/journal_news/config/install/core.entity_view_display.node.news_article.teaser.yml
  62. 21
      modules/custom/journal_news/config/install/field.field.node.news_article.body.yml
  63. 28
      modules/custom/journal_news/config/install/field.field.node.news_article.field_article_highlight_image.yml
  64. 28
      modules/custom/journal_news/config/install/field.field.node.news_article.field_article_section.yml
  65. 36
      modules/custom/journal_news/config/install/field.field.node.news_article.field_part_of.yml
  66. 17
      modules/custom/journal_news/config/install/node.type.news_article.yml
  67. 8
      modules/custom/journal_news/journal_news.info.yml
  68. 39
      modules/custom/journal_peer_review/config/optional/block.block.views_block__editor_content_in_review.yml
  69. 38
      modules/custom/journal_peer_review/config/optional/block.block.views_block__journal_article_peer_reviewer_content_list_block_1.yml
  70. 41
      modules/custom/journal_peer_review/config/optional/block.block.views_block__journal_article_peer_reviewer_content_list_block_2.yml
  71. 39
      modules/custom/journal_peer_review/config/optional/block.block.views_block__new_submissions_block_1.yml
  72. 35
      modules/custom/journal_peer_review/config/optional/field.field.node.journal_article.field_peer_reviewer.yml
  73. 25
      modules/custom/journal_peer_review/config/optional/field.storage.node.field_peer_reviewer.yml
  74. 673
      modules/custom/journal_peer_review/config/optional/views.view.journal_article_peer_reviewer_content_list.yml
  75. 381
      modules/custom/journal_peer_review/config/optional/views.view.new_submissions.yml
  76. 10
      modules/custom/journal_peer_review/journal_peer_review.info.yml
  77. 152
      modules/custom/journal_peer_review/journal_peer_review.module
  78. 66
      modules/custom/journal_references/config/install/editor.editor.rich_text_references.yml
  79. 159
      modules/custom/journal_references/config/install/filter.format.rich_text_references.yml
  80. BIN
      modules/custom/journal_references/images/reference_embed_icon.png
  81. 18
      modules/custom/journal_references/journal_references.info.yml
  82. 29
      modules/custom/journal_references/journal_references.module
  83. 5
      modules/custom/journal_references/journal_references.services.yml
  84. 456
      modules/custom/journal_references/src/CSL/MLA_ToC.xml
  85. 25
      modules/custom/journal_references/src/Routing/RouteSubscriber.php
  86. 7
      modules/custom/journal_site/config/install/system.menu.author-tasks.yml
  87. 465
      modules/custom/journal_site/config/install/views.view.manage_citations.yml
  88. 13
      modules/custom/journal_site/journal_site.info.yml
  89. 27
      modules/custom/journal_site/journal_site.links.menu.yml
  90. 7
      modules/custom/journal_types/config/install/comment.type.editorial_comments.yml
  91. 33
      modules/custom/journal_types/config/install/core.entity_form_display.comment.editorial_comments.default.yml
  92. 160
      modules/custom/journal_types/config/install/core.entity_form_display.node.issue.default.yml
  93. 292
      modules/custom/journal_types/config/install/core.entity_form_display.node.journal.default.yml
  94. 338
      modules/custom/journal_types/config/install/core.entity_form_display.node.journal_article.default.yml
  95. 36
      modules/custom/journal_types/config/install/core.entity_form_display.paragraph.author_with_affiliation.default.yml
  96. 24
      modules/custom/journal_types/config/install/core.entity_view_display.comment.editorial_comments.default.yml
  97. 79
      modules/custom/journal_types/config/install/core.entity_view_display.node.issue.default.yml
  98. 233
      modules/custom/journal_types/config/install/core.entity_view_display.node.issue.full.yml
  99. 282
      modules/custom/journal_types/config/install/core.entity_view_display.node.issue.teaser.yml
  100. 575
      modules/custom/journal_types/config/install/core.entity_view_display.node.journal.default.yml
  101. Some files were not shown because too many files have changed in this diff Show More

36
config/install/block.block.authortasks.yml

@ -0,0 +1,36 @@
langcode: en
status: true
dependencies:
config:
- system.menu.author-tasks
module:
- system
- user
theme:
- bartik
id: authortasks
theme: bartik
region: content
weight: -6
provider: null
plugin: 'system_menu_block:author-tasks'
settings:
id: 'system_menu_block:author-tasks'
label: 'Author tasks'
provider: system
label_display: visible
level: 1
depth: 0
visibility:
request_path:
id: request_path
pages: '/user/*'
negate: false
context_mapping: { }
user_role:
id: user_role
roles:
journal_article_creator: journal_article_creator
negate: false
context_mapping:
user: '@user.current_user_context:current_user'

25
config/install/block.block.bartik_account_menu.yml

@ -0,0 +1,25 @@
langcode: en
status: true
dependencies:
config:
- system.menu.account
module:
- system
theme:
- bartik
_core:
default_config_hash: itSHPYmGXnBVuW6FDLy148URrBNXTe0TRtnb-yeSDHI
id: bartik_account_menu
theme: bartik
region: hidden_blocks_collection
weight: -7
provider: null
plugin: 'system_menu_block:account'
settings:
id: 'system_menu_block:account'
label: 'User account menu'
provider: system
label_display: visible
level: 1
depth: 1
visibility: { }

25
config/install/block.block.bartik_tools.yml

@ -0,0 +1,25 @@
langcode: en
status: true
dependencies:
config:
- system.menu.tools
module:
- system
theme:
- bartik
_core:
default_config_hash: bHIvY3Ld-1mnMYWmNIoVPBYWQkpvHrO2jzOQhM5Y8BQ
id: bartik_tools
theme: bartik
region: hidden_blocks_collection
weight: -6
provider: null
plugin: 'system_menu_block:tools'
settings:
id: 'system_menu_block:tools'
label: Tools
provider: system
label_display: visible
level: 1
depth: 0
visibility: { }

29
config/install/block.block.citethis.yml

@ -0,0 +1,29 @@
langcode: en
status: true
dependencies:
module:
- journal_cite_this
- node
theme:
- bartik
id: citethis
theme: bartik
region: sidebar_second
weight: 0
provider: null
plugin: cite_this_block
settings:
id: cite_this_block
label: 'Cite this'
provider: journal_cite_this
label_display: visible
context_mapping:
node: '@node.node_route_context:node'
visibility:
node_type:
id: node_type
bundles:
journal_article: journal_article
negate: false
context_mapping:
node: '@node.node_route_context:node'

25
config/install/metatag.metatag_defaults.node__issue.yml

@ -0,0 +1,25 @@
langcode: en
status: true
dependencies: { }
_core:
default_config_hash: HAWGbhacNu42B8eiIHXmi2mIB6FzFf6cuzhS7lbE9sk
id: node__issue
label: 'Content: Issue'
tags:
description: '[node:body]'
image_src: '[node:field_issue_cover:entity:url]'
abstract: '[node:body]'
dcterms_title: '[node:title]'
dcterms_type: Text
dcterms_publisher: '[node:field_part_of:entity:field_journal_publisher]'
dcterms_description: '[node:body]'
dcterms_coverage: '[node:langcode]'
dcterms_format: text/html
dcterms_modified: '[node:changed:html_datetime]'
dcterms_abstract: '[node:body]'
citation_title: '[node:title]'
citation_journal_title: '[node:field_part_of:entity:title]'
citation_issue: '[node:field_issue_number]'
citation_volume: '[node:field_issue_volume:entity:field_volume_number]'
citation_issn: '[node:field_part_of:entity:field_journal_eissn]'
citation_publication_date: '[node:field_publication_date:html_datetime]'

28
config/install/metatag.metatag_defaults.node__journal_article.yml

@ -0,0 +1,28 @@
langcode: en
status: true
dependencies: { }
_core:
default_config_hash: 3HKaUPhjQOYRWOt1XaDwJioKEC5vKHGvugzqlpBx1Rw
id: node__journal_article
label: 'Content: Article'
tags:
image_src: '[node:field_article_highlight_image:entity:image:entity:url]'
dcterms_identifier: '[node:field_doi]'
dcterms_title: '[node:title]'
dcterms_contributor: '[node:field_authors_and_affiliations:entity:field_affiliation_contributor]'
dcterms_publisher: '[node:field_part_of:entity:field_part_of:entity:field_journal_publisher]'
dcterms_date: '[node:created:html_datetime]'
dcterms_description: '[node:field_journal_article_abstract]'
dcterms_language: '[node:langcode]'
dcterms_creator: '[node:field_authors_and_affiliations:0:entity:field_affiliation_contributor:0]'
dcterms_format: text/html
dcterms_subject: '[node:field_article_subjects]'
dcterms_is_part_of: '[node:field_part_of:entity:url]'
dcterms_abstract: '[node:field_journal_article_abstract]'
citation_title: '[node:title]'
citation_journal_title: '[node:field_part_of:entity:field_part_of:entity:title]'
citation_issue: '[node:field_part_of:entity:field_issue_number]'
citation_volume: '[node:field_part_of:entity:field_issue_volume]'
citation_issn: '[node:field_part_of:entity:field_part_of:entity:field_journal_eissn]'
citation_publication_date: '[node:created:html_datetime]'
citation_author: '[node:field_authors_and_affiliations:entity:field_affiliation_contributor]'

23
config/optional/block.block.bartik_account_menu.yml

@ -0,0 +1,23 @@
langcode: en
status: true
dependencies:
config:
- system.menu.account
module:
- system
theme:
- bartik
id: bartik_account_menu
theme: bartik
region: secondary_menu
weight: 0
provider: null
plugin: 'system_menu_block:account'
settings:
id: 'system_menu_block:account'
label: 'User account menu'
provider: system
label_display: '0'
level: 1
depth: 1
visibility: { }

22
config/optional/block.block.bartik_branding.yml

@ -0,0 +1,22 @@
langcode: en
status: true
dependencies:
module:
- system
theme:
- bartik
id: bartik_branding
theme: bartik
region: header
weight: 0
provider: null
plugin: system_branding_block
settings:
id: system_branding_block
label: 'Site branding'
provider: system
label_display: '0'
use_site_logo: true
use_site_name: true
use_site_slogan: true
visibility: { }

19
config/optional/block.block.bartik_breadcrumbs.yml

@ -0,0 +1,19 @@
langcode: en
status: true
dependencies:
module:
- system
theme:
- bartik
id: bartik_breadcrumbs
theme: bartik
region: breadcrumb
weight: 0
provider: null
plugin: system_breadcrumb_block
settings:
id: system_breadcrumb_block
label: Breadcrumbs
provider: system
label_display: '0'
visibility: { }

19
config/optional/block.block.bartik_content.yml

@ -0,0 +1,19 @@
langcode: en
status: true
dependencies:
module:
- system
theme:
- bartik
id: bartik_content
theme: bartik
region: content
weight: 0
provider: null
plugin: system_main_block
settings:
id: system_main_block
label: 'Main page content'
provider: system
label_display: '0'
visibility: { }

23
config/optional/block.block.bartik_footer.yml

@ -0,0 +1,23 @@
langcode: en
status: true
dependencies:
config:
- system.menu.footer
module:
- system
theme:
- bartik
id: bartik_footer
theme: bartik
region: footer_fifth
weight: 0
provider: null
plugin: 'system_menu_block:footer'
settings:
id: 'system_menu_block:footer'
label: 'Footer menu'
provider: system
label_display: '0'
level: 1
depth: 0
visibility: { }

19
config/optional/block.block.bartik_help.yml

@ -0,0 +1,19 @@
langcode: en
status: true
dependencies:
module:
- help
theme:
- bartik
id: bartik_help
theme: bartik
region: content
weight: -30
provider: null
plugin: help_block
settings:
id: help_block
label: Help
provider: help
label_display: '0'
visibility: { }

17
config/optional/block.block.bartik_local_actions.yml

@ -0,0 +1,17 @@
langcode: en
status: true
dependencies:
theme:
- bartik
id: bartik_local_actions
theme: bartik
region: content
weight: -20
provider: null
plugin: local_actions_block
settings:
id: local_actions_block
label: 'Primary admin actions'
provider: core
label_display: '0'
visibility: { }

19
config/optional/block.block.bartik_local_tasks.yml

@ -0,0 +1,19 @@
langcode: en
status: true
dependencies:
theme:
- bartik
id: bartik_local_tasks
theme: bartik
region: content
weight: -40
provider: null
plugin: local_tasks_block
settings:
id: local_tasks_block
label: Tabs
provider: core
label_display: '0'
primary: true
secondary: true
visibility: { }

23
config/optional/block.block.bartik_main_menu.yml

@ -0,0 +1,23 @@
langcode: en
status: true
dependencies:
config:
- system.menu.main
module:
- system
theme:
- bartik
id: bartik_main_menu
theme: bartik
region: primary_menu
weight: 0
provider: null
plugin: 'system_menu_block:main'
settings:
id: 'system_menu_block:main'
label: 'Main navigation'
provider: system
label_display: '0'
level: 1
depth: 1
visibility: { }

19
config/optional/block.block.bartik_messages.yml

@ -0,0 +1,19 @@
langcode: en
status: true
dependencies:
module:
- system
theme:
- bartik
id: bartik_messages
theme: bartik
region: highlighted
weight: 0
provider: null
plugin: system_messages_block
settings:
id: system_messages_block
label: 'Status messages'
provider: system
label_display: '0'
visibility: { }

17
config/optional/block.block.bartik_page_title.yml

@ -0,0 +1,17 @@
langcode: en
status: true
dependencies:
theme:
- bartik
id: bartik_page_title
theme: bartik
region: content
weight: -50
provider: null
plugin: page_title_block
settings:
id: page_title_block
label: 'Page title'
provider: core
label_display: '0'
visibility: { }

19
config/optional/block.block.bartik_powered.yml

@ -0,0 +1,19 @@
langcode: en
status: true
dependencies:
module:
- system
theme:
- bartik
id: bartik_powered
theme: bartik
region: footer_fifth
weight: 10
provider: null
plugin: system_powered_by_block
settings:
id: system_powered_by_block
label: 'Powered by Drupal'
provider: system
label_display: '0'
visibility: { }

18
config/optional/block.block.seven_breadcrumbs.yml

@ -0,0 +1,18 @@
id: seven_breadcrumbs
theme: seven
weight: 0
status: true
langcode: en
region: breadcrumb
plugin: system_breadcrumb_block
settings:
id: system_breadcrumb_block
label: Breadcrumbs
provider: system
label_display: '0'
dependencies:
module:
- system
theme:
- seven
visibility: { }

18
config/optional/block.block.seven_content.yml

@ -0,0 +1,18 @@
id: seven_content
theme: seven
weight: 0
status: true
langcode: en
region: content
plugin: system_main_block
settings:
id: system_main_block
label: 'Main page content'
provider: system
label_display: '0'
dependencies:
module:
- system
theme:
- seven
visibility: { }

18
config/optional/block.block.seven_help.yml

@ -0,0 +1,18 @@
id: seven_help
theme: seven
weight: 0
status: true
langcode: en
region: help
plugin: help_block
settings:
id: help_block
label: 'Help'
provider: help
label_display: '0'
dependencies:
module:
- help
theme:
- seven
visibility: { }

15
config/optional/block.block.seven_local_actions.yml

@ -0,0 +1,15 @@
id: seven_local_actions
theme: seven
weight: -10
status: true
langcode: en
region: content
plugin: local_actions_block
settings:
id: local_actions_block
label: Primary admin actions
label_display: '0'
dependencies:
theme:
- seven
visibility: { }

18
config/optional/block.block.seven_login.yml

@ -0,0 +1,18 @@
id: seven_login
theme: seven
weight: 10
status: true
langcode: en
region: content
plugin: user_login_block
settings:
id: user_login_block
label: 'User login'
provider: user
label_display: visible
dependencies:
module:
- user
theme:
- seven
visibility: { }

17
config/optional/block.block.seven_messages.yml

@ -0,0 +1,17 @@
id: seven_messages
theme: seven
weight: 0
status: true
langcode: en
region: highlighted
plugin: system_messages_block
settings:
id: system_messages_block
label: 'Status messages'
provider: system
label_display: '0'
dependencies:
module:
- system
theme:
- seven

17
config/optional/block.block.seven_page_title.yml

@ -0,0 +1,17 @@
langcode: en
status: true
dependencies:
theme:
- seven
id: seven_page_title
theme: seven
region: header
weight: -30
provider: null
plugin: page_title_block
settings:
id: page_title_block
label: 'Page title'
provider: core
label_display: '0'
visibility: { }

17
config/optional/block.block.seven_primary_local_tasks.yml

@ -0,0 +1,17 @@
id: seven_primary_local_tasks
theme: seven
weight: 0
status: true
langcode: en
region: header
plugin: local_tasks_block
settings:
id: local_tasks_block
label: Primary tabs
label_display: '0'
primary: true
secondary: false
dependencies:
theme:
- seven
visibility: { }

17
config/optional/block.block.seven_secondary_local_tasks.yml

@ -0,0 +1,17 @@
id: seven_secondary_local_tasks
theme: seven
weight: 0
status: true
langcode: en
region: pre_content
plugin: local_tasks_block
settings:
id: local_tasks_block
label: Secondary tabs
label_display: '0'
primary: false
secondary: true
dependencies:
theme:
- seven
visibility: { }

5
config/optional/block_content.type.text.yml

@ -0,0 +1,5 @@
id: text
label: 'Text'
revision: 0
description: 'A text block contains a title and a body.'
langcode: en

7
config/optional/comment.type.comment.yml

@ -0,0 +1,7 @@
langcode: en
status: true
dependencies: { }
id: comment
label: 'Default comments'
target_entity_type_id: node
description: 'Allows commenting on content'

31
config/optional/core.entity_form_display.block_content.text.default.yml

@ -0,0 +1,31 @@
langcode: en
status: true
dependencies:
config:
- block_content.type.text
- field.field.block_content.text.body
module:
- text
id: block_content.text.default
targetEntityType: block_content
bundle: text
mode: default
content:
body:
type: text_textarea_with_summary
weight: 0
settings:
rows: 9
summary_rows: 3
placeholder: ''
third_party_settings: { }
region: content
info:
type: string_textfield
weight: -5
settings:
size: 60
placeholder: ''
third_party_settings: { }
region: content
hidden: { }

33
config/optional/core.entity_form_display.comment.comment.default.yml

@ -0,0 +1,33 @@
langcode: en
status: true
dependencies:
config:
- comment.type.comment
- field.field.comment.comment.comment_body
module:
- text
id: comment.comment.default
targetEntityType: comment
bundle: comment
mode: default
content:
author:
weight: -2
region: content
comment_body:
type: text_textarea
weight: 11
region: content
settings:
rows: 5
placeholder: ''
third_party_settings: { }
subject:
type: string_textfield
weight: 10
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
hidden: { }

21
config/optional/core.entity_view_display.block_content.text.default.yml

@ -0,0 +1,21 @@
langcode: en
status: true
dependencies:
config:
- block_content.type.text
- field.field.block_content.text.body
module:
- text
id: block_content.text.default
targetEntityType: block_content
bundle: text
mode: default
content:
body:
type: text_default
weight: 0
label: hidden
settings: { }
third_party_settings: { }
region: content
hidden: { }

24
config/optional/core.entity_view_display.comment.comment.default.yml

@ -0,0 +1,24 @@
langcode: en
status: true
dependencies:
config:
- comment.type.comment
- field.field.comment.comment.comment_body
module:
- text
id: comment.comment.default
targetEntityType: comment
bundle: comment
mode: default
content:
comment_body:
label: hidden
type: text_default
weight: 0
region: content
settings: { }
third_party_settings: { }
links:
weight: 100
region: content
hidden: { }

21
config/optional/field.field.block_content.text.body.yml

@ -0,0 +1,21 @@
langcode: en
status: true
dependencies:
config:
- block_content.type.text
- field.storage.block_content.body
module:
- text
id: block_content.text.body
field_name: body
entity_type: block_content
bundle: text
label: Body
description: ''
required: false
translatable: true
default_value: { }
default_value_callback: ''
settings:
display_summary: false
field_type: text_with_summary

20
config/optional/field.field.comment.comment.comment_body.yml

@ -0,0 +1,20 @@
langcode: en
status: true
dependencies:
config:
- comment.type.comment
- field.storage.comment.comment_body
module:
- text
id: comment.comment.comment_body
field_name: comment_body
entity_type: comment
bundle: comment
label: Comment
description: ''
required: true
translatable: true
default_value: { }
default_value_callback: ''
settings: { }
field_type: text_long

5
config/optional/user.role.administrator.yml

@ -0,0 +1,5 @@
id: administrator
label: Administrator
weight: 2
langcode: en
is_admin: true

16
config/optional/user.settings.yml

@ -0,0 +1,16 @@
anonymous: Anonymous
verify_mail: true
notify:
cancel_confirm: true
password_reset: true
status_activated: true
status_blocked: false
status_canceled: false
register_admin_created: true
register_no_approval_required: true
register_pending_approval: true
register: admin_only
cancel_method: user_cancel_block
password_reset_timeout: 86400
password_strength: true
langcode: en

88
journal.info.yml

@ -0,0 +1,88 @@
name: Journal
type: profile
description: 'Content types and workflows for scholarly content.'
core_version_requirement: '^8.0 || ^9'
install:
- address
- field_group
- field_permissions
- panelizer
- views
- views_entity_form_field
- media
- entity_browser
- menu_ui
- lightning_media
- embed
- bibcite
- bibcite_bibtex
- bibcite_ris
- bibcite_import
- bibcite_endnote
- bibcite_marc
- bibcite_entity
- journal_types
- journal_cite_this
- journal_news
- journal_editorial
- journal_peer_review
- journal_references
- journal_site
- metatag
- metatag_dc
- metatag_dc_advanced
- metatag_google_scholar
- autosave_form
- block_content
- breakpoint
- ckeditor
- config
- conflict
- contextual
- menu_link_content
- datetime
- quickedit
- editor
- entity_block
- help
- history
- node
- options
- path
- pathauto
- page_cache
- redirect
- taxonomy
- text
- dblog
- shortcut
- toolbar
- field_ui
- file
- rdf
- views_ui
- diff
- image_widget_crop
- moderation_dashboard
- moderation_sidebar
- lightning_core
- lightning_api
- lightning_layout
- lightning_contact_form
- lightning_page
- lightning_search
- lightning_landing_page
- lightning_media_audio
- lightning_media_bulk_upload
- lightning_media_document
- lightning_media_image
- lightning_media_instagram
- lightning_media_slideshow
- lightning_media_twitter
- lightning_media_video
- lightning_banner_block
- lightning_map_block
themes:
- bartik
- seven
- claro

14
journal.install

@ -0,0 +1,14 @@
<?php
/**
* @file
* Install, update and uninstall hooks for the Journal subprofile.
*/
/**
* Implements hook_install().
*/
function journal_install() {
// Add code here perform additional site information tasks, generate sample
// content, etc.
}

24
journal.profile

@ -0,0 +1,24 @@
<?php
/**
* @file
* Enables modules and site configuration for the Journal profile.
*/
// Add any custom code here, like hook implementations.
function journal_install_tasks() {
include_once(DRUPAL_ROOT . '/' . drupal_get_path('profile', 'lightning') . '/lightning.profile');
$tasks = [];
$tasks['lightning_prepare_administrator'] = [];
$tasks['lightning_set_front_page'] = [];
$tasks['lightning_disallow_free_registration'] = [];
$tasks['lightning_grant_shortcut_access'] = [];
$tasks['lightning_set_default_theme'] = [];
$tasks['lightning_set_logo'] = [];
$tasks['lightning_alter_frontpage_view'] = [];
return $tasks;
}

7
modules/custom/journal_cite_this/journal_cite_this.info.yml

@ -0,0 +1,7 @@
name: 'Journal Cite This'
type: module
description: 'Cite an article using the Bibcite export formats.'
core_version_requirement: '^8.0 || ^9 || ^10'
package: 'Journal'
dependencies:
- bibcite_export

24
modules/custom/journal_cite_this/journal_cite_this.module

@ -0,0 +1,24 @@
<?php
/**
* @file
* Contains journal_cite_this.module.
*/
use Drupal\Core\Routing\RouteMatchInterface;
/**
* Implements hook_help().
*/
function journal_cite_this_help($route_name, RouteMatchInterface $route_match) {
switch ($route_name) {
// Main module help for the journal_cite_this module.
case 'help.page.journal_cite_this':
$output = '';
$output .= '<h3>' . t('About') . '</h3>';
$output .= '<p>' . t('Cite an article using the Bibcite export formats.') . '</p>';
return $output;
default:
}
}

15
modules/custom/journal_cite_this/journal_cite_this.routing.yml

@ -0,0 +1,15 @@
journal_cite_this.journal_export_controller_export:
path: '/journal_cite_this/export/{bibcite_format}/{entity_type}/{entity}'
defaults:
_controller: '\Drupal\journal_cite_this\Controller\JournalExportController::export'
_title: 'export'
requirements:
_permission: 'access content'
options:
parameters:
bibcite_format:
type: bibcite_format
entity:
type: entity:{entity_type}

66
modules/custom/journal_cite_this/src/Controller/JournalExportController.php

@ -0,0 +1,66 @@
<?php
namespace Drupal\journal_cite_this\Controller;
use Drupal\Core\Controller\ControllerBase;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\Serializer\SerializerInterface;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\bibcite_export\Controller\ExportController;
use Drupal\bibcite\Plugin\BibciteFormatInterface;
use Drupal\Core\Entity\EntityInterface;
use Drupal\journal_types\CitationTools;
use Drupal\bibcite_entity\Entity\Reference;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
/**
* Class JournalExportController.
*/
class JournalExportController extends ExportController {
/**
* Symfony\Component\Serializer\SerializerInterface definition.
*
* @var \Symfony\Component\Serializer\SerializerInterface
*/
protected $serializer;
/**
* Drupal\Core\Entity\EntityTypeManagerInterface definition.
*
* @var \Drupal\Core\Entity\EntityTypeManagerInterface
*/
protected $entityTypeManager;
/**
* Export a Journal Article using the bibcite_export contorller by
* generating a Reference type entity on the fly.
*
* @param $bibcite_format
* The export format to use
*
* @param $entity_type
* The entity type. For thi module it will always be 'node'.
* We keep this to retain compatibility with the parent class.
*
* @param $entity
* The Journal Article entity.
*
* @return string
* Return Hello string.
*/
public function export(BibciteFormatInterface $bibcite_format, $entity_type, EntityInterface $entity) {
// TODO: Allow for citing other types of content.
if ($entity_type !== 'node' || $entity->getType() !== 'journal_article') {
throw new NotFoundHttpException();
}
$citation_tools = new CitationTools($this->entityTypeManager);
$citation_metadata = $citation_tools->getCitationMetadataForArticle($entity);
$citation_metadata['type'] = 'journal_article';
$r = Reference::create($citation_metadata);
return parent::export($bibcite_format, 'reference', $r);
}
}

128
modules/custom/journal_cite_this/src/Plugin/Block/CiteThisBlock.php

@ -0,0 +1,128 @@
<?php
namespace Drupal\journal_cite_this\Plugin\Block;
use Drupal\journal_types\CitationTools;
use Drupal\Core\Block\BlockBase;
use Drupal\Core\Link;
use Drupal\Core\Url;
use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\bibcite\Plugin\BibciteFormatManagerInterface;
use Drupal\bibcite_entity\Entity\Reference;
/**
* Provides a 'CiteThisBlock' block.
*
* @Block(
* id = "cite_this_block",
* admin_label = @Translation("Cite this"),
* context = {
* "node" = @ContextDefinition(
* "entity:node",
* label = @Translation("Current Node")
* )
* }
* )
*/
class CiteThisBlock extends BlockBase implements ContainerFactoryPluginInterface {
/**
* Drupal\Core\Entity\EntityTypeManagerInterface definition.
*
* @var \Drupal\Core\Entity\EntityTypeManagerInterface
*/
protected $entityTypeManager;
/**
* Bibcite format manager service.
*
* @var \Drupal\bibcite\Plugin\BibciteFormatManagerInterface
*/
protected $formatManager;
/**
* Constructs a new CiteThisBlock object.
*
* @param array $configuration
* A configuration array containing information about the plugin instance.
* @param string $plugin_id
* The plugin_id for the plugin instance.
* @param string $plugin_definition
* The plugin implementation definition.
*/
public function __construct(
array $configuration,
$plugin_id,
$plugin_definition,
EntityTypeManagerInterface $entity_type_manager,
BibciteFormatManagerInterface $bibcite_format_manager
) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->entityTypeManager = $entity_type_manager;
$this->formatManager = $bibcite_format_manager;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
return new static(
$configuration,
$plugin_id,
$plugin_definition,
$container->get('entity_type.manager'),
$container->get('plugin.manager.bibcite_format')
);
}
/**
* {@inheritdoc}
*/
public function build() {
$formats = $this->formatManager->getExportDefinitions();
$node = $this->getContextValue('node');
if (empty($node) || $node->getType() !== 'journal_article') {
return;
}
$nid_fld = $node->nid->getValue();
$nid = $nid_fld[0]['value'];
$citation_tools = new CitationTools();
$citation_metadata = $citation_tools->getCitationMetadataForArticle($node);
$citation_metadata['type'] = 'journal_article';
$r = Reference::create($citation_metadata);
$serializer = \Drupal::service('serializer');
$data = $serializer->normalize($r, 'csl');
$text_citation = [
'#theme' => 'bibcite_citation',
'#data' => $data,
];
if (!empty($nid)) {
$export_links = [
'#theme' => 'links',
//'#list_type' => 'ul',
'#prefix' => '<h3>' . $this->t('Export as') . '</h3>',
'#links' => [],
//'#attributes' => ['class' => ['citation-export-links']],
//'#wrapper_attributes' => ['class' => ['container']],
];
foreach ($formats as $format) {
// Endnote 7 export seems to be buggy.
$export_links['#links'][] = [
'title' => $format['label'],
'url' => Url::fromRoute('journal_cite_this.journal_export_controller_export', ['bibcite_format' => $format['id'], 'entity_type' => 'node', 'entity' => $nid]),
];
}
}
return [$text_citation, $export_links];
}
}

46
modules/custom/journal_cite_this/tests/src/Functional/LoadTest.php

@ -0,0 +1,46 @@
<?php
namespace Drupal\Tests\journal_cite_this\Functional;
use Drupal\Core\Url;
use Drupal\Tests\BrowserTestBase;
/**
* Simple test to ensure that main page loads with module enabled.
*
* @group journal_cite_this
*/
class LoadTest extends BrowserTestBase {
/**
* Modules to enable.
*
* @var array
*/
public static $modules = ['journal_cite_this'];
/**
* A user with permission to administer site configuration.
*
* @var \Drupal\user\UserInterface
*/
protected $user;
/**
* {@inheritdoc}
*/
protected function setUp() {
parent::setUp();
$this->user = $this->drupalCreateUser(['administer site configuration']);
$this->drupalLogin($this->user);
}
/**
* Tests that the home page loads with a 200 response.
*/
public function testLoad() {
$this->drupalGet(Url::fromRoute('<front>'));
$this->assertSession()->statusCodeEquals(200);
}
}

7
modules/custom/journal_devel/journal_devel.info.yml

@ -0,0 +1,7 @@
name: 'Journal Devel'
type: module
description: 'Development extensions to the Journal install profile.'
core_version_requirement: '^8.0 || ^9'
package: 'Journal'
dependencies:
- block

35
modules/custom/journal_devel/journal_devel.module

@ -0,0 +1,35 @@
<?php
/**
* @file
* Contains journal_devel.module.
*/
use Drupal\Core\Routing\RouteMatchInterface;
/**
* Implements hook_help().
*/
function journal_devel_help($route_name, RouteMatchInterface $route_match) {
switch ($route_name) {
// Main module help for the journal_devel module.
case 'help.page.journal_devel':
$output = '';
$output .= '<h3>' . t('About') . '</h3>';
$output .= '<p>' . t('Development extensions to the Journal install profile.') . '</p>';
return $output;
default:
}
}
/**
* Implements hook_theme().
*/
function journal_devel_theme() {
return [
'journal_devel' => [
'render element' => 'children',
],
];
}

31
modules/custom/journal_devel/src/Plugin/Block/DebugBlock.php

@ -0,0 +1,31 @@
<?php
namespace Drupal\journal_devel\Plugin\Block;
use Drupal\Core\Block\BlockBase;
/**
* Provides a 'DebugBlock' block.
*
* @Block(
* id = "journal_debug_block",
* admin_label = @Translation("Debug block"),
* )
*/
class DebugBlock extends BlockBase {
/**
* {@inheritdoc}
*/
public function build() {
$build = [];
$route_name = \Drupal::routeMatch()->getRouteName();
$route_object = \Drupal::routeMatch()->getRouteObject();
ksm($route_object);
$build['#cache']['max-age'] = 0;
$build['journal_debug_block']['#markup'] = 'Implement DebugBlock.<p>' . var_dump($route_name);
return $build;
}
}

1
modules/custom/journal_devel/templates/journal-devel.html.twig

@ -0,0 +1 @@
<!-- Add you custom twig html here -->

218
modules/custom/journal_editorial/config/install/user.role.issue_editor.yml

@ -0,0 +1,218 @@
langcode: en
status: true
dependencies:
module:
- lightning_core
third_party_settings:
lightning_core:
description: 'Responsible for guiding submissions through the peer review process, assigning categories and editing article and issue metadata.'
_core:
default_config_hash: sQTjVlyR-_9Fgj_OYZZHoja8o2kqoskGSgJXjm7-uE0
id: issue_editor
label: 'Issue editor'
weight: 9
is_admin: null
permissions:
- 'access bibcite export'
- 'access comments'
- 'access content overview'
- 'access contextual links'
- 'access files overview'
- 'access image_browser entity browser pages'
- 'access in-place editing'
- 'access media overview'
- 'access media_browser entity browser pages'
- 'access taxonomy overview'
- 'access toolbar'
- 'administer comments'
- 'administer entity browsers'
- 'administer media'
- 'change layouts in place editing'
- 'change own username'
- 'create audio_file media'
- 'create bibcite_contributor'
- 'create bibcite_keyword'
- 'create bibcite_reference'
- 'create document media'
- 'create field_affiliation_contributor'
- 'create field_affiliation_string'
- 'create field_article_peer_reviewed'
- 'create field_article_section'
- 'create field_article_submission_files'
- 'create field_authors_and_affiliations'
- 'create field_doi'
- 'create field_featured_article'
- 'create field_part_of'
- 'create field_peer_reviewer'
- 'create field_publication_date_electroni'
- 'create image media'
- 'create instagram media'
- 'create issue content'
- 'create journal_article content'
- 'create landing_page content'
- 'create media'
- 'create news_article content'
- 'create page content'
- 'create terms in article_keywords'
- 'create terms in article_section'
- 'create terms in disciplines'
- 'create terms in subjects'
- 'create tweet media'
- 'create url aliases'
- 'create video media'
- 'create video_file media'
- 'delete any audio_file media'
- 'delete any bibcite_reference'
- 'delete any document media'
- 'delete any image media'
- 'delete any instagram media'
- 'delete any issue content'
- 'delete any journal_article content'
- 'delete any media'
- 'delete any news_article content'
- 'delete any page content'
- 'delete any tweet media'
- 'delete any video media'
- 'delete any video_file media'
- 'delete bibcite_contributor'
- 'delete bibcite_keyword'
- 'delete issue revisions'
- 'delete journal_article revisions'
- 'delete landing_page revisions'
- 'delete media'
- 'delete news_article revisions'
- 'delete own audio_file media'
- 'delete own bibcite_keyword'
- 'delete own bibcite_reference'
- 'delete own document media'
- 'delete own image media'
- 'delete own instagram media'
- 'delete own issue content'
- 'delete own journal_article content'
- 'delete own landing_page content'
- 'delete own news_article content'
- 'delete own page content'
- 'delete own tweet media'
- 'delete own video media'
- 'delete own video_file media'
- 'delete page revisions'
- 'delete terms in article_keywords'
- 'delete terms in article_section'
- 'delete terms in disciplines'
- 'delete terms in subjects'
- 'edit any audio_file media'
- 'edit any bibcite_reference'
- 'edit any document media'
- 'edit any image media'
- 'edit any instagram media'
- 'edit any issue content'
- 'edit any journal_article content'
- 'edit any landing_page content'
- 'edit any news_article content'
- 'edit any page content'
- 'edit any tweet media'
- 'edit any video media'
- 'edit any video_file media'
- 'edit bibcite_contributor'
- 'edit bibcite_keyword'
- 'edit field_affiliation_contributor'
- 'edit field_affiliation_string'
- 'edit field_article_peer_reviewed'
- 'edit field_article_section'
- 'edit field_article_submission_files'
- 'edit field_authors_and_affiliations'
- 'edit field_doi'
- 'edit field_featured_article'
- 'edit field_part_of'
- 'edit field_peer_reviewer'
- 'edit field_publication_date_electroni'
- 'edit own audio_file media'
- 'edit own bibcite_keyword'
- 'edit own bibcite_reference'
- 'edit own comments'
- 'edit own document media'
- 'edit own field_affiliation_contributor'
- 'edit own field_affiliation_string'
- 'edit own field_article_peer_reviewed'
- 'edit own field_article_section'
- 'edit own field_article_submission_files'
- 'edit own field_authors_and_affiliations'
- 'edit own field_doi'
- 'edit own field_featured_article'
- 'edit own field_part_of'
- 'edit own field_peer_reviewer'
- 'edit own field_publication_date_electroni'
- 'edit own image media'
- 'edit own instagram media'
- 'edit own issue content'
- 'edit own journal_article content'
- 'edit own landing_page content'
- 'edit own news_article content'
- 'edit own page content'
- 'edit own tweet media'
- 'edit own video media'
- 'edit own video_file media'
- 'edit terms in article_keywords'
- 'edit terms in article_section'
- 'edit terms in disciplines'
- 'edit terms in subjects'
- 'post comments'
- 'reorder entity_hierarchy children'
- 'revert issue revisions'
- 'revert journal_article revisions'
- 'revert landing_page revisions'
- 'revert news_article revisions'
- 'revert page revisions'
- 'skip comment approval'
- 'update any media'
- 'update media'
- 'use editorial transition archive'
- 'use editorial transition create_new_draft'
- 'use editorial transition publish'
- 'use editorial transition review'
- 'use journal_article_submission transition create_new_draft'
- 'use journal_article_submission transition pass_peer_review'
- 'use journal_article_submission transition publish'
- 'use journal_article_submission transition respond_to_feedback'
- 'use journal_article_submission transition reviewer_feedback'
- 'use journal_article_submission transition send_to_review'
- 'use moderation dashboard'
- 'use moderation sidebar'
- 'use text format links_only'
- 'use text format rich_text'
- 'use text format rich_text_references'
- 'view all media revisions'
- 'view any moderation dashboard'
- 'view any unpublished content'
- 'view bibcite_contributor'
- 'view bibcite_keyword'
- 'view bibcite_reference'
- 'view field_affiliation_contributor'
- 'view field_affiliation_string'
- 'view field_article_peer_reviewed'
- 'view field_article_section'
- 'view field_article_submission_files'
- 'view field_authors_and_affiliations'
- 'view field_doi'
- 'view field_featured_article'
- 'view field_part_of'
- 'view field_peer_reviewer'
- 'view field_publication_date_electroni'
- 'view issue revisions'
- 'view journal_article revisions'
- 'view landing_page revisions'
- 'view latest version'
- 'view news_article revisions'
- 'view own field_affiliation_contributor'
- 'view own field_affiliation_string'
- 'view own field_article_peer_reviewed'
- 'view own field_article_section'
- 'view own field_article_submission_files'
- 'view own field_authors_and_affiliations'
- 'view own field_doi'
- 'view own field_featured_article'
- 'view own field_part_of'
- 'view own field_peer_reviewer'
- 'view own field_publication_date_electroni'
- 'view own unpublished content'
- 'view page revisions'

86
modules/custom/journal_editorial/config/install/user.role.journal_article_creator.yml

@ -0,0 +1,86 @@
langcode: en
status: true
dependencies:
module:
- lightning_core
third_party_settings:
lightning_core:
description: 'Article submitters, able to submit content for review and edit their own submitted content. They can also add contributors and references for use in their own articles.'
_core:
default_config_hash: WRLBUAx5Xohg4toMToqJ1LXleuIp8gXWVY0IQ4tOIHw
id: journal_article_creator
label: Author
weight: 11
is_admin: null
permissions:
- 'access bibcite export'
- 'access comments'
- 'access contextual links'
- 'access image_browser entity browser pages'
- 'access media_browser entity browser pages'
- 'change layouts in place editing'
- 'change own username'
- 'create audio_file media'
- 'create bibcite_contributor'
- 'create bibcite_keyword'
- 'create bibcite_reference'
- 'create document media'
- 'create field_affiliation_contributor'
- 'create field_affiliation_string'
- 'create field_article_submission_files'
- 'create field_authors_and_affiliations'
- 'create image media'
- 'create instagram media'
- 'create journal_article content'
- 'create media'
- 'create tweet media'
- 'create video media'
- 'create video_file media'
- 'delete media'
- 'delete own audio_file media'
- 'delete own bibcite_keyword'
- 'delete own bibcite_reference'
- 'delete own document media'
- 'delete own image media'
- 'delete own instagram media'
- 'delete own tweet media'
- 'delete own video media'
- 'delete own video_file media'
- 'edit own audio_file media'
- 'edit own bibcite_keyword'
- 'edit own bibcite_reference'
- 'edit own comments'
- 'edit own document media'
- 'edit own field_affiliation_contributor'
- 'edit own field_affiliation_string'
- 'edit own field_article_submission_files'
- 'edit own field_authors_and_affiliations'
- 'edit own image media'
- 'edit own instagram media'
- 'edit own journal_article content'
- 'edit own tweet media'
- 'edit own video media'
- 'edit own video_file media'
- 'post comments'
- 'skip comment approval'
- 'update media'
- 'use editorial transition create_new_draft'
- 'use editorial transition review'
- 'use journal_article_submission transition create_new_draft'
- 'use journal_article_submission transition respond_to_feedback'
- 'use moderation sidebar'
- 'use text format links_only'
- 'use text format rich_text'
- 'use text format rich_text_references'
- 'view bibcite_contributor'
- 'view bibcite_keyword'
- 'view bibcite_reference'
- 'view journal_article revisions'
- 'view latest version'
- 'view own field_affiliation_contributor'
- 'view own field_affiliation_string'
- 'view own field_article_section'
- 'view own field_article_submission_files'
- 'view own field_authors_and_affiliations'
- 'view own field_doi'
- 'view own unpublished content'

30
modules/custom/journal_editorial/config/install/user.role.journal_article_reviewer.yml

@ -0,0 +1,30 @@
langcode: en
status: true
dependencies: { }
_core:
default_config_hash: fyr-r-1PNzrdqnhDX0Eds5z2dYuNkpU2q7bUXBwLnuI
id: journal_article_reviewer
label: 'Article reviewer'
weight: 12
is_admin: null
permissions:
- 'access comments'
- 'change own username'
- 'delete any journal_article content'
- 'delete own bibcite_keyword'
- 'edit own bibcite_keyword'
- 'edit own comments'
- 'post comments'
- 'skip comment approval'
- 'use editorial transition archive'
- 'use editorial transition publish'
- 'use editorial transition review'
- 'use journal_article_submission transition create_new_draft'
- 'use journal_article_submission transition reviewer_feedback'
- 'use moderation dashboard'
- 'use moderation sidebar'
- 'use text format links_only'
- 'use text format rich_text'
- 'view any unpublished content'
- 'view field_article_submission_files'
- 'view latest version'

251
modules/custom/journal_editorial/config/install/user.role.journal_editor.yml

@ -0,0 +1,251 @@
langcode: en
status: true
dependencies:
module:
- lightning_core
third_party_settings:
lightning_core:
description: 'The editor user with greatest permissions to create and delete all types of content and users.'
_core:
default_config_hash: B49Ku2fBSbj8-e7F5GJxv5_tjF8frJ0jxmzgT5IcvAk
id: journal_editor
label: 'Journal editor'
weight: 7
is_admin: null
permissions:
- 'access bibcite export'
- 'access comments'
- 'access content overview'
- 'access contextual links'
- 'access files overview'
- 'access image_browser entity browser pages'
- 'access in-place editing'
- 'access media overview'
- 'access media_browser entity browser pages'
- 'access panels in-place editing'
- 'access private fields'
- 'access site in maintenance mode'
- 'access site reports'
- 'access taxonomy overview'
- 'access toolbar'
- 'administer account settings'
- 'administer block_content display'
- 'administer comment display'
- 'administer comment fields'
- 'administer comments'
- 'administer contact_message display'
- 'administer contact_message fields'
- 'administer entity browsers'
- 'administer image styles'
- 'administer media'
- 'administer menu'
- 'administer meta tags'
- 'administer node display'
- 'administer nodes'
- 'administer panelizer node journal content'
- 'administer panelizer node journal layout'
- 'administer panelizer node journal revert'
- 'administer taxonomy'
- 'administer users'
- 'bypass node access'
- 'change layouts in place editing'
- 'change own username'
- 'create audio_file media'
- 'create bibcite_contributor'
- 'create bibcite_keyword'
- 'create bibcite_reference'
- 'create document media'
- 'create field_affiliation_contributor'
- 'create field_affiliation_string'
- 'create field_article_peer_reviewed'
- 'create field_article_section'
- 'create field_article_submission_files'
- 'create field_authors_and_affiliations'
- 'create field_doi'
- 'create field_featured_article'
- 'create field_part_of'
- 'create field_peer_reviewer'
- 'create field_publication_date_electroni'
- 'create image media'
- 'create instagram media'
- 'create issue content'
- 'create journal content'
- 'create journal_article content'
- 'create landing_page content'
- 'create media'
- 'create news_article content'
- 'create page content'
- 'create terms in article_keywords'
- 'create terms in article_section'
- 'create terms in disciplines'
- 'create terms in subjects'
- 'create tweet media'
- 'create url aliases'
- 'create video media'
- 'create video_file media'
- 'delete all revisions'
- 'delete any audio_file media'
- 'delete any bibcite_reference'
- 'delete any document media'
- 'delete any image media'
- 'delete any instagram media'
- 'delete any issue content'
- 'delete any journal content'
- 'delete any journal_article content'
- 'delete any landing_page content'
- 'delete any media'
- 'delete any news_article content'
- 'delete any page content'
- 'delete any tweet media'
- 'delete any video media'
- 'delete any video_file media'
- 'delete bibcite_contributor'
- 'delete bibcite_keyword'
- 'delete issue revisions'
- 'delete journal revisions'
- 'delete journal_article revisions'
- 'delete landing_page revisions'
- 'delete media'
- 'delete news_article revisions'
- 'delete own audio_file media'
- 'delete own bibcite_keyword'
- 'delete own bibcite_reference'
- 'delete own document media'
- 'delete own image media'
- 'delete own instagram media'
- 'delete own issue content'
- 'delete own journal content'
- 'delete own journal_article content'
- 'delete own landing_page content'
- 'delete own news_article content'
- 'delete own page content'
- 'delete own tweet media'
- 'delete own video media'
- 'delete own video_file media'
- 'delete page revisions'
- 'delete terms in article_keywords'
- 'delete terms in article_section'
- 'delete terms in disciplines'
- 'delete terms in subjects'
- 'edit any audio_file media'
- 'edit any bibcite_reference'
- 'edit any document media'
- 'edit any image media'
- 'edit any instagram media'
- 'edit any issue content'
- 'edit any journal content'
- 'edit any journal_article content'
- 'edit any landing_page content'
- 'edit any news_article content'
- 'edit any page content'
- 'edit any tweet media'
- 'edit any video media'
- 'edit any video_file media'
- 'edit bibcite_contributor'
- 'edit bibcite_keyword'
- 'edit field_affiliation_contributor'
- 'edit field_affiliation_string'
- 'edit field_article_peer_reviewed'
- 'edit field_article_section'
- 'edit field_article_submission_files'
- 'edit field_authors_and_affiliations'
- 'edit field_doi'
- 'edit field_featured_article'
- 'edit field_part_of'
- 'edit field_peer_reviewer'
- 'edit field_publication_date_electroni'
- 'edit own audio_file media'
- 'edit own bibcite_keyword'
- 'edit own bibcite_reference'
- 'edit own comments'
- 'edit own document media'
- 'edit own field_affiliation_contributor'
- 'edit own field_affiliation_string'
- 'edit own field_article_peer_reviewed'
- 'edit own field_article_section'
- 'edit own field_article_submission_files'
- 'edit own field_authors_and_affiliations'
- 'edit own field_doi'
- 'edit own field_featured_article'
- 'edit own field_part_of'
- 'edit own field_peer_reviewer'
- 'edit own field_publication_date_electroni'
- 'edit own image media'
- 'edit own instagram media'
- 'edit own issue content'
- 'edit own journal content'
- 'edit own journal_article content'
- 'edit own landing_page content'
- 'edit own news_article content'
- 'edit own page content'
- 'edit own tweet media'
- 'edit own video media'
- 'edit own video_file media'
- 'edit terms in article_keywords'
- 'edit terms in article_section'
- 'edit terms in disciplines'
- 'edit terms in subjects'
- 'post comments'
- 'reorder entity_hierarchy children'
- 'revert all revisions'
- 'revert issue revisions'
- 'revert journal revisions'
- 'revert journal_article revisions'
- 'revert landing_page revisions'
- 'revert news_article revisions'
- 'revert page revisions'
- 'skip comment approval'
- 'update any media'
- 'update media'
- 'use editorial transition archive'
- 'use editorial transition create_new_draft'
- 'use editorial transition publish'
- 'use editorial transition review'
- 'use journal_article_submission transition create_new_draft'
- 'use journal_article_submission transition pass_peer_review'
- 'use journal_article_submission transition publish'
- 'use journal_article_submission transition respond_to_feedback'
- 'use journal_article_submission transition reviewer_feedback'
- 'use journal_article_submission transition send_to_review'
- 'use moderation dashboard'
- 'use moderation sidebar'
- 'use text format links_only'
- 'use text format rich_text'
- 'use text format rich_text_references'
- 'view all media revisions'
- 'view all revisions'
- 'view any moderation dashboard'
- 'view any unpublished content'
- 'view bibcite_contributor'
- 'view bibcite_keyword'
- 'view bibcite_reference'
- 'view field_affiliation_contributor'
- 'view field_affiliation_string'
- 'view field_article_peer_reviewed'
- 'view field_article_section'
- 'view field_article_submission_files'
- 'view field_authors_and_affiliations'
- 'view field_doi'
- 'view field_featured_article'
- 'view field_part_of'
- 'view field_peer_reviewer'
- 'view field_publication_date_electroni'
- 'view issue revisions'
- 'view journal revisions'
- 'view journal_article revisions'
- 'view landing_page revisions'
- 'view latest version'
- 'view news_article revisions'
- 'view own field_affiliation_contributor'
- 'view own field_affiliation_string'
- 'view own field_article_peer_reviewed'
- 'view own field_article_section'
- 'view own field_article_submission_files'
- 'view own field_authors_and_affiliations'
- 'view own field_doi'
- 'view own field_featured_article'
- 'view own field_part_of'
- 'view own field_peer_reviewer'
- 'view own field_publication_date_electroni'
- 'view own unpublished content'
- 'view page revisions'

95
modules/custom/journal_editorial/config/install/user.role.web_editor.yml

@ -0,0 +1,95 @@
langcode: en
status: true
dependencies:
module:
- lightning_core
third_party_settings:
lightning_core:
description: 'Able to create and edit non-scholarly site content.'
_core:
default_config_hash: RUVGF6qnEwwnXM0FPtbEFf9fpVX7Cl7OPtIqis9b5ug
id: web_editor
label: 'Web content editor'
weight: 13
is_admin: null
permissions:
- 'access contextual links'
- 'access image_browser entity browser pages'
- 'access media_browser entity browser pages'
- 'administer menu'
- 'administer panelizer node landing_page content'
- 'administer panelizer node landing_page layout'
- 'administer panelizer node landing_page revert'
- 'administer panelizer node page content'
- 'administer panelizer node page layout'
- 'change layouts in place editing'
- 'change own username'
- 'create audio_file media'
- 'create bibcite_contributor'
- 'create bibcite_keyword'
- 'create bibcite_reference'
- 'create document media'
- 'create image media'
- 'create instagram media'
- 'create landing_page content'
- 'create media'
- 'create news_article content'
- 'create page content'
- 'create tweet media'
- 'create url aliases'
- 'create video media'
- 'create video_file media'
- 'delete any news_article content'
- 'delete any page content'
- 'delete landing_page revisions'
- 'delete media'
- 'delete news_article revisions'
- 'delete own audio_file media'
- 'delete own bibcite_keyword'
- 'delete own bibcite_reference'
- 'delete own document media'
- 'delete own image media'
- 'delete own instagram media'
- 'delete own landing_page content'
- 'delete own news_article content'
- 'delete own page content'
- 'delete own tweet media'
- 'delete own video media'
- 'delete own video_file media'
- 'delete page revisions'
- 'edit any landing_page content'
- 'edit any news_article content'
- 'edit any page content'
- 'edit own audio_file media'
- 'edit own bibcite_keyword'
- 'edit own bibcite_reference'
- 'edit own document media'
- 'edit own image media'
- 'edit own instagram media'
- 'edit own landing_page content'
- 'edit own news_article content'
- 'edit own page content'
- 'edit own tweet media'
- 'edit own video media'
- 'edit own video_file media'
- 'revert landing_page revisions'
- 'revert news_article revisions'
- 'revert page revisions'
- 'update media'
- 'use editorial transition archive'
- 'use editorial transition create_new_draft'
- 'use editorial transition publish'
- 'use editorial transition review'
- 'use text format links_only'
- 'use text format rich_text'
- 'use text format rich_text_references'
- 'view all media revisions'
- 'view any unpublished content'
- 'view bibcite_contributor'
- 'view bibcite_keyword'
- 'view bibcite_reference'
- 'view landing_page revisions'
- 'view latest version'
- 'view news_article revisions'
- 'view own unpublished content'
- 'view page revisions'

85
modules/custom/journal_editorial/config/install/workflows.workflow.journal_article_submission.yml

@ -0,0 +1,85 @@
langcode: en
status: true
dependencies:
config:
- node.type.journal_article
module:
- content_moderation
_core:
default_config_hash: IbXIWOwlHmS68a9yudO8nYqJSjUYdUCJOo2Ujw83ytI
id: journal_article_submission
label: 'Article Submission'
type: content_moderation
type_settings:
states:
draft:
published: false
default_revision: false
label: Submission
weight: -10
editorial_review:
published: false
default_revision: false
label: 'In editorial review'
weight: -7
peer_review:
published: false
default_revision: false
label: 'In peer review'
weight: -9
published:
published: true
default_revision: true
label: Published
weight: -6
with_submitter:
published: false
default_revision: false
label: 'With submitter'
weight: -8
transitions:
create_new_draft:
label: Submission
to: draft
weight: -10
from:
- draft
- editorial_review
- peer_review
- published
pass_peer_review:
label: 'Pass Peer Review'
from:
- peer_review
to: editorial_review
weight: -6
publish:
label: Publish
to: published
weight: -5
from:
- draft
- editorial_review
- peer_review
- published
respond_to_feedback:
label: 'Respond to feedback'
from:
- with_submitter
to: peer_review
weight: -7
reviewer_feedback:
label: 'Reviewer feedback'
from:
- peer_review
to: with_submitter
weight: -8
send_to_review:
label: 'Send to Review'
from:
- draft
to: peer_review
weight: -9
entity_types:
node:
- journal_article

8
modules/custom/journal_editorial/journal_editorial.info.yml

@ -0,0 +1,8 @@
name: 'Journal Editorial'
type: module
description: 'Workflows for scholarly content'
core_version_requirement: '^8.0 || ^9 || ^10'
package: 'Journal'
dependencies:
- journal_types

28
modules/custom/journal_editorial/journal_editorial.module

@ -0,0 +1,28 @@
<?php
use Drupal\user\Entity\Role;
/**
* Implementation of hook_modules_installed().
*
* Delete some of the Lightning-created per-content-type roles.
*
* @param array $modules
*/
function journal_editorial_modules_installed(array $modules) {
$roles = Role::loadMultiple(
[
"page_reviewer",
"page_reviewer",
"page_creator",
"media_creator",
"media_manager",
"landing_page_creator",
"landing_page_reviewer",
"layout_manager",
]);
foreach ($roles as $role) {
$role->delete();
}
}

122
modules/custom/journal_news/config/install/core.entity_form_display.node.news_article.default.yml

@ -0,0 +1,122 @@
langcode: en
status: true
dependencies:
config:
- entity_browser.browser.media_browser
- field.field.node.news_article.body
- field.field.node.news_article.field_article_highlight_image
- field.field.node.news_article.field_article_section
- field.field.node.news_article.field_part_of
- node.type.news_article
module:
- content_moderation
- entity_browser
- entity_hierarchy
- path
- text
_core:
default_config_hash: icalymWJVSMqbFOEmncF5vVTcmk0Qae4taSa-q64V58
id: node.news_article.default
targetEntityType: node
bundle: news_article
mode: default
content:
body:
type: text_textarea_with_summary
weight: 121
settings:
rows: 9
summary_rows: 3
placeholder: ''
third_party_settings: { }
region: content
created:
type: datetime_timestamp
weight: 10
region: content
settings: { }
third_party_settings: { }
field_article_highlight_image:
type: entity_browser_entity_reference
weight: 123
settings:
entity_browser: media_browser
field_widget_display: rendered_entity
field_widget_edit: true
field_widget_remove: true
selection_mode: selection_append
field_widget_display_settings:
view_mode: thumbnail
open: true
region: content
third_party_settings: { }
field_article_section:
weight: 122
settings:
match_operator: CONTAINS
size: 60
placeholder: ''
third_party_settings: { }
type: entity_reference_autocomplete
region: content
field_part_of:
weight: 124
settings:
match_operator: CONTAINS
size: 60
placeholder: ''
hide_weight: false
third_party_settings: { }
type: entity_reference_hierarchy_autocomplete
region: content
moderation_state:
type: moderation_state_default
weight: 100
settings: { }
region: content
third_party_settings: { }
path:
type: path
weight: 30
region: content
settings: { }
third_party_settings: { }
promote:
type: boolean_checkbox
settings:
display_label: true
weight: 15
region: content
third_party_settings: { }
status:
type: boolean_checkbox
settings:
display_label: true
weight: 120
region: content
third_party_settings: { }
sticky:
type: boolean_checkbox
settings:
display_label: true
weight: 16
region: content
third_party_settings: { }
title:
type: string_textfield
weight: -5
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
uid:
type: entity_reference_autocomplete
weight: 5
settings:
match_operator: CONTAINS
size: 60
placeholder: ''
region: content
third_party_settings: { }
hidden: { }

64
modules/custom/journal_news/config/install/core.entity_view_display.node.news_article.default.yml

@ -0,0 +1,64 @@
langcode: en
status: true
dependencies:
config:
- field.field.node.news_article.body
- field.field.node.news_article.field_article_highlight_image
- field.field.node.news_article.field_article_section
- field.field.node.news_article.field_part_of
- node.type.news_article
module:
- entity_hierarchy
- panelizer
- text
- user
third_party_settings:
panelizer:
enable: false
custom: false
allow: false
default: default
_core:
default_config_hash: xI3B0VzULKTNxOUid0lkV2it5RgTl6Qa_fbuLPuUkgI
id: node.news_article.default
targetEntityType: node
bundle: news_article
mode: default
content:
body:
label: hidden
type: text_default
weight: 2
settings: { }
third_party_settings: { }
region: content
field_article_highlight_image:
weight: 4
label: visually_hidden
settings:
link: true
third_party_settings: { }
type: entity_reference_label
region: content
field_article_section:
weight: 3
label: inline
settings:
link: true
third_party_settings: { }
type: entity_reference_label
region: content
field_part_of:
weight: 0
label: inline
settings:
link: true
third_party_settings: { }
type: entity_reference_hierarchy_label
region: content
links:
weight: 1
region: content
settings: { }
third_party_settings: { }
hidden: { }

33
modules/custom/journal_news/config/install/core.entity_view_display.node.news_article.teaser.yml

@ -0,0 +1,33 @@
langcode: en
status: true
dependencies:
config:
- core.entity_view_mode.node.teaser
- field.field.node.news_article.body
- field.field.node.news_article.field_article_highlight_image
- field.field.node.news_article.field_article_section
- node.type.news_article
module:
- text
- user
_core:
default_config_hash: Gk6ZZIWBK9ATqv3G_zANqhqWdqiQAMhqWu2-AjHt_fw
id: node.news_article.teaser
targetEntityType: node
bundle: news_article
mode: teaser
content:
body:
label: hidden
type: text_summary_or_trimmed
weight: 101
settings:
trim_length: 600
third_party_settings: { }
region: content
links:
weight: 100
region: content
hidden:
field_article_highlight_image: true
field_article_section: true

21
modules/custom/journal_news/config/install/field.field.node.news_article.body.yml

@ -0,0 +1,21 @@
langcode: en
status: true
dependencies:
config:
- field.storage.node.body
- node.type.news_article
module:
- text
id: node.news_article.body
field_name: body
entity_type: node
bundle: news_article
label: Body
description: ''
required: false
translatable: true
default_value: { }
default_value_callback: ''
settings:
display_summary: true
field_type: text_with_summary

28
modules/custom/journal_news/config/install/field.field.node.news_article.field_article_highlight_image.yml

@ -0,0 +1,28 @@
langcode: en
status: true
dependencies:
config:
- field.storage.node.field_article_highlight_image
- media.type.image
- node.type.news_article
id: node.news_article.field_article_highlight_image
field_name: field_article_highlight_image
entity_type: node
bundle: news_article
label: 'Highlight Image'
description: 'Select from uploaded media an image that will be included in lists of content to accompany the article link.'
required: false
translatable: true
default_value: { }
default_value_callback: ''
settings:
handler: 'default:media'
handler_settings:
target_bundles:
image: image
sort:
field: status
direction: DESC
auto_create: false
auto_create_bundle: ''
field_type: entity_reference

28
modules/custom/journal_news/config/install/field.field.node.news_article.field_article_section.yml

@ -0,0 +1,28 @@
langcode: en
status: true
dependencies:
config:
- field.storage.node.field_article_section
- node.type.news_article
- taxonomy.vocabulary.article_section
id: node.news_article.field_article_section
field_name: field_article_section
entity_type: node
bundle: news_article
label: Section
description: 'Section where this item will appear.'
required: false
translatable: true
default_value: { }
default_value_callback: ''
settings:
handler: 'default:taxonomy_term'
handler_settings:
target_bundles:
article_section: article_section
sort:
field: name
direction: asc
auto_create: false
auto_create_bundle: ''
field_type: entity_reference

36
modules/custom/journal_news/config/install/field.field.node.news_article.field_part_of.yml

@ -0,0 +1,36 @@
langcode: en
status: true
dependencies:
config:
- field.storage.node.field_part_of
- node.type.issue
- node.type.news_article
module:
- entity_hierarchy
- require_on_publish
third_party_settings:
require_on_publish:
require_on_publish: false
id: node.news_article.field_part_of
field_name: field_part_of
entity_type: node
bundle: news_article
label: Issue
description: 'Optionally attach this news story to a journal issue.'
required: false
translatable: true
default_value: { }
default_value_callback: ''
settings:
handler: 'entity_hierarchy:node'
handler_settings:
target_bundles:
issue: issue
sort:
field: _none
auto_create: 0
auto_create_bundle: ''
weight_min: 0
weight_max: 1024
weight_label: Order
field_type: entity_reference_hierarchy

17
modules/custom/journal_news/config/install/node.type.news_article.yml

@ -0,0 +1,17 @@
langcode: en
status: true
dependencies:
module:
- menu_ui
third_party_settings:
menu_ui:
available_menus:
- main
parent: 'main:'
name: 'News Article'
type: news_article
description: 'Non-peer reviewed web content.'
help: 'This is content created for the journal web site that has not gone through peer review It does not include the technical metadata associated with scholarly content and may or may not be attached to an issue.'
new_revision: true
preview_mode: 1
display_submitted: true

8
modules/custom/journal_news/journal_news.info.yml

@ -0,0 +1,8 @@
name: 'Journal News'
type: module
description: 'Content types for non-scholarly content'
core_version_requirement: '^8.0 || ^9'
package: 'Journal'
dependencies:
- journal_types

39
modules/custom/journal_peer_review/config/optional/block.block.views_block__editor_content_in_review.yml

@ -0,0 +1,39 @@
langcode: en
status: true
dependencies:
config:
- views.view.journal_article_peer_reviewer_content_list
module:
- system
- user
- views
theme:
- bartik
id: views_block__editor_content_in_review
theme: bartik
region: content
weight: 0
provider: null
plugin: 'views_block:journal_article_peer_reviewer_content_list-editor_content_in_review'
settings:
id: 'views_block:journal_article_peer_reviewer_content_list-editor_content_in_review'
label: ''
provider: views
label_display: visible
views_label: ''
items_per_page: '20'
visibility:
request_path:
id: request_path
pages: '/user/*'
negate: false
context_mapping: { }
user_role:
id: user_role
roles:
administrator: administrator
journal_editor: journal_editor
issue_editor: issue_editor
negate: false
context_mapping:
user: '@user.current_user_context:current_user'

38
modules/custom/journal_peer_review/config/optional/block.block.views_block__journal_article_peer_reviewer_content_list_block_1.yml

@ -0,0 +1,38 @@
langcode: en
status: true
dependencies:
config:
- views.view.journal_article_peer_reviewer_content_list
module:
- system
- user
- views
theme:
- bartik
id: views_block__journal_article_peer_reviewer_content_list_block_1
theme: bartik
region: content
weight: 0
provider: null
plugin: 'views_block:journal_article_peer_reviewer_content_list-block_1'
settings:
id: 'views_block:journal_article_peer_reviewer_content_list-block_1'
label: ''
provider: views
label_display: visible
views_label: ''
items_per_page: none
context_mapping: { }
visibility:
request_path:
id: request_path
pages: '/user/*'
negate: false
context_mapping: { }
user_role:
id: user_role
roles:
journal_article_reviewer: journal_article_reviewer
negate: false
context_mapping:
user: '@user.current_user_context:current_user'

41
modules/custom/journal_peer_review/config/optional/block.block.views_block__journal_article_peer_reviewer_content_list_block_2.yml

@ -0,0 +1,41 @@
langcode: en
status: true
dependencies:
config:
- views.view.journal_article_peer_reviewer_content_list
module:
- system
- user
- views
theme:
- bartik
id: views_block__journal_article_peer_reviewer_content_list_block_2
theme: bartik
region: content
weight: 0
provider: null
plugin: 'views_block:journal_article_peer_reviewer_content_list-block_2'
settings:
id: 'views_block:journal_article_peer_reviewer_content_list-block_2'
label: ''
provider: views
label_display: visible
views_label: ''
items_per_page: '20'
context_mapping: { }
visibility:
request_path:
id: request_path
pages: '/user/*'
negate: false
context_mapping: { }
user_role:
id: user_role
roles:
administrator: administrator
journal_editor: journal_editor
issue_editor: issue_editor
journal_article_creator: journal_article_creator
negate: false
context_mapping:
user: '@user.current_user_context:current_user'

39
modules/custom/journal_peer_review/config/optional/block.block.views_block__new_submissions_block_1.yml

@ -0,0 +1,39 @@
langcode: en
status: true
dependencies:
config:
- views.view.new_submissions
module:
- system
- user
- views
theme:
- bartik
id: views_block__new_submissions_block_1
theme: bartik
region: content
weight: 0
provider: null
plugin: 'views_block:new_submissions-block_1'
settings:
id: 'views_block:new_submissions-block_1'
label: ''
provider: views
label_display: visible
views_label: ''
items_per_page: none
visibility:
request_path:
id: request_path
pages: '/user/*'
negate: false
context_mapping: { }
user_role:
id: user_role
roles:
administrator: administrator
journal_editor: journal_editor
issue_editor: issue_editor
negate: false
context_mapping:
user: '@user.current_user_context:current_user'

35
modules/custom/journal_peer_review/config/optional/field.field.node.journal_article.field_peer_reviewer.yml

@ -0,0 +1,35 @@
langcode: en
status: true
dependencies:
config:
- field.storage.node.field_peer_reviewer
- node.type.journal_article
_core:
default_config_hash: 1rYuhiA4RSxrD4-Yx28YLr0WrHuXFoyBYUmclguivGs
id: node.journal_article.field_peer_reviewer
field_name: field_peer_reviewer
entity_type: node
bundle: journal_article
label: 'Peer reviewer'
description: ''
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings:
handler: 'default:user'
handler_settings:
include_anonymous: false
filter:
type: role
role:
journal_article_reviewer: journal_article_reviewer
administrator: '0'
journal_editor: '0'
issue_editor: '0'
journal_article_creator: '0'
target_bundles: null
sort:
field: _none
auto_create: false
field_type: entity_reference

25
modules/custom/journal_peer_review/config/optional/field.storage.node.field_peer_reviewer.yml

@ -0,0 +1,25 @@
langcode: en
status: true
dependencies:
module:
- field_permissions
- node
- user
third_party_settings:
field_permissions:
permission_type: custom
_core:
default_config_hash: Di6CSJrrRB3oT2oZMHwjrnzJP7VFqwSOmB9tZE4PGZU
id: node.field_peer_reviewer
field_name: field_peer_reviewer
entity_type: node
type: entity_reference
settings:
target_type: user
module: core
locked: false
cardinality: 1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

673
modules/custom/journal_peer_review/config/optional/views.view.journal_article_peer_reviewer_content_list.yml

@ -0,0 +1,673 @@
langcode: en
status: true
dependencies:
config:
- field.field.node.journal_article.field_peer_reviewer
- workflows.workflow.journal_article_submission
module:
- content_moderation
- node
- user
- views_entity_form_field
_core:
default_config_hash: cz4izNZ534-vIWpJjTOwj9GU5mVa31zAuvtcTLDoaKs
id: journal_article_peer_reviewer_content_list
label: 'Content for Review'
module: views
description: 'The list of articles assigned for review.'
tag: ''
base_table: node_field_data
base_field: nid
core: 8.x
display:
default:
display_plugin: default
id: default
display_title: Master
position: 0
display_options:
access:
type: perm
options:
perm: 'access content'
cache:
type: tag
options: { }
query:
type: views_query
options:
disable_sql_rewrite: false
distinct: false
replica: false
query_comment: ''
query_tags: { }
exposed_form:
type: basic
options:
submit_button: Apply
reset_button: false
reset_button_label: Reset
exposed_sorts_label: 'Sort by'
expose_sort_order: true
sort_asc_label: Asc
sort_desc_label: Desc
pager:
type: full
options:
items_per_page: 10
offset: 0
id: 0
total_pages: null
expose:
items_per_page: false
items_per_page_label: 'Items per page'
items_per_page_options: '5, 10, 25, 50'
items_per_page_options_all: false
items_per_page_options_all_label: '- All -'
offset: false
offset_label: Offset
tags:
previous: '‹ Previous'
next: 'Next ›'
first: '« First'
last: 'Last »'
quantity: 9
style:
type: table
options:
grouping: { }
row_class: ''
default_row_class: true
override: true
sticky: false
caption: ''
summary: ''
description: ''
columns:
title: title
form_field_field_peer_reviewer: form_field_field_peer_reviewer
form_field_moderation_state: form_field_moderation_state
info:
title:
sortable: false
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
form_field_field_peer_reviewer:
align: ''
separator: ''
empty_column: false
responsive: ''
form_field_moderation_state:
align: ''
separator: ''
empty_column: false
responsive: ''
default: '-1'
empty_table: false
row:
type: fields
fields:
title:
id: title
table: node_field_data
field: title
settings:
link_to_entity: true
plugin_id: field
relationship: none
group_type: group
admin_label: ''
label: ''
exclude: false
alter:
alter_text: false
text: ''
make_link: false
path: ''
absolute: false
external: false
replace_spaces: false
path_case: none
trim_whitespace: false
alt: ''
rel: ''
link_class: ''
prefix: ''
suffix: ''
target: ''
nl2br: false
max_length: 0
word_boundary: true
ellipsis: true
more_link: false
more_link_text: ''
more_link_path: ''
strip_tags: false
trim: false
preserve_tags: ''
html: false
element_type: ''
element_class: ''
element_label_type: ''
element_label_class: ''
element_label_colon: 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
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
form_field_field_peer_reviewer:
id: form_field_field_peer_reviewer
table: node_field_data
field: form_field_field_peer_reviewer
relationship: none
group_type: group
admin_label: ''
label: 'Assigned reviewer'
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
plugin:
hide_title: 1
hide_description: 1
type: options_select
settings: { }
third_party_settings: { }
entity_type: node
plugin_id: entity_form_field
form_field_moderation_state:
id: form_field_moderation_state
table: node_field_data
field: form_field_moderation_state
relationship: none
group_type: group
admin_label: ''
label: 'Move to'
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
plugin:
hide_title: 0
hide_description: 0
type: moderation_state_default
settings: { }
third_party_settings: { }
entity_type: node
plugin_id: entity_form_field
filters:
status:
id: status
table: node_field_data
field: status
relationship: none
group_type: group
admin_label: ''
operator: '='
value: '0'
group: 1
exposed: false
expose:
operator_id: ''
label: ''
description: ''
use_operator: false
operator: ''
identifier: ''
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
is_grouped: false
group_info:
label: ''
description: ''
identifier: ''
optional: true
widget: select
multiple: false
remember: false
default_group: All
default_group_multiple: { }
group_items: { }
plugin_id: boolean
entity_type: node
entity_field: status
moderation_state:
id: moderation_state
table: node_field_data
field: moderation_state
relationship: none
group_type: group
admin_label: ''
operator: in
value:
journal_article_submission-peer_review: journal_article_submission-peer_review
journal_article_submission-with_submitter: journal_article_submission-with_submitter
journal_article_submission-editorial_review: journal_article_submission-editorial_review
group: 1
exposed: false
expose:
operator_id: ''
label: ''
description: ''
use_operator: false
operator: ''
identifier: ''
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
reduce: false
is_grouped: false
group_info:
label: ''
description: ''
identifier: ''
optional: true
widget: select
multiple: false
remember: false
default_group: All
default_group_multiple: { }
group_items: { }
entity_type: node
plugin_id: moderation_state_filter
sorts:
created:
id: created
table: node_field_data
field: created
order: DESC
entity_type: node
entity_field: created
plugin_id: date
relationship: none
group_type: group
admin_label: ''
exposed: false
expose:
label: ''
granularity: second
title: 'Content for Review'
header: { }
footer: { }
empty: { }
relationships: { }
arguments: { }
display_extenders: { }
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- url.query_args
- user
- 'user.node_grants:view'
- user.permissions
tags:
- 'config:field.field.node.journal_article.field_peer_reviewer'
- 'config:field.storage.node.field_peer_reviewer'
- 'config:workflow_list'
block_1:
display_plugin: block
id: block_1
display_title: Block
position: 1
display_options:
display_extenders: { }
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- url.query_args
- user
- 'user.node_grants:view'
- user.permissions
tags:
- 'config:field.field.node.journal_article.field_peer_reviewer'
- 'config:field.storage.node.field_peer_reviewer'
- 'config:workflow_list'
block_2:
display_plugin: block
id: block_2
display_title: 'Author''s Submissions'
position: 3
display_options:
display_extenders: { }
display_description: ''
title: 'Unpublished Submissions'
defaults:
title: false
fields: false
arguments: false
filters: false
filter_groups: false
fields:
title:
id: title
table: node_field_data
field: title
settings:
link_to_entity: true
plugin_id: field
relationship: none
group_type: group
admin_label: ''
label: ''
exclude: false
alter:
alter_text: false
text: ''
make_link: false
path: ''
absolute: false
external: false
replace_spaces: false
path_case: none
trim_whitespace: false
alt: ''
rel: ''
link_class: ''
prefix: ''
suffix: ''
target: ''
nl2br: false
max_length: 0
word_boundary: true
ellipsis: true
more_link: false
more_link_text: ''
more_link_path: ''
strip_tags: false
trim: false
preserve_tags: ''
html: false
element_type: ''
element_class: ''
element_label_type: ''
element_label_class: ''
element_label_colon: 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
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
form_field_moderation_state:
id: form_field_moderation_state
table: node_field_data
field: form_field_moderation_state
relationship: none
group_type: group
admin_label: ''
label: 'Move to'
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
plugin:
hide_title: 0
hide_description: 0
type: moderation_state_default
settings: { }
third_party_settings: { }
entity_type: node
plugin_id: entity_form_field
arguments:
uid:
id: uid
table: node_field_data
field: uid
relationship: none
group_type: group
admin_label: ''
default_action: default
exception:
value: all
title_enable: false
title: All
title_enable: false
title: ''
default_argument_type: current_user
default_argument_options: { }
default_argument_skip_url: false
summary_options:
base_path: ''
count: true
items_per_page: 25
override: false
summary:
sort_order: asc
number_of_records: 0
format: default_summary
specify_validation: false
validate:
type: none
fail: 'not found'
validate_options: { }
break_phrase: false
not: false
entity_type: node
entity_field: uid
plugin_id: numeric
filters:
status:
id: status
table: node_field_data
field: status
relationship: none
group_type: group
admin_label: ''
operator: '='
value: '0'
group: 1
exposed: false
expose:
operator_id: ''
label: ''
description: ''
use_operator: false
operator: ''
identifier: ''
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
is_grouped: false
group_info:
label: ''
description: ''
identifier: ''
optional: true
widget: select
multiple: false
remember: false
default_group: All
default_group_multiple: { }
group_items: { }
plugin_id: boolean
entity_type: node
entity_field: status
filter_groups:
operator: AND
groups:
1: AND
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- url
- url.query_args
- user
- 'user.node_grants:view'
- user.permissions
tags: { }
editor_content_in_review:
display_plugin: block
id: editor_content_in_review
display_title: 'Editor Overview'
position: 2
display_options:
display_extenders: { }
display_description: ''
title: 'Articles in Review'
defaults:
title: false
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- url.query_args
- user
- 'user.node_grants:view'
- user.permissions
tags:
- 'config:field.field.node.journal_article.field_peer_reviewer'
- 'config:field.storage.node.field_peer_reviewer'
- 'config:workflow_list'

381
modules/custom/journal_peer_review/config/optional/views.view.new_submissions.yml

@ -0,0 +1,381 @@
langcode: en
status: true
dependencies:
config:
- field.field.node.journal_article.field_peer_reviewer
- workflows.workflow.journal_article_submission
module:
- content_moderation
- node
- user
- views_entity_form_field
_core:
default_config_hash: uTZIwJ1Q2LAgIaYDPWLyfyTs18uFnc4Je5OwVcE5T00
id: new_submissions
label: 'New Submissions'
module: views
description: 'Articles that have been submitted and not sent to peer review'
tag: ''
base_table: node_field_data
base_field: nid
core: 8.x
display:
default:
display_plugin: default
id: default
display_title: Master
position: 0
display_options:
access:
type: perm
options:
perm: 'access content'
cache:
type: tag
options: { }
query:
type: views_query
options:
disable_sql_rewrite: false
distinct: false
replica: false
query_comment: ''
query_tags: { }
exposed_form:
type: basic
options:
submit_button: Apply
reset_button: false
reset_button_label: Reset
exposed_sorts_label: 'Sort by'
expose_sort_order: true
sort_asc_label: Asc
sort_desc_label: Desc
pager:
type: full
options:
items_per_page: 20
offset: 0
id: 0
total_pages: null
expose:
items_per_page: false
items_per_page_label: 'Items per page'
items_per_page_options: '5, 10, 25, 50'
items_per_page_options_all: false
items_per_page_options_all_label: '- All -'
offset: false
offset_label: Offset
tags:
previous: '‹ Previous'
next: 'Next ›'
first: '« First'
last: 'Last »'
quantity: 9
style:
type: table
options:
grouping: { }
row_class: ''
default_row_class: true
override: true
sticky: false
caption: ''
summary: ''
description: ''
columns:
title: title
field_peer_reviewer: field_peer_reviewer
info:
title:
sortable: false
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
field_peer_reviewer:
sortable: false
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
default: '-1'
empty_table: false
row:
type: fields
options:
default_field_elements: true
inline: { }
separator: ''
hide_empty: false
fields:
title:
id: title
table: node_field_data
field: title
entity_type: node
entity_field: title
label: ''
alter:
alter_text: false
make_link: false
absolute: false
trim: false
word_boundary: false
ellipsis: false
strip_tags: false
html: false
hide_empty: false
empty_zero: false
settings:
link_to_entity: true
plugin_id: field
relationship: none
group_type: group
admin_label: ''
exclude: false
element_type: ''
element_class: ''
element_label_type: ''
element_label_class: ''
element_label_colon: true
element_wrapper_type: ''
element_wrapper_class: ''
element_default_classes: true
empty: ''
hide_alter_empty: true
click_sort_column: value
type: string
group_column: value
group_columns: { }
group_rows: true
delta_limit: 0
delta_offset: 0
delta_reversed: false
delta_first_last: false
multi_type: separator
separator: ', '
field_api_classes: false
form_field_field_peer_reviewer:
id: form_field_field_peer_reviewer
table: node_field_data
field: form_field_field_peer_reviewer
relationship: none
group_type: group
admin_label: ''
label: 'Peer reviewer'
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
plugin:
hide_title: 1
hide_description: 1
type: options_select
settings: { }
third_party_settings: { }
entity_type: node
plugin_id: entity_form_field
form_field_moderation_state:
id: form_field_moderation_state
table: node_field_data
field: form_field_moderation_state
relationship: none
group_type: group
admin_label: ''
label: 'Moderation: Move to'
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
plugin:
hide_title: 0
hide_description: 0
type: moderation_state_default
settings: { }
third_party_settings: { }
entity_type: node
plugin_id: entity_form_field
filters:
moderation_state:
id: moderation_state
table: node_field_data
field: moderation_state
relationship: none
group_type: group
admin_label: ''
operator: in
value:
journal_article_submission-draft: journal_article_submission-draft
group: 1
exposed: false
expose:
operator_id: ''
label: ''
description: ''
use_operator: false
operator: ''
identifier: ''
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
reduce: false
is_grouped: false
group_info:
label: ''
description: ''
identifier: ''
optional: true
widget: select
multiple: false
remember: false
default_group: All
default_group_multiple: { }
group_items: { }
entity_type: node
plugin_id: moderation_state_filter
sorts:
created:
id: created
table: node_field_data
field: created
order: DESC
entity_type: node
entity_field: created
plugin_id: date
relationship: none
group_type: group
admin_label: ''
exposed: false
expose:
label: ''
granularity: second
title: 'New Submissions'
header: { }
footer: { }
empty:
area:
id: area
table: views
field: area
relationship: none
group_type: group
admin_label: ''
empty: true
tokenize: false
content:
value: 'There are no items in the submission queue.'
format: rich_text_references
plugin_id: text
relationships: { }
arguments: { }
display_extenders: { }
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- url.query_args
- user
- 'user.node_grants:view'
- user.permissions
tags:
- 'config:field.field.node.journal_article.field_peer_reviewer'
- 'config:field.storage.node.field_peer_reviewer'
- 'config:workflow_list'
block_1:
display_plugin: block
id: block_1
display_title: Block
position: 1
display_options:
display_extenders: { }
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- url.query_args
- user
- 'user.node_grants:view'
- user.permissions
tags:
- 'config:field.field.node.journal_article.field_peer_reviewer'
- 'config:field.storage.node.field_peer_reviewer'
- 'config:workflow_list'

10
modules/custom/journal_peer_review/journal_peer_review.info.yml

@ -0,0 +1,10 @@
name: 'Journal Peer Review'
type: module
description: 'Assign peer reviewers to articles'
core_version_requirement: '^8.0 || ^9 || ^10'
package: 'Journal'
dependencies:
- journal_types
- journal_editorial
- field_permissions

152
modules/custom/journal_peer_review/journal_peer_review.module

@ -0,0 +1,152 @@
<?php
use Drupal\Core\Access\AccessResult;
use Drupal\node\NodeInterface;
use Drupal\Core\Entity\Entity\EntityFormDisplay;
use Drupal\Core\Entity\Entity\EntityViewDisplay;
use Drupal\Core\Session\AccountInterface;
use Drupal\journal_peer_review\Utils;
/**
* Implementation of hook_modules_installed().
*
* Workaround because custom field permissions are not exporting properly.
* Limit who can view the 'assigned reviewer' field to only Journal and Issue reviewwers.
*
* @param array $modules
*/
function journal_peer_review_modules_installed(array $modules) {
journal_peer_review_grant_field_permissions(
[
'create field_peer_reviewer' => [
'journal_editor',
'issue_editor',
],
'edit field_peer_reviewer' => [
'journal_editor',
'issue_editor',
],
'view field_peer_reviewer' => [
'journal_editor',
'issue_editor',
],
]);
$field = \Drupal\field\Entity\FieldConfig::loadByName('node', 'journal_article', 'field_authors_and_affiliations');
$storage = $field->getFieldStorageDefinition();
$storage->setThirdPartySetting('field_permissions', 'permission_type', 'custom');
$storage->save();
foreach ([
'field_authors_and_affiliations',
'field_affiliation_contributor',
'field_affiliation_string'
] as $field_name) {
journal_peer_review_grant_field_permissions(
[
"create $field_name" => [
'journal_editor',
'issue_editor',
'journal_article_creator',
],
"edit own $field_name" => [
'journal_editor',
'issue_editor',
'journal_article_creator',
],
"edit $field_name" => [
'issue_editor',
'journal_editor',
],
"view own $field_name" => [
'journal_article_creator',
],
"view $field_name" => [
'issue_editor',
'journal_editor',
],
]
);
}
// Put Assigned Reviewer into the Publication State form region.
$form_entity = EntityFormDisplay::load('node.journal_article.default');
$group_data = $form_entity->getThirdPartySettings('field_group');
$pubstate_group = $group_data['group_publication_state'];
array_splice($pubstate_group['children'], 1, 0, 'field_peer_reviewer');
$form_entity->setComponent('field_peer_reviewer', ['region' => 'content'])
->setThirdPartySetting('field_group', 'group_publication_state', $pubstate_group)
->save();
// Add 'Peer Reviewers' field to the Entity View Display
$view_entity = EntityViewDisplay::load('node.journal_article.default');
$view_entity->setComponent('field_peer_reviewer', [
'type' => 'entity_reference_label',
'weight' => 5,
'region' => 'content',
'label' => 'above',
'settings' => ['link' => '1']])
->save();
}
/**
* Implements hook_node_access().
*
* @inheritdoc
*/
function journal_peer_review_node_access(NodeInterface $node, $op, AccountInterface $account) {
if ($node->bundle() != 'journal_article') {
return AccessResult::neutral();
}
// Pass-through if node is published as we are through the peer review process.
if ($node->isPublished()) {
return AccessResult::neutral();
}
// If user does not have article reviewer role, just pass through
// and let the standard Drupal access rules handle it.
if (!in_array('journal_article_reviewer', $account->getRoles())) {
return AccessResult::neutral();
}
$reviewers = $node->get('field_peer_reviewer');
if (!empty($reviewers) && is_a($reviewers, 'Drupal\Core\Field\EntityReferenceFieldItemList')) {
foreach ($reviewers->referencedEntities() as $reviewer) {
if ($reviewer->getEntityTypeId() == 'user' && $reviewer->id() == $account->id()) {
// User is in the assigned reviewers list, so they can see the article.
return AccessResult::allowed();
}
}
}
return AccessResult::forbidden();
}
/**
* Loop through the array and grant permissions for the specified roels on each field.
*
* @param $permissions
*/
function journal_peer_review_grant_field_permissions($permissions) {
$role_storage = \Drupal::service('entity_type.manager')->getStorage('user_role');
$roles = [];
foreach ($permissions as $permission_name => $role_names) {
foreach ($role_names as $role_name) {
$roles[$role_name] = $role_storage->load($role_name);
if (!empty($roles[$role_name])) {
$roles[$role_name]->grantPermission($permission_name);
}
}
}
// Save all roles.
// foreach ($roles as $role) {
// $role->trustData()->save();
// }
}

66
modules/custom/journal_references/config/install/editor.editor.rich_text_references.yml

@ -0,0 +1,66 @@
langcode: en
status: true
dependencies:
config:
- filter.format.rich_text_references
module:
- ckeditor
_core:
default_config_hash: VcTIWimn2gjjIeXeNlksgzleqMPYHTBGTIzvNJ9Tu_0
format: rich_text_references
editor: ckeditor
settings:
toolbar:
rows:
-
-
name: Formatting
items:
- Bold
- Italic
- Subscript
- Superscript
- JustifyLeft
- JustifyCenter
- JustifyRight
- Outdent
- Indent
- Format
-
name: Links
items:
- DrupalLink
- DrupalUnlink
- reference_footnotes
-
name: Lists
items:
- BulletedList
- NumberedList
-
name: Media
items:
- media_browser
- Blockquote
- blockquote_attribution
-
name: Tools
items:
- Table
- Source
- SpecialChar
- Language
- Maximize
plugins:
stylescombo:
styles: ''
language:
language_list: un
image_upload:
status: false
scheme: public
directory: inline-images
max_size: ''
max_dimensions:
width: null
height: null

159
modules/custom/journal_references/config/install/filter.format.rich_text_references.yml

@ -0,0 +1,159 @@
uuid: 668a452a-de3f-44be-b4be-a29b16a835d3
langcode: en
status: true
dependencies:
config:
- core.entity_view_mode.media.embedded
- core.entity_view_mode.media.full
- core.entity_view_mode.media.hero
- core.entity_view_mode.media.media_library
- core.entity_view_mode.media.slideshow
- core.entity_view_mode.media.thumbnail
module:
- bibcite_footnotes
- blazy
- editor
- entity_embed
- ds
- linkit
- media
- toc_filter
- video_embed_wysiwyg
_core:
default_config_hash: i0SzprgUrVbLJjIxVBrOoB59baT-p-x2dtgY2z2KZiw
name: 'Rich Text with References'
format: rich_text_references
weight: -11
filters:
filter_align:
id: filter_align
provider: filter
status: true
weight: -49
settings: { }
filter_caption:
id: filter_caption
provider: filter
status: true
weight: -48
settings: { }
filter_htmlcorrector:
id: filter_htmlcorrector
provider: filter
status: true
weight: -46
settings: { }
editor_file_reference:
id: editor_file_reference
provider: editor
status: true
weight: -45
settings: { }
entity_embed:
id: entity_embed
provider: entity_embed
status: true
weight: -47
settings: { }
filter_html:
id: filter_html
provider: filter
status: false
weight: -41
settings:
allowed_html: '<a href hreflang id class title data-entity-type data-entity-uuid data-entity-substitution> <em> <strong> <cite> <blockquote cite> <code> <ul type id class> <ol start type id class> <li id class> <dl> <dt> <dd> <h2 id class> <h3 id class> <h4 id class> <h5 id class> <h6 id class> <s> <sup> <sub> <img src alt data-entity-type data-entity-uuid data-entity-substitution data-align data-caption> <table> <caption> <tbody> <thead> <tfoot> <th> <td> <tr> <hr> <p> <br> <h1> <pre> <drupal-entity data-* title alt> <fn id value class page reference> <div id class> <span id class>'
filter_html_help: true
filter_html_nofollow: false
filter_autop:
id: filter_autop
provider: filter
status: false
weight: -39
settings: { }
filter_html_escape:
id: filter_html_escape
provider: filter
status: false
weight: -40
settings: { }
filter_html_image_secure:
id: filter_html_image_secure
provider: filter
status: false
weight: -38
settings: { }
filter_url:
id: filter_url
provider: filter
status: true
weight: -44
settings:
filter_url_length: 72
filter_footnotes:
id: filter_footnotes
provider: footnotes
status: false
weight: -42
settings:
footnotes_collapse: '0'
toc_filter:
id: toc_filter
provider: toc_filter
status: true
weight: -43
settings:
type: full
auto: ''
block: '1'
filter_reference_footnotes:
id: filter_reference_footnotes
provider: bibcite_footnotes
status: true
weight: -50
settings:
footnotes_collapse: '0'
footnotes_ibid: '0'
notes_section_label: Notes
reference_dont_show_backlink_text: '0'
works_cited_sort_by: weight
blazy_filter:
id: blazy_filter
provider: blazy
status: false
weight: -36
settings:
filter_tags:
img: img
iframe: iframe
media_switch: ''
use_data_uri: '0'
media_embed:
id: media_embed
provider: media
status: true
weight: -35
settings:
default_view_mode: embedded
allowed_media_types: { }
allowed_view_modes:
default: default
embedded: embedded
full: full
hero: hero
media_library: media_library
slideshow: slideshow
thumbnail: thumbnail
video_embed_wysiwyg:
id: video_embed_wysiwyg
provider: video_embed_wysiwyg
status: false
weight: -37
settings: { }
linkit:
id: linkit
provider: linkit
status: true
weight: -42
settings:
title: false
¯

BIN
modules/custom/journal_references/images/reference_embed_icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

18
modules/custom/journal_references/journal_references.info.yml

@ -0,0 +1,18 @@
name: 'Journal References'
type: module
description: 'Settings for inline citations in article content'
core_version_requirement: '^8.0 || ^9 || ^10'
package: 'Journal'
dependencies:
- journal_types
- embed
- bibcite
- bibcite_bibtex
- bibcite_ris
- bibcite_import
- bibcite_endnote
- bibcite_marc
- bibcite_entity
- bibcite_footnotes
- ckeditor_blockquote_attribution
- toc_filter

29
modules/custom/journal_references/journal_references.module

@ -0,0 +1,29 @@
<?php
function journal_references_modules_installed(array $modules)
{
// Don't do anything during config sync.
if (\Drupal::isConfigSyncing()) {
return;
}
if (in_array('lightning_roles', $modules)) {
foreach(['creator', 'reviewer'] as $role_type) {
\Drupal::service('lightning.content_roles')
->grantPermissions($role_type, [
'use text format rich_text_references',
'create bibcite_reference',
'create bibcite_contributor',
'create bibcite_keyword',
'delete own bibcite_keyword',
'edit own bibcite_keyword',
'delete own bibcite_reference',
'edit own bibcite_reference',
'view bibcite_reference',
'view bibcite_keyword',
'view bibcite_contributor',
]);
}
}
}

5
modules/custom/journal_references/journal_references.services.yml

@ -0,0 +1,5 @@
services:
journal_references.route_subscriber:
class: Drupal\journal_references\Routing\RouteSubscriber
tags:
- { name: event_subscriber }

456
modules/custom/journal_references/src/CSL/MLA_ToC.xml

@ -0,0 +1,456 @@
<?xml version="1.0" encoding="utf-8"?>
<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="never">
<info>
<title>Modern Language Association 7th edition</title>
<title-short>MLA</title-short>
<id>http://www.zotero.org/styles/modern-language-association</id>
<link href="http://www.zotero.org/styles/modern-language-association" rel="self"/>
<link href="http://owl.english.purdue.edu/owl/section/2/11/" rel="documentation"/>
<author>
<name>Ilouise S. Bradford</name>
<email>isbradford@gmail.com</email>
</author>
<contributor>
<name>Sarah Ficke</name>
<email>sficke@email.unc.edu</email>
</contributor>
<contributor>
<name>Sebastian Karcher</name>
<email>karcher@u.northwestern.edu</email>
</contributor>
<contributor>
<name>Christian Werthschulte</name>
<email>Christian.Werthschulte@rub.de</email>
</contributor>
<contributor>
<name>Simon Kornblith</name>
<email>simon@simonster.com</email>
</contributor>
<contributor>
<name>James Johnston</name>
<email>thejamesjohnston@gmail.com</email>
</contributor>
<category citation-format="author"/>
<category field="generic-base"/>
<summary>This style adheres to the MLA 7th edition handbook and contains modifications to these types of sources: e-mail, forum posts, interviews, manuscripts, maps, presentations, TV broadcasts, and web pages.</summary>
<updated>2014-09-21T00:39:49+00:00</updated>
<rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
</info>
<locale xml:lang="en">
<terms>
<term name="month-01" form="short">Jan.</term>
<term name="month-02" form="short">Feb.</term>
<term name="month-03" form="short">Mar.</term>
<term name="month-04" form="short">Apr.</term>
<term name="month-05" form="short">May</term>
<term name="month-06" form="short">June</term>
<term name="month-07" form="short">July</term>
<term name="month-08" form="short">Aug.</term>
<term name="month-09" form="short">Sept.</term>
<term name="month-10" form="short">Oct.</term>
<term name="month-11" form="short">Nov.</term>
<term name="month-12" form="short">Dec.</term>
<term name="volume" form="short">
<single>Vol.</single>
<multiple>vols</multiple>
</term>
<term name="edition" form="short">ed</term>
<term name="editor" form="verb-short">ed.</term>
<term name="translator" form="verb-short">trans.</term>
<term name="translator" form="short">trans.</term>
</terms>
</locale>
<macro name="editor-translator">
<names variable="editor translator" delimiter=". ">
<label form="verb-short" text-case="capitalize-first" suffix=" "/>
<name and="text" delimiter=", "/>
</names>
</macro>
<macro name="author">
<names variable="author">
<name name-as-sort-order="first" and="text" sort-separator=", " delimiter=", " delimiter-precedes-last="always"/>
<label form="short" prefix=", "/>
<substitute>
<names variable="editor"/>
<names variable="translator"/>
<text macro="title"/>
</substitute>
</names>
</macro>
<macro name="author-short">
<names variable="author">
<name form="short" and="text" delimiter=", " initialize-with=". "/>
<substitute>
<names variable="editor"/>
<names variable="translator"/>
<text macro="title-short"/>
</substitute>
</names>
</macro>
<macro name="access">
<group delimiter=" ">
<date variable="accessed">
<date-part name="day" suffix=" "/>
<date-part name="month" form="short" suffix=" "/>
<date-part name="year"/>
</date>
</group>
</macro>
<macro name="issued-full-date">
<choose>
<if variable="issued">
<date variable="issued">
<date-part name="day" suffix=" "/>
<date-part name="month" form="short" suffix=" " strip-periods="false"/>
<date-part name="year"/>
</date>
</if>
<else>
<text term="no date" form="short"/>
</else>
</choose>
</macro>
<macro name="medium">
<choose>
<if type="motion_picture">
<choose>
<if variable="medium">
<text variable="medium" prefix=" "/>
</if>
<else>
<text value="Film" prefix=" "/>
</else>
</choose>
</if>
<else-if type="broadcast">
<choose>
<if variable="medium">
<text variable="medium" prefix=" "/>
</if>
<else>
<text value="Television" prefix=" "/>
</else>
</choose>
</else-if>
<else-if type="manuscript">
<text value=""/>
</else-if>
<else-if type="personal_communication" match="any">
<text value="" prefix=" "/>
</else-if>
<else-if type="speech" match="any">
<text value=""/>
</else-if>
<else-if type="interview">
<text variable="medium" prefix=" "/>
</else-if>
<else-if type="song">
<choose>
<if variable="medium">
<text variable="medium" prefix=" "/>
</if>
<else>
<text value="Audio Recording" prefix=" "/>
</else>
</choose>
</else-if>
<else>
<choose>
<if variable="URL DOI" match="any">
<text variable="source" prefix=" " suffix="." font-style="italic"/>
<group>
<text value="Web." prefix=" "/>
</group>
<text prefix=" " suffix="." macro="access"/>
</if>
<else>
<text value="Print" prefix=" "/>
</else>
</choose>
</else>
</choose>
</macro>
<macro name="title">
<choose>
<if type="bill book graphic legal_case legislation manuscript motion_picture report song" match="any">
<text variable="title" font-style="italic" text-case="title"/>
</if>
<else-if type="interview personal_communication" match="any">
<text variable="title" text-case="title" quotes="false"/>
</else-if>
<else>
<text variable="title" text-case="title" quotes="true"/>
</else>
</choose>
</macro>
<macro name="title-short">
<choose>
<if type="bill book graphic legal_case legislation manuscript motion_picture report song" match="any">
<text variable="title" text-case="title" form="short" font-style="italic"/>
</if>
<else>
<text variable="title" text-case="title" form="short" quotes="true"/>
</else>
</choose>
</macro>
<macro name="pages">
<choose>
<if variable="page">
<text variable="page"/>
</if>
<else-if type="personal_communication interview" match="any">
<text value=""/>
</else-if>
<else>
<text value="n. pag"/>
</else>
</choose>
</macro>
<macro name="edition">
<choose>
<if is-numeric="edition">
<group delimiter=" ">
<number variable="edition" form="ordinal"/>
<text term="edition" form="short"/>
</group>
</if>
<else>
<text variable="edition"/>
</else>
</choose>
</macro>
<macro name="volume">
<choose>
<if is-numeric="volume">
<group delimiter=" ">
<text term="volume" form="short" strip-periods="false"/>
<number variable="volume"/>
</group>
</if>
<else>
<text variable="volume"/>
</else>
</choose>
</macro>
<macro name="number-of-volumes-only">
<choose>
<if variable="volume" match="none">
<choose>
<if is-numeric="number-of-volumes">
<group delimiter=" ">
<number variable="number-of-volumes"/>
<text term="volume" form="short" plural="true" strip-periods="true"/>
</group>
</if>
<else>
<text variable="number-of-volumes"/>
</else>
</choose>
</if>
</choose>
</macro>
<macro name="number-of-volumes-optional">
<choose>
<if variable="volume">
<choose>
<if is-numeric="number-of-volumes">
<group delimiter=" ">
<number variable="number-of-volumes"/>
<text term="volume" form="short" plural="true" strip-periods="true"/>
</group>
</if>
<else>
<text variable="number-of-volumes"/>
</else>
</choose>
</if>
</choose>
</macro>
<macro name="collection-title">
<text variable="collection-title" text-case="title" prefix=" "/>
</macro>
<macro name="collection-number">
<text variable="collection-number" prefix=" " suffix="."/>
</macro>
<macro name="publisher">
<choose>
<if variable="publisher">
<text variable="publisher"/>
</if>
<else>
<text value="N.p."/>
</else>
</choose>
</macro>
<macro name="publisher-year">
<group delimiter=", ">
<group delimiter=": ">
<text variable="publisher-place"/>
<text macro="publisher"/>
</group>
<date variable="issued">
<date-part name="year"/>
</date>
</group>
</macro>
<citation et-al-min="4" et-al-use-first="1" disambiguate-add-names="true" disambiguate-add-givenname="true">
<layout prefix="(" suffix=")" delimiter="; ">
<group delimiter=" ">
<choose>
<if variable="author editor translator" match="any">
<group delimiter=", ">
<text macro="author-short"/>
<choose>
<if disambiguate="true">
<text macro="title-short"/>
</if>
</choose>
</group>
</if>
<else>
<text macro="title-short"/>
</else>
</choose>
<text variable="locator"/>
</group>
</layout>
</citation>
<bibliography hanging-indent="true" et-al-min="4" et-al-use-first="1" line-spacing="2" entry-spacing="0" subsequent-author-substitute="---">
<sort>
<key macro="author"/>
<key variable="title"/>
</sort>
<layout suffix=".">
<text macro="author" suffix="."/>
<text macro="title" prefix=" " suffix="."/>
<choose>
<if type="bill book graphic legal_case legislation motion_picture report song" match="any">
<text macro="editor-translator" prefix=" " suffix="."/>
<text macro="edition" prefix=" " suffix="."/>
<text macro="volume" prefix=" " suffix="."/>
<text macro="number-of-volumes-only" prefix=" " suffix="."/>
<text macro="publisher-year" prefix=" " suffix="."/>
</if>
<else-if type="chapter paper-conference" match="any">
<group>
<text variable="container-title" text-case="title" font-style="italic" prefix=" " suffix="."/>
<text macro="editor-translator" prefix=" " suffix="."/>
<text macro="edition" prefix=" " suffix="."/>
<text macro="volume" prefix=" " suffix="."/>
<text macro="number-of-volumes-only" prefix=" " suffix="."/>
<text macro="publisher-year" prefix=" " suffix="."/>
</group>
<text variable="page" prefix=" " suffix="."/>
</else-if>
<else-if type="thesis">
<text variable="genre" prefix=" " suffix="."/>
<group delimiter=", ">
<text macro="publisher" prefix=" "/>
<date variable="issued" prefix=" " suffix=".">
<date-part name="year"/>
</date>
</group>
<text variable="archive_location" prefix=" " suffix="."/>
</else-if>
<else-if type="manuscript">
<date variable="issued" prefix=" " suffix=".">
<date-part name="year"/>
</date>
<text variable="genre" prefix=" " suffix="."/>
<text variable="archive_location" prefix=" " suffix="."/>
<text variable="publisher-place" prefix=" "/>
</else-if>
<else-if type="personal_communication">
<date variable="issued" prefix=" " suffix=".">
<date-part name="day" suffix=" "/>
<date-part name="month" form="short" suffix=" "/>
<date-part name="year"/>
</date>
<choose>
<if variable="genre">
<text prefix=" " suffix="." variable="genre"/>
</if>
<else>
<text prefix=" " suffix="." value="E-mail"/>
</else>
</choose>
</else-if>
<else-if type="map">
<text variable="genre" prefix=" " suffix="."/>
<text variable="publisher-place" prefix=" " suffix=":"/>
<text macro="publisher" prefix=" "/>
<date variable="issued" prefix=" " suffix=",">
<date-part name="year"/>
</date>
</else-if>
<else-if type="speech">
<text variable="event" prefix=" " suffix="."/>
<text variable="publisher-place" prefix=" " suffix="."/>
<date variable="issued" prefix=" " suffix=".">
<date-part name="year"/>
</date>
<text variable="genre" prefix=" " suffix="."/>
</else-if>
<else-if type="webpage post-weblog" match="any">
<text variable="genre" prefix=" " suffix="."/>
<text variable="container-title" font-style="italic" prefix=" " suffix="."/>
<group delimiter=", " prefix=" ">
<text macro="publisher"/>
<text macro="issued-full-date" suffix="."/>
</group>
</else-if>
<else-if type="broadcast">
<text variable="container-title" font-style="italic" prefix=" " suffix="."/>
<text macro="publisher" prefix=" " suffix=","/>
<date variable="issued" prefix=" " suffix=".">
<date-part name="day" suffix=" "/>
<date-part name="month" form="short" suffix=" " strip-periods="false"/>
<date-part name="year"/>
</date>
</else-if>
<else>
<group prefix=" " suffix="." delimiter=": ">
<group delimiter=" ">
<text macro="editor-translator" suffix="."/>
<text variable="container-title" font-style="italic"/>
<choose>
<if type="article-journal">
<group delimiter=" ">
<group delimiter=".">
<text variable="volume"/>
<text variable="issue"/>
</group>
<date variable="issued" prefix="(" suffix="):">
<date-part name="year"/>
</date>
</group>
<text macro="pages" prefix=" "/>
</if>
<else>
<group>
<date variable="issued">
<date-part name="day" suffix=" "/>
<date-part name="month" form="short" suffix=" " strip-periods="false"/>
<date-part name="year"/>
</date>
<choose>
<if variable="URL DOI" match="any">
<text variable="page" prefix=": "/>
</if>
<else>
<text macro="pages" prefix=": "/>
</else>
</choose>
</group>
</else>
</choose>
</group>
</group>
</else>
</choose>
<text macro="number-of-volumes-optional" suffix="." prefix=" "/>
<text macro="collection-title"/>
<text macro="collection-number"/>
</layout>
</bibliography>
</style>

25
modules/custom/journal_references/src/Routing/RouteSubscriber.php

@ -0,0 +1,25 @@
<?php
namespace Drupal\journal_references\Routing;
use Drupal\Core\Routing\RouteSubscriberBase;
use Symfony\Component\Routing\RouteCollection;
/**
* Listens to the dynamic route events.
*/
class RouteSubscriber extends RouteSubscriberBase {
/**
* {@inheritdoc}
*/
protected function alterRoutes(RouteCollection $collection) {
foreach (['bibcite_import.populate', 'bibcite_import.import'] as $routename) {
if ($route = $collection->get($routename)) {
$route->setRequirement('_permission', 'create bibcite_reference');
}
}
}
}

7
modules/custom/journal_site/config/install/system.menu.author-tasks.yml

@ -0,0 +1,7 @@
langcode: en
status: true
dependencies: { }
id: author-tasks
label: 'Author tasks'
description: 'Tasks for article authors'
locked: false

465
modules/custom/journal_site/config/install/views.view.manage_citations.yml

@ -0,0 +1,465 @@
langcode: en
status: true
dependencies:
config:
- system.menu.author-tasks
module:
- bibcite_entity
id: manage_citations
label: 'Manage Citations'
module: views
description: 'List of citations created by the current user.'
tag: ''
base_table: bibcite_reference
base_field: id
core: 8.x
display:
default:
display_plugin: default
id: default
display_title: Master
position: 0
display_options:
access:
type: none
options: { }
cache:
type: tag
options: { }
query:
type: views_query
options:
disable_sql_rewrite: false
distinct: false
replica: false
query_comment: ''
query_tags: { }
exposed_form:
type: basic
options:
submit_button: Apply
reset_button: false
reset_button_label: Reset
exposed_sorts_label: 'Sort by'
expose_sort_order: true
sort_asc_label: Asc
sort_desc_label: Desc
pager:
type: mini
options:
items_per_page: 100
offset: 0
id: 0
total_pages: null
expose:
items_per_page: false
items_per_page_label: 'Items per page'
items_per_page_options: '5, 10, 25, 50'
items_per_page_options_all: false
items_per_page_options_all_label: '- All -'
offset: false
offset_label: Offset
tags:
previous: ‹‹
next: ››
style:
type: table
options:
grouping: { }
row_class: ''
default_row_class: true
override: true
sticky: false
caption: ''
summary: ''
description: ''
columns:
title: title
info:
title:
sortable: false
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
default: '-1'
empty_table: false
row:
type: 'entity:bibcite_reference'
options:
relationship: none
view_mode: default
fields:
bibcite_reference_bulk_form:
id: bibcite_reference_bulk_form
table: bibcite_reference
field: bibcite_reference_bulk_form
relationship: none
group_type: group
admin_label: ''
label: 'Bulk update'
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
action_title: Action
include_exclude: exclude
selected_actions: { }
entity_type: bibcite_reference
plugin_id: bulk_form
bibcite_year:
id: bibcite_year
table: bibcite_reference
field: bibcite_year
relationship: none
group_type: group
admin_label: ''
label: 'Year of Publication'
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: number_integer
settings:
thousand_separator: ''
prefix_suffix: true
group_column: value
group_columns: { }
group_rows: true
delta_limit: 0
delta_offset: 0
delta_reversed: false
delta_first_last: false
multi_type: separator
separator: ', '
field_api_classes: false
entity_type: bibcite_reference
entity_field: bibcite_year
plugin_id: field
title:
id: title
table: bibcite_reference
field: title
relationship: none
group_type: group
admin_label: ''
label: ''
exclude: false
alter:
alter_text: false
text: ''
make_link: false
path: ''
absolute: false
external: false
replace_spaces: false
path_case: none
trim_whitespace: false
alt: ''
rel: ''
link_class: ''
prefix: ''
suffix: ''
target: ''
nl2br: false
max_length: 0
word_boundary: true
ellipsis: true
more_link: false
more_link_text: ''
more_link_path: ''
strip_tags: false
trim: false
preserve_tags: ''
html: false
element_type: ''
element_class: ''
element_label_type: ''
element_label_class: ''
element_label_colon: false
element_wrapper_type: ''
element_wrapper_class: ''
element_default_classes: true
empty: ''
hide_empty: false
empty_zero: false
hide_alter_empty: true
click_sort_column: value
type: string
settings:
link_to_entity: true
group_column: value
group_columns: { }
group_rows: true
delta_limit: 0
delta_offset: 0
delta_reversed: false
delta_first_last: false
multi_type: separator
separator: ', '
field_api_classes: false
entity_type: null
entity_field: title
plugin_id: field
links:
id: links
table: bibcite_reference
field: links
relationship: none
group_type: group
admin_label: ''
label: Links
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
override_default: 0
links:
overrides:
pubmed:
enabled: '1'
weight: '-10'
doi:
enabled: '1'
weight: '-10'
google_scholar:
enabled: '1'
weight: '-10'
entity_type: bibcite_reference
plugin_id: bibcite_links
operations:
id: operations
table: bibcite_reference
field: operations
relationship: none
group_type: group
admin_label: ''
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
entity_type: bibcite_reference
plugin_id: entity_operations
filters: { }
sorts: { }
title: 'Manage Citations'
header: { }
footer: { }
empty: { }
relationships: { }
arguments:
uid:
id: uid
table: bibcite_reference
field: uid
relationship: none
group_type: group
admin_label: ''
default_action: default
exception:
value: all
title_enable: false
title: All
title_enable: false
title: ''
default_argument_type: current_user
default_argument_options: { }
default_argument_skip_url: false
summary_options:
base_path: ''
count: true
items_per_page: 25
override: false
summary:
sort_order: asc
number_of_records: 0
format: default_summary
specify_validation: false
validate:
type: none
fail: 'not found'
validate_options: { }
break_phrase: false
not: false
entity_type: bibcite_reference
entity_field: uid
plugin_id: numeric
display_extenders: { }
cache_metadata:
max-age: 0
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- url
- url.query_args
- user
tags: { }
page_1:
display_plugin: page
id: page_1
display_title: Page
position: 1
display_options:
display_extenders: { }
path: manage-citations
menu:
type: normal
title: 'Manage Citations'
menu_name: author-tasks
cache_metadata:
max-age: 0
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- url
- url.query_args
- user
tags: { }

13
modules/custom/journal_site/journal_site.info.yml

@ -0,0 +1,13 @@
name: 'Journal Site'
type: module
description: 'Site-wide configurations for the journal profile'
core_version_requirement: '^8.0 || ^9 || ^10'
package: 'Journal'
dependencies:
- journal_references
- journal_types
- bibcite_entity
- bibcite_import
- toc_filter

27
modules/custom/journal_site/journal_site.links.menu.yml

@ -0,0 +1,27 @@
journal_site.import:
title: 'Import citations'
description: 'Import a list of citations by uploading them.'
menu_name: author-tasks
route_name: bibcite_import.import
journal_site.submit_new_article:
title: 'Submit a new article'
description: 'Submit a new scholarly article for review.'
menu_name: author-tasks
route_name: node.add
route_parameters:
node_type: journal_article
journal_site.populate:
title: 'Paste citations'
description: 'Import a citation via Copy & Paste.'
menu_name: author-tasks
route_name: bibcite_import.populate
journal_site.create_citation:
title: 'Add a new citaiton'
description: 'Create a citaiton directly.'
menu_name: author-tasks
route_name: entity.bibcite_reference.add_page
journal_site.add_contributor:
title: 'Add contributor'
description: 'Add authors and other contributors to include in your article heading.'
menu_name: author-tasks
route_name: entity.bibcite_contributor.add_form

7
modules/custom/journal_types/config/install/comment.type.editorial_comments.yml

@ -0,0 +1,7 @@
langcode: en
status: true
dependencies: { }
id: editorial_comments
label: 'Editorial Comments'
target_entity_type_id: node
description: 'Used for conversations between reviewers, editors and submitters. Not visible to anonymous users.'

33
modules/custom/journal_types/config/install/core.entity_form_display.comment.editorial_comments.default.yml

@ -0,0 +1,33 @@
langcode: en
status: true
dependencies:
config:
- comment.type.editorial_comments
- field.field.comment.editorial_comments.comment_body
module:
- text
id: comment.editorial_comments.default
targetEntityType: comment
bundle: editorial_comments
mode: default
content:
author:
weight: -2
region: content
comment_body:
type: text_textarea
weight: 11
settings:
rows: 5
placeholder: ''
third_party_settings: { }
region: content
subject:
type: string_textfield
weight: 10
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
hidden: { }

160
modules/custom/journal_types/config/install/core.entity_form_display.node.issue.default.yml

@ -0,0 +1,160 @@
langcode: en
status: true
dependencies:
config:
- field.field.node.issue.body
- field.field.node.issue.field_issue_cover
- field.field.node.issue.field_issue_number
- field.field.node.issue.field_issue_open
- field.field.node.issue.field_issue_publication_date
- field.field.node.issue.field_issue_volume
- field.field.node.issue.field_part_of
- image.style.thumbnail
- node.type.issue
module:
- datetime
- entity_hierarchy
- field_group
- image
- text
third_party_settings:
field_group:
group_issue_info:
children:
- group_basic_info
- group_publication_state
parent_name: ''
weight: 1
format_type: tabs
format_settings:
id: journal-info-tabs
classes: ''
direction: vertical
label: 'Issue Info'
group_basic_info:
children:
- group_identification
- body
- field_issue_cover
parent_name: group_issue_info
weight: 20
format_type: tab
format_settings:
id: journal-issue-basic-info-tab
classes: ''
formatter: open
description: 'Public-facing data about this issue.'
required_fields: true
label: 'Basic Info'
group_publication_state:
children:
- field_issue_open
- field_issue_publication_date
- status
parent_name: group_issue_info
weight: 21
format_type: tab
format_settings:
id: journal-issue-publicaton-state-tab
classes: ''
formatter: closed
description: 'Publication and technical metadata.'
required_fields: true
label: 'Publication State'
group_identification:
children:
- field_part_of
- field_issue_number
- field_issue_volume
parent_name: group_basic_info
weight: 2
format_type: fieldset
format_settings:
id: journal-issu-identification-form-fieldset
classes: ''
description: ''
required_fields: true
label: Identification
_core:
default_config_hash: 1TD70uMKjooPJ5b7-zbLdB3_PsTw1i37SDRp5AcUdN8
id: node.issue.default
targetEntityType: node
bundle: issue
mode: default
content:
body:
type: text_textarea_with_summary
weight: 3
region: content
settings:
rows: 9
summary_rows: 3
placeholder: ''
third_party_settings: { }
field_issue_cover:
type: image_image
weight: 4
settings:
preview_image_style: thumbnail
progress_indicator: throbber
region: content
third_party_settings: { }
field_issue_number:
type: number
weight: 4
region: content
settings:
placeholder: ''
third_party_settings: { }
field_issue_open:
type: boolean_checkbox
weight: 4
region: content
settings:
display_label: true
third_party_settings: { }
field_issue_publication_date:
weight: 5
settings: { }
third_party_settings: { }
type: datetime_default
region: content
field_issue_volume:
weight: 5
settings:
placeholder: ''
third_party_settings: { }
type: number
region: content
field_part_of:
weight: 3
settings:
match_operator: CONTAINS
size: 60
placeholder: ''
hide_weight: false
third_party_settings: { }
type: entity_reference_hierarchy_autocomplete
region: content
status:
type: boolean_checkbox
settings:
display_label: true
weight: 6
region: content
third_party_settings: { }
title:
type: string_textfield
weight: 0
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
hidden:
created: true
moderation_state: true
path: true
promote: true
sticky: true
uid: true

292
modules/custom/journal_types/config/install/core.entity_form_display.node.journal.default.yml

@ -0,0 +1,292 @@
langcode: en
status: true
dependencies:
config:
- entity_browser.browser.image_browser
- field.field.node.journal.field_journal_abbrev
- field.field.node.journal.field_journal_about_this
- field.field.node.journal.field_journal_author_guidelines
- field.field.node.journal.field_journal_description
- field.field.node.journal.field_journal_eissn
- field.field.node.journal.field_journal_for_authors
- field.field.node.journal.field_journal_for_librarins
- field.field.node.journal.field_journal_for_readers
- field.field.node.journal.field_journal_initials
- field.field.node.journal.field_journal_issn_print
- field.field.node.journal.field_journal_logo
- field.field.node.journal.field_journal_mailing_address
- field.field.node.journal.field_journal_main_image
- field.field.node.journal.field_journal_principal_contact
- field.field.node.journal.field_journal_publisher
- field.field.node.journal.field_journal_technical_support_
- node.type.journal
module:
- address
- entity_browser
- field_group
- path
- text
third_party_settings:
field_group:
group_journal_info:
children:
- group_journal_basic_info
- group_journal_extended_info
- group_journal_contact_info
- group_journal_website_info
- group_journal_submission_info
parent_name: ''
weight: 20
format_type: tabs
format_settings:
id: journal-info-tab
classes: ''
direction: vertical
label: 'Journal Info'
group_journal_basic_info:
children:
- title
- field_journal_description
- field_journal_initials
- field_journal_publisher
- field_journal_abbrev
- field_journal_eissn
- field_journal_issn_print
- path
parent_name: group_journal_info
weight: 3
format_type: tab
format_settings:
id: journal-basic-info-tab
classes: ''
formatter: open
description: ''
required_fields: true
label: 'Journal Basic Info'
group_journal_submission_info:
children:
- field_journal_author_guidelines
parent_name: group_journal_info
weight: 8
format_type: tab
format_settings:
label: 'Submission Info'
formatter: closed
description: ''
required_fields: true
id: journal-submission-info-form-tab
classes: ''
label: 'Submission Info'
group_journal_extended_info:
children:
- field_journal_about_this
- field_journal_logo
- field_journal_main_image
parent_name: group_journal_info
weight: 4
format_type: tab
format_settings:
id: journal-extended-info-form-tab
classes: ''
formatter: closed
description: ''
required_fields: true
label: 'Extended Info'
group_journal_contact_info:
children:
- field_journal_mailing_address
- field_journal_principal_contact
- field_journal_technical_support_
parent_name: group_journal_info
weight: 5
format_type: tab
format_settings:
id: journal-contact-form-tab
classes: ''
formatter: closed
description: ''
required_fields: true
label: Contact
group_journal_website_info:
children:
- field_journal_for_readers
- field_journal_for_authors
- field_journal_for_librarins
parent_name: group_journal_info
weight: 7
format_type: tab
format_settings:
id: journal-webiste-info-form-tab
classes: ''
formatter: closed
description: 'Brief descriptions of the journal for librarians and prospective authors and readers. These are made available in the site''s sidebar when the Information block has been added.'
required_fields: true
label: 'Website Info'
_core:
default_config_hash: fQ1EHDlv5pb_PGRfzhK1pj40Jgazt90oyg8Y95Moi3s
id: node.journal.default
targetEntityType: node
bundle: journal
mode: default
content:
field_journal_abbrev:
weight: 4
settings:
size: 60
placeholder: ''
third_party_settings: { }
type: string_textfield
region: content
field_journal_about_this:
weight: 42
settings:
rows: 5
placeholder: ''
third_party_settings: { }
type: text_textarea
region: content
field_journal_author_guidelines:
weight: 43
settings:
rows: 5
placeholder: ''
third_party_settings: { }
type: text_textarea
region: content
field_journal_description:
weight: 1
settings:
size: 60
placeholder: ''
third_party_settings: { }
type: text_textfield
region: content
field_journal_eissn:
weight: 5
settings:
size: 60
placeholder: ''
third_party_settings: { }
type: string_textfield
region: content
field_journal_for_authors:
weight: 39
settings:
rows: 5
placeholder: ''
third_party_settings: { }
type: text_textarea
region: content
field_journal_for_librarins:
weight: 40
settings:
rows: 5
placeholder: ''
third_party_settings: { }
type: text_textarea
region: content
field_journal_for_readers:
weight: 38
settings:
rows: 5
placeholder: ''
third_party_settings: { }
type: text_textarea
region: content
field_journal_initials:
weight: 2
settings:
size: 60
placeholder: ''
third_party_settings: { }
type: string_textfield
region: content
field_journal_issn_print:
weight: 6
settings:
size: 60
placeholder: ''
third_party_settings: { }
type: string_textfield
region: content
field_journal_logo:
type: entity_browser_file
weight: 43
settings:
entity_browser: image_browser
field_widget_edit: true
field_widget_remove: true
view_mode: default
preview_image_style: thumbnail
open: true
selection_mode: selection_append
region: content
third_party_settings: { }
field_journal_mailing_address:
weight: 50
settings:
default_country: null
third_party_settings: { }
type: address_default
region: content
field_journal_main_image:
type: entity_browser_file
weight: 44
settings:
entity_browser: image_browser
field_widget_edit: true
field_widget_remove: true
view_mode: default
preview_image_style: thumbnail
open: true
selection_mode: selection_append
region: content
third_party_settings: { }
field_journal_principal_contact:
weight: 51
settings:
match_operator: CONTAINS
size: 60
placeholder: ''
third_party_settings: { }
type: entity_reference_autocomplete
region: content
field_journal_publisher:
weight: 3
settings:
size: 60
placeholder: ''
third_party_settings: { }
type: string_textfield
region: content
field_journal_technical_support_:
weight: 52
settings:
match_operator: CONTAINS
size: 60
placeholder: ''
third_party_settings: { }
type: entity_reference_autocomplete
region: content
path:
type: path
weight: 7
region: content
settings: { }
third_party_settings: { }
title:
type: string_textfield
weight: 0
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
hidden:
created: true
moderation_state: true
promote: true
scheduled_publication: true
status: true
sticky: true
uid: true

338
modules/custom/journal_types/config/install/core.entity_form_display.node.journal_article.default.yml

@ -0,0 +1,338 @@
langcode: en
status: true
dependencies:
config:
- entity_browser.browser.media_browser
- field.field.node.journal_article.body
- field.field.node.journal_article.field_article_dc_rights
- field.field.node.journal_article.field_article_dc_source
- field.field.node.journal_article.field_article_disciplines
- field.field.node.journal_article.field_article_editor_comments
- field.field.node.journal_article.field_article_highlight_image
- field.field.node.journal_article.field_part_of
- field.field.node.journal_article.field_article_peer_reviewed
- field.field.node.journal_article.field_article_section
- field.field.node.journal_article.field_article_subjects
- field.field.node.journal_article.field_article_submission_files
- field.field.node.journal_article.field_article_subtitle
- field.field.node.journal_article.field_article_type
- field.field.node.journal_article.field_authors_and_affiliations
- field.field.node.journal_article.field_cc_license
- field.field.node.journal_article.field_doi
- field.field.node.journal_article.field_editorial_comments
- field.field.node.journal_article.field_featured_article
- field.field.node.journal_article.field_journal_article_abstract
- field.field.node.journal_article.field_journal_article_keywords
- field.field.node.journal_article.field_part_of
- field.field.node.journal_article.field_publication_date_electroni
- field.field.node.journal_article.field_works_cited
- node.type.journal_article
module:
- content_moderation
- datetime
- entity_browser
- entity_hierarchy
- field_group
- file
- inline_entity_form
- paragraphs
- path
- text
third_party_settings:
field_group:
group_submission_metadata:
children:
- field_article_dc_source
- field_article_dc_rights
parent_name: group_technical_metadata
weight: 3
format_type: fieldset
format_settings:
id: ''
classes: article-submission-metadata-fieldset
description: 'These specifications are based on the Dublin Core metadata set, an international standard used to describe journal content.'
required_fields: true
label: 'Submission Metadata'
group_additional_refinements:
children:
- field_article_subjects
- field_article_disciplines
- field_journal_article_keywords
parent_name: group_technical_metadata
weight: 4
format_type: fieldset
format_settings:
id: article-submission-additional-refinements-fieldset
classes: ''
description: ''
required_fields: true
label: 'Additional Refinements'
group_article_info:
children:
- group_article_content
- group_article_contributors
- group_technical_metadata
- group_publication_state
parent_name: ''
weight: 0
format_type: tabs
format_settings:
id: journal-article-info-form-tabs
classes: ''
direction: vertical
label: 'Article Info'
group_article_content:
children:
- title
- field_article_subtitle
- field_journal_article_abstract
- body
- field_works_cited
- field_article_highlight_image
- field_article_submission_files
parent_name: group_article_info
weight: 20
format_type: tab
format_settings:
id: journal-article-content-form-tab
classes: ''
formatter: open
description: 'Abstract and article main body content'
required_fields: true
label: 'Article Content'
group_publication_state:
children:
- field_part_of
- moderation_state
- field_article_section
- status
- field_publication_date_electroni
- path
- field_article_peer_reviewed
parent_name: group_article_info
weight: 23
format_type: tab
format_settings:
id: journal-article-publication-state-form
classes: ''
formatter: closed
description: 'Article publication info and state'
required_fields: true
label: 'Publication State'
group_technical_metadata:
children:
- field_article_editor_comments
- group_submission_metadata
- group_additional_refinements
parent_name: group_article_info
weight: 22
format_type: tab
format_settings:
id: journal-article-technical-metadata-tab-form
classes: ''
formatter: closed
description: 'Additional data to help categorize the article and make it indexable by search engines and aggregators.'
required_fields: true
label: 'Technical Metadata'
group_article_contributors:
children:
- field_authors_and_affiliations
parent_name: group_article_info
weight: 21
format_type: tab
format_settings:
id: journal-article-contributors-form-tab
classes: ''
formatter: closed
description: 'Add all of the article''s contributors'
required_fields: true
label: 'Article Contributors'
_core:
default_config_hash: vSmxCbu2Kv7RqPlDZT5VaXpVB7Zh6hjQNKNvw7ECU74
id: node.journal_article.default
targetEntityType: node
bundle: journal_article
mode: default
content:
body:
type: text_textarea_with_summary
weight: 3
settings:
rows: 9
summary_rows: 3
placeholder: ''
third_party_settings: { }
region: content
field_article_dc_rights:
weight: 128
settings:
size: 60
placeholder: ''
third_party_settings: { }
type: string_textfield
region: content
field_article_dc_source:
weight: 127
settings:
size: 60
placeholder: ''
third_party_settings: { }
type: string_textfield
region: content
field_article_disciplines:
weight: 130
settings: { }
third_party_settings: { }
type: options_select
region: content
field_article_editor_comments:
weight: 2
settings:
rows: 5
placeholder: ''
third_party_settings: { }
type: text_textarea
region: content
field_article_highlight_image:
type: entity_browser_entity_reference
weight: 5
settings:
entity_browser: media_browser
field_widget_display: rendered_entity
field_widget_edit: true
field_widget_remove: true
selection_mode: selection_append
field_widget_display_settings:
view_mode: thumbnail
open: true
region: content
third_party_settings: { }
field_article_peer_reviewed:
weight: 239
settings:
display_label: true
third_party_settings: { }
type: boolean_checkbox
region: content
field_article_section:
weight: 235
settings: { }
third_party_settings: { }
type: options_select
region: content
field_article_subjects:
weight: 129
settings:
match_operator: CONTAINS
size: 60
placeholder: ''
third_party_settings: { }
type: entity_reference_autocomplete
region: content
field_article_submission_files:
weight: 6
settings:
progress_indicator: throbber
third_party_settings: { }
type: file_generic
region: content
field_article_subtitle:
weight: 1
settings:
size: 60
placeholder: ''
third_party_settings: { }
type: text_textfield
region: content
field_authors_and_affiliations:
type: entity_reference_paragraphs
weight: 0
region: content
settings:
title: Paragraph
title_plural: Paragraphs
edit_mode: open
add_mode: dropdown
form_display_mode: default
default_paragraph_type: ''
third_party_settings: { }
field_journal_article_abstract:
weight: 2
settings:
rows: 5
placeholder: ''
third_party_settings: { }
type: text_textarea
region: content
field_journal_article_keywords:
weight: 131
settings: { }
third_party_settings: { }
type: options_select
region: content
field_part_of:
weight: 233
settings: { }
third_party_settings: { }
type: entity_reference_hierarchy_select
region: content
field_publication_date_electroni:
weight: 237
settings: { }
third_party_settings: { }
type: datetime_default
region: content
field_works_cited:
weight: 4
settings:
form_mode: default
label_singular: ''
label_plural: ''
collapsible: true
allow_new: true
allow_existing: true
match_operator: CONTAINS
override_labels: false
collapsed: false
allow_duplicate: false
third_party_settings: { }
type: inline_entity_form_complex
region: content
moderation_state:
type: moderation_state_default
weight: 234
settings: { }
region: content
third_party_settings: { }
path:
type: path
weight: 238
region: content
settings: { }
third_party_settings: { }
status:
type: boolean_checkbox
settings:
display_label: true
weight: 236
region: content
third_party_settings: { }
title:
type: string_textfield
weight: 0
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
hidden:
created: true
field_part_of: true
field_article_type: true
field_cc_license: true
field_doi: true
field_editorial_comments: true
field_featured_article: true
promote: true
sticky: true
uid: true

36
modules/custom/journal_types/config/install/core.entity_form_display.paragraph.author_with_affiliation.default.yml

@ -0,0 +1,36 @@
langcode: en
status: true
dependencies:
config:
- field.field.paragraph.author_with_affiliation.field_affiliation_contributor
- field.field.paragraph.author_with_affiliation.field_affiliation_string
- paragraphs.paragraphs_type.author_with_affiliation
module:
- text
id: paragraph.author_with_affiliation.default
targetEntityType: paragraph
bundle: author_with_affiliation
mode: default
content:
field_affiliation_contributor:
type: entity_reference_autocomplete
weight: 0
region: content
settings:
match_operator: CONTAINS
size: 60
placeholder: ''
third_party_settings: { }
field_affiliation_string:
type: text_textfield
weight: 1
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
hidden:
created: true
moderation_state: true
status: true
uid: true

24
modules/custom/journal_types/config/install/core.entity_view_display.comment.editorial_comments.default.yml

@ -0,0 +1,24 @@
langcode: en
status: true
dependencies:
config:
- comment.type.editorial_comments
- field.field.comment.editorial_comments.comment_body
module:
- text
id: comment.editorial_comments.default
targetEntityType: comment
bundle: editorial_comments
mode: default
content:
comment_body:
label: hidden
type: text_default
weight: 0
settings: { }
third_party_settings: { }
region: content
links:
weight: 100
region: content
hidden: { }

79
modules/custom/journal_types/config/install/core.entity_view_display.node.issue.default.yml

@ -0,0 +1,79 @@
langcode: en
status: true
dependencies:
config:
- field.field.node.issue.body
- field.field.node.issue.field_issue_cover
- field.field.node.issue.field_issue_number
- field.field.node.issue.field_issue_open
- field.field.node.issue.field_issue_publication_date
- field.field.node.issue.field_issue_volume
- node.type.issue
module:
- datetime
- field_group
- image
- panelizer
- text
- user
third_party_settings:
panelizer:
enable: false
custom: false
allow: false
default: default
field_group:
group_identification:
children:
- field_issue_number
- field_issue_volume
parent_name: ''
weight: 1
format_type: fieldset
format_settings:
id: journal-issue-identification-fieldset
classes: ''
description: ''
label: Identification
_core:
default_config_hash: hdV6m5TfXarfLCfNrSlLjZVhJ1p3K2raHn2Bbu4dea4
id: node.issue.default
targetEntityType: node
bundle: issue
mode: default
content:
body:
type: text_default
weight: 2
region: content
label: above
settings: { }
third_party_settings: { }
field_issue_cover:
type: image
weight: 3
region: content
label: above
settings:
image_style: ''
image_link: ''
third_party_settings: { }
field_issue_publication_date:
weight: 5
label: above
settings:
format_type: medium
timezone_override: ''
third_party_settings: { }
type: datetime_default
region: content
links:
weight: 4
region: content
settings: { }
third_party_settings: { }
hidden:
field_issue_number: true
field_issue_open: true
field_issue_volume: true
langcode: true

233
modules/custom/journal_types/config/install/core.entity_view_display.node.issue.full.yml

@ -0,0 +1,233 @@
langcode: en
status: true
dependencies:
config:
- core.entity_view_mode.node.full
- field.field.node.issue.body
- field.field.node.issue.field_issue_cover
- field.field.node.issue.field_issue_number
- field.field.node.issue.field_issue_open
- field.field.node.issue.field_issue_publication_date
- field.field.node.issue.field_issue_volume
- field.field.node.issue.field_part_of
- node.type.issue
module:
- field_group
- image
- panelizer
- text
- user
third_party_settings:
panelizer:
enable: true
custom: false
allow: false
default: issue_with_table_of_contents
displays:
default:
blocks:
97d29643-c01c-4b39-a270-86a67d29692e:
id: 'entity_field:node:uid'
label: 'Authored by'
provider: ctools_block
label_display: '0'
formatter:
label: hidden
type: author
settings: { }
third_party_settings: { }
weight: 0
region: content
region: content
weight: 0
context_mapping:
entity: '@panelizer.entity_context:entity'
uuid: 97d29643-c01c-4b39-a270-86a67d29692e
60012803-b656-4cbc-8e03-6e20bde3b6c1:
id: 'entity_field:node:created'
label: 'Authored on'
provider: ctools_block
label_display: '0'
formatter:
label: hidden
type: timestamp
settings:
date_format: medium
custom_date_format: ''
timezone: ''
third_party_settings: { }
weight: 0
region: content
region: content
weight: 0
context_mapping:
entity: '@panelizer.entity_context:entity'
uuid: 60012803-b656-4cbc-8e03-6e20bde3b6c1
bf319e4a-d1ff-47bb-9004-d58ff6693d1e:
id: 'entity_field:node:body'
label: Description
provider: ctools_block
label_display: '0'
formatter:
label: above
type: text_default
settings: { }
third_party_settings: { }
weight: 0
region: content
region: content
weight: 2
context_mapping:
entity: '@panelizer.entity_context:entity'
uuid: bf319e4a-d1ff-47bb-9004-d58ff6693d1e
363878c9-b637-4f6d-a8e3-f852765f7dbd:
id: 'entity_field:node:field_issue_cover'
label: Cover
provider: ctools_block
label_display: '0'
formatter:
label: above
type: image
settings:
image_style: ''
image_link: ''
third_party_settings: { }
weight: 0
region: content
region: content
weight: 3
context_mapping:
entity: '@panelizer.entity_context:entity'
uuid: 363878c9-b637-4f6d-a8e3-f852765f7dbd
3ddf8b48-7952-4622-ba28-150f7f2bb8d9:
id: 'entity_field:node:field_issue_number'
label: Number
provider: ctools_block
label_display: '0'
formatter:
label: above
type: number_integer
settings:
thousand_separator: ''
prefix_suffix: true
third_party_settings: { }
weight: 0
region: content
region: content
weight: 5
context_mapping:
entity: '@panelizer.entity_context:entity'
uuid: 3ddf8b48-7952-4622-ba28-150f7f2bb8d9
6cd5ba49-3eb6-41c9-99cd-e3df4b7dacb6:
id: 'entity_field:node:field_issue_volume'
label: Volume
provider: ctools_block
label_display: '0'
formatter:
label: above
type: string
settings:
link_to_entity: false
third_party_settings: { }
weight: 0
region: content
region: content
weight: 4
context_mapping:
entity: '@panelizer.entity_context:entity'
uuid: 6cd5ba49-3eb6-41c9-99cd-e3df4b7dacb6
id: panels_variant
label: Default
uuid: e931344e-e30a-4257-bb04-e05e8f1b15c2
weight: 0
layout: layout_onecol
layout_settings: { }
page_title: '[node:title]'
storage_type: panelizer_default
storage_id: 'node:issue:full:default'
builder: ipe
pattern: panelizer
static_context: { }
issue_with_table_of_contents:
blocks:
4f78e630-efc5-4a24-9613-1a8a1e9b5b0d:
id: 'entity_view:node'
label: 'Entity view (Content)'
provider: ctools
label_display: '0'
view_mode: default
region: first_above
weight: 0
uuid: 4f78e630-efc5-4a24-9613-1a8a1e9b5b0d
context_mapping:
entity: '@panelizer.entity_context:entity'
acca53ba-c132-4f74-9156-3be7f1f4f95b:
id: 'views_block:issue_table_of_contents-block_1'
label: ''
provider: views
label_display: visible
views_label: ''
items_per_page: none
region: second_above
weight: 0
uuid: acca53ba-c132-4f74-9156-3be7f1f4f95b
context_mapping: { }
id: panels_variant
uuid: 26324a1f-9767-4ead-8fb2-8aa218e4a7b6
label: 'Issue with Table of Contents'
weight: 0
layout: layout_twocol_bricks
layout_settings: { }
page_title: ''
storage_type: panelizer_default
storage_id: 'node:issue:full:issue_with_table_of_contents'
pattern: panelizer
builder: standard
static_context: { }
field_group:
group_identification:
children:
- field_issue_number
- field_issue_volume
parent_name: ''
weight: 1
format_type: fieldset
format_settings:
id: journal-issue-identification-fieldset
classes: ''
description: ''
label: Identification
_core:
default_config_hash: UdxLRFarJJjUsnmWnFMO9xlciEMWSfqBwNMaZzo95-g
id: node.issue.full
targetEntityType: node
bundle: issue
mode: full
content:
body:
type: text_default
weight: 2
region: content
label: above
settings: { }
third_party_settings: { }
field_issue_cover:
type: image
weight: 3
region: content
label: above
settings:
image_style: ''
image_link: ''
third_party_settings: { }
links:
weight: 4
region: content
settings: { }
third_party_settings: { }
hidden:
field_issue_number: true
field_issue_open: true
field_issue_publication_date: true
field_issue_volume: true
field_part_of: true

282
modules/custom/journal_types/config/install/core.entity_view_display.node.issue.teaser.yml

@ -0,0 +1,282 @@
langcode: en
status: true
dependencies:
config:
- core.entity_view_mode.node.teaser
- field.field.node.issue.body
- field.field.node.issue.field_issue_cover
- field.field.node.issue.field_issue_number
- field.field.node.issue.field_issue_open
- field.field.node.issue.field_issue_publication_date
- field.field.node.issue.field_issue_volume
- field.field.node.issue.field_part_of
- image.style.medium
- node.type.issue
module:
- field_group
- image
- panelizer
- text
- user
third_party_settings:
panelizer:
enable: true
custom: false
allow: false
default: issue_list_item
displays:
default:
blocks:
d7ad4c2f-7f87-4851-9b89-4f919ce6b582:
id: 'entity_field:node:uid'
label: 'Authored by'
provider: ctools_block
label_display: '0'
formatter:
label: hidden
type: author
settings: { }
third_party_settings: { }
weight: 0
region: content
context_mapping:
entity: '@panelizer.entity_context:entity'
region: content
weight: 0
uuid: d7ad4c2f-7f87-4851-9b89-4f919ce6b582
98f08e63-4db5-4a0e-97a8-bdad3d0d2d97:
id: 'entity_field:node:created'
label: 'Authored on'
provider: ctools_block
label_display: '0'
formatter:
label: hidden
type: timestamp
settings:
date_format: medium
custom_date_format: ''
timezone: ''
third_party_settings: { }
weight: 0
region: content
context_mapping:
entity: '@panelizer.entity_context:entity'
region: content
weight: 0
uuid: 98f08e63-4db5-4a0e-97a8-bdad3d0d2d97
55ff05ac-f61f-42d4-bebf-20be143d3cb7:
id: 'entity_field:node:body'
label: Description
provider: ctools_block
label_display: '0'
formatter:
label: above
type: text_default
settings: { }
third_party_settings: { }
weight: 0
region: content
context_mapping:
entity: '@panelizer.entity_context:entity'
region: content
weight: 2
uuid: 55ff05ac-f61f-42d4-bebf-20be143d3cb7
3ad92b3e-cfcd-4de0-862f-d349e1ead1cb:
id: 'entity_field:node:field_issue_cover'
label: Cover
provider: ctools_block
label_display: '0'
formatter:
label: hidden
type: image
settings:
image_style: medium
image_link: ''
third_party_settings: { }
weight: 0
region: content
context_mapping:
entity: '@panelizer.entity_context:entity'
region: content
weight: 0
uuid: 3ad92b3e-cfcd-4de0-862f-d349e1ead1cb
b67b0411-3d2f-4a0a-914c-4ed20d332107:
id: 'entity_field:node:field_issue_number'
label: Number
provider: ctools_block
label_display: '0'
formatter:
label: above
type: number_integer
settings:
thousand_separator: ''
prefix_suffix: true
third_party_settings: { }
weight: 0
region: content
context_mapping:
entity: '@panelizer.entity_context:entity'
region: content
weight: 5
uuid: b67b0411-3d2f-4a0a-914c-4ed20d332107
bdc36165-cdb9-42d8-a8a1-a99d91ef62d3:
id: 'entity_field:node:field_issue_volume'
label: Volume
provider: ctools_block
label_display: '0'
formatter:
label: above
type: string
settings:
link_to_entity: false
third_party_settings: { }
weight: 0
region: content
context_mapping:
entity: '@panelizer.entity_context:entity'
region: content
weight: 4
uuid: bdc36165-cdb9-42d8-a8a1-a99d91ef62d3
id: panels_variant
label: Default
uuid: b5d8ea4b-fe2b-425b-97c1-94c9bccacf81
weight: 0
layout: layout_onecol
layout_settings: { }
page_title: '[node:title]'
storage_type: ''
storage_id: ''
builder: ipe
pattern: panelizer
issue_list_item:
blocks:
d2bf6150-ffaf-4c75-a276-f6010e257008:
id: 'entity_field:node:field_issue_cover'
label: Cover
provider: ctools_block
label_display: '0'
formatter:
label: hidden
type: image
settings:
image_style: medium
image_link: ''
third_party_settings: { }
weight: 0
region: first_above
weight: 0
uuid: d2bf6150-ffaf-4c75-a276-f6010e257008
context_mapping:
entity: '@panelizer.entity_context:entity'
33c302e4-b3df-4bae-b8e2-d475272a68f7:
id: 'entity_field:node:title'
label: Title
provider: ctools_block
label_display: '0'
formatter:
label: hidden
type: string
settings:
link_to_entity: true
third_party_settings: { }
weight: 0
region: second_above
weight: -2
uuid: 33c302e4-b3df-4bae-b8e2-d475272a68f7
context_mapping:
entity: '@panelizer.entity_context:entity'
9ce3a48e-94ee-44b7-a3f3-6e3cd43738ff:
id: 'entity_field:node:field_issue_publication_date'
label: 'Publication Date'
provider: ctools_block
label_display: '0'
formatter:
label: above
type: datetime_default
settings:
timezone_override: ''
format_type: html_date
third_party_settings: { }
weight: 0
region: first_above
weight: 0
uuid: 9ce3a48e-94ee-44b7-a3f3-6e3cd43738ff
context_mapping:
entity: '@panelizer.entity_context:entity'
4d730f1d-0daf-4ec9-9af8-b2abcbd048a6:
id: 'entity_field:node:title'
label: Title
provider: ctools_block
label_display: '0'
formatter:
label: hidden
type: citation_field_formatter
settings:
style: modern_language_association_8th_edition
omit_title: 1
third_party_settings: { }
weight: 0
region: second_above
weight: 0
uuid: 4d730f1d-0daf-4ec9-9af8-b2abcbd048a6
context_mapping:
entity: '@panelizer.entity_context:entity'
id: panels_variant
uuid: f2088078-2166-403a-8502-4837cd0919e4
label: 'Issue list item'
weight: 0
layout: layout_twocol_bricks
layout_settings: { }
page_title: ''
storage_type: panelizer_default
storage_id: 'node:issue:teaser:issue_list_item'
pattern: panelizer
builder: standard
static_context: { }
field_group:
group_identification:
children:
- field_issue_number
- field_issue_volume
parent_name: ''
weight: 1
format_type: fieldset
format_settings:
id: journal-issue-identification-fieldset
classes: ''
description: ''
label: Identification
_core:
default_config_hash: hsH_y_oOJOIDTEWOlzop58-s3O-0rVA0j30HccYPiis
id: node.issue.teaser
targetEntityType: node
bundle: issue
mode: teaser
content:
body:
type: text_default
weight: 2
region: content
label: above
settings: { }
third_party_settings: { }
field_issue_cover:
type: image
weight: 0
region: content
label: hidden
settings:
image_style: medium
image_link: ''
third_party_settings: { }
links:
weight: 3
region: content
settings: { }
third_party_settings: { }
hidden:
field_issue_number: true
field_issue_open: true
field_issue_publication_date: true
field_issue_volume: true
field_part_of: true

575
modules/custom/journal_types/config/install/core.entity_view_display.node.journal.default.yml

@ -0,0 +1,575 @@
langcode: en
status: true
dependencies:
config:
- field.field.node.journal.field_journal_abbrev
- field.field.node.journal.field_journal_about_this
- field.field.node.journal.field_journal_author_guidelines
- field.field.node.journal.field_journal_description
- field.field.node.journal.field_journal_eissn
- field.field.node.journal.field_journal_for_authors
- field.field.node.journal.field_journal_for_librarins
- field.field.node.journal.field_journal_for_readers
- field.field.node.journal.field_journal_initials
- field.field.node.journal.field_journal_issn_print
- field.field.node.journal.field_journal_logo
- field.field.node.journal.field_journal_mailing_address
- field.field.node.journal.field_journal_main_image
- field.field.node.journal.field_journal_principal_contact
- field.field.node.journal.field_journal_publisher
- field.field.node.journal.field_journal_technical_support_
- node.type.journal
module:
- address
- field_group
- image
- panelizer
- text
- user
third_party_settings:
panelizer:
enable: false
custom: false
allow: false
default: journal_default_display
displays:
default:
blocks:
0dff327d-c815-4cb4-aab7-a32642769b8c:
id: 'entity_field:node:uid'
label: 'Authored by'
provider: ctools_block
label_display: '0'
formatter:
label: hidden
type: author
settings: { }
third_party_settings: { }
weight: 0
region: content
context_mapping:
entity: '@panelizer.entity_context:entity'
region: content
weight: 0
uuid: 0dff327d-c815-4cb4-aab7-a32642769b8c
dba7a1c5-8646-4273-893e-73875bdea335:
id: 'entity_field:node:created'
label: 'Authored on'
provider: ctools_block
label_display: '0'
formatter:
label: hidden
type: timestamp
settings:
date_format: medium
custom_date_format: ''
timezone: ''
third_party_settings: { }
weight: 0
region: content
context_mapping:
entity: '@panelizer.entity_context:entity'
region: content
weight: 0
uuid: dba7a1c5-8646-4273-893e-73875bdea335
abff0d77-b79e-474d-8531-9d278237848c:
id: 'entity_field:node:field_journal_abbrev'
label: 'Journal Abbreviated Name'
provider: ctools_block
label_display: '0'
formatter:
label: above
type: string
settings:
link_to_entity: false
third_party_settings: { }
weight: 0
region: content
context_mapping:
entity: '@panelizer.entity_context:entity'
region: content
weight: 24
uuid: abff0d77-b79e-474d-8531-9d278237848c
680abf92-9ddb-41b9-9272-7ac9915b0661:
id: 'entity_field:node:field_journal_about_this'
label: 'About this Journal'
provider: ctools_block
label_display: '0'
formatter:
label: above
type: text_default
settings: { }
third_party_settings: { }
weight: 0
region: content
context_mapping:
entity: '@panelizer.entity_context:entity'
region: content
weight: 25
uuid: 680abf92-9ddb-41b9-9272-7ac9915b0661
30c3739f-a2d9-46b5-a940-cff7df995dac:
id: 'entity_field:node:field_journal_author_guidelines'
label: 'Author Guidelines'
provider: ctools_block
label_display: '0'
formatter:
label: above
type: text_default
settings: { }
third_party_settings: { }
weight: 0
region: content
context_mapping:
entity: '@panelizer.entity_context:entity'
region: content
weight: 2
uuid: 30c3739f-a2d9-46b5-a940-cff7df995dac
54a774c3-0cd1-43d4-b9f8-abbf984ffcbb:
id: 'entity_field:node:field_journal_eissn'
label: 'ISSN (Electronic)'
provider: ctools_block
label_display: '0'
formatter:
label: above
type: string
settings:
link_to_entity: false
third_party_settings: { }
weight: 0
region: content
context_mapping:
entity: '@panelizer.entity_context:entity'
region: content
weight: 27
uuid: 54a774c3-0cd1-43d4-b9f8-abbf984ffcbb
232cdc13-05eb-4191-bd30-031314aa7351:
id: 'entity_field:node:field_journal_for_authors'
label: 'Information For Authors'
provider: ctools_block
label_display: '0'
formatter:
label: above
type: text_default
settings: { }
third_party_settings: { }
weight: 0
region: content
context_mapping:
entity: '@panelizer.entity_context:entity'
region: content
weight: 1
uuid: 232cdc13-05eb-4191-bd30-031314aa7351
8e098c42-8295-412e-9473-d1fae14cb475:
id: 'entity_field:node:field_journal_for_librarins'
label: 'Information For Librarians'
provider: ctools_block
label_display: '0'
formatter:
label: above
type: text_default
settings: { }
third_party_settings: { }
weight: 0
region: content
context_mapping:
entity: '@panelizer.entity_context:entity'
region: content
weight: 30
uuid: 8e098c42-8295-412e-9473-d1fae14cb475
268d64a4-9305-46b0-ac9b-fd7999c96407:
id: 'entity_field:node:field_journal_for_readers'
label: 'Information For Readers'
provider: ctools_block
label_display: '0'
formatter:
label: above
type: text_default
settings: { }
third_party_settings: { }
weight: 0
region: content
context_mapping:
entity: '@panelizer.entity_context:entity'
region: content
weight: 12
uuid: 268d64a4-9305-46b0-ac9b-fd7999c96407
abffe9c9-9eba-445e-a396-37a48fdfc5ae:
id: 'entity_field:node:field_journal_issn_print'
label: 'ISSN (Print)'
provider: ctools_block
label_display: '0'
formatter:
label: above
type: string
settings:
link_to_entity: false
third_party_settings: { }
weight: 0
region: content
context_mapping:
entity: '@panelizer.entity_context:entity'
region: content
weight: 28
uuid: abffe9c9-9eba-445e-a396-37a48fdfc5ae
ecbbf9fc-d969-45a4-ad10-70adebf961be:
id: 'entity_field:node:field_journal_logo'
label: 'Journal Logo'
provider: ctools_block
label_display: '0'
formatter:
label: above
type: image
settings:
image_style: thumbnail
image_link: ''
third_party_settings: { }
weight: 0
region: content
context_mapping:
entity: '@panelizer.entity_context:entity'
region: content
weight: 0
uuid: ecbbf9fc-d969-45a4-ad10-70adebf961be
8dcb5a67-383e-489a-948f-0c78580be1d3:
id: 'entity_field:node:field_journal_mailing_address'
label: 'Journal Mailing Address'
provider: ctools_block
label_display: '0'
formatter:
label: above
type: address_default
settings: { }
third_party_settings: { }
weight: 0
region: content
context_mapping:
entity: '@panelizer.entity_context:entity'
region: content
weight: 34
uuid: 8dcb5a67-383e-489a-948f-0c78580be1d3
d27c0bf9-35f6-435c-8d4c-faa5791a0429:
id: 'entity_field:node:field_journal_main_image'
label: 'Journal Main Image'
provider: ctools_block
label_display: '0'
formatter:
label: above
type: image
settings:
image_style: ''
image_link: ''
third_party_settings: { }
weight: 0
region: content
context_mapping:
entity: '@panelizer.entity_context:entity'
region: content
weight: 29
uuid: d27c0bf9-35f6-435c-8d4c-faa5791a0429
8fb2479e-5758-4954-8575-090c7c805bfe:
id: 'entity_field:node:field_journal_principal_contact'
label: 'Journal Principal Contact'
provider: ctools_block
label_display: '0'
formatter:
label: above
type: entity_reference_label
settings:
link: true
third_party_settings: { }
weight: 0
region: content
context_mapping:
entity: '@panelizer.entity_context:entity'
region: content
weight: 35
uuid: 8fb2479e-5758-4954-8575-090c7c805bfe
4cc0139b-20e9-46e4-beff-105fcf655dc4:
id: 'entity_field:node:field_journal_publisher'
label: 'Journal Publisher'
provider: ctools_block
label_display: '0'
formatter:
label: above
type: string
settings:
link_to_entity: false
third_party_settings: { }
weight: 0
region: content
context_mapping:
entity: '@panelizer.entity_context:entity'
region: content
weight: 26
uuid: 4cc0139b-20e9-46e4-beff-105fcf655dc4
207ae181-b5c8-412f-8892-5a717d873b03:
id: 'entity_field:node:field_journal_technical_support_'
label: 'Journal Technical Support Contact'
provider: ctools_block
label_display: '0'
formatter:
label: above
type: entity_reference_label
settings:
link: true
third_party_settings: { }
weight: 0
region: content
context_mapping:
entity: '@panelizer.entity_context:entity'
region: content
weight: 36
uuid: 207ae181-b5c8-412f-8892-5a717d873b03
id: panels_variant
label: Default
uuid: 099f5961-d3a6-4c4a-9de4-7e9983ec2def
weight: 0
layout: layout_onecol
layout_settings: { }
page_title: '[node:title]'
storage_type: ''
storage_id: ''
builder: ipe
pattern: panelizer
journal_default_display:
blocks:
02602901-b5da-4f68-8aad-786421e86014:
id: 'entity_view:node'
label: 'Entity view (Content)'
provider: ctools
label_display: visible
view_mode: teaser
region: top
weight: 0
uuid: 02602901-b5da-4f68-8aad-786421e86014
context_mapping:
entity: '@panelizer.entity_context:entity'
97f2d8df-c2ef-4d5d-8133-16a703c8dbf1:
id: 'views_block:journal_issue_list-journal_issue_list'
label: ''
provider: views
label_display: visible
views_label: ''
items_per_page: none
region: bottom
weight: 0
uuid: 97f2d8df-c2ef-4d5d-8133-16a703c8dbf1
context_mapping: { }
id: panels_variant
uuid: 7b133c42-b593-4ed7-b467-86aef168c418
label: 'Journal Default Display'
weight: 0
layout: layout_twocol
layout_settings: { }
page_title: ''
storage_type: panelizer_default
storage_id: 'node:journal:default:journal_default_display'
pattern: panelizer
builder: standard
static_context: { }
field_group:
group_journal_display:
children:
- field_journal_logo
- group_journal_home
- group_journal_for_readers
- group_journal_for_authors
- group_journal_for_librarians
- group_contact
parent_name: ''
weight: 1
format_type: tabs
format_settings:
label: Information
direction: vertical
id: journal-information-tabs
classes: ''
label: Information
group_contact:
children:
- field_journal_mailing_address
- field_journal_principal_contact
- field_journal_technical_support_
parent_name: group_journal_display
weight: 5
format_type: tab
format_settings:
id: journal-display-contact-tab
classes: ''
formatter: closed
description: 'Contact info for this journal'
label: Contact
group_journal_home:
children:
- field_journal_abbrev
- field_journal_about_this
- field_journal_publisher
- field_journal_eissn
- field_journal_issn_print
- field_journal_main_image
parent_name: group_journal_display
weight: 1
format_type: tab
format_settings:
id: journal-home-tab
classes: ''
formatter: closed
description: ''
label: Home
group_journal_for_readers:
children:
- field_journal_for_readers
parent_name: group_journal_display
weight: 2
format_type: tab
format_settings:
id: journal-for-readers-tab
classes: ''
formatter: closed
description: ''
label: 'For Readers'
group_journal_for_authors:
children:
- field_journal_for_authors
- field_journal_author_guidelines
parent_name: group_journal_display
weight: 3
format_type: tab
format_settings:
id: journal-for-authors-tab
classes: ''
formatter: closed
description: ''
label: 'For Authors'
group_journal_for_librarians:
children:
- field_journal_for_librarins
parent_name: group_journal_display
weight: 4
format_type: tab
format_settings:
id: journal-for-librarians-tab
classes: ''
formatter: closed
description: ''
label: 'For Librarians'
_core:
default_config_hash: arYZmgJskfdWf-RLCJYmuSgq5NWt1pcgtcSzweVV0DU
id: node.journal.default
targetEntityType: node
bundle: journal
mode: default
content:
field_journal_abbrev:
weight: 24
label: above
settings:
link_to_entity: false
third_party_settings: { }
type: string
region: content
field_journal_about_this:
weight: 25
label: above
settings: { }
third_party_settings: { }
type: text_default
region: content
field_journal_author_guidelines:
weight: 2
label: above
settings: { }
third_party_settings: { }
type: text_default
region: content
field_journal_eissn:
weight: 27
label: above
settings:
link_to_entity: false
third_party_settings: { }
type: string
region: content
field_journal_for_authors:
weight: 1
label: above
settings: { }
third_party_settings: { }
type: text_default
region: content
field_journal_for_librarins:
weight: 30
label: above
settings: { }
third_party_settings: { }
type: text_default
region: content
field_journal_for_readers:
weight: 12
label: above
settings: { }
third_party_settings: { }
type: text_default
region: content
field_journal_issn_print:
weight: 28
label: above
settings:
link_to_entity: false
third_party_settings: { }
type: string
region: content
field_journal_logo:
weight: 0
label: above
settings:
image_style: thumbnail
image_link: ''
third_party_settings: { }
type: image
region: content
field_journal_mailing_address:
weight: 34
label: above
settings: { }
third_party_settings: { }
type: address_default
region: content
field_journal_main_image:
weight: 29
label: above
settings:
image_style: ''
image_link: ''
third_party_settings: { }
type: image
region: content
field_journal_principal_contact:
weight: 35
label: above
settings:
link: true
third_party_settings: { }
type: entity_reference_label
region: content
field_journal_publisher:
weight: 26
label: above
settings:
link_to_entity: false
third_party_settings: { }
type: string
region: content
field_journal_technical_support_:
weight: 36
label: above
settings:
link: true
third_party_settings: { }
type: entity_reference_label
region: content
hidden:
field_journal_description: true
field_journal_initials: true
links: true
scheduled_publication: true

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save