Class: HrLite::Admin::AssetsController

Inherits:
BaseController show all
Defined in:
app/controllers/hr_lite/admin/assets_controller.rb

Overview

Who has the laptop.

Instance Method Summary collapse

Instance Method Details

#assignObject



26
27
28
29
30
31
32
33
# File 'app/controllers/hr_lite/admin/assets_controller.rb', line 26

def assign
  asset = Asset.find(params[:id])
  user = HrLite.user_klass.find(params[:user_id])
  asset.assign_to!(user, actor: hr_current_user)
  redirect_to admin_assets_path, notice: "#{asset.name} given to #{HrLite.display_name(user)}."
rescue ActiveRecord::RecordInvalid
  redirect_to admin_assets_path, alert: "#{asset.name} is already with somebody."
end

#createObject



17
18
19
20
21
22
23
24
# File 'app/controllers/hr_lite/admin/assets_controller.rb', line 17

def create
  @asset = Asset.new(asset_params)
  if @asset.save
    redirect_to admin_assets_path, notice: "#{@asset.name} added."
  else
    render :new, status: :unprocessable_entity
  end
end

#indexObject



8
9
10
11
# File 'app/controllers/hr_lite/admin/assets_controller.rb', line 8

def index
  @assets = paginate(Asset.order(:status, :name).includes(asset_assignments: :user))
  @outstanding = AssetAssignment.live.includes(:asset, :user)
end

#newObject



13
14
15
# File 'app/controllers/hr_lite/admin/assets_controller.rb', line 13

def new
  @asset = Asset.new
end

#take_backObject



35
36
37
38
39
40
41
42
# File 'app/controllers/hr_lite/admin/assets_controller.rb', line 35

def take_back
  asset = Asset.find(params[:id])
  asset.return!(actor: hr_current_user, condition: params[:condition_note],
                status: params[:status].presence_in(Asset::STATUSES) || "available")
  redirect_to admin_assets_path, notice: "#{asset.name} taken back."
rescue ActiveRecord::RecordInvalid
  redirect_to admin_assets_path, alert: "#{asset.name} is not with anybody."
end