inline_forms 1.1.12 → 1.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -45,10 +45,8 @@ class InlineFormsController < ApplicationController
45
45
 
46
46
  include InlineFormsHelper
47
47
 
48
- # shows a list of all objects from class @Klass, using will_paginate
49
- #
50
- # The link to 'new' allows you to create a new record.
51
- #
48
+ # :index shows a list of all objects from class @Klass, using will_paginate,
49
+ # including a link to 'new', that allows you to create a new record.
52
50
  def index
53
51
  @update_span = params[:update]
54
52
  @parent_class = params[:parent_class]
@@ -57,11 +55,22 @@ class InlineFormsController < ApplicationController
57
55
  @PER_PAGE = 5 unless @parent_class.nil?
58
56
  # if the parent_class is not nill, we are in associated list and we don't search there.
59
57
  # also, make sure the Model that you want to do a search on has a :name attribute. TODO
60
- @parent_class.nil? ? conditions = [ @Klass.order_by_clause.to_s + " like ?", "%#{params[:search]}%" ] : conditions = [ "#{@parent_class.foreign_key} = ?", @parent_id ]
58
+ if @parent_class.nil?
59
+ conditions = [ @Klass.order_by_clause.to_s + " like ?", "%#{params[:search]}%" ]
60
+ else
61
+ conditions = [ "#{@parent_class.foreign_key} = ?", @parent_id ]
62
+ end
63
+ # if we are using cancan, then make sure to select only accessible records
61
64
  if cancan_enabled?
62
- @objects = @Klass.accessible_by(current_ability).order(@Klass.order_by_clause).paginate :page => params[:page], :per_page => @PER_PAGE || 12, :conditions => conditions
65
+ @objects = @Klass.accessible_by(current_ability).order(@Klass.order_by_clause).paginate(
66
+ :page => params[:page],
67
+ :per_page => @PER_PAGE || 12,
68
+ :conditions => conditions )
63
69
  else
64
- @objects = @Klass.order(@Klass.order_by_clause).paginate :page => params[:page], :per_page => @PER_PAGE || 12, :conditions => conditions
70
+ @objects = @Klass.order(@Klass.order_by_clause).paginate(
71
+ :page => params[:page],
72
+ :per_page => @PER_PAGE || 12,
73
+ :conditions => conditions )
65
74
  end
66
75
  respond_to do |format|
67
76
  format.html { render 'inline_forms/_list', :layout => 'inline_forms' } unless @Klass.not_accessible_through_html?
@@ -69,10 +78,9 @@ class InlineFormsController < ApplicationController
69
78
  end
70
79
  end
71
80
 
72
- # :new prepares a new object, updates the entire list of objects and replaces it with a new
73
- # empty form. After pressing OK or Cancel, the list of objects is retrieved in the same way as :index
74
- #
75
- # GET /examples/new
81
+ # :new prepares a new object, updates the list of objects and replaces it with
82
+ # an empty form. After pressing OK or Cancel, the list of objects is retrieved
83
+ # in the same way as :index
76
84
  def new
77
85
  @object = @Klass.new
78
86
  @update_span = params[:update]
@@ -87,9 +95,6 @@ class InlineFormsController < ApplicationController
87
95
  end
88
96
 
89
97
  # :edit presents a form to edit one specific attribute from an object
90
- #
91
- # GET /examples/1/edit
92
- #
93
98
  def edit
94
99
  @object = @Klass.find(params[:id])
95
100
  @attribute = params[:attribute]
@@ -101,10 +106,8 @@ class InlineFormsController < ApplicationController
101
106
  end
102
107
  end
103
108
 
104
- # :create creates the object made with :new. It then presents the list of objects.
105
- #
106
- # POST /examples
107
- #
109
+ # :create creates the object made with :new.
110
+ # It then presents the list of objects.
108
111
  def create
109
112
  object = @Klass.new
110
113
  @update_span = params[:update]
@@ -139,10 +142,8 @@ class InlineFormsController < ApplicationController
139
142
  end
140
143
  end
141
144
  end
145
+
142
146
  # :update updates a specific attribute from an object.
143
- #
144
- # PUT /examples/1
145
- #
146
147
  def update
147
148
  @object = @Klass.find(params[:id])
148
149
  @attribute = params[:attribute]
@@ -157,11 +158,8 @@ class InlineFormsController < ApplicationController
157
158
  end
158
159
  end
159
160
 
160
- # :show shows one attribute (attribute) from a record (object). It inludes the link to 'edit'
161
- #
162
- # GET /examples/1?attribute=name&form_element=text
163
- #
164
-
161
+ # :show shows one attribute (attribute) from a record (object).
162
+ # It includes the link to 'edit'
165
163
  def show
166
164
  @object = @Klass.find(params[:id])
167
165
  @attribute = params[:attribute]
@@ -191,6 +189,7 @@ class InlineFormsController < ApplicationController
191
189
  end
192
190
  end
193
191
 
192
+ # :destroy destroys the record, but also shows an undo link (with paper_trail)
194
193
  def destroy
195
194
  @update_span = params[:update]
