Compare commits

..

1 Commits

Author SHA1 Message Date
Sebastian e4d60949ef chore(deps): update dependency pinia to v4.0.3
JS Unit Tests / test (pull_request) Successful in 51s
Build Test / test (pull_request) Successful in 52s
2026-08-30 03:02:56 +00:00
2 changed files with 20 additions and 21 deletions
+12 -7
View File
@@ -2,14 +2,13 @@
namespace KTXM\Documents; namespace KTXM\Documents;
use KTXF\Module\Configuration\BrowserModuleContextInterface; use KTXF\Module\ModuleBrowserInterface;
use KTXF\Module\Configuration\ModuleContextInterface;
use KTXF\Module\ModuleInstanceAbstract; use KTXF\Module\ModuleInstanceAbstract;
/** /**
* Documents Module - Document Browser UI * Documents Module - Document Browser UI
*/ */
class Module extends ModuleInstanceAbstract class Module extends ModuleInstanceAbstract implements ModuleBrowserInterface
{ {
public function __construct() public function __construct()
@@ -51,10 +50,16 @@ class Module extends ModuleInstanceAbstract
]; ];
} }
public function configure(ModuleContextInterface $context): void public function registerBI(): array
{ {
if ($context instanceof BrowserModuleContextInterface) { return [
$context->registerModule($this, 'Documents', 'static/module.mjs'); 'handle' => $this->handle(),
} 'namespace' => 'Documents',
'version' => $this->version(),
'label' => $this->label(),
'author' => $this->author(),
'description' => $this->description(),
'boot' => 'static/module.mjs',
];
} }
} }
+8 -14
View File
@@ -1,7 +1,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { ref, computed, onMounted, watch, nextTick, defineAsyncComponent } from 'vue' import { ref, computed, onMounted, watch, nextTick, defineAsyncComponent } from 'vue'
import { useDisplay } from 'vuetify' import { useDisplay } from 'vuetify'
import { useModuleStore, useIntegrationStore, usePreviewStore } from '@KTXC' import { useModuleStore, useIntegrationStore } from '@KTXC'
import { useDocumentManager, useDocumentSelection, useFileUpload, useFileEditor } from '@/composables' import { useDocumentManager, useDocumentSelection, useFileUpload, useFileEditor } from '@/composables'
import type { ViewMode, SortField, SortOrder, BreadcrumbItem } from '@/types' import type { ViewMode, SortField, SortOrder, BreadcrumbItem } from '@/types'
import { CollectionObject } from '@DocumentsManager/models/collection' import { CollectionObject } from '@DocumentsManager/models/collection'
@@ -31,8 +31,6 @@ const isMobile = computed(() => display.mdAndDown.value)
const moduleStore = useModuleStore() const moduleStore = useModuleStore()
const integrationStore = useIntegrationStore() const integrationStore = useIntegrationStore()
const previewStore = usePreviewStore()
const previewsAvailable = computed(() => previewStore.availability.storage)
const isFileManagerAvailable = computed(() => { const isFileManagerAvailable = computed(() => {
return moduleStore.has('documents_manager') || moduleStore.has('DocumentsManager') return moduleStore.has('documents_manager') || moduleStore.has('DocumentsManager')
}) })
@@ -130,10 +128,7 @@ function entityToViewerItem(entity: EntityObject): ViewerItem {
} }
} }
function resolveViewerSource(item: ViewerItem): string | Promise<string> { function resolveViewerSource(item: ViewerItem): string {
if (!previewsAvailable.value) {
return Promise.reject(new Error('Preview storage is unavailable'))
}
return documentManager.getEntityPreviewUrl( return documentManager.getEntityPreviewUrl(
item.id, item.id,
(item.meta?.collection as string | null) ?? null, (item.meta?.collection as string | null) ?? null,
@@ -159,7 +154,6 @@ function resolveThumbnailSource(item: ViewerItem): string {
// Preview shown in the info panel sidebar for the current single selection // Preview shown in the info panel sidebar for the current single selection
const infoPanelPreviewUrl = computed<string | null>(() => { const infoPanelPreviewUrl = computed<string | null>(() => {
if (!previewsAvailable.value) return null
const items = selection.selectedNodeArray.value const items = selection.selectedNodeArray.value
if (items.length !== 1) return null if (items.length !== 1) return null
const item = items[0] const item = items[0]
@@ -821,8 +815,8 @@ onMounted(async () => {
:collections="sortedItems.collections" :collections="sortedItems.collections"
:entities="sortedItems.entities" :entities="sortedItems.entities"
:selected-ids="selectedIds" :selected-ids="selectedIds"
:preview-source="previewsAvailable ? resolvePreviewSource : undefined" :preview-source="resolvePreviewSource"
:thumbnail-source="previewsAvailable ? resolveThumbnailSource : undefined" :thumbnail-source="resolveThumbnailSource"
@item-click="handleItemClick" @item-click="handleItemClick"
@open="handleOpenItem" @open="handleOpenItem"
@edit="handleEditItem" @edit="handleEditItem"
@@ -838,8 +832,8 @@ onMounted(async () => {
:collections="sortedItems.collections" :collections="sortedItems.collections"
:entities="sortedItems.entities" :entities="sortedItems.entities"
:selected-ids="selectedIds" :selected-ids="selectedIds"
:preview-source="previewsAvailable ? resolvePreviewSource : undefined" :preview-source="resolvePreviewSource"
:thumbnail-source="previewsAvailable ? resolveThumbnailSource : undefined" :thumbnail-source="resolveThumbnailSource"
@item-click="handleItemClick" @item-click="handleItemClick"
@open="handleOpenItem" @open="handleOpenItem"
@edit="handleEditItem" @edit="handleEditItem"
@@ -855,8 +849,8 @@ onMounted(async () => {
:collections="sortedItems.collections" :collections="sortedItems.collections"
:entities="sortedItems.entities" :entities="sortedItems.entities"
:selected-ids="selectedIds" :selected-ids="selectedIds"
:preview-source="previewsAvailable ? resolvePreviewSource : undefined" :preview-source="resolvePreviewSource"
:thumbnail-source="previewsAvailable ? resolveThumbnailSource : undefined" :thumbnail-source="resolveThumbnailSource"
@item-click="handleItemClick" @item-click="handleItemClick"
@open="handleOpenItem" @open="handleOpenItem"
@edit="handleEditItem" @edit="handleEditItem"