mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-18 08:12:15 +00:00
api resource refactoring part 3
This commit is contained in:
@@ -12,7 +12,7 @@
|
|||||||
"/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared~f312a84e.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared~f312a84e.js?id=004c11df35e63517608d",
|
"/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared~f312a84e.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared~f312a84e.js?id=004c11df35e63517608d",
|
||||||
"/chunks/admin~chunks/platform.js": "/chunks/admin~chunks/platform.js?id=0e511f0ceaac7257bf25",
|
"/chunks/admin~chunks/platform.js": "/chunks/admin~chunks/platform.js?id=0e511f0ceaac7257bf25",
|
||||||
"/chunks/admin~chunks/platform~chunks/settings.js": "/chunks/admin~chunks/platform~chunks/settings.js?id=f3bc2f8030f1dd06472a",
|
"/chunks/admin~chunks/platform~chunks/settings.js": "/chunks/admin~chunks/platform~chunks/settings.js?id=f3bc2f8030f1dd06472a",
|
||||||
"/chunks/admin~chunks/platform~chunks/settings~chunks/shared.js": "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.js?id=8a92b1d0d66e0dc8fb71",
|
"/chunks/admin~chunks/platform~chunks/settings~chunks/shared.js": "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.js?id=99b4e9845e03f9d2e8ed",
|
||||||
"/chunks/app-appearance.js": "/chunks/app-appearance.js?id=5f8d3e698c1fd5b9b5a5",
|
"/chunks/app-appearance.js": "/chunks/app-appearance.js?id=5f8d3e698c1fd5b9b5a5",
|
||||||
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~605f4c49.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~605f4c49.js?id=055d17c4463d3ef30218",
|
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~605f4c49.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~605f4c49.js?id=055d17c4463d3ef30218",
|
||||||
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js?id=fd6936cca8f3b8b4de9a",
|
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js?id=fd6936cca8f3b8b4de9a",
|
||||||
@@ -204,8 +204,8 @@
|
|||||||
"/js/main.eed73e10bc48ddd70f77.hot-update.js": "/js/main.eed73e10bc48ddd70f77.hot-update.js",
|
"/js/main.eed73e10bc48ddd70f77.hot-update.js": "/js/main.eed73e10bc48ddd70f77.hot-update.js",
|
||||||
"/js/main.06f03f5764345d4a21ae.hot-update.js": "/js/main.06f03f5764345d4a21ae.hot-update.js",
|
"/js/main.06f03f5764345d4a21ae.hot-update.js": "/js/main.06f03f5764345d4a21ae.hot-update.js",
|
||||||
"/chunks/admin~chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/my-shared-item~0919ded8.js": "/chunks/admin~chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/my-shared-item~0919ded8.js?id=e08424c8b2e29269c282",
|
"/chunks/admin~chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/my-shared-item~0919ded8.js": "/chunks/admin~chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/my-shared-item~0919ded8.js?id=e08424c8b2e29269c282",
|
||||||
"/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~6dc4969c.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~6dc4969c.js?id=52a5d33ca4b4749dd679",
|
"/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~6dc4969c.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~6dc4969c.js?id=4746e578131ec5449693",
|
||||||
"/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~8d246649.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~8d246649.js?id=5e36dcf07975aa1955fb",
|
"/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~8d246649.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~8d246649.js?id=fc74f2c33b38bd414bca",
|
||||||
"/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared~860e9aef.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared~860e9aef.js?id=285952e7d81a73c1b366",
|
"/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared~860e9aef.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared~860e9aef.js?id=285952e7d81a73c1b366",
|
||||||
"/chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/my-shared-items~chunks/page~9b5759a9.js": "/chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/my-shared-items~chunks/page~9b5759a9.js?id=eb26643e072aa1f2b4b5",
|
"/chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/my-shared-items~chunks/page~9b5759a9.js": "/chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/my-shared-items~chunks/page~9b5759a9.js?id=eb26643e072aa1f2b4b5",
|
||||||
"/chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared/files~chunks/trash.js": "/chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared/files~chunks/trash.js?id=854ed8a5f3a883f6d4c5",
|
"/chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared/files~chunks/trash.js": "/chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared/files~chunks/trash.js?id=854ed8a5f3a883f6d4c5",
|
||||||
@@ -275,5 +275,15 @@
|
|||||||
"/js/main.ab10910fe063d675001a.hot-update.js": "/js/main.ab10910fe063d675001a.hot-update.js",
|
"/js/main.ab10910fe063d675001a.hot-update.js": "/js/main.ab10910fe063d675001a.hot-update.js",
|
||||||
"/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared/files~chunks/trash.67dbc41f14111befc449.hot-update.js": "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared/files~chunks/trash.67dbc41f14111befc449.hot-update.js",
|
"/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared/files~chunks/trash.67dbc41f14111befc449.hot-update.js": "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared/files~chunks/trash.67dbc41f14111befc449.hot-update.js",
|
||||||
"/js/main.742b35a7325a1164ece6.hot-update.js": "/js/main.742b35a7325a1164ece6.hot-update.js",
|
"/js/main.742b35a7325a1164ece6.hot-update.js": "/js/main.742b35a7325a1164ece6.hot-update.js",
|
||||||
"/js/main.c17fbc0fc4ce44a45291.hot-update.js": "/js/main.c17fbc0fc4ce44a45291.hot-update.js"
|
"/js/main.c17fbc0fc4ce44a45291.hot-update.js": "/js/main.c17fbc0fc4ce44a45291.hot-update.js",
|
||||||
|
"/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~8d246649.7ecca405e896e99c7399.hot-update.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~8d246649.7ecca405e896e99c7399.hot-update.js",
|
||||||
|
"/js/main.aacf02735be6683380cb.hot-update.js": "/js/main.aacf02735be6683380cb.hot-update.js",
|
||||||
|
"/js/main.7aadf25c13d1dd531752.hot-update.js": "/js/main.7aadf25c13d1dd531752.hot-update.js",
|
||||||
|
"/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~6dc4969c.c0c029c2523ca0cf38fb.hot-update.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~6dc4969c.c0c029c2523ca0cf38fb.hot-update.js",
|
||||||
|
"/chunks/admin~chunks/platform~chunks/settings~chunks/shared.027c39918be3318827b9.hot-update.js": "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.027c39918be3318827b9.hot-update.js",
|
||||||
|
"/chunks/admin~chunks/platform~chunks/settings~chunks/shared.64becd27fa67df342538.hot-update.js": "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.64becd27fa67df342538.hot-update.js",
|
||||||
|
"/chunks/admin~chunks/platform~chunks/settings~chunks/shared.0712655bd72af19a44db.hot-update.js": "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.0712655bd72af19a44db.hot-update.js",
|
||||||
|
"/chunks/admin~chunks/platform~chunks/settings~chunks/shared.0d0a3ec768afdd56172b.hot-update.js": "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.0d0a3ec768afdd56172b.hot-update.js",
|
||||||
|
"/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~8d246649.79e795629c63b8c2bd6f.hot-update.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~8d246649.79e795629c63b8c2bd6f.hot-update.js",
|
||||||
|
"/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~8d246649.805e066dbc352fc4f11f.hot-update.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~8d246649.805e066dbc352fc4f11f.hot-update.js"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -161,7 +161,7 @@ export default {
|
|||||||
events.$emit('mobile-context-menu:show', this.item)
|
events.$emit('mobile-context-menu:show', this.item)
|
||||||
},
|
},
|
||||||
dragEnter() {
|
dragEnter() {
|
||||||
if (this.item.type !== 'folder') return
|
if (this.item.data.type !== 'folder') return
|
||||||
|
|
||||||
this.area = true
|
this.area = true
|
||||||
},
|
},
|
||||||
@@ -226,7 +226,7 @@ export default {
|
|||||||
this.$router.push({name: 'Public', params: {token: this.$route.params.token, id: this.item.data.id}})
|
this.$router.push({name: 'Public', params: {token: this.$route.params.token, id: this.item.data.id}})
|
||||||
} else if (route === 'Trash') {
|
} else if (route === 'Trash') {
|
||||||
this.$router.push({name: 'Trash', params: {id: this.item.data.id}})
|
this.$router.push({name: 'Trash', params: {id: this.item.data.id}})
|
||||||
} else if (route === 'Files') {
|
} else if (['Files', 'MySharedItems'].includes(route)) {
|
||||||
this.$router.push({name: 'Files', params: {id: this.item.data.id}})
|
this.$router.push({name: 'Files', params: {id: this.item.data.id}})
|
||||||
} else if (route === 'TeamFolders') {
|
} else if (route === 'TeamFolders') {
|
||||||
this.$router.push({name: 'TeamFolders', params: {id: this.item.data.id}})
|
this.$router.push({name: 'TeamFolders', params: {id: this.item.data.id}})
|
||||||
@@ -269,7 +269,7 @@ export default {
|
|||||||
this.$router.push({name: 'Public', params: {token: this.$route.params.token, id: this.item.data.id}})
|
this.$router.push({name: 'Public', params: {token: this.$route.params.token, id: this.item.data.id}})
|
||||||
} else if (route === 'Trash') {
|
} else if (route === 'Trash') {
|
||||||
this.$router.push({name: 'Trash', params: {id: this.item.data.id}})
|
this.$router.push({name: 'Trash', params: {id: this.item.data.id}})
|
||||||
} else if (route === 'Files') {
|
} else if (['Files', 'MySharedItems'].includes(route)) {
|
||||||
this.$router.push({name: 'Files', params: {id: this.item.data.id}})
|
this.$router.push({name: 'Files', params: {id: this.item.data.id}})
|
||||||
} else if (route === 'TeamFolders') {
|
} else if (route === 'TeamFolders') {
|
||||||
this.$router.push({name: 'TeamFolders', params: {id: this.item.data.id}})
|
this.$router.push({name: 'TeamFolders', params: {id: this.item.data.id}})
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
isDeleted() {
|
isDeleted() {
|
||||||
return this.item.data.attributes.deleted_at ? true : false
|
return this.item.data.attributes.deleted_at
|
||||||
},
|
},
|
||||||
emoji() {
|
emoji() {
|
||||||
// Return emoji if is changed from rename popup
|
// Return emoji if is changed from rename popup
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
<div v-if="isEmptyQuery" class="spotlight-results">
|
<div v-if="isEmptyQuery" class="spotlight-results">
|
||||||
|
|
||||||
<!--Show results-->
|
<!--Show results-->
|
||||||
<div v-if="results.length !== 0" v-for="(item, i) in results" :key="item.id" class="result-item">
|
<div v-if="results.length !== 0" v-for="(item, i) in results" :key="item.data.id" class="result-item">
|
||||||
<FileItemList
|
<FileItemList
|
||||||
:item="item"
|
:item="item"
|
||||||
class="file-item"
|
class="file-item"
|
||||||
@@ -105,17 +105,17 @@ export default {
|
|||||||
let file = this.results[this.index]
|
let file = this.results[this.index]
|
||||||
|
|
||||||
// Show folder
|
// Show folder
|
||||||
if (file.type === 'folder') {
|
if (file.data.type === 'folder') {
|
||||||
this.$router.push({name: 'Files', params: {id: this.results[this.index].id}})
|
this.$router.push({name: 'Files', params: {id: this.results[this.index].data.id}})
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
// Show file
|
// Show file
|
||||||
if (['video', 'audio', 'image'].includes(file.type) || file.mimetype === 'pdf'){
|
if (['video', 'audio', 'image'].includes(file.data.type) || file.data.attributes.mimetype === 'pdf'){
|
||||||
this.$store.commit('ADD_TO_FAST_PREVIEW', this.results[this.index])
|
this.$store.commit('ADD_TO_FAST_PREVIEW', this.results[this.index])
|
||||||
|
|
||||||
events.$emit('file-preview:show')
|
events.$emit('file-preview:show')
|
||||||
} else {
|
} else {
|
||||||
this.$downloadFile(file.file_url, file.name + '.' + file.mimetype)
|
this.$downloadFile(file.data.attributes.file_url, file.data.attributes.name + '.' + file.data.attributes.mimetype)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -138,7 +138,7 @@ export default {
|
|||||||
let route = undefined
|
let route = undefined
|
||||||
|
|
||||||
if (this.$store.getters.sharedDetail) {
|
if (this.$store.getters.sharedDetail) {
|
||||||
let permission = this.$store.getters.sharedDetail.is_protected
|
let permission = this.$store.getters.sharedDetail.data.attributes.protected
|
||||||
? 'private'
|
? 'private'
|
||||||
: 'public'
|
: 'public'
|
||||||
|
|
||||||
@@ -153,7 +153,13 @@ export default {
|
|||||||
params: {query: value}
|
params: {query: value}
|
||||||
})
|
})
|
||||||
.then(response => {
|
.then(response => {
|
||||||
this.results = response.data
|
|
||||||
|
let files = response.data.files.data
|
||||||
|
let folders = response.data.folders.data
|
||||||
|
|
||||||
|
console.log(files);
|
||||||
|
|
||||||
|
this.results = folders.concat(files)
|
||||||
})
|
})
|
||||||
.catch(() => this.$isSomethingWrong())
|
.catch(() => this.$isSomethingWrong())
|
||||||
.finally(() => this.isLoading = false)
|
.finally(() => this.isLoading = false)
|
||||||
|
|||||||
14
resources/js/store/modules/fileBrowser.js
vendored
14
resources/js/store/modules/fileBrowser.js
vendored
@@ -81,7 +81,7 @@ const actions = {
|
|||||||
axios
|
axios
|
||||||
.get(getters.api + '/browse/latest')
|
.get(getters.api + '/browse/latest')
|
||||||
.then(response => {
|
.then(response => {
|
||||||
commit('LOADING_STATE', {loading: false, data: response.data})
|
commit('LOADING_STATE', {loading: false, data: response.data.files.data})
|
||||||
commit('SET_CURRENT_FOLDER', undefined)
|
commit('SET_CURRENT_FOLDER', undefined)
|
||||||
|
|
||||||
events.$emit('scrollTop')
|
events.$emit('scrollTop')
|
||||||
@@ -94,7 +94,11 @@ const actions = {
|
|||||||
axios
|
axios
|
||||||
.get(getters.api + '/browse/share' + getters.sorting.URI)
|
.get(getters.api + '/browse/share' + getters.sorting.URI)
|
||||||
.then(response => {
|
.then(response => {
|
||||||
commit('LOADING_STATE', {loading: false, data: response.data})
|
|
||||||
|
let folders = response.data.folders.data
|
||||||
|
let files = response.data.files.data
|
||||||
|
|
||||||
|
commit('LOADING_STATE', {loading: false, data: folders.concat(files)})
|
||||||
commit('SET_CURRENT_FOLDER', undefined)
|
commit('SET_CURRENT_FOLDER', undefined)
|
||||||
|
|
||||||
events.$emit('scrollTop')
|
events.$emit('scrollTop')
|
||||||
@@ -107,7 +111,11 @@ const actions = {
|
|||||||
axios
|
axios
|
||||||
.get(`${getters.api}/browse/trash/${id}/${getters.sorting.URI}`)
|
.get(`${getters.api}/browse/trash/${id}/${getters.sorting.URI}`)
|
||||||
.then(response => {
|
.then(response => {
|
||||||
commit('LOADING_STATE', {loading: false, data: response.data.content})
|
|
||||||
|
let folders = response.data.folders.data
|
||||||
|
let files = response.data.files.data
|
||||||
|
|
||||||
|
commit('LOADING_STATE', {loading: false, data: folders.concat(files)})
|
||||||
commit('SET_CURRENT_FOLDER', response.data.folder)
|
commit('SET_CURRENT_FOLDER', response.data.folder)
|
||||||
|
|
||||||
events.$emit('scrollTop')
|
events.$emit('scrollTop')
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Users\Models;
|
namespace App\Users\Models;
|
||||||
|
|
||||||
use ByteUnits\Metric;
|
use ByteUnits\Metric;
|
||||||
@@ -95,7 +96,7 @@ class User extends Authenticatable implements MustVerifyEmail
|
|||||||
{
|
{
|
||||||
$is_storage_limit = get_settings('storage_limitation') ?? 1;
|
$is_storage_limit = get_settings('storage_limitation') ?? 1;
|
||||||
|
|
||||||
if (! $is_storage_limit) {
|
if (!$is_storage_limit) {
|
||||||
return [
|
return [
|
||||||
'used' => $this->usedCapacity,
|
'used' => $this->usedCapacity,
|
||||||
'used_formatted' => Metric::bytes($this->usedCapacity)->format(),
|
'used_formatted' => Metric::bytes($this->usedCapacity)->format(),
|
||||||
@@ -103,7 +104,7 @@ class User extends Authenticatable implements MustVerifyEmail
|
|||||||
}
|
}
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'used' => (float) get_storage_fill_percentage($this->usedCapacity, $this->settings->storage_capacity),
|
'used' => (float)get_storage_fill_percentage($this->usedCapacity, $this->settings->storage_capacity),
|
||||||
'used_formatted' => get_storage_fill_percentage($this->usedCapacity, $this->settings->storage_capacity) . '%',
|
'used_formatted' => get_storage_fill_percentage($this->usedCapacity, $this->settings->storage_capacity) . '%',
|
||||||
'capacity' => $this->settings->storage_capacity,
|
'capacity' => $this->settings->storage_capacity,
|
||||||
'capacity_formatted' => format_gigabytes($this->settings->storage_capacity),
|
'capacity_formatted' => format_gigabytes($this->settings->storage_capacity),
|
||||||
@@ -116,7 +117,7 @@ class User extends Authenticatable implements MustVerifyEmail
|
|||||||
public function getUsedCapacityAttribute(): int
|
public function getUsedCapacityAttribute(): int
|
||||||
{
|
{
|
||||||
return $this->filesWithTrashed
|
return $this->filesWithTrashed
|
||||||
->map(fn ($item) => $item->getRawOriginal())->sum('filesize');
|
->map(fn($item) => $item->getRawOriginal())->sum('filesize');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -165,7 +166,10 @@ class User extends Authenticatable implements MustVerifyEmail
|
|||||||
public function latestUploads(): HasMany
|
public function latestUploads(): HasMany
|
||||||
{
|
{
|
||||||
return $this->hasMany(File::class)
|
return $this->hasMany(File::class)
|
||||||
->with(['parent:id,name'])
|
->with([
|
||||||
|
'parent:id,name',
|
||||||
|
'shared:token,id,item_id,permission,is_protected,expire_in',
|
||||||
|
])
|
||||||
->take(40);
|
->take(40);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,12 +2,12 @@
|
|||||||
namespace Domain\Browsing\Controllers;
|
namespace Domain\Browsing\Controllers;
|
||||||
|
|
||||||
use App\Users\Models\User;
|
use App\Users\Models\User;
|
||||||
use Illuminate\Support\Collection;
|
use Domain\Files\Resources\FilesCollection;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
class BrowseLatestFilesController
|
class BrowseLatestFilesController
|
||||||
{
|
{
|
||||||
public function __invoke(): Collection
|
public function __invoke(): array
|
||||||
{
|
{
|
||||||
$user = User::with([
|
$user = User::with([
|
||||||
'latestUploads' => fn ($query) => $query->sortable(['created_at' => 'desc']),
|
'latestUploads' => fn ($query) => $query->sortable(['created_at' => 'desc']),
|
||||||
@@ -15,6 +15,9 @@ class BrowseLatestFilesController
|
|||||||
->where('id', Auth::id())
|
->where('id', Auth::id())
|
||||||
->first();
|
->first();
|
||||||
|
|
||||||
return $user->latestUploads;
|
return [
|
||||||
|
'files' => new FilesCollection($user->latestUploads),
|
||||||
|
'root' => null,
|
||||||
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,14 +2,15 @@
|
|||||||
namespace Domain\Browsing\Controllers;
|
namespace Domain\Browsing\Controllers;
|
||||||
|
|
||||||
use Domain\Files\Models\File;
|
use Domain\Files\Models\File;
|
||||||
|
use Domain\Files\Resources\FilesCollection;
|
||||||
|
use Domain\Folders\Resources\FolderCollection;
|
||||||
use Domain\Sharing\Models\Share;
|
use Domain\Sharing\Models\Share;
|
||||||
use Domain\Folders\Models\Folder;
|
use Domain\Folders\Models\Folder;
|
||||||
use Illuminate\Support\Collection;
|
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
class BrowseSharedItemsController
|
class BrowseSharedItemsController
|
||||||
{
|
{
|
||||||
public function __invoke(): Collection
|
public function __invoke(): array
|
||||||
{
|
{
|
||||||
$user_id = Auth::id();
|
$user_id = Auth::id();
|
||||||
|
|
||||||
@@ -36,7 +37,10 @@ class BrowseSharedItemsController
|
|||||||
->get();
|
->get();
|
||||||
|
|
||||||
// Collect folders and files to single array
|
// Collect folders and files to single array
|
||||||
return collect([$folders, $files])
|
return [
|
||||||
->collapse();
|
'folders' => new FolderCollection($folders),
|
||||||
|
'files' => new FilesCollection($files),
|
||||||
|
'root' => null,
|
||||||
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,10 @@
|
|||||||
namespace Domain\Browsing\Controllers;
|
namespace Domain\Browsing\Controllers;
|
||||||
|
|
||||||
use Domain\Files\Models\File;
|
use Domain\Files\Models\File;
|
||||||
|
use Domain\Files\Resources\FilesCollection;
|
||||||
use Domain\Folders\Models\Folder;
|
use Domain\Folders\Models\Folder;
|
||||||
|
use Domain\Folders\Resources\FolderCollection;
|
||||||
|
use Illuminate\Http\Resources\Json\ResourceCollection;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
class BrowseTrashContentController
|
class BrowseTrashContentController
|
||||||
@@ -60,8 +63,9 @@ class BrowseTrashContentController
|
|||||||
|
|
||||||
// Collect folders and files to single array
|
// Collect folders and files to single array
|
||||||
return [
|
return [
|
||||||
'content' => collect([$folders, $files_trashed])->collapse(),
|
'folders' => new FolderCollection($folders),
|
||||||
'folder' => $requestedFolder,
|
'files' => new FilesCollection($files_trashed),
|
||||||
|
'root' => $requestedFolder,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,9 @@
|
|||||||
namespace Domain\Browsing\Controllers;
|
namespace Domain\Browsing\Controllers;
|
||||||
|
|
||||||
use Domain\Files\Models\File;
|
use Domain\Files\Models\File;
|
||||||
|
use Domain\Files\Resources\FilesCollection;
|
||||||
use Domain\Folders\Models\Folder;
|
use Domain\Folders\Models\Folder;
|
||||||
use Illuminate\Support\Collection;
|
use Domain\Folders\Resources\FolderCollection;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Domain\Items\Requests\SearchRequest;
|
use Domain\Items\Requests\SearchRequest;
|
||||||
|
|
||||||
@@ -11,7 +12,7 @@ class SearchFilesAndFoldersController
|
|||||||
{
|
{
|
||||||
public function __invoke(
|
public function __invoke(
|
||||||
SearchRequest $request
|
SearchRequest $request
|
||||||
): Collection {
|
): array {
|
||||||
$user_id = Auth::id();
|
$user_id = Auth::id();
|
||||||
|
|
||||||
$query = remove_accents(
|
$query = remove_accents(
|
||||||
@@ -19,17 +20,18 @@ class SearchFilesAndFoldersController
|
|||||||
);
|
);
|
||||||
|
|
||||||
// Search files id db
|
// Search files id db
|
||||||
$searched_files = File::search($query)
|
$files = File::search($query)
|
||||||
->where('user_id', $user_id)
|
->where('user_id', $user_id)
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
$searched_folders = Folder::search($query)
|
$folders = Folder::search($query)
|
||||||
->where('user_id', $user_id)
|
->where('user_id', $user_id)
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
// Collect folders and files to single array
|
// Collect folders and files to single array
|
||||||
return collect([$searched_folders, $searched_files])
|
return [
|
||||||
->collapse()
|
'folders' => new FolderCollection($folders),
|
||||||
->take(10);
|
'files' => new FilesCollection($files),
|
||||||
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,10 +2,13 @@
|
|||||||
namespace Domain\Browsing\Controllers;
|
namespace Domain\Browsing\Controllers;
|
||||||
|
|
||||||
use Domain\Files\Models\File;
|
use Domain\Files\Models\File;
|
||||||
|
use Domain\Files\Resources\FilesCollection;
|
||||||
|
use Domain\Folders\Resources\FolderCollection;
|
||||||
use Domain\Sharing\Models\Share;
|
use Domain\Sharing\Models\Share;
|
||||||
use Domain\Folders\Models\Folder;
|
use Domain\Folders\Models\Folder;
|
||||||
use Domain\Sharing\Actions\ProtectShareRecordAction;
|
use Domain\Sharing\Actions\ProtectShareRecordAction;
|
||||||
use Domain\Sharing\Actions\VerifyAccessToItemAction;
|
use Domain\Sharing\Actions\VerifyAccessToItemAction;
|
||||||
|
use Illuminate\Http\Resources\Json\ResourceCollection;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Browse shared folder
|
* Browse shared folder
|
||||||
@@ -44,10 +47,10 @@ class VisitorBrowseFolderController
|
|||||||
// Set thumbnail links for public files
|
// Set thumbnail links for public files
|
||||||
$files->map(fn ($file) => $file->setPublicUrl($shared->token));
|
$files->map(fn ($file) => $file->setPublicUrl($shared->token));
|
||||||
|
|
||||||
// Collect folders and files to single array
|
|
||||||
return [
|
return [
|
||||||
'content' => collect([$folders, $files])->collapse(),
|
'folders' => new FolderCollection($folders),
|
||||||
'folder' => $requestedFolder,
|
'files' => new FilesCollection($files),
|
||||||
|
'root' => $requestedFolder,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Domain\Browsing\Controllers;
|
namespace Domain\Browsing\Controllers;
|
||||||
|
|
||||||
|
use Domain\Files\Resources\FilesCollection;
|
||||||
|
use Domain\Folders\Resources\FolderCollection;
|
||||||
use Illuminate\Support\Arr;
|
use Illuminate\Support\Arr;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Domain\Files\Models\File;
|
use Domain\Files\Models\File;
|
||||||
use Domain\Sharing\Models\Share;
|
use Domain\Sharing\Models\Share;
|
||||||
use Domain\Folders\Models\Folder;
|
use Domain\Folders\Models\Folder;
|
||||||
use Illuminate\Support\Collection;
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Domain\Sharing\Actions\ProtectShareRecordAction;
|
use Domain\Sharing\Actions\ProtectShareRecordAction;
|
||||||
|
|
||||||
@@ -23,7 +24,7 @@ class VisitorSearchFilesAndFoldersController extends Controller
|
|||||||
public function __invoke(
|
public function __invoke(
|
||||||
Request $request,
|
Request $request,
|
||||||
Share $shared,
|
Share $shared,
|
||||||
): Collection {
|
): array {
|
||||||
// Check ability to access protected share record
|
// Check ability to access protected share record
|
||||||
($this->protectShareRecord)($shared);
|
($this->protectShareRecord)($shared);
|
||||||
|
|
||||||
@@ -64,8 +65,9 @@ class VisitorSearchFilesAndFoldersController extends Controller
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Collect folders and files to single array
|
// Collect folders and files to single array
|
||||||
return collect([$folders, $files])
|
return [
|
||||||
->collapse()
|
'folders' => new FolderCollection($folders),
|
||||||
->take(10);
|
'files' => new FilesCollection($files),
|
||||||
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,32 +84,6 @@ class File extends Model
|
|||||||
$this->public_access = $token;
|
$this->public_access = $token;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Format created at date
|
|
||||||
*/
|
|
||||||
public function getCreatedAtAttribute(): string
|
|
||||||
{
|
|
||||||
return format_date(
|
|
||||||
set_time_by_user_timezone($this->attributes['created_at']),
|
|
||||||
__t('time')
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Format deleted at date reformat
|
|
||||||
*/
|
|
||||||
public function getDeletedAtAttribute(): string | null
|
|
||||||
{
|
|
||||||
if (! $this->attributes['deleted_at']) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return format_date(
|
|
||||||
set_time_by_user_timezone($this->attributes['deleted_at']),
|
|
||||||
__t('time')
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Format fileSize
|
* Format fileSize
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -29,12 +29,15 @@ class FileResource extends JsonResource
|
|||||||
'thumbnail' => $this->thumbnail,
|
'thumbnail' => $this->thumbnail,
|
||||||
'metadata' => $this->metadata,
|
'metadata' => $this->metadata,
|
||||||
'folder_id' => $this->folder_id,
|
'folder_id' => $this->folder_id,
|
||||||
'updated_at' => format_date(
|
'updated_at' => $this->updated_at,
|
||||||
|
'created_at' => $this->created_at,
|
||||||
|
'deleted_at' => $this->deleted_at,
|
||||||
|
/*'updated_at' => format_date(
|
||||||
set_time_by_user_timezone($this->updated_at), __t('time')
|
set_time_by_user_timezone($this->updated_at), __t('time')
|
||||||
),
|
),
|
||||||
'created_at' => format_date(
|
'created_at' => format_date(
|
||||||
set_time_by_user_timezone($this->created_at), __t('time')
|
set_time_by_user_timezone($this->created_at), __t('time')
|
||||||
),
|
),*/
|
||||||
],
|
],
|
||||||
'relationships' => [
|
'relationships' => [
|
||||||
$this->mergeWhen($this->shared, fn() => [
|
$this->mergeWhen($this->shared, fn() => [
|
||||||
|
|||||||
@@ -116,21 +116,6 @@ class Folder extends Model
|
|||||||
return $folders + $files;
|
return $folders + $files;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Format deleted at date reformat
|
|
||||||
*/
|
|
||||||
public function getDeletedAtAttribute(): string | null
|
|
||||||
{
|
|
||||||
if (! $this->attributes['deleted_at']) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return format_date(
|
|
||||||
set_time_by_user_timezone($this->attributes['deleted_at']),
|
|
||||||
__t('time')
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get parent
|
* Get parent
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -24,12 +24,14 @@ class FolderResource extends JsonResource
|
|||||||
'isTeamFolder' => $this->team_folder,
|
'isTeamFolder' => $this->team_folder,
|
||||||
'items' => $this->items,
|
'items' => $this->items,
|
||||||
'trashed_items' => $this->trashed_items,
|
'trashed_items' => $this->trashed_items,
|
||||||
'updated_at' => format_date(
|
'updated_at' => $this->updated_at,
|
||||||
|
'created_at' => $this->created_at,
|
||||||
|
/*'updated_at' => format_date(
|
||||||
set_time_by_user_timezone($this->updated_at), __t('time')
|
set_time_by_user_timezone($this->updated_at), __t('time')
|
||||||
),
|
),
|
||||||
'created_at' => format_date(
|
'created_at' => format_date(
|
||||||
set_time_by_user_timezone($this->created_at), __t('time')
|
set_time_by_user_timezone($this->created_at), __t('time')
|
||||||
),
|
),*/
|
||||||
],
|
],
|
||||||
'relationships' => [
|
'relationships' => [
|
||||||
$this->mergeWhen($this->teamMembers, fn() => [
|
$this->mergeWhen($this->teamMembers, fn() => [
|
||||||
|
|||||||
Reference in New Issue
Block a user