diff options
Diffstat (limited to 'app/assets/javascripts/pipelines.js.es6')
-rw-r--r-- | app/assets/javascripts/pipelines.js.es6 | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/app/assets/javascripts/pipelines.js.es6 b/app/assets/javascripts/pipelines.js.es6 index 5a16def5e35..0fa56df0d2a 100644 --- a/app/assets/javascripts/pipelines.js.es6 +++ b/app/assets/javascripts/pipelines.js.es6 @@ -7,9 +7,9 @@ } initGraphToggle() { + this.pipelineGraph = document.querySelector('.pipeline-graph'); this.toggleButton = document.querySelector('.toggle-pipeline-btn'); this.toggleButtonText = this.toggleButton.querySelector('.toggle-btn-text'); - this.pipelineGraph = document.querySelector('.pipeline-graph'); this.toggleButton.addEventListener('click', this.toggleGraph.bind(this)); } @@ -17,21 +17,22 @@ const graphCollapsed = this.pipelineGraph.classList.contains('graph-collapsed'); this.toggleButton.classList.toggle('graph-collapsed'); this.pipelineGraph.classList.toggle('graph-collapsed'); - graphCollapsed ? this.toggleButtonText.textContent = 'Hide' : this.toggleButtonText.textContent = 'Expand'; + this.toggleButtonText.textContent = graphCollapsed ? 'Hide' : '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'); - }); + const secondChildBuildNodes = this.pipelineGraph.querySelectorAll('.build:nth-child(2)'); + for (buildNodeIndex in secondChildBuildNodes) { + const buildNode = secondChildBuildNodes[buildNodeIndex]; + const firstChildBuildNode = buildNode.previousElementSibling; + if (!firstChildBuildNode || !firstChildBuildNode.matches('.build')) continue; + const multiBuildColumn = buildNode.closest('.stage-column'); + const previousColumn = multiBuildColumn.previousElementSibling; + if (!previousColumn || !previousColumn.matches('.stage-column')) continue; + multiBuildColumn.classList.add('left-margin'); + firstChildBuildNode.classList.add('left-connector'); + const columnBuilds = previousColumn.querySelectorAll('.build'); + if (columnBuilds.length === 1) previousColumn.classList.add('no-margin'); } this.pipelineGraph.classList.remove('hidden'); } |