mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-18 16:22:14 +00:00
added test for getRecordsCount, format code
This commit is contained in:
@@ -905,7 +905,7 @@ return [
|
|||||||
'total_x_of_x_members' => 'Total ${use} of ${total} Members',
|
'total_x_of_x_members' => 'Total ${use} of ${total} Members',
|
||||||
'go_back_from_x' => 'Go back from {location}',
|
'go_back_from_x' => 'Go back from {location}',
|
||||||
'new_team_invitation' => 'New Team Invitation',
|
'new_team_invitation' => 'New Team Invitation',
|
||||||
'x_invite_to_join_team' => ":name invite you to join into Team Folder.",
|
'x_invite_to_join_team' => ':name invite you to join into Team Folder.',
|
||||||
'team_invitation_notify_title' => 'You are invited to collaboration with team folder in :app',
|
'team_invitation_notify_title' => 'You are invited to collaboration with team folder in :app',
|
||||||
'team_invitation_notify_desc' => 'You are invited to collaboration with team folder',
|
'team_invitation_notify_desc' => 'You are invited to collaboration with team folder',
|
||||||
'team_invitation_notify_desc_without_account' => 'You are invited to collaboration with team folder. But at first, you have to create an account to proceed into team folder.',
|
'team_invitation_notify_desc_without_account' => 'You are invited to collaboration with team folder. But at first, you have to create an account to proceed into team folder.',
|
||||||
@@ -915,12 +915,12 @@ return [
|
|||||||
'file_request_filled_desc' => "Your file request for ':name' folder was filled successfully.",
|
'file_request_filled_desc' => "Your file request for ':name' folder was filled successfully.",
|
||||||
'show_files' => 'Show Files',
|
'show_files' => 'Show Files',
|
||||||
'file_request_filled_mail' => "Your file request was fulfilled in your ':name' folder",
|
'file_request_filled_mail' => "Your file request was fulfilled in your ':name' folder",
|
||||||
'file_request_filled_mail_note' => "We are emailing you because your file request was fulfilled. Please click on the link below to show uploaded files.",
|
'file_request_filled_mail_note' => 'We are emailing you because your file request was fulfilled. Please click on the link below to show uploaded files.',
|
||||||
'thanks_salutation' => 'Thank you for using our application!',
|
'thanks_salutation' => 'Thank you for using our application!',
|
||||||
'upload_your_files' => 'Upload your Files',
|
'upload_your_files' => 'Upload your Files',
|
||||||
'file_request_optional_message' => "PS: :name left you a message: :notes",
|
'file_request_optional_message' => 'PS: :name left you a message: :notes',
|
||||||
'file_request_notify_title' => ':name Request You for File Upload',
|
'file_request_notify_title' => ':name Request You for File Upload',
|
||||||
'file_request_notify_description' => "We are emailing you because :name requested files from you. Please click on the link below and upload your files for :name.",
|
'file_request_notify_description' => 'We are emailing you because :name requested files from you. Please click on the link below and upload your files for :name.',
|
||||||
'user_action_not_allowed' => 'This user action is not allowed.',
|
'user_action_not_allowed' => 'This user action is not allowed.',
|
||||||
'pcs.' => 'Pcs.',
|
'pcs.' => 'Pcs.',
|
||||||
'mem.' => 'Mem.',
|
'mem.' => 'Mem.',
|
||||||
|
|||||||
@@ -62,6 +62,6 @@ return [
|
|||||||
],
|
],
|
||||||
|
|
||||||
'paginate' => [
|
'paginate' => [
|
||||||
'perPage' => 15
|
'perPage' => 15,
|
||||||
]
|
],
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace App\Providers;
|
namespace App\Providers;
|
||||||
|
|
||||||
use Illuminate\Support\ServiceProvider;
|
|
||||||
use Schema;
|
use Schema;
|
||||||
|
use Illuminate\Support\ServiceProvider;
|
||||||
|
|
||||||
class AppServiceProvider extends ServiceProvider
|
class AppServiceProvider extends ServiceProvider
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Socialite\Controllers;
|
namespace App\Socialite\Controllers;
|
||||||
|
|
||||||
use App\Users\Models\User;
|
use App\Users\Models\User;
|
||||||
@@ -8,15 +7,16 @@ use App\Http\Controllers\Controller;
|
|||||||
use Laravel\Socialite\Facades\Socialite;
|
use Laravel\Socialite\Facades\Socialite;
|
||||||
use App\Users\Actions\CreateNewUserAction;
|
use App\Users\Actions\CreateNewUserAction;
|
||||||
use Illuminate\Contracts\Auth\StatefulGuard;
|
use Illuminate\Contracts\Auth\StatefulGuard;
|
||||||
use VueFileManager\Subscription\Domain\Plans\Exceptions\MeteredBillingPlanDoesntExist;
|
|
||||||
use VueFileManager\Subscription\Domain\Plans\Models\Plan;
|
use VueFileManager\Subscription\Domain\Plans\Models\Plan;
|
||||||
|
use VueFileManager\Subscription\Domain\Plans\Exceptions\MeteredBillingPlanDoesntExist;
|
||||||
|
|
||||||
class SocialiteCallbackController extends Controller
|
class SocialiteCallbackController extends Controller
|
||||||
{
|
{
|
||||||
public function __construct(
|
public function __construct(
|
||||||
protected StatefulGuard $guard,
|
protected StatefulGuard $guard,
|
||||||
public CreateNewUserAction $createNewUser,
|
public CreateNewUserAction $createNewUser,
|
||||||
) {}
|
) {
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @throws MeteredBillingPlanDoesntExist
|
* @throws MeteredBillingPlanDoesntExist
|
||||||
@@ -60,7 +60,7 @@ class SocialiteCallbackController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Check if account registration is enabled
|
// Check if account registration is enabled
|
||||||
if (!$isAllowedRegistration) {
|
if (! $isAllowedRegistration) {
|
||||||
return response([
|
return response([
|
||||||
'type' => 'error',
|
'type' => 'error',
|
||||||
'message' => 'User registration is not allowed',
|
'message' => 'User registration is not allowed',
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Users\Actions;
|
namespace App\Users\Actions;
|
||||||
|
|
||||||
use App\Users\Rules\PasswordValidationRules;
|
|
||||||
use Illuminate\Support\Facades\Hash;
|
use Illuminate\Support\Facades\Hash;
|
||||||
use Illuminate\Support\Facades\Validator;
|
use Illuminate\Support\Facades\Validator;
|
||||||
|
use App\Users\Rules\PasswordValidationRules;
|
||||||
use Laravel\Fortify\Contracts\UpdatesUserPasswords;
|
use Laravel\Fortify\Contracts\UpdatesUserPasswords;
|
||||||
|
|
||||||
class UpdateUserPassword implements UpdatesUserPasswords
|
class UpdateUserPassword implements UpdatesUserPasswords
|
||||||
@@ -25,7 +24,7 @@ class UpdateUserPassword implements UpdatesUserPasswords
|
|||||||
'current_password' => ['required', 'string'],
|
'current_password' => ['required', 'string'],
|
||||||
'password' => $this->passwordRules(),
|
'password' => $this->passwordRules(),
|
||||||
])->after(function ($validator) use ($user, $input) {
|
])->after(function ($validator) use ($user, $input) {
|
||||||
if (!isset($input['current_password']) || !Hash::check($input['current_password'], $user->password)) {
|
if (! isset($input['current_password']) || ! Hash::check($input['current_password'], $user->password)) {
|
||||||
$validator->errors()->add('current_password', __t('password_doesnt_match'));
|
$validator->errors()->add('current_password', __t('password_doesnt_match'));
|
||||||
}
|
}
|
||||||
})->validateWithBag('updatePassword');
|
})->validateWithBag('updatePassword');
|
||||||
|
|||||||
@@ -5,7 +5,9 @@ use Str;
|
|||||||
use Domain\Files\Models\File;
|
use Domain\Files\Models\File;
|
||||||
use Domain\Folders\Models\Folder;
|
use Domain\Folders\Models\Folder;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Domain\Files\Resources\FilesCollection;
|
||||||
use Domain\Folders\Resources\FolderResource;
|
use Domain\Folders\Resources\FolderResource;
|
||||||
|
use Domain\Folders\Resources\FolderCollection;
|
||||||
|
|
||||||
class BrowseFolderController
|
class BrowseFolderController
|
||||||
{
|
{
|
||||||
@@ -18,16 +20,16 @@ class BrowseFolderController
|
|||||||
'parent_id' => $root_id,
|
'parent_id' => $root_id,
|
||||||
'team_folder' => false,
|
'team_folder' => false,
|
||||||
'user_id' => Auth::id(),
|
'user_id' => Auth::id(),
|
||||||
'deleted_at' => null
|
'deleted_at' => null,
|
||||||
];
|
];
|
||||||
|
|
||||||
$fileQuery = [
|
$fileQuery = [
|
||||||
'parent_id' => $root_id,
|
'parent_id' => $root_id,
|
||||||
'user_id' => Auth::id(),
|
'user_id' => Auth::id(),
|
||||||
'deleted_at' => null
|
'deleted_at' => null,
|
||||||
];
|
];
|
||||||
|
|
||||||
list($foldersTake, $foldersSkip, $filesTake, $filesSkip, $totalItemsCount) = getRecordsCount($folderQuery, $fileQuery);
|
list($foldersTake, $foldersSkip, $filesTake, $filesSkip, $totalItemsCount) = getRecordsCount($folderQuery, $fileQuery, request()->input('page'));
|
||||||
|
|
||||||
$folders = Folder::with(['parent:id,name', 'shared:token,id,item_id,permission,is_protected,expire_in'])
|
$folders = Folder::with(['parent:id,name', 'shared:token,id,item_id,permission,is_protected,expire_in'])
|
||||||
->where($folderQuery)
|
->where($folderQuery)
|
||||||
@@ -42,16 +44,21 @@ class BrowseFolderController
|
|||||||
->skip($filesSkip)
|
->skip($filesSkip)
|
||||||
->take($filesTake)
|
->take($filesTake)
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
|
$entries = collect([
|
||||||
|
$folders ? json_decode((new FolderCollection($folders))->toJson(), true) : null,
|
||||||
|
$files ? json_decode((new FilesCollection($files))->toJson(), true) : null,
|
||||||
|
])->collapse();
|
||||||
|
|
||||||
list($data, $paginate, $links) = groupPaginate($folders, $files, $totalItemsCount);
|
list($paginate, $links) = generatePaginationCounts($totalItemsCount);
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'data' => $data,
|
'data' => $entries,
|
||||||
'links' => $links,
|
'links' => $links,
|
||||||
'meta' => [
|
'meta' => [
|
||||||
'paginate' => $paginate,
|
'paginate' => $paginate,
|
||||||
'root' => $root_id ? new FolderResource(Folder::findOrFail($root_id)) : null,
|
'root' => $root_id ? new FolderResource(Folder::findOrFail($root_id)) : null,
|
||||||
]
|
],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
namespace Domain\Browsing\Controllers;
|
namespace Domain\Browsing\Controllers;
|
||||||
|
|
||||||
use App\Users\Models\User;
|
use App\Users\Models\User;
|
||||||
use Illuminate\Support\Facades\Auth;
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
class BrowseLatestFilesController
|
class BrowseLatestFilesController
|
||||||
{
|
{
|
||||||
@@ -23,7 +23,7 @@ class BrowseLatestFilesController
|
|||||||
'meta' => [
|
'meta' => [
|
||||||
'paginate' => $paginate,
|
'paginate' => $paginate,
|
||||||
'root' => null,
|
'root' => null,
|
||||||
]
|
],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Domain\Browsing\Controllers;
|
namespace Domain\Browsing\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
use Domain\Files\Models\File;
|
use Domain\Files\Models\File;
|
||||||
use Domain\Sharing\Models\Share;
|
use Domain\Sharing\Models\Share;
|
||||||
use Domain\Folders\Models\Folder;
|
use Domain\Folders\Models\Folder;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Illuminate\Http\Request;
|
|
||||||
|
|
||||||
class BrowseSharedItemsController
|
class BrowseSharedItemsController
|
||||||
{
|
{
|
||||||
@@ -44,7 +44,7 @@ class BrowseSharedItemsController
|
|||||||
'meta' => [
|
'meta' => [
|
||||||
'paginate' => $paginate,
|
'paginate' => $paginate,
|
||||||
'root' => null,
|
'root' => null,
|
||||||
]
|
],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Domain\Browsing\Controllers;
|
namespace Domain\Browsing\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
use Domain\Files\Models\File;
|
use Domain\Files\Models\File;
|
||||||
use Domain\Folders\Models\Folder;
|
use Domain\Folders\Models\Folder;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Illuminate\Http\Request;
|
|
||||||
|
|
||||||
class BrowseTrashContentController
|
class BrowseTrashContentController
|
||||||
{
|
{
|
||||||
@@ -27,14 +27,12 @@ class BrowseTrashContentController
|
|||||||
->where('parent_id', $root_id)
|
->where('parent_id', $root_id)
|
||||||
->sortable()
|
->sortable()
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// Get folders and files
|
// Get folders and files
|
||||||
$folders_trashed = Folder::onlyTrashed()
|
$folders_trashed = Folder::onlyTrashed()
|
||||||
->with(['trashedFolders', 'parent'])
|
->with(['trashedFolders', 'parent'])
|
||||||
->where('user_id', $user_id)
|
->where('user_id', $user_id)
|
||||||
->get(['parent_id', 'id', 'name']);
|
->get(['parent_id', 'id', 'name']);
|
||||||
|
|
||||||
$folders = Folder::onlyTrashed()
|
$folders = Folder::onlyTrashed()
|
||||||
->with(['parent'])
|
->with(['parent'])
|
||||||
@@ -64,7 +62,7 @@ class BrowseTrashContentController
|
|||||||
'meta' => [
|
'meta' => [
|
||||||
'paginate' => $paginate,
|
'paginate' => $paginate,
|
||||||
'root' => $requestedFolder,
|
'root' => $requestedFolder,
|
||||||
]
|
],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Domain\Browsing\Controllers;
|
namespace Domain\Browsing\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
use Domain\Files\Models\File;
|
use Domain\Files\Models\File;
|
||||||
use Domain\Sharing\Models\Share;
|
use Domain\Sharing\Models\Share;
|
||||||
use Domain\Folders\Models\Folder;
|
use Domain\Folders\Models\Folder;
|
||||||
use Domain\Folders\Resources\FolderResource;
|
use Domain\Folders\Resources\FolderResource;
|
||||||
use Domain\Sharing\Actions\ProtectShareRecordAction;
|
use Domain\Sharing\Actions\ProtectShareRecordAction;
|
||||||
use Domain\Sharing\Actions\VerifyAccessToItemAction;
|
use Domain\Sharing\Actions\VerifyAccessToItemAction;
|
||||||
use Illuminate\Http\Request;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Browse shared folder
|
* Browse shared folder
|
||||||
@@ -56,7 +56,7 @@ class VisitorBrowseFolderController
|
|||||||
'meta' => [
|
'meta' => [
|
||||||
'paginate' => $paginate,
|
'paginate' => $paginate,
|
||||||
'root' => new FolderResource($requestedFolder),
|
'root' => new FolderResource($requestedFolder),
|
||||||
]
|
],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ class GenerateImageThumbnailAction
|
|||||||
collect(config("vuefilemanager.image_sizes.$execution"))
|
collect(config("vuefilemanager.image_sizes.$execution"))
|
||||||
->each(function ($size) use ($userId, $fileName, $imageWidth) {
|
->each(function ($size) use ($userId, $fileName, $imageWidth) {
|
||||||
if ($imageWidth > $size['size']) {
|
if ($imageWidth > $size['size']) {
|
||||||
|
|
||||||
// Create intervention image
|
// Create intervention image
|
||||||
$intervention = Image::make(
|
$intervention = Image::make(
|
||||||
Storage::disk('local')->path("temp/$userId/$fileName")
|
Storage::disk('local')->path("temp/$userId/$fileName")
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
namespace Domain\Files\Controllers;
|
namespace Domain\Files\Controllers;
|
||||||
|
|
||||||
use Domain\Files\Models\File;
|
use Domain\Files\Models\File;
|
||||||
use Illuminate\Http\Response;
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Domain\Files\Requests\UploadRequest;
|
use Domain\Files\Requests\UploadRequest;
|
||||||
use Domain\Files\Resources\FileResource;
|
use Domain\Files\Resources\FileResource;
|
||||||
@@ -21,7 +20,8 @@ class UploadFileController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Upload file for authenticated master|editor user
|
* Upload file for authenticated master|editor user
|
||||||
*/
|
*/
|
||||||
public function __invoke(UploadRequest $request) {
|
public function __invoke(UploadRequest $request)
|
||||||
|
{
|
||||||
if (is_demo_account()) {
|
if (is_demo_account()) {
|
||||||
return ($this->fakeUploadFile)($request);
|
return ($this->fakeUploadFile)($request);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Domain\Files\Requests;
|
namespace Domain\Files\Requests;
|
||||||
|
|
||||||
use Domain\Admin\Rules\DisabledMimetypes;
|
use Domain\Admin\Rules\DisabledMimetypes;
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Domain\Items\Controllers;
|
namespace Domain\Items\Controllers;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use Domain\Files\Models\File;
|
use Domain\Files\Models\File;
|
||||||
use Domain\Files\Resources\FileResource;
|
|
||||||
use Domain\Folders\Models\Folder;
|
use Domain\Folders\Models\Folder;
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Domain\Files\Resources\FileResource;
|
||||||
use Domain\Folders\Resources\FolderResource;
|
use Domain\Folders\Resources\FolderResource;
|
||||||
use Domain\Items\Requests\RenameItemRequest;
|
use Domain\Items\Requests\RenameItemRequest;
|
||||||
use Domain\Items\Actions\RenameFileOrFolderAction;
|
use Domain\Items\Actions\RenameFileOrFolderAction;
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ namespace Domain\SetupWizard\Controllers;
|
|||||||
|
|
||||||
use Artisan;
|
use Artisan;
|
||||||
use App\Users\Models\User;
|
use App\Users\Models\User;
|
||||||
use Domain\SetupWizard\Actions\CreateDiskDirectoriesAction;
|
|
||||||
use Illuminate\Http\Response;
|
use Illuminate\Http\Response;
|
||||||
use Domain\Settings\Models\Setting;
|
use Domain\Settings\Models\Setting;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
@@ -12,6 +11,7 @@ use Domain\Pages\Actions\SeedDefaultPagesAction;
|
|||||||
use Domain\Settings\Actions\SeedDefaultSettingsAction;
|
use Domain\Settings\Actions\SeedDefaultSettingsAction;
|
||||||
use Domain\SetupWizard\Requests\StoreAdminAccountRequest;
|
use Domain\SetupWizard\Requests\StoreAdminAccountRequest;
|
||||||
use Domain\Localization\Actions\SeedDefaultLanguageAction;
|
use Domain\Localization\Actions\SeedDefaultLanguageAction;
|
||||||
|
use Domain\SetupWizard\Actions\CreateDiskDirectoriesAction;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create and login admin account
|
* Create and login admin account
|
||||||
|
|||||||
@@ -53,8 +53,8 @@ class BrowseSharedWithMeController
|
|||||||
'links' => $links,
|
'links' => $links,
|
||||||
'meta' => [
|
'meta' => [
|
||||||
'paginate' => $paginate,
|
'paginate' => $paginate,
|
||||||
'root' => $id ? new FolderResource(Folder::findOrFail($id)) : null
|
'root' => $id ? new FolderResource(Folder::findOrFail($id)) : null,
|
||||||
]
|
],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ class TeamFoldersController extends Controller
|
|||||||
'meta' => [
|
'meta' => [
|
||||||
'paginate' => $paginate,
|
'paginate' => $paginate,
|
||||||
'root' => $id ? new FolderResource(Folder::findOrFail($id)) : null,
|
'root' => $id ? new FolderResource(Folder::findOrFail($id)) : null,
|
||||||
]
|
],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ class InvitationIntoTeamFolder extends Notification implements ShouldQueue
|
|||||||
return [
|
return [
|
||||||
'category' => 'team-invitation',
|
'category' => 'team-invitation',
|
||||||
'title' => __t('new_team_invitation'),
|
'title' => __t('new_team_invitation'),
|
||||||
'description' => __t('x_invite_to_join_team', ['name' => $this->invitation->inviter->settings->name,]),
|
'description' => __t('x_invite_to_join_team', ['name' => $this->invitation->inviter->settings->name, ]),
|
||||||
'action' => [
|
'action' => [
|
||||||
'type' => 'invitation',
|
'type' => 'invitation',
|
||||||
'params' => [
|
'params' => [
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Domain\UploadRequest\Notifications;
|
namespace Domain\UploadRequest\Notifications;
|
||||||
|
|
||||||
use Illuminate\Bus\Queueable;
|
use Illuminate\Bus\Queueable;
|
||||||
@@ -19,7 +18,8 @@ class UploadRequestFulfilledNotification extends Notification implements ShouldQ
|
|||||||
*/
|
*/
|
||||||
public function __construct(
|
public function __construct(
|
||||||
public UploadRequest $uploadRequest
|
public UploadRequest $uploadRequest
|
||||||
) {}
|
) {
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the notification's delivery channels.
|
* Get the notification's delivery channels.
|
||||||
@@ -50,7 +50,7 @@ class UploadRequestFulfilledNotification extends Notification implements ShouldQ
|
|||||||
return [
|
return [
|
||||||
'category' => 'file-request',
|
'category' => 'file-request',
|
||||||
'title' => __t('file_request_filled'),
|
'title' => __t('file_request_filled'),
|
||||||
'description' => __t('file_request_filled_desc', ['name' => $this->uploadRequest->parent->name,]),
|
'description' => __t('file_request_filled_desc', ['name' => $this->uploadRequest->parent->name, ]),
|
||||||
'action' => [
|
'action' => [
|
||||||
'type' => 'route',
|
'type' => 'route',
|
||||||
'params' => [
|
'params' => [
|
||||||
|
|||||||
@@ -9,15 +9,13 @@ use Domain\Files\Models\File;
|
|||||||
use Domain\Sharing\Models\Share;
|
use Domain\Sharing\Models\Share;
|
||||||
use Domain\Folders\Models\Folder;
|
use Domain\Folders\Models\Folder;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
use Domain\Settings\Models\Setting;
|
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Domain\Settings\Models\Setting;
|
||||||
use Illuminate\Support\Facades\Http;
|
use Illuminate\Support\Facades\Http;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\QueryException;
|
use Illuminate\Database\QueryException;
|
||||||
use Illuminate\Support\Facades\Storage;
|
use Illuminate\Support\Facades\Storage;
|
||||||
use Domain\Localization\Models\Language;
|
use Domain\Localization\Models\Language;
|
||||||
use Domain\Files\Resources\FilesCollection;
|
|
||||||
use Domain\Folders\Resources\FolderCollection;
|
|
||||||
use Intervention\Image\ImageManagerStatic as Image;
|
use Intervention\Image\ImageManagerStatic as Image;
|
||||||
use Illuminate\Database\Eloquent\ModelNotFoundException;
|
use Illuminate\Database\Eloquent\ModelNotFoundException;
|
||||||
|
|
||||||
@@ -1152,30 +1150,20 @@ if (! function_exists('replace_occurrence')) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(! function_exists('groupPaginate')) {
|
if (! function_exists('generatePaginationCounts')) {
|
||||||
/**
|
/**
|
||||||
* Group paginate of Foldes and Files
|
* Group paginate of Foldes and Files
|
||||||
*/
|
*/
|
||||||
function groupPaginate(
|
function generatePaginationCounts(
|
||||||
?Collection $folders = null,
|
|
||||||
?Collection $files = null,
|
|
||||||
int $totalItemsCount
|
int $totalItemsCount
|
||||||
) : array {
|
) : array {
|
||||||
|
|
||||||
$perPage = config('vuefilemanager.paginate.perPage');
|
$perPage = config('vuefilemanager.paginate.perPage');
|
||||||
$currentPage = request()->input('page') === 'all' ? 1 : (int)request()->input('page');
|
$currentPage = request()->input('page') === 'all' ? 1 : (int) request()->input('page');
|
||||||
|
|
||||||
// Collect Folders with Files
|
|
||||||
$entries = collect([
|
|
||||||
$folders ? json_decode((new FolderCollection($folders))->toJson(), true) : null,
|
|
||||||
$files ? json_decode((new FilesCollection($files))->toJson(), true) : null,
|
|
||||||
])->collapse();
|
|
||||||
|
|
||||||
$uri = request()->fullUrl();
|
$uri = request()->fullUrl();
|
||||||
$lastPage = ceil($totalItemsCount / $perPage);
|
$lastPage = ceil($totalItemsCount / $perPage);
|
||||||
|
|
||||||
return [
|
return [
|
||||||
$entries,
|
|
||||||
[
|
[
|
||||||
'currentPage' => $currentPage,
|
'currentPage' => $currentPage,
|
||||||
'from' => 1,
|
'from' => 1,
|
||||||
@@ -1188,28 +1176,29 @@ if (! function_exists('replace_occurrence')) {
|
|||||||
[
|
[
|
||||||
'first' => $uri . '&page=' . 1,
|
'first' => $uri . '&page=' . 1,
|
||||||
'last' => $uri . '&page=' . $lastPage,
|
'last' => $uri . '&page=' . $lastPage,
|
||||||
'next' => $currentPage == $lastPage ? null : $uri . '&page=' . $currentPage + 1,
|
'next' => $currentPage == $lastPage ? null : $uri . '&page=' . $currentPage + 1,
|
||||||
'prev' => $currentPage == 1 ? null : $uri . '&page=' . $currentPage -1,
|
'prev' => $currentPage == 1 ? null : $uri . '&page=' . $currentPage - 1,
|
||||||
]
|
],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if(! function_exists('getRecordsCount')) {
|
|
||||||
|
if (! function_exists('getRecordsCount')) {
|
||||||
/**
|
/**
|
||||||
* Get count of items from the Database
|
* Get count of items from the Database
|
||||||
*/
|
*/
|
||||||
function getRecordsCount (
|
function getRecordsCount(
|
||||||
array $folderQuery,
|
array $folderQuery,
|
||||||
array $fileQuery
|
array $fileQuery,
|
||||||
) : array {
|
string $page
|
||||||
|
) : array {
|
||||||
$perPage = config('vuefilemanager.paginate.perPage');
|
$perPage = config('vuefilemanager.paginate.perPage');
|
||||||
$currentPage = request()->input('page') === 'all' ? 1 : (int)request()->input('page');
|
$currentPage = $page === 'all' ? 1 : (int) $page;
|
||||||
|
|
||||||
$foldersSkip = 0;
|
$foldersSkip = 0;
|
||||||
$foldersTake = 0;
|
$foldersTake = 0;
|
||||||
$filesSkip = 0;
|
$filesSkip = 0;
|
||||||
$filesTake = 0;
|
$filesTake = 0;
|
||||||
|
|
||||||
$foldersCount = DB::table('folders')
|
$foldersCount = DB::table('folders')
|
||||||
->where($folderQuery)
|
->where($folderQuery)
|
||||||
@@ -1221,34 +1210,32 @@ if (! function_exists('replace_occurrence')) {
|
|||||||
|
|
||||||
$totalItemsCount = $foldersCount + $filesCount;
|
$totalItemsCount = $foldersCount + $filesCount;
|
||||||
|
|
||||||
if(request()->input('page') !== 'all') {
|
if ($page !== 'all') {
|
||||||
|
|
||||||
// Folders pages
|
// Folders pages
|
||||||
if($foldersCount >= $currentPage * $perPage) {
|
if ($foldersCount >= $currentPage * $perPage) {
|
||||||
$foldersTake = $perPage;
|
$foldersTake = $perPage;
|
||||||
$foldersSkip = ($currentPage - 1) * $perPage;
|
$foldersSkip = ($currentPage - 1) * $perPage;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mixed page
|
// Mixed page
|
||||||
if($foldersCount < $currentPage * $perPage && ceil($currentPage) === ceil($foldersCount / $perPage) ) {
|
if ($foldersCount < $currentPage * $perPage && ceil($currentPage) === ceil($foldersCount / $perPage)) {
|
||||||
$foldersSkip = ($currentPage - 1) * $perPage;
|
$foldersSkip = ($currentPage - 1) * $perPage;
|
||||||
$foldersTake = $foldersCount - $foldersSkip;
|
$foldersTake = $foldersCount - $foldersSkip;
|
||||||
$filesTake = ($currentPage * $perPage) - $foldersCount;
|
$filesTake = ($currentPage * $perPage) - $foldersCount;
|
||||||
$filesSkip = 0;
|
$filesSkip = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Files pages
|
// Files pages
|
||||||
if($currentPage > ceil($foldersCount / $perPage)) {
|
if ($currentPage > ceil($foldersCount / $perPage)) {
|
||||||
$filesTake = $perPage;
|
$filesTake = $perPage;
|
||||||
$filesSkip = ((ceil($foldersCount / $perPage) * $perPage) - $foldersCount) + ($currentPage - (ceil($foldersCount / $perPage)) -1) * $perPage;
|
$filesSkip = ((ceil($foldersCount / $perPage) * $perPage) - $foldersCount) + ($currentPage - (ceil($foldersCount / $perPage)) - 1) * $perPage;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$foldersTake = $foldersCount;
|
$foldersTake = $foldersCount;
|
||||||
$filesTake = $filesCount;
|
$filesTake = $filesCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
return [$foldersTake, $foldersSkip, $filesTake, $filesSkip, $totalItemsCount];
|
return [$foldersTake, $foldersSkip, $filesTake, $filesSkip, $totalItemsCount];
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Tests\App\Users;
|
namespace Tests\App\Users;
|
||||||
|
|
||||||
use Storage;
|
use Storage;
|
||||||
|
|||||||
@@ -133,7 +133,7 @@ class AdminLanguageTranslatorTest extends TestCase
|
|||||||
->assertStatus(200)
|
->assertStatus(200)
|
||||||
->assertJsonFragment([
|
->assertJsonFragment([
|
||||||
'locale' => 'en',
|
'locale' => 'en',
|
||||||
'close' => 'Close',
|
'close' => 'Close',
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -180,7 +180,7 @@ class AdminLanguageTranslatorTest extends TestCase
|
|||||||
->getJson("/api/admin/languages/$language->id")
|
->getJson("/api/admin/languages/$language->id")
|
||||||
->assertStatus(200)
|
->assertStatus(200)
|
||||||
->assertJsonFragment([
|
->assertJsonFragment([
|
||||||
'close' => 'Close',
|
'close' => 'Close',
|
||||||
'locale' => 'en',
|
'locale' => 'en',
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,21 +61,21 @@ class SetupWizardTest extends TestCase
|
|||||||
Setting::all()->each->delete();
|
Setting::all()->each->delete();
|
||||||
|
|
||||||
$this->postJson('/api/setup/app-setup', [
|
$this->postJson('/api/setup/app-setup', [
|
||||||
'color' => '#00BC72',
|
'color' => '#00BC72',
|
||||||
'title' => 'VueFileManager',
|
'title' => 'VueFileManager',
|
||||||
'description' => 'The best file manager on the internet',
|
'description' => 'The best file manager on the internet',
|
||||||
'googleAnalytics' => 'UA-12345678-1',
|
'googleAnalytics' => 'UA-12345678-1',
|
||||||
'contactMail' => 'john@doe.com',
|
'contactMail' => 'john@doe.com',
|
||||||
'subscriptionType' => 'metered',
|
'subscriptionType' => 'metered',
|
||||||
'userVerification' => 1,
|
'userVerification' => 1,
|
||||||
'userRegistration' => 1,
|
'userRegistration' => 1,
|
||||||
'storageLimitation' => 1,
|
'storageLimitation' => 1,
|
||||||
'defaultStorage' => 10,
|
'defaultStorage' => 10,
|
||||||
'logo' => UploadedFile::fake()->image('fake-logo.jpg'),
|
'logo' => UploadedFile::fake()->image('fake-logo.jpg'),
|
||||||
'logo_dark' => UploadedFile::fake()->image('fake-logo-dark.jpg'),
|
'logo_dark' => UploadedFile::fake()->image('fake-logo-dark.jpg'),
|
||||||
'logo_horizontal' => UploadedFile::fake()->image('fake-logo-horizontal.jpg'),
|
'logo_horizontal' => UploadedFile::fake()->image('fake-logo-horizontal.jpg'),
|
||||||
'logo_horizontal_dark' => UploadedFile::fake()->image('fake-logo-horizontal-dark.jpg'),
|
'logo_horizontal_dark' => UploadedFile::fake()->image('fake-logo-horizontal-dark.jpg'),
|
||||||
'favicon' => UploadedFile::fake()->image('fake-favicon.jpg'),
|
'favicon' => UploadedFile::fake()->image('fake-favicon.jpg'),
|
||||||
])->assertStatus(204);
|
])->assertStatus(204);
|
||||||
|
|
||||||
$this
|
$this
|
||||||
|
|||||||
@@ -2,6 +2,10 @@
|
|||||||
namespace Tests\Support\Helpers;
|
namespace Tests\Support\Helpers;
|
||||||
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
use App\Users\Models\User;
|
||||||
|
use Domain\Files\Models\File;
|
||||||
|
use Domain\Folders\Models\Folder;
|
||||||
|
use Illuminate\Support\Facades\Config;
|
||||||
|
|
||||||
class HelperTest extends TestCase
|
class HelperTest extends TestCase
|
||||||
{
|
{
|
||||||
@@ -25,4 +29,57 @@ class HelperTest extends TestCase
|
|||||||
$this->assertEquals('Jane', $thirdTest['first_name']);
|
$this->assertEquals('Jane', $thirdTest['first_name']);
|
||||||
$this->assertEquals('', $thirdTest['last_name']);
|
$this->assertEquals('', $thirdTest['last_name']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @test
|
||||||
|
*/
|
||||||
|
public function it_test_get_records_count()
|
||||||
|
{
|
||||||
|
$user = User::factory()
|
||||||
|
->hasSettings()
|
||||||
|
->create();
|
||||||
|
|
||||||
|
Folder::factory()
|
||||||
|
->count(12)
|
||||||
|
->create([
|
||||||
|
'user_id' => $user->id,
|
||||||
|
'parent_id' => null,
|
||||||
|
]);
|
||||||
|
|
||||||
|
File::factory()
|
||||||
|
->count(13)
|
||||||
|
->create([
|
||||||
|
'user_id' => $user->id,
|
||||||
|
'parent_id' => null,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$folderQuery = [
|
||||||
|
'parent_id' => null,
|
||||||
|
'team_folder' => false,
|
||||||
|
'user_id' => $user->id,
|
||||||
|
'deleted_at' => null,
|
||||||
|
];
|
||||||
|
|
||||||
|
$fileQuery = [
|
||||||
|
'parent_id' => null,
|
||||||
|
'user_id' => $user->id,
|
||||||
|
'deleted_at' => null,
|
||||||
|
];
|
||||||
|
|
||||||
|
Config::set('vuefilemanager.paginate.perPage', 5);
|
||||||
|
|
||||||
|
// getRecordsCunt returned array [foldersTake, foldersSkip, filesTake, filesSkip, totalItemsCount]
|
||||||
|
|
||||||
|
// Get folders page
|
||||||
|
$this->assertEquals([5, 0, 0, 0, 25], getRecordsCount($folderQuery, $fileQuery, '1'));
|
||||||
|
|
||||||
|
// Get mixed page
|
||||||
|
$this->assertEquals([2, 10, 3, 0, 25], getRecordsCount($folderQuery, $fileQuery, '3'));
|
||||||
|
|
||||||
|
// Get files page
|
||||||
|
$this->assertEquals([0, 0, 5, 8, 25], getRecordsCount($folderQuery, $fileQuery, '5'));
|
||||||
|
|
||||||
|
// Get all pages
|
||||||
|
$this->assertEquals([12, 0, 13, 0, 25], getRecordsCount($folderQuery, $fileQuery, 'all'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user