More release related logic to separate resource
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
This commit is contained in:
parent
1c4d1c3bd6
commit
ba67af79a9
8 changed files with 46 additions and 11 deletions
32
app/controllers/projects/releases_controller.rb
Normal file
32
app/controllers/projects/releases_controller.rb
Normal file
|
@ -0,0 +1,32 @@
|
|||
class Projects::ReleasesController < Projects::ApplicationController
|
||||
# Authorize
|
||||
before_action :require_non_empty_project
|
||||
before_action :authorize_download_code!
|
||||
before_action :authorize_push_code!
|
||||
before_action :tag
|
||||
before_action :release
|
||||
|
||||
def show
|
||||
end
|
||||
|
||||
def edit
|
||||
end
|
||||
|
||||
def update
|
||||
description = params[:release][:description]
|
||||
release.update_attributes(description: description)
|
||||
release.save
|
||||
|
||||
redirect_to namespace_project_tag_release_path(@project.namespace, @project, @tag.name)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def tag
|
||||
@tag ||= @repository.find_tag(params[:tag_id])
|
||||
end
|
||||
|
||||
def release
|
||||
@release ||= @project.releases.find_or_initialize_by(tag: @tag.name)
|
||||
end
|
||||
end
|
|
@ -10,14 +10,6 @@ class Projects::TagsController < Projects::ApplicationController
|
|||
@tags = Kaminari.paginate_array(sorted).page(params[:page]).per(PER_PAGE)
|
||||
end
|
||||
|
||||
def edit
|
||||
# TODO: implement
|
||||
end
|
||||
|
||||
def update
|
||||
# TODO: implement
|
||||
end
|
||||
|
||||
def create
|
||||
result = CreateTagService.new(@project, current_user).
|
||||
execute(params[:tag_name], params[:ref], params[:message])
|
||||
|
|
|
@ -121,6 +121,7 @@ class Project < ActiveRecord::Base
|
|||
has_many :starrers, through: :users_star_projects, source: :user
|
||||
has_many :ci_commits, dependent: :destroy, class_name: 'Ci::Commit', foreign_key: :gl_project_id
|
||||
has_many :ci_builds, through: :ci_commits, source: :builds, dependent: :destroy, class_name: 'Ci::Build'
|
||||
has_many :releases, dependent: :destroy
|
||||
|
||||
has_one :import_data, dependent: :destroy, class_name: "ProjectImportData"
|
||||
has_one :gitlab_ci_project, dependent: :destroy, class_name: "Ci::Project", foreign_key: :gitlab_id
|
||||
|
@ -247,7 +248,7 @@ class Project < ActiveRecord::Base
|
|||
joins(:namespace).
|
||||
iwhere('namespaces.path' => namespace_path)
|
||||
|
||||
projects.where('projects.path' => project_path).take ||
|
||||
projects.where('projects.path' => project_path).take ||
|
||||
projects.iwhere('projects.path' => project_path).take
|
||||
end
|
||||
|
||||
|
|
6
app/views/projects/releases/edit.html.haml
Normal file
6
app/views/projects/releases/edit.html.haml
Normal file
|
@ -0,0 +1,6 @@
|
|||
= form_for(@release, method: :put, url: namespace_project_tag_release_path(@project.namespace, @project, @tag.name), html: { class: 'form-horizontal gfm-form' }) do |f|
|
||||
= render layout: 'projects/md_preview', locals: { preview_class: "md-preview", referenced_users: true } do
|
||||
= render 'projects/zen', f: f, attr: :description, classes: 'js-quick-submit'
|
||||
= render 'projects/notes/hints'
|
||||
.error-alert
|
||||
= f.submit 'Save changes', class: 'btn btn-save'
|
1
app/views/projects/releases/show.html.haml
Normal file
1
app/views/projects/releases/show.html.haml
Normal file
|
@ -0,0 +1 @@
|
|||
= debug @release
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
= strip_gpg_signature(tag.message)
|
||||
.controls
|
||||
= link_to edit_namespace_project_tag_path(@project.namespace, @project, tag.name), class: 'btn-grouped btn' do
|
||||
= link_to edit_namespace_project_tag_release_path(@project.namespace, @project, tag.name), class: 'btn-grouped btn' do
|
||||
= icon("pencil")
|
||||
- if can? current_user, :download_code, @project
|
||||
= render 'projects/repositories/download_archive', ref: tag.name, btn_class: 'btn-grouped btn-group-xs'
|
||||
|
|
|
@ -569,7 +569,10 @@ Gitlab::Application.routes.draw do
|
|||
end
|
||||
|
||||
resources :branches, only: [:index, :new, :create, :destroy], constraints: { id: Gitlab::Regex.git_reference_regex }
|
||||
resources :tags, constraints: { id: Gitlab::Regex.git_reference_regex }
|
||||
resources :tags, only: [:index, :new, :create, :destroy], constraints: { id: Gitlab::Regex.git_reference_regex } do
|
||||
resource :release
|
||||
end
|
||||
|
||||
resources :protected_branches, only: [:index, :create, :update, :destroy], constraints: { id: Gitlab::Regex.git_reference_regex }
|
||||
resource :variables, only: [:show, :update]
|
||||
resources :triggers, only: [:index, :create, :destroy]
|
||||
|
|
Loading…
Reference in a new issue