hobo 0.6.4 → 0.7.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.
- data/bin/hobo +4 -6
- data/hobo_files/plugin/CHANGES.txt +170 -0
- data/hobo_files/plugin/generators/hobo_front_controller/templates/index.dryml +9 -9
- data/hobo_files/plugin/generators/hobo_front_controller/templates/search.dryml +9 -9
- data/hobo_files/plugin/generators/hobo_migration/hobo_migration_generator.rb +7 -2
- data/hobo_files/plugin/generators/hobo_rapid/hobo_rapid_generator.rb +4 -4
- data/hobo_files/plugin/generators/hobo_rapid/templates/{hobo_rapid.css → hobo-rapid.css} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/{hobo_rapid.js → hobo-rapid.js} +66 -47
- data/hobo_files/plugin/generators/hobo_rapid/templates/lowpro.js +130 -44
- data/hobo_files/plugin/generators/hobo_rapid/templates/{hobo_base.css → reset.css} +0 -5
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/clean/public/images/pencil.png +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/clean/public/images/small_close.png +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/clean/public/stylesheets/application.css +45 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/clean/public/stylesheets/rapid_ui.css +167 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/clean/views/application.dryml +10 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{bkg_bodytop.gif → bkg-bodytop.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{bkg_corner_01.gif → bkg-corner-01.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{bkg_corner_02.gif → bkg-corner-02.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{bkg_corner_03.gif → bkg-corner-03.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{bkg_corner_04.gif → bkg-corner-04.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{bkg_shadow_bottom.gif → bkg-shadow-bottom.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{bkg_shadow_left.gif → bkg-shadow-left.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{bkg_shadow_right.gif → bkg-shadow-right.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{bkg_shadow_top.gif → bkg-shadow-top.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{header_blue.gif → header-blue.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{header_dblue.gif → header-dblue.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{header_green.gif → header-green.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{header_purple.gif → header-purple.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{header_red.gif → header-red.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{txt_list_img_dblue.gif → txt-list-img-dblue.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{txt_list_img_green.gif → txt-list-img-green.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{txt_list_img_purple.gif → txt-list-img-purple.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{txt_list_img_red.gif → txt-list-img-red.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{window_corner_01.gif → window-corner-01.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{window_corner_02.gif → window-corner-02.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{window_corner_03.gif → window-corner-03.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{window_corner_04.gif → window-corner-04.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{window_shadow_bottom.gif → window-shadow-bottom.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{window_shadow_left.gif → window-shadow-left.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{window_shadow_right.gif → window-shadow-right.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/{window_shadow_top.gif → window-shadow-top.gif} +0 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/stylesheets/application.css +69 -69
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/views/application.dryml +39 -53
- data/hobo_files/plugin/generators/hobo_user_model/templates/model.rb +1 -1
- data/hobo_files/plugin/lib/extensions.rb +0 -16
- data/hobo_files/plugin/lib/hobo/dryml/part_context.rb +1 -1
- data/hobo_files/plugin/lib/hobo/dryml/tag_parameters.rb +35 -0
- data/hobo_files/plugin/lib/hobo/dryml/taglib.rb +2 -2
- data/hobo_files/plugin/lib/hobo/dryml/template.rb +165 -236
- data/hobo_files/plugin/lib/hobo/dryml/template_environment.rb +158 -123
- data/hobo_files/plugin/lib/hobo/hobo_helper.rb +15 -4
- data/hobo_files/plugin/lib/hobo/model.rb +30 -11
- data/hobo_files/plugin/lib/hobo/model_controller.rb +13 -9
- data/hobo_files/plugin/lib/hobo/model_router.rb +27 -7
- data/hobo_files/plugin/lib/hobo/static_tags +0 -2
- data/hobo_files/plugin/lib/hobo/user.rb +3 -3
- data/hobo_files/plugin/lib/rexml.rb +10 -3
- data/hobo_files/plugin/tags/core.dryml +11 -16
- data/hobo_files/plugin/tags/rapid.dryml +147 -110
- data/hobo_files/plugin/tags/rapid_document_tags.dryml +22 -20
- data/hobo_files/plugin/tags/rapid_editing.dryml +41 -41
- data/hobo_files/plugin/tags/rapid_forms.dryml +51 -49
- data/hobo_files/plugin/tags/rapid_navigation.dryml +34 -34
- data/hobo_files/plugin/tags/rapid_pages.dryml +174 -174
- data/hobo_files/plugin/tags/rapid_plus.dryml +19 -19
- data/hobo_files/plugin/tags/rapid_support.dryml +5 -5
- data/hobo_files/plugin/tasks/dump_fixtures.rake +62 -53
- data/hobo_files/plugin/tasks/fix_dryml.rake +144 -0
- data/hobo_files/plugin/tasks/hobo_tasks.rake +0 -4
- metadata +43 -32
- data/hobo_files/plugin/lib/hobo/dryml/tag_module.rb +0 -9
|
@@ -5,34 +5,34 @@
|
|
|
5
5
|
<!--- General Navigation -->
|
|
6
6
|
|
|
7
7
|
<def tag="navigation" attrs="current">
|
|
8
|
-
<ul
|
|
9
|
-
<
|
|
10
|
-
<
|
|
11
|
-
</
|
|
8
|
+
<ul merge-attrs>
|
|
9
|
+
<set-scoped current-navigation="¤t">
|
|
10
|
+
<do param="default"/>
|
|
11
|
+
</set-scoped>
|
|
12
12
|
</ul>
|
|
13
13
|
</def>
|
|
14
14
|
|
|
15
|
-
<def tag="
|
|
16
|
-
<set body="&
|
|
15
|
+
<def tag="nav-item">
|
|
16
|
+
<set body="¶meters.default"/>
|
|
17
17
|
<li class="#{'current' if (c = scope.current_navigation) && c.downcase == body.downcase.gsub(/<.*?>/, '').strip}"
|
|
18
|
-
|
|
19
|
-
<a
|
|
18
|
+
merge-attrs="&attributes - attrs_for(:a)">
|
|
19
|
+
<a merge-attrs="&attributes & attrs_for(:a)"><%= body %></a>
|
|
20
20
|
</li>
|
|
21
21
|
</def>
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
<!--- Account Navigation (log in / out / signup) -->
|
|
25
25
|
|
|
26
|
-
<def tag="
|
|
27
|
-
<ul class="
|
|
26
|
+
<def tag="account-nav">
|
|
27
|
+
<ul class="account-nav">
|
|
28
28
|
<if test="&logged_in?">
|
|
29
|
-
<li class='
|
|
30
|
-
<li class='
|
|
29
|
+
<li class='nav-item'>Logged in as <view:login with="¤t_user"/></li>
|
|
30
|
+
<li class='nav-item'><a href="&logout_url">Log out</a></li>
|
|
31
31
|
</if>
|
|
32
32
|
<else>
|
|
33
33
|
<set user="&Hobo::UserController.user_models.first"/>
|
|
34
|
-
<li class='
|
|
35
|
-
<li if="&signup_url(user)" class='
|
|
34
|
+
<li class='nav-item'><a href="&login_url(user)">Log in</a></li>
|
|
35
|
+
<li if="&signup_url(user)" class='nav-item'><a href="&signup_url(user)">Sign up</a></li>
|
|
36
36
|
</else>
|
|
37
37
|
</ul>
|
|
38
38
|
</def>
|
|
@@ -40,59 +40,59 @@
|
|
|
40
40
|
|
|
41
41
|
<!--- Pagination Navigation -->
|
|
42
42
|
|
|
43
|
-
<def tag="
|
|
43
|
+
<def tag="page-nav" attrs="params">
|
|
44
44
|
<if test="&@pages && @pages.length > 1">
|
|
45
|
-
<
|
|
46
|
-
<
|
|
47
|
-
<
|
|
48
|
-
<
|
|
49
|
-
<
|
|
45
|
+
<page-n-of-count/> -
|
|
46
|
+
<first-page-link params="¶ms">|<</first-page-link>
|
|
47
|
+
<previous-page-link params="¶ms">Previous</previous-page-link>
|
|
48
|
+
<next-page-link params="¶ms">Next</next-page-link>
|
|
49
|
+
<last-page-link params="¶ms">>|</last-page-link>
|
|
50
50
|
</if>
|
|
51
51
|
</def>
|
|
52
52
|
|
|
53
53
|
|
|
54
|
-
<def tag="
|
|
54
|
+
<def tag="page-n-of-count">
|
|
55
55
|
Page <%= @pages.current_page.number %> of <%= @pages.length %>
|
|
56
56
|
</def>
|
|
57
57
|
|
|
58
58
|
|
|
59
|
-
<def tag="
|
|
59
|
+
<def tag="previous-page-link">
|
|
60
60
|
<a if="&@pages && @pages.current.previous"
|
|
61
61
|
href="&url_for(params.merge(:page => @pages.current.previous))">
|
|
62
|
-
<
|
|
62
|
+
<do param="default">« Previous page</do>
|
|
63
63
|
</a>
|
|
64
64
|
</def>
|
|
65
65
|
|
|
66
66
|
|
|
67
|
-
<def tag="
|
|
67
|
+
<def tag="next-page-link">
|
|
68
68
|
<a if="&@pages && @pages.current.next"
|
|
69
69
|
href="&url_for(params.merge(:page => @pages.current.next))">
|
|
70
|
-
<
|
|
70
|
+
<do param="default">Next page &raqou;</do>
|
|
71
71
|
</a>
|
|
72
72
|
</def>
|
|
73
73
|
|
|
74
74
|
|
|
75
|
-
<def tag="
|
|
75
|
+
<def tag="first-page-link">
|
|
76
76
|
<a if="&@pages && @pages.first_page && @pages.current != @pages.first_page"
|
|
77
77
|
href="&url_for(params.merge(:page => @pages.first_page))">
|
|
78
|
-
<
|
|
78
|
+
<do param="default">« First page</do>
|
|
79
79
|
</a>
|
|
80
80
|
</def>
|
|
81
81
|
|
|
82
82
|
|
|
83
|
-
<def tag="
|
|
83
|
+
<def tag="last-page-link">
|
|
84
84
|
<a if="&@pages && @pages.last_page && @pages.current != @pages.last_page"
|
|
85
85
|
href="&url_for(params.merge(:page => @pages.last_page))">
|
|
86
|
-
<
|
|
86
|
+
<do param="default">Last page »</do>
|
|
87
87
|
</a>
|
|
88
88
|
</def>
|
|
89
89
|
|
|
90
90
|
<!-- magic nav, just to get you started -->
|
|
91
91
|
<!-- write your own navigation using the <navigation> tag -->
|
|
92
|
-
<def tag="
|
|
93
|
-
<navigation
|
|
94
|
-
<
|
|
95
|
-
<
|
|
96
|
-
<
|
|
92
|
+
<def tag="magic-nav">
|
|
93
|
+
<navigation merge-attrs>
|
|
94
|
+
<nav-item href="#{base_url}/">Home</nav-item>
|
|
95
|
+
<nav-item repeat="&Hobo.models.select{|m| [0..2]}"><name/></nav-item>
|
|
96
|
+
<nav-item href="&search_url" if="&defined_route? :search">Search</nav-item>
|
|
97
97
|
</navigation>
|
|
98
98
|
</def>
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
<def tag="
|
|
1
|
+
<def tag="base-page" attrs="title, doctype">
|
|
2
2
|
<% title ||= request.request_uri %>
|
|
3
3
|
<doctype version="&doctype || 'HTML 4.01 STRICT'"/>
|
|
4
4
|
<html>
|
|
5
5
|
<head param>
|
|
6
6
|
<title param><%= title %></title>
|
|
7
7
|
<do param="stylesheets">
|
|
8
|
-
<stylesheet name="
|
|
8
|
+
<stylesheet name="reset"/>
|
|
9
9
|
<stylesheet name="application"/>
|
|
10
10
|
</do>
|
|
11
11
|
<do param="scripts">
|
|
@@ -18,273 +18,273 @@
|
|
|
18
18
|
</def>
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
<def tag="
|
|
22
|
-
<
|
|
23
|
-
<stylesheets param>
|
|
24
|
-
<stylesheet name="
|
|
25
|
-
<stylesheet name="
|
|
21
|
+
<def tag="page">
|
|
22
|
+
<base-page merge>
|
|
23
|
+
<stylesheets: param>
|
|
24
|
+
<stylesheet name="reset"/>
|
|
25
|
+
<stylesheet name="hobo-rapid"/>
|
|
26
26
|
<stylesheet name="application"/>
|
|
27
27
|
</stylesheets>
|
|
28
28
|
|
|
29
|
-
<scripts param>
|
|
30
|
-
<javascript name="prototype, effects, dragdrop, controls, lowpro,
|
|
31
|
-
<
|
|
29
|
+
<scripts: param>
|
|
30
|
+
<javascript name="prototype, effects, dragdrop, controls, lowpro, hobo-rapid, application"/>
|
|
31
|
+
<hobo-rapid-javascripts param/>
|
|
32
32
|
</scripts>
|
|
33
33
|
|
|
34
|
-
<body param>
|
|
35
|
-
<div class="
|
|
36
|
-
<
|
|
37
|
-
<header class="
|
|
34
|
+
<body: param>
|
|
35
|
+
<div class="page-wrapper" param="wrapper">
|
|
36
|
+
<ajax-progress/>
|
|
37
|
+
<header class="page-header" param>
|
|
38
38
|
<nav param>
|
|
39
|
-
<
|
|
40
|
-
<
|
|
39
|
+
<magic-nav class="main-nav" param="main-nav"/>
|
|
40
|
+
<account-nav if="&Hobo::UserController.user_models.first" param/>
|
|
41
41
|
</nav>
|
|
42
42
|
</header>
|
|
43
|
-
<section class="
|
|
44
|
-
<header class="
|
|
45
|
-
<
|
|
46
|
-
<section class="
|
|
47
|
-
<footer class="
|
|
43
|
+
<section class="page-content" param="content">
|
|
44
|
+
<header class="content-header" param="content-header"/>
|
|
45
|
+
<flash-message param/>
|
|
46
|
+
<section class="content-body" param="content-body"/>
|
|
47
|
+
<footer class="content-footer" param="content-footer"/>
|
|
48
48
|
</section>
|
|
49
|
-
<footer class="
|
|
49
|
+
<footer class="page-footer" param/>
|
|
50
50
|
</div>
|
|
51
51
|
</body>
|
|
52
|
-
</
|
|
52
|
+
</base-page>
|
|
53
53
|
</def>
|
|
54
54
|
|
|
55
|
-
<def tag="
|
|
56
|
-
<def tag="
|
|
57
|
-
<
|
|
58
|
-
<content
|
|
59
|
-
<section class="
|
|
60
|
-
<
|
|
55
|
+
<def tag="page-without-aside" alias-of="page"/>
|
|
56
|
+
<def tag="page-with-aside">
|
|
57
|
+
<page-without-aside merge>
|
|
58
|
+
<content:>
|
|
59
|
+
<section class="main-content" param="main-content">
|
|
60
|
+
<default-tagbody for="content"/>
|
|
61
61
|
</section>
|
|
62
|
-
<aside class="
|
|
62
|
+
<aside class="aside-content" param/>
|
|
63
63
|
</content>
|
|
64
|
-
</
|
|
64
|
+
</page-without-aside>
|
|
65
65
|
</def>
|
|
66
66
|
|
|
67
67
|
|
|
68
|
-
<def tag="
|
|
69
|
-
<def tag="
|
|
70
|
-
<def tag="
|
|
71
|
-
<def tag="
|
|
72
|
-
<def tag="
|
|
73
|
-
<def tag="
|
|
68
|
+
<def tag="page-for-index"><page merge/></def>
|
|
69
|
+
<def tag="page-for-new"><page merge/></def>
|
|
70
|
+
<def tag="page-for-show"><page merge/></def>
|
|
71
|
+
<def tag="page-for-edit"><page merge/></def>
|
|
72
|
+
<def tag="page-for-new-in-collection"><page merge/></def>
|
|
73
|
+
<def tag="page-for-show-collection"><page merge/></def>
|
|
74
74
|
|
|
75
75
|
|
|
76
|
-
<def tag="
|
|
76
|
+
<def tag="index-page">
|
|
77
77
|
<% model_name = @model.name.titleize %>
|
|
78
|
-
<
|
|
79
|
-
<body class="
|
|
80
|
-
<
|
|
78
|
+
<page-for-index title="All #{model_name.pluralize}" merge>
|
|
79
|
+
<body: class="index-page #{@model.name.underscore.pluralize}" param/>
|
|
80
|
+
<content-header: param>
|
|
81
81
|
<heading param><%= model_name.pluralize %></heading>
|
|
82
|
-
<p class="note" param>There <count part="
|
|
83
|
-
</
|
|
82
|
+
<p class="note" param>There <do with="&@model"><count part="item-count" prefix="are"/></do></p>
|
|
83
|
+
</content-header>
|
|
84
84
|
|
|
85
|
-
<
|
|
86
|
-
<nav param="
|
|
85
|
+
<content-body: param>
|
|
86
|
+
<nav param="top-pagination-nav"><page-nav/></nav>
|
|
87
87
|
|
|
88
|
-
<
|
|
89
|
-
<tr
|
|
90
|
-
</
|
|
88
|
+
<table param>
|
|
89
|
+
<tr:><td><a/></td><td><delete-button update="item-count"/></td></tr>
|
|
90
|
+
</table>
|
|
91
91
|
|
|
92
|
-
<nav param="
|
|
93
|
-
</
|
|
92
|
+
<nav param="bottom-pagination-nav"><page-nav/></nav>
|
|
93
|
+
</content-body>
|
|
94
94
|
|
|
95
|
-
<
|
|
96
|
-
<a to="&@model" action="new" param="
|
|
97
|
-
</
|
|
98
|
-
</
|
|
95
|
+
<content-footer: param>
|
|
96
|
+
<a to="&@model" action="new" param="new-link"/>
|
|
97
|
+
</content-footer>
|
|
98
|
+
</page-for-index>
|
|
99
99
|
</def>
|
|
100
100
|
|
|
101
101
|
|
|
102
|
-
<def tag="
|
|
103
|
-
<
|
|
104
|
-
<body class="
|
|
105
|
-
<
|
|
106
|
-
<heading param>New <
|
|
107
|
-
</
|
|
102
|
+
<def tag="new-page">
|
|
103
|
+
<page-for-new title="New #{type_name}" merge>
|
|
104
|
+
<body: class="new-page #{type_name.underscore}" param/>
|
|
105
|
+
<content-header: param>
|
|
106
|
+
<heading param>New <type-name title/></heading>
|
|
107
|
+
</content-header>
|
|
108
108
|
|
|
109
|
-
<
|
|
110
|
-
<
|
|
109
|
+
<content-body: param>
|
|
110
|
+
<error-messages param/>
|
|
111
111
|
|
|
112
112
|
<form param>
|
|
113
|
-
<
|
|
113
|
+
<field-list skip-associations="has_many" param/>
|
|
114
114
|
<submit label="Create" param/>
|
|
115
115
|
</form>
|
|
116
|
-
</
|
|
117
|
-
</
|
|
116
|
+
</content-body>
|
|
117
|
+
</page-for-new>
|
|
118
118
|
</def>
|
|
119
119
|
|
|
120
120
|
|
|
121
|
-
<def tag="
|
|
121
|
+
<def tag="show-page">
|
|
122
122
|
<% has_many_assocs = this.class.reflections.values.map do |refl|
|
|
123
123
|
this.send(refl.name) if Hobo.simple_has_many_association?(refl)
|
|
124
124
|
end.compact
|
|
125
125
|
%>
|
|
126
|
-
<
|
|
127
|
-
<body class="
|
|
128
|
-
<
|
|
129
|
-
<heading param><
|
|
130
|
-
<
|
|
131
|
-
</
|
|
126
|
+
<page-for-show merge title="#{name :no_wrapper => true}">
|
|
127
|
+
<body: class="show-page #{type_name.underscore}" param/>
|
|
128
|
+
<content-header: param>
|
|
129
|
+
<heading param><type-name/><if test="&this.respond_to? :name">: <editor:name/></if></heading>
|
|
130
|
+
<delete-button in-place="&false" param/>
|
|
131
|
+
</content-header>
|
|
132
132
|
|
|
133
|
-
<
|
|
134
|
-
<
|
|
133
|
+
<content-body: param>
|
|
134
|
+
<field-list skip="name" tag="editor" param/>
|
|
135
135
|
|
|
136
|
-
<nav param="
|
|
137
|
-
<
|
|
138
|
-
<li
|
|
139
|
-
</
|
|
136
|
+
<nav param="new-links">
|
|
137
|
+
<ul with="&has_many_assocs">
|
|
138
|
+
<li:><a action="new"/></li>
|
|
139
|
+
</ul>
|
|
140
140
|
</nav>
|
|
141
|
-
</
|
|
142
|
-
</
|
|
141
|
+
</content-body>
|
|
142
|
+
</page-for-show>
|
|
143
143
|
</def>
|
|
144
144
|
|
|
145
145
|
|
|
146
|
-
<def tag="
|
|
147
|
-
<
|
|
148
|
-
<body class="
|
|
149
|
-
<
|
|
150
|
-
<heading><
|
|
151
|
-
<
|
|
152
|
-
</
|
|
146
|
+
<def tag="edit-page">
|
|
147
|
+
<page-for-edit merge>
|
|
148
|
+
<body: class="edit-page #{this.class.name.underscore}" param/>
|
|
149
|
+
<content-header: param>
|
|
150
|
+
<heading><type-name/><if test="&this.respond_to? :name">: <name/></if></heading>
|
|
151
|
+
<delete-button in-place="&false" param/>
|
|
152
|
+
</content-header>
|
|
153
153
|
|
|
154
|
-
<
|
|
155
|
-
<
|
|
154
|
+
<content-body: param>
|
|
155
|
+
<error-messages param/>
|
|
156
156
|
<form param>
|
|
157
|
-
<
|
|
157
|
+
<field-list skip-associations="has_many" param/>
|
|
158
158
|
<submit label="Save"/>
|
|
159
159
|
</form>
|
|
160
160
|
|
|
161
|
-
</
|
|
162
|
-
</
|
|
161
|
+
</content-body>
|
|
162
|
+
</page-for-edit>
|
|
163
163
|
</def>
|
|
164
164
|
|
|
165
165
|
|
|
166
|
-
<def tag="
|
|
167
|
-
<
|
|
168
|
-
<body class="
|
|
169
|
-
<
|
|
170
|
-
<heading param>New <
|
|
171
|
-
<
|
|
172
|
-
</
|
|
166
|
+
<def tag="new-in-collection-page">
|
|
167
|
+
<page-for-new-in-collection title="New #{type_name}" merge>
|
|
168
|
+
<body: class="new-in-collection-page #{type_name(:with => @owner)} #{type_name}" param/>
|
|
169
|
+
<content-header: param>
|
|
170
|
+
<heading param>New <type-name/></heading>
|
|
171
|
+
<sub-heading param>For: <a with="&@owner" /></sub-heading>
|
|
172
|
+
</content-header>
|
|
173
173
|
|
|
174
|
-
<
|
|
175
|
-
<
|
|
174
|
+
<content-body: param>
|
|
175
|
+
<error-messages/>
|
|
176
176
|
|
|
177
177
|
<form param>
|
|
178
|
-
<
|
|
178
|
+
<field-list skip-associations="has_many" param/>
|
|
179
179
|
<submit label='Add to #{name(:with => @owner, :no_wrapper => true)}' param/>
|
|
180
180
|
</form>
|
|
181
|
-
</
|
|
182
|
-
</
|
|
181
|
+
</content-body>
|
|
182
|
+
</page-for-new-in-collection>
|
|
183
183
|
</def>
|
|
184
184
|
|
|
185
185
|
|
|
186
|
-
<def tag="
|
|
186
|
+
<def tag="show-collection-page">
|
|
187
187
|
<% title = "#{@reflection.name.to_s.titleize} for #{name(:with => @owner)}" %>
|
|
188
|
-
<
|
|
189
|
-
<body class="
|
|
188
|
+
<page-for-show-collection title="&title" merge>
|
|
189
|
+
<body: class="show-collection-page #{type_name(:with => @owner)} #{type_name(:pluralize => true)}"
|
|
190
190
|
param/>
|
|
191
|
-
<
|
|
191
|
+
<content-header: param>
|
|
192
192
|
<nav>Back to <a with="&@owner"/></nav>
|
|
193
193
|
<heading><%= title %></heading>
|
|
194
|
-
<
|
|
195
|
-
</
|
|
194
|
+
<sub-heading><count with="&@pages.item_count" label="&@reflection.klass.name.titleize"/></sub-heading>
|
|
195
|
+
</content-header>
|
|
196
196
|
|
|
197
|
-
<
|
|
198
|
-
<nav param="
|
|
197
|
+
<content-body: param>
|
|
198
|
+
<nav param="top-pagination-nav"><page-nav/></nav>
|
|
199
199
|
|
|
200
|
-
<
|
|
201
|
-
<tr
|
|
202
|
-
<if test="can_view?">
|
|
203
|
-
<td><a/></td><td><
|
|
200
|
+
<table param="Table">
|
|
201
|
+
<tr:>
|
|
202
|
+
<if test="&can_view?">
|
|
203
|
+
<td><a/></td><td><delete-button/></td>
|
|
204
204
|
</if>
|
|
205
205
|
</tr>
|
|
206
|
-
</
|
|
206
|
+
</table>
|
|
207
207
|
|
|
208
|
-
<nav param="
|
|
208
|
+
<nav param="bottom-pagination-nav"><page-nav param/></nav>
|
|
209
209
|
|
|
210
|
-
<nav if="&Hobo.simple_has_many_association?(@association)" param="
|
|
210
|
+
<nav if="&Hobo.simple_has_many_association?(@association)" param="new-link">
|
|
211
211
|
<a to="&@association" action="new"/>
|
|
212
212
|
</nav>
|
|
213
|
-
</
|
|
214
|
-
</
|
|
213
|
+
</content-body>
|
|
214
|
+
</page-for-show-collection>
|
|
215
215
|
</def>
|
|
216
216
|
|
|
217
217
|
|
|
218
|
-
<def tag="
|
|
219
|
-
<
|
|
220
|
-
<body class="
|
|
221
|
-
<nav replace/>
|
|
222
|
-
<
|
|
218
|
+
<def tag="login-page" attrs="remember-me">
|
|
219
|
+
<page title="Log In" merge>
|
|
220
|
+
<body: class="login-page" param/>
|
|
221
|
+
<nav: replace/>
|
|
222
|
+
<content-header: param>
|
|
223
223
|
<heading param>Log In</heading>
|
|
224
|
-
</
|
|
224
|
+
</content-header>
|
|
225
225
|
|
|
226
|
-
<
|
|
226
|
+
<content-body: param>
|
|
227
227
|
<form action="&request.request_uri" param>
|
|
228
|
-
<
|
|
229
|
-
<
|
|
230
|
-
<
|
|
231
|
-
<
|
|
232
|
-
</
|
|
233
|
-
|
|
234
|
-
<
|
|
235
|
-
<
|
|
236
|
-
<
|
|
237
|
-
</
|
|
238
|
-
|
|
239
|
-
<
|
|
240
|
-
<
|
|
241
|
-
<
|
|
242
|
-
</
|
|
243
|
-
</
|
|
228
|
+
<labelled-item-list>
|
|
229
|
+
<labelled-item>
|
|
230
|
+
<item-label param="login-label"><%= model.login_attr.to_s.titleize %></item-label>
|
|
231
|
+
<item-value><input type="text" name="login" id="login" param="login-input" /></item-value>
|
|
232
|
+
</labelled-item>
|
|
233
|
+
|
|
234
|
+
<labelled-item>
|
|
235
|
+
<item-label param="password-label">Password</item-label>
|
|
236
|
+
<item-value><input type="password" name="password" id="password" param="password-input"/></item-value>
|
|
237
|
+
</labelled-item>
|
|
238
|
+
|
|
239
|
+
<labelled-item if="&remember_me">
|
|
240
|
+
<item-label class="field-label" param="remember-me-label">Remember me:</item-label>
|
|
241
|
+
<item-value><input type="checkbox" name="remember_me" id="remember-me" param="remember-me-input"/></item-value>
|
|
242
|
+
</labelled-item>
|
|
243
|
+
</labelled-item-list>
|
|
244
244
|
<submit label='Log in' param/>
|
|
245
245
|
</form>
|
|
246
|
-
</
|
|
247
|
-
</
|
|
246
|
+
</content-body>
|
|
247
|
+
</page>
|
|
248
248
|
</def>
|
|
249
249
|
|
|
250
250
|
|
|
251
|
-
<def tag="
|
|
252
|
-
<
|
|
253
|
-
<body class="
|
|
254
|
-
<nav replace/>
|
|
255
|
-
<
|
|
251
|
+
<def tag="signup-page">
|
|
252
|
+
<page title="Sign Up" merge>
|
|
253
|
+
<body: class="signup-page" param/>
|
|
254
|
+
<nav: replace/>
|
|
255
|
+
<content-header: param>
|
|
256
256
|
<heading param>Sign Up</heading>
|
|
257
|
-
</
|
|
257
|
+
</content-header>
|
|
258
258
|
|
|
259
|
-
<
|
|
260
|
-
<
|
|
259
|
+
<content-body: param>
|
|
260
|
+
<error-messages/>
|
|
261
261
|
<form action="&request.request_uri" param>
|
|
262
|
-
<
|
|
263
|
-
<
|
|
264
|
-
</
|
|
262
|
+
<field-list fields="login, password, password_confirmation" param>
|
|
263
|
+
<password-confirmation-label:>Confirm Password</password-confirmation-label>
|
|
264
|
+
</field-list>
|
|
265
265
|
|
|
266
266
|
<submit label='Sign Up'/>
|
|
267
267
|
</form>
|
|
268
|
-
</
|
|
268
|
+
</content-body>
|
|
269
269
|
|
|
270
|
-
</
|
|
270
|
+
</page>
|
|
271
271
|
</def>
|
|
272
272
|
|
|
273
273
|
|
|
274
|
-
<def tag="
|
|
275
|
-
<
|
|
276
|
-
<
|
|
274
|
+
<def tag="permission-denied-page">
|
|
275
|
+
<page merge>
|
|
276
|
+
<content-header: param>
|
|
277
277
|
<heading param>That operation is not allowed</heading>
|
|
278
|
-
</
|
|
279
|
-
</
|
|
278
|
+
</content-header>
|
|
279
|
+
</page>
|
|
280
280
|
</def>
|
|
281
281
|
|
|
282
|
-
<def tag="
|
|
283
|
-
<
|
|
284
|
-
<
|
|
282
|
+
<def tag="not-found-page">
|
|
283
|
+
<page merge>
|
|
284
|
+
<content-header: param>
|
|
285
285
|
<heading param>The page you were looking for could not be found</heading>
|
|
286
|
-
</
|
|
287
|
-
</
|
|
286
|
+
</content-header>
|
|
287
|
+
</page>
|
|
288
288
|
</def>
|
|
289
289
|
|
|
290
290
|
<def tag="doctype" attrs="version"><%=
|
|
@@ -325,15 +325,15 @@
|
|
|
325
325
|
</else>
|
|
326
326
|
</def>
|
|
327
327
|
|
|
328
|
-
<def tag="
|
|
328
|
+
<def tag="flash-message" attrs="type">
|
|
329
329
|
<% type = type ? type.to_sym : :notice %>
|
|
330
|
-
<div class="flash #{type}" if="&flash[type]"
|
|
330
|
+
<div class="flash #{type}" if="&flash[type]" merge-attrs><%= flash[type] %></div>
|
|
331
331
|
</def>
|
|
332
332
|
|
|
333
|
-
<def tag="
|
|
334
|
-
<div id="
|
|
333
|
+
<def tag="ajax-progress">
|
|
334
|
+
<div id="ajax-progress">
|
|
335
335
|
<div>
|
|
336
|
-
<span id="
|
|
336
|
+
<span id="ajax-progress-text"></span>
|
|
337
337
|
</div>
|
|
338
338
|
</div>
|
|
339
339
|
</def>
|