diff --git a/models/hr/src/index.ts b/models/hr/src/index.ts index 9dc5446f38b..dd6841ec1fb 100644 --- a/models/hr/src/index.ts +++ b/models/hr/src/index.ts @@ -404,14 +404,29 @@ export function createModel (builder: Builder): void { attachTo: hr.mixin.Staff, descriptor: view.viewlet.Table, config: [ - '', + { key: '', props: { showStatus: true } }, + 'department', { key: '$lookup.channels', label: contact.string.ContactInfo, sortingKey: ['$lookup.channels.lastMessage', 'channels'] }, 'modifiedOn' - ] + ], + viewOptions: { + groupBy: [], + orderBy: [], + other: [ + { + key: 'hideInactive', + type: 'toggle', + defaultValue: true, + actionTarget: 'query', + action: contact.function.HideInactive, + label: contact.string.HideInactive + } + ] + } }, hr.viewlet.TableMember ) diff --git a/models/hr/src/migration.ts b/models/hr/src/migration.ts index 366bd38a7a7..dc6d360aa25 100644 --- a/models/hr/src/migration.ts +++ b/models/hr/src/migration.ts @@ -136,7 +136,7 @@ async function rebuildDepartmentMembersFromStaff (client: MigrationClient): Prom const persons = await client.find(DOMAIN_CONTACT, { _class: contact.class.Person }) for (const person of persons) { const staff = client.hierarchy.asIf(person, hr.mixin.Staff) - if (staff?.department === undefined || !staff.active) { + if (staff?.department === undefined) { continue } @@ -172,6 +172,10 @@ export const hrOperation: MigrateOperation = { { state: 'rebuildDepartmentMembersFromStaff', func: rebuildDepartmentMembersFromStaff + }, + { + state: 'rebuildDepartmentMembersFromStaffIncludingInactive', + func: rebuildDepartmentMembersFromStaff } ]) }, diff --git a/plugins/hr-resources/src/components/DepartmentCard.svelte b/plugins/hr-resources/src/components/DepartmentCard.svelte index 611e8774100..ddcddf6e9ef 100644 --- a/plugins/hr-resources/src/components/DepartmentCard.svelte +++ b/plugins/hr-resources/src/components/DepartmentCard.svelte @@ -78,7 +78,8 @@ $: dragPersonId = dragPerson?._id $: members = new Set>(value.members as Ref[]) - $: values = allEmployees.filter((it) => members.has(it._id) && it._id !== dragPersonId) + $: activeMembers = allEmployees.filter((it) => it.active && members.has(it._id)) + $: values = activeMembers.filter((it) => it._id !== dragPersonId) $: dragging = value._id === dragOver?._id && dragPersonId !== undefined @@ -121,7 +122,7 @@
{value.name}
-