OSDN Git Service

Redesign issues, mr lists
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Sat, 6 Apr 2013 12:10:24 +0000 (15:10 +0300)
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Sat, 6 Apr 2013 12:10:24 +0000 (15:10 +0300)
21 files changed:
app/assets/stylesheets/common.scss
app/assets/stylesheets/sections/dashboard.scss [new file with mode: 0644]
app/assets/stylesheets/sections/issues.scss
app/assets/stylesheets/sections/merge_requests.scss
app/assets/stylesheets/sections/votes.scss
app/helpers/merge_requests_helper.rb
app/helpers/projects_helper.rb
app/views/dashboard/issues.html.haml
app/views/dashboard/projects.html.haml
app/views/dashboard/show.html.haml
app/views/groups/issues.html.haml
app/views/groups/show.html.haml
app/views/issues/_issue.html.haml
app/views/issues/index.html.haml
app/views/merge_requests/_merge_request.html.haml
app/views/merge_requests/index.html.haml
app/views/milestones/show.html.haml
app/views/repositories/tags.html.haml
app/views/teams/issues.html.haml
app/views/teams/show.html.haml
app/views/votes/_votes_inline.html.haml

index 431b518..c3cc601 100644 (file)
@@ -279,7 +279,7 @@ li.note {
   cursor: pointer;
 }
 
