mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-18 16:22:14 +00:00
search api update
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"/js/main.js": "/js/main.js",
|
"/js/main.js": "/js/main.js",
|
||||||
"/chunks/request.js": "/chunks/request.js?id=c9b8c3f50861144a",
|
"/chunks/request.js": "/chunks/request.js?id=e2e83e87b1f6d097",
|
||||||
"/chunks/request-upload.js": "/chunks/request-upload.js?id=3bc3423d2305cd30",
|
"/chunks/request-upload.js": "/chunks/request-upload.js?id=3bc3423d2305cd30",
|
||||||
"/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=19a0784e59d768ec",
|
"/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=19a0784e59d768ec",
|
||||||
"/chunks/status-check.js": "/chunks/status-check.js?id=9239a586761b912d",
|
"/chunks/status-check.js": "/chunks/status-check.js?id=9239a586761b912d",
|
||||||
@@ -9,13 +9,13 @@
|
|||||||
"/chunks/environment.js": "/chunks/environment.js?id=e4fdb87ff173d48a",
|
"/chunks/environment.js": "/chunks/environment.js?id=e4fdb87ff173d48a",
|
||||||
"/chunks/app-setup.js": "/chunks/app-setup.js?id=cbe7bfed06400736",
|
"/chunks/app-setup.js": "/chunks/app-setup.js?id=cbe7bfed06400736",
|
||||||
"/chunks/admin-account.js": "/chunks/admin-account.js?id=78d257775f5fc485",
|
"/chunks/admin-account.js": "/chunks/admin-account.js?id=78d257775f5fc485",
|
||||||
"/chunks/shared.js": "/chunks/shared.js?id=4fcd1523d9ae7ba1",
|
"/chunks/shared.js": "/chunks/shared.js?id=0c2f68a87ccf9be3",
|
||||||
"/chunks/shared/browser.js": "/chunks/shared/browser.js?id=3fd9baddb7333c24",
|
"/chunks/shared/browser.js": "/chunks/shared/browser.js?id=3fd9baddb7333c24",
|
||||||
"/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=a6063bed9be75a09",
|
"/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=a6063bed9be75a09",
|
||||||
"/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=b5519d193bce2339",
|
"/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=b5519d193bce2339",
|
||||||
"/chunks/not-found.js": "/chunks/not-found.js?id=d31bd699138cf828",
|
"/chunks/not-found.js": "/chunks/not-found.js?id=d31bd699138cf828",
|
||||||
"/chunks/temporary-unavailable.js": "/chunks/temporary-unavailable.js?id=26798085f527d955",
|
"/chunks/temporary-unavailable.js": "/chunks/temporary-unavailable.js?id=26798085f527d955",
|
||||||
"/chunks/admin.js": "/chunks/admin.js?id=0124d577053f54d3",
|
"/chunks/admin.js": "/chunks/admin.js?id=ac53badd82034a88",
|
||||||
"/chunks/dashboard.js": "/chunks/dashboard.js?id=5ab55a12214433c8",
|
"/chunks/dashboard.js": "/chunks/dashboard.js?id=5ab55a12214433c8",
|
||||||
"/chunks/invoices.js": "/chunks/invoices.js?id=799928609f57ca10",
|
"/chunks/invoices.js": "/chunks/invoices.js?id=799928609f57ca10",
|
||||||
"/chunks/subscriptions.js": "/chunks/subscriptions.js?id=a0c4f59d0ec4aee0",
|
"/chunks/subscriptions.js": "/chunks/subscriptions.js?id=a0c4f59d0ec4aee0",
|
||||||
@@ -57,12 +57,12 @@
|
|||||||
"/chunks/sign-up.js": "/chunks/sign-up.js?id=3d7559511768cd0e",
|
"/chunks/sign-up.js": "/chunks/sign-up.js?id=3d7559511768cd0e",
|
||||||
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=27cda9364b6593d8",
|
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=27cda9364b6593d8",
|
||||||
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=2f0401ee2fc148c4",
|
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=2f0401ee2fc148c4",
|
||||||
"/chunks/settings.js": "/chunks/settings.js?id=008d159c8084c66f",
|
"/chunks/settings.js": "/chunks/settings.js?id=2f1ec837e7673e6d",
|
||||||
"/chunks/profile.js": "/chunks/profile.js?id=3e24bb5e1f52d4bb",
|
"/chunks/profile.js": "/chunks/profile.js?id=3e24bb5e1f52d4bb",
|
||||||
"/chunks/settings-password.js": "/chunks/settings-password.js?id=d00bf503d8126dc4",
|
"/chunks/settings-password.js": "/chunks/settings-password.js?id=d00bf503d8126dc4",
|
||||||
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=092e324aad54656b",
|
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=092e324aad54656b",
|
||||||
"/chunks/billing.js": "/chunks/billing.js?id=115c25478cee576d",
|
"/chunks/billing.js": "/chunks/billing.js?id=115c25478cee576d",
|
||||||
"/chunks/platform.js": "/chunks/platform.js?id=e0dcb4aa27710e07",
|
"/chunks/platform.js": "/chunks/platform.js?id=d4e8d92aed88b8ee",
|
||||||
"/chunks/files.js": "/chunks/files.js?id=a74bc8acc7ea876a",
|
"/chunks/files.js": "/chunks/files.js?id=a74bc8acc7ea876a",
|
||||||
"/chunks/recent-uploads.js": "/chunks/recent-uploads.js?id=c6ed26eaace65f01",
|
"/chunks/recent-uploads.js": "/chunks/recent-uploads.js?id=c6ed26eaace65f01",
|
||||||
"/chunks/my-shared-items.js": "/chunks/my-shared-items.js?id=6adbb309c700eaf7",
|
"/chunks/my-shared-items.js": "/chunks/my-shared-items.js?id=6adbb309c700eaf7",
|
||||||
|
|||||||
@@ -890,8 +890,8 @@ export default {
|
|||||||
|
|
||||||
// Get route
|
// Get route
|
||||||
let route = this.$store.getters.sharedDetail
|
let route = this.$store.getters.sharedDetail
|
||||||
? `/api/browse/search/${this.$router.currentRoute.params.token}`
|
? `/api/search/${this.$router.currentRoute.params.token}`
|
||||||
: '/api/browse/search'
|
: '/api/search'
|
||||||
|
|
||||||
axios
|
axios
|
||||||
.get(`${route}?filter=${this.activeFilter}`, {
|
.get(`${route}?filter=${this.activeFilter}`, {
|
||||||
|
|||||||
@@ -57,7 +57,6 @@ Route::group(['middleware' => ['auth:sanctum']], function () {
|
|||||||
Route::group(['prefix' => 'browse'], function () {
|
Route::group(['prefix' => 'browse'], function () {
|
||||||
Route::get('/folders/{id}', BrowseFolderController::class);
|
Route::get('/folders/{id}', BrowseFolderController::class);
|
||||||
Route::get('/navigation', NavigationTreeController::class);
|
Route::get('/navigation', NavigationTreeController::class);
|
||||||
Route::get('/search', SpotlightSearchController::class);
|
|
||||||
Route::get('/latest', BrowseLatestFilesController::class);
|
Route::get('/latest', BrowseLatestFilesController::class);
|
||||||
Route::get('/trash/{id}', BrowseTrashContentController::class);
|
Route::get('/trash/{id}', BrowseTrashContentController::class);
|
||||||
Route::get('/share', BrowseSharedItemsController::class);
|
Route::get('/share', BrowseSharedItemsController::class);
|
||||||
@@ -77,6 +76,9 @@ Route::group(['middleware' => ['auth:sanctum']], function () {
|
|||||||
|
|
||||||
// Favourites
|
// Favourites
|
||||||
Route::apiResource('/folders/favourites', FavouriteController::class);
|
Route::apiResource('/folders/favourites', FavouriteController::class);
|
||||||
|
|
||||||
|
// Search
|
||||||
|
Route::get('/search', SpotlightSearchController::class);
|
||||||
});
|
});
|
||||||
|
|
||||||
// User master,editor routes
|
// User master,editor routes
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ class SpotlightSearchController
|
|||||||
{
|
{
|
||||||
public function __invoke(
|
public function __invoke(
|
||||||
SearchRequest $request
|
SearchRequest $request
|
||||||
): UsersMinimalCollection|array {
|
) {
|
||||||
// Prepare queries
|
// Prepare queries
|
||||||
$query = remove_accents(
|
$query = remove_accents(
|
||||||
$request->input('query')
|
$request->input('query')
|
||||||
@@ -32,7 +32,7 @@ class SpotlightSearchController
|
|||||||
return $this->searchFiles($query);
|
return $this->searchFiles($query);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function searchUsers($query): UsersMinimalCollection
|
private function searchUsers($query)
|
||||||
{
|
{
|
||||||
// Prevent to show non admin user searching
|
// Prevent to show non admin user searching
|
||||||
if (Auth::user()->role !== 'admin') {
|
if (Auth::user()->role !== 'admin') {
|
||||||
@@ -49,7 +49,7 @@ class SpotlightSearchController
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function searchFiles(string $query): array
|
private function searchFiles(string $query)
|
||||||
{
|
{
|
||||||
$user_id = Auth::id();
|
$user_id = Auth::id();
|
||||||
|
|
||||||
|
|||||||
@@ -348,7 +348,7 @@ class VisitorBrowseTest extends TestCase
|
|||||||
])];
|
])];
|
||||||
|
|
||||||
$this->withUnencryptedCookies($cookie)
|
$this->withUnencryptedCookies($cookie)
|
||||||
->get("/api/browse/search/$share->token?query=doc")
|
->get("/api/search/$share->token?query=doc")
|
||||||
->assertStatus(200)
|
->assertStatus(200)
|
||||||
->assertJsonFragment([
|
->assertJsonFragment([
|
||||||
'id' => $file->id,
|
'id' => $file->id,
|
||||||
@@ -357,7 +357,7 @@ class VisitorBrowseTest extends TestCase
|
|||||||
|
|
||||||
// Check public shared item
|
// Check public shared item
|
||||||
if (! $is_protected) {
|
if (! $is_protected) {
|
||||||
$this->getJson("/api/browse/search/$share->token?query=doc")
|
$this->getJson("/api/search/$share->token?query=doc")
|
||||||
->assertStatus(200)
|
->assertStatus(200)
|
||||||
->assertJsonFragment([
|
->assertJsonFragment([
|
||||||
'id' => $file->id,
|
'id' => $file->id,
|
||||||
@@ -401,14 +401,14 @@ class VisitorBrowseTest extends TestCase
|
|||||||
])];
|
])];
|
||||||
|
|
||||||
$this->withUnencryptedCookies($cookie)
|
$this->withUnencryptedCookies($cookie)
|
||||||
->get("/api/browse/search/$share->token?query=doc")
|
->get("/api/search/$share->token?query=doc")
|
||||||
->assertStatus(200)
|
->assertStatus(200)
|
||||||
->assertJsonFragment([]);
|
->assertJsonFragment([]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check public shared item
|
// Check public shared item
|
||||||
if (! $is_protected) {
|
if (! $is_protected) {
|
||||||
$this->getJson("/api/browse/search/$share->token?query=doc")
|
$this->getJson("/api/search/$share->token?query=doc")
|
||||||
->assertStatus(200)
|
->assertStatus(200)
|
||||||
->assertJsonFragment([]);
|
->assertJsonFragment([]);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ class SearchTest extends TestCase
|
|||||||
->each(
|
->each(
|
||||||
fn ($file) => $this
|
fn ($file) => $this
|
||||||
->actingAs($user)
|
->actingAs($user)
|
||||||
->getJson('/api/browse/search?query=' . mb_strtolower(mb_substr($file->name, 0, 3)))
|
->getJson('/api/search?query=' . mb_strtolower(mb_substr($file->name, 0, 3)))
|
||||||
->assertStatus(200)
|
->assertStatus(200)
|
||||||
->assertJsonFragment([
|
->assertJsonFragment([
|
||||||
'id' => $file->id,
|
'id' => $file->id,
|
||||||
@@ -66,7 +66,7 @@ class SearchTest extends TestCase
|
|||||||
|
|
||||||
$this
|
$this
|
||||||
->actingAs($user)
|
->actingAs($user)
|
||||||
->getJson('/api/browse/search?query=doc')
|
->getJson('/api/search?query=doc')
|
||||||
->assertStatus(200)
|
->assertStatus(200)
|
||||||
->assertJsonFragment([
|
->assertJsonFragment([
|
||||||
'id' => $folder->id,
|
'id' => $folder->id,
|
||||||
@@ -115,7 +115,7 @@ class SearchTest extends TestCase
|
|||||||
|
|
||||||
$this
|
$this
|
||||||
->actingAs($member)
|
->actingAs($member)
|
||||||
->getJson('/api/browse/search?query=ali')
|
->getJson('/api/search?query=ali')
|
||||||
->assertStatus(200)
|
->assertStatus(200)
|
||||||
->assertJsonFragment([
|
->assertJsonFragment([
|
||||||
'id' => $folder->id,
|
'id' => $folder->id,
|
||||||
@@ -123,7 +123,7 @@ class SearchTest extends TestCase
|
|||||||
|
|
||||||
$this
|
$this
|
||||||
->actingAs($member)
|
->actingAs($member)
|
||||||
->getJson('/api/browse/search?query=Fol')
|
->getJson('/api/search?query=Fol')
|
||||||
->assertStatus(200)
|
->assertStatus(200)
|
||||||
->assertJsonFragment([
|
->assertJsonFragment([
|
||||||
'id' => $folder->id,
|
'id' => $folder->id,
|
||||||
@@ -131,7 +131,7 @@ class SearchTest extends TestCase
|
|||||||
|
|
||||||
$this
|
$this
|
||||||
->actingAs($member)
|
->actingAs($member)
|
||||||
->getJson('/api/browse/search?query=doc')
|
->getJson('/api/search?query=doc')
|
||||||
->assertStatus(200)
|
->assertStatus(200)
|
||||||
->assertJsonFragment([
|
->assertJsonFragment([
|
||||||
'id' => $document->id,
|
'id' => $document->id,
|
||||||
|
|||||||
Reference in New Issue
Block a user