Add search
This commit is contained in:
parent
075cad4236
commit
0ebcc46e6b
|
@ -49,12 +49,11 @@ router.get("/", async (_req, res) => {
|
|||
res.redirect("/about");
|
||||
}
|
||||
|
||||
const [posts, people, friends] = await Promise.all([
|
||||
const [posts, friends] = await Promise.all([
|
||||
queries.getPosts(ssbServer),
|
||||
queries.getPeople(ssbServer),
|
||||
queries.getFriends(profile, ssbServer),
|
||||
]);
|
||||
res.render("index", { profile, posts, people, friends });
|
||||
res.render("index", { profile, posts, friends });
|
||||
});
|
||||
|
||||
router.post("/publish", async (req, res) => {
|
||||
|
@ -103,6 +102,14 @@ router.get("/debug", async (_req, res) => {
|
|||
res.render("debug", { profile, entries });
|
||||
});
|
||||
|
||||
router.get("/search", async (req, res) => {
|
||||
const query = req.query.query;
|
||||
|
||||
const people = await queries.searchPeople(ssbServer, query);
|
||||
|
||||
res.render("search", { profile, people });
|
||||
});
|
||||
|
||||
const expressServer = app.listen(port, () =>
|
||||
console.log(`Example app listening at http://localhost:${port}`)
|
||||
);
|
||||
|
|
|
@ -92,7 +92,7 @@ const getPosts = (ssbServer) =>
|
|||
);
|
||||
});
|
||||
|
||||
const getPeople = (ssbServer) =>
|
||||
const searchPeople = (ssbServer, search) =>
|
||||
new Promise((resolve, reject) => {
|
||||
pull(
|
||||
ssbServer.query.read({
|
||||
|
@ -111,7 +111,11 @@ const getPeople = (ssbServer) =>
|
|||
],
|
||||
}),
|
||||
pull.filter((msg) => {
|
||||
return msg.value.content && msg.value.author == msg.value.content.about;
|
||||
return (
|
||||
msg.value.content &&
|
||||
msg.value.author == msg.value.content.about &&
|
||||
msg.value.content.name.includes(search)
|
||||
);
|
||||
}),
|
||||
pull.collect((err, msgs) => {
|
||||
const entries = msgs.map((x) => x.value);
|
||||
|
@ -170,7 +174,7 @@ const getAllEntries = (ssbServer) =>
|
|||
module.exports = {
|
||||
mapAuthorName,
|
||||
getPosts,
|
||||
getPeople,
|
||||
searchPeople,
|
||||
getFriends,
|
||||
getAllEntries,
|
||||
};
|
||||
|
|
|
@ -28,6 +28,10 @@
|
|||
<div style="float: right">
|
||||
<%= profile.name %> (<%= profile.id.slice(0, 8) %>)
|
||||
</div>
|
||||
<form action="search" method="GET" style="float: right; padding-right: 10px">
|
||||
<input type="text" name="query" placeholder="Search for people...">
|
||||
<input type="submit" value="Search" />
|
||||
</form>
|
||||
<nav>
|
||||
<a href="/">Home</a>
|
||||
<a href="/about">About me</a>
|
||||
|
|
|
@ -10,14 +10,6 @@
|
|||
<hr />
|
||||
<% }) %>
|
||||
|
||||
<h2>All People</h2>
|
||||
|
||||
<ul>
|
||||
<% people.map(person => { %>
|
||||
<li><%= person.content.name %> (<%= person.author.slice(0, 8) %>)</li>
|
||||
<% }) %>
|
||||
</ul>
|
||||
|
||||
<h2>Friends</h2>
|
||||
|
||||
<ul>
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
<%- include('_header') %>
|
||||
|
||||
<h2>Results</h2>
|
||||
|
||||
<ul>
|
||||
<% people.map(person => { %>
|
||||
<li><%= person.content.name %> (<%= person.author.slice(0, 8) %>)</li>
|
||||
<% }) %>
|
||||
</ul>
|
||||
|
||||
<%- include('_footer') %>
|
Loading…
Reference in New Issue