-
Notifications
You must be signed in to change notification settings - Fork 256
/
folder_controller.rb
49 lines (41 loc) · 1.53 KB
/
folder_controller.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
class FolderController < BlacklightController
include Blacklight::SolrHelper
# fetch the documents that match the ids in the folder
def index
@response, @documents = get_solr_response_for_field_values("id",session[:folder_document_ids] || [])
end
# add a document_id to the folder. :id of action is solr doc id
def update
session[:folder_document_ids] = session[:folder_document_ids] || []
session[:folder_document_ids] << params[:id]
# Rails 3 uses a one line notation for setting the flash notice.
# flash[:notice] = "#{params[:title] || "Item"} successfully added to Folder"
respond_to do |format|
format.html { redirect_to :back, :notice => "#{params[:title] || "Item"} successfully added to Folder"}
format.js { render :json => session[:folder_document_ids] }
end
end
# remove a document_id from the folder. :id of action is solr_doc_id
def destroy
session[:folder_document_ids].delete(params[:id])
unless request.xhr?
respond_to do |format|
format.html do
flash[:notice] = "#{params[:title] || "Item"} successfully removed from selected items"
redirect_to :back
end
end
else
render :text => "OK"
end
end
# get rid of the items in the folder
def clear
flash[:notice] = "Cleared Selected Items"
session[:folder_document_ids] = []
respond_to do |format|
format.html { redirect_to :back }
format.js { render :json => session[:folder_document_ids] }
end
end
end