Class: ReleasesController
Instance Method Summary
collapse
#_format_time_ago, #format_change, #format_change_tag, #format_release_age, #format_release_date, #format_release_description, #format_release_subject, #format_time_ago, #ordered_by_tag, #replace_quotes
Methods included from UrlHelper
#feature_path, #github_commit_range_url, #github_commit_url, #github_project_url, #github_url?, #goldmine_case_number_url, #link_to_project_feature, #new_release_url, #releases_path
#after_sign_in_path_for, #api_authenticate!, #current_project, #expire_revision!, #followed_projects, #no_cache, #read_revision, #require_login, #return_or_cache_revision!, #revision, #save_current_project, #set_current_project, #unfurling?
Instance Method Details
#create ⇒ Object
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
# File 'app/controllers/releases_controller.rb', line 47
def create
@release = @releases.new(params[:release])
@release.user = current_user
authorize! :create, @release
if @release.save
ProjectNotification.release(@release).deliver! if params[:send_release_email]
@release.tickets.resolve_all! if params[:resolve_tickets]
redirect_to @release
else
@commit0 = @release.commit0
@commit1 = @release.commit1
if @release.can_read_commits?
@release.load_commits!
@release.load_tickets!
end
render action: "new"
end
end
|
#destroy ⇒ Object
112
113
114
115
116
117
118
|
# File 'app/controllers/releases_controller.rb', line 112
def destroy
authorize! :destroy, @release
@release.destroy
redirect_to releases_url
end
|
#edit ⇒ Object
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
# File 'app/controllers/releases_controller.rb', line 87
def edit
authorize! :update, @release
if params[:recreate]
if @release.can_read_commits?
@release.load_commits!
@release.load_tickets!
@release.build_changes_from_commits
end
end
@release.release_changes = [ReleaseChange.new(@release, "", "")] if @release.release_changes.none?
@release.valid?
end
|
#index ⇒ Object
10
11
12
13
14
15
16
17
18
|
# File 'app/controllers/releases_controller.rb', line 10
def index
@title = "Releases • #{@project.name}"
@title << " (#{@environment})" if @environment
@q = params[:q]
@q = nil if @q.blank?
@releases = @project.releases.preload(:deploy).search(@q) if @q
render partial: (@q ? "releases/results" : "releases/index") if request.xhr?
end
|
#new ⇒ Object
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
# File 'app/controllers/releases_controller.rb', line 20
def new
@title = "New Release (#{@environment}) • #{@project.name}"
@deploy = Deploy.find_by_id(params[:deploy_id])
@releases = @releases.before(@deploy.completed_at) if @deploy
@commit0 = params.fetch :commit0, @releases.most_recent_commit
@commit1 = params.fetch :commit1, @deploy.try(:commit)
@release = @releases.new(commit0: @commit0, commit1: @commit1, deploy: @deploy)
authorize! :create, @release
@manual = params[:manual] == "true" || !@project.has_version_control?
if @release.can_read_commits?
@release.load_commits!
@release.load_tickets!
@release.build_changes_from_commits
end
@release.release_changes = [ReleaseChange.new(@release, "", "")] if @release.release_changes.none?
if request.["X-PJAX"]
render template: "releases/_new_release", layout: false
else
render
end
end
|
#show ⇒ Object
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
# File 'app/controllers/releases_controller.rb', line 72
def show
authorize! :show, @release
@title = "Release #{@release.release_date.strftime("%b %-d")} • #{@project.name}"
if request.format.oembed?
render json: {
version: "1.0",
type: "link",
author_name: "#{@project.slug} / #{@release.environment_name}",
title: format_release_subject(@release),
html: format_release_description(@release) }
end
end
|
#update ⇒ Object
102
103
104
105
106
107
108
109
110
|
# File 'app/controllers/releases_controller.rb', line 102
def update
authorize! :update, @release
if @release.update_attributes(params[:release])
redirect_to @release, notice: "Release was successfully updated."
else
render action: "edit"
end
end
|