diff --git a/app/controllers/orgs_controller.rb b/app/controllers/orgs_controller.rb index df58487..82c83a8 100644 --- a/app/controllers/orgs_controller.rb +++ b/app/controllers/orgs_controller.rb @@ -27,11 +27,7 @@ begin # Only allow super admins to change the org types and shib info - if current_user.can_super_admin? - @org.funder = params[:funder].present? - @org.institution = params[:institution].present? - @org.organisation = params[:organisation].present? - + if current_user.can_super_admin? # Handle Shibboleth identifiers if that is enabled if Rails.application.config.shibboleth_use_filtered_discovery_service shib = IdentifierScheme.find_by(name: 'shibboleth') @@ -107,7 +103,7 @@ private def org_params - params.require(:org).permit(:name, :abbreviation, :logo, :contact_email, :contact_name, :remove_logo, + params.require(:org).permit(:name, :abbreviation, :logo, :contact_email, :contact_name, :remove_logo, :org_type, :feedback_enabled, :feedback_email_subject, :feedback_email_msg) end end \ No newline at end of file diff --git a/app/views/orgs/_profile_form.html.erb b/app/views/orgs/_profile_form.html.erb index 1dc27d1..cde9d41 100644 --- a/app/views/orgs/_profile_form.html.erb +++ b/app/views/orgs/_profile_form.html.erb @@ -8,7 +8,7 @@
| <%= _('Organisation') %> | <%= paginable_sort_link('name') %> +<%= _('Organisation') %> <%= paginable_sort_link('name') %> | <%= _('Administrator Email') %> <%= paginable_sort_link('contact_email') %> | <%= _('Organisation Type(s)') %> <%= paginable_sort_link('optional_subset') %> | <%= _('Templates') %> <%= paginable_sort_link('updated_at') %> | diff --git a/lib/assets/javascripts/views/orgs/admin_edit.js b/lib/assets/javascripts/views/orgs/admin_edit.js index 90175f5..76a2c21 100644 --- a/lib/assets/javascripts/views/orgs/admin_edit.js +++ b/lib/assets/javascripts/views/orgs/admin_edit.js @@ -22,13 +22,26 @@ toggleFeedback(); enableValidations($('#edit_org_profile_form')); + + // update the hidden org_type field based on the checkboxes selected + const calculateOrgType = () => { + let orgType = 0; + $('input.org_types:checked').each((i, el) => { + orgType += parseInt($(el).val(), 10); + }); + $('#org_org_type').val((orgType === 0 ? '' : orgType.toString())); + }; + $('input.org_types').on('click', calculateOrgType); + $('#edit_org_profile_form').on('submit', (e) => { + // Collect links const links = {}; eachLinks((ctx, value) => { links[ctx] = value; }).done(() => { $('#org_links').val(JSON.stringify(links)); }); + if (!validate(e.target)) { e.preventDefault(); }
|---|