humdrum-rails 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +18 -0
- data/Features.md +23 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +29 -0
- data/Rakefile +1 -0
- data/humdrum-rails.gemspec +30 -0
- data/lib/humdrum/version.rb +4 -0
- data/lib/humdrum.rb +4 -0
- data/lib/rails/generators/humdrum/layout/layout_generator.rb +133 -0
- data/lib/rails/generators/humdrum/layout/templates/controllers/admin_controller.rb +5 -0
- data/lib/rails/generators/humdrum/layout/templates/controllers/application_controller.rb +14 -0
- data/lib/rails/generators/humdrum/layout/templates/controllers/public_controller.rb +5 -0
- data/lib/rails/generators/humdrum/layout/templates/controllers/user_controller.rb +5 -0
- data/lib/rails/generators/humdrum/layout/templates/controllers/welcome_controller.rb +7 -0
- data/lib/rails/generators/humdrum/layout/templates/helpers/display_helper.rb +41 -0
- data/lib/rails/generators/humdrum/layout/templates/helpers/meta_tags_helper.rb +3 -0
- data/lib/rails/generators/humdrum/layout/templates/helpers/navigation_helper.rb +19 -0
- data/lib/rails/generators/humdrum/layout/templates/helpers/title_helper.rb +15 -0
- data/lib/rails/generators/humdrum/layout/templates/images/favicon.ico +0 -0
- data/lib/rails/generators/humdrum/layout/templates/images/glyphicons-halflings-white.png +0 -0
- data/lib/rails/generators/humdrum/layout/templates/images/glyphicons-halflings.png +0 -0
- data/lib/rails/generators/humdrum/layout/templates/javascripts/bootstrap.js +2276 -0
- data/lib/rails/generators/humdrum/layout/templates/javascripts/modernizr.2.6.2.js +815 -0
- data/lib/rails/generators/humdrum/layout/templates/stylesheets/bootstrap-responsive.css +1109 -0
- data/lib/rails/generators/humdrum/layout/templates/stylesheets/bootstrap.css +6158 -0
- data/lib/rails/generators/humdrum/layout/templates/stylesheets/humdrum/boilerplate.css.scss +299 -0
- data/lib/rails/generators/humdrum/layout/templates/stylesheets/humdrum/box.css.scss +57 -0
- data/lib/rails/generators/humdrum/layout/templates/stylesheets/humdrum/caligraphy.css.scss +30 -0
- data/lib/rails/generators/humdrum/layout/templates/stylesheets/humdrum/dividers.css.scss +18 -0
- data/lib/rails/generators/humdrum/layout/templates/stylesheets/humdrum/form.css.scss +80 -0
- data/lib/rails/generators/humdrum/layout/templates/stylesheets/humdrum/misc.css.scss +9 -0
- data/lib/rails/generators/humdrum/layout/templates/stylesheets/humdrum/normalize.css.scss +533 -0
- data/lib/rails/generators/humdrum/layout/templates/stylesheets/humdrum/palettes.css.scss +66 -0
- data/lib/rails/generators/humdrum/layout/templates/stylesheets/humdrum/positioning.css.scss +702 -0
- data/lib/rails/generators/humdrum/layout/templates/stylesheets/overrides-bootstrap.css +24 -0
- data/lib/rails/generators/humdrum/layout/templates/views/layouts/admin/_footer.html.erb +0 -0
- data/lib/rails/generators/humdrum/layout/templates/views/layouts/admin/_header.html.erb +35 -0
- data/lib/rails/generators/humdrum/layout/templates/views/layouts/admin/_navbar.html.erb +0 -0
- data/lib/rails/generators/humdrum/layout/templates/views/layouts/admin.html.erb +65 -0
- data/lib/rails/generators/humdrum/layout/templates/views/layouts/common/_flash_message.html.erb +24 -0
- data/lib/rails/generators/humdrum/layout/templates/views/layouts/common/_meta_tags.html.erb +42 -0
- data/lib/rails/generators/humdrum/layout/templates/views/layouts/common/_overlays.html.erb +9 -0
- data/lib/rails/generators/humdrum/layout/templates/views/layouts/public/_footer.html.erb +0 -0
- data/lib/rails/generators/humdrum/layout/templates/views/layouts/public/_header.html.erb +35 -0
- data/lib/rails/generators/humdrum/layout/templates/views/layouts/public/_navbar.html.erb +0 -0
- data/lib/rails/generators/humdrum/layout/templates/views/layouts/public.html.erb +65 -0
- data/lib/rails/generators/humdrum/layout/templates/views/layouts/user/_footer.html.erb +0 -0
- data/lib/rails/generators/humdrum/layout/templates/views/layouts/user/_header.html.erb +35 -0
- data/lib/rails/generators/humdrum/layout/templates/views/layouts/user/_navbar.html.erb +0 -0
- data/lib/rails/generators/humdrum/layout/templates/views/layouts/user.html.erb +65 -0
- data/lib/rails/generators/humdrum/layout/templates/views/welcome/index.html.erb +5 -0
- data/lib/rails/generators/humdrum/resource/resource_generator.rb +237 -0
- data/lib/rails/generators/humdrum/resource/templates/config/locales/humdrum.en.yml +6 -0
- data/lib/rails/generators/humdrum/resource/templates/controllers/resource_controller.rb +192 -0
- data/lib/rails/generators/humdrum/resource/templates/migrations/create_resources.rb +14 -0
- data/lib/rails/generators/humdrum/resource/templates/models/resource.rb +5 -0
- data/lib/rails/generators/humdrum/resource/templates/views/resource/_edit.html.erb +7 -0
- data/lib/rails/generators/humdrum/resource/templates/views/resource/_filters.html.erb +9 -0
- data/lib/rails/generators/humdrum/resource/templates/views/resource/_form.html.erb +44 -0
- data/lib/rails/generators/humdrum/resource/templates/views/resource/_index.html.erb +22 -0
- data/lib/rails/generators/humdrum/resource/templates/views/resource/_item.html.erb +21 -0
- data/lib/rails/generators/humdrum/resource/templates/views/resource/_nav_filters.html.erb +9 -0
- data/lib/rails/generators/humdrum/resource/templates/views/resource/_new.html.erb +9 -0
- data/lib/rails/generators/humdrum/resource/templates/views/resource/_show.html.erb +38 -0
- data/lib/rails/generators/humdrum/resource/templates/views/resource/_summary.html.erb +10 -0
- data/lib/rails/generators/humdrum/resource/templates/views/resource/create.js.erb +15 -0
- data/lib/rails/generators/humdrum/resource/templates/views/resource/destroy.js.erb +14 -0
- data/lib/rails/generators/humdrum/resource/templates/views/resource/edit.js.erb +2 -0
- data/lib/rails/generators/humdrum/resource/templates/views/resource/index.html.erb +33 -0
- data/lib/rails/generators/humdrum/resource/templates/views/resource/index.js.erb +15 -0
- data/lib/rails/generators/humdrum/resource/templates/views/resource/new.js.erb +2 -0
- data/lib/rails/generators/humdrum/resource/templates/views/resource/show.js.erb +2 -0
- data/lib/rails/generators/humdrum/resource/templates/views/resource/update.js.erb +14 -0
- metadata +170 -0
@@ -0,0 +1,35 @@
|
|
1
|
+
<div class="navbar navbar-inverse navbar-fixed-top">
|
2
|
+
<div class="navbar-inner">
|
3
|
+
<div class="<%= container_class %>">
|
4
|
+
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
|
5
|
+
<span class="icon-bar"></span>
|
6
|
+
<span class="icon-bar"></span>
|
7
|
+
<span class="icon-bar"></span>
|
8
|
+
</a>
|
9
|
+
<a class="brand" href="#"><%= application_name -%></a>
|
10
|
+
<div class="nav-collapse">
|
11
|
+
<ul class="nav">
|
12
|
+
<li class="<%%= nav_class("home") %>">
|
13
|
+
<%%= link_to raw("Home"), "#" %>
|
14
|
+
</li>
|
15
|
+
<li class="<%%= nav_class("Menu 1") %>">
|
16
|
+
<%%= link_to raw("Menu 1"), "#" %>
|
17
|
+
</li>
|
18
|
+
<li class="<%%= nav_class("Menu 2") %>">
|
19
|
+
<%%= link_to raw("Menu 2"), "#" %>
|
20
|
+
</li>
|
21
|
+
<li class="<%%= nav_class("Menu 3") %>">
|
22
|
+
<%%= link_to raw("Menu 3"), "#" %>
|
23
|
+
</li>
|
24
|
+
<li class="<%%= nav_class("Menu 4") %>">
|
25
|
+
<%%= link_to raw("Menu 4"), "#" %>
|
26
|
+
</li>
|
27
|
+
</ul>
|
28
|
+
<form class="navbar-search pull-right" action="">
|
29
|
+
<input type="text" class="search-query span3" placeholder="Search">
|
30
|
+
</form>
|
31
|
+
</div><!-- /.nav-collapse -->
|
32
|
+
</div><!-- /.container -->
|
33
|
+
</div><!-- /.navbar-inner -->
|
34
|
+
</div><!-- /.navbar -->
|
35
|
+
|
File without changes
|
@@ -0,0 +1,65 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
|
3
|
+
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
|
4
|
+
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
|
5
|
+
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
|
6
|
+
<head>
|
7
|
+
|
8
|
+
<title><%%= title -%></title>
|
9
|
+
|
10
|
+
<%%= render :partial=>"/layouts/common/meta_tags" -%>
|
11
|
+
|
12
|
+
<!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
|
13
|
+
<link rel="icon" href="/assets/favicon.ico" type="image/png">
|
14
|
+
|
15
|
+
<%%= stylesheet_link_tag "application", :media => "all" -%>
|
16
|
+
|
17
|
+
<%%= csrf_meta_tags -%>
|
18
|
+
|
19
|
+
<%%# Modernizr should be loaded first -%>
|
20
|
+
<script src="/assets/humdrum/modernizr.2.6.2.js"></script>
|
21
|
+
|
22
|
+
</head>
|
23
|
+
|
24
|
+
<body>
|
25
|
+
|
26
|
+
<!--[if lt IE 7]>
|
27
|
+
<p class="chromeframe">You are using an <strong>outdated</strong> browser.
|
28
|
+
Please <a href="http://browsehappy.com/">upgrade your browser</a> or
|
29
|
+
<a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a>
|
30
|
+
to improve your experience.</p>
|
31
|
+
<![endif]-->
|
32
|
+
|
33
|
+
<div class="header-block clearfix">
|
34
|
+
<div id="div_page_header">
|
35
|
+
<%%= render :partial=>"/layouts/admin/header" -%>
|
36
|
+
</div>
|
37
|
+
<div id="div_page_navbar">
|
38
|
+
<%%= render :partial=>"/layouts/admin/navbar" -%>
|
39
|
+
</div>
|
40
|
+
</div>
|
41
|
+
|
42
|
+
<%%#* Show flash messages if controller has set any. -%>
|
43
|
+
<div id="div_flash_message">
|
44
|
+
<%%= render :partial=>"/layouts/common/flash_message" -%>
|
45
|
+
</div>
|
46
|
+
|
47
|
+
<div class="<%= container_class %> padding-top-10" style="min-height:400px;">
|
48
|
+
<%%= yield %>
|
49
|
+
</div>
|
50
|
+
|
51
|
+
<%%#* Display Footer -%>
|
52
|
+
<%%= render :partial=>"/layouts/admin/footer" -%>
|
53
|
+
|
54
|
+
<%%#* Display Hidden Overlays -%>
|
55
|
+
<%%= render :partial=>"/layouts/common/overlays" -%>
|
56
|
+
|
57
|
+
<%%#* Loading Javascripts -%>
|
58
|
+
<%%= javascript_include_tag "application" -%>
|
59
|
+
|
60
|
+
<script type='text/javascript'>
|
61
|
+
<%%= yield :javascript -%>
|
62
|
+
</script>
|
63
|
+
|
64
|
+
</body>
|
65
|
+
</html>
|
data/lib/rails/generators/humdrum/layout/templates/views/layouts/common/_flash_message.html.erb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
|
2
|
+
<%# Used to render a unique flash message styling %>
|
3
|
+
<%%
|
4
|
+
if request.xhr?
|
5
|
+
flash_message = flash.now[:success] || flash.now[:notice] || flash.now[:alert]
|
6
|
+
style_classes = ""
|
7
|
+
else
|
8
|
+
style_classes = "margin-top-10 margin-bottom-5 margin-left-40 margin-right-40"
|
9
|
+
flash_message = flash[:success] || flash[:notice] || flash[:alert]
|
10
|
+
end
|
11
|
+
cls_name = "alert"
|
12
|
+
cls_name = 'alert-success' if flash.now[:success] || flash[:success]
|
13
|
+
cls_name = 'alert-notice' if flash.now[:notice] || flash[:notice]
|
14
|
+
cls_name = 'alert-error' if flash.now[:alert] || flash[:alert]
|
15
|
+
|
16
|
+
flash_message = flash_message.strip if flash_message
|
17
|
+
|
18
|
+
%>
|
19
|
+
<%% unless flash_message.blank? %>
|
20
|
+
<div class="<%%= style_classes %> alert <%%= cls_name %> fade in" data-alert="alert" style="margin-bottom:5px;">
|
21
|
+
<a class="close" data-dismiss='alert' href="#">×</a>
|
22
|
+
<p><%%= flash_message %></p>
|
23
|
+
</div>
|
24
|
+
<%% end %>
|
@@ -0,0 +1,42 @@
|
|
1
|
+
|
2
|
+
<%%# meta tags%>
|
3
|
+
<%% if @meta_tags %>
|
4
|
+
<%% if @meta_tags[:rel_prev] %>
|
5
|
+
<link rel="prev" href="<%%%= @meta_tags[:rel_prev] %>" />
|
6
|
+
<%% end %>
|
7
|
+
<%% if @meta_tags[:rel_next] %>
|
8
|
+
<link rel="next" href="<%%%= @meta_tags[:rel_next] %>" />
|
9
|
+
<%% end %>
|
10
|
+
<%% if @meta_tags[:canonical] %>
|
11
|
+
<link rel="canonical" href="<%%%= @meta_tags[:canonical] %>" />
|
12
|
+
<%% end %>
|
13
|
+
<%% if @meta_tags[:meta_description] %>
|
14
|
+
<meta name="description" content="<%%%= @meta_tags[:meta_description] %>"></meta>
|
15
|
+
<%% else %>
|
16
|
+
<meta name="description" content="Twitter Like App = A learning app."></meta>
|
17
|
+
<%% end %>
|
18
|
+
<%% if @meta_tags[:meta_keywords] %>
|
19
|
+
<meta name="keywords" content="<%%%= @meta_tags[:meta_keywords] %>"></meta>
|
20
|
+
<%% else %>
|
21
|
+
<%% meta_keywords = "Twitter Like App = A learning app." %>
|
22
|
+
<meta name="keywords" content="<%%%= meta_keywords %>"></meta>
|
23
|
+
<%% end %>
|
24
|
+
<%% if @meta_tags[:robots] %>
|
25
|
+
<meta name="robots" content="<%%%= @meta_tags[:robots] %>" />
|
26
|
+
<%% else %>
|
27
|
+
<meta name="robots" content="all" />
|
28
|
+
<%% end %>
|
29
|
+
<%% end %>
|
30
|
+
|
31
|
+
<meta charset="utf-8">
|
32
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
33
|
+
<meta name="copyright" content="2012 kpvarma" />
|
34
|
+
<meta name="content-language" content="en" />
|
35
|
+
<meta name="author" content="K.P. Varma" />
|
36
|
+
<meta name="resource-type" content="document" />
|
37
|
+
<meta name="distribution" content="global" />
|
38
|
+
<meta name="rating" content="general" />
|
39
|
+
|
40
|
+
|
41
|
+
|
42
|
+
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<%%#* Modal for showing popups (in general) -%>
|
2
|
+
<div id="div_modal_popup" class="modal wider-modals hide fade" tabindex="-3" role="dialog" aria-labelledby="Show Message" aria-hidden="true"></div>
|
3
|
+
|
4
|
+
<%%#* Modal for showing popup messages -%>
|
5
|
+
<div id="div_modal_popup_message" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="Show Message" aria-hidden="true">
|
6
|
+
<div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button><h3 id="h3_modal_popup_message_header">Modal header</h3></div>
|
7
|
+
<div class="modal-body"><p>One fine body…</p></div>
|
8
|
+
<div class="modal-footer"><button class="btn" data-dismiss="modal" aria-hidden="true">Close</button></div>
|
9
|
+
</div>
|
File without changes
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<div class="navbar navbar-inverse navbar-fixed-top">
|
2
|
+
<div class="navbar-inner">
|
3
|
+
<div class="<%= container_class %>">
|
4
|
+
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
|
5
|
+
<span class="icon-bar"></span>
|
6
|
+
<span class="icon-bar"></span>
|
7
|
+
<span class="icon-bar"></span>
|
8
|
+
</a>
|
9
|
+
<a class="brand" href="#"><%= application_name -%></a>
|
10
|
+
<div class="nav-collapse">
|
11
|
+
<ul class="nav">
|
12
|
+
<li class="<%%= nav_class("home") %>">
|
13
|
+
<%%= link_to raw("Home"), "#" %>
|
14
|
+
</li>
|
15
|
+
<li class="<%%= nav_class("Menu 1") %>">
|
16
|
+
<%%= link_to raw("Menu 1"), "#" %>
|
17
|
+
</li>
|
18
|
+
<li class="<%%= nav_class("Menu 2") %>">
|
19
|
+
<%%= link_to raw("Menu 2"), "#" %>
|
20
|
+
</li>
|
21
|
+
<li class="<%%= nav_class("Menu 3") %>">
|
22
|
+
<%%= link_to raw("Menu 3"), "#" %>
|
23
|
+
</li>
|
24
|
+
<li class="<%%= nav_class("Menu 4") %>">
|
25
|
+
<%%= link_to raw("Menu 4"), "#" %>
|
26
|
+
</li>
|
27
|
+
</ul>
|
28
|
+
<form class="navbar-search pull-right" action="">
|
29
|
+
<input type="text" class="search-query span3" placeholder="Search">
|
30
|
+
</form>
|
31
|
+
</div><!-- /.nav-collapse -->
|
32
|
+
</div><!-- /.container -->
|
33
|
+
</div><!-- /.navbar-inner -->
|
34
|
+
</div><!-- /.navbar -->
|
35
|
+
|
File without changes
|
@@ -0,0 +1,65 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
|
3
|
+
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
|
4
|
+
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
|
5
|
+
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
|
6
|
+
<head>
|
7
|
+
|
8
|
+
<title><%%= title -%></title>
|
9
|
+
|
10
|
+
<%%= render :partial=>"/layouts/common/meta_tags" -%>
|
11
|
+
|
12
|
+
<!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
|
13
|
+
<link rel="icon" href="/assets/favicon.ico" type="image/png">
|
14
|
+
|
15
|
+
<%%= stylesheet_link_tag "application", :media => "all" -%>
|
16
|
+
|
17
|
+
<%%= csrf_meta_tags -%>
|
18
|
+
|
19
|
+
<%# Modernizr should be loaded first -%>
|
20
|
+
<script src="/assets/humdrum/modernizr.2.6.2.js"></script>
|
21
|
+
|
22
|
+
</head>
|
23
|
+
|
24
|
+
<body>
|
25
|
+
|
26
|
+
<!--[if lt IE 7]>
|
27
|
+
<p class="chromeframe">You are using an <strong>outdated</strong> browser.
|
28
|
+
Please <a href="http://browsehappy.com/">upgrade your browser</a> or
|
29
|
+
<a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a>
|
30
|
+
to improve your experience.</p>
|
31
|
+
<![endif]-->
|
32
|
+
|
33
|
+
<div class="header-block clearfix">
|
34
|
+
<div id="div_page_header">
|
35
|
+
<%%= render :partial=>"/layouts/public/header" -%>
|
36
|
+
</div>
|
37
|
+
<div id="div_page_navbar">
|
38
|
+
<%%= render :partial=>"/layouts/public/navbar" -%>
|
39
|
+
</div>
|
40
|
+
</div>
|
41
|
+
|
42
|
+
<%%#* Show flash messages if controller has set any. %>
|
43
|
+
<div id="div_flash_message">
|
44
|
+
<%%= render :partial=>"/layouts/common/flash_message" -%>
|
45
|
+
</div>
|
46
|
+
|
47
|
+
<div class="<%= container_class %> padding-top-10" style="min-height:400px;">
|
48
|
+
<%%= yield %>
|
49
|
+
</div>
|
50
|
+
|
51
|
+
<%%#* Display Footer -%>
|
52
|
+
<%%= render :partial=>"/layouts/public/footer" -%>
|
53
|
+
|
54
|
+
<%%#* Display Hidden Overlays -%>
|
55
|
+
<%%= render :partial=>"/layouts/common/overlays" -%>
|
56
|
+
|
57
|
+
<%%#* Loading Javascripts -%>
|
58
|
+
<%%= javascript_include_tag "application" -%>
|
59
|
+
|
60
|
+
<script type='text/javascript'>
|
61
|
+
<%%= yield :javascript -%>
|
62
|
+
</script>
|
63
|
+
|
64
|
+
</body>
|
65
|
+
</html>
|
File without changes
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<div class="navbar navbar-inverse navbar-fixed-top">
|
2
|
+
<div class="navbar-inner">
|
3
|
+
<div class="<%= container_class %>">
|
4
|
+
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
|
5
|
+
<span class="icon-bar"></span>
|
6
|
+
<span class="icon-bar"></span>
|
7
|
+
<span class="icon-bar"></span>
|
8
|
+
</a>
|
9
|
+
<a class="brand" href="#"><%= application_name -%></a>
|
10
|
+
<div class="nav-collapse">
|
11
|
+
<ul class="nav">
|
12
|
+
<li class="<%%= nav_class("home") %>">
|
13
|
+
<%%= link_to raw("Home"), "#" %>
|
14
|
+
</li>
|
15
|
+
<li class="<%%= nav_class("Menu 1") %>">
|
16
|
+
<%%= link_to raw("Menu 1"), "#" %>
|
17
|
+
</li>
|
18
|
+
<li class="<%%= nav_class("Menu 2") %>">
|
19
|
+
<%%= link_to raw("Menu 2"), "#" %>
|
20
|
+
</li>
|
21
|
+
<li class="<%%= nav_class("Menu 3") %>">
|
22
|
+
<%%= link_to raw("Menu 3"), "#" %>
|
23
|
+
</li>
|
24
|
+
<li class="<%%= nav_class("Menu 4") %>">
|
25
|
+
<%%= link_to raw("Menu 4"), "#" %>
|
26
|
+
</li>
|
27
|
+
</ul>
|
28
|
+
<form class="navbar-search pull-right" action="">
|
29
|
+
<input type="text" class="search-query span3" placeholder="Search">
|
30
|
+
</form>
|
31
|
+
</div><!-- /.nav-collapse -->
|
32
|
+
</div><!-- /.container -->
|
33
|
+
</div><!-- /.navbar-inner -->
|
34
|
+
</div><!-- /.navbar -->
|
35
|
+
|
File without changes
|
@@ -0,0 +1,65 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
|
3
|
+
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
|
4
|
+
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
|
5
|
+
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
|
6
|
+
<head>
|
7
|
+
|
8
|
+
<title><%%= title -%></title>
|
9
|
+
|
10
|
+
<%%= render :partial=>"/layouts/common/meta_tags" -%>
|
11
|
+
|
12
|
+
<!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
|
13
|
+
<link rel="icon" href="/assets/favicon.ico" type="image/png">
|
14
|
+
|
15
|
+
<%%= stylesheet_link_tag "application", :media => "all" -%>
|
16
|
+
|
17
|
+
<%%= csrf_meta_tags -%>
|
18
|
+
|
19
|
+
<%# Modernizr should be loaded first -%>
|
20
|
+
<script src="/assets/humdrum/modernizr.2.6.2.js"></script>
|
21
|
+
|
22
|
+
</head>
|
23
|
+
|
24
|
+
<body>
|
25
|
+
|
26
|
+
<!--[if lt IE 7]>
|
27
|
+
<p class="chromeframe">You are using an <strong>outdated</strong> browser.
|
28
|
+
Please <a href="http://browsehappy.com/">upgrade your browser</a> or
|
29
|
+
<a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a>
|
30
|
+
to improve your experience.</p>
|
31
|
+
<![endif]-->
|
32
|
+
|
33
|
+
<div class="header-block clearfix">
|
34
|
+
<div id="div_page_header">
|
35
|
+
<%%= render :partial=>"/layouts/user/header" -%>
|
36
|
+
</div>
|
37
|
+
<div id="div_page_navbar">
|
38
|
+
<%%= render :partial=>"/layouts/user/navbar" -%>
|
39
|
+
</div>
|
40
|
+
</div>
|
41
|
+
|
42
|
+
<%%#* Show flash messages if controller has set any. %>
|
43
|
+
<div id="div_flash_message">
|
44
|
+
<%%= render :partial=>"/layouts/common/flash_message" -%>
|
45
|
+
</div>
|
46
|
+
|
47
|
+
<div class="<%= container_class %> padding-top-10" style="min-height:400px;">
|
48
|
+
<%%= yield %>
|
49
|
+
</div>
|
50
|
+
|
51
|
+
<%%#* Display Footer -%>
|
52
|
+
<%%= render :partial=>"/layouts/user/footer" -%>
|
53
|
+
|
54
|
+
<%%#* Display Hidden Overlays -%>
|
55
|
+
<%%= render :partial=>"/layouts/common/overlays" -%>
|
56
|
+
|
57
|
+
<%%#* Loading Javascripts -%>
|
58
|
+
<%%= javascript_include_tag "application" -%>
|
59
|
+
|
60
|
+
<script type='text/javascript'>
|
61
|
+
<%%= yield :javascript -%>
|
62
|
+
</script>
|
63
|
+
|
64
|
+
</body>
|
65
|
+
</html>
|
@@ -0,0 +1,237 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
require 'rails/generators/migration'
|
3
|
+
|
4
|
+
module Humdrum
|
5
|
+
module Generators
|
6
|
+
class ResourceGenerator < Rails::Generators::Base
|
7
|
+
|
8
|
+
include Rails::Generators::Migration
|
9
|
+
|
10
|
+
def self.next_migration_number(path)
|
11
|
+
@migration_number = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i.to_s
|
12
|
+
end
|
13
|
+
|
14
|
+
source_root File.expand_path('../templates', __FILE__)
|
15
|
+
|
16
|
+
desc "Generates a controller, view and route entries for CRUD operations of a resource"
|
17
|
+
|
18
|
+
argument :resource_name, :type=>:string
|
19
|
+
argument :fields, :type=>:hash, :banner =>"Resource Fields."
|
20
|
+
|
21
|
+
class_option :fluid, :type => :boolean, :default => true, :desc => "Pass true to create fluid layouts"
|
22
|
+
class_option :debug, :type => :boolean, :default => false, :desc => "This will print the arguments for debugging"
|
23
|
+
|
24
|
+
def debug_args
|
25
|
+
print_args if options.debug?
|
26
|
+
end
|
27
|
+
|
28
|
+
def generate_controllers
|
29
|
+
template "controllers/resource_controller.rb", "app/controllers/#{controller_path}_controller.rb"
|
30
|
+
end
|
31
|
+
|
32
|
+
def generate_views
|
33
|
+
template "views/resource/_edit.html.erb", "app/views/#{controller_path}/_edit.html.erb"
|
34
|
+
template "views/resource/_filters.html.erb", "app/views/#{controller_path}/_filters.html.erb"
|
35
|
+
template "views/resource/_form.html.erb", "app/views/#{controller_path}/_form.html.erb"
|
36
|
+
template "views/resource/_index.html.erb", "app/views/#{controller_path}/_index.html.erb"
|
37
|
+
template "views/resource/_item.html.erb", "app/views/#{controller_path}/_item.html.erb"
|
38
|
+
template "views/resource/_nav_filters.html.erb", "app/views/#{controller_path}/_nav_filters.html.erb"
|
39
|
+
template "views/resource/_new.html.erb", "app/views/#{controller_path}/_new.html.erb"
|
40
|
+
template "views/resource/_show.html.erb", "app/views/#{controller_path}/_show.html.erb"
|
41
|
+
template "views/resource/_summary.html.erb", "app/views/#{controller_path}/_summary.html.erb"
|
42
|
+
template "views/resource/create.js.erb", "app/views/#{controller_path}/create.js.erb"
|
43
|
+
template "views/resource/destroy.js.erb", "app/views/#{controller_path}/destroy.js.erb"
|
44
|
+
template "views/resource/edit.js.erb", "app/views/#{controller_path}/edit.js.erb"
|
45
|
+
template "views/resource/index.js.erb", "app/views/#{controller_path}/index.js.erb"
|
46
|
+
template "views/resource/new.js.erb", "app/views/#{controller_path}/new.js.erb"
|
47
|
+
template "views/resource/show.js.erb", "app/views/#{controller_path}/show.js.erb"
|
48
|
+
template "views/resource/update.js.erb", "app/views/#{controller_path}/update.js.erb"
|
49
|
+
template "views/resource/index.html.erb", "app/views/#{controller_path}/index.html.erb"
|
50
|
+
end
|
51
|
+
|
52
|
+
def generate_models
|
53
|
+
template "models/resource.rb", "app/models/#{model_path}.rb"
|
54
|
+
end
|
55
|
+
|
56
|
+
def generate_migrations
|
57
|
+
migration_template "migrations/create_resources.rb", "db/migrate/create_#{instances_name}"
|
58
|
+
end
|
59
|
+
|
60
|
+
def generate_routes
|
61
|
+
words = name_phrases
|
62
|
+
resource = words.pop
|
63
|
+
route words.reverse.inject("resources :#{resource.pluralize}") { |acc, phrase|
|
64
|
+
"namespace(:#{phrase}){ #{acc} }"
|
65
|
+
}
|
66
|
+
end
|
67
|
+
|
68
|
+
def generate_locales
|
69
|
+
template "config/locales/humdrum.en.yml", "config/locales/humdrum.en.yml"
|
70
|
+
end
|
71
|
+
|
72
|
+
private
|
73
|
+
|
74
|
+
def print_args
|
75
|
+
puts ":fields: #{fields}"
|
76
|
+
puts ":form_link_param: #{form_link_param}"
|
77
|
+
puts "name_phrases: #{name_phrases}"
|
78
|
+
puts "controller_path: #{controller_path}"
|
79
|
+
puts "controller_class: #{controller_class}"
|
80
|
+
puts "model_path: #{model_path}"
|
81
|
+
puts "model_class: #{model_class}"
|
82
|
+
puts "instance_name: #{instance_name}"
|
83
|
+
puts "instances_name: #{instances_name}"
|
84
|
+
puts "table_name: #{table_name}"
|
85
|
+
|
86
|
+
puts "index path: #{resource_link}"
|
87
|
+
puts "show path: #{resource_link('show')}"
|
88
|
+
puts "new path: #{resource_link('new')}"
|
89
|
+
puts "edit path: #{resource_link('edit')}"
|
90
|
+
puts "create path: #{resource_link('create')}"
|
91
|
+
puts "update path: #{resource_link('update')}"
|
92
|
+
puts "destroy path: #{resource_link('destroy')}"
|
93
|
+
|
94
|
+
puts "index url: #{resource_link('index','url')}"
|
95
|
+
puts "show url: #{resource_link('show','url')}"
|
96
|
+
puts "new url: #{resource_link('new','url')}"
|
97
|
+
puts "edit url: #{resource_link('edit','url')}"
|
98
|
+
puts "create url: #{resource_link('create','url')}"
|
99
|
+
puts "update url: #{resource_link('update','url')}"
|
100
|
+
puts "destroy url: #{resource_link('destroy','url')}"
|
101
|
+
end
|
102
|
+
|
103
|
+
def name_phrases
|
104
|
+
if resource_name.include?('::')
|
105
|
+
resource_name.split("::")
|
106
|
+
elsif resource_name.include?('/')
|
107
|
+
resource_name.split("/")
|
108
|
+
else
|
109
|
+
[resource_name]
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
def controller_path
|
114
|
+
words = name_phrases
|
115
|
+
resource = words.pop
|
116
|
+
if words.any?
|
117
|
+
words.collect(&:downcase).join("/") + "/#{resource.pluralize}"
|
118
|
+
else
|
119
|
+
"#{resource.pluralize}"
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
def controller_class
|
124
|
+
words = name_phrases
|
125
|
+
resource = words.pop
|
126
|
+
if words.any?
|
127
|
+
words.collect(&:camelize).join("::") + "::#{resource.camelize.pluralize}Controller"
|
128
|
+
else
|
129
|
+
"#{resource.camelize.pluralize}Controller"
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
def model_path
|
134
|
+
name_phrases.last.downcase
|
135
|
+
end
|
136
|
+
|
137
|
+
def model_class
|
138
|
+
name_phrases.last.camelize
|
139
|
+
end
|
140
|
+
|
141
|
+
def instance_name
|
142
|
+
name_phrases.last.underscore
|
143
|
+
end
|
144
|
+
|
145
|
+
def instances_name
|
146
|
+
instance_name.pluralize
|
147
|
+
end
|
148
|
+
|
149
|
+
def table_name
|
150
|
+
instances_name
|
151
|
+
end
|
152
|
+
|
153
|
+
def resource_link(actn='index', ltype='path')
|
154
|
+
map = {
|
155
|
+
'index' => '',
|
156
|
+
'show' => '',
|
157
|
+
'edit' => 'edit_',
|
158
|
+
'new' => 'new_',
|
159
|
+
'update' => '',
|
160
|
+
'create' => '',
|
161
|
+
'destroy' => '',
|
162
|
+
}
|
163
|
+
words = name_phrases
|
164
|
+
resource = words.pop
|
165
|
+
if actn == "index"
|
166
|
+
map[actn] + (words.any? ? words.join("_" + "_") : "") + resource.pluralize + "_" + ltype
|
167
|
+
else
|
168
|
+
map[actn] + (words.any? ? words.join("_") + "_" : "") + resource + "_" + ltype
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
172
|
+
def form_link_param
|
173
|
+
words = name_phrases
|
174
|
+
resource = words.pop
|
175
|
+
if words.any?
|
176
|
+
# to print like this [:admin, :user, :location, @chakka]
|
177
|
+
# in form.html.erb
|
178
|
+
"[" + (words.map{|x| ":" + x.downcase} << "@" + resource.downcase).join(", ") + "]"
|
179
|
+
else
|
180
|
+
"@#{resource.downcase}"
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
184
|
+
def input_type(name, type)
|
185
|
+
if name.include?("email") && type == "string"
|
186
|
+
return "email"
|
187
|
+
elsif name.include?("password") && type == "string"
|
188
|
+
return "password"
|
189
|
+
elsif (name.include?("phone") || name.include?("mobile")) && type == "string"
|
190
|
+
return "tel"
|
191
|
+
else
|
192
|
+
case type
|
193
|
+
when "string"
|
194
|
+
"text"
|
195
|
+
when "text"
|
196
|
+
"textarea"
|
197
|
+
when "integer"
|
198
|
+
"number"
|
199
|
+
when "references"
|
200
|
+
"type"
|
201
|
+
when "date"
|
202
|
+
"date"
|
203
|
+
when "datetime"
|
204
|
+
"datetime-local"
|
205
|
+
when "timestamp", "time"
|
206
|
+
"time"
|
207
|
+
end
|
208
|
+
end
|
209
|
+
end
|
210
|
+
|
211
|
+
## List of all the string fields
|
212
|
+
def string_fields
|
213
|
+
main_field = main_string_field
|
214
|
+
fields.map{|name, type| name if name != main_field && type == "string" }.uniq.compact
|
215
|
+
end
|
216
|
+
|
217
|
+
## The main string field like 'name'
|
218
|
+
def main_string_field
|
219
|
+
fields.map{|name, type| name if name.include?("name") && type == "string"}.uniq.compact || fields.keys.any? ? fields.keys.first : "id"
|
220
|
+
end
|
221
|
+
|
222
|
+
## Text Fields like description or summary
|
223
|
+
def text_fields
|
224
|
+
fields.map{|name, type| name if type == "text"}.uniq.compact
|
225
|
+
end
|
226
|
+
|
227
|
+
def container_class
|
228
|
+
options.fluid? ? "container-fluid" : "container"
|
229
|
+
end
|
230
|
+
|
231
|
+
def row_class
|
232
|
+
options.fluid? ? "row-fluid" : "row"
|
233
|
+
end
|
234
|
+
|
235
|
+
end
|
236
|
+
end
|
237
|
+
end
|