Class: Workarea::Admin::CatalogVariantsController

Inherits:
ApplicationController
  • Object
show all
Defined in:
app/controllers/workarea/admin/catalog_variants_controller.rb

Instance Method Summary collapse

Methods inherited from ApplicationController

#current_user, #find_sort, #wrap_in_view_model, wrap_in_view_model

Methods included from Publishing

#allow_publishing!, #allow_publishing?, #set_publishing_options

Methods included from Visiting

#most_visited

Instance Method Details

#createObject



18
19
20
21
22
23
24
25
26
27
28
29
# File 'app/controllers/workarea/admin/catalog_variants_controller.rb', line 18

def create
  @variant = @product.variants.new(params[:variant])
  set_details

  if @variant.save
    flash[:success] = t('workarea.admin.catalog_variants.flash_messages.saved')
    redirect_to catalog_product_variants_path(@product)
  else
    flash[:error] = t('workarea.admin.catalog_variants.flash_messages.changes_error')
    render :new
  end
end

#destroyObject



48
49
50
51
52
# File 'app/controllers/workarea/admin/catalog_variants_controller.rb', line 48

def destroy
  @product.variants.find(params[:id]).destroy
  flash[:success] = t('workarea.admin.catalog_variants.flash_messages.removed')
  redirect_to catalog_product_variants_path(@product)
end

#detailsObject



54
55
56
57
58
59
60
61
# File 'app/controllers/workarea/admin/catalog_variants_controller.rb', line 54

def details
  @values = Catalog::DetailsQueries.find_sku_details(
    params[:name],
    params[:q]
  )

  render 'workarea/admin/shared/values'
end

#editObject



31
32
33
# File 'app/controllers/workarea/admin/catalog_variants_controller.rb', line 31

def edit
  @variant = @product.variants.find(params[:id])
end

#indexObject



8
9
10
11
12
# File 'app/controllers/workarea/admin/catalog_variants_controller.rb', line 8

def index
  @variants = @product.variants.map do |variant|
    Admin::VariantViewModel.wrap(variant)
  end
end

#moveObject



63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'app/controllers/workarea/admin/catalog_variants_controller.rb', line 63

def move
  position_data = params.fetch(:positions, {})

  position_data.each do |variant_id, position|
    variant = @product.variants.find(variant_id)
    variant.position = position
  end

  @product.save!
  flash[:success] = t(
    'workarea.admin.catalog_variants.flash_messages.sorting_saved'
  )
  head :ok
end

#newObject



14
15
16
# File 'app/controllers/workarea/admin/catalog_variants_controller.rb', line 14

def new
  @variant = @product.variants.new
end

#updateObject



35
36
37
38
39
40
41
42
43
44
45
46
# File 'app/controllers/workarea/admin/catalog_variants_controller.rb', line 35

def update
  @variant = @product.variants.find(params[:id])
  set_details

  if @variant.update_attributes(params[:variant])
    flash[:success] = t('workarea.admin.catalog_variants.flash_messages.saved')
    redirect_to catalog_product_variants_path(@product)
  else
    flash[:error] = t('workarea.admin.catalog_variants.flash_messages.changes_error')
    render :edit
  end
end