diff --git a/.vscode/settings.json b/.vscode/settings.json
deleted file mode 100644
index 959b1f03e5..0000000000
--- a/.vscode/settings.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "files.exclude": {
- "**/.git": true,
- "**/.svn": true,
- "**/.hg": true,
- "**/CVS": true,
- "**/.DS_Store": true,
- "**/Thumbs.db": true,
- "**/.rush": true,
- "**/lib": true,
- "**/.heft": true,
- "**/_api-extractor-temp": true,
- "**/svelte.config.js": true,
- "**/postcss.config.js": true,
- "**/node_modules": true,
- "**/temp": true
- },
- "explorerExclude.backup": null
-}
\ No newline at end of file
diff --git a/plugins/contact-resources/src/components/PersonContent.svelte b/plugins/contact-resources/src/components/PersonContent.svelte
new file mode 100644
index 0000000000..aeecc197a8
--- /dev/null
+++ b/plugins/contact-resources/src/components/PersonContent.svelte
@@ -0,0 +1,56 @@
+
+
+
+{#if value || shouldShowPlaceholder}
+ {#if value}
+
+
+ {#if shouldShowName}
+ {formatName(value.name)}
+ {/if}
+
+ {:else}
+
+ {/if}
+{/if}
diff --git a/plugins/contact-resources/src/components/PersonPresenter.svelte b/plugins/contact-resources/src/components/PersonPresenter.svelte
index a967e624d7..ea555cdfb4 100644
--- a/plugins/contact-resources/src/components/PersonPresenter.svelte
+++ b/plugins/contact-resources/src/components/PersonPresenter.svelte
@@ -15,33 +15,26 @@
-->
-{#if value}
-
-
-
- {#if showLabel}
- {formatName(value.name)}
- {/if}
-
+{#if value || shouldShowPlaceholder}
+ {#if tooltipLabels}
+
+
+
+ {:else}
+
+ {/if}
{/if}
diff --git a/plugins/inventory-resources/src/components/HierarchyElement.svelte b/plugins/inventory-resources/src/components/HierarchyElement.svelte
index 343b3fb99d..d3621a6331 100644
--- a/plugins/inventory-resources/src/components/HierarchyElement.svelte
+++ b/plugins/inventory-resources/src/components/HierarchyElement.svelte
@@ -14,7 +14,7 @@
// limitations under the License.
-->
-
- Active issues {todalIssues}
-
- { todalIssues = evt.detail.length } }>
\ No newline at end of file
+
+
diff --git a/plugins/tracker-resources/src/components/issues/Backlog.svelte b/plugins/tracker-resources/src/components/issues/Backlog.svelte
index 807299a962..901e9866e3 100644
--- a/plugins/tracker-resources/src/components/issues/Backlog.svelte
+++ b/plugins/tracker-resources/src/components/issues/Backlog.svelte
@@ -1,7 +1,10 @@
-
-
\ No newline at end of file
+
+
diff --git a/plugins/tracker-resources/src/components/issues/Board.svelte b/plugins/tracker-resources/src/components/issues/Board.svelte
index e0f717ec2a..ce84170ee2 100644
--- a/plugins/tracker-resources/src/components/issues/Board.svelte
+++ b/plugins/tracker-resources/src/components/issues/Board.svelte
@@ -105,7 +105,7 @@
{#if issue.$lookup?.assignee }
-
+
{/if}
diff --git a/plugins/tracker-resources/src/components/issues/CategoryPresenter.svelte b/plugins/tracker-resources/src/components/issues/CategoryPresenter.svelte
index 97599c7d93..cc2913f35d 100644
--- a/plugins/tracker-resources/src/components/issues/CategoryPresenter.svelte
+++ b/plugins/tracker-resources/src/components/issues/CategoryPresenter.svelte
@@ -1,52 +1,97 @@
-
-
- {IssueStatus[category]}
+
0}>
+
-
- { visible = evt.detail.length > 0 }}
- />
-
+
+ {
+ issuesAmount = evt.detail.length
+ dispatch('content', issuesAmount)
+ }}
+ />
+
diff --git a/plugins/tracker-resources/src/components/issues/IssuePresenter.svelte b/plugins/tracker-resources/src/components/issues/IssuePresenter.svelte
index 9044532720..dc72e7319d 100644
--- a/plugins/tracker-resources/src/components/issues/IssuePresenter.svelte
+++ b/plugins/tracker-resources/src/components/issues/IssuePresenter.svelte
@@ -18,6 +18,7 @@
import type { Issue, Team } from '@anticrm/tracker'
import { Icon, showPanel } from '@anticrm/ui'
import tracker from '../../plugin'
+ import { issuePriorities } from '../../utils'
export let value: Issue
export let currentTeam: Team
@@ -37,6 +38,9 @@
class:inline-presenter={inline}
on:click={show}
>
+
+
+
diff --git a/plugins/tracker-resources/src/components/issues/Issues.svelte b/plugins/tracker-resources/src/components/issues/Issues.svelte
index 56cedd17fa..ffa342f7e0 100644
--- a/plugins/tracker-resources/src/components/issues/Issues.svelte
+++ b/plugins/tracker-resources/src/components/issues/Issues.svelte
@@ -16,9 +16,10 @@
import type { DocumentQuery, Ref } from '@anticrm/core'
import { createQuery } from '@anticrm/presentation'
import { Issue, IssueStatus, Team } from '@anticrm/tracker'
- import { ScrollBox } from '@anticrm/ui'
+ import { Label, ScrollBox } from '@anticrm/ui'
import CategoryPresenter from './CategoryPresenter.svelte'
import tracker from '../../plugin'
+ import { IntlString } from '@anticrm/platform'
export let currentSpace: Ref
export let categories = [
@@ -28,15 +29,26 @@
IssueStatus.Done,
IssueStatus.Canceled
]
-
+ export let title: IntlString = tracker.string.AllIssues
export let query: DocumentQuery = {}
export let search: string = ''
+ const spaceQuery = createQuery()
+ const issuesMap: { [status: string]: number } = {}
+
+ $: getTotalIssues = () => {
+ let total = 0
+
+ for (const issuesAmount of Object.values(issuesMap)) {
+ total += issuesAmount
+ }
+
+ return total
+ }
+
$: resultQuery =
search === '' ? { space: currentSpace, ...query } : { $search: search, space: currentSpace, ...query }
- const spaceQuery = createQuery()
-
let currentTeam: Team | undefined
$: spaceQuery.query(tracker.class.Team, { _id: currentSpace }, (res) => {
@@ -46,9 +58,21 @@
{#if currentTeam}
+
+
+
+
{#each categories as category}
-
+ {
+ issuesMap[category] = event.detail
+ }}
+ />
{/each}
diff --git a/plugins/tracker-resources/src/components/issues/IssuesList.svelte b/plugins/tracker-resources/src/components/issues/IssuesList.svelte
new file mode 100644
index 0000000000..bef66a5bab
--- /dev/null
+++ b/plugins/tracker-resources/src/components/issues/IssuesList.svelte
@@ -0,0 +1,232 @@
+
+
+
+{#await buildModel({ client, _class, keys: config, options })}
+ {#if !isLoading}
+
+ {/if}
+{:then attributeModels}
+
+ {#if docObjects}
+ {#each docObjects as docObject, rowIndex (docObject._id)}
+
+ {#each attributeModels as attributeModel, attributeModelIndex}
+ {#if attributeModelIndex === 0}
+
+
+ {
+ handleIssueSelected(docObject._id, event)
+ }}
+ />
+
+
+
+
+
+
+ {:else}
+
+
+
+ {/if}
+ {/each}
+
+ {/each}
+ {:else if loadingProps !== undefined}
+ {#each Array(getLoadingElementsLength(loadingProps, options)) as _, rowIndex}
+
+ {#each attributeModels as _, attributeModelIndex}
+ {#if attributeModelIndex === 0}
+
+ {/if}
+ {/each}
+
+ {/each}
+ {/if}
+
+{/await}
+
+{#if isLoading}
+
+{/if}
+
+
diff --git a/plugins/tracker-resources/src/components/issues/ModificationDatePresenter.svelte b/plugins/tracker-resources/src/components/issues/ModificationDatePresenter.svelte
new file mode 100644
index 0000000000..9b66d90c7b
--- /dev/null
+++ b/plugins/tracker-resources/src/components/issues/ModificationDatePresenter.svelte
@@ -0,0 +1,33 @@
+
+
+
+
+ {shortModificationDate}
+
diff --git a/plugins/tracker-resources/src/components/issues/TitlePresenter.svelte b/plugins/tracker-resources/src/components/issues/TitlePresenter.svelte
new file mode 100644
index 0000000000..2dd0e809ba
--- /dev/null
+++ b/plugins/tracker-resources/src/components/issues/TitlePresenter.svelte
@@ -0,0 +1,41 @@
+
+
+
+{#if value}
+
+{/if}
+
+
diff --git a/plugins/tracker-resources/src/index.ts b/plugins/tracker-resources/src/index.ts
index 6e510b8730..1afd8e1d84 100644
--- a/plugins/tracker-resources/src/index.ts
+++ b/plugins/tracker-resources/src/index.ts
@@ -26,6 +26,8 @@ import MyIssues from './components/myissues/MyIssues.svelte'
import Projects from './components/projects/Projects.svelte'
import Views from './components/views/Views.svelte'
import IssuePresenter from './components/issues/IssuePresenter.svelte'
+import TitlePresenter from './components/issues/TitlePresenter.svelte'
+import ModificationDatePresenter from './components/issues/ModificationDatePresenter.svelte'
import EditIssue from './components/issues/EditIssue.svelte'
import NewIssueHeader from './components/NewIssueHeader.svelte'
@@ -41,6 +43,8 @@ export default async (): Promise => ({
Projects,
Views,
IssuePresenter,
+ TitlePresenter,
+ ModificationDatePresenter,
EditIssue,
NewIssueHeader
}
diff --git a/plugins/tracker-resources/src/plugin.ts b/plugins/tracker-resources/src/plugin.ts
index ca5b6f961c..7575f2dc9e 100644
--- a/plugins/tracker-resources/src/plugin.ts
+++ b/plugins/tracker-resources/src/plugin.ts
@@ -29,11 +29,15 @@ export default mergeIds(trackerId, tracker, {
Issues: '' as IntlString,
Views: '' as IntlString,
Active: '' as IntlString,
+ AllIssues: '' as IntlString,
+ ActiveIssues: '' as IntlString,
+ BacklogIssues: '' as IntlString,
Backlog: '' as IntlString,
Board: '' as IntlString,
Project: '' as IntlString,
Projects: '' as IntlString,
CreateTeam: '' as IntlString,
+ AddIssue: '' as IntlString,
NewIssue: '' as IntlString,
Team: '' as IntlString,
SelectTeam: '' as IntlString,
@@ -56,6 +60,8 @@ export default mergeIds(trackerId, tracker, {
Status: '' as IntlString,
Number: '' as IntlString,
Assignee: '' as IntlString,
+ AssignTo: '' as IntlString,
+ AssignedTo: '' as IntlString,
Parent: '' as IntlString,
BlockedBy: '' as IntlString,
RelatedTo: '' as IntlString,
@@ -64,6 +70,7 @@ export default mergeIds(trackerId, tracker, {
Labels: '' as IntlString,
Space: '' as IntlString,
DueDate: '' as IntlString,
+ ModificationDate: '' as IntlString,
Issue: '' as IntlString,
Document: '' as IntlString,
DocumentIcon: '' as IntlString,
@@ -86,6 +93,8 @@ export default mergeIds(trackerId, tracker, {
Board: '' as AnyComponent,
Projects: '' as AnyComponent,
IssuePresenter: '' as AnyComponent,
+ TitlePresenter: '' as AnyComponent,
+ ModificationDatePresenter: '' as AnyComponent,
EditIssue: '' as AnyComponent,
CreateTeam: '' as AnyComponent,
NewIssueHeader: '' as AnyComponent
diff --git a/plugins/view-resources/src/components/Table.svelte b/plugins/view-resources/src/components/Table.svelte
index 6386c0eab3..ae2d696187 100644
--- a/plugins/view-resources/src/components/Table.svelte
+++ b/plugins/view-resources/src/components/Table.svelte
@@ -15,7 +15,7 @@
-->