diff options
Diffstat (limited to 'app/assets/javascripts/blob/template_selectors/license_selector.js')
-rw-r--r-- | app/assets/javascripts/blob/template_selectors/license_selector.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/app/assets/javascripts/blob/template_selectors/license_selector.js b/app/assets/javascripts/blob/template_selectors/license_selector.js new file mode 100644 index 00000000000..b7c4da0f62e --- /dev/null +++ b/app/assets/javascripts/blob/template_selectors/license_selector.js @@ -0,0 +1,47 @@ +import Api from '../../api'; + +import FileTemplateSelector from '../file_template_selector'; + +export default class BlobLicenseSelector extends FileTemplateSelector { + constructor({ mediator }) { + super(mediator); + this.config = { + key: 'license', + name: 'LICENSE', + pattern: /^(.+\/)?(licen[sc]e|copying)($|\.)/i, + endpoint: Api.licenseText, + dropdown: '.js-license-selector', + wrapper: '.js-license-selector-wrap', + }; + } + + initDropdown() { + this.$dropdown.glDropdown({ + data: this.$dropdown.data('data'), + filterable: true, + selectable: true, + toggleLabel: item => item.name, + search: { + fields: ['name'], + }, + clicked: (options) => { + const { e } = options; + const el = options.$el; + const query = options.selectedObj; + + const data = { + project: this.$dropdown.data('project'), + fullname: this.$dropdown.data('fullname'), + }; + + this.reportSelection({ + query: query.id, + el, + e, + data, + }); + }, + text: item => item.name, + }); + } +} |