Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release/2.23.0 #1414

Merged
merged 42 commits into from
Jan 6, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
187bf3a
feat(@dpc-sdp/ripple-tide-landing-page): :sparkles: new component build
waitingallday Nov 20, 2024
9b3cc0e
feat(@dpc-sdp/ripple-tide-search): wip for location search refactor
jeffdowdle Nov 22, 2024
8f51c85
chore(@dpc-sdp/ripple-tide-landing-page): removed search banner examples
jeffdowdle Nov 22, 2024
f5ec570
feat(@dpc-sdp/ripple-ui-core): move and update RplSearchBanner
lambry Nov 24, 2024
8582c58
Merge branch 'release/2.22.0' into feature/SD-403-decoupled-map-searc…
dylankelly Dec 5, 2024
641e5d5
feat(@dpc-sdp/ripple-ui-forms): add search support for dropdowns
lambry Dec 6, 2024
043978a
feat(@dpc-sdp/ripple-tide-search): add page detail to search, sitemap…
lambry Dec 9, 2024
a5341bd
chore: :coffin: remove unused action
waitingallday Dec 9, 2024
2f66c51
Merge pull request #1403 from dpc-sdp/task/remove-unused-action
waitingallday Dec 9, 2024
64d172b
Merge branch 'release/2.23.0' of https://github.com/dpc-sdp/ripple-fr…
jeffdowdle Dec 9, 2024
de0325f
chore(@dpc-sdp/ripple-tide-webform): update tide_webform_captcha key
lambry Dec 9, 2024
7f36117
fix(@dpc-sdp/ripple-tide-webform): add await to webformApi.getWebfor…
lambry Dec 9, 2024
5db8989
fix(nuxt-app): temporary fix for HMR
lambry Dec 9, 2024
1cbf987
Merge pull request #1402 from dpc-sdp/feature/static-page-titles
dylankelly Dec 9, 2024
81d8bb7
style(@dpc-sdp/ripple-ui-forms): design feedback
lambry Dec 10, 2024
2237a7f
Merge branch 'release/2.23.0' into feature/dropdown-combobox
lambry Dec 10, 2024
c6698cd
feat(@dpc-sdp/ripple-ui-forms): use selectionStart for handling the l…
lambry Dec 10, 2024
39f0cc3
feat(@dpc-sdp/ripple-tide-landing-page): moved data driven components…
jeffdowdle Dec 11, 2024
2c24008
Merge pull request #1404 from dpc-sdp/feature/tide-recaptcha-rename
lambry Dec 11, 2024
110f925
fix(@dpc-sdp/ripple-tide-search): fixed map sidepanel needing a uniqu…
jeffdowdle Dec 11, 2024
b892794
Use a responsively hidden div instead of pseudo-element content to sh…
bgilhome-now Dec 12, 2024
cea62ac
Use a single div with v-html for mobile label whether `isLabelHTML` i…
bgilhome-now Dec 12, 2024
21095d6
Re-add data-label on data table row so tests pass.
bgilhome-now Dec 12, 2024
55bfe45
Remove extraneous CSS rule for data table mobile label.
bgilhome-now Dec 12, 2024
c2e3fdc
Use field 'name' attribute (if set) as key in webform mapping, else u…
bgilhome-now Dec 12, 2024
5d47776
Merge pull request #1407 from dpc-sdp/bugfix/SD-525-map-sidepanel-hig…
jeffdowdle Dec 12, 2024
28d0589
feat(@dpc-sdp/ripple-tide-grant): update grants listing sort and stat…
lambry Dec 16, 2024
9ff95ac
Merge pull request #1409 from bgilhome-now/feature/1408-data-table-ht…
waitingallday Dec 16, 2024
e65d674
Merge pull request #1411 from bgilhome-now/feature/1410-webform-mappi…
waitingallday Dec 16, 2024
0dc2178
feat(@dpc-sdp/ripple-ui-forms): display items in the order they're se…
lambry Dec 16, 2024
882db00
Merge pull request #1405 from dpc-sdp/bugfix/nuxt-console-errors
dylankelly Dec 16, 2024
064b5bb
Merge pull request #1406 from dpc-sdp/feature/SD-569-data-driven-comp…
dylankelly Dec 16, 2024
0fa76b8
Merge pull request #1399 from dpc-sdp/feature/dropdown-combobox
dylankelly Dec 16, 2024
78688e7
feat(@dpc-sdp/ripple-tide-grant): display status first, add closes to…
lambry Dec 16, 2024
4e4dbed
fix(@dpc-sdp/ripple-tide-grant): update formatting test
lambry Dec 17, 2024
20c2925
Merge branch 'release/2.23.0' into feature/SD-403-decoupled-map-searc…
jeffdowdle Dec 17, 2024
339a312
test(@dpc-sdp/ripple-tide-search): added tests for map search banner
jeffdowdle Dec 17, 2024
937003b
Merge pull request #1412 from dpc-sdp/feature/grants-improvements
lambry Dec 18, 2024
8dfdcdf
fix(@dpc-sdp/ripple-ui-forms): always set searchInput focus
lambry Dec 19, 2024
824bb99
Merge pull request #1413 from dpc-sdp/feature/dropdown-combobox
lambry Dec 19, 2024
1cdae25
Merge pull request #1388 from dpc-sdp/feature/SD-403-decoupled-map-se…
dylankelly Dec 19, 2024
ea62ddb
chore: release 2.23.0
sdpdeploy Dec 19, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 0 additions & 81 deletions .github/workflows/studio.yml

