Add rake tasks #306

Merged
wolcen merged 60 commits from add-rake-tasks into master 2019-02-20 21:07:08 +00:00
45 changed files with 1195 additions and 112 deletions
Showing only changes of commit 0c5ca7628a - Show all commits

View file

@ -0,0 +1,26 @@
## Summary
(Summarize the bug encountered concisely)
## Steps to reproduce
(How one can reproduce the issue - include specific links when possible)
## What is the current bug behavior?
(What actually happens)
## What is the expected correct behavior?
(What you should see instead)
## Relevant screenshots
/label ~Bug

View file

@ -0,0 +1,10 @@
## Background
## Work Required
* [ ]
/label ~Task

View file

@ -0,0 +1,10 @@
## Acceptance Criteria
Given that I am [role],
when I [action],
then I [result].
## Work Required
* [ ]
/label ~"User Story"

45
Makefile Normal file
View file

@ -0,0 +1,45 @@
# Identify tasks which do not have output files:
.PHONY: help synclivetotest syncdb syncfiles
GREEN := $(shell tput -Txterm setaf 2)
WHITE := $(shell tput -Txterm setaf 7)
YELLOW := $(shell tput -Txterm setaf 3)
RESET := $(shell tput -Txterm sgr0)
# Perl to convert target docs (following ##@).
# Example:
# mytarget: ##@group description
# Group items under @group in output,
# And show target<tab>description
HELPME = \
%help; \
while(<>) { push @{$$help{$$2 // 'options'}}, [$$1, $$3] if /^([a-zA-Z\-]+)\s*:.*\#\#(?:@([a-zA-Z\-]+))?\s(.*)$$/ }; \
for (sort keys %help) { \
print "${WHITE}$$_:${RESET}\n"; \
for (@{$$help{$$_}}) { \
$$sep = " " x (20 - length $$_->[0]); \
print " ${YELLOW}$$_->[0]${RESET}$$sep${GREEN}$$_->[1]${RESET}\n"; \
}; \
print "\n"; }
# Should always be the first target (as this will run with just `make`):
help: ##@Targets Show this text (or just run make)
@perl -e '$(HELPME)' Makefile
# Configure sync'
ALIAS_LIVE := @live.live
ALIAS_TEST := @test.dev
SRV := root@elizabeth.mayfirst.org
FILES_LIVE := /home/agaric_live/files/
FILES_TEST := /home/agaric_test/files
ECHO := $(if $(TEST),@echo)
synclivetotest: syncfiles syncdb ##@Targets Sync live environment to test
syncdb:
$(ECHO) drush -y $(ALIAS_TEST) sql-drop
$(ECHO) drush -y sql-sync $(ALIAS_LIVE) $(ALIAS_TEST)
syncfiles:
$(ECHO) ssh -A $(SRV) rsync -rz --stats --exclude styles \
--exclude css --exclude js $(FILES_LIVE) \
--delete ${FILES_TEST}

View file

@ -39,7 +39,8 @@ git pull
git submodule update --recursive --remote
vagrant ssh
composer install
drush -y sql-dump > /tmp/paranoia.sql && drush sql-drop && drush -y sql-sync @live @self && drush -y updb
drush -y sql-dump > /tmp/paranoia.sql && drush -y sql-drop && drush -y sql-sync @live @self && drush -y updb
drush -y rsync @live:%files @self:%files
drush cim -y
```
@ -55,6 +56,12 @@ Set up [drutopia_host](https://gitlab.com/drutopia-platform/drutopia_host) and [
Then use [ahoy](https://github.com/ahoy-cli/ahoy/), from within the hosting_private directory.
Ensure all three related repositories are up-to-date with:
```
ahoy git-pull-all
```
If Agaric's Drutopia PaaS base has changed (the composer.lock in this directory), produce and push a new build:
```
@ -64,14 +71,26 @@ ahoy deploy-build agaric
To deploy everything else (config, templates, styles):
```
ahoy git-pull-all
ahoy deploy-site agaric_live
```
Then record the deployment by:
navigating to `/drutopia_host/build/artifacts`
Then record the deployment. This applies to both deploy-site and deploy-build record keeping:
Navigate to `/drutopia_host/build/artifacts`
Add all new files generated with `git add . `
Commit the files with a message on what you deployed with 'git commit -m '
Push the changes to the repo with `git push`
If you need to overwrite live configuration (only after confirming you've committed any parts you want to keep) you can use ahoy for that too with `deploy-site-force`.
## Code Hightlight.
The [prism.js](https://prismjs.com/) library was added in the site and can be used like this:
```
<pre>
<code class="language-css">
p { color: red }
</code>
</pre>
```
The suffix of the class needs to be changed depending of the language that is going to be highlighted eg: `language-php`, `language-js` etc.

View file

@ -21,6 +21,7 @@
"drupal/core": "^8.6.2",
"drupal/customerror": "1.x-dev",
"drupal/diff": "^1.0@RC",
"drupal/dropdown_language": "^2.2",
"drupal/drutopia_core": "1.x-dev",
"drupal/google_analytics": "^2.3",
"drupal/honeypot": "^1.29",
@ -31,6 +32,8 @@
"drupal/migrate_plus": "^4.0",
"drupal/migrate_tools": "^4.0",
"drupal/minimalhtml": "^1.0",
"drupal/paragraphs_features": "^1.4",
"drupal/preview_link": "^1.1",
"drupal/redirect": "^1.2",
"drupal/regionincontent": "1.x-dev",
"drupal/search404": "^1.0",
@ -98,14 +101,11 @@
},
"drupal/honeypot": {
"Accessibility Issue Triggered": "https://www.drupal.org/files/issues/2018-08-05/honeypot-aria-hidden-on-text-field-2944843-12.patch"
},
"drupal/comment_notify": {
"Invalid placeholder (!types) in string": "https://www.drupal.org/files/issues/2019-01-16/2938134-4.patch",
"The unsubscribe option is not working": "https://www.drupal.org/files/issues/2019-01-17/3026687-2.patch"
}
}
},
"config": {
"sort-packages": true
"sort-packages": true,
"process-timeout": 600
}
}

225
composer.lock generated
View file

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "788dcf2c1028c477fe97c294b439dbba",
"content-hash": "577780153fce8a33a72ad2165283ce92",
"packages": [
{
"name": "asm89/stack-cors",
@ -2346,7 +2346,7 @@
},
"drupal": {
"version": "8.x-1.25",
"datestamp": "1542915180",
"datestamp": "1542915384",
"security-coverage": {
"status": "covered",
"message": "Covered by Drupal's security advisory policy"
@ -2417,7 +2417,7 @@
},
"drupal": {
"version": "8.x-1.25",
"datestamp": "1542915180",
"datestamp": "1542915384",
"security-coverage": {
"status": "covered",
"message": "Covered by Drupal's security advisory policy"
@ -2953,7 +2953,7 @@
"source": {
"type": "git",
"url": "https://git.drupal.org/project/comment_notify",
"reference": "01751b118ce3765fe3af07a36ca8c6f6687c6534"
"reference": "96ecd28cd0f674291e93102661149520e7b45259"
},
"require": {
"drupal/core": "*",
@ -2965,16 +2965,12 @@
"dev-1.x": "1.x-dev"
},
"drupal": {
"version": "8.x-1.0-beta2+7-dev",
"datestamp": "1544815219",
"version": "8.x-1.0-beta3+4-dev",
"datestamp": "1548372780",
"security-coverage": {
"status": "not-covered",
"message": "Dev releases are not covered by Drupal security advisories."
}
},
"patches_applied": {
"Invalid placeholder (!types) in string": "https://www.drupal.org/files/issues/2019-01-16/2938134-4.patch",
"The unsubscribe option is not working": "https://www.drupal.org/files/issues/2019-01-17/3026687-2.patch"
}
},
"notification-url": "https://packages.drupal.org/8/downloads",
@ -2982,6 +2978,10 @@
"GPL-2.0-or-later"
],
"authors": [
{
"name": "gnuget",
"homepage": "https://www.drupal.org/user/992990"
},
{
"name": "greggles",
"homepage": "https://www.drupal.org/user/36762"
@ -2992,7 +2992,7 @@
"support": {
"source": "http://cgit.drupalcode.org/comment_notify"
},
"time": "2018-12-28T18:11:39+00:00"
"time": "2019-01-25T14:32:11+00:00"
},
{
"name": "drupal/components",
@ -4076,7 +4076,7 @@
},
"drupal": {
"version": "8.x-1.x-dev",
"datestamp": "1542572880",
"datestamp": "1542578580",
"security-coverage": {
"status": "not-covered",
"message": "Dev releases are not covered by Drupal security advisories."
@ -4277,6 +4277,53 @@
"issues": "https://www.drupal.org/project/issues/diff"
}
},
{
"name": "drupal/dropdown_language",
"version": "2.2.0",
"source": {
"type": "git",
"url": "https://git.drupal.org/project/dropdown_language",
"reference": "8.x-2.2"
},
"dist": {
"type": "zip",
"url": "https://ftp.drupal.org/files/projects/dropdown_language-8.x-2.2.zip",
"reference": "8.x-2.2",
"shasum": "78e9c73fe7414114eaf4884e23eac671c74e302f"
},
"require": {
"drupal/core": "*"
},
"type": "drupal-module",
"extra": {
"branch-alias": {
"dev-2.x": "2.x-dev"
},
"drupal": {
"version": "8.x-2.2",
"datestamp": "1540134181",
"security-coverage": {
"status": "covered",
"message": "Covered by Drupal's security advisory policy"
}
}
},
"notification-url": "https://packages.drupal.org/8/downloads",
"license": [
"GPL-2.0-or-later"
],
"authors": [
{
"name": "SKAUGHT",
"homepage": "https://www.drupal.org/user/297907"
}
],
"description": "Provides a block with a Dropdown Language Switcher",
"homepage": "https://www.drupal.org/project/dropdown_language",
"support": {
"source": "http://cgit.drupalcode.org/dropdown_language"
}
},
{
"name": "drupal/drutopia_action",
"version": "1.0.0-beta1",
@ -6384,6 +6431,10 @@
"name": "jmiccolis",
"homepage": "https://www.drupal.org/user/31731"
},
{
"name": "joseph.olstad",
"homepage": "https://www.drupal.org/user/1321830"
},
{
"name": "mpotter",
"homepage": "https://www.drupal.org/user/616192"
@ -6541,10 +6592,6 @@
"name": "golddragon007",
"homepage": "https://www.drupal.org/user/2723471"
},
{
"name": "james.williams",
"homepage": "https://www.drupal.org/user/592268"
},
{
"name": "lbesenyei",
"homepage": "https://www.drupal.org/user/2626013"
@ -6601,6 +6648,10 @@
{
"name": "kristiaanvandeneynde",
"homepage": "https://www.drupal.org/user/1345130"
},
{
"name": "ronaldtebrake",
"homepage": "https://www.drupal.org/user/2314038"
}
],
"description": "Enables Group functionality for the Node module",
@ -6704,6 +6755,10 @@
{
"name": "kristiaanvandeneynde",
"homepage": "https://www.drupal.org/user/1345130"
},
{
"name": "ronaldtebrake",
"homepage": "https://www.drupal.org/user/2314038"
}
],
"description": "This module allows you to group users, content and other entities",
@ -7467,6 +7522,71 @@
"source": "http://cgit.drupalcode.org/paragraphs"
}
},
{
"name": "drupal/paragraphs_features",
"version": "1.4.0",
"source": {
"type": "git",
"url": "https://git.drupal.org/project/paragraphs_features",
"reference": "8.x-1.4"
},
"dist": {
"type": "zip",
"url": "https://ftp.drupal.org/files/projects/paragraphs_features-8.x-1.4.zip",
"reference": "8.x-1.4",
"shasum": "1c875c35c3ef75d462385cbc451d9a2f768b016f"
},
"require": {
"drupal/core": "^8.5",
"drupal/paragraphs": "^1.3"
},
"type": "drupal-module",
"extra": {
"branch-alias": {
"dev-1.x": "1.x-dev"
},
"drupal": {
"version": "8.x-1.4",
"datestamp": "1536759480",
"security-coverage": {
"status": "covered",
"message": "Covered by Drupal's security advisory policy"
}
}
},
"notification-url": "https://packages.drupal.org/8/downloads",
"license": [
"GPL-2.0-or-later"
],
"authors": [
{
"name": "Mladen Todorovic",
"homepage": "https://www.drupal.org/user/2103716",
"email": "mladen.todorovic@burda.com"
},
{
"name": "daniel.bosen",
"homepage": "https://www.drupal.org/user/404865"
},
{
"name": "mtodor",
"homepage": "https://www.drupal.org/user/3453049"
},
{
"name": "thunderbot",
"homepage": "https://www.drupal.org/user/3511180"
},
{
"name": "volkerk",
"homepage": "https://www.drupal.org/user/57527"
}
],
"description": "Paragraphs features for extending paragraphs widget functionality.",
"homepage": "https://www.drupal.org/project/paragraphs_features",
"support": {
"source": "http://cgit.drupalcode.org/paragraphs_features"
}
},
{
"name": "drupal/paranoia",
"version": "1.0.0-alpha1",
@ -7583,6 +7703,61 @@
"source": "http://cgit.drupalcode.org/pathauto"
}
},
{
"name": "drupal/preview_link",
"version": "1.1.0",
"source": {
"type": "git",
"url": "https://git.drupal.org/project/preview_link",
"reference": "8.x-1.1"
},
"dist": {
"type": "zip",
"url": "https://ftp.drupal.org/files/projects/preview_link-8.x-1.1.zip",
"reference": "8.x-1.1",
"shasum": "30e1fc8566a567ab82503256be7505c1c0cc17bc"
},
"require": {
"drupal/core": "~8.0"
},
"require-dev": {
"drupal/entity_reference_revisions": "*",
"drupal/paragraphs": "*"
},
"type": "drupal-module",
"extra": {
"branch-alias": {
"dev-1.x": "1.x-dev"
},
"drupal": {
"version": "8.x-1.1",
"datestamp": "1548270823",
"security-coverage": {
"status": "covered",
"message": "Covered by Drupal's security advisory policy"
}
}
},
"notification-url": "https://packages.drupal.org/8/downloads",
"license": [
"GPL-2.0-or-later"
],
"authors": [
{
"name": "benjy",
"homepage": "https://www.drupal.org/user/1852732"
},
{
"name": "larowlan",
"homepage": "https://www.drupal.org/user/395439"
}
],
"description": "Allows anyone to preview unpublished content with a unique link.",
"homepage": "https://www.drupal.org/project/preview_link",
"support": {
"source": "http://cgit.drupalcode.org/preview_link"
}
},
{
"name": "drupal/redirect",
"version": "1.3.0",
@ -9758,7 +9933,7 @@
{
"name": "Luís Otávio Cobucci Oblonczyk",
"email": "lcobucci@gmail.com",
"role": "developer"
"role": "Developer"
}
],
"description": "A simple library to work with JSON Web Token and JSON Web Signature",
@ -11520,7 +11695,7 @@
},
{
"name": "Gert de Pagter",
"email": "BackEndTea@gmail.com"
"email": "backendtea@gmail.com"
}
],
"description": "Symfony polyfill for ctype functions",
@ -12758,16 +12933,16 @@
},
{
"name": "zendframework/zendxml",
"version": "1.1.0",
"version": "1.2.0",
"source": {
"type": "git",
"url": "https://github.com/zendframework/ZendXml.git",
"reference": "267db6a2c431a08a8f8ff0f1f4c302a5ba6f5b99"
"reference": "eceab37a591c9e140772a1470338258857339e00"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/zendframework/ZendXml/zipball/267db6a2c431a08a8f8ff0f1f4c302a5ba6f5b99",
"reference": "267db6a2c431a08a8f8ff0f1f4c302a5ba6f5b99",
"url": "https://api.github.com/repos/zendframework/ZendXml/zipball/eceab37a591c9e140772a1470338258857339e00",
"reference": "eceab37a591c9e140772a1470338258857339e00",
"shasum": ""
},
"require": {
@ -12780,8 +12955,8 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.1.x-dev",
"dev-develop": "1.2.x-dev"
"dev-master": "1.2.x-dev",
"dev-develop": "1.3.x-dev"
}
},
"autoload": {
@ -12800,7 +12975,7 @@
"xml",
"zf"
],
"time": "2018-04-30T15:11:04+00:00"
"time": "2019-01-22T19:42:14+00:00"
}
],
"packages-dev": [],

