index.html.haml 2.14 KB
%div
  - if can? current_user, :write_issue, @project
    .left
      = form_tag search_project_issues_path(@project), :method => :get, :remote => true do
        = search_field_tag :issue_search, nil, { :placeholder => 'Search', :class => 'issue_search' }
      = link_to 'New Issue', new_project_issue_path(@project), :remote => true, :class => "lbutton vm"
    
  .right
    = form_tag project_issues_path(@project), :method => :get do
      .span-2
        = radio_button_tag :f, 0, (params[:f] || "0") == "0", :onclick => "this.form.submit()", :id => "open_issues"
        = label_tag "open_issues","Open"
      .span-2
        = radio_button_tag :f, 2, params[:f] == "2", :onclick => "this.form.submit()", :id => "closed_issues"
        = label_tag "closed_issues","Closed"
      .span-2
        = radio_button_tag :f, 3, params[:f] == "3", :onclick => "this.form.submit()", :id => "my_issues"
        = label_tag "my_issues","To Me"
        
      .span-2
        = radio_button_tag :f, 1, params[:f] == "1", :onclick => "this.form.submit()", :id => "all_issues"
        = label_tag "all_issues","All"

  #issues-table-holder= render "issues"
  %br
:javascript
  $('.issue_search').keyup(function() {
    var terms = $(this).val();
    var project_id = 1;

    if (terms.length >= 2) {
      $.get($(this).parent().attr('action'), { 'terms': terms, project: project_id  }, function(response) {
        $('#issues-table').html(response);
        setSortable();
      });
    }
  });

  $('.delete-issue').live('ajax:success', function() {  
    $(this).closest('tr').fadeOut(); });  
  
  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();
  });