This file was deleted.

4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Changelog

## v2.23.0

[compare changes](https://github.com/dpc-sdp/ripple-framework/compare/2.23.0...v2.23.0)

## v2.22.0

[compare changes](https://github.com/dpc-sdp/ripple-framework/compare/2.22.0...v2.22.0)
Expand Down
19 changes: 19 additions & 0 deletions examples/nuxt-app/layers/example-data-driven-component/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
## About this layer

An example of setting up a data driven component for testing purposes

Data driven components can be registered in the Nuxt `app.config` file:

```ts
export default defineAppConfig({
ripple: {
dataDrivenComponents: {
// add key of field_data_driven_component and value of component name to render
// eg: find_a_council_map: 'VicCouncilLookup'
example_ddc: 'ExampleDDC'
}
}
})
```

Note that the vue component (e.g. ExampleDDC) must be declared globally for this to work, see https://nuxt.com/docs/guide/directory-structure/components.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
export default defineAppConfig({
ripple: {
featureFlags: {
contentCollectionSearchConnector: 'elasticsearch'
},
dataDrivenComponents: {
// add key of field_data_driven_component and value of component name to render
// eg: find_a_council_map: 'VicCouncilLookup'
example_ddc: 'ExampleDDC'
}
}
})
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<template>
<h3>{{ title }}</h3>
<div v-html="description" />
<p>{{ testCustomProp }}</p>
</template>

<script setup lang="ts">
interface Props {
title: string
description: string
testCustomProp: string
}

defineProps<Props>()
</script>
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import { defineNuxtConfig } from 'nuxt/config'

export default defineNuxtConfig({})
2 changes: 2 additions & 0 deletions examples/nuxt-app/layers/fixture-api/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,5 @@ No backend is needed, the API is stubbed with flat file json fixtures (also used
2. [_fixture/tide-site](http://localhost:3000/_fixture/tide-site) Fixtures page content, but uses back end for site content

3. [_fixture/page-exposed](http://localhost:3000/_fixture/page-exposed) Fixtures both page and site content, expose all layout slots

4. [_fixture/document](http://localhost:3000/_fixture/document) Edge case example for cheerio rendering
11 changes: 10 additions & 1 deletion examples/nuxt-app/nuxt.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,20 @@ export default defineNuxtConfig({
'./layers/example-components',
'./layers/fixture-api',
'./layers/map-features',
'./layers/ripple-ui-forms-ext'
'./layers/ripple-ui-forms-ext',
'./layers/example-data-driven-component'
],
// Nuxt devtools
sourcemap: true,
devtools: {
enabled: false
},
// Vite HMR temporary fix - see https://github.com/nuxt/nuxt/discussions/27779
vite: {
server: {
hmr: {
clientPort: 3000
}
}
}
})
Binary file added examples/nuxt-app/public/placeholders/mapbg.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
97 changes: 57 additions & 40 deletions examples/nuxt-app/test/features/landingpage/forms.feature
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ Feature: Forms
| required |
| true |
Then a select field with the label "Term select" should exist
Then a select field with the label "Searchable single select" should exist
Then a select field with the label "Searchable multi select" should exist
Then a radio group field with the label "Type of person" should exist with the following options
| label |
| Dog person |
Expand Down Expand Up @@ -58,11 +60,12 @@ Feature: Forms
Then the error summary should not display
When I submit the form with ID "full_form"
Then the error summary should display with the following errors
| text | url |
| You must enter your first name | /kitchen-sink#first_name |
| The message field is required | /kitchen-sink#message |
| Must choose a favourite colour | /kitchen-sink#favourite_colour |
| You must accept the terms | /kitchen-sink#i_accept_the_terms |
| text | url |
| You must enter your first name | /kitchen-sink#first_name |
| The message field is required | /kitchen-sink#message |
| Must choose a favourite colour | /kitchen-sink#favourite_colour |
| The searchable single select is required | /kitchen-sink#searchable_single_select |
| You must accept the terms | /kitchen-sink#i_accept_the_terms |
Then clicking on an error summary link with text "Must choose a favourite colour" should focus on the input with ID "favourite_colour"

And the dataLayer should include the following events
Expand All @@ -79,13 +82,16 @@ Feature: Forms
And the form with ID "full_form" should exist

Then the input with the label "First name" should be valid
And the select with the label "Searchable single select" should be valid
When I submit the form with ID "full_form"
Then the input with the label "First name" should be invalid with message "You must enter your first name"
And the select with the label "Searchable single select" should be invalid with message "The searchable single select is required"
When I type "Cat" into the input with the label "First name"
Then the input with the label "First name" should be invalid with message "You must enter your first name"
And I select "Orange" by searching the select field with label "Searchable single select"

When I submit the form with ID "full_form"
Then the input with the label "First name" should be valid
Then the select with the label "Searchable single select" should be valid

@mockserver
Scenario: Form submission - Error
Expand All @@ -101,6 +107,7 @@ Feature: Forms
And I type "Here is some text to go in the textarea field" into the textarea with the label "Message"
And I click "Green" from the select field with label "Favourite colour"
And I toggle the checkbox with label "Terms and conditions"
And I click "Orange" from the select field with label "Searchable single select"

When I submit the form with ID "full_form"

Expand All @@ -126,6 +133,10 @@ Feature: Forms
And I type "0400 000 000" into the input with the label "Mobile phone"
And I type "Here is some text to go in the textarea field" into the textarea with the label "Message"
And I click "Green" from the select field with label "Favourite colour"
And I select "Mango" by searching the select field with label "Searchable single select"
And I select the following options by searching for "Ap" the select field with label "Searchable multi select"
| Aprium |
| Apricot |
And I click "Free admission" from the select field with label "Term select"
And I click "Seniors" from the select field with label "Term select"
And I click "Dog person" from the radio group with label "Type of person"
Expand All @@ -140,44 +151,50 @@ Feature: Forms
| success | Server success | Test success message |

And the dataLayer should include the following events
| event | label | form_id | field_id | type | value | component |
| update_form_field | First name | full_form | first_name | text | [redacted] | rpl-form-input |
| update_form_field | Last name | full_form | last_name | text | [redacted] | rpl-form-input |
| update_form_field | Email | full_form | email | email | [redacted] | rpl-form-input |
| update_form_field | Quantity | full_form | quantity | number | [redacted] | rpl-form-number |
| update_form_field | Website | full_form | website | url | [redacted] | rpl-form-input |
| update_form_field | Mobile phone | full_form | mobile_phone | tel | [redacted] | rpl-form-input |
| update_form_field | Message | full_form | message | textarea | [redacted] | rpl-form-textarea |
| open_form_field | Favourite colour | full_form | favourite_colour | select | | rpl-form-dropdown |
| update_form_field | Favourite colour | full_form | favourite_colour | select | Green | rpl-form-dropdown |
| open_form_field | Term select | full_form | term_select | select | | rpl-form-dropdown |
| update_form_field | Term select | full_form | term_select | select | Free admission | rpl-form-dropdown |
| open_form_field | Term select | full_form | term_select | select | Free admission | rpl-form-dropdown |
| update_form_field | Term select | full_form | term_select | select | Free admission,Seniors | rpl-form-dropdown |
| update_form_field | Type of person | full_form | person_type | radio | Dog person | rpl-form-radio-group |
| update_form_field | Favourite Locations | full_form | favourite_locations | checkbox | London | rpl-form-checkbox-group |
| update_form_field | Favourite Locations | full_form | favourite_locations | checkbox | London,Tokyo | rpl-form-checkbox-group |
| update_form_field | I accept the terms | full_form | i_accept_the_terms__checkbox | checkbox | true | rpl-form-option |
| event | label | form_id | field_id | type | value | component |
| update_form_field | First name | full_form | first_name | text | [redacted] | rpl-form-input |
| update_form_field | Last name | full_form | last_name | text | [redacted] | rpl-form-input |
| update_form_field | Email | full_form | email | email | [redacted] | rpl-form-input |
| update_form_field | Quantity | full_form | quantity | number | [redacted] | rpl-form-number |
| update_form_field | Website | full_form | website | url | [redacted] | rpl-form-input |
| update_form_field | Mobile phone | full_form | mobile_phone | tel | [redacted] | rpl-form-input |
| update_form_field | Message | full_form | message | textarea | [redacted] | rpl-form-textarea |
| open_form_field | Favourite colour | full_form | favourite_colour | select | | rpl-form-dropdown |
| update_form_field | Favourite colour | full_form | favourite_colour | select | Green | rpl-form-dropdown |
| open_form_field | Searchable single select | full_form | searchable_single_select | select | | rpl-form-dropdown |
| update_form_field | Searchable single select | full_form | searchable_single_select | select | Mango | rpl-form-dropdown |
| open_form_field | Searchable multi select | full_form | searchable_multi_select | select | | rpl-form-dropdown |
| update_form_field | Searchable multi select | full_form | searchable_multi_select | select | Aprium | rpl-form-dropdown |
| update_form_field | Searchable multi select | full_form | searchable_multi_select | select | Apricot | rpl-form-dropdown |
| open_form_field | Term select | full_form | term_select | select | | rpl-form-dropdown |
| update_form_field | Term select | full_form | term_select | select | Free admission | rpl-form-dropdown |
| open_form_field | Term select | full_form | term_select | select | Free admission | rpl-form-dropdown |
| update_form_field | Term select | full_form | term_select | select | Free admission,Seniors | rpl-form-dropdown |
| update_form_field | Type of person | full_form | person_type | radio | Dog person | rpl-form-radio-group |
| update_form_field | Favourite Locations | full_form | favourite_locations | checkbox | London | rpl-form-checkbox-group |
| update_form_field | Favourite Locations | full_form | favourite_locations | checkbox | London,Tokyo | rpl-form-checkbox-group |
| update_form_field | I accept the terms | full_form | i_accept_the_terms__checkbox | checkbox | true | rpl-form-option |

And the dataLayer should include the following events
| event | form_id | form_valid | element_text | component |
| form_submit | full_form | true | Submit | rpl-form |
| form_complete | full_form | | Submit | rpl-form |

And the dataLayer form data for "form_complete" should include the following values
| key | value |
| first_name | [redacted] |
| last_name | [redacted] |
| role | [redacted] |
| email | [redacted] |
| quantity | [redacted] |
| website | [redacted] |
| mobile_phone | [redacted] |
| dob | [redacted] |
| message | [redacted] |
| favourite_colour | Green |
| term_select | Free admission,Seniors |
| person_type | Dog person |
| favourite_locations | London,Tokyo |
| i_accept_the_terms | true |
| site_section | DPC |
| key | value |
| first_name | [redacted] |
| last_name | [redacted] |
| role | [redacted] |
| email | [redacted] |
| quantity | [redacted] |
| website | [redacted] |
| mobile_phone | [redacted] |
| dob | [redacted] |
| message | [redacted] |
| favourite_colour | Green |
| searchable_single_select | Mango |
| term_select | Free admission,Seniors |
| person_type | Dog person |
| favourite_locations | London,Tokyo |
| i_accept_the_terms | true |
| site_section | DPC |
Original file line number Diff line number Diff line change
Expand Up @@ -209,3 +209,9 @@ Feature: Home page
Then the dataLayer should include the following events
| event | element_id | element_text | label | file_name | file_extension | type | component |
| file_download | page-component-1951 | Download it | Complex image | medium.png | png | image | rpl-media-embed |

@mockserver
Scenario: Page component - Data driven component
Then a custom data driven component with ID "3553540" should exist with title "Test data driven title" and have the properties
| description | testCustomProp |
| Test data driven desc | testCustomValue |
Loading
Loading