diff --git a/core/models/media_model.php b/core/models/media_model.php index ad873823..73cb1ecd 100644 --- a/core/models/media_model.php +++ b/core/models/media_model.php @@ -954,7 +954,7 @@ public function search_filters_validate($args = []) OBFHelpers::require_args($args, ['filters']); $filters = $args['filters']; - $allowed_filters = ['comments','artist','title','album','year','type','category','country','language','genre','duration','is_copyright_owner','status','dynamic_select']; + $allowed_filters = ['comments','artist','title','album','year','type','category','country','language','genre','duration','is_copyright_owner','never_broadcasted','status','dynamic_select']; $allowed_operators = [ // deprecated 'like', @@ -1021,6 +1021,16 @@ public function search_filters_where_array($args = []) $filter = get_object_vars($filter); } + // never_broadcasted filter: uses subquery, skip normal column mapping + if ($filter['filter'] == 'never_broadcasted') { + if ($filter['val'] == '1') { + $where_array[] = 'NOT EXISTS (SELECT 1 FROM players_log WHERE players_log.media_id = media.id)'; + } else { + $where_array[] = 'EXISTS (SELECT 1 FROM players_log WHERE players_log.media_id = media.id)'; + } + continue; + } + // our possible column (mappings) $column_array = []; $column_array['artist'] = 'media.artist'; diff --git a/public/html/sidebar/advanced_search.html b/public/html/sidebar/advanced_search.html index cffcba45..215db251 100644 --- a/public/html/sidebar/advanced_search.html +++ b/public/html/sidebar/advanced_search.html @@ -21,6 +21,7 @@ +