@kitconcept/volto-light-theme 1.0.0-rc.4 → 1.0.0-rc.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.eslintignore CHANGED
@@ -1,2 +1,4 @@
1
1
  container-query-polyfill.modern.js
2
2
  cypress
3
+ node_modules
4
+ acceptance
@@ -0,0 +1,52 @@
1
+ name: Acceptance tests
2
+ on: [push]
3
+
4
+ env:
5
+ ADDON_NAME: "@kitconcept/volto-light-theme"
6
+ ADDON_PATH: "volto-light-theme"
7
+ VOLTO_VERSION: "17.0.0-alpha.17"
8
+
9
+ jobs:
10
+
11
+ acceptance:
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - name: Checkout
15
+ uses: actions/checkout@v3
16
+
17
+ - name: Set up Docker Buildx
18
+ uses: docker/setup-buildx-action@v2
19
+
20
+ - name: Install Cypress
21
+ run: |
22
+ cd acceptance
23
+ yarn
24
+
25
+ - name: "Cypress: Acceptance tests"
26
+ uses: cypress-io/github-action@v5
27
+ env:
28
+ BABEL_ENV: production
29
+ CYPRESS_RETRIES: 2
30
+ with:
31
+ parallel: false
32
+ browser: chrome
33
+ working-directory: acceptance
34
+ spec: cypress/tests/*.js
35
+ install: false
36
+ start: |
37
+ docker compose -f ci.yml --profile prod up
38
+ wait-on: 'npx wait-on --httpTimeout 20000 http-get://localhost:55001/plone http://localhost:3000'
39
+
40
+ # Upload Cypress screenshots
41
+ - uses: actions/upload-artifact@v3
42
+ if: failure()
43
+ with:
44
+ name: cypress-screenshots-acceptance
45
+ path: acceptance/cypress/screenshots
46
+
47
+ # Upload Cypress videos
48
+ - uses: actions/upload-artifact@v3
49
+ if: failure()
50
+ with:
51
+ name: cypress-videos-acceptance
52
+ path: acceptance/cypress/videos
@@ -1,12 +1,17 @@
1
1
  name: Release and deploy
2
2
  on:
3
- push:
3
+ workflow_run:
4
+ workflows: [Acceptance Tests]
5
+ types:
6
+ - completed
7
+ branches:
8
+ - main
4
9
  workflow_dispatch:
5
10
 
6
11
  env:
7
12
  ENVIRONMENT: "light-theme.kitconcept.io"
8
13
  IMAGE_NAME: "ghcr.io/kitconcept/voltolighttheme-frontend"
9
- VOLTO_VERSION: "17.0.0-alpha.16"
14
+ VOLTO_VERSION: "17.0.0-alpha.17"
10
15
 
11
16
  jobs:
12
17
  meta:
package/CHANGELOG.md CHANGED
@@ -8,6 +8,32 @@
8
8
 
9
9
  <!-- towncrier release notes start -->
10
10
 
11
+ ## 1.0.0-rc.6 (2023-07-12)
12
+
13
+ ### Bugfix
14
+
15
+ - Fix Event content type @iRohitSingh [#16](https://github.com/kitconcept/volto-light-theme/pull/16)
16
+ - Fix local linting, add proper eslintignore @sneridagh [#139](https://github.com/kitconcept/volto-light-theme/pull/139)
17
+ - Minor fix for Listing margins. @danalvrz [#140](https://github.com/kitconcept/volto-light-theme/pull/140)
18
+ - Fix gutter for grids for small screens. Improve overall margins calculations for all blocks in the content area. @sneridagh [#141](https://github.com/kitconcept/volto-light-theme/pull/141)
19
+
20
+
21
+ ## 1.0.0-rc.5 (2023-07-11)
22
+
23
+ ### Breaking
24
+
25
+ - Move the container query polyfill to an add-on profile, disabled by default @sneridagh [#137](https://github.com/kitconcept/volto-light-theme/pull/137)
26
+
27
+ ### Feature
28
+
29
+ - Upgrade to Volto 17a17 as baseline @sneridagh [#136](https://github.com/kitconcept/volto-light-theme/pull/136)
30
+ - Add acceptance tests layer, update docker files and Makefile @sneridagh [#137](https://github.com/kitconcept/volto-light-theme/pull/137)
31
+
32
+ ### Bugfix
33
+
34
+ - Check if the separator is present before enhancing it @sneridagh [#138](https://github.com/kitconcept/volto-light-theme/pull/138)
35
+
36
+
11
37
  ## 1.0.0-rc.4 (2023-07-11)
12
38
 
13
39
  ### Bugfix
package/Makefile CHANGED
@@ -22,7 +22,7 @@ RESET=`tput sgr0`
22
22
  YELLOW=`tput setaf 3`
23
23
 
24
24
  PLONE_VERSION=6
25
- VOLTO_VERSION=17.0.0-alpha.16
25
+ VOLTO_VERSION=17.0.0-alpha.17
26
26
 
27
27
  ADDON_NAME='@kitconcept/volto-light-theme'
28
28
  ADDON_PATH='volto-light-theme'
@@ -103,20 +103,20 @@ test-ci: ## Run unit tests in CI
103
103
 
104
104
  ## Acceptance
105
105
  .PHONY: install-acceptance
106
- install-acceptance: ## Install Cypress, build containers
106
+ install-acceptance: ## Install Cypress, build acceptance containers
107
107
  (cd acceptance && yarn)
108
108
  ${ACCEPTANCE} --profile dev --profile prod build
109
109
 
110
110
  .PHONY: start-test-acceptance-server
111
- start-test-acceptance-server: ## Start acceptance server
112
- ${ACCEPTANCE} --profile dev up -d
111
+ start-test-acceptance-server: ## Start acceptance server (for use it in while developing)
112
+ ${ACCEPTANCE} --profile dev up
113
113
 
114
114
  .PHONY: start-test-acceptance-server-prod
115
- start-test-acceptance-server-prod: ## Start acceptance server
115
+ start-test-acceptance-server-prod: ## Start acceptance server in prod (used by CI)
116
116
  ${ACCEPTANCE} --profile prod up -d
117
117
 
118
118
  .PHONY: test-acceptance
119
- test-acceptance: ## Start Cypress
119
+ test-acceptance: ## Start Cypress (for use it while developing)
120
120
  (cd acceptance && ./node_modules/.bin/cypress open)
121
121
 
122
122
  .PHONY: test-acceptance-headless
@@ -124,13 +124,18 @@ test-acceptance-headless: ## Run cypress tests in CI
124
124
  (cd acceptance && ./node_modules/.bin/cypress run)
125
125
 
126
126
  .PHONY: stop-test-acceptance-server
127
- stop-test-acceptance-server: ## Stop acceptance server
128
- ${ACCEPTANCE} down
127
+ stop-test-acceptance-server: ## Stop acceptance server (for use it while finished developing)
128
+ ${ACCEPTANCE} --profile dev down
129
129
 
130
130
  .PHONY: status-test-acceptance-server
131
- status-test-acceptance-server: ## Status of Acceptance Server
131
+ status-test-acceptance-server: ## Status of Acceptance Server (for use it while developing)
132
132
  ${ACCEPTANCE} ps
133
133
 
134
134
  .PHONY: debug-frontend
135
- debug-frontend: ## Run bash in the Frontend container
135
+ debug-frontend: ## Run bash in the Frontend container (for debug infrastructure purposes)
136
136
  ${DEV_COMPOSE} run --entrypoint bash addon-dev
137
+
138
+ .PHONY: install-local
139
+ install-local: ## Installs essentials for developing locally (ESlint, prettier...) (for use it while developing)
140
+ yarn remove -A @plone/volto && yarn add @plone/volto && git co -- package.json yarn.lock
141
+ mv .eslintrc.local.js .eslintrc.js
@@ -4,6 +4,10 @@ import './commands';
4
4
  import { setup, teardown } from './reset-fixture';
5
5
 
6
6
  beforeEach(function () {
7
+ cy.setCookie('confirm_cookies', '1');
8
+ cy.setCookie('confirm_tracking', '1');
9
+ cy.setCookie('confirm_facebook', '1');
10
+ cy.setCookie('confirm_youtube', '1');
7
11
  cy.log('Setting up API fixture');
8
12
  setup();
9
13
  });
@@ -6,6 +6,9 @@ import {
6
6
  context('Basic Acceptance Tests', () => {
7
7
  describe('Text Block Tests', () => {
8
8
  beforeEach(() => {
9
+ cy.intercept('GET', `/**/*?expand*`).as('content');
10
+ cy.intercept('GET', '/**/Document').as('schema');
11
+
9
12
  // given a logged in editor and a page in edit mode
10
13
  cy.autologin();
11
14
  cy.createContent({
@@ -14,6 +17,7 @@ context('Basic Acceptance Tests', () => {
14
17
  contentTitle: 'Document',
15
18
  });
16
19
  cy.visit('/');
20
+ cy.wait('@content');
17
21
  });
18
22
 
19
23
  it('As editor I can add a page with a text block', function () {
@@ -32,39 +36,35 @@ context('Basic Acceptance Tests', () => {
32
36
 
33
37
  getSelectedSlateEditor().contains('This is the text');
34
38
  cy.get('#toolbar-save').click();
39
+ cy.wait('@content');
35
40
  cy.url().should('eq', Cypress.config().baseUrl + '/my-page');
36
41
  });
37
42
 
38
43
  it('As editor I can add a link to a text block', function () {
39
- cy.intercept('GET', '/**/document').as('content');
40
- cy.visit('/document');
41
- cy.wait('@content');
42
-
43
44
  cy.navigate('/document/edit');
45
+ cy.wait('@schema');
44
46
 
45
- // when I create a link
46
- getSlateEditorAndType(
47
- '.slate-editor [contenteditable=true]',
48
- 'Colorless green ideas sleep furiously.',
49
- ).setSelection('furiously');
47
+ cy.get('.block.inner.title .documentFirstHeading');
50
48
 
51
- cy.clickSlateButton('Add link');
49
+ cy.log('when I create a link');
52
50
 
53
- cy.get('.link-form-container input').type('https://google.com{enter}');
54
- cy.get('#toolbar-save').click();
55
- cy.url().should('eq', Cypress.config().baseUrl + '/document');
56
- cy.waitForResourceToLoad('@navigation');
57
- cy.waitForResourceToLoad('@breadcrumbs');
58
- cy.waitForResourceToLoad('@actions');
59
- cy.waitForResourceToLoad('@types');
60
- cy.waitForResourceToLoad('document');
61
-
62
- // then the page view should contain a link
63
- cy.get('.ui.container p').contains(
51
+ cy.getSlateEditorAndType(
64
52
  'Colorless green ideas sleep furiously.',
53
+ ).setSlateSelection('furiously');
54
+ cy.clickSlateButton('Add link');
55
+ cy.get('.slate-toolbar .link-form-container input').type(
56
+ 'https://google.com{enter}',
65
57
  );
66
- cy.get('.ui.container p a')
67
- .should('have.attr', 'href')
58
+
59
+ cy.get('#toolbar-save', { timeout: 10000 }).click();
60
+ cy.wait('@content');
61
+
62
+ cy.log('then the page view should contain a link');
63
+
64
+ cy.get('.container p').contains('Colorless green ideas sleep furiously.');
65
+ cy.get('.container p a')
66
+ .should('have.text', 'furiously')
67
+ .and('have.attr', 'href')
68
68
  .and('include', 'https://google.com');
69
69
  });
70
70
  });
@@ -15,9 +15,11 @@ services:
15
15
  environment:
16
16
  RAZZLE_INTERNAL_API_PATH: http://backend-acceptance:55001/plone
17
17
  RAZZLE_API_PATH: http://localhost:55001/plone
18
+ HOST: 0.0.0.0
18
19
  ports:
19
20
  - 3000:3000
20
21
  - 3001:3001
22
+ tty: true
21
23
  depends_on:
22
24
  - backend-acceptance
23
25
  profiles:
@@ -34,6 +36,7 @@ services:
34
36
  environment:
35
37
  RAZZLE_INTERNAL_API_PATH: http://backend-acceptance:55001/plone
36
38
  RAZZLE_API_PATH: http://localhost:55001/plone
39
+ HOST: 0.0.0.0
37
40
  ports:
38
41
  - 3000:3000
39
42
  depends_on:
@@ -42,14 +45,7 @@ services:
42
45
  - prod
43
46
 
44
47
  backend-acceptance:
45
- image: plone/plone-backend:${PLONE_VERSION:-6}
46
- command: ./bin/robot-server plone.app.robotframework.testing.VOLTO_ROBOT_TESTING
47
- environment:
48
- ZSERVER_HOST: 0.0.0.0
49
- ZSERVER_PORT: 55001
50
- ADDONS: 'plone.app.robotframework==2.0.0'
51
- APPLY_PROFILES: plone.app.contenttypes:plone-content,plone.restapi:default,plone.volto:default-homepage
52
- CONFIGURE_PACKAGES: plone.app.contenttypes,plone.restapi,plone.volto,plone.volto.cors
48
+ image: plone/server-acceptance:${PLONE_VERSION:-6}
53
49
  ports:
54
50
  - 55001:55001
55
51
  profiles:
@@ -5,6 +5,12 @@ FROM plone/frontend-dev:${VOLTO_VERSION}
5
5
  ARG ADDON_NAME
6
6
  ARG ADDON_PATH
7
7
 
8
+ # Copy helper.py as /setupAddon
9
+ COPY dockerfiles/helper.py /setupAddon
10
+
11
+ # Copy volto.config.js
12
+ COPY --chown=node:node volto.config.js* /app/
13
+
8
14
  COPY --chown=node:node package.json /app/src/addons/${ADDON_PATH}/
9
15
 
10
16
  RUN <<EOT
@@ -9,12 +9,13 @@ services:
9
9
  args:
10
10
  ADDON_NAME: "${ADDON_NAME}"
11
11
  ADDON_PATH: "${ADDON_PATH}"
12
- VOLTO_VERSION: "${VOLTO_VERSION:-16}"
12
+ VOLTO_VERSION: "${VOLTO_VERSION:-17}"
13
13
  volumes:
14
14
  - ${CURRENT_DIR}:/app/src/addons/${ADDON_PATH}/
15
15
  environment:
16
16
  RAZZLE_INTERNAL_API_PATH: http://backend:8080/Plone
17
17
  RAZZLE_API_PATH: http://localhost:8080/Plone
18
+ HOST: 0.0.0.0
18
19
  ports:
19
20
  - 3000:3000
20
21
  - 3001:3001
@@ -29,7 +30,7 @@ services:
29
30
  args:
30
31
  ADDON_NAME: "${ADDON_NAME}"
31
32
  ADDON_PATH: "${ADDON_PATH}"
32
- VOLTO_VERSION: "${VOLTO_VERSION:-16}"
33
+ VOLTO_VERSION: "${VOLTO_VERSION:-17}"
33
34
  environment:
34
35
  RAZZLE_INTERNAL_API_PATH: http://backend:8080/Plone
35
36
  RAZZLE_API_PATH: http://localhost:8080/Plone
@@ -41,6 +42,8 @@ services:
41
42
 
42
43
  backend:
43
44
  image: ghcr.io/kitconcept/voltolighttheme:latest
45
+ environment:
46
+ CORS_: true
44
47
  ports:
45
48
  - 8080:8080
46
49
  profiles:
@@ -17,51 +17,184 @@ msgstr ""
17
17
  "Preferred-Encodings: utf-8 latin1\n"
18
18
  "X-Is-Fallback-For: de-at de-li de-lu de-ch de-de\n"
19
19
 
20
- #: components/Blocks/Separator/schema
21
- # defaultMessage: Alignment
22
- msgid "Alignment"
23
- msgstr "Ausrichtung"
24
-
25
20
  #: components/Blocks/schema
26
21
  # defaultMessage: Background color
27
22
  msgid "Background color"
28
23
  msgstr "Hintergrundfarbe"
29
24
 
25
+ #: components/Blocks/Button/schema
26
+ # defaultMessage: Block Width
27
+ msgid "Block Width"
28
+ msgstr ""
29
+
30
+ #: components/Breadcrumbs/Breadcrumbs
31
+ # defaultMessage: Breadcrumbs
32
+ msgid "Breadcrumbs"
33
+ msgstr ""
34
+
30
35
  #: components/Widgets/AlignWidget
31
36
  # defaultMessage: Center
32
37
  msgid "Center"
33
38
  msgstr ""
34
39
 
40
+ #: components/Navigation/Navigation
41
+ # defaultMessage: Close menu
42
+ msgid "Close menu"
43
+ msgstr ""
44
+
45
+ #: components/Theme/EventView
46
+ # defaultMessage: Contact
47
+ msgid "Contact"
48
+ msgstr ""
49
+
50
+ #: components/Footer/Footer
51
+ # defaultMessage: Copyright
52
+ msgid "Copyright"
53
+ msgstr ""
54
+
55
+ #: components/Footer/Footer
56
+ # defaultMessage: Distributed under the {license}.
57
+ msgid "Distributed under the {license}."
58
+ msgstr ""
59
+
60
+ #: components/Theme/EventView
61
+ # defaultMessage: End
62
+ msgid "End"
63
+ msgstr "ende"
64
+
35
65
  #: components/Widgets/AlignWidget
36
66
  # defaultMessage: Full
37
67
  msgid "Full"
38
68
  msgstr ""
39
69
 
40
- #: components/Blocks/Separator/schema
41
- # defaultMessage: Hide Separator Line
42
- msgid "Hide Separator Line"
70
+ #: components/Footer/Footer
71
+ # defaultMessage: GNU GPL license
72
+ msgid "GNU GPL license"
73
+ msgstr ""
74
+
75
+ #: components/Breadcrumbs/Breadcrumbs
76
+ # defaultMessage: Home
77
+ msgid "Home"
43
78
  msgstr ""
44
79
 
80
+ #: components/Theme/EventView
81
+ # defaultMessage: ICS Download
82
+ msgid "ICS-Download"
83
+ msgstr "ICS-Download"
84
+
45
85
  #: components/Widgets/AlignWidget
46
86
  # defaultMessage: Left
47
87
  msgid "Left"
48
88
  msgstr ""
49
89
 
90
+ #: components/Theme/EventView
91
+ # defaultMessage: Location
92
+ msgid "Location"
93
+ msgstr "Veranstaltungsort"
94
+
95
+ #: components/Anontools/Anontools
96
+ # defaultMessage: Log in
97
+ msgid "Log in"
98
+ msgstr ""
99
+
100
+ #: components/Theme/EventView
101
+ # defaultMessage: No date
102
+ msgid "No date"
103
+ msgstr ""
104
+
105
+ #: components/Navigation/Navigation
106
+ # defaultMessage: Open menu
107
+ msgid "Open menu"
108
+ msgstr ""
109
+
110
+ #: components/Theme/EventView
111
+ # defaultMessage: Phone
112
+ msgid "Phone"
113
+ msgstr ""
114
+
115
+ #: components/Footer/Footer
116
+ # defaultMessage: Plone Foundation
117
+ msgid "Plone Foundation"
118
+ msgstr ""
119
+
120
+ #: components/Logo/Logo
121
+ # defaultMessage: Plone Site
122
+ msgid "Plone Site"
123
+ msgstr ""
124
+
125
+ #: components/Footer/Footer
126
+ # defaultMessage: Plone{reg} Open Source CMS/WCM
127
+ msgid "Plone{reg} Open Source CMS/WCM"
128
+ msgstr ""
129
+
130
+ #: components/Footer/Footer
131
+ # defaultMessage: Powered by Plone & Python
132
+ msgid "Powered by Plone & Python"
133
+ msgstr ""
134
+
50
135
  #: index
51
136
  # defaultMessage: Press
52
137
  msgid "Press"
53
138
  msgstr "Presse"
54
139
 
140
+ #: components/Anontools/Anontools
141
+ #: components/Header/Header
142
+ # defaultMessage: Register
143
+ msgid "Register"
144
+ msgstr ""
145
+
55
146
  #: components/Widgets/AlignWidget
56
147
  # defaultMessage: Right
57
148
  msgid "Right"
58
149
  msgstr ""
59
150
 
151
+ #: components/Blocks/Search/TopSideFacets
152
+ #: components/SearchWidget/SearchWidget
153
+ # defaultMessage: Search
154
+ msgid "Search"
155
+ msgstr ""
156
+
157
+ #: components/SearchWidget/SearchWidget
158
+ # defaultMessage: Search Site
159
+ msgid "Search Site"
160
+ msgstr ""
161
+
162
+ #: components/Logo/Logo
163
+ # defaultMessage: Site
164
+ msgid "Site"
165
+ msgstr ""
166
+
167
+ #: components/Header/Header
60
168
  #: index
61
169
  # defaultMessage: Sitemap
62
170
  msgid "Sitemap"
63
171
  msgstr "Übersicht"
64
172
 
173
+ #: components/Blocks/Search/TopSideFacets
174
+ # defaultMessage: Sorting
175
+ msgid "Sorting"
176
+ msgstr ""
177
+
178
+ #: components/Theme/EventView
179
+ # defaultMessage: Start
180
+ msgid "Start"
181
+ msgstr "Anfang"
182
+
183
+ #: components/Footer/Footer
184
+ # defaultMessage: The {plonecms} is {copyright} 2000-{current_year} by the {plonefoundation} and friends.
185
+ msgid "The {plonecms} is {copyright} 2000-{current_year} by the {plonefoundation} and friends."
186
+ msgstr ""
187
+
188
+ #: components/Theme/EventView
189
+ # defaultMessage: Unknown block
190
+ msgid "Unknown block"
191
+ msgstr ""
192
+
193
+ #: components/Theme/EventView
194
+ # defaultMessage: Website
195
+ msgid "Website"
196
+ msgstr ""
197
+
65
198
  #: components/Widgets/AlignWidget
66
199
  # defaultMessage: Wide
67
200
  msgid "Wide"