caboose-cms 0.5.16 → 0.5.17
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/app/controllers/caboose/sites_controller.rb +49 -1
- data/app/models/caboose/schema.rb +18 -0
- data/app/models/caboose/site.rb +1 -0
- data/app/models/caboose/smtp_config.rb +0 -1
- data/app/models/caboose/store_config.rb +22 -0
- data/app/views/caboose/sites/_admin_footer.html.erb +2 -0
- data/app/views/caboose/sites/_admin_header.html.erb +40 -0
- data/app/views/caboose/sites/admin_delete_form.html.erb +39 -0
- data/app/views/caboose/sites/admin_edit.html.erb +3 -78
- data/app/views/caboose/sites/admin_edit_block_types.html.erb +45 -0
- data/app/views/caboose/sites/admin_edit_smtp_config.html.erb +51 -0
- data/app/views/caboose/sites/admin_edit_store_config.html.erb +66 -0
- data/config/routes.rb +13 -7
- data/lib/caboose/version.rb +1 -1
- metadata +8 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZDg5OWEzYmQ5M2NkNTRiMjhlMjc5ODBmNDE3OGViYjBiYjk4NTc3NA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MDdiNDRjZTUyZWNkMmU4MzU4MGNhMzVlNTdmMjM0YWI0ZjA2ZWE3Mg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZDhiNGNlY2M3YjdhOTU3NTlhMzUwZTZlMmQ1Mzg2Y2VjZTliZDdmZDUzZTFi
|
10
|
+
ZGUyYTllZjRjMDgzMzRlOTUyYTQyMjMzZmM1YWUzMzViMTJjNjE4ODcxZmNh
|
11
|
+
ZjNlNzgwN2ZiYjY3OTYxYTAyMWI0OTQ2NTYyNDZjM2RmZTY1YmY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
N2UyYTAwOTFjZDYyMjA0NmY1NzMwYTY5ZTBjYTNjODIyMDFhOGE3MGU1YmY5
|
14
|
+
OWI5NDI0Njk0ZTg3ZjI5MDEyOTQ3OGJkNjk4MDkwZjg5OWQ3ZTU4YzIxYTgw
|
15
|
+
YzQxNTQ5Y2Q4MWZiZGI1OGUwNjYwNzY0NGU3ZWJiNWJjZDQ0ZjY=
|
@@ -32,8 +32,34 @@ module Caboose
|
|
32
32
|
|
33
33
|
# GET /admin/sites/1/edit
|
34
34
|
def admin_edit
|
35
|
+
return if !user_is_allowed('sites', 'edit')
|
36
|
+
@site = Site.find(params[:id])
|
37
|
+
end
|
38
|
+
|
39
|
+
# GET /admin/sites/1/edit/store
|
40
|
+
def admin_edit_store_config
|
35
41
|
return if !user_is_allowed('sites', 'edit')
|
36
42
|
@site = Site.find(params[:id])
|
43
|
+
StoreConfig.create(:site_id => @site.id) if @site.store_config.nil?
|
44
|
+
end
|
45
|
+
|
46
|
+
# GET /admin/sites/1/edit/smtp
|
47
|
+
def admin_edit_smtp_config
|
48
|
+
return if !user_is_allowed('sites', 'edit')
|
49
|
+
@site = Site.find(params[:id])
|
50
|
+
SmtpConfig.create(:site_id => @site.id) if @site.smtp_config.nil?
|
51
|
+
end
|
52
|
+
|
53
|
+
# GET /admin/sites/1/edit/block-types
|
54
|
+
def admin_edit_block_types
|
55
|
+
return if !user_is_allowed('sites', 'edit')
|
56
|
+
@site = Site.find(params[:id])
|
57
|
+
end
|
58
|
+
|
59
|
+
# GET /admin/sites/1/edit/delete
|
60
|
+
def admin_delete_form
|
61
|
+
return if !user_is_allowed('sites', 'edit')
|
62
|
+
@site = Site.find(params[:id])
|
37
63
|
end
|
38
64
|
|
39
65
|
# POST /admin/sites
|
@@ -46,8 +72,10 @@ module Caboose
|
|
46
72
|
|
47
73
|
if site.name.length == 0
|
48
74
|
resp.error = "Please enter a valid domain."
|
49
|
-
else
|
75
|
+
else
|
50
76
|
site.save
|
77
|
+
StoreConfig.create(:site_id => site.id)
|
78
|
+
SmtpConfig.create( :site_id => site.id)
|
51
79
|
resp.redirect = "/admin/sites/#{site.id}"
|
52
80
|
end
|
53
81
|
|
@@ -153,5 +181,25 @@ module Caboose
|
|
153
181
|
render :json => options
|
154
182
|
end
|
155
183
|
|
184
|
+
# GET /admin/sites/payment-processor-options
|
185
|
+
def payment_processor_options
|
186
|
+
return if !user_is_allowed('sites', 'view')
|
187
|
+
options = [
|
188
|
+
{ 'value' => 'stripe', 'text' => 'Stripe' }
|
189
|
+
]
|
190
|
+
render :json => options
|
191
|
+
end
|
192
|
+
|
193
|
+
# GET /admin/sites/smtp-auth-options
|
194
|
+
def smtp_auth_options
|
195
|
+
return if !user_is_allowed('sites', 'view')
|
196
|
+
options = [
|
197
|
+
{ 'value' => SmtpConfig::AUTH_PLAIN , 'text' => SmtpConfig::AUTH_PLAIN },
|
198
|
+
{ 'value' => SmtpConfig::AUTH_LOGIN , 'text' => SmtpConfig::AUTH_LOGIN },
|
199
|
+
{ 'value' => SmtpConfig::AUTH_MD5 , 'text' => SmtpConfig::AUTH_MD5 }
|
200
|
+
]
|
201
|
+
render :json => options
|
202
|
+
end
|
203
|
+
|
156
204
|
end
|
157
205
|
end
|
@@ -495,6 +495,24 @@ class Caboose::Schema < Caboose::Utilities::Schema
|
|
495
495
|
[ :max_width , :decimal ],
|
496
496
|
[ :max_height , :decimal ]
|
497
497
|
],
|
498
|
+
Caboose::StoreConfig => [
|
499
|
+
[ :site_id , :integer ],
|
500
|
+
[ :pp_name , :string ],
|
501
|
+
[ :pp_username , :string ],
|
502
|
+
[ :pp_password , :string ],
|
503
|
+
[ :use_usps , :boolean , { :default => false } ],
|
504
|
+
[ :usps_secret_key , :string ],
|
505
|
+
[ :usps_publishable_key , :string ],
|
506
|
+
[ :allowed_shipping_codes , :string ],
|
507
|
+
[ :default_shipping_code , :string ],
|
508
|
+
[ :origin_country , :string ],
|
509
|
+
[ :origin_state , :string ],
|
510
|
+
[ :origin_city , :string ],
|
511
|
+
[ :origin_zip , :string ],
|
512
|
+
[ :fulfillment_email , :string ],
|
513
|
+
[ :shipping_email , :string ],
|
514
|
+
[ :handling_percentage , :string ]
|
515
|
+
],
|
498
516
|
Caboose::User => [
|
499
517
|
[ :first_name , :string ],
|
500
518
|
[ :last_name , :string ],
|
data/app/models/caboose/site.rb
CHANGED
@@ -7,6 +7,7 @@ class Caboose::Site < ActiveRecord::Base
|
|
7
7
|
has_many :site_memberships, :class_name => 'Caboose::SiteMembership', :dependent => :delete_all
|
8
8
|
has_many :domains, :class_name => 'Caboose::Domain', :dependent => :delete_all
|
9
9
|
has_many :post_categories, :class_name => 'Caboose::PostCategory'
|
10
|
+
has_one :store_config
|
10
11
|
attr_accessible :id, :name, :description, :under_construction_html
|
11
12
|
|
12
13
|
def smtp_config
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Caboose
|
2
|
+
class StoreConfig < ActiveRecord::Base
|
3
|
+
belongs_to :site
|
4
|
+
attr_accessible :id,
|
5
|
+
:site_id,
|
6
|
+
:pp_name,
|
7
|
+
:pp_username,
|
8
|
+
:pp_password,
|
9
|
+
:use_usps,
|
10
|
+
:usps_secret_key,
|
11
|
+
:usps_publishable_key,
|
12
|
+
:allowed_shipping_codes, # ['0','7','6','1','2','3'],
|
13
|
+
:default_shipping_code,
|
14
|
+
:origin_country,
|
15
|
+
:origin_state,
|
16
|
+
:origin_city,
|
17
|
+
:origin_zip,
|
18
|
+
:fulfillment_email,
|
19
|
+
:shipping_email,
|
20
|
+
:handling_percentage
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
|
2
|
+
<% content_for :caboose_css do %>
|
3
|
+
<style type='text/css'>
|
4
|
+
#gravatar {
|
5
|
+
float: right;
|
6
|
+
width: 150px;
|
7
|
+
text-align: right;
|
8
|
+
margin: 0 4px 0 0;
|
9
|
+
padding: 0;
|
10
|
+
}
|
11
|
+
#gravatar img {
|
12
|
+
border: #fff 2px solid;
|
13
|
+
}
|
14
|
+
#content input[type=checkbox] { position: relative; }
|
15
|
+
#members { height: 200px; overflow-y: scroll; margin-bottom: 20px; }
|
16
|
+
</style>
|
17
|
+
<% end %>
|
18
|
+
|
19
|
+
<% content_for :caboose_js do %>
|
20
|
+
<%= javascript_include_tag "caboose/model/all" %>
|
21
|
+
<% end %>
|
22
|
+
|
23
|
+
<h1 id='page_title'>Edit Site</h1>
|
24
|
+
<ul id='tabs'>
|
25
|
+
<%
|
26
|
+
tabs = {
|
27
|
+
'General' => "/admin/sites/#{@site.id}",
|
28
|
+
'Block Types' => "/admin/sites/#{@site.id}/block-types",
|
29
|
+
'Store Config' => "/admin/sites/#{@site.id}/store",
|
30
|
+
'SMTP Config' => "/admin/sites/#{@site.id}/smtp",
|
31
|
+
'Delete Site' => "/admin/sites/#{@site.id}/delete"
|
32
|
+
}
|
33
|
+
|
34
|
+
%>
|
35
|
+
<% tabs.each do |text, href| %>
|
36
|
+
<li<%= raw request.fullpath == href ? " class='selected'" : '' %>><a href='<%= href %>'><%= raw text %></a></li>
|
37
|
+
<% end %>
|
38
|
+
<li class='back'><input type='button' value='< Back' onclick="window.location='/admin/sites';" /></li>
|
39
|
+
</ul>
|
40
|
+
<div id='content2'>
|
@@ -0,0 +1,39 @@
|
|
1
|
+
<%
|
2
|
+
s = @site
|
3
|
+
%>
|
4
|
+
<%= render :partial => 'caboose/sites/admin_header' %>
|
5
|
+
|
6
|
+
<div id='message'></div>
|
7
|
+
<div id='controls'>
|
8
|
+
<input type='button' value='Delete Site' onclick="delete_site(<%= @site.id %>);" />
|
9
|
+
</div>
|
10
|
+
|
11
|
+
<%= render :partial => 'caboose/sites/admin_footer' %>
|
12
|
+
|
13
|
+
<% content_for :caboose_js do %>
|
14
|
+
<script type="text/javascript">
|
15
|
+
|
16
|
+
function delete_site(site_id, confirm)
|
17
|
+
{
|
18
|
+
if (!confirm)
|
19
|
+
{
|
20
|
+
var p = $('<p/>').addClass('note confirm')
|
21
|
+
.append('Are you sure you want to delete the site? ')
|
22
|
+
.append($('<input/>').attr('type','button').val('Yes').click(function() { delete_site(site_id, true); })).append(' ')
|
23
|
+
.append($('<input/>').attr('type','button').val('No').click(function() { $('#message').empty(); }));
|
24
|
+
$('#message').empty().append(p);
|
25
|
+
return;
|
26
|
+
}
|
27
|
+
$('#message').html("<p class='loading'>Deleting site...</p>");
|
28
|
+
$.ajax({
|
29
|
+
url: '/admin/sites/' + site_id,
|
30
|
+
type: 'delete',
|
31
|
+
success: function(resp) {
|
32
|
+
if (resp.error) $('#message').html("<p class='note error'>" + resp.error + "</p>");
|
33
|
+
if (resp.redirect) window.location = resp.redirect;
|
34
|
+
}
|
35
|
+
});
|
36
|
+
}
|
37
|
+
|
38
|
+
</script>
|
39
|
+
<% end %>
|
@@ -5,7 +5,7 @@ user_ids = Caboose::SiteMembership.where(:site_id => s.id, :role => Caboose::Si
|
|
5
5
|
admin_ids = [] if admin_ids.nil?
|
6
6
|
user_ids = [] if user_ids.nil?
|
7
7
|
%>
|
8
|
-
|
8
|
+
<%= render :partial => 'caboose/sites/admin_header' %>
|
9
9
|
|
10
10
|
<p><div id='site_<%= @site.id %>_name' ></div></p>
|
11
11
|
<p><div id='site_<%= @site.id %>_description' ></div></p>
|
@@ -51,35 +51,9 @@ user_ids = [] if user_ids.nil?
|
|
51
51
|
</table>
|
52
52
|
</div>
|
53
53
|
|
54
|
-
|
55
|
-
<div id='block_types'>
|
56
|
-
<table class='data'>
|
57
|
-
<tr><th> </th><th>Name</th><th>Description</th></tr>
|
58
|
-
<% bt_ids = @site.block_type_site_memberships.collect{ |bt| bt.block_type_id } %>
|
59
|
-
<% Caboose::BlockType.where("parent_id is null").reorder('name').all.each do |bt| %>
|
60
|
-
<tr>
|
61
|
-
<td align='center'><input type='checkbox' name='block_type_id_<%= bt.id %>' <%= bt_ids.include?(bt.id) ? "checked='true'" : '' %> onclick="toggle_block_type_site_membership(<%= @site.id %>, <%= bt.id %>, $(this).prop('checked'));" /></td>
|
62
|
-
<td><%= bt.name %></td>
|
63
|
-
<td><%= bt.description %></td>
|
64
|
-
</tr>
|
65
|
-
<% end %>
|
66
|
-
</table><br/>
|
67
|
-
</div>
|
54
|
+
<%= render :partial => 'caboose/sites/admin_footer' %>
|
68
55
|
|
69
|
-
<div id='message'></div>
|
70
|
-
<div id='controls'>
|
71
|
-
<input type='button' value='Back' onclick="window.location='/admin/sites';" />
|
72
|
-
<input type='button' value='Delete Site' onclick="delete_site(<%= @site.id %>);" />
|
73
|
-
</div>
|
74
|
-
|
75
|
-
<% content_for :caboose_css do %>
|
76
|
-
<style type='text/css'>
|
77
|
-
#content input[type=checkbox] { position: relative; }
|
78
|
-
#members { height: 200px; overflow-y: scroll; margin-bottom: 20px; }
|
79
|
-
</style>
|
80
|
-
<% end %>
|
81
56
|
<% content_for :caboose_js do %>
|
82
|
-
<%= javascript_include_tag "caboose/model/all" %>
|
83
57
|
<script type="text/javascript">
|
84
58
|
|
85
59
|
$(document).ready(function() {
|
@@ -93,31 +67,9 @@ $(document).ready(function() {
|
|
93
67
|
{ name: 'description' , nice_name: 'Description' , type: 'textarea' , value: <%= raw Caboose.json(@site.description) %>, width: 600, height: 75 },
|
94
68
|
{ name: 'under_construction_html' , nice_name: 'Under Construction HTML' , type: 'textarea' , value: <%= raw Caboose.json(@site.under_construction_html) %>, width: 600, height: 75 }
|
95
69
|
]
|
96
|
-
});
|
70
|
+
});
|
97
71
|
});
|
98
72
|
|
99
|
-
function delete_site(site_id, confirm)
|
100
|
-
{
|
101
|
-
if (!confirm)
|
102
|
-
{
|
103
|
-
var p = $('<p/>').addClass('note confirm')
|
104
|
-
.append('Are you sure you want to delete the site? ')
|
105
|
-
.append($('<input/>').attr('type','button').val('Yes').click(function() { delete_site(site_id, true); })).append(' ')
|
106
|
-
.append($('<input/>').attr('type','button').val('No').click(function() { $('#message').empty(); }));
|
107
|
-
$('#message').empty().append(p);
|
108
|
-
return;
|
109
|
-
}
|
110
|
-
$('#message').html("<p class='loading'>Deleting site...</p>");
|
111
|
-
$.ajax({
|
112
|
-
url: '/admin/sites/' + site_id,
|
113
|
-
type: 'delete',
|
114
|
-
success: function(resp) {
|
115
|
-
if (resp.error) $('#message').html("<p class='note error'>" + resp.error + "</p>");
|
116
|
-
if (resp.redirect) window.location = resp.redirect;
|
117
|
-
}
|
118
|
-
});
|
119
|
-
}
|
120
|
-
|
121
73
|
function set_under_construction(site_id, domain_id, checked)
|
122
74
|
{
|
123
75
|
$.ajax({
|
@@ -149,18 +101,6 @@ function remove_site_membership(site_id, user_id)
|
|
149
101
|
});
|
150
102
|
}
|
151
103
|
|
152
|
-
function toggle_block_type_site_membership(site_id, block_type_id, checked)
|
153
|
-
{
|
154
|
-
$.ajax({
|
155
|
-
url: '/admin/block-types/' + block_type_id,
|
156
|
-
type: 'put',
|
157
|
-
data: {
|
158
|
-
site_id: [site_id, checked ? 1 : 0]
|
159
|
-
},
|
160
|
-
succes: function(resp) {}
|
161
|
-
});
|
162
|
-
}
|
163
|
-
|
164
104
|
function add_domain(site_id, domain)
|
165
105
|
{
|
166
106
|
if (!domain)
|
@@ -222,18 +162,3 @@ function set_primary_domain(site_id, domain_id)
|
|
222
162
|
|
223
163
|
</script>
|
224
164
|
<% end %>
|
225
|
-
|
226
|
-
<% content_for :caboose_css do %>
|
227
|
-
<style type='text/css'>
|
228
|
-
#gravatar {
|
229
|
-
float: right;
|
230
|
-
width: 150px;
|
231
|
-
text-align: right;
|
232
|
-
margin: 0 4px 0 0;
|
233
|
-
padding: 0;
|
234
|
-
}
|
235
|
-
#gravatar img {
|
236
|
-
border: #fff 2px solid;
|
237
|
-
}
|
238
|
-
</style>
|
239
|
-
<% end %>
|
@@ -0,0 +1,45 @@
|
|
1
|
+
<%
|
2
|
+
s = @site
|
3
|
+
%>
|
4
|
+
<%= render :partial => 'caboose/sites/admin_header' %>
|
5
|
+
|
6
|
+
<h2>Block Types</h2>
|
7
|
+
<div id='block_types'>
|
8
|
+
<table class='data'>
|
9
|
+
<tr><th> </th><th>Name</th><th>Description</th></tr>
|
10
|
+
<% bt_ids = @site.block_type_site_memberships.collect{ |bt| bt.block_type_id } %>
|
11
|
+
<% Caboose::BlockType.where("parent_id is null").reorder('name').all.each do |bt| %>
|
12
|
+
<tr>
|
13
|
+
<td align='center'><input type='checkbox' name='block_type_id_<%= bt.id %>' <%= bt_ids.include?(bt.id) ? "checked='true'" : '' %> onclick="toggle_block_type_site_membership(<%= @site.id %>, <%= bt.id %>, $(this).prop('checked'));" /></td>
|
14
|
+
<td><%= bt.name %></td>
|
15
|
+
<td><%= bt.description %></td>
|
16
|
+
</tr>
|
17
|
+
<% end %>
|
18
|
+
</table><br/>
|
19
|
+
</div>
|
20
|
+
|
21
|
+
<div id='message'></div>
|
22
|
+
|
23
|
+
<%= render :partial => 'caboose/sites/admin_footer' %>
|
24
|
+
|
25
|
+
<% content_for :caboose_js do %>
|
26
|
+
<script type="text/javascript">
|
27
|
+
|
28
|
+
$(document).ready(function() {
|
29
|
+
|
30
|
+
});
|
31
|
+
|
32
|
+
function toggle_block_type_site_membership(site_id, block_type_id, checked)
|
33
|
+
{
|
34
|
+
$.ajax({
|
35
|
+
url: '/admin/block-types/' + block_type_id,
|
36
|
+
type: 'put',
|
37
|
+
data: {
|
38
|
+
site_id: [site_id, checked ? 1 : 0]
|
39
|
+
},
|
40
|
+
succes: function(resp) {}
|
41
|
+
});
|
42
|
+
}
|
43
|
+
|
44
|
+
</script>
|
45
|
+
<% end %>
|
@@ -0,0 +1,51 @@
|
|
1
|
+
<%
|
2
|
+
s = @site
|
3
|
+
smtp_config = s.smtp_config
|
4
|
+
%>
|
5
|
+
<%= render :partial => 'caboose/sites/admin_header' %>
|
6
|
+
|
7
|
+
<h2>SMTP Config</h2>
|
8
|
+
<p><div id='smtpconfig_<%= smtp_config.id %>_address' ></div></p>
|
9
|
+
<p><div id='smtpconfig_<%= smtp_config.id %>_port' ></div></p>
|
10
|
+
<p><div id='smtpconfig_<%= smtp_config.id %>_domain' ></div></p>
|
11
|
+
<p><div id='smtpconfig_<%= smtp_config.id %>_user_name' ></div></p>
|
12
|
+
<p><div id='smtpconfig_<%= smtp_config.id %>_password' ></div></p>
|
13
|
+
<p><div id='smtpconfig_<%= smtp_config.id %>_authentication' ></div></p>
|
14
|
+
<p><div id='smtpconfig_<%= smtp_config.id %>_enable_starttls_auto' ></div></p>
|
15
|
+
|
16
|
+
<div id='message'></div>
|
17
|
+
|
18
|
+
<%= render :partial => 'caboose/sites/admin_footer' %>
|
19
|
+
|
20
|
+
<% content_for :caboose_css do %>
|
21
|
+
<style type='text/css'>
|
22
|
+
#content input[type=checkbox] { position: relative; }
|
23
|
+
#members { height: 200px; overflow-y: scroll; margin-bottom: 20px; }
|
24
|
+
</style>
|
25
|
+
<% end %>
|
26
|
+
<% content_for :caboose_js do %>
|
27
|
+
<%= javascript_include_tag "caboose/model/all" %>
|
28
|
+
<script type="text/javascript">
|
29
|
+
|
30
|
+
$(document).ready(function() {
|
31
|
+
|
32
|
+
new ModelBinder({
|
33
|
+
name: 'SmtpConfig',
|
34
|
+
id: <%= smtp_config.id %>,
|
35
|
+
update_url: '/admin/sites/<%= @site.id %>/smtp',
|
36
|
+
authenticity_token: '<%= form_authenticity_token %>',
|
37
|
+
attributes: [
|
38
|
+
{ name: 'address' , nice_name: 'Address' , type: 'text' , value: <%= raw Caboose.json(smtp_config.address ) %>, width: 400 },
|
39
|
+
{ name: 'port' , nice_name: 'Port' , type: 'text' , value: <%= raw Caboose.json(smtp_config.port ) %>, width: 400 },
|
40
|
+
{ name: 'domain' , nice_name: 'Domain' , type: 'text' , value: <%= raw Caboose.json(smtp_config.domain ) %>, width: 400 },
|
41
|
+
{ name: 'user_name' , nice_name: 'Username' , type: 'text' , value: <%= raw Caboose.json(smtp_config.user_name ) %>, width: 400 },
|
42
|
+
{ name: 'password' , nice_name: 'Password' , type: 'text' , value: <%= raw Caboose.json(smtp_config.password ) %>, width: 400 },
|
43
|
+
{ name: 'authentication' , nice_name: 'Authentication' , type: 'select' , value: <%= raw Caboose.json(smtp_config.authentication ) %>, width: 400 , options_url: '/admin/sites/smtp-auth-options' },
|
44
|
+
{ name: 'enable_starttls_auto' , nice_name: 'Enable Start TLS Auto' , type: 'checkbox' , value: <%= raw smtp_config.enable_starttls_auto ? 1 : 0 %>, width: 400 }
|
45
|
+
]
|
46
|
+
});
|
47
|
+
|
48
|
+
});
|
49
|
+
|
50
|
+
</script>
|
51
|
+
<% end %>
|
@@ -0,0 +1,66 @@
|
|
1
|
+
<%
|
2
|
+
s = @site
|
3
|
+
store_config = s.store_config
|
4
|
+
%>
|
5
|
+
<%= render :partial => 'caboose/sites/admin_header' %>
|
6
|
+
|
7
|
+
<p><div id='storeconfig_<%= store_config.id %>_pp_name' ></div></p>
|
8
|
+
<p><div id='storeconfig_<%= store_config.id %>_pp_username' ></div></p>
|
9
|
+
<p><div id='storeconfig_<%= store_config.id %>_pp_password' ></div></p>
|
10
|
+
<p><div id='storeconfig_<%= store_config.id %>_use_usps' ></div></p>
|
11
|
+
<p><div id='storeconfig_<%= store_config.id %>_usps_secret_key' ></div></p>
|
12
|
+
<p><div id='storeconfig_<%= store_config.id %>_usps_publishable_key' ></div></p>
|
13
|
+
<p><div id='storeconfig_<%= store_config.id %>_allowed_shipping_codes' ></div></p>
|
14
|
+
<p><div id='storeconfig_<%= store_config.id %>_default_shipping_code' ></div></p>
|
15
|
+
<p><div id='storeconfig_<%= store_config.id %>_origin_country' ></div></p>
|
16
|
+
<p><div id='storeconfig_<%= store_config.id %>_origin_state' ></div></p>
|
17
|
+
<p><div id='storeconfig_<%= store_config.id %>_origin_city' ></div></p>
|
18
|
+
<p><div id='storeconfig_<%= store_config.id %>_origin_zip' ></div></p>
|
19
|
+
<p><div id='storeconfig_<%= store_config.id %>_fulfillment_email' ></div></p>
|
20
|
+
<p><div id='storeconfig_<%= store_config.id %>_shipping_email' ></div></p>
|
21
|
+
<p><div id='storeconfig_<%= store_config.id %>_handling_percentage' ></div></p>
|
22
|
+
|
23
|
+
<div id='message'></div>
|
24
|
+
|
25
|
+
<%= render :partial => 'caboose/sites/admin_footer' %>
|
26
|
+
|
27
|
+
<% content_for :caboose_css do %>
|
28
|
+
<style type='text/css'>
|
29
|
+
#content input[type=checkbox] { position: relative; }
|
30
|
+
#members { height: 200px; overflow-y: scroll; margin-bottom: 20px; }
|
31
|
+
</style>
|
32
|
+
<% end %>
|
33
|
+
<% content_for :caboose_js do %>
|
34
|
+
<%= javascript_include_tag "caboose/model/all" %>
|
35
|
+
<script type="text/javascript">
|
36
|
+
|
37
|
+
$(document).ready(function() {
|
38
|
+
|
39
|
+
new ModelBinder({
|
40
|
+
name: 'StoreConfig',
|
41
|
+
id: <%= store_config.id %>,
|
42
|
+
update_url: '/admin/sites/<%= @site.id %>/store',
|
43
|
+
authenticity_token: '<%= form_authenticity_token %>',
|
44
|
+
attributes: [
|
45
|
+
{ name: 'pp_name' , nice_name: 'Payment Processor Type' , type: 'select' , value: <%= raw Caboose.json(store_config.pp_name ) %>, width: 400 , options_url: '/admin/sites/payment-processor-options' },
|
46
|
+
{ name: 'pp_username' , nice_name: 'Payment Processor Username' , type: 'text' , value: <%= raw Caboose.json(store_config.pp_username ) %>, width: 400 },
|
47
|
+
{ name: 'pp_password' , nice_name: 'Payment Processor Password' , type: 'text' , value: <%= raw Caboose.json(store_config.pp_password ) %>, width: 400 },
|
48
|
+
{ name: 'use_usps' , nice_name: 'Use USPS' , type: 'checkbox' , value: <%= raw Caboose.json(store_config.use_usps ? 1 : 0 ) %>, width: 400 },
|
49
|
+
{ name: 'usps_secret_key' , nice_name: 'USPS Secret Key' , type: 'text' , value: <%= raw Caboose.json(store_config.usps_secret_key ) %>, width: 400 },
|
50
|
+
{ name: 'usps_publishable_key' , nice_name: 'USPS Publishable Key' , type: 'text' , value: <%= raw Caboose.json(store_config.usps_publishable_key ) %>, width: 400 },
|
51
|
+
{ name: 'allowed_shipping_codes' , nice_name: 'Allowed Shipping Codes' , type: 'text' , value: <%= raw Caboose.json(store_config.allowed_shipping_codes ) %>, width: 400 },
|
52
|
+
{ name: 'default_shipping_code' , nice_name: 'Default Shipping Code' , type: 'text' , value: <%= raw Caboose.json(store_config.default_shipping_code ) %>, width: 400 },
|
53
|
+
{ name: 'origin_country' , nice_name: 'Origin Country' , type: 'text' , value: <%= raw Caboose.json(store_config.origin_country ) %>, width: 400 },
|
54
|
+
{ name: 'origin_state' , nice_name: 'Origin State' , type: 'text' , value: <%= raw Caboose.json(store_config.origin_state ) %>, width: 400 },
|
55
|
+
{ name: 'origin_city' , nice_name: 'Origin City' , type: 'text' , value: <%= raw Caboose.json(store_config.origin_city ) %>, width: 400 },
|
56
|
+
{ name: 'origin_zip' , nice_name: 'Origin Zip' , type: 'text' , value: <%= raw Caboose.json(store_config.origin_zip ) %>, width: 400 },
|
57
|
+
{ name: 'fulfillment_email' , nice_name: 'Fulfillment Email' , type: 'text' , value: <%= raw Caboose.json(store_config.fulfillment_email ) %>, width: 400 },
|
58
|
+
{ name: 'shipping_email' , nice_name: 'Shipping Email' , type: 'text' , value: <%= raw Caboose.json(store_config.shipping_email ) %>, width: 400 },
|
59
|
+
{ name: 'handling_percentage' , nice_name: 'Handling Percentage' , type: 'text' , value: <%= raw Caboose.json(store_config.handling_percentage ) %>, width: 400 }
|
60
|
+
]
|
61
|
+
});
|
62
|
+
|
63
|
+
});
|
64
|
+
|
65
|
+
</script>
|
66
|
+
<% end %>
|
data/config/routes.rb
CHANGED
@@ -28,13 +28,19 @@ Caboose::Engine.routes.draw do
|
|
28
28
|
put "admin/sites/:site_id/domains/:id" => "domains#admin_update"
|
29
29
|
delete "admin/sites/:site_id/domains/:id" => "domains#admin_delete"
|
30
30
|
|
31
|
-
get "admin/sites/options"
|
32
|
-
get "admin/sites"
|
33
|
-
get "admin/sites/
|
34
|
-
get "admin/sites
|
35
|
-
|
36
|
-
|
37
|
-
|
31
|
+
get "admin/sites/options" => "sites#options"
|
32
|
+
get "admin/sites/payment-processor-options" => "sites#payment_processor_options"
|
33
|
+
get "admin/sites/smtp-auth-options" => "sites#smtp_auth_options"
|
34
|
+
get "admin/sites" => "sites#admin_index"
|
35
|
+
get "admin/sites/new" => "sites#admin_new"
|
36
|
+
get "admin/sites/:id/store" => "sites#admin_edit_store_config"
|
37
|
+
get "admin/sites/:id/smtp" => "sites#admin_edit_smtp_config"
|
38
|
+
get "admin/sites/:id/block-types" => "sites#admin_edit_block_types"
|
39
|
+
get "admin/sites/:id/delete" => "sites#admin_delete_form"
|
40
|
+
get "admin/sites/:id" => "sites#admin_edit"
|
41
|
+
put "admin/sites/:id" => "sites#admin_update"
|
42
|
+
post "admin/sites" => "sites#admin_add"
|
43
|
+
delete "admin/sites/:id" => "sites#admin_delete"
|
38
44
|
|
39
45
|
get "admin/redirects" => "redirects#admin_index"
|
40
46
|
get "admin/redirects/new" => "redirects#admin_new"
|
data/lib/caboose/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: caboose-cms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.17
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- William Barry
|
@@ -476,6 +476,7 @@ files:
|
|
476
476
|
- app/models/caboose/stackable_group.rb
|
477
477
|
- app/models/caboose/states.rb
|
478
478
|
- app/models/caboose/std_class.rb
|
479
|
+
- app/models/caboose/store_config.rb
|
479
480
|
- app/models/caboose/tax_calculator.rb
|
480
481
|
- app/models/caboose/tax_line.rb
|
481
482
|
- app/models/caboose/user.rb
|
@@ -662,7 +663,13 @@ files:
|
|
662
663
|
- app/views/caboose/settings/edit.html.erb
|
663
664
|
- app/views/caboose/settings/index.html.erb
|
664
665
|
- app/views/caboose/settings/new.html.erb
|
666
|
+
- app/views/caboose/sites/_admin_footer.html.erb
|
667
|
+
- app/views/caboose/sites/_admin_header.html.erb
|
668
|
+
- app/views/caboose/sites/admin_delete_form.html.erb
|
665
669
|
- app/views/caboose/sites/admin_edit.html.erb
|
670
|
+
- app/views/caboose/sites/admin_edit_block_types.html.erb
|
671
|
+
- app/views/caboose/sites/admin_edit_smtp_config.html.erb
|
672
|
+
- app/views/caboose/sites/admin_edit_store_config.html.erb
|
666
673
|
- app/views/caboose/sites/admin_index.html.erb
|
667
674
|
- app/views/caboose/sites/admin_new.html.erb
|
668
675
|
- app/views/caboose/stackable_groups/admin_index.html.erb
|