Class: ConstructorPages::FieldsController

Inherits:
ConstructorCore::AdminController
  • Object
show all
Includes:
ConstructorCore::DeviseHelper
Defined in:
app/controllers/constructor_pages/fields_controller.rb

Instance Method Summary collapse

Instance Method Details

#create ⇒ Object



21
22
23
24
25
26
27
28
29
# File 'app/controllers/constructor_pages/fields_controller.rb', line 21

def create
  @field = Field.new params[:field]

  if @field.save
    redirect_to edit_template_path(@field.template_id), :notice => "Поле «#{@field.name}» успешно добавлено."
  else
    render :action => 'new', :template_id => @field.template_id
  end
end

#destroy ⇒ Object



58
59
60
61
62
63
64
# File 'app/controllers/constructor_pages/fields_controller.rb', line 58

def destroy
  @field = Field.find(params[:id])
  name = @field.name
  template = @field.template.id
  @field.destroy
  redirect_to edit_template_url(template), :notice => "Поле «#{name}» успешно удалено."
end

#edit ⇒ Object



16
17
18
19
# File 'app/controllers/constructor_pages/fields_controller.rb', line 16

def edit
  @field = Field.find(params[:id])
  @field.template = Template.find(params[:template_id])
end

#move_down ⇒ Object



72
73
74
75
76
# File 'app/controllers/constructor_pages/fields_controller.rb', line 72

def move_down
  @field = Field.find(params[:id])
  @field.move_lower
  redirect_to :back, :notice => 'Поле успешно перемещено.'
end

#move_up ⇒ Object



66
67
68
69
70
# File 'app/controllers/constructor_pages/fields_controller.rb', line 66

def move_up
  @field = Field.find(params[:id])
  @field.move_higher
  redirect_to :back, :notice => 'Поле успешно перемещено.'
end

#new ⇒ Object



11
12
13
14
# File 'app/controllers/constructor_pages/fields_controller.rb', line 11

def new
  @field = Field.new
  @field.template = Template.find(params[:template_id])
end

#update ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'app/controllers/constructor_pages/fields_controller.rb', line 31

def update
  @field = Field.find params[:id]

    if @field.type_value != params[:field][:type_value]
      "constructor_pages/types/#{@field.type_value}_type".classify.constantize.where(:field_id => @field.id).each do |field|
        new_field = "constructor_pages/types/#{params[:field][:type_value]}_type".classify.constantize.new(
            :field_id => @field.id,
            :page_id => field.page_id)

        if @field.type_value != 'image' \
        and params[:field][:type_value] != 'image' \
        and not (@field.type_value == 'string' and field.value.strip == '')
            new_field.value = field.value
        end

        new_field.save

        field.destroy
      end
    end
  if @field.update_attributes params[:field]
    redirect_to edit_template_url(@field.template.id), :notice => "Поле «#{@field.name}» успешно обновлено."
  else
    render :action => "edit"
  end
end