diff options
Diffstat (limited to 'app/controllers/projects/issues_controller.rb')
-rw-r--r-- | app/controllers/projects/issues_controller.rb | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/app/controllers/projects/issues_controller.rb b/app/controllers/projects/issues_controller.rb index ae48a02f623..f88eb9e0322 100644 --- a/app/controllers/projects/issues_controller.rb +++ b/app/controllers/projects/issues_controller.rb @@ -155,11 +155,11 @@ class Projects::IssuesController < Projects::ApplicationController def can_create_branch can_create = current_user && can?(current_user, :push_code, @project) && - issue.can_be_worked_on? + @issue.can_be_worked_on? respond_to do |format| format.json do - render json: { can_create_branch: can_create, suggested_branch_name: issue.suggested_branch_name } + render json: { can_create_branch: can_create, suggested_branch_name: @issue.suggested_branch_name } end end end @@ -176,10 +176,19 @@ class Projects::IssuesController < Projects::ApplicationController end def import_csv - redirect_to( - project_issues_path(project), - notice: _("Your issues are being imported. Once finished, you'll get a confirmation email.") - ) + return render_404 unless Feature.enabled?(:issues_import_csv) && can?(current_user, :import_issues, project) + + service = UploadService.new(project, params[:file]) + + if service.execute + ImportIssuesCsvWorker.perform_async(current_user.id, project.id, service.uploader.upload.id) + + flash[:notice] = _("Your issues are being imported. Once finished, you'll get a confirmation email.") + else + flash[:alert] = _("File upload error.") + end + + redirect_to project_issues_path(project) end protected |