+<% content_for :content_top do %>
+ <% if @object and not @object.is_a?(Group) and @object.class.goes_in_projects? and @object.owner_uuid == current_user.uuid %>
+ <div class="pull-right" style="width: 40%">
+ <div class="alert alert-warning alert-dismissable">
+ <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
+ <strong>Hey.</strong> This <%= @object.class_for_display.downcase %> belongs to your account, but it's not in any of your projects. If you want it to be easy to find in the future, you should move it to a project.<br />
+ <%= button_to(choose_projects_path(
+ title: 'Move to...',
+ editable: true,
+ action_name: 'Move',
+ action_href: url_for(action: :update),
+ action_method: 'patch',
+ action_data: {selection_param: @object.resource_param_name+'[owner_uuid]', success: 'page-refresh'}.to_json),
+ { class: "btn btn-primary btn-sm", remote: true, method: 'get' }) do %>
+ <i class="fa fa-fw fa-folder"></i> Choose a project...
+ <% end %>
+ </div>
+ </div>
+ <% end %>
+<% end %>
+
<% content_for :js do %>
+ tab_pane_valid_state = {};
+
function ajaxRefreshTabPane(pane) {
- $.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')
- });
+ 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 :js do %>
- <% if i != 0 %>
+ <% 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 %>
- <div class="smart-scroll" style="margin-top:0.5em;">
+ <div id="<%= pane %>-scroll" class="<%= 'smart-scroll' if pane.match(/graph/) %>" style="margin-top:0.5em;">
<div class="pane-content">
<% if i == 0 %>
<%= render(partial: 'show_' + pane.downcase,