inline_forms 0.7.4 → 0.8.0

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.
@@ -1,20 +1,17 @@
1
1
  <% form_tag send(@Klass.to_s.underscore + '_path', :update => @update_span ,
2
- #|| @form_element == "associated" ? @sub_id && @sub_id.to_i > 0 ? "field_#{@field.to_s.singularize}_#{@sub_id}" : "list_#{@field}_#{@object.id.to_s}" : "field_#{@field}_#{@object.id.to_s}",
3
- :field => @field,
2
+ :attribute => @attribute,
4
3
  :form_element => @form_element,
5
- :values => @values,
6
4
  :sub_id => @sub_id ),
7
5
  :method => :put, # this is going to the update method!
8
- :multipart => true,
6
+ :multipart => true,
9
7
  :class => "edit_form",
10
8
  :remote => true do -%>
11
9
  <div class="edit_form_field">
12
- <%= send("#{@form_element.to_s}_edit", @object, @field, @values) %>
10
+ <%= send("#{@form_element.to_s}_edit", @object, @attribute) %>
13
11
  </div>
14
- <%= link_to( send( @Klass.to_s.underscore + '_path', :update => @update_span || "field_#{@field}_#{@object.id.to_s}",
15
- :field => @field,
12
+ <%= link_to( send( @Klass.to_s.underscore + '_path', :update => @update_span || "field_#{@attribute}_#{@object.id.to_s}",
13
+ :attribute => @attribute,
16
14
  :form_element => @form_element,
17
- :values => @values,
18
15
  :sub_id => @sub_id ),
19
16
  :method => :get, # this is going to the show method!
20
17
  :class => "edit_form_cancel",
@@ -1,5 +1,6 @@
1
- <li class="inline_form_new_item">
2
- <%= inline_form_new_record @field, @form_element %>
1
+ <li class="inline_forms_new_record">
2
+ <%= inline_forms_new_record_link %>
3
3
  </li>
4
- <%= inline_form_display_list(@objects) %>
5
- <%#= will_paginate @objects %>
4
+ <%= inline_forms_list(@objects) %>
5
+ <%= will_paginate @objects %>
6
+ <%= page_entries_info @objects %>
@@ -1,9 +1,9 @@
1
- <% form_tag send(@Klass.to_s.underscore.pluralize + '_path', :update => @update_span || 'inline_form_list' ),
1
+ <% form_tag send(@Klass.to_s.underscore.pluralize + '_path', :update => @update_span || 'inline_forms_list' ),
2
2
  :multipart => true, :remote => true, :class => "edit_form" do -%>
3
3
  <div class="edit_form_field">
4
- <%= inline_form_display_new(@object, @object.respond_to?(:inline_forms_field_list) ? @object.inline_forms_field_list : [ :name, 'name', :text ] ) %>
4
+ <%= inline_forms_new_record @object %>
5
5
  </div>
6
- <%= link_to( send(@Klass.to_s.underscore.pluralize + '_path',:update => @update_span || 'inline_form_list'), :remote => true,
6
+ <%= link_to( send(@Klass.to_s.underscore.pluralize + '_path',:update => @update_span || 'inline_forms_list'), :remote => true,
7
7
  :class => "edit_form_cancel" ) do %>
8
8
  <input type="button" name="cancel" value="cancel" />
9
9
  <% end %>
@@ -1,5 +1,5 @@
1
1
  <table cellpadding="0" cellspacing="0" class="subform">
2
- <% @associated_record.inline_forms_field_list.each do | @subform_field, @subform_description, @subform_element, @values | %>
2
+ <% @associated_record.inline_forms_field_list.each do | @subform_field, (@subform_description, @subform_element, @values) | %>
3
3
  <tr>
4
4
  <td valign="top">
5
5
  <div class="subform_field-name">
@@ -1,5 +1,6 @@
1
- <li class="inline_form_new_item">
2
- <%= inline_form_new_record @field, @form_element %>
1
+ <li class="inline_forms_new_record_link">
2
+ <%= inline_forms_new_record_link %>
3
3
  </li>
4
- <%= inline_form_display_list(@objects) %>
4
+ <%= inline_forms_list(@objects) %>
5
5
  <%= will_paginate @objects %>
6
+ <%= page_entries_info @objects %>
@@ -11,7 +11,7 @@
11
11
  <%#= calendar_date_select_includes "red" %>
12
12
  <body>
13
13
  <%= render "/inline_forms_tabs" %>
14
- <ul id="inline_form_list">
14
+ <ul id="inline_forms_list">
15
15
  <%= yield %>
16
16
  </ul>
17
17
  </body>
data/inline_forms.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{inline_forms}
8
- s.version = "0.7.4"
8
+ s.version = "0.8.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Ace Suares"]
12
- s.date = %q{2011-03-09}
12
+ s.date = %q{2011-03-13}
13
13
  s.description = %q{Inline Forms aims to ease the setup of forms that provide inline editing. The field list can be specified in the model.}
14
14
  s.email = %q{ace@suares.an}
15
15
  s.extra_rdoc_files = [
@@ -34,8 +34,8 @@ Gem::Specification.new do |s|
34
34
  "app/helpers/form_elements/dropdown_with_values.rb",
35
35
  "app/helpers/form_elements/geo_code_curacao.rb",
36
36
  "app/helpers/form_elements/image.rb",
37
- "app/helpers/form_elements/range.rb",
38
37
  "app/helpers/form_elements/scale_with_integers.rb",
38
+ "app/helpers/form_elements/scale_with_values.rb",
39
39
  "app/helpers/form_elements/text_area.rb",
40
40
  "app/helpers/form_elements/text_field.rb",
41
41
  "app/helpers/inline_forms_helper.rb",
@@ -11,8 +11,8 @@ module InlineForms
11
11
  # rails g example_generator Modelname attribute:type attribute:type ...
12
12
  # an array with attributes and types is created for use in the generator.
13
13
  #
14
- # Rails::Generators::GeneratedAttribute creates, among others, a field_type.
15
- # This field_type maps column types to form field helpers like text_field.
14
+ # Rails::Generators::GeneratedAttribute creates, among others, a attribute_type.
15
+ # This attribute_type maps column types to form attribute helpers like text_field.
16
16
  # We override it here to make our own.
17
17
  #
18
18
  class InlineFormsGenerator < Rails::Generators::NamedBase
@@ -32,13 +32,13 @@ module InlineForms
32
32
  SPECIAL_COLUMN_TYPES.merge(DEFAULT_COLUMN_TYPES).merge(RELATIONS).merge(SPECIAL_RELATIONS)[type] || :unknown
33
33
  end
34
34
 
35
- # Override the field_type to include our special column types.
35
+ # Override the attribute_type to include our special column types.
36
36
  #
37
37
  # If a type is not in the Special Column Type hash, then the default
38
- # column type hash is used, and if that fails, the field_type
38
+ # column type hash is used, and if that fails, the attribute_type
39
39
  # will be :unknown. Make sure to check your models for the :unknown.
40
40
  #
41
- def field_type
41
+ def attribute_type
42
42
  SPECIAL_COLUMN_TYPES.merge(RELATIONS).has_key?(type) ? type : DEFAULT_FORM_ELEMENTS[type] || :unknown
43
43
  end
44
44
 
@@ -51,7 +51,7 @@ module InlineForms
51
51
  end
52
52
 
53
53
  def has_many?
54
- field_type == :associated
54
+ attribute_type == :associated
55
55
  end
56
56
 
57
57
 
@@ -71,7 +71,7 @@ module InlineForms
71
71
  @habtm = "\n"
72
72
  @has_attached_files = "\n"
73
73
  @presentation = "\n"
74
- @inline_forms_field_list = String.new
74
+ @inline_forms_attribute_list = String.new
75
75
 
76
76
  for attribute in attributes
77
77
  if attribute.column_type == :belongs_to # :drop_down, :references and :belongs_to all end up with the column_type :belongs_to
@@ -98,20 +98,20 @@ module InlineForms
98
98
  "\n"
99
99
  end
100
100
  unless attribute.name == '_presentation' || attribute.relation?
101
- attribute.field_type == :unknown ? commenter = '#' : commenter = ' '
102
- @inline_forms_field_list << commenter +
101
+ attribute.attribute_type == :unknown ? commenter = '#' : commenter = ' '
102
+ @inline_forms_attribute_list << commenter +
103
103
  ' [ :' +
104
104
  attribute.name +
105
- ', "' + attribute.name +
106
- '", :' + attribute.field_type.to_s +
105
+ ' , "' + attribute.name +
106
+ '", :' + attribute.attribute_type.to_s +
107
107
  " ], \n"
108
108
  end
109
109
  end
110
- unless @inline_forms_field_list.empty?
111
- @inline_forms_field_list = "\n" +
112
- " def inline_forms_field_list\n" +
110
+ unless @inline_forms_attribute_list.empty?
111
+ @inline_forms_attribute_list = "\n" +
112
+ " def inline_forms_attribute_list\n" +
113
113
  " [\n" +
114
- @inline_forms_field_list +
114
+ @inline_forms_attribute_list +
115
115
  " ]\n" +
116
116
  " end\n" +
117
117
  "\n"
@@ -138,7 +138,7 @@ module InlineForms
138
138
  @columns << ' t.datetime :' + attribute.name + "_updated_at\n"
139
139
  else
140
140
  unless attribute.name == '_presentation' || attribute.special_relation?
141
- attribute.field_type == :unknown ? commenter = '#' : commenter = ' '
141
+ attribute.attribute_type == :unknown ? commenter = '#' : commenter = ' '
142
142
  @columns << commenter +
143
143
  ' t.' +
144
144
  attribute.column_type.to_s +
@@ -1,9 +1,13 @@
1
1
  class <%= name %> < ActiveRecord::Base
2
+ cattr_reader :per_page
3
+ @@per_page = 10
4
+
2
5
  <%= @belongs_to if @belongs_to.length > 1 -%>
3
6
  <%= @has_many if @has_many.length > 1 -%>
4
7
  <%= @has_one if @has_one.length > 1 -%>
5
8
  <%= @habtm if @habtm.length > 1 -%>
6
9
  <%= @has_attached_files if @has_attached_files.length > 1 -%>
7
10
  <%= @presentation if @presentation.length > 1 -%>
8
- <%= @inline_forms_field_list -%>
11
+ <%= @inline_forms_attribute_list -%>
12
+
9
13
  end
data/lib/inline_forms.rb CHANGED
@@ -1,8 +1,9 @@
1
1
  puts 'loading inline_forms...'
2
2
 
3
3
  module InlineForms
4
+
4
5
  # ActiveRecord::Migration comes with a set of column types.
5
- # They are listed here so they can be uses alongside our Special Column Types.
6
+ # They are listed here so they can be used alongside our Special Column Types.
6
7
  #
7
8
  # These types will override the Special Column Types, so don't declare
8
9
  # types with these names as Special Column Types!
@@ -13,7 +14,7 @@ module InlineForms
13
14
  # class InlineFormsCreateExamples < ActiveRecord::Migration
14
15
  # def self.up
15
16
  # create_table :examples do |t|
16
- # t.string :name
17
+ # t.string :name
17
18
  # t.integer :price
18
19
  # t.timestamps
19
20
  # end
@@ -24,20 +25,21 @@ module InlineForms
24
25
  # end
25
26
  #
26
27
  DEFAULT_COLUMN_TYPES = {
27
- :string => :string,
28
- :text => :text,
29
- :integer => :integer,
30
- :float => :float,
31
- :decimal => :decimal,
32
- :datetime => :datetime,
33
- :timestamp => :timestamp,
34
- :time => :time,
35
- :date => :date,
36
- :binary => :binary,
37
- :boolean => :boolean,
38
- # :references => :belongs_to,
39
- # :belongs_to => :belongs_to,
28
+ :string => :string,
29
+ :text => :text,
30
+ :integer => :integer,
31
+ :float => :float,
32
+ :decimal => :decimal,
33
+ :datetime => :datetime,
34
+ :timestamp => :timestamp,
35
+ :time => :time,
36
+ :date => :date,
37
+ :binary => :binary,
38
+ :boolean => :boolean,
39
+ # :references => :belongs_to,
40
+ # :belongs_to => :belongs_to,
40
41
  }
42
+
41
43
  # For each Default Column Type, we need to specify a Form Element for use in form creation.
42
44
  #
43
45
  # Example:
@@ -45,28 +47,29 @@ module InlineForms
45
47
  # will result in the following model:
46
48
  #
47
49
  # class Example < ActiveRecord::Base
48
- # def inline_forms_field_list
49
- # [
50
- # [ :name, "name", :text_field ],
51
- # [ :price, "price", :text_field ],
52
- # ]
50
+ # def inline_forms_attribute_list
51
+ # {
52
+ # :name => [ "name", :text_field ],
53
+ # :price => [ "price", :text_field ],
54
+ # }
53
55
  # end
54
56
  # end
55
57
  # as you see, both :string and :integer are mapped to a :text_field
56
58
  #
57
59
  DEFAULT_FORM_ELEMENTS = {
58
- :string => :text_field,
59
- :text => :text_area,
60
- :integer => :text_field,
61
- :float => :text_field,
62
- :decimal => :text_field,
63
- :datetime => :datetime_select,
64
- :timestamp => :datetime_select,
65
- :time => :time_select,
66
- :date => :date_select,
67
- :binary => :text_field,
68
- :boolean => :check_box,
60
+ :string => :text_field,
61
+ :text => :text_area,
62
+ :integer => :text_field,
63
+ :float => :text_field,
64
+ :decimal => :text_field,
65
+ :datetime => :datetime_select,
66
+ :timestamp => :datetime_select,
67
+ :time => :time_select,
68
+ :date => :date_select,
69
+ :binary => :text_field,
70
+ :boolean => :check_box,
69
71
  }
72
+
70
73
  # This Hash will be used to map our Special Column Types to
71
74
  # ActiveRecord::Migration Column Types.
72
75
  #
@@ -80,35 +83,37 @@ module InlineForms
80
83
  # t.belongs_to :country
81
84
  # to the migration. (In fact AR will add t.integer :country_id). And
82
85
  # it will add
83
- # [ :country, "country", :dropdown ],
84
- # to the inline_forms_field_list in the model.
86
+ # :country => [ "country", :dropdown ],
87
+ # to the inline_forms_attribute_list in the model.
85
88
  #
86
89
  SPECIAL_COLUMN_TYPES = {}
90
+
87
91
  # When a column has the type of :references or :belongs_to, then
88
92
  # there will be a line in the migration reflecting that, but not in the model.
89
93
  # == Why?
90
- # * Let's say we have a customer that has_many numbers.
91
- # * Let's say that a number belongs_to a customer.
94
+ # * Let's say we have a customer that has_many phone_numbers.
95
+ # * Let's say that a phone_number belongs_to a customer.
92
96
  # * Let's say that every number has_one type_of_number (like 'private','gsm' etc.)
93
97
  # * Let's say a type_of_number belongs_to a number.
94
98
  #
95
99
  # Wait a minute... thats sounds right... but it ain't!
96
100
  #
97
- # In fact, a type_of_number has_many numbers and a number belongs_to a type_of_number!
101
+ # In fact, a type_of_number has_many phone_numbers and a phone_number belongs_to a type_of_number!
98
102
  #
99
103
  # In a form, it's quite logical to use a dropdown for type_of_number. So, in the generator, use
100
104
  # type_of_number:dropdown
101
105
  # This creates the correct migration (t.integer :type_of_number_id) and the correct model.
102
- # (It adds 'belongs_to :type_of_number' and adds a dropdown in the inline_forms_field_list)
106
+ # (It adds 'belongs_to :type_of_number' and adds a dropdown in the inline_forms_attribute_list)
103
107
  #
104
108
  # But, you also want to have a client_id in the migration, and a 'belongs_to :client' in the model.
105
109
  # In such cases, you need to use :belongs_to, like this:
106
- # rails g inline_forms Example number:string type_of_number:dropdown client:belongs_to
110
+ # rails g inline_forms Example phone_number:string type_of_number:dropdown client:belongs_to
107
111
  #
108
112
  RELATIONS = {
109
113
  :belongs_to => :belongs_to,
110
114
  :references => :belongs_to,
111
115
  }
116
+
112
117
  # The stuff in this hash will add a line to the model, but little else.
113
118
  SPECIAL_RELATIONS = {
114
119
  :has_many => :has_many,
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: 63
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 7
9
- - 4
10
- version: 0.7.4
8
+ - 8
9
+ - 0
10
+ version: 0.8.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ace Suares
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-03-09 00:00:00 -04:00
18
+ date: 2011-03-13 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -105,8 +105,8 @@ files:
105
105
  - app/helpers/form_elements/dropdown_with_values.rb
106
106
  - app/helpers/form_elements/geo_code_curacao.rb
107
107
  - app/helpers/form_elements/image.rb
108
- - app/helpers/form_elements/range.rb
109
108
  - app/helpers/form_elements/scale_with_integers.rb
109
+ - app/helpers/form_elements/scale_with_values.rb
110
110
  - app/helpers/form_elements/text_area.rb
111
111
  - app/helpers/form_elements/text_field.rb
112
112
  - app/helpers/inline_forms_helper.rb
@@ -1,15 +0,0 @@
1
- module InlineFormsHelper
2
- InlineForms::SPECIAL_COLUMN_TYPES[:range]=:integer
3
- # range
4
- def range_show(object, attribute, values)
5
- link_to_inline_edit object, attribute, object.send(attribute), nil
6
- end
7
- def range_edit(object, attribute, values)
8
- # the leading underscore is to avoid name conflicts, like 'email' and 'email_type' will result in 'email' and 'email[email_type_id]' in the form!
9
- collection_select( ('_' + object.class.to_s.downcase).to_sym, attribute.to_sym, values, 'to_i', 'to_s', :selected => object.send(attribute))
10
- end
11
- def range_update(object, attribute, values)
12
- object[attribute.to_sym] = params[('_' + object.class.to_s.downcase).to_sym][attribute.to_sym]
13
- end
14
- end
15
-