Browse Source

Update new org page with js

pull/2971/head
Manny Dinssa 2 months ago
parent
commit
ee05d27b57
  1. 3
      app/frontend/controllers/index.js
  2. 17
      app/frontend/controllers/organisations_controller.js
  3. 8
      app/helpers/organisations_helper.rb
  4. 4
      app/views/organisations/new.html.erb

3
app/frontend/controllers/index.js

@ -19,6 +19,8 @@ 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)
@ -27,3 +29,4 @@ application.register('numeric-question', NumericQuestionController)
application.register('filter-layout', FilterLayoutController)
application.register('search', SearchController)
application.register('tabs', TabsController)
application.register('organisations', OrganisationsController )

17
app/frontend/controllers/organisations_controller.js

@ -0,0 +1,17 @@
import { Controller } from '@hotwired/stimulus'
export default class extends Controller {
updateProfitStatusOptions(event) {
const providerType = event.target.value;
const profitStatusSelect = document.getElementById('organisation-profit-status-field');
if (profitStatusSelect) {
profitStatusSelect.disabled = false;
if (providerType === "LA") {
profitStatusSelect.value = "3";
profitStatusSelect.disabled = true;
}
}
}
}

8
app/helpers/organisations_helper.rb

@ -79,6 +79,12 @@ module OrganisationsHelper
end
def group_organisation_options
[OpenStruct.new(id: "", name: "")] + Organisation.visible.map { |org| OpenStruct.new(id: org.id, name: org.name) }
null_option = [OpenStruct.new(id: "", name: "Select an option")]
organisations = Organisation.visible.map { |org| OpenStruct.new(id: org.id, name: org.name) }
null_option + organisations
end
def profit_status_options
Organisation::PROFIT_STATUS.map { |key, value| OpenStruct.new(id: value, name: key.to_s.humanize) }
end
end

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

@ -48,6 +48,8 @@
:id,
:name,
label: { text: "Organisation type", size: "m" },
"data-controller": "organisations",
"data-action": "change->organisations#updateProfitStatusOptions",
options: { disabled: [""], selected: @organisation.provider_type || "" } %>
<%= f.govuk_collection_radio_buttons :holds_own_stock,
@ -75,7 +77,7 @@
<% end %>
<%= f.govuk_collection_select :profit_status,
Organisation::PROFIT_STATUS.map { |key, value| OpenStruct.new(id: value, name: key.to_s.humanize) },
profit_status_options,
:id,
:name,
label: { text: "Is the organisation for-profit?", size: "m" },

Loading…
Cancel
Save