caboose-cms 0.9.193 → 0.9.194
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.
- checksums.yaml +4 -4
- data/app/assets/javascripts/caboose/main.js +35 -34
- data/app/assets/stylesheets/caboose/login.scss +95 -0
- data/app/controllers/caboose/application_controller.rb +1 -1
- data/app/controllers/caboose/block_type_categories_controller.rb +25 -2
- data/app/controllers/caboose/block_types_controller.rb +34 -35
- data/app/controllers/caboose/login_controller.rb +33 -37
- data/app/controllers/caboose/pages_controller.rb +2 -7
- data/app/controllers/caboose/register_controller.rb +12 -14
- data/app/controllers/caboose/users_controller.rb +40 -46
- data/app/mailers/caboose/login_mailer.rb +3 -2
- data/app/models/caboose/authenticator.rb +2 -2
- data/app/models/caboose/block_type_category.rb +4 -2
- data/app/models/caboose/schema.rb +4 -2
- data/app/views/caboose/block_type_categories/admin_edit.html.erb +43 -0
- data/app/views/caboose/block_type_categories/admin_index.html.erb +23 -0
- data/app/{assets/javascripts/caboose/testing.js → views/caboose/block_type_categories/admin_new.html.erb} +0 -0
- data/app/views/caboose/block_types/admin_edit.html.erb +8 -8
- data/app/views/caboose/extras/error.html.erb +1 -1
- data/app/views/caboose/login/forgot_password_form.html.erb +38 -51
- data/app/views/caboose/login/index.html.erb +41 -64
- data/app/views/caboose/login/reset_password_form.html.erb +35 -35
- data/app/views/caboose/register/index.html.erb +51 -44
- data/lib/caboose/version.rb +1 -1
- metadata +6 -8
- data/app/assets/javascripts/caboose/cart_old.js +0 -184
- data/app/assets/javascripts/caboose/checkout_old.js +0 -151
- data/app/assets/javascripts/caboose/product_new.js +0 -306
- data/app/assets/javascripts/caboose/product_old.js +0 -324
- data/app/assets/stylesheets/caboose/login.css +0 -134
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bf3d9753758ba664b6736b5756ecb4c4fc398499
|
4
|
+
data.tar.gz: 6eb53a89f67dde04a4fe88223d3d11aaeb7dcb81
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bfbde88b45b6c9cba1c63b25883fb15998bcefd7a5c00f6a02207d69f1acc3aa0a988aa826f7dfafe566df8639363047cded4ea0423aad5310c2cd0395e2422f
|
7
|
+
data.tar.gz: a33f9b2094e41767a3a5a759ccc151db972219d6e2edeecc9e981ea3eed0e7963ff86a26d24c34b12862a2344d4cbab294ba8aac54e3db0dc7a1fa83d7dfdd54
|
@@ -12,20 +12,20 @@ var Caboose = function() {
|
|
12
12
|
self.initialize = function() {
|
13
13
|
self.loggedIn = window.loggedIn || false;
|
14
14
|
|
15
|
-
$('a[href="/register"], [caboose=register]').click(function(event) {
|
16
|
-
|
17
|
-
|
18
|
-
});
|
15
|
+
// $('a[href="/register"], [caboose=register]').click(function(event) {
|
16
|
+
// event.preventDefault();
|
17
|
+
// self.register( $(window).width() < 1024 );
|
18
|
+
// });
|
19
19
|
|
20
|
-
$('a[href="/login"], [caboose=login]').click(function(event) {
|
21
|
-
|
22
|
-
|
23
|
-
});
|
20
|
+
// $('a[href="/login"], [caboose=login]').click(function(event) {
|
21
|
+
// event.preventDefault();
|
22
|
+
// self.login( $(window).width() < 1024 );
|
23
|
+
// });
|
24
24
|
|
25
|
-
$('a[href="/logout"], [caboose=logout]').click(function(event) {
|
26
|
-
|
27
|
-
|
28
|
-
});
|
25
|
+
// $('a[href="/logout"], [caboose=logout]').click(function(event) {
|
26
|
+
// event.preventDefault();
|
27
|
+
// self.logout( $(window).width() < 1024 );
|
28
|
+
// });
|
29
29
|
};
|
30
30
|
|
31
31
|
//
|
@@ -69,18 +69,19 @@ var Caboose = function() {
|
|
69
69
|
//
|
70
70
|
|
71
71
|
self.login = function() {
|
72
|
-
|
72
|
+
window.location = '/login?return_url=' + window.location.pathname;
|
73
|
+
// if ($.browser.mobile) window.location.href = '/login?return_url=' + window.location.pathname;
|
73
74
|
|
74
|
-
$.colorbox({
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
});
|
75
|
+
// $.colorbox({
|
76
|
+
// href: '/login?return_url=' + window.location.pathname,
|
77
|
+
// iframe: true,
|
78
|
+
// innerWidth: 200,
|
79
|
+
// innerHeight: 50,
|
80
|
+
// scrolling: false,
|
81
|
+
// transition: 'fade',
|
82
|
+
// closeButton: false,
|
83
|
+
// opacity: 0.50
|
84
|
+
// });
|
84
85
|
};
|
85
86
|
|
86
87
|
//
|
@@ -96,18 +97,18 @@ var Caboose = function() {
|
|
96
97
|
//
|
97
98
|
|
98
99
|
self.register = function(callback) {
|
99
|
-
|
100
|
+
window.location = '/register?return_url=' + window.location.pathname;
|
100
101
|
|
101
|
-
$.colorbox({
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
});
|
102
|
+
// $.colorbox({
|
103
|
+
// href: '/register?return_url=' + window.location.pathname,
|
104
|
+
// iframe: true,
|
105
|
+
// innerWidth: 200,
|
106
|
+
// innerHeight: 50,
|
107
|
+
// scrolling: false,
|
108
|
+
// transition: 'fade',
|
109
|
+
// closeButton: false,
|
110
|
+
// opacity: 0.50
|
111
|
+
// });
|
111
112
|
};
|
112
113
|
|
113
114
|
// Init and return
|
@@ -0,0 +1,95 @@
|
|
1
|
+
.caboose-login-wrapper {
|
2
|
+
padding: 40px 2%;
|
3
|
+
text-align: center;
|
4
|
+
background-color: rgba(255,255,255,0.5);
|
5
|
+
display: block;
|
6
|
+
width: 100%;
|
7
|
+
margin: 0;
|
8
|
+
.caboose-login-form-wrapper {
|
9
|
+
max-width: 400px;
|
10
|
+
margin: 0 auto;
|
11
|
+
padding: 30px;
|
12
|
+
background: #fff;
|
13
|
+
border: 1px solid #e6e6e6;
|
14
|
+
h5 {
|
15
|
+
margin: 0 0 20px 0;
|
16
|
+
color: #282828;
|
17
|
+
text-align: center;
|
18
|
+
}
|
19
|
+
& > p {
|
20
|
+
font-family: "Roboto";
|
21
|
+
font-weight: 300;
|
22
|
+
font-size: 15px;
|
23
|
+
margin-bottom: 20px;
|
24
|
+
text-align: left;
|
25
|
+
line-height: 20px;
|
26
|
+
}
|
27
|
+
& > form {
|
28
|
+
text-align: right;
|
29
|
+
&#caboose-register-form {
|
30
|
+
.field {
|
31
|
+
margin-bottom: 15px;
|
32
|
+
}
|
33
|
+
}
|
34
|
+
.field {
|
35
|
+
margin-bottom: 25px;
|
36
|
+
text-align: left;
|
37
|
+
label {
|
38
|
+
text-align: left;
|
39
|
+
margin-bottom: 4px;
|
40
|
+
display: block;
|
41
|
+
font-family: "Roboto";
|
42
|
+
font-weight: 300;
|
43
|
+
font-size: 13px;
|
44
|
+
font-style: normal;
|
45
|
+
color: #282828;
|
46
|
+
}
|
47
|
+
}
|
48
|
+
input[type="text"], input[type="password"], input[type="email"] {
|
49
|
+
display: block;
|
50
|
+
width: 100%;
|
51
|
+
font-family: "Roboto";
|
52
|
+
font-weight: 300;
|
53
|
+
font-size: 16px;
|
54
|
+
border: 1px solid #d8d8d8;
|
55
|
+
height: 36px;
|
56
|
+
padding: 6px;
|
57
|
+
font-style: normal;
|
58
|
+
background-color: transprent;
|
59
|
+
-webkit-appearance: none;
|
60
|
+
border-radius: 0;
|
61
|
+
line-height: 36px;
|
62
|
+
text-align: left;
|
63
|
+
&:focus {
|
64
|
+
outline-width: 0;
|
65
|
+
border-color: #b1d9f5;
|
66
|
+
}
|
67
|
+
}
|
68
|
+
.caboose-links {
|
69
|
+
margin-bottom: 15px;
|
70
|
+
}
|
71
|
+
.caboose-links > a {
|
72
|
+
font-size: 14px;
|
73
|
+
color: #282828;
|
74
|
+
text-decoration: none;
|
75
|
+
display: block;
|
76
|
+
margin-bottom: 8px;
|
77
|
+
font-family: "Roboto";
|
78
|
+
font-weight: 300;
|
79
|
+
font-size: 14px;
|
80
|
+
&:hover {
|
81
|
+
color: #bf4e4e;
|
82
|
+
}
|
83
|
+
&:focus {
|
84
|
+
outline-width: 0;
|
85
|
+
}
|
86
|
+
&:last-of-type {
|
87
|
+
margin-bottom: 0;
|
88
|
+
}
|
89
|
+
}
|
90
|
+
}
|
91
|
+
}
|
92
|
+
#caboose-login-message {
|
93
|
+
clear: both;
|
94
|
+
}
|
95
|
+
}
|
@@ -260,7 +260,7 @@ module Caboose
|
|
260
260
|
# Redirects to login if not logged in.
|
261
261
|
def verify_logged_in
|
262
262
|
if !logged_in?
|
263
|
-
redirect_to "/
|
263
|
+
redirect_to "/login?return_url=" + URI.encode(request.fullpath)
|
264
264
|
return false
|
265
265
|
end
|
266
266
|
return true
|
@@ -1,13 +1,36 @@
|
|
1
|
-
|
2
1
|
module Caboose
|
3
2
|
class BlockTypeCategoriesController < ApplicationController
|
4
|
-
|
3
|
+
|
4
|
+
# @route GET /admin/block-type-categories
|
5
|
+
def admin_index
|
6
|
+
redirect_to '/admin' and return if !logged_in_user.is_super_admin?
|
7
|
+
@btc = BlockTypeCategory.where(:parent_id => nil).order(:sort_order).all
|
8
|
+
render :layout => 'caboose/admin'
|
9
|
+
end
|
10
|
+
|
5
11
|
# @route GET /admin/block-type-categories/tree-options
|
6
12
|
def admin_tree_options
|
7
13
|
return unless user_is_allowed('pages', 'edit')
|
8
14
|
render :json => BlockTypeCategory.tree
|
9
15
|
end
|
10
16
|
|
17
|
+
# @route GET /admin/block-type-categories/:id
|
18
|
+
def admin_edit
|
19
|
+
redirect_to '/admin' and return if !logged_in_user.is_super_admin?
|
20
|
+
@btc = BlockTypeCategory.find(params[:id])
|
21
|
+
render :layout => 'caboose/admin'
|
22
|
+
end
|
23
|
+
|
24
|
+
# @route PUT /admin/block-type-categories/:id
|
25
|
+
def admin_update
|
26
|
+
render :json => false and return if !logged_in_user.is_super_admin?
|
27
|
+
end
|
28
|
+
|
29
|
+
# @route DELETE /admin/block-type-categories/:id
|
30
|
+
def admin_delete
|
31
|
+
render :json => false and return if !logged_in_user.is_super_admin?
|
32
|
+
end
|
33
|
+
|
11
34
|
# @route GET /admin/block-type-categories/:id/options
|
12
35
|
def admin_options
|
13
36
|
btc = BlockTypeCategory.find(params[:id])
|
@@ -8,13 +8,14 @@ module Caboose
|
|
8
8
|
|
9
9
|
# @route GET /admin/block-types
|
10
10
|
def admin_index
|
11
|
-
return if !
|
11
|
+
redirect_to '/admin' and return if !logged_in_user.is_super_admin?
|
12
12
|
@block_types = BlockType.where("parent_id is null or parent_id = 0").reorder(:name).all
|
13
13
|
render :layout => 'caboose/admin'
|
14
14
|
end
|
15
15
|
|
16
16
|
# @route GET /admin/block-types/json
|
17
17
|
def admin_json
|
18
|
+
render :json => false and return if !logged_in_user.is_super_admin?
|
18
19
|
h = {
|
19
20
|
'name' => '',
|
20
21
|
'description' => '',
|
@@ -43,20 +44,20 @@ module Caboose
|
|
43
44
|
|
44
45
|
# @route GET /admin/block-types/:id/json
|
45
46
|
def admin_json_single
|
46
|
-
return if !
|
47
|
+
render :json => false and return if !logged_in_user.is_super_admin?
|
47
48
|
block_type = BlockType.find(params[:id])
|
48
49
|
render :json => block_type.as_json(:include => :sites)
|
49
50
|
end
|
50
51
|
|
51
52
|
# @route GET /admin/block-types/parse
|
52
53
|
def admin_parse_form
|
53
|
-
return if !
|
54
|
+
redirect_to '/admin' and return if !logged_in_user.is_super_admin?
|
54
55
|
render :layout => 'caboose/admin'
|
55
56
|
end
|
56
57
|
|
57
58
|
# @route POST /admin/block-types/parse-tags
|
58
59
|
def admin_parse_tags
|
59
|
-
return if !
|
60
|
+
redirect_to '/admin' and return if !logged_in_user.is_super_admin?
|
60
61
|
children = params[:children] && params[:children] != 'false' ? params[:children] : nil
|
61
62
|
resp = BlockTypeParser.parse_html(params[:html], params[:tags], children)
|
62
63
|
render :json => resp
|
@@ -65,7 +66,7 @@ module Caboose
|
|
65
66
|
# @route GET /admin/block-types/new
|
66
67
|
# @route GET /admin/block-types/:id/new
|
67
68
|
def admin_new
|
68
|
-
|
69
|
+
redirect_to '/admin' and return if !logged_in_user.is_super_admin?
|
69
70
|
@block_type = BlockType.new
|
70
71
|
@parent_id = params[:id]
|
71
72
|
render :layout => 'caboose/admin'
|
@@ -73,28 +74,28 @@ module Caboose
|
|
73
74
|
|
74
75
|
# @route GET /admin/block-types/:id/icon
|
75
76
|
def admin_edit_icon
|
76
|
-
|
77
|
+
redirect_to '/admin' and return if !logged_in_user.is_super_admin?
|
77
78
|
@block_type = BlockType.find(params[:id])
|
78
79
|
render :layout => 'caboose/modal'
|
79
80
|
end
|
80
81
|
|
81
82
|
# @route GET /admin/block-types/:id
|
82
83
|
def admin_edit
|
83
|
-
|
84
|
+
redirect_to '/admin' and return if !logged_in_user.is_super_admin?
|
84
85
|
@block_type = BlockType.find(params[:id])
|
85
86
|
render :layout => 'caboose/admin'
|
86
87
|
end
|
87
88
|
|
88
89
|
# @route GET /admin/block-types/:id/render-function
|
89
90
|
def admin_edit_render_function
|
90
|
-
|
91
|
+
redirect_to '/admin' and return if !logged_in_user.is_super_admin?
|
91
92
|
@block_type = BlockType.find(params[:id])
|
92
93
|
render :layout => 'caboose/admin'
|
93
94
|
end
|
94
95
|
|
95
96
|
# @route PUT /admin/block-types/:id/render-function
|
96
97
|
def admin_update_render_function
|
97
|
-
return if !
|
98
|
+
render :json => false and return if !logged_in_user.is_super_admin?
|
98
99
|
resp = StdClass.new
|
99
100
|
@block_type = BlockType.find(params[:id])
|
100
101
|
code = params['code'].blank? ? '' : params['code'].gsub('<%==','<%= raw')
|
@@ -107,14 +108,14 @@ module Caboose
|
|
107
108
|
|
108
109
|
# @route GET /admin/block-types/:id/sass
|
109
110
|
def admin_edit_sass
|
110
|
-
|
111
|
+
redirect_to '/admin' and return if !logged_in_user.is_super_admin?
|
111
112
|
@block_type = BlockType.find(params[:id])
|
112
113
|
render :layout => 'caboose/admin'
|
113
114
|
end
|
114
115
|
|
115
116
|
# @route PUT /admin/block-types/:id/sass
|
116
117
|
def admin_update_sass
|
117
|
-
return if !
|
118
|
+
render :json => false and return if !logged_in_user.is_super_admin?
|
118
119
|
resp = StdClass.new
|
119
120
|
@block_type = BlockType.find(params[:id])
|
120
121
|
@block_type.custom_sass = params['code']
|
@@ -126,20 +127,18 @@ module Caboose
|
|
126
127
|
|
127
128
|
# @route GET /admin/block-types/:id/errors
|
128
129
|
def admin_error_log
|
129
|
-
|
130
|
+
redirect_to '/admin' and return if !logged_in_user.is_super_admin?
|
130
131
|
@block_type = BlockType.find(params[:id])
|
131
132
|
render :layout => 'caboose/admin'
|
132
133
|
end
|
133
134
|
|
134
135
|
# @route POST /admin/block-types
|
135
136
|
def admin_create
|
136
|
-
return
|
137
|
-
|
137
|
+
render :json => false and return if !logged_in_user.is_super_admin?
|
138
138
|
resp = Caboose::StdClass.new({
|
139
139
|
'error' => nil,
|
140
140
|
'redirect' => nil
|
141
141
|
})
|
142
|
-
|
143
142
|
bt = BlockType.new(
|
144
143
|
:parent_id => params[:parent_id] ? params[:parent_id] : nil,
|
145
144
|
:name => params[:name].downcase.gsub(' ', '_'),
|
@@ -148,8 +147,7 @@ module Caboose
|
|
148
147
|
:allow_child_blocks => false,
|
149
148
|
:icon => 'checkbox-unchecked'
|
150
149
|
)
|
151
|
-
bt.save
|
152
|
-
|
150
|
+
bt.save
|
153
151
|
# Send back the response
|
154
152
|
resp.redirect = "/admin/block-types/#{bt.id}"
|
155
153
|
render :json => resp
|
@@ -157,7 +155,7 @@ module Caboose
|
|
157
155
|
|
158
156
|
# @route PUT /admin/block-types/:id
|
159
157
|
def admin_update
|
160
|
-
return
|
158
|
+
render :json => false and return if !logged_in_user.is_super_admin?
|
161
159
|
|
162
160
|
resp = StdClass.new({'attributes' => {}})
|
163
161
|
bt = BlockType.find(params[:id])
|
@@ -193,18 +191,24 @@ module Caboose
|
|
193
191
|
end
|
194
192
|
end
|
195
193
|
|
196
|
-
# Trigger the page cache to be updated
|
197
|
-
# query = ["update page_cache set refresh = true where page_id in (select distinct(page_id) from blocks where block_type_id = ?)", bt.id]
|
198
|
-
# ActiveRecord::Base.connection.execute(ActiveRecord::Base.send(:sanitize_sql_array, query))
|
199
|
-
# PageCacher.delay(:queue => 'caboose_cache').refresh
|
200
|
-
|
201
194
|
resp.success = save && bt.save
|
202
195
|
render :json => resp
|
203
196
|
end
|
197
|
+
|
198
|
+
# @route DELETE /admin/block-types/bulk
|
199
|
+
def admin_bulk_delete
|
200
|
+
render :json => false and return if !logged_in_user.is_super_admin?
|
201
|
+
params[:model_ids].each do |bt_id|
|
202
|
+
block_type = BlockType.where(:id => bt_id).first
|
203
|
+
block_type.destroy if block_type
|
204
|
+
end
|
205
|
+
resp = Caboose::StdClass.new('success' => true)
|
206
|
+
render :json => resp
|
207
|
+
end
|
204
208
|
|
205
209
|
# @route DELETE /admin/block-types/:id
|
206
210
|
def admin_delete
|
207
|
-
return
|
211
|
+
render :json => false and return if !logged_in_user.is_super_admin?
|
208
212
|
BlockType.find(params[:id]).destroy
|
209
213
|
resp = StdClass.new({
|
210
214
|
'redirect' => "/admin/block-types"
|
@@ -215,12 +219,7 @@ module Caboose
|
|
215
219
|
# @route_priority 1
|
216
220
|
# @route GET /admin/block-types/new-options
|
217
221
|
def admin_options_for_new_block
|
218
|
-
return unless user_is_allowed('
|
219
|
-
#cats = BlockTypeCategory.where("parent_id is not null and name != ?", 'Layouts').all.collect{ |cat| {
|
220
|
-
# :block_type_category => cat,
|
221
|
-
# :block_types => Caboose::BlockType.includes(:block_type_site_memberships).where(:parent_id => nil, :block_type_category_id => cat.id).where("block_type_site_memberships.site_id = ?", @site.id).reorder(:description).all
|
222
|
-
#}}
|
223
|
-
|
222
|
+
return unless user_is_allowed('pages', 'edit')
|
224
223
|
cats = BlockTypeCategory.where("name != ?", 'Layouts').all.collect{ |cat| {
|
225
224
|
:block_type_category => cat,
|
226
225
|
:block_types => Caboose::BlockType.includes(:block_type_site_memberships)
|
@@ -285,7 +284,7 @@ module Caboose
|
|
285
284
|
render :json => options
|
286
285
|
end
|
287
286
|
|
288
|
-
def admin_tree_options_helper(options, bt, prefix)
|
287
|
+
def admin_tree_options_helper(options, bt, prefix)
|
289
288
|
options << { 'value' => bt.id, 'text' => "#{prefix}#{bt.description}" }
|
290
289
|
bt.children.each do |bt2|
|
291
290
|
admin_tree_options_helper(options, bt2, " - #{prefix}")
|
@@ -294,7 +293,7 @@ module Caboose
|
|
294
293
|
|
295
294
|
# @route GET /admin/block-type-site-memberships/:id/html
|
296
295
|
def admin_edit_btsm_html
|
297
|
-
return if !
|
296
|
+
redirect_to '/admin' and return if !logged_in_user.is_super_admin?
|
298
297
|
@btsm = BlockTypeSiteMembership.find(params[:id])
|
299
298
|
if (@site.id != @btsm.site_id && !@site.is_master)
|
300
299
|
@error = "You are not allowed to edit this site."
|
@@ -305,7 +304,7 @@ module Caboose
|
|
305
304
|
|
306
305
|
# @route PUT /admin/block-type-site-memberships/:id/html
|
307
306
|
def admin_update_btsm_html
|
308
|
-
return if !
|
307
|
+
render :json => false and return if !logged_in_user.is_super_admin?
|
309
308
|
resp = StdClass.new
|
310
309
|
@btsm = BlockTypeSiteMembership.find(params[:id])
|
311
310
|
code = params['code'].blank? ? '' : params['code'].gsub('<%==','<%= raw')
|
@@ -318,7 +317,7 @@ module Caboose
|
|
318
317
|
|
319
318
|
# @route GET /admin/block-type-site-memberships/:id/css
|
320
319
|
def admin_edit_btsm_css
|
321
|
-
return if !
|
320
|
+
redirect_to '/admin' and return if !logged_in_user.is_super_admin?
|
322
321
|
@btsm = BlockTypeSiteMembership.find(params[:id])
|
323
322
|
if (@site.id != @btsm.site_id && !@site.is_master)
|
324
323
|
@error = "You are not allowed to edit this site."
|
@@ -329,7 +328,7 @@ module Caboose
|
|
329
328
|
|
330
329
|
# @route PUT /admin/block-type-site-memberships/:id/css
|
331
330
|
def admin_update_btsm_css
|
332
|
-
return if !
|
331
|
+
render :json => false and return if !logged_in_user.is_super_admin?
|
333
332
|
resp = StdClass.new
|
334
333
|
@btsm = BlockTypeSiteMembership.find(params[:id])
|
335
334
|
@btsm.custom_css = params['code']
|