Smart lists
This functionality is gated behind the smartlist:read
user permission. To learn more about
permissions, see the permissions guide.
A smart list is a dynamic list of books generated from a set of configured filters. They are powerful in that they allow you to quickly curate and organize a collection of books based on a set of criteria without having to manually manage the list.
Filters
The core of a smart list, used for determining which books are to be included in the resulting list.
A smart lists filter configuration is made up of two parts:
- Groups: Sub-lists of filters that are combined together using a top-level joiner (see below)
- Top-level joiner: The method used to join groups together, i.e.
AND
orOR
(all groups must match vs at least one group must match)
A group itself has two parts:
- Joiner: The method used to join filters together within the group, i.e.
AND
,OR
,NOT
(all filters must match, at least one filter must match, or no filters must match) - Conditions: A list of filters to apply to the books
A condition in a filter group has the following structure:
- Attribute: The attribute of the book to filter on. This also allows selecting attributes of related entities, such as a book’s metadata, series, or library. I won’t enumerate them all, but you can filter on most attributes. Any missing attributes can be requested!
- Operator: The operator to use when comparing the attribute to the value. I won’t enumerate them all, but you have options for string and list matching, number comparison, and range operators
- Value: The actual value to compare the attribute to. The UI presents this dynamically, based on the attribute and operator selected
Grouping
Not to be confused with the filter groups, grouping is a way of grouping matched books together by a common attribute. At the time of writing, there are 3 grouping options:
BY_SERIES
: Groups books together by their seriesBY_LIBRARY
: Groups books together by their libraryBY_BOOKS
: Does not group books together. The name is perhaps confusing, but you can think of it as “no grouping”
In the future, more grouping options may be considered
List Access
Smart lists can be shared with other users, and has 3 visibility options:
- Private: Only the owner of the smart list can see it
- Public: Anyone can see the smart list
- Shared: Only users that the smart list has been shared with can see it
The shared
visibility option is not yet fully implemented. It functions as private
for now,
but will be updated in the future
Views
While interacting with a smart list on the UI, you can manipulate the view to your liking. This includes:
- Sorting states for the table
- Column visibility, i.e. which columns are visible or hidden
- Column order, i.e. the order in which columns are displayed
By default, any changes you make won’t be persisted. However, the UI will detect and allow you to save any adjustments as a view. This view will then be available to you in the future, along with any other views you create. If you have a view selected, the changes will provide you with the additional option of updating the view.
How-to Guides
Create a Smart List
The process for creating a smart list is broken up into a few steps:
Basics
The first step is for filling out the very basic information about the list, such as its name and description. You will also need to select the visibility of the list, which defaults to private
.
Filters
The look and feel of the filter configuration may change in the future to better support different languages and complex values. If you have any feedback, please let me know!
The second step is more complex, as it involves setting up the filters that will determine which books are included in the list. Let’s break it down by using an example:
I want to create a list of all books in my library that are considered “Science Fiction”. However, I don’t want to include any books from my Magazine library and I don’t want anything Star Wars related
Depending on how your libraries are set up, your mileage may vary. An example of what you might set up includes:
The group by option defaults to None
, which maps to BY_BOOKS
. This means that the books will not be grouped together by any attribute and will be displayed in a flat list.
Review
The final step is to review your list before saving it. You can click “Create list” to save your list, or you can navigate back to any previous step by clicking it in the header.