Commit b1bdd82992b5133e24154c8692e25e79049cd907
Exists in
master
and in
4 other branches
Merge pull request #4269 from dosire/scrum-view-for-milestone
Scrum view style milestone view.
Showing
6 changed files
with
18 additions
and
28 deletions
Show diff stats
app/assets/javascripts/milestones.js.coffee
| 1 | 1 | $ -> |
| 2 | - $('.milestone-issue-filter li[data-closed]').addClass('hide') | |
| 3 | - | |
| 4 | - $('.milestone-issue-filter ul.nav li a').click -> | |
| 5 | - $('.milestone-issue-filter li').toggleClass('active') | |
| 6 | - $('.milestone-issue-filter li[data-closed]').toggleClass('hide') | |
| 7 | - false | |
| 8 | - | |
| 9 | 2 | $('.milestone-merge-requests-filter li[data-closed]').addClass('hide') |
| 10 | 3 | |
| 11 | 4 | $('.milestone-merge-requests-filter ul.nav li a').click -> | ... | ... |
app/models/issue.rb
| ... | ... | @@ -28,6 +28,8 @@ class Issue < ActiveRecord::Base |
| 28 | 28 | scope :cared, ->(user) { where(assignee_id: user) } |
| 29 | 29 | scope :authored, ->(user) { where(author_id: user) } |
| 30 | 30 | scope :open_for, ->(user) { opened.assigned(user) } |
| 31 | + scope :assigned, -> { where("assignee_id IS NOT NULL") } | |
| 32 | + scope :unassigned, -> { where("assignee_id IS NULL") } | |
| 31 | 33 | |
| 32 | 34 | state_machine :state, initial: :opened do |
| 33 | 35 | event :close do | ... | ... |
| ... | ... | @@ -0,0 +1,10 @@ |
| 1 | +.span6 | |
| 2 | + .ui-box.milestone-issue-filter | |
| 3 | + %h5.title= title | |
| 4 | + %ul.well-list | |
| 5 | + - issues.each do |issue| | |
| 6 | + %li{data: {closed: issue.closed?}} | |
| 7 | + = link_to [@project, issue] do | |
| 8 | + %span.badge.badge-info ##{issue.id} | |
| 9 | + – | |
| 10 | + = link_to_gfm truncate(issue.title, length: 60), [@project, issue] | |
| 0 | 11 | \ No newline at end of file | ... | ... |
app/views/milestones/show.html.haml
| ... | ... | @@ -56,20 +56,11 @@ |
| 56 | 56 | |
| 57 | 57 | |
| 58 | 58 | .row |
| 59 | - .span6 | |
| 60 | - .ui-box.milestone-issue-filter | |
| 61 | - .title | |
| 62 | - %ul.nav.nav-pills | |
| 63 | - %li.active= link_to('Open Issues', '#') | |
| 64 | - %li=link_to('All Issues', '#') | |
| 65 | - %ul.well-list | |
| 66 | - - @issues.each do |issue| | |
| 67 | - %li{data: {closed: issue.closed?}} | |
| 68 | - = link_to [@project, issue] do | |
| 69 | - %span.badge.badge-info ##{issue.id} | |
| 70 | - – | |
| 71 | - = link_to_gfm truncate(issue.title, length: 60), [@project, issue] | |
| 59 | + = render(partial: 'issues', locals: {title: 'Unstarted Issues (open and unassigned)', issues: @issues.opened.unassigned}) | |
| 60 | + | |
| 61 | + = render(partial: 'issues', locals: {title: 'Ongoing Issues (open and assigned)', issues: @issues.opened.assigned}) | |
| 72 | 62 | |
| 63 | +.row | |
| 73 | 64 | .span6 |
| 74 | 65 | .ui-box.milestone-merge-requests-filter |
| 75 | 66 | .title |
| ... | ... | @@ -84,6 +75,8 @@ |
| 84 | 75 | – |
| 85 | 76 | = link_to_gfm truncate(merge_request.title, length: 60), [@project, merge_request] |
| 86 | 77 | |
| 78 | + = render(:partial => 'issues', locals: {title: 'Completed Issues (closed)', issues: @issues.closed}) | |
| 79 | + | |
| 87 | 80 | %hr |
| 88 | 81 | %h6 Participants: |
| 89 | 82 | %div | ... | ... |
features/project/issues/milestones.feature
features/steps/project/project_milestones.rb
| ... | ... | @@ -51,11 +51,5 @@ class ProjectMilestones < Spinach::FeatureSteps |
| 51 | 51 | |
| 52 | 52 | Then "I should see 3 issues" do |
| 53 | 53 | page.should have_selector('.milestone-issue-filter .well-list li', count: 4) |
| 54 | - page.should have_selector('.milestone-issue-filter .well-list li.hide', count: 1) | |
| 55 | - end | |
| 56 | - | |
| 57 | - Then "I should see 4 issues" do | |
| 58 | - page.should have_selector('.milestone-issue-filter .well-list li', count: 4) | |
| 59 | - page.should_not have_selector('.milestone-issue-filter .well-list li.hide') | |
| 60 | 54 | end |
| 61 | 55 | end | ... | ... |