mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-05 18:23:48 +00:00
V 1.1 Beta
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -4,6 +4,7 @@
|
||||
/storage/*.key
|
||||
/storage/*.index
|
||||
/vendor
|
||||
.idea
|
||||
.env
|
||||
.env.backup
|
||||
.phpunit.result.cache
|
||||
|
||||
6
.idea/vcs.xml
generated
Normal file
6
.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
808
.idea/workspace.xml
generated
808
.idea/workspace.xml
generated
@@ -1,7 +1,41 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="6ba7f65e-b845-4413-bbbb-cad4b4fb5f38" name="Default Changelist" comment="" />
|
||||
<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$/.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$/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/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/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/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/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" />
|
||||
</list>
|
||||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
@@ -14,43 +48,8 @@
|
||||
<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$/routes/api.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="142">
|
||||
<caret line="44" column="20" lean-forward="true" selection-start-line="44" selection-start-column="20" selection-end-line="44" selection-end-column="20" />
|
||||
<folding>
|
||||
<element signature="e#37#419#0#PHP" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/resources/views/index.blade.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="224">
|
||||
<caret line="8" column="28" selection-start-line="8" selection-start-column="28" selection-end-line="8" selection-end-column="119" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
</leaf>
|
||||
</component>
|
||||
<component name="FindInProjectRecents">
|
||||
<findStrings>
|
||||
<find>VueFileManager</find>
|
||||
<find>APP_NAME</find>
|
||||
<find>ResetUserPasswordNotification</find>
|
||||
<find>MAIL_FROM_ADDRESS</find>
|
||||
<find>belongsToMany</find>
|
||||
<find>.map</find>
|
||||
<find>recursiveFind</find>
|
||||
<find>latest_uploads</find>
|
||||
<find>->each</find>
|
||||
<find>->first</find>
|
||||
<find>VerifyCsrfToken</find>
|
||||
<find>CreateFreshApiToken</find>
|
||||
<find>j. M. Y, H:i</find>
|
||||
@@ -71,14 +70,20 @@
|
||||
<find>cookie</find>
|
||||
<find>getAppData</find>
|
||||
<find>SET_AUT</find>
|
||||
<find>PublicCloud</find>
|
||||
<find>Illuminate\Http\Response</find>
|
||||
<find>$updateText</find>
|
||||
<find>...map</find>
|
||||
<find>...mapGetters</find>
|
||||
<find>access_token</find>
|
||||
<find>user_account_capacity</find>
|
||||
<find>'bo</find>
|
||||
<find>SET_CURRENT</find>
|
||||
<find>logOut</find>
|
||||
</findStrings>
|
||||
</component>
|
||||
<component name="FrameworkCommandLineHistory">
|
||||
<commandsHistory>
|
||||
<command text="php artisan cache:clear" />
|
||||
<command text="php artisan config:clear" />
|
||||
<command text="php artisan cache:clear" />
|
||||
<command text="php artisan config:clear" />
|
||||
<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" />
|
||||
@@ -100,65 +105,72 @@
|
||||
<command text="npm rebuild" />
|
||||
<command text="npm run prod" />
|
||||
<command text="npm run hot" />
|
||||
<command text="php artisan make:controller AppFunctionsController" />
|
||||
<command text="php artisan dump-autoload" />
|
||||
<command text="composer dump-autoload" />
|
||||
<command text="php artisan serve" />
|
||||
</commandsHistory>
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||
</component>
|
||||
<component name="HighlightingSettingsPerFile">
|
||||
<setting file="mock:///Dummy.txt" root0="SKIP_INSPECTION" />
|
||||
</component>
|
||||
<component name="IdeDocumentHistory">
|
||||
<option name="CHANGED_PATHS">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/ToolbarButton.vue" />
|
||||
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/ButtonBase.vue" />
|
||||
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/SearchBar.vue" />
|
||||
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/MobileToolbar.vue" />
|
||||
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/MobileOptionList.vue" />
|
||||
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/EmptyPage.vue" />
|
||||
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/MobileActions.vue" />
|
||||
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/UploadProgress.vue" />
|
||||
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/Spinner.vue" />
|
||||
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/FilesContainer.vue" />
|
||||
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/MobileActionButtonUpload.vue" />
|
||||
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/FilesView/ToolbarButtonUpload.vue" />
|
||||
<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/Sidebar/UserHeadline.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/Sidebar/StorageSize.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/UserImageInput.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$/resources/js/components/VueFileManagerComponents/FilesView/Alert.vue" />
|
||||
<option value="$PROJECT_DIR$/app/Http/Controllers/PrivateCLoud/UserAccountController.php" />
|
||||
<option value="$PROJECT_DIR$/app/Http/Middleware/Authenticate.php" />
|
||||
<option value="$PROJECT_DIR$/resources/js/bootstrap.js" />
|
||||
<option value="$PROJECT_DIR$/routes/web.php" />
|
||||
<option value="$PROJECT_DIR$/app/Http/Middleware/CookieAuth.php" />
|
||||
<option value="$PROJECT_DIR$/app/Http/Kernel.php" />
|
||||
<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" />
|
||||
<option value="$PROJECT_DIR$/app/Http/Controllers/PrivateCLoud/UserAccountController.php" />
|
||||
<option value="$PROJECT_DIR$/app/Http/Controllers/AppFunctionsController.php" />
|
||||
<option value="$PROJECT_DIR$/resources/sass/app.scss" />
|
||||
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Others/UserImageInput.vue" />
|
||||
<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/FilesView.vue" />
|
||||
<option value="$PROJECT_DIR$/resources/js/store/modules/userAuth.js" />
|
||||
<option value="$PROJECT_DIR$/resources/js/store/modules/app.js" />
|
||||
<option value="$PROJECT_DIR$/resources/js/components/VueFileManager.vue" />
|
||||
<option value="$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/UserSettings.vue" />
|
||||
<option value="$PROJECT_DIR$/routes/api.php" />
|
||||
<option value="$PROJECT_DIR$/app/Http/Controllers/PrivateCLoud/FileManagerController.php" />
|
||||
<option value="$PROJECT_DIR$/.gitignore" />
|
||||
<option value="$PROJECT_DIR$/.env" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
@@ -283,26 +295,20 @@
|
||||
<option name="width" value="1680" />
|
||||
<option name="height" value="1050" />
|
||||
</component>
|
||||
<component name="ProjectLevelVcsManager" settingsEditedManually="true">
|
||||
<ConfirmationsSetting value="2" id="Add" />
|
||||
</component>
|
||||
<component name="ProjectView">
|
||||
<navigator proportions="" version="1">
|
||||
<foldersAlwaysOnTop value="true" />
|
||||
</navigator>
|
||||
<panes>
|
||||
<pane id="Scope" />
|
||||
<pane id="ProjectPane">
|
||||
<subPane>
|
||||
<expand>
|
||||
<path>
|
||||
<item name="vue-filemanager-laravel" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="vue-filemanager-laravel" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
</expand>
|
||||
<select />
|
||||
</subPane>
|
||||
</pane>
|
||||
<pane id="ProjectPane" />
|
||||
</panes>
|
||||
</component>
|
||||
<component name="PropertiesComponent">
|
||||
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
|
||||
<property name="WebServerToolWindowFactoryState" 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" />
|
||||
@@ -318,6 +324,7 @@
|
||||
<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>
|
||||
@@ -352,18 +359,17 @@
|
||||
<updated>1582538406416</updated>
|
||||
<workItem from="1582538408226" duration="28590000" />
|
||||
<workItem from="1583169038847" duration="49277000" />
|
||||
<workItem from="1583771973016" duration="25153000" />
|
||||
<workItem from="1583771973016" duration="35891000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TimeTrackingManager">
|
||||
<option name="totallyTimeSpent" value="103020000" />
|
||||
<option name="totallyTimeSpent" value="113758000" />
|
||||
</component>
|
||||
<component name="ToolWindowManager">
|
||||
<frame x="0" y="0" width="1680" height="1050" extended-state="0" />
|
||||
<editor active="true" />
|
||||
<layout>
|
||||
<window_info active="true" 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.18154761" />
|
||||
<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" />
|
||||
@@ -377,7 +383,7 @@
|
||||
<window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
|
||||
<window_info anchor="bottom" id="Version Control" order="8" />
|
||||
<window_info anchor="bottom" id="Database Changes" order="9" />
|
||||
<window_info anchor="bottom" id="Command Line Tools Console" order="10" weight="0.36761904" />
|
||||
<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="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
|
||||
@@ -390,170 +396,6 @@
|
||||
<option name="version" value="1" />
|
||||
</component>
|
||||
<component name="editorHistoryManager">
|
||||
<entry file="file://$PROJECT_DIR$/vendor/symfony/http-foundation/Request.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="337">
|
||||
<caret line="108" column="11" selection-start-line="108" selection-start-column="11" selection-end-line="108" selection-end-column="11" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/vendor/laravel/framework/src/Illuminate/Http/ResponseTrait.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="337">
|
||||
<caret line="107" column="20" selection-start-line="107" selection-start-column="20" selection-end-line="107" selection-end-column="20" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/config/auth.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="83">
|
||||
<caret line="37" column="17" selection-start-line="37" selection-start-column="17" selection-end-line="37" selection-end-column="17" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/.env">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="532">
|
||||
<caret line="19" column="19" selection-start-line="19" selection-start-column="15" selection-end-line="19" selection-end-column="19" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/config/cors.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="368">
|
||||
<caret line="20" column="34" selection-start-line="20" selection-start-column="34" selection-end-line="20" selection-end-column="34" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="504">
|
||||
<caret line="187" column="113" selection-start-line="186" selection-start-column="60" selection-end-line="187" selection-end-column="113" />
|
||||
<folding>
|
||||
<element signature="e#57#69#0#PHP" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/resources/js/app.js">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/resources/js/components/router.js">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/public/assets/images/hero.svg">
|
||||
<provider selected="true" editor-type-id="images" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/resources/sass/vue-file-manager/_variables.scss">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/resources/sass/vue-file-manager/_mixins.scss">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</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="336">
|
||||
<caret line="12" column="16" lean-forward="true" selection-start-line="12" selection-start-column="16" selection-end-line="12" selection-end-column="16" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/resources/sass/app.scss">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="168">
|
||||
<caret line="6" column="34" lean-forward="true" selection-start-line="6" selection-start-column="34" selection-end-line="6" selection-end-column="34" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManagerComponents/Sidebar/FileListItemThumbnail.vue">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="63">
|
||||
<caret line="30" column="10" selection-start-line="30" selection-start-column="10" selection-end-line="30" selection-end-column="10" />
|
||||
<folding>
|
||||
<element signature="n#script#0;n#!!top" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/resources/js/App.vue">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="224">
|
||||
<caret line="27" selection-start-line="27" selection-end-line="27" selection-end-column="19" />
|
||||
<folding>
|
||||
<element signature="n#script#0;n#!!top" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/vendor/symfony/http-foundation/Cookie.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="308">
|
||||
<caret line="18" column="6" selection-start-line="18" selection-start-column="6" selection-end-line="18" selection-end-column="6" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/package.json">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="430">
|
||||
<caret line="17" selection-start-line="17" selection-end-line="17" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/vendor/symfony/http-foundation/HeaderBag.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="337">
|
||||
<caret line="95" column="20" selection-start-line="95" selection-start-column="20" selection-end-line="95" selection-end-column="20" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/config/session.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="5068">
|
||||
<caret line="181" column="23" selection-start-line="181" selection-start-column="23" selection-end-line="181" selection-end-column="23" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/webpack.mix.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="616">
|
||||
<caret line="22" column="13" selection-start-line="22" selection-start-column="13" selection-end-line="22" selection-end-column="13" />
|
||||
</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="203">
|
||||
<caret line="102" column="19" selection-start-line="102" selection-start-column="19" selection-end-line="102" selection-end-column="19" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/vendor/laravel/passport/src/Http/Middleware/CreateFreshApiToken.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="155">
|
||||
<caret line="42" column="34" lean-forward="true" selection-start-line="42" selection-start-column="34" selection-end-line="42" selection-end-column="34" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/vendor/laravel/passport/src/Http/Middleware/CheckScopes.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="66">
|
||||
<caret line="7" column="6" selection-start-line="7" selection-start-column="6" selection-end-line="7" selection-end-column="6" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/vendor/laravel/passport/src/Http/Middleware/CheckForAnyScope.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="66">
|
||||
<caret line="7" column="6" selection-start-line="7" selection-start-column="6" selection-end-line="7" selection-end-column="6" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/vendor/laravel/passport/src/Http/Middleware/CheckCredentials.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-1911">
|
||||
<caret line="15" column="15" selection-start-line="15" selection-start-column="15" selection-end-line="15" selection-end-column="15" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<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">
|
||||
@@ -627,18 +469,6 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/PrivateCLoud/AuthController.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="316">
|
||||
<caret line="58" column="8" lean-forward="true" selection-start-line="58" selection-start-column="8" selection-end-line="58" selection-end-column="8" />
|
||||
<folding>
|
||||
<element signature="e#53#75#0#PHP" expanded="true" />
|
||||
<element signature="e#635#1206#0#PHP" />
|
||||
<element signature="e#1682#2311#0#PHP" />
|
||||
</folding>
|
||||
</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">
|
||||
@@ -646,96 +476,6 @@
|
||||
</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="239">
|
||||
<caret line="54" selection-start-line="54" selection-end-line="54" />
|
||||
</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="360">
|
||||
<caret line="156" selection-start-line="156" selection-end-line="156" />
|
||||
<folding>
|
||||
<element signature="n#div#0;n#div#0;n#transition#0;n#template#0;n#!!top" />
|
||||
</folding>
|
||||
</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="337">
|
||||
<caret line="308" selection-start-line="308" selection-end-line="308" />
|
||||
<folding>
|
||||
<element signature="n#AuthContentWrapper#0;n#template#0;n#!!top" />
|
||||
<element signature="e#12195#12541#0" />
|
||||
<element signature="e#12569#13678#0" />
|
||||
</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="112">
|
||||
<caret line="4" column="26" lean-forward="true" selection-start-line="4" selection-start-column="26" selection-end-line="4" selection-end-column="26" />
|
||||
<folding>
|
||||
<element signature="e#0#25#0" expanded="true" />
|
||||
<element signature="e#190#1582#0" />
|
||||
<element signature="e#1609#1833#0" />
|
||||
<element signature="e#1887#2440#0" />
|
||||
<element signature="e#2499#3057#0" />
|
||||
</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="5964">
|
||||
<caret line="484" column="11" selection-start-line="484" selection-start-column="4" selection-end-line="484" selection-end-column="11" />
|
||||
<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#6954#7608#0" />
|
||||
<element signature="e#7647#9081#0" />
|
||||
<element signature="e#9122#9730#0" />
|
||||
<element signature="e#9773#10524#0" />
|
||||
</folding>
|
||||
</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="153">
|
||||
<caret line="6" column="22" lean-forward="true" selection-start-line="6" selection-start-column="22" selection-end-line="6" selection-end-column="22" />
|
||||
<folding>
|
||||
<element signature="e#0#25#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManager.vue">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="580">
|
||||
<caret line="67" selection-start-line="67" selection-end-line="67" />
|
||||
<folding>
|
||||
<element signature="e#617#694#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/routes/web.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="280">
|
||||
<caret line="19" lean-forward="true" selection-start-line="19" selection-end-line="19" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/app/FileManagerFile.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="337">
|
||||
@@ -746,63 +486,351 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/PrivateCLoud/FileManagerController.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="1372">
|
||||
<caret line="114" column="44" selection-start-line="114" selection-start-column="44" selection-end-line="114" selection-end-column="44" />
|
||||
<folding>
|
||||
<element signature="e#53#80#0#PHP" expanded="true" />
|
||||
<element signature="e#543#621#0#PHP" />
|
||||
<element signature="e#888#1784#0#PHP" />
|
||||
<element signature="e#1891#3121#0#PHP" />
|
||||
<element signature="e#3257#3861#0#PHP" />
|
||||
<element signature="e#3967#4797#0#PHP" />
|
||||
<element signature="e#4902#5942#0#PHP" />
|
||||
<element signature="e#6047#8159#0#PHP" />
|
||||
<element signature="e#8299#8601#0#PHP" />
|
||||
<element signature="e#8692#9510#0#PHP" />
|
||||
<element signature="e#9589#10594#0#PHP" />
|
||||
<element signature="e#10695#12782#0#PHP" />
|
||||
<element signature="e#12859#13911#0#PHP" />
|
||||
<element signature="e#14009#14137#0#PHP" />
|
||||
<element signature="e#14227#14962#0#PHP" />
|
||||
<element signature="e#15052#15493#0#PHP" />
|
||||
<element signature="e#15562#16097#0#PHP" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/PrivateCLoud/UserAccountController.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="2128">
|
||||
<caret line="76" column="16" lean-forward="true" selection-start-line="76" selection-start-column="16" selection-end-line="76" selection-end-column="16" />
|
||||
<folding>
|
||||
<element signature="e#53#66#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="112">
|
||||
<caret line="4" column="16" lean-forward="true" selection-start-line="4" selection-start-column="16" selection-end-line="4" selection-end-column="16" />
|
||||
<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$/routes/api.php">
|
||||
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/Auth/VerificationController.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="142">
|
||||
<caret line="44" column="20" lean-forward="true" selection-start-line="44" selection-start-column="20" selection-end-line="44" selection-end-column="20" />
|
||||
<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#37#419#0#PHP" />
|
||||
<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>
|
||||
</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" />
|
||||
<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" />
|
||||
</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" />
|
||||
<folding>
|
||||
<element signature="e#0#33#0" expanded="true" />
|
||||
<element signature="e#201#287#0" />
|
||||
<element signature="e#730#1219#0" />
|
||||
</folding>
|
||||
</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="224">
|
||||
<caret line="8" column="28" selection-start-line="8" selection-start-column="28" selection-end-line="8" selection-end-column="119" />
|
||||
<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">
|
||||
<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>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/resources/js/components/VueFileManager.vue">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="560">
|
||||
<caret line="20" column="26" selection-start-line="20" selection-start-column="17" selection-end-line="20" selection-end-column="26" />
|
||||
<folding>
|
||||
<element signature="e#618#695#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/resources/js/App.vue">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="56">
|
||||
<caret line="2" column="31" lean-forward="true" selection-start-line="2" selection-start-column="31" selection-end-line="2" selection-end-column="31" />
|
||||
<folding>
|
||||
<element signature="n#style#0;n#VueFileManager#0;n#div#0;n#template#0;n#!!top" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/routes/api.php">
|
||||
<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>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/.env">
|
||||
<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>
|
||||
</provider>
|
||||
</entry>
|
||||
|
||||
44
app/Http/Controllers/AppFunctionsController.php
Normal file
44
app/Http/Controllers/AppFunctionsController.php
Normal file
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\File;
|
||||
use Response;
|
||||
|
||||
class AppFunctionsController extends Controller
|
||||
{
|
||||
/**
|
||||
* Show index page
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
return view("index");
|
||||
}
|
||||
|
||||
/**
|
||||
* Get file
|
||||
*
|
||||
* @param $filename
|
||||
* @return mixed
|
||||
*/
|
||||
public function get_avatar($basename)
|
||||
{
|
||||
// Get file path
|
||||
$path = storage_path() . '/app/avatars/' . $basename;
|
||||
|
||||
// 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;
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\PrivateCLoud;
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\ClientProfile;
|
||||
use App\Models\User\UserAttribute;
|
||||
@@ -10,6 +10,7 @@ use App\User;
|
||||
use GuzzleHttp\Client;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Cookie;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
@@ -54,9 +55,15 @@ class AuthController extends Controller
|
||||
{
|
||||
$response = Route::dispatch(self::make_request($request));
|
||||
|
||||
$data = json_decode($response->content(), true);
|
||||
if ($response->isSuccessful()) {
|
||||
|
||||
return response('Login Successfull!', 200)->cookie('token', $data['access_token'], 43200);
|
||||
$data = json_decode($response->content(), true);
|
||||
|
||||
return response('Login Successfull!', 200)->cookie('token', $data['access_token'], 43200);
|
||||
} else {
|
||||
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -67,6 +74,9 @@ class AuthController extends Controller
|
||||
*/
|
||||
public function register(Request $request)
|
||||
{
|
||||
// Check if account registration is enabled
|
||||
if (! config('vuefilemanager.registration') ) abort(401);
|
||||
|
||||
// Validate request
|
||||
$request->validate([
|
||||
'name' => ['required', 'string', 'max:255'],
|
||||
@@ -81,9 +91,17 @@ class AuthController extends Controller
|
||||
'password' => Hash::make($request->password),
|
||||
]);
|
||||
|
||||
$token = Route::dispatch(self::make_request($request));
|
||||
$response = Route::dispatch(self::make_request($request));
|
||||
|
||||
return $token;
|
||||
if ($response->isSuccessful()) {
|
||||
|
||||
$data = json_decode($response->content(), true);
|
||||
|
||||
return response('Register Successfull!', 200)->cookie('token', $data['access_token'], 43200);
|
||||
} else {
|
||||
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\PrivateCLoud;
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\PrivateCLoud;
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Mail\TestMail;
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\PrivateCLoud;
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\PrivateCLoud;
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\PrivateCLoud;
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\PrivateCLoud;
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\PrivateCLoud;
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Support\Arr;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
@@ -19,16 +19,6 @@ use Response;
|
||||
|
||||
class FileManagerController extends Controller
|
||||
{
|
||||
/**
|
||||
* Show index page
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
*/
|
||||
public function index() {
|
||||
|
||||
return view("index");
|
||||
}
|
||||
|
||||
/**
|
||||
* Get trashed files
|
||||
*
|
||||
@@ -230,17 +220,20 @@ class FileManagerController extends Controller
|
||||
if ($validator->fails()) abort(400, 'Bad input');
|
||||
|
||||
// Get user id
|
||||
$user_id = Auth::id();
|
||||
$user = Auth::user();
|
||||
|
||||
// Delete folder
|
||||
if ($request->type === 'folder') {
|
||||
|
||||
$item = FileManagerFolder::withTrashed()
|
||||
->with('folders')
|
||||
->where('user_id', $user_id)
|
||||
->where('user_id', $user->id)
|
||||
->where('unique_id', $request->unique_id)
|
||||
->first();
|
||||
|
||||
// Remove folder from user favourites
|
||||
$user->favourites()->detach($request->unique_id);
|
||||
|
||||
foreach ($item->files as $file) {
|
||||
|
||||
if ($request->force_delete) {
|
||||
@@ -273,7 +266,7 @@ class FileManagerController extends Controller
|
||||
if ($request->type === 'file' || $request->type === 'image') {
|
||||
|
||||
$item = FileManagerFile::withTrashed()
|
||||
->where('user_id', $user_id)
|
||||
->where('user_id', $user->id)
|
||||
->where('unique_id', $request->unique_id)
|
||||
->first();
|
||||
|
||||
@@ -302,17 +295,18 @@ class FileManagerController extends Controller
|
||||
*/
|
||||
public function empty_trash()
|
||||
{
|
||||
// TODO: validacia
|
||||
|
||||
// Get user id
|
||||
$user_id = Auth::id();
|
||||
|
||||
// Get files and folders
|
||||
$folders = FileManagerFolder::onlyTrashed()->where('user_id', $user_id)->get();
|
||||
$files = FileManagerFile::onlyTrashed()->where('user_id', $user_id)->get();
|
||||
|
||||
// Force delete every item
|
||||
$folders->each->forceDelete();
|
||||
$files->each->forceDelete();
|
||||
|
||||
// Return response
|
||||
return response('Done!', 200);
|
||||
}
|
||||
|
||||
@@ -327,6 +321,7 @@ class FileManagerController extends Controller
|
||||
$validator = Validator::make($request->all(), [
|
||||
'unique_id' => 'required|integer',
|
||||
'type' => 'required|string',
|
||||
'to_home' => 'boolean',
|
||||
]);
|
||||
|
||||
// Return error
|
||||
@@ -347,6 +342,12 @@ class FileManagerController extends Controller
|
||||
|
||||
// Get item
|
||||
$item = FileManagerFile::withTrashed()->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->folder_id = 0;
|
||||
$item->save();
|
||||
}
|
||||
}
|
||||
|
||||
// Restore Item
|
||||
@@ -400,6 +401,10 @@ class FileManagerController extends Controller
|
||||
*/
|
||||
public function upload_item(Request $request)
|
||||
{
|
||||
// Check if user can upload
|
||||
if (config('vuefilemanager.limit_storage_by_capacity') && user_storage_percentage() >= 100)
|
||||
abort(423, 'You exceed your storage limit!');
|
||||
|
||||
// Validate request
|
||||
$validator = Validator::make($request->all(), [
|
||||
'parent_id' => 'required|integer',
|
||||
@@ -447,7 +452,7 @@ class FileManagerController extends Controller
|
||||
|
||||
// Store file
|
||||
$new_file = FileManagerFile::create([
|
||||
'user_id' => Auth::id(),
|
||||
'user_id' => Auth::id(),
|
||||
'name' => pathinfo($file->getClientOriginalName())['filename'],
|
||||
'basename' => $filename,
|
||||
'folder_id' => $folder_id,
|
||||
@@ -514,7 +519,7 @@ class FileManagerController extends Controller
|
||||
// Get user id
|
||||
$user_id = Auth::id();
|
||||
|
||||
return FileManagerFile::where('user_id', $user_id)->where('unique_id', $unique_id)->first();
|
||||
return FileManagerFile::where('user_id', $user_id)->where('unique_id', $unique_id)->firstOrFail();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -525,8 +530,17 @@ class FileManagerController extends Controller
|
||||
*/
|
||||
public function get_file($filename)
|
||||
{
|
||||
// Get user id
|
||||
$user_id = Auth::id();
|
||||
|
||||
// Get file record
|
||||
$file = FileManagerFile::withTrashed()->where('user_id', $user_id)
|
||||
->where('basename', $filename)
|
||||
->orWhere('thumbnail', $filename)
|
||||
->firstOrFail();
|
||||
|
||||
// Get file path
|
||||
$path = storage_path() . '/app/file-manager/' . $filename;
|
||||
$path = storage_path() . '/app/file-manager/' . $file->basename;
|
||||
|
||||
// Check if file exist
|
||||
if (!File::exists($path)) abort(404);
|
||||
@@ -544,30 +558,6 @@ class FileManagerController extends Controller
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get file
|
||||
*
|
||||
* @param $filename
|
||||
* @return mixed
|
||||
*/
|
||||
public function get_avatar($basename)
|
||||
{
|
||||
// Get file path
|
||||
$path = storage_path() . '/app/avatars/' . $basename;
|
||||
|
||||
// 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
|
||||
*
|
||||
@@ -1,505 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Support\Arr;
|
||||
use Intervention\Image\ImageManagerStatic as Image;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Support\Facades\File;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Str;
|
||||
use App\FileManagerFolder;
|
||||
use App\FileManagerFile;
|
||||
use Response;
|
||||
|
||||
class FileManagerController extends Controller
|
||||
{
|
||||
/**
|
||||
* Get trashed files
|
||||
*
|
||||
* @param Request $request
|
||||
* @return FileManagerFile[]|\Illuminate\Database\Eloquent\Builder[]|\Illuminate\Database\Eloquent\Collection|\Illuminate\Database\Query\Builder[]|\Illuminate\Support\Collection
|
||||
*/
|
||||
public function trash() {
|
||||
|
||||
// Get folders and files
|
||||
$folders_trashed = FileManagerFolder::onlyTrashed()->with(['trashed_folders'])->get(['parent_id', 'unique_id', 'name']);
|
||||
$folders = FileManagerFolder::onlyTrashed()->whereIn('unique_id', filter_folders_ids($folders_trashed))->get();
|
||||
|
||||
// Get files trashed
|
||||
$files_trashed = FileManagerFile::onlyTrashed()->whereNotIn('folder_id', array_values(array_unique(recursiveFind($folders_trashed->toArray(), 'unique_id'))))->get();
|
||||
|
||||
// Collect folders and files to single array
|
||||
return collect([$folders, $files_trashed])->collapse();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get directory with files
|
||||
*
|
||||
* @return \Illuminate\Support\Collection
|
||||
*/
|
||||
public function folder(Request $request, $unique_id)
|
||||
{
|
||||
// Get folder trash items
|
||||
if ( $request->query('trash') ) {
|
||||
|
||||
// Get folders and files
|
||||
$folders = FileManagerFolder::onlyTrashed()->with('parent')->where('parent_id', $unique_id)->get();
|
||||
$files = FileManagerFile::onlyTrashed()->with('parent')->where('folder_id', $unique_id)->get();
|
||||
|
||||
// Collect folders and files to single array
|
||||
return collect([$folders, $files])->collapse();
|
||||
}
|
||||
|
||||
// Get folders and files
|
||||
$folders = FileManagerFolder::with('parent')->where('parent_id', $unique_id)->get();
|
||||
$files = FileManagerFile::with('parent')->where('folder_id', $unique_id)->get();
|
||||
|
||||
// Collect folders and files to single array
|
||||
return collect([$folders, $files])->collapse();
|
||||
}
|
||||
|
||||
/**
|
||||
* Search files
|
||||
*
|
||||
* @param Request $request
|
||||
* @return \Illuminate\Database\Eloquent\Collection
|
||||
*/
|
||||
public function search(Request $request)
|
||||
{
|
||||
// Validate request
|
||||
$validator = Validator::make($request->all(), [
|
||||
'query' => 'required|string',
|
||||
]);
|
||||
|
||||
// Return error
|
||||
if ($validator->fails()) abort(400, 'Bad input');
|
||||
|
||||
// Search files id db
|
||||
$searched_files = FileManagerFile::search($request->input('query'))->get();
|
||||
$searched_folders = FileManagerFolder::search($request->input('query'))->get();
|
||||
|
||||
// Collect folders and files to single array
|
||||
return collect([$searched_folders, $searched_files])->collapse();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create new folder
|
||||
*
|
||||
* @param Request $request
|
||||
* @return array
|
||||
*/
|
||||
public function create_folder(Request $request)
|
||||
{
|
||||
// Validate request
|
||||
$validator = Validator::make($request->all(), [
|
||||
'parent_id' => 'required|integer',
|
||||
'name' => 'string',
|
||||
]);
|
||||
|
||||
// Return error
|
||||
if ($validator->fails()) abort(400, 'Bad input');
|
||||
|
||||
// Get parent_id from request
|
||||
$parent_id = $request->parent_id === 0 ? 0 : $request->parent_id;
|
||||
|
||||
// Create folder
|
||||
$folder = FileManagerFolder::create([
|
||||
'parent_id' => $parent_id,
|
||||
'name' => $request->has('name') ? $request->input('name') : 'New Folder',
|
||||
'type' => 'folder',
|
||||
'unique_id' => $this->get_unique_id(),
|
||||
]);
|
||||
|
||||
// Return new folder
|
||||
return $folder;
|
||||
}
|
||||
|
||||
/**
|
||||
* Rename item name
|
||||
*
|
||||
* @param Request $request
|
||||
* @return mixed
|
||||
*/
|
||||
public function rename_item(Request $request)
|
||||
{
|
||||
// Validate request
|
||||
$validator = Validator::make($request->all(), [
|
||||
'unique_id' => 'required|integer',
|
||||
'name' => 'required|string',
|
||||
'type' => 'required|string',
|
||||
]);
|
||||
|
||||
// Return error
|
||||
if ($validator->fails()) abort(400, 'Bad input');
|
||||
|
||||
// Update folder name
|
||||
if ($request->type === 'folder') {
|
||||
|
||||
$item = FileManagerFolder::where('unique_id', $request->unique_id)->first();
|
||||
|
||||
$item->name = $request->name;
|
||||
$item->save();
|
||||
|
||||
} else {
|
||||
|
||||
$item = FileManagerFile::where('unique_id', $request->unique_id)->first();
|
||||
|
||||
$item->name = $request->name;
|
||||
$item->save();
|
||||
}
|
||||
|
||||
// Return updated item
|
||||
return $item;
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete item
|
||||
*
|
||||
* @param Request $request
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function delete_item(Request $request)
|
||||
{
|
||||
|
||||
// Validate request
|
||||
$validator = Validator::make($request->all(), [
|
||||
'unique_id' => 'required|integer',
|
||||
'type' => 'required|string',
|
||||
'force_delete' => 'required|boolean',
|
||||
]);
|
||||
|
||||
// Return error
|
||||
if ($validator->fails()) abort(400, 'Bad input');
|
||||
|
||||
// Delete folder
|
||||
if ($request->type === 'folder') {
|
||||
|
||||
$item = FileManagerFolder::withTrashed()->with('folders')->where('unique_id', $request->unique_id)->first();
|
||||
|
||||
foreach ($item->files as $file) {
|
||||
|
||||
if ($request->force_delete) {
|
||||
|
||||
// Delete file
|
||||
Storage::disk('local')->delete('/file-manager/' . $file->basename);
|
||||
|
||||
// Delete thumbnail if exist
|
||||
if (!is_null($file->thumbnail)) Storage::disk('local')->delete('/file-manager/' . $file->getOriginal('thumbnail'));
|
||||
|
||||
// Delete file permanently
|
||||
$file->forceDelete();
|
||||
} else {
|
||||
|
||||
// Delete file from visibility
|
||||
$file->delete();
|
||||
}
|
||||
}
|
||||
|
||||
// Delete record
|
||||
if ($request->force_delete) {
|
||||
|
||||
$item->forceDelete();
|
||||
} else {
|
||||
|
||||
$item->delete();
|
||||
}
|
||||
}
|
||||
|
||||
if ($request->type === 'file' || $request->type === 'image') {
|
||||
|
||||
$item = FileManagerFile::withTrashed()->where('unique_id', $request->unique_id)->first();
|
||||
|
||||
if ($request->force_delete) {
|
||||
|
||||
// Delete file
|
||||
Storage::disk('local')->delete('/file-manager/' . $item->basename);
|
||||
|
||||
// Delete thumbnail if exist
|
||||
if (!is_null($item->thumbnail)) Storage::disk('local')->delete('/file-manager/' . $item->thumbnail);
|
||||
|
||||
// Delete file permanently
|
||||
$item->forceDelete();
|
||||
} else {
|
||||
|
||||
// Delete file from visibility
|
||||
$item->delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Empty user trash
|
||||
*
|
||||
* @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response
|
||||
*/
|
||||
public function empty_trash() {
|
||||
// TODO: validacia
|
||||
|
||||
$folders = FileManagerFolder::onlyTrashed()->get();
|
||||
$files = FileManagerFile::onlyTrashed()->get();
|
||||
|
||||
$folders->each->forceDelete();
|
||||
$files->each->forceDelete();
|
||||
|
||||
return response('Done!', 200);
|
||||
}
|
||||
|
||||
/**
|
||||
* Restore item from trash
|
||||
*
|
||||
* @param Request $request
|
||||
*/
|
||||
public function restore_item(Request $request) {
|
||||
|
||||
// Validate request
|
||||
$validator = Validator::make($request->all(), [
|
||||
'unique_id' => 'required|integer',
|
||||
'type' => 'required|string',
|
||||
]);
|
||||
|
||||
// Return error
|
||||
if ($validator->fails()) abort(400, 'Bad input');
|
||||
|
||||
// Get folder
|
||||
if ($request->type === 'folder') {
|
||||
|
||||
// Get folder
|
||||
$item = FileManagerFolder::withTrashed()->where('unique_id', $request->unique_id)->first();
|
||||
}
|
||||
|
||||
// Get file
|
||||
if ($request->type === 'file' || $request->type === 'image') {
|
||||
|
||||
// Get item
|
||||
$item = FileManagerFile::withTrashed()->where('unique_id', $request->unique_id)->first();
|
||||
}
|
||||
|
||||
// Restore Item
|
||||
$item->restore();
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete Item
|
||||
*
|
||||
* @param Request $request
|
||||
*/
|
||||
public function delete_items(Request $request)
|
||||
{
|
||||
// Validate request
|
||||
$validator = Validator::make($request->all(), [
|
||||
'items' => 'required|json',
|
||||
]);
|
||||
|
||||
// Return error
|
||||
if ($validator->fails()) abort(400, 'Bad input');
|
||||
|
||||
foreach ($request->input('items') as $file) {
|
||||
|
||||
if ($file['type'] === 'file' || $file['type'] === 'image') {
|
||||
|
||||
$item = FileManagerFile::where('unique_id', $file['unique_id'])->first();
|
||||
|
||||
} else {
|
||||
|
||||
$item = FileManagerFolder::where('unique_id', $file['unique_id'])->first();
|
||||
}
|
||||
|
||||
// Delete file
|
||||
Storage::disk('local')->delete('/file-manager/' . $item->basename);
|
||||
|
||||
// Delete thumbnail if exist
|
||||
if (!is_null($item->thumbnail)) {
|
||||
Storage::disk('local')->delete('/file-manager/' . $item->thumbnail);
|
||||
}
|
||||
|
||||
// Permanently delete file
|
||||
$item->forceDelete();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Upload items
|
||||
*
|
||||
* @param Request $request
|
||||
* @return array
|
||||
*/
|
||||
public function upload_item(Request $request)
|
||||
{
|
||||
// Validate request
|
||||
$validator = Validator::make($request->all(), [
|
||||
'parent_id' => 'required|integer',
|
||||
'file' => 'required|file',
|
||||
]);
|
||||
|
||||
// Return error
|
||||
if ($validator->fails()) abort(400, 'Bad input');
|
||||
|
||||
// Get parent_id from request
|
||||
$folder_id = $request->parent_id === 0 ? 0 : $request->parent_id;
|
||||
$file = $request->file('file');
|
||||
|
||||
// File
|
||||
$filename = Str::random() . '-' . str_replace(' ', '', $file->getClientOriginalName());
|
||||
$filetype = 'file';
|
||||
$thumbnail = null;
|
||||
$filesize = $file->getSize();
|
||||
$directory = 'file-manager';
|
||||
|
||||
// create directory if not exist
|
||||
if (!Storage::disk('local')->exists($directory)) {
|
||||
Storage::disk('local')->makeDirectory($directory);
|
||||
}
|
||||
|
||||
// Store to disk
|
||||
Storage::disk('local')->putFileAs($directory, $file, $filename, 'public');
|
||||
|
||||
// Create image thumbnail
|
||||
if (substr($file->getMimeType(), 0, 5) == 'image') {
|
||||
|
||||
$filetype = 'image';
|
||||
$thumbnail = 'thumbnail-' . $filename;
|
||||
|
||||
// Create intervention image
|
||||
$image = Image::make($file->getRealPath());
|
||||
|
||||
$image->resize(256, null, function ($constraint) {
|
||||
$constraint->aspectRatio();
|
||||
})->save(null, 90);
|
||||
|
||||
// Store thumbnail to s3
|
||||
Storage::disk('local')->put($directory . '/' . $thumbnail, $image);
|
||||
}
|
||||
|
||||
// Store file
|
||||
$new_file = FileManagerFile::create([
|
||||
'name' => pathinfo($file->getClientOriginalName())['filename'],
|
||||
'basename' => $filename,
|
||||
'folder_id' => $folder_id,
|
||||
'mimetype' => $file->getClientOriginalExtension(),
|
||||
'filesize' => $filesize,
|
||||
'type' => $filetype,
|
||||
'thumbnail' => $thumbnail,
|
||||
'unique_id' => $this->get_unique_id(),
|
||||
]);
|
||||
|
||||
return $new_file;
|
||||
}
|
||||
|
||||
/**
|
||||
* Move item
|
||||
*
|
||||
* @param Request $request
|
||||
*/
|
||||
public function move_item(Request $request)
|
||||
{
|
||||
// Validate request
|
||||
$validator = Validator::make($request->all(), [
|
||||
'from_unique_id' => 'required|integer',
|
||||
'to_unique_id' => 'required|integer',
|
||||
'from_type' => 'required|string',
|
||||
]);
|
||||
|
||||
// Return error
|
||||
if ($validator->fails()) abort(400, 'Bad input');
|
||||
|
||||
if ($request->from_type === 'folder') {
|
||||
|
||||
// Move folder
|
||||
$item = FileManagerFolder::where('unique_id', $request->from_unique_id)->first();
|
||||
$item->parent_id = $request->to_unique_id;
|
||||
|
||||
} else {
|
||||
|
||||
// Move file under new folder
|
||||
$item = FileManagerFile::where('unique_id', $request->from_unique_id)->first();
|
||||
$item->folder_id = $request->to_unique_id;
|
||||
}
|
||||
|
||||
$item->update();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get file record
|
||||
*
|
||||
* @param $unique_id
|
||||
* @return mixed
|
||||
*/
|
||||
public function get_file_detail($unique_id)
|
||||
{
|
||||
return FileManagerFile::where('unique_id', $unique_id)->first();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get file
|
||||
*
|
||||
* @param $filename
|
||||
* @return mixed
|
||||
*/
|
||||
public function get_file($filename)
|
||||
{
|
||||
// Get file path
|
||||
$path = storage_path() . '/app/file-manager/' . $filename;
|
||||
|
||||
// Check if file exist
|
||||
if (!File::exists($path)) abort(404);
|
||||
|
||||
$file = File::get($path);
|
||||
$type = File::mimeType($path);
|
||||
$size = File::size($path);
|
||||
|
||||
// Create response
|
||||
$response = Response::make($file, 200);
|
||||
$response->header("Content-Type", $type);
|
||||
$response->header("Content-Disposition", 'attachment; filename=' . $filename);
|
||||
$response->header("Content-Length", $size);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get file
|
||||
*
|
||||
* @param $filename
|
||||
* @return mixed
|
||||
*/
|
||||
public function get_avatar($basename)
|
||||
{
|
||||
// Get file path
|
||||
$path = storage_path() . '/app/avatars/' . $basename;
|
||||
|
||||
// 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
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
private function get_unique_id(): int
|
||||
{
|
||||
// Get files and folders
|
||||
$folders = FileManagerFolder::withTrashed()->get();
|
||||
$files = FileManagerFile::withTrashed()->get();
|
||||
|
||||
// Get last ids
|
||||
$folders_unique = $folders->isEmpty() ? 0 : $folders->last()->unique_id;
|
||||
$files_unique = $files->isEmpty() ? 0 : $files->last()->unique_id;
|
||||
|
||||
// Count new unique id
|
||||
$unique_id = $folders_unique > $files_unique ? $folders_unique + 1 : $files_unique + 1;
|
||||
|
||||
return $unique_id;
|
||||
}
|
||||
}
|
||||
@@ -1,17 +1,43 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\PrivateCLoud;
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\User;
|
||||
use ByteUnits\Metric;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\File;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
|
||||
class UserAccountController extends Controller
|
||||
{
|
||||
/**
|
||||
* Get all user data to frontend
|
||||
*
|
||||
* @return array|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Model|object|null
|
||||
*/
|
||||
public function user()
|
||||
{
|
||||
$user_id = Auth::id();
|
||||
|
||||
// Get User
|
||||
$user = User::with(['favourites', 'latest_uploads'])->where('id', $user_id)->first();
|
||||
|
||||
return [
|
||||
'user' => $user->only(['name', 'email', 'avatar']),
|
||||
'favourites' => $user->favourites->makeHidden(['pivot']),
|
||||
'latest_uploads' => $user->latest_uploads->makeHidden(['user_id', 'basename']),
|
||||
|
||||
'storage' => [
|
||||
'used' => Metric::bytes($user->used_capacity)->format(),
|
||||
'capacity' => format_gigabytes(config('vuefilemanager.user_storage_capacity')),
|
||||
'percentage' => get_storage_fill_percentage($user->used_capacity, config('vuefilemanager.user_storage_capacity')),
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Update user profile
|
||||
@@ -19,9 +45,20 @@ class UserAccountController extends Controller
|
||||
* @param Request $request
|
||||
* @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response
|
||||
*/
|
||||
public function update_profile(Request $request) {
|
||||
// TODO: validacia
|
||||
public function update_profile(Request $request)
|
||||
{
|
||||
// Validate request
|
||||
$validator = Validator::make($request->all(), [
|
||||
'avatar' => 'file',
|
||||
'_method' => 'string',
|
||||
'name' => 'string',
|
||||
'value' => 'string',
|
||||
]);
|
||||
|
||||
// Return error
|
||||
if ($validator->fails()) abort(400, 'Bad input');
|
||||
|
||||
// Get user
|
||||
$user = Auth::user();
|
||||
|
||||
if ($request->hasFile('avatar')) {
|
||||
@@ -54,36 +91,12 @@ class UserAccountController extends Controller
|
||||
'password' => ['required', 'string', 'min:6', 'confirmed'],
|
||||
]);
|
||||
|
||||
// Get user
|
||||
$user = Auth::user();
|
||||
|
||||
// Change and store new password
|
||||
$user->password = Hash::make($request->input('password'));
|
||||
$user->save();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all user data to frontend
|
||||
*
|
||||
* @return array|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Model|object|null
|
||||
*/
|
||||
public function user(Request $request)
|
||||
{
|
||||
// Get User
|
||||
$user = User::with(['favourites', 'latest_uploads'])
|
||||
->where('id', Auth::id())
|
||||
->first();
|
||||
|
||||
// TODO: dat do configu maximalnu kapacitu pre usera
|
||||
return [
|
||||
'user' => $user->only(['name', 'email', 'avatar']),
|
||||
'favourites' => $user->favourites->makeHidden(['pivot']),
|
||||
'latest_uploads' => $user->latest_uploads->makeHidden(['user_id', 'basename']),
|
||||
'storage' => [
|
||||
'used' => Metric::bytes($user->used_capacity)->format(),
|
||||
'capacity' => format_gigabytes(10),
|
||||
'percentage' => get_storage_fill_percentage($user->used_capacity, 10),
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -94,7 +107,13 @@ class UserAccountController extends Controller
|
||||
*/
|
||||
public function add_to_favourites(Request $request)
|
||||
{
|
||||
// TODO: validation
|
||||
// Validate request
|
||||
$validator = Validator::make($request->all(), [
|
||||
'unique_id' => 'required|integer',
|
||||
]);
|
||||
|
||||
// Return error
|
||||
if ($validator->fails()) abort(400, 'Bad input');
|
||||
|
||||
// Get user
|
||||
$user = Auth::user();
|
||||
@@ -114,7 +133,13 @@ class UserAccountController extends Controller
|
||||
*/
|
||||
public function remove_from_favourites(Request $request)
|
||||
{
|
||||
// TODO: validation
|
||||
// Validate request
|
||||
$validator = Validator::make($request->all(), [
|
||||
'unique_id' => 'required|integer',
|
||||
]);
|
||||
|
||||
// Return error
|
||||
if ($validator->fails()) abort(400, 'Bad input');
|
||||
|
||||
// Get user
|
||||
$user = Auth::user();
|
||||
@@ -73,7 +73,6 @@ function make_single_input($request)
|
||||
*/
|
||||
function format_gigabytes($megabytes)
|
||||
{
|
||||
|
||||
return Metric::megabytes($megabytes)->format();
|
||||
}
|
||||
|
||||
@@ -86,7 +85,6 @@ function format_gigabytes($megabytes)
|
||||
*/
|
||||
function get_storage_fill_percentage($used, $capacity)
|
||||
{
|
||||
|
||||
// Format gigabytes to bytes
|
||||
$total = intval(Metric::megabytes($capacity)->numberOfBytes());
|
||||
|
||||
@@ -97,6 +95,18 @@ function get_storage_fill_percentage($used, $capacity)
|
||||
return number_format((float)$progress, 2, '.', '');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get user capacity fill percentage
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function user_storage_percentage() {
|
||||
|
||||
$user = \Illuminate\Support\Facades\Auth::user();
|
||||
|
||||
return get_storage_fill_percentage($user->used_capacity, config('vuefilemanager.user_storage_capacity'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Find all key values in recursive array
|
||||
*
|
||||
|
||||
13
config/vuefilemanager.php
Normal file
13
config/vuefilemanager.php
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
// Enable or disable user account registration
|
||||
'registration' => true,
|
||||
|
||||
// Limit your storage size for every user if this option is enabled
|
||||
'limit_storage_by_capacity' => true,
|
||||
|
||||
// Define user storage capacity in MB. E.g. value 2000 is 2.00GB
|
||||
'user_storage_capacity' => 100,
|
||||
];
|
||||
@@ -52,5 +52,65 @@
|
||||
"/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.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"
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div id="app">
|
||||
<VueFileManager :config="config" style="height: 100%; width: 100%"/>
|
||||
<VueFileManager style="height: 100%; width: 100%"/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -12,21 +12,10 @@
|
||||
components: {
|
||||
VueFileManager
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
config: {
|
||||
//api: 'https://vuefilemanager.hi5ve.digital/api'
|
||||
api: 'http://localhost:8000/api'
|
||||
//api: 'http://172.20.10.5:8000/api'
|
||||
//api: 'http://192.168.1.131:8000/api'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
@import "@assets/app.scss";
|
||||
|
||||
#app {
|
||||
height: 100%;
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
<Auth v-if="isGuest" />
|
||||
|
||||
<div v-if="isLogged" id="auth">
|
||||
|
||||
<!--System alerts-->
|
||||
<Alert />
|
||||
|
||||
@@ -31,11 +32,9 @@
|
||||
import Auth from '@/components/VueFileManagerComponents/Auth'
|
||||
import {ResizeSensor} from 'css-element-queries'
|
||||
import {mapGetters} from 'vuex'
|
||||
import {events} from '@/bus'
|
||||
|
||||
export default {
|
||||
name: 'VueFileManager',
|
||||
props: ['config'],
|
||||
components: {
|
||||
UserSettings,
|
||||
FilesView,
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<AuthButton icon="chevron-right" text="Next Step" :loading="isLoading" :disabled="isLoading"/>
|
||||
</ValidationObserver>
|
||||
|
||||
<span class="additional-link">Don’t have an account? <b
|
||||
<span v-if="config.userRegistration" class="additional-link">Don’t have an account? <b
|
||||
@click="goToAuthPage('sign-up')">Register account.</b></span>
|
||||
</AuthContent>
|
||||
|
||||
@@ -98,10 +98,10 @@
|
||||
</div>
|
||||
|
||||
<div class="block-wrapper">
|
||||
<label>Confirm your new password:</label>
|
||||
<label>Confirm new password:</label>
|
||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Confirm Password"
|
||||
rules="required" v-slot="{ errors }">
|
||||
<input v-model="recoverPassword.newPasswordConfirm" placeholder="Confirm your new password"
|
||||
<input v-model="recoverPassword.newPasswordConfirm" placeholder="Confirm new password"
|
||||
type="password" :class="{'is-error': errors[0]}"/>
|
||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||
</ValidationProvider>
|
||||
@@ -198,7 +198,7 @@
|
||||
import AuthContent from '@/components/VueFileManagerComponents/Auth/AuthContent'
|
||||
import AuthButton from '@/components/VueFileManagerComponents/Auth/AuthButton'
|
||||
import {required} from 'vee-validate/dist/rules'
|
||||
import {events} from '@/bus'
|
||||
import {mapGetters} from 'vuex'
|
||||
import axios from 'axios'
|
||||
|
||||
export default {
|
||||
@@ -211,24 +211,32 @@
|
||||
AuthButton,
|
||||
required,
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(['config']),
|
||||
},
|
||||
watch: {
|
||||
loginEmail(val) {
|
||||
this.recoverEmail = val
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
isLoading: false,
|
||||
checkedAccount: undefined,
|
||||
loginPassword: 'vuefilemanager',
|
||||
loginEmail: 'peterpapp@makingcg.com',
|
||||
recoverEmail: 'peterpapp@makingcg.com',
|
||||
loginPassword: '',
|
||||
loginEmail: '',
|
||||
recoverEmail: '',
|
||||
recoverPassword: {
|
||||
token: undefined,
|
||||
email: 'peterpapp@makingcg.com',
|
||||
newPassword: 'vuefilemanager',
|
||||
newPasswordConfirm: 'vuefilemanager',
|
||||
email: '',
|
||||
newPassword: '',
|
||||
newPasswordConfirm: '',
|
||||
},
|
||||
register: {
|
||||
name: 'Hi5Ve Digital',
|
||||
email: 'peterpapp@makingcg.com',
|
||||
password: 'vuefilemanager',
|
||||
password_confirmation: 'vuefilemanager',
|
||||
name: '',
|
||||
email: '',
|
||||
password: '',
|
||||
password_confirmation: '',
|
||||
},
|
||||
}
|
||||
},
|
||||
@@ -299,7 +307,7 @@
|
||||
email: this.loginEmail,
|
||||
password: this.loginPassword,
|
||||
})
|
||||
.then(response => {
|
||||
.then(() => {
|
||||
|
||||
// End loading
|
||||
this.isLoading = false
|
||||
@@ -335,7 +343,7 @@
|
||||
.post(this.$store.getters.api + '/password/email', {
|
||||
email: this.recoverEmail
|
||||
})
|
||||
.then(response => {
|
||||
.then(() => {
|
||||
|
||||
// End loading
|
||||
this.isLoading = false
|
||||
@@ -371,7 +379,7 @@
|
||||
password: this.recoverPassword.newPassword,
|
||||
password_confirmation: this.recoverPassword.newPasswordConfirm,
|
||||
})
|
||||
.then(response => {
|
||||
.then(() => {
|
||||
|
||||
// End loading
|
||||
this.isLoading = false
|
||||
@@ -414,16 +422,13 @@
|
||||
// Send request to get user token
|
||||
axios
|
||||
.post(this.$store.getters.api + '/user/register', this.register)
|
||||
.then(response => {
|
||||
.then(() => {
|
||||
|
||||
// End loading
|
||||
this.isLoading = false
|
||||
|
||||
// Store token to localstorage
|
||||
localStorage.setItem('access_token', response.data.access_token)
|
||||
|
||||
// Store token to vuex
|
||||
this.$store.commit('RETRIEVE_TOKEN', response.data.access_token)
|
||||
// Set login state
|
||||
this.$store.commit('SET_AUTHORIZED', true)
|
||||
})
|
||||
.catch(error => {
|
||||
|
||||
@@ -467,7 +472,6 @@
|
||||
|
||||
<style scoped lang="scss">
|
||||
@import "@assets/app.scss";
|
||||
//@import "@/assets/scss/_forms.scss";
|
||||
|
||||
.auth-form {
|
||||
text-align: center;
|
||||
@@ -506,6 +510,10 @@
|
||||
.block-form {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
|
||||
.block-wrapper label {
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
|
||||
.additional-link {
|
||||
@@ -535,7 +543,6 @@
|
||||
@media only screen and (max-width: 690px) {
|
||||
|
||||
.auth-form {
|
||||
//font-size: 90%;
|
||||
width: 100%;
|
||||
|
||||
h1 {
|
||||
|
||||
@@ -109,7 +109,7 @@
|
||||
right: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
background: rgba(255, 255, 255, 0.5);
|
||||
background: rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
ref="image"
|
||||
:src="imagePreview"
|
||||
class="image-preview"
|
||||
v-if="data || imagePreview"
|
||||
v-if="imagePreview"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -55,13 +55,13 @@
|
||||
<TextLabel>Last Uploads</TextLabel>
|
||||
|
||||
<p class="empty-list" v-if="app.latest_uploads.length == 0">You don't have any latest uploads.</p>
|
||||
<FileListItemThumbnail @dblclick.native="downloadFile(item)" @click.native="showFileDetail(item)"
|
||||
:file="item" v-for="item in app.latest_uploads" :key="item.unique_id"/>
|
||||
|
||||
<FileListItemThumbnail @dblclick.native="downloadFile(item)" @click.native="showFileDetail(item)" :file="item" v-for="item in app.latest_uploads" :key="item.unique_id"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--Storage Size Info-->
|
||||
<StorageSize/>
|
||||
<StorageSize v-if="config.storageLimit"/>
|
||||
|
||||
<div v-if="isSmallAppSize" class="log-out-button">
|
||||
<ButtonBase @click.native="$store.dispatch('logOut')" button-style="danger">Log Out</ButtonBase>
|
||||
@@ -89,7 +89,7 @@
|
||||
TextLabel,
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(['homeDirectory', 'app', 'appSize']),
|
||||
...mapGetters(['homeDirectory', 'app', 'appSize', 'config']),
|
||||
isSmallAppSize() {
|
||||
return this.appSize === 'small'
|
||||
}
|
||||
@@ -174,7 +174,6 @@
|
||||
<style scoped lang="scss">
|
||||
@import "@assets/app.scss";
|
||||
|
||||
|
||||
#sidebar {
|
||||
position: relative;
|
||||
flex: 0 0 295px;
|
||||
@@ -201,39 +200,11 @@
|
||||
.menu-list-wrapper {
|
||||
margin-bottom: 25px;
|
||||
|
||||
&.favourites {
|
||||
|
||||
&.is-dragenter {
|
||||
|
||||
.menu-list {
|
||||
border: 2px dashed $theme;
|
||||
border-radius: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
.menu-list {
|
||||
border: 2px dashed transparent;
|
||||
|
||||
.menu-list-item {
|
||||
padding: 10px 13px;
|
||||
|
||||
.icon {
|
||||
@include font-size(20);
|
||||
width: 20px;
|
||||
|
||||
path {
|
||||
fill: $theme;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.menu-list {
|
||||
|
||||
.menu-list-item {
|
||||
display: block;
|
||||
padding: 10px 13px;
|
||||
padding: 10px 15px;
|
||||
@include transition(150ms);
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
@@ -261,7 +232,7 @@
|
||||
.icon {
|
||||
@include font-size(13);
|
||||
width: 15px;
|
||||
margin-right: 15px;
|
||||
margin-right: 9px;
|
||||
vertical-align: middle;
|
||||
|
||||
path {
|
||||
@@ -295,6 +266,34 @@
|
||||
}
|
||||
}
|
||||
|
||||
&.favourites {
|
||||
|
||||
&.is-dragenter {
|
||||
|
||||
.menu-list {
|
||||
border: 2px dashed $theme;
|
||||
border-radius: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
.menu-list {
|
||||
border: 2px dashed transparent;
|
||||
|
||||
.menu-list-item {
|
||||
padding: 10px 13px;
|
||||
|
||||
.icon {
|
||||
@include font-size(20);
|
||||
width: 20px;
|
||||
|
||||
path {
|
||||
fill: $theme;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.empty-list {
|
||||
@include font-size(12);
|
||||
color: $text-muted;
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<span class="title">Storage</span>
|
||||
<span class="size">{{ app.storage.used }} of {{ app.storage.capacity }} Used</span>
|
||||
</div>
|
||||
<ProgressBar :progress="app.storage.percentage"/>
|
||||
<ProgressBar :progress="app.storage.percentage" :class="{'is-exceeded': app.storage.percentage > 100}"/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -57,6 +57,13 @@
|
||||
}
|
||||
}
|
||||
|
||||
.progress-bar {
|
||||
|
||||
&.is-exceeded /deep/ span {
|
||||
background: $danger;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 690px) {
|
||||
|
||||
.storage-size {
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
|
||||
.email {
|
||||
@include font-size(13);
|
||||
color: $light_text;
|
||||
color: $theme;
|
||||
display: block;
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
@@ -100,6 +100,8 @@
|
||||
},
|
||||
watch: {
|
||||
name: debounce(function (val) {
|
||||
if (val === '') return
|
||||
|
||||
this.$store.commit('UPDATE_NAME', val)
|
||||
}, 300),
|
||||
},
|
||||
@@ -119,19 +121,11 @@
|
||||
|
||||
if (!isValid) return;
|
||||
|
||||
// Start loading
|
||||
//this.isLoading = true
|
||||
|
||||
// Send request to get user reset link
|
||||
axios
|
||||
.post(this.$store.getters.api + '/user/password', {
|
||||
password: this.newPassword,
|
||||
password_confirmation: this.newPasswordConfirmation,
|
||||
},
|
||||
{
|
||||
headers: {
|
||||
'Authorization': 'Bearer ' + this.$store.getters.token
|
||||
}
|
||||
})
|
||||
.then(() => {
|
||||
|
||||
@@ -147,9 +141,6 @@
|
||||
title: 'Your password was changed!',
|
||||
message: 'So now, you have awesome new password.',
|
||||
})
|
||||
|
||||
// End loading
|
||||
//this.isLoading = false
|
||||
})
|
||||
.catch(error => {
|
||||
|
||||
@@ -162,9 +153,6 @@
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// End loading
|
||||
//this.isLoading = false
|
||||
})
|
||||
}
|
||||
},
|
||||
@@ -178,7 +166,6 @@
|
||||
<style lang="scss">
|
||||
@import "@assets/app.scss";
|
||||
|
||||
|
||||
.avatar-upload {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
37
resources/js/helpers.js
vendored
37
resources/js/helpers.js
vendored
@@ -14,16 +14,15 @@ const Helpers = {
|
||||
|
||||
Vue.prototype.$updateText = debounce(function (route, name, value) {
|
||||
|
||||
axios.put(this.$store.getters.api + route, {name, value}, {
|
||||
headers: {
|
||||
'Authorization': 'Bearer ' + this.$store.getters.token
|
||||
}
|
||||
})
|
||||
.then(response => {
|
||||
console.log('done!');
|
||||
})
|
||||
if (value === '') return
|
||||
|
||||
axios.put(this.$store.getters.api + route, {name, value})
|
||||
.catch(error => {
|
||||
console.log('shit!');
|
||||
events.$emit('alert:open', {
|
||||
title: 'Whooops, something went wrong :(',
|
||||
message:
|
||||
"Something went wrong and we can't continue. Please contact us."
|
||||
})
|
||||
})
|
||||
}, 300)
|
||||
|
||||
@@ -39,14 +38,14 @@ const Helpers = {
|
||||
axios.post(this.$store.getters.api + route, formData, {
|
||||
headers: {
|
||||
'Content-Type': 'multipart/form-data',
|
||||
'Authorization': 'Bearer ' + this.$store.getters.token,
|
||||
}
|
||||
})
|
||||
.then(response => {
|
||||
console.log('done!');
|
||||
})
|
||||
.catch(error => {
|
||||
console.log('shit!');
|
||||
events.$emit('alert:open', {
|
||||
title: 'Whooops, something went wrong :(',
|
||||
message:
|
||||
"Something went wrong and we can't continue. Please contact us."
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
@@ -64,6 +63,16 @@ const Helpers = {
|
||||
// Prevent submit empty files
|
||||
if (files && files.length == 0) return
|
||||
|
||||
if (this.$store.getters.app.storage.percentage >= 100) {
|
||||
events.$emit('alert:open', {
|
||||
title: 'Whooops, you exceed your storage limit :(',
|
||||
message:
|
||||
"Please contact your administrator to change your limit."
|
||||
})
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
let fileCount = files.length
|
||||
let fileCountSucceed = 1
|
||||
|
||||
|
||||
26
resources/js/store/modules/filesView.js
vendored
26
resources/js/store/modules/filesView.js
vendored
@@ -175,18 +175,21 @@ const actions = {
|
||||
})
|
||||
})
|
||||
},
|
||||
removeItem: (context, data) => {
|
||||
removeItem: ({commit, state, getters}, data) => {
|
||||
|
||||
// Remove file
|
||||
context.commit('REMOVE_ITEM', data.unique_id)
|
||||
if (data.type === 'file') context.commit('REMOVE_ITEM_FROM_RECENT_UPLOAD', data.unique_id)
|
||||
if (data.type === 'folder') context.commit('REMOVE_ITEM_FROM_FAVOURITES', data.unique_id)
|
||||
commit('REMOVE_ITEM', data.unique_id)
|
||||
|
||||
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)
|
||||
|
||||
// Remove file preview
|
||||
context.commit('CLEAR_FILEINFO_DETAIL')
|
||||
commit('CLEAR_FILEINFO_DETAIL')
|
||||
|
||||
axios
|
||||
.post(context.getters.api + '/remove-item', {
|
||||
.post(getters.api + '/remove-item', {
|
||||
type: data.type,
|
||||
unique_id: data.unique_id,
|
||||
force_delete: data.deleted_at ? true : false
|
||||
@@ -201,6 +204,12 @@ const actions = {
|
||||
})
|
||||
},
|
||||
restoreItem: (context, item) => {
|
||||
|
||||
let restoreToHome = false
|
||||
|
||||
// Check if file can be restored to home directory
|
||||
if (context.state.currentFolder.location === 'trash' && item.type !== 'folder') restoreToHome = true
|
||||
|
||||
// Remove file
|
||||
context.commit('REMOVE_ITEM', item.unique_id)
|
||||
|
||||
@@ -211,6 +220,7 @@ const actions = {
|
||||
.post(context.getters.api + '/restore-item', {
|
||||
type: item.type,
|
||||
unique_id: item.unique_id,
|
||||
to_home: restoreToHome,
|
||||
})
|
||||
.catch(() => {
|
||||
// Show error message
|
||||
@@ -243,6 +253,10 @@ const actions = {
|
||||
.then(response => {
|
||||
context.commit('ADD_NEW_ITEMS', response.data)
|
||||
context.commit('UPDATE_RECENT_UPLOAD', response.data)
|
||||
context.commit(
|
||||
'UPLOADING_FILE_PROGRESS',
|
||||
0
|
||||
)
|
||||
resolve(response)
|
||||
})
|
||||
.catch(error => {
|
||||
|
||||
7
resources/js/store/modules/userAuth.js
vendored
7
resources/js/store/modules/userAuth.js
vendored
@@ -21,13 +21,14 @@ const actions = {
|
||||
}
|
||||
)
|
||||
},
|
||||
logOut: (context) => {
|
||||
logOut: ({getters, commit}) => {
|
||||
axios
|
||||
.get(context.getters.api + '/logout')
|
||||
.get(getters.api + '/logout')
|
||||
.then(() => {
|
||||
|
||||
// Commit Remove Access Token from vuex storage
|
||||
context.commit('DESTROY_DATA')
|
||||
commit('DESTROY_DATA')
|
||||
commit('SET_CURRENT_VIEW', 'files')
|
||||
})
|
||||
},
|
||||
addToFavourites: (context, folder_unique_id) => {
|
||||
|
||||
2
resources/sass/app.scss
vendored
2
resources/sass/app.scss
vendored
@@ -4,4 +4,4 @@
|
||||
// Variables
|
||||
@import 'vue-file-manager/_variables';
|
||||
@import 'vue-file-manager/_mixins';
|
||||
@import 'vue-file-manager/_forms';
|
||||
//@import 'vue-file-manager/_forms';
|
||||
|
||||
@@ -16,8 +16,10 @@
|
||||
|
||||
<script>
|
||||
let config = {
|
||||
hasAuthCookie: {{ Cookie::has('token') ? 1 : 0 }},
|
||||
api: '{{ url('/api') }}',
|
||||
hasAuthCookie: {{ Cookie::has('token') ? 1 : 0 }},
|
||||
userRegistration: {{ config('vuefilemanager.registration') ? 1 : 0 }},
|
||||
storageLimit: {{ config('vuefilemanager.limit_storage_by_capacity') ? 1 : 0 }},
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| API Routes
|
||||
@@ -13,16 +10,6 @@ use Illuminate\Http\Request;
|
||||
|
|
||||
*/
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Public API Routes for no needed user accounts
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
Route::group(['middleware' => ['api']], function () {
|
||||
|
||||
});
|
||||
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Public API Routes
|
||||
@@ -30,14 +17,14 @@ Route::group(['middleware' => ['api']], function () {
|
||||
*/
|
||||
Route::group(['middleware' => ['api']], function () {
|
||||
|
||||
// User authentification
|
||||
Route::post('/user/check', 'PrivateCloud\AuthController@check_account');
|
||||
Route::post('/user/register', 'PrivateCloud\AuthController@register');
|
||||
Route::post('/user/login', 'PrivateCloud\AuthController@login');
|
||||
|
||||
// User reset password
|
||||
Route::post('/password/email', 'PrivateCloud\ForgotPasswordController@sendResetLinkEmail');
|
||||
Route::post('/password/reset', 'PrivateCloud\ResetPasswordController@reset');
|
||||
Route::post('/password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail');
|
||||
Route::post('/password/reset', 'Auth\ResetPasswordController@reset');
|
||||
|
||||
// User authentification
|
||||
Route::post('/user/check', 'Auth\AuthController@check_account');
|
||||
Route::post('/user/register', 'Auth\AuthController@register');
|
||||
Route::post('/user/login', 'Auth\AuthController@login');
|
||||
});
|
||||
|
||||
/*
|
||||
@@ -46,30 +33,29 @@ Route::group(['middleware' => ['api']], function () {
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
Route::group(['middleware' => ['throttle:500,1', 'auth:api', 'auth.cookie']], function () {
|
||||
Route::get('/file/{name}', 'FileManagerController@get_file')->name('file');
|
||||
});
|
||||
|
||||
Route::group(['middleware' => ['auth:api', 'auth.cookie']], function () {
|
||||
|
||||
// User account
|
||||
Route::post('/user/password', 'PrivateCloud\UserAccountController@change_password');
|
||||
Route::put('/user/profile', 'PrivateCloud\UserAccountController@update_profile');
|
||||
Route::get('/user', 'PrivateCloud\UserAccountController@user');
|
||||
Route::get('/logout', 'PrivateCloud\AuthController@logout');
|
||||
// File route
|
||||
Route::get('/file/{name}', 'FileManagerController@get_file')->name('file');
|
||||
|
||||
// User account routes
|
||||
Route::post('/user/password', 'UserAccountController@change_password');
|
||||
Route::put('/user/profile', 'UserAccountController@update_profile');
|
||||
Route::get('/logout', 'Auth\AuthController@logout');
|
||||
Route::get('/user', 'UserAccountController@user');
|
||||
|
||||
// File manager routes
|
||||
Route::get('/folder/{unique_id}', 'PrivateCloud\FileManagerController@folder')->where('unique_id', '[0-9]+');
|
||||
Route::post('/remove-from-favourites', 'PrivateCloud\UserAccountController@remove_from_favourites');
|
||||
Route::get('/file-detail/{unique_id}', 'PrivateCloud\FileManagerController@get_file_detail');
|
||||
Route::post('/add-to-favourites', 'PrivateCloud\UserAccountController@add_to_favourites');
|
||||
Route::post('/create-folder', 'PrivateCloud\FileManagerController@create_folder');
|
||||
Route::delete('/empty-trash', 'PrivateCloud\FileManagerController@empty_trash');
|
||||
Route::post('/restore-item', 'PrivateCloud\FileManagerController@restore_item');
|
||||
Route::post('/rename-item', 'PrivateCloud\FileManagerController@rename_item');
|
||||
Route::post('/remove-item', 'PrivateCloud\FileManagerController@delete_item');
|
||||
Route::post('/upload-file', 'PrivateCloud\FileManagerController@upload_item');
|
||||
Route::post('/move-item', 'PrivateCloud\FileManagerController@move_item');
|
||||
Route::get('/search', 'PrivateCloud\FileManagerController@search');
|
||||
Route::get('/trash', 'PrivateCloud\FileManagerController@trash');
|
||||
Route::get('/folder/{unique_id}', 'FileManagerController@folder')->where('unique_id', '[0-9]+');
|
||||
Route::post('/remove-from-favourites', 'UserAccountController@remove_from_favourites');
|
||||
Route::get('/file-detail/{unique_id}', 'FileManagerController@get_file_detail');
|
||||
Route::post('/add-to-favourites', 'UserAccountController@add_to_favourites');
|
||||
Route::post('/create-folder', 'FileManagerController@create_folder');
|
||||
Route::delete('/empty-trash', 'FileManagerController@empty_trash');
|
||||
Route::post('/restore-item', 'FileManagerController@restore_item');
|
||||
Route::post('/rename-item', 'FileManagerController@rename_item');
|
||||
Route::post('/remove-item', 'FileManagerController@delete_item');
|
||||
Route::post('/upload-file', 'FileManagerController@upload_item');
|
||||
Route::post('/move-item', 'FileManagerController@move_item');
|
||||
Route::get('/search', 'FileManagerController@search');
|
||||
Route::get('/trash', 'FileManagerController@trash');
|
||||
});
|
||||
|
||||
@@ -11,9 +11,8 @@
|
||||
|
|
||||
*/
|
||||
|
||||
// Get File
|
||||
Route::get('/avatars/{avatar}', 'FileManagerController@get_avatar')->name('avatar');
|
||||
// Get user avatar
|
||||
Route::get('/avatars/{avatar}', 'AppFunctionsController@get_avatar')->name('avatar');
|
||||
|
||||
|
||||
// Landing Page
|
||||
Route::get('/', 'PrivateCloud\FileManagerController@index');
|
||||
// Index Page
|
||||
Route::get('/{any?}', 'AppFunctionsController@index')->where('any', '.*');
|
||||
Reference in New Issue
Block a user