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