diff --git a/assets/scripts/app/templates/repos/show/actions.hbs b/assets/scripts/app/templates/repos/show/actions.hbs
index 5f1232fd..28c0006d 100644
--- a/assets/scripts/app/templates/repos/show/actions.hbs
+++ b/assets/scripts/app/templates/repos/show/actions.hbs
@@ -39,7 +39,7 @@
{{/if}}
{{#if view.displayRemoveLog}}
-
{{/if}}
@@ -53,3 +53,14 @@
+
+
diff --git a/assets/scripts/app/views/repo/show.coffee b/assets/scripts/app/views/repo/show.coffee
index d1779239..c74f92f5 100644
--- a/assets/scripts/app/views/repo/show.coffee
+++ b/assets/scripts/app/views/repo/show.coffee
@@ -181,7 +181,7 @@ Travis.reopen
requeueJob: ->
if @get('canRequeueJob')
- @requeue @get('job')
+ @requeue @get('_job')
cancelBuild: ->
if @get('canCancelBuild')
@@ -198,8 +198,9 @@ Travis.reopen
removeLog: ->
+ @popupCloseAll()
if @get('canRemoveLog')
- job = @get('job') || @get('build.jobs.firstObject')
+ job = @get('_job') || @get('build.jobs.firstObject')
job.removeLog().then ->
Travis.flash(success: 'Log has been successfully removed.')
, (xhr) ->
@@ -213,7 +214,7 @@ Travis.reopen
cancelJob: ->
if @get('canCancelJob')
Travis.flash(notice: 'Job cancellation has been scheduled.')
- @get('job').cancel().then ->
+ @get('_job').cancel().then ->
Travis.flash(success: 'Job has been successfully canceled.')
, (xhr) ->
if xhr.status == 422
@@ -228,6 +229,12 @@ Travis.reopen
@popup('code-climate')
event.stopPropagation() if event?
+ removeLogPopup: ->
+ if @get('canRemoveLog')
+ @set('active', true)
+ @popup(event)
+ event.stopPropagation()
+
hasPermission: (->
if permissions = @get('currentUser.permissions')
permissions.contains parseInt(@get('repo.id'))
@@ -255,19 +262,21 @@ Travis.reopen
).property('displayRequeueJob', 'hasPermission')
showDownloadLog: (->
- @get('jobIdForLog')
- ).property('jobIdForLog')
+ @get('_job')
+ ).property('_job')
- jobIdForLog: (->
- @get('job.id') ||
- (@get('build.jobs.length') == 1 && @get('build.jobs').objectAt(0).get?('id'))
- ).property('job.id', 'build.jobs.firstObject.id', 'build.jobs.length')
-
- job: (->
+ _job: (->
if id = @get('jobIdForLog')
Travis.Job.find(id)
).property('jobIdForLog')
+ jobIdForLog: (->
+ job = @get('job.id')
+ unless job
+ if @get('build.jobs.length') == 1
+ job = @get('build.jobs').objectAt?(0).get?('id')
+ job
+ ).property('job.id', 'build.jobs.firstObject.id', 'build.jobs.length')
plainTextLogUrl: (->
if id = @get('jobIdForLog')
@@ -283,9 +292,9 @@ Travis.reopen
).property('displayRemoveLog', 'hasPermission')
displayRemoveLog: (->
- (@get('isJobTab') || (@get('isBuildTab') && @get('build.jobs.length') == 1)) &&
- @get('build.jobs').objectAt(0).get?('canRemoveLog')
- ).property('isJobTab', 'isBuildTab', 'build.jobs.length', 'job.canRemoveLog')
+ if job = Travis.Job.find(@get('jobIdForLog'))
+ (@get('isJobTab') || (@get('isBuildTab') && @get('build.jobs.length') == 1)) && job.get('canRemoveLog')
+ ).property('isJobTab', 'isBuildTab', 'build.jobs.length', 'job.canRemoveLog', 'jobIdForLog')
canCancelBuild: (->
@get('displayCancelBuild') && @get('hasPermission')