Class: LoansController
- Inherits:
- 
      ApplicationController
      
        - Object
- ActionController::Base
- ApplicationController
- LoansController
 
- Defined in:
- app/controllers/loans_controller.rb
Constant Summary
Constants included from ProjectsHelper
ProjectsHelper::CLASSIFIER, ProjectsHelper::CLASSIFIER_ANNOTATION
Instance Method Summary collapse
- #attributes ⇒ Object
- #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 RedirectHelper
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
#cumulative_gb_per_year, #cumulative_projects_created_per_year, #document_cumulative_gb_per_year, #document_gb_per_year, #gb_per_year, #image_cumulative_gb_per_year, #image_gb_per_year, #invalid_object, #project_classification, #project_link, #project_login_link, #project_matches, #project_tag, #projects_list, #projects_search_form, #sound_cumulative_gb_per_year, #sound_gb_per_year, #taxonworks_classification, #week_in_review_graphs
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
#attributes ⇒ Object
| 67 68 69 70 71 72 | # File 'app/controllers/loans_controller.rb', line 67 def attributes render json: ::Loan.columns.select{ |a| ::Queries::Loan::Filter::ATTRIBUTES.include?( a.name.to_sym) }.collect{|b| {'name' => b.name, 'type' => b.type } } end | 
#autocomplete ⇒ Object
| 112 113 114 | # File 'app/controllers/loans_controller.rb', line 112 def autocomplete @loans = ::Queries::Loan::Autocomplete.new(params[:term], project_id: sessions_current_project_id).autocomplete end | 
#create ⇒ Object
POST /loans POST /loans.json
| 49 50 51 52 53 54 55 56 57 58 59 60 61 | # File 'app/controllers/loans_controller.rb', line 49 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
| 91 92 93 94 95 96 97 | # File 'app/controllers/loans_controller.rb', line 91 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
| 117 118 119 | # File 'app/controllers/loans_controller.rb', line 117 def download send_data Export::CSV.generate_csv(Loan.where(project_id: sessions_current_project_id)), type: 'text', filename: "loans_#{DateTime.now}.tsv" end | 
#edit ⇒ Object
GET /loans/1/edit
| 43 44 45 | # File 'app/controllers/loans_controller.rb', line 43 def edit redirect_to edit_loan_task_path(id: params[:id]) end | 
#index ⇒ Object
GET /loans GET /loans.json
| 10 11 12 13 | # File 'app/controllers/loans_controller.rb', line 10 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
| 99 100 101 102 | # File 'app/controllers/loans_controller.rb', line 99 def list @loans = Loan.includes(:identifiers).with_project_id(sessions_current_project_id) .order(Arel.sql('LENGTH(identifier), identifier')).references(:identifiers).page(params[:page]) end | 
#loan_params ⇒ Object (private)
| 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 | # File 'app/controllers/loans_controller.rb', line 133 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, :is_gift, :clone_from, :is_gift, 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
| 37 38 39 40 | # File 'app/controllers/loans_controller.rb', line 37 def new redirect_to edit_loan_task_path # @loan = Loan.new(params.permit(:clone_from)) end | 
#recipient_form ⇒ Object
| 63 64 65 | # File 'app/controllers/loans_controller.rb', line 63 def recipient_form render layout: 'us_letter' end | 
#search ⇒ Object
| 104 105 106 107 108 109 110 | # File 'app/controllers/loans_controller.rb', line 104 def search if params[:id].blank? redirect_to loan_path, alert: '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
| 122 123 124 | # File 'app/controllers/loans_controller.rb', line 122 def @loans = Loan.select_optimized(sessions_current_user_id, sessions_current_project_id) end | 
#set_loan ⇒ Object (private)
| 128 129 130 131 | # File 'app/controllers/loans_controller.rb', line 128 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
| 33 34 | # File 'app/controllers/loans_controller.rb', line 33 def show end | 
#update ⇒ Object
PATCH/PUT /loans/1 PATCH/PUT /loanss/1.json
| 76 77 78 79 80 81 82 83 84 85 86 87 | # File 'app/controllers/loans_controller.rb', line 76 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 |