View file

@ -0,0 +1,27 @@
uuid: cddd6272-7a22-4110-862c-338686afc1c1
langcode: en
status: true
dependencies:
module:
- block_visibility_groups
- dropdown_language
theme:
- agarica
id: languageswitcher
theme: agarica
region: footer
weight: 0
provider: null
plugin: 'dropdown_language:language_interface'
settings:
id: 'dropdown_language:language_interface'
label: 'Language:'
provider: dropdown_language
label_display: visible
labels: null
visibility:
condition_group:
id: condition_group
negate: false
block_visibility_group: ''
context_mapping: { }

View file

@ -0,0 +1,19 @@
uuid: 1a7bd96c-ab4a-4a86-a541-b9610491c292
langcode: en
status: true
dependencies:
module:
- dropdown_language
id: config_sync.module.dropdown_language
snapshotSet: config_sync
extensionType: module
extensionName: dropdown_language
items:
-
collection: ''
name: dropdown_language.setting
data:
wrapper: true
display_language_id: 0
filter_untranslated: 0
always_show_block: 0

View file

@ -1,4 +1,18 @@
uuid: 809ea8fa-065b-4a9f-a552-e983bb7bc08f
langcode: en
status: true
dependencies:
module:
- drutopia_creative_license
id: config_sync.module.drutopia_creative_license
snapshotSet: config_sync
extensionType: module
extensionName: drutopia_creative_license
items:
-
collection: ''
name: config_snapshot.snapshot.config_sync.module.drutopia_creative_license
data:
langcode: en
status: true
dependencies:
@ -80,3 +94,208 @@ items:
description: ''
hierarchy: 0
weight: 0
-
collection: ''
name: core.base_field_override.taxonomy_term.license.changed
data:
langcode: en
status: true
dependencies:
config:
- taxonomy.vocabulary.license
id: taxonomy_term.license.changed
field_name: changed
entity_type: taxonomy_term
bundle: license
label: Changed
description: 'The time that the term was last edited.'
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings: { }
field_type: changed
-
collection: ''
name: core.base_field_override.taxonomy_term.license.description
data:
langcode: en
status: true
dependencies:
config:
- taxonomy.vocabulary.license
module:
- text
id: taxonomy_term.license.description
field_name: description
entity_type: taxonomy_term
bundle: license
label: Description
description: ''
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings: { }
field_type: text_long
-
collection: ''
name: core.base_field_override.taxonomy_term.license.metatag
data:
langcode: en
status: true
dependencies:
config:
- taxonomy.vocabulary.license
id: taxonomy_term.license.metatag
field_name: metatag
entity_type: taxonomy_term
bundle: license
label: Metatags
description: 'The meta tags for the entity.'
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings: { }
field_type: map
-
collection: ''
name: core.base_field_override.taxonomy_term.license.name
data:
langcode: en
status: true
dependencies:
config:
- taxonomy.vocabulary.license
id: taxonomy_term.license.name
field_name: name
entity_type: taxonomy_term
bundle: license
label: Name
description: ''
required: true
translatable: false
default_value: { }
default_value_callback: ''
settings: { }
field_type: string
-
collection: ''
name: core.base_field_override.taxonomy_term.license.path
data:
langcode: en
status: true
dependencies:
config:
- taxonomy.vocabulary.license
module:
- path
id: taxonomy_term.license.path
field_name: path
entity_type: taxonomy_term
bundle: license
label: 'URL alias'
description: ''
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings: { }
field_type: path
-
collection: ''
name: core.base_field_override.taxonomy_term.license.status
data:
langcode: en
status: true
dependencies:
config:
- taxonomy.vocabulary.license
id: taxonomy_term.license.status
field_name: status
entity_type: taxonomy_term
bundle: license
label: Published
description: ''
required: false
translatable: false
default_value:
-
value: 1
default_value_callback: ''
settings:
on_label: 'On'
off_label: 'Off'
field_type: boolean
-
collection: ''
name: core.entity_view_display.taxonomy_term.license.default
data:
langcode: en
status: true
dependencies:
config:
- taxonomy.vocabulary.license
module:
- ds
- text
third_party_settings:
ds:
layout:
id: layout_onecol
library: layout_discovery/onecol
disable_css: false
entity_classes: all_classes
settings: { }
regions:
content:
- description
id: taxonomy_term.license.default
targetEntityType: taxonomy_term
bundle: license
mode: default
content:
description:
label: hidden
type: text_default
weight: 0
region: content
settings: { }
third_party_settings: { }
hidden: { }
-
collection: ''
name: field.storage.node.field_license
data:
langcode: en
status: true
dependencies:
module:
- node
- taxonomy
id: node.field_license
field_name: field_license
entity_type: node
type: entity_reference
settings:
target_type: taxonomy_term
module: core
locked: false
cardinality: 1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false
-
collection: ''
name: taxonomy.vocabulary.license
data:
langcode: en
status: true
dependencies: { }
name: License
vid: license
description: ''
hierarchy: 0
weight: 0

