diff --git a/pkg/filemanager/fs/dbfs/my_navigator.go b/pkg/filemanager/fs/dbfs/my_navigator.go index c69081b0..db271a9f 100644 --- a/pkg/filemanager/fs/dbfs/my_navigator.go +++ b/pkg/filemanager/fs/dbfs/my_navigator.go @@ -134,12 +134,7 @@ func (n *myNavigator) walkNext(ctx context.Context, root *File, next string, isL } func (n *myNavigator) Capabilities(isSearching bool) *fs.NavigatorProps { - res := &fs.NavigatorProps{ - Capability: myNavigatorCapability, - OrderDirectionOptions: fullOrderDirectionOption, - OrderByOptions: fullOrderByOption, - MaxPageSize: n.config.MaxPageSize, - } + res := baseNavigatorProps(myNavigatorCapability, n.config.MaxPageSize) if isSearching { res.OrderByOptions = nil res.OrderDirectionOptions = nil diff --git a/pkg/filemanager/fs/dbfs/navigator.go b/pkg/filemanager/fs/dbfs/navigator.go index 64009df3..9e1ebc49 100644 --- a/pkg/filemanager/fs/dbfs/navigator.go +++ b/pkg/filemanager/fs/dbfs/navigator.go @@ -58,6 +58,17 @@ var ( fullOrderDirectionOption = []string{"asc", "desc"} ) +// baseNavigatorProps builds the shared NavigatorProps skeleton; navigators +// adjust search options on top. +func baseNavigatorProps(capability *boolset.BooleanSet, maxPageSize int) *fs.NavigatorProps { + return &fs.NavigatorProps{ + Capability: capability, + OrderDirectionOptions: fullOrderDirectionOption, + OrderByOptions: fullOrderByOption, + MaxPageSize: maxPageSize, + } +} + type ( // Navigator is a navigator for database file system. Navigator interface { diff --git a/pkg/filemanager/fs/dbfs/share_navigator.go b/pkg/filemanager/fs/dbfs/share_navigator.go index 85f69362..38c0fb27 100644 --- a/pkg/filemanager/fs/dbfs/share_navigator.go +++ b/pkg/filemanager/fs/dbfs/share_navigator.go @@ -278,12 +278,7 @@ func (n *shareNavigator) latestSharedSingleFile(ctx context.Context) (*File, err } func (n *shareNavigator) Capabilities(isSearching bool) *fs.NavigatorProps { - res := &fs.NavigatorProps{ - Capability: shareNavigatorCapability, - OrderDirectionOptions: fullOrderDirectionOption, - OrderByOptions: fullOrderByOption, - MaxPageSize: n.config.MaxPageSize, - } + res := baseNavigatorProps(shareNavigatorCapability, n.config.MaxPageSize) // Once the share is resolved, narrow capabilities to what its props grant. // This set is stamped onto resolved files and consulted by writePermitted. diff --git a/pkg/filemanager/fs/dbfs/sharewithme_navigator.go b/pkg/filemanager/fs/dbfs/sharewithme_navigator.go index 5c3fa40f..2e2bd64e 100644 --- a/pkg/filemanager/fs/dbfs/sharewithme_navigator.go +++ b/pkg/filemanager/fs/dbfs/sharewithme_navigator.go @@ -101,13 +101,7 @@ func (t *sharedWithMeNavigator) Children(ctx context.Context, parent *File, args } func (t *sharedWithMeNavigator) Capabilities(isSearching bool) *fs.NavigatorProps { - res := &fs.NavigatorProps{ - Capability: sharedWithMeNavigatorCapability, - OrderDirectionOptions: fullOrderDirectionOption, - OrderByOptions: fullOrderByOption, - MaxPageSize: t.config.MaxPageSize, - } - + res := baseNavigatorProps(sharedWithMeNavigatorCapability, t.config.MaxPageSize) if isSearching { res.OrderByOptions = searchLimitedOrderByOption } diff --git a/pkg/filemanager/fs/dbfs/trash_navigator.go b/pkg/filemanager/fs/dbfs/trash_navigator.go index af792098..acfbcd48 100644 --- a/pkg/filemanager/fs/dbfs/trash_navigator.go +++ b/pkg/filemanager/fs/dbfs/trash_navigator.go @@ -116,13 +116,7 @@ func (t *trashNavigator) Children(ctx context.Context, parent *File, args *ListA } func (t *trashNavigator) Capabilities(isSearching bool) *fs.NavigatorProps { - res := &fs.NavigatorProps{ - Capability: trashNavigatorCapability, - OrderDirectionOptions: fullOrderDirectionOption, - OrderByOptions: fullOrderByOption, - MaxPageSize: t.config.MaxPageSize, - } - + res := baseNavigatorProps(trashNavigatorCapability, t.config.MaxPageSize) if isSearching { res.OrderByOptions = searchLimitedOrderByOption }