diff --git a/komga/src/main/kotlin/org/gotson/komga/domain/model/SeriesSearch.kt b/komga/src/main/kotlin/org/gotson/komga/domain/model/SeriesSearch.kt index d9345e952..1f98ea94a 100644 --- a/komga/src/main/kotlin/org/gotson/komga/domain/model/SeriesSearch.kt +++ b/komga/src/main/kotlin/org/gotson/komga/domain/model/SeriesSearch.kt @@ -4,7 +4,8 @@ open class SeriesSearch( val libraryIds: Collection? = null, val collectionIds: Collection? = null, val searchTerm: String? = null, - val metadataStatus: Collection? = null + val metadataStatus: Collection? = null, + val publishers: Collection? = null ) class SeriesSearchWithReadProgress( @@ -12,5 +13,6 @@ class SeriesSearchWithReadProgress( collectionIds: Collection? = null, searchTerm: String? = null, metadataStatus: Collection? = null, + publishers: Collection? = null, val readStatus: Collection? = null -) : SeriesSearch(libraryIds, collectionIds, searchTerm, metadataStatus) +) : SeriesSearch(libraryIds, collectionIds, searchTerm, metadataStatus, publishers) diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/SeriesDtoDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/SeriesDtoDao.kt index f6f0c62f8..30b23760d 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/SeriesDtoDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/SeriesDtoDao.kt @@ -17,6 +17,7 @@ import org.jooq.ResultQuery import org.jooq.SelectOnConditionStep import org.jooq.impl.DSL import org.jooq.impl.DSL.inline +import org.jooq.impl.DSL.lower import org.springframework.data.domain.Page import org.springframework.data.domain.PageImpl import org.springframework.data.domain.PageRequest @@ -184,6 +185,7 @@ class SeriesDtoDao( collectionIds?.let { c = c.and(cs.COLLECTION_ID.`in`(it)) } searchTerm?.let { c = c.and(d.TITLE.containsIgnoreCase(it)) } metadataStatus?.let { c = c.and(d.STATUS.`in`(it)) } + publishers?.let { publishers -> c = c.and(lower(d.PUBLISHER).`in`(publishers.map { it.toLowerCase() })) } return c } diff --git a/komga/src/main/kotlin/org/gotson/komga/interfaces/rest/SeriesController.kt b/komga/src/main/kotlin/org/gotson/komga/interfaces/rest/SeriesController.kt index 6296d0488..3223bc690 100644 --- a/komga/src/main/kotlin/org/gotson/komga/interfaces/rest/SeriesController.kt +++ b/komga/src/main/kotlin/org/gotson/komga/interfaces/rest/SeriesController.kt @@ -7,7 +7,6 @@ import io.swagger.v3.oas.annotations.media.Schema import io.swagger.v3.oas.annotations.responses.ApiResponse import mu.KotlinLogging import org.gotson.komga.application.tasks.TaskReceiver -import org.gotson.komga.domain.model.Author import org.gotson.komga.domain.model.BookSearchWithReadProgress import org.gotson.komga.domain.model.Media import org.gotson.komga.domain.model.ROLE_ADMIN @@ -78,6 +77,7 @@ class SeriesController( @RequestParam(name = "collection_id", required = false) collectionIds: List?, @RequestParam(name = "status", required = false) metadataStatus: List?, @RequestParam(name = "read_status", required = false) readStatus: List?, + @RequestParam(name = "publisher", required = false) publishers: List?, @RequestParam(name = "unpaged", required = false) unpaged: Boolean = false, @Parameter(hidden = true) page: Pageable ): Page { @@ -98,7 +98,8 @@ class SeriesController( collectionIds = collectionIds, searchTerm = searchTerm, metadataStatus = metadataStatus, - readStatus = readStatus + readStatus = readStatus, + publishers = publishers ) return seriesDtoRepository.findAll(seriesSearch, principal.user.id, pageRequest)