Browse Source

Add select as conditional question in radio like in logs

pull/2971/head
Manny Dinssa 2 months ago
parent
commit
02243bc6eb
  1. 3
      app/frontend/controllers/index.js
  2. 14
      app/frontend/controllers/organisations_controller.js
  3. 31
      app/views/organisations/new.html.erb

3
app/frontend/controllers/index.js

@ -19,8 +19,6 @@ import FilterLayoutController from './filter_layout_controller.js'
import TabsController from './tabs_controller.js'
import OrganisationsController from './organisations_controller.js'
application.register('accessible-autocomplete', AccessibleAutocompleteController)
application.register('conditional-filter', ConditionalFilterController)
application.register('conditional-question', ConditionalQuestionController)
@ -29,4 +27,3 @@ application.register('numeric-question', NumericQuestionController)
application.register('filter-layout', FilterLayoutController)
application.register('search', SearchController)
application.register('tabs', TabsController)
application.register('organisations', OrganisationsController)

14
app/frontend/controllers/organisations_controller.js

@ -1,14 +0,0 @@
import { Controller } from '@hotwired/stimulus'
export default class extends Controller {
static targets = ["groupSelect"]
connect() {
this.toggleGroupSelect()
}
toggleGroupSelect() {
const groupMemberYes = this.element.querySelector('input[name="organisation[group_member]"]:checked')?.value === 'true'
this.groupSelectTarget.style.display = groupMemberYes ? 'block' : 'none'
}
}

31
app/views/organisations/new.html.erb

@ -56,23 +56,24 @@
:name,
legend: { text: "Does the organisation hold its own stock?", size: "m" } %>
<%= f.govuk_collection_radio_buttons :group_member,
[OpenStruct.new(id: true, name: "Yes"), OpenStruct.new(id: false, name: "No")],
:id,
:name,
legend: { text: "Is this organisation part of a housing provider group structure?", size: "m" },
"data-action": "change->group-member#toggleGroupSelect" %>
<% group_organisation_options = Organisation.visible.map { |org| OpenStruct.new(id: org.id, name: org.name) } %>
<div data-group-member-target="groupSelect">
<%= f.govuk_collection_select :group,
group_organisation_options,
:id,
:name,
label: { text: "Search for an organisation that is part of the same group as this organisation", size: "m" },
"data-controller": %w[accessible-autocomplete conditional-filter organisations] %>
</div>
<%= f.govuk_radio_buttons_fieldset :group_member,
legend: { text: "Is this organisation part of a housing provider group structure?", size: "m" } do %>
<%= f.govuk_radio_button :group_member, true,
label: { text: "Yes" },
"data-controller": "conditional-question",
"data-action": "click->conditional-question#displayConditional",
"data-info": { conditional_questions: { group: [true] }, type: "organisation" }.to_json do %>
<%= f.govuk_collection_select :group,
group_organisation_options,
:id,
:name,
label: { text: "Search for an organisation that is part of the same group as this organisation", size: "m" },
"data-controller": %w[accessible-autocomplete conditional-filter] %>
<% end %>
<%= f.govuk_radio_button :group_member, false, label: { text: "No" } %>
<% end %>
<% profit_options = [
OpenStruct.new(id: 1, name: "Non-profit"),

Loading…
Cancel
Save