6279: Move webshell action into VirtualMachinesController, tweak formatting & config.
[arvados.git] / apps / workbench / config / routes.rb
1 ArvadosWorkbench::Application.routes.draw do
2   themes_for_rails
3
4   resources :keep_disks
5   resources :keep_services
6   resources :user_agreements do
7     post 'sign', on: :collection
8     get 'signatures', on: :collection
9   end
10   get '/user_agreements/signatures' => 'user_agreements#signatures'
11   get "users/setup_popup" => 'users#setup_popup', :as => :setup_user_popup
12   get "users/setup" => 'users#setup', :as => :setup_user
13   get "report_issue_popup" => 'actions#report_issue_popup', :as => :report_issue_popup
14   post "report_issue" => 'actions#report_issue', :as => :report_issue
15   resources :nodes
16   resources :humans
17   resources :traits
18   resources :api_client_authorizations
19   resources :virtual_machines
20   get '/virtual_machines/:id/webshell/:login' => 'virtual_machines#webshell', :as => :webshell_virtual_machine
21   resources :authorized_keys
22   resources :job_tasks
23   resources :jobs do
24     post 'cancel', :on => :member
25     get 'logs', :on => :member
26   end
27   resources :repositories do
28     post 'share_with', on: :member
29   end
30   # {format: false} prevents rails from treating "foo.png" as foo?format=png
31   get '/repositories/:id/tree/:commit' => 'repositories#show_tree'
32   get '/repositories/:id/tree/:commit/*path' => 'repositories#show_tree', as: :show_repository_tree, format: false
33   get '/repositories/:id/blob/:commit/*path' => 'repositories#show_blob', as: :show_repository_blob, format: false
34   get '/repositories/:id/commit/:commit' => 'repositories#show_commit', as: :show_repository_commit
35   match '/logout' => 'sessions#destroy', via: [:get, :post]
36   get '/logged_out' => 'sessions#index'
37   resources :users do
38     get 'choose', :on => :collection
39     get 'home', :on => :member
40     get 'welcome', :on => :collection
41     get 'inactive', :on => :collection
42     get 'activity', :on => :collection
43     get 'storage', :on => :collection
44     post 'sudo', :on => :member
45     post 'unsetup', :on => :member
46     get 'setup_popup', :on => :member
47     get 'profile', :on => :member
48     post 'request_shell_access', :on => :member
49   end
50   get '/manage_account' => 'users#manage_account'
51   get "/add_ssh_key_popup" => 'users#add_ssh_key_popup', :as => :add_ssh_key_popup
52   get "/add_ssh_key" => 'users#add_ssh_key', :as => :add_ssh_key
53   resources :logs
54   resources :factory_jobs
55   resources :uploaded_datasets
56   resources :groups do
57     get 'choose', on: :collection
58   end
59   resources :specimens
60   resources :pipeline_templates do
61     get 'choose', on: :collection
62   end
63   resources :pipeline_instances do
64     get 'compare', on: :collection
65     post 'copy', on: :member
66   end
67   resources :links
68   get '/collections/graph' => 'collections#graph'
69   resources :collections do
70     post 'set_persistent', on: :member
71     get 'sharing_popup', :on => :member
72     post 'share', :on => :member
73     post 'unshare', :on => :member
74     get 'choose', on: :collection
75   end
76   get('/collections/download/:uuid/:reader_token/*file' => 'collections#show_file',
77       format: false)
78   get '/collections/download/:uuid/:reader_token' => 'collections#show_file_links'
79   get '/collections/:uuid/*file' => 'collections#show_file', :format => false
80   resources :projects do
81     match 'remove/:item_uuid', on: :member, via: :delete, action: :remove_item
82     match 'remove_items', on: :member, via: :delete, action: :remove_items
83     get 'choose', on: :collection
84     post 'share_with', on: :member
85     get 'tab_counts', on: :member
86     get 'public', on: :collection
87   end
88
89   resources :search do
90     get 'choose', :on => :collection
91   end
92
93   post 'actions' => 'actions#post'
94   get 'actions' => 'actions#show'
95   get 'websockets' => 'websocket#index'
96   post "combine_selected" => 'actions#combine_selected_files_into_collection'
97
98   root :to => 'projects#index'
99
100   # Send unroutable requests to an arbitrary controller
101   # (ends up at ApplicationController#render_not_found)
102   match '*a', to: 'links#render_not_found', via: [:get, :post]
103 end