aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/controllers/admin_public_body_category_controller.rb17
-rw-r--r--app/helpers/admin_public_body_category_helper.rb14
-rw-r--r--app/views/admin_public_body_category/_form.html.erb12
3 files changed, 37 insertions, 6 deletions
diff --git a/app/controllers/admin_public_body_category_controller.rb b/app/controllers/admin_public_body_category_controller.rb
index 0fece725e..221d8e4ad 100644
--- a/app/controllers/admin_public_body_category_controller.rb
+++ b/app/controllers/admin_public_body_category_controller.rb
@@ -16,13 +16,22 @@ class AdminPublicBodyCategoryController < AdminController
end
def update
- I18n.with_locale(I18n.default_locale) do
- @category = PublicBodyCategory.find(params[:id])
+ @category = PublicBodyCategory.find(params[:id])
+ @tagged_public_bodies = PublicBody.find_by_tag(@category.category_tag)
+ heading_ids = []
+ I18n.with_locale(I18n.default_locale) do
if params[:public_body_category][:category_tag] && PublicBody.find_by_tag(@category.category_tag).count > 0 && @category.category_tag != params[:public_body_category][:category_tag]
flash[:notice] = 'There are authorities associated with this category, so the tag can\'t be renamed'
- elsif @category.update_attributes(params[:public_body_category])
- flash[:notice] = 'Category was successfully updated.'
+ else
+ if params[:headings]
+ heading_ids = params[:headings].values
+ end
+
+ if @category.update_attributes(params[:public_body_category])
+ @category.public_body_heading_ids = heading_ids
+ flash[:notice] = 'Category was successfully updated.'
+ end
end
render :action => 'edit'
diff --git a/app/helpers/admin_public_body_category_helper.rb b/app/helpers/admin_public_body_category_helper.rb
new file mode 100644
index 000000000..9c5e5cc5e
--- /dev/null
+++ b/app/helpers/admin_public_body_category_helper.rb
@@ -0,0 +1,14 @@
+module AdminPublicBodyCategoryHelper
+ def heading_is_selected?(heading)
+ if params[:headings]
+ if params[:headings]["heading_#{heading.id}"]
+ return true
+ else
+ return false
+ end
+ elsif @category.public_body_headings.include?(heading)
+ return true
+ end
+ false
+ end
+end
diff --git a/app/views/admin_public_body_category/_form.html.erb b/app/views/admin_public_body_category/_form.html.erb
index 5cda60e54..b0778d371 100644
--- a/app/views/admin_public_body_category/_form.html.erb
+++ b/app/views/admin_public_body_category/_form.html.erb
@@ -44,8 +44,7 @@ end
</div>
</div>
-<% if PublicBody.find_by_tag(@category.category_tag).count == 0 %>
-
+<% if PublicBody.find_by_tag(@category.category_tag).count == 0 or @category.errors.messages.keys.include?(:category_tag) %>
<h3>Common Fields</h3>
<div class="control-group">
@@ -55,4 +54,13 @@ end
</div>
</div>
<% end %>
+
+<h3>Headings</h3>
+<div class="control-group">
+ <% PublicBodyHeading.all.each do |heading| %>
+ <div class="span3">
+ &nbsp;<%= check_box_tag "headings[heading_#{heading.id}]", heading.id, heading_is_selected?(heading) %> <label for="headings_heading_<%= heading.id %>" class="control-label"><%= heading.name %></label>
+ </div>
+ <% end %>
+</div>
<!--[eoform:public_body_category]-->