caboose-cms 0.2.5 → 0.2.6

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.
Files changed (39) hide show
  1. data/app/assets/javascripts/caboose/modal.js +4 -0
  2. data/app/assets/javascripts/caboose/modal_integration.js +10 -0
  3. data/app/assets/javascripts/caboose/model/all.js +9 -0
  4. data/app/assets/javascripts/caboose/model/attribute.js +63 -0
  5. data/app/assets/javascripts/caboose/model/bound_checkbox.js +90 -0
  6. data/app/assets/javascripts/caboose/model/bound_checkbox_multiple.js +106 -0
  7. data/app/assets/javascripts/caboose/model/bound_control.js +68 -0
  8. data/app/assets/javascripts/caboose/model/bound_select.js +108 -0
  9. data/app/assets/javascripts/caboose/model/bound_text.js +87 -0
  10. data/app/assets/javascripts/caboose/model/bound_textarea.js +134 -0
  11. data/app/assets/javascripts/caboose/model/class.js +64 -0
  12. data/app/assets/javascripts/caboose/model/model.js +37 -0
  13. data/app/assets/javascripts/caboose/model/model_binder.js +61 -0
  14. data/app/assets/javascripts/caboose/shortcut.js +11 -0
  15. data/app/assets/javascripts/caboose/station.js +7 -5
  16. data/app/assets/stylesheets/caboose/modal.css +106 -1
  17. data/app/controllers/caboose/admin_controller.rb +1 -9
  18. data/app/controllers/caboose/pages_controller.rb +43 -14
  19. data/app/controllers/caboose/station_controller.rb +3 -0
  20. data/app/models/caboose/page_plugin.rb +1 -1
  21. data/app/models/caboose/user_plugin.rb +1 -1
  22. data/app/views/caboose/admin/index.html.erb +0 -4
  23. data/app/views/caboose/pages/edit.html.erb +6 -19
  24. data/app/views/caboose/pages/edit_content.html.erb +48 -0
  25. data/app/views/caboose/pages/edit_css.html.erb +36 -0
  26. data/app/views/caboose/pages/edit_js.html.erb +36 -0
  27. data/app/views/caboose/pages/edit_seo.html.erb +39 -0
  28. data/app/views/caboose/pages/edit_settings.html.erb +35 -24
  29. data/app/views/caboose/pages/edit_title.html.erb +29 -0
  30. data/app/views/caboose/pages/show.html.erb +2 -2
  31. data/app/views/caboose/station/index.html.erb +5 -2
  32. data/app/views/caboose/users/edit.html.erb +1 -1
  33. data/app/views/layouts/caboose/_admin_top_nav.html.erb +1 -3
  34. data/app/views/layouts/caboose/_top_nav.html.erb +1 -1
  35. data/app/views/layouts/caboose/application.html.erb +2 -2
  36. data/config/routes.rb +6 -1
  37. data/lib/caboose/version.rb +1 -1
  38. metadata +19 -3
  39. data/app/assets/javascripts/caboose/bound_input.js +0 -198
@@ -4,15 +4,7 @@ module Caboose
4
4
 
5
5
  # GET /admin
6
6
  def index
7
- return if !user_is_allowed('admin', 'view')
8
-
9
- @mods = [
10
- { 'href' => '/admin/users' , 'text' => 'Users' },
11
- { 'href' => '/admin/roles' , 'text' => 'Roles' },
12
- { 'href' => '/admin/permissions' , 'text' => 'Permissions' }
13
- ]
14
- @mods = Caboose.plugin_hook('admin_nav', @mods)
15
-
7
+ return if !user_is_allowed('admin', 'view')
16
8
  end
17
9
 
18
10
  # GET /station
@@ -40,6 +40,7 @@ module Caboose
40
40
  page.content = Caboose.plugin_hook('page_content', page.content)
41
41
  @page = page
42
42
  @user = user
43
+ @editmode = !params['edit'].nil? && user.is_allowed('pages', 'edit') ? true : false
43
44
  @crumb_trail = Caboose::Page.crumb_trail(@page)
