browsercms_s3 3.0.4 → 3.0.5

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.
@@ -50,6 +50,7 @@ The user documentation and guides for this version of the application can be fou
50
50
 
51
51
  1. http://browsercms.org/doc/guides/html/index.html - User guides and manuals that cover the features and general functionality of the project. (Found locally at doc/guides/html/index.html)
52
52
  2. http://browsercms.org/doc/app/index.html - The RDoc API documenation (locally at doc/app/index.html)
53
+ 3. http://wiki.github.com/browsermedia/browsercms - The project wiki
53
54
 
54
55
  ## Modifying the source
55
56
  If you want to experiment with the source code, the BrowserCMS project can bootstrap itself as a web application. This allows developers who want to contribute to the project to easily alter and test changes. To run the application itself, do the following:
@@ -58,7 +58,7 @@ class Cms::ContentController < Cms::ApplicationController
58
58
  # if caching is not enabled
59
59
  def render_page
60
60
  @_page_route.execute(self) if @_page_route
61
- prepare_connectables_for_render unless (logged_in? && current_user.able_to?(:administrate, :edit_content, :publish_content))
61
+ prepare_connectables_for_render
62
62
  render :layout => @page.layout, :action => 'show'
63
63
  end
64
64
 
@@ -95,7 +95,7 @@ class Cms::ContentController < Cms::ApplicationController
95
95
  @template.instance_variable_set("#{v}", nil)
96
96
  end
97
97
 
98
- prepare_connectables_for_render unless (logged_in? && current_user.able_to?(:administrate, :edit_content, :publish_content))
98
+ prepare_connectables_for_render
99
99
  render :layout => @page.layout, :template => 'cms/content/show', :status => status
100
100
  else
101
101
  handle_server_error(exception)
@@ -105,23 +105,28 @@ class Cms::ContentController < Cms::ApplicationController
105
105
  # If any of the page's connectables (portlets, etc) are renderable, they may have a render method
106
106
  # which does "controller" stuff, so we need to get that run before rendering the page.
107
107
  def prepare_connectables_for_render
108
- worst_exception = nil
109
- @page.connectables_by_connector.values.each do |c|
110
- begin
111
- c.prepare_to_render(self)
112
- rescue
113
- logger.debug "THROWN EXCEPTION by connectable #{c}: #{$!}"
114
- case $!
115
- when ActiveRecord::RecordNotFound
116
- raise
117
- when Cms::Errors::AccessDenied
118
- worst_exception = $!
119
- else
120
- c.render_exception = $!
108
+
109
+ @_connectors = @page.connectors.for_page_version(@page.version)
110
+ @_connectables = @_connectors.map(&:connectable_with_deleted)
111
+ unless (logged_in? && current_user.able_to?(:administrate, :edit_content, :publish_content))
112
+ worst_exception = nil
113
+ @_connectables.each do |c|
114
+ begin
115
+ c.prepare_to_render(self)
116
+ rescue
117
+ logger.debug "THROWN EXCEPTION by connectable #{c}: #{$!}"
118
+ case $!
119
+ when ActiveRecord::RecordNotFound
120
+ raise
121
+ when Cms::Errors::AccessDenied
122
+ worst_exception = $!
123
+ else
124
+ c.render_exception = $!
125
+ end
121
126
  end
122
127
  end
123
- end
124
- raise worst_exception if worst_exception
128
+ raise worst_exception if worst_exception
129
+ end
125
130
  end
126
131
 
127
132
  # ----- Before Filters -------------------------------------------------------
@@ -1,5 +1,5 @@
1
1
  class Cms::PagesController < Cms::BaseController
2
-
2
+
3
3
  before_filter :set_toolbar_tab
4
4
  before_filter :load_section, :only => [:new, :create]
5
5
  before_filter :load_page, :only => [:versions, :version, :revert_to, :destroy]
@@ -18,7 +18,7 @@ class Cms::PagesController < Cms::BaseController
18
18
  def show
19
19
  redirect_to Page.find(params[:id]).path
20
20
  end
21
-
21
+
22
22
  def create
23
23
  @page = Page.new(params[:page])
24
24
  @page.section = @section
@@ -38,7 +38,7 @@ class Cms::PagesController < Cms::BaseController
38
38
  render :action => "edit"
