Module: Hyrax::WorksControllerBehavior
- Extended by:
- ActiveSupport::Concern
- Includes:
- Blacklight::AccessControls::Catalog, Blacklight::Base
- Included in:
- BatchUploadsController, CitationsController
- Defined in:
- app/controllers/concerns/hyrax/works_controller_behavior.rb
Instance Method Summary collapse
- #create ⇒ Object
- #destroy ⇒ Object
-
#edit ⇒ Object
rubocop:enable Metrics/AbcSize.
- #file_manager ⇒ Object
- #inspect_work ⇒ Object
- #manifest ⇒ Object
- #new ⇒ Object
-
#show ⇒ Object
Finds a solr document matching the id and sets @presenter rubocop:disable Metrics/AbcSize.
- #update ⇒ Object
Instance Method Details
#create ⇒ Object
65 66 67 68 69 70 71 72 73 |
# File 'app/controllers/concerns/hyrax/works_controller_behavior.rb', line 65 def create case curation_concern when ActiveFedora::Base original_input_params_for_form = params[hash_key_for_curation_concern].deep_dup actor.create(actor_environment) ? after_create_response : after_create_error(curation_concern.errors, original_input_params_for_form) else create_valkyrie_work end end |
#destroy ⇒ Object
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
# File 'app/controllers/concerns/hyrax/works_controller_behavior.rb', line 108 def destroy case curation_concern when ActiveFedora::Base title = curation_concern.to_s env = Actors::Environment.new(curation_concern, current_ability, {}) return unless actor.destroy(env) Hyrax.config.callback.run(:after_destroy, curation_concern.id, current_user, warn: false) else transactions['work_resource.destroy'] .with_step_args('work_resource.delete' => { user: current_user }, 'work_resource.delete_all_file_sets' => { user: current_user }) .call(curation_concern).value! title = Array(curation_concern.title).first end after_destroy_response(title) end |
#edit ⇒ Object
rubocop:enable Metrics/AbcSize
94 95 96 97 |
# File 'app/controllers/concerns/hyrax/works_controller_behavior.rb', line 94 def edit @admin_set_options = available_admin_sets build_form end |
#file_manager ⇒ Object
127 128 129 |
# File 'app/controllers/concerns/hyrax/works_controller_behavior.rb', line 127 def file_manager @form = presenter end |
#inspect_work ⇒ Object
131 132 133 134 |
# File 'app/controllers/concerns/hyrax/works_controller_behavior.rb', line 131 def inspect_work raise Hydra::AccessDenied unless current_ability.admin? presenter end |
#manifest ⇒ Object
136 137 138 139 140 141 142 143 144 |
# File 'app/controllers/concerns/hyrax/works_controller_behavior.rb', line 136 def manifest headers['Access-Control-Allow-Origin'] = '*' json = iiif_manifest_builder.manifest_for(presenter: iiif_manifest_presenter) respond_to do |wants| wants.any { render json: json } end end |
#new ⇒ Object
57 58 59 60 61 62 63 |
# File 'app/controllers/concerns/hyrax/works_controller_behavior.rb', line 57 def new @admin_set_options = available_admin_sets # TODO: move these lines to the work form builder in Hyrax curation_concern.depositor = current_user.user_key curation_concern.admin_set_id = admin_set_id_for_new build_form end |
#show ⇒ Object
Finds a solr document matching the id and sets @presenter rubocop:disable Metrics/AbcSize
78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'app/controllers/concerns/hyrax/works_controller_behavior.rb', line 78 def show @user_collections = user_collections respond_to do |wants| wants.html { presenter && parent_presenter } wants.json do # load @curation_concern manually because it's skipped for html @curation_concern = load_curation_concern curation_concern # This is here for authorization checks (we could add authorize! but let's use the same method for CanCanCan) render :show, status: :ok end additional_response_formats(wants) end end |
#update ⇒ Object
99 100 101 102 103 104 105 106 |
# File 'app/controllers/concerns/hyrax/works_controller_behavior.rb', line 99 def update case curation_concern when ActiveFedora::Base actor.update(actor_environment) ? after_update_response : after_update_error(curation_concern.errors) else update_valkyrie_work end end |