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 TabsController from './tabs_controller.js'
import OrganisationsController from './organisations_controller.js'
application.register('accessible-autocomplete', AccessibleAutocompleteController) application.register('accessible-autocomplete', AccessibleAutocompleteController)
application.register('conditional-filter', ConditionalFilterController) application.register('conditional-filter', ConditionalFilterController)
application.register('conditional-question', ConditionalQuestionController) application.register('conditional-question', ConditionalQuestionController)
@ -27,3 +29,4 @@ application.register('numeric-question', NumericQuestionController)
application.register('filter-layout', FilterLayoutController) application.register('filter-layout', FilterLayoutController)
application.register('search', SearchController) application.register('search', SearchController)
application.register('tabs', TabsController) 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 end
def group_organisation_options 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
end end

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

@ -48,6 +48,8 @@
:id, :id,
:name, :name,
label: { text: "Organisation type", size: "m" }, label: { text: "Organisation type", size: "m" },
"data-controller": "organisations",
"data-action": "change->organisations#updateProfitStatusOptions",
options: { disabled: [""], selected: @organisation.provider_type || "" } %> options: { disabled: [""], selected: @organisation.provider_type || "" } %>
<%= f.govuk_collection_radio_buttons :holds_own_stock, <%= f.govuk_collection_radio_buttons :holds_own_stock,
@ -75,7 +77,7 @@
<% end %> <% end %>
<%= f.govuk_collection_select :profit_status, <%= 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, :id,
:name, :name,
label: { text: "Is the organisation for-profit?", size: "m" }, label: { text: "Is the organisation for-profit?", size: "m" },

Loading…
Cancel
Save