From 642f9f4a1cd66152846d0bc61fba2efd550edd33 Mon Sep 17 00:00:00 2001
From: Sytse Sijbrandij <sytse@gitlab.com>
Date: Mon, 10 Jun 2013 17:24:49 +0000
Subject: [PATCH 1/3] Scrum view style milestone view.

---
 app/assets/javascripts/milestones.js.coffee |  7 -------
 app/models/issue.rb                         |  2 ++
 app/views/milestones/_issues.html.haml      | 12 ++++++++++++
 app/views/milestones/show.html.haml         | 19 ++++++-------------
 4 files changed, 20 insertions(+), 20 deletions(-)
 create mode 100644 app/views/milestones/_issues.html.haml

diff --git a/app/assets/javascripts/milestones.js.coffee b/app/assets/javascripts/milestones.js.coffee
index 99a52bf4d3f..78a16e91b46 100644
--- a/app/assets/javascripts/milestones.js.coffee
+++ b/app/assets/javascripts/milestones.js.coffee
@@ -1,11 +1,4 @@
 $ ->
-  $('.milestone-issue-filter li[data-closed]').addClass('hide')
-
-  $('.milestone-issue-filter ul.nav li a').click ->
-    $('.milestone-issue-filter li').toggleClass('active')
-    $('.milestone-issue-filter li[data-closed]').toggleClass('hide')
-    false
-
   $('.milestone-merge-requests-filter li[data-closed]').addClass('hide')
 
   $('.milestone-merge-requests-filter ul.nav li a').click ->
diff --git a/app/models/issue.rb b/app/models/issue.rb
index 91dd6477b04..6ad11e8f7ba 100644
--- a/app/models/issue.rb
+++ b/app/models/issue.rb
@@ -28,6 +28,8 @@ class Issue < ActiveRecord::Base
   scope :cared, ->(user) { where(assignee_id: user) }
   scope :authored, ->(user) { where(author_id: user) }
   scope :open_for, ->(user) { opened.assigned(user) }
+  scope :assigned, where("assignee_id IS NOT NULL")
+  scope :unassigned, where("assignee_id IS NULL")
 
   state_machine :state, initial: :opened do
     event :close do
diff --git a/app/views/milestones/_issues.html.haml b/app/views/milestones/_issues.html.haml
new file mode 100644
index 00000000000..bd4fef16551
--- /dev/null
+++ b/app/views/milestones/_issues.html.haml
@@ -0,0 +1,12 @@
+.span6
+  .ui-box.milestone-issue-filter
+    .title
+      %ul.nav.nav-pills
+        %li=issues.first
+    %ul.well-list
+      - issues.second.each do |issue|
+        %li{data: {closed: issue.closed?}}
+          = link_to [@project, issue] do
+            %span.badge.badge-info ##{issue.id}
+          &ndash;
+          = link_to_gfm truncate(issue.title, length: 60), [@project, issue]
\ No newline at end of file
diff --git a/app/views/milestones/show.html.haml b/app/views/milestones/show.html.haml
index 034c37852f1..fa13f556e64 100644
--- a/app/views/milestones/show.html.haml
+++ b/app/views/milestones/show.html.haml
@@ -56,20 +56,11 @@
 
 
 .row
-  .span6
-    .ui-box.milestone-issue-filter
-      .title
-        %ul.nav.nav-pills
-          %li.active= link_to('Open Issues', '#')
-          %li=link_to('All Issues', '#')
-      %ul.well-list
-        - @issues.each do |issue|
-          %li{data: {closed: issue.closed?}}
-            = link_to [@project, issue] do
-              %span.badge.badge-info ##{issue.id}
-            &ndash;
-            = link_to_gfm truncate(issue.title, length: 60), [@project, issue]
+  =render(:partial => 'issues', :object => ['Unstarted Issues (open and unassigned)', @issues.opened.unassigned])
+
+  =render(:partial => 'issues', :object => ['Ongoing Issues (open and assigned) ', @issues.opened.assigned])
 
+.row
   .span6
     .ui-box.milestone-merge-requests-filter
       .title
@@ -84,6 +75,8 @@
             &ndash;
             = link_to_gfm truncate(merge_request.title, length: 60), [@project, merge_request]
 
+  =render(:partial => 'issues', :object => ['Completed Issues (closed)', @issues.closed])
+
 %hr
 %h6 Participants:
 %div
-- 
GitLab


From 6637c1e475e1e5845edfb6817a9a8074036275b7 Mon Sep 17 00:00:00 2001
From: Sytse Sijbrandij <sytse@dosire.com>
Date: Wed, 12 Jun 2013 09:59:00 +0200
Subject: [PATCH 2/3] Incorporated the two suggestions (h5 and named variables)
 and fixed the Spinach test.

---
 app/views/milestones/_issues.html.haml       | 6 ++----
 app/views/milestones/show.html.haml          | 6 +++---
 features/project/issues/milestones.feature   | 2 --
 features/steps/project/project_milestones.rb | 6 ------
 4 files changed, 5 insertions(+), 15 deletions(-)

diff --git a/app/views/milestones/_issues.html.haml b/app/views/milestones/_issues.html.haml
index bd4fef16551..8c42330a65d 100644
--- a/app/views/milestones/_issues.html.haml
+++ b/app/views/milestones/_issues.html.haml
@@ -1,10 +1,8 @@
 .span6
   .ui-box.milestone-issue-filter
