From 3bda96215845932ea6dea9e619a94dada1a61ade Mon Sep 17 00:00:00 2001
From: tiagonbotelho <tiagonbotelho@hotmail.com>
Date: Fri, 1 Jul 2016 16:32:56 +0100
Subject: [PATCH] implements the form for renaming the new filename on the file
 edit page

---
 app/controllers/projects/blob_controller.rb | 3 ++-
 app/services/files/update_service.rb        | 1 +
 app/views/projects/blob/_editor.html.haml   | 6 +++++-
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/app/controllers/projects/blob_controller.rb b/app/controllers/projects/blob_controller.rb
index 7599fec3cdf..4c42be7d710 100644
--- a/app/controllers/projects/blob_controller.rb
+++ b/app/controllers/projects/blob_controller.rb
@@ -43,7 +43,8 @@ class Projects::BlobController < Projects::ApplicationController
         diffs_namespace_project_merge_request_path(from_merge_request.target_project.namespace, from_merge_request.target_project, from_merge_request) +
           "#file-path-#{hexdigest(@path)}"
       else
-        namespace_project_blob_path(@project.namespace, @project, File.join(@target_branch, @path))
+        # params[:file_name] stores the new name for the file
+        namespace_project_blob_path(@project.namespace, @project, File.join(@target_branch, params[:file_name]))
       end
 
     create_commit(Files::UpdateService, success_path: after_edit_path,
diff --git a/app/services/files/update_service.rb b/app/services/files/update_service.rb
index 1960dc7d949..52451d72b57 100644
--- a/app/services/files/update_service.rb
+++ b/app/services/files/update_service.rb
@@ -3,6 +3,7 @@ require_relative "base_service"
 module Files
   class UpdateService < Files::BaseService
     def commit
+      # Need to update file_path with the new filename
       repository.commit_file(current_user, @file_path, @file_content, @commit_message, @target_branch, true)
     end
   end
diff --git a/app/views/projects/blob/_editor.html.haml b/app/views/projects/blob/_editor.html.haml
index 29c7d45074a..3c64b2f5e96 100644
--- a/app/views/projects/blob/_editor.html.haml
+++ b/app/views/projects/blob/_editor.html.haml
@@ -4,7 +4,11 @@
       = icon('code-fork')
       = ref
     %span.editor-file-name
-      = @path
+      - if current_action?(:edit) && can?(current_user, :push_code, @project)
+        = text_field_tag 'file_name', params[:file_name], placeholder: @path,
+                                      class: 'form-control new-file-name'
+      - else
+        = @path
 
     - if current_action?(:new) || current_action?(:create)
       %span.editor-file-name
-- 
GitLab