caboose-cms 0.2.57 → 0.2.62
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/app/assets/stylesheets/caboose/admin.css +46 -0
- data/app/assets/stylesheets/caboose/register.css +1 -0
- data/app/controllers/caboose/pages_controller.rb +38 -51
- data/app/helpers/caboose/pages_helper.rb +25 -0
- data/app/models/caboose/page_plugin.rb +1 -1
- data/app/views/caboose/pages/_admin_footer.html.erb +2 -0
- data/app/views/caboose/pages/_admin_header.html.erb +28 -0
- data/app/views/caboose/pages/admin_edit_content.html.erb +30 -0
- data/app/views/caboose/pages/admin_edit_css.html.erb +28 -0
- data/app/views/caboose/pages/admin_edit_general.html.erb +46 -0
- data/app/views/caboose/pages/admin_edit_js.html.erb +28 -0
- data/app/views/caboose/pages/{edit_seo.html.erb → admin_edit_seo.html.erb} +3 -8
- data/app/views/caboose/pages/admin_index.html.erb +5 -0
- data/app/views/caboose/pages/{new.html.erb → admin_new.html.erb} +0 -0
- data/app/views/caboose/pages/admin_sitemap.html.erb +6 -0
- data/config/routes.rb +16 -18
- data/lib/caboose/version.rb +1 -1
- data/lib/tasks/caboose.rake +22 -0
- metadata +13 -13
- data/app/views/caboose/pages/edit.html.erb +0 -56
- data/app/views/caboose/pages/edit_content.html.erb +0 -59
- data/app/views/caboose/pages/edit_css.html.erb +0 -51
- data/app/views/caboose/pages/edit_js.html.erb +0 -51
- data/app/views/caboose/pages/edit_resources.html.erb +0 -41
- data/app/views/caboose/pages/edit_settings.html.erb +0 -51
- data/app/views/caboose/pages/edit_title.html.erb +0 -30
- data/app/views/caboose/pages/index.html.erb +0 -33
- data/app/views/caboose/pages/sitemap.html.erb +0 -12
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZWFjMWM1MDg5OWE2NzQ2OGUwNGE2OTdiZTg5OTE2Y2ZhMDJlNTJkZg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MDAwNTZkZDY4ODk1NjlmMWMxNGJkZjI4NDhlMGI3OGI5YTYxNDcxMA==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
Yjk4YmI4YmRjNWVkNjBkMTExYTVmZmQ0ZWRkNmFkYjJiYWNmMGI4MDE5ZjBh
|
10
|
+
NjhiMmFhNjQ5ODk1MjNhOTkzOTEwMTM2Y2VkZTkwNWRmYzI2ZTEzMjM4NmJk
|
11
|
+
YzYxZGIwZTdmNjcxYzlmYjA5YjljZWIyYmZlMzY2N2RhY2RiZjg=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YTcwYjA2YzRmMzQ2OGU2N2RlZGRkN2ZmZTgzMmE5NzcwMjc5NGM3OGQ3NDhm
|
14
|
+
NjRlNWFmMTUwZTA2ODMxM2FkOTBjMTFjYTc0MzEzMjgwMGNhMzY0YmE3NTkw
|
15
|
+
NTFjMzZkNTM0NTY5ZjY3ZTg3ODI0MDY0MmEzNWNjNWMxNzJiY2M=
|
@@ -410,3 +410,49 @@ Page Bar Generator
|
|
410
410
|
|
411
411
|
#search_form input[type='text'] { height: 20px; padding: 6px 12px; }
|
412
412
|
#search_form input[type='submit'] { height: 35px; padding: 0 12px; }
|
413
|
+
|
414
|
+
|
415
|
+
/******************************************************************************/
|
416
|
+
|
417
|
+
#tabs {
|
418
|
+
width: 200px;
|
419
|
+
float: left;
|
420
|
+
/*
|
421
|
+
position: absolute;
|
422
|
+
top: 41px;
|
423
|
+
left: 0;
|
424
|
+
*/
|
425
|
+
list-style: none;
|
426
|
+
margin: -20px 0 0 -30px;
|
427
|
+
padding: 0;
|
428
|
+
border-top: #ccc 0px solid;
|
429
|
+
}
|
430
|
+
#tabs ul li {
|
431
|
+
list-style: none;
|
432
|
+
margin: 0;
|
433
|
+
padding: 0;
|
434
|
+
}
|
435
|
+
#tabs li.back {
|
436
|
+
padding: 10px;
|
437
|
+
}
|
438
|
+
#tabs a {
|
439
|
+
display: block;
|
440
|
+
margin: 0;
|
441
|
+
padding: 16px 12px 12px 12px;
|
442
|
+
text-decoration: none;
|
443
|
+
background: #efefef;
|
444
|
+
border-bottom: #ccc 1px solid;
|
445
|
+
color: #000;
|
446
|
+
}
|
447
|
+
#tabs a:hover {
|
448
|
+
background: #666;
|
449
|
+
color: #fff;
|
450
|
+
}
|
451
|
+
#tabs li.selected a {
|
452
|
+
background: transparent;
|
453
|
+
color: #000;
|
454
|
+
font-weight: bold;
|
455
|
+
}
|
456
|
+
#content2 {
|
457
|
+
margin-left: 220px;
|
458
|
+
}
|
@@ -4,11 +4,7 @@ module Caboose
|
|
4
4
|
|
5
5
|
def before_action
|
6
6
|
@page = Page.page_with_uri('/admin')
|
7
|
-
end
|
8
|
-
|
9
|
-
# GET /pages
|
10
|
-
def index
|
11
|
-
end
|
7
|
+
end
|
12
8
|
|
13
9
|
# GET /pages/:id
|
14
10
|
def show
|
@@ -90,77 +86,68 @@ module Caboose
|
|
90
86
|
|
91
87
|
end
|
92
88
|
|
93
|
-
# GET /pages/new
|
94
|
-
def new
|
95
|
-
return unless user_is_allowed('pages', 'add')
|
96
|
-
@parent_id = params[:parent_id].nil? ? params[:parent_id] : 1
|
97
|
-
@parent = Page.find(@parent_id)
|
98
|
-
render :layout => 'caboose/modal'
|
99
|
-
end
|
100
|
-
|
101
89
|
# GET /pages/1/redirect
|
102
90
|
def redirect
|
103
91
|
@page = Page.find(params[:id])
|
104
92
|
redirect_to "/#{@page.uri}"
|
105
93
|
end
|
106
94
|
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
@page = Page.find(params[:id])
|
111
|
-
end
|
95
|
+
#===========================================================================
|
96
|
+
# Admin actions
|
97
|
+
#===========================================================================
|
112
98
|
|
113
|
-
# GET /pages
|
114
|
-
def
|
115
|
-
return
|
116
|
-
@
|
117
|
-
render :layout => 'caboose/
|
99
|
+
# GET /admin/pages
|
100
|
+
def admin_index
|
101
|
+
return if !user_is_allowed('pages', 'view')
|
102
|
+
@home_page = Page.find(1)
|
103
|
+
render :layout => 'caboose/admin'
|
118
104
|
end
|
119
|
-
|
120
|
-
# GET /pages/
|
121
|
-
def
|
122
|
-
return unless user_is_allowed('pages', '
|
123
|
-
@
|
124
|
-
|
105
|
+
|
106
|
+
# GET /admin/pages/new
|
107
|
+
def admin_new
|
108
|
+
return unless user_is_allowed('pages', 'add')
|
109
|
+
@parent_id = params[:parent_id].nil? ? params[:parent_id] : 1
|
110
|
+
@parent = Page.find(@parent_id)
|
111
|
+
render :layout => 'caboose/admin'
|
125
112
|
end
|
126
113
|
|
127
|
-
# GET /pages/1/edit
|
128
|
-
def
|
114
|
+
# GET /admin/pages/1/edit
|
115
|
+
def admin_edit_general
|
129
116
|
return unless user_is_allowed('pages', 'edit')
|
130
117
|
@page = Page.find(params[:id])
|
131
|
-
render :layout => 'caboose/
|
118
|
+
render :layout => 'caboose/admin'
|
132
119
|
end
|
133
|
-
|
134
|
-
# GET /pages/1/
|
135
|
-
def
|
120
|
+
|
121
|
+
# GET /admin/pages/1/content
|
122
|
+
def admin_edit_content
|
136
123
|
return unless user_is_allowed('pages', 'edit')
|
137
124
|
@page = Page.find(params[:id])
|
138
|
-
render :layout => 'caboose/
|
125
|
+
render :layout => 'caboose/admin'
|
139
126
|
end
|
140
127
|
|
141
|
-
# GET /pages/1/
|
142
|
-
def
|
128
|
+
# GET /admin/pages/1/css
|
129
|
+
def admin_edit_css
|
143
130
|
return unless user_is_allowed('pages', 'edit')
|
144
131
|
@page = Page.find(params[:id])
|
145
|
-
render :layout => 'caboose/
|
132
|
+
render :layout => 'caboose/admin'
|
146
133
|
end
|
147
134
|
|
148
|
-
# GET /pages/1/
|
149
|
-
def
|
135
|
+
# GET /admin/pages/1/js
|
136
|
+
def admin_edit_js
|
150
137
|
return unless user_is_allowed('pages', 'edit')
|
151
138
|
@page = Page.find(params[:id])
|
152
|
-
render :layout => 'caboose/
|
139
|
+
render :layout => 'caboose/admin'
|
153
140
|
end
|
154
141
|
|
155
|
-
# GET /pages/1/
|
156
|
-
def
|
142
|
+
# GET /admin/pages/1/seo
|
143
|
+
def admin_edit_seo
|
157
144
|
return unless user_is_allowed('pages', 'edit')
|
158
145
|
@page = Page.find(params[:id])
|
159
|
-
render :layout => 'caboose/
|
146
|
+
render :layout => 'caboose/admin'
|
160
147
|
end
|
161
148
|
|
162
|
-
# POST /pages
|
163
|
-
def
|
149
|
+
# POST /admin/pages
|
150
|
+
def admin_create
|
164
151
|
return unless user_is_allowed('pages', 'add')
|
165
152
|
|
166
153
|
resp = Caboose::StdClass.new({
|
@@ -211,8 +198,8 @@ module Caboose
|
|
211
198
|
render json: resp
|
212
199
|
end
|
213
200
|
|
214
|
-
# PUT /pages/1
|
215
|
-
def
|
201
|
+
# PUT /admin/pages/1
|
202
|
+
def admin_update
|
216
203
|
return unless user_is_allowed('pages', 'edit')
|
217
204
|
|
218
205
|
resp = StdClass.new({'attributes' => {}})
|
@@ -310,8 +297,8 @@ module Caboose
|
|
310
297
|
render json: resp
|
311
298
|
end
|
312
299
|
|
313
|
-
# DELETE /pages/1
|
314
|
-
def
|
300
|
+
# DELETE /admin/pages/1
|
301
|
+
def admin_destroy
|
315
302
|
return unless user_is_allowed('pages', 'delete')
|
316
303
|
user = Page.find(params[:id])
|
317
304
|
user.destroy
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Caboose
|
2
|
+
module PagesHelper
|
3
|
+
|
4
|
+
def pages_list(page)
|
5
|
+
str = "<ul>"
|
6
|
+
str << pages_list_helper(page)
|
7
|
+
str << "</ul>"
|
8
|
+
return str
|
9
|
+
end
|
10
|
+
|
11
|
+
def pages_list_helper(page)
|
12
|
+
str = "<li><a href='/admin/pages/#{page.id}/edit'>#{page.title}</a>"
|
13
|
+
if page.children && page.children.count > 0
|
14
|
+
str << "<ul>"
|
15
|
+
page.children.each do |p|
|
16
|
+
str << pages_list_helper(p)
|
17
|
+
end
|
18
|
+
str << "</ul>"
|
19
|
+
end
|
20
|
+
str << "</li>"
|
21
|
+
return str
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
@@ -15,7 +15,7 @@ class Caboose::PagePlugin < Caboose::CaboosePlugin
|
|
15
15
|
if (actions.include?('edit') || is_admin)
|
16
16
|
item['children'] << { 'href' => "/pages/#{page.id}/sitemap" , 'text' => 'Site Map This Page' }
|
17
17
|
item['children'] << { 'href' => "/pages/#{page.id}/edit" , 'text' => 'Edit Page Content' }
|
18
|
-
item['children'] << { 'href' => "/pages/#{page.id}/edit-settings" , 'text' => 'Edit Page Settings', 'modal' =>
|
18
|
+
item['children'] << { 'href' => "/pages/#{page.id}/edit-settings" , 'text' => 'Edit Page Settings', 'modal' => false }
|
19
19
|
|
20
20
|
#uru = session['use_redirect_urls'].nil? ? true : session['use_redirect_urls']
|
21
21
|
#item['children'] << { 'id' => 'use_redirect_urls', 'href' => '#', 'text' => '' + (uru ? 'Disable' : 'Enable') + ' Redirect Urls' }
|
@@ -0,0 +1,28 @@
|
|
1
|
+
<% content_for :caboose_css do %>
|
2
|
+
<%= stylesheet_link_tag "caboose/pages" %>
|
3
|
+
<% end %>
|
4
|
+
<% content_for :caboose_js do %>
|
5
|
+
<%= javascript_include_tag "caboose/model/all" %>
|
6
|
+
<%= javascript_include_tag "caboose/pages" %>
|
7
|
+
<% end %>
|
8
|
+
|
9
|
+
<h1>Edit Page</h1>
|
10
|
+
<ul id='tabs'>
|
11
|
+
<%
|
12
|
+
tabs = {
|
13
|
+
"/admin/pages/#{@page.id}/edit" => 'General',
|
14
|
+
"/admin/pages/#{@page.id}/content" => 'Content',
|
15
|
+
"/admin/pages/#{@page.id}/css" => 'Custom CSS',
|
16
|
+
"/admin/pages/#{@page.id}/js" => 'Custom JS',
|
17
|
+
"/admin/pages/#{@page.id}/seo" => 'SEO',
|
18
|
+
"/admin/pages/#{@page.id}/sitemap" => 'Sitemap',
|
19
|
+
"/admin/pages/#{@page.id}/delete" => 'Delete Product'
|
20
|
+
}
|
21
|
+
|
22
|
+
%>
|
23
|
+
<% tabs.each do |href,text| %>
|
24
|
+
<li<%= raw request.fullpath == href ? " class='selected'" : '' %>><a href='<%= href %>'><%= raw text %></a></li>
|
25
|
+
<% end %>
|
26
|
+
<li class='back'><input type='button' value='< Back' onclick="window.location='/admin/pages';" /></li>
|
27
|
+
</ul>
|
28
|
+
<div id='content2'>
|
@@ -0,0 +1,30 @@
|
|
1
|
+
|
2
|
+
<%= render :partial => 'caboose/pages/admin_header' %>
|
3
|
+
|
4
|
+
<p><div id='page_<%= @page.id %>_content'></div></p>
|
5
|
+
|
6
|
+
<%= render :partial => 'caboose/pages/admin_footer' %>
|
7
|
+
<% content_for :caboose_js do %>
|
8
|
+
<script type='text/javascript'>
|
9
|
+
|
10
|
+
var modal = false;
|
11
|
+
$(window).load(function() {
|
12
|
+
modal = new CabooseModal(800);
|
13
|
+
});
|
14
|
+
|
15
|
+
$(document).ready(function() {
|
16
|
+
m = new ModelBinder({
|
17
|
+
name: 'Page',
|
18
|
+
id: <%= @page.id %>,
|
19
|
+
update_url: '/admin/pages/<%= @page.id %>',
|
20
|
+
authenticity_token: '<%= form_authenticity_token %>',
|
21
|
+
attributes: [
|
22
|
+
{ name: 'content', nice_name: 'Page Content', type: 'richtext', value: <%= raw Caboose.json(@page.content) %>, width: 800, height: 500 }
|
23
|
+
]
|
24
|
+
});
|
25
|
+
});
|
26
|
+
|
27
|
+
</script>
|
28
|
+
<%= tinymce_assets %>
|
29
|
+
<%= tinymce :caboose, width: '800px', height:'400px' %>
|
30
|
+
<% end %>
|
@@ -0,0 +1,28 @@
|
|
1
|
+
|
2
|
+
<%= render :partial => 'caboose/pages/admin_header' %>
|
3
|
+
|
4
|
+
<p><div id='page_<%= @page.id %>_custom_css'></div></p>
|
5
|
+
|
6
|
+
<%= render :partial => 'caboose/pages/admin_footer' %>
|
7
|
+
<% content_for :caboose_js do %>
|
8
|
+
<script type='text/javascript'>
|
9
|
+
|
10
|
+
var modal = false;
|
11
|
+
$(window).load(function() {
|
12
|
+
modal = new CabooseModal(800);
|
13
|
+
});
|
14
|
+
|
15
|
+
$(document).ready(function() {
|
16
|
+
m = new ModelBinder({
|
17
|
+
name: 'Page',
|
18
|
+
id: <%= @page.id %>,
|
19
|
+
update_url: '/admin/pages/<%= @page.id %>',
|
20
|
+
authenticity_token: '<%= form_authenticity_token %>',
|
21
|
+
attributes: [
|
22
|
+
{ name: 'custom_css', nice_name: 'Custom CSS', type: 'textarea', value: <%= raw Caboose.json(@page.custom_css) %>, width: 800, height: 400 }
|
23
|
+
]
|
24
|
+
});
|
25
|
+
});
|
26
|
+
|
27
|
+
</script>
|
28
|
+
<% end %>
|
@@ -0,0 +1,46 @@
|
|
1
|
+
|
2
|
+
<%= render :partial => 'caboose/pages/admin_header' %>
|
3
|
+
|
4
|
+
<p><div id='page_<%= @page.id %>_title' ></div></p>
|
5
|
+
<p><div id='page_<%= @page.id %>_menu_title' ></div></p>
|
6
|
+
<p><div id='page_<%= @page.id %>_parent_id' ></div></p>
|
7
|
+
<p><div id='page_<%= @page.id %>_slug' ></div></p>
|
8
|
+
<p><div id='page_<%= @page.id %>_alias' ></div></p>
|
9
|
+
<p><div id='page_<%= @page.id %>_redirect_url' ></div></p>
|
10
|
+
<p><div id='page_<%= @page.id %>_hide' ></div></p>
|
11
|
+
<p><div id='page_<%= @page.id %>_layout' ></div></p>
|
12
|
+
<p><div id='page_<%= @page.id %>_custom_sort_children' ></div></p>
|
13
|
+
<p><div id='page_<%= @page.id %>_content_format' ></div></p>
|
14
|
+
|
15
|
+
<%= render :partial => 'caboose/pages/admin_footer' %>
|
16
|
+
<% content_for :caboose_js do %>
|
17
|
+
<script type='text/javascript'>
|
18
|
+
|
19
|
+
var modal = false;
|
20
|
+
$(window).load(function() {
|
21
|
+
modal = new CabooseModal(800);
|
22
|
+
});
|
23
|
+
|
24
|
+
$(document).ready(function() {
|
25
|
+
m = new ModelBinder({
|
26
|
+
name: 'Page',
|
27
|
+
id: <%= @page.id %>,
|
28
|
+
update_url: '/admin/pages/<%= @page.id %>',
|
29
|
+
authenticity_token: '<%= form_authenticity_token %>',
|
30
|
+
attributes: [
|
31
|
+
{ name: 'title' , nice_name: 'Title' , type: 'text' , value: <%= raw Caboose.json(@page.title ) %> , width: 400 },
|
32
|
+
{ name: 'parent_id' , nice_name: 'Parent' , type: 'select' , value: <%= @page.parent_id %> , width: 400, text: <%= raw (@page.parent_id == -1 ? "[No Parent]" : @page.parent.title).to_json %>, options_url: '/pages/sitemap-options' },
|
33
|
+
{ name: 'menu_title' , nice_name: 'Menu title' , type: 'text' , value: <%= raw Caboose.json(@page.menu_title ) %> , width: 400 },
|
34
|
+
{ name: 'slug' , nice_name: 'Slug' , type: 'text' , value: <%= raw Caboose.json(@page.slug ) %> , width: 400 },
|
35
|
+
{ name: 'alias' , nice_name: 'Alias' , type: 'text' , value: <%= raw Caboose.json(@page.alias ) %> , width: 400 },
|
36
|
+
{ name: 'redirect_url' , nice_name: 'Redirect URL' , type: 'text' , value: <%= raw Caboose.json(@page.redirect_url ) %> , width: 400 },
|
37
|
+
{ name: 'hide' , nice_name: 'Hide' , type: 'checkbox' , value: <%= raw @page.hide %> , width: 400 },
|
38
|
+
{ name: 'layout' , nice_name: 'Layout' , type: 'text' , value: <%= raw Caboose.json(@page.layout ) %> , width: 400 },
|
39
|
+
{ name: 'custom_sort_children' , nice_name: 'Custom sort children' , type: 'checkbox' , value: <%= raw @page.custom_sort_children %> , width: 400 },
|
40
|
+
{ name: 'content_format' , nice_name: 'Content format' , type: 'select' , value: <%= raw Caboose.json(@page.content_format) %>, width: 400, text: <%= raw Caboose.json(@page.content_format) %>, options_url: '/pages/format-options' },
|
41
|
+
]
|
42
|
+
});
|
43
|
+
});
|
44
|
+
|
45
|
+
</script>
|
46
|
+
<% end %>
|
@@ -0,0 +1,28 @@
|
|
1
|
+
|
2
|
+
<%= render :partial => 'caboose/pages/admin_header' %>
|
3
|
+
|
4
|
+
<p><div id='page_<%= @page.id %>_custom_js'></div></p>
|
5
|
+
|
6
|
+
<%= render :partial => 'caboose/pages/admin_footer' %>
|
7
|
+
<% content_for :caboose_js do %>
|
8
|
+
<script type='text/javascript'>
|
9
|
+
|
10
|
+
var modal = false;
|
11
|
+
$(window).load(function() {
|
12
|
+
modal = new CabooseModal(800);
|
13
|
+
});
|
14
|
+
|
15
|
+
$(document).ready(function() {
|
16
|
+
m = new ModelBinder({
|
17
|
+
name: 'Page',
|
18
|
+
id: <%= @page.id %>,
|
19
|
+
update_url: '/admin/pages/<%= @page.id %>',
|
20
|
+
authenticity_token: '<%= form_authenticity_token %>',
|
21
|
+
attributes: [
|
22
|
+
{ name: 'custom_js', nice_name: 'Custom Javascript', type: 'textarea', value: <%= raw Caboose.json(@page.custom_js) %>, width: 800, height: 400 }
|
23
|
+
]
|
24
|
+
});
|
25
|
+
});
|
26
|
+
|
27
|
+
</script>
|
28
|
+
<% end %>
|
@@ -1,12 +1,6 @@
|
|
1
1
|
|
2
|
-
|
3
|
-
|
4
|
-
<input type='button' value='General' onclick="window.location='/pages/<%= @page.id %>/edit-settings';" />
|
5
|
-
<input type='button' value='CSS' onclick="window.location='/pages/<%= @page.id %>/edit-css';" />
|
6
|
-
<input type='button' value='JS' onclick="window.location='/pages/<%= @page.id %>/edit-js';" />
|
7
|
-
<input type='button' value='SEO' onclick="window.location='/pages/<%= @page.id %>/edit-seo';" disabled='true' />
|
8
|
-
<input type='button' value='Resources' onclick="window.location='/pages/<%= @page.id %>/edit-resources';" />
|
9
|
-
</div>
|
2
|
+
<%= render :partial => 'caboose/pages/admin_header' %>
|
3
|
+
|
10
4
|
<p><div id='page_<%= @page.id %>_seo_title'></div></p>
|
11
5
|
<p><div id='page_<%= @page.id %>_meta_description'></div></p>
|
12
6
|
<p><div id='page_<%= @page.id %>_meta_robots'></div></p>
|
@@ -14,6 +8,7 @@
|
|
14
8
|
<p><div id='page_<%= @page.id %>_fb_description'></div></p>
|
15
9
|
<p><div id='page_<%= @page.id %>_gp_description'></div></p>
|
16
10
|
|
11
|
+
<%= render :partial => 'caboose/pages/admin_footer' %>
|
17
12
|
<% content_for :caboose_js do %>
|
18
13
|
<%= javascript_include_tag "caboose/model/all" %>
|
19
14
|
<script type="text/javascript">
|
File without changes
|
data/config/routes.rb
CHANGED
@@ -44,25 +44,23 @@ Caboose::Engine.routes.draw do
|
|
44
44
|
post "admin/settings" => "settings#create"
|
45
45
|
delete "admin/settings/:id" => "settings#destroy"
|
46
46
|
|
47
|
-
get "pages"
|
48
|
-
get "pages/sitemap-options" => "pages#sitemap_options"
|
49
|
-
get "pages/robots-options" => "pages#robots_options"
|
50
|
-
get "pages/format-options" => "pages#content_format_options"
|
51
|
-
get "pages/new" => "pages#new"
|
52
|
-
get "pages/:id/sitemap" => "pages#sitemap"
|
53
|
-
get "pages/:id/redirect" => "pages#redirect"
|
54
|
-
get "pages/:id/edit-settings" => "pages#edit_settings"
|
55
|
-
get "pages/:id/edit-css" => "pages#edit_css"
|
56
|
-
get "pages/:id/edit-js" => "pages#edit_js"
|
57
|
-
get "pages/:id/edit-seo" => "pages#edit_seo"
|
58
|
-
get "pages/:id/edit-resources" => "pages#edit_resources"
|
59
|
-
get "pages/:id/edit-content" => "pages#edit_content"
|
60
|
-
get "pages/:id/edit-title" => "pages#edit_title"
|
61
|
-
get "pages/:id/edit" => "pages#edit"
|
47
|
+
#get "pages" => "pages#index"
|
62
48
|
get "pages/:id" => "pages#show"
|
63
|
-
|
64
|
-
|
65
|
-
|
49
|
+
get "pages/:id/redirect" => "pages#redirect"
|
50
|
+
get "admin/pages/sitemap-options" => "pages#admin_sitemap_options"
|
51
|
+
get "admin/pages/robots-options" => "pages#admin_robots_options"
|
52
|
+
get "admin/pages/format-options" => "pages#admin_content_format_options"
|
53
|
+
get "admin/pages/new" => "pages#admin_new"
|
54
|
+
get "admin/pages/:id/sitemap" => "pages#admin_sitemap"
|
55
|
+
get "admin/pages/:id/edit" => "pages#admin_edit_general"
|
56
|
+
get "admin/pages/:id/css" => "pages#admin_edit_css"
|
57
|
+
get "admin/pages/:id/js" => "pages#admin_edit_js"
|
58
|
+
get "admin/pages/:id/seo" => "pages#admin_edit_seo"
|
59
|
+
get "admin/pages/:id/content" => "pages#admin_edit_content"
|
60
|
+
put "admin/pages/:id" => "pages#admin_update"
|
61
|
+
get "admin/pages" => "pages#admin_index"
|
62
|
+
post "admin/pages" => "pages#admin_create"
|
63
|
+
delete "admin/pages/:id" => "pages#admin_destroy"
|
66
64
|
|
67
65
|
match '*path' => 'pages#show'
|
68
66
|
root :to => 'pages#show'
|
data/lib/caboose/version.rb
CHANGED
data/lib/tasks/caboose.rake
CHANGED
@@ -33,6 +33,28 @@ namespace :caboose do
|
|
33
33
|
|
34
34
|
desc "Performs caboose migrations to transition from the current version to the latest installed version"
|
35
35
|
task :migrate => :migrate_between
|
36
|
+
|
37
|
+
desc "Sync production db to development"
|
38
|
+
task :sync_dev_db do
|
39
|
+
|
40
|
+
ddb = Rails.application.config.database_configuration['development']
|
41
|
+
pdb = Rails.application.config.database_configuration['production']
|
42
|
+
|
43
|
+
dump_file = "#{Rails.root}/db/backups/#{pdb['database']}_#{DateTime.now.strftime('%FT%T')}.dump"
|
44
|
+
if !File.exists?("#{Rails.root}/db/backups")
|
45
|
+
`mkdir -p #{Rails.root}/db/backups`
|
46
|
+
end
|
47
|
+
|
48
|
+
puts "Capturing production database..."
|
49
|
+
`heroku pgbackups:capture`
|
50
|
+
|
51
|
+
puts "Downloading production database dump file..."
|
52
|
+
`curl -o #{dump_file} \`heroku pgbackups:url\``
|
53
|
+
|
54
|
+
puts "Restoring development database from dump file..."
|
55
|
+
`pg_restore --verbose --clean --no-acl --no-owner -h #{ddb['host']} -U #{ddb['username']} -d #{ddb['database']} #{dump_file}`
|
56
|
+
|
57
|
+
end
|
36
58
|
|
37
59
|
#=============================================================================
|
38
60
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: caboose-cms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.62
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- William Barry
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-10-
|
11
|
+
date: 2013-10-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -187,6 +187,7 @@ files:
|
|
187
187
|
- app/controllers/caboose/station_controller.rb
|
188
188
|
- app/controllers/caboose/users_controller.rb
|
189
189
|
- app/helpers/caboose/application_helper.rb
|
190
|
+
- app/helpers/caboose/pages_helper.rb
|
190
191
|
- app/helpers/caboose/permissions_helper.rb
|
191
192
|
- app/models/caboose/approval_request.rb
|
192
193
|
- app/models/caboose/asset.rb
|
@@ -214,18 +215,17 @@ files:
|
|
214
215
|
- app/views/caboose/extras/error.html.erb
|
215
216
|
- app/views/caboose/extras/error404.html.erb
|
216
217
|
- app/views/caboose/login/index.html.erb
|
217
|
-
- app/views/caboose/pages/
|
218
|
-
- app/views/caboose/pages/
|
219
|
-
- app/views/caboose/pages/
|
220
|
-
- app/views/caboose/pages/
|
221
|
-
- app/views/caboose/pages/
|
222
|
-
- app/views/caboose/pages/
|
223
|
-
- app/views/caboose/pages/
|
224
|
-
- app/views/caboose/pages/
|
225
|
-
- app/views/caboose/pages/
|
226
|
-
- app/views/caboose/pages/
|
218
|
+
- app/views/caboose/pages/_admin_footer.html.erb
|
219
|
+
- app/views/caboose/pages/_admin_header.html.erb
|
220
|
+
- app/views/caboose/pages/admin_edit_content.html.erb
|
221
|
+
- app/views/caboose/pages/admin_edit_css.html.erb
|
222
|
+
- app/views/caboose/pages/admin_edit_general.html.erb
|
223
|
+
- app/views/caboose/pages/admin_edit_js.html.erb
|
224
|
+
- app/views/caboose/pages/admin_edit_seo.html.erb
|
225
|
+
- app/views/caboose/pages/admin_index.html.erb
|
226
|
+
- app/views/caboose/pages/admin_new.html.erb
|
227
|
+
- app/views/caboose/pages/admin_sitemap.html.erb
|
227
228
|
- app/views/caboose/pages/show.html.erb
|
228
|
-
- app/views/caboose/pages/sitemap.html.erb
|
229
229
|
- app/views/caboose/pages/test.html.erb
|
230
230
|
- app/views/caboose/pages/update_pic.html.erb
|
231
231
|
- app/views/caboose/pages/update_resume.html.erb
|
@@ -1,56 +0,0 @@
|
|
1
|
-
<h1 id='editmode_title_container' ><%= @page.title %></h1>
|
2
|
-
<div id='editmode_content_container' ><%= @page.content == nil || @page.content.length == 0 ? 'No content.' : (raw @page.content) %></div>
|
3
|
-
|
4
|
-
<% content_for :caboose_css do %>
|
5
|
-
<% @page.linked_resources_map[:css].each do |r| %>
|
6
|
-
<!--link type='text/css' rel='stylesheet' href="<%= r %>" /-->
|
7
|
-
<%= stylesheet_link_tag r %>
|
8
|
-
<% end %>
|
9
|
-
|
10
|
-
<style><%= raw @page.custom_css %></style>
|
11
|
-
<% end %>
|
12
|
-
|
13
|
-
<% content_for :caboose_js do %>
|
14
|
-
|
15
|
-
<% @page.linked_resources_map[:js].each do |r| %>
|
16
|
-
<!--script type='text/javascript' src="<%= r %>" ></script-->
|
17
|
-
<%= javascript_include_tag r %>
|
18
|
-
<% end %>
|
19
|
-
|
20
|
-
<script type='text/javascript'><%= raw @page.custom_js %></script>
|
21
|
-
|
22
|
-
<script type='text/javascript'>
|
23
|
-
$(document).ready(function() {
|
24
|
-
$('#editmode_title_container').click(function() {
|
25
|
-
$.colorbox({
|
26
|
-
href: '/pages/<%= @page.id %>/edit-title',
|
27
|
-
iframe: true,
|
28
|
-
initialWidth: 500,
|
29
|
-
initialHeight: 80,
|
30
|
-
innerWidth: 500,
|
31
|
-
innerHeight: 80,
|
32
|
-
scrolling: false,
|
33
|
-
transition: 'fade',
|
34
|
-
closeButton: false,
|
35
|
-
onComplete: fix_colorbox,
|
36
|
-
opacity: 0.50
|
37
|
-
});
|
38
|
-
});
|
39
|
-
$('#editmode_content_container').click(function() {
|
40
|
-
$.colorbox({
|
41
|
-
href: '/pages/<%= @page.id %>/edit-content',
|
42
|
-
iframe: true,
|
43
|
-
initialWidth: 600,
|
44
|
-
initialHeight: 400,
|
45
|
-
innerWidth: 600,
|
46
|
-
innerHeight: 400,
|
47
|
-
scrolling: false,
|
48
|
-
transition: 'fade',
|
49
|
-
closeButton: false,
|
50
|
-
onComplete: fix_colorbox,
|
51
|
-
opacity: 0.50
|
52
|
-
});
|
53
|
-
});
|
54
|
-
});
|
55
|
-
</script>
|
56
|
-
<% end %>
|
@@ -1,59 +0,0 @@
|
|
1
|
-
|
2
|
-
<textarea id='page_<%= @page.id %>_content' placeholder='Content' style='width:795px; height:545px;' class='tinymce'><%= raw @page.content %></textarea>
|
3
|
-
<br />
|
4
|
-
<div id='message'></div>
|
5
|
-
<div id='controls'>
|
6
|
-
<input type='button' value='Close' onclick="modal.close();" />
|
7
|
-
<input type='button' value='Update' onclick="updateContent();" />
|
8
|
-
</div>
|
9
|
-
|
10
|
-
<% content_for :caboose_js do %>
|
11
|
-
|
12
|
-
<%= javascript_include_tag "caboose/model/all" %>
|
13
|
-
|
14
|
-
<script type="text/javascript">
|
15
|
-
|
16
|
-
var modal = false;
|
17
|
-
$(document).ready(function() {
|
18
|
-
modal = new CabooseModal(800, 700);
|
19
|
-
});
|
20
|
-
|
21
|
-
function updateContent()
|
22
|
-
{
|
23
|
-
tinymce.triggerSave();
|
24
|
-
|
25
|
-
function log(msg) {
|
26
|
-
setTimeout(function() {
|
27
|
-
throw new Error(msg);
|
28
|
-
}, 0);
|
29
|
-
}
|
30
|
-
// log($('#page_<%= @page.id %>_content').val());
|
31
|
-
|
32
|
-
$.ajax({
|
33
|
-
url: '/pages/<%= @page.id %>',
|
34
|
-
type: 'put',
|
35
|
-
data: {
|
36
|
-
authenticity_token: "<%= form_authenticity_token %>",
|
37
|
-
content: $('#page_<%= @page.id %>_content').val()
|
38
|
-
},
|
39
|
-
success: function(resp) {
|
40
|
-
if (resp.success)
|
41
|
-
{
|
42
|
-
contentVal = $('#page_<%= @page.id %>_content').val();
|
43
|
-
parent.$('#editmode_content_container').html(contentVal == null || contentVal.length == 0 ? 'No content.' : contentVal);
|
44
|
-
modal.close();
|
45
|
-
}
|
46
|
-
if (resp.error)
|
47
|
-
modal.autosize("<p class='note success'>" + resp.error + "</p>");
|
48
|
-
}
|
49
|
-
});
|
50
|
-
}
|
51
|
-
|
52
|
-
</script>
|
53
|
-
<%= tinymce :caboose,
|
54
|
-
width:'795px',
|
55
|
-
height:'545px'
|
56
|
-
# theme_advanced_source_editor_width: '100px',
|
57
|
-
# theme_advanced_source_editor_height: '100px'
|
58
|
-
%>
|
59
|
-
<% end %>
|
@@ -1,51 +0,0 @@
|
|
1
|
-
|
2
|
-
<h1>Page Settings</h1>
|
3
|
-
<div class='top_right_controls'>
|
4
|
-
<input type='button' value='General' onclick="window.location='/pages/<%= @page.id %>/edit-settings';" />
|
5
|
-
<input type='button' value='CSS' onclick="window.location='/pages/<%= @page.id %>/edit-css';" disabled='true' />
|
6
|
-
<input type='button' value='JS' onclick="window.location='/pages/<%= @page.id %>/edit-js';" />
|
7
|
-
<input type='button' value='SEO' onclick="window.location='/pages/<%= @page.id %>/edit-seo';" />
|
8
|
-
<input type='button' value='Resources' onclick="window.location='/pages/<%= @page.id %>/edit-resources';" />
|
9
|
-
</div>
|
10
|
-
|
11
|
-
<textarea id='page_<%= @page.id %>_custom_css' placeholder='Custom CSS' style='width:795px; height:595px;'><%= raw @page.custom_css %></textarea>
|
12
|
-
<br />
|
13
|
-
<div id='message'></div>
|
14
|
-
<div id='controls'>
|
15
|
-
<input type='button' value='Close' onclick="modal.close();" />
|
16
|
-
<input type='button' value='Update' onclick="updateCustomCSS();" />
|
17
|
-
</div>
|
18
|
-
|
19
|
-
<% content_for :caboose_js do %>
|
20
|
-
|
21
|
-
<%= javascript_include_tag "caboose/model/all" %>
|
22
|
-
<script type="text/javascript">
|
23
|
-
|
24
|
-
var modal = false;
|
25
|
-
$(document).ready(function() {
|
26
|
-
modal = new CabooseModal(800, 700);
|
27
|
-
});
|
28
|
-
|
29
|
-
function updateCustomCSS()
|
30
|
-
{
|
31
|
-
$.ajax({
|
32
|
-
url: '/pages/<%= @page.id %>',
|
33
|
-
type: 'put',
|
34
|
-
data: {
|
35
|
-
authenticity_token: "<%= form_authenticity_token %>",
|
36
|
-
custom_css: $('#page_<%= @page.id %>_custom_css').val()
|
37
|
-
},
|
38
|
-
success: function(resp) {
|
39
|
-
if (resp.success) {
|
40
|
-
contentVal = $('#page_<%= @page.id %>_custom_css').val();
|
41
|
-
// parent.$('#editmode_content_container').html(contentVal == null || contentVal.length == 0 ? 'No content.' : contentVal);
|
42
|
-
modal.close();
|
43
|
-
}
|
44
|
-
if (resp.error)
|
45
|
-
modal.autosize("<p class='note success'>" + resp.error + "</p>");
|
46
|
-
}
|
47
|
-
});
|
48
|
-
}
|
49
|
-
|
50
|
-
</script>
|
51
|
-
<% end %>
|
@@ -1,51 +0,0 @@
|
|
1
|
-
|
2
|
-
<h1>Page Settings</h1>
|
3
|
-
<div class='top_right_controls'>
|
4
|
-
<input type='button' value='General' onclick="window.location='/pages/<%= @page.id %>/edit-settings';" />
|
5
|
-
<input type='button' value='CSS' onclick="window.location='/pages/<%= @page.id %>/edit-css';" />
|
6
|
-
<input type='button' value='JS' onclick="window.location='/pages/<%= @page.id %>/edit-js';" disabled='true' />
|
7
|
-
<input type='button' value='SEO' onclick="window.location='/pages/<%= @page.id %>/edit-seo';" />
|
8
|
-
<input type='button' value='Resources' onclick="window.location='/pages/<%= @page.id %>/edit-resources';" />
|
9
|
-
</div>
|
10
|
-
|
11
|
-
<textarea id='page_<%= @page.id %>_custom_js' placeholder='Custom Javascript' style='width:795px; height:595px;'><%= raw @page.custom_js %></textarea>
|
12
|
-
<br />
|
13
|
-
<div id='message'></div>
|
14
|
-
<div id='controls'>
|
15
|
-
<input type='button' value='Close' onclick="modal.close();" />
|
16
|
-
<input type='button' value='Update' onclick="updateCustomJs();" />
|
17
|
-
</div>
|
18
|
-
|
19
|
-
<% content_for :caboose_js do %>
|
20
|
-
|
21
|
-
<%= javascript_include_tag "caboose/model/all" %>
|
22
|
-
<script type="text/javascript">
|
23
|
-
|
24
|
-
var modal = false;
|
25
|
-
$(document).ready(function() {
|
26
|
-
modal = new CabooseModal(800, 700);
|
27
|
-
});
|
28
|
-
|
29
|
-
function updateCustomJs()
|
30
|
-
{
|
31
|
-
$.ajax({
|
32
|
-
url: '/pages/<%= @page.id %>',
|
33
|
-
type: 'put',
|
34
|
-
data: {
|
35
|
-
authenticity_token: "<%= form_authenticity_token %>",
|
36
|
-
custom_js: $('#page_<%= @page.id %>_custom_js').val()
|
37
|
-
},
|
38
|
-
success: function(resp) {
|
39
|
-
if (resp.success) {
|
40
|
-
contentVal = $('#page_<%= @page.id %>_custom_js').val();
|
41
|
-
// parent.$('#editmode_content_container').html(contentVal == null || contentVal.length == 0 ? 'No content.' : contentVal);
|
42
|
-
modal.close();
|
43
|
-
}
|
44
|
-
if (resp.error)
|
45
|
-
modal.autosize("<p class='note success'>" + resp.error + "</p>");
|
46
|
-
}
|
47
|
-
});
|
48
|
-
}
|
49
|
-
|
50
|
-
</script>
|
51
|
-
<% end %>
|
@@ -1,41 +0,0 @@
|
|
1
|
-
|
2
|
-
<h1>Page Settings</h1>
|
3
|
-
<div class='top_right_controls'>
|
4
|
-
<input type='button' value='General' onclick="window.location='/pages/<%= @page.id %>/edit-settings';" />
|
5
|
-
<input type='button' value='CSS' onclick="window.location='/pages/<%= @page.id %>/edit-css';" />
|
6
|
-
<input type='button' value='JS' onclick="window.location='/pages/<%= @page.id %>/edit-js';" />
|
7
|
-
<input type='button' value='SEO' onclick="window.location='/pages/<%= @page.id %>/edit-seo';" />
|
8
|
-
<input type='button' value='Resources' onclick="window.location='/pages/<%= @page.id %>/edit-resources';" disabled='true' />
|
9
|
-
</div>
|
10
|
-
<p><div id='page_<%= @page.id %>_linked_resources'></div></p>
|
11
|
-
<p>Here you can provide paths to resources to be included in your page, such as css and javascript files.</p>
|
12
|
-
<br />
|
13
|
-
<p>Paths should be given on separate lines</p>
|
14
|
-
|
15
|
-
<% content_for :caboose_js do %>
|
16
|
-
<%= javascript_include_tag "caboose/model/all" %>
|
17
|
-
<script type="text/javascript">
|
18
|
-
|
19
|
-
var modal = false;
|
20
|
-
$(document).ready(function() {
|
21
|
-
m = new ModelBinder({
|
22
|
-
name: 'Page',
|
23
|
-
id: <%= @page.id %>,
|
24
|
-
update_url: '/pages/<%= @page.id %>',
|
25
|
-
authenticity_token: '<%= form_authenticity_token %>',
|
26
|
-
attributes: [
|
27
|
-
{
|
28
|
-
name: 'linked_resources',
|
29
|
-
nice_name: 'Linked Resources',
|
30
|
-
type: 'textarea',
|
31
|
-
width: 580,
|
32
|
-
height: 400,
|
33
|
-
value: <%= raw Caboose.json(@page.linked_resources) %>
|
34
|
-
}
|
35
|
-
]
|
36
|
-
});
|
37
|
-
modal = new CabooseModal(600, 460);
|
38
|
-
});
|
39
|
-
|
40
|
-
</script>
|
41
|
-
<% end %>
|
@@ -1,51 +0,0 @@
|
|
1
|
-
|
2
|
-
<h1>Page Settings</h1>
|
3
|
-
<div class='top_right_controls'>
|
4
|
-
<input type='button' value='General' onclick="window.location='/pages/<%= @page.id %>/edit-settings';" disabled='true' />
|
5
|
-
<input type='button' value='CSS' onclick="window.location='/pages/<%= @page.id %>/edit-css';" />
|
6
|
-
<input type='button' value='JS' onclick="window.location='/pages/<%= @page.id %>/edit-js';" />
|
7
|
-
<input type='button' value='SEO' onclick="window.location='/pages/<%= @page.id %>/edit-seo';" />
|
8
|
-
<input type='button' value='Resources' onclick="window.location='/pages/<%= @page.id %>/edit-resources';" />
|
9
|
-
</div>
|
10
|
-
<div style='float: left; width: 310px;'>
|
11
|
-
<p><div id='page_<%= @page.id %>_parent_id' ></div></p>
|
12
|
-
<p><div id='page_<%= @page.id %>_menu_title' ></div></p>
|
13
|
-
<p><div id='page_<%= @page.id %>_slug' ></div></p>
|
14
|
-
<p><div id='page_<%= @page.id %>_alias' ></div></p>
|
15
|
-
<p><div id='page_<%= @page.id %>_redirect_url' ></div></p>
|
16
|
-
</div>
|
17
|
-
<div style='float: left;'>
|
18
|
-
<p><div id='page_<%= @page.id %>_hide' ></div></p>
|
19
|
-
<p><div id='page_<%= @page.id %>_layout' ></div></p>
|
20
|
-
<p><div id='page_<%= @page.id %>_custom_sort_children' ></div></p>
|
21
|
-
<p><div id='page_<%= @page.id %>_content_format' ></div></p>
|
22
|
-
</div>
|
23
|
-
|
24
|
-
<% content_for :caboose_js do %>
|
25
|
-
<%= javascript_include_tag "caboose/model/all" %>
|
26
|
-
<script type="text/javascript">
|
27
|
-
|
28
|
-
var modal = false;
|
29
|
-
$(document).ready(function() {
|
30
|
-
m = new ModelBinder({
|
31
|
-
name: 'Page',
|
32
|
-
id: <%= @page.id %>,
|
33
|
-
update_url: '/pages/<%= @page.id %>',
|
34
|
-
authenticity_token: '<%= form_authenticity_token %>',
|
35
|
-
attributes: [
|
36
|
-
{ name: 'parent_id' , nice_name: 'Parent' , type: 'select' , value: <%= @page.parent_id %> , width: 270, text: <%= raw (@page.parent_id == -1 ? "[No Parent]" : @page.parent.title).to_json %>, options_url: '/pages/sitemap-options' },
|
37
|
-
{ name: 'menu_title' , nice_name: 'Menu title' , type: 'text' , value: <%= raw Caboose.json(@page.menu_title ) %> , width: 270 },
|
38
|
-
{ name: 'slug' , nice_name: 'Slug' , type: 'text' , value: <%= raw Caboose.json(@page.slug ) %> , width: 270 },
|
39
|
-
{ name: 'alias' , nice_name: 'Alias' , type: 'text' , value: <%= raw Caboose.json(@page.alias ) %> , width: 270 },
|
40
|
-
{ name: 'redirect_url' , nice_name: 'Redirect URL' , type: 'text' , value: <%= raw Caboose.json(@page.redirect_url ) %> , width: 270 },
|
41
|
-
{ name: 'hide' , nice_name: 'Hide' , type: 'checkbox' , value: <%= raw @page.hide %> , width: 270 },
|
42
|
-
{ name: 'layout' , nice_name: 'Layout' , type: 'text' , value: <%= raw Caboose.json(@page.layout ) %> , width: 270 },
|
43
|
-
{ name: 'custom_sort_children' , nice_name: 'Custom sort children' , type: 'checkbox' , value: <%= raw @page.custom_sort_children %> , width: 270 },
|
44
|
-
{ name: 'content_format' , nice_name: 'Content format' , type: 'select' , value: <%= raw Caboose.json(@page.content_format) %>, width: 270, text: <%= raw Caboose.json(@page.content_format) %>, options_url: '/pages/format-options' },
|
45
|
-
]
|
46
|
-
});
|
47
|
-
modal = new CabooseModal(600, 344);
|
48
|
-
});
|
49
|
-
|
50
|
-
</script>
|
51
|
-
<% end %>
|
@@ -1,30 +0,0 @@
|
|
1
|
-
<p><div id='page_<%= @page.id %>_title'></div></p>
|
2
|
-
|
3
|
-
<% content_for :caboose_js do %>
|
4
|
-
<%= javascript_include_tag "caboose/model/all" %>
|
5
|
-
<script type="text/javascript">
|
6
|
-
|
7
|
-
var modal = false;
|
8
|
-
$(document).ready(function() {
|
9
|
-
m = new ModelBinder({
|
10
|
-
name: 'Page',
|
11
|
-
id: <%= @page.id %>,
|
12
|
-
update_url: '/pages/<%= @page.id %>',
|
13
|
-
authenticity_token: '<%= form_authenticity_token %>',
|
14
|
-
attributes: [{
|
15
|
-
name: 'title',
|
16
|
-
nice_name: 'Title',
|
17
|
-
type: 'text',
|
18
|
-
value: <%= raw Caboose.json(@page.title) %>,
|
19
|
-
width: 480
|
20
|
-
}],
|
21
|
-
success: function(control) {
|
22
|
-
parent.$.fn.colorbox.close();
|
23
|
-
parent.$('#editmode_title_container').html(control.attribute.value);
|
24
|
-
}
|
25
|
-
});
|
26
|
-
modal = new CabooseModal(500, 80);
|
27
|
-
});
|
28
|
-
|
29
|
-
</script>
|
30
|
-
<% end %>
|
@@ -1,33 +0,0 @@
|
|
1
|
-
<h1>Users</h1>
|
2
|
-
|
3
|
-
<p><a href='/users/new'>New User</a></p>
|
4
|
-
|
5
|
-
<form action='/users' method='get'>
|
6
|
-
<table cellpadding='4' cellspacing='0' border='0'>
|
7
|
-
<tr><td>First name: </td><td><input type='text' name='first_name' value='<%= @gen.params['first_name'] %>' style='width: 200px;' /></td></tr>
|
8
|
-
<tr><td>Last name: </td><td><input type='text' name='last_name' value='<%= @gen.params['last_name'] %>' style='width: 200px;' /></td></tr>
|
9
|
-
<tr><td>Username: </td><td><input type='text' name='username' value='<%= @gen.params['username'] %>' style='width: 200px;' /></td></tr>
|
10
|
-
</table><br />
|
11
|
-
<p><input type='submit' value='Search' /></p>
|
12
|
-
</form>
|
13
|
-
|
14
|
-
<table class='data'>
|
15
|
-
<tr>
|
16
|
-
<%= raw @gen.sortable_table_headings({
|
17
|
-
'first_name' => 'First Name',
|
18
|
-
'last_name, first_name' => 'Last Name',
|
19
|
-
'username' => 'Username',
|
20
|
-
'email' => 'Email'
|
21
|
-
}) %>
|
22
|
-
</tr>
|
23
|
-
<% @users.each do |user| %>
|
24
|
-
<tr onclick="window.location='/users/<%= user.id %>/edit';">
|
25
|
-
<td><%= user.first_name %></td>
|
26
|
-
<td><%= user.last_name %></td>
|
27
|
-
<td><%= user.username %></td>
|
28
|
-
<td><%= user.email %></td>
|
29
|
-
</tr>
|
30
|
-
<% end %>
|
31
|
-
</table>
|
32
|
-
|
33
|
-
<p><%= raw @gen.generate %></p>
|