196
195
  @object = @Klass.find(params[:id])
@@ -200,8 +199,9 @@ class InlineFormsController < ApplicationController
200
199
  end
201
200
  end
202
201
 
202
+ # :revert works like undo.
203
+ # Thanks Ryan Bates: http://railscasts.com/episodes/255-undo-with-paper-trail
203
204
  def revert
204
- # http://railscasts.com/episodes/255-undo-with-paper-trail
205
205
  @update_span = params[:update]
206
206
  @version = Version.find(params[:id])
207
207
  @version.reify.save!
@@ -209,19 +209,11 @@ class InlineFormsController < ApplicationController
209
209
  respond_to do |format|
210
210
  format.js { render :close }
211
211
  end
212
-
213
- # if @version.reify
214
- # @version.reify.save!
215
- # else
216
- # @version.item.destroy
217
- # end
218
- # link_name = params[:redo] == "true" ? "undo" : "redo"
219
- # link = view_context.link_to(link_name, revert_version_path(@version.next, :redo => !params[:redo]), :method => :post)
220
- # redirect_to :back, :notice => "Undid #{@version.event}. #{link}"
221
212
  end
222
213
 
223
214
  private
224
215
  # Get the class from the controller name.
216
+ # CountryController < InlineFormsController, so what class are we?
225
217
  def getKlass #:doc:
226
218
  @Klass = self.controller_name.classify.constantize
227
219
  end
@@ -3,7 +3,6 @@
3
3
  <script type="text/javascript">
4
4
  $(function() { $("#flash").delay(1000).fadeToggle('2000'); } );
5
5
  </script>
6
-
7
6
  <% end %>
8
7
 
9
8
  <!-- purpose: list objects. we come here from #index and from #new.
@@ -53,35 +52,31 @@ they are @object. We need this magic here to rewrite all the @variables to varia
53
52
 
54
53
  <% end %>
55
54
 
56
- <% if ul_needed %>
57
- <ul id="<%= update_span -%>" class="inline_forms_list">
55
+ <%= "<ul id=\"#{update_span}\" class=\"inline_forms_list\">" if ul_needed -%>
56
+ <!-- # link to new -->
57
+ <%= link_to_new_record("Add a new #{human_readable_class}", model_name, path_to_new, update_span, parent_class, parent_id) -%>
58
+ <!-- # list of objects -->
59
+ <% for object in objects %>
60
+ <% if parent_class.nil? %>
61
+ <% css_class_id = object.class.to_s.underscore + '_' + object.id.to_s -%>
62
+ <% path_to_object = object.class.to_s.underscore + '_path' %>
63
+ <% else %>
64
+ <% css_class_id = parent_class.to_s.underscore + '_' + parent_id.to_s + '_' + attribute.to_s.singularize.underscore + "_" + object.id.to_s -%>
65
+ <% path_to_object = attribute.to_s.singularize.underscore + "_path" %>
58
66
  <% end %>
59
- <!-- # link to new -->
60
- <%= link_to_new_record("Add a new #{human_readable_class}", model_name, path_to_new, update_span, parent_class, parent_id) -%>
61
- <!-- # list of objects -->
62
- <% for object in objects %>
63
- <% if parent_class.nil? %>
64
- <% css_class_id = object.class.to_s.underscore + '_' + object.id.to_s -%>
65
- <% path_to_object = object.class.to_s.underscore + '_path' %>
66
- <% else %>
67
- <% css_class_id = parent_class.to_s.underscore + '_' + parent_id.to_s + '_' + attribute.to_s.singularize.underscore + "_" + object.id.to_s -%>
68
- <% path_to_object = attribute.to_s.singularize.underscore + "_path" %>
69
- <% end %>
70
- <li id="<%= css_class_id -%>" class="<%= cycle('odd', 'even') -%>" >
71
- <%= link_to_destroy('del',object, css_class_id) -%>
72
- <%= link_to h(object._presentation),
73
- send( path_to_object, object, :update => css_class_id),
74
- :remote => true -%>
75
- </li>
76
- <% end -%>
77
- <!-- # pagination -->
78
- <li class="even">
79
- <% if parent_id.nil? -%>
80
- <%= will_paginate objects -%>
81
- <% else %>
82
- <%= will_paginate objects, :ajax => true, :params => {:controller => attribute, :action => :index, :id => nil, :parent_class => parent_class, :parent_id => parent_id, :update => "#{parent_class.to_s.underscore}_#{parent_id}_#{attribute}", :ul_needed => true } -%>
83
- <% end %>
67
+ <li id="<%= css_class_id -%>" class="<%= cycle('odd', 'even') -%>" >
68
+ <%= link_to_destroy('del',object, css_class_id) -%>
69
+ <%= link_to h(object._presentation),
70
+ send( path_to_object, object, :update => css_class_id),
71
+ :remote => true -%>
84
72
  </li>