View file

@ -0,0 +1,16 @@
uuid: 97234a14-9821-446a-9bdd-9f9cacaf4715
langcode: en
status: true
dependencies:
module:
- paragraphs_features
id: config_sync.module.paragraphs_features
snapshotSet: config_sync
extensionType: module
extensionName: paragraphs_features
items:
-
collection: ''
name: paragraphs_features.settings
data:
dropdown_to_button: false

View file

@ -0,0 +1,11 @@
uuid: cc0e34a0-e6c4-4e64-b41c-b6d83736ce26
langcode: en
status: true
dependencies:
module:
- preview_link
id: config_sync.module.preview_link
snapshotSet: config_sync
extensionType: module
extensionName: preview_link
items: { }

View file

@ -0,0 +1,18 @@
uuid: e88d65b8-4aec-4fbf-8548-9e8545efc31b
langcode: en
status: true
dependencies:
module:
- syslog
id: config_sync.module.syslog
snapshotSet: config_sync
extensionType: module
extensionName: syslog
items:
-
collection: ''
name: syslog.settings
data:
identity: drupal
facility: 8
format: '!base_url|!timestamp|!type|!ip|!request_uri|!referer|!uid|!link|!message'

View file

@ -11,7 +11,7 @@ bundle: menu_link_content
label: Changed
description: 'The time that the menu link was last edited.'
required: false
translatable: false
translatable: true
default_value: { }
default_value_callback: ''
settings: { }

