%div#issues-table-holder %table.round-borders#issues-table %thead %th .top_panel_issues - if can? current_user, :write_issue, @project %div{:class => "left", :style => "margin-right: 10px;" } = link_to 'New Issue', new_project_issue_path(@project), :remote => true, :class => "grey-button", :style => "margin-top:5px;" = form_tag search_project_issues_path(@project), :method => :get, :remote => true, :class => :left, :id => "issue_search_form" do = hidden_field_tag :project_id, @project.id, { :id => 'project_id' } = search_field_tag :issue_search, nil, { :placeholder => 'Search', :class => 'issue_search' } .right.issues_filter = form_tag project_issues_path(@project), :method => :get do .left = radio_button_tag :f, 0, (params[:f] || "0") == "0", :onclick => "setIssueFilter(this.form, 0)", :id => "open_issues", :class => "status" = label_tag "open_issues","Open" .left = radio_button_tag :f, 2, params[:f] == "2", :onclick => "setIssueFilter(this.form, 2)", :id => "closed_issues", :class => "status" = label_tag "closed_issues","Closed" .left = radio_button_tag :f, 3, params[:f] == "3", :onclick => "setIssueFilter(this.form, 3)", :id => "my_issues", :class => "status" = label_tag "my_issues","To Me" .left = radio_button_tag :f, 1, params[:f] == "1", :onclick => "setIssueFilter(this.form, 1)", :id => "all_issues", :class => "status" = label_tag "all_issues","All" = render "issues" %br :javascript var href = $('.issue_search').parent().attr('action'); var last_terms = ''; var setIssueFilter = function(form, value){ $.cookie('issue_filter', value, { expires: 140 }); form.submit(); } $('.issue_search').keyup(function() { var terms = $(this).val(); var project_id = $('#project_id').val(); var status = $('.status:checked').val(); if (terms != last_terms) { last_terms = terms; if (terms.length >= 2 || terms.length == 0) { $.get(href, { 'status': status, 'terms': terms, project: project_id }, function(response) { $('#issues-table tbody').html(response); setSortable(); }); } } }); $('.delete-issue').live('ajax:success', function() { $(this).closest('tr').fadeOut(); updatePage();}); function setSortable(){ $('#issues-table>tbody').sortable({ axis: 'y', dropOnEmpty: false, handle: '.handle', cursor: 'crosshair', items: 'tr', opacity: 0.4, scroll: true, update: function(){ $.ajax({ type: 'post', data: $('#issues-table>tbody').sortable('serialize'), dataType: 'script', complete: function(request){ $('#issues-table>tbody').effect('highlight'); }, url: "#{sort_project_issues_path(@project)}"}) } }); } $(function(){ setSortable(); });