merb-admin 0.8.1 → 0.8.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. data/.gitignore +29 -27
  2. data/Gemfile +24 -22
  3. data/Gemfile.lock +86 -0
  4. data/LICENSE +20 -20
  5. data/README.rdoc +54 -58
  6. data/Rakefile +11 -44
  7. data/app/controllers/application.rb +6 -6
  8. data/app/controllers/main.rb +191 -191
  9. data/app/helpers/application_helper.rb +64 -64
  10. data/app/helpers/main_helper.rb +167 -167
  11. data/app/models/.gitkeep +0 -0
  12. data/app/views/layout/_message.html.erb +10 -10
  13. data/app/views/layout/dashboard.html.erb +34 -34
  14. data/app/views/layout/form.html.erb +48 -48
  15. data/app/views/layout/list.html.erb +42 -42
  16. data/app/views/main/_belongs_to.html.erb +29 -29
  17. data/app/views/main/_big_decimal.html.erb +12 -12
  18. data/app/views/main/_boolean.html.erb +7 -7
  19. data/app/views/main/_date.html.erb +12 -12
  20. data/app/views/main/_datetime.html.erb +12 -12
  21. data/app/views/main/_float.html.erb +12 -12
  22. data/app/views/main/_has_many.html.erb +16 -16
  23. data/app/views/main/_has_one.html.erb +30 -30
  24. data/app/views/main/_integer.html.erb +12 -12
  25. data/app/views/main/_properties.html.erb +18 -18
  26. data/app/views/main/_string.html.erb +15 -15
  27. data/app/views/main/_text.html.erb +11 -11
  28. data/app/views/main/_time.html.erb +12 -12
  29. data/app/views/main/_timestamp.html.erb +12 -12
  30. data/app/views/main/delete.html.erb +28 -28
  31. data/app/views/main/edit.html.erb +19 -19
  32. data/app/views/main/index.html.erb +22 -22
  33. data/app/views/main/list.html.erb +93 -93
  34. data/app/views/main/new.html.erb +16 -16
  35. data/config/init.rb +30 -0
  36. data/config/router.rb +4 -0
  37. data/lib/abstract_model.rb +84 -86
  38. data/lib/active_record_support.rb +147 -147
  39. data/lib/datamapper_support.rb +139 -140
  40. data/lib/generic_support.rb +13 -13
  41. data/lib/merb-admin.rb +99 -99
  42. data/lib/merb-admin/merbtasks.rb +103 -103
  43. data/lib/merb-admin/slicetasks.rb +174 -174
  44. data/lib/merb-admin/spectasks.rb +55 -55
  45. data/lib/merb-admin/version.rb +3 -0
  46. data/lib/sequel_support.rb +275 -275
  47. data/merb-admin.gemspec +42 -232
  48. data/public/javascripts/CollapsedFieldsets.js +85 -85
  49. data/public/javascripts/DateTimeShortcuts.js +255 -255
  50. data/public/javascripts/RelatedObjectLookups.js +96 -96
  51. data/public/javascripts/SelectBox.js +111 -111
  52. data/public/javascripts/SelectFilter2.js +113 -113
  53. data/public/javascripts/actions.js +39 -39
  54. data/public/javascripts/calendar.js +143 -143
  55. data/public/javascripts/core.js +176 -176
  56. data/public/javascripts/dateparse.js +233 -233
  57. data/public/javascripts/getElementsBySelector.js +167 -167
  58. data/public/javascripts/i18n.js +33 -33
  59. data/public/javascripts/ordering.js +137 -137
  60. data/public/javascripts/timeparse.js +94 -94
  61. data/public/javascripts/urlify.js +140 -140
  62. data/public/stylesheets/base.css +746 -746
  63. data/public/stylesheets/changelists.css +269 -269
  64. data/public/stylesheets/dashboard.css +24 -24
  65. data/public/stylesheets/forms.css +327 -327
  66. data/public/stylesheets/global.css +142 -142
  67. data/public/stylesheets/ie.css +50 -50
  68. data/public/stylesheets/layout.css +29 -29
  69. data/public/stylesheets/login.css +54 -54
  70. data/public/stylesheets/master.css +1 -1
  71. data/public/stylesheets/patch-iewin.css +7 -7
  72. data/public/stylesheets/rtl.css +206 -206
  73. data/public/stylesheets/widgets.css +506 -506
  74. data/screenshots/create.png +0 -0
  75. data/screenshots/delete.png +0 -0
  76. data/screenshots/edit.png +0 -0
  77. data/screenshots/index.png +0 -0
  78. data/screenshots/list.png +0 -0
  79. data/screenshots/new.png +0 -0
  80. data/spec/controllers/main_spec.rb +25 -25
  81. data/spec/migrations/activerecord/001_create_divisions_migration.rb +13 -13
  82. data/spec/migrations/activerecord/002_create_drafts_migration.rb +19 -19
  83. data/spec/migrations/activerecord/003_create_leagues_migration.rb +12 -12
  84. data/spec/migrations/activerecord/004_create_players_migration.rb +19 -20
  85. data/spec/migrations/activerecord/005_create_teams_migration.rb +22 -22
  86. data/spec/migrations/sequel/001_create_divisions_migration.rb +15 -15
  87. data/spec/migrations/sequel/002_create_drafts_migration.rb +21 -21
  88. data/spec/migrations/sequel/003_create_leagues_migration.rb +14 -14
  89. data/spec/migrations/sequel/004_create_players_migration.rb +21 -22
  90. data/spec/migrations/sequel/005_create_teams_migration.rb +24 -24
  91. data/spec/models/activerecord/division.rb +7 -7
  92. data/spec/models/activerecord/draft.rb +11 -11
  93. data/spec/models/activerecord/league.rb +6 -6
  94. data/spec/models/activerecord/player.rb +8 -8
  95. data/spec/models/activerecord/team.rb +13 -13
  96. data/spec/models/datamapper/division.rb +12 -12
  97. data/spec/models/datamapper/draft.rb +18 -18
  98. data/spec/models/datamapper/league.rb +11 -11
  99. data/spec/models/datamapper/player.rb +20 -21
  100. data/spec/models/datamapper/team.rb +22 -22
  101. data/spec/models/sequel/division.rb +15 -15
  102. data/spec/models/sequel/draft.rb +19 -19
  103. data/spec/models/sequel/league.rb +14 -14
  104. data/spec/models/sequel/player.rb +18 -18
  105. data/spec/models/sequel/team.rb +21 -21
  106. data/spec/requests/main_spec.rb +763 -763
  107. data/spec/spec_helper.rb +113 -112
  108. metadata +247 -41
  109. data/VERSION +0 -1