View file

@ -11,7 +11,7 @@ bundle: menu_link_content
label: Description
description: 'Shown when hovering over the menu link.'
required: false
translatable: false
translatable: true
default_value: { }
default_value_callback: ''
settings: { }

View file

@ -11,7 +11,7 @@ bundle: menu_link_content
label: Metatags
description: 'The meta tags for the entity.'
required: false
translatable: false
translatable: true
default_value: { }
default_value_callback: ''
settings: { }

View file

@ -11,7 +11,7 @@ bundle: menu_link_content
label: 'Menu link title'
description: 'The text to be used for this link in the menu.'
required: true
translatable: false
translatable: true
default_value: { }
default_value_callback: ''
settings: { }

View file

@ -16,7 +16,7 @@ dependencies:
- node.type.blog
module:
- ds
- paragraphs
- entity_reference_revisions
- user
_core:
default_config_hash: e8yvfhoZmb_vDdkLtsMVv8u8XKzSRihmLtMph3nm6rM
@ -24,26 +24,31 @@ id: node.blog.rss_teaser
targetEntityType: node
bundle: blog
mode: rss_teaser
third_party_settings: { }
content:
field_body_paragraph:
type: paragraph_summary
field_authors:
type: entity_reference_label
weight: 0
region: content
label: hidden
settings: { }
settings:
link: false
third_party_settings:
ds:
ds_limit: ''
links:
field_body_paragraph:
type: entity_reference_revisions_entity_view
weight: 1
region: content
settings: { }
third_party_settings: { }
label: hidden
settings:
view_mode: preview
link: ''
third_party_settings:
ds:
ds_limit: ''
hidden:
body: true
comment: true
field_authors: true
field_image: true
field_meta_tags: true
field_summary: true
@ -51,3 +56,5 @@ hidden:
field_topics: true
indieweb_bridgypublishtwitter: true
indieweb_syndication: true
langcode: true
links: true

