From e1104f98771283a7659eadf881f006e3a3acb4d5 Mon Sep 17 00:00:00 2001 From: Tom Clegg Date: Tue, 3 Feb 2015 11:18:56 -0500 Subject: [PATCH] 2659: Fix up 404 page. --- .../app/controllers/application_controller.rb | 3 ++- .../app/views/application/404.html.erb | 22 ++++++++++++------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/apps/workbench/app/controllers/application_controller.rb b/apps/workbench/app/controllers/application_controller.rb index 02ae656299..b52591bc0c 100644 --- a/apps/workbench/app/controllers/application_controller.rb +++ b/apps/workbench/app/controllers/application_controller.rb @@ -435,6 +435,7 @@ class ApplicationController < ActionController::Base protected + helper_method :strip_token_from_path def strip_token_from_path(path) path.sub(/([\?&;])api_token=[^&;]*[&;]?/, '\1') end @@ -497,7 +498,7 @@ class ApplicationController < ActionController::Base else @object = model_class.find(params[:uuid]) end - rescue ArvadosApiClient::NotFoundException, RuntimeError => error + rescue ArvadosApiClient::NotFoundException, ArvadosApiClient::NotLoggedInException, RuntimeError => error if error.is_a?(RuntimeError) and (error.message !~ /^argument to find\(/) raise end diff --git a/apps/workbench/app/views/application/404.html.erb b/apps/workbench/app/views/application/404.html.erb index 4c8fa7635e..aa1ffda017 100644 --- a/apps/workbench/app/views/application/404.html.erb +++ b/apps/workbench/app/views/application/404.html.erb @@ -13,18 +13,24 @@

Not Found

+

The <%= req_item %> was not found.

+ <% if !current_user %> -

You are not logged into Arvados. Please retry after log in.


-<% end %> -

The <%= req_item %> was not found. +

+ (I notice you are not logged in. If you're looking for a private + page, you'll need to <%=link_to 'log in', arvados_api_client.arvados_login_url(return_to: strip_token_from_path(request.url))%> first.) +

-<% if class_name %> -Perhaps you'd like to -<%= link_to("browse all #{class_name_h.pluralize}", action: :index, controller: class_name.tableize) %>? -<% end %> +<% elsif class_name %> -

+

+ Perhaps you'd like to <%= link_to("browse all + #{class_name_h.pluralize}", action: :index, controller: + class_name.tableize) %>? +

+ +<% end %> <% error_message = "The #{req_item_plain_text} was not found." %> <%= render :partial => "report_error", :locals => {error_message: error_message, error_type: '404'} %> -- 2.30.2