39
39
  end
40
40
  rescue ActiveRecord::StaleObjectError => e
41
- @other_version = @page.class.find(@page.id)
41
+ @other_version = @page.class.find(@page.id)
42
42
  render :action => "edit"
43
43
  end
44
44
 
@@ -55,7 +55,7 @@ class Cms::PagesController < Cms::BaseController
55
55
  end
56
56
  end
57
57
  end
58
-
58
+
59
59
  #status actions
60
60
  {:publish => "published", :hide => "hidden", :archive => "archived"}.each do |status, verb|
61
61
  define_method status do
@@ -74,25 +74,27 @@ class Cms::PagesController < Cms::BaseController
74
74
  end
75
75
  end
76
76
  end
77
-
77
+
78
78
  def version
79
79
  @page = @page.as_of_version(params[:version])
80
80
  @show_toolbar = true
81
81
  @show_page_toolbar = true
82
+ @_connectors = @page.connectors.for_page_version(@page.version)
83
+ @_connectables = @_connectors.map(&:connectable_with_deleted)
82
84
  render :layout => @page.layout, :template => 'cms/content/show'
83
- end
84
-
85
+ end
86
+
85
87
  def revert_to
86
88
  if @page.revert_to(params[:version])
87
89
  flash[:notice] = "Page '#{@page.name}' was reverted to version #{params[:version]}"
88
90
  end
89
-
91
+
90
92
  respond_to do |format|
91
93
  format.html { redirect_to @page.path }
92
94
  format.js { render :template => 'cms/shared/show_notice' }
93
- end
95
+ end
94
96
  end
95
-
97
+
96
98
  private
97
99
  def strip_publish_params
98
100
  unless current_user.able_to?(:publish_content)
@@ -105,17 +107,17 @@ class Cms::PagesController < Cms::BaseController
105
107
  @page = Page.find(params[:id])
106
108
  raise Cms::Errors::AccessDenied unless current_user.able_to_edit?(@page)
107
109
  end
108
-
110
+
109
111
  def load_draft_page
110
112
  load_page
111
113
  @page = @page.as_of_draft_version
112
114
  end
113
-
115
+
114
116
  def load_section
115
117
  @section = Section.find(params[:section_id])
116
118
  raise Cms::Errors::AccessDenied unless current_user.able_to_edit?(@section)
117
119
  end
118
-
120
+
119
121
  def hide_toolbar
120
122
  @hide_page_toolbar = true
121
123
  end
@@ -123,9 +125,9 @@ class Cms::PagesController < Cms::BaseController
123
125
  def set_toolbar_tab
124
126
  @toolbar_tab = :sitemap
125
127
  end
126
-
128
+
127
129
  def load_templates
128
130
  @templates = PageTemplate.options
129
131
  end
130
-
132
+
131
133
  end
@@ -3,11 +3,11 @@ class Cms::SessionsController < Cms::ApplicationController
3
3
 
4
4
  before_filter :redirect_to_cms_site, :only => [:new]
5
5
  layout "cms/login"
6
-
6
+
7
7
  def new
8
-
8
+
9
9
  end
10
-
10
+
11
11
  def create
12
12
  logout_keeping_session!
13
13
  user = User.authenticate(params[:login], params[:password])
@@ -21,7 +21,7 @@ class Cms::SessionsController < Cms::ApplicationController
21
21
  handle_remember_cookie! new_cookie_flag
22
22
  flash[:notice] = "Logged in successfully"
23
23
  if params[:success_url] # Coming from login portlet
24
- redirect_to(session[:return_to] || params[:success_url] || "/")
24
+ redirect_to((!params[:success_url].blank? && params[:success_url]) || session[:return_to] || "/")
25
25
  session[:return_to] = nil
26
26
  else
27
27
  redirect_back_or_default(cms_home_url)
@@ -30,7 +30,7 @@ class Cms::SessionsController < Cms::ApplicationController
30
30
  note_failed_signin
31
31
  @login = params[:login]
32
32
  @remember_me = params[:remember_me]
33
- flash[:login_error] = "Log in failed"
33
+ flash[:login_error] = "Log in failed"
34
34
  if params[:success_url] # Coming from login portlet
