V 1.1 Beta

This commit is contained in:
MakingCG
2020-03-11 10:36:10 +01:00
parent 3285a7e1c2
commit 2deca027cd
33 changed files with 837 additions and 1148 deletions

1
.gitignore vendored
View File

@@ -4,6 +4,7 @@
/storage/*.key
/storage/*.index
/vendor
.idea
.env
.env.backup
.phpunit.result.cache

6
.idea/vcs.xml generated Normal file
View 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
View File

@@ -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>-&gt;each</find>
<find>-&gt;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>

View 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;
}
}

View File

@@ -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;
}
}
/**

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Http\Controllers\PrivateCLoud;
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Http\Controllers\PrivateCLoud;
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Mail\TestMail;

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Http\Controllers\PrivateCLoud;
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Http\Controllers\PrivateCLoud;
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Http\Controllers\PrivateCLoud;
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Http\Controllers\PrivateCLoud;
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;

View File

@@ -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
*

View File

@@ -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;
}
}

View File

@@ -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();

View File

@@ -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
View 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,
];

View File

@@ -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"
}

View File

@@ -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%;

View File

@@ -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,

View File

@@ -19,7 +19,7 @@
<AuthButton icon="chevron-right" text="Next Step" :loading="isLoading" :disabled="isLoading"/>
</ValidationObserver>
<span class="additional-link">Dont have an account? <b
<span v-if="config.userRegistration" class="additional-link">Dont 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 {

View File

@@ -109,7 +109,7 @@
right: 0;
left: 0;
bottom: 0;
background: rgba(255, 255, 255, 0.5);
background: rgba(0, 0, 0, 0.25);
}
}

View File

@@ -11,7 +11,7 @@
ref="image"
:src="imagePreview"
class="image-preview"
v-if="data || imagePreview"
v-if="imagePreview"
/>
</div>
</template>

View File

@@ -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;

View File

@@ -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 {

View File

@@ -103,7 +103,7 @@
.email {
@include font-size(13);
color: $light_text;
color: $theme;
display: block;
margin-top: 2px;
}

View File

@@ -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;

View File

@@ -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

View File

@@ -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 => {

View File

@@ -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) => {

View File

@@ -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';

View File

@@ -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>

View File

@@ -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');
});

View File

@@ -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', '.*');