Module: Hyrax::CollectionsControllerBehavior

Extended by:
ActiveSupport::Concern
Includes:
Blacklight::AccessControls::Catalog, Blacklight::Base
Included in:
Admin::AdminSetsController, AdminSetsController, CollectionsController
Defined in:
app/controllers/concerns/hyrax/collections_controller_behavior.rb

Instance Method Summary collapse

Instance Method Details

#after_createObject



91
92
93
94
95
96
97
98
# File 'app/controllers/concerns/hyrax/collections_controller_behavior.rb', line 91

def after_create
  form
  respond_to do |format|
    ActiveFedora::SolrService.instance.conn.commit
    format.html { redirect_to collection_path(@collection), notice: 'Collection was successfully created.' }
    format.json { render json: @collection, status: :created, location: @collection }
  end
end

#after_create_errorObject



100
101
102
103
104
105
106
# File 'app/controllers/concerns/hyrax/collections_controller_behavior.rb', line 100

def after_create_error
  form
  respond_to do |format|
    format.html { render action: 'new' }
    format.json { render json: @collection.errors, status: :unprocessable_entity }
  end
end

#after_destroy(id) ⇒ Object



146
147
148
149
150
151
152
153
154
# File 'app/controllers/concerns/hyrax/collections_controller_behavior.rb', line 146

def after_destroy(id)
  respond_to do |format|
    format.html do
      redirect_to dashboard_collections_path,
                  notice: "Collection #{id} was successfully deleted"
    end
    format.json { head :no_content, location: @collection }
  end
end

#after_destroy_error(id) ⇒ Object



156
157
158
159
160
161
162
163
164
# File 'app/controllers/concerns/hyrax/collections_controller_behavior.rb', line 156

def after_destroy_error(id)
  respond_to do |format|
    format.html do
      flash[:notice] = "Collection #{id} could not be deleted"
      render :edit, status: :unprocessable_entity
    end
    format.json { render json: { id: id }, status: :unprocessable_entity, location: @collection }
  end
end

#after_updateObject



118
119
120
121
122
123
124
125
126
# File 'app/controllers/concerns/hyrax/collections_controller_behavior.rb', line 118

def after_update
  if flash[:notice].nil?
    flash[:notice] = 'Collection was successfully updated.'
  end
  respond_to do |format|
    format.html { redirect_to collection_path(@collection) }
    format.json { render json: @collection, status: :updated, location: @collection }
  end
end

#after_update_errorObject



128
129
130
131
132
133
134
135
# File 'app/controllers/concerns/hyrax/collections_controller_behavior.rb', line 128

def after_update_error
  form
  query_collection_members
  respond_to do |format|
    format.html { render action: 'edit' }
    format.json { render json: @collection.errors, status: :unprocessable_entity }
  end
end

#collectionObject



174
175
176
# File 'app/controllers/concerns/hyrax/collections_controller_behavior.rb', line 174

def collection
  action_name == 'show' ? @presenter : @collection
end

#createObject



108
109
110
111
112
113
114
115
116
# File 'app/controllers/concerns/hyrax/collections_controller_behavior.rb', line 108

def create
  @collection.(current_user.user_key)
  add_members_to_collection unless batch.empty?
  if @collection.save
    after_create
  else
    after_create_error
  end
end

#deny_collection_access(exception) ⇒ Object



57
58
59
60
61
62
63
64
65
66
# File 'app/controllers/concerns/hyrax/collections_controller_behavior.rb', line 57

def deny_collection_access(exception)
  if exception.action == :edit
    redirect_to(url_for(action: 'show'), alert: 'You do not have sufficient privileges to edit this document')
  elsif current_user && current_user.persisted?
    redirect_to root_url, alert: exception.message
  else
    session['user_return_to'] = request.url
    redirect_to main_app.new_user_session_url, alert: exception.message
  end
end

#destroyObject



166
167
168
169
170
171
172
# File 'app/controllers/concerns/hyrax/collections_controller_behavior.rb', line 166

def destroy
  if @collection.destroy
    after_destroy(params[:id])
  else
    after_destroy_error(params[:id])
  end
end

#editObject



84
85
86
87
88
89
# File 'app/controllers/concerns/hyrax/collections_controller_behavior.rb', line 84

def edit
  query_collection_members
  # this is used to populate the "add to a collection" action for the members
  @user_collections = find_collections_for_form
  form
end

#indexObject



68
69
70
71
72
73
# File 'app/controllers/concerns/hyrax/collections_controller_behavior.rb', line 68

def index
  # run the solr query to find the collections
  query = list_search_builder.with(params).query
  @response = repository.search(query)
  @document_list = @response.documents
end

#newObject



75
76
77
# File 'app/controllers/concerns/hyrax/collections_controller_behavior.rb', line 75

def new
  form
end

#showObject



79
80
81
82
# File 'app/controllers/concerns/hyrax/collections_controller_behavior.rb', line 79

def show
  presenter
  query_collection_members
end

#updateObject



137
138
139
140
141
142
143
144
# File 'app/controllers/concerns/hyrax/collections_controller_behavior.rb', line 137

def update
  process_member_changes
  if @collection.update(collection_params.except(:members))
    after_update
  else
    after_update_error
  end
end