Class: Spree::Transit::AmenitiesController

Inherits:
BaseController
  • Object
show all
Defined in:
app/controllers/spree/transit/amenities_controller.rb

Instance Method Summary collapse

Methods inherited from BaseController

#collection_url, #current_vendor, #edit_object_url, #page, #per_page, #required_vendor_user!, #vendors

Instance Method Details

#collectionObject



40
41
42
43
44
45
46
47
48
# File 'app/controllers/spree/transit/amenities_controller.rb', line 40

def collection
  load_data

  @objects = model_class.where(kind: :vehicle_type)
  @search = @objects.ransack(params[:q])
  @collection = @search.result

  @collection
end

#load_dataObject



9
10
11
# File 'app/controllers/spree/transit/amenities_controller.rb', line 9

def load_data
  @amenities = Spree::OptionType.all
end

#load_vendorObject



50
51
52
# File 'app/controllers/spree/transit/amenities_controller.rb', line 50

def load_vendor
  @vendor ||= vendors.find { |v| v[:slug] == session[:transit_current_vendor_slug] } || vendors.first
end

#location_after_saveObject



36
37
38
# File 'app/controllers/spree/transit/amenities_controller.rb', line 36

def location_after_save
  edit_transit_amenity_path(@amenity)
end

#model_classObject



54
55
56
# File 'app/controllers/spree/transit/amenities_controller.rb', line 54

def model_class
  Spree::OptionType
end

#object_nameObject



58
59
60
# File 'app/controllers/spree/transit/amenities_controller.rb', line 58

def object_name
  'option_type'
end

#setup_new_option_valueObject



62
63
64
# File 'app/controllers/spree/transit/amenities_controller.rb', line 62

def setup_new_option_value
  @amenity.option_values.build if @amenity.option_values.empty?
end

#updateObject



26
27
28
29
30
31
32
33
34
# File 'app/controllers/spree/transit/amenities_controller.rb', line 26

def update
  load_amenity
  if @amenity.update(amenity_params)
    flash[:success] = I18n.t('amenity.update_success')
  else
    flash[:error] = "Unable to update Option Type. Errors: #{@amenity.errors.full_messages.join(', ')}"
  end
  redirect_back(fallback_location: edit_transit_amenity_path(@amenity))
end

#update_values_positionsObject



13
14
15
16
17
18
19
20
21
22
23
24
# File 'app/controllers/spree/transit/amenities_controller.rb', line 13

def update_values_positions
  ApplicationRecord.transaction do
    params[:positions].each do |id, index|
      Spree::OptionValue.where(id: id).update_all(position: index) # rubocop:disable Rails/SkipsModelValidations
    end
  end

  respond_to do |format|
    format.html { redirect_to spree.transit_routes_url }
    format.js { render plain: 'Ok' }
  end
end