inline_forms 0.9.19 → 0.9.20
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.
- data/VERSION +1 -1
- data/app/controllers/inline_forms_controller.rb +19 -13
- data/app/helpers/form_elements/date.rb +3 -2
- data/app/helpers/form_elements/datetime.rb +3 -2
- data/app/helpers/inline_forms_helper.rb +27 -20
- data/app/views/inline_forms/_list.html.erb +15 -8
- data/app/views/inline_forms/_new.html.erb +54 -45
- data/app/views/inline_forms/_show.html.erb +1 -1
- data/app/views/layouts/inline_forms.rhtml +3 -1
- data/inline_forms.gemspec +2 -2
- metadata +4 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.9.
|
1
|
+
0.9.20
|
@@ -54,13 +54,14 @@ class InlineFormsController < ApplicationController
|
|
54
54
|
@parent_class = params[:parent_class]
|
55
55
|
@parent_id = params[:parent_id]
|
56
56
|
@ul_needed = params[:ul_needed]
|
57
|
+
@PER_PAGE = 5 unless @parent_class.nil?
|
57
58
|
# if the parent_class is not nill, we are in associated list and we don't search there.
|
58
59
|
# also, make sure the Model that you want to do a search on has a :name attribute. TODO
|
59
60
|
@parent_class.nil? ? conditions = ["name like ?", "%#{params[:search]}%" ] : conditions = [ "#{@parent_class.foreign_key} = ?", @parent_id ]
|
60
61
|
if cancan_enabled?
|
61
|
-
@objects = @Klass.accessible_by(current_ability).order(@Klass.order_by_clause).paginate :page => params[:page], :conditions => conditions
|
62
|
+
@objects = @Klass.accessible_by(current_ability).order(@Klass.order_by_clause).paginate :page => params[:page], :per_page => @PER_PAGE || 12, :conditions => conditions
|
62
63
|
else
|
63
|
-
@objects = @Klass.order(@Klass.order_by_clause).paginate :page => params[:page], :conditions => conditions
|
64
|
+
@objects = @Klass.order(@Klass.order_by_clause).paginate :page => params[:page], :per_page => @PER_PAGE || 12, :conditions => conditions
|
64
65
|
end
|
65
66
|
respond_to do |format|
|
66
67
|
# found this here: http://www.ruby-forum.com/topic/211467
|
@@ -118,27 +119,32 @@ class InlineFormsController < ApplicationController
|
|
118
119
|
end
|
119
120
|
@parent_class = params[:parent_class]
|
120
121
|
@parent_id = params[:parent_id]
|
122
|
+
@PER_PAGE = 5 unless @parent_class.nil?
|
121
123
|
# for the logic behind the :conditions see the #index method.
|
122
124
|
@parent_class.nil? ? conditions = ["name like ?", "%#{params[:search]}%" ] : conditions = [ "#{@parent_class.foreign_key} = ?", @parent_id ]
|
123
125
|
object[@parent_class.foreign_key] = @parent_id unless @parent_class.nil?
|
124
126
|
if object.save
|
125
127
|
flash.now[:success] = "Successfully created #{object.class.to_s.underscore}."
|
128
|
+
if cancan_enabled?
|
129
|
+
@objects = @Klass.accessible_by(current_ability).order(@Klass.order_by_clause).paginate :page => params[:page], :per_page => @PER_PAGE || 12, :conditions => conditions
|
130
|
+
else
|
131
|
+
@objects = @Klass.order(@Klass.order_by_clause).paginate :page => params[:page], :per_page => @PER_PAGE || 12, :conditions => conditions
|
132
|
+
end
|
133
|
+
respond_to do |format|
|
134
|
+
# found this here: http://www.ruby-forum.com/topic/211467
|
135
|
+
format.js { render(:update) {|page| page.replace_html @update_span, :partial => 'inline_forms/list'}
|
136
|
+
}
|
137
|
+
end
|
126
138
|
else
|
127
139
|
flash.now[:error] = "Failed to create #{object.class.to_s.underscore}.".html_safe
|
128
140
|
object.errors.each do |e|
|
129
141
|
flash.now[:error] << '<br />'.html_safe + e[0].to_s + ": " + e[1]
|
130
142
|
end
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
end
|
137
|
-
|
138
|
-
respond_to do |format|
|
139
|
-
# found this here: http://www.ruby-forum.com/topic/211467
|
140
|
-
format.js { render(:update) {|page| page.replace_html @update_span, :partial => 'inline_forms/list'}
|
141
|
-
}
|
143
|
+
respond_to do |format|
|
144
|
+
@object = object
|
145
|
+
format.js { render(:update) {|page| page.replace_html @update_span, :partial => 'inline_forms/new'}
|
146
|
+
}
|
147
|
+
end
|
142
148
|
end
|
143
149
|
end
|
144
150
|
# :update updates a specific attribute from an object.
|
@@ -6,10 +6,11 @@ def date_select_show(object, attribute)
|
|
6
6
|
end
|
7
7
|
|
8
8
|
def date_select_edit(object, attribute)
|
9
|
-
|
9
|
+
css_id = 'datepicker_' + object.class.to_s.underscore + '_' + object.id.to_s + '_' + attribute.to_s
|
10
|
+
out = text_field_tag attribute, object[attribute], :id => css_id
|
10
11
|
out << '<SCRIPT>'.html_safe
|
11
12
|
out << "$(function() { ".html_safe
|
12
|
-
out << '$("#'.html_safe +
|
13
|
+
out << '$("#'.html_safe + css_id.html_safe + '").datepicker();'.html_safe
|
13
14
|
out << '});'.html_safe
|
14
15
|
out << '</SCRIPT>'.html_safe
|
15
16
|
return out
|
@@ -6,10 +6,11 @@ def datetime_select_show(object, attribute)
|
|
6
6
|
end
|
7
7
|
|
8
8
|
def datetime_select_edit(object, attribute)
|
9
|
-
|
9
|
+
css_id = 'datepicker_' + object.class.to_s.underscore + '_' + object.id.to_s + '_' + attribute.to_s
|
10
|
+
out = text_field_tag attribute, object[attribute], :id => css_id
|
10
11
|
out << '<SCRIPT>'.html_safe
|
11
12
|
out << "$(function() { ".html_safe
|
12
|
-
out << '$("#'.html_safe +
|
13
|
+
out << '$("#'.html_safe + css_id.html_safe + '").datepicker();'.html_safe
|
13
14
|
out << '});'.html_safe
|
14
15
|
out << '</SCRIPT>'.html_safe
|
15
16
|
return out
|
@@ -27,29 +27,29 @@ module InlineFormsHelper
|
|
27
27
|
attribute_value << " ".html_safe * spaces
|
28
28
|
css_class_id = "#{object.class.to_s.underscore}_#{object.id}_#{attribute}"
|
29
29
|
if cancan_disabled? || ( can? :update, object )
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
30
|
+
link_to attribute_value,
|
31
|
+
send( 'edit_' + object.class.to_s.underscore + '_path',
|
32
|
+
object,
|
33
|
+
:attribute => attribute.to_s,
|
34
|
+
:form_element => calling_method.sub(/_[a-z]+$/,''),
|
35
|
+
:update => css_class_id ),
|
36
|
+
:remote => true
|
37
37
|
else
|
38
|
-
|
38
|
+
attribute_value
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
42
|
# link to inline image edit
|
43
|
-
def link_to_inline_image_edit(object, attribute)
|
44
|
-
text= image_tag object.send(attribute).send('url', :thumb)
|
45
|
-
link_to text,
|
46
|
-
send('edit_' + @Klass.to_s.underscore + '_path',
|
47
|
-
object,
|
48
|
-
:attribute => attribute.to_s,
|
49
|
-
:form_element => calling_method.sub(/_[a-z]+$/,''),
|
50
|
-
:update => "attribute_#{attribute}_#{object.id}" ),
|
51
|
-
:remote => true
|
52
|
-
end
|
43
|
+
# def link_to_inline_image_edit(object, attribute)
|
44
|
+
# text= image_tag object.send(attribute).send('url', :thumb)
|
45
|
+
# link_to text,
|
46
|
+
# send('edit_' + @Klass.to_s.underscore + '_path',
|
47
|
+
# object,
|
48
|
+
# :attribute => attribute.to_s,
|
49
|
+
# :form_element => calling_method.sub(/_[a-z]+$/,''),
|
50
|
+
# :update => "attribute_#{attribute}_#{object.id}" ),
|
51
|
+
# :remote => true
|
52
|
+
# end
|
53
53
|
|
54
54
|
def link_to_new_record(text, model, path_to_new, update_span, parent_class, parent_id)
|
55
55
|
out = ""
|
@@ -57,10 +57,17 @@ module InlineFormsHelper
|
|
57
57
|
out << (link_to text, send(path_to_new, :update => update_span, :parent_class => parent_class, :parent_id => parent_id ), :remote => true)
|
58
58
|
out << "</li>"
|
59
59
|
""
|
60
|
-
|
60
|
+
if cancan_enabled?
|
61
|
+
if can?(:manage, model.constantize)
|
62
|
+
if parent_class.nil?
|
63
|
+
raw out
|
64
|
+
else
|
65
|
+
raw out if can?(:update, parent_class.find(parent_id))
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
61
69
|
end
|
62
70
|
|
63
|
-
|
64
71
|
# get the values for an attribute
|
65
72
|
#
|
66
73
|
# values should be a Hash { integer => string, ... }
|
@@ -1,5 +1,9 @@
|
|
1
1
|
<% flash.each do |key, value| %>
|
2
2
|
<div id="flash" class="flash <%= key %>"><%= value %></div>
|
3
|
+
<script type="text/javascript">
|
4
|
+
$(function() { $("#flash").delay(1000).fadeToggle('2000'); } );
|
5
|
+
</script>
|
6
|
+
|
3
7
|
<% end %>
|
4
8
|
|
5
9
|
<!-- purpose: list objects. we come here from #index and from #new.
|
@@ -26,7 +30,7 @@ they are @object. We need this magic here to rewrite all the @variables to varia
|
|
26
30
|
<% update_span = "#{@parent_class.to_s.underscore}_#{@parent_id}_#{attribute}_list" -%>
|
27
31
|
<% human_readable_class= attribute.to_s.singularize.humanize.downcase %>
|
28
32
|
<% path_to_new='new_' + attribute.to_s.underscore.singularize + '_path' %>
|
29
|
-
<% parent_class=@parent_class %>
|
33
|
+
<% parent_class=@parent_class.constantize %>
|
30
34
|
<% parent_id=@parent_id %>
|
31
35
|
<% objects = @objects %>
|
32
36
|
<% ul_needed = false unless @ul_needed %>
|
@@ -39,9 +43,9 @@ they are @object. We need this magic here to rewrite all the @variables to varia
|
|
39
43
|
<% conditions = [ "#{parent_class.name.foreign_key} = ?", parent_id ] %>
|
40
44
|
|
41
45
|
<% if cancan_enabled? %>
|
42
|
-
<% objects = parent_class.find(parent_id).send(attribute).accessible_by(current_ability).order(attribute.to_s.singularize.camelcase.constantize.order_by_clause).paginate :page => params[:page], :conditions => conditions %>
|
46
|
+
<% objects = parent_class.find(parent_id).send(attribute).accessible_by(current_ability).order(attribute.to_s.singularize.camelcase.constantize.order_by_clause).paginate :page => params[:page], :per_page => @PER_PAGE || 5, :conditions => conditions %>
|
43
47
|
<% else %>
|
44
|
-
<% objects = parent_class.find(parent_id).send(attribute).order(attribute.to_s.singularize.camelcase.constantize.order_by_clause).paginate :page => params[:page], :conditions => conditions %>
|
48
|
+
<% objects = parent_class.find(parent_id).send(attribute).order(attribute.to_s.singularize.camelcase.constantize.order_by_clause).paginate :page => params[:page], :per_page => @PER_PAGE || 5, :conditions => conditions %>
|
45
49
|
<% end %>
|
46
50
|
|
47
51
|
<% end %>
|
@@ -66,11 +70,14 @@ they are @object. We need this magic here to rewrite all the @variables to varia
|
|
66
70
|
:remote => true -%>
|
67
71
|
</li>
|
68
72
|
<% end -%>
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
73
|
+
<!-- # pagination -->
|
74
|
+
<li class="even">
|
75
|
+
<% if parent_id.nil? -%>
|
76
|
+
<%= will_paginate objects -%>
|
77
|
+
<% else %>
|
78
|
+
<%= 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 } -%>
|
79
|
+
<% end %>
|
80
|
+
</li>
|
74
81
|
<% if ul_needed %>
|
75
82
|
</ul>
|
76
83
|
<% end %>
|
@@ -1,47 +1,56 @@
|
|
1
|
-
<li>
|
2
|
-
<%
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
<
|
26
|
-
<
|
27
|
-
<
|
28
|
-
<%=
|
29
|
-
</
|
30
|
-
</
|
31
|
-
|
32
|
-
|
1
|
+
<li id="newnew">
|
2
|
+
<% flash.each do |key, value| %>
|
3
|
+
<div id="flash" class="flash <%= key %>"><%= value %></div>
|
4
|
+
<% end %>
|
5
|
+
<script type="text/javascript">
|
6
|
+
$(function() { $("#flash").delay(1000).fadeTo('slow', 0.33); } );
|
7
|
+
</script>
|
8
|
+
<% form_tag send(@Klass.to_s.underscore.pluralize + '_path', :update => @update_span,
|
9
|
+
:parent_class => @parent_class,
|
10
|
+
:parent_id => @parent_id ),
|
11
|
+
:multipart => true, :remote => true, :class => "edit_form" do -%>
|
12
|
+
<div class="edit_form_field">
|
13
|
+
<table cellspacing="0" cellpadding="0">
|
14
|
+
<tr>
|
15
|
+
<th colspan="2" valign="top">
|
16
|
+
<div class="object_presentation" >
|
17
|
+
Add a new <%= @object.class.to_s.singularize.downcase -%>
|
18
|
+
</div>
|
19
|
+
</th>
|
20
|
+
</tr>
|
21
|
+
<% attributes ||= @object.inline_forms_attribute_list -%>
|
22
|
+
<% attributes.each do | attribute, name, form_element | -%>
|
23
|
+
<% unless form_element.to_sym == :associated -%>
|
24
|
+
<% css_class_id = "attribute_#{attribute}_#{@object.id}" -%>
|
25
|
+
<tr>
|
26
|
+
<td valign="top">
|
27
|
+
<div class='<%= "attribute_name attribute_#{attribute} form_element_#{form_element}" -%>' >
|
28
|
+
<%= h(name) -%>
|
29
|
+
</div>
|
30
|
+
</td>
|
31
|
+
<td valign="top">
|
32
|
+
<div class='<%= "attribute_value attribute_#{attribute} form_element_#{form_element}" -%>' >
|
33
|
+
<span id="<%= css_class_id -%>" >
|
34
|
+
<%= send("#{form_element}_edit", @object, attribute) -%>
|
35
|
+
</span>
|
36
|
+
</div>
|
37
|
+
</td>
|
38
|
+
</tr>
|
39
|
+
<% end -%>
|
33
40
|
<% end -%>
|
34
|
-
|
35
|
-
</
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
41
|
+
</table>
|
42
|
+
</div>
|
43
|
+
<%= link_to( send(@Klass.to_s.underscore.pluralize + '_path', :update => @update_span,
|
44
|
+
:parent_class => @parent_class,
|
45
|
+
:parent_id => @parent_id ),
|
46
|
+
:remote => true,
|
47
|
+
:class => "edit_form_cancel" ) do %>
|
48
|
+
<input type="button" name="cancel" value="cancel" />
|
49
|
+
<% end %>
|
50
|
+
<%= submit_tag "ok", :class => "edit_form_submit"-%>
|
51
|
+
<div style="clear: both;"></div>
|
43
52
|
<% end %>
|
44
|
-
|
45
|
-
<
|
46
|
-
|
47
|
-
</
|
53
|
+
</li>
|
54
|
+
<script type="text/javascript">
|
55
|
+
$(function() { $("#newnew").slideDown(4000); } );
|
56
|
+
</script>
|
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.9.
|
8
|
+
s.version = "0.9.20"
|
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-06-
|
12
|
+
s.date = %q{2011-06-28}
|
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 = [
|
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:
|
4
|
+
hash: 19
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 9
|
9
|
-
-
|
10
|
-
version: 0.9.
|
9
|
+
- 20
|
10
|
+
version: 0.9.20
|
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-06-
|
18
|
+
date: 2011-06-28 00:00:00 -04:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|