jsautocomplete_builder 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a481220419076acf6021cc17c4ddf3244d86948575050eb831a93197258bd886
4
- data.tar.gz: 9fc7099338901e60269c6863b0b4251982d148430276aebfb3d7de2733c51059
3
+ metadata.gz: 4e6f46cdcc2bc2b61b1b37263ed9c87af441f501341c2530f13f6216c3ad03e0
4
+ data.tar.gz: 0154aa418fd6c18d536d7f500ca46a6bdde6ba7b14c90a976d4d92fe37973c35
5
5
  SHA512:
6
- metadata.gz: da197ec5352eb554ec70848a410fdd429b77bd996884e2af8fbf56486c59537d59f943dbf8f4a37dafbcf68fa6674b245f50509751954034b4b05a7c847727df
7
- data.tar.gz: 244777e4bd15a28c2fba6b78c8eb235a3ae6668adc53feda861a86645c684a0859d3e8f5acf1d950f36f0418cfe2c114bf3dddb0b838fc2605d8625edf901ec3
6
+ metadata.gz: 2030c12af466b3b7bfdb87806d94b2d34b81f81851c05108c6b2dae251026258f1515390c6b8e113e10a501a8753642434cabd41e7267036231c2e3b7b224c83
7
+ data.tar.gz: 485aa2efbf0424957e9912e94c09062d43903f0d5b3dd11499caea7277641243db988f399cd5ff7569ae0c81ff3aad35b4e7e7ce53893e94abb329ed13ab11ff
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -21,7 +21,7 @@ class JsAutocompleteBuilder
21
21
  html=<<EOF
22
22
  <form action='#{@server[:action]}' method='get' name='searchForm'>
23
23
 
24
- <input tabindex='2' type='text' autofocus='true' onkeyup='updateList(event.keyCode, this)' onfocus='showList()' onblur='hideList()' id='search' autocomplete='off' name='q'/>
24
+ <input tabindex='2' type='text' autofocus='true' onkeyup='input = this.value; updateList(event.keyCode, this)' placeholder='search' onfocus='showList()' onblur='hideList()' id='search' autocomplete='off' name='q'/>
25
25
  <input type='submit' value='search'>
26
26
  <ol id='autolist'></ol>
27
27
 
@@ -107,6 +107,14 @@ EOF
107
107
 
108
108
  def js()
109
109
  <<EOF
110
+ const KEY_UP = 38;
111
+ const KEY_DOWN = 40;
112
+ const ESC_KEY = 27;
113
+ const ENTER_KEY = 13;
114
+ const SPACEBAR_KEY = 32;
115
+
116
+ var input = '';
117
+
110
118
  function ajaxRequest(url, cFunction) {
111
119
  var xhttp;
112
120
  xhttp = new XMLHttpRequest();
@@ -131,18 +139,17 @@ EOF
131
139
 
132
140
  function updateList(keyCode, e) {
133
141
 
134
- // esc key?
135
- if (keyCode == 27)
142
+ if (keyCode == ESC_KEY)
136
143
  return
137
144
 
138
- // down arrow key?
139
- if (keyCode == 40) {
140
- showList();
145
+ if (keyCode == KEY_DOWN) {
146
+ //showList();
141
147
  li = document.getElementById('autolist').children.item(0);
142
148
  e.value = li.textContent;
143
149
  li.focus();
144
150
  return
145
151
  }
152
+
146
153
  //e.value;
147
154
  if (e.value.length > 0) {
148
155
  ajaxFetchList(e);
@@ -165,16 +172,14 @@ EOF
165
172
 
166
173
  function itemKeyup(keyCode, e) {
167
174
 
168
- console.log('keyCode: ' + keyCode);
175
+ //console.log('keyCode: ' + keyCode);
169
176
  txt = document.getElementById('search');
170
177
 
171
- // enter key or spacebar key?
172
- if (keyCode == 13 || keyCode == 32) {
178
+ if (keyCode == ENTER_KEY || keyCode == SPACEBAR_KEY) {
173
179
  itemSelected(e)
174
180
  }
175
181
 
176
- // up arrow?
177
- else if (keyCode == 38) {
182
+ else if (keyCode == KEY_UP) {
178
183
  if (e.previousElementSibling) {
179
184
  txt.value = e.previousElementSibling.textContent;
180
185
  e.previousElementSibling.focus();
@@ -182,14 +187,16 @@ EOF
182
187
  else
183
188
  document.getElementById('search').focus();
184
189
  }
185
- // down arrow?
186
- else if (keyCode == 40) {
190
+
191
+ else if (keyCode == KEY_DOWN) {
187
192
 
188
193
  txt.value = e.nextElementSibling.textContent;
189
194
  e.nextElementSibling.focus();
190
195
  }
191
- // esc key?
192
- else if (keyCode == 27) {
196
+
197
+ else if (keyCode == ESC_KEY) {
198
+ // select the original search text value
199
+ txt.value = input;
193
200
  list = document.getElementById('autolist');
194
201
  list.style.display = 'none';
195
202
  txt.focus();
@@ -208,8 +215,8 @@ EOF
208
215
  function showList() {
209
216
 
210
217
  console.log('parent2: ' + document.activeElement.nodeName);
211
- txt = document.getElementById('search');
212
-
218
+ txt = document.getElementById('search');
219
+
213
220
  if (txt.value.length > 0) {
214
221
  list = document.getElementById('autolist');
215
222
  list.style.display = 'block';
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jsautocomplete_builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
metadata.gz.sig CHANGED
Binary file