-.merge_request,
+.merge-request,
 .issue {
   &.today{
     background: #EFE;
diff --git a/app/assets/stylesheets/sections/dashboard.scss b/app/assets/stylesheets/sections/dashboard.scss
new file mode 100644 (file)
index 0000000..9bc4a09
--- /dev/null
@@ -0,0 +1,48 @@
+.dashboard {
+  @extend .row;
+  .activities {
+  }
+
+  .side {
+    @extend .pull-right;
+
+    .ui-box {
+      margin: 3px;
+      > .title {
+        padding: 2px 15px;
+      }
+      .nav-projects-tabs li { padding: 0; }
+      .well-list {
+        li { padding: 15px; }
+        .arrow {
+          float: right;
+          padding: 10px;
+          margin: 0;
+        }
+        .last_activity {
+          padding-top: 5px;
+          display: block;
+          span, strong {
+            font-size: 12px;
+            color: #666;
+          }
+        }
+      }
+      @extend .ui-box;
+    }
+  }
+}
+
+.dashboard-search-filter {
+  padding:5px;
+
+  .search-text-input {
+    float:left;
+    @extend .span2;
+  }
+  .btn {
+    margin-left: 5px;
+    float:left;
+  }
+}
+
index 351f240..31d5c56 100644 (file)
@@ -1,22 +1,39 @@
-.issues_table {
+.issues-list {
   .issue {
     padding: 10px;
+    position: relative;
 
-    .issue_check {
+    .issue-title {
+      margin-bottom: 5px;
+      font-size: 14px;
+    }
+
+    .issue-info {
+      color: #999;
+    }
+
+    .issue-check {
       float: left;
       padding: 8px 0;
       padding-right: 8px;
       min-width: 15px;
     }
 
-    p {
-      padding-top: 0;
-      padding-bottom: 2px;
+    .issue-labels {
+      display: inline-block;
+    }
+
+    .issue-actions {
+      display: none;
+      position: absolute;
+      top: 10px;
+      right: 2px;
     }
 
-    img.avatar {
-      width: 32px;
-      margin-top: 1px;
+    &:hover {
+      .issue-actions {
+        display: block;
+      }
     }
   }
 }
index 4cca008..a84ef71 100644 (file)
   }
 }
 
-li.merge_request {
-  padding: 10px;
-  img.avatar {
-    width: 32px;
-    margin-top: 1px;
-  }
-  p {
-    padding: 0px;
-    padding-bottom: 2px;
-  }
-}
-
 .merge-in-progress {
   @extend .padded;
   @extend .append-bottom-10;
@@ -97,3 +85,31 @@ li.merge_request {
 .mr_direction_tip {
   margin-top:40px
 }
+
+.label-branch {
+  @include border-radius(4px);
+  padding: 2px 4px;
+  border: none;
+  font-size: 14px;
+  background: #474D57;
+  color: #fff;
+  font-family: $monospace_font;
+  text-shadow: 0 1px 1px #111;
+  font-weight: normal;
+}
+
+.mr-list {
+  .merge-request {
+    padding: 10px;
+    position: relative;
+
+    .merge-request-title {
+      margin-bottom: 5px;
+      font-size: 14px;
+    }
+
+    .merge-request-info {
+      color: #999;
+    }
+  }
+}
index 4686f54..6c81d9a 100644 (file)
@@ -35,9 +35,4 @@
 .votes-inline {
   display: inline-block;
   margin: 0 8px;
-  .progress {
-    display: inline-block;
-    padding: 0 0 2px;
-    width: 45px;
-  }
 }
index 155d03d..05ffec0 100644 (file)
@@ -11,7 +11,7 @@ module MergeRequestsHelper
   end
 
   def mr_css_classes mr
-    classes = "merge_request"
+    classes = "merge-request"
     classes << " closed" if mr.closed?
     classes << " merged" if mr.merged?
     classes
index e6427ea..1db8b7c 100644 (file)
@@ -25,7 +25,7 @@ module ProjectsHelper
     author_html =  ""
 
     # Build avatar image tag
-    author_html << image_tag(gravatar_icon(author.try(:email)), width: 16, class: "lil_av") if opts[:avatar]
+    author_html << image_tag(gravatar_icon(author.try(:email)), width: 16, class: "avatar avatar-inline s16") if opts[:avatar]
 
     # Build name span tag
     author_html << content_tag(:span, sanitize(author.name), class: 'author')
index 539c576..df85d5b 100644 (file)
@@ -15,7 +15,7 @@
           - project = group[0]
           %h5.title
             = link_to_project project
-          %ul.well-list.issues_table
+          %ul.well-list.issues-list
             - group[1].each do |issue|
               = render issue
       %hr
index 29a16d6..f81af59 100644 (file)
@@ -28,7 +28,7 @@
         = button_tag type: 'submit', class: 'btn' do
           %i.icon-search
 
-    %ul.well-list
+    %ul.bordered-list
       - @projects.each do |project|
         %li.clearfix
           .clearfix
index 1a66ba4..ff2db0e 100644 (file)
@@ -1,5 +1,5 @@
 - if @has_authorized_projects
-  .projects
+  .dashboard
     .activities.span8
       = render 'activities'
     .side.span4
index 96aa2a1..6d642b6 100644 (file)
@@ -14,7 +14,7 @@
           - project = group[0]
           %h5.title
             = link_to_project project
-          %ul.well-list.issues_table
+          %ul.well-list.issues-list
             - group[1].each do |issue|
               = render issue
       %hr
index adf249f..62d640c 100644 (file)
@@ -1,4 +1,4 @@
-.projects
+.dashboard
   .activities.span8
     = render "events/event_last_push", event: @last_push
     = link_to dashboard_path, class: 'btn btn-tiny' do
@@ -13,7 +13,7 @@
     .loading.hide
   .side.span4
     - if @group.description.present?
-      .description.well.light
+      .description.well.well-small.light
         = @group.description
     = render "projects", projects: @projects
     .prepend-top-20
index ab34116..6c6d45e 100644 (file)
@@ -1,12 +1,37 @@
 %li{ id: dom_id(issue), class: issue_css_classes(issue), url: project_issue_path(issue.project, issue) }
   - if controller.controller_name == 'issues'
-    .issue_check
+    .issue-check
       = check_box_tag dom_id(issue,"selected"), nil, false, 'data-id' => issue.id, class: "selected_issue", disabled: !can?(current_user, :modify_issue, issue)
-  .pull-right
+
+  .issue-title
+    %span.light= "##{issue.id}"
+    = link_to_gfm truncate(issue.title, length: 100), project_issue_path(issue.project, issue), class: "row_title"
+
+  .issue-info
+    - if issue.assignee
+      assigned to #{link_to_member(@project, issue.assignee)}
+    - else
+      unassigned
+    - if issue.votes_count > 0
+      = render 'votes/votes_inline', votable: issue
     - if issue.notes.any?
-      %span.btn.btn-small.disabled.grouped
-        %i.icon-comment
+      %span
+        %i.icon-comments
         = issue.notes.count
+    - if issue.milestone_id?
+      %span
+        %i.icon-time
+        = issue.milestone.title
+    .pull-right
+      %small updated #{time_ago_in_words(issue.updated_at)} ago
+
+    .issue-labels
+      - issue.labels.each do |label|
+        %span.label.label-info
+          %i.icon-tag
+          = label.name
+
+  .issue-actions
     - if can? current_user, :modify_issue, issue
       - if issue.closed?
         = link_to 'Reopen', project_issue_path(issue.project, issue, issue: {state_event: :reopen }, status_only: true), method: :put,  class: "btn btn-small grouped reopen_issue", remote: true
         %i.icon-edit
         Edit
 
-  - if issue.assignee
-    = image_tag gravatar_icon(issue.assignee_email), class: "avatar"
-  - else
-    = image_tag "no_avatar.png", class: "avatar"
-
-  %p= link_to_gfm truncate(issue.title, length: 100), project_issue_path(issue.project, issue), class: "row_title"
-
-  %span.update-author
-    %span.cdark= "##{issue.id}"
-    - if issue.assignee
-      assigned to #{issue.assignee_name}
-    - else
-      &nbsp;
 
-    - if issue.votes_count > 0
-      = render 'votes/votes_inline', votable: issue
-    %span
-      - issue.labels.each do |label|
-        %span.label.label-info
-          %i.icon-tag
-          = label.name
index 875f29e..2e26ee7 100644 (file)
@@ -12,7 +12,7 @@
         = form_tag search_project_issues_path(@project), method: :get, remote: true, id: "issue_search_form", class: 'pull-right'  do
           = hidden_field_tag :project_id, @project.id, { id: 'project_id' }
           = hidden_field_tag :status, params[:status]
-          = search_field_tag :issue_search, nil, { placeholder: 'Search', class: 'issue_search span3 pull-right neib search-text-input' }
+          = search_field_tag :issue_search, nil, { placeholder: 'Search', class: 'issue_search input-xlarge append-right-10 search-text-input' }
 
   .clearfix
 
@@ -41,7 +41,7 @@
               = 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]
 
-      %ul#issues-table.well-list.issues_table
+      %ul#issues-table.well-list.issues-list
         = render "issues"
 
 :javascript
index 09c55d9..ffc6b8f 100644 (file)
@@ -1,32 +1,29 @@
 %li{ class: mr_css_classes(merge_request) }
-  .pull-right
-    .left
-      - if merge_request.merged?
-        %span.btn.btn-small.disabled.grouped
-          %strong
-            %i.icon-ok
-            = "MERGED"
-      - if merge_request.notes.any?
-        %span.btn.btn-small.disabled.grouped
-          %i.icon-comment
-          = merge_request.mr_and_commit_notes.count
-      - if merge_request.milestone_id?
-        %span.btn.btn-small.disabled.grouped
-          %i.icon-time
-          = merge_request.milestone.title
-      %span.btn.btn-small.disabled.grouped
-        = merge_request.source_branch
-        &rarr;
+  .merge-request-title
+    %span.light= "##{merge_request.id}"
+    = link_to_gfm truncate(merge_request.title, length: 80), project_merge_request_path(merge_request.project, merge_request), class: "row_title"
+    - if merge_request.merged?
+      %small.pull-right
+        %i.icon-ok
+        = "MERGED"
+    - else
+      %span.pull-right
+        %i.icon-angle-right
         = merge_request.target_branch
-  = image_tag gravatar_icon(merge_request.author_email), class: "avatar"
-
-  %p= link_to_gfm truncate(merge_request.title, length: 80), project_merge_request_path(merge_request.project, merge_request), class: "row_title"
-
-  %span.update-author
-    %small.cdark= "##{merge_request.id}"
-    authored by #{merge_request.author_name}
-    = time_ago_in_words(merge_request.created_at)
-    ago
-
+  .merge-request-info
+    - if merge_request.author
+      authored by #{link_to_member(@project, merge_request.author)}
     - if merge_request.votes_count > 0
       = render 'votes/votes_inline', votable: merge_request
+    - if merge_request.notes.any?
+      %span
+        %i.icon-comments
+        = merge_request.mr_and_commit_notes.count
+    - if merge_request.milestone_id?
+      %span
+        %i.icon-time
+        = merge_request.milestone.title
+
+
+    .pull-right
+      %small updated #{time_ago_in_words(merge_request.updated_at)} ago
index 3073c8f..bf7a82b 100644 (file)
@@ -20,7 +20,7 @@
           = hidden_field_tag :f, params[:f]
         .clearfix
 
-      %ul.well-list
+      %ul.well-list.mr-list
         = render @merge_requests
         - if @merge_requests.blank?
           %li
index 747ce74..30539af 100644 (file)
@@ -87,7 +87,7 @@
 %h6 Participants:
 %div
   - @users.each do |user|
-    = link_to user, class: 'float-link' do
+    = link_to user do
       = link_to_member(@project, user)
 
 .clearfix
index 5493c08..bef5cd0 100644 (file)
@@ -14,7 +14,7 @@
             %span.light
               = time_ago_in_words(commit.committed_date)
               ago
-        %div.prepend-left
+        %div.prepend-left-20
           = link_to commit.short_id(8), project_commit_path(@project, commit), class: "monospace"
           &ndash;
           = link_to_gfm truncate(commit.title, length: 70), project_commit_path(@project, commit.id), class: "cdark"
index 5b17c5d..94818cc 100644 (file)
@@ -14,7 +14,7 @@
           - @project = group[0]
           %h5.title
             = link_to_project @project
-          %ul.well-list.issues_table
+          %ul.well-list.issues-list
             - group[1].each do |issue|
               = render issue
       %hr
index 2eb0283..88cffa0 100644 (file)
@@ -1,4 +1,4 @@
-.projects
+.dashboard
   .activities.span8
     = link_to dashboard_path, class: 'btn btn-tiny' do
       &larr; To dashboard
@@ -12,7 +12,7 @@
     .loading.hide
   .side.span4
     - if @team.description.present?
-      .description.well.light
+      .description.well.well-small.light
         = @team.description
     = render "projects", projects: @projects
     .prepend-top-20
index 91bd200..ee80547 100644 (file)
@@ -1,6 +1,9 @@
 .votes.votes-inline
-  .upvotes= votable.upvotes
-  .progress
-    .bar.bar-success{style: "width: #{votable.upvotes_in_percent}%;"}
-    .bar.bar-danger{style: "width: #{votable.downvotes_in_percent}%;"}
-  .downvotes= votable.downvotes
+  - unless votable.upvotes.zero?
+    .upvotes
+      + #{votable.upvotes}
+    - unless votable.downvotes.zero?
+      \/
+  - unless votable.downvotes.zero?
+    .downvotes
+      \- #{votable.downvotes}