41 lines
1.4 KiB
JavaScript
41 lines
1.4 KiB
JavaScript
|
((global) => {
|
||
|
|
||
|
class Pipelines {
|
||
|
constructor() {
|
||
|
$(document).off('click', '.toggle-pipeline-btn').on('click', '.toggle-pipeline-btn', this.toggleGraph);
|
||
|
this.addMarginToBuildColumns();
|
||
|
}
|
||
|
|
||
|
toggleGraph() {
|
||
|
const $pipelineBtn = $(this).closest('.toggle-pipeline-btn');
|
||
|
const $pipelineGraph = $(this).closest('.row-content-block').next('.pipeline-graph');
|
||
|
const $btnText = $(this).find('.toggle-btn-text');
|
||
|
const graphCollapsed = $pipelineGraph.hasClass('graph-collapsed');
|
||
|
|
||
|
$($pipelineBtn).add($pipelineGraph).toggleClass('graph-collapsed');
|
||
|
|
||
|
|
||
|
graphCollapsed ? $btnText.text('Hide') : $btnText.text('Expand')
|
||
|
}
|
||
|
|
||
|
addMarginToBuildColumns() {
|
||
|
const $secondChildBuildNode = $('.build:nth-child(2)');
|
||
|
if ($secondChildBuildNode.length) {
|
||
|
const $firstChildBuildNode = $secondChildBuildNode.prev('.build');
|
||
|
const $multiBuildColumn = $secondChildBuildNode.closest('.stage-column');
|
||
|
const $previousColumn = $multiBuildColumn.prev('.stage-column');
|
||
|
$multiBuildColumn.addClass('left-margin');
|
||
|
$firstChildBuildNode.addClass('left-connector');
|
||
|
$previousColumn.each(function() {
|
||
|
$this = $(this);
|
||
|
if ($('.build', $this).length === 1) $this.addClass('no-margin');
|
||
|
});
|
||
|
}
|
||
|
$('.pipeline-graph').removeClass('hidden');
|
||
|
}
|
||
|
}
|
||
|
|
||
|
global.Pipelines = Pipelines;
|
||
|
|
||
|
})(window.gl || (window.gl = {}));
|