diff --git a/app/helpers/bucket_views_helper.rb b/app/helpers/bucket_views_helper.rb new file mode 100644 index 000000000..a755ab38e --- /dev/null +++ b/app/helpers/bucket_views_helper.rb @@ -0,0 +1,16 @@ +module BucketViewsHelper + def bucket_view_form(path, method:, id:) + form_tag path, method: method, id: id do + concat hidden_field_tag(:order_by, params[:order_by]) + concat hidden_field_tag(:status, params[:status]) + + Array(params[:assignee_ids]).each do |assignee_id| + concat hidden_field_tag(nil, assignee_id, name: "assignee_ids[]") + end + + Array(params[:tag_ids]).each do |tag_id| + concat hidden_field_tag(nil, tag_id, name: "tag_ids[]") + end + end + end +end diff --git a/app/views/bubbles/filters/_bucket_view_form.html.erb b/app/views/bubbles/filters/_bucket_view_form.html.erb index 07f939c8e..00543d785 100644 --- a/app/views/bubbles/filters/_bucket_view_form.html.erb +++ b/app/views/bubbles/filters/_bucket_view_form.html.erb @@ -1,9 +1,8 @@ -<%= button_to bucket_views_path(bucket), class: "btn", style: "font-size: 0.4em;" do %> - <%= hidden_field_tag :order_by, params[:order_by], name: "view[order_by]" %> - <%= hidden_field_tag :status, params[:status], name: "view[status]" %> - <%= hidden_field_tag :assignee_ids, Array(params[:assignee_ids]).join(","), name: "view[assignee_ids]" %> - <%= hidden_field_tag :tag_ids, Array(params[:tag_ids]).join(","), name: "view[tag_ids]" %> +<% bucket_view ||= Bucket::View.new %> +<%= bucket_view_form bucket_views_path(bucket), method: :post, id: dom_id(bucket_view, :new_form) %> + +<%= button_tag type: :submit, form: dom_id(bucket_view, :new_form), class: "btn", style: "font-size: 0.4em;" do %> <%= image_tag "add.svg", aria: { hidden: true }, size: 24 %> - Save filters + New <% end %>