From 41163fd55251edbfa0d0dd341e34c878563e4981 Mon Sep 17 00:00:00 2001 From: James Lopez Date: Thu, 14 Apr 2016 18:01:21 +0200 Subject: [PATCH] some experimental UI stuff to test export --- app/controllers/projects_controller.rb | 9 +++++++++ .../projects/import_export/export_service.rb | 1 + app/views/projects/edit.html.haml | 13 +++++++++++++ config/routes.rb | 1 + 4 files changed, 24 insertions(+) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 3cc37e59855..39ae3659a82 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -186,6 +186,15 @@ class ProjectsController < Projects::ApplicationController ) end + def export + ::Projects::ImportExport::ExportService.new(@project, current_user).execute + + redirect_to( + project_path(@project), + notice: "Project export successfully started" + ) + end + def toggle_star current_user.toggle_star(@project) @project.reload diff --git a/app/services/projects/import_export/export_service.rb b/app/services/projects/import_export/export_service.rb index ce13942c5d7..8b641008a88 100644 --- a/app/services/projects/import_export/export_service.rb +++ b/app/services/projects/import_export/export_service.rb @@ -1,6 +1,7 @@ module Projects module ImportExport class ExportService < BaseService + def execute(options = {}) @shared = Gitlab::ImportExport::Shared.new(relative_path: project.path_with_namespace) save_project_tree diff --git a/app/views/projects/edit.html.haml b/app/views/projects/edit.html.haml index 6d872cd0b21..8097ef5d889 100644 --- a/app/views/projects/edit.html.haml +++ b/app/views/projects/edit.html.haml @@ -132,6 +132,19 @@ = link_to 'Housekeeping', housekeeping_namespace_project_path(@project.namespace, @project), method: :post, class: "btn btn-default" + .panel.panel-default + .panel-heading Export + .errors-holder + .panel-body + %p + Downloads a compressed version of the project that can be imported. + %br + + .form-actions + = link_to 'Export', export_namespace_project_path(@project.namespace, @project), + method: :post, class: "btn btn-default" + + - if can? current_user, :archive_project, @project - if @project.archived? .panel.panel-success diff --git a/config/routes.rb b/config/routes.rb index 842fbb99843..55d3084ed67 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -433,6 +433,7 @@ Rails.application.routes.draw do post :housekeeping post :toggle_star post :markdown_preview + post :export get :autocomplete_sources get :activity end -- GitLab