FIX: fix file manager

This commit is contained in:
Michal Kváček
2017-02-09 23:25:21 +01:00
parent e53283da65
commit 9593b6502e
16 changed files with 278 additions and 99 deletions
+21 -8
View File
@@ -3,6 +3,7 @@
namespace App\Models\FileManager;
use Illuminate\Database\Eloquent\Model;
use Psy\Exception\ErrorException;
class Directory extends Model
{
@@ -17,7 +18,16 @@ class Directory extends Model
'user_id',
'hidden'
];
protected $casts = [
'hidden' => 'bool',
'is_root' => 'bool'
];
/**
* Files in directory
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function files()
{
return $this->hasMany(File::class);
@@ -30,14 +40,7 @@ class Directory extends Model
*/
public function allSubdirectories()
{
$subdirectories = $this->hasMany(Directory::class, 'parent_id', 'id');
// 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;
return $this->hasMany(Directory::class, 'parent_id', 'id');
}
public function subdirectories()
@@ -47,4 +50,14 @@ class Directory extends Model
return $subdirectories;
}
public function delete()
{
// try to prevent from deleting root folder
if ($this->is_root == true) {
throw new ErrorException('Cannot delete root folder!');
}
return parent::delete();
}
}