neon_arch
commited on
Commit
•
a912e64
1
Parent(s):
664fba2
add previous and next button to navigate to different pages
Browse files- public/static/pagination.js +26 -0
- public/static/themes/simple.css +20 -0
- public/templates/search.html +18 -13
public/static/pagination.js
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
function navigate_forward() {
|
2 |
+
const url = new URL(window.location)
|
3 |
+
const searchParams = url.searchParams
|
4 |
+
|
5 |
+
let q = searchParams.get('q')
|
6 |
+
let page = searchParams.get('page')
|
7 |
+
|
8 |
+
if (page === null) {
|
9 |
+
page = 2
|
10 |
+
window.location = `${url.origin}${url.pathname}?q=${q}&page=${page}`
|
11 |
+
} else {
|
12 |
+
window.location = `${url.origin}${url.pathname}?q=${q}&page=${++page}`
|
13 |
+
}
|
14 |
+
}
|
15 |
+
|
16 |
+
function navigate_backward() {
|
17 |
+
const url = new URL(window.location)
|
18 |
+
const searchParams = url.searchParams
|
19 |
+
|
20 |
+
let q = searchParams.get('q')
|
21 |
+
let page = searchParams.get('page')
|
22 |
+
|
23 |
+
if (page !== null && page > 1) {
|
24 |
+
window.location = `${url.origin}${url.pathname}?q=${q}&page=${--page}`
|
25 |
+
}
|
26 |
+
}
|
public/static/themes/simple.css
CHANGED
@@ -240,3 +240,23 @@ footer {
|
|
240 |
.error_content p a:hover {
|
241 |
color: var(--5);
|
242 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
240 |
.error_content p a:hover {
|
241 |
color: var(--5);
|
242 |
}
|
243 |
+
|
244 |
+
.page_navigation {
|
245 |
+
padding: 0 0 2rem 0;
|
246 |
+
display: flex;
|
247 |
+
justify-content: space-between;
|
248 |
+
align-items: center;
|
249 |
+
}
|
250 |
+
|
251 |
+
.page_navigation button {
|
252 |
+
background: var(--bg);
|
253 |
+
color: var(--fg);
|
254 |
+
padding: 1rem;
|
255 |
+
border-radius: 0.5rem;
|
256 |
+
outline: none;
|
257 |
+
border: none;
|
258 |
+
}
|
259 |
+
|
260 |
+
.page_navigation button:active {
|
261 |
+
filter: brightness(1.2);
|
262 |
+
}
|
public/templates/search.html
CHANGED
@@ -1,20 +1,25 @@
|
|
1 |
{{>header this.style}}
|
2 |
<main class="results">
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
{{/each}}
|
14 |
-
</div>
|
15 |
-
</div>
|
16 |
{{/each}}
|
|
|
17 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
</main>
|
19 |
<script src="static/index.js"></script>
|
|
|
20 |
{{>footer}}
|
|
|
1 |
{{>header this.style}}
|
2 |
<main class="results">
|
3 |
+
{{>search_bar}}
|
4 |
+
<div class="results_aggregated">
|
5 |
+
{{#each results}}
|
6 |
+
<div class="result">
|
7 |
+
<h1><a href="{{this.visitingUrl}}">{{{this.title}}}</a></h1>
|
8 |
+
<small>{{this.url}}</small>
|
9 |
+
<p>{{{this.description}}}</p>
|
10 |
+
<div class="upstream_engines">
|
11 |
+
{{#each engine}}
|
12 |
+
<span>{{this}}</span>
|
|
|
|
|
|
|
13 |
{{/each}}
|
14 |
+
</div>
|
15 |
</div>
|
16 |
+
{{/each}}
|
17 |
+
</div>
|
18 |
+
<div class="page_navigation">
|
19 |
+
<button type="button" onclick="navigate_backward()">← previous</button>
|
20 |
+
<button type="button" onclick="navigate_forward()">next →</button>
|
21 |
+
</div>
|
22 |
</main>
|
23 |
<script src="static/index.js"></script>
|
24 |
+
<script src="static/pagination.js"></script>
|
25 |
{{>footer}}
|