From 05edd5e6dc169e4987e5e98e9243fa85c5b6e4b8 Mon Sep 17 00:00:00 2001
From: James Lopez <james@jameslopez.es>
Date: Fri, 15 Apr 2016 15:38:34 +0200
Subject: [PATCH] download export now working

---
 app/controllers/projects_controller.rb | 11 ++++++++++-
 app/views/projects/edit.html.haml      |  7 +++++--
 config/routes.rb                       |  1 +
 3 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index 39ae3659a82..9fb4370ef90 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -190,11 +190,15 @@ class ProjectsController < Projects::ApplicationController
     ::Projects::ImportExport::ExportService.new(@project, current_user).execute
 
     redirect_to(
-      project_path(@project),
+      edit_project_path(@project),
       notice: "Project export successfully started"
     )
   end
 
+  def download_export
+    send_file export_project_path, disposition: 'attachment'
+  end
+
   def toggle_star
     current_user.toggle_star(@project)
     @project.reload
@@ -256,4 +260,9 @@ class ProjectsController < Projects::ApplicationController
   def get_id
     project.repository.root_ref
   end
+
+  def export_project_path
+    # TODO: move this, probably to ImportExport and refactor
+    File.join(Settings.shared['path'], 'tmp/project_exports', @project.path_with_namespace, 'project.tar.gz')
+  end
 end
diff --git a/app/views/projects/edit.html.haml b/app/views/projects/edit.html.haml
index 8097ef5d889..37ac0aa1f58 100644
--- a/app/views/projects/edit.html.haml
+++ b/app/views/projects/edit.html.haml
@@ -133,7 +133,7 @@
                 method: :post, class: "btn btn-default"
 
       .panel.panel-default
-        .panel-heading Export
+        .panel-heading Export project
         .errors-holder
         .panel-body
           %p
@@ -141,9 +141,12 @@
             %br
 
           .form-actions
-            = link_to 'Export', export_namespace_project_path(@project.namespace, @project),
+            = link_to 'Generate new export', export_namespace_project_path(@project.namespace, @project),
                 method: :post, class: "btn btn-default"
 
+            = link_to 'Download export', download_export_namespace_project_path(@project.namespace, @project),
+              method: :post, class: "btn btn-default"
+
 
       - if can? current_user, :archive_project, @project
         - if @project.archived?
diff --git a/config/routes.rb b/config/routes.rb
index 55d3084ed67..21164ba0eda 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -434,6 +434,7 @@ Rails.application.routes.draw do
         post :toggle_star
         post :markdown_preview
         post :export
+        post :download_export
         get :autocomplete_sources
         get :activity
       end
-- 
GitLab