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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/jsautocomplete_builder.rb +24 -17
- metadata +1 -1
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4e6f46cdcc2bc2b61b1b37263ed9c87af441f501341c2530f13f6216c3ad03e0
|
4
|
+
data.tar.gz: 0154aa418fd6c18d536d7f500ca46a6bdde6ba7b14c90a976d4d92fe37973c35
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2030c12af466b3b7bfdb87806d94b2d34b81f81851c05108c6b2dae251026258f1515390c6b8e113e10a501a8753642434cabd41e7267036231c2e3b7b224c83
|
7
|
+
data.tar.gz: 485aa2efbf0424957e9912e94c09062d43903f0d5b3dd11499caea7277641243db988f399cd5ff7569ae0c81ff3aad35b4e7e7ce53893e94abb329ed13ab11ff
|
checksums.yaml.gz.sig
CHANGED
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
|
-
|
135
|
-
if (keyCode == 27)
|
142
|
+
if (keyCode == ESC_KEY)
|
136
143
|
return
|
137
144
|
|
138
|
-
|
139
|
-
|
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
|
-
|
172
|
-
if (keyCode == 13 || keyCode == 32) {
|
178
|
+
if (keyCode == ENTER_KEY || keyCode == SPACEBAR_KEY) {
|
173
179
|
itemSelected(e)
|
174
180
|
}
|
175
181
|
|
176
|
-
|
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
|
-
|
186
|
-
else if (keyCode ==
|
190
|
+
|
191
|
+
else if (keyCode == KEY_DOWN) {
|
187
192
|
|
188
193
|
txt.value = e.nextElementSibling.textContent;
|
189
194
|
e.nextElementSibling.focus();
|
190
195
|
}
|
191
|
-
|
192
|
-
else if (keyCode ==
|
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
metadata.gz.sig
CHANGED
Binary file
|