phoenix_core 0.2.0.beta → 0.2.1.beta
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/app/assets/stylesheets/bootstrap.css +0 -17
- data/app/assets/stylesheets/phoenix.css +237 -0
- data/app/views/phoenix/layouts/application.html.erb +19 -0
- data/app/views/phoenix/layouts/site.html.erb +19 -0
- data/app/views/phoenix/shared/_footer.html.erb +12 -0
- data/app/views/phoenix/shared/_head.html.erb +8 -0
- data/app/views/phoenix/shared/_header.html.erb +3 -0
- data/config/locals/phoenix/en.yml +6 -1
- data/lib/generators/phoenix/app/app_generator.rb +2 -2
- data/lib/generators/phoenix/dummy/dummy_generator.rb +4 -6
- data/lib/generators/phoenix/dummy/templates/rails/application.rb +5 -1
- data/lib/generators/phoenix/dummy/templates/rails/mongoid.yml +20 -0
- data/lib/generators/phoenix/dummy/templates/rails/routes.rb +1 -1
- data/lib/generators/phoenix/extension/templates/app/views/phoenix/plural_name/admin/plural_name/_actions.html.erb +5 -5
- data/lib/generators/phoenix/extension/templates/app/views/phoenix/plural_name/admin/plural_name/_form.html.erb +7 -7
- data/lib/generators/phoenix/extension/templates/app/views/phoenix/plural_name/admin/plural_name/_records.html.erb +2 -2
- data/lib/generators/phoenix/extension/templates/app/views/phoenix/plural_name/admin/plural_name/_singular_name.html.erb +4 -4
- data/lib/generators/phoenix/extension/templates/app/views/phoenix/plural_name/admin/plural_name/_sortable_list.html.erb +1 -1
- data/lib/generators/phoenix/extension/templates/app/views/phoenix/plural_name/admin/plural_name/index.html.erb +1 -1
- data/lib/generators/phoenix/extension/templates/app/views/phoenix/plural_name/plural_name/index.html.erb +2 -2
- data/lib/generators/phoenix/extension/templates/app/views/phoenix/plural_name/plural_name/show.html.erb +2 -2
- data/lib/generators/phoenix/extension/templates/lib/generators/phoenix/plural_name_generator.rb +1 -1
- data/lib/generators/phoenix/extension/templates/lib/phoenix/plural_name.rb +4 -4
- data/lib/generators/phoenix/extension/templates/lib/phoenix/plural_name/engine.rb +6 -6
- data/lib/generators/phoenix/extension/templates/lib/phoenix_plural_name.rb +1 -1
- data/lib/generators/phoenix/extension/templates/spec/requests/phoenix/admin/plural_name_spec.rb +6 -6
- data/lib/phoenix/core.rb +109 -1
- data/lib/phoenix/core/url_helpers.rb +7 -0
- data/lib/phoenix/plugins.rb +65 -0
- data/lib/phoenix/version.rb +1 -1
- metadata +26 -65
- data/app/assets/stylesheets/global.css +0 -24
- data/app/assets/stylesheets/landing.css +0 -1
- data/app/views/phoenix/layouts/phoenix_core/application.html.erb +0 -14
|
@@ -608,18 +608,6 @@ textarea {
|
|
|
608
608
|
font-weight: normal;
|
|
609
609
|
line-height: normal;
|
|
610
610
|
}
|
|
611
|
-
label {
|
|
612
|
-
padding-top: 6px;
|
|
613
|
-
font-size: 13px;
|
|
614
|
-
line-height: 18px;
|
|
615
|
-
float: left;
|
|
616
|
-
width: 130px;
|
|
617
|
-
text-align: right;
|
|
618
|
-
color: #404040;
|
|
619
|
-
}
|
|
620
|
-
form .input {
|
|
621
|
-
margin-left: 150px;
|
|
622
|
-
}
|
|
623
611
|
input[type=checkbox], input[type=radio] {
|
|
624
612
|
cursor: pointer;
|
|
625
613
|
}
|
|
@@ -1785,11 +1773,6 @@ a.menu:after, .dropdown-toggle:after {
|
|
|
1785
1773
|
font-weight: 200;
|
|
1786
1774
|
line-height: 27px;
|
|
1787
1775
|
}
|
|
1788
|
-
footer {
|
|
1789
|
-
margin-top: 17px;
|
|
1790
|
-
padding-top: 17px;
|
|
1791
|
-
border-top: 1px solid #eee;
|
|
1792
|
-
}
|
|
1793
1776
|
.page-header {
|
|
1794
1777
|
margin-bottom: 17px;
|
|
1795
1778
|
border-bottom: 1px solid #ddd;
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
/* Common Styles
|
|
2
|
+
* ----------------------------------------------------- */
|
|
3
|
+
.grey {
|
|
4
|
+
color: #666;
|
|
5
|
+
}
|
|
6
|
+
.cf:before, .cf:after {
|
|
7
|
+
display: table;
|
|
8
|
+
content: "";
|
|
9
|
+
zoom: 1;
|
|
10
|
+
}
|
|
11
|
+
.cf:after {
|
|
12
|
+
clear: both;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/* Layout
|
|
16
|
+
* ----------------------------------------------------- */
|
|
17
|
+
#wrapper {
|
|
18
|
+
}
|
|
19
|
+
header {
|
|
20
|
+
background: #444;
|
|
21
|
+
padding: 20px;
|
|
22
|
+
color: #fff;
|
|
23
|
+
font-size: 2em;
|
|
24
|
+
font-weight: 700;
|
|
25
|
+
font-family: Courier;
|
|
26
|
+
}
|
|
27
|
+
#header {
|
|
28
|
+
width: 980px; margin: 0 auto;
|
|
29
|
+
}
|
|
30
|
+
#body {
|
|
31
|
+
}
|
|
32
|
+
#main {
|
|
33
|
+
width: 980px;
|
|
34
|
+
margin: 0 auto;
|
|
35
|
+
padding: 50px 0px;
|
|
36
|
+
}
|
|
37
|
+
footer {
|
|
38
|
+
margin-top: 15px;
|
|
39
|
+
padding-top: 15px;
|
|
40
|
+
border-top: 1px solid #eee;
|
|
41
|
+
}
|
|
42
|
+
#footer {
|
|
43
|
+
width: 980px; margin: 0 auto;
|
|
44
|
+
}
|
|
45
|
+
#ft-links {
|
|
46
|
+
list-style: none;
|
|
47
|
+
margin: 0;
|
|
48
|
+
padding: 0;
|
|
49
|
+
}
|
|
50
|
+
#ft-links li {
|
|
51
|
+
float: left;
|
|
52
|
+
margin-right: 16px;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/* Form
|
|
56
|
+
* ----------------------------------------------------- */
|
|
57
|
+
.form-wrapper {
|
|
58
|
+
}
|
|
59
|
+
.form-wrapper .field {
|
|
60
|
+
margin-bottom: 10px;
|
|
61
|
+
}
|
|
62
|
+
.input-wrapper {
|
|
63
|
+
position: relative;
|
|
64
|
+
}
|
|
65
|
+
.input-wrapper .input-placeholder {
|
|
66
|
+
position: absolute;
|
|
67
|
+
color: #999;
|
|
68
|
+
padding: 5px 6px;
|
|
69
|
+
top: 0;
|
|
70
|
+
left: 0;
|
|
71
|
+
text-align: left;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/* Pages: Register
|
|
75
|
+
* ----------------------------------------------------- */
|
|
76
|
+
#register {
|
|
77
|
+
width: 300px;
|
|
78
|
+
background: #f9f9f9 url(/assets/noise.png);
|
|
79
|
+
padding: 20px 30px;
|
|
80
|
+
border: 1px solid #ddd;
|
|
81
|
+
border-radius: 3px;
|
|
82
|
+
box-shadow: 0px 0px 8px #ccc;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/* Pages: Login
|
|
86
|
+
* ----------------------------------------------------- */
|
|
87
|
+
#login {
|
|
88
|
+
width: 300px;
|
|
89
|
+
background: #f9f9f9 url(/assets/noise.png);
|
|
90
|
+
padding: 20px 30px;
|
|
91
|
+
border: 1px solid #ddd;
|
|
92
|
+
border-radius: 3px;
|
|
93
|
+
box-shadow: 0px 0px 8px #ccc;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/* Pages: Find Password
|
|
97
|
+
* ----------------------------------------------------- */
|
|
98
|
+
#find-password {
|
|
99
|
+
width: 300px;
|
|
100
|
+
background: #f9f9f9 url(/assets/noise.png);
|
|
101
|
+
padding: 20px 30px;
|
|
102
|
+
border: 1px solid #ddd;
|
|
103
|
+
border-radius: 3px;
|
|
104
|
+
box-shadow: 0px 0px 8px #ccc;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/* Page: Change password
|
|
108
|
+
* ----------------------------------------------------- */
|
|
109
|
+
#change-password {
|
|
110
|
+
width: 300px;
|
|
111
|
+
background: #f9f9f9 url(/assets/noise.png);
|
|
112
|
+
padding: 20px 30px;
|
|
113
|
+
border: 1px solid #ddd;
|
|
114
|
+
border-radius: 3px;
|
|
115
|
+
box-shadow: 0px 0px 8px #ccc;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/* Page: Profile
|
|
119
|
+
* ----------------------------------------------------- */
|
|
120
|
+
#profile {
|
|
121
|
+
width: 400px;
|
|
122
|
+
background: #f9f9f9 url(/assets/noise.png);
|
|
123
|
+
padding: 20px 30px;
|
|
124
|
+
border: 1px solid #ddd;
|
|
125
|
+
border-radius: 3px;
|
|
126
|
+
box-shadow: 0px 0px 8px #ccc;
|
|
127
|
+
}
|
|
128
|
+
#profile-content {
|
|
129
|
+
line-height: 1.8;
|
|
130
|
+
list-style: none;
|
|
131
|
+
margin: 0;
|
|
132
|
+
padding: 0;
|
|
133
|
+
}
|
|
134
|
+
#profile-content .photo {
|
|
135
|
+
float: left; border: 1px solid #ddd; margin: 0 10px 10px 0;
|
|
136
|
+
}
|
|
137
|
+
#profile-content .name{
|
|
138
|
+
font-size: 1.2em; font-weight: 700;
|
|
139
|
+
}
|
|
140
|
+
#profile-content .bio{
|
|
141
|
+
color: #888;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/* Page: Edit Profile
|
|
145
|
+
* ----------------------------------------------------- */
|
|
146
|
+
#edit-profile {
|
|
147
|
+
width: 400px;
|
|
148
|
+
background: #f9f9f9 url(/assets/noise.png);
|
|
149
|
+
padding: 20px 30px;
|
|
150
|
+
border: 1px solid #ddd;
|
|
151
|
+
border-radius: 3px;
|
|
152
|
+
box-shadow: 0px 0px 8px #ccc;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/* Page: Following
|
|
156
|
+
* ----------------------------------------------------- */
|
|
157
|
+
#following {
|
|
158
|
+
width: 400px;
|
|
159
|
+
background: #f9f9f9 url(/assets/noise.png);
|
|
160
|
+
padding: 20px 30px;
|
|
161
|
+
border: 1px solid #ddd;
|
|
162
|
+
border-radius: 3px;
|
|
163
|
+
box-shadow: 0px 0px 8px #ccc;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.following-item {
|
|
167
|
+
border-bottom: 1px solid #ddd;
|
|
168
|
+
padding: 6px 0;
|
|
169
|
+
clear: left;
|
|
170
|
+
margin-bottom: 10px;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.following-item .photo{
|
|
174
|
+
float: left;
|
|
175
|
+
margin: 0 10px 10px 0;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.following-item .name{
|
|
179
|
+
font-size: 1.2em;
|
|
180
|
+
font-weight: 700;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
.following-item .bio{
|
|
184
|
+
color: #666;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
.following-item .action{
|
|
188
|
+
color: #999;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/* Page: Followers
|
|
192
|
+
* ----------------------------------------------------- */
|
|
193
|
+
#followers {
|
|
194
|
+
width: 400px;
|
|
195
|
+
background: #f9f9f9 url(/assets/noise.png);
|
|
196
|
+
padding: 20px 30px;
|
|
197
|
+
border: 1px solid #ddd;
|
|
198
|
+
border-radius: 3px;
|
|
199
|
+
box-shadow: 0px 0px 8px #ccc;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.followers-item {
|
|
203
|
+
border-bottom: 1px solid #ddd;
|
|
204
|
+
padding: 6px 0;
|
|
205
|
+
clear: left;
|
|
206
|
+
margin-bottom: 10px;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.followers-item .photo{
|
|
210
|
+
float: left;
|
|
211
|
+
margin: 0 10px 10px 0;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
.followers-item .name{
|
|
215
|
+
font-size: 1.2em;
|
|
216
|
+
font-weight: 700;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
.followers-item .bio{
|
|
220
|
+
color: #666;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
.followers-item .action{
|
|
224
|
+
color: #999;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/* Page: Followers
|
|
228
|
+
* ----------------------------------------------------- */
|
|
229
|
+
#followers {
|
|
230
|
+
width: 400px;
|
|
231
|
+
background: #f9f9f9 url(/assets/noise.png);
|
|
232
|
+
padding: 20px 30px;
|
|
233
|
+
border: 1px solid #ddd;
|
|
234
|
+
border-radius: 3px;
|
|
235
|
+
box-shadow: 0px 0px 8px #ccc;
|
|
236
|
+
}
|
|
237
|
+
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<!DOCTYPE HTML>
|
|
2
|
+
<html lang="en-US">
|
|
3
|
+
<head>
|
|
4
|
+
<%= render :partial => 'phoenix/shared/head' %>
|
|
5
|
+
</head>
|
|
6
|
+
<body>
|
|
7
|
+
<header>
|
|
8
|
+
<%= render :partial => 'phoenix/shared/header' %>
|
|
9
|
+
</header>
|
|
10
|
+
<div id="body">
|
|
11
|
+
<div id="main">
|
|
12
|
+
<%= yield %>
|
|
13
|
+
</div>
|
|
14
|
+
</div>
|
|
15
|
+
<footer>
|
|
16
|
+
<%= render :partial => 'phoenix/shared/footer' %>
|
|
17
|
+
</footer>
|
|
18
|
+
</body>
|
|
19
|
+
</html>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<!DOCTYPE HTML>
|
|
2
|
+
<html lang="en-US">
|
|
3
|
+
<head>
|
|
4
|
+
<%= render :partial => 'phoenix/shared/head' %>
|
|
5
|
+
</head>
|
|
6
|
+
<body>
|
|
7
|
+
<header>
|
|
8
|
+
<%= render :partial => 'phoenix/shared/header' %>
|
|
9
|
+
</header>
|
|
10
|
+
<div id="body">
|
|
11
|
+
<div id="main">
|
|
12
|
+
<%= yield %>
|
|
13
|
+
</div>
|
|
14
|
+
</div>
|
|
15
|
+
<footer>
|
|
16
|
+
<%= render :partial => 'phoenix/shared/footer' %>
|
|
17
|
+
</footer>
|
|
18
|
+
</body>
|
|
19
|
+
</html>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<div id="footer">
|
|
2
|
+
<ul id="ft-links">
|
|
3
|
+
<li><%= link_to "register", signup_path %></li>
|
|
4
|
+
<li><%= link_to "login", login_path %></li>
|
|
5
|
+
<li><%= link_to "logout", logout_path %></li>
|
|
6
|
+
<li><%= link_to "find password", new_user_password_path %></li>
|
|
7
|
+
<li><a href="#">profile</a></li>
|
|
8
|
+
<li><a href="#">change password</a></li>
|
|
9
|
+
<li><a href="#">following</a></li>
|
|
10
|
+
<li><a href="#">followers</a></li>
|
|
11
|
+
</ul>
|
|
12
|
+
</div>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
|
|
2
|
+
<title>Phoenix</title>
|
|
3
|
+
<%= stylesheet_link_tag "application" %>
|
|
4
|
+
<%= javascript_include_tag "application" %>
|
|
5
|
+
<%= csrf_meta_tags %>
|
|
6
|
+
<!--[if lt IE 9]>
|
|
7
|
+
<%= javascript_include_tag "html5" %>
|
|
8
|
+
<![endif]-->
|
|
@@ -54,7 +54,7 @@ module Phoenix
|
|
|
54
54
|
run_bundle
|
|
55
55
|
|
|
56
56
|
rake('phoenix_core:install')
|
|
57
|
-
rake('phoenix_auth:install')
|
|
57
|
+
#rake('phoenix_auth:install')
|
|
58
58
|
|
|
59
59
|
rake("db:migrate#{' --trace' if options[:trace]}")
|
|
60
60
|
|
|
@@ -69,7 +69,7 @@ module Phoenix
|
|
|
69
69
|
note << "you will need to run the following tasks manually to maintain correct operation:"
|
|
70
70
|
note << "\ncd #{app_pathname}"
|
|
71
71
|
note << "bundle exec rake db:create"
|
|
72
|
-
note << "bundle exec rails generate phoenix:
|
|
72
|
+
note << "bundle exec rails generate phoenix:blog"
|
|
73
73
|
note << "bundle exec rake db:migrate"
|
|
74
74
|
note << "\n---------\n"
|
|
75
75
|
end
|
|
@@ -5,7 +5,7 @@ module Phoenix
|
|
|
5
5
|
class DummyGenerator < Rails::Generators::Base
|
|
6
6
|
desc "Creates blank Rails application, installs Phoenix Engine, and all sample data"
|
|
7
7
|
|
|
8
|
-
class_option :database, :default => ''
|
|
8
|
+
#class_option :database, :default => ''
|
|
9
9
|
|
|
10
10
|
def self.source_paths
|
|
11
11
|
paths = self.superclass.source_paths
|
|
@@ -19,7 +19,7 @@ module Phoenix
|
|
|
19
19
|
|
|
20
20
|
def generate_test_dummy
|
|
21
21
|
opts = (options || {}).slice(*PASSTHROUGH_OPTIONS)
|
|
22
|
-
opts[:database] = 'sqlite3' if opts[:database].blank?
|
|
22
|
+
#opts[:database] = 'sqlite3' if opts[:database].blank?
|
|
23
23
|
opts[:force] = true
|
|
24
24
|
opts[:skip_bundle] = true
|
|
25
25
|
opts[:old_style_hash] = true
|
|
@@ -28,9 +28,9 @@ module Phoenix
|
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
def test_dummy_config
|
|
31
|
-
|
|
31
|
+
#@database = options[:database]
|
|
32
32
|
|
|
33
|
-
template "rails/
|
|
33
|
+
template "rails/mongoid.yml", "#{dummy_path}/config/mongoid.yml", :force => true
|
|
34
34
|
template "rails/boot.rb", "#{dummy_path}/config/boot.rb", :force => true
|
|
35
35
|
template "rails/application.rb", "#{dummy_path}/config/application.rb", :force => true
|
|
36
36
|
template "rails/routes.rb", "#{dummy_path}/config/routes.rb", :force => true
|
|
@@ -52,8 +52,6 @@ module Phoenix
|
|
|
52
52
|
end
|
|
53
53
|
end
|
|
54
54
|
|
|
55
|
-
attr :database
|
|
56
|
-
|
|
57
55
|
protected
|
|
58
56
|
|
|
59
57
|
def dummy_path
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
require File.expand_path('../boot', __FILE__)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
# Pick the frameworks you want:
|
|
4
|
+
require "action_controller/railtie"
|
|
5
|
+
require "action_mailer/railtie"
|
|
6
|
+
require "active_resource/railtie"
|
|
7
|
+
require "sprockets/railtie"
|
|
4
8
|
|
|
5
9
|
require 'bundler/setup'
|
|
6
10
|
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
development:
|
|
2
|
+
host: localhost
|
|
3
|
+
database: phoenix_dev
|
|
4
|
+
|
|
5
|
+
test:
|
|
6
|
+
host: localhost
|
|
7
|
+
database: phoenix_test
|
|
8
|
+
|
|
9
|
+
# set these environment variables on your prod server
|
|
10
|
+
production:
|
|
11
|
+
host: <%= ENV['MONGOID_HOST'] %>
|
|
12
|
+
port: <%= ENV['MONGOID_PORT'] %>
|
|
13
|
+
username: <%= ENV['MONGOID_USERNAME'] %>
|
|
14
|
+
password: <%= ENV['MONGOID_PASSWORD'] %>
|
|
15
|
+
database: <%= ENV['MONGOID_DATABASE'] %>
|
|
16
|
+
# slaves:
|
|
17
|
+
# - host: slave1.local
|
|
18
|
+
# port: 27018
|
|
19
|
+
# - host: slave2.local
|
|
20
|
+
# port: 27019
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
<ul>
|
|
2
2
|
<%% if ::Phoenix::Admin::<%= class_name.pluralize %>Controller.searchable? %>
|
|
3
3
|
<li>
|
|
4
|
-
<%%= render :partial => "/
|
|
4
|
+
<%%= render :partial => "/phoenix/admin/search",
|
|
5
5
|
:locals => {
|
|
6
|
-
:url => main_app.
|
|
6
|
+
:url => main_app.phoenix_admin_<%= plural_name %><%= "_index" if plural_name == singular_name%>_path
|
|
7
7
|
} %>
|
|
8
8
|
</li>
|
|
9
9
|
<%% end %>
|
|
10
10
|
<li>
|
|
11
|
-
<%%= link_to t('.create_new'), main_app.
|
|
11
|
+
<%%= link_to t('.create_new'), main_app.new_phoenix_admin_<%= singular_name %>_path,
|
|
12
12
|
:class => "add_icon" %>
|
|
13
13
|
</li>
|
|
14
14
|
<%% if !searching? && ::Phoenix::Admin::<%= class_name.pluralize %>Controller.sortable? && ::Phoenix::<%= class_name.pluralize %>::<%= class_name %>.any? %>
|
|
15
15
|
<li>
|
|
16
16
|
<%%= link_to t('.reorder', :what => "<%= singular_name.titleize.pluralize %>"),
|
|
17
|
-
main_app.
|
|
17
|
+
main_app.phoenix_admin_<%= plural_name %><%= "_index" if plural_name == singular_name%>_path,
|
|
18
18
|
:id => "reorder_action",
|
|
19
19
|
:class => "reorder_icon" %>
|
|
20
20
|
|
|
21
21
|
<%%= link_to t('.reorder_done', :what => "<%= singular_name.titleize.pluralize %>"),
|
|
22
|
-
main_app.
|
|
22
|
+
main_app.phoenix_admin_<%= plural_name %><%= "_index" if plural_name == singular_name%>_path,
|
|
23
23
|
:id => "reorder_action_done",
|
|
24
24
|
:style => "display: none;",
|
|
25
25
|
:class => "reorder_icon" %>
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
text_areas = attributes.reject{|a| a.field_type.to_s != 'text_area'}
|
|
3
3
|
generated_text_areas = false
|
|
4
4
|
-%>
|
|
5
|
-
<%%= form_for [main_app, :
|
|
6
|
-
<%%= render :partial => "/
|
|
5
|
+
<%%= form_for [main_app, :phoenix_admin, @<%= singular_name %>] do |f| -%>
|
|
6
|
+
<%%= render :partial => "/phoenix/admin/error_messages", :locals => {
|
|
7
7
|
:object => @<%= singular_name %>,
|
|
8
8
|
:include_object_name => true
|
|
9
9
|
} %>
|
|
@@ -13,14 +13,14 @@
|
|
|
13
13
|
<%%= f.label :<%= attribute.name %> -%>
|
|
14
14
|
<% end -%>
|
|
15
15
|
<% if attribute.type.to_s == 'image' -%>
|
|
16
|
-
<%%= render :partial => "/
|
|
16
|
+
<%%= render :partial => "/phoenix/admin/image_picker", :locals => {
|
|
17
17
|
:f => f,
|
|
18
18
|
:field => :<%= "#{attribute.name}_id".gsub("_id_id", "_id") %>,
|
|
19
19
|
:image => @<%= singular_name %>.<%= attribute.name.gsub("_id", "") %>,
|
|
20
20
|
:toggle_image_display => false
|
|
21
21
|
} %>
|
|
22
22
|
<% elsif attribute.type.to_s == 'resource' -%>
|
|
23
|
-
<%%= render :partial => "/
|
|
23
|
+
<%%= render :partial => "/phoenix/admin/resource_picker", :locals => {
|
|
24
24
|
:f => f,
|
|
25
25
|
:field => :<%= "#{attribute.name}_id".gsub("_id_id", "_id") %>,
|
|
26
26
|
:resource => @<%= singular_name %>.<%= attribute.name.gsub("_id", "") %>,
|
|
@@ -49,12 +49,12 @@
|
|
|
49
49
|
<% end -%>
|
|
50
50
|
</div>
|
|
51
51
|
<% end %>
|
|
52
|
-
<%%= render :partial => "/
|
|
52
|
+
<%%= render :partial => "/phoenix/admin/form_actions",
|
|
53
53
|
:locals => {
|
|
54
54
|
:f => f,
|
|
55
55
|
:continue_editing => false,
|
|
56
|
-
:delete_title => t('delete', :scope => '
|
|
57
|
-
:delete_confirmation => t('message', :scope => '
|
|
56
|
+
:delete_title => t('delete', :scope => 'phoenix.admin.<%= plural_name %>.<%= singular_name %>'),
|
|
57
|
+
:delete_confirmation => t('message', :scope => 'phoenix.admin.delete'<% if (title = attributes.detect { |a| a.type.to_s == "string" }).present? %>, :title => @<%= singular_name %>.<%= title.name %><% end %>)
|
|
58
58
|
} %>
|
|
59
59
|
<%% end -%>
|
|
60
60
|
<% if text_areas.any? -%>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<%% if searching? %>
|
|
2
|
-
<h2><%%= t('results_for', :scope => '
|
|
2
|
+
<h2><%%= t('results_for', :scope => 'phoenix.admin.search', :query => params[:search]) %></h2>
|
|
3
3
|
<%% end %>
|
|
4
4
|
<%% if @<%= plural_name %>.any? %>
|
|
5
5
|
<div class='pagination_container'>
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
<%%= t('.no_items_yet') %>
|
|
13
13
|
</strong>
|
|
14
14
|
<%% else %>
|
|
15
|
-
<%%= t('no_results', :scope => '
|
|
15
|
+
<%%= t('no_results', :scope => 'phoenix.admin.search') %>
|
|
16
16
|
<%% end %>
|
|
17
17
|
</p>
|
|
18
18
|
<%% end %>
|
|
@@ -4,15 +4,15 @@
|
|
|
4
4
|
<span class="preview"> </span>
|
|
5
5
|
</span>
|
|
6
6
|
<span class='actions'>
|
|
7
|
-
<%%= link_to
|
|
7
|
+
<%%= link_to phoenix_icon_tag("application_go.png"), main_app.phoenix_<%= singular_name %>_path(<%= singular_name %>),
|
|
8
8
|
:title => t('.view_live_html'),
|
|
9
9
|
:target => "_blank" %>
|
|
10
|
-
<%%= link_to
|
|
10
|
+
<%%= link_to phoenix_icon_tag("application_edit.png"), main_app.edit_phoenix_admin_<%= singular_name %>_path(<%= singular_name %>),
|
|
11
11
|
:title => t('.edit') %>
|
|
12
|
-
<%%= link_to
|
|
12
|
+
<%%= link_to phoenix_icon_tag("delete.png"), main_app.phoenix_admin_<%= singular_name %>_path(<%= singular_name %>),
|
|
13
13
|
:class => "cancel confirm-delete",
|
|
14
14
|
:title => t('.delete'),
|
|
15
|
-
:confirm => t('message', :scope => '
|
|
15
|
+
:confirm => t('message', :scope => 'phoenix.admin.delete', :title => <%= singular_name %><% if (title = attributes.detect { |a| a.type.to_s == "string" }).present? %>.<%= title.name %><% else %>.title<% end %>),
|
|
16
16
|
:method => :delete %>
|
|
17
17
|
</span>
|
|
18
18
|
</li>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<ul id='sortable_list'>
|
|
2
2
|
<%%= render :partial => '<%= singular_name %>', :collection => @<%= plural_name %> %>
|
|
3
3
|
</ul>
|
|
4
|
-
<%%= render :partial => "/
|
|
4
|
+
<%%= render :partial => "/phoenix/admin/sortable_list",
|
|
5
5
|
:locals => {
|
|
6
6
|
:continue_reordering => (local_assigns.keys.include?(:continue_reordering)) ? continue_reordering : true
|
|
7
7
|
} %>
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<aside id='actions'>
|
|
5
5
|
<%%= render :partial => 'actions' %>
|
|
6
6
|
</aside>
|
|
7
|
-
<%%= render :partial => '/
|
|
7
|
+
<%%= render :partial => '/phoenix/admin/make_sortable',
|
|
8
8
|
:locals => {
|
|
9
9
|
:tree => false
|
|
10
10
|
} if !searching? and ::Phoenix::Admin::<%= class_name.pluralize %>Controller.sortable? and ::Phoenix::<%= class_name.pluralize %>::<%= class_name %>.count > 1 %>
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
<ul id="<%= plural_name %>">
|
|
3
3
|
<%% @<%= "all_" if plural_name == singular_name%><%= plural_name %>.each do |<%= singular_name %>| %>
|
|
4
4
|
<li>
|
|
5
|
-
<%%= link_to <%= singular_name %><% if (title = attributes.detect { |a| a.type.to_s == "string" }).present? %>.<%= title.name %><% end %>, main_app.
|
|
5
|
+
<%%= link_to <%= singular_name %><% if (title = attributes.detect { |a| a.type.to_s == "string" }).present? %>.<%= title.name %><% end %>, main_app.phoenix_<%= singular_name %>_path(<%= singular_name %>) %>
|
|
6
6
|
</li>
|
|
7
7
|
<%% end %>
|
|
8
8
|
</ul>
|
|
9
9
|
<%% end %>
|
|
10
10
|
|
|
11
|
-
<%%= render :partial => "/
|
|
11
|
+
<%%= render :partial => "/phoenix/content_page" %>
|
|
@@ -25,11 +25,11 @@
|
|
|
25
25
|
<ul id="<%= plural_name %>">
|
|
26
26
|
<%% @<%= "all_" if plural_name == singular_name%><%= plural_name %>.each do |<%= singular_name %>| %>
|
|
27
27
|
<li>
|
|
28
|
-
<%%= link_to <%= singular_name %><% if (title = attributes.detect { |a| a.type.to_s == "string" }).present? %>.<%= title.name %><% else %>.title<% end %>, main_app.
|
|
28
|
+
<%%= link_to <%= singular_name %><% if (title = attributes.detect { |a| a.type.to_s == "string" }).present? %>.<%= title.name %><% else %>.title<% end %>, main_app.phoenix_<%= singular_name %>_path(<%= singular_name %>) %>
|
|
29
29
|
</li>
|
|
30
30
|
<%% end %>
|
|
31
31
|
</ul>
|
|
32
32
|
</aside>
|
|
33
33
|
<%% end %>
|
|
34
34
|
|
|
35
|
-
<%%= render :partial => "/
|
|
35
|
+
<%%= render :partial => "/phoenix/content_page" %>
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
require '
|
|
1
|
+
require 'phoenix_core'
|
|
2
2
|
|
|
3
3
|
module Phoenix
|
|
4
|
-
autoload :<%= class_name.pluralize %>Generator, 'generators/
|
|
4
|
+
autoload :<%= class_name.pluralize %>Generator, 'generators/phoenix/<%= plural_name %>_generator'
|
|
5
5
|
|
|
6
6
|
module <%= class_name.pluralize %><%= 'Engine' if plural_name == singular_name %>
|
|
7
|
-
require '
|
|
7
|
+
require 'phoenix/<%= plural_name %>/engine' if defined?(Rails)
|
|
8
8
|
|
|
9
9
|
class << self
|
|
10
10
|
def table_name_prefix
|
|
11
|
-
'
|
|
11
|
+
'phoenix_'
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
attr_writer :root
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
require '
|
|
1
|
+
require 'phoenix_<%= plural_name %>'
|
|
2
2
|
|
|
3
3
|
module Phoenix
|
|
4
4
|
module <%= class_name.pluralize %>
|
|
5
5
|
class Engine < Rails::Engine
|
|
6
6
|
include Phoenix::Engine
|
|
7
7
|
isolate_namespace Phoenix
|
|
8
|
-
engine_name :
|
|
8
|
+
engine_name :phoenix_<%= plural_name %>
|
|
9
9
|
|
|
10
|
-
initializer "register
|
|
10
|
+
initializer "register phoenix_<%= plural_name %> plugin" do |app|
|
|
11
11
|
Phoenix::Plugin.register do |plugin|
|
|
12
12
|
plugin.name = "<%= class_name.pluralize.underscore.downcase %>"
|
|
13
|
-
plugin.url = {:controller => '/
|
|
13
|
+
plugin.url = {:controller => '/phoenix/<%= plural_name %>'}
|
|
14
14
|
plugin.pathname = root
|
|
15
15
|
plugin.name = '<%= class_name.pluralize.underscore.downcase %>'
|
|
16
|
-
plugin.url = '/
|
|
16
|
+
plugin.url = '/phoenix/<%= plural_name %>'
|
|
17
17
|
|
|
18
18
|
plugin.activity = {
|
|
19
|
-
:class_name => :'
|
|
19
|
+
:class_name => :'phoenix/<%= singular_name %>'
|
|
20
20
|
}
|
|
21
21
|
end
|
|
22
22
|
end
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require '
|
|
1
|
+
require 'phoenix/<%= plural_name %>'
|
data/lib/generators/phoenix/extension/templates/spec/requests/phoenix/admin/plural_name_spec.rb
CHANGED
|
@@ -3,7 +3,7 @@ require "spec_helper"
|
|
|
3
3
|
describe Phoenix do
|
|
4
4
|
describe "Admin" do
|
|
5
5
|
describe "<%= plural_name %>" do
|
|
6
|
-
|
|
6
|
+
login_phoenix_user
|
|
7
7
|
<% if (title = attributes.detect { |a| a.type.to_s == "string" }).present? %>
|
|
8
8
|
describe "<%= plural_name %> list" do
|
|
9
9
|
before(:each) do
|
|
@@ -12,7 +12,7 @@ describe Phoenix do
|
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
it "shows two items" do
|
|
15
|
-
visit
|
|
15
|
+
visit phoenix_admin_<%= plural_name %>_path
|
|
16
16
|
page.should have_content("UniqueTitleOne")
|
|
17
17
|
page.should have_content("UniqueTitleTwo")
|
|
18
18
|
end
|
|
@@ -20,7 +20,7 @@ describe Phoenix do
|
|
|
20
20
|
|
|
21
21
|
describe "create" do
|
|
22
22
|
before(:each) do
|
|
23
|
-
visit
|
|
23
|
+
visit phoenix_admin_<%= plural_name %>_path
|
|
24
24
|
|
|
25
25
|
click_link "Add New <%= singular_name.titleize %>"
|
|
26
26
|
end
|
|
@@ -48,7 +48,7 @@ describe Phoenix do
|
|
|
48
48
|
before(:each) { FactoryGirl.create(:<%= singular_name %>, :<%= title.name %> => "UniqueTitle") }
|
|
49
49
|
|
|
50
50
|
it "should fail" do
|
|
51
|
-
visit
|
|
51
|
+
visit phoenix_admin_<%= plural_name %>_path
|
|
52
52
|
|
|
53
53
|
click_link "Add New <%= singular_name.titleize %>"
|
|
54
54
|
|
|
@@ -65,7 +65,7 @@ describe Phoenix do
|
|
|
65
65
|
before(:each) { FactoryGirl.create(:<%= singular_name %>, :<%= title.name %> => "A <%= title.name %>") }
|
|
66
66
|
|
|
67
67
|
it "should succeed" do
|
|
68
|
-
visit
|
|
68
|
+
visit phoenix_admin_<%= plural_name %>_path
|
|
69
69
|
|
|
70
70
|
within ".actions" do
|
|
71
71
|
click_link "Edit this <%= singular_name.titleize.downcase %>"
|
|
@@ -83,7 +83,7 @@ describe Phoenix do
|
|
|
83
83
|
before(:each) { FactoryGirl.create(:<%= singular_name %>, :<%= title.name %> => "UniqueTitleOne") }
|
|
84
84
|
|
|
85
85
|
it "should succeed" do
|
|
86
|
-
visit
|
|
86
|
+
visit phoenix_admin_<%= plural_name %>_path
|
|
87
87
|
|
|
88
88
|
click_link "Remove this <%= singular_name.titleize.downcase %> forever"
|
|
89
89
|
|
data/lib/phoenix/core.rb
CHANGED
|
@@ -13,7 +13,7 @@ module Phoenix
|
|
|
13
13
|
|
|
14
14
|
# Different between require and autoload.
|
|
15
15
|
# Require will be specified after the autoload.
|
|
16
|
-
autoload :Engine, 'phoenix/
|
|
16
|
+
autoload :Engine, 'phoenix/extension'
|
|
17
17
|
autoload :Version, 'phoenix/version'
|
|
18
18
|
|
|
19
19
|
autoload :DummyGenerator, 'generators/phoenix/dummy/dummy_generator'
|
|
@@ -22,6 +22,114 @@ module Phoenix
|
|
|
22
22
|
require 'generators/phoenix/dummy/dummy_generator'
|
|
23
23
|
require 'generators/phoenix/extension/extension_generator'
|
|
24
24
|
|
|
25
|
+
class << self
|
|
26
|
+
@@extensions = []
|
|
27
|
+
|
|
28
|
+
# Returns an array of modules/extensions representing currently registered Phoenix extensions
|
|
29
|
+
#
|
|
30
|
+
# Example:
|
|
31
|
+
# Phoenix.extensions => [Phoenix::Core, Phoenix::Pages]
|
|
32
|
+
def extensions
|
|
33
|
+
@@extensions
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# Register an extension with Phoenix
|
|
37
|
+
#
|
|
38
|
+
# Example:
|
|
39
|
+
# Phoenix.register_extension(Phoenix::Core)
|
|
40
|
+
def register_extension(const)
|
|
41
|
+
return if extension_registered?(const)
|
|
42
|
+
|
|
43
|
+
validate_extension!(const)
|
|
44
|
+
|
|
45
|
+
@@extensions << const
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# Unregister an extension from Phoenix
|
|
49
|
+
#
|
|
50
|
+
# Example:
|
|
51
|
+
# Phoenix.unregister_extension(Phoenix::Core)
|
|
52
|
+
def unregister_extension(const)
|
|
53
|
+
@@extensions.delete(const)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# Returns true if an extension is currently registered with Phoenix
|
|
57
|
+
#
|
|
58
|
+
# Example:
|
|
59
|
+
# Phoenix.extension_registered?(Phoenix::Core)
|
|
60
|
+
def extension_registered?(const)
|
|
61
|
+
@@extensions.include?(const)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# Constructs a deprecation warning message and warns with Kernel#warn
|
|
65
|
+
#
|
|
66
|
+
# Example:
|
|
67
|
+
# Phoenix.deprecate('foo') => "The use of 'foo' is deprecated"
|
|
68
|
+
#
|
|
69
|
+
# An options parameter can be specified to construct a more detailed deprecation message
|
|
70
|
+
#
|
|
71
|
+
# Options:
|
|
72
|
+
# when - version that this deprecated feature will be removed
|
|
73
|
+
# replacement - a replacement for what is being deprecated
|
|
74
|
+
# caller - who called the deprecated feature
|
|
75
|
+
#
|
|
76
|
+
# Example:
|
|
77
|
+
# Phoenix.deprecate('foo', :when => 'tomorrow', :replacement => 'bar') =>
|
|
78
|
+
# "The use of 'foo' is deprecated and will be removed at version 2.0. Please use 'bar' instead."
|
|
79
|
+
def deprecate(what, options = {})
|
|
80
|
+
# Build a warning.
|
|
81
|
+
warning = "\n-- DEPRECATION WARNING --\n"
|
|
82
|
+
warning << "The use of '#{what}' is deprecated"
|
|
83
|
+
warning << " and will be removed at version #{options[:when]}" if options[:when]
|
|
84
|
+
warning << "."
|
|
85
|
+
warning << "\nPlease use #{options[:replacement]} instead." if options[:replacement]
|
|
86
|
+
|
|
87
|
+
# See if we can trace where this happened
|
|
88
|
+
if options[:caller]
|
|
89
|
+
whos_calling = options[:caller].detect{|c| c =~ %r{#{Rails.root.to_s}}}.inspect.to_s.split(':in').first
|
|
90
|
+
warning << "\nCalled from: #{whos_calling}\n"
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
# Give stern talking to.
|
|
94
|
+
warn warning
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
# Returns a Pathname to the root of the Phoenix Engine project
|
|
98
|
+
def root
|
|
99
|
+
@root ||= Pathname.new(File.expand_path('../../../../', __FILE__))
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
# Returns an array of Pathnames pointing to the root directory of each extension that
|
|
103
|
+
# has been registered with Phoenix.
|
|
104
|
+
#
|
|
105
|
+
# Example:
|
|
106
|
+
# Phoenix.roots => [#<Pathname:/Users/lanvige/repos/phoenix/core>, #<Pathname:/Users/lanvige/repos/phoeni/setting>]
|
|
107
|
+
#
|
|
108
|
+
# An optional extension_name parameter can be specified to return just the Pathname for
|
|
109
|
+
# the specified extension. This can be represented in Constant, Symbol, or String form.
|
|
110
|
+
#
|
|
111
|
+
# Example:
|
|
112
|
+
# Phoenix.roots(Phoenix::Core) => #<Pathname:/Users/lanvige/repos/phoenix/core>
|
|
113
|
+
# Phoenix.roots(:'phoenix/core') => #<Pathname:/Users/lanvige/repos/phoenix/core>
|
|
114
|
+
# Phoenix.roots("phoenix/core") => #<Pathname:/Users/lanvige/repos/phoenix/core>
|
|
115
|
+
def roots(extension_name = nil)
|
|
116
|
+
return @roots ||= self.extensions.map { |extension| extension.root } if extension_name.nil?
|
|
117
|
+
|
|
118
|
+
extension_name.to_s.camelize.constantize.root
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
def version
|
|
122
|
+
Phoenix::Version.to_s
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
private
|
|
126
|
+
def validate_extension!(const)
|
|
127
|
+
unless const.respond_to?(:root) && const.root.is_a?(Pathname)
|
|
128
|
+
raise InvalidEngineError, "Extension must define a root accessor that returns a pathname to its root"
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
|
|
25
133
|
module Core
|
|
26
134
|
require 'phoenix/core/engine' if defined?(Rails)
|
|
27
135
|
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
module Phoenix
|
|
2
|
+
class Plugins < Array
|
|
3
|
+
|
|
4
|
+
def find_by_model(model)
|
|
5
|
+
model = model.constantize if model.is_a? String
|
|
6
|
+
detect { |plugin| plugin.activity.any? {|activity| activity.klass == model } }
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def find_by_name(name)
|
|
10
|
+
detect { |plugin| plugin.name == name }
|
|
11
|
+
end
|
|
12
|
+
alias :[] :find_by_name
|
|
13
|
+
|
|
14
|
+
def find_by_title(title)
|
|
15
|
+
detect { |plugin| plugin.title == title }
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def in_menu
|
|
19
|
+
self.class.new(reject(&:hide_from_menu))
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def names
|
|
23
|
+
map(&:name)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def pathnames
|
|
27
|
+
map(&:pathname).compact.uniq
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def titles
|
|
31
|
+
map(&:title)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
class << self
|
|
35
|
+
def active
|
|
36
|
+
@active_plugins ||= new
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def always_allowed
|
|
40
|
+
new registered.select(&:always_allow_access)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def registered
|
|
44
|
+
@registered_plugins ||= new
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def activate(name)
|
|
48
|
+
active << registered[name] if registered[name] && !active[name]
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def deactivate(name)
|
|
52
|
+
active.delete_if {|p| p.name == name}
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def set_active(names)
|
|
56
|
+
@active_plugins = new
|
|
57
|
+
|
|
58
|
+
names.each do |name|
|
|
59
|
+
activate(name)
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
end
|
|
65
|
+
end
|
data/lib/phoenix/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: phoenix_core
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.1.beta
|
|
5
5
|
prerelease: 6
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,11 +9,11 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date:
|
|
12
|
+
date: 2012-01-06 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: rails
|
|
16
|
-
requirement: &
|
|
16
|
+
requirement: &70361875446880 !ruby/object:Gem::Requirement
|
|
17
17
|
none: false
|
|
18
18
|
requirements:
|
|
19
19
|
- - ~>
|
|
@@ -21,10 +21,10 @@ dependencies:
|
|
|
21
21
|
version: 3.1.3
|
|
22
22
|
type: :runtime
|
|
23
23
|
prerelease: false
|
|
24
|
-
version_requirements: *
|
|
24
|
+
version_requirements: *70361875446880
|
|
25
25
|
- !ruby/object:Gem::Dependency
|
|
26
26
|
name: jquery-rails
|
|
27
|
-
requirement: &
|
|
27
|
+
requirement: &70361875436740 !ruby/object:Gem::Requirement
|
|
28
28
|
none: false
|
|
29
29
|
requirements:
|
|
30
30
|
- - ! '>='
|
|
@@ -32,10 +32,10 @@ dependencies:
|
|
|
32
32
|
version: '0'
|
|
33
33
|
type: :runtime
|
|
34
34
|
prerelease: false
|
|
35
|
-
version_requirements: *
|
|
35
|
+
version_requirements: *70361875436740
|
|
36
36
|
- !ruby/object:Gem::Dependency
|
|
37
37
|
name: haml
|
|
38
|
-
requirement: &
|
|
38
|
+
requirement: &70361875435560 !ruby/object:Gem::Requirement
|
|
39
39
|
none: false
|
|
40
40
|
requirements:
|
|
41
41
|
- - ! '>='
|
|
@@ -43,32 +43,10 @@ dependencies:
|
|
|
43
43
|
version: '0'
|
|
44
44
|
type: :runtime
|
|
45
45
|
prerelease: false
|
|
46
|
-
version_requirements: *
|
|
46
|
+
version_requirements: *70361875435560
|
|
47
47
|
- !ruby/object:Gem::Dependency
|
|
48
48
|
name: sass-rails
|
|
49
|
-
requirement: &
|
|
50
|
-
none: false
|
|
51
|
-
requirements:
|
|
52
|
-
- - ~>
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
54
|
-
version: 3.1.5
|
|
55
|
-
type: :runtime
|
|
56
|
-
prerelease: false
|
|
57
|
-
version_requirements: *70221203780940
|
|
58
|
-
- !ruby/object:Gem::Dependency
|
|
59
|
-
name: mongoid
|
|
60
|
-
requirement: &70221203780340 !ruby/object:Gem::Requirement
|
|
61
|
-
none: false
|
|
62
|
-
requirements:
|
|
63
|
-
- - ! '>='
|
|
64
|
-
- !ruby/object:Gem::Version
|
|
65
|
-
version: '0'
|
|
66
|
-
type: :runtime
|
|
67
|
-
prerelease: false
|
|
68
|
-
version_requirements: *70221203780340
|
|
69
|
-
- !ruby/object:Gem::Dependency
|
|
70
|
-
name: mongoid_slug
|
|
71
|
-
requirement: &70221203795940 !ruby/object:Gem::Requirement
|
|
49
|
+
requirement: &70361875428880 !ruby/object:Gem::Requirement
|
|
72
50
|
none: false
|
|
73
51
|
requirements:
|
|
74
52
|
- - ! '>='
|
|
@@ -76,10 +54,10 @@ dependencies:
|
|
|
76
54
|
version: '0'
|
|
77
55
|
type: :runtime
|
|
78
56
|
prerelease: false
|
|
79
|
-
version_requirements: *
|
|
57
|
+
version_requirements: *70361875428880
|
|
80
58
|
- !ruby/object:Gem::Dependency
|
|
81
59
|
name: state_machine
|
|
82
|
-
requirement: &
|
|
60
|
+
requirement: &70361875428400 !ruby/object:Gem::Requirement
|
|
83
61
|
none: false
|
|
84
62
|
requirements:
|
|
85
63
|
- - ! '>='
|
|
@@ -87,10 +65,10 @@ dependencies:
|
|
|
87
65
|
version: '0'
|
|
88
66
|
type: :runtime
|
|
89
67
|
prerelease: false
|
|
90
|
-
version_requirements: *
|
|
68
|
+
version_requirements: *70361875428400
|
|
91
69
|
- !ruby/object:Gem::Dependency
|
|
92
70
|
name: simple_form
|
|
93
|
-
requirement: &
|
|
71
|
+
requirement: &70361875427840 !ruby/object:Gem::Requirement
|
|
94
72
|
none: false
|
|
95
73
|
requirements:
|
|
96
74
|
- - ! '>='
|
|
@@ -98,32 +76,10 @@ dependencies:
|
|
|
98
76
|
version: '0'
|
|
99
77
|
type: :runtime
|
|
100
78
|
prerelease: false
|
|
101
|
-
version_requirements: *
|
|
79
|
+
version_requirements: *70361875427840
|
|
102
80
|
- !ruby/object:Gem::Dependency
|
|
103
81
|
name: stringex
|
|
104
|
-
requirement: &
|
|
105
|
-
none: false
|
|
106
|
-
requirements:
|
|
107
|
-
- - ! '>='
|
|
108
|
-
- !ruby/object:Gem::Version
|
|
109
|
-
version: '0'
|
|
110
|
-
type: :runtime
|
|
111
|
-
prerelease: false
|
|
112
|
-
version_requirements: *70221203794000
|
|
113
|
-
- !ruby/object:Gem::Dependency
|
|
114
|
-
name: faker
|
|
115
|
-
requirement: &70221203793080 !ruby/object:Gem::Requirement
|
|
116
|
-
none: false
|
|
117
|
-
requirements:
|
|
118
|
-
- - ! '>='
|
|
119
|
-
- !ruby/object:Gem::Version
|
|
120
|
-
version: '0'
|
|
121
|
-
type: :runtime
|
|
122
|
-
prerelease: false
|
|
123
|
-
version_requirements: *70221203793080
|
|
124
|
-
- !ruby/object:Gem::Dependency
|
|
125
|
-
name: deface
|
|
126
|
-
requirement: &70221203792400 !ruby/object:Gem::Requirement
|
|
82
|
+
requirement: &70361875426740 !ruby/object:Gem::Requirement
|
|
127
83
|
none: false
|
|
128
84
|
requirements:
|
|
129
85
|
- - ! '>='
|
|
@@ -131,10 +87,10 @@ dependencies:
|
|
|
131
87
|
version: '0'
|
|
132
88
|
type: :runtime
|
|
133
89
|
prerelease: false
|
|
134
|
-
version_requirements: *
|
|
90
|
+
version_requirements: *70361875426740
|
|
135
91
|
- !ruby/object:Gem::Dependency
|
|
136
92
|
name: haml-rails
|
|
137
|
-
requirement: &
|
|
93
|
+
requirement: &70361875426120 !ruby/object:Gem::Requirement
|
|
138
94
|
none: false
|
|
139
95
|
requirements:
|
|
140
96
|
- - ! '>='
|
|
@@ -142,7 +98,7 @@ dependencies:
|
|
|
142
98
|
version: '0'
|
|
143
99
|
type: :development
|
|
144
100
|
prerelease: false
|
|
145
|
-
version_requirements: *
|
|
101
|
+
version_requirements: *70361875426120
|
|
146
102
|
description: Its used for build core structure, dont contain biz.
|
|
147
103
|
email: lanvige@gmail.com
|
|
148
104
|
executables: []
|
|
@@ -154,15 +110,18 @@ files:
|
|
|
154
110
|
- app/assets/javascripts/application.js
|
|
155
111
|
- app/assets/stylesheets/application.css
|
|
156
112
|
- app/assets/stylesheets/bootstrap.css
|
|
157
|
-
- app/assets/stylesheets/
|
|
158
|
-
- app/assets/stylesheets/landing.css
|
|
113
|
+
- app/assets/stylesheets/phoenix.css
|
|
159
114
|
- app/controllers/phoenix/base_controller.rb
|
|
160
115
|
- app/controllers/phoenix/home_controller.rb
|
|
161
116
|
- app/helpers/phoenix/base_helper.rb
|
|
162
117
|
- app/mailers/phoenix/base_mailer.rb
|
|
163
118
|
- app/models/phoenix/user.rb
|
|
164
119
|
- app/views/phoenix/home/index.html.haml
|
|
165
|
-
- app/views/phoenix/layouts/
|
|
120
|
+
- app/views/phoenix/layouts/application.html.erb
|
|
121
|
+
- app/views/phoenix/layouts/site.html.erb
|
|
122
|
+
- app/views/phoenix/shared/_footer.html.erb
|
|
123
|
+
- app/views/phoenix/shared/_head.html.erb
|
|
124
|
+
- app/views/phoenix/shared/_header.html.erb
|
|
166
125
|
- config/initializers/phoenix.rb
|
|
167
126
|
- config/initializers/setup_mail.rb
|
|
168
127
|
- config/initializers/simple_form.rb
|
|
@@ -217,8 +176,10 @@ files:
|
|
|
217
176
|
- lib/phoenix/core/ssl_requirement.rb
|
|
218
177
|
- lib/phoenix/core/testing_support/common_rake.rb
|
|
219
178
|
- lib/phoenix/core/testing_support/env.rb
|
|
179
|
+
- lib/phoenix/core/url_helpers.rb
|
|
220
180
|
- lib/phoenix/core.rb
|
|
221
181
|
- lib/phoenix/engine.rb
|
|
182
|
+
- lib/phoenix/plugins.rb
|
|
222
183
|
- lib/phoenix/version.rb
|
|
223
184
|
- lib/phoenix_core.rb
|
|
224
185
|
- lib/tasks/assets.rake
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/* global.css */
|
|
2
|
-
body {
|
|
3
|
-
background:#fff url(/assets/noise.png);
|
|
4
|
-
}
|
|
5
|
-
header {
|
|
6
|
-
background: #333;
|
|
7
|
-
height: 60px;
|
|
8
|
-
}
|
|
9
|
-
#body {
|
|
10
|
-
width: 980px;
|
|
11
|
-
margin: 0 auto;
|
|
12
|
-
}
|
|
13
|
-
footer {
|
|
14
|
-
border-top: 1px solid #ccc;
|
|
15
|
-
margin: 0 auto;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
#signup-form {
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
#signin-form {
|
|
23
|
-
padding: 30px 0;
|
|
24
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/* landing.css */
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html>
|
|
3
|
-
<head>
|
|
4
|
-
<title>PhoenixCore</title>
|
|
5
|
-
<%= stylesheet_link_tag "phoenix_core/application" %>
|
|
6
|
-
<%= javascript_include_tag "phoenix_core/application" %>
|
|
7
|
-
<%= csrf_meta_tags %>
|
|
8
|
-
</head>
|
|
9
|
-
<body>
|
|
10
|
-
|
|
11
|
-
<%= yield %>
|
|
12
|
-
|
|
13
|
-
</body>
|
|
14
|
-
</html>
|