User Authentication
- Login to user account
- Register new user account
- Reset user password

Functionality
- Added locations to menu
- Added trash for deleted folders & files
- Restore files or folders from trash
- Empty trash function
- Favourites folders
- List of 5 latest uploads
- Profile settings page
- Storage info and upload limits

Design
- Night Mode
- Navigation sidebar
- Quick action buttons in mobile version
- Improved mobile UX
- Other small design improvements

Settings
- Enable/Disable user account registration
- Set storage limitation
- Set storage capacity for all users
This commit is contained in:
MakingCG
2020-03-14 18:56:35 +01:00
parent 2deca027cd
commit 515e8ef5ef
42 changed files with 1107 additions and 996 deletions

View File

@@ -1,15 +0,0 @@
root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 4
trim_trailing_whitespace = true
[*.md]
trim_trailing_whitespace = false
[*.{yml,yaml}]
indent_size = 2

2
.idea/php.xml generated
View File

@@ -115,6 +115,8 @@
<path value="$PROJECT_DIR$/vendor/guzzlehttp/promises" />
<path value="$PROJECT_DIR$/vendor/facade/ignition-contracts" />
<path value="$PROJECT_DIR$/vendor/league/commonmark" />
<path value="$PROJECT_DIR$/vendor/php-http/message-factory" />
<path value="$PROJECT_DIR$/vendor/nyholm/psr7" />
</include_path>
</component>
<component name="PhpProjectSharedConfiguration" php_language_level="7.2" />

View File

@@ -19,6 +19,8 @@
<excludeFolder url="file://$MODULE_DIR$/vendor/league/commonmark" />
<excludeFolder url="file://$MODULE_DIR$/vendor/league/event" />
<excludeFolder url="file://$MODULE_DIR$/vendor/league/oauth2-server" />
<excludeFolder url="file://$MODULE_DIR$/vendor/nyholm/psr7" />
<excludeFolder url="file://$MODULE_DIR$/vendor/php-http/message-factory" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpseclib/phpseclib" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/http-factory" />
<excludeFolder url="file://$MODULE_DIR$/vendor/scrivo/highlight.php" />

797
.idea/workspace.xml generated
View File

