Add GitLab CI Yml dropdown selector
This commit is contained in:
parent
620d014aef
commit
5d12189296
5 changed files with 42 additions and 2 deletions
|
@ -7,6 +7,7 @@
|
||||||
labelsPath: "/api/:version/projects/:id/labels"
|
labelsPath: "/api/:version/projects/:id/labels"
|
||||||
licensePath: "/api/:version/licenses/:key"
|
licensePath: "/api/:version/licenses/:key"
|
||||||
gitignorePath: "/api/:version/gitignores/:key"
|
gitignorePath: "/api/:version/gitignores/:key"
|
||||||
|
gitlabCIYmlPath: "/api/:version/gitlab_ci_ymls/:key"
|
||||||
|
|
||||||
group: (group_id, callback) ->
|
group: (group_id, callback) ->
|
||||||
url = Api.buildUrl(Api.groupPath)
|
url = Api.buildUrl(Api.groupPath)
|
||||||
|
@ -110,6 +111,12 @@
|
||||||
$.get url, (gitignore) ->
|
$.get url, (gitignore) ->
|
||||||
callback(gitignore)
|
callback(gitignore)
|
||||||
|
|
||||||
|
gitlabCIYml: (key, callback) ->
|
||||||
|
url = Api.buildUrl(Api.gitlabCIYmlPath).replace(':key', key)
|
||||||
|
|
||||||
|
$.get url, (file) ->
|
||||||
|
callback(file)
|
||||||
|
|
||||||
buildUrl: (url) ->
|
buildUrl: (url) ->
|
||||||
url = gon.relative_url_root + url if gon.relative_url_root?
|
url = gon.relative_url_root + url if gon.relative_url_root?
|
||||||
return url.replace(':version', gon.api_version)
|
return url.replace(':version', gon.api_version)
|
||||||
|
|
23
app/assets/javascripts/blob/blob_ci_yaml.js.coffee
Normal file
23
app/assets/javascripts/blob/blob_ci_yaml.js.coffee
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
#= require blob/template_selector
|
||||||
|
|
||||||
|
class @BlobCiYamlSelector extends TemplateSelector
|
||||||
|
requestFile: (query) ->
|
||||||
|
Api.gitlabCIYml query.name, @requestFileSuccess.bind(@)
|
||||||
|
|
||||||
|
class @BlobCiYamlSelectors
|
||||||
|
constructor: (opts) ->
|
||||||
|
{
|
||||||
|
@$dropdowns = $('.js-gitlab-ci-yml-selector')
|
||||||
|
@editor
|
||||||
|
} = opts
|
||||||
|
|
||||||
|
@$dropdowns.each (i, dropdown) =>
|
||||||
|
$dropdown = $(dropdown)
|
||||||
|
|
||||||
|
new BlobCiYamlSelector(
|
||||||
|
pattern: /(.gitlab-ci.yml)/,
|
||||||
|
data: $dropdown.data('data'),
|
||||||
|
wrapper: $dropdown.closest('.js-gitlab-ci-yml-selector-wrap'),
|
||||||
|
dropdown: $dropdown,
|
||||||
|
editor: @editor
|
||||||
|
)
|
|
@ -15,6 +15,7 @@ class @EditBlob
|
||||||
|
|
||||||
new BlobLicenseSelectors { @editor }
|
new BlobLicenseSelectors { @editor }
|
||||||
new BlobGitignoreSelectors { @editor }
|
new BlobGitignoreSelectors { @editor }
|
||||||
|
new BlobCiYamlSelectors { @editor }
|
||||||
|
|
||||||
initModePanesAndLinks: ->
|
initModePanesAndLinks: ->
|
||||||
@$editModePanes = $(".js-edit-mode-pane")
|
@$editModePanes = $(".js-edit-mode-pane")
|
||||||
|
|
|
@ -60,13 +60,14 @@
|
||||||
|
|
||||||
.encoding-selector,
|
.encoding-selector,
|
||||||
.license-selector,
|
.license-selector,
|
||||||
.gitignore-selector {
|
.gitignore-selector,
|
||||||
|
.gitlab-ci-yml-selector {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
font-family: $regular_font;
|
font-family: $regular_font;
|
||||||
}
|
}
|
||||||
|
|
||||||
.gitignore-selector, .license-selector {
|
.gitignore-selector, .license-selector, .gitlab-ci-yml-selector {
|
||||||
.dropdown {
|
.dropdown {
|
||||||
line-height: 21px;
|
line-height: 21px;
|
||||||
}
|
}
|
||||||
|
@ -76,4 +77,10 @@
|
||||||
width: 220px;
|
width: 220px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.gitlab-ci-yml-selector {
|
||||||
|
.dropdown-menu-toggle {
|
||||||
|
width: 250px;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,8 @@
|
||||||
= dropdown_tag("Choose a License template", options: { toggle_class: 'js-license-selector', title: "Choose a license", filter: true, placeholder: "Filter", data: { data: licenses_for_select, project: @project.name, fullname: @project.namespace.human_name } } )
|
= dropdown_tag("Choose a License template", options: { toggle_class: 'js-license-selector', title: "Choose a license", filter: true, placeholder: "Filter", data: { data: licenses_for_select, project: @project.name, fullname: @project.namespace.human_name } } )
|
||||||
.gitignore-selector.js-gitignore-selector-wrap.hidden
|
.gitignore-selector.js-gitignore-selector-wrap.hidden
|
||||||
= dropdown_tag("Choose a .gitignore template", options: { toggle_class: 'js-gitignore-selector', title: "Choose a template", filter: true, placeholder: "Filter", data: { data: gitignore_names } } )
|
= dropdown_tag("Choose a .gitignore template", options: { toggle_class: 'js-gitignore-selector', title: "Choose a template", filter: true, placeholder: "Filter", data: { data: gitignore_names } } )
|
||||||
|
.gitlab-ci-yml-selector.js-gitlab-ci-yml-selector-wrap.hidden
|
||||||
|
= dropdown_tag("Choose a GitLab CI Yaml template", options: { toggle_class: 'js-gitlab-ci-yml-selector', title: "Choose a template", filter: true, placeholder: "Filter", data: { data: gitlab_ci_ymls } } )
|
||||||
.encoding-selector
|
.encoding-selector
|
||||||
= select_tag :encoding, options_for_select([ "base64", "text" ], "text"), class: 'select2'
|
= select_tag :encoding, options_for_select([ "base64", "text" ], "text"), class: 'select2'
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue