<% content_for :js do %> tab_pane_valid_state = {}; function ajaxRefreshTabPane(pane) { if (!tab_pane_valid_state[pane]) { tab_pane_valid_state[pane] = true; $(document).trigger('ajax:send'); $.ajax('<%=j url_for @object %>?tab_pane='+pane, {dataType: 'html', type: 'GET'}). done(function(data, status, jqxhr) { $('#' + pane + ' > div > div').html(data); $(document).trigger('ajax:complete'); ajaxRefreshTabPane(pane); }); } } $(window).on('load', smart_scroll_fixup); $(document).on('shown.bs.tab', 'ul.nav-tabs > li > a', smart_scroll_fixup); $(document).on('shown.bs.tab', function(e) { ajaxRefreshTabPane(e.target.id.slice(0, -4)); }); $(document).on('arv-log-event', function() { <% pane_list.each do |pane| %> tab_pane_valid_state['<%=j pane %>'] = false; <% end %> ajaxRefreshTabPane($('.tab-pane.active')[0].id); }); <% end %> <% content_for :tab_panes do %> <% comparable = controller.respond_to? :compare %>
<% pane_list.each_with_index do |pane, i| %>
data-object-kind="arvados#<%= ArvadosApiClient.class_kind controller.model_class %>" <% else %> data-object-uuid="<%= @object.uuid %>" <% end %> > <% content_for :js do %> <% if i == 0 %> tab_pane_valid_state['<%=j pane %>'] = true; <% else %> tab_pane_valid_state['<%=j pane %>'] = false; $(document).on('ready', function() { ajaxRefreshTabPane('<%=j pane %>'); }); <% end %> <% end %>
<% if i == 0 %> <%= render(partial: 'show_' + pane.downcase, locals: { comparable: comparable, objects: @objects }) %> <% else %> <%= image_tag 'ajax-loader.gif' %> <% end %>
<% end %>
<% end %>