@@ -2,39 +2,47 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="6ba7f65e-b845-4413-bbbb-cad4b4fb5f38" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Http/Controllers/AppFunctionsController.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/config/vuefilemanager.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gitignore" beforeDir="false" afterPath="$PROJECT_DIR$/.gitignore" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.editorconfig" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/php.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/php.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/vue-filemanager-laravel.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/vue-filemanager-laravel.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/PrivateCLoud/AuthController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Auth/AuthController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/PrivateCLoud/ConfirmPasswordController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Auth/ConfirmPasswordController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/PrivateCLoud/FileManagerController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/FileManagerController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/PrivateCLoud/ForgotPasswordController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Auth/ForgotPasswordController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/PrivateCLoud/LoginController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Auth/LoginController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/PrivateCLoud/RegisterController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Auth/RegisterController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/PrivateCLoud/ResetPasswordController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Auth/ResetPasswordController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/PrivateCLoud/UserAccountController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/UserAccountController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/PrivateCLoud/VerificationController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Auth/VerificationController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/PublicCloud/FileManagerController.php" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/helpers.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/helpers.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/FileManagerFile.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/FileManagerFile.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/FileManagerFolder.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/FileManagerFolder.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/FileManagerController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/FileManagerController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/composer.lock" beforeDir="false" afterPath="$PROJECT_DIR$/composer.lock" afterDir="false" />
<change beforePath="$PROJECT_DIR$/config/vuefilemanager.php" beforeDir="false" afterPath="$PROJECT_DIR$/config/vuefilemanager.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/public/css/app.css" beforeDir="false" afterPath="$PROJECT_DIR$/public/css/app.css" afterDir="false" />
<change beforePath="$PROJECT_DIR$/public/js/main.js" beforeDir="false" afterPath="$PROJECT_DIR$/public/js/main.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/public/mix-manifest.json" beforeDir="false" afterPath="$PROJECT_DIR$/public/mix-manifest.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/App.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/App.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManager.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManager.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Auth.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Auth.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/Alert.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/Alert.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Others/UserImageInput.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Others/UserImageInput.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/ContextMenu.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/ContextMenu.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/DesktopToolbar.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/DesktopToolbar.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/FileInfoPanel.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/FileInfoPanel.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/FileItemList.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/FileItemList.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/FilesContainer.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/FilesContainer.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/MobileActionButton.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/MobileActionButton.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/MobileActionButtonUpload.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/MobileActionButtonUpload.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/MobileOptionList.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/MobileOptionList.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/MobileToolbar.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/MobileToolbar.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/ToolbarButton.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/ToolbarButton.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/ToolbarButtonUpload.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/ToolbarButtonUpload.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Others/PageHeader.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Others/PageHeader.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Others/TextLabel.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Others/TextLabel.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Sidebar.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Sidebar.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Sidebar/StorageSize.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Sidebar/StorageSize.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Sidebar/UserHeadline.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Sidebar/UserHeadline.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/UserSettings.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/UserSettings.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/components/router.js" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/helpers.js" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/helpers.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/store/modules/filesView.js" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/store/modules/filesView.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/store/modules/userAuth.js" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/store/modules/userAuth.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/sass/app.scss" beforeDir="false" afterPath="$PROJECT_DIR$/resources/sass/app.scss" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/sass/vue-file-manager/_forms.scss" beforeDir="false" afterPath="$PROJECT_DIR$/resources/sass/vue-file-manager/_forms.scss" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/index.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/index.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/routes/api.php" beforeDir="false" afterPath="$PROJECT_DIR$/routes/api.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/routes/web.php" beforeDir="false" afterPath="$PROJECT_DIR$/routes/web.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/webpack.mix.js" beforeDir="false" afterPath="$PROJECT_DIR$/webpack.mix.js" afterDir="false" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
@@ -48,19 +56,30 @@
<executable />
</execution>
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Auth.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="201">
<caret line="516" column="13" selection-start-line="516" selection-start-column="13" selection-end-line="516" selection-end-column="13" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/resources/sass/vue-file-manager/_forms.scss">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="112">
<caret line="28" column="26" lean-forward="true" selection-start-line="28" selection-start-column="26" selection-end-line="28" selection-end-column="26" />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>VerifyCsrfToken</find>
<find>CreateFreshApiToken</find>
<find>j. M. Y, H:i</find>
<find>PersonalAccessTokens</find>
<find>cookieAu</find>
<find>CookieAuth</find>
<find>XSRF-TOKEN</find>
<find>@/assets/img/hero.svg</find>
<find>&lt;style lang=&quot;scss&quot;&gt;</find>
<find>&lt;style lang=&quot;scss&quot; scoped&gt;</find>
<find>$middlewareGroups</find>
<find>SET_AUTHORIZED</find>
<find>error.data</find>
<find>SET_START_DIREC</find>
@@ -80,20 +99,21 @@
<find>'bo</find>
<find>SET_CURRENT</find>
<find>logOut</find>
<find>255</find>
<find>_forms</find>
<find>limit</find>
<find>max_file_uploads</find>
<find>post_max_size</find>
<find>uploadFiles</find>
<find>whereIn</find>
<find>trash</find>
<find>you exceed your storage</find>
<find>deleted_files</find>
<find>trashed_files</find>
</findStrings>
</component>
<component name="FrameworkCommandLineHistory">
<commandsHistory>
<command text="php artisan serve --host=192.168.1.131" />
<command text="php artisan serve" />
<command text="php artisan serve --host=172.20.10.5" />
<command text="php artisan cache:clear" />
<command text="php artisan config:clear" />
<command text="npm install" />
<command text="npm update" />
<command text="php artisan serve" />
<command text="npm run hot" />
<command text="npm run prod" />
<command text="npm update" />
<command text="npm run prod" />
<command text="npm update" />
@@ -109,6 +129,16 @@
<command text="php artisan dump-autoload" />
<command text="composer dump-autoload" />
<command text="php artisan serve" />
<command text="composer update" />
<command text="npm run prod" />
<command text="npm run hot" />
<command text="php artisan serve" />
<command text="npm run hot" />
<command text="php artisan serve" />
<command text="npm run hot" />
<command text="npm run prod" />
<command text="npm run hot" />
<command text="npm run prod" />
</commandsHistory>
</component>
<component name="Git.Settings">
@@ -120,22 +150,7 @@
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/DesktopToolbar.vue" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/FileInfoPanel.vue" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/FileItemList.vue" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Sidebar/FileListItemThumbnail.vue" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Auth/AuthButton.vue" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/FileItemGrid.vue" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Auth/AuthContentWrapper.vue" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/EmptyMessage.vue" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/ButtonUpload.vue" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/ProgressBar.vue" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/ContextMenu.vue" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Others/ThemeLabel.vue" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Others/PageHeader.vue" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Others/TextLabel.vue" />
<option value="$PROJECT_DIR$/package.json" />
<option value="$PROJECT_DIR$/webpack.mix.js" />
<option value="$PROJECT_DIR$/app/Http/Middleware/Authenticate.php" />
<option value="$PROJECT_DIR$/resources/js/bootstrap.js" />
<option value="$PROJECT_DIR$/app/Http/Middleware/CookieAuth.php" />
@@ -143,7 +158,6 @@
<option value="$PROJECT_DIR$/app/Http/Middleware/EncryptCookies.php" />
<option value="$PROJECT_DIR$/app/Http/Controllers/PrivateCLoud/AuthController.php" />
<option value="$PROJECT_DIR$/resources/js/main.js" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView.vue" />
<option value="$PROJECT_DIR$/resources/js/store/modules/app.js" />
<option value="$PROJECT_DIR$/.gitignore" />
<option value="$PROJECT_DIR$/app/Http/Controllers/PrivateCLoud/FileManagerController.php" />
@@ -154,23 +168,39 @@
<option value="$PROJECT_DIR$/app/Http/Controllers/Auth/AuthController.php" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Sidebar/StorageSize.vue" />
<option value="$PROJECT_DIR$/app/Http/helpers.php" />
<option value="$PROJECT_DIR$/resources/views/index.blade.php" />
<option value="$PROJECT_DIR$/config/vuefilemanager.php" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Sidebar/UserHeadline.vue" />
<option value="$PROJECT_DIR$/app/Http/Controllers/FileManagerController.php" />
<option value="$PROJECT_DIR$/app/Http/Controllers/UserAccountController.php" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/Alert.vue" />
<option value="$PROJECT_DIR$/resources/js/helpers.js" />
<option value="$PROJECT_DIR$/resources/js/store/modules/filesView.js" />
<option value="$PROJECT_DIR$/routes/web.php" />
<option value="$PROJECT_DIR$/resources/js/store/modules/userAuth.js" />
<option value="$PROJECT_DIR$/resources/js/App.vue" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManager.vue" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Auth.vue" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Sidebar.vue" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/UserSettings.vue" />
<option value="$PROJECT_DIR$/routes/api.php" />
<option value="$PROJECT_DIR$/.env" />
<option value="$USER_HOME$/Desktop/vue-file-manager-file-manager-127.0.0.111-03-2020" />
<option value="&lt;d768a9d2-ae0a-4b11-a436-c632a530c3ce&gt;/var/www/devvuefilemanagerlaravel.hi5ve.digital/.env" />
<option value="&lt;d768a9d2-ae0a-4b11-a436-c632a530c3ce&gt;/etc/apache2/sites-available/devvuefilemanager.hi5ve.digital.conf" />
<option value="&lt;d768a9d2-ae0a-4b11-a436-c632a530c3ce&gt;/var/www/devvuefilemanager.hi5ve.digital/.env" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/UserSettings.vue" />
<option value="$PROJECT_DIR$/app/FileManagerFile.php" />
<option value="$PROJECT_DIR$/routes/api.php" />
<option value="&lt;d768a9d2-ae0a-4b11-a436-c632a530c3ce&gt;/var/www/devvuefilemanager.hi5ve.digital/config/vuefilemanager.php" />
<option value="&lt;d768a9d2-ae0a-4b11-a436-c632a530c3ce&gt;/var/www/devvuefilemanager.hi5ve.digital/public/info.php" />
<option value="&lt;d768a9d2-ae0a-4b11-a436-c632a530c3ce&gt;/etc/php/7.3/apache2/php.ini" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Sidebar.vue" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/Alert.vue" />
<option value="$PROJECT_DIR$/app/Http/Controllers/FileManagerController.php" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/FileItemList.vue" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/ToolbarButtonUpload.vue" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Others/TextLabel.vue" />
<option value="$PROJECT_DIR$/resources/js/helpers.js" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView.vue" />
<option value="$PROJECT_DIR$/webpack.mix.js" />
<option value="$PROJECT_DIR$/public/mix-manifest.json" />
<option value="$PROJECT_DIR$/resources/views/index.blade.php" />
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Auth.vue" />
<option value="$PROJECT_DIR$/resources/js/store/modules/filesView.js" />
<option value="$PROJECT_DIR$/app/FileManagerFolder.php" />
<option value="$PROJECT_DIR$/config/vuefilemanager.php" />
<option value="$PROJECT_DIR$/resources/sass/vue-file-manager/_forms.scss" />
</list>
</option>
</component>
@@ -289,6 +319,8 @@
<path value="$PROJECT_DIR$/vendor/guzzlehttp/promises" />
<path value="$PROJECT_DIR$/vendor/facade/ignition-contracts" />
<path value="$PROJECT_DIR$/vendor/league/commonmark" />
<path value="$PROJECT_DIR$/vendor/php-http/message-factory" />
<path value="$PROJECT_DIR$/vendor/nyholm/psr7" />
</include_path>
</component>
<component name="ProjectFrameBounds" fullScreen="true">
@@ -303,31 +335,46 @@
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="ProjectPane">
<subPane>
<expand>
<path>
<item name="vue-filemanager-laravel-v1.1" type="b2602c69:ProjectViewProjectNode" />
<item name="vue-filemanager-laravel-v1.1" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
<pane id="Scope" />
<pane id="ProjectPane" />
</panes>
</component>
<component name="PropertiesComponent">
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="WebServerToolWindowFactoryState" value="true" />
<property name="WebServerToolWindowPanel.toolwindow.highlight.mappings" value="true" />
<property name="WebServerToolWindowPanel.toolwindow.highlight.symlinks" value="true" />
<property name="WebServerToolWindowPanel.toolwindow.show.date" value="false" />
<property name="WebServerToolWindowPanel.toolwindow.show.permissions" value="false" />
<property name="WebServerToolWindowPanel.toolwindow.show.size" value="false" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/resources/sass" />
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
<property name="nodejs_package_manager_path" value="npm" />
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/resources/sass" />
<recent name="$PROJECT_DIR$/public/assets/images" />
<recent name="$PROJECT_DIR$/resources/js" />
<recent name="$PROJECT_DIR$/app/Http/Controllers/PublicCloud" />
<recent name="$PROJECT_DIR$/app" />
</key>
<key name="MoveFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/app/Http/Controllers" />
<recent name="$PROJECT_DIR$/resources/sass/vue-file-manager" />
<recent name="$PROJECT_DIR$/app/Http/Controllers/PrivateCLoud" />
</key>
<key name="CopyFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/resources/sass" />
<recent name="$PROJECT_DIR$/resources/js" />
<recent name="$PROJECT_DIR$/public/assets/images" />
<recent name="$PROJECT_DIR$/app/Http/Controllers/PublicCloud" />
<recent name="$PROJECT_DIR$/app" />
</key>
</component>
<component name="RunDashboard">
<option name="ruleStates">
@@ -359,17 +406,20 @@
<updated>1582538406416</updated>
<workItem from="1582538408226" duration="28590000" />
<workItem from="1583169038847" duration="49277000" />
<workItem from="1583771973016" duration="35891000" />
<workItem from="1583771973016" duration="47540000" />
<workItem from="1584014365621" duration="499000" />
<workItem from="1584201902438" duration="1297000" />
<workItem from="1584205890781" duration="1931000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="113758000" />
<option name="totallyTimeSpent" value="129134000" />
</component>
<component name="ToolWindowManager">
<frame x="0" y="0" width="1680" height="1050" extended-state="0" />
<layout>
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.18154761" />
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.15654762" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="npm" order="2" side_tool="true" />
<window_info id="Favorites" order="3" side_tool="true" />
@@ -386,271 +436,104 @@
<window_info active="true" anchor="bottom" id="Command Line Tools Console" order="10" visible="true" weight="0.36761904" />
<window_info anchor="bottom" id="Terminal" order="11" weight="0.3295238" />
<window_info anchor="bottom" id="Event Log" order="12" side_tool="true" />
<window_info anchor="bottom" id="File Transfer" order="13" weight="0.3295238" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
<window_info anchor="right" id="Database" order="3" />
<window_info anchor="right" id="Remote Host" order="4" weight="0.23869048" />
</layout>
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/vendor/laravel/passport/src/Http/Middleware/CheckClientCredentialsForAnyScope.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-326">
<caret line="7" column="6" selection-start-line="7" selection-start-column="6" selection-end-line="7" selection-end-column="6" />
</state>
</provider>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-RlTVKdTenHVQeDuC-8f8b71f93d874c58899eae34ff855b91.jpg.1280x0_q85.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/vendor/laravel/passport/src/Http/Middleware/CheckClientCredentials.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="168">
<caret line="7" column="6" selection-start-line="7" selection-start-column="6" selection-end-line="7" selection-end-column="6" />
</state>
</provider>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-qu7zENEPpyXacK9u-8acb7489e4354e9fa12b786f4f1014b3.jpg.1280x0_q85.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Middleware/Authenticate.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="476">
<caret line="17" column="25" selection-start-line="17" selection-start-column="25" selection-end-line="17" selection-end-column="25" />
</state>
</provider>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-PwOYrH3X4Q5MFNnJ-b828ce5c1d014deab79c6b1ac8dd5500.jpg.1280x0_q85.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/bootstrap.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="280">
<caret line="10" column="76" selection-start-line="10" selection-start-column="76" selection-end-line="10" selection-end-column="76" />
</state>
</provider>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-PeK8nBe7vKFR2DXN-8480033d08b555735bcc1df441eeec0f.png">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithInput.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="412">
<caret line="323" column="26" selection-start-line="323" selection-start-column="20" selection-end-line="323" selection-end-column="26" />
</state>
</provider>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-Ogjq9EIILgeojKDb-nf88xyvvCWOJHY93-kitchen-island.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/vendor/laravel/framework/src/Illuminate/Http/Request.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1822">
<caret line="19" column="6" selection-start-line="19" selection-start-column="6" selection-end-line="19" selection-end-column="6" />
</state>
</provider>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-NfLjyaaboBPCGi3X-7bec4e11b047456780d83011701a662c.jpg.1280x0_q85.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/vendor/laravel/framework/src/Illuminate/Support/Facades/Cookie.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-158">
<caret line="11" column="6" selection-start-line="11" selection-start-column="6" selection-end-line="11" selection-end-column="6" />
</state>
</provider>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-md1FYpic11mXzsMH-59352395_2290695347810363_751927439731487941_n.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Middleware/EncryptCookies.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="392">
<caret line="14" column="14" selection-start-line="14" selection-start-column="14" selection-end-line="14" selection-end-column="14" />
</state>
</provider>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-lnh7N5vgH74DhOOh-57bad2c20c758f20b83b2344212a2a93.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Kernel.php">
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-ddGQjKsXe6smj3Jx-7bec4e11b047456780d83011701a662c.jpg.1280x0_q85.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-eIXPHBrXEjqxydte-d5410c8079e3a3970303779305d11048.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-Fg3cXWFgEn6Cmt5M-6f5362be8aca06dc4ea234865ac49736.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-fNx1iGh1lpGyS66P-af0c68fb4d3b82da011ca4b0c18c8a65.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-Gv6TX9lZl8TZ5kCK-8f8b71f93d874c58899eae34ff855b91.jpg.1280x0_q85.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-HlK34TY0sfw4lDk3-nf88xyvvCWOJHY93-kitchen-island.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-i2BdCpXqXyMcS5oB-ea7afab3993a45c3a88ee7eb9ce42a8e.jpg.1280x0_q85.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-IseiNdZqCg7dQRD0-ItWorksOnMyMachine.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-Jaupegd57IHxsSGE-57bad2c20c758f20b83b2344212a2a93.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/storage/app/file-manager/thumbnail-JVdvcCD7WcFNG6MF-ViewOfElephantinWater.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Sidebar.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="320">
<caret line="32" column="39" lean-forward="true" selection-start-line="32" selection-start-column="39" selection-end-line="32" selection-end-column="39" />
<state relative-caret-position="363">
<caret line="194" column="9" selection-start-line="194" selection-start-column="9" selection-end-line="194" selection-end-column="9" />
<folding>
<element signature="e#28#63#0#PHP" expanded="true" />
<element signature="n#div#0;n#div#0;n#transition#0;n#template#0;n#!!top" />
<element signature="e#3246#3349#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Middleware/CookieAuth.php">
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/Alert.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="560">
<caret line="20" column="44" lean-forward="true" selection-start-line="20" selection-start-column="44" selection-end-line="20" selection-end-column="44" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/main.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="682">
<caret line="66" column="15" lean-forward="true" selection-start-line="66" selection-start-column="15" selection-end-line="66" selection-end-column="15" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/FileManagerFile.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="337">
<caret line="13" column="6" selection-start-line="13" selection-start-column="6" selection-end-line="13" selection-end-column="6" />
<folding>
<element signature="e#23#44#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/.gitignore">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="168">
<caret line="6" column="5" selection-start-line="6" selection-start-column="5" selection-end-line="6" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/Auth/VerificationController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="224">
<caret line="10" column="6" lean-forward="true" selection-start-line="10" selection-start-column="6" selection-end-line="10" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/Auth/ForgotPasswordController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="168">
<caret line="15" column="6" selection-start-line="15" selection-start-column="6" selection-end-line="15" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/Auth/LoginController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="168">
<caret line="8" column="6" selection-start-line="8" selection-start-column="6" selection-end-line="8" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/Auth/RegisterController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="168">
<caret line="11" column="6" selection-start-line="11" selection-start-column="6" selection-end-line="11" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/Controller.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="168">
<caret line="9" column="6" selection-start-line="9" selection-start-column="6" selection-end-line="9" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/Auth/ConfirmPasswordController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="168">
<caret line="8" column="6" selection-start-line="8" selection-start-column="6" selection-end-line="8" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/laravel/framework/src/Illuminate/Http/Response.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-59">
<caret line="12" column="6" selection-start-line="12" selection-start-column="6" selection-end-line="12" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Others/UserImageInput.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="219">
<caret line="13" column="22" selection-start-line="13" selection-start-column="22" selection-end-line="13" selection-end-column="22" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/sass/app.scss">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="196">
<caret line="7" lean-forward="true" selection-start-line="7" selection-end-line="7" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config/app.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-263">
<caret selection-end-line="1" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config/auth.php">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/Auth/AuthController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="442">
<caret line="99" column="37" selection-start-line="99" selection-start-column="37" selection-end-line="99" selection-end-column="37" />
<folding>
<element signature="e#45#67#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Sidebar/StorageSize.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="542">
<caret line="61" column="29" selection-start-line="61" selection-start-column="29" selection-end-line="61" selection-end-column="29" />
<folding>
<element signature="e#893#1351#0" />
</folding>
<state relative-caret-position="713">
<caret line="89" column="17" selection-start-line="89" selection-start-column="17" selection-end-line="89" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/helpers.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="622">
<caret line="106" selection-start-line="106" selection-end-line="106" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/User.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="299">
<caret line="58" column="40" selection-start-line="58" selection-start-column="40" selection-end-line="58" selection-end-column="40" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Sidebar/UserHeadline.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="659">
<caret line="105" column="25" selection-start-line="105" selection-start-column="25" selection-end-line="105" selection-end-column="25" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config/vuefilemanager.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="308">
<caret line="11" column="35" lean-forward="true" selection-start-line="11" selection-start-column="35" selection-end-line="11" selection-end-column="35" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/AppFunctionsController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-186">
<caret line="8" column="6" selection-start-line="8" selection-start-column="6" selection-end-line="8" selection-end-column="6" />
<state relative-caret-position="330">
<caret line="116" column="22" selection-start-line="116" selection-start-column="9" selection-end-line="116" selection-end-column="22" />
<folding>
<element signature="e#40#68#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/store/modules/filesView.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="899">
<caret line="257" column="25" selection-start-line="257" selection-start-column="25" selection-end-line="257" selection-end-column="25" />
<folding>
<element signature="e#0#25#0" expanded="true" />
<element signature="e#594#2318#0" />
<element signature="e#2361#3587#0" />
<element signature="e#3618#4576#0" />
<element signature="e#4621#5347#0" />
<element signature="e#5393#5967#0" />
<element signature="e#6004#6916#0" />
<element signature="e#9122#9730#0" />
<element signature="e#9773#10524#0" />
<element signature="e#10580#11078#0" />
<element signature="e#11137#11461#0" />
<element signature="e#11509#12045#0" />
<element signature="e#12090#12150#0" />
<element signature="e#12201#12944#0" />
<element signature="n#store_avatar#0;n#!!top" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/helpers.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="420">
<caret line="98" column="41" selection-start-line="98" selection-start-column="41" selection-end-line="98" selection-end-column="41" />
<state relative-caret-position="320">
<caret line="148" column="38" selection-start-line="148" selection-start-column="22" selection-end-line="148" selection-end-column="38" />
<folding>
<element signature="e#0#33#0" expanded="true" />
<element signature="e#201#287#0" />
@@ -659,147 +542,33 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/UserAccountController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="462">
<caret line="95" selection-start-line="95" selection-end-line="95" />
<folding>
<element signature="e#40#53#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/FileManagerController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="550">
<caret line="349" column="13" selection-start-line="349" selection-start-column="13" selection-end-line="349" selection-end-column="13" />
<folding>
<element signature="e#40#67#0#PHP" expanded="true" />
<element signature="e#4913#5953#0#PHP" />
<element signature="e#6058#8399#0#PHP" />
<element signature="e#8539#9019#0#PHP" />
<element signature="e#10117#11122#0#PHP" />
<element signature="e#11223#13508#0#PHP" />
<element signature="e#13585#14637#0#PHP" />
<element signature="e#14735#14952#0#PHP" />
<element signature="e#15042#15927#0#PHP" />
<element signature="e#15996#16531#0#PHP" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/Auth/ResetPasswordController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-443">
<caret line="10" column="6" selection-start-line="10" selection-start-column="6" selection-end-line="10" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/ContextMenu.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="252">
<caret line="9" column="72" selection-start-line="9" selection-start-column="61" selection-end-line="9" selection-end-column="72" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/routes/web.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="112">
<caret line="4" column="12" lean-forward="true" selection-start-line="4" selection-start-column="12" selection-end-line="4" selection-end-column="12" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/store/modules/app.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="392">
<caret line="15" column="20" selection-start-line="15" selection-start-column="4" selection-end-line="15" selection-end-column="20" />
<folding>
<element signature="e#0#25#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/store/modules/userAuth.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="281">
<caret line="26" column="25" selection-start-line="26" selection-start-column="25" selection-end-line="26" selection-end-column="25" />
<folding>
<element signature="e#0#25#0" expanded="true" />
<element signature="e#195#532#0" />
<element signature="e#837#1390#0" />
<element signature="e#1449#2007#0" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/laravel/framework/src/Illuminate/Support/Facades/Auth.php">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Auth.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="10248">
<caret line="540" selection-start-line="540" selection-end-line="540" />
<folding>
<element signature="n#AuthContent#0;n#AuthContentWrapper#0;n#template#0;n#!!top" />
<element signature="n#AuthContent#1;n#AuthContentWrapper#0;n#template#0;n#!!top" />
<element signature="n#AuthContent#2;n#AuthContentWrapper#0;n#template#0;n#!!top" />
<element signature="n#AuthContent#3;n#AuthContentWrapper#0;n#template#0;n#!!top" />
<element signature="n#AuthContent#4;n#AuthContentWrapper#0;n#template#0;n#!!top" />
<element signature="n#AuthContent#5;n#AuthContentWrapper#0;n#template#0;n#!!top" />
<element signature="n#AuthContent#6;n#AuthContentWrapper#0;n#template#0;n#!!top" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/index.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="588">
<caret line="21" column="91" selection-start-line="21" selection-start-column="91" selection-end-line="21" selection-end-column="91" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/Alert.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="756">
<caret line="27" column="7" selection-start-line="27" selection-start-column="7" selection-end-line="27" selection-end-column="7" />
<folding>
<element signature="n#script#0;n#!!top" />
<element signature="e#1099#1182#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Sidebar.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="560">
<caret line="73" column="11" lean-forward="true" selection-start-line="73" selection-start-column="11" selection-end-line="73" selection-end-column="11" />
<folding>
<element signature="n#div#0;n#div#0;n#transition#0;n#template#0;n#!!top" />
<element signature="e#3246#3349#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/UserSettings.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1017">
<caret line="167" selection-start-line="167" selection-end-line="167" />
<folding>
<element signature="e#3504#3594#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView.vue">
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/ToolbarButtonUpload.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="280">
<caret line="10" column="11" lean-forward="true" selection-start-line="10" selection-start-column="11" selection-end-line="10" selection-end-column="11" />
<folding>
<element signature="e#314#409#0" expanded="true" />
</folding>
<caret line="10" column="60" selection-start-line="10" selection-start-column="60" selection-end-line="10" selection-end-column="60" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/FileItemList.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="448">
<caret line="47" column="77" selection-start-line="47" selection-start-column="59" selection-end-line="47" selection-end-column="77" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Others/TextLabel.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="672">
<caret line="24" selection-start-line="21" selection-start-column="27" selection-end-line="24" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/.editorconfig">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/.env">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManager.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="560">
@@ -810,6 +579,29 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="187">
<caret line="57" column="40" selection-start-line="57" selection-start-column="40" selection-end-line="57" selection-end-column="40" />
<folding>
<element signature="e#314#409#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/public/mix-manifest.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="56">
<caret line="2" column="35" selection-start-line="2" selection-start-column="35" selection-end-line="2" selection-end-column="35" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/components/DemoPageComponents/MobileMenu.vue">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/main.js">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/App.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="56">
@@ -820,17 +612,126 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/routes/api.php">
<entry file="file://$PROJECT_DIR$/webpack.mix.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-267">
<caret line="22" selection-start-line="22" selection-end-line="22" />
<state relative-caret-position="476">
<caret line="17" column="14" lean-forward="true" selection-start-line="17" selection-start-column="14" selection-end-line="17" selection-end-column="14" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/.env">
<entry file="file://$PROJECT_DIR$/.styleci.yml">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/config/auth.php">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/store/modules/filesView.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="285">
<caret line="30" column="24" lean-forward="true" selection-start-line="30" selection-start-column="24" selection-end-line="30" selection-end-column="24" />
<state relative-caret-position="594">
<caret line="185" column="48" selection-start-line="185" selection-start-column="12" selection-end-line="185" selection-end-column="48" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/store/modules/userAuth.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2734">
<caret line="101" column="4" selection-start-line="101" selection-start-column="4" selection-end-line="101" selection-end-column="4" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/ContextMenu.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="442">
<caret line="50" column="51" selection-start-line="50" selection-start-column="51" selection-end-line="50" selection-end-column="51" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/AppFunctionsController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-186">
<caret line="8" column="6" selection-start-line="8" selection-start-column="6" selection-end-line="8" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/FileManagerFolder.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="3342">
<caret line="120" column="5" selection-start-line="120" selection-start-column="5" selection-end-line="120" selection-end-column="5" />
<folding>
<element signature="e#23#41#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/FileManagerFile.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1682">
<caret line="13" column="6" selection-start-line="13" selection-start-column="6" selection-end-line="13" selection-end-column="6" />
<folding>
<element signature="e#23#44#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/Auth/AuthController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-2678">
<caret line="19" column="6" selection-start-line="19" selection-start-column="6" selection-end-line="19" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/UserAccountController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-3070">
<caret line="14" column="6" selection-start-line="14" selection-start-column="6" selection-end-line="14" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/FileManagerController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-11946">
<caret line="164" column="49" lean-forward="true" selection-start-line="164" selection-start-column="49" selection-end-line="164" selection-end-column="49" />
<folding>
<element signature="e#40#67#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/index.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="326">
<caret line="26" column="46" selection-start-line="26" selection-start-column="46" selection-end-line="26" selection-end-column="46" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config/vuefilemanager.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="308">
<caret line="11" column="35" selection-start-line="11" selection-start-column="35" selection-end-line="11" selection-end-column="35" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/routes/web.php">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/routes/api.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-40">
<caret line="45" column="37" selection-start-line="45" selection-start-column="37" selection-end-line="45" selection-end-column="37" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Auth.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="201">
<caret line="516" column="13" selection-start-line="516" selection-start-column="13" selection-end-line="516" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/sass/vue-file-manager/_forms.scss">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="112">
<caret line="28" column="26" lean-forward="true" selection-start-line="28" selection-start-column="26" selection-end-line="28" selection-end-column="26" />
</state>
</provider>
</entry>

