summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/application.js1
-rw-r--r--app/assets/javascripts/issues.js.coffee18
-rw-r--r--app/controllers/issues_controller.rb6
-rw-r--r--app/views/issues/_filter.html.haml2
-rw-r--r--app/views/issues/_issues.html.haml113
5 files changed, 80 insertions, 60 deletions
diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js
index bbec12ad08c..ab5fc1b860d 100644
--- a/app/assets/javascripts/application.js
+++ b/app/assets/javascripts/application.js
@@ -14,6 +14,7 @@
//= require jquery.waitforimages
//= require jquery.atwho
//= require jquery.scrollto
+//= require jquery.blockUI
//= require turbolinks
//= require jquery.turbolinks
//= require bootstrap
diff --git a/app/assets/javascripts/issues.js.coffee b/app/assets/javascripts/issues.js.coffee
index ab952be29eb..67d9498c50a 100644
--- a/app/assets/javascripts/issues.js.coffee
+++ b/app/assets/javascripts/issues.js.coffee
@@ -15,8 +15,14 @@
$(this).html totalIssues + 1
else
$(this).html totalIssues - 1
-
-
+ $("body").on "click", ".issues-filters .dropdown-menu a", ->
+ $('.issues-list').block(
+ message: null,
+ overlayCSS:
+ backgroundColor: '#DDD'
+ opacity: .4
+ )
+
reload: ->
Issues.initSelects()
Issues.initChecks()
@@ -48,10 +54,6 @@
unless terms is last_terms
last_terms = terms
if terms.length >= 2 or terms.length is 0
- $('#search_status').val($('#status').val())
- $('#search_assignee_id').val($('#assignee_id').val())
- $('#search_milestone_id').val($('#milestone_id').val())
- $('#search_label_name').val($('#label_name').val())
form.submit()
checkChanged: ->
@@ -62,9 +64,9 @@
ids.push $(value).attr("data-id")
$("#update_issues_ids").val ids
- $(".issues_filters").hide()
+ $(".issues-filters").hide()
$(".issues_bulk_update").show()
else
$("#update_issues_ids").val []
$(".issues_bulk_update").hide()
- $(".issues_filters").show()
+ $(".issues-filters").show()
diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb
index 0739e7c78da..242bc90d28f 100644
--- a/app/controllers/issues_controller.rb
+++ b/app/controllers/issues_controller.rb
@@ -20,6 +20,12 @@ class IssuesController < ProjectResourceController
@issues = @issues.where("title LIKE ?", "%#{terms}%") if terms.present?
@issues = @issues.page(params[:page]).per(20)
+
+ assignee_id, milestone_id = params[:assignee_id], params[:milestone_id]
+
+ @assignee = @project.users.find(assignee_id) if assignee_id.present? && !assignee_id.to_i.zero?
+ @milestone = @project.milestones.find(milestone_id) if milestone_id.present? && !milestone_id.to_i.zero?
+
respond_to do |format|
format.html # index.html.erb
format.js
diff --git a/app/views/issues/_filter.html.haml b/app/views/issues/_filter.html.haml
index b621f11bc5b..8495c323cb8 100644
--- a/app/views/issues/_filter.html.haml
+++ b/app/views/issues/_filter.html.haml
@@ -1,7 +1,7 @@
= form_tag project_issues_path(@project), method: 'get' do
%fieldset
%ul.nav.nav-pills.nav-stacked
- %li{class: ("active" if !params[:status])}
+ %li{class: ("active" if !params[:status] || params[:status].blank?)}
= link_to project_issues_path(@project, status: nil) do
Open
%li{class: ("active" if params[:status] == 'assigned-to-me')}
diff --git a/app/views/issues/_issues.html.haml b/app/views/issues/_issues.html.haml
index 4233e2466e5..cc8d8d9cae2 100644
--- a/app/views/issues/_issues.html.haml
+++ b/app/views/issues/_issues.html.haml
@@ -12,62 +12,73 @@
= hidden_field_tag 'update[issues_ids]', []
= hidden_field_tag :status, params[:status]
= button_tag "Save", class: "btn update_selected_issues btn-small btn-save"
- .issues_filters
- = form_tag project_issues_path(@project), method: :get, remote: true do
- %span Filter by
- .dropdown.inline.prepend-left-10
- %a.dropdown-toggle.btn.btn-small{href: '#', "data-toggle" => "dropdown"}
- %i.icon-tags
- %span.light labels:
- - if params[:label_name].present?
- %strong= params[:label_name]
- - else
+ .issues-filters
+ %span Filter by
+ .dropdown.inline.prepend-left-10
+ %a.dropdown-toggle.btn.btn-small{href: '#', "data-toggle" => "dropdown"}
+ %i.icon-tags
+ %span.light labels:
+ - if params[:label_name].present?
+ %strong= params[:label_name]
+ - else
+ Any
+ %b.caret
+ %ul.dropdown-menu
+ %li
+ = link_to project_issues_with_filter_path(@project, label_name: nil) do
Any
- %b.caret
- %ul.dropdown-menu
- - issue_label_names.each do |label_name|
- %li
- = link_to project_issues_with_filter_path(@project, label_name: label_name) do
- %span{class: "label #{label_css_class(label_name)}"}
- %i.icon-tag
- = label_name
- .dropdown.inline.prepend-left-10
- %a.dropdown-toggle.btn.btn-small{href: '#', "data-toggle" => "dropdown"}
- %i.icon-user
- %span.light assignee:
- - if params[:assignee_id].present?
- %strong= User.find(params[:assignee_id]).name
- - else
+ - issue_label_names.each do |label_name|
+ %li
+ = link_to project_issues_with_filter_path(@project, label_name: label_name) do
+ %span{class: "label #{label_css_class(label_name)}"}
+ %i.icon-tag
+ = label_name
+ .dropdown.inline.prepend-left-10
+ %a.dropdown-toggle.btn.btn-small{href: '#', "data-toggle" => "dropdown"}
+ %i.icon-user
+ %span.light assignee:
+ - if @assignee.present?
+ %strong= @assignee.name
+ - elsif params[:assignee_id] == "0"
+ Unassigned
+ - else
+ Any
+ %b.caret
+ %ul.dropdown-menu
+ %li
+ = link_to project_issues_with_filter_path(@project, assignee_id: nil) do
Any
- %b.caret
- %ul.dropdown-menu
- - @project.users.sort_by(&:name).each do |user|
- %li
- = link_to project_issues_with_filter_path(@project, assignee_id: user.id) do
- = image_tag gravatar_icon(user.email), class: "avatar s16"
- = user.name
+ = link_to project_issues_with_filter_path(@project, assignee_id: 0) do
+ Unassigned
+ - @project.users.sort_by(&:name).each do |user|
+ %li
+ = link_to project_issues_with_filter_path(@project, assignee_id: user.id) do
+ = image_tag gravatar_icon(user.email), class: "avatar s16"
+ = user.name
- .dropdown.inline.prepend-left-10
- %a.dropdown-toggle.btn.btn-small{href: '#', "data-toggle" => "dropdown"}
- %i.icon-time
- %span.light milestone:
- - if params[:milestone_id].present?
- %strong= Milestone.find(params[:milestone_id]).title
- - else
+ .dropdown.inline.prepend-left-10
+ %a.dropdown-toggle.btn.btn-small{href: '#', "data-toggle" => "dropdown"}
+ %i.icon-time
+ %span.light milestone:
+ - if @milestone.present?
+ %strong= @milestone.title
+ - elsif params[:milestone_id] == "0"
+ Unspecified
+ - else
+ Any
+ %b.caret
+ %ul.dropdown-menu
+ %li
+ = link_to project_issues_with_filter_path(@project, milestone_id: nil) do
Any
- %b.caret
- %ul.dropdown-menu
- - issues_active_milestones.each do |milestone|
- %li
- = link_to project_issues_with_filter_path(@project, milestone_id: milestone.id) do
- %strong= milestone.title
- %small.light= milestone.expires_at
+ = link_to project_issues_with_filter_path(@project, milestone_id: 0) do
+ Unspecified
+ - issues_active_milestones.each do |milestone|
+ %li
+ = link_to project_issues_with_filter_path(@project, milestone_id: milestone.id) do
+ %strong= milestone.title
+ %small.light= milestone.expires_at
- -#= select_tag(:label_name, options_for_select(issue_tags, params[:label_name]), prompt: "Labels")
- -#= select_tag(:assignee_id, options_from_collection_for_select([unassigned_filter] + @project.users.all, "id", "name", params[:assignee_id]), prompt: "Assignee")
- -#= select_tag(:milestone_id, options_from_collection_for_select([unassigned_filter] + issues_active_milestones, "id", "title", params[:milestone_id]), prompt: "Milestone")
- = hidden_field_tag :status, params[:status]
- = hidden_field_tag :issue_search, params[:status], id: 'filter_issue_search'
%ul.well-list.issues-list
= render @issues