OSDN Git Service

Commit header improved. finalize PR 667
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Sun, 15 Apr 2012 22:10:09 +0000 (01:10 +0300)
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Sun, 15 Apr 2012 22:10:09 +0000 (01:10 +0300)
app/assets/stylesheets/common.scss
app/assets/stylesheets/sections/commits.scss
app/controllers/commits_controller.rb
app/decorators/commit_decorator.rb
app/models/commit.rb
app/views/commits/show.html.haml

index ec066d5..90d793e 100644 (file)
@@ -745,7 +745,7 @@ p.time {
   .top_box_content, 
   .middle_box_content, 
   .bottom_box_content { 
-    padding:20px;
+    padding:15px;
 
     pre {
       background: none !important;
index 85e7315..9f6488b 100644 (file)
@@ -1,58 +1,54 @@
-.commit-head {
+.commit-box {
   @extend .main_box;
 
-  padding: 14px;
-  padding-bottom: 8px;
-  line-height: 24px;
+  .commit-head { 
+    @extend .top_box_content;
 
-  .browse-button {
-    @extend .btn;
-    @extend .btn-small;
-    float: right;
-  }
+    .commit-title {
+      line-height: 26px;
+      margin:0;
+    }
 
-  .commit-title {
-    line-height: 26px;
-  }
+    .commit-description {
+      font-size: 14px;
+      border: none;
+      background-color: white;
+      padding-top:10px;
+    }
 
-  .commit-description {
-    font-size: 14px;
-    padding: 0px;
-    padding-bottom: 4px;
-    border: none;
-    background-color: white;
+    .browse-button {
+      @extend .btn;
+      @extend .btn-small;
+      float: right;
+    }
   }
 
   .commit-info {
     @extend .middle_box_content;
     @extend .clearfix;
 
-    padding-bottom: 8px;
-    padding-top: 8px;
-
-    margin-left: -14px;
-    margin-right: -14px;
-    margin-bottom: -8px;
+    .sha-block {
+      text-align:right;
+      &:first-child { 
+        padding-bottom:6px;
+      }
 
-    .author .name, .committer .name {
-      font-weight: bold;
+      a { 
+        border-bottom: 1px solid #aaa;
+        margin-left: 9px;
+      }
     }
-  }
 
-  .sha-block {
-    float: right;
-    margin-left: 10px
-  }
-
-  &.merge-commit .sha-block {
-    clear: right;
-  }
+    &.merge-commit .sha-block {
+      clear: right;
+    }
 
-  .committer {
-    padding-left: 32px;
-  }
+    .committer {
+      padding-left: 32px;
+    }
 
-  .avatar {
-    margin-right: 4px;
+    .avatar {
+      margin-right: 10px;
+    }
   }
-}
\ No newline at end of file
+}
index 9063fbf..061592a 100644 (file)
@@ -29,6 +29,8 @@ class CommitsController < ApplicationController
 
     git_not_found! and return unless @commit
 
+    @commit = CommitDecorator.decorate(@commit)
+
     @note = @project.build_commit_note(@commit)
     @comments_allowed = true
     @line_notes = project.commit_line_notes(@commit)
index e4dc027..348d1e9 100644 (file)
@@ -1,6 +1,32 @@
 class CommitDecorator < ApplicationDecorator
   decorates :commit
 
+  # Returns the commits title.
+  #
+  # Usually, the commit title is the first line of the commit message.
+  # In case this first line is longer than 80 characters, it is cut off
+  # after 70 characters and ellipses (`&hellp;`) are appended.
+  def title
+    title_end = safe_message.index(/\n/)
+    if (!title_end && safe_message.length > 80) || (title_end && title_end > 80)
+      safe_message[0..69] << "&hellip;".html_safe
+    else
+      safe_message.split(/\n/, 2).first
+    end
+  end
+
+  # Returns the commits description
+  #
+  # cut off, ellipses (`&hellp;`) are prepended to the commit message.
+  def description
+    title_end = safe_message.index(/\n/)
+    if (!title_end && safe_message.length > 80) || (title_end && title_end > 80)
+      "&hellip;".html_safe << safe_message[70..-1]
+    else
+      safe_message.split(/\n/, 2)[1].try(:chomp)
+    end
+  end
+
   def breadcrumbs
 
   end
index 343235e..f90c426 100644 (file)
@@ -106,36 +106,6 @@ class Commit
     utf8 author.name
   end
 
-  # Returns the commits title.
-  #
-  # Usually, the commit title is the first line of the commit message.
-  # In case this first line is longer than 80 characters, it is cut off
-  # after 70 characters and ellipses (`&hellp;`) are appended.
-  #
-  # @todo This might be better placed in a view helper.
-  def title
-    title_end = safe_message.index(/\n/)
-    if (!title_end && safe_message.length > 80) || (title_end && title_end > 80)
-      safe_message[0..69] << "&hellip;".html_safe
-    else
-      safe_message.split(/\n/, 2).first
-    end
-  end
-
-  # Returns the commits description
-  #
-  # cut off, ellipses (`&hellp;`) are prepended to the commit message.
-  #
-  # @todo This might be better placed in a view helper.
-  def description
-    title_end = safe_message.index(/\n/)
-    if (!title_end && safe_message.length > 80) || (title_end && title_end > 80)
-      "&hellip;".html_safe << safe_message[70..-1]
-    else
-      safe_message.split(/\n/, 2)[1].try(:chomp)
-    end
-  end
-
   # Was this commit committed by a different person than the original author?
   def different_committer?
     author_name != committer_name || author_email != committer_email
index eae8c80..d177b90 100644 (file)
@@ -1,30 +1,35 @@
-.commit-head{class: @commit.parents.count > 1 ? "merge-commit" : ""}
-  = link_to "Browse Code »", tree_project_ref_path(@project, @commit.id), :class => "browse-button"
-  %h3.commit-title
-    = commit_msg_with_link_to_issues(@project, @commit.title)
-  - if @commit.description.present?
-    %pre.commit-description
-      = commit_msg_with_link_to_issues(@project, @commit.description)
+.commit-box{class: @commit.parents.count > 1 ? "merge-commit" : ""}
+  .commit-head
+    = link_to "Browse Code »", tree_project_ref_path(@project, @commit.id), :class => "browse-button"
+    %h3.commit-title
+      = commit_msg_with_link_to_issues(@project, @commit.title)
+    - if @commit.description.present?
+      %pre.commit-description
+        = commit_msg_with_link_to_issues(@project, @commit.description)
   .commit-info
-    %span.sha-block
-      commit
-      %code= @commit.id
-    %span.sha-block
-      = pluralize(@commit.parents.count, "parent")
-      - @commit.parents.each do |parent|
-        %code= link_to parent.id, project_commit_path(@project, parent)
-    .author
-      = image_tag gravatar_icon(@commit.author_email, 24), :class => "avatar", :height => 24, :width => 24
-      %span.name= @commit.author_name
-      authored
-      %time{title: @commit.authored_date.stamp("Aug 21, 2011 9:23pm")}
-        #{time_ago_in_words(@commit.authored_date)} ago
-    - if @commit.different_committer?
-      .committer
-        %span.name= @commit.committer_name
-        committed
-        %time{title: @commit.committed_date.stamp("Aug 21, 2011 9:23pm")}
-          #{time_ago_in_words(@commit.committed_date)} ago
+    .row
+      .span4
+        = image_tag gravatar_icon(@commit.author_email, 40), :class => "avatar"
+        .author
+          %strong= @commit.author_name
+          authored
+          %time{title: @commit.authored_date.stamp("Aug 21, 2011 9:23pm")}
+            #{time_ago_in_words(@commit.authored_date)} ago
+        - if @commit.different_committer?
+          .committer
+            &rarr;
+            %strong= @commit.committer_name
+            committed
+            %time{title: @commit.committed_date.stamp("Aug 21, 2011 9:23pm")}
+              #{time_ago_in_words(@commit.committed_date)} ago
+      .span7.right
+        .sha-block
+          %span.cgray commit
+          %code= @commit.id
+        .sha-block
+          %span.cgray= pluralize(@commit.parents.count, "parent")
+          - @commit.parents.each do |parent|
+            = link_to parent.id[0...10], project_commit_path(@project, parent)
 
 = render "commits/diffs", :diffs => @commit.diffs
 = render "notes/notes", :tid => @commit.id, :tt => "commit"