});
});
}
+
+function initIssuesSearch() {
+ var href = $('.issue_search').parent().attr('action');
+ var last_terms = '';
+
+ $('.issue_search').keyup(function() {
+ var terms = $(this).val();
+ var milestone_id = $('#milestone_id').val();
+ var status = $('#status').val();
+
+ if (terms != last_terms) {
+ last_terms = terms;
+
+ if (terms.length >= 2 || terms.length == 0) {
+ $.get(href, { 'f': status, 'terms': terms, 'milestone_id': milestone_id }, function(response) {
+ $('#issues-table').html(response);
+ setSortable();
+ });
+ }
+ }
+ });
+
+ $('.delete-issue').live('ajax:success', function() {
+ $(this).closest('tr').fadeOut(); updatePage();
+ });
+}
respond_to :js, :html
def index
- @issues = case params[:f].to_i
- when 1 then @project.issues
- when 2 then @project.issues.closed
- when 3 then @project.issues.opened.assigned(current_user)
- else @project.issues.opened
- end
+ @issues = issues_filtered
- @issues = @issues.where(:milestone_id => params[:milestone_id]) if params[:milestone_id].present?
@issues = @issues.page(params[:page]).per(20)
- @issues = @issues.includes(:author, :project).order("critical, updated_at")
respond_to do |format|
format.html # index.html.erb
def search
terms = params['terms']
- @project = Project.find(params['project'])
- @issues = case params[:status].to_i
- when 1 then @project.issues
- when 2 then @project.issues.closed
- when 3 then @project.issues.opened.assigned(current_user)
- else @project.issues.opened
- end.page(params[:page]).per(100)
-
+ @issues = issues_filtered
@issues = @issues.where("title LIKE ?", "%#{terms}%") unless terms.blank?
+ @issues = @issues.page(params[:page]).per(100)
render :partial => 'issues'
end
def module_enabled
return render_404 unless @project.issues_enabled
end
+
+ def issues_filtered
+ @issues = case params[:f].to_i
+ when 1 then @project.issues
+ when 2 then @project.issues.closed
+ when 3 then @project.issues.opened.assigned(current_user)
+ else @project.issues.opened
+ end
+
+ @issues = @issues.where(:milestone_id => params[:milestone_id]) if params[:milestone_id].present?
+ @issues = @issues.includes(:author, :project).order("critical, updated_at")
+ @issues
+ end
end
= render "issues"
:javascript
- var href = $('.issue_search').parent().attr('action');
- var last_terms = '';
-
- $('.issue_search').keyup(function() {
- var terms = $(this).val();
- var project_id = $('#project_id').val();
- var status = $('#status').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').html(response);
- setSortable();
- });
- }
- }
- });
-
- $('.delete-issue').live('ajax:success', function() {
- $(this).closest('tr').fadeOut(); updatePage();});
+ $(function(){
+ initIssuesSearch();
+ setSortable();
+ $("#milestone_id").chosen();
+ $("#milestone_id").live("change", function(){
+ $(this).closest("form").submit();
+ });
+ })
function setSortable(){
$('#issues-table').sortable({
}
});
}
-
- $(function(){
- setSortable();
- $("#milestone_id").chosen();
- $("#milestone_id").live("change", function(){
- $(this).closest("form").submit();
- });
- });