Merge branch 'sorting'

This commit is contained in:
Yanick Champoux 2024-02-01 14:37:20 -05:00
commit d565fdcffc
2 changed files with 85 additions and 61 deletions

View File

@ -9,4 +9,5 @@ module.exports = {
svelteSortOrder: 'options-markup-scripts-styles', svelteSortOrder: 'options-markup-scripts-styles',
svelteStrictMode: false, svelteStrictMode: false,
svelteAllowShorthand: true, svelteAllowShorthand: true,
bracketSameLine: true,
}; };

View File

@ -1,84 +1,95 @@
<article> <article>
<h1>Ottawa board games for sale and to trade</h1> <h1>Ottawa board games for sale and to trade</h1>
<p>This is a list of games for sale or trade of people living in the Ottawa <p>
region, taken from their profiles on This is a list of games for sale or trade of people living in the Ottawa
<a href="https://boardgamegeek.com">Board Game Geek</a>.</p> region, taken from their profiles on
<a href="https://boardgamegeek.com">Board Game Geek</a>.
</p>
<p>If you want to be added to the list of sellers, you can send me a <p>
<a target="_blank" If you want to be added to the list of sellers, you can send me a
href="https://boardgamegeek.com/geekmail/compose?touser=yenzie"> BGG <a
mail</a>. All I need is your BGG username, and I'll be able to gather target="_blank"
all your games tagged <em>For Trade</em>. If there is a price mentioned in href="https://boardgamegeek.com/geekmail/compose?touser=yenzie">
the <em>Trading Notes</em> of the game (that is, any number prefixed with BGG mail</a
a <em>$</em>), it'll be assumed to be the asking price.</p> >. All I need is your BGG username, and I'll be able to gather all your
games tagged <em>For Trade</em>. If there is a price mentioned in the
<em>Trading Notes</em>
of the game (that is, any number prefixed with a <em>$</em>), it'll be
assumed to be the asking price.
</p>
<p> Have questions, suggestions, anything else? <p>
Discussion of this service happens in the <a Have questions, suggestions, anything else? Discussion of this service
href='https://boardgamegeek.com/thread/3238117/auto-generating-ottawa-specific-saletrade-page'>Ottawa Guild</a>.</p> happens in the <a
href="https://boardgamegeek.com/thread/3238117/auto-generating-ottawa-specific-saletrade-page"
>Ottawa Guild</a
>.
</p>
<header>
<Search {handler} />
</header>
<table>
<header > <thead>
<Search {handler} />
</header>
<table>
<thead>
<tr>
<th>user</th>
<th></th>
<th>game</th>
<th></th>
<th>notes</th>
<th>price</th>
</tr>
</thead>
<tbody>
{#each $rows as row}
<tr> <tr>
<td><a target="_blank" <Th {handler} orderBy="username">user</Th>
href={`https://boardgamegeek.com/collection/user/${row.username}?trade=1&subtype=boardgame&ff=1`}>{row.username}</a> <Th {handler} orderBy="name">game</Th>
&nbsp; <th>notes</th>
<a <Th {handler} orderBy="price">price</Th>
target="_blank"
href={`https://boardgamegeek.com/geekmail/compose?touser=${row.username}`}>
<i>email</i></a></td>
<td> <a
target="_blank"
href={`https://boardgamegeek.com/boardgame/${row.bgg_id}`}>
{row.name}</a>
</td>
<td>
<a
target="_blank"
href={`https://boardgamegeek.com/boardgame/${row.bgg_id}`}>
<img src={row.thumbnail} height="60"/></a>
</td>
<td>{row.notes}</td>
<td>{row.price??''}</td>
</tr> </tr>
{/each} </thead>
</tbody> <tbody>
</table> {#each $rows as row}
<tr>
<td
><a
target="_blank"
href={`https://boardgamegeek.com/collection/user/${row.username}?trade=1&subtype=boardgame&ff=1`}
>{row.username}</a>
&nbsp;
<a
target="_blank"
href={`https://boardgamegeek.com/geekmail/compose?touser=${row.username}`}>
<i>email</i></a>
</td><td>
<div class="game-cell">
<a
class="game-desc"
target="_blank"
href={`https://boardgamegeek.com/boardgame/${row.bgg_id}`}>
{row.name}</a>
<a
target="_blank"
href={`https://boardgamegeek.com/boardgame/${row.bgg_id}`}>
<img src={row.thumbnail} height="60" /></a>
</div>
</td>
<td>{row.notes}</td>
<td>{row.price ?? ''}</td>
</tr>
{/each}
</tbody>
</table>
</article> </article>
<script>
<script>
// TODO sort // TODO sort
// TODO hide games I'm not interested in // TODO hide games I'm not interested in
// TODO add cart // TODO add cart
// TODO prettify via beercss // TODO prettify via beercss
// TODO use https://github.com/dasDaniel/svelte-table#readme // TODO use https://github.com/dasDaniel/svelte-table#readme
import { DataHandler, Search } from '@vincjo/datatables' import { DataHandler, Search, Th } from '@vincjo/datatables';
export let data; export let data;
const handler = new DataHandler(data.games, { rowsPerPage: 500 }) const handler = new DataHandler(data.games, { rowsPerPage: 500 });
const rows = handler.getRows() const rows = handler.getRows();
</script> </script>
<style> <style>
:global(:root) { :global(:root) {
--font-size-10: 1rem; --font-size-10: 1rem;
--font-size-11: 1.5rem; --font-size-11: 1.5rem;
@ -95,4 +106,16 @@
color: var(--primary); color: var(--primary);
text-decoration: underline; text-decoration: underline;
} }
.game-cell {
display: flex;
}
.game-cell > * {
display: block;
}
.game-desc {
flex: 1;
}
td {
font-size: var(--font-size-10);
}
</style> </style>