mirror of
https://github.com/hcengineering/platform.git
synced 2026-09-22 01:25:00 +02:00
UBER-496: Fix few issues (#3439)
This commit is contained in:
@@ -13,7 +13,7 @@
|
||||
// limitations under the License.
|
||||
-->
|
||||
<script lang="ts">
|
||||
import { Class, Doc, Ref, Space, WithLookup } from '@hcengineering/core'
|
||||
import { Class, Doc, DocumentQuery, Ref, Space, WithLookup } from '@hcengineering/core'
|
||||
import { Asset, IntlString } from '@hcengineering/platform'
|
||||
import { createQuery } from '@hcengineering/presentation'
|
||||
import {
|
||||
@@ -50,6 +50,7 @@
|
||||
export let createComponentProps: Record<string, any> = {}
|
||||
export let isCreationDisabled = false
|
||||
export let descriptors: Ref<ViewletDescriptor>[] | undefined = undefined
|
||||
export let baseQuery: DocumentQuery<Doc> | undefined = undefined
|
||||
|
||||
let search = ''
|
||||
let viewlet: WithLookup<Viewlet> | undefined
|
||||
@@ -116,7 +117,7 @@
|
||||
preferenceQuery.unsubscribe()
|
||||
}
|
||||
|
||||
$: query = viewlet?.baseQuery ?? {}
|
||||
$: query = { ...(baseQuery ?? {}), ...(viewlet?.baseQuery ?? {}) }
|
||||
$: searchQuery = search === '' ? query : { ...query, $search: search }
|
||||
$: resultQuery = searchQuery
|
||||
|
||||
@@ -186,7 +187,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{#if !viewlet?.$lookup?.descriptor?.component || viewlet?.attachTo !== _class || (preference !== undefined && viewlet?._id !== preference.attachedTo)}}
|
||||
{#if !viewlet?.$lookup?.descriptor?.component || viewlet?.attachTo !== _class || (preference !== undefined && viewlet?._id !== preference.attachedTo)}
|
||||
<Loading />
|
||||
{:else}
|
||||
<FilterBar
|
||||
|
||||
@@ -117,6 +117,32 @@
|
||||
return await getResource(value.presenter)
|
||||
}
|
||||
}
|
||||
|
||||
let visibleIf: ((space: Space) => Promise<boolean>) | undefined
|
||||
|
||||
$: if (model.visibleIf) {
|
||||
getResource(model.visibleIf).then((r) => {
|
||||
visibleIf = r
|
||||
})
|
||||
}
|
||||
|
||||
let filteredSpaces: Space[] = []
|
||||
|
||||
async function updateSpaces (spaces: Space[], visibleIf: (space: Space) => Promise<boolean>): Promise<void> {
|
||||
const result: Space[] = []
|
||||
for (const s of spaces) {
|
||||
if (await visibleIf(s)) {
|
||||
result.push(s)
|
||||
}
|
||||
}
|
||||
filteredSpaces = result
|
||||
}
|
||||
|
||||
$: if (visibleIf) {
|
||||
updateSpaces(spaces, visibleIf)
|
||||
} else {
|
||||
filteredSpaces = spaces
|
||||
}
|
||||
</script>
|
||||
|
||||
<TreeNode
|
||||
@@ -125,7 +151,7 @@
|
||||
actions={async () => getParentActions()}
|
||||
shortDropbox={model.specials !== undefined}
|
||||
>
|
||||
{#each spaces as space, i (space._id)}
|
||||
{#each filteredSpaces as space, i (space._id)}
|
||||
{#await getPresenter(space._class) then presenter}
|
||||
{#if separate && model.specials && i !== 0}<TreeSeparator line />{/if}
|
||||
{#if model.specials && presenter}
|
||||
|
||||
Reference in New Issue
Block a user