summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/blob/blob_ci_yaml.js.es6
blob: 62e686b8d9bc383b4c42d6ec22c796be5529b479 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/* eslint-disable */
/*= require blob/template_selector */
((global) => {

  class BlobCiYamlSelector extends gl.TemplateSelector {
    requestFile(query) {
      return Api.gitlabCiYml(query.name, this.requestFileSuccess.bind(this));
    }

    requestFileSuccess(file) {
      return super.requestFileSuccess(file);
    }
  }

  global.BlobCiYamlSelector = BlobCiYamlSelector;

  class BlobCiYamlSelectors {
    constructor({ editor, $dropdowns } = {}) {
      this.editor = editor;
      this.$dropdowns = $dropdowns || $('.js-gitlab-ci-yml-selector');
      this.initSelectors();
    }

    initSelectors() {
      const editor = this.editor;
      this.$dropdowns.each((i, dropdown) => {
        const $dropdown = $(dropdown);
        return new BlobCiYamlSelector({
          editor,
          pattern: /(.gitlab-ci.yml)/,
          data: $dropdown.data('data'),
          wrapper: $dropdown.closest('.js-gitlab-ci-yml-selector-wrap'),
          dropdown: $dropdown
        });
      });
    }
  }

  global.BlobCiYamlSelectors = BlobCiYamlSelectors;

    class BlobDockerfileSelector extends gl.TemplateSelector {
        requestFile(query) {
            return Api.dockerfileYml(query.name, this.requestFileSuccess.bind(this));
        }

        requestFileSuccess(file) {
            return super.requestFileSuccess(file);
        }
    }

    global.BlobDockerfileSelector = BlobDockerfileSelector;

    class BlobDockerfileSelectors {
        constructor({ editor, $dropdowns } = {}) {
            this.editor = editor;
            this.$dropdowns = $dropdowns || $('.js-dockerfile-selector');
            this.initSelectors();
        }

        initSelectors() {
            const editor = this.editor;
            this.$dropdowns.each((i, dropdown) => {
                const $dropdown = $(dropdown);
                return new BlobDockerfileSelector({
                    editor,
                    pattern: /(Dockerfile)/,
                    data: $dropdown.data('data'),
                    wrapper: $dropdown.closest('.js-dockerfile-selector-wrap'),
                    dropdown: $dropdown
                });
            });
        }
    }

    global.BlobDockerfileSelectors = BlobDockerfileSelectors;

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