View file

@ -40,6 +40,7 @@ module:
dblog: 0
default_content: 0
diff: 0
dropdown_language: 0
drutopia_action: 0
drutopia_article: 0
drutopia_blog: 0
@ -107,7 +108,9 @@ module:
node: 0
options: 0
page_cache: 0
paragraphs_features: 0
path: 0
preview_link: 0
quickedit: 0
rdf: 0
redirect: 0
@ -121,6 +124,7 @@ module:
similarterms: 0
social_media_links: 0
statistics: 0
syslog: 0
system: 0
taxonomy: 0
telephone: 0

View file

@ -0,0 +1,6 @@
wrapper: false
display_language_id: 2
filter_untranslated: 0
always_show_block: 0
_core:
default_config_hash: xbqiqGnFfv7G00sewxA46T8PO-uo8uvWhDSIFyR1Fhk

View file

@ -0,0 +1,14 @@
uuid: ef082871-7e9a-4f4a-befa-094f4091d45f
langcode: en
status: true
dependencies: { }
name: small_landscape
label: 'Small landscape'
effects:
87ff4c68-189e-4459-ad57-6834f8181d0a:
uuid: 87ff4c68-189e-4459-ad57-6834f8181d0a
id: image_resize
weight: 1
data:
width: 88
height: 31

