diff --git a/app/assets/stylesheets/sections/commits.scss b/app/assets/stylesheets/sections/commits.scss index 78c268f60eac7dd434f56494b4f4e03231bb1ff6..03a545de6faff4db4f126fe6da3a5f4242c82008 100644 --- a/app/assets/stylesheets/sections/commits.scss +++ b/app/assets/stylesheets/sections/commits.scss @@ -168,6 +168,32 @@ li.commit { text-decoration: underline; } } + + .text-expander { + background: #ddd; + color: #555; + padding: 0 5px; + line-height: 6px; + height: 12px; + font-size: 12px; + font-weight: bold; + vertical-align: middle; + display: inline-block; + border-radius: 1px; + text-decoration: none; + cursor: pointer; + &:hover { + background-color: #ccc; + } + } + } + + .commit-row-description { + font-size: 14px; + border-left: 1px solid #e5e5e5; + padding: 0 15px 0 7px; + margin: 5px 0 10px 5px; + display: none; } .commit-row-info { @@ -192,4 +218,10 @@ li.commit { @extend .cgray; } } + + &.open { + .commit-row-description { + display: block; + } + } } diff --git a/app/models/commit.rb b/app/models/commit.rb index bcc1bcbd96a0f14d2cec1f02bef937283d225cfa..c313aeb7572ed1fc57f3a6b2ee6837dc1aab69d4 100644 --- a/app/models/commit.rb +++ b/app/models/commit.rb @@ -99,14 +99,16 @@ class Commit # # cut off, ellipses (`&hellp;`) are prepended to the commit message. def description - description = safe_message + title_end = safe_message.index(/\n/) + @description ||= if (!title_end && safe_message.length > 100) || (title_end && title_end > 100) + "…".html_safe << safe_message[80..-1] + else + safe_message.split(/\n/, 2)[1].try(:chomp) + end + end - title_end = description.index(/\n/) - if (!title_end && description.length > 100) || (title_end && title_end > 100) - "…".html_safe << description[80..-1] - else - description.split(/\n/, 2)[1].try(:chomp) - end + def description? + description.present? end # Regular expression that identifies commit message clauses that trigger issue closing. diff --git a/app/views/projects/commits/_commit.html.haml b/app/views/projects/commits/_commit.html.haml index 9772d3ef2ef823a8ed018d8c0054a3c53ba3ef86..a5e369e93663ae923aa8b0ea2c55995f6663a260 100644 --- a/app/views/projects/commits/_commit.html.haml +++ b/app/views/projects/commits/_commit.html.haml @@ -1,9 +1,12 @@ %li.commit - .commit-row-title + .commit-row-title{"data-toggle" => "dropdown"} = link_to commit.short_id(8), project_commit_path(project, commit), class: "commit_short_id" %span.str-truncated = link_to_gfm commit.title, project_commit_path(project, commit.id), class: "commit-row-message" + - if commit.description? + %span.label-default.text-expander.js-details-target ... + = link_to "Browse Code ยป", project_tree_path(project, commit), class: "pull-right" .notes_count - notes = project.notes.for_commit_id(commit.id) @@ -12,6 +15,10 @@ %i.icon-comment = notes.count + - if commit.description? + .commit-row-description + = simple_format(commit.description) + .commit-row-info = commit_author_link(commit, avatar: true, size: 16) .committed_ago