-    .title
-      %ul.nav.nav-pills
-        %li=issues.first
+    %h5.title= title
     %ul.well-list
-      - issues.second.each do |issue|
+      - issues.each do |issue|
         %li{data: {closed: issue.closed?}}
           = link_to [@project, issue] do
             %span.badge.badge-info ##{issue.id}
diff --git a/app/views/milestones/show.html.haml b/app/views/milestones/show.html.haml
index fa13f556e64..36dbed45ddf 100644
--- a/app/views/milestones/show.html.haml
+++ b/app/views/milestones/show.html.haml
@@ -56,9 +56,9 @@
 
 
 .row
-  =render(:partial => 'issues', :object => ['Unstarted Issues (open and unassigned)', @issues.opened.unassigned])
+  =render(partial: 'issues', :locals => {title: 'Unstarted Issues (open and unassigned)', issues: @issues.opened.unassigned})
 
-  =render(:partial => 'issues', :object => ['Ongoing Issues (open and assigned) ', @issues.opened.assigned])
+  =render(partial: 'issues', :locals => {title: 'Ongoing Issues (open and assigned)', issues: @issues.opened.assigned})
 
 .row
   .span6
@@ -75,7 +75,7 @@
             &ndash;
             = link_to_gfm truncate(merge_request.title, length: 60), [@project, merge_request]
 
-  =render(:partial => 'issues', :object => ['Completed Issues (closed)', @issues.closed])
+  =render(:partial => 'issues', :locals => {title: 'Completed Issues (closed)', issues: @issues.closed})
 
 %hr
 %h6 Participants:
diff --git a/features/project/issues/milestones.feature b/features/project/issues/milestones.feature
index 50c090cc6a0..2f38acf14d0 100644
--- a/features/project/issues/milestones.feature
+++ b/features/project/issues/milestones.feature
@@ -22,5 +22,3 @@ Feature: Project Milestones
     Given the milestone has open and closed issues
     And I click link "v2.2"
     Then I should see 3 issues
-    When I click link "All Issues"
-    Then I should see 4 issues
diff --git a/features/steps/project/project_milestones.rb b/features/steps/project/project_milestones.rb
index fcd590fcab2..ba2a0184d7e 100644
--- a/features/steps/project/project_milestones.rb
+++ b/features/steps/project/project_milestones.rb
@@ -51,11 +51,5 @@ class ProjectMilestones < Spinach::FeatureSteps
 
   Then "I should see 3 issues" do
     page.should have_selector('.milestone-issue-filter .well-list li', count: 4)
-    page.should have_selector('.milestone-issue-filter .well-list li.hide', count: 1)
-  end
-
-  Then "I should see 4 issues" do
-    page.should have_selector('.milestone-issue-filter .well-list li', count: 4)
-    page.should_not have_selector('.milestone-issue-filter .well-list li.hide')
   end
 end
-- 
GitLab


From f7ea649f4b409d5561b2bd81e46863a1f0c77e1b Mon Sep 17 00:00:00 2001
From: Sytse Sijbrandij <sytse@dosire.com>
Date: Fri, 14 Jun 2013 14:13:14 +0200
Subject: [PATCH 3/3] Implement (style) suggestions.

---
 app/models/issue.rb                 | 4 ++--
 app/views/milestones/show.html.haml | 6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/app/models/issue.rb b/app/models/issue.rb
index 6ad11e8f7ba..ee92d944b03 100644
--- a/app/models/issue.rb
+++ b/app/models/issue.rb
@@ -28,8 +28,8 @@ class Issue < ActiveRecord::Base
   scope :cared, ->(user) { where(assignee_id: user) }
   scope :authored, ->(user) { where(author_id: user) }
   scope :open_for, ->(user) { opened.assigned(user) }
-  scope :assigned, where("assignee_id IS NOT NULL")
-  scope :unassigned, where("assignee_id IS NULL")
+  scope :assigned, -> { where("assignee_id IS NOT NULL") }
+  scope :unassigned, -> { where("assignee_id IS NULL") }
 
   state_machine :state, initial: :opened do
     event :close do
diff --git a/app/views/milestones/show.html.haml b/app/views/milestones/show.html.haml
index 36dbed45ddf..9f665206acb 100644
--- a/app/views/milestones/show.html.haml
+++ b/app/views/milestones/show.html.haml
@@ -56,9 +56,9 @@
 
 
 .row
-  =render(partial: 'issues', :locals => {title: 'Unstarted Issues (open and unassigned)', issues: @issues.opened.unassigned})
+  = render(partial: 'issues', locals: {title: 'Unstarted Issues (open and unassigned)', issues: @issues.opened.unassigned})
 
-  =render(partial: 'issues', :locals => {title: 'Ongoing Issues (open and assigned)', issues: @issues.opened.assigned})
+  = render(partial: 'issues', locals: {title: 'Ongoing Issues (open and assigned)', issues: @issues.opened.assigned})
 
 .row
   .span6
@@ -75,7 +75,7 @@
             &ndash;
             = link_to_gfm truncate(merge_request.title, length: 60), [@project, merge_request]
 
-  =render(:partial => 'issues', :locals => {title: 'Completed Issues (closed)', issues: @issues.closed})
+  = render(:partial => 'issues', locals: {title: 'Completed Issues (closed)', issues: @issues.closed})
 
 %hr
 %h6 Participants:
-- 
GitLab