From e53970d6f6895aeb544df7fc5dc5a800bf8c2dd4 Mon Sep 17 00:00:00 2001 From: Toks Date: Wed, 26 Nov 2014 19:41:54 -0500 Subject: [PATCH] Option to set category when first creating a saved search --- app/assets/javascripts/posts.js | 19 ++++++++++++++----- app/controllers/saved_searches_controller.rb | 2 +- app/views/saved_searches/_interface.html.erb | 2 +- app/views/saved_searches/create.js.erb | 1 + app/views/saved_searches/destroy.js.erb | 1 + 5 files changed, 18 insertions(+), 7 deletions(-) diff --git a/app/assets/javascripts/posts.js b/app/assets/javascripts/posts.js index 872f791a5..f9e09ef0b 100644 --- a/app/assets/javascripts/posts.js +++ b/app/assets/javascripts/posts.js @@ -14,6 +14,7 @@ if ($("#c-posts").length && $("#a-index").length) { this.initialize_excerpt(); + this.initialize_saved_searches(); } if ($("#c-posts").length && $("#a-show").length) { @@ -513,11 +514,19 @@ }); } - Danbooru.Post.save_search = function() { - $.post( - "/saved_searches.js", - {"saved_search[tag_query]": $("#tags").val()} - ); + Danbooru.Post.initialize_saved_searches = function() { + $("#save-search").click(function() { + var input = window.prompt("Category for this saved search (optional):"); + if (input !== null) { + $.post( + "/saved_searches.js", + { + "tags": $("#tags").attr("value"), + "category": input + } + ); + } + }); } })(); diff --git a/app/controllers/saved_searches_controller.rb b/app/controllers/saved_searches_controller.rb index 98dd4f084..92b94a8eb 100644 --- a/app/controllers/saved_searches_controller.rb +++ b/app/controllers/saved_searches_controller.rb @@ -14,7 +14,7 @@ class SavedSearchesController < ApplicationController end def create - @saved_search = saved_searches.create(:tag_query => params[:tags]) + @saved_search = saved_searches.create(:tag_query => params[:tags], :category => params[:category]) end def destroy diff --git a/app/views/saved_searches/_interface.html.erb b/app/views/saved_searches/_interface.html.erb index eeb3e9650..491c4272e 100644 --- a/app/views/saved_searches/_interface.html.erb +++ b/app/views/saved_searches/_interface.html.erb @@ -3,7 +3,7 @@ <% if CurrentUser.user.has_saved_searches? && saved_searches.tagged(params[:tags]) %> <%= button_to "Remove this saved search", saved_search_path(saved_searches.tagged(params[:tags]), :tags => params[:tags]), :remote => true, :method => :delete %> <% elsif CurrentUser.user.is_member? %> - <%= button_to "Save this search", saved_searches_path(:tags => params[:tags]), :remote => true, :method => :post %> + <%= button_tag "Save this search", :id => "save-search" %> <% end %> <% end %> \ No newline at end of file diff --git a/app/views/saved_searches/create.js.erb b/app/views/saved_searches/create.js.erb index 21a4f9fb7..541a3f4af 100644 --- a/app/views/saved_searches/create.js.erb +++ b/app/views/saved_searches/create.js.erb @@ -3,4 +3,5 @@ <% else %> Danbooru.notice("Search '<%= j @saved_search.tag_query %>' was saved"); $("#saved-searches-nav").html("<%= j render('saved_searches/interface', :saved_searches => CurrentUser.user.saved_searches) %>"); + Danbooru.Post.initialize_saved_searches(); <% end %> diff --git a/app/views/saved_searches/destroy.js.erb b/app/views/saved_searches/destroy.js.erb index f7181b01e..97a5fc57e 100644 --- a/app/views/saved_searches/destroy.js.erb +++ b/app/views/saved_searches/destroy.js.erb @@ -1,3 +1,4 @@ Danbooru.notice("Search '<%= j @saved_search.tag_query %>' was deleted"); $("#saved-searches-nav").html("<%= j render('saved_searches/interface', :saved_searches => CurrentUser.user.saved_searches) %>"); +Danbooru.Post.initialize_saved_searches(); $("#saved-search-<%= @saved_search.id %>").remove();