pipelines.js.es6 1.8 KB
Newer Older
1
/* eslint-disable */
L
Luke Bennett 已提交
2 3 4 5
((global) => {

  class Pipelines {
    constructor() {
6
      this.initGraphToggle();
7
      this.addMarginToBuildColumns();
8 9
    }

10
    initGraphToggle() {
L
Luke Bennett 已提交
11
      this.pipelineGraph = document.querySelector('.pipeline-graph');
12 13 14 15
      this.toggleButton = document.querySelector('.toggle-pipeline-btn');
      this.toggleButtonText = this.toggleButton.querySelector('.toggle-btn-text');
      this.toggleButton.addEventListener('click', this.toggleGraph.bind(this));
    }
16

17 18 19 20
    toggleGraph() {
      const graphCollapsed = this.pipelineGraph.classList.contains('graph-collapsed');
      this.toggleButton.classList.toggle('graph-collapsed');
      this.pipelineGraph.classList.toggle('graph-collapsed');
L
Luke Bennett 已提交
21
      this.toggleButtonText.textContent = graphCollapsed ? 'Hide' : 'Expand';
L
Luke Bennett 已提交
22 23 24
    }

    addMarginToBuildColumns() {
L
Luke Bennett 已提交
25 26 27 28 29 30 31 32 33 34 35 36
      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');
L
Luke Bennett 已提交
37
      }
38
      this.pipelineGraph.classList.remove('hidden');
39
    }
40
  }
41

L
Luke Bennett 已提交
42 43 44
  global.Pipelines = Pipelines;

})(window.gl || (window.gl = {}));