Rails.application.routes.draw do crm_path = 'admin/crm' get '/autocomplete/contacts' => E9Crm::Rack::ContactAutoCompleter get '/autocomplete/companies' => E9Crm::Rack::CompanyAutoCompleter scope :module => :e9_crm do resources :offers, :as => :public_offer, :only => :show do resources :leads, :as => :deals, :only => [:new, :create], :path => '' end end scope :path => crm_path, :module => :e9_crm do # NOTE this should be handled by base, and is here because base doesn't have a sensible # user api, which crm needs to check for email uniqueness errors resources :users, :only => :new resources :companies, :except => :show resources :contacts do # page_views currently not routed, but near working #resources :page_views, :path => 'activity', :only => :index collection { get :templates } member do post :upload_avatar delete :reset_avatar end end resources :deals # contact_emails are generated by email templates, and end up in the sent emails list resources :contact_emails, :except => [:index, :show] resources :email_templates do collection { get :select } end resources :dated_costs, :path => 'advertising_costs', :only => [:index] do collection do post :bulk_create end end resources :campaigns, :only => [:index, :destroy] do # page_views currently not routed, but near working #resources :page_views, :path => 'activity', :only => :index end scope :path => :campaigns do #get '/activity', :to => redirect("/#{crm_path}/campaigns/all/activity") resources :campaign_groups, :path => 'groups', :except => [:show] resources :sales_campaigns, :path => 'sales', :except => [:show, :index] resources :affiliate_campaigns, :path => 'affiliate', :except => [:show, :index] resources :email_campaigns, :path => 'email', :except => [:show, :index] resources :advertising_campaigns, :path => 'advertising', :except => [:show, :index] do resources :dated_costs, :path => 'costs' end %w( advertising affiliate email sales ).each do |path| get "/#{path}", :to => redirect("/#{crm_path}/campaigns?type=#{path}") end end resources :offers, :except => :show # leads are simply a scoped view of deals (only index) get :leads, :as => :leads, :to => 'deals#leads' get :marketing_report, :to => 'deals#reports' get '/merge_contacts/:contact_a_id/and/:contact_b_id', :as => :new_contact_merge, :to => 'contact_merges#new' post '/merge_contacts', :as => :contact_merges, :to => 'contact_merges#create' # redirect shows to edits %w( campaigns/advertising campaigns/affiliate campaigns/email campaigns/sales campaigns/groups deals email_templates menu_options offers ).each do |path| get "/#{path}/:id", :to => redirect("/#{crm_path}/#{path}/%{id}/edit"), :constraints => { :id => /\d+/ } end end end