mirror of
https://github.com/thiloho/archtika.git
synced 2025-11-22 02:41:35 +01:00
Add weight to individual docs articles
This commit is contained in:
@@ -3,16 +3,14 @@ import { API_BASE_PREFIX } from "$lib/server/utils";
|
||||
|
||||
export const load: PageServerLoad = async ({ params, fetch, cookies, url, parent, locals }) => {
|
||||
const searchQuery = url.searchParams.get("article_search_query");
|
||||
const sortBy = url.searchParams.get("article_sort");
|
||||
const filterBy = url.searchParams.get("article_filter");
|
||||
|
||||
const { website, home } = await parent();
|
||||
|
||||
let baseFetchUrl = `${API_BASE_PREFIX}/article?website_id=eq.${params.websiteId}&select=id,title`;
|
||||
let docsSortString = "";
|
||||
if (website.content_type === "Docs") {
|
||||
baseFetchUrl += ",docs_category(category_name,category_weight)";
|
||||
docsSortString = "docs_category(category_weight).desc,";
|
||||
baseFetchUrl +=
|
||||
",docs_category(category_name,category_weight)&order=docs_category(category_weight).desc.nullslast,article_weight.desc.nullslast";
|
||||
}
|
||||
|
||||
const parameters = new URLSearchParams();
|
||||
@@ -21,22 +19,6 @@ export const load: PageServerLoad = async ({ params, fetch, cookies, url, parent
|
||||
parameters.append("title_description_search", `wfts(english).${searchQuery}`);
|
||||
}
|
||||
|
||||
switch (sortBy) {
|
||||
case null:
|
||||
case "creation-time":
|
||||
parameters.append("order", `${docsSortString}created_at.desc`);
|
||||
break;
|
||||
case "last-modified":
|
||||
parameters.append("order", `${docsSortString}last_modified_at.desc`);
|
||||
break;
|
||||
case "title-a-to-z":
|
||||
parameters.append("order", `${docsSortString}title.asc`);
|
||||
break;
|
||||
case "title-z-to-a":
|
||||
parameters.append("order", `${docsSortString}title.desc`);
|
||||
break;
|
||||
}
|
||||
|
||||
switch (filterBy) {
|
||||
case "creations":
|
||||
parameters.append("user_id", `eq.${locals.user.id}`);
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
</h2>
|
||||
|
||||
<details>
|
||||
<summary>Search & Sort & Filter</summary>
|
||||
<summary>Search & Filter</summary>
|
||||
<form method="GET">
|
||||
<label>
|
||||
Search:
|
||||
@@ -63,16 +63,6 @@
|
||||
value={$page.url.searchParams.get("article_search_query")}
|
||||
/>
|
||||
</label>
|
||||
<label>
|
||||
Sort:
|
||||
<select name="article_sort">
|
||||
{#each sortOptions as { value, text }}
|
||||
<option {value} selected={value === $page.url.searchParams.get("article_sort")}
|
||||
>{text}</option
|
||||
>
|
||||
{/each}
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
Filter:
|
||||
<select name="article_filter">
|
||||
|
||||
@@ -66,7 +66,8 @@ export const actions: Actions = {
|
||||
cover_image: uploadedImage.file_id,
|
||||
publication_date: data.get("publication-date"),
|
||||
main_content: data.get("main-content"),
|
||||
category: data.get("category")
|
||||
category: data.get("category"),
|
||||
article_weight: data.get("article-weight") ? data.get("article-weight") : null
|
||||
})
|
||||
});
|
||||
|
||||
|
||||
@@ -52,6 +52,11 @@
|
||||
}}
|
||||
>
|
||||
{#if data.website.content_type === "Docs"}
|
||||
<label>
|
||||
Weight:
|
||||
<input type="number" name="article-weight" value={data.article.article_weight} min="0" />
|
||||
</label>
|
||||
|
||||
<label>
|
||||
Category:
|
||||
<select name="category">
|
||||
|
||||
Reference in New Issue
Block a user