REFACTORING #2039 @1h: clean a little bit file manager

This commit is contained in:
Michal Kváček
2016-11-28 01:46:05 +01:00
parent d0fbce13fb
commit 99ed8806da
9 changed files with 60 additions and 111 deletions
+18 -9
View File
@@ -18,24 +18,33 @@ class Directory extends Model
'hidden'
];
public function files()
{
return $this->hasMany(File::class);
}
/**
* Relationship with parent/sub directories
*
* @param bool $includeHidden
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function subdirectories($includeHidden = false)
public function allSubdirectories()
{
$subdirectories = $this->hasMany(Directory::class, 'parent_id', 'id');
$subdirectories = Directory::where('parent_id', $this->id);
if (!$includeHidden) {
$subdirectories = $subdirectories->where('hidden', 0);
// todo fix this ugly hack! statement above produces WHERE parent_id IS NOT NULL and parent_id IS NULL when selecting subdirectories from root/none directory
if (is_null($this->id)) {
$subdirectories = $subdirectories->orWhereNull('parent_id');
}
return $subdirectories->get();
return $subdirectories;
}
public function subdirectories()
{
$subdirectories = $this->allSubdirectories()
->where('hidden', false);
return $subdirectories;
}
}