diff --git a/components/movies/movies.vue b/components/movies/movies.vue
index 3c2696a..e1b61b4 100644
--- a/components/movies/movies.vue
+++ b/components/movies/movies.vue
@@ -37,6 +37,14 @@
:actors="aggActors"
@update="updateFilter"
/>
+
+
+ updateFilter('requireCover', checked, true)"
+ />
+
@@ -100,6 +108,7 @@ import YearsFilter from '#/components/filters/years.vue';
import ActorsFilter from '#/components/filters/actors.vue';
import TagsFilter from '#/components/filters/tags.vue';
import ChannelsFilter from '#/components/filters/channels.vue';
+import Checkbox from '#/components/form/checkbox.vue';
import Pagination from '#/components/pagination/pagination.vue';
const pageContext = inject('pageContext');
@@ -139,6 +148,7 @@ const filters = ref({
tags: urlParsed.search.tags?.split(',').filter(Boolean) || [],
entity: queryEntity,
actors: queryActors,
+ requireCover: !!urlParsed.search.cover,
});
function getPath(targetScope, preserveQuery) {
@@ -178,6 +188,7 @@ async function search(options = {}) {
const query = {
q: filters.value.search || undefined,
+ cover: filters.value.requireCover || undefined,
};
const entity = filters.value.entity || pageEntity;
diff --git a/src/movies.js b/src/movies.js
index ac780d4..95b187b 100644
--- a/src/movies.js
+++ b/src/movies.js
@@ -287,6 +287,10 @@ async function queryManticoreSql(filters, options) {
builder.whereRaw('any(entity_ids) = ?', filters.entityId);
}
+ if (filters.requireCover) {
+ builder.where('has_cover', true);
+ }
+
if (typeof filters.isShowcased === 'boolean') {
builder.where('is_showcased', filters.isShowcased);
}