Rework documents (#2347)

Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
This commit is contained in:
Andrey Sobolev
2022-11-02 14:50:14 +06:00
committed by GitHub
parent d52f7ab18b
commit f69439eaef
332 changed files with 5981 additions and 4326 deletions
+23 -1
View File
@@ -146,6 +146,28 @@
],
"sourceMaps": true,
"cwd": "${workspaceRoot}/dev/tool"
}
},
{
"name": "Debug Collaborator",
"type": "node",
"request": "launch",
"args": [
"src/index.ts"
],
"env": {
"SECRET": "secret",
"MINIO_ACCESS_KEY": "minioadmin",
"MINIO_SECRET_KEY": "minioadmin",
"MINIO_ENDPOINT": "localhost",
},
"runtimeArgs": [
"--nolazy",
"-r",
"ts-node/register"
],
"sourceMaps": true,
"cwd": "${workspaceRoot}/pods/collaborator",
"protocol": "inspector"
},
]
}
+2315 -1689
View File
File diff suppressed because it is too large Load Diff
+6 -6
View File
@@ -14,14 +14,14 @@
"devDependencies": {
"@hcengineering/platform-rig": "~0.6.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"simplytyped": "^3.3.0",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9",
"typescript": "^4.3.5"
+6 -6
View File
@@ -14,13 +14,13 @@
"devDependencies": {
"@hcengineering/platform-rig": "~0.6.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9",
"typescript": "^4.3.5"
+13
View File
@@ -56,6 +56,18 @@ services:
- MINIO_ENDPOINT=minio
- MINIO_ACCESS_KEY=minioadmin
- MINIO_SECRET_KEY=minioadmin
collaborator:
image: hardcoreeng/collaborator
links:
- transactor
ports:
- 3078:3078
environment:
- COLLABORATOR_PORT=3078
- SECRET=secret
- MINIO_ENDPOINT=minio
- MINIO_ACCESS_KEY=minioadmin
- MINIO_SECRET_KEY=minioadmin
front:
image: hardcoreeng/front
links:
@@ -69,6 +81,7 @@ services:
- SERVER_PORT=8080
- SERVER_SECRET=secret
- ACCOUNTS_URL=http://localhost:3000
- COLLABORATOR_URL=ws://localhost:3078
- FRONT_URL=http://localhost:8087
- UPLOAD_URL=/files
- TRANSACTOR_URL=ws://localhost:3333
+8 -8
View File
@@ -17,20 +17,20 @@
"devDependencies": {
"@hcengineering/platform-rig": "~0.6.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"ts-node": "^10.8.0",
"esbuild": "^0.12.26",
"@types/node": "~16.11.12",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9",
"typescript": "^4.3.5",
"@types/ws": "^8.2.1",
"@types/ws": "^8.5.3",
"@types/faker": "~5.5.9",
"@types/minio": "~7.0.11"
},
@@ -43,7 +43,7 @@
"@hcengineering/model-telegram": "~0.6.0",
"@hcengineering/telegram": "~0.6.2",
"@hcengineering/client-resources": "~0.6.4",
"ws": "^8.2.0",
"ws": "^8.10.0",
"@hcengineering/client": "^0.6.3",
"@hcengineering/platform": "^0.6.7",
"@hcengineering/model": "~0.6.0",
+1 -1
View File
@@ -82,7 +82,7 @@ program
)
case 'issue':
return await generateIssues(transactorUrl, workspace, {
count: count
count
})
default:
console.error(`Expected types: recruit, issue. Got type: ${genType}`)
+2 -2
View File
@@ -313,8 +313,8 @@ function generateAvatar (pos: number): { imgId: string, jpegImageData: BufferRet
}
const rawImageData = {
data: frameData,
width: width,
height: height
width,
height
}
const jpegImageData = jpeg.encode(rawImageData, 50)
return { imgId, jpegImageData }
+2
View File
@@ -8,3 +8,5 @@ TELEGRAM_URL=http://localhost:8086
FRONT_URL=http://localhost:8080
REKONI_URL=http://localhost:4004
COLLABORATOR_URL=ws://locahost:3078
+1
View File
@@ -1,5 +1,6 @@
{
"ACCOUNTS_URL":"http://localhost:3000",
"COLLABORATOR_URL": "ws://localhost:3078",
"UPLOAD_URL":"/files",
"REKONI_URL": "http://localhost:4004"
}
+1
View File
@@ -1,5 +1,6 @@
{
"ACCOUNTS_URL":"/account",
"COLLABORATOR_URL": "ws://localhost:3078",
"UPLOAD_URL":"/files",
"MODEL_VERSION": null
}
+3 -1
View File
@@ -42,7 +42,7 @@ import { trackerId } from '@hcengineering/tracker'
import { boardId } from '@hcengineering/board'
import { hrId } from '@hcengineering/hr'
import rekoni from '@hcengineering/rekoni'
import { documentId } from '@hcengineering/document'
import document, { documentId } from '@hcengineering/document'
import '@hcengineering/login-assets'
import '@hcengineering/task-assets'
@@ -80,6 +80,8 @@ export async function configurePlatform() {
console.log('loading configuration', config)
setMetadata(login.metadata.AccountsUrl, config.ACCOUNTS_URL)
setMetadata(login.metadata.UploadUrl, config.UPLOAD_URL)
setMetadata(document.metadata.CollaboratorUrl, config.COLLABORATOR_URL)
if (config.MODEL_VERSION != null) {
console.log('Minimal Model version requirement', config.MODEL_VERSION)
+6 -6
View File
@@ -15,14 +15,14 @@
"devDependencies": {
"@hcengineering/platform-rig": "~0.6.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"ts-node": "^10.8.0",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9",
"typescript": "^4.3.5"
+6 -6
View File
@@ -14,13 +14,13 @@
"devDependencies": {
"@hcengineering/platform-rig": "~0.6.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9",
"typescript": "^4.3.5"
+8 -8
View File
@@ -23,21 +23,21 @@
"cross-env": "~7.0.3",
"@hcengineering/platform-rig": "~0.6.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"ts-node": "^10.8.0",
"esbuild": "^0.12.26",
"@types/minio": "~7.0.11",
"@types/node": "~16.11.12",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9",
"typescript": "^4.3.5",
"@types/ws": "^8.2.1",
"@types/ws": "^8.5.3",
"@types/xml2js": "~0.4.9",
"@types/mime-types": "~2.1.1",
"@types/request": "~2.48.8"
@@ -53,7 +53,7 @@
"@hcengineering/model-telegram": "~0.6.0",
"@hcengineering/telegram": "~0.6.2",
"@hcengineering/client-resources": "~0.6.4",
"ws": "^8.2.0",
"ws": "^8.10.0",
"@hcengineering/client": "^0.6.3",
"@hcengineering/platform": "^0.6.7",
"@hcengineering/model": "~0.6.0",
+1 -1
View File
@@ -168,7 +168,7 @@ export class ElasticTool {
const id: Ref<Doc> = (generateId() + '/attachments/') as Ref<Doc>
const indexedDoc: IndexedDoc = {
id: id,
id,
_class: doc._class,
space: doc.space,
modifiedOn: doc.modifiedOn,
+1 -1
View File
@@ -170,7 +170,7 @@ export async function importXml (
{
name: f,
file: attachId,
type: type,
type,
size: stats.size,
lastModified: stats.mtime.getTime()
},
+4 -4
View File
@@ -69,7 +69,7 @@ export async function addChannel (
contact.class.Person,
'channels',
{
value: value,
value,
provider: type
}
)
@@ -77,7 +77,7 @@ export async function addChannel (
if (isUndef(provider.value)) {
provider.value = value
await client.update(provider, {
value: value,
value,
provider: type
})
}
@@ -173,12 +173,12 @@ export async function updateSkills (client: TxOperations, c: Candidate, document
color,
targetClass: recruit.mixin.Candidate,
description: '',
category: category
category
})
}
namedSkills.add(title)
await client.addCollection(tags.class.TagReference, c.space, c._id, recruit.mixin.Candidate, 'skills', {
title: title,
title,
color,
tag
})
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+6 -6
View File
@@ -16,16 +16,16 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/node": "~16.11.12",
"ts-node": "^10.8.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+8 -8
View File
@@ -31,26 +31,26 @@ export const DOMAIN_ATTACHMENT = 'attachment' as Domain
export class TAttachment extends TAttachedDoc implements Attachment {
@Prop(TypeString(), attachment.string.Name)
@Index(IndexKind.FullText)
name!: string
name!: string
@Prop(TypeString(), attachment.string.File)
file!: string
file!: string
@Prop(TypeString(), attachment.string.Size)
size!: number
size!: number
@Prop(TypeString(), attachment.string.Type)
@Index(IndexKind.FullText)
type!: string
type!: string
@Prop(TypeTimestamp(), attachment.string.Date)
lastModified!: number
lastModified!: number
@Prop(TypeString(), attachment.string.Description)
description!: string
description!: string
@Prop(TypeBoolean(), attachment.string.Pinned)
pinned!: boolean
pinned!: boolean
}
@Model(attachment.class.Photo, attachment.class.Attachment)
@@ -60,7 +60,7 @@ export class TPhoto extends TAttachment implements Photo {}
@Model(attachment.class.SavedAttachments, preference.class.Preference)
export class TSavedAttachments extends TPreference implements SavedAttachments {
@Prop(TypeRef(attachment.class.Attachment), attachment.string.SavedAttachments)
attachedTo!: Ref<Attachment>
attachedTo!: Ref<Attachment>
}
export function createModel (builder: Builder): void {
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+2 -2
View File
@@ -34,10 +34,10 @@ export const DOMAIN_AUTOMATION = 'automation' as Domain
@UX(automation.string.Automation)
export class TAutomation extends TAttachedDoc implements Automation<Doc> {
@Prop(TypeString(), core.string.Name)
name!: string
name!: string
@Prop(TypeString(), core.string.Description)
description!: string | null
description!: string | null
targetClass!: Ref<Class<Doc>> | null
declare trigger: {
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+9 -9
View File
@@ -65,7 +65,7 @@ export class TCardCover extends TType implements CardCover {
@Model(board.class.CommonBoardPreference, preference.class.Preference)
export class TCommonBoardPreference extends TPreference implements CommonBoardPreference {
@Prop(TypeRef(workbench.class.Application), board.string.CommonBoardPreference)
attachedTo!: Ref<Application>
attachedTo!: Ref<Application>
}
@Model(board.class.Card, task.class.Task)
@@ -73,33 +73,33 @@ export class TCommonBoardPreference extends TPreference implements CommonBoardPr
export class TCard extends TTask implements Card {
@Prop(TypeString(), board.string.Title)
@Index(IndexKind.FullText)
title!: string
title!: string
@Prop(TypeBoolean(), board.string.IsArchived)
isArchived?: boolean
isArchived?: boolean
@Prop(TypeMarkup(), board.string.Description)
@Index(IndexKind.FullText)
description!: Markup
description!: Markup
@Prop(TypeString(), board.string.Location)
@Index(IndexKind.FullText)
location?: string
location?: string
@Prop(Collection(chunter.class.Comment), chunter.string.Comments)
comments?: number
comments?: number
@Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, undefined, attachment.string.Files)
attachments?: number
attachments?: number
@Prop(TypeRef(contact.class.Employee), board.string.Assignee)
declare assignee: Ref<Employee> | null
@Prop(ArrOf(TypeRef(contact.class.Employee)), board.string.Members)
members?: Ref<Employee>[]
members?: Ref<Employee>[]
@Prop(TypeCardCover(), board.string.Cover)
cover?: CardCover
cover?: CardCover
}
@Model(board.class.MenuPage, core.class.Doc, DOMAIN_MODEL)
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+10 -10
View File
@@ -56,30 +56,30 @@ export class TCalendar extends TSpaceWithStates implements Calendar {}
export class TEvent extends TAttachedDoc implements Event {
@Prop(TypeString(), calendar.string.Title)
@Index(IndexKind.FullText)
title!: string
title!: string
@Prop(TypeMarkup(), calendar.string.Description)
@Index(IndexKind.FullText)
description!: Markup
description!: Markup
@Prop(TypeString(), calendar.string.Location, calendar.icon.Location)
@Index(IndexKind.FullText)
location?: string
location?: string
@Prop(TypeDate(true), calendar.string.Date)
date!: Timestamp
date!: Timestamp
@Prop(TypeDate(true), calendar.string.DueTo)
dueDate!: Timestamp
dueDate!: Timestamp
@Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, undefined, attachment.string.Files)
attachments?: number
attachments?: number
@Prop(Collection(chunter.class.Comment), chunter.string.Comments)
comments?: number
comments?: number
@Prop(ArrOf(TypeRef(contact.class.Employee)), calendar.string.Participants)
participants!: Ref<Employee>[]
participants!: Ref<Employee>[]
}
@Mixin(calendar.mixin.Reminder, calendar.class.Event)
@@ -87,12 +87,12 @@ export class TEvent extends TAttachedDoc implements Event {
export class TReminder extends TEvent implements Reminder {
@Prop(TypeDate(true), calendar.string.Shift)
@Hidden()
shift!: Timestamp
shift!: Timestamp
@Prop(TypeString(), calendar.string.State)
@Index(IndexKind.Indexed)
@Hidden()
state!: 'active' | 'done'
state!: 'active' | 'done'
}
export function createModel (builder: Builder): void {
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+16 -16
View File
@@ -57,10 +57,10 @@ export const DOMAIN_COMMENT = 'comment' as Domain
@Model(chunter.class.ChunterSpace, core.class.Space)
export class TChunterSpace extends TSpace implements ChunterSpace {
@Prop(TypeTimestamp(), chunter.string.LastMessage)
lastMessage?: Timestamp
lastMessage?: Timestamp
@Prop(ArrOf(TypeRef(chunter.class.ChunterMessage)), chunter.string.PinnedMessages)
pinned?: Ref<ChunterMessage>[]
pinned?: Ref<ChunterMessage>[]
}
@Model(chunter.class.Channel, chunter.class.ChunterSpace)
@@ -68,7 +68,7 @@ export class TChunterSpace extends TSpace implements ChunterSpace {
export class TChannel extends TChunterSpace implements Channel {
@Prop(TypeString(), chunter.string.Topic)
@Index(IndexKind.FullText)
topic?: string
topic?: string
}
@Model(chunter.class.DirectMessage, chunter.class.ChunterSpace)
@@ -79,22 +79,22 @@ export class TDirectMessage extends TChunterSpace implements DirectMessage {}
export class TChunterMessage extends TAttachedDoc implements ChunterMessage {
@Prop(TypeMarkup(), chunter.string.Content)
@Index(IndexKind.FullText)
content!: string
content!: string
@Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, undefined, attachment.string.Files)
attachments?: number
attachments?: number
@Prop(TypeRef(core.class.Account), chunter.string.CreateBy)
createBy!: Ref<Account>
createBy!: Ref<Account>
@Prop(TypeTimestamp(), chunter.string.Create)
createOn!: Timestamp
createOn!: Timestamp
@Prop(TypeTimestamp(), chunter.string.Edit)
editedOn?: Timestamp
editedOn?: Timestamp
@Prop(Collection(chunter.class.Reaction), chunter.string.Reactions)
reactions?: number
reactions?: number
}
@Model(chunter.class.ThreadMessage, chunter.class.ChunterMessage)
@@ -113,19 +113,19 @@ export class TMessage extends TChunterMessage implements Message {
declare attachedToClass: Ref<Class<Space>>
@Prop(ArrOf(TypeRef(contact.class.Employee)), chunter.string.Replies)
replies?: Ref<Employee>[]
replies?: Ref<Employee>[]
@Prop(TypeTimestamp(), chunter.string.LastReply)
lastReply?: Timestamp
lastReply?: Timestamp
}
@Model(chunter.class.Reaction, core.class.AttachedDoc, DOMAIN_CHUNTER)
export class TReaction extends TAttachedDoc implements Reaction {
@Prop(TypeString(), chunter.string.Emoji)
emoji!: string
emoji!: string
@Prop(TypeRef(core.class.Account), chunter.string.CreateBy)
createBy!: Ref<Account>
createBy!: Ref<Account>
declare attachedTo: Ref<ChunterMessage>
declare attachedToClass: Ref<Class<ChunterMessage>>
@@ -136,10 +136,10 @@ export class TReaction extends TAttachedDoc implements Reaction {
export class TComment extends TAttachedDoc implements Comment {
@Prop(TypeMarkup(), chunter.string.Message)
@Index(IndexKind.FullText)
message!: string
message!: string
@Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, undefined, attachment.string.Files)
attachments?: number
attachments?: number
}
@Model(chunter.class.Backlink, chunter.class.Comment)
@@ -152,7 +152,7 @@ export class TBacklink extends TComment implements Backlink {
@Model(chunter.class.SavedMessages, preference.class.Preference)
export class TSavedMessages extends TPreference implements SavedMessages {
@Prop(TypeRef(chunter.class.ChunterMessage), chunter.string.SavedMessages)
attachedTo!: Ref<ChunterMessage>
attachedTo!: Ref<ChunterMessage>
}
export function createModel (builder: Builder): void {
+6 -6
View File
@@ -13,15 +13,15 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/crypto-js": "^4.1.1",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+12 -12
View File
@@ -76,59 +76,59 @@ export class TChannelProvider extends TDoc implements ChannelProvider {
export class TContact extends TDoc implements Contact {
@Prop(TypeString(), contact.string.Name)
@Index(IndexKind.FullText)
name!: string
name!: string
avatar?: string | null
@Prop(Collection(contact.class.Channel), contact.string.ContactInfo)
channels?: number
channels?: number
@Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, undefined, attachment.string.Files)
attachments?: number
attachments?: number
@Prop(Collection(chunter.class.Comment), chunter.string.Comments)
comments?: number
comments?: number
@Prop(TypeString(), contact.string.Location)
@Index(IndexKind.FullText)
city!: string
city!: string
}
@Model(contact.class.Channel, core.class.AttachedDoc, DOMAIN_CHANNEL)
@UX(contact.string.Channel, contact.icon.Person)
export class TChannel extends TAttachedDoc implements Channel {
@Prop(TypeRef(contact.class.ChannelProvider), contact.string.ChannelProvider)
provider!: Ref<ChannelProvider>
provider!: Ref<ChannelProvider>
@Prop(TypeString(), contact.string.Value)
@Index(IndexKind.FullText)
value!: string
value!: string
items?: number
@Prop(TypeTimestamp(), core.string.Modified)
lastMessage?: Timestamp
lastMessage?: Timestamp
}
@Model(contact.class.Person, contact.class.Contact)
@UX(contact.string.Person, contact.icon.Person, undefined, 'name')
export class TPerson extends TContact implements Person {
@Prop(TypeDate(), contact.string.Birthday)
birthday?: Timestamp
birthday?: Timestamp
}
@Model(contact.class.Member, core.class.AttachedDoc, DOMAIN_CONTACT)
@UX(contact.string.Member, contact.icon.Person, undefined, 'name')
export class TMember extends TAttachedDoc implements Member {
@Prop(TypeRef(contact.class.Contact), contact.string.Contact)
contact!: Ref<Contact>
contact!: Ref<Contact>
}
@Model(contact.class.Organization, contact.class.Contact)
@UX(contact.string.Organization, contact.icon.Company, undefined, 'name')
export class TOrganization extends TContact implements Organization {
@Prop(Collection(contact.class.Member), contact.string.Members)
members!: number
members!: number
}
@Model(contact.class.Status, core.class.AttachedDoc, DOMAIN_CONTACT)
@@ -146,7 +146,7 @@ export class TEmployee extends TPerson implements Employee {
active!: boolean
@Prop(Collection(contact.class.Status), contact.string.Status)
statuses?: number
statuses?: number
}
@Model(contact.class.EmployeeAccount, core.class.Account)
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+9 -9
View File
@@ -61,39 +61,39 @@ import core from './component'
export class TObj implements Obj {
@Prop(TypeRef(core.class.Class), core.string.ClassLabel)
@Index(IndexKind.Indexed)
_class!: Ref<Class<this>>
_class!: Ref<Class<this>>
}
@Model(core.class.Doc, core.class.Obj)
export class TDoc extends TObj implements Doc {
@Prop(TypeRef(core.class.Doc), core.string.Id)
// @Index(IndexKind.Indexed) // - automatically indexed by default.
_id!: Ref<this>
_id!: Ref<this>
@Prop(TypeRef(core.class.Space), core.string.Space)
@Index(IndexKind.Indexed)
space!: Ref<Space>
space!: Ref<Space>
@Prop(TypeTimestamp(), core.string.Modified)
modifiedOn!: Timestamp
modifiedOn!: Timestamp
@Prop(TypeRef(core.class.Account), core.string.ModifiedBy)
modifiedBy!: Ref<Account>
modifiedBy!: Ref<Account>
}
@Model(core.class.AttachedDoc, core.class.Doc)
export class TAttachedDoc extends TDoc implements AttachedDoc {
@Prop(TypeRef(core.class.Doc), core.string.AttachedTo)
@Index(IndexKind.Indexed)
attachedTo!: Ref<Doc>
attachedTo!: Ref<Doc>
@Prop(TypeRef(core.class.Class), core.string.AttachedToClass)
@Index(IndexKind.Indexed)
attachedToClass!: Ref<Class<Doc>>
attachedToClass!: Ref<Class<Doc>>
@Prop(TypeString(), core.string.Collection)
@Hidden()
collection!: string
collection!: string
}
@UX(core.string.ClassLabel)
@@ -102,7 +102,7 @@ export class TClass extends TDoc implements Class<Obj> {
kind!: ClassifierKind
@Prop(TypeIntlString(), core.string.ClassPropertyLabel)
label!: IntlString
label!: IntlString
extends!: Ref<Class<Obj>>
domain!: Domain
+5 -5
View File
@@ -27,20 +27,20 @@ export const DOMAIN_SPACE = 'space' as Domain
export class TSpace extends TDoc implements Space {
@Prop(TypeString(), core.string.Name)
@Index(IndexKind.FullText)
name!: string
name!: string
@Prop(TypeString(), core.string.Description)
@Index(IndexKind.FullText)
description!: string
description!: string
@Prop(TypeBoolean(), core.string.Private)
private!: boolean
private!: boolean
@Prop(TypeBoolean(), core.string.Archived)
archived!: boolean
archived!: boolean
@Prop(ArrOf(TypeRef(core.class.Account)), core.string.Members)
members!: Arr<Ref<Account>>
members!: Arr<Ref<Account>>
}
@Model(core.class.Account, core.class.Doc, DOMAIN_MODEL)
+1 -1
View File
@@ -52,7 +52,7 @@ export class TTxModelUpgrade extends TTx {}
@Model(core.class.TxCUD, core.class.Tx)
export class TTxCUD<T extends Doc> extends TTx implements TxCUD<T> {
@Index(IndexKind.Indexed)
objectId!: Ref<T>
objectId!: Ref<T>
objectClass!: Ref<Class<T>>
}
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+78 -57
View File
@@ -16,7 +16,15 @@
import contact, { Employee } from '@hcengineering/contact'
import type { Domain, Markup, Ref } from '@hcengineering/core'
import { IndexKind } from '@hcengineering/core'
import { Document, documentId, DocumentVersion, RichDocumentContent, Step } from '@hcengineering/document'
import {
CollaboratorDocument,
Document,
documentId,
DocumentRequest,
DocumentRequestKind,
DocumentVersion,
DocumentVersionState
} from '@hcengineering/document'
import {
ArrOf,
Builder,
@@ -31,7 +39,7 @@ import {
TypeString,
UX
} from '@hcengineering/model'
import attachment from '@hcengineering/model-attachment'
import attachment, { TAttachment } from '@hcengineering/model-attachment'
import chunter from '@hcengineering/model-chunter'
import core, { TAttachedDoc, TDoc } from '@hcengineering/model-core'
import presentation from '@hcengineering/model-presentation'
@@ -42,32 +50,52 @@ import document from './plugin'
export const DOMAIN_DOCUMENT = 'document' as Domain
@Model(document.class.RichDocumentContent, core.class.AttachedDoc, DOMAIN_DOCUMENT)
@Model(document.class.DocumentRequest, core.class.AttachedDoc, DOMAIN_DOCUMENT)
@UX(document.string.Document)
export class TRichDocumentContent extends TAttachedDoc implements RichDocumentContent {
steps!: Step[]
version!: number
export class TDocumentRequest extends TAttachedDoc implements DocumentRequest {
kind!: DocumentRequestKind
assignee!: Ref<Employee>
message!: Markup
}
@Model(document.class.CollaboratorDocument, attachment.class.Attachment, DOMAIN_DOCUMENT)
@UX(document.string.Document)
export class TCollaboratorDocument extends TAttachment implements CollaboratorDocument {}
@Model(document.class.DocumentVersion, core.class.AttachedDoc, DOMAIN_DOCUMENT)
@UX(document.string.Version)
export class TDocumentVersion extends TAttachedDoc implements DocumentVersion {
@Prop(TypeNumber(), document.string.Version)
@ReadOnly()
version!: number
version!: number
@Prop(TypeNumber(), document.string.Revision)
@ReadOnly()
sequenceNumber!: number
@Prop(TypeNumber(), document.string.Revision)
@ReadOnly()
@Prop(TypeString(), document.string.Description)
@Index(IndexKind.FullText)
content!: Markup
description!: Markup
@Prop(TypeNumber(), document.string.ApprovedBy)
@ReadOnly()
approved!: Ref<Employee> | null
@Prop(TypeString(), document.string.Description)
@Index(IndexKind.FullText)
reason!: Markup
@Prop(TypeString(), document.string.Description)
@Index(IndexKind.FullText)
impact!: Markup
// @Prop(TypeString(), document.string.Status)
state!: DocumentVersionState
@Prop(TypeString(), document.string.Document)
@Hidden()
content!: Markup
@Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, undefined, attachment.string.Files)
attachments!: number
@Prop(Collection(chunter.class.Comment), chunter.string.Comments)
comments!: number
contentAttachmentId!: Ref<CollaboratorDocument>
initialContentId!: Ref<CollaboratorDocument>
}
@Model(document.class.Document, core.class.Doc, DOMAIN_DOCUMENT)
@@ -75,40 +103,47 @@ export class TDocumentVersion extends TAttachedDoc implements DocumentVersion {
export class TDocument extends TDoc implements Document {
@Prop(TypeString(), document.string.Name)
@Index(IndexKind.FullText)
name!: string
@Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, undefined, attachment.string.Files)
attachments?: number
@Prop(Collection(chunter.class.Comment), chunter.string.Comments)
comments?: number
@Prop(Collection(tags.class.TagReference), document.string.Labels)
labels?: number
@Prop(TypeNumber(), document.string.Revision)
@ReadOnly()
@Hidden()
editSequence!: number
@Prop(Collection(document.class.DocumentVersion), document.string.Version)
versions!: number
@Prop(Collection(document.class.RichDocumentContent), document.string.Document)
@Hidden()
content!: number
name!: string
@Prop(TypeNumber(), document.string.Version)
@ReadOnly()
@Hidden()
versionCounter!: number
version!: number
@Prop(ArrOf(TypeRef(contact.class.Employee)), document.string.Responsible)
responsible!: Ref<Employee>[]
@Prop(TypeNumber(), document.string.LastRevision)
@ReadOnly()
@Hidden()
latest!: number
@Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, undefined, attachment.string.Files)
attachments?: number
@Prop(Collection(chunter.class.Comment), chunter.string.Comments)
comments?: number
@Prop(Collection(tags.class.TagReference), document.string.Labels)
labels?: number
@Prop(Collection(document.class.DocumentVersion), document.string.Version)
@Hidden()
versions!: number
@Prop(ArrOf(TypeRef(contact.class.Employee)), document.string.Authors)
authors!: Ref<Employee>[]
@Prop(ArrOf(TypeRef(contact.class.Employee)), document.string.Reviewers)
reviewers!: Ref<Employee>[]
@Prop(ArrOf(TypeRef(contact.class.Employee)), document.string.Approvers)
approvers!: Ref<Employee>[]
@Prop(Collection(document.class.DocumentRequest), document.string.Requests)
@Hidden()
requests!: number
}
export function createModel (builder: Builder): void {
builder.createModel(TDocument, TRichDocumentContent, TDocumentVersion)
builder.createModel(TDocument, TDocumentVersion, TCollaboratorDocument, TDocumentRequest)
builder.createDoc(
workbench.class.Application,
@@ -146,10 +181,6 @@ export function createModel (builder: Builder): void {
component: document.component.CreateDocument
})
builder.mixin(document.class.Document, core.class.Class, view.mixin.ClassFilters, {
filters: ['_class', 'modifiedOn']
})
builder.createDoc(
view.class.Viewlet,
core.space.Model,
@@ -158,21 +189,11 @@ export function createModel (builder: Builder): void {
descriptor: view.viewlet.Table,
config: [
'',
{
key: '',
presenter: document.component.Status,
label: document.string.Status
},
{
key: '',
presenter: document.component.Version,
label: document.string.Version
},
{
key: '',
presenter: document.component.Revision,
label: document.string.Revision
},
'comments',
'attachments',
{
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+19 -19
View File
@@ -46,77 +46,77 @@ export class TMessage extends TAttachedDoc implements Message {
declare attachedToClass: Ref<Class<Channel>>
@Prop(TypeString(), gmail.string.MessageID)
messageId!: string
messageId!: string
@Prop(TypeString(), gmail.string.ReplyTo)
@Index(IndexKind.FullText)
replyTo?: string
replyTo?: string
@Prop(TypeString(), gmail.string.From)
@Index(IndexKind.FullText)
from!: string
from!: string
@Prop(TypeString(), gmail.string.To)
@Index(IndexKind.FullText)
to!: string
to!: string
@Prop(TypeString(), gmail.string.Subject)
@Index(IndexKind.FullText)
subject!: string
subject!: string
@Prop(TypeString(), gmail.string.Message)
@Index(IndexKind.FullText)
content!: string
content!: string
@Prop(TypeString(), gmail.string.Message)
@Index(IndexKind.FullText)
textContent!: string
textContent!: string
@Prop(ArrOf(TypeString()), gmail.string.Copy)
copy?: string[]
copy?: string[]
@Prop(TypeBoolean(), gmail.string.Incoming)
incoming!: boolean
incoming!: boolean
@Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, undefined, attachment.string.Files)
attachments?: number
attachments?: number
@Prop(TypeTimestamp(), core.string.Modified)
sendOn!: Timestamp
sendOn!: Timestamp
}
@Model(gmail.class.NewMessage, core.class.Doc, DOMAIN_GMAIL)
export class TNewMessage extends TDoc implements NewMessage {
@Prop(TypeString(), gmail.string.ReplyTo)
@Index(IndexKind.FullText)
replyTo?: string
replyTo?: string
@Prop(TypeString(), gmail.string.To)
@Index(IndexKind.FullText)
to!: string
to!: string
@Prop(TypeString(), gmail.string.Subject)
@Index(IndexKind.FullText)
subject!: string
subject!: string
@Prop(TypeString(), gmail.string.Message)
@Index(IndexKind.FullText)
content!: string
content!: string
@Prop(TypeString(), gmail.string.Status)
status!: 'new' | 'sent'
status!: 'new' | 'sent'
@Prop(ArrOf(TypeString()), gmail.string.Copy)
copy?: string[]
copy?: string[]
@Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, undefined, attachment.string.Files)
attachments?: number
attachments?: number
}
@Model(gmail.class.SharedMessages, core.class.AttachedDoc, DOMAIN_GMAIL)
export class TSharedMessages extends TAttachedDoc implements SharedMessages {
@Prop(ArrOf(TypeSharedMessage()), gmail.string.Messages)
messages!: SharedMessage[]
messages!: SharedMessage[]
}
export function createModel (builder: Builder): void {
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+13 -13
View File
@@ -52,21 +52,21 @@ export class TDepartment extends TSpace implements Department {
@Prop(TypeString(), core.string.Name)
@Index(IndexKind.FullText)
name!: string
name!: string
@Prop(Collection(contact.class.Channel), contact.string.ContactInfo)
channels?: number
channels?: number
@Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, undefined, attachment.string.Files)
attachments?: number
attachments?: number
@Prop(Collection(chunter.class.Comment), chunter.string.Comments)
comments?: number
comments?: number
avatar?: string | null
@Prop(TypeRef(contact.class.Employee), hr.string.TeamLead)
teamLead!: Ref<Employee> | null
teamLead!: Ref<Employee> | null
@Prop(ArrOf(TypeRef(hr.class.DepartmentMember)), contact.string.Members)
declare members: Arr<Ref<DepartmentMember>>
@@ -80,14 +80,14 @@ export class TDepartmentMember extends TEmployeeAccount implements DepartmentMem
@UX(hr.string.Staff, hr.icon.HR)
export class TStaff extends TEmployee implements Staff {
@Prop(TypeRef(hr.class.Department), hr.string.Department)
department!: Ref<Department>
department!: Ref<Department>
}
@Model(hr.class.RequestType, core.class.Doc, DOMAIN_MODEL)
@UX(hr.string.RequestType)
export class TRequestType extends TDoc implements RequestType {
@Prop(TypeIntlString(), core.string.Name)
label!: IntlString
label!: IntlString
icon!: Asset
value!: number
@@ -126,23 +126,23 @@ export class TRequest extends TAttachedDoc implements Request {
@Prop(TypeRef(hr.class.RequestType), hr.string.RequestType)
@Hidden()
type!: Ref<RequestType>
type!: Ref<RequestType>
@Prop(Collection(chunter.class.Comment), chunter.string.Comments)
comments?: number
comments?: number
@Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, undefined, attachment.string.Files)
attachments?: number
attachments?: number
@Prop(TypeMarkup(), core.string.Description)
@Index(IndexKind.FullText)
description!: Markup
description!: Markup
@Prop(TypeTzDate(), calendar.string.Date)
tzDate!: TzDate
tzDate!: TzDate
@Prop(TypeTzDate(), calendar.string.DueTo)
tzDueDate!: TzDate
tzDueDate!: TzDate
}
export function createModel (builder: Builder): void {
+1 -1
View File
@@ -124,7 +124,7 @@ async function migrateTime (client: MigrationClient): Promise<void> {
{ _id: tx._id },
{
_class: core.class.TxCollectionCUD,
tx: tx,
tx,
collection: tx.attributes.collection,
objectId: tx.attributes.attachedTo,
objectClass: tx.attributes.attachedToClass
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+7 -7
View File
@@ -32,7 +32,7 @@ export const DOMAIN_INVENTORY = 'inventory' as Domain
export class TCategory extends TAttachedDoc implements Category {
@Prop(TypeString(), core.string.Name)
@Index(IndexKind.FullText)
name!: string
name!: string
}
@Model(inventory.class.Product, core.class.AttachedDoc, DOMAIN_INVENTORY)
@@ -44,16 +44,16 @@ export class TProduct extends TAttachedDoc implements Product {
@Prop(TypeString(), core.string.Name)
@Index(IndexKind.FullText)
name!: string
name!: string
@Prop(Collection(attachment.class.Photo), attachment.string.Photos)
photos?: number
photos?: number
@Prop(Collection(inventory.class.Variant), inventory.string.Variants)
variants?: number
variants?: number
@Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, undefined, attachment.string.Files)
attachments?: number
attachments?: number
}
@Model(inventory.class.Variant, core.class.AttachedDoc, DOMAIN_INVENTORY)
@@ -65,11 +65,11 @@ export class TVariant extends TAttachedDoc implements Variant {
@Prop(TypeString(), core.string.Name)
@Index(IndexKind.FullText)
name!: string
name!: string
@Prop(TypeString(), inventory.string.SKU)
@Index(IndexKind.FullText)
sku!: string
sku!: string
}
export function createModel (builder: Builder): void {
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+8 -8
View File
@@ -44,13 +44,13 @@ import lead from './plugin'
export class TFunnel extends TSpaceWithStates implements Funnel {
@Prop(TypeMarkup(), lead.string.FullDescription)
@Index(IndexKind.FullText)
fullDescription?: string
fullDescription?: string
@Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, undefined, attachment.string.Files)
attachments?: number
attachments?: number
@Prop(Collection(chunter.class.Comment), chunter.string.Comments)
comments?: number
comments?: number
}
@Model(lead.class.Lead, task.class.Task)
@@ -61,13 +61,13 @@ export class TLead extends TTask implements Lead {
@Prop(TypeString(), lead.string.Title)
@Index(IndexKind.FullText)
title!: string
title!: string
@Prop(Collection(chunter.class.Comment), chunter.string.Comments)
comments?: number
comments?: number
@Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, undefined, attachment.string.Files)
attachments?: number
attachments?: number
@Prop(TypeRef(contact.class.Employee), lead.string.Assignee)
declare assignee: Ref<Employee> | null
@@ -77,11 +77,11 @@ export class TLead extends TTask implements Lead {
@UX(lead.string.Customer, lead.icon.LeadApplication)
export class TCustomer extends TContact implements Customer {
@Prop(Collection(lead.class.Lead), lead.string.Leads)
leads?: number
leads?: number
@Prop(TypeMarkup(), core.string.Description)
@Index(IndexKind.FullText)
description!: string
description!: string
}
export function createModel (builder: Builder): void {
+1 -1
View File
@@ -6,7 +6,7 @@
},
"devDependencies": {
"@rushstack/heft": "^0.47.9",
"eslint-config-standard-with-typescript": "^21.0.1"
"eslint-config-standard-with-typescript": "^23.0.0"
},
"peerDependencies": {
"@typescript-eslint/parser": "^4.0.0"
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+10 -10
View File
@@ -38,19 +38,19 @@ export const DOMAIN_NOTIFICATION = 'notification' as Domain
@Model(notification.class.LastView, core.class.AttachedDoc, DOMAIN_NOTIFICATION)
export class TLastView extends TAttachedDoc implements LastView {
@Prop(TypeTimestamp(), notification.string.LastView)
lastView!: Timestamp
lastView!: Timestamp
@Prop(TypeRef(core.class.Account), core.string.ModifiedBy)
user!: Ref<Account>
user!: Ref<Account>
}
@Model(notification.class.Notification, core.class.AttachedDoc, DOMAIN_NOTIFICATION)
export class TNotification extends TAttachedDoc implements Notification {
@Prop(TypeRef(core.class.Tx), 'TX' as IntlString)
tx!: Ref<TxCUD<Doc>>
tx!: Ref<TxCUD<Doc>>
@Prop(TypeString(), 'Status' as IntlString)
status!: NotificationStatus
status!: NotificationStatus
text!: string
@@ -60,22 +60,22 @@ export class TNotification extends TAttachedDoc implements Notification {
@Model(notification.class.EmailNotification, core.class.Doc, DOMAIN_NOTIFICATION)
export class TEmaiNotification extends TDoc implements EmailNotification {
@Prop(TypeString(), 'Sender' as IntlString)
sender!: string
sender!: string
@Prop(ArrOf(TypeString()), 'Receivers' as IntlString)
receivers!: string[]
receivers!: string[]
@Prop(TypeString(), 'Subject' as IntlString)
subject!: string
subject!: string
@Prop(TypeString(), 'Text' as IntlString)
text!: string
text!: string
@Prop(TypeString(), 'Html' as IntlString)
html?: string
html?: string
@Prop(TypeString(), 'Status' as IntlString)
status!: 'new' | 'sent'
status!: 'new' | 'sent'
}
@Model(notification.class.NotificationType, core.class.Doc, DOMAIN_MODEL)
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+1 -1
View File
@@ -21,7 +21,7 @@ import preference, { DOMAIN_PREFERENCE, Preference, SpacePreference } from '@hce
@Model(preference.class.Preference, core.class.Doc, DOMAIN_PREFERENCE)
export class TPreference extends TDoc implements Preference {
@Prop(TypeRef(core.class.Doc), core.string.AttachedTo)
attachedTo!: Ref<Doc>
attachedTo!: Ref<Doc>
}
@Model(preference.class.SpacePreference, preference.class.Preference)
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+17 -17
View File
@@ -53,26 +53,26 @@ import { TOpinion, TReview } from './review-model'
export class TVacancy extends TSpaceWithStates implements Vacancy {
@Prop(TypeMarkup(), recruit.string.FullDescription)
@Index(IndexKind.FullText)
fullDescription?: string
fullDescription?: string
@Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, undefined, attachment.string.Files)
attachments?: number
attachments?: number
@Prop(TypeDate(), recruit.string.Due, recruit.icon.Calendar)
dueTo?: Timestamp
dueTo?: Timestamp
@Prop(TypeString(), recruit.string.Location, recruit.icon.Location)
@Index(IndexKind.FullText)
location?: string
location?: string
@Prop(TypeRef(contact.class.Organization), recruit.string.Company, contact.icon.Company)
company?: Ref<Organization>
company?: Ref<Organization>
@Prop(Collection(chunter.class.Comment), chunter.string.Comments)
comments?: number
comments?: number
@Prop(Collection(chunter.class.Backlink), chunter.string.Comments)
relations!: number
relations!: number
}
@Model(recruit.class.Candidates, core.class.Space)
@@ -84,33 +84,33 @@ export class TCandidates extends TSpace implements Candidates {}
export class TCandidate extends TPerson implements Candidate {
@Prop(TypeString(), recruit.string.Title)
@Index(IndexKind.FullText)
title?: string
title?: string
@Prop(Collection(recruit.class.Applicant), recruit.string.Applications, undefined, recruit.string.ApplicationsShort)
applications?: number
applications?: number
@Prop(TypeBoolean(), recruit.string.Onsite)
onsite?: boolean
onsite?: boolean
@Prop(TypeBoolean(), recruit.string.Remote)
remote?: boolean
remote?: boolean
@Prop(TypeString(), recruit.string.Source)
@Index(IndexKind.FullText)
source?: string
source?: string
@Prop(Collection(tags.class.TagReference, recruit.string.SkillLabel), recruit.string.SkillsLabel, recruit.icon.Skills)
skills?: number
skills?: number
@Prop(Collection(recruit.class.Review, recruit.string.Review), recruit.string.Reviews)
reviews?: number
reviews?: number
}
@Mixin(recruit.mixin.VacancyList, contact.class.Organization)
@UX(recruit.string.VacancyList, recruit.icon.RecruitApplication, undefined, 'name')
export class TVacancyList extends TOrganization implements VacancyList {
@Prop(ArrOf(TypeRef(recruit.class.Vacancy)), recruit.string.Vacancies)
vacancies!: number
vacancies!: number
}
@Model(recruit.class.Applicant, task.class.Task)
@@ -127,10 +127,10 @@ export class TApplicant extends TTask implements Applicant {
declare space: Ref<Vacancy>
@Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, undefined, attachment.string.Files)
attachments?: number
attachments?: number
@Prop(Collection(chunter.class.Comment), chunter.string.Comments)
comments?: number
comments?: number
@Prop(TypeRef(contact.class.Employee), recruit.string.AssignedRecruiter)
declare assignee: Ref<Employee> | null
+9 -9
View File
@@ -18,38 +18,38 @@ export class TReview extends TEvent implements Review {
declare attachedTo: Ref<Candidate>
@Prop(TypeString(), recruit.string.Review)
number!: number
number!: number
@Prop(TypeString(), recruit.string.Verdict)
@Index(IndexKind.FullText)
verdict!: string
verdict!: string
@Prop(TypeRef(contact.class.Organization), recruit.string.Company, contact.icon.Company)
company?: Ref<Organization>
company?: Ref<Organization>
@Prop(Collection(recruit.class.Opinion), recruit.string.Opinions)
opinions?: number
opinions?: number
}
@Model(recruit.class.Opinion, core.class.AttachedDoc, 'recruit' as Domain)
@UX(recruit.string.Opinion, recruit.icon.Opinion, recruit.string.OpinionShortLabel)
export class TOpinion extends TAttachedDoc implements Opinion {
@Prop(TypeString(), task.string.TaskNumber)
number!: number
number!: number
// We need to declare, to provide property with label
@Prop(TypeRef(recruit.class.Review), recruit.string.Review)
declare attachedTo: Ref<Review>
@Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, undefined, attachment.string.Files)
attachments?: number
attachments?: number
@Prop(Collection(chunter.class.Comment), chunter.string.Comments)
comments?: number
comments?: number
@Prop(TypeMarkup(), recruit.string.Description)
description!: string
description!: string
@Prop(TypeString(), recruit.string.OpinionValue)
value!: string
value!: string
}
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+14 -14
View File
@@ -31,23 +31,23 @@ export const DOMAIN_TAGS = 'tags' as Domain
export class TTagElement extends TDoc implements TagElement {
@Prop(TypeString(), tags.string.TitleLabel)
@Index(IndexKind.FullText)
title!: string
title!: string
@Prop(TypeRef(core.class.Class), tags.string.TargetClassLabel)
targetClass!: Ref<Class<Doc>>
targetClass!: Ref<Class<Doc>>
@Prop(TypeString(), tags.string.DescriptionLabel)
@Index(IndexKind.FullText)
description!: string
description!: string
@Prop(TypeString(), tags.string.ColorLabel)
color!: number
color!: number
@Prop(TypeRef(tags.class.TagCategory), tags.string.CategoryLabel)
category!: Ref<TagCategory>
category!: Ref<TagCategory>
@Prop(TypeNumber(), tags.string.TagReference)
refCount?: number
refCount?: number
}
@Model(tags.class.TagReference, core.class.AttachedDoc, DOMAIN_TAGS)
@@ -55,33 +55,33 @@ export class TTagElement extends TDoc implements TagElement {
export class TTagReference extends TAttachedDoc implements TagReference {
@Prop(TypeString(), tags.string.TitleLabel)
@Index(IndexKind.FullText)
title!: string
title!: string
@Prop(TypeRef(tags.class.TagElement), tags.string.TagLabel)
@Index(IndexKind.Indexed)
tag!: Ref<TagElement>
tag!: Ref<TagElement>
@Prop(TypeString(), tags.string.ColorLabel)
color!: number
color!: number
}
@Model(tags.class.TagCategory, core.class.Doc, DOMAIN_TAGS)
@UX(tags.string.TargetCategoryLabel)
export class TTagCategory extends TDoc implements TagCategory {
@Prop(TypeString(), tags.string.AssetLabel)
icon!: Asset
icon!: Asset
@Prop(TypeString(), tags.string.CategoryLabel)
label!: IntlString
label!: IntlString
@Prop(TypeString(), tags.string.CategoryTargetClass)
targetClass!: Ref<Class<Doc>>
targetClass!: Ref<Class<Doc>>
@Prop(ArrOf(TypeRef(core.class.TypeString)), tags.string.CategoryTagsLabel)
tags!: string[]
tags!: string[]
@Prop(TypeString(), tags.string.DefaultLabel)
default!: boolean
default!: boolean
}
export function createModel (builder: Builder): void {
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+25 -25
View File
@@ -83,7 +83,7 @@ export const DOMAIN_KANBAN = 'kanban' as Domain
@UX(task.string.TaskState, task.icon.TaskState, undefined, 'rank')
export class TState extends TDoc implements State {
@Prop(TypeString(), task.string.TaskStateTitle)
title!: string
title!: string
color!: number
@@ -94,7 +94,7 @@ export class TState extends TDoc implements State {
@UX(task.string.TaskStateDone, task.icon.TaskState, undefined, 'title')
export class TDoneState extends TDoc implements DoneState {
@Prop(TypeString(), task.string.TaskStateTitle)
title!: string
title!: string
declare rank: string
}
@@ -114,30 +114,30 @@ export class TLostState extends TDoneState implements LostState {}
@UX(task.string.Task, task.icon.Task, task.string.Task)
export class TTask extends TAttachedDoc implements Task {
@Prop(TypeRef(task.class.State), task.string.TaskState)
state!: Ref<State>
state!: Ref<State>
@Prop(TypeRef(task.class.DoneState), task.string.TaskStateDone)
doneState!: Ref<DoneState> | null
doneState!: Ref<DoneState> | null
@Prop(TypeString(), task.string.TaskNumber)
number!: number
number!: number
// @Prop(TypeRef(contact.class.Employee), task.string.TaskAssignee)
assignee!: Ref<Employee> | null
@Prop(TypeDate(), task.string.DueDate)
dueDate!: Timestamp | null
dueDate!: Timestamp | null
@Prop(TypeDate(), task.string.StartDate)
startDate!: Timestamp | null
startDate!: Timestamp | null
declare rank: string
@Prop(Collection(task.class.TodoItem), task.string.Todos)
todoItems!: number
todoItems!: number
@Prop(Collection(tags.class.TagReference, task.string.TaskLabels), task.string.TaskLabels)
labels!: number
labels!: number
}
@Model(task.class.TodoItem, core.class.AttachedDoc, DOMAIN_TASK, [task.interface.DocWithRank])
@@ -145,19 +145,19 @@ export class TTask extends TAttachedDoc implements Task {
export class TTodoItem extends TAttachedDoc implements TodoItem {
@Prop(TypeMarkup(), task.string.TodoName, task.icon.Task)
@Index(IndexKind.FullText)
name!: string
name!: string
@Prop(TypeRef(contact.class.Employee), task.string.TaskAssignee)
assignee!: Ref<Employee> | null
assignee!: Ref<Employee> | null
@Prop(TypeBoolean(), task.string.TaskDone)
done!: boolean
done!: boolean
@Prop(TypeDate(), task.string.TaskDueTo)
dueTo!: Timestamp | null
dueTo!: Timestamp | null
@Prop(Collection(task.class.TodoItem), task.string.Todos)
items!: number
items!: number
declare rank: string
}
@@ -178,17 +178,17 @@ export class TIssue extends TTask implements Issue {
@Prop(TypeString(), task.string.IssueName)
@Index(IndexKind.FullText)
name!: string
name!: string
@Prop(TypeMarkup(), task.string.TaskDescription)
@Index(IndexKind.FullText)
description!: string
description!: string
@Prop(Collection(chunter.class.Comment), task.string.TaskComments)
comments!: number
comments!: number
@Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, undefined, attachment.string.Files)
attachments!: number
attachments!: number
@Prop(TypeRef(contact.class.Employee), task.string.TaskAssignee)
declare assignee: Ref<Employee> | null
@@ -216,10 +216,10 @@ export class TKanbanTemplateSpace extends TDoc implements KanbanTemplateSpace {
@Model(task.class.StateTemplate, core.class.AttachedDoc, DOMAIN_KANBAN, [task.interface.DocWithRank])
export class TStateTemplate extends TAttachedDoc implements StateTemplate {
@Prop(TypeString(), task.string.StateTemplateTitle)
title!: string
title!: string
@Prop(TypeString(), task.string.StateTemplateColor)
color!: number
color!: number
declare rank: string
}
@@ -227,7 +227,7 @@ export class TStateTemplate extends TAttachedDoc implements StateTemplate {
@Model(task.class.DoneStateTemplate, core.class.AttachedDoc, DOMAIN_KANBAN, [task.interface.DocWithRank])
export class TDoneStateTemplate extends TAttachedDoc implements DoneStateTemplate {
@Prop(TypeString(), task.string.StateTemplateTitle)
title!: string
title!: string
declare rank: string
}
@@ -242,13 +242,13 @@ export class TLostStateTemplate extends TDoneStateTemplate implements LostStateT
export class TKanbanTemplate extends TDoc implements KanbanTemplate {
@Prop(TypeString(), task.string.KanbanTemplateTitle)
@Index(IndexKind.FullText)
title!: string
title!: string
@Prop(Collection(task.class.StateTemplate), task.string.States)
statesC!: number
statesC!: number
@Prop(Collection(task.class.DoneStateTemplate), task.string.DoneStates)
doneStatesC!: number
doneStatesC!: number
}
@Model(task.class.Sequence, core.class.Doc, DOMAIN_KANBAN)
@@ -261,7 +261,7 @@ export class TSequence extends TDoc implements Sequence {
export class TDocWithRank extends TDoc {
@Prop(TypeString(), task.string.Rank)
@Hidden()
rank!: string
rank!: string
}
/**
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+8 -8
View File
@@ -53,35 +53,35 @@ export class TTelegramMessage extends TAttachedDoc implements TelegramMessage {
@Prop(TypeString(), telegram.string.Content)
@Index(IndexKind.FullText)
content!: string
content!: string
@Prop(TypeBoolean(), telegram.string.Incoming)
incoming!: boolean
incoming!: boolean
@Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, undefined, attachment.string.Files)
attachments?: number
attachments?: number
@Prop(TypeTimestamp(), core.string.Modified)
sendOn!: Timestamp
sendOn!: Timestamp
}
@Model(telegram.class.NewMessage, core.class.AttachedDoc, DOMAIN_TELEGRAM)
export class TNewTelegramMessage extends TAttachedDoc implements NewTelegramMessage {
@Prop(TypeString(), telegram.string.Content)
@Index(IndexKind.FullText)
content!: string
content!: string
@Prop(TypeString(), telegram.string.Status)
status!: 'new' | 'sent'
status!: 'new' | 'sent'
@Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, undefined, attachment.string.Files)
attachments?: number
attachments?: number
}
@Model(telegram.class.SharedMessages, core.class.AttachedDoc, DOMAIN_TELEGRAM)
export class TSharedTelegramMessages extends TAttachedDoc implements SharedTelegramMessages {
@Prop(ArrOf(TypeSharedMessage()), telegram.string.Messages)
messages!: SharedTelegramMessage[]
messages!: SharedTelegramMessage[]
}
export function createModel (builder: Builder): void {
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+2 -2
View File
@@ -28,11 +28,11 @@ export const DOMAIN_TEMPLATES = 'templates' as Domain
export class TMessageTemplate extends TDoc implements MessageTemplate {
@Prop(TypeString(), templates.string.Title)
@Index(IndexKind.FullText)
title!: string
title!: string
@Prop(TypeString(), templates.string.Message)
@Index(IndexKind.FullText)
message!: string
message!: string
}
export function createModel (builder: Builder): void {
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+67 -67
View File
@@ -92,11 +92,11 @@ export class TIssueStatus extends TAttachedDoc implements IssueStatus {
color?: number
@Prop(TypeRef(tracker.class.IssueStatusCategory), tracker.string.StatusCategory)
category!: Ref<IssueStatusCategory>
category!: Ref<IssueStatusCategory>
@Prop(TypeString(), tracker.string.Rank)
@Hidden()
rank!: string
rank!: string
}
/**
@@ -158,21 +158,21 @@ export class TTypeSprintStatus extends TType {}
export class TTeam extends TSpace implements Team {
@Prop(TypeString(), tracker.string.Title)
@Index(IndexKind.FullText)
reamLogo!: IntlString
reamLogo!: IntlString
@Prop(TypeString(), tracker.string.Identifier)
@Index(IndexKind.FullText)
identifier!: IntlString
identifier!: IntlString
@Prop(TypeNumber(), tracker.string.Number)
@Hidden()
sequence!: number
sequence!: number
@Prop(Collection(tracker.class.IssueStatus), tracker.string.IssueStatuses)
issueStatuses!: number
issueStatuses!: number
@Prop(TypeRef(tracker.class.IssueStatus), tracker.string.DefaultIssueStatus)
defaultIssueStatus!: Ref<IssueStatus>
defaultIssueStatus!: Ref<IssueStatus>
}
/**
@@ -190,69 +190,69 @@ export function TypeReportedTime (): Type<number> {
export class TIssue extends TAttachedDoc implements Issue {
@Prop(TypeString(), tracker.string.Title)
@Index(IndexKind.FullText)
title!: string
title!: string
@Prop(TypeMarkup(), tracker.string.Description)
@Index(IndexKind.FullText)
description!: Markup
description!: Markup
@Prop(TypeRef(tracker.class.IssueStatus), tracker.string.Status)
status!: Ref<IssueStatus>
status!: Ref<IssueStatus>
@Prop(TypeIssuePriority(), tracker.string.Priority)
priority!: IssuePriority
priority!: IssuePriority
@Prop(TypeNumber(), tracker.string.Number)
@Index(IndexKind.FullText)
number!: number
number!: number
@Prop(TypeRef(contact.class.Employee), tracker.string.Assignee)
assignee!: Ref<Employee> | null
assignee!: Ref<Employee> | null
@Prop(TypeRef(tracker.class.Project), tracker.string.Project)
project!: Ref<Project> | null
project!: Ref<Project> | null
@Prop(Collection(tracker.class.Issue), tracker.string.SubIssues)
subIssues!: number
subIssues!: number
@Prop(ArrOf(TypeRef(core.class.TypeRelatedDocument)), tracker.string.BlockedBy)
blockedBy!: RelatedDocument[]
blockedBy!: RelatedDocument[]
@Prop(ArrOf(TypeRef(core.class.TypeRelatedDocument)), tracker.string.RelatedTo)
relations!: RelatedDocument[]
relations!: RelatedDocument[]
parents!: IssueParentInfo[]
@Prop(Collection(chunter.class.Comment), tracker.string.Comments)
comments!: number
comments!: number
@Prop(Collection(attachment.class.Attachment), tracker.string.Attachments)
attachments!: number
attachments!: number
@Prop(Collection(tags.class.TagReference), tracker.string.Labels)
labels?: number
labels?: number
declare space: Ref<Team>
@Prop(TypeDate(true), tracker.string.DueDate)
dueDate!: Timestamp | null
dueDate!: Timestamp | null
@Prop(TypeString(), tracker.string.Rank)
@Hidden()
rank!: string
rank!: string
@Prop(TypeRef(tracker.class.Sprint), tracker.string.Sprint)
sprint!: Ref<Sprint> | null
sprint!: Ref<Sprint> | null
@Prop(TypeNumber(), tracker.string.Estimation)
estimation!: number
estimation!: number
@Prop(TypeReportedTime(), tracker.string.ReportedTime)
@ReadOnly()
reportedTime!: number
reportedTime!: number
@Prop(Collection(tracker.class.TimeSpendReport), tracker.string.TimeSpendReports)
reports!: number
reports!: number
declare childInfo: IssueChildInfo[]
}
@@ -265,43 +265,43 @@ export class TIssue extends TAttachedDoc implements Issue {
export class TIssueTemplate extends TDoc implements IssueTemplate {
@Prop(TypeString(), tracker.string.Title)
@Index(IndexKind.FullText)
title!: string
title!: string
@Prop(TypeMarkup(), tracker.string.Description)
@Index(IndexKind.FullText)
description!: Markup
description!: Markup
@Prop(TypeIssuePriority(), tracker.string.Priority)
priority!: IssuePriority
priority!: IssuePriority
@Prop(TypeRef(contact.class.Employee), tracker.string.Assignee)
assignee!: Ref<Employee> | null
assignee!: Ref<Employee> | null
@Prop(TypeRef(tracker.class.Project), tracker.string.Project)
project!: Ref<Project> | null
project!: Ref<Project> | null
@Prop(ArrOf(TypeRef(tags.class.TagElement)), tracker.string.Labels)
labels?: Ref<TagElement>[]
labels?: Ref<TagElement>[]
declare space: Ref<Team>
@Prop(TypeDate(true), tracker.string.DueDate)
dueDate!: Timestamp | null
dueDate!: Timestamp | null
@Prop(TypeRef(tracker.class.Sprint), tracker.string.Sprint)
sprint!: Ref<Sprint> | null
sprint!: Ref<Sprint> | null
@Prop(TypeNumber(), tracker.string.Estimation)
estimation!: number
estimation!: number
@Prop(ArrOf(TypeRef(tracker.class.IssueTemplate)), tracker.string.IssueTemplate)
children!: IssueTemplateChild[]
children!: IssueTemplateChild[]
@Prop(Collection(chunter.class.Comment), tracker.string.Comments)
comments!: number
comments!: number
@Prop(Collection(attachment.class.Attachment), tracker.string.Attachments)
attachments!: number
attachments!: number
}
/**
@@ -313,16 +313,16 @@ export class TTimeSpendReport extends TAttachedDoc implements TimeSpendReport {
declare attachedTo: Ref<Issue>
@Prop(TypeRef(contact.class.Employee), contact.string.Employee)
employee!: Ref<Employee>
employee!: Ref<Employee>
@Prop(TypeDate(), tracker.string.TimeSpendReportDate)
date!: Timestamp | null
date!: Timestamp | null
@Prop(TypeNumber(), tracker.string.TimeSpendReportValue)
value!: number
value!: number
@Prop(TypeString(), tracker.string.TimeSpendReportDescription)
description!: string
description!: string
}
/**
* @public
@@ -332,17 +332,17 @@ export class TTimeSpendReport extends TAttachedDoc implements TimeSpendReport {
export class TDocument extends TDoc implements Document {
@Prop(TypeString(), tracker.string.Title)
@Index(IndexKind.FullText)
title!: string
title!: string
@Prop(TypeString(), tracker.string.DocumentIcon)
icon!: string | null
icon!: string | null
@Prop(TypeString(), tracker.string.DocumentColor)
color!: number
color!: number
@Prop(TypeMarkup(), tracker.string.Description)
@Index(IndexKind.FullText)
content!: Markup
content!: Markup
declare space: Ref<Team>
}
@@ -355,37 +355,37 @@ export class TDocument extends TDoc implements Document {
export class TProject extends TDoc implements Project {
@Prop(TypeString(), tracker.string.Title)
// @Index(IndexKind.FullText)
label!: string
label!: string
@Prop(TypeMarkup(), tracker.string.Description)
description?: Markup
description?: Markup
@Prop(TypeString(), tracker.string.AssetLabel)
icon!: Asset
icon!: Asset
@Prop(TypeProjectStatus(), tracker.string.Status)
status!: ProjectStatus
status!: ProjectStatus
@Prop(TypeRef(contact.class.Employee), tracker.string.ProjectLead)
lead!: Ref<Employee> | null
lead!: Ref<Employee> | null
@Prop(ArrOf(TypeRef(contact.class.Employee)), tracker.string.Members)
members!: Ref<Employee>[]
members!: Ref<Employee>[]
@Prop(Collection(chunter.class.Comment), chunter.string.Comments)
comments!: number
comments!: number
@Prop(Collection(tracker.class.Document), tracker.string.Document)
documents!: number
documents!: number
@Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, undefined, attachment.string.Files)
attachments?: number
attachments?: number
@Prop(TypeDate(true), tracker.string.StartDate)
startDate!: Timestamp | null
startDate!: Timestamp | null
@Prop(TypeDate(true), tracker.string.TargetDate)
targetDate!: Timestamp | null
targetDate!: Timestamp | null
declare space: Ref<Team>
}
@@ -398,36 +398,36 @@ export class TProject extends TDoc implements Project {
export class TSprint extends TDoc implements Sprint {
@Prop(TypeString(), tracker.string.Title)
// @Index(IndexKind.FullText)
label!: string
label!: string
@Prop(TypeMarkup(), tracker.string.Description)
description?: Markup
description?: Markup
@Prop(TypeSprintStatus(), tracker.string.Status)
status!: SprintStatus
status!: SprintStatus
@Prop(TypeRef(contact.class.Employee), tracker.string.ProjectLead)
lead!: Ref<Employee> | null
lead!: Ref<Employee> | null
@Prop(Collection(chunter.class.Comment), chunter.string.Comments)
comments!: number
comments!: number
@Prop(Collection(attachment.class.Attachment), attachment.string.Attachments, undefined, attachment.string.Files)
attachments?: number
attachments?: number
@Prop(TypeDate(false), tracker.string.StartDate)
startDate!: Timestamp
startDate!: Timestamp
@Prop(TypeDate(false), tracker.string.TargetDate)
targetDate!: Timestamp
targetDate!: Timestamp
declare space: Ref<Team>
@Prop(TypeNumber(), tracker.string.Capacity)
capacity!: number
capacity!: number
@Prop(TypeRef(tracker.class.Project), tracker.string.Project)
project!: Ref<Project>
project!: Ref<Project>
}
@UX(core.string.Number)
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+6 -6
View File
@@ -13,14 +13,14 @@
},
"devDependencies": {
"@hcengineering/model-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9"
},
+1 -1
View File
@@ -38,7 +38,7 @@ export class TApplication extends TDoc implements Application {
@Model(workbench.class.HiddenApplication, preference.class.Preference)
export class THiddenApplication extends TPreference implements HiddenApplication {
@Prop(TypeRef(workbench.class.Application), workbench.string.HiddenApplication)
attachedTo!: Ref<Application>
attachedTo!: Ref<Application>
}
@Mixin(workbench.mixin.SpaceView, core.class.Class)
+6 -6
View File
@@ -15,15 +15,15 @@
"devDependencies": {
"@hcengineering/platform-rig": "~0.6.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"simplytyped": "^3.3.0",
"@rushstack/heft": "^0.47.9",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"typescript": "^4.3.5"
},
+7 -7
View File
@@ -18,15 +18,15 @@
"svelte-preprocess": "^4.10.7",
"svelte-check": "^2.8.0",
"@hcengineering/platform-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-n": "^15.4.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-svelte3": "^4.0.0",
"prettier-plugin-svelte": "^2.7.0",
"eslint": "^8.18.0",
"prettier-plugin-svelte": "^2.8.0",
"eslint": "^8.26.0",
"prettier": "^2.7.1",
"typescript": "^4.3.5"
},
+1 -1
View File
@@ -280,7 +280,7 @@
check(objects, false)
checked = []
}
dispatch('contextmenu', { evt: evt, objects: checked.length > 0 ? checked : object.it })
dispatch('contextmenu', { evt, objects: checked.length > 0 ? checked : object.it })
}
</script>
+6 -6
View File
@@ -14,14 +14,14 @@
"devDependencies": {
"@hcengineering/platform-rig": "~0.6.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@types/toposort": "^2.0.3",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"@rushstack/heft": "^0.47.9",
"typescript": "^4.3.5"
+7 -7
View File
@@ -18,15 +18,15 @@
"svelte-preprocess": "^4.10.7",
"svelte-check": "^2.8.0",
"@hcengineering/platform-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-n": "^15.4.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-svelte3": "^4.0.0",
"prettier-plugin-svelte": "^2.7.0",
"eslint": "^8.18.0",
"prettier-plugin-svelte": "^2.8.0",
"eslint": "^8.26.0",
"prettier": "^2.7.1",
"typescript": "^4.3.5"
},
+9 -1
View File
@@ -108,7 +108,15 @@
</svelte:fragment>
{#if withoutActivity}
<slot />
{#if $deviceInfo.isMobile}
<div class="popupPanel-body__mobile-content clear-mins">
<slot />
</div>
{:else}
<div class="popupPanel-body__main-content py-8 clear-mins">
<slot />
</div>
{/if}
{:else if $deviceInfo.isMobile}
<div class="popupPanel-body__mobile-content clear-mins">
<Component is={activity.component.Activity} props={{ object, integrate: true }}>
+1 -1
View File
@@ -7,7 +7,7 @@
"devDependencies": {
"@rushstack/heft-jest-plugin": "^0.3.16",
"@rushstack/heft": "^0.47.9",
"eslint-config-standard-with-typescript": "^21.0.1"
"eslint-config-standard-with-typescript": "^23.0.0"
},
"peerDependencies": {
"@typescript-eslint/parser": "^4.0.0"
+6 -6
View File
@@ -15,14 +15,14 @@
"devDependencies": {
"@hcengineering/platform-rig": "~0.6.0",
"@types/heft-jest": "^1.0.3",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint": "^8.18.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-n": "^15.4.0",
"eslint": "^8.26.0",
"@rushstack/heft": "^0.47.9",
"@typescript-eslint/parser": "^5.30.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"@typescript-eslint/parser": "^5.41.0",
"eslint-config-standard-with-typescript": "^23.0.0",
"prettier": "^2.7.1",
"typescript": "^4.3.5"
},
+7 -7
View File
@@ -17,16 +17,16 @@
"sass": "^1.53.0",
"svelte-preprocess": "^4.10.7",
"@hcengineering/platform-rig": "~0.6.0",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/parser": "^5.30.0",
"@typescript-eslint/eslint-plugin": "^5.41.0",
"@typescript-eslint/parser": "^5.41.0",
"@types/crypto-js": "^4.1.1",
"eslint-config-standard-with-typescript": "^21.0.1",
"eslint-config-standard-with-typescript": "^23.0.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-n": "^15.4.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-svelte3": "^4.0.0",
"prettier-plugin-svelte": "^2.7.0",
"eslint": "^8.18.0",
"prettier-plugin-svelte": "^2.8.0",
"eslint": "^8.26.0",
"prettier": "^2.7.1",
"svelte-check": "^2.8.0",
"typescript": "^4.3.5"
@@ -27,6 +27,7 @@
export let maxWidth: string | undefined = undefined
export let focus: boolean = false
export let showHeader: boolean = true
export let readonly = false
const client = getClient()
const hierarchy = client.getHierarchy()
@@ -68,6 +69,7 @@
const doc = object as Doc
updateAttribute(client, doc, _class, { key: attributeKey, attr: attribute }, value)
}
$: isReadonly = (attribute.readonly ?? false) || readonly
</script>
{#if editor}
@@ -84,6 +86,7 @@
<div class="flex flex-grow min-w-0">
<svelte:component
this={instance}
readonly={isReadonly}
label={attribute?.label}
placeholder={attribute?.label}
kind={'link'}
@@ -93,7 +96,6 @@
type={attribute?.type}
{maxWidth}
value={getAttribute(client, object, { key: attributeKey, attr: attribute })}
readonly={attribute.readonly ?? false}
space={object.space}
{onChange}
{focus}
@@ -107,7 +109,7 @@
type={attribute?.type}
{maxWidth}
value={getAttribute(client, object, { key: attributeKey, attr: attribute })}
readonly={attribute.readonly ?? false}
readonly={isReadonly}
space={object.space}
{onChange}
{focus}
@@ -22,11 +22,12 @@
export let _class: Ref<Class<Doc>>
export let keys: (string | KeyedAttribute)[]
export let showHeader: boolean = true
export let readonly = false
</script>
<div class="attributes-bar-container vertical">
{#each keys as key (typeof key === 'string' ? key : key.key)}
<AttributeBarEditor {key} {_class} {object} {showHeader} />
<AttributeBarEditor {key} {_class} {object} {showHeader} {readonly} />
{/each}
</div>
@@ -60,7 +60,7 @@
{size}
{justify}
on:click={addSpace}
showTooltip={{ label: label, direction: labelDirection }}
showTooltip={{ label, direction: labelDirection }}
>
<svelte:fragment slot="content">
{#if selectedItems.length > 0}

Some files were not shown because too many files have changed in this diff Show More