35
35
  if params[:success_url].blank?
36
36
  success_url = session[:return_to] || "/"
@@ -42,23 +42,30 @@ class Cms::SessionsController < Cms::ApplicationController
42
42
  flash[:success_url] = success_url
43
43
  redirect_to request.referrer
44
44
  else
45
- render :action => "new"
46
- end
45
+ render :action => "new"
46
+ end
47
47
  end
48
48
  end
49
49
 
50
50
  def destroy
51
+ logout_user
52
+ redirect_back_or_default("/")
53
+ end
54
+
55
+ protected
56
+
57
+ # Pulled this out as a separate method so that modules (like bcms_cas) can override/alias destroy and
58
+ # not have a redirect happen as a side effect.
59
+ def logout_user
51
60
  logout_killing_session!
52
61
  cookies.delete :openSectionNodes
53
62
  flash[:notice] = "You have been logged out."
54
- redirect_back_or_default("/")
55
63
  end
56
64
 
57
- protected
58
65
  # Track failed login attempts
59
66
  def note_failed_signin
60
67
  flash[:error] = "Couldn't log you in as '#{params[:login]}'"
61
68
  logger.warn "Failed login for '#{params[:login]}' from #{request.remote_ip} at #{Time.now.utc}"
62
69
  end
63
-
70
+
64
71
  end
@@ -22,7 +22,7 @@ module Cms
22
22
  # * <tt>:children</tt> - An array of hashes containing the child menu items. This is where the
23
23
  # tree structure comes in.
24
24
  def render_menu(options = {})
25
- options[:items] ||= menu_items
25
+ options[:items] ||= menu_items(options)
26
26
  options[:partial] ||= "cms/menus/menu"
27
27
  options[:id] ||= "menu"
28
28
  options[:class] ||= "menu"
@@ -1,5 +1,11 @@
1
+ #
2
+ # A group represents a collection of permissions. Each User can be assigned to one or more groups, and the sum of
3
+ # their permissions from all groups combined represents what they can do.
4
+ #
1
5
  class Group < ActiveRecord::Base
2
-
6
+
7
+ GUEST_CODE = "guest"
8
+
3
9
  has_many :user_group_memberships
4
10
  has_many :users, :through => :user_group_memberships
5
11
 
@@ -26,5 +32,10 @@ class Group < ActiveRecord::Base
26
32
  def cms_access?
27
33
  group_type && group_type.cms_access?
28
34
  end
29
-
35
+
36
+ # Finds the guest group, which is a special group that represents public non-logged in users.
37
+ def self.guest
38
+ with_code(GUEST_CODE).first
39
+ end
40
+
30
41
  end
@@ -1,7 +1,13 @@
1
+ #
2
+ # Guests are a special user that represents a non-logged in user. The main reason to create an explicit
3
+ # instance of this type of user is so that the permissions a Guest user can have can be set via the Admin interface.
4
+ #
5
+ # Every request that a non-logged in user makes will use this User's permissions to determine what they can/can't do.
6
+ #
1
7
  class GuestUser < User
2
-
8
+
3
9
  def initialize(attributes={})
4
- super({:login => "guest", :first_name => "Anonymous", :last_name => "User"}.merge(attributes))
10
+ super({:login => Group::GUEST_CODE, :first_name => "Anonymous", :last_name => "User"}.merge(attributes))
5
11
  @guest = true
6
12
  end
7
13
 
@@ -18,7 +24,7 @@ class GuestUser < User
18
24
  end
19
25
 
20
26
  def group
21
- @group ||= Group.find_by_code("guest")
27
+ @group ||= Group.guest
22
28
  end
23
29
 
24
30
  def groups
@@ -151,17 +151,6 @@ class Page < ActiveRecord::Base
151
151
  def delete_connectors
152
152
  connectors.for_page_version(version).all.each{|c| c.destroy }
153
153
  end
154
-
155
- def connectables_by_connector
156
- @connectables_by_connector ||= connectors.for_page_version(version).inject({}) do |mem, connector|
157
- connectable = connector.connectable_with_deleted
158
- if connectable.class.versioned?
159
- connectable = connectable.as_of_version(connector.connectable_version)
160
- end
161
- mem[connector] = connectable
162
- mem
163
- end
164
- end
165
154
 
