dust-generators 0.2.3 → 0.2.4
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/dust/version.rb +1 -1
- data/lib/generators/dust/albums/albums_generator.rb +129 -34
- data/lib/generators/dust/albums/templates/app/controllers/albums_controller.rb +24 -18
- data/lib/generators/dust/albums/templates/app/controllers/photos_controller.rb +37 -40
- data/lib/generators/dust/albums/templates/app/controllers/view_albums_controller.rb +6 -7
- data/lib/generators/dust/albums/templates/app/helpers/albums_helper.rb +1 -1
- data/lib/generators/dust/albums/templates/app/helpers/photos_helper.rb +1 -1
- data/lib/generators/dust/albums/templates/app/helpers/view_albums_helper.rb +1 -1
- data/lib/generators/dust/albums/templates/app/models/album.rb +8 -4
- data/lib/generators/dust/albums/templates/app/models/photo.rb +11 -4
- data/lib/generators/dust/albums/templates/app/views/albums/_form.html.erb +48 -18
- data/lib/generators/dust/albums/templates/app/views/albums/_search.html.erb +4 -4
- data/lib/generators/dust/albums/templates/app/views/albums/_upload_script.html.erb +11 -11
- data/lib/generators/dust/albums/templates/app/views/albums/edit.html.erb +3 -3
- data/lib/generators/dust/albums/templates/app/views/albums/index.html.erb +23 -23
- data/lib/generators/dust/albums/templates/app/views/albums/manage.html.erb +65 -0
- data/lib/generators/dust/albums/templates/app/views/albums/new.html.erb +3 -3
- data/lib/generators/dust/albums/templates/app/views/albums/show.html.erb +33 -21
- data/lib/generators/dust/albums/templates/app/views/albums/show.js.erb +1 -0
- data/lib/generators/dust/albums/templates/app/views/photos/_form.html.erb +20 -19
- data/lib/generators/dust/albums/templates/app/views/photos/_photo.html.erb +25 -23
- data/lib/generators/dust/albums/templates/app/views/photos/_search.html.erb +6 -0
- data/lib/generators/dust/albums/templates/app/views/photos/array.js.erb +3 -0
- data/lib/generators/dust/albums/templates/app/views/photos/edit.html.erb +6 -6
- data/lib/generators/dust/albums/templates/app/views/photos/index.html.erb +28 -23
- data/lib/generators/dust/albums/templates/app/views/photos/new.html.erb +4 -4
- data/lib/generators/dust/albums/templates/app/views/photos/show.html.erb +9 -9
- data/lib/generators/dust/albums/templates/app/views/photos/show.js.erb +2 -2
- data/lib/generators/dust/albums/templates/app/views/view_albums/index.html.erb +25 -14
- data/lib/generators/dust/albums/templates/app/views/view_albums/show.html.erb +23 -12
- data/lib/generators/dust/albums/templates/images/save_position.png +0 -0
- data/lib/generators/dust/albums/templates/javascripts/dragsort.js +288 -0
- data/lib/generators/dust/albums/templates/javascripts/dust_album.js +28 -0
- data/lib/generators/dust/albums/templates/{uploadify → javascripts/uploadify}/jquery.uploadify.v2.1.0.js +0 -0
- data/lib/generators/dust/albums/templates/{uploadify → javascripts/uploadify}/swfobject.js +0 -0
- data/lib/generators/dust/albums/templates/{uploadify → javascripts/uploadify}/uploadify.swf +0 -0
- data/lib/generators/dust/albums/templates/migration/albums_migration.rb +39 -0
- data/lib/generators/dust/albums/templates/stylesheets/dust_album.css +16 -0
- data/lib/generators/dust/albums/templates/stylesheets/dust_album_app.css +15 -0
- data/lib/generators/dust/albums/templates/{uploadify.css → stylesheets/uploadify.css} +1 -1
- data/rails_generators/dust_albums/templates/app/controllers/view_albums_controller.rb +1 -1
- data/rails_generators/dust_albums/templates/app/views/albums/show.html.erb +1 -1
- metadata +17 -12
- data/lib/generators/dust/albums/templates/albums_migration.rb +0 -18
- data/lib/generators/dust/albums/templates/dust_album.css +0 -11
- data/lib/generators/dust/albums/templates/jquery-1.4.2.js +0 -6240
- data/lib/generators/dust/albums/templates/photos_migration.rb +0 -20
@@ -1,7 +1,10 @@
|
|
1
|
-
class
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
class <%=child_class_name%> < ActiveRecord::Base
|
2
|
+
|
3
|
+
acts_as_nested_set
|
4
|
+
|
5
|
+
belongs_to :<%=parent_singular_name%>
|
6
|
+
has_attached_file :file, :styles => {:large => '800>', :medium => "300x300>", :thumb => "100x100#" }
|
7
|
+
validates_presence_of :<%=parent_singular_name%>
|
5
8
|
|
6
9
|
def self.page(search, page)
|
7
10
|
with_permissions_to(:manage).search(search).order("title").paginate(:per_page => 20, :page => page)
|
@@ -15,4 +18,8 @@ class Photo < ActiveRecord::Base
|
|
15
18
|
end
|
16
19
|
end
|
17
20
|
|
21
|
+
def self.<%=parent_singular_name%>_page(page)
|
22
|
+
roots.paginate(:per_page => 24, :page => page)
|
23
|
+
end
|
24
|
+
|
18
25
|
end
|
@@ -1,22 +1,52 @@
|
|
1
|
-
|
1
|
+
<%%= stylesheet( 'dust_<%=parent_singular_name%>','<%=parent_singular_name%>_uploadify') %>
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
<%= f.label :filename %><br />
|
11
|
-
<%= f.text_field :filename, :class => 'field' %>
|
3
|
+
<%% form_for @<%=parent_singular_name%>, :validations => true do |f| %>
|
4
|
+
<%%= f.error_messages %>
|
5
|
+
|
6
|
+
<div class="item">
|
7
|
+
<p>
|
8
|
+
<%%= f.label :active %>
|
9
|
+
<%%= f.check_box :active %>
|
12
10
|
</p>
|
13
|
-
|
14
|
-
|
15
|
-
|
11
|
+
</div>
|
12
|
+
|
13
|
+
<div class="item">
|
14
|
+
<p>
|
15
|
+
<%%= f.label :nav, "Navigation Link" %><br />
|
16
|
+
<%%= f.text_field :nav, :class => 'field' %>
|
17
|
+
</p>
|
18
|
+
</div>
|
19
|
+
|
20
|
+
<div class="item">
|
21
|
+
<p>
|
22
|
+
<%%= f.label :title %><br />
|
23
|
+
<%%= f.text_field :title, :class => 'field' %>
|
16
24
|
</p>
|
17
|
-
|
18
|
-
|
19
|
-
|
25
|
+
</div>
|
26
|
+
|
27
|
+
<div class="item">
|
28
|
+
<p>
|
29
|
+
<%%= f.label :heading %><br />
|
30
|
+
<%%= f.text_field :heading, :class => 'field' %>
|
31
|
+
</p>
|
32
|
+
</div>
|
33
|
+
|
34
|
+
<div class="item">
|
35
|
+
<p>
|
36
|
+
<%%= f.label :filename %><br />
|
37
|
+
<%%= f.text_field :filename, :class => 'field' %>
|
20
38
|
</p>
|
21
|
-
|
22
|
-
|
39
|
+
</div>
|
40
|
+
|
41
|
+
<div class="item">
|
42
|
+
<p>
|
43
|
+
<%%= f.label :desc %><br />
|
44
|
+
<%%= f.text_area :desc, :class => 'field' %>
|
45
|
+
</p>
|
46
|
+
</div>
|
47
|
+
|
48
|
+
<div class="item">
|
49
|
+
<p><%%= f.submit %></p>
|
50
|
+
</div>
|
51
|
+
|
52
|
+
<%% end %>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<div id="searchbox">
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
2
|
+
<%%= form_tag <%=parent_plural_name%>_path, :method => 'get' do %>
|
3
|
+
<%%= text_field_tag :search, params[:search], :class => "input-text", :placeholder => 'Search <%=parent_plural_class_name%>' %>
|
4
|
+
<%%= image_submit_tag "admin/blank.png", :class => "image-submit"%>
|
5
|
+
<%%end %>
|
6
6
|
</div>
|
@@ -1,16 +1,16 @@
|
|
1
1
|
|
2
|
-
|
3
|
-
|
2
|
+
<%%= javascript_include_tag "uploadify/swfobject", "uploadify/jquery.uploadify.v2.1.0" %>
|
3
|
+
<%%- session_key = Rails.application.config.session_options[:key] -%>
|
4
4
|
<script type="text/javascript" charset="utf-8">
|
5
5
|
|
6
6
|
$(document).ready(function() {
|
7
|
-
$('
|
7
|
+
$('#<%=child_singular_name%>_file').click(function(event) {
|
8
8
|
event.preventDefault();
|
9
9
|
});
|
10
10
|
|
11
|
-
$('
|
11
|
+
$('#<%=child_singular_name%>_file').uploadify({
|
12
12
|
'uploader' : '/javascripts/uploadify/uploadify.swf',
|
13
|
-
'script' : '
|
13
|
+
'script' : '/<%=child_plural_name%>',
|
14
14
|
'multi' : true,
|
15
15
|
'auto' : false,
|
16
16
|
'buttonText' : 'Find',
|
@@ -20,20 +20,20 @@
|
|
20
20
|
height : 26, // The height of the flash button
|
21
21
|
width : 101, // The width of the flash button
|
22
22
|
onComplete : function(event, queueID, fileObj, response, data) { var dat = eval('(' +
|
23
|
-
response + ')');$.getScript(dat
|
23
|
+
response + ')');$.getScript(dat.<%=child_singular_name%>);},
|
24
24
|
scriptData: {
|
25
25
|
'_http_accept': 'application/javascript',
|
26
26
|
'format' : 'json',
|
27
27
|
'_method': 'post',
|
28
|
-
'
|
29
|
-
'authenticity_token': encodeURIComponent('
|
30
|
-
'
|
28
|
+
'<%%= session_key %>' : encodeURIComponent('<%%= u cookies[session_key] %>'),
|
29
|
+
'authenticity_token': encodeURIComponent('<%%= u form_authenticity_token %>'),
|
30
|
+
'<%=parent_singular_name%>_id' : '<%%= @<%=parent_singular_name%>.id %>'
|
31
31
|
}
|
32
32
|
});
|
33
33
|
|
34
|
-
$('
|
34
|
+
$('#<%=child_singular_name%>_submit').click(function(event){
|
35
35
|
event.preventDefault();
|
36
|
-
$('
|
36
|
+
$('#<%=child_singular_name%>_file').uploadifyUpload();
|
37
37
|
});
|
38
38
|
});
|
39
39
|
</script>
|
@@ -1,5 +1,5 @@
|
|
1
|
-
|
1
|
+
<%%title "Edit <%=parent_class_name%>" %>
|
2
2
|
|
3
|
-
|
3
|
+
<%%= stylesheet( 'dust_<%=parent_singular_name%>','<%=parent_singular_name%>_uploadify') %>
|
4
4
|
|
5
|
-
|
5
|
+
<%%= render :partial => 'form' %>
|
@@ -1,53 +1,53 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
<%% title "<%=parent_plural_class_name%>" %>
|
2
|
+
<%% heading "<%=parent_plural_class_name%>" %>
|
3
3
|
|
4
|
-
|
4
|
+
<%%= stylesheet( 'dust_<%=parent_singular_name%>','<%=parent_singular_name%>_uploadify') %>
|
5
5
|
|
6
6
|
<div class="button_bar">
|
7
|
-
|
8
|
-
|
7
|
+
<%%= render :partial => 'search' %>
|
8
|
+
<%%=link_to('new <%=parent_singular_name%>', new_<%=parent_singular_name%>_path, :class => 'newfile tip', :title => "New <%=parent_class_name%>")%>
|
9
9
|
</div>
|
10
10
|
|
11
|
-
<div class='
|
11
|
+
<div class='<%=child_singular_name%>list'>
|
12
12
|
|
13
|
-
|
13
|
+
<%%= will_paginate @<%=parent_plural_name%> %>
|
14
14
|
|
15
|
-
<table class="
|
15
|
+
<table class="<%=child_plural_name%>">
|
16
16
|
<tr style='color:#222;'>
|
17
17
|
<th></th>
|
18
18
|
<th>
|
19
|
-
|
19
|
+
<%=parent_class_name%> Title
|
20
20
|
</th>
|
21
21
|
<th>
|
22
22
|
Created At
|
23
23
|
</th>
|
24
24
|
<th></th>
|
25
25
|
</tr>
|
26
|
-
|
27
|
-
<tr class='
|
26
|
+
<%% @<%=parent_plural_name%>.each do |<%=parent_singular_name%>| %>
|
27
|
+
<tr class='<%%= cycle('odd', 'even')%>'>
|
28
28
|
|
29
29
|
<td>
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
30
|
+
<%% if <%=parent_singular_name%>.<%=child_plural_name%>.empty? %>
|
31
|
+
<%%= link_to "add <%=child_plural_name%> to #{<%=parent_singular_name%>.title}", <%=parent_singular_name%> %>
|
32
|
+
<%% else %>
|
33
|
+
<%% @<%=child_singular_name%> = <%=parent_singular_name%>.<%=child_plural_name%>.find(:first) %>
|
34
|
+
<%%= link_to image_tag(@<%=child_singular_name%>.file.url(:thumb)), <%=parent_singular_name%> %>
|
35
|
+
<%% end -%>
|
36
36
|
</td>
|
37
37
|
<td>
|
38
|
-
<%=
|
38
|
+
<%%= <%=parent_singular_name%>.title%>
|
39
39
|
</td>
|
40
40
|
<td>
|
41
|
-
<%=
|
41
|
+
<%%= <%=parent_singular_name%>.created_at.to_s(:m_d_y) %>
|
42
42
|
</td>
|
43
43
|
<td>
|
44
44
|
<div style='float:right'>
|
45
|
-
|
46
|
-
|
45
|
+
<%%=link_to('', edit_<%=parent_singular_name%>_path(<%=parent_singular_name%>), :class => 'edit')%>
|
46
|
+
<%%=link_to "", <%=parent_singular_name%>, :confirm => 'Are you sure?', :method => :delete, :class => 'destroy' %>
|
47
47
|
</div>
|
48
48
|
</td>
|
49
49
|
</tr>
|
50
|
-
|
50
|
+
<%% end %>
|
51
51
|
|
52
52
|
</table>
|
53
53
|
|
@@ -56,6 +56,6 @@
|
|
56
56
|
|
57
57
|
<div class="clear"></div>
|
58
58
|
|
59
|
-
|
59
|
+
<%%= will_paginate @<%=parent_plural_name%> %>
|
60
60
|
|
61
61
|
|
@@ -0,0 +1,65 @@
|
|
1
|
+
<%%= stylesheet( 'dust_<%=parent_singular_name%>','<%=parent_singular_name%>_uploadify') %>
|
2
|
+
|
3
|
+
<script type="text/javascript" charset="utf-8">
|
4
|
+
$(document).ready(function() {
|
5
|
+
$(function () { // this line makes sure this code runs on page load
|
6
|
+
$('.checkall').click(function () {
|
7
|
+
$(this).parents('form:eq(0)').find(':checkbox').attr('checked', this.checked);
|
8
|
+
});
|
9
|
+
});
|
10
|
+
});
|
11
|
+
</script>
|
12
|
+
|
13
|
+
<div class='<%=child_singular_name%>list'>
|
14
|
+
<h1><%%= link_to @<%=parent_singular_name%>.title, <%=parent_singular_name%>_path(@<%=parent_singular_name%>) %></h1>
|
15
|
+
|
16
|
+
<%% form_tag '/destroy-<%=child_plural_name%>' do %>
|
17
|
+
|
18
|
+
<table class='<%=child_plural_name%>'>
|
19
|
+
<tr style='color:#222;'>
|
20
|
+
<th>
|
21
|
+
|
22
|
+
</th>
|
23
|
+
<th></th>
|
24
|
+
<th>
|
25
|
+
File Name
|
26
|
+
</th>
|
27
|
+
<th>
|
28
|
+
File Size
|
29
|
+
</th>
|
30
|
+
<th>
|
31
|
+
Created At
|
32
|
+
</th>
|
33
|
+
</tr>
|
34
|
+
<%% @<%=parent_singular_name%>.<%=child_plural_name%>.each do |<%=child_singular_name%>| %>
|
35
|
+
<tr class='<%%= cycle('odd', 'even')%>'>
|
36
|
+
<td>
|
37
|
+
<%%= check_box_tag "<%=child_singular_name%>_ids[]", <%=child_singular_name%>.id %>
|
38
|
+
</td>
|
39
|
+
<td>
|
40
|
+
<%%= image_tag(<%=child_singular_name%>.file.url(:thumb), :height => "60") %>
|
41
|
+
|
42
|
+
<div style="display:none"><div id="<%%=<%=child_singular_name%>.id%>"><%%= image_tag(<%=child_singular_name%>.file.url(:original)) %></div></div>
|
43
|
+
</td>
|
44
|
+
<td>
|
45
|
+
<%%= <%=child_singular_name%>.file_file_name %>
|
46
|
+
</td>
|
47
|
+
<td>
|
48
|
+
<%%= number_to_human_size(<%=child_singular_name%>.file_file_size) %>
|
49
|
+
</td>
|
50
|
+
<td>
|
51
|
+
<%%= <%=child_singular_name%>.created_at.to_s(:m_d_y) %>
|
52
|
+
</td>
|
53
|
+
</tr>
|
54
|
+
<%% end %>
|
55
|
+
<tr class='odd'>
|
56
|
+
<td colspan='5'>
|
57
|
+
<input type="checkbox" class="checkall"> Check all
|
58
|
+
<%%= submit_tag "Delete checked" %>
|
59
|
+
</td>
|
60
|
+
</tr>
|
61
|
+
</table>
|
62
|
+
|
63
|
+
<%% end -%>
|
64
|
+
|
65
|
+
</div>
|
@@ -1,6 +1,6 @@
|
|
1
|
-
|
1
|
+
<%% title "New <%=parent_class_name%>" %>
|
2
2
|
|
3
|
-
|
3
|
+
<%%= stylesheet( 'dust_<%=parent_singular_name%>','<%=parent_singular_name%>_uploadify') %>
|
4
4
|
|
5
|
-
|
5
|
+
<%%= render :partial => 'form' %>
|
6
6
|
|
@@ -1,44 +1,56 @@
|
|
1
|
-
|
2
|
-
<% heading h(@album.title.titleize) %>
|
1
|
+
<%% title h(@<%=parent_singular_name%>.title) %>
|
3
2
|
|
4
|
-
|
3
|
+
<%%= stylesheet( 'dust_<%=parent_singular_name%>','<%=parent_singular_name%>_uploadify') %>
|
5
4
|
|
6
|
-
|
5
|
+
|
6
|
+
<%% content_for :head do %>
|
7
|
+
<%%= javascript_include_tag 'dragsort', 'dust_<%=parent_singular_name%>' %>
|
8
|
+
<%% end -%>
|
9
|
+
|
10
|
+
<%%= render :partial => "upload_script" %>
|
7
11
|
|
8
12
|
<div class="item">
|
9
13
|
|
10
14
|
<div class='manage'>
|
11
|
-
|
12
|
-
|
15
|
+
<%%= link_to "", edit_<%=parent_singular_name%>_path(@<%=parent_singular_name%>), :class => 'edit' %>
|
16
|
+
<%%= link_to "", @<%=parent_singular_name%>, :confirm => 'Are you sure?', :method => :delete, :class => 'destroy' %>
|
13
17
|
</div>
|
14
|
-
|
15
|
-
|
18
|
+
|
19
|
+
<h1>
|
20
|
+
<%%= link_to @<%=parent_singular_name%>.title, view_<%=parent_singular_name%>_path(@<%=parent_singular_name%>.filename) %>
|
21
|
+
</h1>
|
22
|
+
<%%= simple_format(h(@<%=parent_singular_name%>.desc)) %>
|
23
|
+
|
16
24
|
</div>
|
17
25
|
|
18
26
|
<div class="item">
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
<%= render @album.photos %>
|
27
|
+
<div class="manage">
|
28
|
+
<br />
|
29
|
+
<%%= link_to image_tag('save_position.png'), <%=child_plural_name%>_path, :id => 'order_<%=child_plural_name%>' %>
|
23
30
|
</div>
|
24
|
-
|
25
|
-
<div class="clear"></div>
|
26
31
|
|
32
|
+
<h3 id="<%=child_plural_name%>_count"><%%= pluralize(@<%=parent_singular_name%>.<%=child_plural_name%>.size, "<%=child_class_name%>")%> <%% unless @<%=parent_singular_name%>.<%=child_plural_name%>.empty? %> | <%%= link_to "Select <%=child_plural_class_name%> For Deletion", manage_<%=child_plural_name%>_path(@<%=parent_singular_name%>, :format => 'html'), :class => 'settings' %> <%% end %> </h3>
|
33
|
+
<p>Drag <%=child_plural_name%> to reorder them. Don't forget to hit the save order button when your done.</p>
|
34
|
+
<ul id="uploads">
|
35
|
+
<%%= render :partial => @<%=parent_singular_name%>.<%=child_plural_name%>.roots, :<%=child_singular_name%> => @<%=child_singular_name%> %>
|
36
|
+
</ul>
|
37
|
+
|
38
|
+
<div class="clear"></div>
|
27
39
|
</div>
|
28
40
|
|
29
|
-
|
41
|
+
<%% content_for :left do -%>
|
30
42
|
|
31
43
|
<div id="uploadify">
|
32
|
-
<h3>Add
|
33
|
-
|
44
|
+
<h3>Add <%=child_plural_class_name%> to <%%= @<%=parent_singular_name%>.title.titleize %></h3>
|
45
|
+
<%% form_for @new_<%=child_singular_name%>, :html => {:multipart => true} do |f| %>
|
34
46
|
|
35
|
-
|
47
|
+
<%%= f.hidden_field :<%=parent_singular_name%>_id, "value" => @<%=parent_singular_name%>.id %>
|
36
48
|
<div class="uploadifyButtons">
|
37
|
-
|
49
|
+
<%%= image_submit_tag "upload.png", :id => "<%=child_singular_name%>_submit", :name => 'commit' %> <%%= f.file_field :file %>
|
38
50
|
<div class='clear'></div>
|
39
51
|
</div>
|
40
|
-
|
52
|
+
<%% end %>
|
41
53
|
</div>
|
42
54
|
|
43
|
-
|
55
|
+
<%% end -%>
|
44
56
|
|
@@ -0,0 +1 @@
|
|
1
|
+
$('#uploads').html("<%%= escape_javascript(render(@<%=parent_singular_name%>.<%=child_plural_name%>.roots, :<%=child_singular_name%> => @<%=child_singular_name%>)) %>");
|
@@ -1,22 +1,23 @@
|
|
1
|
-
|
1
|
+
<%%= stylesheet( 'dust_<%=parent_singular_name%>','<%=parent_singular_name%>_uploadify') %>
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
<
|
6
|
-
|
7
|
-
|
3
|
+
<%% form_for @<%=child_singular_name%>, :validations => true do |f| %>
|
4
|
+
<%%= f.error_messages %>
|
5
|
+
<div class="item">
|
6
|
+
<p>
|
7
|
+
<%%= f.label :title %><br />
|
8
|
+
<%%= f.text_field :title, :class => 'field' %>
|
8
9
|
</p>
|
9
|
-
|
10
|
-
|
11
|
-
|
10
|
+
</div>
|
11
|
+
|
12
|
+
<div class="item">
|
13
|
+
<p>
|
14
|
+
<%%= f.label :desc %><br />
|
15
|
+
<%%= f.text_area :desc, :class => 'field' %>
|
12
16
|
</p>
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
</p>
|
21
|
-
<p><%= f.submit %></p>
|
22
|
-
<% end %>
|
17
|
+
</div>
|
18
|
+
|
19
|
+
<div class="item">
|
20
|
+
<p><%%= f.submit %></p>
|
21
|
+
</div>
|
22
|
+
|
23
|
+
<%% end %>
|