44
45
  @subnav = Caboose::Page.subnav(@page, session['use_redirect_urls'], @user)
45
46
 
@@ -108,24 +109,48 @@ module Caboose
108
109
  def edit
109
110
  return if !user_is_allowed('pages', 'edit')
110
111
  @page = Page.find(params[:id])
111
-
112
- session['caboose_station_state'] = 'left'
113
- session['caboose_station_open_tabs'] = ['pages']
114
- session['caboose_station_return_url'] = "/#{@page.uri}"
115
-
116
- render :layout => 'caboose/admin'
112
+ end
113
+
114
+ # GET /pages/1/edit-title
115
+ def edit_title
116
+ return if !user_is_allowed('pages', 'edit')
117
+ @page = Page.find(params[:id])
118
+ render :layout => 'caboose/modal'
119
+ end
120
+
121
+ # GET /pages/1/edit-content
122
+ def edit_content
123
+ return if !user_is_allowed('pages', 'edit')
124
+ @page = Page.find(params[:id])
125
+ render :layout => 'caboose/modal'
117
126
  end
118
127
 
119
128
  # GET /pages/1/edit-settings
120
129
  def edit_settings
121
130
  return if !user_is_allowed('pages', 'edit')
122
131
  @page = Page.find(params[:id])
123
-
124
- session['caboose_station_state'] = 'left'
125
- session['caboose_station_open_tabs'] = ['pages']
126
- session['caboose_station_return_url'] = "/#{@page.uri}"
127
-
128
- render :layout => 'caboose/admin'
132
+ render :layout => 'caboose/modal'
133
+ end
134
+
135
+ # GET /pages/1/edit-css
136
+ def edit_css
137
+ return if !user_is_allowed('pages', 'edit')
138
+ @page = Page.find(params[:id])
139
+ render :layout => 'caboose/modal'
140
+ end
141
+
142
+ # GET /pages/1/edit-js
143
+ def edit_js
144
+ return if !user_is_allowed('pages', 'edit')
145
+ @page = Page.find(params[:id])
146
+ render :layout => 'caboose/modal'
147
+ end
148
+
149
+ # GET /pages/1/edit-seo
150
+ def edit_seo
151
+ return if !user_is_allowed('pages', 'edit')
152
+ @page = Page.find(params[:id])
153
+ render :layout => 'caboose/modal'
129
154
  end
130
155
 
131
156
  # POST /pages
@@ -210,12 +235,16 @@ module Caboose
210
235
  resp.attributes['parent_id'] = { 'text' => parent.title }
211
236
  end
212
237
 
213
- when 'title', 'menu_title', 'alias', 'redirect_url', 'hide',
214
- 'content_format', 'custom_css', 'custom_js', 'layout',
238
+ when 'title', 'menu_title', 'alias', 'hide',
239
+ 'custom_css', 'custom_js', 'layout', 'redirect_url',
215
240
  'seo_title', 'meta_description', 'fb_description', 'gp_description', 'canonical_url'
216
241
 
217
242
  page[name.to_sym] = value
218
243
 
244
+ when 'content_format'
245
+ page.content_format = value
246
+ resp.attributes['content_format'] = { 'text' => value }
247
+
219
248
  when 'meta_robots'
220
249
  if (value.include?('index') && value.include?('noindex'))
221
250
  resp.error = "You can't have both index and noindex"
@@ -6,6 +6,9 @@ module Caboose
6
6
  # GET /station
7
7
  def index
8
8
  @user = logged_in_user
9
+ page_id = params['page_id'].nil? ? 1 : params['page_id']
10
+ @page = Page.find(page_id)
11
+ @tab = params['tab']
9
12
 
10
13
  if (@user.nil? || @user == Caboose::User.logged_out_user)
11
14
  redirect_to "/login"
@@ -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' }
18
+ item['children'] << { 'href' => "/pages/#{page.id}/edit-settings" , 'text' => 'Edit Page Settings', 'modal' => true }
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' }
@@ -1,6 +1,6 @@
1
1
  class Caboose::UserPlugin < Caboose::CaboosePlugin
