Skip to content

Commit e0ef384

Browse files
committed
add index.js
1 parent 99ad3fb commit e0ef384

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

cmd/server/static/index.js

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
// Search functionality
2+
const searchInput = document.getElementById('searchInput');
3+
let searchTimeout;
4+
5+
searchInput?.addEventListener('input', function() {
6+
clearTimeout(searchTimeout);
7+
searchTimeout = setTimeout(() => {
8+
const searchValue = this.value.trim();
9+
const urlParams = new URLSearchParams(window.location.search);
10+
11+
if (searchValue) {
12+
urlParams.set('search', searchValue);
13+
} else {
14+
urlParams.delete('search');
15+
}
16+
17+
urlParams.delete('page'); // Reset to page 1
18+
window.location.search = urlParams.toString();
19+
}, 500); // Debounce search
20+
});
21+
22+
// Filter tabs
23+
document.querySelectorAll('.filter-tab').forEach(tab => {
24+
tab.addEventListener('click', function() {
25+
const status = this.dataset.status;
26+
const urlParams = new URLSearchParams(window.location.search);
27+
28+
if (status) {
29+
urlParams.set('status', status);
30+
} else {
31+
urlParams.delete('status');
32+
}
33+
34+
urlParams.delete('page'); // Reset to page 1
35+
window.location.search = urlParams.toString();
36+
});
37+
});
38+
39+
// Clear search on Escape key
40+
document.addEventListener('keydown', function(e) {
41+
if (e.key === 'Escape' && searchInput) {
42+
searchInput.value = '';
43+
const urlParams = new URLSearchParams(window.location.search);
44+
urlParams.delete('search');
45+
urlParams.delete('page');
46+
window.location.search = urlParams.toString();
47+
}
48+
});

0 commit comments

Comments
 (0)