File without changes
@@ -1,10 +1,10 @@
1
- <% if message && message[:error] %>
2
- <p class="errornote">
3
- <%=h message[:error] %>
4
- </p>
5
- <% end %>
6
- <% if message && message[:notice] %>
7
- <ul class="messagelist">
8
- <li><%=h message[:notice] %></li>
9
- </ul>
10
- <% end %>
1
+ <% if message && message[:error] %>
2
+ <p class="errornote">
3
+ <%=h message[:error] %>
4
+ </p>
5
+ <% end %>
6
+ <% if message && message[:notice] %>
7
+ <ul class="messagelist">
8
+ <li><%=h message[:notice] %></li>
9
+ </ul>
10
+ <% end %>
@@ -1,34 +1,34 @@
1
- <%
2
- slice_name = "MerbAdmin" + (MerbAdmin[:app_name].blank? ? "" : " for #{MerbAdmin[:app_name]}")
3
- page_name = "Site administration"
4
- %>
5
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
6
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-us" lang="en-us">
7
- <head>
8
- <meta http-equiv="content-type" content="text/html; charset=utf-8" />
9
- <meta name="robots" content="NONE,NOARCHIVE" />
10
- <title><%= page_name %> | <%= slice_name %></title>
11
- <link href="<%= public_path_for :stylesheet, 'base.css' %>" type="text/css" charset="utf-8" rel="stylesheet" media="all" />
12
- <link href="<%= public_path_for :stylesheet, 'dashboard.css' %>" type="text/css" charset="utf-8" rel="stylesheet" media="all" />
13
- <!--[if lte IE 7]><link href="<%= public_path_for :stylesheet, 'ie.css' %>" type="text/css" charset="utf-8" rel="stylesheet" media="all" /><![endif]-->
14
- </head>
15
- <body class="admin-slice dashboard">
16
- <div id="container">
17
- <div id="header">
18
- <div id="branding">
19
- <h1 id="site-name">
20
- <%= slice_name %>
21
- </h1>
22
- </div>
23
- </div>
24
- <%= partial('layout/message', :message => message) unless message.blank? -%>
25
- <div id="content" class="colMS">
26
- <h1>
27
- <%= page_name %>
28
- </h1>
29
- <%= catch_content(:for_layout) -%>
30
- </div>
31
- <div id="footer"></div>
32
- </div>
33
- </body>
34
- </html>
1
+ <%
2
+ slice_name = "MerbAdmin" + (MerbAdmin[:app_name].blank? ? "" : " for #{MerbAdmin[:app_name]}")
3
+ page_name = "Site administration"
4
+ %>
5
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-us" lang="en-us">
7
+ <head>
8
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
9
+ <meta name="robots" content="NONE,NOARCHIVE" />
10
+ <title><%= page_name %> | <%= slice_name %></title>
11
+ <link href="<%= public_path_for :stylesheet, 'base.css' %>" type="text/css" charset="utf-8" rel="stylesheet" media="all" />
12
+ <link href="<%= public_path_for :stylesheet, 'dashboard.css' %>" type="text/css" charset="utf-8" rel="stylesheet" media="all" />
13
+ <!--[if lte IE 7]><link href="<%= public_path_for :stylesheet, 'ie.css' %>" type="text/css" charset="utf-8" rel="stylesheet" media="all" /><![endif]-->
14
+ </head>
15
+ <body class="admin-slice dashboard">
16
+ <div id="container">
17
+ <div id="header">
18
+ <div id="branding">
19
+ <h1 id="site-name">
20
+ <%= slice_name %>
21
+ </h1>
22
+ </div>
23
+ </div>
24
+ <%= partial('layout/message', :message => message) unless message.blank? -%>
25
+ <div id="content" class="colMS">
26
+ <h1>
27
+ <%= page_name %>
28
+ </h1>
29
+ <%= catch_content(:for_layout) -%>
30
+ </div>
31
+ <div id="footer"></div>
32
+ </div>
33
+ </body>
34
+ </html>
@@ -1,48 +1,48 @@
1
- <%
2
- slice_name = "MerbAdmin" + (MerbAdmin[:app_name].blank? ? "" : " for #{MerbAdmin[:app_name]}")
3
- page_name = action_name.capitalize + " " + @abstract_model.pretty_name.downcase
4
- %>
5
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
6
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-us" lang="en-us">
7
- <head>
8
- <meta http-equiv="content-type" content="text/html; charset=utf-8" />
9
- <meta name="robots" content="NONE,NOARCHIVE" />
10
- <title><%= page_name %> | <%= slice_name %></title>
11
- <link href="<%= public_path_for :stylesheet, 'base.css' %>" type="text/css" charset="utf-8" rel="stylesheet" media="all" />
12
- <link href="<%= public_path_for :stylesheet, 'forms.css' %>" type="text/css" charset="utf-8" rel="stylesheet" media="all" />
13
- <!--[if lte IE 7]><link href="<%= public_path_for :stylesheet, 'ie.css' %>" type="text/css" charset="utf-8" rel="stylesheet" media="all" /><![endif]-->
14
- <script src="<%= public_path_for :javascript, 'i18n.js' %>" type="text/javascript" charset="utf-8"></script>
15
- <script src="<%= public_path_for :javascript, 'core.js' %>" type="text/javascript" charset="utf-8"></script>
16
- <script src="<%= public_path_for :javascript, 'RelatedObjectLookups.js' %>" type="text/javascript" charset="utf-8"></script>
17
- <script src="<%= public_path_for :javascript, 'getElementsBySelector.js' %>" type="text/javascript" charset="utf-8"></script>
18
- <script src="<%= public_path_for :javascript, 'actions.js' %>" type="text/javascript" charset="utf-8"></script>
19
- <script src="<%= public_path_for :javascript, 'SelectBox.js' %>" type="text/javascript" charset="utf-8"></script>
20
- <script src="<%= public_path_for :javascript, 'SelectFilter2.js' %>" type="text/javascript" charset="utf-8"></script>
21
- <script src="<%= public_path_for :javascript, 'calendar.js' %>" type="text/javascript" charset="utf-8"></script>
22
- <script src="<%= public_path_for :javascript, 'DateTimeShortcuts.js' %>" type="text/javascript" charset="utf-8"></script>
23
- </head>
24
- <body class="admin-slice change-form">
25
- <div id="container">
26
- <div id="header">
27
- <div id="branding">
28
- <h1 id="site-name">
29
- <%= slice_name %>
30
- </h1>
31
- </div>
32
- </div>
33
- <div class="breadcrumbs">
34
- <%= link_to("Home", url(:merb_admin_dashboard)) %> &rsaquo;
35
- <%= link_to(@abstract_model.pretty_name, url(:merb_admin_list, :model_name => @abstract_model.to_param)) %> &rsaquo;
36
- <%= page_name %>
37
- </div>
38
- <%= partial('layout/message', :message => message) unless message.blank? -%>
39
- <div id="content" class="colM">
40
- <h1>
41
- <%= page_name %>
42
- </h1>
43
- <%= catch_content(:for_layout) -%>
44
- </div>
45
- <div id="footer"></div>
46
- </div>
47
- </body>
48
- </html>
1
+ <%
2
+ slice_name = "MerbAdmin" + (MerbAdmin[:app_name].blank? ? "" : " for #{MerbAdmin[:app_name]}")
3
+ page_name = action_name.capitalize + " " + @abstract_model.pretty_name.downcase
4
+ %>
5
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-us" lang="en-us">
7
+ <head>
8
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
9
+ <meta name="robots" content="NONE,NOARCHIVE" />
10
+ <title><%= page_name %> | <%= slice_name %></title>
11
+ <link href="<%= public_path_for :stylesheet, 'base.css' %>" type="text/css" charset="utf-8" rel="stylesheet" media="all" />
12
+ <link href="<%= public_path_for :stylesheet, 'forms.css' %>" type="text/css" charset="utf-8" rel="stylesheet" media="all" />
13
+ <!--[if lte IE 7]><link href="<%= public_path_for :stylesheet, 'ie.css' %>" type="text/css" charset="utf-8" rel="stylesheet" media="all" /><![endif]-->
14
+ <script src="<%= public_path_for :javascript, 'i18n.js' %>" type="text/javascript" charset="utf-8"></script>
15
+ <script src="<%= public_path_for :javascript, 'core.js' %>" type="text/javascript" charset="utf-8"></script>
16
+ <script src="<%= public_path_for :javascript, 'RelatedObjectLookups.js' %>" type="text/javascript" charset="utf-8"></script>
17
+ <script src="<%= public_path_for :javascript, 'getElementsBySelector.js' %>" type="text/javascript" charset="utf-8"></script>
18
+ <script src="<%= public_path_for :javascript, 'actions.js' %>" type="text/javascript" charset="utf-8"></script>
19
+ <script src="<%= public_path_for :javascript, 'SelectBox.js' %>" type="text/javascript" charset="utf-8"></script>
20
+ <script src="<%= public_path_for :javascript, 'SelectFilter2.js' %>" type="text/javascript" charset="utf-8"></script>
21
+ <script src="<%= public_path_for :javascript, 'calendar.js' %>" type="text/javascript" charset="utf-8"></script>
22
+ <script src="<%= public_path_for :javascript, 'DateTimeShortcuts.js' %>" type="text/javascript" charset="utf-8"></script>
23
+ </head>
24
+ <body class="admin-slice change-form">
25
+ <div id="container">
26
+ <div id="header">
27
+ <div id="branding">
28
+ <h1 id="site-name">
29
+ <%= slice_name %>
30
+ </h1>
31
+ </div>
32
+ </div>
33
+ <div class="breadcrumbs">
34
+ <%= link_to("Home", url(:merb_admin_dashboard)) %> &rsaquo;
35
+ <%= link_to(@abstract_model.pretty_name, url(:merb_admin_list, :model_name => @abstract_model.to_param)) %> &rsaquo;
36
+ <%= page_name %>
37
+ </div>
38
+ <%= partial('layout/message', :message => message) unless message.blank? -%>
39
+ <div id="content" class="colM">
40
+ <h1>
41
+ <%= page_name %>
42
+ </h1>
43
+ <%= catch_content(:for_layout) -%>
44
+ </div>
45
+ <div id="footer"></div>
46
+ </div>
47
+ </body>
48
+ </html>
@@ -1,42 +1,42 @@
1
- <%
2
- slice_name = "MerbAdmin" + (MerbAdmin[:app_name].blank? ? "" : " for #{MerbAdmin[:app_name]}")
3
- page_name = "Select " + @abstract_model.pretty_name.downcase + " to edit"
4
- %>
5
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
6
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-us" lang="en-us">
7
- <head>
8
- <meta http-equiv="content-type" content="text/html; charset=utf-8" />
9
- <meta name="robots" content="NONE,NOARCHIVE" />
10
- <title><%= page_name %> | <%= slice_name %></title>
11
- <link href="<%= public_path_for :stylesheet, 'base.css' %>" type="text/css" charset="utf-8" rel="stylesheet" media="all" />
12
- <link href="<%= public_path_for :stylesheet, 'changelists.css' %>" type="text/css" charset="utf-8" rel="stylesheet" media="all" />
13
- <!--[if lte IE 7]><link href="<%= public_path_for :stylesheet, 'ie.css' %>" type="text/css" charset="utf-8" rel="stylesheet" media="all" /><![endif]-->
14
- <script src="<%= public_path_for :javascript, 'core.js' %>" type="text/javascript" charset="utf-8"></script>
15
- <script src="<%= public_path_for :javascript, 'RelatedObjectLookups.js' %>" type="text/javascript" charset="utf-8"></script>
16
- <script src="<%= public_path_for :javascript, 'getElementsBySelector.js' %>" type="text/javascript" charset="utf-8"></script>
17
- <script src="<%= public_path_for :javascript, 'actions.js' %>" type="text/javascript" charset="utf-8"></script>
18
- </head>
19
- <body class="admin-slice change-list">
20
- <div id="container">
21
- <div id="header">
22
- <div id="branding">
23
- <h1 id="site-name">
24
- <%= slice_name %>
25
- </h1>
26
- </div>
27
- </div>
28
- <div class="breadcrumbs">
29
- <%= link_to("Home", url(:merb_admin_dashboard)) %> &rsaquo;
30
- <%= @abstract_model.pretty_name %>
31
- </div>
32
- <%= partial('layout/message', :message => message) unless message.blank? -%>
33
- <div id="content" class="flex">
34
- <h1>
35
- <%= page_name %>
36
- </h1>
37
- <%= catch_content(:for_layout) -%>
38
- </div>
39
- <div id="footer"></div>
40
- </div>
41
- </body>
42
- </html>
1
+ <%
2
+ slice_name = "MerbAdmin" + (MerbAdmin[:app_name].blank? ? "" : " for #{MerbAdmin[:app_name]}")
3
+ page_name = "Select " + @abstract_model.pretty_name.downcase + " to edit"
4
+ %>
5
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-us" lang="en-us">
7
+ <head>
8
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
9
+ <meta name="robots" content="NONE,NOARCHIVE" />
10
+ <title><%= page_name %> | <%= slice_name %></title>
11
+ <link href="<%= public_path_for :stylesheet, 'base.css' %>" type="text/css" charset="utf-8" rel="stylesheet" media="all" />
12
+ <link href="<%= public_path_for :stylesheet, 'changelists.css' %>" type="text/css" charset="utf-8" rel="stylesheet" media="all" />
13
+ <!--[if lte IE 7]><link href="<%= public_path_for :stylesheet, 'ie.css' %>" type="text/css" charset="utf-8" rel="stylesheet" media="all" /><![endif]-->
14
+ <script src="<%= public_path_for :javascript, 'core.js' %>" type="text/javascript" charset="utf-8"></script>
15
+ <script src="<%= public_path_for :javascript, 'RelatedObjectLookups.js' %>" type="text/javascript" charset="utf-8"></script>
16
+ <script src="<%= public_path_for :javascript, 'getElementsBySelector.js' %>" type="text/javascript" charset="utf-8"></script>
17
+ <script src="<%= public_path_for :javascript, 'actions.js' %>" type="text/javascript" charset="utf-8"></script>
18
+ </head>
19
+ <body class="admin-slice change-list">
20
+ <div id="container">
21
+ <div id="header">
22
+ <div id="branding">
23
+ <h1 id="site-name">
24
+ <%= slice_name %>
25
+ </h1>
26
+ </div>
27
+ </div>
28
+ <div class="breadcrumbs">
29
+ <%= link_to("Home", url(:merb_admin_dashboard)) %> &rsaquo;
30
+ <%= @abstract_model.pretty_name %>
31
+ </div>
32
+ <%= partial('layout/message', :message => message) unless message.blank? -%>
33
+ <div id="content" class="flex">
34
+ <h1>
35
+ <%= page_name %>
36
+ </h1>
37
+ <%= catch_content(:for_layout) -%>
38
+ </div>
39
+ <div id="footer"></div>
40
+ </div>
41
+ </body>
42
+ </html>
@@ -1,29 +1,29 @@
1
- <%
2
- child_key = association[:child_key].first
3
- collection = MerbAdmin::AbstractModel.new(association[:parent_model]).all.map{|object| [object.id, object_label(object)]}.sort_by{|object| object[1]}
4
- selected = @object.send(child_key)
5
- label = association[:pretty_name]
6
- required = false
7
- errors_exist = !(@object.errors[child_key].nil? || @object.errors[child_key].empty?)
8
- @properties.select{|property| property[:name] == child_key}.each do |property|
9
- required = true unless property[:nullable?]
10
- end
11
- %>
12
- <fieldset class="module aligned">
13
- <h2><%= label %></h2>
14
- <div class="<%= errors_exist ? "form-row errors" : "form-row"%>">
15
- <% if errors_exist %>
16
- <ul class="errorlist">
17
- <% @object.errors[child_key].each do |error| %>
18
- <li><%= error %></li>
19
- <% end %>
20
- </ul>
21
- <% end %>
22
- <div>
23
- <%= select(child_key, :collection => collection, :include_blank => true, :selected => selected.to_s, :label => label) %>
24
- <p class="help">
25
- <%= required ? "Required." : "Optional." %>
26
- </p>
27
- </div>
28
- </div>
29
- </fieldset>
1
+ <%
2
+ child_key = association[:child_key].first
3
+ collection = MerbAdmin::AbstractModel.new(association[:parent_model]).all.map{|object| [object.id, object_label(object)]}.sort_by{|object| object[1]}
4
+ selected = @object.send(child_key)
5
+ label = association[:pretty_name]
6
+ required = false
7
+ errors_exist = !(@object.errors[child_key].nil? || @object.errors[child_key].empty?)
8
+ @properties.select{|property| property[:name] == child_key}.each do |property|
9
+ required = true unless property[:nullable?]
10
+ end
11
+ %>
12
+ <fieldset class="module aligned">
13
+ <h2><%= label %></h2>
14
+ <div class="<%= errors_exist ? "form-row errors" : "form-row"%>">
15
+ <% if errors_exist %>
16
+ <ul class="errorlist">
17
+ <% @object.errors[child_key].each do |error| %>
18
+ <li><%= error %></li>
19
+ <% end %>
20
+ </ul>
21
+ <% end %>
22
+ <div>
23
+ <%= select(child_key, :collection => collection, :include_blank => true, :selected => selected.to_s, :label => label) %>
24
+ <p class="help">
25
+ <%= required ? "Required." : "Optional." %>
26
+ </p>
27
+ </div>
28
+ </div>
29
+ </fieldset>
@@ -1,12 +1,12 @@
1
- <%
2
- property_name = property[:name]
3
- length = property[:length]
4
- label = property[:pretty_name]
5
- required = !property[:nullable?] || property[:serial?]
6
- %>
7
- <div>
8
- <%= text_field(property_name, :maxlength => length, :label => label) %>
9
- <p class="help">
10
- <%= required ? "Required." : "Optional." %>
11
- </p>
12
- </div>
1
+ <%
2
+ property_name = property[:name]
3
+ length = property[:length].to_i
4
+ label = property[:pretty_name]
5
+ required = !property[:nullable?] || property[:serial?]
6
+ %>
7
+ <div>
8
+ <%= text_field(property_name, :maxlength => length, :label => label) %>
9
+ <p class="help">
10
+ <%= required ? "Required." : "Optional." %>
11
+ </p>
12
+ </div>
@@ -1,7 +1,7 @@
1
- <%
2
- property_name = property[:name]
3
- label = property[:pretty_name]
4
- %>
5
- <div>
6
- <%= check_box(property_name, :label => label) %>
7
- </div>
1
+ <%
2
+ property_name = property[:name]
3
+ label = property[:pretty_name]
4
+ %>
5
+ <div>
6
+ <%= check_box(property_name, :label => label) %>
7
+ </div>
@@ -1,12 +1,12 @@
1
- <%
2
- property_name = property[:name]
3
- value = @object.send(property_name)
4
- label = property[:pretty_name]
5
- required = !property[:nullable?]
6
- %>
7
- <div>
8
- <%= text_field(property_name, :class => "vDateField", :value => value.respond_to?(:strftime) ? value.strftime("%Y-%m-%d") : nil, :label => label) %>
9
- <p class="help">
10
- <%= required ? "Required." : "Optional." %>
11
- </p>
12
- </div>
1
+ <%
2
+ property_name = property[:name]
3
+ value = @object.send(property_name)
4
+ label = property[:pretty_name]
5
+ required = !property[:nullable?]
6
+ %>
7
+ <div>
8
+ <%= text_field(property_name, :class => "vDateField", :value => value.respond_to?(:strftime) ? value.strftime("%Y-%m-%d") : nil, :label => label) %>
9
+ <p class="help">
10
+ <%= required ? "Required." : "Optional." %>
11
+ </p>
12
+ </div>
@@ -1,12 +1,12 @@
1
- <%
2
- property_name = property[:name]
3
- value = @object.send(property_name)
4
- label = property[:pretty_name]
5
- required = !property[:nullable?]
6
- %>
7
- <div>
8
- <%= text_field(property_name, :class => "vDateField", :value => value.respond_to?(:strftime) ? value.strftime("%Y-%m-%d %H:%M:%S") : nil, :label => label) %>
9
- <p class="help">
10
- <%= required ? "Required." : "Optional." %>
11
- </p>
12
- </div>
1
+ <%
2
+ property_name = property[:name]
3
+ value = @object.send(property_name)
4
+ label = property[:pretty_name]
5
+ required = !property[:nullable?]
6
+ %>
7
+ <div>
8
+ <%= text_field(property_name, :class => "vDateField", :value => value.respond_to?(:strftime) ? value.strftime("%Y-%m-%d %H:%M:%S") : nil, :label => label) %>
9
+ <p class="help">
10
+ <%= required ? "Required." : "Optional." %>
11
+ </p>
12
+ </div>
@@ -1,12 +1,12 @@
1
- <%
2
- property_name = property[:name]
3
- length = property[:length]
4
- label = property[:pretty_name]
5
- required = !property[:nullable?] || property[:serial?]
6
- %>
7
- <div>
8
- <%= text_field(property_name, :maxlength => length, :label => label) %>
9
- <p class="help">
10
- <%= required ? "Required." : "Optional." %>
11
- </p>
12
- </div>
1
+ <%
2
+ property_name = property[:name]
3
+ length = property[:length].to_i
4
+ label = property[:pretty_name]
5
+ required = !property[:nullable?] || property[:serial?]
6
+ %>
7
+ <div>
8
+ <%= text_field(property_name, :maxlength => length, :label => label) %>
9
+ <p class="help">
10
+ <%= required ? "Required." : "Optional." %>
11
+ </p>
12
+ </div>