diff --git a/js/admin.settings.js b/js/admin.settings.js index c45820fc..329042d2 100644 --- a/js/admin.settings.js +++ b/js/admin.settings.js @@ -46,7 +46,7 @@ var files_settings = { updateSettingPage: function (result) { files_elements.files_local.prop('checked', (result.files_local === '1')); - files_elements.files_external.prop('checked', (result.files_external === '1')); + files_elements.files_external.val(result.files_external); files_elements.files_group_folders.prop('checked', (result.files_group_folders === '1')); files_elements.files_encrypted.prop('checked', (result.files_encrypted === '1')); files_elements.files_federated.prop('checked', (result.files_federated === '1')); @@ -63,7 +63,7 @@ var files_settings = { saveSettings: function () { var data = { files_local: (files_elements.files_local.is(':checked')) ? 1 : 0, - files_external: (files_elements.files_external.is(':checked')) ? 1 : 0, + files_external: files_elements.files_external.val(), files_encrypted: (files_elements.files_encrypted.is(':checked')) ? 1 : 0, files_federated: (files_elements.files_federated.is(':checked')) ? 1 : 0, files_group_folders: (files_elements.files_group_folders.is(':checked')) ? 1 : 0, diff --git a/lib/Service/FilesService.php b/lib/Service/FilesService.php index 0f4aae71..467af1c6 100644 --- a/lib/Service/FilesService.php +++ b/lib/Service/FilesService.php @@ -299,6 +299,12 @@ public function getFilesFromDirectory(string $userId, Folder $node): array { return $documents; } + if ($this->configService->getAppValue(ConfigService::FILES_EXTERNAL) === '2' + && $node->getMountPoint() + ->getMountType() === 'external') { + return $documents; + } + $files = $node->getDirectoryListing(); foreach ($files as $file) { @@ -517,6 +523,12 @@ private function generateDocumentFromIndex(IIndex $index): FilesDocument { try { $file = $this->getFileFromIndex($index); + + if ($file->getMountPoint() + ->getMountType() === 'external' + && $this->configService->getAppValue(ConfigService::FILES_EXTERNAL) === '2') { + throw new Exception(); + } } catch (Exception $e) { $index->setStatus(IIndex::INDEX_REMOVE); $document = new FilesDocument($index->getProviderId(), $index->getDocumentId()); diff --git a/templates/settings.admin.php b/templates/settings.admin.php index 6379a76d..c5141492 100644 --- a/templates/settings.admin.php +++ b/templates/settings.admin.php @@ -2,7 +2,6 @@ declare(strict_types=1); - /** * Files_FullTextSearch - Index the content of your files * @@ -63,7 +62,11 @@ t('Index the content of external files.')); ?>