Class: Reference::DataListsController

Inherits:
BaseController
  • Object
show all
Defined in:
app/controllers/reference/data_lists_controller.rb

Instance Method Summary collapse

Methods inherited from BaseController

#module_symbol_for_paths

Instance Method Details

#createObject

POST /reference/data_lists POST /reference/data_lists.json



64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# File 'app/controllers/reference/data_lists_controller.rb', line 64

def create
  @data_list = if @data_listable.instance_of?(DataOption)
    @data_listable.nested_data_list = DataList.new(params[:data_list])
  else
    @data_listable.data_lists.new(params[:data_list])
  end

  respond_to do |format|
    if @data_list.save
      format.html do
        success_path = if @data_listable.instance_of?(DataOption)
          [:reference, @data_listable, :nested_data_list]
        else
          [:reference, @data_listable, @data_list]
        end
        
         redirect_to success_path, notice: 'Data List was successfully created.' 
      end
      format.json { render json: @data_list, status: :created, location: @data_list }
    else
      format.html do
          # Set breadcrumbs again, otherwise they'd be lost on render of 'new' template:
          configure_breadcrumbs @data_listable, :data_list
          render action: "new"
        end
      format.json { render json: @data_list.errors, status: :unprocessable_entity }
    end
  end
end

#destroyObject

DELETE /reference/data_lists/1 DELETE /reference/data_lists/1.json



115
116
117
118
119
120
121
122
123
124
125
126
127
128
# File 'app/controllers/reference/data_lists_controller.rb', line 115

def destroy
  retrieve_data_list
  root_resource = @data_list.root_resource
  @data_list.destroy if @data_list
  root_resource.export_update # Allow root resource to save update to disk

  Reference::DataTypes.reload # Update all of our reference data, given the removed DataList

  respond_to do |format|
    format.html { redirect_to [:reference, @data_listable, :data_lists],
                              notice: 'Data List was successfully destroyed.' }
    format.json { head :no_content }
  end
end

#editObject

GET /reference/data_lists/1/edit



57
58
59
# File 'app/controllers/reference/data_lists_controller.rb', line 57

def edit
  retrieve_data_list
end

#indexObject

GET /reference/data_lists GET /reference/data_lists.json

The index action should only ever be called on this polymorphic model in the context of a parent resource (our @data_listable).



11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'app/controllers/reference/data_lists_controller.rb', line 11

def index
  if @data_listable.instance_of?(DataOption)
    redirect_to :show
  end

  @data_lists = @data_listable.data_lists
  configure_breadcrumbs @data_listable, :data_lists

  respond_to do |format|
    format.html # index.html.erb
    format.json { render json: @data_lists }
  end
end

#newObject

GET /reference/data_lists/new GET /reference/data_lists/new.json



40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'app/controllers/reference/data_lists_controller.rb', line 40

def new
  @data_list = if @data_listable.instance_of?(DataOption)
    DataList.new(DataList.default_options)
  else
    @data_listable.data_lists.new(DataList.default_options)
  end
  
  configure_breadcrumbs @data_listable, :data_list

  respond_to do |format|
    format.html # new.html.erb
    format.json { render json: @data_list }
  end
end

#showObject

GET /reference/data_lists/1 GET /reference/data_lists/1.json



28
29
30
31
32
33
34
35
# File 'app/controllers/reference/data_lists_controller.rb', line 28

def show
  retrieve_data_list
 
  respond_to do |format|
    format.html # show.html.erb
    format.json { render json: @data_list }
  end
end

#updateObject

PUT /reference/data_lists/1 PUT /reference/data_lists/1.json



97
98
99
100
101
102
103
104
105
106
107
108
109
110
# File 'app/controllers/reference/data_lists_controller.rb', line 97

def update
  retrieve_data_list

  respond_to do |format|
    if @data_list.update_attributes(params[:data_list])
      Reference::DataTypes.reload # Update all of our reference data, given the updated DataList
      format.html { redirect_to [:reference, @data_listable, @data_list], notice: 'Data List was successfully updated.' }
      format.json { head :no_content }
    else
      format.html { render action: "edit" }
      format.json { render json: @data_list.errors, status: :unprocessable_entity }
    end
  end
end