Class: ReleasesController
Instance Method Summary
collapse
Methods included from UrlHelper
#edit_release_path, #edit_release_url, #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, #release_path, #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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
# File 'app/controllers/releases_controller.rb', line 61
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
95
96
97
98
99
100
101
102
|
# File 'app/controllers/releases_controller.rb', line 95
def destroy
@release = @releases.find(params[:id])
authorize! :destroy, @release
@release.destroy
redirect_to releases_url
end
|
#edit ⇒ Object
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
# File 'app/controllers/releases_controller.rb', line 45
def edit
@release = @releases.find(params[:id])
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
6
7
8
9
|
# File 'app/controllers/releases_controller.rb', line 6
def index
@title = "Releases • #{@project.name}"
@title << " (#{@environment})" if @environment
end
|
#new ⇒ Object
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
# File 'app/controllers/releases_controller.rb', line 18
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
11
12
13
14
15
16
|
# File 'app/controllers/releases_controller.rb', line 11
def show
@release = @releases.find(params[:id])
authorize! :show, @release
@title = "Release #{@release.release_date.strftime("%b %-d")} • #{@project.name}"
end
|
#update ⇒ Object
84
85
86
87
88
89
90
91
92
93
|
# File 'app/controllers/releases_controller.rb', line 84
def update
@release = @releases.find(params[:id])
authorize! :update, @release
if @release.update_attributes(params[:release])
redirect_to @release, notice: "Release was successfully updated."
else
render action: "edit"
end
end
|