OSDN Git Service

Issues & MR legend
authorDmitriy Zaporozhets <dzaporozhets@sphereconsultinginc.com>
Thu, 21 Jun 2012 05:29:53 +0000 (08:29 +0300)
committerDmitriy Zaporozhets <dzaporozhets@sphereconsultinginc.com>
Thu, 21 Jun 2012 05:29:53 +0000 (08:29 +0300)
app/assets/stylesheets/common.scss
app/assets/stylesheets/sections/issues.scss
app/helpers/issues_helper.rb
app/helpers/merge_requests_helper.rb
app/models/merge_request.rb
app/views/dashboard/issues.html.haml
app/views/issues/_show.html.haml
app/views/issues/index.html.haml
app/views/merge_requests/_merge_request.html.haml
app/views/merge_requests/index.html.haml

index 0888b6d..a00c6fd 100644 (file)
@@ -606,3 +606,92 @@ li.note {
 .mr_show_all_commits { 
   cursor:pointer;
 }
+
+/**
+ *  Issues, MRs legend 
+ * 
+ */
+
+.list_legend {
+  float:left;
+  margin-right:20px;
+  .icon {
+    width:16px;
+    height:16px;
+    float:left;
+    margin-right:5px;
+    @include border-radius(4px);
+    &.critical { 
+      background: #EAA;
+      border:1px solid #B88;
+    }
+    &.today{ 
+      background: #ADA;
+      border:1px solid #8B8;
+    }
+    &.closed { 
+      background: #DDD;
+      border:1px solid  #BBB;
+    }
+    &.yours { 
+      background: #AAD;
+      border:1px solid #88B;
+    }
+    &.merged { 
+      background: #DAD;
+      border:1px solid #B8B;
+    }
+  }
+  .text { 
+    padding-bottom: 10px;
+    float:left;
+  }
+}
+
+.merge_request,
+.issue { 
+  .list_legend { 
+    margin-right: 5px;
+    margin-top: 10px;
+    .icon {
+      width:16px;
+      height:16px;
+      float:left;
+      margin-right:5px;
+      @include border-radius(4px);
+      border:1px solid #ddd;
+    }
+  }
+
+  &.critical { 
+    .icon { 
+      background: #EAA;
+      border:1px solid #B88;
+    }
+  }
+  &.today{ 
+    .icon { 
+      background: #ADA;
+      border:1px solid #8B8;
+    }
+  }
+  &.closed { 
+    .icon { 
+      background: #DDD;
+      border:1px solid  #BBB;
+    }
+  }
+  &.yours { 
+    .icon { 
+      background: #AAD;
+      border:1px solid #88B;
+    }
+  }
+  &.merged { 
+    .icon { 
+      background: #DAD;
+      border:1px solid #B8B;
+    }
+  }
+}
+
index ba953ed..31d862e 100644 (file)
@@ -25,4 +25,12 @@ module IssuesHelper
       issue.author_name
     end
   end
+
+  def issue_css_classes issue
+    classes = "issue"
+    classes << " critical" if issue.critical
+    classes << " closed" if issue.closed
+    classes << " today" if issue.today?
+    classes
+  end
 end
index 96e0ab4..29e7c6f 100644 (file)
@@ -31,4 +31,12 @@ module MergeRequestsHelper
       }
     )
   end
+
+  def mr_css_classes mr
+    classes = "merge_request"
+    classes << " closed" if mr.closed
+    classes << " merged" if mr.merged?
+    classes << " today" if mr.today?
+    classes
+  end
 end
index d532373..12365b0 100644 (file)
@@ -93,6 +93,10 @@ class MergeRequest < ActiveRecord::Base
     self.save
   end
 
+  def today?
+    Date.today == created_at.to_date
+  end
+
   def new?
     today? && created_at == updated_at
   end
index b794e63..b6bcdf8 100644 (file)
@@ -4,6 +4,15 @@
   %small.right #{@issues.total_count} issues
 
 %br
+.issues_legend
+  .list_legend
+    .icon.critical
+    .text Critical
+
+  .list_legend
+    .icon.today
+    .text Today
+.clearfix
 - if @issues.any?
   - @issues.group_by(&:project).each do |group|
     %div.ui-box
index bb7c81f..e7dc3f8 100644 (file)
@@ -1,4 +1,6 @@
-%li.wll{ :id => dom_id(issue), :class => "issue #{issue.critical ? "critical" : ""}", :url => project_issue_path(issue.project, issue) }
+%li.wll{ :id => dom_id(issue), :class => issue_css_classes(issue), :url => project_issue_path(issue.project, issue) }
+  .list_legend
+    .icon
   .right
     - if issue.notes.any?
       %span.btn.small.disabled.padded= pluralize issue.notes.count, 'note'
   %span.update-author
     assigned to
     %strong= issue.assignee_name
-    - if issue.critical
-      %span.label.important critical
-    - if issue.today?
-      %span.label.success today
     - if issue.upvotes > 0
-      %span.label.success= "+#{issue.upvotes}"
+      %span.badge.badge-success= "+#{issue.upvotes}"
 
   = link_to project_issue_path(issue.project, issue) do
     %p.row_title= truncate(issue.title, :length => 100)
index 1a321e6..ade80da 100644 (file)
           = search_field_tag :issue_search, nil, { :placeholder => 'Search', :class => 'issue_search span3 right neib' }
 
   %br
+
+  .issues_legend
+    .list_legend
+      .icon.critical
+      .text Critical
+
+    .list_legend
+      .icon.closed
+      .text Closed
+
+    .list_legend
+      .icon.today
+      .text Today
+  .clearfix
+
   %div#issues-table-holder.ui-box
     .title
       .row
index 54300fa..e744a96 100644 (file)
@@ -1,4 +1,6 @@
-%li.wll
+%li.wll{ :class => mr_css_classes(merge_request) }
+  .list_legend
+    .icon
   .right
     .left
       - if merge_request.notes.any?
@@ -14,6 +16,6 @@
     = time_ago_in_words(merge_request.created_at)
     ago
     - if merge_request.upvotes > 0
-      %span.label.success= "+#{merge_request.upvotes}"
+      %span.badge.badge-success= "+#{merge_request.upvotes}"
   = link_to project_merge_request_path(merge_request.project, merge_request) do
     %p.row_title= truncate(merge_request.title, :length => 80)
index 3ec2b10..d98e52b 100644 (file)
@@ -6,6 +6,20 @@
 
 %br
 
+.mrs_legend
+  .list_legend
+    .icon.today
+    .text Today
+
+  .list_legend
+    .icon.merged
+    .text Merged
+
+  .list_legend
+    .icon.closed
+    .text Closed
+.clearfix
+
 .ui-box
   .title
     %ul.nav.nav-pills
@@ -26,7 +40,7 @@
     = render @merge_requests
     - if @merge_requests.blank?
       %li
-        %p.padded Nothing to show here
+        %h4.nothing_here_message Nothing to show here
     - if @merge_requests.present?
       %li.bottom
         .row