Class: Atrium::ShowcasesController

Inherits:
BaseController
  • Object
show all
Defined in:
app/controllers/atrium/showcases_controller.rb

Instance Method Summary collapse

Methods included from DescriptionsHelper

#get_description_for_showcase

Methods included from CollectionsHelper

#add_browse_facet_params, #browse_collection_link, #can_add_view_exhibit?, #edit_collection_link, #exhibit_scoped_to_items?, #get_browse_facet_path, #get_collection_id, #get_collections_list, #get_customize_page_path, #get_exhibit_set_number, #get_selected_browse_facet_path, #get_selected_browse_facets, #get_solr_documents_from_asset, #grouped_result_count, #remove_related_facet_params

Methods included from LayoutHelper

#collection_theme_if_present, #current_layout

Methods included from SolrHelper

#__initialize_collection, #add_exclude_fq_to_solr, #atrium_collection, #browse_collection_link, #browse_document_list, #browse_response, #current_extra_controller_params, #edit_collection_link, #exhibit, #exhibits, #get_collection_id, #get_current_filter_query_params, #get_exhibit_navigation_data, #grouped_result_count, #prepare_extra_controller_params_for_collection_query, #reset_extra_controller_params_after_collection_query

Methods included from AtriumHelperBehavior

#application_name, #extra_head_content, #facet_limit_for, #get_start_over_path, #javascript_includes, #link_back_to_catalog, #link_to_document, #render_constraints, #render_facet_limit, #save_collection_id_in_session, #save_exhibit_id_in_session, #set_edit_showcase_in_session, #stylesheet_links

Instance Method Details



57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'app/controllers/atrium/showcases_controller.rb', line 57

def featured
  session[:copy_folder_document_ids] = session[:folder_document_ids]
  session[:folder_document_ids] = []
  @atrium_showcase = Atrium::Showcase.find(params[:id])
  parent = @atrium_showcase.parent if @atrium_showcase.parent
  if parent.is_a?(Atrium::Collection)
    collection_id = parent.id
    exhibit_id=nil
  elsif parent.is_a?(Atrium::Exhibit)
    exhibit_id = parent.id
    collection_id = parent.atrium_collection_id
  else
    logger.error("Atrium showcase parent is invalid. Please check the parent")
    collection_id = params[:collection_id]
    exhibit_id = params[:exhibit_id]
  end
  session[:folder_document_ids] = @atrium_showcase.showcase_items[:solr_doc_ids].split(',') if @atrium_showcase.showcase_items && @atrium_showcase.showcase_items[:solr_doc_ids]
  #make sure to pass in a search_fields parameter so that it shows search results immediately
  redirect_to catalog_index_path(:add_featured=>true,:collection_id=>collection_id,:exhibit_id=>exhibit_id,:search_field=>"all_fields",:f=>params[:f])
end

#initialize_collectionObject



85
86
87
88
89
90
91
# File 'app/controllers/atrium/showcases_controller.rb', line 85

def initialize_collection
  if collection_id = determine_collection_id
    return __initialize_collection( collection_id )
  else
    return false
  end
end

#newObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'app/controllers/atrium/showcases_controller.rb', line 5

def new
  @parent=parent_object
  @atrium_showcase= Atrium::Showcase.with_selected_facets(@parent.id, @parent.class.name, params[:facet_selection]).first
  unless  @atrium_showcase
    @atrium_showcase = @parent.showcases.build({:showcases_id=>@parent.id, :showcases_type=>@parent.class.name})
    @atrium_showcase.save!
    if(params[:facet_selection])
      params[:facet_selection].collect {|key,value| facet_selection = @atrium_showcase.facet_selections.create({:solr_facet_name=>key,:value=>value.first}) }
      @atrium_showcase.save!
    end
  end
  set_edit_showcase_in_session
  redirect_to  parent_url(@atrium_showcase)
end

#refresh_showcaseObject



78
79
80
81
82
83
# File 'app/controllers/atrium/showcases_controller.rb', line 78

def refresh_showcase
  @atrium_showcase = Atrium::Showcase.find(params[:id])
  path=@atrium_showcase.for_exhibit? ? atrium_exhibit_path(:id=>@atrium_showcase.showcases_id, :f=>params[:f]) :  atrium_collection_path(:id=>@atrium_showcase.showcases_id)
  unset_edit_showcase_in_session
  redirect_to path
end


41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'app/controllers/atrium/showcases_controller.rb', line 41

def remove_featured
  @atrium_showcase = Atrium::Showcase.find(params[:id])
  text=''
  if params[:solr_doc_id]  && @atrium_showcase.showcase_items && @atrium_showcase.showcase_items[:solr_doc_ids]
    @featured_items = @atrium_showcase.showcase_items[:solr_doc_ids].split(',') || []
    @featured_items.delete_if {|x| x.eql?(params[:solr_doc_id]) }
    @atrium_showcase.showcase_items=@featured_items
    @atrium_showcase.save
    text = 'Document with id '+params[:solr_doc_id] +' was remove from featured successfully.'
  end
  #logger.debug("Showcase after updating featured: #{@atrium_showcase.inspect}")

  flash[:notice] = text
  render :text => text
end

#showObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'app/controllers/atrium/showcases_controller.rb', line 20

def show
  @atrium_showcase = Atrium::Showcase.find(params[:id])
  #TODO move this update to model rather in controller
  unless session[:folder_document_ids].blank?
    selected_document_ids = session[:folder_document_ids] || []
    #logger.debug("selected items: #{selected_document_ids.inspect}, session:#{session[:folder_document_ids].inspect}")
    @atrium_showcase.showcase_items=selected_document_ids
  end
  @atrium_showcase.save
  session_folder_ids= session[:copy_folder_document_ids] || []
  #logger.debug("Showcase after updating featured: #{@atrium_showcase.inspect}, folder_document_ids to set:#{session_folder_ids.inspect}")
  session[:folder_document_ids] = session_folder_ids
  session[:copy_folder_document_ids]=nil
  if @atrium_showcase && !@atrium_showcase.showcase_items[:solr_doc_ids].nil?
    @featured_response, @featured_documents = get_solr_response_for_field_values("id",@atrium_showcase.showcase_items[:solr_doc_ids].split(',') || [])
  end
  if params[:no_layout]
    render :layout=>false
  end
end