From eb7845682d3e9f66694ce6a5a97765fda898a4d2 Mon Sep 17 00:00:00 2001
From: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Date: Fri, 13 Jun 2014 20:21:48 +0300
Subject: [PATCH] Improve files/snippets action buttons

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
---
 app/assets/stylesheets/generic/files.scss   |  2 +-
 app/assets/stylesheets/sections/tree.scss   |  9 ---------
 app/models/ability.rb                       |  6 +++++-
 app/views/projects/blob/_actions.html.haml  |  6 +++---
 app/views/projects/snippets/_blob.html.haml | 15 +++++++++------
 app/views/snippets/_blob.html.haml          | 16 +++++++++-------
 app/views/snippets/show.html.haml           |  4 ++--
 7 files changed, 29 insertions(+), 29 deletions(-)

diff --git a/app/assets/stylesheets/generic/files.scss b/app/assets/stylesheets/generic/files.scss
index 5aeccfe1d14..1412277ffb6 100644
--- a/app/assets/stylesheets/generic/files.scss
+++ b/app/assets/stylesheets/generic/files.scss
@@ -20,7 +20,7 @@
 
     .options {
       float: right;
-      margin-top: -5px;
+      margin-top: -3px;
     }
 
     .left-options {
diff --git a/app/assets/stylesheets/sections/tree.scss b/app/assets/stylesheets/sections/tree.scss
index d0e03d5b662..18a5f6204fe 100644
--- a/app/assets/stylesheets/sections/tree.scss
+++ b/app/assets/stylesheets/sections/tree.scss
@@ -117,15 +117,6 @@
   }
 }
 
-.tree-btn-group {
-  top: 2px;
-
-  .btn {
-    margin-right: 0px;
-    padding: 2px 10px;
-  }
-}
-
 .tree-download-holder .btn {
   padding: 4px 12px;
 }
diff --git a/app/models/ability.rb b/app/models/ability.rb
index c60aa2d622e..234578b5e18 100644
--- a/app/models/ability.rb
+++ b/app/models/ability.rb
@@ -236,7 +236,11 @@ class Ability
             :"modify_#{name}",
           ]
         else
-          subject.respond_to?(:project) ? project_abilities(user, subject.project) : []
+          if subject.respond_to?(:project)
+            project_abilities(user, subject.project)
+          else
+            []
+          end
         end
       end
     end
diff --git a/app/views/projects/blob/_actions.html.haml b/app/views/projects/blob/_actions.html.haml
index 2f82bfe52f3..cabef3c19fe 100644
--- a/app/views/projects/blob/_actions.html.haml
+++ b/app/views/projects/blob/_actions.html.haml
@@ -14,6 +14,6 @@
       = link_to "blame", project_blame_path(@project, @id), class: "btn btn-small" unless @blob.empty?
   = link_to "history", project_commits_path(@project, @id), class: "btn btn-small"
 
-  - if allowed_tree_edit?
-    = link_to '#modal-remove-blob', class: "remove-blob btn btn-small btn-remove", "data-toggle" => "modal" do
-      remove
+- if allowed_tree_edit?
+  = link_to '#modal-remove-blob', class: "remove-blob btn btn-small btn-remove", "data-toggle" => "modal" do
+    remove
diff --git a/app/views/projects/snippets/_blob.html.haml b/app/views/projects/snippets/_blob.html.haml
index af326a1a99a..c6350cb7d1b 100644
--- a/app/views/projects/snippets/_blob.html.haml
+++ b/app/views/projects/snippets/_blob.html.haml
@@ -1,10 +1,13 @@
 .file-holder
   .file-title
     %i.icon-file
-    %strong= @snippet.file_name
-    %span.options
-      .btn-group.tree-btn-group.pull-right
-        - if can?(current_user, :admin_project_snippet, @project) || @snippet.author == current_user
-          = link_to "Edit", edit_project_snippet_path(@project, @snippet), class: "btn btn-tiny", title: 'Edit Snippet'
-        = link_to "Raw", raw_project_snippet_path(@project, @snippet), class: "btn btn-tiny", target: "_blank"
+    %span.file_name
+      = @snippet.file_name
+    .options
+      .btn-group
+        - if can?(current_user, :modify_project_snippet, @snippet)
+          = link_to "edit", edit_project_snippet_path(@project, @snippet), class: "btn btn-small", title: 'Edit Snippet'
+        = link_to "raw", raw_project_snippet_path(@project, @snippet), class: "btn btn-small", target: "_blank"
+      - if can?(current_user, :admin_project_snippet, @snippet)
+        = link_to "remove", project_snippet_path(@project, @snippet), method: :delete, data: { confirm: "Are you sure?" }, class: "btn btn-small btn-remove", title: 'Delete Snippet'
   = render 'snippets/blob_content'
diff --git a/app/views/snippets/_blob.html.haml b/app/views/snippets/_blob.html.haml
index 15867f071ef..4a907011ad1 100644
--- a/app/views/snippets/_blob.html.haml
+++ b/app/views/snippets/_blob.html.haml
@@ -1,11 +1,13 @@
 .file-holder
   .file-title
     %i.icon-file
-    %strong= @snippet.file_name
-    %span.options
-      .btn-group.tree-btn-group.pull-right
-        - if @snippet.author == current_user
-          = link_to "Edit", edit_snippet_path(@snippet), class: "btn btn-tiny", title: 'Edit Snippet'
-          = link_to "Delete", snippet_path(@snippet), method: :delete, data: { confirm: "Are you sure?" }, class: "btn btn-tiny", title: 'Delete Snippet'
-        = link_to "Raw", raw_snippet_path(@snippet), class: "btn btn-tiny", target: "_blank"
+    %span.file_name
+      = @snippet.file_name
+    .options
+      .btn-group
+        - if can?(current_user, :modify_personal_snippet, @snippet)
+          = link_to "edit", edit_snippet_path(@snippet), class: "btn btn-small", title: 'Edit Snippet'
+        = link_to "raw", raw_snippet_path(@snippet), class: "btn btn-small", target: "_blank"
+      - if can?(current_user, :admin_personal_snippet, @snippet)
+        = link_to "remove", snippet_path(@snippet), method: :delete, data: { confirm: "Are you sure?" }, class: "btn btn-small btn-remove", title: 'Delete Snippet'
   = render 'snippets/blob_content'
diff --git a/app/views/snippets/show.html.haml b/app/views/snippets/show.html.haml
index a680e5eb5b7..655ff947d20 100644
--- a/app/views/snippets/show.html.haml
+++ b/app/views/snippets/show.html.haml
@@ -7,9 +7,9 @@
       private
 
   .pull-right
-    = link_to new_snippet_path, class: "btn btn-new btn-small", title: "New Snippet" do
+    = link_to new_snippet_path, class: "btn btn-new", title: "New Snippet" do
       Add new snippet
-
+%hr
 
 .append-bottom-20
   .pull-right
-- 
GitLab