Support filtering media list in media manager for media with no category
authorMatthias Schmidt <gravatronics@live.com>
Fri, 18 Jun 2021 06:29:54 +0000 (08:29 +0200)
committerMatthias Schmidt <gravatronics@live.com>
Fri, 18 Jun 2021 06:29:54 +0000 (08:29 +0200)
com.woltlab.wcf/templates/mediaManager.tpl
wcfsetup/install/files/acp/templates/mediaManager.tpl
wcfsetup/install/files/lib/data/media/MediaAction.class.php

index 9fe55be085aa65277dbeeb45d000904f266432b2..0def8b4f965c5a2682ba2ab8c40f423e754863e1 100644 (file)
@@ -2,6 +2,7 @@
        <div class="mediaManagerCategoryList">
                <select name="categoryID" class="fullWidth">
                        <option value="0">{lang}wcf.media.category.choose{/lang}</option>
+                       <option value="-1">{lang}wcf.media.category.choose.noCategory{/lang}</option>
                        
                        {content}
                                {foreach from=$categoryList item=categoryItem}
index 9fe55be085aa65277dbeeb45d000904f266432b2..0def8b4f965c5a2682ba2ab8c40f423e754863e1 100644 (file)
@@ -2,6 +2,7 @@
        <div class="mediaManagerCategoryList">
                <select name="categoryID" class="fullWidth">
                        <option value="0">{lang}wcf.media.category.choose{/lang}</option>
+                       <option value="-1">{lang}wcf.media.category.choose.noCategory{/lang}</option>
                        
                        {content}
                                {foreach from=$categoryList item=categoryItem}
index 78f042aa5269da372db183230b85ba7e597eeb2b..a5d87324f40f66a2fe9c3b9628a2db39cea29f28 100644 (file)
@@ -547,7 +547,11 @@ class MediaAction extends AbstractDatabaseObjectAction implements ISearchAction,
             $mediaList->getConditionBuilder()->add('media.isImage = ?', [1]);
         }
         if ($this->parameters['categoryID']) {
-            $mediaList->getConditionBuilder()->add('media.categoryID = ?', [$this->parameters['categoryID']]);
+            if ($this->parameters['categoryID'] == -1) {
+                $mediaList->getConditionBuilder()->add('media.categoryID IS NULL');
+            } else {
+                $mediaList->getConditionBuilder()->add('media.categoryID = ?', [$this->parameters['categoryID']]);
+            }
         }
         $mediaList->sqlOrderBy = 'media.uploadTime DESC, media.mediaID DESC';
         $mediaList->sqlLimit = static::ITEMS_PER_MANAGER_DIALOG_PAGE;