Improve error handling in task inventories dropdown [SCI-2776]

This commit is contained in:
Oleksii Kriuchykhin 2019-01-10 21:11:20 +01:00
parent 534866467b
commit 132f46b136
4 changed files with 21 additions and 7 deletions

View file

@ -5,15 +5,18 @@
var dropDown = $('.repositories-dropdown');
var dropDownMenu = $('.repositories-dropdown-menu');
dropDown.on('show.bs.dropdown', function() {
dropDownMenu.html(
'<div class="text-center"><i class="fas fa-spinner fa-spin"></i></div>'
);
dropDownMenu
.find('.assigned-items-counter')
.html('<i class="fas fa-spinner fa-spin"></i>');
$.ajax({
url: dropDown.data('url'),
type: 'GET',
dataType: 'json',
success: function(data) {
dropDownMenu.html(data.html);
},
error: function() {
dropDownMenu.find('.assigned-items-counter').html('');
}
});
});

View file

@ -409,7 +409,10 @@ class MyModulesController < ApplicationController
respond_to do |format|
format.json do
render json: {
html: render_to_string(partial: 'repositories_dropdown.html.erb')
html: render_to_string(
partial: 'repositories_dropdown.html.erb',
locals: { enable_counters: true }
)
}
end
end

View file

@ -5,8 +5,14 @@
data-tooltipcontent="<%= I18n.t('tooltips.text.protocol.inventories') %>"
href="<%= repository_my_module_url(id: @my_module, repository_id: repository) %>"
title="<%= repository.name %>">
<% cache [current_user, repository] do %>
<%= truncate(repository.name) + " (#{@my_module.repository_rows_count(repository)})" %>
<% if enable_counters %>
<% cache [current_user, repository] do %>
<%= truncate(repository.name) %>
<span class="assigned-items-counter"><%= "(#{@my_module.repository_rows_count(repository)})" %></span>
<% end %>
<% else %>
<%= truncate(repository.name) %>
<span class="assigned-items-counter"><i class="fas fa-spinner fa-spin"></i></span>
<% end %>
</a>
</li>

View file

@ -131,7 +131,9 @@
<span class="hidden-xs hidden-lg fas fa-list-alt"></span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu repositories-dropdown-menu" aria-labelledby="repositoriesDropdownMenuLink"></ul>
<ul class="dropdown-menu repositories-dropdown-menu" aria-labelledby="repositoriesDropdownMenuLink">
<%= render partial: "repositories_dropdown.html.erb", locals: { enable_counters: false } %>
</ul>
</li>
<% end %>
<% if can_read_experiment?(@my_module.experiment) then %>