85
- <% if ul_needed %>
86
- </ul>
87
- <% end %>
73
+ <% end -%>
74
+ <!-- # pagination -->
75
+ <li class="even">
76
+ <% if parent_id.nil? -%>
77
+ <%= will_paginate objects -%>
78
+ <% else %>
79
+ <%= will_paginate objects, :ajax => true, :params => {:controller => attribute, :action => :index, :id => nil, :parent_class => parent_class, :parent_id => parent_id, :update => "#{parent_class.to_s.underscore}_#{parent_id}_#{attribute}", :ul_needed => true } -%>
80
+ <% end %>
81
+ </li>
82
+ <%= "</ul>" if ul_needed -%>
data/lib/inline_forms.rb CHANGED
@@ -1,15 +1,15 @@
1
1
  require ('inline_forms/version.rb')
2
- #puts "Loading inline_forms version #{InlineForms::VERSION}"
2
+ # InlineForms is a Rails Engine that let you setup an admin interface quick and
3
+ # easy. Please install it as a gem or include it in your Gemfile.
3
4
  module InlineForms
4
-
5
- # ActiveRecord::Migration comes with a set of column types.
6
- # They are listed here so they can be used alongside our Special Column Types.
5
+ # DEFAULT_COLUMN_TYPES holds the standard ActiveRecord::Migration column types.
6
+ # This list provides compatability with the standard types, but we add our own
7
+ # later in 'Special Column Types'.
7
8
  #
8
- # These types will override the Special Column Types, so don't declare
9
- # types with these names as Special Column Types!
9
+ # These types will override Special Column Types of the same name.\
10
10
  #
11
11
  # Example:
12
- # rails g inline_forms Example name:string price:integer
12
+ # rails g inline_forms Example name:string price:integer
13
13
  # will result in:
14
14
  # class InlineFormsCreateExamples < ActiveRecord::Migration
15
15
  # def self.up
@@ -40,7 +40,9 @@ module InlineForms
40
40
  # :belongs_to => :belongs_to,
41
41
  }
42
42
 
43
- # For each Default Column Type, we need to specify a Form Element for use in form creation.
43
+ # DEFAULT_FORM_ELEMENTS holds a mapping from Default Column Types to
44
+ # Form Elements. Form Elements are defined in app/helpers/form_elements
45
+ # and are pieces of code that display a form for a field.
44
46
  #
45
47
  # Example:
46
48
  # rails g inline_forms Example name:string price:integer
@@ -70,12 +72,11 @@ module InlineForms
70
72
  :boolean => :check_box,
71
73
  }
72
74
 
73
- # This Hash will be used to map our Special Column Types to
74
- # ActiveRecord::Migration Column Types.
75
+ # SPECIAL_COLUMN_TYPES maps the column types that we define here and in
76
+ # app/helpers/form_elements to the standard ActiveRecord::Migration column
77
+ # types
75
78
  #
76
- # The helpers in app/helpers/form_elements add to this Hash.
77
- #
78
- # Usage example: in app/helpers/form_elements/dropdown.rb
79
+ # Example: in app/helpers/form_elements/dropdown.rb
79
80
  # InlineForms::SPECIAL_COLUMN_TYPES[:dropdown]=:belongs_to
80
81
  # this maps the :dropdown form element to the :belongs_to column type.
81
82
  #
@@ -89,6 +90,9 @@ module InlineForms
89
90
  SPECIAL_COLUMN_TYPES = {
90
91
  :associated => :no_migration
91
92
  }
93
+
94
+ # RELATIONS defines a mapping between AR::Migrations columns and the Model.
95
+ #
92
96
  # When a column has the type of :references or :belongs_to, then
93
97
  # there will be a line in the migration reflecting that, but not in the model.
94
98
  # == Why?
@@ -115,7 +119,9 @@ module InlineForms
115
119
  :references => :belongs_to,
116
120
  }
117
121
 
118
- # The stuff in this hash will add a line to the model, but little else.
122
+ # SPECIAL_RELATIONS maps AR relations to migrations.
123
+ # In most cases, these relations have no migration at all, but they do need
124
+ # a line in the model.
119
125
  SPECIAL_RELATIONS = {
120
126
  :has_many => :no_migration,
121
127
  :has_many_destroy => :no_migration,
@@ -125,10 +131,10 @@ module InlineForms
125
131
  }
126
132
 
127
133
  # Declare as a Rails::Engine, see http://www.ruby-forum.com/topic/211017#927932
128
- class InlineFormsEngine < Rails::Engine
129
- initializer 'inline_forms.helper' do |app|
130
- ActionView::Base.send :include, InlineFormsHelper
131
- end
134
+ class Engine < Rails::Engine
135
+ # initializer 'inline_forms.helper' do |app|
136
+ # ActionView::Base.send :include, InlineFormsHelper
137
+ # end
132
138
  end
133
139
  end
134
140
 
@@ -1,3 +1,3 @@
1
1
  module InlineForms
2
- VERSION = "1.1.12"
2
+ VERSION = "1.1.13"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inline_forms
3
3
  version: !ruby/object:Gem::Version
4
- hash: 11
4
+ hash: 9
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 1
9
- - 12
10
- version: 1.1.12
9
+ - 13
10
+ version: 1.1.13
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ace Suares