105 lines
3.5 KiB
JavaScript
105 lines
3.5 KiB
JavaScript
/* global Vue, Flash, gl */
|
|
/* eslint-disable no-param-reassign */
|
|
|
|
((gl) => {
|
|
gl.VuePipelineActions = Vue.extend({
|
|
props: ['pipeline', 'svgs'],
|
|
computed: {
|
|
actions() {
|
|
return this.pipeline.details.manual_actions.length > 0;
|
|
},
|
|
artifacts() {
|
|
return this.pipeline.details.artifacts.length > 0;
|
|
},
|
|
},
|
|
methods: {
|
|
download(name) {
|
|
return `Download ${name} artifacts`;
|
|
},
|
|
},
|
|
template: `
|
|
<td class="pipeline-actions hidden-xs">
|
|
<div class="controls pull-right">
|
|
<div class="btn-group inline">
|
|
<div class="btn-group">
|
|
<button
|
|
v-if='actions'
|
|
class="dropdown-toggle btn btn-default has-tooltip js-pipeline-dropdown-manual-actions"
|
|
data-toggle="dropdown"
|
|
title="Manual job"
|
|
data-placement="top"
|
|
aria-label="Manual job"
|
|
>
|
|
<span v-html='svgs.iconPlay' aria-hidden="true"></span>
|
|
<i class="fa fa-caret-down" aria-hidden="true"></i>
|
|
</button>
|
|
<ul class="dropdown-menu dropdown-menu-align-right">
|
|
<li v-for='action in pipeline.details.manual_actions'>
|
|
<a
|
|
rel="nofollow"
|
|
data-method="post"
|
|
:href='action.path'
|
|
>
|
|
<span v-html='svgs.iconPlay' aria-hidden="true"></span>
|
|
<span>{{action.name}}</span>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="btn-group">
|
|
<button
|
|
v-if='artifacts'
|
|
class="dropdown-toggle btn btn-default build-artifacts has-tooltip js-pipeline-dropdown-download"
|
|
title="Artifacts"
|
|
data-placement="top"
|
|
data-toggle="dropdown"
|
|
aria-label="Artifacts"
|
|
>
|
|
<i class="fa fa-download" aria-hidden="true"></i>
|
|
<i class="fa fa-caret-down" aria-hidden="true"></i>
|
|
</button>
|
|
<ul class="dropdown-menu dropdown-menu-align-right">
|
|
<li v-for='artifact in pipeline.details.artifacts'>
|
|
<a
|
|
rel="nofollow"
|
|
:href='artifact.path'
|
|
>
|
|
<i class="fa fa-download" aria-hidden="true"></i>
|
|
<span>{{download(artifact.name)}}</span>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<div class="cancel-retry-btns inline">
|
|
<a
|
|
v-if='pipeline.flags.retryable'
|
|
class="btn has-tooltip"
|
|
title="Retry"
|
|
rel="nofollow"
|
|
data-method="post"
|
|
data-placement="top"
|
|
data-toggle="dropdown"
|
|
:href='pipeline.retry_path'
|
|
aria-label="Retry">
|
|
<i class="fa fa-repeat" aria-hidden="true"></i>
|
|
</a>
|
|
<a
|
|
v-if='pipeline.flags.cancelable'
|
|
class="btn btn-remove has-tooltip"
|
|
title="Cancel"
|
|
rel="nofollow"
|
|
data-method="post"
|
|
data-placement="top"
|
|
data-toggle="dropdown"
|
|
:href='pipeline.cancel_path'
|
|
aria-label="Cancel">
|
|
<i class="fa fa-remove" aria-hidden="true"></i>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
`,
|
|
});
|
|
})(window.gl || (window.gl = {}));
|