From 2e9c0e2b47ab1813a96af7afa08f4449eb4e2c2d Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Thu, 17 Jan 2013 22:35:45 +0200 Subject: [PATCH] switch to use link_to_member to prevent 500 if user is a project owner but does not have membership and leave comment --- .../stylesheets/gitlab_bootstrap/common.scss | 2 +- app/assets/stylesheets/sections/notes.scss | 2 +- app/helpers/projects_helper.rb | 15 ++++++++++----- app/views/notes/_discussion.html.haml | 4 ++-- app/views/notes/_note.html.haml | 2 +- 5 files changed, 15 insertions(+), 10 deletions(-) diff --git a/app/assets/stylesheets/gitlab_bootstrap/common.scss b/app/assets/stylesheets/gitlab_bootstrap/common.scss index f088766a..2b3d14ab 100644 --- a/app/assets/stylesheets/gitlab_bootstrap/common.scss +++ b/app/assets/stylesheets/gitlab_bootstrap/common.scss @@ -60,7 +60,7 @@ > a { padding: 8px 20px; margin-right: 7px; - line-height: 19px; + line-height: 20px; border-color: #EEE; color: #888; border-bottom: 1px solid #ddd; diff --git a/app/assets/stylesheets/sections/notes.scss b/app/assets/stylesheets/sections/notes.scss index 3a1b6506..a7fadd4f 100644 --- a/app/assets/stylesheets/sections/notes.scss +++ b/app/assets/stylesheets/sections/notes.scss @@ -22,7 +22,7 @@ ul.notes { .note-last-update { font-style: italic; } - .note-author { + .author { color: $style_color; font-weight: bold; &:hover { diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index f7325791..158925ba 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -20,16 +20,21 @@ module ProjectsHelper end end - def link_to_member(project, author) + def link_to_member(project, author, opts = {}) + default_opts = { avatar: true } + opts = default_opts.merge(opts) + return "(deleted)" unless author + author_html = "" + # Build avatar image tag - avatar = image_tag(gravatar_icon(author.try(:email)), width: 16, class: "lil_av") + author_html << image_tag(gravatar_icon(author.try(:email)), width: 16, class: "lil_av") if opts[:avatar] # Build name span tag - name = content_tag :span, author.name, class: 'author' + author_html << content_tag(:span, sanitize(author.name), class: 'author') - author_html = avatar + name + author_html = author_html.html_safe tm = project.team_member_by_id(author) @@ -37,7 +42,7 @@ module ProjectsHelper link_to author_html, project_team_member_path(project, tm), class: "author_link" else author_html - end + end.html_safe end def tm_path team_member diff --git a/app/views/notes/_discussion.html.haml b/app/views/notes/_discussion.html.haml index 093775f0..a9a11fc2 100644 --- a/app/views/notes/_discussion.html.haml +++ b/app/views/notes/_discussion.html.haml @@ -10,7 +10,7 @@ Show discussion = image_tag gravatar_icon(note.author.email), class: "avatar s32" %div - = link_to note.author_name, project_team_member_path(@project, @project.team_member_by_id(note.author)), class: "note-author" + = link_to_member(@project, note.author, avatar: false) - if note.for_merge_request? - if note.diff started a discussion on this merge request diff @@ -30,7 +30,7 @@ %div - last_note = discussion_notes.last last updated by - = link_to last_note.author_name, project_team_member_path(@project, @project.team_member_by_id(last_note.author)), class: "note-author" + = link_to_member(@project, last_note.author, avatar: false) %span.discussion-last-update = time_ago_in_words(last_note.updated_at) ago diff --git a/app/views/notes/_note.html.haml b/app/views/notes/_note.html.haml index dd5d7c1b..9efeb563 100644 --- a/app/views/notes/_note.html.haml +++ b/app/views/notes/_note.html.haml @@ -9,7 +9,7 @@ = link_to project_note_path(@project, note), title: "Remove comment", method: :delete, confirm: 'Are you sure you want to remove comment?', remote: true, class: "danger js-note-delete" do %i.icon-trash.cred = image_tag gravatar_icon(note.author.email), class: "avatar s32" - = link_to note.author_name, project_team_member_path(@project, @project.team_member_by_id(note.author)), class: "note-author" + = link_to_member(@project, note.author, avatar: false) %span.note-last-update = time_ago_in_words(note.updated_at) ago