somatics3-generators 0.0.8 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/generators/somatics/install/templates/config/locales/somatics_en.yml +2 -0
- data/lib/generators/somatics/install/templates/config/locales/somatics_zh-TW.yml +3 -1
- data/lib/generators/somatics/install/templates/controller_admin.rb +0 -3
- data/lib/generators/somatics/install/templates/helper_admin.rb +5 -10
- data/lib/generators/somatics/install/templates/layout_admin.html.erb +4 -5
- data/lib/generators/somatics/install/templates/lib/somatic_link_renderer.rb +10 -28
- data/lib/generators/somatics/install/templates/public/javascripts/somatics/base.js +6 -0
- data/lib/generators/somatics/scaffold_controller/templates/partial_list.html.erb +6 -18
- data/lib/generators/somatics/scaffold_controller/templates/view_index.html.erb +1 -1
- data/somatics3-generators.gemspec +1 -1
- data/templates/somatics.rb +101 -78
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.9
|
@@ -4,9 +4,6 @@
|
|
4
4
|
class Admin::AdminController < ActionController::Base
|
5
5
|
helper :all # include all helpers, all the time
|
6
6
|
protect_from_forgery # See ActionController::RequestForgeryProtection for details
|
7
|
-
|
8
|
-
# Scrub sensitive parameters from your log
|
9
|
-
filter_parameter_logging :password
|
10
7
|
|
11
8
|
include RedmineFilter
|
12
9
|
include UserAuthenticatedSystem
|
@@ -19,24 +19,19 @@ module Admin::AdminHelper
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def sort_asc_desc_helper(model_name, param)
|
22
|
-
result = image_tag('
|
23
|
-
result = image_tag('
|
22
|
+
result = image_tag('somatics/sort_asc.png') if params[:"#{model_name}_sort"] == param
|
23
|
+
result = image_tag('somatics/sort_desc.png') if params[:"#{model_name}_sort"] == param + "_reverse"
|
24
24
|
return result || ''
|
25
25
|
end
|
26
26
|
|
27
27
|
def sort_link_helper(text, model_name ,param)
|
28
28
|
key = param
|
29
29
|
key += "_reverse" if params[:"#{model_name}_sort"] == param
|
30
|
-
options = {
|
31
|
-
:url => {:action => 'index', :params => params.merge({:"#{model_name}_sort" => key, :page => nil})},
|
32
|
-
:update => 'content',
|
33
|
-
:method => :get
|
34
|
-
}
|
35
30
|
html_options = {
|
36
|
-
:title => "
|
37
|
-
:
|
31
|
+
:title => I18n.t("sort_by",:field => text),
|
32
|
+
:remote=>true
|
38
33
|
}
|
39
|
-
link_to(text + sort_asc_desc_helper(model_name,param)
|
34
|
+
link_to(text, params.merge({:"#{model_name}_sort" => key}), html_options) + sort_asc_desc_helper(model_name,param)
|
40
35
|
end
|
41
36
|
|
42
37
|
def operators_for_select(filter_type)
|
@@ -6,18 +6,17 @@
|
|
6
6
|
|
7
7
|
<%%= stylesheet_link_tag 'somatics/base', 'somatics/jstoolbar', :media => 'all' %>
|
8
8
|
<%%#= stylesheet_link_tag 'somatics/context_menu', :media => 'all' %>
|
9
|
+
|
9
10
|
<!--[if IE]>
|
10
11
|
<style type="text/css">
|
11
12
|
* html body{ width: expression( document.documentElement.clientWidth < 900 ? '900px' : '100%' ); }
|
12
13
|
body {behavior: url(/stylesheets/somatics/csshover.htc);}
|
13
14
|
</style>
|
14
15
|
<![endif]-->
|
16
|
+
|
17
|
+
<%%= javascript_include_tag 'somatics/prototype.js', "rails", 'somatics/effects.js', 'somatics/dragdrop.js', 'somatics/controls.js','somatics/base.js','somatics/select_list_move.js','somatics/context_menu.js' %>
|
18
|
+
<%%= csrf_meta_tag %>
|
15
19
|
|
16
|
-
<%%= javascript_include_tag 'somatics/prototype.js', 'somatics/effects.js', 'somatics/dragdrop.js', 'somatics/controls.js','somatics/base.js','somatics/select_list_move.js','somatics/context_menu.js' %>
|
17
|
-
<!--
|
18
|
-
<link href="http://www.redmine.org/issues.atom?query_id=" rel="alternate" title="Issues" type="application/atom+xml" />
|
19
|
-
<link href="http://www.redmine.org/issues/changes?format=atom&query_id=" rel="alternate" title="Details of all changes" type="application/atom+xml" />
|
20
|
-
-->
|
21
20
|
<%%= init_tinymce_hammer_if_required %>
|
22
21
|
</head>
|
23
22
|
<body>
|
@@ -1,16 +1,5 @@
|
|
1
1
|
class SomaticLinkRenderer < WillPaginate::ViewHelpers::LinkRenderer
|
2
2
|
|
3
|
-
def to_html
|
4
|
-
links = @options[:page_links] ? windowed_links : []
|
5
|
-
# previous/next buttons
|
6
|
-
links.unshift page_link_or_span(@collection.previous_page, 'disabled prev_page', @options[:previous_label])
|
7
|
-
links.push page_link_or_span(@collection.next_page, 'disabled next_page', @options[:next_label])
|
8
|
-
|
9
|
-
html = links.join(@options[:separator])
|
10
|
-
html += "( #{@collection.offset+1}-#{@collection.offset + @collection.per_page}/#{@collection.total_entries} )"
|
11
|
-
@options[:container] ? @template.content_tag(:p, html, html_attributes) : html
|
12
|
-
end
|
13
|
-
|
14
3
|
def prepare(collection, options, template)
|
15
4
|
super
|
16
5
|
@collection_name = template.controller.controller_name
|
@@ -19,24 +8,17 @@ class SomaticLinkRenderer < WillPaginate::ViewHelpers::LinkRenderer
|
|
19
8
|
@options[:next_label] = I18n.t(:next)
|
20
9
|
end
|
21
10
|
|
22
|
-
|
23
|
-
|
24
|
-
def
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
:href => url_for(page)
|
33
|
-
}),:remote=>true
|
34
|
-
)
|
11
|
+
private
|
12
|
+
|
13
|
+
def link(text, target, attributes = {})
|
14
|
+
if target.is_a? Fixnum
|
15
|
+
attributes[:rel] = rel_value(target)
|
16
|
+
target = url(target)
|
17
|
+
end
|
18
|
+
attributes[:href] = target
|
19
|
+
# tag(:a, text, attributes)
|
20
|
+
@template.link_to(text,target, attributes.merge({:remote => true}))
|
35
21
|
end
|
36
22
|
|
37
|
-
def page_span(page, text, attributes = {})
|
38
|
-
# @template.content_tag(:li, text, attributes)
|
39
|
-
@template.content_tag(:span, text, attributes)
|
40
|
-
end
|
41
23
|
|
42
24
|
end
|
@@ -226,6 +226,12 @@ Event.observe(window, 'load', function() {
|
|
226
226
|
});
|
227
227
|
});
|
228
228
|
|
229
|
+
Event.observe(window, "ajax:complete", function(event){
|
230
|
+
if(event.memo.responseText != 'undefined'){
|
231
|
+
$("content").update(event.memo.responseText); // insert content
|
232
|
+
}
|
233
|
+
});
|
234
|
+
|
229
235
|
function link_to(url) {
|
230
236
|
window.location = url;
|
231
237
|
}
|
@@ -2,16 +2,10 @@
|
|
2
2
|
<thead>
|
3
3
|
<tr>
|
4
4
|
<!-- <th><%%#= link_to image_tag('toggle_check.png', :alt => "Toggle_check"), admin_<%= plural_name %>_path, :onclick => "toggleIssuesSelection(Element.up(this, "form")); return false;", :title => "Check all/Uncheck all" %></th> -->
|
5
|
-
<th title="
|
6
|
-
<%
|
7
|
-
|
8
|
-
|
9
|
-
<th title="Sort by "Email""><%%= sort_link_helper <%= class_name %>.human_attribute_name(:email), '<%=singular_name%>', 'email' %></th>
|
10
|
-
<th title="Sort by "Created At""><%%= sort_link_helper <%= class_name %>.human_attribute_name(:created_at), '<%=singular_name%>', 'created_at' %></th>
|
11
|
-
<% end -%>
|
12
|
-
<% for attribute in attributes -%>
|
13
|
-
<th title="Sort by "<%= attribute.name.humanize %>""><%%= sort_link_helper <%= class_name %>.human_attribute_name(:<%= attribute.name %>), '<%=singular_name%>', '<%= attribute.name %>' %></th>
|
14
|
-
<% end -%>
|
5
|
+
<th title="<%%=t "sort_by", :field => '#'%>"><%%= sort_link_helper t('ID'), '<%=singular_name%>', 'id' %></th>
|
6
|
+
<% for attribute in attributes -%>
|
7
|
+
<th title="<%%=t "sort_by", :field => <%= class_name %>.human_attribute_name(:<%= attribute.name %>) %>"><%%= sort_link_helper <%= class_name %>.human_attribute_name(:<%= attribute.name %>), '<%=singular_name%>', '<%= attribute.name %>' %></th>
|
8
|
+
<% end -%>
|
15
9
|
<!-- More Sort Link Helper -->
|
16
10
|
</tr>
|
17
11
|
</thead>
|
@@ -21,15 +15,9 @@
|
|
21
15
|
<tr id="<%% dom_id(<%=singular_name%>)%>" class="hascontextmenu <%%= cycle 'odd' , 'even' %> issue">
|
22
16
|
<!-- <td class="checkbox"><input name="ids[]" type="checkbox" value="<%%#= <%=singular_name%>.id %>" /></td> -->
|
23
17
|
<td onclick="link_to(<%%= "'#{admin_<%=singular_name%>_path(<%=singular_name%>)}'" %>);"><%%= link_to <%= singular_name %>.id, [:admin, <%= singular_name %>]%></td>
|
24
|
-
<%
|
25
|
-
<td onclick="link_to(<%%= "'#{admin_<%=singular_name%>_path(<%=singular_name%>)}'" %>);" class="login"><%%=h <%= singular_name %>.login %></td>
|
26
|
-
<td onclick="link_to(<%%= "'#{admin_<%=singular_name%>_path(<%=singular_name%>)}'" %>);" class="name"><%%=h <%= singular_name %>.name %></td>
|
27
|
-
<td onclick="link_to(<%%= "'#{admin_<%=singular_name%>_path(<%=singular_name%>)}'" %>);" class="email"><%%=h <%= singular_name %>.email %></td>
|
28
|
-
<td onclick="link_to(<%%= "'#{admin_<%=singular_name%>_path(<%=singular_name%>)}'" %>);" class="created_at"><%%=h <%= singular_name %>.created_at %></td>
|
29
|
-
<% end -%>
|
30
|
-
<% for attribute in attributes -%>
|
18
|
+
<% for attribute in attributes -%>
|
31
19
|
<td onclick="link_to(<%%= "'#{admin_<%=singular_name%>_path(<%=singular_name%>)}'" %>);" class="<%= attribute.name %>"><%%=h <%= singular_name %>.<%= attribute.name %> %></td>
|
32
|
-
<% end -%>
|
20
|
+
<% end -%>
|
33
21
|
<!-- More Fields -->
|
34
22
|
</tr>
|
35
23
|
<%% end %>
|
@@ -24,5 +24,5 @@
|
|
24
24
|
|
25
25
|
<%% content_for :sidebar do %>
|
26
26
|
<h3>Actions</h3>
|
27
|
-
<%%= link_to "#{t('
|
27
|
+
<%%= link_to "#{t('New')} #{<%= class_name %>.model_name.human}", new_admin_<%= singular_name %>_path %>
|
28
28
|
<%% end %>
|
data/templates/somatics.rb
CHANGED
@@ -1,12 +1,10 @@
|
|
1
1
|
# somatics.rb
|
2
|
-
|
3
|
-
# app_name = ask 'Type your Application Name for the Heroku project, followed by [ENTER]:'
|
4
2
|
#
|
5
3
|
# repo_entered = ask 'Type your repository for the project (SVN), followed by [ENTER]:'
|
6
4
|
|
7
5
|
gem 'will_paginate', :version => "~> 3.0.pre2"
|
8
6
|
gem 'prawn', :version => '0.6.3'
|
9
|
-
gem 'somatics3-generators'
|
7
|
+
gem 'somatics3-generators', :group => :development
|
10
8
|
gem 'json'
|
11
9
|
|
12
10
|
plugin 'action_mailer_optional_tls',
|
@@ -35,57 +33,57 @@ plugin 'dynamic_form',
|
|
35
33
|
|
36
34
|
rakefile "setup_svn.rake" do
|
37
35
|
<<-TASK
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
end
|
45
|
-
|
46
|
-
system "svn commit -m 'initial commit'"
|
47
|
-
|
48
|
-
puts "Add .gems"
|
49
|
-
system "svn add .gems"
|
50
|
-
system "svn commit -m 'add .gems'"
|
51
|
-
|
52
|
-
puts "Add .gitignore"
|
53
|
-
system "echo '.svn' > .gitignore"
|
54
|
-
system "svn add .gitignore"
|
55
|
-
system "svn commit -m 'add .gitignore'"
|
56
|
-
|
57
|
-
puts "Ignoring .git"
|
58
|
-
system "svn propset svn:ignore '.git' ."
|
59
|
-
|
60
|
-
puts "Removing /log"
|
61
|
-
system "svn remove log/*"
|
62
|
-
system "svn commit -m 'removing all log files from subversion'"
|
63
|
-
system 'svn propset svn:ignore "*.log" log/'
|
64
|
-
system "svn update log/"
|
65
|
-
system "svn commit -m 'Ignoring all files in /log/ ending in .log'"
|
66
|
-
|
67
|
-
puts "Ignoring /db"
|
68
|
-
system 'svn propset svn:ignore "*.db" db/'
|
69
|
-
system "svn update db/"
|
70
|
-
system "svn commit -m 'Ignoring all files in /db/ ending in .db'"
|
71
|
-
|
72
|
-
puts "Renaming database.yml database.example"
|
73
|
-
system "svn move config/database.yml config/database.example"
|
74
|
-
system "svn commit -m 'Moving database.yml to database.example to provide a template for anyone who checks out the code'"
|
75
|
-
system 'svn propset svn:ignore "database.yml" config/'
|
76
|
-
system "svn update config/"
|
77
|
-
system "svn commit -m 'Ignoring database.yml'"
|
78
|
-
|
79
|
-
puts "Ignoring /tmp"
|
80
|
-
system 'svn propset svn:ignore "*" tmp/'
|
81
|
-
system "svn update tmp/"
|
82
|
-
system "svn commit -m 'Ignoring all files in /tmp/'"
|
83
|
-
|
84
|
-
puts "Ignoring /doc"
|
85
|
-
system 'svn propset svn:ignore "*" doc/'
|
86
|
-
system "svn update doc/"
|
87
|
-
system "svn commit -m 'Ignoring all files in /doc/'"
|
36
|
+
desc "Configure Subversion for Rails"
|
37
|
+
task :setup_svn do
|
38
|
+
system "svn info"
|
39
|
+
if $? != 0
|
40
|
+
puts 'Please Import your project to svn before executing this task'
|
41
|
+
exit(0)
|
88
42
|
end
|
43
|
+
|
44
|
+
system "svn commit -m 'initial commit'"
|
45
|
+
|
46
|
+
puts "Add .gems"
|
47
|
+
system "svn add .gems"
|
48
|
+
system "svn commit -m 'add .gems'"
|
49
|
+
|
50
|
+
puts "Add .gitignore"
|
51
|
+
system "echo '.svn' > .gitignore"
|
52
|
+
system "svn add .gitignore"
|
53
|
+
system "svn commit -m 'add .gitignore'"
|
54
|
+
|
55
|
+
puts "Ignoring .git"
|
56
|
+
system "svn propset svn:ignore '.git' ."
|
57
|
+
|
58
|
+
puts "Removing /log"
|
59
|
+
system "svn remove log/*"
|
60
|
+
system "svn commit -m 'removing all log files from subversion'"
|
61
|
+
system 'svn propset svn:ignore "*.log" log/'
|
62
|
+
system "svn update log/"
|
63
|
+
system "svn commit -m 'Ignoring all files in /log/ ending in .log'"
|
64
|
+
|
65
|
+
puts "Ignoring /db"
|
66
|
+
system 'svn propset svn:ignore "*.db" db/'
|
67
|
+
system "svn update db/"
|
68
|
+
system "svn commit -m 'Ignoring all files in /db/ ending in .db'"
|
69
|
+
|
70
|
+
puts "Renaming database.yml database.example"
|
71
|
+
system "svn move config/database.yml config/database.example"
|
72
|
+
system "svn commit -m 'Moving database.yml to database.example to provide a template for anyone who checks out the code'"
|
73
|
+
system 'svn propset svn:ignore "database.yml" config/'
|
74
|
+
system "svn update config/"
|
75
|
+
system "svn commit -m 'Ignoring database.yml'"
|
76
|
+
|
77
|
+
puts "Ignoring /tmp"
|
78
|
+
system 'svn propset svn:ignore "*" tmp/'
|
79
|
+
system "svn update tmp/"
|
80
|
+
system "svn commit -m 'Ignoring all files in /tmp/'"
|
81
|
+
|
82
|
+
puts "Ignoring /doc"
|
83
|
+
system 'svn propset svn:ignore "*" doc/'
|
84
|
+
system "svn update doc/"
|
85
|
+
system "svn commit -m 'Ignoring all files in /doc/'"
|
86
|
+
end
|
89
87
|
TASK
|
90
88
|
end
|
91
89
|
|
@@ -101,28 +99,53 @@ generate "somatics:settings"
|
|
101
99
|
rake "db:create"
|
102
100
|
rake "db:migrate"
|
103
101
|
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
#
|
111
|
-
|
112
|
-
#
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
#
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
102
|
+
if yes?(%(Create Default Admin User (username:admin, password:somatics)?))
|
103
|
+
rake "somatics:create_user"
|
104
|
+
else
|
105
|
+
puts "You can run rake somatics:create_user to create default user"
|
106
|
+
end
|
107
|
+
|
108
|
+
# Delete unnecessary files
|
109
|
+
run "rm README"
|
110
|
+
# run "rm public/index.html"
|
111
|
+
|
112
|
+
app_name = ARGV[0]
|
113
|
+
|
114
|
+
# Commit all work so far to the local repository
|
115
|
+
git :init
|
116
|
+
git :add => '.'
|
117
|
+
git :commit => "-a -m 'Initial commit'"
|
118
|
+
|
119
|
+
rakefile "heroku.rake" do
|
120
|
+
<<-TASK
|
121
|
+
namespace :heroku do
|
122
|
+
desc "Configure Heroku"
|
123
|
+
task :setup do
|
124
|
+
system "heroku create #{app_name}"
|
125
|
+
system "git add ."
|
126
|
+
system "git commit -a -m 'Initial Commit'"
|
127
|
+
# system "heroku addons:add cron:daily"
|
128
|
+
system "heroku addons:add deployhooks:email \
|
129
|
+
recipient=heroku@inspiresynergy.com \
|
130
|
+
subject='[#{app_name}] Deployed' \
|
131
|
+
body='{{user}} deployed #{app_name} successfully'"
|
132
|
+
system "heroku addons:add piggyback_ssl"
|
133
|
+
system "heroku addons:add newrelic:bronze"
|
134
|
+
end
|
135
|
+
|
136
|
+
desc "Deploy to Heroku"
|
137
|
+
task :deploy do
|
138
|
+
system "git add ."
|
139
|
+
system "git commit -a -m 'Heroku Release'"
|
140
|
+
system "git push heroku master"
|
141
|
+
end
|
142
|
+
|
143
|
+
desc "Deploy and Migrate to Heroku"
|
144
|
+
task :deploy_migrate => :deploy do
|
145
|
+
system "heroku rake db:migrate"
|
146
|
+
end
|
147
|
+
|
148
|
+
end
|
149
|
+
TASK
|
150
|
+
end
|
151
|
+
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: somatics3-generators
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 13
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 9
|
10
|
+
version: 0.0.9
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Benjamin Wong
|