View file

@ -7,11 +7,11 @@ dependencies:
- menu_link_content
third_party_settings:
content_translation:
enabled: false
enabled: true
bundle_settings:
untranslatable_fields_hide: '0'
id: menu_link_content.menu_link_content
target_entity_type_id: menu_link_content
target_bundle: menu_link_content
default_langcode: site_default
language_alterable: false
language_alterable: true

View file

@ -0,0 +1,2 @@
settings:
label: Navegación

View file

@ -0,0 +1,2 @@
settings:
label: Navegación

View file

@ -0,0 +1 @@
label: 'Vista previa'

View file

@ -0,0 +1,2 @@
label: Navegación
description: 'Sección de enlaces'

View file

@ -0,0 +1,3 @@
settings:
default_preview_next_button_label: 'Vista previa'
default_preview_label: 'Vista previa'

View file

@ -0,0 +1,3 @@
dropdown_to_button: true
_core:
default_config_hash: lQErqdedK_5v01xVINKpMQnPQNpp4vS6oMsdNYbPfTI

View file

@ -0,0 +1,5 @@
identity: drupal
facility: 128
format: '!base_url|!timestamp|!type|!ip|!request_uri|!referer|!uid|!link|!message'
_core:
default_config_hash: vdXLRPZRg35PBykBRRXr6RTql5EJR_fUi2kxyZ8c5m0

View file

@ -142,46 +142,6 @@ display:
reduce_duplicates: false
plugin_id: taxonomy_index_tid
filters:
langcode:
id: langcode
table: node_field_data
field: langcode
relationship: none
group_type: group
admin_label: ''
operator: in
value:
'***LANGUAGE_language_content***': '***LANGUAGE_language_content***'
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: { }
plugin_id: language
entity_type: node
entity_field: langcode
status:
id: status
table: taxonomy_index
@ -677,6 +637,8 @@ display:
defaults:
fields: false
relationships: false
filters: false
filter_groups: false
relationships:
nid:
id: nid
@ -687,6 +649,47 @@ display:
admin_label: node
required: true
plugin_id: standard
filters:
status:
id: status
table: taxonomy_index
field: status
relationship: none
group_type: group
admin_label: ''
operator: '='
value: '1'
group: 1
exposed: false
expose:
operator_id: ''
label: ''
description: ''
use_operator: false
operator: ''
identifier: ''
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
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
filter_groups:
operator: AND
groups:
1: AND
cache_metadata:
contexts:
- 'languages:language_content'

View file

@ -0,0 +1,81 @@
langcode: en
status: true
dependencies:
module:
- drutopia_creative_license
id: config_sync.module.drutopia_creative_license
snapshotSet: config_sync
extensionType: module
extensionName: drutopia_creative_license
items:
-
collection: ''
name: core.entity_view_display.taxonomy_term.license.default
data:
langcode: en
status: true
dependencies:
config:
- taxonomy.vocabulary.license
module:
- ds
- text
third_party_settings:
ds:
layout:
id: layout_onecol
library: layout_discovery/onecol
disable_css: false
entity_classes: all_classes
settings: { }
regions:
content:
- description
id: taxonomy_term.license.default
targetEntityType: taxonomy_term
bundle: license
mode: default
content:
description:
label: hidden
type: text_default
weight: 0
region: content
settings: { }
third_party_settings: { }
hidden: { }
-
collection: ''
name: field.storage.node.field_license
data:
langcode: en
status: true
dependencies:
module:
- node
- taxonomy
id: node.field_license
field_name: field_license
entity_type: node
type: entity_reference
settings:
target_type: taxonomy_term
module: core
locked: false
cardinality: 1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false
-
collection: ''
name: taxonomy.vocabulary.license
data:
langcode: en
status: true
dependencies: { }
name: License
vid: license
description: ''
hierarchy: 0
weight: 0