View File

@@ -65,7 +65,7 @@ class FileManagerFile extends Model
*/
public function getThumbnailAttribute()
{
return $this->attributes['thumbnail'] ? route('file', ['name' => $this->attributes['thumbnail']]) : null;
return $this->attributes['thumbnail'] ? route('thumbnail', ['name' => $this->attributes['thumbnail']]) : null;
}
/**

View File

@@ -4,6 +4,7 @@ namespace App;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Arr;
use Illuminate\Support\Str;
use Laravel\Scout\Searchable;
use RecursiveArrayIterator;
@@ -120,7 +121,7 @@ class FileManagerFolder extends Model
}
/**
* Get all files
* Get all trashed files
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
@@ -140,9 +141,14 @@ class FileManagerFolder extends Model
return $this->children()->with('folders');
}
/**
* Get all trashed folders
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function trashed_folders()
{
return $this->children()->with('folders')->withTrashed()->select(['parent_id', 'unique_id']);
return $this->children()->with('trashed_folders')->withTrashed()->select(['parent_id', 'unique_id', 'name']);
}
/**
@@ -155,6 +161,16 @@ class FileManagerFolder extends Model
return $this->hasMany('App\FileManagerFolder', 'parent_id', 'unique_id');
}
/**
* Get trashed childrens
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function trashed_children()
{
return $this->hasMany('App\FileManagerFolder', 'parent_id', 'unique_id')->withTrashed();
}
// Delete all folder childrens
public static function boot()
{
@@ -169,9 +185,15 @@ class FileManagerFolder extends Model
static::restoring(function ($item) {
$item->children()->each(function($folder) {
// Restore children folders
$item->trashed_children()->each(function($folder) {
$folder->restore();
});
// Restore children files
$item->trashed_files()->each(function($files) {
$files->restore();
});
});
}
}

View File

@@ -334,14 +334,20 @@ class FileManagerController extends Controller
if ($request->type === 'folder') {
// Get folder
$item = FileManagerFolder::withTrashed()->where('user_id', $user_id)->where('unique_id', $request->unique_id)->first();
$item = FileManagerFolder::onlyTrashed()->where('user_id', $user_id)->where('unique_id', $request->unique_id)->first();
// Restore item to home directory
if ($request->has('to_home') && $request->to_home) {
$item->parent_id = 0;
$item->save();
}
}
// Get file
if ($request->type === 'file' || $request->type === 'image') {
// Get item
$item = FileManagerFile::withTrashed()->where('user_id', $user_id)->where('unique_id', $request->unique_id)->first();
$item = FileManagerFile::onlyTrashed()->where('user_id', $user_id)->where('unique_id', $request->unique_id)->first();
// Restore item to home directory
if ($request->has('to_home') && $request->to_home) {
@@ -534,9 +540,9 @@ class FileManagerController extends Controller
$user_id = Auth::id();
// Get file record
$file = FileManagerFile::withTrashed()->where('user_id', $user_id)
$file = FileManagerFile::withTrashed()
->where('user_id', $user_id)
->where('basename', $filename)
->orWhere('thumbnail', $filename)
->firstOrFail();
// Get file path
@@ -558,6 +564,39 @@ class FileManagerController extends Controller
return $response;
}
/**
* Get image thumbnail
*
* @param $filename
* @return mixed
*/
public function get_thumbnail($filename)
{
// Get user id
$user_id = Auth::id();
// Get file record
$file = FileManagerFile::withTrashed()
->where('user_id', $user_id)
->where('thumbnail', $filename)
->firstOrFail();
// Get file path
$path = storage_path() . '/app/file-manager/' . $file->getOriginal('thumbnail');
// Check if file exist
if (!File::exists($path)) abort(404);
$file = File::get($path);
$type = File::mimeType($path);
// Create response
$response = Response::make($file, 200);
$response->header("Content-Type", $type);
return $response;
}
/**
* Get unique id
*

217
composer.lock generated
View File

@@ -1143,16 +1143,16 @@
},
{
"name": "laravel/framework",
"version": "v6.17.1",
"version": "v6.18.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
"reference": "32d1ed55dd46dcd706ff2e45bb7965be7320b87d"
"reference": "367c2c8dfdfe83cb2ddbc029c0222174098d093a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/32d1ed55dd46dcd706ff2e45bb7965be7320b87d",
"reference": "32d1ed55dd46dcd706ff2e45bb7965be7320b87d",
"url": "https://api.github.com/repos/laravel/framework/zipball/367c2c8dfdfe83cb2ddbc029c0222174098d093a",
"reference": "367c2c8dfdfe83cb2ddbc029c0222174098d093a",
"shasum": ""
},
"require": {
@@ -1285,20 +1285,20 @@
"framework",
"laravel"
],
"time": "2020-02-26T14:23:01+00:00"
"time": "2020-03-10T14:11:04+00:00"
},
{
"name": "laravel/passport",
"version": "v8.4.0",
"version": "v8.4.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/passport.git",
"reference": "c1be259ff85109416e9e81c80fa4d3d611d6398a"
"reference": "4088cdf174d25ccf3fb79d234b94b2a90785fa69"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/passport/zipball/c1be259ff85109416e9e81c80fa4d3d611d6398a",
"reference": "c1be259ff85109416e9e81c80fa4d3d611d6398a",
"url": "https://api.github.com/repos/laravel/passport/zipball/4088cdf174d25ccf3fb79d234b94b2a90785fa69",
"reference": "4088cdf174d25ccf3fb79d234b94b2a90785fa69",
"shasum": ""
},
"require": {
@@ -1316,9 +1316,10 @@
"illuminate/support": "^6.0|^7.0",
"laminas/laminas-diactoros": "^2.2",
"league/oauth2-server": "^8.0",
"nyholm/psr7": "^1.0",
"php": "^7.2",
"phpseclib/phpseclib": "^2.0",
"symfony/psr-http-message-bridge": "^1.0"
"symfony/psr-http-message-bridge": "^2.0"
},
"require-dev": {
"mockery/mockery": "^1.0",
@@ -1357,7 +1358,7 @@
"oauth",
"passport"
],
"time": "2020-02-12T14:34:02+00:00"
"time": "2020-03-04T13:55:07+00:00"
},
{
"name": "laravel/scout",
@@ -1669,16 +1670,16 @@
},
{
"name": "league/flysystem",
"version": "1.0.64",
"version": "1.0.65",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem.git",
"reference": "d13c43dbd4b791f815215959105a008515d1a2e0"
"reference": "8f17b3ba67097aafb8318cd5c553b1acf7c891c8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/d13c43dbd4b791f815215959105a008515d1a2e0",
"reference": "d13c43dbd4b791f815215959105a008515d1a2e0",
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/8f17b3ba67097aafb8318cd5c553b1acf7c891c8",
"reference": "8f17b3ba67097aafb8318cd5c553b1acf7c891c8",
"shasum": ""
},
"require": {
@@ -1749,7 +1750,7 @@
"sftp",
"storage"
],
"time": "2020-02-05T18:14:17+00:00"
"time": "2020-03-08T18:53:20+00:00"
},
{
"name": "league/oauth2-server",
@@ -1911,16 +1912,16 @@
},
{
"name": "nesbot/carbon",
"version": "2.30.0",
"version": "2.31.0",
"source": {
"type": "git",
"url": "https://github.com/briannesbitt/Carbon.git",
"reference": "912dff66d2690ca66abddb9b291a1df5f371d3b4"
"reference": "bbc0ab53f41a4c6f223c18efcdbd9bc725eb5d2d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/912dff66d2690ca66abddb9b291a1df5f371d3b4",
"reference": "912dff66d2690ca66abddb9b291a1df5f371d3b4",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/bbc0ab53f41a4c6f223c18efcdbd9bc725eb5d2d",
"reference": "bbc0ab53f41a4c6f223c18efcdbd9bc725eb5d2d",
"shasum": ""
},
"require": {
@@ -1977,7 +1978,7 @@
"datetime",
"time"
],
"time": "2020-02-07T15:25:46+00:00"
"time": "2020-03-01T11:11:58+00:00"
},
{
"name": "nikic/php-parser",
@@ -2031,6 +2032,68 @@
],
"time": "2019-11-08T13:50:10+00:00"
},
{
"name": "nyholm/psr7",
"version": "1.2.1",
"source": {
"type": "git",
"url": "https://github.com/Nyholm/psr7.git",
"reference": "55ff6b76573f5b242554c9775792bd59fb52e11c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Nyholm/psr7/zipball/55ff6b76573f5b242554c9775792bd59fb52e11c",
"reference": "55ff6b76573f5b242554c9775792bd59fb52e11c",
"shasum": ""
},
"require": {
"php": "^7.1",
"php-http/message-factory": "^1.0",
"psr/http-factory": "^1.0",
"psr/http-message": "^1.0"
},
"provide": {
"psr/http-factory-implementation": "1.0",
"psr/http-message-implementation": "1.0"
},
"require-dev": {
"http-interop/http-factory-tests": "dev-master",
"php-http/psr7-integration-tests": "dev-master",
"phpunit/phpunit": "^7.5"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0-dev"
}
},
"autoload": {
"psr-4": {
"Nyholm\\Psr7\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Tobias Nyholm",
"email": "tobias.nyholm@gmail.com"
},
{
"name": "Martijn van der Ven",
"email": "martijn@vanderven.se"
}
],
"description": "A fast PHP7 implementation of PSR-7",
"homepage": "http://tnyholm.se",
"keywords": [
"psr-17",
"psr-7"
],
"time": "2019-09-05T13:24:16+00:00"
},
{
"name": "opis/closure",
"version": "3.5.1",
@@ -2137,6 +2200,56 @@
],
"time": "2018-07-02T15:55:56+00:00"
},
{
"name": "php-http/message-factory",
"version": "v1.0.2",
"source": {
"type": "git",
"url": "https://github.com/php-http/message-factory.git",
"reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-http/message-factory/zipball/a478cb11f66a6ac48d8954216cfed9aa06a501a1",
"reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1",
"shasum": ""
},
"require": {
"php": ">=5.4",
"psr/http-message": "^1.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0-dev"
}
},
"autoload": {
"psr-4": {
"Http\\Message\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Márk Sági-Kazár",
"email": "mark.sagikazar@gmail.com"
}
],
"description": "Factory interfaces for PSR-7 HTTP Message",
"homepage": "http://php-http.org",
"keywords": [
"factory",
"http",
"message",
"stream",
"uri"
],
"time": "2015-12-19T14:08:53+00:00"
},
{
"name": "phpoption/phpoption",
"version": "1.7.2",
@@ -3820,16 +3933,16 @@
},
{
"name": "symfony/psr-http-message-bridge",
"version": "v1.3.0",
"version": "v2.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/psr-http-message-bridge.git",
"reference": "9d3e80d54d9ae747ad573cad796e8e247df7b796"
"reference": "ce709cd9c90872c08c2427b45739d5f3c781ab4f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/9d3e80d54d9ae747ad573cad796e8e247df7b796",
"reference": "9d3e80d54d9ae747ad573cad796e8e247df7b796",
"url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/ce709cd9c90872c08c2427b45739d5f3c781ab4f",
"reference": "ce709cd9c90872c08c2427b45739d5f3c781ab4f",
"shasum": ""
},
"require": {
@@ -3839,8 +3952,7 @@
},
"require-dev": {
"nyholm/psr7": "^1.1",
"symfony/phpunit-bridge": "^4.4 || ^5.0",
"zendframework/zend-diactoros": "^1.4.1 || ^2.0"
"symfony/phpunit-bridge": "^4.4 || ^5.0"
},
"suggest": {
"nyholm/psr7": "For a super lightweight PSR-7/17 implementation"
@@ -3848,7 +3960,7 @@
"type": "symfony-bridge",
"extra": {
"branch-alias": {
"dev-master": "1.3-dev"
"dev-master": "2.0-dev"
}
},
"autoload": {
@@ -3881,7 +3993,7 @@
"psr-17",
"psr-7"
],
"time": "2019-11-25T19:33:50+00:00"
"time": "2020-01-02T08:07:11+00:00"
},
{
"name": "symfony/routing",
@@ -4515,23 +4627,23 @@
},
{
"name": "facade/flare-client-php",
"version": "1.3.1",
"version": "1.3.2",
"source": {
"type": "git",
"url": "https://github.com/facade/flare-client-php.git",
"reference": "24444ea0e1556f0a4b5fc8e61802caf72ae9a408"
"reference": "db1e03426e7f9472c9ecd1092aff00f56aa6c004"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/facade/flare-client-php/zipball/24444ea0e1556f0a4b5fc8e61802caf72ae9a408",
"reference": "24444ea0e1556f0a4b5fc8e61802caf72ae9a408",
"url": "https://api.github.com/repos/facade/flare-client-php/zipball/db1e03426e7f9472c9ecd1092aff00f56aa6c004",
"reference": "db1e03426e7f9472c9ecd1092aff00f56aa6c004",
"shasum": ""
},
"require": {
"facade/ignition-contracts": "~1.0",
"illuminate/pipeline": "~5.5|~5.6|~5.7|~5.8|^6.0",
"illuminate/pipeline": "^5.5|^6.0|^7.0",
"php": "^7.1",
"symfony/http-foundation": "~3.3|~4.1",
"symfony/http-foundation": "^3.3|^4.1|^5.0",
"symfony/var-dumper": "^3.4|^4.0|^5.0"
},
"require-dev": {
@@ -4565,20 +4677,20 @@
"flare",
"reporting"
],
"time": "2019-12-15T18:28:38+00:00"
"time": "2020-03-02T15:52:04+00:00"
},
{
"name": "facade/ignition",
"version": "1.16.0",
"version": "1.16.1",
"source": {
"type": "git",
"url": "https://github.com/facade/ignition.git",
"reference": "37f094775814b68d0c6cc8b8ff3c3be243f20725"
"reference": "af05ac5ee8587395d7474ec0681c08776a2cb09d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/facade/ignition/zipball/37f094775814b68d0c6cc8b8ff3c3be243f20725",
"reference": "37f094775814b68d0c6cc8b8ff3c3be243f20725",
"url": "https://api.github.com/repos/facade/ignition/zipball/af05ac5ee8587395d7474ec0681c08776a2cb09d",
"reference": "af05ac5ee8587395d7474ec0681c08776a2cb09d",
"shasum": ""
},
"require": {
@@ -4605,7 +4717,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "v2.x-dev"
"dev-master": "1.x-dev"
},
"laravel": {
"providers": [
@@ -4636,7 +4748,7 @@
"laravel",
"page"
],
"time": "2020-01-21T17:46:02+00:00"
"time": "2020-03-05T12:39:07+00:00"
},
{
"name": "facade/ignition-contracts",
@@ -5273,16 +5385,16 @@
},
{
"name": "phpspec/prophecy",
"version": "v1.10.2",
"version": "v1.10.3",
"source": {
"type": "git",
"url": "https://github.com/phpspec/prophecy.git",
"reference": "b4400efc9d206e83138e2bb97ed7f5b14b831cd9"
"reference": "451c3cd1418cf640de218914901e51b064abb093"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpspec/prophecy/zipball/b4400efc9d206e83138e2bb97ed7f5b14b831cd9",
"reference": "b4400efc9d206e83138e2bb97ed7f5b14b831cd9",
"url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093",
"reference": "451c3cd1418cf640de218914901e51b064abb093",
"shasum": ""
},
"require": {
@@ -5332,7 +5444,7 @@
"spy",
"stub"
],
"time": "2020-01-20T15:57:02+00:00"
"time": "2020-03-05T15:02:03+00:00"
},
{
"name": "phpunit/php-code-coverage",
@@ -5671,16 +5783,16 @@
},
{
"name": "scrivo/highlight.php",
"version": "v9.18.1.0",
"version": "v9.18.1.1",
"source": {
"type": "git",
"url": "https://github.com/scrivo/highlight.php.git",
"reference": "a57c858cb753f543965a1e17af386a648012ed8f"
"reference": "52fc21c99fd888e33aed4879e55a3646f8d40558"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/scrivo/highlight.php/zipball/a57c858cb753f543965a1e17af386a648012ed8f",
"reference": "a57c858cb753f543965a1e17af386a648012ed8f",
"url": "https://api.github.com/repos/scrivo/highlight.php/zipball/52fc21c99fd888e33aed4879e55a3646f8d40558",
"reference": "52fc21c99fd888e33aed4879e55a3646f8d40558",
"shasum": ""
},
"require": {
@@ -5690,6 +5802,7 @@
},
"require-dev": {
"phpunit/phpunit": "^4.8|^5.7",
"sabberworm/php-css-parser": "^8.3",
"symfony/finder": "^2.8|^3.4",
"symfony/var-dumper": "^2.8|^3.4"
},
@@ -5735,7 +5848,7 @@
"highlight.php",
"syntax"
],
"time": "2020-02-03T02:19:36+00:00"
"time": "2020-03-02T05:59:21+00:00"
},
{
"name": "sebastian/code-unit-reverse-lookup",

View File

@@ -9,5 +9,5 @@ return [
'limit_storage_by_capacity' => true,
// Define user storage capacity in MB. E.g. value 2000 is 2.00GB
'user_storage_capacity' => 100,
'user_storage_capacity' => 5000,
];

View File

@@ -0,0 +1,272 @@
# ************************************************************
# Sequel Pro SQL dump
# Version 4541
#
# http://www.sequelpro.com/
# https://github.com/sequelpro/sequelpro
#
# Host: 127.0.0.1 (MySQL 5.7.25)
# Database: file-manager
# Generation Time: 2020-03-14 17:32:56 +0000
# ************************************************************
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
# Dump of table failed_jobs
# ------------------------------------------------------------
DROP TABLE IF EXISTS `failed_jobs`;
CREATE TABLE `failed_jobs` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`connection` text COLLATE utf8mb4_unicode_ci NOT NULL,
`queue` text COLLATE utf8mb4_unicode_ci NOT NULL,
`payload` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
`exception` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
`failed_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
# Dump of table favourite_folder
# ------------------------------------------------------------
DROP TABLE IF EXISTS `favourite_folder`;
CREATE TABLE `favourite_folder` (
`user_id` bigint(20) NOT NULL,
`folder_unique_id` bigint(20) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
# Dump of table file_manager_files
# ------------------------------------------------------------
DROP TABLE IF EXISTS `file_manager_files`;
CREATE TABLE `file_manager_files` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`user_id` bigint(20) DEFAULT NULL,
`unique_id` int(11) NOT NULL,
`folder_id` int(11) NOT NULL DEFAULT '0',
`thumbnail` text COLLATE utf8mb4_unicode_ci,
`name` text COLLATE utf8mb4_unicode_ci,
`basename` text COLLATE utf8mb4_unicode_ci,
`mimetype` text COLLATE utf8mb4_unicode_ci,
`filesize` text COLLATE utf8mb4_unicode_ci,
`type` enum('image','file') COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
# Dump of table file_manager_folders
# ------------------------------------------------------------
DROP TABLE IF EXISTS `file_manager_folders`;
CREATE TABLE `file_manager_folders` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`user_id` bigint(20) DEFAULT NULL,
`unique_id` int(11) NOT NULL,
`parent_id` int(11) NOT NULL DEFAULT '0',
`name` text COLLATE utf8mb4_unicode_ci,
`type` text COLLATE utf8mb4_unicode_ci,
`deleted_at` timestamp NULL DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
# Dump of table migrations
# ------------------------------------------------------------
DROP TABLE IF EXISTS `migrations`;
CREATE TABLE `migrations` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`migration` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`batch` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
LOCK TABLES `migrations` WRITE;
/*!40000 ALTER TABLE `migrations` DISABLE KEYS */;
INSERT INTO `migrations` (`id`, `migration`, `batch`)
VALUES
(1,'2014_10_12_000000_create_users_table',1),
(2,'2014_10_12_100000_create_password_resets_table',1),
(3,'2016_06_01_000001_create_oauth_auth_codes_table',1),
(4,'2016_06_01_000002_create_oauth_access_tokens_table',1),
(5,'2016_06_01_000003_create_oauth_refresh_tokens_table',1),
(6,'2016_06_01_000004_create_oauth_clients_table',1),
(7,'2016_06_01_000005_create_oauth_personal_access_clients_table',1),
(8,'2019_08_15_171328_create_file_manager_folders',1),
(9,'2019_08_15_171345_create_file_manager_files',1),
(10,'2019_08_19_000000_create_failed_jobs_table',1),
(11,'2020_03_03_065147_add_user_id_to_file_manager_files_table',2),
(12,'2020_03_03_065155_add_user_id_to_file_manager_folders_table',2),
(13,'2020_03_03_070319_create_favourites_folders_table',3);
/*!40000 ALTER TABLE `migrations` ENABLE KEYS */;
UNLOCK TABLES;
# Dump of table oauth_access_tokens
# ------------------------------------------------------------
DROP TABLE IF EXISTS `oauth_access_tokens`;
CREATE TABLE `oauth_access_tokens` (
`id` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
`user_id` bigint(20) unsigned DEFAULT NULL,
`client_id` bigint(20) unsigned NOT NULL,
`name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`scopes` text COLLATE utf8mb4_unicode_ci,
`revoked` tinyint(1) NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`expires_at` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `oauth_access_tokens_user_id_index` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
# Dump of table oauth_auth_codes
# ------------------------------------------------------------
DROP TABLE IF EXISTS `oauth_auth_codes`;
CREATE TABLE `oauth_auth_codes` (
`id` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
`user_id` bigint(20) unsigned NOT NULL,
`client_id` bigint(20) unsigned NOT NULL,
`scopes` text COLLATE utf8mb4_unicode_ci,
`revoked` tinyint(1) NOT NULL,
`expires_at` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `oauth_auth_codes_user_id_index` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
# Dump of table oauth_clients
# ------------------------------------------------------------
DROP TABLE IF EXISTS `oauth_clients`;
CREATE TABLE `oauth_clients` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`user_id` bigint(20) unsigned DEFAULT NULL,
`name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`secret` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`redirect` text COLLATE utf8mb4_unicode_ci NOT NULL,
`personal_access_client` tinyint(1) NOT NULL,
`password_client` tinyint(1) NOT NULL,
`revoked` tinyint(1) NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `oauth_clients_user_id_index` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
LOCK TABLES `oauth_clients` WRITE;
/*!40000 ALTER TABLE `oauth_clients` DISABLE KEYS */;
INSERT INTO `oauth_clients` (`id`, `user_id`, `name`, `secret`, `redirect`, `personal_access_client`, `password_client`, `revoked`, `created_at`, `updated_at`)
VALUES
(1,1,'vue-filemanager-auth','oULKgESrN8egvBWW0DGNW3aE8yaHWISUODq3ZDRn','/',0,1,0,'2020-03-01 07:49:48','2020-03-01 07:49:48');
/*!40000 ALTER TABLE `oauth_clients` ENABLE KEYS */;
UNLOCK TABLES;
# Dump of table oauth_personal_access_clients
# ------------------------------------------------------------
DROP TABLE IF EXISTS `oauth_personal_access_clients`;
CREATE TABLE `oauth_personal_access_clients` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`client_id` bigint(20) unsigned NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
# Dump of table oauth_refresh_tokens
# ------------------------------------------------------------
DROP TABLE IF EXISTS `oauth_refresh_tokens`;
CREATE TABLE `oauth_refresh_tokens` (
`id` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
`access_token_id` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
`revoked` tinyint(1) NOT NULL,
`expires_at` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
# Dump of table password_resets
# ------------------------------------------------------------
DROP TABLE IF EXISTS `password_resets`;
CREATE TABLE `password_resets` (
`email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`token` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
KEY `password_resets_email_index` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
# Dump of table users
# ------------------------------------------------------------
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`email_verified_at` timestamp NULL DEFAULT NULL,
`password` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`avatar` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`remember_token` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `users_email_unique` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

2
public/css/app.css vendored
View File

@@ -1 +1 @@
@import url(https://fonts.googleapis.com/css?family=Nunito:400,700,900&display=swap);.form.inline-form{display:flex;position:relative;justify-content:center}.form.inline-form .input-wrapper{position:relative}.form.inline-form .input-wrapper .error-message{position:absolute;left:0;bottom:-25px}.form.block-form.create-new-password .block-wrapper label{width:280px}.form.block-form .block-wrapper{display:flex;align-items:center;margin-top:25px;justify-content:center}.form.block-form .block-wrapper:first-child{margin-top:0}.form.block-form .block-wrapper label{white-space:nowrap;font-size:1.125em;font-weight:700;padding-right:20px;width:200px;text-align:right}.form.block-form .button{margin-top:50px}.input-wrapper .error-message{font-size:.875em;color:#d22323;padding-top:5px;display:block;text-align:left}input[type=email],input[type=password],input[type=text]{background:#f6f6f6;border:1px solid transparent;transition:all .15s ease;font-size:1em;border-radius:8px;padding:13px 20px;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-weight:700;outline:0;min-width:310px}input[type=email].is-error,input[type=password].is-error,input[type=text].is-error{border-color:#d22323;box-shadow:0 0 7px rgba(210,35,35,.3)}input[type=email]::-webkit-input-placeholder,input[type=password]::-webkit-input-placeholder,input[type=text]::-webkit-input-placeholder{color:#a4adb6;font-size:1em}input[type=email]::-moz-placeholder,input[type=password]::-moz-placeholder,input[type=text]::-moz-placeholder{color:#a4adb6;font-size:1em}input[type=email]:-ms-input-placeholder,input[type=password]:-ms-input-placeholder,input[type=text]:-ms-input-placeholder{color:#a4adb6;font-size:1em}input[type=email]::-ms-input-placeholder,input[type=password]::-ms-input-placeholder,input[type=text]::-ms-input-placeholder{color:#a4adb6;font-size:1em}input[type=email]::placeholder,input[type=password]::placeholder,input[type=text]::placeholder{color:#a4adb6;font-size:1em}input[type=email]:focus,input[type=password]:focus,input[type=text]:focus{border-color:#00bc7e;box-shadow:0 0 7px rgba(0,188,126,.3)}input[type=email][disabled],input[type=password][disabled],input[type=text][disabled]{color:#a4adb6;cursor:not-allowed}@media only screen and (max-width:960px){.form .button{margin-top:20px;width:100%;margin-left:0;margin-right:0}.form input{width:100%;min-width:100%}.form.block-form .block-wrapper{display:block}.form.block-form .block-wrapper label{width:100%;padding-right:0;display:block;margin-bottom:7px;text-align:left;font-size:.875em}.form.block-form .button{margin-top:25px}.form.inline-form{display:block}.form.inline-form .input-wrapper .error-message{position:relative;bottom:0}.form .button{padding:14px 32px}input[type=email],input[type=password],input[type=text]{padding:14px 20px}}@media (prefers-color-scheme:dark){input[type=email],input[type=password],input[type=text]{background:#202733}input[type=email]::-webkit-input-placeholder,input[type=password]::-webkit-input-placeholder,input[type=text]::-webkit-input-placeholder{color:#6a8bad}input[type=email]::-moz-placeholder,input[type=password]::-moz-placeholder,input[type=text]::-moz-placeholder{color:#6a8bad}input[type=email]:-ms-input-placeholder,input[type=password]:-ms-input-placeholder,input[type=text]:-ms-input-placeholder{color:#6a8bad}input[type=email]::-ms-input-placeholder,input[type=password]::-ms-input-placeholder,input[type=text]::-ms-input-placeholder{color:#6a8bad}input[type=email]::placeholder,input[type=password]::placeholder,input[type=text]::placeholder{color:#6a8bad}input[type=email][disabled],input[type=password][disabled],input[type=text][disabled]{color:#6a8bad}}
@import url(https://fonts.googleapis.com/css?family=Nunito:400,700,900&display=swap);

2
public/js/main.js vendored

File diff suppressed because one or more lines are too long

View File

@@ -1,116 +1,4 @@
{
"/js/main.js": "/js/main.js",
"/css/app.css": "/css/app.css",
"/js/main.b7885a7c58930b32612f.hot-update.js": "/js/main.b7885a7c58930b32612f.hot-update.js",
"/js/main.41cf8a351566bee23e7b.hot-update.js": "/js/main.41cf8a351566bee23e7b.hot-update.js",
"/js/main.09957dd7b0281aec0cab.hot-update.js": "/js/main.09957dd7b0281aec0cab.hot-update.js",
"/js/main.dc44bd8bfdfbe4c0406a.hot-update.js": "/js/main.dc44bd8bfdfbe4c0406a.hot-update.js",
"/js/main.6ac587232c863d7c9de1.hot-update.js": "/js/main.6ac587232c863d7c9de1.hot-update.js",
"/js/main.6f29f43ce48d1a1ac8ff.hot-update.js": "/js/main.6f29f43ce48d1a1ac8ff.hot-update.js",
"/js/main.a0ebfb176283cf596fd0.hot-update.js": "/js/main.a0ebfb176283cf596fd0.hot-update.js",
"/js/main.eee713547ffb43c24b7e.hot-update.js": "/js/main.eee713547ffb43c24b7e.hot-update.js",
"/js/main.96b2cde323b3469a9f54.hot-update.js": "/js/main.96b2cde323b3469a9f54.hot-update.js",
"/js/main.69398d675f8026dfe7ca.hot-update.js": "/js/main.69398d675f8026dfe7ca.hot-update.js",
"/js/main.a80da3e721531201dd92.hot-update.js": "/js/main.a80da3e721531201dd92.hot-update.js",
"/js/main.e8d35d3bf59a117a89f9.hot-update.js": "/js/main.e8d35d3bf59a117a89f9.hot-update.js",
"/js/main.9caa9169143eda1c512b.hot-update.js": "/js/main.9caa9169143eda1c512b.hot-update.js",
"/js/main.d9a17883ef7fb858e3fb.hot-update.js": "/js/main.d9a17883ef7fb858e3fb.hot-update.js",
"/js/main.44d9f7ccc948237ae0c9.hot-update.js": "/js/main.44d9f7ccc948237ae0c9.hot-update.js",
"/js/main.19df0964b8b0264a851a.hot-update.js": "/js/main.19df0964b8b0264a851a.hot-update.js",
"/js/main.907e3ba31803fa5d2a2f.hot-update.js": "/js/main.907e3ba31803fa5d2a2f.hot-update.js",
"/js/main.09d23f028d96762c6b5c.hot-update.js": "/js/main.09d23f028d96762c6b5c.hot-update.js",
"/js/main.388edaf034ce3fefc786.hot-update.js": "/js/main.388edaf034ce3fefc786.hot-update.js",
"/js/main.31c35893e46de54d2663.hot-update.js": "/js/main.31c35893e46de54d2663.hot-update.js",
"/js/main.6f7e8d1e4169df52fb2d.hot-update.js": "/js/main.6f7e8d1e4169df52fb2d.hot-update.js",
"/js/main.aa7c4b2ea6d8e0859dc4.hot-update.js": "/js/main.aa7c4b2ea6d8e0859dc4.hot-update.js",
"/js/main.1a5150ad0b2dd2a3dc39.hot-update.js": "/js/main.1a5150ad0b2dd2a3dc39.hot-update.js",
"/js/main.9237ba5e6d2e59b47a88.hot-update.js": "/js/main.9237ba5e6d2e59b47a88.hot-update.js",
"/js/main.82cca3544b72eff82157.hot-update.js": "/js/main.82cca3544b72eff82157.hot-update.js",
"/js/main.2cd2cda41d83a645ac61.hot-update.js": "/js/main.2cd2cda41d83a645ac61.hot-update.js",
"/js/main.9dbcb29570c19f62192a.hot-update.js": "/js/main.9dbcb29570c19f62192a.hot-update.js",
"/js/main.acb3f7b5793b5512120d.hot-update.js": "/js/main.acb3f7b5793b5512120d.hot-update.js",
"/js/main.5479905fb003b34ac6f2.hot-update.js": "/js/main.5479905fb003b34ac6f2.hot-update.js",
"/js/main.a5ef445c94ce2476a9b2.hot-update.js": "/js/main.a5ef445c94ce2476a9b2.hot-update.js",
"/js/main.adb0c2720729932803c3.hot-update.js": "/js/main.adb0c2720729932803c3.hot-update.js",
"/js/main.ec81d5bea9f19f39e8f7.hot-update.js": "/js/main.ec81d5bea9f19f39e8f7.hot-update.js",
"/js/main.3cdafc0de7e63c961d74.hot-update.js": "/js/main.3cdafc0de7e63c961d74.hot-update.js",
"/js/main.25f2a5426b496827eea4.hot-update.js": "/js/main.25f2a5426b496827eea4.hot-update.js",
"/js/main.15d864f2f2bc9ecf7ed2.hot-update.js": "/js/main.15d864f2f2bc9ecf7ed2.hot-update.js",
"/js/main.4c83358e0a011e6ed200.hot-update.js": "/js/main.4c83358e0a011e6ed200.hot-update.js",
"/js/main.928cebbf849c00bef413.hot-update.js": "/js/main.928cebbf849c00bef413.hot-update.js",
"/js/main.9b83d8d81da6437bd58a.hot-update.js": "/js/main.9b83d8d81da6437bd58a.hot-update.js",
"/js/main.9f394a7a647d6d86b950.hot-update.js": "/js/main.9f394a7a647d6d86b950.hot-update.js",
"/js/main.d22b5e2429e0209e2230.hot-update.js": "/js/main.d22b5e2429e0209e2230.hot-update.js",
"/js/main.bc01fd4d0f723f7c4144.hot-update.js": "/js/main.bc01fd4d0f723f7c4144.hot-update.js",
"/js/main.a76c7033fbc661d5f787.hot-update.js": "/js/main.a76c7033fbc661d5f787.hot-update.js",
"/js/main.9978d753235876d9a09e.hot-update.js": "/js/main.9978d753235876d9a09e.hot-update.js",
"/js/main.88da6a241ab96e062eaa.hot-update.js": "/js/main.88da6a241ab96e062eaa.hot-update.js",
"/js/main.907cddb91db61413a7f1.hot-update.js": "/js/main.907cddb91db61413a7f1.hot-update.js",
"/js/main.d6888a4967d668daeaa4.hot-update.js": "/js/main.d6888a4967d668daeaa4.hot-update.js",
"/js/main.d4bc37b748d36eec927d.hot-update.js": "/js/main.d4bc37b748d36eec927d.hot-update.js",
"/js/main.3fe7004b3303e05c71c8.hot-update.js": "/js/main.3fe7004b3303e05c71c8.hot-update.js",
"/js/main.2f88baed5888ed7c18ec.hot-update.js": "/js/main.2f88baed5888ed7c18ec.hot-update.js",
"/js/main.28750132a4bf9f027f76.hot-update.js": "/js/main.28750132a4bf9f027f76.hot-update.js",
"/js/main.271855de5d8900e09251.hot-update.js": "/js/main.271855de5d8900e09251.hot-update.js",
"/js/main.a5f3be671e89b7b02488.hot-update.js": "/js/main.a5f3be671e89b7b02488.hot-update.js",
"/js/main.bbe4c1152bcc98c4a824.hot-update.js": "/js/main.bbe4c1152bcc98c4a824.hot-update.js",
"/js/main.51f97d93eec1b080e9e4.hot-update.js": "/js/main.51f97d93eec1b080e9e4.hot-update.js",
"/js/main.aada5ad78910b91cb195.hot-update.js": "/js/main.aada5ad78910b91cb195.hot-update.js",
"/js/main.7e74d89742cb29908548.hot-update.js": "/js/main.7e74d89742cb29908548.hot-update.js",
"/js/main.526354f8026836232108.hot-update.js": "/js/main.526354f8026836232108.hot-update.js",
"/js/main.095fd0ae956d13e7d0eb.hot-update.js": "/js/main.095fd0ae956d13e7d0eb.hot-update.js",
"/js/main.76bb6f7f9e40560681b6.hot-update.js": "/js/main.76bb6f7f9e40560681b6.hot-update.js",
"/js/main.fcee2fd91b74afff90f6.hot-update.js": "/js/main.fcee2fd91b74afff90f6.hot-update.js",
"/js/main.e2abd1caa20ec95707c2.hot-update.js": "/js/main.e2abd1caa20ec95707c2.hot-update.js",
"/js/main.cda452c02c35b348c3d2.hot-update.js": "/js/main.cda452c02c35b348c3d2.hot-update.js",
"/js/main.40bf27ec73a8df23a001.hot-update.js": "/js/main.40bf27ec73a8df23a001.hot-update.js",
"/js/main.d0b2da5a72218c5f2753.hot-update.js": "/js/main.d0b2da5a72218c5f2753.hot-update.js",
"/js/main.5809dfdf155fd5afe07d.hot-update.js": "/js/main.5809dfdf155fd5afe07d.hot-update.js",
"/js/main.1d75e99d7eb6206df763.hot-update.js": "/js/main.1d75e99d7eb6206df763.hot-update.js",
"/js/main.c9c04c5a9a8a925daaee.hot-update.js": "/js/main.c9c04c5a9a8a925daaee.hot-update.js",
"/js/main.0c6e0946cd529be6b378.hot-update.js": "/js/main.0c6e0946cd529be6b378.hot-update.js",
"/js/main.cbbbc2cb67a3d80f764b.hot-update.js": "/js/main.cbbbc2cb67a3d80f764b.hot-update.js",
"/js/main.d4620a39394f417bc81d.hot-update.js": "/js/main.d4620a39394f417bc81d.hot-update.js",
"/js/main.7b849857ab83be0c2c56.hot-update.js": "/js/main.7b849857ab83be0c2c56.hot-update.js",
"/js/main.e42986a050f3c8ba1579.hot-update.js": "/js/main.e42986a050f3c8ba1579.hot-update.js",
"/js/main.a14bb8bca0814982ed2b.hot-update.js": "/js/main.a14bb8bca0814982ed2b.hot-update.js",
"/js/main.182831741990e33f47d9.hot-update.js": "/js/main.182831741990e33f47d9.hot-update.js",
"/js/main.c97a01957f9112ed06da.hot-update.js": "/js/main.c97a01957f9112ed06da.hot-update.js",
"/js/main.684808ff4a9b478521f0.hot-update.js": "/js/main.684808ff4a9b478521f0.hot-update.js",
"/js/main.65773e1cec12c0a6dafd.hot-update.js": "/js/main.65773e1cec12c0a6dafd.hot-update.js",
"/js/main.dc6dbfd05791e0fa3456.hot-update.js": "/js/main.dc6dbfd05791e0fa3456.hot-update.js",
"/js/main.10cde6e22a01f10f3dc1.hot-update.js": "/js/main.10cde6e22a01f10f3dc1.hot-update.js",
"/js/main.cade64e98d9456c9d85b.hot-update.js": "/js/main.cade64e98d9456c9d85b.hot-update.js",
"/js/main.1e1883f028249ee95686.hot-update.js": "/js/main.1e1883f028249ee95686.hot-update.js",
"/js/main.dd41bbb237612b5ef1cf.hot-update.js": "/js/main.dd41bbb237612b5ef1cf.hot-update.js",
"/js/main.6e4d71a8180ef9d0027d.hot-update.js": "/js/main.6e4d71a8180ef9d0027d.hot-update.js",
"/js/main.7bf8c13576d91a63de15.hot-update.js": "/js/main.7bf8c13576d91a63de15.hot-update.js",
"/js/main.00008aac79fa0e306261.hot-update.js": "/js/main.00008aac79fa0e306261.hot-update.js",
"/js/main.c7d5f6f5553c8ac444a1.hot-update.js": "/js/main.c7d5f6f5553c8ac444a1.hot-update.js",
"/js/main.01331afd6e83ce53c9f1.hot-update.js": "/js/main.01331afd6e83ce53c9f1.hot-update.js",
"/js/main.6a97dcd027db22d2fe58.hot-update.js": "/js/main.6a97dcd027db22d2fe58.hot-update.js",
"/js/main.0439ef5b559eec971f46.hot-update.js": "/js/main.0439ef5b559eec971f46.hot-update.js",
"/js/main.13f7f31a870d036f33d4.hot-update.js": "/js/main.13f7f31a870d036f33d4.hot-update.js",
"/js/main.ebb5b8e3a49f7497799e.hot-update.js": "/js/main.ebb5b8e3a49f7497799e.hot-update.js",
"/js/main.d806d5e96490d67c6a87.hot-update.js": "/js/main.d806d5e96490d67c6a87.hot-update.js",
"/js/main.7cf3722d7936494ff475.hot-update.js": "/js/main.7cf3722d7936494ff475.hot-update.js",
"/js/main.821d8599536488baf0f8.hot-update.js": "/js/main.821d8599536488baf0f8.hot-update.js",
"/js/main.f5bd13ae830d4db45212.hot-update.js": "/js/main.f5bd13ae830d4db45212.hot-update.js",
"/js/main.e3f00309dc683e835468.hot-update.js": "/js/main.e3f00309dc683e835468.hot-update.js",
"/js/main.4e070f398ba2602d8b27.hot-update.js": "/js/main.4e070f398ba2602d8b27.hot-update.js",
"/js/main.4407ffbdbd68dbf1b6bb.hot-update.js": "/js/main.4407ffbdbd68dbf1b6bb.hot-update.js",
"/js/main.5460f498775a4edd0bb8.hot-update.js": "/js/main.5460f498775a4edd0bb8.hot-update.js",
"/js/main.b54c6958681b8e316912.hot-update.js": "/js/main.b54c6958681b8e316912.hot-update.js",
"/js/main.4dd9baec87cbba44da1f.hot-update.js": "/js/main.4dd9baec87cbba44da1f.hot-update.js",
"/js/main.15fa523c653a50e421a5.hot-update.js": "/js/main.15fa523c653a50e421a5.hot-update.js",
"/js/main.1a485b15893b04b29e77.hot-update.js": "/js/main.1a485b15893b04b29e77.hot-update.js",
"/js/main.c0d59287145c78d7527b.hot-update.js": "/js/main.c0d59287145c78d7527b.hot-update.js",
"/js/main.406a9b87d350e9f7d1af.hot-update.js": "/js/main.406a9b87d350e9f7d1af.hot-update.js",
"/js/main.47c7327d0c4dd0759676.hot-update.js": "/js/main.47c7327d0c4dd0759676.hot-update.js",
"/js/main.3c58b7fb8eec2d6af53f.hot-update.js": "/js/main.3c58b7fb8eec2d6af53f.hot-update.js",
"/js/main.8ea8151691b11c0808fb.hot-update.js": "/js/main.8ea8151691b11c0808fb.hot-update.js",
"/js/main.07a1de188746117946e4.hot-update.js": "/js/main.07a1de188746117946e4.hot-update.js",
"/js/main.7ef63b397f419a849587.hot-update.js": "/js/main.7ef63b397f419a849587.hot-update.js",
"/js/main.efaa9b6327a9e613cc07.hot-update.js": "/js/main.efaa9b6327a9e613cc07.hot-update.js",
"/js/main.cd194c3416426f2b5369.hot-update.js": "/js/main.cd194c3416426f2b5369.hot-update.js"
"/js/main.js": "/js/main.js?id=cef949b486ef02300d3b",
"/css/app.css": "/css/app.css?id=1864eb943a745d7d07e2"
}

View File

@@ -89,33 +89,20 @@
-moz-osx-font-smoothing: grayscale;
box-sizing: border-box;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
color: $text;
font-size: 16px;
}
body, html {
overflow: hidden;
}
// Dark mode support
@media (prefers-color-scheme: dark) {
* {
color: $dark_mode_text_primary;
}
img {
opacity: .8;
}
body, html {
background: darken($dark_mode_background, 10%);
}
#vue-file-manager {
background: $dark_mode_background;
}
color: $dark_mode_text_primary;
img {
opacity: .8;
}
}
}
#auth {

View File

@@ -472,6 +472,7 @@
<style scoped lang="scss">
@import "@assets/app.scss";
@import '@assets/vue-file-manager/_forms';
.auth-form {
text-align: center;
@@ -499,12 +500,14 @@
font-weight: 800;
line-height: 1.2;
margin-bottom: 2px;
color: $text;
}
h2 {
@include font-size(23);
font-weight: 500;
margin-bottom: 50px;
color: $text;
}
.block-form {
@@ -515,21 +518,6 @@
text-align: right;
}
}
.additional-link {
@include font-size(16);
margin-top: 50px;
display: block;
b {
color: $theme;
cursor: pointer;
&:hover {
text-decoration: underline;
}
}
}
}
@media only screen and (min-width: 690px) and (max-width: 960px) {
@@ -555,4 +543,13 @@
}
}
@media (prefers-color-scheme: dark) {
.auth-form {
h1, h2, .additional-link {
color: $dark_mode_text_primary;
}
}
}
</style>

View File

@@ -141,11 +141,12 @@
.files-container {
padding-left: 15px;
padding-right: 15px;
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
position: absolute;
overflow-y: auto;
.file-list {
//height: 100%;
@@ -243,7 +244,7 @@
}
.toolbar-go-back span {
max-width: 140px;
max-width: 120px;
}
.grid .file-wrapper {
@@ -273,16 +274,4 @@
}
}
@media only screen and (max-width: 960px) {
#files-view .files-container {
left: 265px !important;
}
}
@media only screen and (max-width: 690px) {
#files-view .files-container {
left: 0 !important;
}
}
</style>

View File

@@ -67,6 +67,10 @@
this.button = 'Thats horrible!'
this.emoji = '😢😢😢'
this.buttonStyle = 'danger'
if (args.emoji) {
this.emoji = args.emoji
}
})
// Show alert
@@ -80,6 +84,10 @@
this.button = 'Awesome!'
this.emoji = '🥳🥳🥳'
this.buttonStyle = 'theme'
if (args.emoji) {
this.emoji = args.emoji
}
})
// Close popup

View File

@@ -9,7 +9,7 @@
<li class="menu-option" @click="addToFavourites" v-if="! $isTrashLocation() && item && item.type === 'folder'">{{ isInFavourites ? 'Remove Favourite' : 'Add To Favourites' }}</li>
<li class="menu-option" @click="$store.dispatch('restoreItem', item)" v-if="item && $isTrashLocation()">Restore</li>
<li class="menu-option" @click="createFolder" v-if="! $isTrashLocation()">Create Folder</li>
<li class="menu-option" @click="removeItem" v-if="! $isTrashLocation()">Delete</li>
<li class="menu-option" @click="removeItem" v-if="! $isTrashLocation() && item">Delete</li>
<li class="menu-option" @click="$store.dispatch('emptyTrash')" v-if="$isTrashLocation()">Empty Trash</li>
<li class="menu-option" @click="ItemDetail" v-if="item">Detail</li>
<li class="menu-option" @click="downloadItem" v-if="isFile || isImage">Download</li>
@@ -46,9 +46,9 @@
methods: {
addToFavourites() {
if (this.app.favourites && ! this.app.favourites.find(el => el.unique_id == this.item.unique_id)) {
this.$store.dispatch('addToFavourites', this.item.unique_id)
this.$store.dispatch('addToFavourites', this.item)
} else {
this.$store.dispatch('removeFromFavourites', this.item.unique_id)
this.$store.dispatch('removeFromFavourites', this.item)
}
},
downloadItem() {
@@ -82,12 +82,14 @@
},
showContextMenu(event, item) {
let VerticalOffsetArea = item ? this.$refs.list.children.length * 50 : 50
let HorizontalOffsetArea = 150
let HorizontalOffsetArea = 190
let container = document.getElementById('files-view')
let x = event.pageX - container.getBoundingClientRect().x
let y = event.pageY - container.getBoundingClientRect().y
var offset = container.getClientRects()[0];
let x = event.clientX - offset.left
let y = event.clientY - offset.top
// Set position Y
if ((container.offsetHeight - y) < VerticalOffsetArea) {
@@ -127,6 +129,7 @@
.contextmenu {
max-width: 190px;
width: 190px;
position: absolute;
z-index: 99;
box-shadow: $shadow;
@@ -150,6 +153,7 @@
padding: 15px 30px;
cursor: pointer;
width: 100%;
color: $text;
&:hover {
background: $light_background;
@@ -165,6 +169,8 @@
background: $dark_mode_foreground;
.menu-options .menu-option {
color: $dark_mode_text_primary;
&:hover {
background: $dark_mode_background;
}

View File

@@ -170,6 +170,7 @@
text-overflow: ellipsis;
display: inline-block;
vertical-align: middle;
color: $text;
}
}
@@ -208,5 +209,12 @@
.toolbar .directory-name {
color: $dark_mode_text_primary;
}
.toolbar-go-back {
.back-directory-title {
color: $dark_mode_text_primary;
}
}
}
</style>

View File

@@ -174,6 +174,7 @@
.name {
@include font-size(16);
font-weight: 600;
color: $text;
}
.mimetype {
@@ -206,6 +207,7 @@
display: block;
@include font-size(16);
font-weight: bold;
color: $text;
}
}
}
@@ -218,6 +220,23 @@
.icon-preview {
background: $dark_mode_background;
}
.file-info {
.name {
color: $dark_mode_text_primary;
}
}
}
.list-info {
.list-info-item {
span {
color: $dark_mode_text_primary
}
}
}
}
</style>

View File

@@ -45,7 +45,7 @@
<span
ref="name"
@input="changeItemName"
:contenteditable="!$isMobile()"
:contenteditable="!$isMobile() && !$isTrashLocation()"
class="name"
>{{ item.name }}</span
>

View File

@@ -226,7 +226,6 @@
}
.file-content {
position: relative;
display: flex;
flex-wrap: nowrap;
}

View File

@@ -34,6 +34,7 @@
.label {
@include font-size(14);
font-weight: 700;
color: $text;
}
}
@@ -42,7 +43,11 @@
background: $dark_mode_foreground;
.icon path {
color: $theme;
fill: $theme;
}
.label {
color: $dark_mode_text_primary;
}
}
}

View File

@@ -55,6 +55,7 @@
.label {
@include font-size(14);
font-weight: 700;
color: $text;
}
}
@@ -63,7 +64,11 @@
background: $dark_mode_foreground;
.icon path {
color: $theme;
fill: $theme;
}
.label {
color: $dark_mode_text_primary;
}
}
}

View File

@@ -92,9 +92,9 @@
methods: {
addToFavourites() {
if (this.app.favourites && ! this.app.favourites.find(el => el.unique_id == this.fileInfoDetail.unique_id)) {
this.$store.dispatch('addToFavourites', this.fileInfoDetail.unique_id)
this.$store.dispatch('addToFavourites', this.fileInfoDetail)
} else {
this.$store.dispatch('removeFromFavourites', this.fileInfoDetail.unique_id)
this.$store.dispatch('removeFromFavourites', this.fileInfoDetail)
}
},
downloadItem() {
@@ -214,6 +214,7 @@
.menu-option {
border-color: rgba($dark_mode_background, .5);
color: $dark_mode_text_primary;
}
}
}

View File

@@ -15,7 +15,9 @@
<!--More Actions-->
<div class="more-actions-button" @click="showSidebarMenu">
<FontAwesomeIcon icon="bars" v-if="isSmallAppSize"></FontAwesomeIcon>
<div class="tap-area">
<FontAwesomeIcon icon="bars" v-if="isSmallAppSize"></FontAwesomeIcon>
</div>
</div>
</div>
</template>
@@ -140,6 +142,15 @@
.more-actions-button {
flex: 1;
text-align: right;
position: relative;
.tap-area {
display: inline-block;
padding: 10px;
position: absolute;
right: -10px;
top: -20px;
}
}
}
@@ -151,6 +162,10 @@
.directory-name {
color: $dark_mode_text_primary;
}
.more-actions-button svg path {
fill: $dark_mode_text_primary;
}
}
}
</style>

View File

@@ -56,8 +56,8 @@
background: $dark_mode_foreground;
}
.icon svg path {
fill: $dark_mode_text_secondary;
.icon path {
fill: $dark_mode_text_primary;
}
}
</style>

View File

@@ -8,6 +8,7 @@
type="file"
name="files[]"
multiple
:disabled="$isTrashLocation() ? true : false"
/>
</label>
</template>
@@ -61,8 +62,8 @@
background: $dark_mode_foreground;
}
.icon svg path {
fill: $dark_mode_text_secondary;
.icon path {
fill: $dark_mode_text_primary;
}
}
</style>

View File

@@ -47,6 +47,7 @@
.title {
@include font-size(22);
font-weight: 700;
color: $text;
}
.icon {
@@ -72,6 +73,10 @@
.page-header {
background: $dark_mode_background;
.title {
color: $dark_mode_text_primary;
}
.icon path {
fill: $theme;
}

View File

@@ -14,7 +14,7 @@
@import "@assets/app.scss";
.text-label {
@include font-size(11);
@include font-size(10);
color: $light_text;
text-transform: uppercase;
font-weight: 900;

View File

@@ -143,13 +143,13 @@
if (this.app.favourites.find(folder => folder.unique_id == this.draggedItem.unique_id)) return
// Store favourites folder
this.$store.dispatch('addToFavourites', this.draggedItem.unique_id)
this.$store.dispatch('addToFavourites', this.draggedItem)
},
removeFavourite(folder) {
// Remove favourites folder
this.$store.dispatch('removeFromFavourites', folder.unique_id)
this.$store.dispatch('removeFromFavourites', folder)
}
},
mounted() {
@@ -204,7 +204,7 @@
.menu-list-item {
display: block;
padding: 10px 15px;
padding: 10px 15px 10px 25px;
@include transition(150ms);
cursor: pointer;
position: relative;
@@ -236,7 +236,7 @@
vertical-align: middle;
path {
fill: $theme;
fill: $text;
}
}
@@ -280,7 +280,7 @@
border: 2px dashed transparent;
.menu-list-item {
padding: 10px 13px;
padding: 10px 13px 10 23px;
.icon {
@include font-size(20);
@@ -332,7 +332,7 @@
}
#sidebar {
position: fixed;
position: absolute;
overflow-y: auto;
top: 0;
left: 0;
@@ -374,9 +374,18 @@
.menu-list-wrapper {
.menu-list .menu-list-item:hover {
background: rgba($theme, .1);
.menu-list .menu-list-item {
.label {
color: $dark_mode_text_primary;
}
&:hover {
background: rgba($theme, .1);
}
}
}
}

View File

@@ -47,6 +47,7 @@
.title {
@include font-size(14);
font-weight: 700;
color: $text;
}
.size {
@@ -73,6 +74,10 @@
.size {
@include font-size(10);
}
.title {
color: $dark_mode_text_primary;
}
}
}
</style>

View File

@@ -77,10 +77,6 @@
cursor: pointer;
@include transition(150ms);
&:hover {
//background: rgba($theme, .1);
}
&:active {
transform: scale(0.95);
}
@@ -99,6 +95,7 @@
display: block;
@include font-size(17);
line-height: 1;
color: $text;
}
.email {
@@ -145,6 +142,7 @@
padding: 15px 30px;
cursor: pointer;
width: 100%;
color: $text;
&:hover {
background: $light_background;
@@ -177,8 +175,8 @@
.user-name {
.email {
color: $dark_mode_text_secondary;
.name {
color: $dark_mode_text_primary;
}
}
@@ -186,6 +184,8 @@
background: $dark_mode_background;
.menu-option {
color: $dark_mode_text_primary;
&:hover {
background: $dark_mode_foreground;
}

View File

@@ -165,6 +165,7 @@
<style lang="scss">
@import "@assets/app.scss";
@import '@assets/vue-file-manager/_forms';
.avatar-upload {
display: flex;
@@ -177,6 +178,7 @@
.description {
@include font-size(18);
font-weight: 700;
color: $text;
}
.supported {
@@ -256,6 +258,10 @@
.avatar-upload .info {
.description {
color: $dark_mode_text_primary;
}
.supported {
color: $dark_mode_text_secondary;
}

View File

@@ -1,246 +0,0 @@
import Router from 'vue-router'
import Vue from 'vue'
import ProfileSettings from './views/ProfileSettings'
import store from './store/index'
Vue.use(Router)
const router = new Router({
mode: 'history',
routes: [
{
path: '/finish-your-registration',
name: 'finish-your-registration',
component: FinishRegistration,
meta: {
requiresAuth: true,
}
},
{
path: '/admin/login',
name: 'LogIn',
component: Login,
meta: {
requiresVisitor: true,
}
},
{
path: '/admin/logout',
name: 'LogOut',
component: LogOut,
meta: {
requiresAuth: false
}
},
{
path: '/admin/services',
name: 'Ads',
component: Services,
meta: {
requiresAuth: true
}
},
{
path: '/admin/add-service',
name: 'Add Service',
component: ThumbnailPicker,
meta: {
requiresAuth: true
}
},
{
path: '/admin/edit-service/:id',
name: 'Edit Service',
component: EditService,
meta: {
requiresAuth: true
}
},
{
path: '/admin/trips',
name: 'Trips',
component: Trips,
meta: {
requiresAuth: true
}
},
{
path: '/admin/add-trip',
name: 'Add Trip',
component: AddTrip,
meta: {
requiresAuth: true
}
},
{
path: '/admin/edit-trip/:id',
name: 'Edit Trip',
component: EditTrip,
meta: {
requiresAuth: true
}
},
{
path: '/admin/hotels',
name: 'Hotels',
component: Hotels,
meta: {
requiresAuth: true
}
},
{
path: '/admin/add-hotel',
name: 'Add Hotel',
component: AddHotel,
meta: {
requiresAuth: true
}
},
{
path: '/admin/edit-hotel/:id',
name: 'Edit Hotel',
component: EditHotel,
meta: {
requiresAuth: true
}
},
{
path: '/admin/gallery',
name: 'Gallery',
component: Gallery,
meta: {
requiresAuth: true
}
},
{
path: '/admin/add-gallery/',
name: 'Add Gallery',
component: AddGallery,
meta: {
requiresAuth: true
}
},
{
path: '/admin/edit-gallery/:id',
name: 'Edit Gallery',
component: EditGallery,
meta: {
requiresAuth: true
}
},
{
path: '/admin/team',
name: 'Team',
component: Team,
meta: {
requiresAuth: true
}
},
{
path: '/admin/add-member',
name: 'Add Team Member',
component: AddTeamMember,
meta: {
requiresAuth: true
}
},
{
path: '/admin/edit-member/:id',
name: 'Edit Team Member',
component: EditTeamMember,
meta: {
requiresAuth: true
}
},
{
path: '/admin/references',
name: 'References',
component: References,
meta: {
requiresAuth: true
}
},
{
path: '/admin/orders',
name: 'Orders',
component: Orders,
meta: {
requiresAuth: true
}
},
{
path: '/admin/order/:id',
name: 'Order',
component: Order,
meta: {
requiresAuth: true
}
},
{
path: '/admin/payouts',
name: 'Payouts',
component: Payouts,
meta: {
requiresAuth: true
}
},
{
path: '/admin/settings',
name: 'Settings',
component: Settings,
meta: {
requiresAuth: true
}
},
{
path: '/admin/profile-settings',
name: 'Profile Settings',
component: ProfileSettings,
meta: {
requiresAuth: true
}
},
],
scrollBehavior(to, from, savedPosition) {
if (savedPosition) {
return savedPosition
} else {
return { x: 0, y: 0 }
}
}
})
router.beforeEach((to, from, next) => {
if (to.matched.some(record => record.meta.requiresAuth)) {
// this route requires auth, check if logged in
// if not, redirect to login page.
if (!store.getters.isLogged) {
next({
path: '/admin/login',
query: { redirect: to.fullPath }
})
} else {
next()
}
} else if (to.matched.some(record => record.meta.requiresVisitor)) {
// this route requires auth, check if logged in
// if not, redirect to login page.
if (store.getters.isLogged) {
next({
path: '/admin/services',
query: { redirect: to.fullPath }
})
} else {
next()
}
} else {
next() // make sure to always call next()!
}
})
export default router

View File

@@ -65,6 +65,7 @@ const Helpers = {
if (this.$store.getters.app.storage.percentage >= 100) {
events.$emit('alert:open', {
emoji: '😬😬😬',
title: 'Whooops, you exceed your storage limit :(',
message:
"Please contact your administrator to change your limit."
@@ -110,6 +111,26 @@ const Helpers = {
// Add uploaded file
fileCountSucceed++
}
}).catch(error => {
if (error.response.status == 423) {
events.$emit('alert:open', {
emoji: '😬😬😬',
title: 'Whooops, you exceed your storage limit :(',
message:
"Please contact your administrator to change your limit."
})
} else {
// Show error message
events.$emit('alert:open', {
title: 'Whooops, something went wrong :(',
message:
"Something went wrong and we can't continue. Please contact us."
})
}
})
}
}

View File

@@ -2,8 +2,8 @@ import axios from 'axios'
import {events} from '@/bus'
const defaultState = {
fileInfoPanelVisible: localStorage.getItem('file_info_visibility') == 'true' || false,
preview_type: localStorage.getItem('preview_type') || 'grid',
fileInfoPanelVisible: localStorage.getItem('file_info_visibility') == 'false' || false,
preview_type: localStorage.getItem('preview_type') || 'list',
uploadingFilesCount: undefined,
fileInfoDetail: undefined,
currentFolder: undefined,
@@ -183,7 +183,7 @@ const actions = {
if (data.type === 'file' || data.type === 'image')
commit('REMOVE_ITEM_FROM_RECENT_UPLOAD', data.unique_id)
if (data.type === 'folder')
commit('REMOVE_ITEM_FROM_FAVOURITES', data.unique_id)
commit('REMOVE_ITEM_FROM_FAVOURITES', data)
// Remove file preview
commit('CLEAR_FILEINFO_DETAIL')
@@ -208,7 +208,7 @@ const actions = {
let restoreToHome = false
// Check if file can be restored to home directory
if (context.state.currentFolder.location === 'trash' && item.type !== 'folder') restoreToHome = true
if (context.state.currentFolder.location === 'trash') restoreToHome = true
// Remove file
context.commit('REMOVE_ITEM', item.unique_id)
@@ -251,7 +251,11 @@ const actions = {
}
})
.then(response => {
context.commit('ADD_NEW_ITEMS', response.data)
// Check if user is in uploading folder, if yes, than show new file
if (response.data.folder_id == context.state.currentFolder.unique_id)
context.commit('ADD_NEW_ITEMS', response.data)
context.commit('UPDATE_RECENT_UPLOAD', response.data)
context.commit(
'UPLOADING_FILE_PROGRESS',
@@ -262,13 +266,6 @@ const actions = {
.catch(error => {
reject(error)
// Show error message
events.$emit('alert:open', {
title: 'Whooops, something went wrong :(',
message:
"Something went wrong and we can't continue. Please contact us."
})
context.commit('UPDATE_FILE_COUNT_PROGRESS', undefined)
})
})
@@ -314,7 +311,7 @@ const actions = {
},
changePreviewType: ({commit, dispatch, state}) => {
// Get preview type
let previewType = localStorage.getItem('preview_type') == 'list' ? 'grid' : 'list'
let previewType = localStorage.getItem('preview_type') == 'grid' ? 'list' : 'grid'
// Store preview type to localStorage
localStorage.setItem('preview_type', previewType)

View File

@@ -31,12 +31,13 @@ const actions = {
commit('SET_CURRENT_VIEW', 'files')
})
},
addToFavourites: (context, folder_unique_id) => {
addToFavourites: (context, folder) => {
// Add to storage
context.commit('ADD_TO_FAVOURITES', folder)
axios
.post(context.getters.api + '/add-to-favourites', {unique_id: folder_unique_id})
.then(response => {
context.commit('UPDATE_FAVOURITES', response.data)
})
.post(context.getters.api + '/add-to-favourites', {unique_id: folder.unique_id})
.catch(() => {
// Show error message
events.$emit('alert:open', {
@@ -46,12 +47,13 @@ const actions = {
})
})
},
removeFromFavourites: (context, folder_unique_id) => {
removeFromFavourites: (context, folder) => {
// Remove from storage
context.commit('REMOVE_ITEM_FROM_FAVOURITES', folder)
axios
.post(context.getters.api + '/remove-from-favourites', {unique_id: folder_unique_id})
.then(response => {
context.commit('UPDATE_FAVOURITES', response.data)
})
.post(context.getters.api + '/remove-from-favourites', {unique_id: folder.unique_id})
.catch(() => {
// Show error message
events.$emit('alert:open', {
@@ -73,8 +75,12 @@ const mutations = {
state.authorized = false
state.app = undefined
},
UPDATE_FAVOURITES(state, favourites) {
state.app.favourites = favourites
ADD_TO_FAVOURITES(state, folder) {
state.app.favourites.push({
unique_id: folder.unique_id,
name: folder.name,
type: folder.type,
})
},
UPDATE_NAME(state, name) {
state.app.user.name = name
@@ -93,8 +99,8 @@ const mutations = {
REMOVE_ITEM_FROM_RECENT_UPLOAD(state, unique_id) {
state.app.latest_uploads = state.app.latest_uploads.filter(file => file.unique_id !== unique_id)
},
REMOVE_ITEM_FROM_FAVOURITES(state, unique_id) {
state.app.favourites = state.app.favourites.filter(folder => folder.unique_id !== unique_id)
REMOVE_ITEM_FROM_FAVOURITES(state, item) {
state.app.favourites = state.app.favourites.filter(folder => folder.unique_id !== item.unique_id)
},
UPDATE_NAME_IN_FAVOURITES(state, data) {
state.app.favourites.find(folder => {

View File

@@ -40,7 +40,8 @@
font-weight: 700;
padding-right: 20px;
width: 200px;
text-align: right;
text-align: right !important;
color: $text;
}
}
@@ -61,6 +62,11 @@
}
}
textarea {
width: 100%;
}
textarea,
input[type="password"],
input[type="text"],
input[type="email"] {
@@ -96,6 +102,22 @@ input[type="email"] {
}
}
.additional-link {
@include font-size(16);
margin-top: 50px;
display: block;
color: $text;
b, a {
color: $theme;
cursor: pointer;
&:hover {
text-decoration: underline;
}
}
}
@media only screen and (max-width: 960px) {
.form {
@@ -106,7 +128,7 @@ input[type="email"] {
margin-right: 0;
}
input {
input, textarea {
width: 100%;
min-width: 100%;
}
@@ -121,13 +143,16 @@ input[type="email"] {
padding-right: 0;
display: block;
margin-bottom: 7px;
text-align: left;
text-align: left !important;
@include font-size(14);
padding-top: 0;
}
}
.button {
margin-top: 25px;
margin-left: 0;
margin-right: 0;
}
}
@@ -146,6 +171,7 @@ input[type="email"] {
}
textarea,
input[type="password"],
input[type="text"],
input[type="email"] {
@@ -155,10 +181,22 @@ input[type="email"] {
@media (prefers-color-scheme: dark) {
.form {
&.block-form {
.block-wrapper label {
color: $dark_mode_text_primary;
}
}
}
textarea,
input[type="password"],
input[type="text"],
input[type="email"] {
background: $dark_mode_foreground;
color: $dark_mode_text_primary;
&::placeholder {

View File

@@ -23,6 +23,10 @@
}
</script>
<script src="{{ mix('js/main.js') }}"></script>
@if(env('APP_ENV') !== 'local')
<script src="{{ asset('js/main.js') }}"></script>
@else
<script src="{{ mix('js/main.js') }}"></script>
@endif
</body>
</html>

View File

@@ -37,6 +37,7 @@ Route::group(['middleware' => ['auth:api', 'auth.cookie']], function () {
// File route
Route::get('/file/{name}', 'FileManagerController@get_file')->name('file');
Route::get('/thumbnail/{name}', 'FileManagerController@get_thumbnail')->name('thumbnail');
// User account routes
Route::post('/user/password', 'UserAccountController@change_password');

1
webpack.mix.js vendored
View File

@@ -15,6 +15,7 @@ mix.js('resources/js/main.js', 'public/js')
.sass('resources/sass/app.scss', 'public/css', {
implementation: require('node-sass')
})
.version()
.webpackConfig({
resolve: {
alias: {