This commit is contained in:
Stefan Hardegger
2025-09-22 12:43:05 +02:00
parent b68fde71c0
commit 1f41974208
6 changed files with 17 additions and 8 deletions

View File

@@ -464,7 +464,13 @@ public class SolrService {
}
solrQuery.setRows(limit);
// Sort by storyCount if available, otherwise by name
solrQuery.setSort("storyCount", SolrQuery.ORDER.desc);
solrQuery.addSort("name", SolrQuery.ORDER.asc);
// Explicitly disable faceting to avoid range faceting issues
solrQuery.setFacet(false);
QueryResponse response = solrClient.query(properties.getCores().getAuthors(), solrQuery);

View File

@@ -15,7 +15,7 @@ import MinimalLayout from '../../components/library/MinimalLayout';
import { useLibraryLayout } from '../../hooks/useLibraryLayout';
type ViewMode = 'grid' | 'list';
type SortOption = 'createdAt' | 'title' | 'authorName' | 'rating' | 'wordCount' | 'lastRead';
type SortOption = 'createdAt' | 'title' | 'authorName' | 'rating' | 'wordCount' | 'lastReadAt';
export default function LibraryContent() {
const router = useRouter();
@@ -29,7 +29,7 @@ export default function LibraryContent() {
const [searchQuery, setSearchQuery] = useState('');
const [selectedTags, setSelectedTags] = useState<string[]>([]);
const [viewMode, setViewMode] = useState<ViewMode>('list');
const [sortOption, setSortOption] = useState<SortOption>('lastRead');
const [sortOption, setSortOption] = useState<SortOption>('lastReadAt');
const [sortDirection, setSortDirection] = useState<'asc' | 'desc'>('desc');
const [page, setPage] = useState(0);
const [totalPages, setTotalPages] = useState(1);

View File

@@ -66,7 +66,7 @@ export default function MinimalLayout({
const getSortDisplayText = () => {
const sortLabels: Record<string, string> = {
lastRead: 'Last Read',
lastReadAt: 'Last Read',
createdAt: 'Date Added',
title: 'Title',
authorName: 'Author',

View File

@@ -122,8 +122,8 @@ export default function SidebarLayout({
}}
className="px-2 py-1 border rounded-lg theme-card border-gray-300 dark:border-gray-600 text-xs"
>
<option value="lastRead_desc">Last Read </option>
<option value="lastRead_asc">Last Read </option>
<option value="lastReadAt_desc">Last Read </option>
<option value="lastReadAt_asc">Last Read </option>
<option value="createdAt_desc">Date Added </option>
<option value="createdAt_asc">Date Added </option>
<option value="title_asc">Title </option>
@@ -226,7 +226,7 @@ export default function SidebarLayout({
onChange={(e) => onSortChange(e.target.value)}
className="flex-1 px-3 py-2 border rounded-lg theme-card border-gray-300 dark:border-gray-600"
>
<option value="lastRead">Last Read</option>
<option value="lastReadAt">Last Read</option>
<option value="createdAt">Date Added</option>
<option value="title">Title</option>
<option value="authorName">Author</option>

View File

@@ -110,8 +110,8 @@ export default function ToolbarLayout({
}}
className="w-full px-3 py-2 border rounded-lg theme-card border-gray-300 dark:border-gray-600 max-md:text-sm"
>
<option value="lastRead_desc">Sort: Last Read </option>
<option value="lastRead_asc">Sort: Last Read </option>
<option value="lastReadAt_desc">Sort: Last Read </option>
<option value="lastReadAt_asc">Sort: Last Read </option>
<option value="createdAt_desc">Sort: Date Added </option>
<option value="createdAt_asc">Sort: Date Added </option>
<option value="title_asc">Sort: Title </option>

View File

@@ -121,6 +121,9 @@
<copyField source="seriesName" dest="seriesName_facet"/>
<copyField source="tagNames" dest="tagNames_facet"/>
<!-- Copy field for lastRead sorting compatibility -->
<copyField source="lastReadAt" dest="lastRead"/>
<!-- Default Search Field -->
<!-- UniqueKey -->