Class: LoansController
- Inherits:
-
ApplicationController
- Object
- ActionController::Base
- ApplicationController
- LoansController
- Defined in:
- app/controllers/loans_controller.rb
Instance Method Summary collapse
- #autocomplete ⇒ Object
-
#create ⇒ Object
POST /loans POST /loans.json.
-
#destroy ⇒ Object
DELETE /loans/1 DELETE /loans/1.json.
-
#download ⇒ Object
GET /loans/download.
-
#edit ⇒ Object
GET /loans/1/edit.
-
#index ⇒ Object
GET /loans GET /loans.json.
- #list ⇒ Object
- #loan_params ⇒ Object private
-
#new ⇒ Object
GET /loans/new.
- #recipient_form ⇒ Object
- #search ⇒ Object
-
#select_options ⇒ Object
GET /loans/select_options.
- #set_loan ⇒ Object private
-
#show ⇒ Object
GET /loans/1 GET /loans/1.json.
-
#update ⇒ Object
PATCH/PUT /loans/1 PATCH/PUT /loanss/1.json.
Methods included from DataControllerConfiguration::ProjectDataControllerConfiguration
Methods included from RequestType
Methods included from LogRecent
Methods included from Cookies
#digest_cookie, #digested_cookie_exists?
Methods included from Whitelist
Methods included from ProjectsHelper
#invalid_object, #project_link, #project_matches, #project_tag, #projects_list, #projects_search_form
Methods included from Api::Intercept
Methods included from TokenAuthentication
#intercept_project, #intercept_user, #intercept_user_or_project, #project_token_authenticate, #token_authenticate
Instance Method Details
#autocomplete ⇒ Object
86 87 88 |
# File 'app/controllers/loans_controller.rb', line 86 def autocomplete @loans = Queries::Loan::Autocomplete.new(params[:term], project_id: sessions_current_project_id).autocomplete end |
#create ⇒ Object
POST /loans POST /loans.json
30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'app/controllers/loans_controller.rb', line 30 def create @loan = Loan.new(loan_params) respond_to do |format| if @loan.save format.html { redirect_to @loan, notice: 'Loan was successfully created.' } format.json { render :show, status: :created, location: @loan } else format.html { render :new } format.json { render json: @loan.errors, status: :unprocessable_entity } end end end |
#destroy ⇒ Object
DELETE /loans/1 DELETE /loans/1.json
65 66 67 68 69 70 71 |
# File 'app/controllers/loans_controller.rb', line 65 def destroy @loan.destroy respond_to do |format| format.html { redirect_to loans_url } format.json { head :no_content } end end |
#download ⇒ Object
GET /loans/download
91 92 93 |
# File 'app/controllers/loans_controller.rb', line 91 def download send_data Export::Download.generate_csv(Loan.where(project_id: sessions_current_project_id)), type: 'text', filename: "loans_#{DateTime.now}.csv" end |
#edit ⇒ Object
GET /loans/1/edit
25 26 |
# File 'app/controllers/loans_controller.rb', line 25 def edit end |
#index ⇒ Object
GET /loans GET /loans.json
9 10 11 12 |
# File 'app/controllers/loans_controller.rb', line 9 def index @recent_objects = Loan.includes(:loan_items, :identifiers).recent_from_project_id(sessions_current_project_id).order(updated_at: :desc).limit(10) render '/shared/data/all/index' end |
#list ⇒ Object
73 74 75 76 |
# File 'app/controllers/loans_controller.rb', line 73 def list @loans = Loan.includes(:identifiers).with_project_id(sessions_current_project_id) .order(Arel.sql("LENGTH(identifier), identifier")).references(:identifiers).page(params[:page]) #.per(10) #.per(3) end |
#loan_params ⇒ Object (private)
107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
# File 'app/controllers/loans_controller.rb', line 107 def loan_params params.require(:loan).permit( :date_requested, :request_method, :date_sent, :date_received, :date_return_expected, :recipient_person_id, :recipient_address, :recipient_email, :recipient_phone, :recipient_country, :supervisor_person_id, :supervisor_email, :supervisor_phone, :date_closed, :recipient_honorific, :lender_address, :clone_from, loan_items_attributes: [ :_destroy, :id, :global_entity, :loan_item_object_type, :loan_item_object_id, :position, :total, :disposition, :date_, :date_returned_jquery ], roles_attributes: [ :id, :_destroy, :type, :person_id, :position, person_attributes: [ :last_name, :first_name, :suffix, :prefix]], ) end |
#new ⇒ Object
GET /loans/new
20 21 22 |
# File 'app/controllers/loans_controller.rb', line 20 def new @loan = Loan.new(params.permit(:clone_from)) end |
#recipient_form ⇒ Object
44 45 46 |
# File 'app/controllers/loans_controller.rb', line 44 def recipient_form render layout: 'us_letter' end |
#search ⇒ Object
78 79 80 81 82 83 84 |
# File 'app/controllers/loans_controller.rb', line 78 def search if params[:id].blank? redirect_to loan_path, notice: 'You must select an item from the list with a click or tab press before clicking show.' else redirect_to loan_path(params[:id]) end end |
#select_options ⇒ Object
GET /loans/select_options
96 97 98 |
# File 'app/controllers/loans_controller.rb', line 96 def @loans = Loan.select_optimized(sessions_current_user_id, sessions_current_project_id) end |
#set_loan ⇒ Object (private)
102 103 104 105 |
# File 'app/controllers/loans_controller.rb', line 102 def set_loan @loan = Loan.with_project_id(sessions_current_project_id).find(params[:id]) @recent_object = @loan end |
#show ⇒ Object
GET /loans/1 GET /loans/1.json
16 17 |
# File 'app/controllers/loans_controller.rb', line 16 def show end |
#update ⇒ Object
PATCH/PUT /loans/1 PATCH/PUT /loanss/1.json
50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'app/controllers/loans_controller.rb', line 50 def update respond_to do |format| if @loan.update(loan_params) @loan.reload format.html { redirect_to @loan, notice: 'Loan was successfully updated.' } format.json { render :show, status: :ok, location: @loan } else format.html { render :edit } format.json { render json: @loan.errors, status: :unprocessable_entity } end end end |