jsautocomplete_builder 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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