Module | Cms::Routes |
In: |
lib/cms/routes.rb
|
content_block_name - Should be a plural symbol matching the name of the content_block, like :dogs or donation_statuses
# File lib/cms/routes.rb, line 6 6: def content_blocks(content_block_name, options={}, &block) 7: content_block = content_block_name.to_s.classify.constantize 8: resources(*[content_block_name, default_routes_for_content_block(content_block).deep_merge(options)], &block) 9: if content_block.versioned? 10: # I'm not sure why, but these named routes 11: # don't end up getting nested in the CMS namepace. 12: # So for now I'm just hard-coding the stuff related to the CMS namespace 13: send("version_cms_#{content_block_name}".to_sym, 14: "/cms/#{content_block_name}/:id/version/:version", 15: :controller => "cms/#{content_block_name}", 16: :action => "version", 17: :conditions => {:method => :get}) 18: send("revert_to_cms_#{content_block_name}".to_sym, 19: "/cms/#{content_block_name}/:id/revert_to/:version", 20: :controller => "cms/#{content_block_name}", 21: :action => "revert_to", 22: :conditions => {:method => :put}) 23: end 24: end
# File lib/cms/routes.rb, line 26 26: def default_routes_for_content_block(content_block) 27: member_routes = {} 28: member_routes[:publish] = :put if content_block.publishable? 29: member_routes[:versions] = :get if content_block.versioned? 30: member_routes[:usages] = :get if content_block.connectable? 31: {:member => member_routes} 32: end
# File lib/cms/routes.rb, line 34 34: def routes_for_browser_cms 35: 36: namespace(:cms) do |cms| 37: 38: cms.home '/', :controller => 'home' 39: 40: cms.logout '/logout', :controller => 'sessions', :action => 'destroy' 41: cms.login '/login', :controller => 'sessions', :action => 'new', :conditions => { :method => :get } 42: cms.connect '/login', :controller => 'sessions', :action => 'create', :conditions => { :method => :post } 43: cms.dashboard '/dashboard', :controller => 'dashboard' 44: cms.sitemap '/sitemap', :controller => 'section_nodes' 45: 46: cms.content_types '/content_types', :controller => 'content_types' 47: cms.resources :connectors, :member => { 48: :move_up => :put, 49: :move_down => :put, 50: :move_to_bottom => :put, 51: :move_to_top => :put 52: } 53: cms.resources :links 54: 55: cms.resources :pages, :member => { 56: :archive => :put, 57: :hide => :put, 58: :publish => :put, 59: :versions => :get 60: }, :collection => { 61: :publish => :put 62: }, :has_many => [:tasks] 63: version_cms_page '/cms/pages/:id/version/:version', :controller => 'cms/pages', :action => 'version', :conditions => {:method => :get} 64: revert_to_cms_page '/cms/pages/:id/revert_to/:version', :controller => 'cms/pages', :action => 'revert_to', :conditions => {:method => :put} 65: 66: cms.file_browser '/sections/file_browser.xml', :controller => 'sections', :action => 'file_browser', :format => "xml" 67: cms.resources :sections, :has_many => [:links, :pages] 68: 69: cms.resources :section_nodes, :member => { 70: :move_before => :put, 71: :move_after => :put, 72: :move_to_beginning => :put, 73: :move_to_end => :put, 74: :move_to_root => :put 75: } 76: cms.attachment '/attachments/:id', :controller => 'attachments', :action => 'show' 77: 78: cms.resources :tasks, :member => {:complete => :put}, :collection => {:complete => :put} 79: cms.toolbar '/toolbar', :controller => 'toolbar' 80: 81: # TODO: Make an actual content library controller 82: # that redirects to the last content type you were working on 83: cms.content_library '/content_library', :controller => 'html_blocks' 84: 85: cms.content_blocks :html_blocks 86: cms.content_blocks :portlets, :member => {:usages => :get} 87: cms.handler "/portlet/:id/:handler", 88: :controller => "portlet", 89: :action => "execute_handler", 90: :conditions => {:method => :post} 91: 92: cms.content_blocks :file_blocks 93: cms.content_blocks :image_blocks 94: cms.content_blocks :category_types 95: cms.content_blocks :categories 96: cms.content_blocks :tags 97: 98: cms.administration '/administration', :controller => 'users' 99: 100: cms.with_options :controller => "cache" do |cache| 101: cache.cache "/cache", :action => "show", :conditions => {:method => :get} 102: cache.connect "/cache", :action => "destroy", :conditions => {:method => :delete} 103: end 104: 105: cms.resources :email_messages 106: cms.resources :groups 107: cms.resources :redirects 108: cms.resources :page_partials, :controller => 'dynamic_views' 109: cms.resources :page_templates, :controller => 'dynamic_views' 110: cms.resources :page_routes do |pr| 111: pr.resources :conditions, :controller => "page_route_conditions" 112: pr.resources :requirements, :controller => "page_route_requirements" 113: end 114: cms.routes "/routes", :controller => "routes" 115: cms.resources :users, :member => { 116: :change_password => :get, 117: :update_password => :put, 118: :disable => :put, 119: :enable => :put 120: } 121: 122: if RAILS_ENV == "test" && File.expand_path(RAILS_ROOT) == File.expand_path(File.dirname(__FILE__) + "/../..") 123: cms.content_blocks :content_block 124: end 125: 126: end 127: 128: if PageRoute.table_exists? 129: PageRoute.all(:order => "page_routes.name").each do |r| 130: send((r.route_name || 'connect').to_sym, r.pattern, r.options_map) 131: end 132: end 133: 134: connect '*path', :controller => 'cms/content', :action => 'show' 135: end