summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/blob/template_selectors/license_selector.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/blob/template_selectors/license_selector.js')
-rw-r--r--app/assets/javascripts/blob/template_selectors/license_selector.js38
1 files changed, 38 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..c8abd689ab4
--- /dev/null
+++ b/app/assets/javascripts/blob/template_selectors/license_selector.js
@@ -0,0 +1,38 @@
+/* global 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: (query, el, e) => {
+ const data = {
+ project: this.$dropdown.data('project'),
+ fullname: this.$dropdown.data('fullname'),
+ };
+
+ this.reportSelection(query.id, el, e, data);
+ },
+ text: item => item.name,
+ });
+ }
+}