2
2
 
3
- def self.admin_nav(nav, user, page)
3
+ def self.admin_nav(nav, user = nil, page = nil)
4
4
  return nav if user.nil? || !user.is_allowed('users', 'view')
5
5
 
6
6
  item = {
@@ -1,5 +1 @@
1
1
  <h1>Admin</h1>
2
-
3
- <% @mods.each do |mod| %>
4
- <p><a href='<%= mod['href'] %>'><%= mod['text'] %></a></p>
5
- <% end %>
@@ -1,25 +1,12 @@
1
-
2
- <h1>Edit Page Content</h1>
3
- <p class='current_page_editing'>Currently editing: /<%= @page.uri %></p>
4
-
5
- <div id='page_<%= @page.id %>_container'></div>
6
-
1
+ <% content_for :page_title do %><%= raw "<span id='editmode_title_container'>#{@page.title}</span>" %><% end %>
2
+ <% content_for :page_content do %><%= raw "<div id='editmode_content_container'>#{@page.content}</div>" %><% end %>
7
3
  <% content_for :caboose_js do %>
8
- <%= javascript_include_tag "caboose/model.form.page" %>
9
- <script type="text/javascript">
4
+ <script type='text/javascript'>
10
5
 
11
6
  $(document).ready(function() {
12
- var page = new Model({
13
- name: 'Page',
14
- id: <%= @page.id %>,
15
- form: 'Model.Form.Page',
16
- attributes: [
17
- { name: 'title' , type: 'h1' , value: <%= raw Caboose.json(@page.title ) %>, width: '500px' },
18
- { name: 'content' , type: 'rich-text' , value: <%= raw Caboose.json(@page.content ) %> }
19
- ]
20
- });
7
+ $('#editmode_title_container' ).click(function() { $.colorbox({ href: '/pages/<%= @page.id %>/edit-title' , iframe: true, initialWidth: 500, initialHeight: 80, innerWidth: 500, innerHeight: 80, scrolling: false, transition: 'fade', closeButton: false, onComplete: fix_colorbox, opacity: 0.50 }); });
8
+ $('#editmode_content_container').click(function() { $.colorbox({ href: '/pages/<%= @page.id %>/edit-content' , iframe: true, initialWidth: 600, initialHeight: 400, innerWidth: 600, innerHeight: 400, scrolling: false, transition: 'fade', closeButton: false, onComplete: fix_colorbox, opacity: 0.50 }); });
21
9
  });
22
10
 
23
11
  </script>
24
- <%= tinymce :caboose %>
25
- <% end %>
12
+ <% end %>
@@ -0,0 +1,48 @@
1
+
2
+ <p><textarea id='page_<%= @page.id %>_content' placeholder='Content' style='width: 600px; height: 400px;' class='tinymce'><%= raw @page.content %></textarea></p>
3
+ <div id='message'></div>
4
+ <div id='controls'>
5
+ <input type='button' value='Close' onclick="modal.close();" />
6
+ <input type='button' value='Update' onclick="updateContent();" />
7
+ </div>
8
+
9
+ <% content_for :caboose_css do %>
10
+
11
+ <% end %>
12
+
13
+ <% content_for :caboose_js do %>
14
+ <%= javascript_include_tag "caboose/model/all" %>
15
+ <%= javascript_include_tag "tinymce/preinit.js" %>
16
+ <%= javascript_include_tag "tinymce/tinymce_jquery.js" %>
17
+ <%= javascript_include_tag "tinymce/jquery.tinymce.js" %>
18
+ <%= javascript_include_tag "tinymce-jquery.js" %>
19
+ <script type="text/javascript">
20
+
21
+ var modal = false;
22
+ $(document).ready(function() {
23
+ modal = new CabooseModal(600, 475);
24
+ });
25
+
26
+ function updateContent()
27
+ {
28
+ tinymce.triggerSave();
29
+ $.ajax({
30
+ url: '/pages/<%= @page.id %>',
31
+ type: 'put',
32
+ data: {
33
+ content: $('#page_<%= @page.id %>_content').val()
34
+ },
35
+ success: function(resp) {
36
+ if (resp.success)
37
+ {
38
+ parent.$('#editmode_content_container').html($('#page_<%= @page.id %>_content').val());
39
+ modal.close();
40
+ }
41
+ if (resp.error)
42
+ modal.autosize("<p class='note success'>" + resp.error + "</p>");
43
+ }
44
+ });
45
+ }
46
+ </script>
47
+ <%= tinymce :caboose %>
48
+ <% end %>
@@ -0,0 +1,36 @@
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' disabled='true' 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
+ </div>
9
+ <p><div id='page_<%= @page.id %>_custom_css'></div></p>
10
+
11
+ <% content_for :caboose_js do %>
12
+ <%= javascript_include_tag "caboose/model/all" %>
13
+ <script type="text/javascript">
14
+
15
+ var modal = false;
16
+ $(document).ready(function() {
17
+ m = new ModelBinder({
18
+ name: 'Page',
19
+ id: <%= @page.id %>,
20
+ update_url: '/pages/<%= @page.id %>',
21
+ attributes: [
22
+ {
23
+ name: 'custom_css',
24
+ nice_name: 'Custom CSS',
25
+ type: 'textarea',
26
+ width: 580,
27
+ height: 400,
28
+ value: <%= raw Caboose.json(@page.custom_css) %>
29
+ }
30
+ ]
31
+ });
32
+ modal = new CabooseModal(600, 460);
33
+ });
34
+
35
+ </script>
36
+ <% end %>
@@ -0,0 +1,36 @@
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' disabled='true' onclick="window.location='/pages/<%= @page.id %>/edit-js';" />
7
+ <input type='button' value='SEO' onclick="window.location='/pages/<%= @page.id %>/edit-seo';" />
8
+ </div>
9
+ <p><div id='page_<%= @page.id %>_custom_js'></div></p>
10
+
11
+ <% content_for :caboose_js do %>
12
+ <%= javascript_include_tag "caboose/model/all" %>
13
+ <script type="text/javascript">
14
+
15
+ var modal = false;
16
+ $(document).ready(function() {
17
+ m = new ModelBinder({
18
+ name: 'Page',
19
+ id: <%= @page.id %>,
20
+ update_url: '/pages/<%= @page.id %>',
21
+ attributes: [
22
+ {
23
+ name: 'custom_js',
24
+ nice_name: 'Custom Javascript',
25
+ type: 'textarea',
26
+ width: 580,
27
+ height: 400,
28
+ value: <%= raw Caboose.json(@page.custom_js) %>
29
+ }
30
+ ]
31
+ });
32
+ modal = new CabooseModal(600, 460);
33
+ });
34
+
35
+ </script>
36
+ <% end %>
@@ -0,0 +1,39 @@
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' disabled='true' onclick="window.location='/pages/<%= @page.id %>/edit-seo';" />
8
+ </div>
9
+ <p><div id='page_<%= @page.id %>_seo_title'></div></p>
10
+ <p><div id='page_<%= @page.id %>_meta_description'></div></p>
11
+ <p><div id='page_<%= @page.id %>_meta_robots'></div></p>
12
+ <p><div id='page_<%= @page.id %>_canonical_url'></div></p>
13
+ <p><div id='page_<%= @page.id %>_fb_description'></div></p>
14
+ <p><div id='page_<%= @page.id %>_gp_description'></div></p>
15
+
16
+ <% content_for :caboose_js do %>
17
+ <%= javascript_include_tag "caboose/model/all" %>
18
+ <script type="text/javascript">
19
+
20
+ var modal = false;
21
+ $(document).ready(function() {
22
+ m = new ModelBinder({
23
+ name: 'Page',
24
+ id: <%= @page.id %>,
25
+ update_url: '/pages/<%= @page.id %>',
26
+ attributes: [
27
+ { name: 'seo_title' , nice_name: 'SEO Title' , type: 'text' , value: <%= raw Caboose.json(@page.seo_title) %>, width: 580 },
28
+ { name: 'meta_robots' , nice_name: 'Meta Robots' , type: 'text' , value: <%= raw Caboose.json(@page.meta_robots) %>, width: 580 },
29
+ { name: 'canonical_url' , nice_name: 'Canonical URL' , type: 'text' , value: <%= raw Caboose.json(@page.canonical_url) %>, width: 580 },
30
+ { name: 'meta_description' , nice_name: 'Meta Description' , type: 'textarea' , value: <%= raw Caboose.json(@page.meta_description) %>, width: 580, height: 80 },
31
+ { name: 'fb_description' , nice_name: 'Facebook Description' , type: 'textarea' , value: <%= raw Caboose.json(@page.fb_description) %>, width: 580, height: 80 },
32
+ { name: 'gp_description' , nice_name: 'Google+ Description' , type: 'textarea' , value: <%= raw Caboose.json(@page.gp_description) %>, width: 580, height: 80 }
33
+ ]
34
+ });
35
+ modal = new CabooseModal(600, 540);
36
+ });
37
+
38
+ </script>
39
+ <% end %>
@@ -1,38 +1,49 @@
1
1
 
2
- <h1>Edit Page Settings</h1>
3
- <p class='current_page_editing'>Currently editing: /<%= @page.uri %></p>
4
-
5
- <div id='page_<%= @page.id %>_container'></div>
2
+ <h1>Page Settings</h1>
3
+ <div class='top_right_controls'>
4
+ <input type='button' value='General' disabled='true' 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
+ </div>
9
+ <div style='float: left; width: 310px;'>
10
+ <p><div id='page_<%= @page.id %>_parent_id' ></div></p>
11
+ <p><div id='page_<%= @page.id %>_menu_title' ></div></p>
12
+ <p><div id='page_<%= @page.id %>_slug' ></div></p>
13
+ <p><div id='page_<%= @page.id %>_alias' ></div></p>
14
+ <p><div id='page_<%= @page.id %>_redirect_url' ></div></p>
15
+ </div>
16
+ <div style='float: left;'>
17
+ <p><div id='page_<%= @page.id %>_hide' ></div></p>
18
+ <p><div id='page_<%= @page.id %>_layout' ></div></p>
19
+ <p><div id='page_<%= @page.id %>_custom_sort_children' ></div></p>
20
+ <p><div id='page_<%= @page.id %>_content_format' ></div></p>
21
+ </div>
6
22
 
7
23
  <% content_for :caboose_js do %>
24
+ <%= javascript_include_tag "caboose/model/all" %>
8
25
  <script type="text/javascript">
9
26
 
27
+ var modal = false;
10
28
  $(document).ready(function() {
11
- var page = new Model({
29
+ m = new ModelBinder({
12
30
  name: 'Page',
13
31
  id: <%= @page.id %>,
32
+ update_url: '/pages/<%= @page.id %>',
14
33
  attributes: [
15
- { name: 'parent_id' , nice_name: 'Parent' , type: 'select' , value: <%= raw Caboose.json(@page.parent_id, -1 ) %>, text: <%= raw (@page.parent_id == -1 ? "[No Parent]" : @page.parent.title).to_json %>, options_url: '/pages/sitemap-options' },
16
- { name: 'menu_title' , nice_name: 'Menu title' , type: 'text' , value: <%= raw Caboose.json(@page.menu_title ) %> },
17
- { name: 'slug' , nice_name: 'Slug' , type: 'text' , value: <%= raw Caboose.json(@page.slug ) %> },
18
- { name: 'alias' , nice_name: 'Alias' , type: 'text' , value: <%= raw Caboose.json(@page.alias ) %> },
19
- { name: 'redirect_url' , nice_name: 'Redirect URL' , type: 'text' , value: <%= raw Caboose.json(@page.redirect_url ) %> },
20
- { name: 'hide' , nice_name: 'Hide' , type: 'checkbox' , value: <%= raw @page.hide %> },
21
- { name: 'content_format' , nice_name: 'Content format' , type: 'select' , value: <%= raw Caboose.json(@page.content_format ) %> },
22
- { name: 'custom_css' , nice_name: 'Custom CSS' , type: 'textarea' , value: <%= raw Caboose.json(@page.custom_css ) %> },
23
- { name: 'custom_js' , nice_name: 'Custom javascript' , type: 'textarea' , value: <%= raw Caboose.json(@page.custom_js ) %> },
24
- { name: 'layout' , nice_name: 'Layout' , type: 'text' , value: <%= raw Caboose.json(@page.layout ) %> },
25
- { name: 'custom_sort_children' , nice_name: 'Custom sort child pages' , type: 'checkbox' , value: <%= raw @page.custom_sort_children%> },
26
- { name: 'seo_title' , nice_name: 'SEO title' , type: 'text' , value: <%= raw Caboose.json(@page.seo_title ) %> },
27
- { name: 'meta_description' , nice_name: 'Meta description' , type: 'text' , value: <%= raw Caboose.json(@page.meta_description ) %> },
28
- { name: 'meta_robots' , nice_name: 'Meta robots' , type: 'checkbox-multiple' , value: <%= raw (@page.meta_robots.nil? ? [] : @page.meta_robots.split(', ')).to_json %>, text: <%= raw (@page.meta_robots.nil? ? "[Empty]" : @page.meta_robots).to_json %>, options_url: '/pages/robots-options' },
29
- { name: 'canonical_url' , nice_name: 'Canonical URL' , type: 'text' , value: <%= raw Caboose.json(@page.canonical_url ) %> },
30
- { name: 'fb_description' , nice_name: 'Facebook description' , type: 'text' , value: <%= raw Caboose.json(@page.fb_description ) %> },
31
- { name: 'gp_description' , nice_name: 'Google+ description' , type: 'text' , value: <%= raw Caboose.json(@page.gp_description ) %> }
34
+ { 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' },
35
+ { name: 'menu_title' , nice_name: 'Menu title' , type: 'text' , value: <%= raw Caboose.json(@page.menu_title ) %> , width: 270 },
36
+ { name: 'slug' , nice_name: 'Slug' , type: 'text' , value: <%= raw Caboose.json(@page.slug ) %> , width: 270 },
37
+ { name: 'alias' , nice_name: 'Alias' , type: 'text' , value: <%= raw Caboose.json(@page.alias ) %> , width: 270 },
38
+ { name: 'redirect_url' , nice_name: 'Redirect URL' , type: 'text' , value: <%= raw Caboose.json(@page.redirect_url ) %> , width: 270 },
39
+ { name: 'hide' , nice_name: 'Hide' , type: 'checkbox' , value: <%= raw @page.hide %> , width: 270 },
40
+ { name: 'layout' , nice_name: 'Layout' , type: 'text' , value: <%= raw Caboose.json(@page.layout ) %> , width: 270 },
41
+ { name: 'custom_sort_children' , nice_name: 'Custom sort children' , type: 'checkbox' , value: <%= raw @page.custom_sort_children %> , width: 270 },
42
+ { 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' },
32
43
  ]
33
- });
44
+ });
45
+ modal = new CabooseModal(600, 344);
34
46
  });
35
47
 
36
48
  </script>
37
- <%= tinymce :caboose %>
38
49
  <% end %>
@@ -0,0 +1,29 @@
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
+ attributes: [{
14
+ name: 'title',
15
+ nice_name: 'Title',
16
+ type: 'text',
17
+ value: <%= raw Caboose.json(@page.title) %>,
18
+ width: 480
19
+ }],
20
+ success: function(control) {
21
+ parent.$.fn.colorbox.close();
22
+ parent.$('#editmode_title_container').html(control.attribute.value);
23
+ }
24
+ });
25
+ modal = new CabooseModal(500, 80);
26
+ });
27
+
28
+ </script>
29
+ <% end %>