View file

@ -0,0 +1,17 @@
langcode: en
status: true
dependencies:
config:
- taxonomy.vocabulary.license
id: taxonomy_term.license.changed
field_name: changed
entity_type: taxonomy_term
bundle: license
label: Changed
description: 'The time that the term was last edited.'
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings: { }
field_type: changed

View file

@ -0,0 +1,19 @@
langcode: en
status: true
dependencies:
config:
- taxonomy.vocabulary.license
module:
- text
id: taxonomy_term.license.description
field_name: description
entity_type: taxonomy_term
bundle: license
label: Description
description: ''
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings: { }
field_type: text_long

View file

@ -0,0 +1,17 @@
langcode: en
status: true
dependencies:
config:
- taxonomy.vocabulary.license
id: taxonomy_term.license.metatag
field_name: metatag
entity_type: taxonomy_term
bundle: license
label: Metatags
description: 'The meta tags for the entity.'
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings: { }
field_type: map

View file

@ -0,0 +1,17 @@
langcode: en
status: true
dependencies:
config:
- taxonomy.vocabulary.license
id: taxonomy_term.license.name
field_name: name
entity_type: taxonomy_term
bundle: license
label: Name
description: ''
required: true
translatable: false
default_value: { }
default_value_callback: ''
settings: { }
field_type: string

View file

@ -0,0 +1,19 @@
langcode: en
status: true
dependencies:
config:
- taxonomy.vocabulary.license
module:
- path
id: taxonomy_term.license.path
field_name: path
entity_type: taxonomy_term
bundle: license
label: 'URL alias'
description: ''
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings: { }
field_type: path

View file

@ -0,0 +1,21 @@
langcode: en
status: true
dependencies:
config:
- taxonomy.vocabulary.license
id: taxonomy_term.license.status
field_name: status
entity_type: taxonomy_term
bundle: license
label: Published
description: ''
required: false
translatable: false
default_value:
-
value: 1
default_value_callback: ''
settings:
on_label: 'On'
off_label: 'Off'
field_type: boolean

View file

@ -0,0 +1,54 @@
langcode: en
status: true
dependencies:
config:
- field.field.taxonomy_term.license.field_license_icon
- image.style.thumbnail
- taxonomy.vocabulary.license
module:
- image
- path
- text
id: taxonomy_term.license.default
targetEntityType: taxonomy_term
bundle: license
mode: default
content:
description:
type: text_textfield
weight: 0
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
field_license_icon:
weight: 31
settings:
progress_indicator: throbber
preview_image_style: thumbnail
third_party_settings: { }
type: image_image
region: content
langcode:
type: language_select
weight: 2
region: content
settings:
include_locked: true
third_party_settings: { }
name:
type: string_textfield
weight: -5
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
path:
type: path
weight: 30
region: content
settings: { }
third_party_settings: { }
hidden: { }

View file

@ -2,9 +2,12 @@ langcode: en
status: true
dependencies:
config:
- field.field.taxonomy_term.license.field_license_icon
- image.style.small_landscape
- taxonomy.vocabulary.license
module:
- ds
- image
- text
third_party_settings:
ds:
@ -16,6 +19,7 @@ third_party_settings:
settings: { }
regions:
content:
- field_license_icon
- description
id: taxonomy_term.license.default
targetEntityType: taxonomy_term
@ -25,8 +29,18 @@ content:
description:
label: hidden
type: text_default
weight: 0
weight: 1
region: content
settings: { }
third_party_settings: { }
hidden: { }
field_license_icon:
weight: 0
label: visually_hidden
settings:
image_style: small_landscape
image_link: ''
third_party_settings: { }
type: image
region: content
hidden:
langcode: true

View file

@ -0,0 +1,47 @@
langcode: en
status: true
dependencies:
config:
- core.entity_view_mode.taxonomy_term.full
- field.field.taxonomy_term.license.field_license_icon
- image.style.small_landscape
- taxonomy.vocabulary.license
module:
- ds
- image
- text
third_party_settings:
ds:
layout:
id: layout_onecol
library: layout_discovery/onecol
disable_css: false
entity_classes: all_classes
settings: { }
regions:
content:
- field_license_icon
- description
id: taxonomy_term.license.full
targetEntityType: taxonomy_term
bundle: license
mode: full
content:
description:
label: hidden
type: text_default
weight: 1
region: content
settings: { }
third_party_settings: { }
field_license_icon:
weight: 0
label: visually_hidden
settings:
image_style: small_landscape
image_link: ''
third_party_settings: { }
type: image
region: content
hidden:
langcode: true

View file