166
155
  #This is done to let copy_connectors know which version to pull from
167
156
  #copy_connectors will get called later as an after_update callback
@@ -1,4 +1,5 @@
1
1
  <% content_for(:html_head) do %>
2
+ <%= javascript_include_tag "cms/content_library" %>
2
3
  <% javascript_tag do %>
3
4
  jQuery(function($){
4
5
  var collectionName = '<%= content_type.model_class.name.underscore.pluralize %>'
@@ -12,9 +12,9 @@
12
12
  <iframe src="<%=h cms_toolbar_path(:page_id => @page.id, :page_version => @page.version, :mode => @mode, :page_toolbar => @show_page_toolbar ? 1 : 0) %>" width="100%" height="<%= @show_page_toolbar ? 159 : 100 %>px" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" name="cms_toolbar"></iframe>
13
13
  <% end %>
14
14
 
15
- <% @page.connectables_by_connector.each_pair do |connector, connectable| %>
15
+ <% @_connectors.each_with_index do |connector, i| %>
16
16
  <% content_for(connector.container.to_sym) do %>
17
- <%= render_connector_and_connectable(connector, connectable) %>
17
+ <%= render_connector_and_connectable(connector, @_connectables[i]) %>
18
18
  <% end %>
19
19
  <% end %>
20
20
 
@@ -1,15 +1,15 @@
1
1
  # Generated by jeweler
2
- # DO NOT EDIT THIS FILE
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{browsercms}
8
- s.version = "3.0.3"
8
+ s.version = "3.0.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["BrowserMedia"]
12
- s.date = %q{2009-10-28}
12
+ s.date = %q{2009-11-09}
13
13
  s.email = %q{github@browsermedia.com}
14
14
  s.extra_rdoc_files = [
15
15
  "LICENSE.txt",
@@ -1172,6 +1172,7 @@ Gem::Specification.new do |s|
1172
1172
  "public/images/cms/usercontrols_bg.png",
1173
1173
  "public/images/cms/usercontrols_bg_cap.png",
1174
1174
  "public/javascripts/cms/application.js",
1175
+ "public/javascripts/cms/content_library.js",
1175
1176
  "public/javascripts/cms/editor.js",
1176
1177
  "public/javascripts/cms/sitemap.js",
1177
1178
  "public/javascripts/jquery-ui.js",
@@ -1315,3 +1316,4 @@ Gem::Specification.new do |s|
1315
1316
  else
1316
1317
  end
1317
1318
  end
1319
+
@@ -1,3 +1,27 @@
1
+ #
2
+ # Defines the authentication behavior for controllers in BrowserCMS. It can be added to any controller that needs to
3
+ # hook into the BrowserCMS Authentication behavior like so:
4
+ #
5
+ # class MySuperSecureController < ApplicationController
6
+ # include Cms::Authentication::Controller
7
+ #
8
+ # It is based off Restful_Authentication, and adds in behavior to deal with several concepts specific to BrowserCMS.
9
+ #
10
+ # (Note: 10/8/09 - I was comparing this to a very old version of the generated code from Restful_Authentication,
11
+ # so some of the following items may be 'stock' to that. (Especially #2)
12
+ #
13
+ # 1. Guests - These represents users that are not logged in. What guests can see and do can be modified via the CMS UI. Guests
14
+ # are not considered to be 'logged in'.
15
+ # 2. 'Current' User - The currently logged in user is stored in a thread local, and can be accessed anywhere via 'User.current'.
16
+ # This allows model code to easily record which user is making changes to records, for versioning, etc.
17
+ #
18
+ # 3. 'Admin' Access Denied Page - If users try to access a protected controller, they are redirected to the CMS administration Login page
19
+ # which may be different than the 'front end' user login page. (Cms::Controller handles that differently)
20
+ #
21
+ #
22
+ # To Dos: It appears as though we are storing the 'current' user in two places, @current_user and User.current. This is probably not DRY, but
23
+ # more testing would be needed.
24
+ #
1
25
  module Cms
2
26
  module Authentication
3
27
  module Controller
@@ -12,6 +36,7 @@ module Cms
12
36
  # If the user is not logged in, this will be set to the guest user, which represents a public
13
37
  # user, who will likely have more limited permissions
14
38
  def current_user
39
+ # Note: We have disabled basic_http_auth
15
40
  @current_user ||= begin
16
41
  User.current = (login_from_session || login_from_cookie || User.guest)
17
42
  end
@@ -61,7 +86,7 @@ module Cms
61
86
 
62
87
  # Redirect as appropriate when an access request fails.
63
88
  #
64
- # The default action is to redirect to the login screen.
89
+ # The default action is to redirect to the BrowserCMS admin login screen.
65
90
  #
66
91
  # Override this method in your controllers if you want to have special
67
92
  # behavior in case the user is not authorized
@@ -73,11 +98,6 @@ module Cms
73
98
  store_location
74
99
  redirect_to cms_login_path
75
100
  end
76
- # format.any doesn't work in rails version < http://dev.rubyonrails.org/changeset/8987
77
- # you may want to change format.any to e.g. format.any(:js, :xml)
78
- # format.any do
79
- # request_http_basic_authentication 'Web Password'
80
- # end
81
101
  end
82
102
  end
83
103
 
@@ -162,7 +182,6 @@ module Cms
162
182
 
163
183
  # Cookies shouldn't be allowed to persist past their freshness date,
164
184
  # and they should be changed at each login
165
-
166
185
  def valid_remember_cookie?
167
186
  return nil unless User.current
168
187
  (User.current.remember_token?) &&
@@ -0,0 +1,36 @@
1
+ jQuery(function($){
2
+
3
+ //----- Helper Functions -----------------------------------------------------
4
+ //In all of this code, we are defining functions that we use later
5
+ //None of this actually manipulates the DOM in any way
6
+
7
+ //This is used to get the id part of an elementId
8
+ //For example, if you have section_node_5,
9
+ //you pass this 'section_node_5', 'section_node'
10
+ //and this returns 5
11
+ var getId = function(elementId, s) {
12
+ return elementId.replace(s,'')
13
+ }
14
+
15
+
16
+ var nodeOnDoubleClick = function() {
17
+ if($('#edit_button').hasClass('disabled')) {
18
+ //$('#view_button').click()
19
+ location.href = $('#view_button')[0].href
20
+ } else {
21
+ //$('#edit_button').click()
22
+ location.href = $('#edit_button')[0].href
23
+ }
24
+ }
25
+
26
+ var addNodeOnDoubleClick = function() {
27
+ $('#blocks tr').dblclick(nodeOnDoubleClick)
28
+ }
29
+
30
+ //----- Init -----------------------------------------------------------------
31
+ //In other words, stuff that happens when the page loads
32
+ //This is where we actually manipulate the DOM, fire events, etc.
33
+
34
+ addNodeOnDoubleClick()
35
+
36
+ })
@@ -230,7 +230,7 @@ class Cms::ContentCachingEnabledControllerTest < ActionController::TestCase
230
230
  ActionController::Base.perform_caching = true
231
231
  @page = Factory(:page, :section => root_section, :name => "Test Page", :path => "/page", :publish_on_save => true)
232
232
  @registered_user = Factory(:user)
233
- @registered_user.groups << Group.with_code("guest").first
233
+ @registered_user.groups << Group.guest
234
234
  end
235
235
 
236
236
  def teardown
@@ -315,7 +315,7 @@ class Cms::ContentCachingDisabledControllerTest < ActionController::TestCase
315
315
  ActionController::Base.perform_caching = false
316
316
  @page = Factory(:page, :section => root_section, :name => "Test Page", :path => "/page", :publish_on_save => true)
317
317
  @registered_user = Factory(:user)
318
- @registered_user.groups << Group.with_code("guest").first
318
+ @registered_user.groups << Group.guest
319
319
  end
320
320
 
321
321
  def test_guest_user_views_page_on_public_site
@@ -66,6 +66,13 @@ class Cms::PagesControllerTest < ActionController::TestCase
66
66
  end
67
67
  end
68
68
 
69
+ def test_version
70
+ create_page
71
+ @page.update_attributes(:name => "V2")
72
+ get :version, :id => @page.to_param, :version => 1
73
+ assert_response :success
74
+ end
75
+
69
76
  def test_revert_to
70
77
  create_page
71
78
  @page.update_attributes(:name => "V2")
@@ -2,6 +2,9 @@ require File.join(File.dirname(__FILE__), '/../../test_helper')
2
2
 
3
3
  class Cms::SessionsControllerTest < ActionController::TestCase
4
4
  include Cms::ControllerTestHelper
5
+ def teardown
6
+ User.current = nil
7
+ end
5
8
 
6
9
  def test_not_redirected_to_cms_site_if_public_site
7
10
  @request.host = "foo.com"
@@ -19,6 +22,22 @@ class Cms::SessionsControllerTest < ActionController::TestCase
19
22
  assert_select "title", "CMS Login"
20
23
  end
21
24
 
25
+ def test_return_to
26
+ user = Factory(:user)
27
+ expected_url = "/expected_url"
28
+
29
+ post :create, {:success_url => "", :login => user.login, :password => "password"}, {:return_to => expected_url }
30
+ assert_redirected_to(expected_url)
31
+ end
32
+ def test_success_url_overrides_return_to
33
+ user = Factory(:user)
34
+ expected_url = "/expected_url"
35
+
36
+ post :create, {:success_url => expected_url, :login => user.login, :password => "password"}, {:return_to => "/somewhere_else" }
37
+
38
+ assert_redirected_to(expected_url)
39
+ end
40
+
22
41
  end
23
42
 
24
43
  class Cms::SessionsControllerCacheEnabledTest < ActionController::TestCase
@@ -48,5 +67,10 @@ class Cms::SessionsControllerCacheEnabledTest < ActionController::TestCase
48
67
  log @response.body
49
68
  assert_select "title", "CMS Login"
50
69
  end
51
-
52
- end
70
+
71
+ test "destroy" do
72
+ Cms::SessionsController.any_instance.expects(:logout_user)
73
+ delete :destroy
74
+ assert_redirected_to "/"
75
+ end
76
+ end
@@ -99,7 +99,7 @@ class ActiveSupport::TestCase
99
99
  end
100
100
 
101
101
  def guest_group
102
- Group.find_by_code("guest") || Factory(:group, :code => "guest")
102
+ Group.guest || Factory(:group, :code => Group::GUEST_CODE)
103
103
  end
104
104
 
105
105
  def login_as(user)
@@ -4,4 +4,10 @@ class GroupTest < ActiveSupport::TestCase
4
4
  def test_valid
5
5
  assert Factory.build(:group).valid?
6
6
  end
7
+
8
+ test "Find guest group via method" do
9
+ expected = Group.find_by_code(Group::GUEST_CODE)
10
+ assert_not_nil expected, "Validates that our fixture code is loading a guest user into the database."
11
+ assert_equal expected, Group.guest
12
+ end
7
13
  end
@@ -72,7 +72,7 @@ end
72
72
  class UserPermissionsTest < ActiveSupport::TestCase
73
73
  def setup
74
74
  @user = Factory(:user)
75
- @guest_group = Group.first(:conditions => {:code => "guest"})
75
+ @guest_group = Group.guest
76
76
  end
77
77
 
78
78
  def test_user_permissions
@@ -210,7 +210,7 @@ end
210
210
  class GuestUserTest < ActiveSupport::TestCase
211
211
  def setup
212
212
  @user = User.guest
213
- @guest_group = Group.with_code("guest").first
213
+ @guest_group = Group.guest
214
214
  @public_page = Factory(:page, :section => root_section)
215
215
  @protected_section = Factory(:section, :parent => root_section)
216
216
  @protected_page = Factory(:page, :section => @protected_section)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: browsercms_s3
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.4
4
+ version: 3.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anthony Underwood
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-10-31 00:00:00 +00:00
12
+ date: 2009-11-10 00:00:00 +00:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -1179,6 +1179,7 @@ files:
1179
1179
  - public/images/cms/usercontrols_bg.png
1180
1180
  - public/images/cms/usercontrols_bg_cap.png
1181
1181
  - public/javascripts/cms/application.js
1182
+ - public/javascripts/cms/content_library.js
1182
1183
  - public/javascripts/cms/editor.js
1183
1184
  - public/javascripts/cms/sitemap.js
1184
1185
  - public/javascripts/jquery-ui.js