mirror of
https://github.com/hcengineering/platform.git
synced 2025-04-19 23:00:13 +00:00
UBER-252: mode int URL in MyLeads/MyApplications (#3347)
Signed-off-by: Vyacheslav Tumanov <me@slavatumanov.me>
This commit is contained in:
parent
e72e16d97c
commit
1ceec126f0
@ -130,6 +130,13 @@ export function createModel (builder: Builder): void {
|
|||||||
label: lead.string.MyLeads,
|
label: lead.string.MyLeads,
|
||||||
icon: lead.icon.Lead,
|
icon: lead.icon.Lead,
|
||||||
component: lead.component.MyLeads,
|
component: lead.component.MyLeads,
|
||||||
|
componentProps: {
|
||||||
|
config: [
|
||||||
|
['assigned', view.string.Assigned, {}],
|
||||||
|
['created', view.string.Created, {}],
|
||||||
|
['subscribed', view.string.Subscribed, {}]
|
||||||
|
]
|
||||||
|
},
|
||||||
position: 'top'
|
position: 'top'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -336,7 +336,12 @@ export function createModel (builder: Builder): void {
|
|||||||
position: 'event',
|
position: 'event',
|
||||||
componentProps: {
|
componentProps: {
|
||||||
labelTasks: recruit.string.Applications,
|
labelTasks: recruit.string.Applications,
|
||||||
_class: recruit.class.Applicant
|
_class: recruit.class.Applicant,
|
||||||
|
config: [
|
||||||
|
['assigned', view.string.Assigned, {}],
|
||||||
|
['created', view.string.Created, {}],
|
||||||
|
['subscribed', view.string.Subscribed, {}]
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -1095,7 +1095,7 @@ export function createModel (builder: Builder): void {
|
|||||||
componentProps: {
|
componentProps: {
|
||||||
config: [
|
config: [
|
||||||
['assigned', view.string.Assigned, {}],
|
['assigned', view.string.Assigned, {}],
|
||||||
['created', view.string.Created, { value: 2 }],
|
['created', view.string.Created, {}],
|
||||||
['subscribed', view.string.Subscribed, {}]
|
['subscribed', view.string.Subscribed, {}]
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
import { EmployeeAccount } from '@hcengineering/contact'
|
import { EmployeeAccount } from '@hcengineering/contact'
|
||||||
import { AttachedDoc, Class, DocumentQuery, getCurrentAccount, Ref } from '@hcengineering/core'
|
import { AttachedDoc, Class, DocumentQuery, getCurrentAccount, Ref } from '@hcengineering/core'
|
||||||
import { createQuery, getClient } from '@hcengineering/presentation'
|
import { createQuery, getClient } from '@hcengineering/presentation'
|
||||||
import task, { Task } from '@hcengineering/task'
|
import task from '@hcengineering/task'
|
||||||
import { IModeSelector, Label, resolvedLocationStore, SearchEdit, ModeSelector, Loading } from '@hcengineering/ui'
|
import { IModeSelector, Label, resolvedLocationStore, SearchEdit, ModeSelector, Loading } from '@hcengineering/ui'
|
||||||
import {
|
import {
|
||||||
FilterButton,
|
FilterButton,
|
||||||
@ -26,26 +26,29 @@
|
|||||||
viewOptionStore
|
viewOptionStore
|
||||||
} from '@hcengineering/view-resources'
|
} from '@hcengineering/view-resources'
|
||||||
import { IntlString } from '@hcengineering/platform'
|
import { IntlString } from '@hcengineering/platform'
|
||||||
import ViewletSettingButton from '@hcengineering/view-resources/src/components/ViewletSettingButton.svelte'
|
|
||||||
import view, { Viewlet, ViewletPreference } from '@hcengineering/view'
|
import view, { Viewlet, ViewletPreference } from '@hcengineering/view'
|
||||||
import { onDestroy } from 'svelte'
|
import { createEventDispatcher, onDestroy } from 'svelte'
|
||||||
import FilterBar from '@hcengineering/view-resources/src/components/filter/FilterBar.svelte'
|
import { FilterBar, ViewletSettingButton } from '@hcengineering/view-resources'
|
||||||
import lead from '../plugin'
|
import lead from '../plugin'
|
||||||
import { Lead } from '@hcengineering/lead'
|
import { Lead } from '@hcengineering/lead'
|
||||||
|
|
||||||
export let _class: Ref<Class<Lead>> = lead.class.Lead
|
export let _class: Ref<Class<Lead>> = lead.class.Lead
|
||||||
export let labelTasks = lead.string.MyLeads
|
export let labelTasks = lead.string.MyLeads
|
||||||
|
export let config: [string, IntlString, object][] = []
|
||||||
|
|
||||||
let search = ''
|
let search = ''
|
||||||
|
const dispatch = createEventDispatcher()
|
||||||
const currentUser = getCurrentAccount() as EmployeeAccount
|
const currentUser = getCurrentAccount() as EmployeeAccount
|
||||||
const assigned = { assignee: currentUser.employee }
|
const assigned = { assignee: currentUser.employee }
|
||||||
const created = { createdBy: currentUser._id }
|
const created = { createdBy: currentUser._id }
|
||||||
let subscribed = { _id: { $in: [] as Ref<Task>[] } }
|
let subscribed = { _id: { $in: [] as Ref<Lead>[] } }
|
||||||
|
let mode: string | undefined = undefined
|
||||||
|
let baseQuery: DocumentQuery<Lead> | undefined = undefined
|
||||||
|
let modeSelectorProps: IModeSelector | undefined = undefined
|
||||||
|
|
||||||
|
$: queries = { assigned, created, subscribed }
|
||||||
|
$: mode = $resolvedLocationStore.query?.mode ?? undefined
|
||||||
|
|
||||||
$: baseQuery = updateBaseQuery(mode, { assigned, created, subscribed })
|
|
||||||
function updateBaseQuery (mode: string, queries: { [key: string]: DocumentQuery<Lead> }) {
|
|
||||||
return { ...queries[mode] }
|
|
||||||
}
|
|
||||||
let searchQuery: DocumentQuery<Lead> = { ...baseQuery }
|
let searchQuery: DocumentQuery<Lead> = { ...baseQuery }
|
||||||
function updateSearchQuery (search: string): void {
|
function updateSearchQuery (search: string): void {
|
||||||
searchQuery = search === '' ? { ...baseQuery } : { ...baseQuery, $search: search }
|
searchQuery = search === '' ? { ...baseQuery } : { ...baseQuery, $search: search }
|
||||||
@ -69,21 +72,17 @@
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
$: if (mode === 'subscribed') getSubscribed()
|
$: if (mode === 'subscribed') getSubscribed()
|
||||||
const config: [string, IntlString, object][] = [
|
$: if (mode === undefined || queries[mode] === undefined) {
|
||||||
['assigned', view.string.Assigned, {}],
|
;[[mode]] = config
|
||||||
['created', view.string.Created, {}],
|
}
|
||||||
['subscribed', view.string.Subscribed, {}]
|
$: if (mode !== undefined) {
|
||||||
]
|
baseQuery = { ...queries[mode] }
|
||||||
let [[mode]] = config
|
modeSelectorProps = {
|
||||||
function handleChangeMode (newMode: string) {
|
config,
|
||||||
if (newMode === mode) return
|
mode,
|
||||||
mode = newMode
|
onChange: (newMode: string) => dispatch('action', { mode: newMode })
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$: modeSelectorProps = {
|
|
||||||
config,
|
|
||||||
mode,
|
|
||||||
onChange: handleChangeMode
|
|
||||||
} as IModeSelector
|
|
||||||
|
|
||||||
let viewlet: Viewlet | undefined
|
let viewlet: Viewlet | undefined
|
||||||
let loading = true
|
let loading = true
|
||||||
|
@ -38,25 +38,28 @@
|
|||||||
} from '@hcengineering/view-resources'
|
} from '@hcengineering/view-resources'
|
||||||
import task from '../plugin'
|
import task from '../plugin'
|
||||||
import { IntlString } from '@hcengineering/platform'
|
import { IntlString } from '@hcengineering/platform'
|
||||||
import ViewletSettingButton from '@hcengineering/view-resources/src/components/ViewletSettingButton.svelte'
|
|
||||||
import view, { Viewlet, ViewletPreference } from '@hcengineering/view'
|
import view, { Viewlet, ViewletPreference } from '@hcengineering/view'
|
||||||
import { onDestroy } from 'svelte'
|
import { createEventDispatcher, onDestroy } from 'svelte'
|
||||||
import FilterBar from '@hcengineering/view-resources/src/components/filter/FilterBar.svelte'
|
import { FilterBar, ViewletSettingButton } from '@hcengineering/view-resources'
|
||||||
|
|
||||||
export let _class: Ref<Class<Task>> = task.class.Task
|
export let _class: Ref<Class<Task>> = task.class.Task
|
||||||
export let labelTasks = task.string.Tasks
|
export let labelTasks = task.string.Tasks
|
||||||
|
export let config: [string, IntlString, object][] = []
|
||||||
|
|
||||||
let search = ''
|
let search = ''
|
||||||
|
const dispatch = createEventDispatcher()
|
||||||
const currentUser = getCurrentAccount() as EmployeeAccount
|
const currentUser = getCurrentAccount() as EmployeeAccount
|
||||||
const assigned = { assignee: currentUser.employee }
|
const assigned = { assignee: currentUser.employee }
|
||||||
const created = { createdBy: currentUser._id }
|
const created = { createdBy: currentUser._id }
|
||||||
let subscribed = { _id: { $in: [] as Ref<Task>[] } }
|
let subscribed = { _id: { $in: [] as Ref<Task>[] } }
|
||||||
|
let mode: string | undefined = undefined
|
||||||
|
let baseQuery: DocumentQuery<Task> | undefined = undefined
|
||||||
|
let modeSelectorProps: IModeSelector | undefined = undefined
|
||||||
|
|
||||||
$: baseQuery = updateBaseQuery(mode, { assigned, created, subscribed })
|
$: queries = { assigned, created, subscribed }
|
||||||
function updateBaseQuery (mode: string, queries: { [key: string]: DocumentQuery<Task> }) {
|
$: mode = $resolvedLocationStore.query?.mode ?? undefined
|
||||||
return { ...queries[mode] }
|
|
||||||
}
|
let searchQuery: DocumentQuery<Task> = { baseQuery }
|
||||||
let searchQuery: DocumentQuery<Task> = { ...baseQuery }
|
|
||||||
function updateSearchQuery (search: string): void {
|
function updateSearchQuery (search: string): void {
|
||||||
searchQuery = search === '' ? { ...baseQuery } : { ...baseQuery, $search: search }
|
searchQuery = search === '' ? { ...baseQuery } : { ...baseQuery, $search: search }
|
||||||
}
|
}
|
||||||
@ -110,21 +113,17 @@
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
$: if (mode === 'subscribed') getSubscribed()
|
$: if (mode === 'subscribed') getSubscribed()
|
||||||
const config: [string, IntlString, object][] = [
|
$: if (mode === undefined || queries[mode as keyof typeof queries] === undefined) {
|
||||||
['assigned', view.string.Assigned, {}],
|
;[[mode]] = config
|
||||||
['created', view.string.Created, {}],
|
}
|
||||||
['subscribed', view.string.Subscribed, {}]
|
$: if (mode !== undefined) {
|
||||||
]
|
baseQuery = { ...queries[mode as keyof typeof queries] }
|
||||||
let [[mode]] = config
|
modeSelectorProps = {
|
||||||
function handleChangeMode (newMode: string) {
|
config,
|
||||||
if (newMode === mode) return
|
mode,
|
||||||
mode = newMode
|
onChange: (newMode: string) => dispatch('action', { mode: newMode })
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$: modeSelectorProps = {
|
|
||||||
config,
|
|
||||||
mode,
|
|
||||||
onChange: handleChangeMode
|
|
||||||
} as IModeSelector
|
|
||||||
|
|
||||||
$: updateResultQuery(search, documentIds, doneStates)
|
$: updateResultQuery(search, documentIds, doneStates)
|
||||||
let viewlets: WithLookup<Viewlet>[] | undefined
|
let viewlets: WithLookup<Viewlet>[] | undefined
|
||||||
|
Loading…
Reference in New Issue
Block a user