@ -0,0 +1,47 @@
langcode: en
status: true
dependencies:
config:
- core.entity_view_mode.taxonomy_term.teaser
- field.field.taxonomy_term.license.field_license_icon
- image.style.small_landscape
- taxonomy.vocabulary.license
module:
- ds
- image
- text
third_party_settings:
ds:
layout:
id: layout_onecol
library: layout_discovery/onecol
disable_css: false
entity_classes: all_classes
settings: { }
regions:
content:
- field_license_icon
- description
id: taxonomy_term.license.teaser
targetEntityType: taxonomy_term
bundle: license
mode: teaser
content:
description:
label: hidden
type: text_default
weight: 1
region: content
settings: { }
third_party_settings: { }
field_license_icon:
weight: 0
label: visually_hidden
settings:
image_style: small_landscape
image_link: ''
third_party_settings: { }
type: image
region: content
hidden:
langcode: true

View file

@ -0,0 +1,37 @@
langcode: en
status: true
dependencies:
config:
- field.storage.taxonomy_term.field_license_icon
- taxonomy.vocabulary.license
module:
- image
id: taxonomy_term.license.field_license_icon
field_name: field_license_icon
entity_type: taxonomy_term
bundle: license
label: Icon
description: ''
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings:
file_directory: '[date:custom:Y]-[date:custom:m]'
file_extensions: 'png gif jpg jpeg'
max_filesize: ''
max_resolution: ''
min_resolution: ''
alt_field: true
alt_field_required: true
title_field: false
title_field_required: false
default_image:
uuid: ''
alt: ''
title: ''
width: null
height: null
handler: 'default:file'
handler_settings: { }
field_type: image

View file

@ -4,9 +4,15 @@ core: 8.x
package: Drutopia
dependencies:
- config_actions
- config_snapshot
- drutopia_core
- drutopia_creative_license
- ds
- field
- field_group
- image
- node
- path
- taxonomy
- text
version: 8.x-1.0-alpha1

View file

@ -1,25 +1,65 @@
<?php
use \Drupal\Core\Url;
use Drupal\block\Entity\Block;
use Drupal\Core\Entity\EntityInterface;
use Drupal\Core\Url;
/**
* Implements hook_preprocess_block__system_menu_block__main().
* Implements hook_preprocess_region__footer().
*/
function agarica_preprocess_block__system_menu_block__main(&$variables) {
$pathMatcher = \Drupal::service('path.matcher');
$languageManager = \Drupal::service('language_manager');
$route_name = $pathMatcher->isFrontPage() ? '<front>' : '<current>';
$type = 'language_interface';
$language_links = $languageManager->getLanguageSwitchLinks($type, Url::fromRoute($route_name));
$variables['language'] = [];
foreach ($language_links->links as $langcode => $link) {
$language_links->links[$langcode]['attributes']['class'][] = 'navbar-item';
$language_links->links[$langcode]['title'] = $langcode;
function agarica_preprocess_region__footer(&$variables) {
$block = Block::load('languageswitcher');
$block_content = \Drupal::entityTypeManager()
->getViewBuilder('block')
->view($block);
$variables['language_switcher'] = $block_content;
$variables['language_switcher_link'] = agarica_languague_switch_link();
}
$variables['language'] = [
'#theme' => 'links__language_block',
'#links' => $language_links->links,
'#set_active_class' => TRUE,
];
/**
* Provides a link to switch to another language.
*/
function agarica_languague_switch_link() {
$derivative_id = 'language_interface';
$route = \Drupal::getContainer()->get('path.matcher')->isFrontPage() ? '<front>' : '<current>';
$current_language = \Drupal::languageManager()->getCurrentLanguage($derivative_id)->getId();
$links = \Drupal::languageManager()->getLanguageSwitchLinks($derivative_id, Url::fromRoute($route))->links;
$links['en']['title'] = 'Browse this site in English';
$links['es']['title'] = 'Consulta este sitio en Español';
$lid = ($current_language == 'en') ? 'es' : 'en';
// Remove current language from the links
unset($links[$current_language]);
// Check if the current path display an entity.
$entity = FALSE;
foreach (\Drupal::routeMatch()->getParameters() as $param) {
if ($param instanceof EntityInterface) {
$entity[] = $param;
}
}
// Remove links if the content hasnt' been translated yet.
if ($entity) {
$has_translation = (method_exists($entity[0], 'getTranslationStatus')) ? $entity[0]->getTranslationStatus($lid) : FALSE;
$this_translation = ($has_translation && method_exists($entity[0], 'getTranslation')) ? $entity[0]->getTranslation($lid) : FALSE;
$access_translation = ($this_translation && method_exists($this_translation, 'access') && $this_translation->access('view')) ? TRUE : FALSE;
if (!$this_translation || !$access_translation || $current_language == $lid) {
unset($links[$lid]);
}
}
$links_render_array = [];
// Transform the links to arrays that can be renderer.
foreach ($links as $language => $link) {
$links_render_array[] = [
'#type' => 'link',
'#url' => $link['url'],
'#title' => $link['title'],
'#options' => [
'language' => $link['language'],
],
];
}
return $links_render_array;
}

@ -1 +1 @@
Subproject commit bd9add651fde3d6d6465fd823dbc3964d6daf397
Subproject commit 610b7948b5dd68882381fe0338c9d1f8732dab53