Module: Sufia::DashboardControllerBehavior

Extended by:
ActiveSupport::Concern
Includes:
Blacklight::Catalog, Hydra::BatchEditBehavior
Included in:
DashboardController
Defined in:
lib/sufia/dashboard_controller_behavior.rb

Instance Method Summary collapse

Instance Method Details

#activityObject



76
77
78
79
80
81
82
83
84
85
# File 'lib/sufia/dashboard_controller_behavior.rb', line 76

def activity
  # reverse events since we're prepending rows. without reverse, old events wind up first
  events = current_user.events.reverse
  # filter events to include only those that have occurred since params[:since]
  events.select! { |event| event[:timestamp].to_i > params[:since].to_i } if params[:since]
  # return the event, a formatted date string, and a numerical timestamp
  render :json => events.map { |event| [event[:action], "#{time_ago_in_words(Time.at(event[:timestamp].to_i))} ago", event[:timestamp].to_i] }
rescue
  render :json => [] 
end

#indexObject



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/sufia/dashboard_controller_behavior.rb', line 46

def index
  extra_head_content << view_context.auto_discovery_link_tag(:rss, sufia.url_for(params.merge(:format => 'rss')), :title => "RSS for results")
  extra_head_content << view_context.auto_discovery_link_tag(:atom, sufia.url_for(params.merge(:format => 'atom')), :title => "Atom for results")
  (@response, @document_list) = get_search_results
  @user = current_user
  @events = @user.events(100)
  @last_event_timestamp = @user.events.first[:timestamp].to_i || 0 rescue 0
  @filters = params[:f] || []
  
  # adding a key to the session so that the history will be saved so that batch_edits select all will work
  search_session[:dashboard] = true 
  respond_to do |format|
    format.html { save_current_search_params }
    format.rss  { render :layout => false }
    format.atom { render :layout => false }
  end
  
  # set up some parameters for allowing the batch controls to show appropiately
  @max_batch_size = 80
  count_on_page = @document_list.count {|doc| batch.index(doc.id)}
  @disable_select_all = @document_list.count > @max_batch_size
  batch_size = batch.uniq.size
  @result_set_size = @response.response["numFound"]
  @empty_batch = batch.empty?
  @all_checked = (count_on_page == @document_list.count)
  @entire_result_set_selected = @response.response["numFound"] == batch_size
  @batch_size_on_other_page = batch_size - count_on_page
  @batch_part_on_other_page = (@batch_size_on_other_page) > 0    
end