file delete bugfixes

This commit is contained in:
carodej
2020-04-08 09:37:54 +02:00
parent 01b399e4a6
commit 9db34fd90e
9 changed files with 204 additions and 371 deletions

View File

@@ -9,11 +9,10 @@ use Illuminate\Support\Str;
use Laravel\Scout\Searchable;
use TeamTNT\TNTSearch\Indexer\TNTIndexer;
use \Illuminate\Database\Eloquent\SoftDeletes;
use \Askedio\SoftCascade\Traits\SoftCascadeTrait;
class FileManagerFile extends Model
{
use Searchable, SoftDeletes, SoftCascadeTrait;
use Searchable, SoftDeletes;
protected $guarded = [

View File

@@ -11,20 +11,15 @@ use RecursiveArrayIterator;
use RecursiveIteratorIterator;
use TeamTNT\TNTSearch\Indexer\TNTIndexer;
use \Illuminate\Database\Eloquent\SoftDeletes;
use \Askedio\SoftCascade\Traits\SoftCascadeTrait;
class FileManagerFolder extends Model
{
use Searchable, SoftDeletes, SoftCascadeTrait;
use Searchable, SoftDeletes;
protected $guarded = [
'id'
];
protected $softCascade = [
'children', 'files'
];
protected $appends = [
'items', 'trashed_items'
];
@@ -116,7 +111,6 @@ class FileManagerFolder extends Model
*/
public function files()
{
return $this->hasMany('App\FileManagerFile', 'folder_id', 'unique_id');
}
@@ -178,9 +172,22 @@ class FileManagerFolder extends Model
static::deleting(function ($item) {
$item->children()->each(function($folder) {
$folder->delete();
});
if ( $item->isForceDeleting() ) {
$item->trashed_children()->each(function($folder) {
$folder->forceDelete();
});
} else {
$item->children()->each(function($folder) {
$folder->delete();
});
$item->files()->each(function($file) {
$file->delete();
});
}
});
static::restoring(function ($item) {

View File

@@ -116,8 +116,12 @@ class FileManagerController extends Controller
$user_id = Auth::id();
// Search files id db
$searched_files = FileManagerFile::search($request->input('query'))->where('user_id', $user_id)->get();
$searched_folders = FileManagerFolder::search($request->input('query'))->where('user_id', $user_id)->get();
$searched_files = FileManagerFile::search($request->input('query'))
->where('user_id', $user_id)
->get();
$searched_folders = FileManagerFolder::search($request->input('query'))
->where('user_id', $user_id)
->get();
// Collect folders and files to single array
return collect([$searched_folders, $searched_files])->collapse();
@@ -225,18 +229,27 @@ class FileManagerController extends Controller
// Delete folder
if ($request->type === 'folder') {
$item = FileManagerFolder::withTrashed()
->with('folders')
// Get folder
$folder = FileManagerFolder::withTrashed()
->with(['folders'])
->where('user_id', $user->id)
->where('unique_id', $request->unique_id)
->first();
// Remove folder from user favourites
$user->favourites()->detach($request->unique_id);
// Force delete children files
if ($request->force_delete) {
foreach ($item->files as $file) {
// Get children folder ids
$child_folders = filter_folders_ids($folder->trashed_folders, 'unique_id');
if ($request->force_delete) {
// Get children files
$files = FileManagerFile::onlyTrashed()
->where('user_id', $user->id)
->whereIn('folder_id', Arr::flatten([$request->unique_id, $child_folders]))
->get();
// Remove all children files
foreach ($files as $file) {
// Delete file
Storage::disk('local')->delete('/file-manager/' . $file->basename);
@@ -246,26 +259,22 @@ class FileManagerController extends Controller
// Delete file permanently
$file->forceDelete();
} else {
// Delete file from visibility
$file->delete();
}
}
// Delete record
if ($request->force_delete) {
// Delete folder record
$folder->forceDelete();
$item->forceDelete();
} else {
$item->delete();
// Remove folder from user favourites
$user->favourites()->detach($request->unique_id);
// Soft delete folder record
$folder->delete();
}
}
} else {
if ($request->type === 'file' || $request->type === 'image') {
$item = FileManagerFile::withTrashed()
$file = FileManagerFile::withTrashed()
->where('user_id', $user->id)
->where('unique_id', $request->unique_id)
->first();
@@ -273,17 +282,17 @@ class FileManagerController extends Controller
if ($request->force_delete) {
// Delete file
Storage::disk('local')->delete('/file-manager/' . $item->basename);
Storage::disk('local')->delete('/file-manager/' . $file->basename);
// Delete thumbnail if exist
if (!is_null($item->thumbnail)) Storage::disk('local')->delete('/file-manager/' . $item->thumbnail);
if ($file->thumbnail) Storage::disk('local')->delete('/file-manager/' . $file->getOriginal('thumbnail'));
// Delete file permanently
$item->forceDelete();
$file->forceDelete();
} else {
// Delete file from visibility
$item->delete();
// Soft delete file
$file->delete();
}
}
}
@@ -302,9 +311,21 @@ class FileManagerController extends Controller
$folders = FileManagerFolder::onlyTrashed()->where('user_id', $user_id)->get();
$files = FileManagerFile::onlyTrashed()->where('user_id', $user_id)->get();
// Force delete every item
// Force delete folder
$folders->each->forceDelete();
$files->each->forceDelete();
// Force delete files
foreach ($files as $file) {
// Delete file
Storage::disk('local')->delete('/file-manager/' . $file->basename);
// Delete thumbnail if exist
if ($file->thumbnail) Storage::disk('local')->delete('/file-manager/' . $file->getOriginal('thumbnail'));
// Delete file permanently
$file->forceDelete();
}
// Return response
return response('Done!', 200);
@@ -341,10 +362,7 @@ class FileManagerController extends Controller
$item->parent_id = 0;
$item->save();
}
}
// Get file
if ($request->type === 'file' || $request->type === 'image') {
} else {
// Get item
$item = FileManagerFile::onlyTrashed()->where('user_id', $user_id)->where('unique_id', $request->unique_id)->first();
@@ -360,45 +378,6 @@ class FileManagerController extends Controller
$item->restore();
}
/**
* Delete Item
*
* @param Request $request
*/
public function delete_items(Request $request)
{
// Validate request
$validator = Validator::make($request->all(), [
'items' => 'required|json',
]);
// Return error
if ($validator->fails()) abort(400, 'Bad input');
foreach ($request->input('items') as $file) {
if ($file['type'] === 'file' || $file['type'] === 'image') {
$item = FileManagerFile::where('unique_id', $file['unique_id'])->first();
} else {
$item = FileManagerFolder::where('unique_id', $file['unique_id'])->first();
}
// Delete file
Storage::disk('local')->delete('/file-manager/' . $item->basename);
// Delete thumbnail if exist
if (!is_null($item->thumbnail)) {
Storage::disk('local')->delete('/file-manager/' . $item->thumbnail);
}
// Permanently delete file
$item->forceDelete();
}
}
/**
* Upload items
*
@@ -442,7 +421,7 @@ class FileManagerController extends Controller
Storage::disk('local')->putFileAs($directory, $file, $filename, 'public');
// Create image thumbnail
if ( $filetype == 'image' ) {
if ($filetype == 'image') {
$thumbnail = 'thumbnail-' . $filename;

View File

@@ -153,9 +153,9 @@ function appeared_once($arr)
* @param $folders
* @return array
*/
function filter_folders_ids($folders)
function filter_folders_ids($folders, $by_column = 'unique_id')
{
$folder_unique_ids = recursiveFind($folders->toArray(), 'unique_id');
$folder_unique_ids = recursiveFind($folders->toArray(), $by_column);
return appeared_once($folder_unique_ids);
}

View File

@@ -9,7 +9,6 @@
"license": "MIT",
"require": {
"php": "^7.2",
"askedio/laravel-soft-cascade": "^6.0",
"doctrine/dbal": "^2.10",
"fideloper/proxy": "^4.0",
"fruitcake/laravel-cors": "^1.0",

302
composer.lock generated
View File

@@ -4,51 +4,8 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "a54d7b33221a7b1af8ef4a01dd47f3d3",
"content-hash": "cb7238478d8414abefd514b51afc8993",
"packages": [
{
"name": "askedio/laravel-soft-cascade",
"version": "6.0.1",
"source": {
"type": "git",
"url": "https://github.com/Askedio/laravel-soft-cascade.git",
"reference": "c84fc66a0ab2f060780429df79dfff447538cd94"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Askedio/laravel-soft-cascade/zipball/c84fc66a0ab2f060780429df79dfff447538cd94",
"reference": "c84fc66a0ab2f060780429df79dfff447538cd94",
"shasum": ""
},
"require": {
"illuminate/container": "^6.0",
"illuminate/database": "^6.0",
"illuminate/events": "^6.0",
"illuminate/support": "^6.0",
"php": "^7.2"
},
"require-dev": {
"codacy/coverage": "dev-master",
"orchestra/testbench": "~4.0",
"phpunit/phpunit": "~8.0"
},
"type": "library",
"extra": {
"laravel": {
"providers": [
"Askedio\\SoftCascade\\Providers\\GenericServiceProvider"
]
}
},
"autoload": {
"psr-4": {
"Askedio\\SoftCascade\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"description": "Laravel Cascade Soft Delete & Restore",
"time": "2019-09-12T20:33:32+00:00"
},
{
"name": "asm89/stack-cors",
"version": "1.3.0",
@@ -1171,94 +1128,6 @@
],
"time": "2019-11-02T09:15:47+00:00"
},
{
"name": "jakub-onderka/php-console-color",
"version": "v0.2",
"source": {
"type": "git",
"url": "https://github.com/JakubOnderka/PHP-Console-Color.git",
"reference": "d5deaecff52a0d61ccb613bb3804088da0307191"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Color/zipball/d5deaecff52a0d61ccb613bb3804088da0307191",
"reference": "d5deaecff52a0d61ccb613bb3804088da0307191",
"shasum": ""
},
"require": {
"php": ">=5.4.0"
},
"require-dev": {
"jakub-onderka/php-code-style": "1.0",
"jakub-onderka/php-parallel-lint": "1.0",
"jakub-onderka/php-var-dump-check": "0.*",
"phpunit/phpunit": "~4.3",
"squizlabs/php_codesniffer": "1.*"
},
"type": "library",
"autoload": {
"psr-4": {
"JakubOnderka\\PhpConsoleColor\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-2-Clause"
],
"authors": [
{
"name": "Jakub Onderka",
"email": "jakub.onderka@gmail.com"
}
],
"time": "2018-09-29T17:23:10+00:00"
},
{
"name": "jakub-onderka/php-console-highlighter",
"version": "v0.4",
"source": {
"type": "git",
"url": "https://github.com/JakubOnderka/PHP-Console-Highlighter.git",
"reference": "9f7a229a69d52506914b4bc61bfdb199d90c5547"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Highlighter/zipball/9f7a229a69d52506914b4bc61bfdb199d90c5547",
"reference": "9f7a229a69d52506914b4bc61bfdb199d90c5547",
"shasum": ""
},
"require": {
"ext-tokenizer": "*",
"jakub-onderka/php-console-color": "~0.2",
"php": ">=5.4.0"
},
"require-dev": {
"jakub-onderka/php-code-style": "~1.0",
"jakub-onderka/php-parallel-lint": "~1.0",
"jakub-onderka/php-var-dump-check": "~0.1",
"phpunit/phpunit": "~4.0",
"squizlabs/php_codesniffer": "~1.5"
},
"type": "library",
"autoload": {
"psr-4": {
"JakubOnderka\\PhpConsoleHighlighter\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jakub Onderka",
"email": "acci@acci.cz",
"homepage": "http://www.acci.cz/"
}
],
"description": "Highlight PHP code in terminal",
"time": "2018-09-29T18:48:56+00:00"
},
{
"name": "laminas/laminas-diactoros",
"version": "2.2.3",
@@ -1345,16 +1214,16 @@
},
{
"name": "laminas/laminas-zendframework-bridge",
"version": "1.0.2",
"version": "1.0.3",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-zendframework-bridge.git",
"reference": "faf68f6109ceeff24241226033ab59640c7eb63b"
"reference": "bfbbdb6c998d50dbf69d2187cb78a5f1fa36e1e9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laminas/laminas-zendframework-bridge/zipball/faf68f6109ceeff24241226033ab59640c7eb63b",
"reference": "faf68f6109ceeff24241226033ab59640c7eb63b",
"url": "https://api.github.com/repos/laminas/laminas-zendframework-bridge/zipball/bfbbdb6c998d50dbf69d2187cb78a5f1fa36e1e9",
"reference": "bfbbdb6c998d50dbf69d2187cb78a5f1fa36e1e9",
"shasum": ""
},
"require": {
@@ -1393,20 +1262,20 @@
"laminas",
"zf"
],
"time": "2020-03-26T16:07:12+00:00"
"time": "2020-04-03T16:01:00+00:00"
},
{
"name": "laravel/framework",
"version": "v6.18.3",
"version": "v6.18.5",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
"reference": "4e48acfaba87f08320a2764d36c3b6a4a4112ccf"
"reference": "5b7f541a3c075b394793f4d7884a24ad6f00288a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/4e48acfaba87f08320a2764d36c3b6a4a4112ccf",
"reference": "4e48acfaba87f08320a2764d36c3b6a4a4112ccf",
"url": "https://api.github.com/repos/laravel/framework/zipball/5b7f541a3c075b394793f4d7884a24ad6f00288a",
"reference": "5b7f541a3c075b394793f4d7884a24ad6f00288a",
"shasum": ""
},
"require": {
@@ -1539,7 +1408,7 @@
"framework",
"laravel"
],
"time": "2020-03-24T16:37:50+00:00"
"time": "2020-04-07T18:54:55+00:00"
},
{
"name": "laravel/passport",
@@ -1681,16 +1550,16 @@
},
{
"name": "laravel/tinker",
"version": "v2.3.0",
"version": "v2.4.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/tinker.git",
"reference": "5271893ec90ad9f8d3e34792ac6b72cad3b84cc2"
"reference": "cde90a7335a2130a4488beb68f4b2141869241db"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/tinker/zipball/5271893ec90ad9f8d3e34792ac6b72cad3b84cc2",
"reference": "5271893ec90ad9f8d3e34792ac6b72cad3b84cc2",
"url": "https://api.github.com/repos/laravel/tinker/zipball/cde90a7335a2130a4488beb68f4b2141869241db",
"reference": "cde90a7335a2130a4488beb68f4b2141869241db",
"shasum": ""
},
"require": {
@@ -1698,12 +1567,12 @@
"illuminate/contracts": "^6.0|^7.0|^8.0",
"illuminate/support": "^6.0|^7.0|^8.0",
"php": "^7.2",
"psy/psysh": "^0.9|^0.10",
"symfony/var-dumper": "^4.0|^5.0"
"psy/psysh": "^0.10.3",
"symfony/var-dumper": "^4.3|^5.0"
},
"require-dev": {
"mockery/mockery": "^1.3.1",
"phpunit/phpunit": "^8.0|^9.0"
"phpunit/phpunit": "^8.4|^9.0"
},
"suggest": {
"illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0)."
@@ -1741,7 +1610,7 @@
"laravel",
"psysh"
],
"time": "2020-03-17T15:34:59+00:00"
"time": "2020-04-07T15:01:31+00:00"
},
{
"name": "lcobucci/jwt",
@@ -1800,16 +1669,16 @@
},
{
"name": "league/commonmark",
"version": "1.3.2",
"version": "1.3.3",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/commonmark.git",
"reference": "75542a366ccbe1896ed79fcf3e8e68206d6c4257"
"reference": "5a67afc2572ec6d430526cdc9c637ef124812389"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/75542a366ccbe1896ed79fcf3e8e68206d6c4257",
"reference": "75542a366ccbe1896ed79fcf3e8e68206d6c4257",
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/5a67afc2572ec6d430526cdc9c637ef124812389",
"reference": "5a67afc2572ec6d430526cdc9c637ef124812389",
"shasum": ""
},
"require": {
@@ -1870,7 +1739,7 @@
"md",
"parser"
],
"time": "2020-03-25T19:55:28+00:00"
"time": "2020-04-05T16:01:48+00:00"
},
{
"name": "league/event",
@@ -2562,16 +2431,16 @@
},
{
"name": "phpseclib/phpseclib",
"version": "2.0.26",
"version": "2.0.27",
"source": {
"type": "git",
"url": "https://github.com/phpseclib/phpseclib.git",
"reference": "09655fcc1f8bab65727be036b28f6f20311c126c"
"reference": "34620af4df7d1988d8f0d7e91f6c8a3bf931d8dc"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/09655fcc1f8bab65727be036b28f6f20311c126c",
"reference": "09655fcc1f8bab65727be036b28f6f20311c126c",
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/34620af4df7d1988d8f0d7e91f6c8a3bf931d8dc",
"reference": "34620af4df7d1988d8f0d7e91f6c8a3bf931d8dc",
"shasum": ""
},
"require": {
@@ -2650,7 +2519,7 @@
"x.509",
"x509"
],
"time": "2020-03-13T04:15:39+00:00"
"time": "2020-04-04T23:17:33+00:00"
},
{
"name": "psr/container",
@@ -2900,23 +2769,22 @@
},
{
"name": "psy/psysh",
"version": "v0.10.2",
"version": "v0.10.3",
"source": {
"type": "git",
"url": "https://github.com/bobthecow/psysh.git",
"reference": "573c2362c3cdebe846b4adae4b630eecb350afd8"
"reference": "2bde2fa03e05dff0aee834598b951d6fc7c6fe02"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/bobthecow/psysh/zipball/573c2362c3cdebe846b4adae4b630eecb350afd8",
"reference": "573c2362c3cdebe846b4adae4b630eecb350afd8",
"url": "https://api.github.com/repos/bobthecow/psysh/zipball/2bde2fa03e05dff0aee834598b951d6fc7c6fe02",
"reference": "2bde2fa03e05dff0aee834598b951d6fc7c6fe02",
"shasum": ""
},
"require": {
"dnoegel/php-xdg-base-dir": "0.1.*",
"ext-json": "*",
"ext-tokenizer": "*",
"jakub-onderka/php-console-highlighter": "0.4.*|0.3.*",
"nikic/php-parser": "~4.0|~3.0|~2.0|~1.3",
"php": "^8.0 || ^7.0 || ^5.5.9",
"symfony/console": "~5.0|~4.0|~3.0|^2.4.2|~2.3.10",
@@ -2924,7 +2792,7 @@
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.2",
"hoa/console": "~3.16|~2.15"
"hoa/console": "3.17.*"
},
"suggest": {
"ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)",
@@ -2969,7 +2837,7 @@
"interactive",
"shell"
],
"time": "2020-03-21T06:55:27+00:00"
"time": "2020-04-07T06:44:48+00:00"
},
{
"name": "ralouphie/getallheaders",
@@ -4661,16 +4529,16 @@
},
{
"name": "teamtnt/tntsearch",
"version": "v2.2.0",
"version": "v2.3.0",
"source": {
"type": "git",
"url": "https://github.com/teamtnt/tntsearch.git",
"reference": "a24399e04b6d7f152d3b31ea4a59efc6385cfd06"
"reference": "01bb54c35a0c47eb41b145f76c384ef83b5a5852"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/teamtnt/tntsearch/zipball/a24399e04b6d7f152d3b31ea4a59efc6385cfd06",
"reference": "a24399e04b6d7f152d3b31ea4a59efc6385cfd06",
"url": "https://api.github.com/repos/teamtnt/tntsearch/zipball/01bb54c35a0c47eb41b145f76c384ef83b5a5852",
"reference": "01bb54c35a0c47eb41b145f76c384ef83b5a5852",
"shasum": ""
},
"require": {
@@ -4713,7 +4581,7 @@
"teamtnt",
"tntsearch"
],
"time": "2019-10-07T10:02:35+00:00"
"time": "2020-04-03T10:22:24+00:00"
},
{
"name": "tijsverkoyen/css-to-inline-styles",
@@ -5213,6 +5081,96 @@
],
"time": "2016-01-20T08:20:44+00:00"
},
{
"name": "jakub-onderka/php-console-color",
"version": "v0.2",
"source": {
"type": "git",
"url": "https://github.com/JakubOnderka/PHP-Console-Color.git",
"reference": "d5deaecff52a0d61ccb613bb3804088da0307191"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Color/zipball/d5deaecff52a0d61ccb613bb3804088da0307191",
"reference": "d5deaecff52a0d61ccb613bb3804088da0307191",
"shasum": ""
},
"require": {
"php": ">=5.4.0"
},
"require-dev": {
"jakub-onderka/php-code-style": "1.0",
"jakub-onderka/php-parallel-lint": "1.0",
"jakub-onderka/php-var-dump-check": "0.*",
"phpunit/phpunit": "~4.3",
"squizlabs/php_codesniffer": "1.*"
},
"type": "library",
"autoload": {
"psr-4": {
"JakubOnderka\\PhpConsoleColor\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-2-Clause"
],
"authors": [
{
"name": "Jakub Onderka",
"email": "jakub.onderka@gmail.com"
}
],
"abandoned": "php-parallel-lint/php-console-color",
"time": "2018-09-29T17:23:10+00:00"
},
{
"name": "jakub-onderka/php-console-highlighter",
"version": "v0.4",
"source": {
"type": "git",
"url": "https://github.com/JakubOnderka/PHP-Console-Highlighter.git",
"reference": "9f7a229a69d52506914b4bc61bfdb199d90c5547"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Highlighter/zipball/9f7a229a69d52506914b4bc61bfdb199d90c5547",
"reference": "9f7a229a69d52506914b4bc61bfdb199d90c5547",
"shasum": ""
},
"require": {
"ext-tokenizer": "*",
"jakub-onderka/php-console-color": "~0.2",
"php": ">=5.4.0"
},
"require-dev": {
"jakub-onderka/php-code-style": "~1.0",
"jakub-onderka/php-parallel-lint": "~1.0",
"jakub-onderka/php-var-dump-check": "~0.1",
"phpunit/phpunit": "~4.0",
"squizlabs/php_codesniffer": "~1.5"
},
"type": "library",
"autoload": {
"psr-4": {
"JakubOnderka\\PhpConsoleHighlighter\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jakub Onderka",
"email": "acci@acci.cz",
"homepage": "http://www.acci.cz/"
}
],
"description": "Highlight PHP code in terminal",
"abandoned": "php-parallel-lint/php-console-highlighter",
"time": "2018-09-29T18:48:56+00:00"
},
{
"name": "mockery/mockery",
"version": "1.3.1",

2
public/js/main.js vendored

File diff suppressed because one or more lines are too long

View File

@@ -1,113 +1,4 @@
{
"/js/main.js": "/js/main.js",
"/css/app.css": "/css/app.css",
"/js/main.e7f30bdbf0af3612b526.hot-update.js": "/js/main.e7f30bdbf0af3612b526.hot-update.js",
"/js/main.ff7c1c1321839e44327f.hot-update.js": "/js/main.ff7c1c1321839e44327f.hot-update.js",
"/js/main.53f0d016b94dcb1c715e.hot-update.js": "/js/main.53f0d016b94dcb1c715e.hot-update.js",
"/js/main.91dfc6fa641b9cd39c02.hot-update.js": "/js/main.91dfc6fa641b9cd39c02.hot-update.js",
"/js/main.667efc00994378e71d93.hot-update.js": "/js/main.667efc00994378e71d93.hot-update.js",
"/js/main.7692d2f34f77320bb11f.hot-update.js": "/js/main.7692d2f34f77320bb11f.hot-update.js",
"/js/main.7f69426c4fe2e8b497c6.hot-update.js": "/js/main.7f69426c4fe2e8b497c6.hot-update.js",
"/js/main.6fdca76d612e9a1f0d0b.hot-update.js": "/js/main.6fdca76d612e9a1f0d0b.hot-update.js",
"/js/main.c31ff848b09d13ca7c2d.hot-update.js": "/js/main.c31ff848b09d13ca7c2d.hot-update.js",
"/js/main.41b7087afdc9a8fa2918.hot-update.js": "/js/main.41b7087afdc9a8fa2918.hot-update.js",
"/js/main.da608518980a26060e6d.hot-update.js": "/js/main.da608518980a26060e6d.hot-update.js",
"/js/main.44865fca901443079e80.hot-update.js": "/js/main.44865fca901443079e80.hot-update.js",
"/js/main.34f68da0edd206bdf449.hot-update.js": "/js/main.34f68da0edd206bdf449.hot-update.js",
"/js/main.76e28a6cf1d089d14407.hot-update.js": "/js/main.76e28a6cf1d089d14407.hot-update.js",
"/js/main.42910696b2219784c525.hot-update.js": "/js/main.42910696b2219784c525.hot-update.js",
"/js/main.67b8b2d86326cbcc783e.hot-update.js": "/js/main.67b8b2d86326cbcc783e.hot-update.js",
"/js/main.2f6b86e9ae2e618eef5c.hot-update.js": "/js/main.2f6b86e9ae2e618eef5c.hot-update.js",
"/js/main.eb2e4334f35dc22ae007.hot-update.js": "/js/main.eb2e4334f35dc22ae007.hot-update.js",
"/js/main.993617a0d9fe5acd8d0c.hot-update.js": "/js/main.993617a0d9fe5acd8d0c.hot-update.js",
"/js/main.eb3f0ccc6ba4c70aa967.hot-update.js": "/js/main.eb3f0ccc6ba4c70aa967.hot-update.js",
"/js/main.489694c4592da3a41269.hot-update.js": "/js/main.489694c4592da3a41269.hot-update.js",
"/js/main.581b9bcbc6d41f76cc3a.hot-update.js": "/js/main.581b9bcbc6d41f76cc3a.hot-update.js",
"/js/main.cfc0762d114afd6424ff.hot-update.js": "/js/main.cfc0762d114afd6424ff.hot-update.js",
"/js/main.a7c716373eb673a7f285.hot-update.js": "/js/main.a7c716373eb673a7f285.hot-update.js",
"/js/main.e126d1845fd72a5c0161.hot-update.js": "/js/main.e126d1845fd72a5c0161.hot-update.js",
"/js/main.352e26546f4fe2821c2e.hot-update.js": "/js/main.352e26546f4fe2821c2e.hot-update.js",
"/js/main.922b31c6f37de4446969.hot-update.js": "/js/main.922b31c6f37de4446969.hot-update.js",
"/js/main.4b1be0b5c77c9901c35d.hot-update.js": "/js/main.4b1be0b5c77c9901c35d.hot-update.js",
"/js/main.3e2b02f36a075c87eeb8.hot-update.js": "/js/main.3e2b02f36a075c87eeb8.hot-update.js",
"/js/main.4af814c53a654a34e904.hot-update.js": "/js/main.4af814c53a654a34e904.hot-update.js",
"/js/main.6b3c398f901108d13836.hot-update.js": "/js/main.6b3c398f901108d13836.hot-update.js",
"/js/main.f41e53673d2e295978b4.hot-update.js": "/js/main.f41e53673d2e295978b4.hot-update.js",
"/js/main.5f840767e9c6130f5356.hot-update.js": "/js/main.5f840767e9c6130f5356.hot-update.js",
"/js/main.423db5f2e4dfc74a2964.hot-update.js": "/js/main.423db5f2e4dfc74a2964.hot-update.js",
"/js/main.12aff97caaae89cd3e8b.hot-update.js": "/js/main.12aff97caaae89cd3e8b.hot-update.js",
"/js/main.9f29f80eff6641f65abb.hot-update.js": "/js/main.9f29f80eff6641f65abb.hot-update.js",
"/js/main.4124c4b13d33dcae6e72.hot-update.js": "/js/main.4124c4b13d33dcae6e72.hot-update.js",
"/js/main.6ff4de79821f8c889c68.hot-update.js": "/js/main.6ff4de79821f8c889c68.hot-update.js",
"/js/main.28cb2b46fc2632c022a8.hot-update.js": "/js/main.28cb2b46fc2632c022a8.hot-update.js",
"/js/main.571327025a1eb083c342.hot-update.js": "/js/main.571327025a1eb083c342.hot-update.js",
"/js/main.d86182800943a3c3db27.hot-update.js": "/js/main.d86182800943a3c3db27.hot-update.js",
"/js/main.7003dbcc7ef9f0a96491.hot-update.js": "/js/main.7003dbcc7ef9f0a96491.hot-update.js",
"/js/main.979687c964f2b30c2af4.hot-update.js": "/js/main.979687c964f2b30c2af4.hot-update.js",
"/js/main.2ee700b6bd0e8c809f86.hot-update.js": "/js/main.2ee700b6bd0e8c809f86.hot-update.js",
"/js/main.592d60d033bfcef8b18b.hot-update.js": "/js/main.592d60d033bfcef8b18b.hot-update.js",
"/js/main.9ea1d9d63047b8a70709.hot-update.js": "/js/main.9ea1d9d63047b8a70709.hot-update.js",
"/js/main.211a33977506e5cc972c.hot-update.js": "/js/main.211a33977506e5cc972c.hot-update.js",
"/js/main.fc18269e0e2a57bfa749.hot-update.js": "/js/main.fc18269e0e2a57bfa749.hot-update.js",
"/js/main.2d96606dfee12bbf2e2d.hot-update.js": "/js/main.2d96606dfee12bbf2e2d.hot-update.js",
"/js/main.a73cc8c938ec93a42697.hot-update.js": "/js/main.a73cc8c938ec93a42697.hot-update.js",
"/js/main.8382c3a1344f4204753c.hot-update.js": "/js/main.8382c3a1344f4204753c.hot-update.js",
"/js/main.662361c9d724944e080b.hot-update.js": "/js/main.662361c9d724944e080b.hot-update.js",
"/js/main.e4e2534d512313077893.hot-update.js": "/js/main.e4e2534d512313077893.hot-update.js",
"/js/main.51f2667edf8b2add512c.hot-update.js": "/js/main.51f2667edf8b2add512c.hot-update.js",
"/js/main.4d741ebaa620d0385db6.hot-update.js": "/js/main.4d741ebaa620d0385db6.hot-update.js",
"/js/main.0c7c1626421531bfde30.hot-update.js": "/js/main.0c7c1626421531bfde30.hot-update.js",
"/js/main.5547baee42f7c43a9d68.hot-update.js": "/js/main.5547baee42f7c43a9d68.hot-update.js",
"/js/main.379b12896cb2d8dc5dfd.hot-update.js": "/js/main.379b12896cb2d8dc5dfd.hot-update.js",
"/js/main.69169d21cb9c798cee55.hot-update.js": "/js/main.69169d21cb9c798cee55.hot-update.js",
"/js/main.06e378419c44d61a73a9.hot-update.js": "/js/main.06e378419c44d61a73a9.hot-update.js",
"/js/main.abe45830bb5f74a87492.hot-update.js": "/js/main.abe45830bb5f74a87492.hot-update.js",
"/js/main.3c26bcfaac1764dcb695.hot-update.js": "/js/main.3c26bcfaac1764dcb695.hot-update.js",
"/js/main.42675c137c9be9cc6cbd.hot-update.js": "/js/main.42675c137c9be9cc6cbd.hot-update.js",
"/js/main.515ee9927d6ac79600a1.hot-update.js": "/js/main.515ee9927d6ac79600a1.hot-update.js",
"/js/main.fd96c8e9517a25f24267.hot-update.js": "/js/main.fd96c8e9517a25f24267.hot-update.js",
"/js/main.9ed1f46fd2a980db7a94.hot-update.js": "/js/main.9ed1f46fd2a980db7a94.hot-update.js",
"/js/main.e9a46e7cb63345e78d87.hot-update.js": "/js/main.e9a46e7cb63345e78d87.hot-update.js",
"/js/main.d15c62c50568d76a382b.hot-update.js": "/js/main.d15c62c50568d76a382b.hot-update.js",
"/js/main.6193797d6c1f8c17aaba.hot-update.js": "/js/main.6193797d6c1f8c17aaba.hot-update.js",
"/js/main.faf6ee5fbe0a15bd1d8e.hot-update.js": "/js/main.faf6ee5fbe0a15bd1d8e.hot-update.js",
"/js/main.b0717733357e2685ae52.hot-update.js": "/js/main.b0717733357e2685ae52.hot-update.js",
"/js/main.ce135143a7d035e2e6f0.hot-update.js": "/js/main.ce135143a7d035e2e6f0.hot-update.js",
"/js/main.4c778030c5c81c6af821.hot-update.js": "/js/main.4c778030c5c81c6af821.hot-update.js",
"/js/main.0550ffbc69d4d875ac6c.hot-update.js": "/js/main.0550ffbc69d4d875ac6c.hot-update.js",
"/js/main.6e17a1db946814f637a4.hot-update.js": "/js/main.6e17a1db946814f637a4.hot-update.js",
"/js/main.051eb6b27d0c22e1a411.hot-update.js": "/js/main.051eb6b27d0c22e1a411.hot-update.js",
"/js/main.4cd63de9d44c1d9f7135.hot-update.js": "/js/main.4cd63de9d44c1d9f7135.hot-update.js",
"/js/main.29edb50ea18b55b0c523.hot-update.js": "/js/main.29edb50ea18b55b0c523.hot-update.js",
"/js/main.6cdf442892e4847c4f60.hot-update.js": "/js/main.6cdf442892e4847c4f60.hot-update.js",
"/js/main.1c51f73087b631f16211.hot-update.js": "/js/main.1c51f73087b631f16211.hot-update.js",
"/js/main.1ec761ecadf80f27fffc.hot-update.js": "/js/main.1ec761ecadf80f27fffc.hot-update.js",
"/js/main.66e6478ece3f8c617c56.hot-update.js": "/js/main.66e6478ece3f8c617c56.hot-update.js",
"/js/main.f892cca704db04f9bd2d.hot-update.js": "/js/main.f892cca704db04f9bd2d.hot-update.js",
"/js/main.1a9e29684e0706bff64e.hot-update.js": "/js/main.1a9e29684e0706bff64e.hot-update.js",
"/js/main.5b40ae6cfcb202b440e8.hot-update.js": "/js/main.5b40ae6cfcb202b440e8.hot-update.js",
"/js/main.f8d02b41c8fe0ddd11f4.hot-update.js": "/js/main.f8d02b41c8fe0ddd11f4.hot-update.js",
"/js/main.c2f2d9ba582bf012b3ba.hot-update.js": "/js/main.c2f2d9ba582bf012b3ba.hot-update.js",
"/js/main.a4ed8e299894d0f3e170.hot-update.js": "/js/main.a4ed8e299894d0f3e170.hot-update.js",
"/js/main.f4d1aceb1493a95f0973.hot-update.js": "/js/main.f4d1aceb1493a95f0973.hot-update.js",
"/js/main.e8d9e02ad685eb0cb0a9.hot-update.js": "/js/main.e8d9e02ad685eb0cb0a9.hot-update.js",
"/js/main.b61ea149b4679eb735a4.hot-update.js": "/js/main.b61ea149b4679eb735a4.hot-update.js",
"/js/main.f4838e6c4cee6bbbd58c.hot-update.js": "/js/main.f4838e6c4cee6bbbd58c.hot-update.js",
"/js/main.9793a25b1cbcbbca608f.hot-update.js": "/js/main.9793a25b1cbcbbca608f.hot-update.js",
"/js/main.5f82981096301f7c14c6.hot-update.js": "/js/main.5f82981096301f7c14c6.hot-update.js",
"/js/main.147de5c546116b82b172.hot-update.js": "/js/main.147de5c546116b82b172.hot-update.js",
"/js/main.549924132e085db25697.hot-update.js": "/js/main.549924132e085db25697.hot-update.js",
"/js/main.6c6906253d93fd4e9f49.hot-update.js": "/js/main.6c6906253d93fd4e9f49.hot-update.js",
"/js/main.5c8df9ef886b2d973d09.hot-update.js": "/js/main.5c8df9ef886b2d973d09.hot-update.js",
"/js/main.50c83faee1c7cd29d33e.hot-update.js": "/js/main.50c83faee1c7cd29d33e.hot-update.js",
"/js/main.53e3daf64e1e8b0c63d0.hot-update.js": "/js/main.53e3daf64e1e8b0c63d0.hot-update.js",
"/js/main.6eb4044b179cc2a36255.hot-update.js": "/js/main.6eb4044b179cc2a36255.hot-update.js",
"/js/main.13219cf32b68d75b6fde.hot-update.js": "/js/main.13219cf32b68d75b6fde.hot-update.js",
"/js/main.2b85c9dfe8855a302b4c.hot-update.js": "/js/main.2b85c9dfe8855a302b4c.hot-update.js",
"/js/main.2945557ddcfe6d700857.hot-update.js": "/js/main.2945557ddcfe6d700857.hot-update.js",
"/js/main.3a0f92c1ad27a9f654b8.hot-update.js": "/js/main.3a0f92c1ad27a9f654b8.hot-update.js",
"/js/main.a3fd6ea744fa29df6f2f.hot-update.js": "/js/main.a3fd6ea744fa29df6f2f.hot-update.js",
"/js/main.fd4a172f187a86625543.hot-update.js": "/js/main.fd4a172f187a86625543.hot-update.js",
"/js/main.337958133c59a2cd4cde.hot-update.js": "/js/main.337958133c59a2cd4cde.hot-update.js",
"/js/main.df7e7e8e5a9f85c44e94.hot-update.js": "/js/main.df7e7e8e5a9f85c44e94.hot-update.js"
"/css/app.css": "/css/app.css"
}

View File

@@ -12,7 +12,7 @@
<li class="menu-option" @click="createFolder" v-if="! $isTrashLocation()">{{ $t('context_menu.create_folder') }}</li>
<!--Edits-->
<li class="menu-option" @click="removeItem" v-if="! $isTrashLocation() && item">{{ $t('context_menu.delete') }}</li>
<li class="menu-option" @click="removeItem" v-if="item">{{ $t('context_menu.delete') }}</li>
<li class="menu-option" @click="moveItem" v-if="! $isTrashLocation() && item">{{ $t('context_menu.move') }}</li>
<!--Trash-->