function hasHTML5History() {
return !!(window.history && window.history.pushState);
}
+
+function invokeUrlWithLocalStorageValue(url, alias, item) {
+ value = localStorage.getItem(item);
+ if (value) {
+ window.location = alias;
+ } else {
+ window.location = url;
+ }
+}
+
+function clearLocalStorageValue(item) {
+ localStorage.removeItem(item);
+}
success(function(data, status, jqxhr) {
$('div').remove('.no_shell_access_msg');
$('.no_shell_access').append('<div class="alert alert-success"><p class="contain-align-left">Request sent for shell access.</p></div>');
+ localStorage.setItem("request_shell_access", "sent");
}).
fail(function(jqxhr, status, error) {
var $sendButton = $('#request_shell_submit');
# current user's ssh keys
@my_ssh_keys = AuthorizedKey.where(key_type: 'SSH', owner_uuid: current_user.uuid)
+ # when localStorage indicating previous shell access request, the url used is "manage_acct"
+ @local_storage_request_shell_access = true if request.url.include?('/manage_acct')
+
respond_to do |f|
f.html { render template: 'users/manage_account' }
end
</a>
<ul class="dropdown-menu" role="menu">
<% if current_user.is_active %>
- <li role="menuitem"><a href="/manage_account" role="menuitem"><i class="fa fa-key fa-fw"></i> Manage account</a></li>
+ <li id='manage_account_link' role="menuitem"><a href="#"
+ onClick="invokeUrlWithLocalStorageValue('/manage_account', '/manage_acct', 'request_shell_access');"
+ role="menuitem"><i class="fa fa-key fa-fw"></i> Manage account</a></li>
<% if Rails.configuration.user_profile_form_fields %>
<li role="menuitem"><a href="/users/<%=current_user.uuid%>/profile" role="menuitem"><i class="fa fa-key fa-fw"></i> Manage profile</a></li>
<% end %>
</p>
<% if !@my_virtual_machines.any? %>
- <div id='no_shell_access' class='no_shell_access'>
- <div id='no_shell_access_msg' class='no_shell_access_msg'>
- You do not have access to any virtual machines. Many of the Arvados features depend on having shell access to a hosted VM.
-
- <div style='display:inline-block'>
- <%= button_to('Request shell access', request_shell_access_user_url(id: current_user.uuid),
- id: 'request_shell_submit', class: 'btn btn-xs btn-primary', remote: true) %>
+ <% if @local_storage_request_shell_access %>
+ <div id='shell_access_requested' class='shell_access_requested'>
+ <div class="alert alert-info">
+ <p class="contain-align-left">You do not have access to any virtual machines. A request was sent on your behalf.</p>
</div>
</div>
- </div>
+ <% else %>
+ <div id='no_shell_access' class='no_shell_access'>
+ <div id='no_shell_access_msg' class='no_shell_access_msg'>
+ You do not have access to any virtual machines. Many of the Arvados features depend on having shell access to a hosted VM.
+
+ <div style='display:inline-block'>
+ <%= button_to('Request shell access', request_shell_access_user_url(id: current_user.uuid),
+ id: 'request_shell_submit', class: 'btn btn-xs btn-primary', remote: true) %>
+ </div>
+ </div>
+ </div>
+ <% end %>
<% else %>
+ <script> clearLocalStorageValue('request_shell_access'); </script>
<table class="table virtual-machines-table">
<colgroup>
<col style="width: 25%" />
post 'request_shell_access', :on => :member
end
get '/manage_account' => 'users#manage_account'
+ get '/manage_acct' => 'users#manage_account', :as => :manage_acct
get "/add_ssh_key_popup" => 'users#add_ssh_key_popup', :as => :add_ssh_key_popup
get "/add_ssh_key" => 'users#add_ssh_key', :as => :add_ssh_key
resources :logs