|
1 | 1 | {% load static %} |
2 | 2 |
|
| 3 | +{{ project_labels|json_script:"project-labels-data" }} |
3 | 4 | <script type="text/javascript"> |
4 | 5 | var filterform_displayed = false; |
5 | 6 | function filter_click() |
|
35 | 36 | })(); |
36 | 37 | }); |
37 | 38 |
|
| 39 | +// Submit form on shift+enter or ctrl+enter |
| 40 | +Selectize.define('mod_enter_key_submit', function (options) { |
| 41 | + var self = this; |
| 42 | + |
| 43 | + this.onKeyDown = (function (e) { |
| 44 | + var original = self.onKeyDown; |
| 45 | + |
| 46 | + return function (e) { |
| 47 | + var wasOpened = this.isOpen; |
| 48 | + |
| 49 | + if (e.keyCode === 13 && (e.shiftKey || e.ctrlKey)) { |
| 50 | + self.trigger('submit'); |
| 51 | + return; |
| 52 | + } |
| 53 | + |
| 54 | + original.apply(this, arguments); |
| 55 | + }; |
| 56 | + })(); |
| 57 | +}); |
| 58 | + |
38 | 59 | $(document).ready(function() { |
39 | 60 | $('#submitter_input').selectize({ |
40 | 61 | plugins: ['enter_key_submit'], |
|
76 | 97 | }); |
77 | 98 | } |
78 | 99 | }); |
| 100 | + |
| 101 | + const project_labels = JSON.parse( |
| 102 | + document.getElementById('project-labels-data').textContent |
| 103 | + ); |
| 104 | + |
| 105 | + let label_options = project_labels.map(l => ({ |
| 106 | + value: l, |
| 107 | + text: l, |
| 108 | + })); |
| 109 | + |
| 110 | + label_options = label_options.concat( |
| 111 | + project_labels.map(l => ({ |
| 112 | + value: "-" + l, |
| 113 | + text: "-" + l, |
| 114 | + })) |
| 115 | + ); |
| 116 | + |
| 117 | + $('#labels_input').selectize({ |
| 118 | + plugins: ['mod_enter_key_submit'], |
| 119 | + maxItems: null, |
| 120 | + persist: false, |
| 121 | + hideSelected: true, |
| 122 | + // Search for options that begin with a minus sign |
| 123 | + respect_word_boundaries: false, |
| 124 | + delimiter: ' ', |
| 125 | + options: label_options, |
| 126 | + }); |
79 | 127 | }); |
80 | 128 | </script> |
81 | 129 |
|
|
0 commit comments