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 %>