TSK-1089: Proper Recruit Archive (#2952)

Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
This commit is contained in:
Andrey Sobolev 2023-04-12 09:26:53 +07:00 committed by GitHub
parent 751a65f37e
commit ac0eac5eff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 35 additions and 11 deletions

View File

@ -261,7 +261,10 @@ export function createModel (builder: Builder): void {
icon: recruit.icon.Vacancy,
label: recruit.string.Vacancies,
createItemLabel: recruit.string.VacancyCreateLabel,
position: 'vacancy'
position: 'vacancy',
componentProps: {
archived: false
}
},
{
id: organizationsId,
@ -302,12 +305,15 @@ export function createModel (builder: Builder): void {
},
{
id: archiveId,
component: workbench.component.Archive,
component: recruit.component.Vacancies,
icon: view.icon.Archive,
label: workbench.string.Archive,
position: 'bottom',
visibleIf: workbench.function.HasArchiveSpaces,
spaceClass: recruit.class.Vacancy
spaceClass: recruit.class.Vacancy,
componentProps: {
archived: true
}
},
{
id: skillsId,
@ -564,12 +570,14 @@ export function createModel (builder: Builder): void {
lookup: {
_id: {
related: [tracker.class.Issue, 'relations._id']
}
},
space: recruit.class.Vacancy
}
},
hiddenKeys: ['name', 'attachedTo'],
baseQuery: {
doneState: null
doneState: null,
'$lookup.space.archived': false
}
},
recruit.viewlet.ApplicantTable
@ -583,8 +591,14 @@ export function createModel (builder: Builder): void {
descriptor: view.viewlet.Table,
config: ['', 'response', 'attachedTo', 'space', 'modifiedOn'],
hiddenKeys: [],
options: {
lookup: {
space: recruit.class.Vacancy
}
},
baseQuery: {
doneState: null
doneState: null,
'$lookup.space.archived': false
}
},
recruit.viewlet.TableApplicantMatch
@ -596,7 +610,8 @@ export function createModel (builder: Builder): void {
{
_id: {
channels: contact.class.Channel
}
},
space: recruit.class.Vacancy
}
],
assignee: contact.class.Employee,
@ -633,7 +648,8 @@ export function createModel (builder: Builder): void {
descriptor: task.viewlet.Kanban,
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
baseQuery: {
doneState: null
doneState: null,
'$lookup.space.archived': false
},
viewOptions: {
...applicantViewOptions,

View File

@ -13,7 +13,7 @@
// limitations under the License.
-->
<script lang="ts">
import { navigate, parseLocation } from '@hcengineering/ui'
import { closePopup, closeTooltip, navigate, parseLocation } from '@hcengineering/ui'
export let href: string | undefined
export let disableClick = false
@ -24,12 +24,17 @@
function clickHandler (e: MouseEvent) {
if (disableClick) return
if (onClick) {
e.preventDefault()
e.stopPropagation()
onClick(e)
} else if (href !== undefined) {
if (e.metaKey || e.ctrlKey) return
// we need to close popups and tooltips
closePopup()
closeTooltip()
try {
const url = new URL(href)

View File

@ -15,8 +15,8 @@ const emptyTooltip: LabelAndProps = {
let storedValue: LabelAndProps = emptyTooltip
export const tooltipstore = writable<LabelAndProps>(emptyTooltip)
let toHandler: any
export function tooltip (node: HTMLElement, options?: LabelAndProps): any {
let toHandler: any
if (options === undefined) {
return {}
}
@ -80,6 +80,7 @@ export function showTooltip (
}
export function closeTooltip (): void {
clearTimeout(toHandler)
storedValue = emptyTooltip
tooltipstore.set(emptyTooltip)
}

View File

@ -31,6 +31,8 @@
import CreateVacancy from './CreateVacancy.svelte'
import { deviceOptionsStore as deviceInfo } from '@hcengineering/ui'
export let archived = false
let search: string = ''
let searchQuery: DocumentQuery<Doc> = {}
let resultQuery: DocumentQuery<Doc> = {}
@ -194,7 +196,7 @@
options={descr.options}
query={{
...resultQuery,
archived: false
archived
}}
showNotification
/>