Fix cards view settings (#8438)

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
This commit is contained in:
Denis Bykhov 2025-04-02 17:42:59 +05:00 committed by GitHub
parent 7e4d1d0e56
commit cc1bc27f05
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 33 additions and 32 deletions

View File

@ -137,23 +137,6 @@ export function createSystemType (
type
)
builder.createDoc(view.class.Viewlet, core.space.Model, {
attachTo: type,
descriptor: view.viewlet.List,
viewOptions: {
groupBy: ['_class', 'createdBy', 'modifiedBy'],
orderBy: [
['modifiedOn', SortingOrder.Descending],
['rank', SortingOrder.Ascending]
],
other: []
},
configOptions: {
hiddenKeys: ['content', 'title']
},
config: listConfig
})
builder.mixin(type, card.class.MasterTag, setting.mixin.Editable, {
value: false
})
@ -171,6 +154,23 @@ export function createSystemType (
'modifiedOn'
]
})
builder.createDoc(view.class.Viewlet, core.space.Model, {
attachTo: type,
descriptor: view.viewlet.List,
viewOptions: {
groupBy: ['_class', 'createdBy', 'modifiedBy'],
orderBy: [
['modifiedOn', SortingOrder.Descending],
['rank', SortingOrder.Ascending]
],
other: []
},
configOptions: {
hiddenKeys: ['content', 'title']
},
config: listConfig
})
}
export function createModel (builder: Builder): void {

View File

@ -19,13 +19,12 @@
import { EditBox, Label, showPopup, eventToHTMLElement, Button } from '@hcengineering/ui'
import EditBoxPopup from './EditBoxPopup.svelte'
// export let label: IntlString
export let placeholder: IntlString
export let label: IntlString
export let value: number | undefined
export let autoFocus: boolean = false
// export let maxWidth: string = '10rem'
export let onChange: (value: number | undefined) => void
export let kind: 'no-border' | 'link' | 'button' = 'no-border'
export let kind: 'no-border' | 'link' | 'button' | 'list' = 'no-border'
export let readonly = false
export let size: ButtonSize = 'small'
export let justify: 'left' | 'center' = 'center'
@ -41,7 +40,7 @@
}
</script>
{#if kind === 'button' || kind === 'link'}
{#if kind === 'button' || kind === 'link' || kind === 'list'}
<Button
kind={kind === 'button' ? 'regular' : kind}
{size}
@ -49,7 +48,7 @@
{width}
on:click={(ev) => {
if (!shown && !readonly) {
showPopup(EditBoxPopup, { value, format: 'number' }, eventToHTMLElement(ev), (res) => {
showPopup(EditBoxPopup, { value, placeholder: label, format: 'number' }, eventToHTMLElement(ev), (res) => {
if (Number.isFinite(res)) {
value = res
onChange(value)
@ -63,7 +62,7 @@
{#if value != null}
<span class="caption-color overflow-label pointer-events-none">{value}</span>
{:else}
<span class="content-dark-color pointer-events-none"><Label label={placeholder} /></span>
<span class="content-dark-color pointer-events-none"><Label {label} /></span>
{/if}
</svelte:fragment>
</Button>
@ -71,8 +70,8 @@
{#if value != null}
<span class="caption-color overflow-label">{value}</span>
{:else}
<span class="content-dark-color"><Label label={placeholder} /></span>
<span class="content-dark-color"><Label {label} /></span>
{/if}
{:else}
<EditBox {placeholder} bind:value format={'number'} {autoFocus} on:change={_onchange} />
<EditBox placeholder={label} bind:value format={'number'} {autoFocus} on:change={_onchange} />
{/if}

View File

@ -14,18 +14,18 @@
// limitations under the License.
-->
<script lang="ts">
import { IntlString } from '@hcengineering/platform'
import NumberEditor from './NumberEditor.svelte'
import { getEmbeddedLabel, IntlString } from '@hcengineering/platform'
export let value: number | undefined
export let label: IntlString
export let onChange: ((value: number | undefined) => void) | undefined = undefined
export let placeholder: IntlString = getEmbeddedLabel(' ')
export let kind: 'no-border' | 'link' | 'button' = 'link'
export let kind: 'no-border' | 'link' | 'button' | 'list' = 'link'
export let readonly = false
</script>
{#if onChange !== undefined && !readonly}
<NumberEditor {onChange} {value} {placeholder} {kind} />
<NumberEditor {onChange} {value} {label} {kind} />
{:else}
<span>{value || ''}</span>
{/if}

View File

@ -237,11 +237,13 @@
processAttribute(attribute, result)
}
hierarchy.getDescendants(viewlet.attachTo).forEach((it) => {
hierarchy.getOwnAttributes(it).forEach((attr) => {
const desc = hierarchy.getDescendants(viewlet.attachTo)
for (const d of desc) {
if (!hierarchy.isMixin(d)) continue
hierarchy.getOwnAttributes(d).forEach((attr) => {
processAttribute(attr, result, true)
})
})
}
const ancestors = new Set(hierarchy.getAncestors(viewlet.attachTo))
const parent = hierarchy.getParentClass(viewlet.attachTo)