mirror of
https://github.com/hcengineering/platform.git
synced 2024-12-22 11:01:54 +03:00
Send email notification when mentioned (#1031)
Signed-off-by: Denis Bykhov <80476319+BykhovDenis@users.noreply.github.com>
This commit is contained in:
parent
42a4ecc676
commit
d8de94da59
5
.github/workflows/main.yml
vendored
5
.github/workflows/main.yml
vendored
@ -67,6 +67,7 @@ jobs:
|
||||
plugins
|
||||
pods
|
||||
server
|
||||
server-plugins
|
||||
templates
|
||||
tests
|
||||
rush.json
|
||||
@ -96,6 +97,7 @@ jobs:
|
||||
plugins
|
||||
pods
|
||||
server
|
||||
server-plugins
|
||||
templates
|
||||
tests
|
||||
rush.json
|
||||
@ -128,6 +130,7 @@ jobs:
|
||||
plugins
|
||||
pods
|
||||
server
|
||||
server-plugins
|
||||
templates
|
||||
tests
|
||||
rush.json
|
||||
@ -160,6 +163,7 @@ jobs:
|
||||
plugins
|
||||
pods
|
||||
server
|
||||
server-plugins
|
||||
templates
|
||||
tests
|
||||
rush.json
|
||||
@ -204,6 +208,7 @@ jobs:
|
||||
plugins
|
||||
pods
|
||||
server
|
||||
server-plugins
|
||||
templates
|
||||
tests
|
||||
rush.json
|
||||
|
@ -62,9 +62,14 @@ specifiers:
|
||||
'@rush-temp/model-recruit': file:./projects/model-recruit.tgz
|
||||
'@rush-temp/model-rig': file:./projects/model-rig.tgz
|
||||
'@rush-temp/model-server-attachment': file:./projects/model-server-attachment.tgz
|
||||
'@rush-temp/model-server-chunter': file:./projects/model-server-chunter.tgz
|
||||
'@rush-temp/model-server-contact': file:./projects/model-server-contact.tgz
|
||||
'@rush-temp/model-server-core': file:./projects/model-server-core.tgz
|
||||
'@rush-temp/model-server-inventory': file:./projects/model-server-inventory.tgz
|
||||
'@rush-temp/model-server-lead': file:./projects/model-server-lead.tgz
|
||||
'@rush-temp/model-server-notification': file:./projects/model-server-notification.tgz
|
||||
'@rush-temp/model-server-recruit': file:./projects/model-server-recruit.tgz
|
||||
'@rush-temp/model-server-task': file:./projects/model-server-task.tgz
|
||||
'@rush-temp/model-setting': file:./projects/model-setting.tgz
|
||||
'@rush-temp/model-tags': file:./projects/model-tags.tgz
|
||||
'@rush-temp/model-task': file:./projects/model-task.tgz
|
||||
@ -91,11 +96,21 @@ specifiers:
|
||||
'@rush-temp/server': file:./projects/server.tgz
|
||||
'@rush-temp/server-attachment': file:./projects/server-attachment.tgz
|
||||
'@rush-temp/server-attachment-resources': file:./projects/server-attachment-resources.tgz
|
||||
'@rush-temp/server-chunter': file:./projects/server-chunter.tgz
|
||||
'@rush-temp/server-chunter-resources': file:./projects/server-chunter-resources.tgz
|
||||
'@rush-temp/server-contact': file:./projects/server-contact.tgz
|
||||
'@rush-temp/server-contact-resources': file:./projects/server-contact-resources.tgz
|
||||
'@rush-temp/server-core': file:./projects/server-core.tgz
|
||||
'@rush-temp/server-inventory': file:./projects/server-inventory.tgz
|
||||
'@rush-temp/server-inventory-resources': file:./projects/server-inventory-resources.tgz
|
||||
'@rush-temp/server-lead': file:./projects/server-lead.tgz
|
||||
'@rush-temp/server-lead-resources': file:./projects/server-lead-resources.tgz
|
||||
'@rush-temp/server-notification': file:./projects/server-notification.tgz
|
||||
'@rush-temp/server-notification-resources': file:./projects/server-notification-resources.tgz
|
||||
'@rush-temp/server-recruit': file:./projects/server-recruit.tgz
|
||||
'@rush-temp/server-recruit-resources': file:./projects/server-recruit-resources.tgz
|
||||
'@rush-temp/server-task': file:./projects/server-task.tgz
|
||||
'@rush-temp/server-task-resources': file:./projects/server-task-resources.tgz
|
||||
'@rush-temp/server-token': file:./projects/server-token.tgz
|
||||
'@rush-temp/server-tool': file:./projects/server-tool.tgz
|
||||
'@rush-temp/server-ws': file:./projects/server-ws.tgz
|
||||
@ -272,9 +287,14 @@ dependencies:
|
||||
'@rush-temp/model-recruit': file:projects/model-recruit.tgz_typescript@4.5.4
|
||||
'@rush-temp/model-rig': file:projects/model-rig.tgz_37f79b97d0d86442e45d380c86f520c5
|
||||
'@rush-temp/model-server-attachment': file:projects/model-server-attachment.tgz_typescript@4.5.4
|
||||
'@rush-temp/model-server-chunter': file:projects/model-server-chunter.tgz_typescript@4.5.4
|
||||
'@rush-temp/model-server-contact': file:projects/model-server-contact.tgz_typescript@4.5.4
|
||||
'@rush-temp/model-server-core': file:projects/model-server-core.tgz_typescript@4.5.4
|
||||
'@rush-temp/model-server-inventory': file:projects/model-server-inventory.tgz_typescript@4.5.4
|
||||
'@rush-temp/model-server-lead': file:projects/model-server-lead.tgz_typescript@4.5.4
|
||||
'@rush-temp/model-server-notification': file:projects/model-server-notification.tgz_typescript@4.5.4
|
||||
'@rush-temp/model-server-recruit': file:projects/model-server-recruit.tgz_typescript@4.5.4
|
||||
'@rush-temp/model-server-task': file:projects/model-server-task.tgz_typescript@4.5.4
|
||||
'@rush-temp/model-setting': file:projects/model-setting.tgz_typescript@4.5.4
|
||||
'@rush-temp/model-tags': file:projects/model-tags.tgz_typescript@4.5.4
|
||||
'@rush-temp/model-task': file:projects/model-task.tgz_typescript@4.5.4
|
||||
@ -301,11 +321,21 @@ dependencies:
|
||||
'@rush-temp/server': file:projects/server.tgz
|
||||
'@rush-temp/server-attachment': file:projects/server-attachment.tgz
|
||||
'@rush-temp/server-attachment-resources': file:projects/server-attachment-resources.tgz
|
||||
'@rush-temp/server-chunter': file:projects/server-chunter.tgz
|
||||
'@rush-temp/server-chunter-resources': file:projects/server-chunter-resources.tgz
|
||||
'@rush-temp/server-contact': file:projects/server-contact.tgz
|
||||
'@rush-temp/server-contact-resources': file:projects/server-contact-resources.tgz
|
||||
'@rush-temp/server-core': file:projects/server-core.tgz
|
||||
'@rush-temp/server-inventory': file:projects/server-inventory.tgz
|
||||
'@rush-temp/server-inventory-resources': file:projects/server-inventory-resources.tgz
|
||||
'@rush-temp/server-lead': file:projects/server-lead.tgz
|
||||
'@rush-temp/server-lead-resources': file:projects/server-lead-resources.tgz
|
||||
'@rush-temp/server-notification': file:projects/server-notification.tgz
|
||||
'@rush-temp/server-notification-resources': file:projects/server-notification-resources.tgz
|
||||
'@rush-temp/server-recruit': file:projects/server-recruit.tgz
|
||||
'@rush-temp/server-recruit-resources': file:projects/server-recruit-resources.tgz
|
||||
'@rush-temp/server-task': file:projects/server-task.tgz
|
||||
'@rush-temp/server-task-resources': file:projects/server-task-resources.tgz
|
||||
'@rush-temp/server-token': file:projects/server-token.tgz
|
||||
'@rush-temp/server-tool': file:projects/server-tool.tgz
|
||||
'@rush-temp/server-ws': file:projects/server-ws.tgz
|
||||
@ -11364,7 +11394,7 @@ packages:
|
||||
dev: false
|
||||
|
||||
file:projects/chunter-resources.tgz_096c09b0b673a57c275d9767a12070b1:
|
||||
resolution: {integrity: sha512-Ah0rr5uVXgAWSijLuVIxdtLjpc//rR4gw6AwtdF0adV89ZA70k/B7mKpjHAw2kIRkMjfgS5P30bRhx83Fh2CdQ==, tarball: file:projects/chunter-resources.tgz}
|
||||
resolution: {integrity: sha512-Md1h3nCkA2oUfOAP3oAABH2W8boFJODkrjbPyxccaay48TEkZN7BJLE3UoexttqCxQa4+4PL3zWWjMLlMrJ/Kw==, tarball: file:projects/chunter-resources.tgz}
|
||||
id: file:projects/chunter-resources.tgz
|
||||
name: '@rush-temp/chunter-resources'
|
||||
version: 0.0.0
|
||||
@ -11993,7 +12023,7 @@ packages:
|
||||
dev: false
|
||||
|
||||
file:projects/inventory-resources.tgz_096c09b0b673a57c275d9767a12070b1:
|
||||
resolution: {integrity: sha512-QPMUPTMuvahinsVH8OO3BUj9lpAq2cITHPgk/EL8XlZ0xEq497JjXy3N8KW4gHSwrM8kGBPfpwD2bRbXI4V7Vg==, tarball: file:projects/inventory-resources.tgz}
|
||||
resolution: {integrity: sha512-XFicFpfQR9nWoYlVHWCt+gHjwN3MybHXwNrxQ3g03Pir85+ROEF0ArGmxZa5BsIWjHWDfv1xMcLA/ryt3QKcKQ==, tarball: file:projects/inventory-resources.tgz}
|
||||
id: file:projects/inventory-resources.tgz
|
||||
name: '@rush-temp/inventory-resources'
|
||||
version: 0.0.0
|
||||
@ -12070,7 +12100,7 @@ packages:
|
||||
dev: false
|
||||
|
||||
file:projects/lead-resources.tgz_096c09b0b673a57c275d9767a12070b1:
|
||||
resolution: {integrity: sha512-gd3fCKU/E1ZrIFQBm966XaGVIH/RB0C4XyfWQFueKhy95cUbjiEe88Jf6Xh+4a7hkF96VMKc3z51SH1pLGtnFA==, tarball: file:projects/lead-resources.tgz}
|
||||
resolution: {integrity: sha512-9FpuEornHpauniIpp79200ur4mvE5PmPSLSx5fUDvkVl+jl/HM+GYLodRKtE++YsgYHuS0dncqF8Qe92ltCpUQ==, tarball: file:projects/lead-resources.tgz}
|
||||
id: file:projects/lead-resources.tgz
|
||||
name: '@rush-temp/lead-resources'
|
||||
version: 0.0.0
|
||||
@ -12223,7 +12253,7 @@ packages:
|
||||
dev: false
|
||||
|
||||
file:projects/model-all.tgz_typescript@4.5.4:
|
||||
resolution: {integrity: sha512-MnTIVPbt9yvy+dNZaMUPScfjYp12cF1P8GXay1jUizfZyTaeMsb+uN3Z2jnzQPhrAJxW4DDjAoCLO+yK7xGbRA==, tarball: file:projects/model-all.tgz}
|
||||
resolution: {integrity: sha512-eR9zQnuCAirRYMRife5HzyLfg8oDLAz1YZffs2tyK4fb6++U7q9RfNYfaPHEGkcVVscJ8MvWYI6CcHk5khOc4g==, tarball: file:projects/model-all.tgz}
|
||||
id: file:projects/model-all.tgz
|
||||
name: '@rush-temp/model-all'
|
||||
version: 0.0.0
|
||||
@ -12290,7 +12320,7 @@ packages:
|
||||
dev: false
|
||||
|
||||
file:projects/model-contact.tgz_typescript@4.5.4:
|
||||
resolution: {integrity: sha512-a2k6USkc9xrm3ba78A0pOps3X4Ox8A+uHm3cdNpfrSA8ihdfU9p6imeFr+ZotWF8YCcnwagz9sVHpT5dtmH4Mg==, tarball: file:projects/model-contact.tgz}
|
||||
resolution: {integrity: sha512-SCSm1wH4jXL45vpA1013yTbU7mE8VsXilHHxF5dMWJT/lyHFiRkn0D0NEqA15tm37KF0bGXuvn9/jTSSG+hFqA==, tarball: file:projects/model-contact.tgz}
|
||||
id: file:projects/model-contact.tgz
|
||||
name: '@rush-temp/model-contact'
|
||||
version: 0.0.0
|
||||
@ -12416,7 +12446,7 @@ packages:
|
||||
dev: false
|
||||
|
||||
file:projects/model-notification.tgz_typescript@4.5.4:
|
||||
resolution: {integrity: sha512-oXjmLAI4ablTqm5zdk23LYWTRRdqLGxshn164t87FLm4T/6sFK7xlikIuxGNn+XED0/m1T9ShPXEwXcYFJ/YQw==, tarball: file:projects/model-notification.tgz}
|
||||
resolution: {integrity: sha512-WhD1VyRSZ7EB9HYyGawyxHxuKkfogkfdibpRcSXkJ9SPy+MNmnABMhG5Jj2d9Man/3FRqiAwJhSxsHYoKpwkNQ==, tarball: file:projects/model-notification.tgz}
|
||||
id: file:projects/model-notification.tgz
|
||||
name: '@rush-temp/model-notification'
|
||||
version: 0.0.0
|
||||
@ -12518,8 +12548,29 @@ packages:
|
||||
- typescript
|
||||
dev: false
|
||||
|
||||
file:projects/model-server-chunter.tgz_typescript@4.5.4:
|
||||
resolution: {integrity: sha512-pZ0hgyMtDyGJopCGoeZXNCazD74U19JDyouKTIb8ATvmQt93TTjtH74urp6EomfuWzoxBRPprSAs8csuE7tBSw==, tarball: file:projects/model-server-chunter.tgz}
|
||||
id: file:projects/model-server-chunter.tgz
|
||||
name: '@rush-temp/model-server-chunter'
|
||||
version: 0.0.0
|
||||
dependencies:
|
||||
'@rushstack/heft': 0.41.8
|
||||
'@types/heft-jest': 1.0.2
|
||||
'@typescript-eslint/eslint-plugin': 5.7.0_c25e8c1f4f4f7aaed27aa6f9ce042237
|
||||
'@typescript-eslint/parser': 5.7.0_eslint@7.32.0+typescript@4.5.4
|
||||
eslint: 7.32.0
|
||||
eslint-config-standard-with-typescript: 21.0.1_ce2fa0c4dfa1c256100cababd749a13a
|
||||
eslint-plugin-import: 2.25.3_eslint@7.32.0
|
||||
eslint-plugin-node: 11.1.0_eslint@7.32.0
|
||||
eslint-plugin-promise: 5.2.0_eslint@7.32.0
|
||||
prettier: 2.5.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
dev: false
|
||||
|
||||
file:projects/model-server-contact.tgz_typescript@4.5.4:
|
||||
resolution: {integrity: sha512-cS09KWx82ek8kc0tutF538kEZMRkOMLnY0sQSUScOPEYHb4cLR4M94PrIhsY8DiP6TJctkT0ddnvwXMApAwyGA==, tarball: file:projects/model-server-contact.tgz}
|
||||
resolution: {integrity: sha512-EUI1TgMMuwfrCoZPz63atVRrb+7uNnoqxuWrxHiRNeGvHb7F5/cPOg0MyT/i2juOBTyfkzJbraDZMrRd04Ymwg==, tarball: file:projects/model-server-contact.tgz}
|
||||
id: file:projects/model-server-contact.tgz
|
||||
name: '@rush-temp/model-server-contact'
|
||||
version: 0.0.0
|
||||
@ -12560,6 +12611,48 @@ packages:
|
||||
- typescript
|
||||
dev: false
|
||||
|
||||
file:projects/model-server-inventory.tgz_typescript@4.5.4:
|
||||
resolution: {integrity: sha512-5oAiV68Hl0v9mlQ7wa6/RAG0KazJRdu1BD71w60NBhh97qGhrSi/GDDNs8bdYaqB6uxUE9xNWVC1NulRuL1crA==, tarball: file:projects/model-server-inventory.tgz}
|
||||
id: file:projects/model-server-inventory.tgz
|
||||
name: '@rush-temp/model-server-inventory'
|
||||
version: 0.0.0
|
||||
dependencies:
|
||||
'@rushstack/heft': 0.41.8
|
||||
'@types/heft-jest': 1.0.2
|
||||
'@typescript-eslint/eslint-plugin': 5.7.0_c25e8c1f4f4f7aaed27aa6f9ce042237
|
||||
'@typescript-eslint/parser': 5.7.0_eslint@7.32.0+typescript@4.5.4
|
||||
eslint: 7.32.0
|
||||
eslint-config-standard-with-typescript: 21.0.1_ce2fa0c4dfa1c256100cababd749a13a
|
||||
eslint-plugin-import: 2.25.3_eslint@7.32.0
|
||||
eslint-plugin-node: 11.1.0_eslint@7.32.0
|
||||
eslint-plugin-promise: 5.2.0_eslint@7.32.0
|
||||
prettier: 2.5.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
dev: false
|
||||
|
||||
file:projects/model-server-lead.tgz_typescript@4.5.4:
|
||||
resolution: {integrity: sha512-9bqF5Che49x6QLONfohycz76v2viNTq93TtAczUXMsimgxK7yEWMdKQda7qY2bH8rtkwV58XSgbMWfX14L1l4g==, tarball: file:projects/model-server-lead.tgz}
|
||||
id: file:projects/model-server-lead.tgz
|
||||
name: '@rush-temp/model-server-lead'
|
||||
version: 0.0.0
|
||||
dependencies:
|
||||
'@rushstack/heft': 0.41.8
|
||||
'@types/heft-jest': 1.0.2
|
||||
'@typescript-eslint/eslint-plugin': 5.7.0_c25e8c1f4f4f7aaed27aa6f9ce042237
|
||||
'@typescript-eslint/parser': 5.7.0_eslint@7.32.0+typescript@4.5.4
|
||||
eslint: 7.32.0
|
||||
eslint-config-standard-with-typescript: 21.0.1_ce2fa0c4dfa1c256100cababd749a13a
|
||||
eslint-plugin-import: 2.25.3_eslint@7.32.0
|
||||
eslint-plugin-node: 11.1.0_eslint@7.32.0
|
||||
eslint-plugin-promise: 5.2.0_eslint@7.32.0
|
||||
prettier: 2.5.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
dev: false
|
||||
|
||||
file:projects/model-server-notification.tgz_typescript@4.5.4:
|
||||
resolution: {integrity: sha512-bO0DgNGdJGxJjDU05x1HPNHfprIFhRYhauMT9eH4zKMlsQZNO5Rx5h77SxepW2HiAxVYMqjOR2GwsTN3h7C8wQ==, tarball: file:projects/model-server-notification.tgz}
|
||||
id: file:projects/model-server-notification.tgz
|
||||
@ -12581,6 +12674,48 @@ packages:
|
||||
- typescript
|
||||
dev: false
|
||||
|
||||
file:projects/model-server-recruit.tgz_typescript@4.5.4:
|
||||
resolution: {integrity: sha512-yidHAiSSXgFfl990q/d3A9KkucgEmMQ3pkp0HISrOIEJHUoazU5A4VgqDR2B/STjLpgH8ZhgOD3VMSNv5D6NKg==, tarball: file:projects/model-server-recruit.tgz}
|
||||
id: file:projects/model-server-recruit.tgz
|
||||
name: '@rush-temp/model-server-recruit'
|
||||
version: 0.0.0
|
||||
dependencies:
|
||||
'@rushstack/heft': 0.41.8
|
||||
'@types/heft-jest': 1.0.2
|
||||
'@typescript-eslint/eslint-plugin': 5.7.0_c25e8c1f4f4f7aaed27aa6f9ce042237
|
||||
'@typescript-eslint/parser': 5.7.0_eslint@7.32.0+typescript@4.5.4
|
||||
eslint: 7.32.0
|
||||
eslint-config-standard-with-typescript: 21.0.1_ce2fa0c4dfa1c256100cababd749a13a
|
||||
eslint-plugin-import: 2.25.3_eslint@7.32.0
|
||||
eslint-plugin-node: 11.1.0_eslint@7.32.0
|
||||
eslint-plugin-promise: 5.2.0_eslint@7.32.0
|
||||
prettier: 2.5.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
dev: false
|
||||
|
||||
file:projects/model-server-task.tgz_typescript@4.5.4:
|
||||
resolution: {integrity: sha512-UGeEby4x4ZUjOO3ECPvg3wVKQUAXjNMw8zQFiQmCemiMQk+6NNvGhwkHgV674dt5rGDCNBjKJfFaShTj7jcDlw==, tarball: file:projects/model-server-task.tgz}
|
||||
id: file:projects/model-server-task.tgz
|
||||
name: '@rush-temp/model-server-task'
|
||||
version: 0.0.0
|
||||
dependencies:
|
||||
'@rushstack/heft': 0.41.8
|
||||
'@types/heft-jest': 1.0.2
|
||||
'@typescript-eslint/eslint-plugin': 5.7.0_c25e8c1f4f4f7aaed27aa6f9ce042237
|
||||
'@typescript-eslint/parser': 5.7.0_eslint@7.32.0+typescript@4.5.4
|
||||
eslint: 7.32.0
|
||||
eslint-config-standard-with-typescript: 21.0.1_ce2fa0c4dfa1c256100cababd749a13a
|
||||
eslint-plugin-import: 2.25.3_eslint@7.32.0
|
||||
eslint-plugin-node: 11.1.0_eslint@7.32.0
|
||||
eslint-plugin-promise: 5.2.0_eslint@7.32.0
|
||||
prettier: 2.5.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
dev: false
|
||||
|
||||
file:projects/model-setting.tgz_typescript@4.5.4:
|
||||
resolution: {integrity: sha512-zwbVN3PDOfDeqGcL36IHQIufdePTd68yLUm83rfIg4v8+uilseid981y/BrAysmxTXAfhVYWlDmtYXvNPS4DMQ==, tarball: file:projects/model-setting.tgz}
|
||||
id: file:projects/model-setting.tgz
|
||||
@ -12817,7 +12952,7 @@ packages:
|
||||
dev: false
|
||||
|
||||
file:projects/notification-resources.tgz_096c09b0b673a57c275d9767a12070b1:
|
||||
resolution: {integrity: sha512-saNzTGP0Bz7u0f2qimEbhL3w9xhZb8pgenUpAuDpeT6fMPmG7CNYpkwefhayEeIUmU4frbIC5kjAOMSPUxsg6A==, tarball: file:projects/notification-resources.tgz}
|
||||
resolution: {integrity: sha512-XFpqe60nZYFgS9+a5fMJSJeBIyb8tsmHawXI1Ee0B5eb38R7oUmnE6ezb2hYXl/EKPabYL/Pt1cxMjkRMz4Njw==, tarball: file:projects/notification-resources.tgz}
|
||||
id: file:projects/notification-resources.tgz
|
||||
name: '@rush-temp/notification-resources'
|
||||
version: 0.0.0
|
||||
@ -12832,6 +12967,7 @@ packages:
|
||||
eslint-plugin-node: 11.1.0_eslint@7.32.0
|
||||
eslint-plugin-promise: 5.2.0_eslint@7.32.0
|
||||
eslint-plugin-svelte3: 3.2.1_eslint@7.32.0+svelte@3.44.3
|
||||
just-clone: 3.2.1
|
||||
prettier: 2.5.1
|
||||
prettier-plugin-svelte: 2.5.1_prettier@2.5.1+svelte@3.44.3
|
||||
sass: 1.45.0
|
||||
@ -13025,7 +13161,7 @@ packages:
|
||||
dev: false
|
||||
|
||||
file:projects/prod.tgz_sass@1.45.0+typescript@4.5.4:
|
||||
resolution: {integrity: sha512-a6wHdZhYC1h8QOrfCkS6HQz4L0llPz8YJqJaJPH/tkMHanaUSixCiCcjr+T+ANBfacXQf8GjTqvPBir/Hd3FzQ==, tarball: file:projects/prod.tgz}
|
||||
resolution: {integrity: sha512-oVRjx2sc3JPmU3Q2PFONILjWWm9cxER23AgY+wHq4BX+H1zcsriCbRruGDNEwchO3PddlB1QhvlUZtC+grCNZQ==, tarball: file:projects/prod.tgz}
|
||||
id: file:projects/prod.tgz
|
||||
name: '@rush-temp/prod'
|
||||
version: 0.0.0
|
||||
@ -13117,7 +13253,7 @@ packages:
|
||||
dev: false
|
||||
|
||||
file:projects/recruit-resources.tgz_096c09b0b673a57c275d9767a12070b1:
|
||||
resolution: {integrity: sha512-nZLvaOr850iq0AQidGvnFlzPWLdwosv9ORArSA5ihRGea8X+RpzD/pjDswtJp6nF7G2ctmL8tFLN9cvFA45lDw==, tarball: file:projects/recruit-resources.tgz}
|
||||
resolution: {integrity: sha512-T1NOP+NczA00alZvYaKQBqG34P72zCy5RwowxbViP31o8ahRH8CS0msHAGeJXZPrF/E2XeMXY2xgAFKn9ywRCg==, tarball: file:projects/recruit-resources.tgz}
|
||||
id: file:projects/recruit-resources.tgz
|
||||
name: '@rush-temp/recruit-resources'
|
||||
version: 0.0.0
|
||||
@ -13154,7 +13290,7 @@ packages:
|
||||
dev: false
|
||||
|
||||
file:projects/recruit.tgz:
|
||||
resolution: {integrity: sha512-vvQ892DoJCDRaRuVWx+DBpuKPtCic0O0PdgPDtbKxl+pWk31MVdEhO6m+ySpqkPsu297ot/D7lpYXcK/775fow==, tarball: file:projects/recruit.tgz}
|
||||
resolution: {integrity: sha512-d/Wv2gldoJfJnyC5d318UhRa+iqzh7r2+CsBHHEPDAabL73kdQsbkyPNEqoTOapyMdGwIPbnF3R3tSNP7TFH4g==, tarball: file:projects/recruit.tgz}
|
||||
name: '@rush-temp/recruit'
|
||||
version: 0.0.0
|
||||
dependencies:
|
||||
@ -13241,8 +13377,49 @@ packages:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
file:projects/server-chunter-resources.tgz:
|
||||
resolution: {integrity: sha512-9xWukPv4zWMIAampn8JogHVzz/r0YZXMx/6Dobyp1YdZLAFfMRdey5dPJ2FOSTvIztwZhmzddYrlmVlOw/gK/g==, tarball: file:projects/server-chunter-resources.tgz}
|
||||
name: '@rush-temp/server-chunter-resources'
|
||||
version: 0.0.0
|
||||
dependencies:
|
||||
'@rushstack/heft': 0.41.8
|
||||
'@types/heft-jest': 1.0.2
|
||||
'@typescript-eslint/eslint-plugin': 5.7.0_c25e8c1f4f4f7aaed27aa6f9ce042237
|
||||
'@typescript-eslint/parser': 5.7.0_eslint@7.32.0+typescript@4.5.4
|
||||
eslint: 7.32.0
|
||||
eslint-config-standard-with-typescript: 21.0.1_ce2fa0c4dfa1c256100cababd749a13a
|
||||
eslint-plugin-import: 2.25.3_eslint@7.32.0
|
||||
eslint-plugin-node: 11.1.0_eslint@7.32.0
|
||||
eslint-plugin-promise: 5.2.0_eslint@7.32.0
|
||||
prettier: 2.5.1
|
||||
typescript: 4.5.4
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
file:projects/server-chunter.tgz:
|
||||
resolution: {integrity: sha512-kpo3OPoldUkUrnRvxa/xZYRIyKd12a5q1XcdXlPkPN1ZDiJVp6PFF8fuwc5hjjf8T6/jKOYmLw+JCafTb7rSOA==, tarball: file:projects/server-chunter.tgz}
|
||||
name: '@rush-temp/server-chunter'
|
||||
version: 0.0.0
|
||||
dependencies:
|
||||
'@rushstack/heft': 0.41.8
|
||||
'@types/heft-jest': 1.0.2
|
||||
'@types/node': 16.11.14
|
||||
'@typescript-eslint/eslint-plugin': 5.7.0_c25e8c1f4f4f7aaed27aa6f9ce042237
|
||||
'@typescript-eslint/parser': 5.7.0_eslint@7.32.0+typescript@4.5.4
|
||||
eslint: 7.32.0
|
||||
eslint-config-standard-with-typescript: 21.0.1_ce2fa0c4dfa1c256100cababd749a13a
|
||||
eslint-plugin-import: 2.25.3_eslint@7.32.0
|
||||
eslint-plugin-node: 11.1.0_eslint@7.32.0
|
||||
eslint-plugin-promise: 5.2.0_eslint@7.32.0
|
||||
prettier: 2.5.1
|
||||
typescript: 4.5.4
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
file:projects/server-contact-resources.tgz:
|
||||
resolution: {integrity: sha512-4yOcy58wmHdLoBsIlawD4KAe5I+q9NtlKXnZRvuyF0Gdb8UZcEvL2NjxHZNJkDmTGvvmmr2ihwYKJE+g4N//jg==, tarball: file:projects/server-contact-resources.tgz}
|
||||
resolution: {integrity: sha512-0wv176Ajvj6Hh72NgA3j3LY4To7FkWv9f/U8P5oCJadU9kEPz0H8GsUaaAhSEtmYaXdsisiuKzTIVVFORrmVCQ==, tarball: file:projects/server-contact-resources.tgz}
|
||||
name: '@rush-temp/server-contact-resources'
|
||||
version: 0.0.0
|
||||
dependencies:
|
||||
@ -13306,8 +13483,90 @@ packages:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
file:projects/server-inventory-resources.tgz:
|
||||
resolution: {integrity: sha512-ihg8bdAMvtJ3pZvpK4Gv/PjvQJqvoIKaGfzWOvTFQhcf2PsIWXSu7B2/gB8ekBTC20jkrjEJxHyobhZtGmH53g==, tarball: file:projects/server-inventory-resources.tgz}
|
||||
name: '@rush-temp/server-inventory-resources'
|
||||
version: 0.0.0
|
||||
dependencies:
|
||||
'@rushstack/heft': 0.41.8
|
||||
'@types/heft-jest': 1.0.2
|
||||
'@typescript-eslint/eslint-plugin': 5.7.0_c25e8c1f4f4f7aaed27aa6f9ce042237
|
||||
'@typescript-eslint/parser': 5.7.0_eslint@7.32.0+typescript@4.5.4
|
||||
eslint: 7.32.0
|
||||
eslint-config-standard-with-typescript: 21.0.1_ce2fa0c4dfa1c256100cababd749a13a
|
||||
eslint-plugin-import: 2.25.3_eslint@7.32.0
|
||||
eslint-plugin-node: 11.1.0_eslint@7.32.0
|
||||
eslint-plugin-promise: 5.2.0_eslint@7.32.0
|
||||
prettier: 2.5.1
|
||||
typescript: 4.5.4
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
file:projects/server-inventory.tgz:
|
||||
resolution: {integrity: sha512-gO3q96c7gOS29+NmDAOORJ9eMzBHCnIqo9udZUt8TsTHm4r2v1faCYJw57toSnU1PJ60RtXxmqBQTXXFQtdBKA==, tarball: file:projects/server-inventory.tgz}
|
||||
name: '@rush-temp/server-inventory'
|
||||
version: 0.0.0
|
||||
dependencies:
|
||||
'@rushstack/heft': 0.41.8
|
||||
'@types/heft-jest': 1.0.2
|
||||
'@types/node': 16.11.14
|
||||
'@typescript-eslint/eslint-plugin': 5.7.0_c25e8c1f4f4f7aaed27aa6f9ce042237
|
||||
'@typescript-eslint/parser': 5.7.0_eslint@7.32.0+typescript@4.5.4
|
||||
eslint: 7.32.0
|
||||
eslint-config-standard-with-typescript: 21.0.1_ce2fa0c4dfa1c256100cababd749a13a
|
||||
eslint-plugin-import: 2.25.3_eslint@7.32.0
|
||||
eslint-plugin-node: 11.1.0_eslint@7.32.0
|
||||
eslint-plugin-promise: 5.2.0_eslint@7.32.0
|
||||
prettier: 2.5.1
|
||||
typescript: 4.5.4
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
file:projects/server-lead-resources.tgz:
|
||||
resolution: {integrity: sha512-YhcEDAOqvt8LiaS+cXUj4NnuN4bqRdtIj10c0qBFPiLU2Csr753Ef5g5gtNeztZRNtnRJK2T4K/c+Fk7oKGEkA==, tarball: file:projects/server-lead-resources.tgz}
|
||||
name: '@rush-temp/server-lead-resources'
|
||||
version: 0.0.0
|
||||
dependencies:
|
||||
'@rushstack/heft': 0.41.8
|
||||
'@types/heft-jest': 1.0.2
|
||||
'@typescript-eslint/eslint-plugin': 5.7.0_c25e8c1f4f4f7aaed27aa6f9ce042237
|
||||
'@typescript-eslint/parser': 5.7.0_eslint@7.32.0+typescript@4.5.4
|
||||
eslint: 7.32.0
|
||||
eslint-config-standard-with-typescript: 21.0.1_ce2fa0c4dfa1c256100cababd749a13a
|
||||
eslint-plugin-import: 2.25.3_eslint@7.32.0
|
||||
eslint-plugin-node: 11.1.0_eslint@7.32.0
|
||||
eslint-plugin-promise: 5.2.0_eslint@7.32.0
|
||||
prettier: 2.5.1
|
||||
typescript: 4.5.4
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
file:projects/server-lead.tgz:
|
||||
resolution: {integrity: sha512-gjRjRrQT8bxy4CEd1vs3hiIccdR1j2x8xvveoue+MxNu1IRaxws0KE7ggk9AOn7KmZl2Cl2UtktlXEJkZ7tvOQ==, tarball: file:projects/server-lead.tgz}
|
||||
name: '@rush-temp/server-lead'
|
||||
version: 0.0.0
|
||||
dependencies:
|
||||
'@rushstack/heft': 0.41.8
|
||||
'@types/heft-jest': 1.0.2
|
||||
'@types/node': 16.11.14
|
||||
'@typescript-eslint/eslint-plugin': 5.7.0_c25e8c1f4f4f7aaed27aa6f9ce042237
|
||||
'@typescript-eslint/parser': 5.7.0_eslint@7.32.0+typescript@4.5.4
|
||||
eslint: 7.32.0
|
||||
eslint-config-standard-with-typescript: 21.0.1_ce2fa0c4dfa1c256100cababd749a13a
|
||||
eslint-plugin-import: 2.25.3_eslint@7.32.0
|
||||
eslint-plugin-node: 11.1.0_eslint@7.32.0
|
||||
eslint-plugin-promise: 5.2.0_eslint@7.32.0
|
||||
prettier: 2.5.1
|
||||
typescript: 4.5.4
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
file:projects/server-notification-resources.tgz:
|
||||
resolution: {integrity: sha512-9EXWxHdVb5DvmZORxWPquKpxThiRV6zaEtpFbat4drf5i/br5cERKka5+oBJK27WyYYeB8rUGjjQ7AFx/dJzbQ==, tarball: file:projects/server-notification-resources.tgz}
|
||||
resolution: {integrity: sha512-t5tHG0WoQJPHnXjZMkXJXXGMo6Xzz02ah4GJC/fnox0WpgyFh5iw3F33jDdIf8tRFRSifNg/bp4ZbZ9lDh+ARQ==, tarball: file:projects/server-notification-resources.tgz}
|
||||
name: '@rush-temp/server-notification-resources'
|
||||
version: 0.0.0
|
||||
dependencies:
|
||||
@ -13347,6 +13606,88 @@ packages:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
file:projects/server-recruit-resources.tgz:
|
||||
resolution: {integrity: sha512-8UTVnSBjVhuf5Qvp80Z7iZ+IO1jSRVG2czLgNL/GMbtjFZw8b5dE3USi9vv9Q2AtAGpbWUgSUqODW24qkYjiUQ==, tarball: file:projects/server-recruit-resources.tgz}
|
||||
name: '@rush-temp/server-recruit-resources'
|
||||
version: 0.0.0
|
||||
dependencies:
|
||||
'@rushstack/heft': 0.41.8
|
||||
'@types/heft-jest': 1.0.2
|
||||
'@typescript-eslint/eslint-plugin': 5.7.0_c25e8c1f4f4f7aaed27aa6f9ce042237
|
||||
'@typescript-eslint/parser': 5.7.0_eslint@7.32.0+typescript@4.5.4
|
||||
eslint: 7.32.0
|
||||
eslint-config-standard-with-typescript: 21.0.1_ce2fa0c4dfa1c256100cababd749a13a
|
||||
eslint-plugin-import: 2.25.3_eslint@7.32.0
|
||||
eslint-plugin-node: 11.1.0_eslint@7.32.0
|
||||
eslint-plugin-promise: 5.2.0_eslint@7.32.0
|
||||
prettier: 2.5.1
|
||||
typescript: 4.5.4
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
file:projects/server-recruit.tgz:
|
||||
resolution: {integrity: sha512-UrQBEwX6cZgSk+HMfhJort5tzGaCe1cv0Thg3sITzNaB4yb3FExUTeVphI16hgh6Hcv/2m53zsdcNscnpoTROg==, tarball: file:projects/server-recruit.tgz}
|
||||
name: '@rush-temp/server-recruit'
|
||||
version: 0.0.0
|
||||
dependencies:
|
||||
'@rushstack/heft': 0.41.8
|
||||
'@types/heft-jest': 1.0.2
|
||||
'@types/node': 16.11.14
|
||||
'@typescript-eslint/eslint-plugin': 5.7.0_c25e8c1f4f4f7aaed27aa6f9ce042237
|
||||
'@typescript-eslint/parser': 5.7.0_eslint@7.32.0+typescript@4.5.4
|
||||
eslint: 7.32.0
|
||||
eslint-config-standard-with-typescript: 21.0.1_ce2fa0c4dfa1c256100cababd749a13a
|
||||
eslint-plugin-import: 2.25.3_eslint@7.32.0
|
||||
eslint-plugin-node: 11.1.0_eslint@7.32.0
|
||||
eslint-plugin-promise: 5.2.0_eslint@7.32.0
|
||||
prettier: 2.5.1
|
||||
typescript: 4.5.4
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
file:projects/server-task-resources.tgz:
|
||||
resolution: {integrity: sha512-3HkiHH62jBO6wGrvum0PMVDiAavRHud0u/BExVz15exJRm9YzXK3bklmm8XZr5BsS3vhTqb+q1XwdDXUv0n5Fg==, tarball: file:projects/server-task-resources.tgz}
|
||||
name: '@rush-temp/server-task-resources'
|
||||
version: 0.0.0
|
||||
dependencies:
|
||||
'@rushstack/heft': 0.41.8
|
||||
'@types/heft-jest': 1.0.2
|
||||
'@typescript-eslint/eslint-plugin': 5.7.0_c25e8c1f4f4f7aaed27aa6f9ce042237
|
||||
'@typescript-eslint/parser': 5.7.0_eslint@7.32.0+typescript@4.5.4
|
||||
eslint: 7.32.0
|
||||
eslint-config-standard-with-typescript: 21.0.1_ce2fa0c4dfa1c256100cababd749a13a
|
||||
eslint-plugin-import: 2.25.3_eslint@7.32.0
|
||||
eslint-plugin-node: 11.1.0_eslint@7.32.0
|
||||
eslint-plugin-promise: 5.2.0_eslint@7.32.0
|
||||
prettier: 2.5.1
|
||||
typescript: 4.5.4
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
file:projects/server-task.tgz:
|
||||
resolution: {integrity: sha512-qaB/cZSAPKuvTUfBv5wsqD0r/YoQO/hy7rD7WBC0lx2TOWIp0/aacYKVkEltinbYjJzP4gg9cQQNful4Mvpp5Q==, tarball: file:projects/server-task.tgz}
|
||||
name: '@rush-temp/server-task'
|
||||
version: 0.0.0
|
||||
dependencies:
|
||||
'@rushstack/heft': 0.41.8
|
||||
'@types/heft-jest': 1.0.2
|
||||
'@types/node': 16.11.14
|
||||
'@typescript-eslint/eslint-plugin': 5.7.0_c25e8c1f4f4f7aaed27aa6f9ce042237
|
||||
'@typescript-eslint/parser': 5.7.0_eslint@7.32.0+typescript@4.5.4
|
||||
eslint: 7.32.0
|
||||
eslint-config-standard-with-typescript: 21.0.1_ce2fa0c4dfa1c256100cababd749a13a
|
||||
eslint-plugin-import: 2.25.3_eslint@7.32.0
|
||||
eslint-plugin-node: 11.1.0_eslint@7.32.0
|
||||
eslint-plugin-promise: 5.2.0_eslint@7.32.0
|
||||
prettier: 2.5.1
|
||||
typescript: 4.5.4
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
file:projects/server-token.tgz:
|
||||
resolution: {integrity: sha512-74lvKW1J8vMQI7r+UUFCO8KDItftmBVTc9ecLL9kbWHdFT/kfR1ua57O8XG7MMJDmBVsWylHmM1kr6lxwNpNBA==, tarball: file:projects/server-token.tgz}
|
||||
name: '@rush-temp/server-token'
|
||||
@ -13426,7 +13767,7 @@ packages:
|
||||
dev: false
|
||||
|
||||
file:projects/server.tgz:
|
||||
resolution: {integrity: sha512-SuwXbo0xvalgyA3m9i/bbm9ae2I3Tx548KKj8wDffAJxDq0t0tqncuVtUmhrwG06HD9p5myf165I6apGZZocSg==, tarball: file:projects/server.tgz}
|
||||
resolution: {integrity: sha512-h1M/Y+zV/J0wUEgDj+iHeyMbS/otfYdWS8l2APj78c38/Hso/hi70cB5A1VUq2NsB/hKEE3bywIyn2yuJRnDug==, tarball: file:projects/server.tgz}
|
||||
name: '@rush-temp/server'
|
||||
version: 0.0.0
|
||||
dependencies:
|
||||
@ -13945,7 +14286,7 @@ packages:
|
||||
dev: false
|
||||
|
||||
file:projects/tool.tgz:
|
||||
resolution: {integrity: sha512-g3G79v0AQpHzqbZpmFsGU4wNu3BIcTMgR/Rod6Cfi9w0TpNS1XnSSckZeHB0LtTOovvFbj82x5ESBEwq1g0hFA==, tarball: file:projects/tool.tgz}
|
||||
resolution: {integrity: sha512-3L/wr78VWV79qjSBCDWg37qMPdsEzAf5STbeXuHPOaMCvkhij64Nv0wN3vzj8CRwWRuKrX0o3Ts0NLw2SSl7hQ==, tarball: file:projects/tool.tgz}
|
||||
name: '@rush-temp/tool'
|
||||
version: 0.0.0
|
||||
dependencies:
|
||||
|
@ -65,6 +65,7 @@ services:
|
||||
- 8081:8080
|
||||
environment:
|
||||
- ACCOUNTS_URL=http://localhost:3000
|
||||
- FRONT_URL=http://localhost:8081
|
||||
- UPLOAD_URL=/files
|
||||
- TRANSACTOR_URL=ws://localhost:3333
|
||||
- ELASTIC_URL=http://elastic:9200
|
||||
|
@ -5,5 +5,6 @@ LOGIN_TOKEN_DEV=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJlbWFpbCI6InJvc2FtdW5kQGh
|
||||
LOGIN_ENDPOINT_DEV=wss://transactor.hc.engineering/
|
||||
|
||||
TELEGRAM_URL=http://localhost:8086
|
||||
FRONT_URL=http://localhost:8080
|
||||
|
||||
REKONI_URL=http://localhost:4004
|
||||
|
@ -106,6 +106,16 @@
|
||||
"@anticrm/rekoni": "~0.6.0",
|
||||
"@anticrm/tags-assets": "~0.6.0",
|
||||
"@anticrm/tags": "~0.6.0",
|
||||
"@anticrm/tags-resources": "~0.6.0"
|
||||
"@anticrm/tags-resources": "~0.6.0",
|
||||
"@anticrm/server-chunter": "~0.6.0",
|
||||
"@anticrm/server-chunter-resources": "~0.6.0",
|
||||
"@anticrm/server-inventory": "~0.6.0",
|
||||
"@anticrm/server-inventory-resources": "~0.6.0",
|
||||
"@anticrm/server-lead": "~0.6.0",
|
||||
"@anticrm/server-lead-resources": "~0.6.0",
|
||||
"@anticrm/server-recruit": "~0.6.0",
|
||||
"@anticrm/server-recruit-resources": "~0.6.0",
|
||||
"@anticrm/server-task": "~0.6.0",
|
||||
"@anticrm/server-task-resources": "~0.6.0"
|
||||
}
|
||||
}
|
||||
|
@ -20,6 +20,11 @@ import { clientId } from '@anticrm/client'
|
||||
import { serverAttachmentId } from '@anticrm/server-attachment'
|
||||
import { serverContactId } from '@anticrm/server-contact'
|
||||
import { serverNotificationId } from '@anticrm/server-notification'
|
||||
import { serverChunterId } from '@anticrm/server-chunter'
|
||||
import { serverInventoryId } from '@anticrm/server-inventory'
|
||||
import { serverLeadId } from '@anticrm/server-lead'
|
||||
import { serverRecruitId } from '@anticrm/server-recruit'
|
||||
import { serverTaskId } from '@anticrm/server-task'
|
||||
|
||||
import { setMetadata } from '@anticrm/platform'
|
||||
|
||||
@ -35,7 +40,11 @@ export function configurePlatformDev() {
|
||||
addLocation(serverAttachmentId, () => import(/* webpackChunkName: "server-attachment" */ '@anticrm/server-attachment-resources'))
|
||||
addLocation(serverContactId, () => import(/* webpackChunkName: "server-contact" */ '@anticrm/server-contact-resources'))
|
||||
addLocation(serverNotificationId, () => import(/* webpackChunkName: "server-notification" */ '@anticrm/server-notification-resources'))
|
||||
|
||||
addLocation(serverChunterId, () => import(/* webpackChunkName: "server-chunter" */ '@anticrm/server-chunter-resources'))
|
||||
addLocation(serverInventoryId, () => import(/* webpackChunkName: "server-inventory" */ '@anticrm/server-inventory-resources'))
|
||||
addLocation(serverLeadId, () => import(/* webpackChunkName: "server-lead" */ '@anticrm/server-lead-resources'))
|
||||
addLocation(serverRecruitId, () => import(/* webpackChunkName: "server-recruit" */ '@anticrm/server-recruit-resources'))
|
||||
addLocation(serverTaskId, () => import/* webpackChunkName: "server-task" */ ('@anticrm/server-task-resources'))
|
||||
// Set devmodel to hook client to be able to present all activity
|
||||
enableDevModel()
|
||||
}
|
||||
|
@ -69,6 +69,7 @@ export async function configurePlatform() {
|
||||
setMetadata(login.metadata.TelegramUrl, process.env.TELEGRAM_URL ?? 'http://localhost:8086')
|
||||
setMetadata(login.metadata.GmailUrl, process.env.GMAIL_URL ?? 'http://localhost:8087')
|
||||
setMetadata(login.metadata.OverrideEndpoint, process.env.LOGIN_ENDPOINT)
|
||||
setMetadata(login.metadata.FrontUrl, process.env.FRONT_URL)
|
||||
|
||||
setMetadata(rekoni.metadata.RekoniUrl, process.env.REKONI_URL)
|
||||
|
||||
|
@ -75,6 +75,16 @@
|
||||
"@anticrm/server-contact-resources": "~0.6.0",
|
||||
"@anticrm/server-notification": "~0.6.0",
|
||||
"@anticrm/server-notification-resources": "~0.6.0",
|
||||
"@anticrm/server-tool": "~0.6.0"
|
||||
"@anticrm/server-tool": "~0.6.0",
|
||||
"@anticrm/server-chunter": "~0.6.0",
|
||||
"@anticrm/server-chunter-resources": "~0.6.0",
|
||||
"@anticrm/server-inventory": "~0.6.0",
|
||||
"@anticrm/server-inventory-resources": "~0.6.0",
|
||||
"@anticrm/server-lead": "~0.6.0",
|
||||
"@anticrm/server-lead-resources": "~0.6.0",
|
||||
"@anticrm/server-recruit": "~0.6.0",
|
||||
"@anticrm/server-recruit-resources": "~0.6.0",
|
||||
"@anticrm/server-task": "~0.6.0",
|
||||
"@anticrm/server-task-resources": "~0.6.0"
|
||||
}
|
||||
}
|
||||
|
@ -50,6 +50,11 @@ import {
|
||||
import { serverAttachmentId } from '@anticrm/server-attachment'
|
||||
import { serverContactId } from '@anticrm/server-contact'
|
||||
import { serverNotificationId } from '@anticrm/server-notification'
|
||||
import { serverChunterId } from '@anticrm/server-chunter'
|
||||
import { serverInventoryId } from '@anticrm/server-inventory'
|
||||
import { serverLeadId } from '@anticrm/server-lead'
|
||||
import { serverRecruitId } from '@anticrm/server-recruit'
|
||||
import { serverTaskId } from '@anticrm/server-task'
|
||||
import { Client as ElasticClient } from '@elastic/elasticsearch'
|
||||
import { Client } from 'minio'
|
||||
import { Db, MongoClient } from 'mongodb'
|
||||
@ -106,6 +111,11 @@ export class ElasticTool {
|
||||
addLocation(serverAttachmentId, () => import('@anticrm/server-attachment-resources'))
|
||||
addLocation(serverContactId, () => import('@anticrm/server-contact-resources'))
|
||||
addLocation(serverNotificationId, () => import('@anticrm/server-notification-resources'))
|
||||
addLocation(serverChunterId, () => import(/* webpackChunkName: "server-chunter" */ '@anticrm/server-chunter-resources'))
|
||||
addLocation(serverInventoryId, () => import(/* webpackChunkName: "server-inventory" */ '@anticrm/server-inventory-resources'))
|
||||
addLocation(serverLeadId, () => import(/* webpackChunkName: "server-lead" */ '@anticrm/server-lead-resources'))
|
||||
addLocation(serverRecruitId, () => import(/* webpackChunkName: "server-recruit" */ '@anticrm/server-recruit-resources'))
|
||||
addLocation(serverTaskId, () => import/* webpackChunkName: "server-task" */ ('@anticrm/server-task-resources'))
|
||||
this.mongoClient = new MongoClient(mongoUrl)
|
||||
}
|
||||
|
||||
|
@ -46,6 +46,11 @@
|
||||
"@anticrm/model-server-attachment": "~0.6.0",
|
||||
"@anticrm/model-server-contact": "~0.6.0",
|
||||
"@anticrm/model-server-notification": "~0.6.0",
|
||||
"@anticrm/model-server-chunter": "~0.6.0",
|
||||
"@anticrm/model-server-task": "~0.6.0",
|
||||
"@anticrm/model-server-recruit": "~0.6.0",
|
||||
"@anticrm/model-server-lead": "~0.6.0",
|
||||
"@anticrm/model-server-inventory": "~0.6.0",
|
||||
"@anticrm/model-activity": "~0.6.0",
|
||||
"@anticrm/model-attachment": "~0.6.0",
|
||||
"@anticrm/model-gmail": "~0.6.0",
|
||||
|
@ -31,6 +31,11 @@ import { createModel as recruitModel } from '@anticrm/model-recruit'
|
||||
import { createModel as serverAttachmentModel } from '@anticrm/model-server-attachment'
|
||||
import { createModel as serverContactModel } from '@anticrm/model-server-contact'
|
||||
import { createModel as serverNotificationModel } from '@anticrm/model-server-notification'
|
||||
import { createModel as serverChunterModel } from '@anticrm/model-server-chunter'
|
||||
import { createModel as serverInventoryModel } from '@anticrm/model-server-inventory'
|
||||
import { createModel as serverLeadModel } from '@anticrm/model-server-lead'
|
||||
import { createModel as serverTaskModel } from '@anticrm/model-server-task'
|
||||
import { createModel as serverRecruitModel } from '@anticrm/model-server-recruit'
|
||||
import { createModel as serverCoreModel } from '@anticrm/model-server-core'
|
||||
import { createModel as settingModel } from '@anticrm/model-setting'
|
||||
import { createModel as taskModel } from '@anticrm/model-task'
|
||||
@ -70,7 +75,11 @@ const builders = [
|
||||
serverContactModel,
|
||||
serverNotificationModel,
|
||||
tagsModel,
|
||||
|
||||
serverChunterModel,
|
||||
serverInventoryModel,
|
||||
serverLeadModel,
|
||||
serverTaskModel,
|
||||
serverRecruitModel,
|
||||
createDemo
|
||||
]
|
||||
|
||||
|
@ -20,6 +20,7 @@ import { coreOperation } from '@anticrm/model-core'
|
||||
import { taskOperation } from '@anticrm/model-task'
|
||||
import { attachmentOperation } from '@anticrm/model-attachment'
|
||||
import { leadOperation } from '@anticrm/model-lead'
|
||||
import { notificationOperation } from '@anticrm/model-notification'
|
||||
import { recruitOperation } from '@anticrm/model-recruit'
|
||||
import { viewOperation } from '@anticrm/model-view'
|
||||
import { contactOperation } from '@anticrm/model-contact'
|
||||
@ -33,5 +34,6 @@ export const migrateOperations: MigrateOperation[] = [
|
||||
recruitOperation,
|
||||
viewOperation,
|
||||
contactOperation,
|
||||
tagsOperation
|
||||
tagsOperation,
|
||||
notificationOperation
|
||||
]
|
||||
|
@ -36,6 +36,6 @@
|
||||
"@anticrm/ui": "~0.6.0",
|
||||
"@anticrm/platform": "~0.6.5",
|
||||
"@anticrm/contact": "~0.6.2",
|
||||
"@anticrm/workbench": "~0.6.1"
|
||||
"@anticrm/contact-resources": "~0.6.0"
|
||||
}
|
||||
}
|
||||
|
@ -29,7 +29,7 @@ import presentation from '@anticrm/model-presentation'
|
||||
import view from '@anticrm/model-view'
|
||||
import workbench from '@anticrm/model-workbench'
|
||||
import type { Asset, IntlString } from '@anticrm/platform'
|
||||
import { ids as contact } from './plugin'
|
||||
import contact from './plugin'
|
||||
|
||||
export const DOMAIN_CONTACT = 'contact' as Domain
|
||||
export const DOMAIN_CHANNEL = 'channel' as Domain
|
||||
|
@ -15,16 +15,13 @@
|
||||
|
||||
import { IntlString, mergeIds, Resource } from '@anticrm/platform'
|
||||
import type { Ref } from '@anticrm/core'
|
||||
import contact, { contactId } from '@anticrm/contact'
|
||||
import { contactId } from '@anticrm/contact'
|
||||
import contact from '@anticrm/contact-resources/src/plugin'
|
||||
import type { AnyComponent } from '@anticrm/ui'
|
||||
import {} from '@anticrm/core'
|
||||
import { Application } from '@anticrm/workbench'
|
||||
import { ObjectSearchCategory, ObjectSearchFactory } from '@anticrm/model-presentation'
|
||||
|
||||
export const ids = mergeIds(contactId, contact, {
|
||||
app: {
|
||||
Contacts: '' as Ref<Application>
|
||||
},
|
||||
export default mergeIds(contactId, contact, {
|
||||
component: {
|
||||
PersonPresenter: '' as AnyComponent,
|
||||
ContactPresenter: '' as AnyComponent,
|
||||
@ -39,13 +36,7 @@ export const ids = mergeIds(contactId, contact, {
|
||||
Contacts: '' as AnyComponent
|
||||
},
|
||||
string: {
|
||||
Organizations: '' as IntlString,
|
||||
OrganizationsFolder: '' as IntlString,
|
||||
PersonsFolder: '' as IntlString,
|
||||
Persons: '' as IntlString,
|
||||
Contacts: '' as IntlString,
|
||||
CreatePersons: '' as IntlString,
|
||||
CreateOrganizations: '' as IntlString,
|
||||
SearchEmployee: '' as IntlString,
|
||||
SearchPerson: '' as IntlString,
|
||||
SearchOrganization: '' as IntlString,
|
||||
|
@ -20,12 +20,8 @@ import inventory from '@anticrm/inventory-resources/src/plugin'
|
||||
import { mergeIds, Resource } from '@anticrm/platform'
|
||||
import type { AnyComponent } from '@anticrm/ui'
|
||||
import { Action } from '@anticrm/view'
|
||||
import { Application } from '@anticrm/workbench'
|
||||
|
||||
export default mergeIds(inventoryId, inventory, {
|
||||
app: {
|
||||
Inventory: '' as Ref<Application>
|
||||
},
|
||||
action: {
|
||||
CreateSubcategory: '' as Ref<Action>
|
||||
},
|
||||
|
@ -21,12 +21,8 @@ import type { IntlString } from '@anticrm/platform'
|
||||
import { mergeIds } from '@anticrm/platform'
|
||||
import { KanbanTemplate } from '@anticrm/task'
|
||||
import type { AnyComponent } from '@anticrm/ui'
|
||||
import { Application } from '@anticrm/workbench'
|
||||
|
||||
export default mergeIds(leadId, lead, {
|
||||
app: {
|
||||
Lead: '' as Ref<Application>
|
||||
},
|
||||
string: {
|
||||
Funnel: '' as IntlString,
|
||||
Funnels: '' as IntlString,
|
||||
|
@ -30,6 +30,7 @@
|
||||
"@anticrm/ui": "~0.6.0",
|
||||
"@anticrm/platform": "~0.6.5",
|
||||
"@anticrm/model-core": "~0.6.0",
|
||||
"@anticrm/notification": "~0.6.0"
|
||||
"@anticrm/notification": "~0.6.0",
|
||||
"@anticrm/setting": "~0.6.0"
|
||||
}
|
||||
}
|
||||
|
@ -14,25 +14,26 @@
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import type { Account, Doc, Domain, Ref, Timestamp, TxCUD } from '@anticrm/core'
|
||||
import { Builder, Model, Prop, TypeRef, TypeString, TypeTimestamp } from '@anticrm/model'
|
||||
import core, { TAttachedDoc } from '@anticrm/model-core'
|
||||
import type { LastView, Notification, NotificationStatus } from '@anticrm/notification'
|
||||
import notificaton from './plugin'
|
||||
import { Account, Doc, Domain, DOMAIN_MODEL, Ref, Timestamp, TxCUD } from '@anticrm/core'
|
||||
import { ArrOf, Builder, Model, Prop, TypeRef, TypeString, TypeTimestamp } from '@anticrm/model'
|
||||
import core, { TAttachedDoc, TDoc } from '@anticrm/model-core'
|
||||
import type { EmailNotification, LastView, NotificationType, NotificationProvider, NotificationSetting, Notification, NotificationStatus } from '@anticrm/notification'
|
||||
import type { IntlString } from '@anticrm/platform'
|
||||
import notification from './plugin'
|
||||
import setting from '@anticrm/setting'
|
||||
|
||||
export const DOMAIN_NOTIFICATION = 'notification' as Domain
|
||||
|
||||
@Model(notificaton.class.LastView, core.class.AttachedDoc, DOMAIN_NOTIFICATION)
|
||||
@Model(notification.class.LastView, core.class.AttachedDoc, DOMAIN_NOTIFICATION)
|
||||
export class TLastView extends TAttachedDoc implements LastView {
|
||||
@Prop(TypeTimestamp(), notificaton.string.LastView)
|
||||
@Prop(TypeTimestamp(), notification.string.LastView)
|
||||
lastView!: Timestamp
|
||||
|
||||
@Prop(TypeRef(core.class.Account), 'Modified By' as IntlString)
|
||||
user!: Ref<Account>
|
||||
}
|
||||
|
||||
@Model(notificaton.class.Notification, core.class.AttachedDoc, DOMAIN_NOTIFICATION)
|
||||
@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>>
|
||||
@ -41,6 +42,66 @@ export class TNotification extends TAttachedDoc implements Notification {
|
||||
status!: NotificationStatus
|
||||
}
|
||||
|
||||
export function createModel (builder: Builder): void {
|
||||
builder.createModel(TLastView, TNotification)
|
||||
@Model(notification.class.EmailNotification, core.class.Doc, DOMAIN_NOTIFICATION)
|
||||
export class TEmaiNotification extends TDoc implements EmailNotification {
|
||||
@Prop(TypeString(), 'Sender' as IntlString)
|
||||
sender!: string
|
||||
|
||||
@Prop(ArrOf(TypeString()), 'Receivers' as IntlString)
|
||||
receivers!: string[]
|
||||
|
||||
@Prop(TypeString(), 'Subject' as IntlString)
|
||||
subject!: string
|
||||
|
||||
@Prop(TypeString(), 'Text' as IntlString)
|
||||
text!: string
|
||||
|
||||
@Prop(TypeString(), 'Html' as IntlString)
|
||||
html?: string
|
||||
|
||||
@Prop(TypeString(), 'Status' as IntlString)
|
||||
status!: 'new' | 'sent'
|
||||
}
|
||||
|
||||
@Model(notification.class.NotificationType, core.class.Doc, DOMAIN_MODEL)
|
||||
export class TNotificationType extends TDoc implements NotificationType {
|
||||
label!: IntlString
|
||||
}
|
||||
|
||||
@Model(notification.class.NotificationProvider, core.class.Doc, DOMAIN_MODEL)
|
||||
export class TNotificationProvider extends TDoc implements NotificationProvider {
|
||||
label!: IntlString
|
||||
}
|
||||
|
||||
@Model(notification.class.NotificationSetting, core.class.Doc, DOMAIN_NOTIFICATION)
|
||||
export class TNotificationSetting extends TDoc implements NotificationSetting {
|
||||
type!: Ref<TNotificationType>
|
||||
provider!: Ref<TNotificationProvider>
|
||||
enabled!: boolean
|
||||
}
|
||||
|
||||
export function createModel (builder: Builder): void {
|
||||
builder.createModel(TLastView, TNotification, TEmaiNotification, TNotificationType, TNotificationProvider, TNotificationSetting)
|
||||
|
||||
builder.createDoc(notification.class.NotificationType, core.space.Model, {
|
||||
label: notification.string.MentionNotification
|
||||
}, notification.ids.MentionNotification)
|
||||
|
||||
builder.createDoc(notification.class.NotificationProvider, core.space.Model, {
|
||||
label: notification.string.PlatformNotification
|
||||
}, notification.ids.PlatformNotification)
|
||||
|
||||
builder.createDoc(notification.class.NotificationProvider, core.space.Model, {
|
||||
label: notification.string.EmailNotification
|
||||
}, notification.ids.EmailNotification)
|
||||
|
||||
builder.createDoc(setting.class.SettingsCategory, core.space.Model, {
|
||||
name: 'notifications',
|
||||
label: notification.string.Notifications,
|
||||
icon: notification.icon.Notifications,
|
||||
component: notification.component.NotificationSettings,
|
||||
order: 2500
|
||||
}, notification.ids.NotificationSettings)
|
||||
}
|
||||
|
||||
export { notificationOperation } from './migration'
|
||||
|
31
models/notification/src/migration.ts
Normal file
31
models/notification/src/migration.ts
Normal file
@ -0,0 +1,31 @@
|
||||
//
|
||||
// Copyright © 2022 Hardcore Engineering Inc.
|
||||
//
|
||||
// Licensed under the Eclipse Public License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License. You may
|
||||
// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
//
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import { Doc, DOMAIN_TX, TxCUD } from '@anticrm/core'
|
||||
import { MigrateOperation, MigrationClient, MigrationUpgradeClient } from '@anticrm/model'
|
||||
import notification from './plugin'
|
||||
|
||||
export const notificationOperation: MigrateOperation = {
|
||||
async migrate (client: MigrationClient): Promise<void> {
|
||||
const txes = await client.find<TxCUD<Doc>>(DOMAIN_TX, {
|
||||
objectClass: notification.class.LastView
|
||||
})
|
||||
await Promise.all(txes.map(async (tx) => {
|
||||
await client.delete(DOMAIN_TX, tx._id)
|
||||
}))
|
||||
},
|
||||
async upgrade (client: MigrationUpgradeClient): Promise<void> {
|
||||
}
|
||||
}
|
@ -14,12 +14,18 @@
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import { IntlString, mergeIds } from '@anticrm/platform'
|
||||
import notification, { notificationId } from '@anticrm/notification'
|
||||
import {} from '@anticrm/ui'
|
||||
import { IntlString, mergeIds } from '@anticrm/platform'
|
||||
import { AnyComponent } from '@anticrm/ui'
|
||||
|
||||
export default mergeIds(notificationId, notification, {
|
||||
string: {
|
||||
LastView: '' as IntlString
|
||||
LastView: '' as IntlString,
|
||||
MentionNotification: '' as IntlString,
|
||||
PlatformNotification: '' as IntlString,
|
||||
EmailNotification: '' as IntlString
|
||||
},
|
||||
component: {
|
||||
NotificationSettings: '' as AnyComponent
|
||||
}
|
||||
})
|
||||
|
@ -21,13 +21,9 @@ import recruit from '@anticrm/recruit-resources/src/plugin'
|
||||
import { KanbanTemplate } from '@anticrm/task'
|
||||
import type { AnyComponent } from '@anticrm/ui'
|
||||
import type { Action } from '@anticrm/view'
|
||||
import { Application } from '@anticrm/workbench'
|
||||
import { ObjectSearchFactory, ObjectSearchCategory } from '@anticrm/model-presentation'
|
||||
|
||||
export default mergeIds(recruitId, recruit, {
|
||||
app: {
|
||||
Recruit: '' as Ref<Application>
|
||||
},
|
||||
action: {
|
||||
CreateApplication: '' as Ref<Action>
|
||||
},
|
||||
|
7
models/server-chunter/.eslintrc.js
Normal file
7
models/server-chunter/.eslintrc.js
Normal file
@ -0,0 +1,7 @@
|
||||
module.exports = {
|
||||
extends: ['./node_modules/@anticrm/model-rig/profiles/default/config/eslint.config.json'],
|
||||
parserOptions: {
|
||||
tsconfigRootDir: __dirname,
|
||||
project: './tsconfig.json'
|
||||
}
|
||||
}
|
18
models/server-chunter/config/rig.json
Normal file
18
models/server-chunter/config/rig.json
Normal file
@ -0,0 +1,18 @@
|
||||
// The "rig.json" file directs tools to look for their config files in an external package.
|
||||
// Documentation for this system: https://www.npmjs.com/package/@rushstack/rig-package
|
||||
{
|
||||
"$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json",
|
||||
|
||||
/**
|
||||
* (Required) The name of the rig package to inherit from.
|
||||
* It should be an NPM package name with the "-rig" suffix.
|
||||
*/
|
||||
"rigPackageName": "@anticrm/model-rig"
|
||||
|
||||
/**
|
||||
* (Optional) Selects a config profile from the rig package. The name must consist of
|
||||
* lowercase alphanumeric words separated by hyphens, for example "sample-profile".
|
||||
* If omitted, then the "default" profile will be used."
|
||||
*/
|
||||
// "rigProfile": "your-profile-name"
|
||||
}
|
36
models/server-chunter/package.json
Normal file
36
models/server-chunter/package.json
Normal file
@ -0,0 +1,36 @@
|
||||
{
|
||||
"name": "@anticrm/model-server-chunter",
|
||||
"version": "0.6.0",
|
||||
"main": "lib/index.js",
|
||||
"author": "Anticrm Platform Contributors",
|
||||
"license": "EPL-2.0",
|
||||
"scripts": {
|
||||
"build": "heft build",
|
||||
"build:watch": "tsc",
|
||||
"lint:fix": "eslint --fix src",
|
||||
"lint": "eslint src",
|
||||
"format": "prettier --write src && eslint --fix src"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@anticrm/model-rig": "~0.6.0",
|
||||
"@typescript-eslint/eslint-plugin": "^5.4.0",
|
||||
"eslint-plugin-import": "^2.25.3",
|
||||
"eslint-plugin-promise": "^5.1.1",
|
||||
"eslint-plugin-node": "^11.1.0",
|
||||
"eslint": "^7.32.0",
|
||||
"@types/heft-jest": "^1.0.2",
|
||||
"@typescript-eslint/parser": "^5.4.0",
|
||||
"eslint-config-standard-with-typescript": "^21.0.1",
|
||||
"prettier": "^2.4.1",
|
||||
"@rushstack/heft": "^0.41.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@anticrm/core": "~0.6.11",
|
||||
"@anticrm/model": "~0.6.0",
|
||||
"@anticrm/platform": "~0.6.5",
|
||||
"@anticrm/server-chunter": "~0.6.0",
|
||||
"@anticrm/server-core": "~0.6.0",
|
||||
"@anticrm/chunter": "~0.6.0",
|
||||
"@anticrm/view": "~0.6.0"
|
||||
}
|
||||
}
|
31
models/server-chunter/src/index.ts
Normal file
31
models/server-chunter/src/index.ts
Normal file
@ -0,0 +1,31 @@
|
||||
//
|
||||
// Copyright © 2022 Hardcore Engineering Inc.
|
||||
//
|
||||
// Licensed under the Eclipse Public License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License. You may
|
||||
// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
//
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import { Builder } from '@anticrm/model'
|
||||
|
||||
import core from '@anticrm/core'
|
||||
import chunter from '@anticrm/chunter'
|
||||
import view from '@anticrm/view'
|
||||
import serverChunter from '@anticrm/server-chunter'
|
||||
|
||||
export function createModel (builder: Builder): void {
|
||||
builder.mixin(chunter.class.Channel, core.class.Class, view.mixin.HTMLPresenter, {
|
||||
presenter: serverChunter.function.ChannelHTMLPresenter
|
||||
})
|
||||
|
||||
builder.mixin(chunter.class.Channel, core.class.Class, view.mixin.TextPresenter, {
|
||||
presenter: serverChunter.function.ChannelTextPresenter
|
||||
})
|
||||
}
|
8
models/server-chunter/tsconfig.json
Normal file
8
models/server-chunter/tsconfig.json
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"extends": "./node_modules/@anticrm/model-rig/profiles/default/tsconfig.json",
|
||||
|
||||
"compilerOptions": {
|
||||
"rootDir": "./src",
|
||||
"outDir": "./lib",
|
||||
}
|
||||
}
|
@ -29,6 +29,8 @@
|
||||
"@anticrm/model": "~0.6.0",
|
||||
"@anticrm/platform": "~0.6.5",
|
||||
"@anticrm/server-contact": "~0.6.0",
|
||||
"@anticrm/server-core": "~0.6.0"
|
||||
"@anticrm/server-core": "~0.6.0",
|
||||
"@anticrm/contact": "~0.6.2",
|
||||
"@anticrm/view": "~0.6.0"
|
||||
}
|
||||
}
|
||||
|
@ -18,9 +18,27 @@ import { Builder } from '@anticrm/model'
|
||||
|
||||
import serverCore from '@anticrm/server-core'
|
||||
import core from '@anticrm/core'
|
||||
import contact from '@anticrm/contact'
|
||||
import view from '@anticrm/view'
|
||||
import serverContact from '@anticrm/server-contact'
|
||||
|
||||
export function createModel (builder: Builder): void {
|
||||
builder.mixin(contact.class.Person, core.class.Class, view.mixin.HTMLPresenter, {
|
||||
presenter: serverContact.function.PersonHTMLPresenter
|
||||
})
|
||||
|
||||
builder.mixin(contact.class.Person, core.class.Class, view.mixin.TextPresenter, {
|
||||
presenter: serverContact.function.PersonTextPresenter
|
||||
})
|
||||
|
||||
builder.mixin(contact.class.Organization, core.class.Class, view.mixin.HTMLPresenter, {
|
||||
presenter: serverContact.function.OrganizationHTMLPresenter
|
||||
})
|
||||
|
||||
builder.mixin(contact.class.Organization, core.class.Class, view.mixin.TextPresenter, {
|
||||
presenter: serverContact.function.OrganizationTextPresenter
|
||||
})
|
||||
|
||||
builder.createDoc(serverCore.class.Trigger, core.space.Model, {
|
||||
trigger: serverContact.trigger.OnContactDelete
|
||||
})
|
||||
|
7
models/server-inventory/.eslintrc.js
Normal file
7
models/server-inventory/.eslintrc.js
Normal file
@ -0,0 +1,7 @@
|
||||
module.exports = {
|
||||
extends: ['./node_modules/@anticrm/model-rig/profiles/default/config/eslint.config.json'],
|
||||
parserOptions: {
|
||||
tsconfigRootDir: __dirname,
|
||||
project: './tsconfig.json'
|
||||
}
|
||||
}
|
18
models/server-inventory/config/rig.json
Normal file
18
models/server-inventory/config/rig.json
Normal file
@ -0,0 +1,18 @@
|
||||
// The "rig.json" file directs tools to look for their config files in an external package.
|
||||
// Documentation for this system: https://www.npmjs.com/package/@rushstack/rig-package
|
||||
{
|
||||
"$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json",
|
||||
|
||||
/**
|
||||
* (Required) The name of the rig package to inherit from.
|
||||
* It should be an NPM package name with the "-rig" suffix.
|
||||
*/
|
||||
"rigPackageName": "@anticrm/model-rig"
|
||||
|
||||
/**
|
||||
* (Optional) Selects a config profile from the rig package. The name must consist of
|
||||
* lowercase alphanumeric words separated by hyphens, for example "sample-profile".
|
||||
* If omitted, then the "default" profile will be used."
|
||||
*/
|
||||
// "rigProfile": "your-profile-name"
|
||||
}
|
36
models/server-inventory/package.json
Normal file
36
models/server-inventory/package.json
Normal file
@ -0,0 +1,36 @@
|
||||
{
|
||||
"name": "@anticrm/model-server-inventory",
|
||||
"version": "0.6.0",
|
||||
"main": "lib/index.js",
|
||||
"author": "Anticrm Platform Contributors",
|
||||
"license": "EPL-2.0",
|
||||
"scripts": {
|
||||
"build": "heft build",
|
||||
"build:watch": "tsc",
|
||||
"lint:fix": "eslint --fix src",
|
||||
"lint": "eslint src",
|
||||
"format": "prettier --write src && eslint --fix src"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@anticrm/model-rig": "~0.6.0",
|
||||
"@typescript-eslint/eslint-plugin": "^5.4.0",
|
||||
"eslint-plugin-import": "^2.25.3",
|
||||
"eslint-plugin-promise": "^5.1.1",
|
||||
"eslint-plugin-node": "^11.1.0",
|
||||
"eslint": "^7.32.0",
|
||||
"@types/heft-jest": "^1.0.2",
|
||||
"@typescript-eslint/parser": "^5.4.0",
|
||||
"eslint-config-standard-with-typescript": "^21.0.1",
|
||||
"prettier": "^2.4.1",
|
||||
"@rushstack/heft": "^0.41.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@anticrm/core": "~0.6.11",
|
||||
"@anticrm/model": "~0.6.0",
|
||||
"@anticrm/platform": "~0.6.5",
|
||||
"@anticrm/server-inventory": "~0.6.0",
|
||||
"@anticrm/server-core": "~0.6.0",
|
||||
"@anticrm/inventory": "~0.6.0",
|
||||
"@anticrm/view": "~0.6.0"
|
||||
}
|
||||
}
|
31
models/server-inventory/src/index.ts
Normal file
31
models/server-inventory/src/index.ts
Normal file
@ -0,0 +1,31 @@
|
||||
//
|
||||
// Copyright © 2022 Hardcore Engineering Inc.
|
||||
//
|
||||
// Licensed under the Eclipse Public License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License. You may
|
||||
// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
//
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import { Builder } from '@anticrm/model'
|
||||
|
||||
import core from '@anticrm/core'
|
||||
import inventory from '@anticrm/inventory'
|
||||
import view from '@anticrm/view'
|
||||
import serverInventory from '@anticrm/server-inventory'
|
||||
|
||||
export function createModel (builder: Builder): void {
|
||||
builder.mixin(inventory.class.Product, core.class.Class, view.mixin.HTMLPresenter, {
|
||||
presenter: serverInventory.function.ProductHTMLPresenter
|
||||
})
|
||||
|
||||
builder.mixin(inventory.class.Product, core.class.Class, view.mixin.TextPresenter, {
|
||||
presenter: serverInventory.function.ProductTextPresenter
|
||||
})
|
||||
}
|
8
models/server-inventory/tsconfig.json
Normal file
8
models/server-inventory/tsconfig.json
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"extends": "./node_modules/@anticrm/model-rig/profiles/default/tsconfig.json",
|
||||
|
||||
"compilerOptions": {
|
||||
"rootDir": "./src",
|
||||
"outDir": "./lib",
|
||||
}
|
||||
}
|
7
models/server-lead/.eslintrc.js
Normal file
7
models/server-lead/.eslintrc.js
Normal file
@ -0,0 +1,7 @@
|
||||
module.exports = {
|
||||
extends: ['./node_modules/@anticrm/model-rig/profiles/default/config/eslint.config.json'],
|
||||
parserOptions: {
|
||||
tsconfigRootDir: __dirname,
|
||||
project: './tsconfig.json'
|
||||
}
|
||||
}
|
18
models/server-lead/config/rig.json
Normal file
18
models/server-lead/config/rig.json
Normal file
@ -0,0 +1,18 @@
|
||||
// The "rig.json" file directs tools to look for their config files in an external package.
|
||||
// Documentation for this system: https://www.npmjs.com/package/@rushstack/rig-package
|
||||
{
|
||||
"$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json",
|
||||
|
||||
/**
|
||||
* (Required) The name of the rig package to inherit from.
|
||||
* It should be an NPM package name with the "-rig" suffix.
|
||||
*/
|
||||
"rigPackageName": "@anticrm/model-rig"
|
||||
|
||||
/**
|
||||
* (Optional) Selects a config profile from the rig package. The name must consist of
|
||||
* lowercase alphanumeric words separated by hyphens, for example "sample-profile".
|
||||
* If omitted, then the "default" profile will be used."
|
||||
*/
|
||||
// "rigProfile": "your-profile-name"
|
||||
}
|
36
models/server-lead/package.json
Normal file
36
models/server-lead/package.json
Normal file
@ -0,0 +1,36 @@
|
||||
{
|
||||
"name": "@anticrm/model-server-lead",
|
||||
"version": "0.6.0",
|
||||
"main": "lib/index.js",
|
||||
"author": "Anticrm Platform Contributors",
|
||||
"license": "EPL-2.0",
|
||||
"scripts": {
|
||||
"build": "heft build",
|
||||
"build:watch": "tsc",
|
||||
"lint:fix": "eslint --fix src",
|
||||
"lint": "eslint src",
|
||||
"format": "prettier --write src && eslint --fix src"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@anticrm/model-rig": "~0.6.0",
|
||||
"@typescript-eslint/eslint-plugin": "^5.4.0",
|
||||
"eslint-plugin-import": "^2.25.3",
|
||||
"eslint-plugin-promise": "^5.1.1",
|
||||
"eslint-plugin-node": "^11.1.0",
|
||||
"eslint": "^7.32.0",
|
||||
"@types/heft-jest": "^1.0.2",
|
||||
"@typescript-eslint/parser": "^5.4.0",
|
||||
"eslint-config-standard-with-typescript": "^21.0.1",
|
||||
"prettier": "^2.4.1",
|
||||
"@rushstack/heft": "^0.41.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@anticrm/core": "~0.6.11",
|
||||
"@anticrm/model": "~0.6.0",
|
||||
"@anticrm/platform": "~0.6.5",
|
||||
"@anticrm/server-lead": "~0.6.0",
|
||||
"@anticrm/server-core": "~0.6.0",
|
||||
"@anticrm/lead": "~0.6.0",
|
||||
"@anticrm/view": "~0.6.0"
|
||||
}
|
||||
}
|
31
models/server-lead/src/index.ts
Normal file
31
models/server-lead/src/index.ts
Normal file
@ -0,0 +1,31 @@
|
||||
//
|
||||
// Copyright © 2022 Hardcore Engineering Inc.
|
||||
//
|
||||
// Licensed under the Eclipse Public License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License. You may
|
||||
// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
//
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import { Builder } from '@anticrm/model'
|
||||
|
||||
import core from '@anticrm/core'
|
||||
import lead from '@anticrm/lead'
|
||||
import view from '@anticrm/view'
|
||||
import serverLead from '@anticrm/server-lead'
|
||||
|
||||
export function createModel (builder: Builder): void {
|
||||
builder.mixin(lead.class.Lead, core.class.Class, view.mixin.HTMLPresenter, {
|
||||
presenter: serverLead.function.LeadHTMLPresenter
|
||||
})
|
||||
|
||||
builder.mixin(lead.class.Lead, core.class.Class, view.mixin.TextPresenter, {
|
||||
presenter: serverLead.function.LeadTextPresenter
|
||||
})
|
||||
}
|
8
models/server-lead/tsconfig.json
Normal file
8
models/server-lead/tsconfig.json
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"extends": "./node_modules/@anticrm/model-rig/profiles/default/tsconfig.json",
|
||||
|
||||
"compilerOptions": {
|
||||
"rootDir": "./src",
|
||||
"outDir": "./lib",
|
||||
}
|
||||
}
|
7
models/server-recruit/.eslintrc.js
Normal file
7
models/server-recruit/.eslintrc.js
Normal file
@ -0,0 +1,7 @@
|
||||
module.exports = {
|
||||
extends: ['./node_modules/@anticrm/model-rig/profiles/default/config/eslint.config.json'],
|
||||
parserOptions: {
|
||||
tsconfigRootDir: __dirname,
|
||||
project: './tsconfig.json'
|
||||
}
|
||||
}
|
18
models/server-recruit/config/rig.json
Normal file
18
models/server-recruit/config/rig.json
Normal file
@ -0,0 +1,18 @@
|
||||
// The "rig.json" file directs tools to look for their config files in an external package.
|
||||
// Documentation for this system: https://www.npmjs.com/package/@rushstack/rig-package
|
||||
{
|
||||
"$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json",
|
||||
|
||||
/**
|
||||
* (Required) The name of the rig package to inherit from.
|
||||
* It should be an NPM package name with the "-rig" suffix.
|
||||
*/
|
||||
"rigPackageName": "@anticrm/model-rig"
|
||||
|
||||
/**
|
||||
* (Optional) Selects a config profile from the rig package. The name must consist of
|
||||
* lowercase alphanumeric words separated by hyphens, for example "sample-profile".
|
||||
* If omitted, then the "default" profile will be used."
|
||||
*/
|
||||
// "rigProfile": "your-profile-name"
|
||||
}
|
36
models/server-recruit/package.json
Normal file
36
models/server-recruit/package.json
Normal file
@ -0,0 +1,36 @@
|
||||
{
|
||||
"name": "@anticrm/model-server-recruit",
|
||||
"version": "0.6.0",
|
||||
"main": "lib/index.js",
|
||||
"author": "Anticrm Platform Contributors",
|
||||
"license": "EPL-2.0",
|
||||
"scripts": {
|
||||
"build": "heft build",
|
||||
"build:watch": "tsc",
|
||||
"lint:fix": "eslint --fix src",
|
||||
"lint": "eslint src",
|
||||
"format": "prettier --write src && eslint --fix src"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@anticrm/model-rig": "~0.6.0",
|
||||
"@typescript-eslint/eslint-plugin": "^5.4.0",
|
||||
"eslint-plugin-import": "^2.25.3",
|
||||
"eslint-plugin-promise": "^5.1.1",
|
||||
"eslint-plugin-node": "^11.1.0",
|
||||
"eslint": "^7.32.0",
|
||||
"@types/heft-jest": "^1.0.2",
|
||||
"@typescript-eslint/parser": "^5.4.0",
|
||||
"eslint-config-standard-with-typescript": "^21.0.1",
|
||||
"prettier": "^2.4.1",
|
||||
"@rushstack/heft": "^0.41.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@anticrm/core": "~0.6.11",
|
||||
"@anticrm/model": "~0.6.0",
|
||||
"@anticrm/platform": "~0.6.5",
|
||||
"@anticrm/server-recruit": "~0.6.0",
|
||||
"@anticrm/server-core": "~0.6.0",
|
||||
"@anticrm/recruit": "~0.6.0",
|
||||
"@anticrm/view": "~0.6.0"
|
||||
}
|
||||
}
|
39
models/server-recruit/src/index.ts
Normal file
39
models/server-recruit/src/index.ts
Normal file
@ -0,0 +1,39 @@
|
||||
//
|
||||
// Copyright © 2022 Hardcore Engineering Inc.
|
||||
//
|
||||
// Licensed under the Eclipse Public License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License. You may
|
||||
// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
//
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import { Builder } from '@anticrm/model'
|
||||
|
||||
import core from '@anticrm/core'
|
||||
import recruit from '@anticrm/recruit'
|
||||
import view from '@anticrm/view'
|
||||
import serverRecruit from '@anticrm/server-recruit'
|
||||
|
||||
export function createModel (builder: Builder): void {
|
||||
builder.mixin(recruit.class.Applicant, core.class.Class, view.mixin.HTMLPresenter, {
|
||||
presenter: serverRecruit.function.ApplicationHTMLPresenter
|
||||
})
|
||||
|
||||
builder.mixin(recruit.class.Applicant, core.class.Class, view.mixin.TextPresenter, {
|
||||
presenter: serverRecruit.function.ApplicationTextPresenter
|
||||
})
|
||||
|
||||
builder.mixin(recruit.class.Vacancy, core.class.Class, view.mixin.HTMLPresenter, {
|
||||
presenter: serverRecruit.function.VacancyHTMLPresenter
|
||||
})
|
||||
|
||||
builder.mixin(recruit.class.Vacancy, core.class.Class, view.mixin.TextPresenter, {
|
||||
presenter: serverRecruit.function.VacancyTextPresenter
|
||||
})
|
||||
}
|
8
models/server-recruit/tsconfig.json
Normal file
8
models/server-recruit/tsconfig.json
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"extends": "./node_modules/@anticrm/model-rig/profiles/default/tsconfig.json",
|
||||
|
||||
"compilerOptions": {
|
||||
"rootDir": "./src",
|
||||
"outDir": "./lib",
|
||||
}
|
||||
}
|
7
models/server-task/.eslintrc.js
Normal file
7
models/server-task/.eslintrc.js
Normal file
@ -0,0 +1,7 @@
|
||||
module.exports = {
|
||||
extends: ['./node_modules/@anticrm/model-rig/profiles/default/config/eslint.config.json'],
|
||||
parserOptions: {
|
||||
tsconfigRootDir: __dirname,
|
||||
project: './tsconfig.json'
|
||||
}
|
||||
}
|
18
models/server-task/config/rig.json
Normal file
18
models/server-task/config/rig.json
Normal file
@ -0,0 +1,18 @@
|
||||
// The "rig.json" file directs tools to look for their config files in an external package.
|
||||
// Documentation for this system: https://www.npmjs.com/package/@rushstack/rig-package
|
||||
{
|
||||
"$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json",
|
||||
|
||||
/**
|
||||
* (Required) The name of the rig package to inherit from.
|
||||
* It should be an NPM package name with the "-rig" suffix.
|
||||
*/
|
||||
"rigPackageName": "@anticrm/model-rig"
|
||||
|
||||
/**
|
||||
* (Optional) Selects a config profile from the rig package. The name must consist of
|
||||
* lowercase alphanumeric words separated by hyphens, for example "sample-profile".
|
||||
* If omitted, then the "default" profile will be used."
|
||||
*/
|
||||
// "rigProfile": "your-profile-name"
|
||||
}
|
36
models/server-task/package.json
Normal file
36
models/server-task/package.json
Normal file
@ -0,0 +1,36 @@
|
||||
{
|
||||
"name": "@anticrm/model-server-task",
|
||||
"version": "0.6.0",
|
||||
"main": "lib/index.js",
|
||||
"author": "Anticrm Platform Contributors",
|
||||
"license": "EPL-2.0",
|
||||
"scripts": {
|
||||
"build": "heft build",
|
||||
"build:watch": "tsc",
|
||||
"lint:fix": "eslint --fix src",
|
||||
"lint": "eslint src",
|
||||
"format": "prettier --write src && eslint --fix src"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@anticrm/model-rig": "~0.6.0",
|
||||
"@typescript-eslint/eslint-plugin": "^5.4.0",
|
||||
"eslint-plugin-import": "^2.25.3",
|
||||
"eslint-plugin-promise": "^5.1.1",
|
||||
"eslint-plugin-node": "^11.1.0",
|
||||
"eslint": "^7.32.0",
|
||||
"@types/heft-jest": "^1.0.2",
|
||||
"@typescript-eslint/parser": "^5.4.0",
|
||||
"eslint-config-standard-with-typescript": "^21.0.1",
|
||||
"prettier": "^2.4.1",
|
||||
"@rushstack/heft": "^0.41.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@anticrm/core": "~0.6.11",
|
||||
"@anticrm/model": "~0.6.0",
|
||||
"@anticrm/platform": "~0.6.5",
|
||||
"@anticrm/server-task": "~0.6.0",
|
||||
"@anticrm/server-core": "~0.6.0",
|
||||
"@anticrm/task": "~0.6.0",
|
||||
"@anticrm/view": "~0.6.0"
|
||||
}
|
||||
}
|
31
models/server-task/src/index.ts
Normal file
31
models/server-task/src/index.ts
Normal file
@ -0,0 +1,31 @@
|
||||
//
|
||||
// Copyright © 2022 Hardcore Engineering Inc.
|
||||
//
|
||||
// Licensed under the Eclipse Public License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License. You may
|
||||
// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
//
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import { Builder } from '@anticrm/model'
|
||||
|
||||
import core from '@anticrm/core'
|
||||
import task from '@anticrm/task'
|
||||
import view from '@anticrm/view'
|
||||
import serverTask from '@anticrm/server-task'
|
||||
|
||||
export function createModel (builder: Builder): void {
|
||||
builder.mixin(task.class.Issue, core.class.Class, view.mixin.HTMLPresenter, {
|
||||
presenter: serverTask.function.IssueHTMLPresenter
|
||||
})
|
||||
|
||||
builder.mixin(task.class.Issue, core.class.Class, view.mixin.TextPresenter, {
|
||||
presenter: serverTask.function.IssueTextPresenter
|
||||
})
|
||||
}
|
8
models/server-task/tsconfig.json
Normal file
8
models/server-task/tsconfig.json
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"extends": "./node_modules/@anticrm/model-rig/profiles/default/tsconfig.json",
|
||||
|
||||
"compilerOptions": {
|
||||
"rootDir": "./src",
|
||||
"outDir": "./lib",
|
||||
}
|
||||
}
|
@ -20,14 +20,10 @@ import { mergeIds } from '@anticrm/platform'
|
||||
import { KanbanTemplate, taskId } from '@anticrm/task'
|
||||
import task from '@anticrm/task-resources/src/plugin'
|
||||
import type { AnyComponent } from '@anticrm/ui'
|
||||
import { Application } from '@anticrm/workbench'
|
||||
import type { Action } from '@anticrm/view'
|
||||
import { ObjectSearchCategory, ObjectSearchFactory } from '@anticrm/model-presentation'
|
||||
|
||||
export default mergeIds(taskId, task, {
|
||||
app: {
|
||||
Tasks: '' as Ref<Application>
|
||||
},
|
||||
action: {
|
||||
CreateTask: '' as Ref<Action>,
|
||||
EditStatuses: '' as Ref<Action>,
|
||||
|
@ -30,6 +30,8 @@ import type {
|
||||
ObjectFactory,
|
||||
ObjectValidator,
|
||||
Viewlet,
|
||||
HTMLPresenter,
|
||||
TextPresenter,
|
||||
ViewletDescriptor
|
||||
} from '@anticrm/view'
|
||||
import view from './plugin'
|
||||
@ -98,6 +100,16 @@ export class TActionTarget extends TDoc implements ActionTarget {
|
||||
action!: Ref<Action>
|
||||
}
|
||||
|
||||
@Mixin(view.mixin.HTMLPresenter, core.class.Class)
|
||||
export class THTMLPresenter extends TClass implements HTMLPresenter {
|
||||
presenter!: Resource<(doc: Doc) => string>
|
||||
}
|
||||
|
||||
@Mixin(view.mixin.TextPresenter, core.class.Class)
|
||||
export class TTextPresenter extends TClass implements TextPresenter {
|
||||
presenter!: Resource<(doc: Doc) => string>
|
||||
}
|
||||
|
||||
export function createModel (builder: Builder): void {
|
||||
builder.createModel(
|
||||
TAttributeEditor,
|
||||
@ -110,7 +122,9 @@ export function createModel (builder: Builder): void {
|
||||
TObjectValidator,
|
||||
TObjectFactory,
|
||||
TObjectEditorHeader,
|
||||
TObjectDDParticipant
|
||||
TObjectDDParticipant,
|
||||
THTMLPresenter,
|
||||
TTextPresenter
|
||||
)
|
||||
|
||||
builder.mixin(core.class.TypeString, core.class.Class, view.mixin.AttributeEditor, {
|
||||
|
@ -17,7 +17,7 @@
|
||||
export let rowGap: number = 2.5
|
||||
export let columnGap: number = 1.5
|
||||
|
||||
const style = `grid-template-columns: repeat(${column}, 1fr); row-gap: ${rowGap}rem; column-gap: ${columnGap}rem;`
|
||||
$: style = `grid-template-columns: repeat(${column}, 1fr); row-gap: ${rowGap}rem; column-gap: ${columnGap}rem;`
|
||||
</script>
|
||||
|
||||
<div class="grid" {style}>
|
||||
|
@ -18,7 +18,7 @@
|
||||
</script>
|
||||
|
||||
<label class="toggle">
|
||||
<input class="chBox" type="checkbox" bind:checked={on}>
|
||||
<input class="chBox" type="checkbox" bind:checked={on} on:change>
|
||||
<span class="toggle-switch"></span>
|
||||
</label>
|
||||
|
||||
|
@ -16,13 +16,16 @@
|
||||
|
||||
<script lang="ts">
|
||||
import type { IntlString } from '@anticrm/platform'
|
||||
|
||||
|
||||
import Toggle from './Toggle.svelte'
|
||||
import Label from './Label.svelte'
|
||||
|
||||
import { createEventDispatcher } from 'svelte'
|
||||
|
||||
export let label: IntlString
|
||||
export let description: IntlString | undefined = undefined
|
||||
export let on: boolean = false
|
||||
|
||||
const dispatch = createEventDispatcher()
|
||||
</script>
|
||||
|
||||
<div class="flex-between">
|
||||
@ -32,7 +35,7 @@
|
||||
<span><Label label={description} /></span>
|
||||
{/if}
|
||||
</div>
|
||||
<Toggle bind:on={on}/>
|
||||
<Toggle bind:on={on} on:change={() => {dispatch('change', on)}} />
|
||||
</div>
|
||||
|
||||
<style lang="scss">
|
||||
|
@ -36,11 +36,13 @@
|
||||
"@anticrm/ui": "~0.6.0",
|
||||
"@anticrm/presentation": "~0.6.2",
|
||||
"@anticrm/chunter": "~0.6.0",
|
||||
"@anticrm/login": "~0.6.1",
|
||||
"svelte": "^3.37.0",
|
||||
"@anticrm/text-editor": "~0.6.0",
|
||||
"@anticrm/contact": "~0.6.2",
|
||||
"@anticrm/contact-resources": "~0.6.0",
|
||||
"@anticrm/view-resources": "~0.6.0",
|
||||
"@anticrm/view": "~0.6.0"
|
||||
"@anticrm/view": "~0.6.0",
|
||||
"@anticrm/workbench": "~0.6.1"
|
||||
}
|
||||
}
|
||||
|
@ -13,7 +13,10 @@
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import { Resources } from '@anticrm/platform'
|
||||
import { Channel } from '@anticrm/chunter'
|
||||
import { Doc } from '@anticrm/core'
|
||||
import login from '@anticrm/login'
|
||||
import { getMetadata, Resources } from '@anticrm/platform'
|
||||
import { collectBacklinks } from './backlinks'
|
||||
import TxBacklinkCreate from './components/activity/TxBacklinkCreate.svelte'
|
||||
import TxBacklinkReference from './components/activity/TxBacklinkReference.svelte'
|
||||
@ -24,6 +27,8 @@ import CommentInput from './components/CommentInput.svelte'
|
||||
import CommentPresenter from './components/CommentPresenter.svelte'
|
||||
import CommentsPresenter from './components/CommentsPresenter.svelte'
|
||||
import CreateChannel from './components/CreateChannel.svelte'
|
||||
import chunter from './plugin'
|
||||
import workbench from '@anticrm/workbench'
|
||||
|
||||
export { CommentsPresenter }
|
||||
|
||||
|
@ -13,9 +13,7 @@
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import type { Channel } from '@anticrm/chunter'
|
||||
import chunter, { chunterId } from '@anticrm/chunter'
|
||||
import type { Class, Doc, Ref } from '@anticrm/core'
|
||||
import type { IntlString } from '@anticrm/platform'
|
||||
import { mergeIds } from '@anticrm/platform'
|
||||
import type { AnyComponent } from '@anticrm/ui'
|
||||
@ -25,9 +23,6 @@ export default mergeIds(chunterId, chunter, {
|
||||
CreateChannel: '' as AnyComponent,
|
||||
ChannelView: '' as AnyComponent
|
||||
},
|
||||
class: {
|
||||
Channel: '' as Ref<Class<Channel>>
|
||||
},
|
||||
string: {
|
||||
Channel: '' as IntlString,
|
||||
Channels: '' as IntlString,
|
||||
@ -37,8 +32,5 @@ export default mergeIds(chunterId, chunter, {
|
||||
ChannelDescription: '' as IntlString,
|
||||
MakePrivate: '' as IntlString,
|
||||
MakePrivateDescription: '' as IntlString
|
||||
},
|
||||
app: {
|
||||
Chunter: '' as Ref<Doc>
|
||||
}
|
||||
})
|
||||
|
@ -13,9 +13,9 @@
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import { IntlString, plugin } from '@anticrm/platform'
|
||||
import type { AttachedDoc, Class, Doc, Ref, Space } from '@anticrm/core'
|
||||
import type { Asset, Plugin } from '@anticrm/platform'
|
||||
import type { Space, Doc, Ref, Class, AttachedDoc } from '@anticrm/core'
|
||||
import { IntlString, plugin } from '@anticrm/platform'
|
||||
import { AnyComponent } from '@anticrm/ui'
|
||||
|
||||
/**
|
||||
@ -71,7 +71,8 @@ export default plugin(chunterId, {
|
||||
class: {
|
||||
Message: '' as Ref<Class<Message>>,
|
||||
Backlink: '' as Ref<Class<Backlink>>,
|
||||
Comment: '' as Ref<Class<Comment>>
|
||||
Comment: '' as Ref<Class<Comment>>,
|
||||
Channel: '' as Ref<Class<Channel>>
|
||||
},
|
||||
space: {
|
||||
Backlinks: '' as Ref<Space>
|
||||
@ -80,5 +81,8 @@ export default plugin(chunterId, {
|
||||
EditUpdate: '' as IntlString,
|
||||
EditCancel: '' as IntlString,
|
||||
Comments: '' as IntlString
|
||||
},
|
||||
app: {
|
||||
Chunter: '' as Ref<Doc>
|
||||
}
|
||||
})
|
||||
|
@ -18,8 +18,8 @@ import { Contact, formatName } from '@anticrm/contact'
|
||||
import { Class, Client, Ref } from '@anticrm/core'
|
||||
import { Resources } from '@anticrm/platform'
|
||||
import { Avatar, ObjectSearchResult, UserInfo } from '@anticrm/presentation'
|
||||
import ChannelsEditor from './components/ChannelsEditor.svelte'
|
||||
import Channels from './components/Channels.svelte'
|
||||
import ChannelsEditor from './components/ChannelsEditor.svelte'
|
||||
import ChannelsPresenter from './components/ChannelsPresenter.svelte'
|
||||
import ChannelsView from './components/ChannelsView.svelte'
|
||||
import ContactPresenter from './components/ContactPresenter.svelte'
|
||||
|
@ -163,5 +163,8 @@ export default plugin(contactId, {
|
||||
space: {
|
||||
Employee: '' as Ref<Space>,
|
||||
Contacts: '' as Ref<Space>
|
||||
},
|
||||
app: {
|
||||
Contacts: '' as Ref<Doc>
|
||||
}
|
||||
})
|
||||
|
@ -39,6 +39,8 @@
|
||||
"@anticrm/presentation": "~0.6.2",
|
||||
"@anticrm/view": "~0.6.0",
|
||||
"@anticrm/view-resources": "~0.6.0",
|
||||
"@anticrm/core": "~0.6.11"
|
||||
"@anticrm/core": "~0.6.11",
|
||||
"@anticrm/login": "~0.6.1",
|
||||
"@anticrm/workbench": "~0.6.1"
|
||||
}
|
||||
}
|
||||
|
@ -14,17 +14,17 @@
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import { Resources } from '@anticrm/platform'
|
||||
import Categories from './components/Categories.svelte'
|
||||
import CreateCategory from './components/CreateCategory.svelte'
|
||||
import CategoryPresenter from './components/CategoryPresenter.svelte'
|
||||
import Products from './components/Products.svelte'
|
||||
import ProductPresenter from './components/ProductPresenter.svelte'
|
||||
import EditProduct from './components/EditProduct.svelte'
|
||||
import Variants from './components/Variants.svelte'
|
||||
import VariantPresenter from './components/VariantPresenter.svelte'
|
||||
import { Doc } from '@anticrm/core'
|
||||
import { Resources } from '@anticrm/platform'
|
||||
import { showPopup } from '@anticrm/ui'
|
||||
import Categories from './components/Categories.svelte'
|
||||
import CategoryPresenter from './components/CategoryPresenter.svelte'
|
||||
import CreateCategory from './components/CreateCategory.svelte'
|
||||
import EditProduct from './components/EditProduct.svelte'
|
||||
import ProductPresenter from './components/ProductPresenter.svelte'
|
||||
import Products from './components/Products.svelte'
|
||||
import VariantPresenter from './components/VariantPresenter.svelte'
|
||||
import Variants from './components/Variants.svelte'
|
||||
|
||||
async function createSubcategory (object: Doc): Promise<void> {
|
||||
showPopup(CreateCategory, { attachedTo: object._id })
|
||||
|
@ -14,9 +14,9 @@
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import inventory, { inventoryId } from '@anticrm/inventory'
|
||||
import { IntlString, mergeIds, StatusCode } from '@anticrm/platform'
|
||||
|
||||
import inventory, { inventoryId } from '@anticrm/inventory'
|
||||
|
||||
export default mergeIds(inventoryId, inventory, {
|
||||
status: {
|
||||
|
@ -14,7 +14,7 @@
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import { AttachedDoc, Class, Ref, Space } from '@anticrm/core'
|
||||
import { AttachedDoc, Class, Doc, Ref, Space } from '@anticrm/core'
|
||||
import type { Asset, Plugin } from '@anticrm/platform'
|
||||
import { plugin } from '@anticrm/platform'
|
||||
|
||||
@ -70,6 +70,9 @@ const inventory = plugin(inventoryId, {
|
||||
space: {
|
||||
Category: '' as Ref<Space>,
|
||||
Products: '' as Ref<Space>
|
||||
},
|
||||
app: {
|
||||
Inventory: '' as Ref<Doc>
|
||||
}
|
||||
})
|
||||
|
||||
|
@ -40,6 +40,8 @@
|
||||
"@anticrm/contact": "~0.6.2",
|
||||
"@anticrm/view": "~0.6.0",
|
||||
"@anticrm/task": "~0.6.0",
|
||||
"@anticrm/login": "~0.6.1",
|
||||
"@anticrm/workbench": "~0.6.1",
|
||||
"@anticrm/view-resources": "~0.6.0",
|
||||
"@anticrm/attachment-resources": "~0.6.0",
|
||||
"@anticrm/contact-resources": "~0.6.0",
|
||||
|
@ -21,9 +21,9 @@ import Customers from './components/Customers.svelte'
|
||||
import EditLead from './components/EditLead.svelte'
|
||||
import KanbanCard from './components/KanbanCard.svelte'
|
||||
import LeadPresenter from './components/LeadPresenter.svelte'
|
||||
import Leads from './components/Leads.svelte'
|
||||
import LeadsPresenter from './components/LeadsPresenter.svelte'
|
||||
import TemplatesIcon from './components/TemplatesIcon.svelte'
|
||||
import Leads from './components/Leads.svelte'
|
||||
|
||||
export default async (): Promise<Resources> => ({
|
||||
component: {
|
||||
|
@ -13,9 +13,8 @@
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import { IntlString, mergeIds } from '@anticrm/platform'
|
||||
|
||||
import lead, { leadId } from '@anticrm/lead'
|
||||
import { IntlString, mergeIds } from '@anticrm/platform'
|
||||
import { AnyComponent } from '@anticrm/ui'
|
||||
|
||||
export default mergeIds(leadId, lead, {
|
||||
|
@ -15,7 +15,7 @@
|
||||
//
|
||||
|
||||
import type { Contact } from '@anticrm/contact'
|
||||
import type { Class, Ref } from '@anticrm/core'
|
||||
import type { Class, Doc, Ref } from '@anticrm/core'
|
||||
import { Mixin } from '@anticrm/core'
|
||||
import type { Asset, Plugin } from '@anticrm/platform'
|
||||
import { plugin } from '@anticrm/platform'
|
||||
@ -57,6 +57,9 @@ export const leadId = 'lead' as Plugin
|
||||
* @public
|
||||
*/
|
||||
const lead = plugin(leadId, {
|
||||
app: {
|
||||
Lead: '' as Ref<Doc>
|
||||
},
|
||||
class: {
|
||||
Lead: '' as Ref<Class<Lead>>,
|
||||
Funnel: '' as Ref<Class<Funnel>>
|
||||
|
@ -37,6 +37,7 @@ export const loginId = 'login' as Plugin
|
||||
export default plugin(loginId, {
|
||||
metadata: {
|
||||
AccountsUrl: '' as Asset,
|
||||
FrontUrl: '' as Asset,
|
||||
UploadUrl: '' as Asset,
|
||||
TelegramUrl: '' as Asset,
|
||||
GmailUrl: '' as Asset,
|
||||
|
@ -3,6 +3,9 @@
|
||||
"LastView": "Last View",
|
||||
"Notification": "Notification",
|
||||
"Notifications": "Notifications",
|
||||
"NoNotifications": "No notifications"
|
||||
"NoNotifications": "No notifications",
|
||||
"MentionNotification": "Mentioned",
|
||||
"EmailNotification": "by email",
|
||||
"PlatformNotification": "in platform"
|
||||
}
|
||||
}
|
@ -40,6 +40,7 @@
|
||||
"@anticrm/activity-resources": "~0.6.0",
|
||||
"@anticrm/activity": "~0.6.0",
|
||||
"@anticrm/contact": "~0.6.0",
|
||||
"just-clone": "^3.2.1",
|
||||
"@anticrm/core": "~0.6.11"
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,135 @@
|
||||
<!--
|
||||
// Copyright © 2020, 2021 Anticrm Platform Contributors.
|
||||
//
|
||||
// Licensed under the Eclipse Public License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License. You may
|
||||
// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
//
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
-->
|
||||
<script lang="ts">
|
||||
import { getCurrentAccount,Ref,Space,Tx, TxProcessor } from '@anticrm/core'
|
||||
import type { NotificationProvider,NotificationSetting,NotificationType } from '@anticrm/notification'
|
||||
import presentation,{ createQuery,getClient } from '@anticrm/presentation'
|
||||
import { Button,Grid,Icon,Label,ToggleWithLabel } from '@anticrm/ui'
|
||||
import notification from '../plugin'
|
||||
import justClone from 'just-clone'
|
||||
|
||||
const accountId = getCurrentAccount()._id
|
||||
const typeQuery = createQuery()
|
||||
const providersQuery = createQuery()
|
||||
const settingsQuery = createQuery()
|
||||
const client = getClient()
|
||||
const space = accountId as string as Ref<Space>
|
||||
|
||||
let types: NotificationType[] = []
|
||||
let providers: NotificationProvider[] = []
|
||||
let settings: Map<Ref<NotificationType>, Map<Ref<NotificationProvider>, NotificationSetting>> = new Map<Ref<NotificationType>, Map<Ref<NotificationProvider>, NotificationSetting>>()
|
||||
let oldSettings: Map<Ref<NotificationType>, Map<Ref<NotificationProvider>, NotificationSetting>> = new Map<Ref<NotificationType>, Map<Ref<NotificationProvider>, NotificationSetting>>()
|
||||
|
||||
typeQuery.query(notification.class.NotificationType, {}, (res) => (types = res))
|
||||
providersQuery.query(notification.class.NotificationProvider, { }, (res) => (providers = res))
|
||||
settingsQuery.query(notification.class.NotificationSetting, { space }, (res) => {
|
||||
settings = convertToMap(res)
|
||||
oldSettings = convertToMap(justClone(res))
|
||||
})
|
||||
|
||||
function convertToMap (settings: NotificationSetting[]): Map<Ref<NotificationType>, Map<Ref<NotificationProvider>, NotificationSetting>> {
|
||||
const result = new Map<Ref<NotificationType>, Map<Ref<NotificationProvider>, NotificationSetting>>()
|
||||
for (const setting of settings) {
|
||||
setSetting(result, setting)
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
function change (type: Ref<NotificationType>, provider: Ref<NotificationProvider>, value: boolean): void {
|
||||
const current = getSetting(settings, type, provider)
|
||||
if (current === undefined) {
|
||||
const tx = client.txFactory.createTxCreateDoc(notification.class.NotificationSetting, space, {
|
||||
provider,
|
||||
type,
|
||||
enabled: value
|
||||
})
|
||||
const setting = TxProcessor.createDoc2Doc(tx)
|
||||
setSetting(settings, setting)
|
||||
} else {
|
||||
current.enabled = value
|
||||
}
|
||||
}
|
||||
|
||||
function getSetting (map: Map<Ref<NotificationType>, Map<Ref<NotificationProvider>, NotificationSetting>>, type: Ref<NotificationType>, provider: Ref<NotificationProvider>): NotificationSetting | undefined {
|
||||
const typeMap = map.get(type)
|
||||
if (typeMap === undefined) return
|
||||
return typeMap.get(provider)
|
||||
}
|
||||
|
||||
function setSetting (result: Map<Ref<NotificationType>, Map<Ref<NotificationProvider>, NotificationSetting>>, setting: NotificationSetting): void {
|
||||
let typeMap = result.get(setting.type)
|
||||
if (typeMap === undefined) {
|
||||
typeMap = new Map<Ref<NotificationProvider>, NotificationSetting>()
|
||||
result.set(setting.type, typeMap)
|
||||
}
|
||||
typeMap.set(setting.provider, setting)
|
||||
}
|
||||
|
||||
async function save (): Promise<void> {
|
||||
const promises: Promise<any>[] = []
|
||||
for (const type of settings.values()) {
|
||||
for (const setting of type.values()) {
|
||||
const old = getSetting(oldSettings, setting.type, setting.provider)
|
||||
if (old === undefined) {
|
||||
promises.push(client.createDoc(setting._class, setting.space, setting))
|
||||
} else if (old.enabled !== setting.enabled) {
|
||||
promises.push(client.updateDoc(old._class, old.space, old._id, {
|
||||
enabled: setting.enabled
|
||||
}))
|
||||
}
|
||||
}
|
||||
}
|
||||
await Promise.all(promises)
|
||||
}
|
||||
|
||||
$: column = providers.length + 1
|
||||
</script>
|
||||
|
||||
<div class="antiComponent">
|
||||
<div class="ac-header short divide">
|
||||
<div class="ac-header__icon"><Icon icon={notification.icon.Notifications} size={'medium'} /></div>
|
||||
<div class="ac-header__title"><Label label={notification.string.Notifications}/></div>
|
||||
</div>
|
||||
<div class="flex-row-streach flex-grow container">
|
||||
<div class="flex-col flex-grow">
|
||||
<div class="flex-grow">
|
||||
<Grid {column} columnGap={5} rowGap={1.5} >
|
||||
{#each types as type (type._id)}
|
||||
<Label label={type.label} />
|
||||
{#each providers as provider (provider._id)}
|
||||
<ToggleWithLabel label={provider.label} on={getSetting(settings, type._id, provider._id)?.enabled} on:change={(e) => change(type._id, provider._id, e.detail)} />
|
||||
{/each}
|
||||
{/each}
|
||||
</Grid>
|
||||
</div>
|
||||
<div class="flex-row-reverse">
|
||||
<Button
|
||||
label={presentation.string.Save}
|
||||
primary
|
||||
on:click={() => {
|
||||
save()
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style lang="scss">
|
||||
.container {
|
||||
padding: 3rem;
|
||||
}
|
||||
</style>
|
||||
|
@ -16,11 +16,13 @@
|
||||
|
||||
import { Resources } from '@anticrm/platform'
|
||||
import NotificationsPopup from './components/NotificationsPopup.svelte'
|
||||
import NotificationSettings from './components/NotificationSettings.svelte'
|
||||
|
||||
export * from './utils'
|
||||
|
||||
export default async (): Promise<Resources> => ({
|
||||
component: {
|
||||
NotificationsPopup
|
||||
NotificationsPopup,
|
||||
NotificationSettings
|
||||
}
|
||||
})
|
||||
|
@ -35,15 +35,49 @@ export interface Notification extends AttachedDoc {
|
||||
status: NotificationStatus
|
||||
}
|
||||
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
export interface EmailNotification extends Doc {
|
||||
sender: string
|
||||
receivers: string[]
|
||||
subject: string
|
||||
text: string
|
||||
html?: string
|
||||
status: 'new' | 'sent'
|
||||
}
|
||||
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
export enum NotificationStatus {
|
||||
New,
|
||||
EmailSent,
|
||||
Read
|
||||
}
|
||||
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
export interface NotificationType extends Doc {
|
||||
label: IntlString
|
||||
}
|
||||
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
export interface NotificationProvider extends Doc {
|
||||
label: IntlString
|
||||
}
|
||||
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
export interface NotificationSetting extends Doc {
|
||||
type: Ref<NotificationType>
|
||||
provider: Ref<NotificationProvider>
|
||||
enabled: boolean
|
||||
}
|
||||
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
@ -55,7 +89,17 @@ export const notificationId = 'notification' as Plugin
|
||||
const notification = plugin(notificationId, {
|
||||
class: {
|
||||
LastView: '' as Ref<Class<LastView>>,
|
||||
Notification: '' as Ref<Class<Notification>>
|
||||
Notification: '' as Ref<Class<Notification>>,
|
||||
EmailNotification: '' as Ref<Class<EmailNotification>>,
|
||||
NotificationType: '' as Ref<Class<NotificationType>>,
|
||||
NotificationProvider: '' as Ref<Class<NotificationProvider>>,
|
||||
NotificationSetting: '' as Ref<Class<NotificationSetting>>
|
||||
},
|
||||
ids: {
|
||||
MentionNotification: '' as Ref<NotificationType>,
|
||||
PlatformNotification: '' as Ref<NotificationProvider>,
|
||||
EmailNotification: '' as Ref<NotificationProvider>,
|
||||
NotificationSettings: '' as Ref<Doc>
|
||||
},
|
||||
component: {
|
||||
NotificationsPopup: '' as AnyComponent
|
||||
|
@ -41,6 +41,7 @@
|
||||
"@anticrm/chunter": "~0.6.0",
|
||||
"@anticrm/contact": "~0.6.2",
|
||||
"@anticrm/login": "~0.6.1",
|
||||
"@anticrm/workbench": "~0.6.1",
|
||||
"deep-equal": "^2.0.5",
|
||||
"@anticrm/panel": "~0.6.0",
|
||||
"@anticrm/activity": "~0.6.0",
|
||||
|
@ -14,8 +14,8 @@
|
||||
//
|
||||
|
||||
import type { Client, Doc } from '@anticrm/core'
|
||||
import { IntlString, OK, Resources, Severity, Status, translate } from '@anticrm/platform'
|
||||
import { Applicant } from '@anticrm/recruit'
|
||||
import { getMetadata, IntlString, OK, Resources, Severity, Status, translate } from '@anticrm/platform'
|
||||
import { Applicant, Vacancy } from '@anticrm/recruit'
|
||||
import { showPopup } from '@anticrm/ui'
|
||||
import ApplicationPresenter from './components/ApplicationPresenter.svelte'
|
||||
import Applications from './components/Applications.svelte'
|
||||
@ -34,6 +34,9 @@ import task from '@anticrm/task'
|
||||
import ApplicationItem from './components/ApplicationItem.svelte'
|
||||
import VacancyPresenter from './components/VacancyPresenter.svelte'
|
||||
import SkillsView from './components/SkillsView.svelte'
|
||||
import login from '@anticrm/login'
|
||||
import workbench from '@anticrm/workbench'
|
||||
import view from '@anticrm/view'
|
||||
|
||||
async function createApplication (object: Doc): Promise<void> {
|
||||
showPopup(CreateApplication, { candidate: object._id, preserveCandidate: true })
|
||||
|
@ -17,7 +17,6 @@ import { Ref, Space } from '@anticrm/core'
|
||||
import type { IntlString, StatusCode } from '@anticrm/platform'
|
||||
import { mergeIds } from '@anticrm/platform'
|
||||
import recruit, { recruitId } from '@anticrm/recruit'
|
||||
import { AnyComponent } from '@anticrm/ui'
|
||||
|
||||
export default mergeIds(recruitId, recruit, {
|
||||
status: {
|
||||
@ -63,8 +62,5 @@ export default mergeIds(recruitId, recruit, {
|
||||
},
|
||||
space: {
|
||||
CandidatesPublic: '' as Ref<Space>
|
||||
},
|
||||
component: {
|
||||
EditVacancy: '' as AnyComponent
|
||||
}
|
||||
})
|
||||
|
@ -30,6 +30,7 @@
|
||||
"@anticrm/core": "~0.6.11",
|
||||
"@anticrm/contact": "~0.6.2",
|
||||
"@anticrm/chunter": "~0.6.0",
|
||||
"@anticrm/task": "~0.6.0"
|
||||
"@anticrm/task": "~0.6.0",
|
||||
"@anticrm/ui": "~0.6.0"
|
||||
}
|
||||
}
|
||||
|
@ -14,10 +14,11 @@
|
||||
//
|
||||
|
||||
import type { Person } from '@anticrm/contact'
|
||||
import type { Class, Mixin, Ref, Space, Timestamp } from '@anticrm/core'
|
||||
import type { Class, Doc, Mixin, Ref, Space, Timestamp } from '@anticrm/core'
|
||||
import type { Asset, Plugin } from '@anticrm/platform'
|
||||
import { plugin } from '@anticrm/platform'
|
||||
import type { KanbanTemplateSpace, SpaceWithStates, Task } from '@anticrm/task'
|
||||
import { AnyComponent } from '@anticrm/ui'
|
||||
|
||||
/**
|
||||
* @public
|
||||
@ -64,6 +65,9 @@ export const recruitId = 'recruit' as Plugin
|
||||
* @public
|
||||
*/
|
||||
const recruit = plugin(recruitId, {
|
||||
app: {
|
||||
Recruit: '' as Ref<Doc>
|
||||
},
|
||||
class: {
|
||||
Applicant: '' as Ref<Class<Applicant>>,
|
||||
Candidates: '' as Ref<Class<Candidates>>,
|
||||
@ -72,6 +76,9 @@ const recruit = plugin(recruitId, {
|
||||
mixin: {
|
||||
Candidate: '' as Ref<Mixin<Candidate>>
|
||||
},
|
||||
component: {
|
||||
EditVacancy: '' as AnyComponent
|
||||
},
|
||||
icon: {
|
||||
RecruitApplication: '' as Asset,
|
||||
Vacancy: '' as Asset,
|
||||
|
@ -15,32 +15,35 @@
|
||||
//
|
||||
|
||||
import { Class, Client, Doc, Ref } from '@anticrm/core'
|
||||
import { IntlString, Resources, translate } from '@anticrm/platform'
|
||||
import login from '@anticrm/login'
|
||||
import { getMetadata, IntlString, Resources, translate } from '@anticrm/platform'
|
||||
import { getClient, MessageBox, ObjectSearchResult } from '@anticrm/presentation'
|
||||
import task, { SpaceWithStates, Task, TodoItem } from '@anticrm/task'
|
||||
import { Issue, SpaceWithStates, Task, TodoItem } from '@anticrm/task'
|
||||
import task from './plugin'
|
||||
import { showPopup } from '@anticrm/ui'
|
||||
import TaskItem from './components/TaskItem.svelte'
|
||||
import view from '@anticrm/view'
|
||||
import workbench from '@anticrm/workbench'
|
||||
import CreateProject from './components/CreateProject.svelte'
|
||||
import CreateTask from './components/CreateTask.svelte'
|
||||
import EditIssue from './components/EditIssue.svelte'
|
||||
import KanbanTemplateEditor from './components/kanban/KanbanTemplateEditor.svelte'
|
||||
import KanbanTemplateSelector from './components/kanban/KanbanTemplateSelector.svelte'
|
||||
import KanbanView from './components/kanban/KanbanView.svelte'
|
||||
import KanbanCard from './components/KanbanCard.svelte'
|
||||
import DoneStatePresenter from './components/state/DoneStatePresenter.svelte'
|
||||
import DoneStateEditor from './components/state/DoneStateEditor.svelte'
|
||||
import DoneStatePresenter from './components/state/DoneStatePresenter.svelte'
|
||||
import EditStatuses from './components/state/EditStatuses.svelte'
|
||||
import StateEditor from './components/state/StateEditor.svelte'
|
||||
import StatePresenter from './components/state/StatePresenter.svelte'
|
||||
import StatusTableView from './components/StatusTableView.svelte'
|
||||
import TaskHeader from './components/TaskHeader.svelte'
|
||||
import TaskItem from './components/TaskItem.svelte'
|
||||
import TaskPresenter from './components/TaskPresenter.svelte'
|
||||
import TemplatesIcon from './components/TemplatesIcon.svelte'
|
||||
import TodoItemPresenter from './components/todos/TodoItemPresenter.svelte'
|
||||
import Todos from './components/todos/Todos.svelte'
|
||||
import TodoStatePresenter from './components/todos/TodoStatePresenter.svelte'
|
||||
|
||||
import KanbanTemplateEditor from './components/kanban/KanbanTemplateEditor.svelte'
|
||||
import KanbanTemplateSelector from './components/kanban/KanbanTemplateSelector.svelte'
|
||||
|
||||
async function createTask (object: Doc): Promise<void> {
|
||||
showPopup(CreateTask, { parent: object._id, space: object.space })
|
||||
}
|
||||
|
@ -29,7 +29,6 @@ import type { Asset, IntlString, Plugin } from '@anticrm/platform'
|
||||
import { plugin } from '@anticrm/platform'
|
||||
import type { AnyComponent } from '@anticrm/ui'
|
||||
import { ViewletDescriptor } from '@anticrm/view'
|
||||
|
||||
import { genRanks } from './utils'
|
||||
|
||||
/**
|
||||
@ -176,6 +175,9 @@ export const taskId = 'task' as Plugin
|
||||
* @public
|
||||
*/
|
||||
const task = plugin(taskId, {
|
||||
app: {
|
||||
Tasks: '' as Ref<Doc>
|
||||
},
|
||||
mixin: {
|
||||
KanbanCard: '' as Ref<Mixin<KanbanCard>>
|
||||
},
|
||||
|
@ -88,6 +88,20 @@ export interface ActionTarget<T extends Doc = Doc> extends Doc {
|
||||
query?: DocumentQuery<T>
|
||||
}
|
||||
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
export interface HTMLPresenter extends Class<Doc> {
|
||||
presenter: Resource<(doc: Doc) => string>
|
||||
}
|
||||
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
export interface TextPresenter extends Class<Doc> {
|
||||
presenter: Resource<(doc: Doc) => string>
|
||||
}
|
||||
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
@ -164,7 +178,9 @@ const view = plugin(viewId, {
|
||||
ObjectEditorHeader: '' as Ref<Mixin<ObjectEditorHeader>>,
|
||||
ObjectValidator: '' as Ref<Mixin<ObjectValidator>>,
|
||||
ObjectFactory: '' as Ref<Mixin<ObjectFactory>>,
|
||||
ObjectDDParticipant: '' as Ref<ObjectDDParticipant>
|
||||
ObjectDDParticipant: '' as Ref<ObjectDDParticipant>,
|
||||
HTMLPresenter: '' as Ref<Mixin<HTMLPresenter>>,
|
||||
TextPresenter: '' as Ref<Mixin<TextPresenter>>
|
||||
},
|
||||
class: {
|
||||
ViewletDescriptor: '' as Ref<Class<ViewletDescriptor>>,
|
||||
|
@ -205,7 +205,7 @@
|
||||
notification.class.Notification,
|
||||
{
|
||||
attachedTo: (getCurrentAccount() as EmployeeAccount).employee,
|
||||
status: { $in: [NotificationStatus.New, NotificationStatus.EmailSent] }
|
||||
status: NotificationStatus.New
|
||||
},
|
||||
(res) => {
|
||||
hasNotification = res.length > 0
|
||||
|
87
rush.json
87
rush.json
@ -723,7 +723,7 @@
|
||||
},
|
||||
{
|
||||
"packageName": "@anticrm/server-attachment",
|
||||
"projectFolder": "server/attachment",
|
||||
"projectFolder": "server-plugins/attachment",
|
||||
"shouldPublish": true
|
||||
},
|
||||
{
|
||||
@ -733,12 +733,12 @@
|
||||
},
|
||||
{
|
||||
"packageName": "@anticrm/server-attachment-resources",
|
||||
"projectFolder": "server/attachment-resources",
|
||||
"projectFolder": "server-plugins/attachment-resources",
|
||||
"shouldPublish": true
|
||||
},
|
||||
{
|
||||
"packageName": "@anticrm/server-contact",
|
||||
"projectFolder": "server/contact",
|
||||
"projectFolder": "server-plugins/contact",
|
||||
"shouldPublish": true
|
||||
},
|
||||
{
|
||||
@ -748,7 +748,7 @@
|
||||
},
|
||||
{
|
||||
"packageName": "@anticrm/server-contact-resources",
|
||||
"projectFolder": "server/contact-resources",
|
||||
"projectFolder": "server-plugins/contact-resources",
|
||||
"shouldPublish": true
|
||||
},
|
||||
{
|
||||
@ -1008,7 +1008,7 @@
|
||||
},
|
||||
{
|
||||
"packageName": "@anticrm/server-notification",
|
||||
"projectFolder": "server/notification",
|
||||
"projectFolder": "server-plugins/notification",
|
||||
"shouldPublish": true
|
||||
},
|
||||
{
|
||||
@ -1018,7 +1018,7 @@
|
||||
},
|
||||
{
|
||||
"packageName": "@anticrm/server-notification-resources",
|
||||
"projectFolder": "server/notification-resources",
|
||||
"projectFolder": "server-plugins/notification-resources",
|
||||
"shouldPublish": true
|
||||
},
|
||||
{
|
||||
@ -1041,5 +1041,80 @@
|
||||
"projectFolder": "models/tags",
|
||||
"shouldPublish": true
|
||||
},
|
||||
{
|
||||
"packageName": "@anticrm/server-chunter",
|
||||
"projectFolder": "server-plugins/chunter",
|
||||
"shouldPublish": true
|
||||
},
|
||||
{
|
||||
"packageName": "@anticrm/model-server-chunter",
|
||||
"projectFolder": "models/server-chunter",
|
||||
"shouldPublish": true
|
||||
},
|
||||
{
|
||||
"packageName": "@anticrm/server-chunter-resources",
|
||||
"projectFolder": "server-plugins/chunter-resources",
|
||||
"shouldPublish": true
|
||||
},
|
||||
{
|
||||
"packageName": "@anticrm/server-inventory",
|
||||
"projectFolder": "server-plugins/inventory",
|
||||
"shouldPublish": true
|
||||
},
|
||||
{
|
||||
"packageName": "@anticrm/model-server-inventory",
|
||||
"projectFolder": "models/server-inventory",
|
||||
"shouldPublish": true
|
||||
},
|
||||
{
|
||||
"packageName": "@anticrm/server-inventory-resources",
|
||||
"projectFolder": "server-plugins/inventory-resources",
|
||||
"shouldPublish": true
|
||||
},
|
||||
{
|
||||
"packageName": "@anticrm/server-lead",
|
||||
"projectFolder": "server-plugins/lead",
|
||||
"shouldPublish": true
|
||||
},
|
||||
{
|
||||
"packageName": "@anticrm/model-server-lead",
|
||||
"projectFolder": "models/server-lead",
|
||||
"shouldPublish": true
|
||||
},
|
||||
{
|
||||
"packageName": "@anticrm/server-lead-resources",
|
||||
"projectFolder": "server-plugins/lead-resources",
|
||||
"shouldPublish": true
|
||||
},
|
||||
{
|
||||
"packageName": "@anticrm/server-recruit",
|
||||
"projectFolder": "server-plugins/recruit",
|
||||
"shouldPublish": true
|
||||
},
|
||||
{
|
||||
"packageName": "@anticrm/model-server-recruit",
|
||||
"projectFolder": "models/server-recruit",
|
||||
"shouldPublish": true
|
||||
},
|
||||
{
|
||||
"packageName": "@anticrm/server-recruit-resources",
|
||||
"projectFolder": "server-plugins/recruit-resources",
|
||||
"shouldPublish": true
|
||||
},
|
||||
{
|
||||
"packageName": "@anticrm/server-task",
|
||||
"projectFolder": "server-plugins/task",
|
||||
"shouldPublish": true
|
||||
},
|
||||
{
|
||||
"packageName": "@anticrm/model-server-task",
|
||||
"projectFolder": "models/server-task",
|
||||
"shouldPublish": true
|
||||
},
|
||||
{
|
||||
"packageName": "@anticrm/server-task-resources",
|
||||
"projectFolder": "server-plugins/task-resources",
|
||||
"shouldPublish": true
|
||||
},
|
||||
]
|
||||
}
|
||||
|
4
server-plugins/attachment/.npmignore
Normal file
4
server-plugins/attachment/.npmignore
Normal file
@ -0,0 +1,4 @@
|
||||
*
|
||||
!/lib/**
|
||||
!CHANGELOG.md
|
||||
/lib/**/__tests__/
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user