Skip to content

Commit

Permalink
FIX Only exclude Folders from the used on table instead of all Files
Browse files Browse the repository at this point in the history
  • Loading branch information
emteknetnz committed Nov 3, 2020
1 parent 29e0836 commit f49db3f
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 3 deletions.
13 changes: 11 additions & 2 deletions code/Extensions/UsedOnTableExtension.php
Expand Up @@ -2,7 +2,7 @@

namespace SilverStripe\AssetAdmin\Extensions;

use SilverStripe\Assets\File;
use SilverStripe\Assets\Folder;
use SilverStripe\Assets\Shortcodes\FileLink;
use SilverStripe\Core\Extension;
use SilverStripe\ORM\ArrayList;
Expand All @@ -20,7 +20,6 @@ class UsedOnTableExtension extends Extension
public function updateUsageExcludedClasses(array &$excludedClasses)
{
$excludedClasses[] = FileLink::class;
$excludedClasses[] = File::class;
$excludedClasses[] = Member::class;
}

Expand All @@ -36,4 +35,14 @@ public function updateUsage(ArrayList &$usage, DataObject &$record)
{
// noop
}

/**
* @param DataObject $dataObject|null
*/
public function updateUsageDataObject(?DataObject &$dataObject)
{
if ($dataObject instanceof Folder) {
$dataObject = null;
}
}
}
24 changes: 24 additions & 0 deletions tests/php/Forms/UsedOnTableTest.php
Expand Up @@ -3,10 +3,13 @@
namespace SilverStripe\AssetAdmin\Tests\Forms;

use SilverStripe\Admin\Forms\UsedOnTable;
use SilverStripe\Assets\Dev\TestAssetStore;
use SilverStripe\Assets\File;
use SilverStripe\Assets\Folder;
use SilverStripe\Control\Director;
use SilverStripe\Control\HTTPRequest;
use SilverStripe\Dev\SapphireTest;
use SilverStripe\Versioned\Versioned;

/**
* @skipUpgrade
Expand All @@ -15,6 +18,27 @@ class UsedOnTableTest extends SapphireTest
{
protected static $fixture_file = 'UsedOnTableTest.yml';

/**
* Ensure fixture testfile is in the test asset store so that
* $file->exists() check in code will return true
*/
public function setup()
{
/** @var File $file */
parent::setUp();
TestAssetStore::activate('UsedOnTableTest');
$path = dirname(__DIR__) . '/Forms/fixtures/testfile.txt';
$content = file_get_contents($path);
$file = File::get()->find('Name', 'testfile.txt');
$file->setFromString($content, $file->generateFilename());
}

public function tearDown()
{
TestAssetStore::reset();
parent::tearDown();
}

public function testExcludes()
{
$usedOnTable = new UsedOnTable("Used On");
Expand Down
2 changes: 1 addition & 1 deletion tests/php/Forms/UsedOnTableTest.yml
@@ -1,7 +1,7 @@
SilverStripe\Assets\File:
file1:
Title: File1
FileFilename: files/testfile.txt
FileFilename: testfile.txt
FileHash: 6adf67caca20b8e7c45283d398321f4319d3b07e
Name: testfile.txt
SilverStripe\CMS\Model\SiteTree:
Expand Down

0 comments on commit f49db3f

Please sign in to comment.