mirror of
https://github.com/hcengineering/platform.git
synced 2025-04-16 05:13:06 +00:00
TSK-342: add resume issue function (#2332)
Signed-off-by: Kristina Fefelova <kristin.fefelova@gmail.com>
This commit is contained in:
parent
15c2aa802b
commit
6ff12b512f
@ -505,7 +505,6 @@ dependencies:
|
|||||||
'@rushstack/heft': 0.47.9
|
'@rushstack/heft': 0.47.9
|
||||||
'@rushstack/heft-jest-plugin': 0.3.16_e810491d602256cb9138da3f42d797a2
|
'@rushstack/heft-jest-plugin': 0.3.16_e810491d602256cb9138da3f42d797a2
|
||||||
'@tiptap/core': 2.0.0-beta.199
|
'@tiptap/core': 2.0.0-beta.199
|
||||||
'@tiptap/extension-collaboration': 2.0.0-beta.199_@tiptap+core@2.0.0-beta.199
|
|
||||||
'@tiptap/extension-highlight': 2.0.0-beta.199_@tiptap+core@2.0.0-beta.199
|
'@tiptap/extension-highlight': 2.0.0-beta.199_@tiptap+core@2.0.0-beta.199
|
||||||
'@tiptap/extension-link': 2.0.0-beta.199_@tiptap+core@2.0.0-beta.199
|
'@tiptap/extension-link': 2.0.0-beta.199_@tiptap+core@2.0.0-beta.199
|
||||||
'@tiptap/extension-mention': 2.0.0-beta.199_c8f353cb3abc70247a8f6c56ebb87d62
|
'@tiptap/extension-mention': 2.0.0-beta.199_c8f353cb3abc70247a8f6c56ebb87d62
|
||||||
@ -10421,7 +10420,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
file:projects/document-assets.tgz_typescript@4.7.4:
|
file:projects/document-assets.tgz_typescript@4.7.4:
|
||||||
resolution: {integrity: sha512-DSCCmp2suHeZbLomhRH+oXwLQXam3K+orclEQE2M/CfdH3TmbvYM7pASvJYv32JizZga6wGKZBIIfRcHrLqg3A==, tarball: file:projects/document-assets.tgz}
|
resolution: {integrity: sha512-/+ssgzhbPCYlH2DobfN1hcA4T9VnzNxE3XwYUjkZ0GqVWiatBIeL1BKbS49J5RVC92Xk/5v3UVH19vTRbe9pnw==, tarball: file:projects/document-assets.tgz}
|
||||||
id: file:projects/document-assets.tgz
|
id: file:projects/document-assets.tgz
|
||||||
name: '@rush-temp/document-assets'
|
name: '@rush-temp/document-assets'
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
@ -10443,7 +10442,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
file:projects/document-resources.tgz_1e3963ebf0ceeb25b2fa6a1cc87e253c:
|
file:projects/document-resources.tgz_1e3963ebf0ceeb25b2fa6a1cc87e253c:
|
||||||
resolution: {integrity: sha512-5fH7z8TCp8fg05YGOEdt38c/ci9TL+KxqUzFuCTR/o3ceT/6qp47VeQs377fDG3EFRE7tNSmddwuulZesv3KUQ==, tarball: file:projects/document-resources.tgz}
|
resolution: {integrity: sha512-yaUH4bE6hVbA/9j1P3MMatssBuPFPwLc77vu3si3cEpH/kbYAhaMIOSIY/HmQaCmz4Ra/g0bmTZc46rAFd2Ucg==, tarball: file:projects/document-resources.tgz}
|
||||||
id: file:projects/document-resources.tgz
|
id: file:projects/document-resources.tgz
|
||||||
name: '@rush-temp/document-resources'
|
name: '@rush-temp/document-resources'
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
@ -10487,17 +10486,14 @@ packages:
|
|||||||
- postcss
|
- postcss
|
||||||
- postcss-load-config
|
- postcss-load-config
|
||||||
- prosemirror-model
|
- prosemirror-model
|
||||||
- prosemirror-view
|
|
||||||
- pug
|
- pug
|
||||||
- stylus
|
- stylus
|
||||||
- sugarss
|
- sugarss
|
||||||
- supports-color
|
- supports-color
|
||||||
- y-protocols
|
|
||||||
- yjs
|
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
file:projects/document.tgz:
|
file:projects/document.tgz:
|
||||||
resolution: {integrity: sha512-nUd5p00qfAysV9wwQI2d/jk/7jdIn3BJAFSKIUGtVGOqfLEskemEslAWJFj4D6ybDgEX4PHtien5mIJhniNXrA==, tarball: file:projects/document.tgz}
|
resolution: {integrity: sha512-dSonnzPXeRFBw3syhUZ1vww+kTji5JbSAfOMAQPc9boQ0kFLqBkI10urMYZuKMB56yBQv7LVgrEPvTv3PlJbRQ==, tarball: file:projects/document.tgz}
|
||||||
name: '@rush-temp/document'
|
name: '@rush-temp/document'
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -11338,7 +11334,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
file:projects/model-document.tgz_typescript@4.7.4:
|
file:projects/model-document.tgz_typescript@4.7.4:
|
||||||
resolution: {integrity: sha512-XE1hw6ASQ+GFmPJHVuDVR9bsU40cop33YwlTn7Hbr2gNk3egb08MK9+/peV8WIu73cgBwCBCyBGnVWffYpCMww==, tarball: file:projects/model-document.tgz}
|
resolution: {integrity: sha512-y0mamO7eJht2vz3iQKQVPb2Pki4DlfN+5G3yDfsR/Gr2VOrsXb9pMqTOsqX6fYzwOs+mbfuGYpC5tbYUkRDGBg==, tarball: file:projects/model-document.tgz}
|
||||||
id: file:projects/model-document.tgz
|
id: file:projects/model-document.tgz
|
||||||
name: '@rush-temp/model-document'
|
name: '@rush-temp/model-document'
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
@ -11589,7 +11585,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
file:projects/model-server-chunter.tgz_typescript@4.7.4:
|
file:projects/model-server-chunter.tgz_typescript@4.7.4:
|
||||||
resolution: {integrity: sha512-6oc9uJ6KfSuQEk1Bj9Gfa0PBjEPPMBPf3sc4nMCS4Fm3zGhFUSlIMEPNqMfrSwyhKRJUbDR7rK/grys+zAUlNg==, tarball: file:projects/model-server-chunter.tgz}
|
resolution: {integrity: sha512-kL6zzJhagTNhJvpA5GlnV6tyvVMCkJd2mtLdEUBRcGLZYhT/1KXj0i1aUKqE528mzQyf3G6zl07TgI3Kk5sbJw==, tarball: file:projects/model-server-chunter.tgz}
|
||||||
id: file:projects/model-server-chunter.tgz
|
id: file:projects/model-server-chunter.tgz
|
||||||
name: '@rush-temp/model-server-chunter'
|
name: '@rush-temp/model-server-chunter'
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
@ -11610,7 +11606,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
file:projects/model-server-contact.tgz_typescript@4.7.4:
|
file:projects/model-server-contact.tgz_typescript@4.7.4:
|
||||||
resolution: {integrity: sha512-xEcfGc4nib2CGmlbIdWvoEDgau/HjCoztlaKpuzJceKxNeq80gZDZrIRSN120+CF3PSGEDnjEMILrfFgEBXRrQ==, tarball: file:projects/model-server-contact.tgz}
|
resolution: {integrity: sha512-6QNDTBWECy4mOEZ9bTvu2q1BOo4v2grAQsJ5bMUFLbagTc6AtPd7YBhHwsgHWyAj+16wlWD3VEWtKa1jJq2rTA==, tarball: file:projects/model-server-contact.tgz}
|
||||||
id: file:projects/model-server-contact.tgz
|
id: file:projects/model-server-contact.tgz
|
||||||
name: '@rush-temp/model-server-contact'
|
name: '@rush-temp/model-server-contact'
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
@ -11694,7 +11690,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
file:projects/model-server-inventory.tgz_typescript@4.7.4:
|
file:projects/model-server-inventory.tgz_typescript@4.7.4:
|
||||||
resolution: {integrity: sha512-XtV5UtbkXWhD5Gx2rTjDbV/w90TrsBhlXgP595CA6chzOlfGZFV1Rc4/kvTGZE+QEn4qQ4TogHghHEYqXrfA3Q==, tarball: file:projects/model-server-inventory.tgz}
|
resolution: {integrity: sha512-QlyDUsjEnXbkvG09wXn1kOwedeNC7MguZPF1oDNwkWgOr4s28pJhZvSROLMKBQdlcz9Acom12DsCJB7Idg/Rnw==, tarball: file:projects/model-server-inventory.tgz}
|
||||||
id: file:projects/model-server-inventory.tgz
|
id: file:projects/model-server-inventory.tgz
|
||||||
name: '@rush-temp/model-server-inventory'
|
name: '@rush-temp/model-server-inventory'
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
@ -11715,7 +11711,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
file:projects/model-server-lead.tgz_typescript@4.7.4:
|
file:projects/model-server-lead.tgz_typescript@4.7.4:
|
||||||
resolution: {integrity: sha512-UdM8JzT/+am/SUlYKXFGViYmY0jA0LWOhez6R3cAR6QGaMktHkV9UEWWX+8E5YF3OsC3h/5CK14tKY3x2I9tPA==, tarball: file:projects/model-server-lead.tgz}
|
resolution: {integrity: sha512-8vNWx9Q/DuspMV7vKsoaRTrGttExV5TOtxPjWNd5inuZnZ5X+WkNohYoqm6vDxVmd1JwopEyYnsp/XKycsFdJQ==, tarball: file:projects/model-server-lead.tgz}
|
||||||
id: file:projects/model-server-lead.tgz
|
id: file:projects/model-server-lead.tgz
|
||||||
name: '@rush-temp/model-server-lead'
|
name: '@rush-temp/model-server-lead'
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
@ -11736,7 +11732,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
file:projects/model-server-notification.tgz_typescript@4.7.4:
|
file:projects/model-server-notification.tgz_typescript@4.7.4:
|
||||||
resolution: {integrity: sha512-RIE42SBMJl06PEACp9yheoQjYXnXXf/GROVT3kptNZ19VtZDNUor4YHx23IEZnbpfYZpek+UXLxb4XojHig7Yg==, tarball: file:projects/model-server-notification.tgz}
|
resolution: {integrity: sha512-v3GKCPbzOZyX1YYSkwfu6GwpgstM+ICqCdoerVotJWlGzds2pJE/rLUzvGNpBV8u5Zp4bIfBeinK4aie9M9ZdQ==, tarball: file:projects/model-server-notification.tgz}
|
||||||
id: file:projects/model-server-notification.tgz
|
id: file:projects/model-server-notification.tgz
|
||||||
name: '@rush-temp/model-server-notification'
|
name: '@rush-temp/model-server-notification'
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
@ -11757,7 +11753,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
file:projects/model-server-recruit.tgz_typescript@4.7.4:
|
file:projects/model-server-recruit.tgz_typescript@4.7.4:
|
||||||
resolution: {integrity: sha512-brN4kuVUUnv0xW/2hEGTsNI0XDxBOrhvj75wSEZNWXaya3HRfhyvCN8tvhEJdksjGQirYL9lgQB9J75u1xQOCA==, tarball: file:projects/model-server-recruit.tgz}
|
resolution: {integrity: sha512-3zrt5dEUEipEeEOwd4K9OG+lm5yQCz+11p+tJYZgMvyLVUD7qBzgmpdPpicNtUlEL6D76qfIrCRzOWkYMXBZ0w==, tarball: file:projects/model-server-recruit.tgz}
|
||||||
id: file:projects/model-server-recruit.tgz
|
id: file:projects/model-server-recruit.tgz
|
||||||
name: '@rush-temp/model-server-recruit'
|
name: '@rush-temp/model-server-recruit'
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
@ -11820,7 +11816,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
file:projects/model-server-task.tgz_typescript@4.7.4:
|
file:projects/model-server-task.tgz_typescript@4.7.4:
|
||||||
resolution: {integrity: sha512-WGD5QtT51wfsSaYJw7wOBnTBHkhrTRaG3luiQq5ohHJY3m4fRn019GahT9KrMVQccBfiELWarr3AxbhDNdwRqQ==, tarball: file:projects/model-server-task.tgz}
|
resolution: {integrity: sha512-r/y0pdlMMgo997p+gyuaFCosCpR6lKfcGSZdDmgXzB7bsZDdiLqIqee1RV5ImH3lHr0s0uLy/7OgT0NP9eAgMg==, tarball: file:projects/model-server-task.tgz}
|
||||||
id: file:projects/model-server-task.tgz
|
id: file:projects/model-server-task.tgz
|
||||||
name: '@rush-temp/model-server-task'
|
name: '@rush-temp/model-server-task'
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
@ -11862,7 +11858,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
file:projects/model-server-tracker.tgz_typescript@4.7.4:
|
file:projects/model-server-tracker.tgz_typescript@4.7.4:
|
||||||
resolution: {integrity: sha512-5VGeNRdOM83eHjbSxrwO+bo/PH/nmYbQf1l8naYXj3o8vGHd4s3SqbrhaINlojue9XbQxPz2NuEWxEQMLtPXww==, tarball: file:projects/model-server-tracker.tgz}
|
resolution: {integrity: sha512-Vi0WE+9FXgr7OLaq2ejSLg31/XfNFTZJCagOgxzdAtVgOq50YYgBaGMo2g35FyCM3zYwRUEFMb4HJbzSw4F4zQ==, tarball: file:projects/model-server-tracker.tgz}
|
||||||
id: file:projects/model-server-tracker.tgz
|
id: file:projects/model-server-tracker.tgz
|
||||||
name: '@rush-temp/model-server-tracker'
|
name: '@rush-temp/model-server-tracker'
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
@ -12173,7 +12169,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
file:projects/notification.tgz_c2126e1e62b304aa06c549d8c36fb75a:
|
file:projects/notification.tgz_c2126e1e62b304aa06c549d8c36fb75a:
|
||||||
resolution: {integrity: sha512-4OWmWS16hdbQk6FzTPVFOe2FRCx4kD/qjFaV/K1wdPHfvdNNu9JxKMoWFYfzEl4XHqLMzWjG4pPdNpCGnPt9nA==, tarball: file:projects/notification.tgz}
|
resolution: {integrity: sha512-6D/e5O+ZJX/KMpWXq25JGY+YV4uDnqgBuqbyt40e5SacOT8mLTKuAVgnXdxaE4s616XJybeC61bV9Ju9RO2rHg==, tarball: file:projects/notification.tgz}
|
||||||
id: file:projects/notification.tgz
|
id: file:projects/notification.tgz
|
||||||
name: '@rush-temp/notification'
|
name: '@rush-temp/notification'
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
@ -12440,7 +12436,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
file:projects/prod.tgz_8b34f51e833a67e51e5bff1df3e73cc8:
|
file:projects/prod.tgz_8b34f51e833a67e51e5bff1df3e73cc8:
|
||||||
resolution: {integrity: sha512-etRwbwi4cuI47S5WX6zDIO5+uI1O1le5xM/RwNXkXUPkH1eHgkw+bq5aYoJIieSdcO2BBQLMCRJFIyUHRXYanA==, tarball: file:projects/prod.tgz}
|
resolution: {integrity: sha512-cdk+S+EwhXHF5UCIzS9UfPc5qUGXg3qsbQNCFvX0SK5BeNFO1oSRARIZS+Gewo0dCUdZA5SM9HGRYZGoYou2Gg==, tarball: file:projects/prod.tgz}
|
||||||
id: file:projects/prod.tgz
|
id: file:projects/prod.tgz
|
||||||
name: '@rush-temp/prod'
|
name: '@rush-temp/prod'
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
@ -12737,7 +12733,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
file:projects/server-chunter.tgz:
|
file:projects/server-chunter.tgz:
|
||||||
resolution: {integrity: sha512-qDmZJ+4TtdP+OwmR1QDTpfoj4IdNWacuIW1fiaSThVC6w91PXY9tov2nM+ionIMvZfX+YngIc29okIHX+tH0ig==, tarball: file:projects/server-chunter.tgz}
|
resolution: {integrity: sha512-ioG+h/i98StD0EDKp1g5INCsL9JzXlj9KjGjz0JWst9xKUTJCckH0tISmFC+sjBc9yjlFK6a8ZvpMxGPiQigQA==, tarball: file:projects/server-chunter.tgz}
|
||||||
name: '@rush-temp/server-chunter'
|
name: '@rush-temp/server-chunter'
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -12778,7 +12774,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
file:projects/server-contact.tgz:
|
file:projects/server-contact.tgz:
|
||||||
resolution: {integrity: sha512-xp0SKLGegKEvtdMYa+YLNiCfjPOzzgnK8hIoNCnWsRUN6ZQZwKnYRXknLWrut6Rp9oH8ERMaz8tCh5ucrAeVNw==, tarball: file:projects/server-contact.tgz}
|
resolution: {integrity: sha512-0KmQPwTH+9wpRvPSK2DSkE/CL+7fp+AAeyuM8YtZ4odO0OvQuY9enHw27LulR1hnZ+5DtnVZMFAnSu16EGudNw==, tarball: file:projects/server-contact.tgz}
|
||||||
name: '@rush-temp/server-contact'
|
name: '@rush-temp/server-contact'
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -12904,7 +12900,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
file:projects/server-inventory-resources.tgz:
|
file:projects/server-inventory-resources.tgz:
|
||||||
resolution: {integrity: sha512-iPRmwbX5owntmO8SEn/bm6flMloPtJjV2eNBo/LbOCdruwxrfJF7f8sgdWrnw7XS1wmYBaeoEDZ0+/iBeaQYgQ==, tarball: file:projects/server-inventory-resources.tgz}
|
resolution: {integrity: sha512-RkxqtFVGpGwKleluThIiRmabmMHGzvp4GAGK1zp0snGMSQZpdaLgKz3p8ahWMRPrRsh6cmx8WSPH3GTcm1YfhQ==, tarball: file:projects/server-inventory-resources.tgz}
|
||||||
name: '@rush-temp/server-inventory-resources'
|
name: '@rush-temp/server-inventory-resources'
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -12924,7 +12920,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
file:projects/server-inventory.tgz:
|
file:projects/server-inventory.tgz:
|
||||||
resolution: {integrity: sha512-P402gyczrLwr9YRFE0j6uDM2c/Bsb2yW5+HH93M2WFnepVtcrsvaH0Ztu1eYjU/Twq9TH0aUvNElz3wuBT7SGw==, tarball: file:projects/server-inventory.tgz}
|
resolution: {integrity: sha512-vOG5EgBVkjxhSGZfK0WDDiXLsZI53aEvk84qqntGW0khlAaYbWwowPqFlEJGECpVYkc8PeAfWnPWJuePNiqPEg==, tarball: file:projects/server-inventory.tgz}
|
||||||
name: '@rush-temp/server-inventory'
|
name: '@rush-temp/server-inventory'
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -12965,7 +12961,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
file:projects/server-lead.tgz:
|
file:projects/server-lead.tgz:
|
||||||
resolution: {integrity: sha512-lZbhJ31ECiVM2bIAFgPQe9OoBQMaJZmd8gVeImD3tWDCWF3G1Bh/YFJtUma5UyDa+M4FckRC9jU5oQmy8BCepg==, tarball: file:projects/server-lead.tgz}
|
resolution: {integrity: sha512-J42yOMj+npooOrkTbkvih1U/15BWf2qKyRsozXTLlnGDImMZfopj51zzj5305RF+t5H+iHj9u8a1BUpW0qbE7Q==, tarball: file:projects/server-lead.tgz}
|
||||||
name: '@rush-temp/server-lead'
|
name: '@rush-temp/server-lead'
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -12986,7 +12982,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
file:projects/server-notification-resources.tgz:
|
file:projects/server-notification-resources.tgz:
|
||||||
resolution: {integrity: sha512-GixVocFb5NUM3gEVz5P8d4aRdAsz6fVe1/TOllBXXkKmKqUAKvu0C0Imo9pPbKbfPApU6qy7XdYra2S31wTfkw==, tarball: file:projects/server-notification-resources.tgz}
|
resolution: {integrity: sha512-4dXvWVK9GBGugtECHffRw2mVqpKZKqW994Hk2W3z5nz+hHNaGuf+sXUsM3gcNw18K62LknEVlcRHxArVzlKs0w==, tarball: file:projects/server-notification-resources.tgz}
|
||||||
name: '@rush-temp/server-notification-resources'
|
name: '@rush-temp/server-notification-resources'
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -13006,7 +13002,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
file:projects/server-notification.tgz:
|
file:projects/server-notification.tgz:
|
||||||
resolution: {integrity: sha512-3/2lHcxQDVDN/LIZMIVnmYUf3wUR8qIgGeWBVtCMD4pxNfoynZkeLKn17TYh7VaYcBNyMpxv1Rbd47gIDzcaow==, tarball: file:projects/server-notification.tgz}
|
resolution: {integrity: sha512-pOt8+HaCCCHUrU7bxPXv/5zqw/DOigcnhzMoif6T9tXu41ZGuLmQhGbgFjr/frybEPVyB3Dggm4XpOWbo1GlHw==, tarball: file:projects/server-notification.tgz}
|
||||||
name: '@rush-temp/server-notification'
|
name: '@rush-temp/server-notification'
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -13068,7 +13064,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
file:projects/server-recruit.tgz:
|
file:projects/server-recruit.tgz:
|
||||||
resolution: {integrity: sha512-YCDGAzvWIILM7qBzjVDH8bPHiP7JcCLUaTfjO9qgq16MEbJZ7zMNzkDXSP/6ogWiZ7HuoPQR0bhEl4PhY1+UVw==, tarball: file:projects/server-recruit.tgz}
|
resolution: {integrity: sha512-GFln23Q73rPv5D0vtj0MtjxRZeGTTO2TRA9mt+GDf7eeiLt9eJL/nr+NwB+vANX4eYd9MN5G7FRkIofDGR/ERQ==, tarball: file:projects/server-recruit.tgz}
|
||||||
name: '@rush-temp/server-recruit'
|
name: '@rush-temp/server-recruit'
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -13171,7 +13167,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
file:projects/server-task-resources.tgz:
|
file:projects/server-task-resources.tgz:
|
||||||
resolution: {integrity: sha512-s7FZ5LANSWtBl3G//pGpWPCl3nqA7A2ms8URXDSZv+Ah6Ah+1Tvz5/dPwxUWUxVDax0lJOteKmlUW7L38PKImQ==, tarball: file:projects/server-task-resources.tgz}
|
resolution: {integrity: sha512-PwTmdU/sE/90LZRfscbt9e/09I7BHJuL9lhccwvM8COQ6Lsia0bEfDMfz3vpr9CAQ1nkYUapQ22ILXvIHxepMw==, tarball: file:projects/server-task-resources.tgz}
|
||||||
name: '@rush-temp/server-task-resources'
|
name: '@rush-temp/server-task-resources'
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -13191,7 +13187,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
file:projects/server-task.tgz:
|
file:projects/server-task.tgz:
|
||||||
resolution: {integrity: sha512-W3EOD5EoQguAoK/X7TWD7ng/HlKhNh22MxHjZvBqb7lALtihmLdOKNebJx+f7T6XiwcpDxYHE+89Ls+lMhI5tg==, tarball: file:projects/server-task.tgz}
|
resolution: {integrity: sha512-waoG13xX+XG71YtJl96nnIEIq9kQuZ1i6PEWanQvKWgpKq/mStqDOdh7DuQWtVoe4ynzdnYj3N0v9K6cBrXmrw==, tarball: file:projects/server-task.tgz}
|
||||||
name: '@rush-temp/server-task'
|
name: '@rush-temp/server-task'
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -13304,7 +13300,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
file:projects/server-tracker-resources.tgz:
|
file:projects/server-tracker-resources.tgz:
|
||||||
resolution: {integrity: sha512-IWaRrwr4A1jPb0SytsR2vU5bxRl4DfmXstRe9ar2DQoJfuwW6TgjFqyN6FaRhYJHU1GKV7pAZ21hl2S6yrErSA==, tarball: file:projects/server-tracker-resources.tgz}
|
resolution: {integrity: sha512-8FIUHIHFrouIhqI/swi/cm/pDztRh2o/d1An7n+LRDLXTIdO14mBdYDjbROxcFKOdvm7uArzgrmmnBG2QSXxeA==, tarball: file:projects/server-tracker-resources.tgz}
|
||||||
name: '@rush-temp/server-tracker-resources'
|
name: '@rush-temp/server-tracker-resources'
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -13324,7 +13320,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
file:projects/server-tracker.tgz:
|
file:projects/server-tracker.tgz:
|
||||||
resolution: {integrity: sha512-Ro1hdAHcGfbgAhuZk2O0cwgeOSd4Pybi4NAfL8DCbdLIfY7t9rostPCvuQTGKideevnhIwPTiUboFjFzLlJEtg==, tarball: file:projects/server-tracker.tgz}
|
resolution: {integrity: sha512-idWxpdapPYQlwzzdPRO0pk9nL13AGV/thu9+dhxpfh+PBfK+rhiqA2VS0Rcw9N8qrB/uXDV3fY9YlezmuHhvYw==, tarball: file:projects/server-tracker.tgz}
|
||||||
name: '@rush-temp/server-tracker'
|
name: '@rush-temp/server-tracker'
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -13370,7 +13366,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
file:projects/server.tgz:
|
file:projects/server.tgz:
|
||||||
resolution: {integrity: sha512-9+VmSjM3Vz/zPtyifD3Q6sQ7s6epmj3dKeZYC2A0yxqsMijWcfGPEjQ/TFtlmojuEAat3wedTxq6thLadJUipQ==, tarball: file:projects/server.tgz}
|
resolution: {integrity: sha512-ajCNjYZxCUy6St/XT0wLzxQz+zhufwhoMmuxxLL1if0P/SFgSoq03UlaVPHmT9wIhqL0zqdBZNZkTFV308psyw==, tarball: file:projects/server.tgz}
|
||||||
name: '@rush-temp/server'
|
name: '@rush-temp/server'
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -13891,7 +13887,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
file:projects/tool.tgz:
|
file:projects/tool.tgz:
|
||||||
resolution: {integrity: sha512-gKJGrHLL9EM6d3nB7LE7+gTT923r+H+M3cfQ0I/My+oiyGdlUwRJ0AdJ7wx1wSVSWj3CBJwJHMtGtHWiznVGTQ==, tarball: file:projects/tool.tgz}
|
resolution: {integrity: sha512-lIhO/G6dieGJ431ay4TIf6EWT+cQnaVHG0xfBhf8mA1ogwQjFbkFVAO3Pe5dZHZTidyLMG0hde/KltWdCVBAow==, tarball: file:projects/tool.tgz}
|
||||||
name: '@rush-temp/tool'
|
name: '@rush-temp/tool'
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -13960,7 +13956,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
file:projects/tracker-resources.tgz_1e3963ebf0ceeb25b2fa6a1cc87e253c:
|
file:projects/tracker-resources.tgz_1e3963ebf0ceeb25b2fa6a1cc87e253c:
|
||||||
resolution: {integrity: sha512-hXCPQ9gyeYv9Acc51D0DYPbdIpo5t84OSNP0k+c4WysIZ5nEUGIaIQ/QfZPAcY9TbVTypdkIHoqpEkyn/LdtSA==, tarball: file:projects/tracker-resources.tgz}
|
resolution: {integrity: sha512-wEQUsRsgW+6I1g3zrI7aZbQ0LAZ6Dhi+mjggtVLvwjjG9eydCgdYwGeBYuuxE5gDVt0+MrnIJ67IiN2cAjPFLw==, tarball: file:projects/tracker-resources.tgz}
|
||||||
id: file:projects/tracker-resources.tgz
|
id: file:projects/tracker-resources.tgz
|
||||||
name: '@rush-temp/tracker-resources'
|
name: '@rush-temp/tracker-resources'
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
@ -13973,6 +13969,7 @@ packages:
|
|||||||
eslint-plugin-node: 11.1.0_eslint@8.19.0
|
eslint-plugin-node: 11.1.0_eslint@8.19.0
|
||||||
eslint-plugin-promise: 6.0.0_eslint@8.19.0
|
eslint-plugin-promise: 6.0.0_eslint@8.19.0
|
||||||
eslint-plugin-svelte3: 4.0.0_eslint@8.19.0+svelte@3.48.0
|
eslint-plugin-svelte3: 4.0.0_eslint@8.19.0+svelte@3.48.0
|
||||||
|
fast-equals: 2.0.4
|
||||||
prettier: 2.7.1
|
prettier: 2.7.1
|
||||||
prettier-plugin-svelte: 2.7.0_prettier@2.7.1+svelte@3.48.0
|
prettier-plugin-svelte: 2.7.0_prettier@2.7.1+svelte@3.48.0
|
||||||
sass: 1.53.0
|
sass: 1.53.0
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
<!--
|
<!--
|
||||||
// Copyright © 2020 Anticrm Platform Contributors.
|
// Copyright © 2020 Anticrm Platform Contributors.
|
||||||
//
|
//
|
||||||
// Licensed under the Eclipse Public License, Version 2.0 (the "License");
|
// 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
|
// 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
|
// 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
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
//
|
//
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
-->
|
-->
|
||||||
@ -113,7 +113,8 @@
|
|||||||
<span class="overflow-label disabled pointer-events-none" class:ml-2={loading}>
|
<span class="overflow-label disabled pointer-events-none" class:ml-2={loading}>
|
||||||
<Label {label} params={labelParams} />
|
<Label {label} params={labelParams} />
|
||||||
</span>
|
</span>
|
||||||
{:else if $$slots.content}
|
{/if}
|
||||||
|
{#if $$slots.content}
|
||||||
<slot name="content" />
|
<slot name="content" />
|
||||||
{/if}
|
{/if}
|
||||||
</button>
|
</button>
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
<!--
|
<!--
|
||||||
// Copyright © 2020, 2021 Anticrm Platform Contributors.
|
// Copyright © 2020, 2021 Anticrm Platform Contributors.
|
||||||
// Copyright © 2021 Hardcore Engineering Inc.
|
// Copyright © 2021 Hardcore Engineering Inc.
|
||||||
//
|
//
|
||||||
// Licensed under the Eclipse Public License, Version 2.0 (the "License");
|
// 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
|
// 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
|
// 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
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
//
|
//
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
-->
|
-->
|
||||||
@ -87,6 +87,17 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const handleOutsideClick = (): void => {
|
||||||
|
if (componentInstance && componentInstance.onOutsideClick) {
|
||||||
|
componentInstance.onOutsideClick()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleOverlayClick = (): void => {
|
||||||
|
handleOutsideClick()
|
||||||
|
escapeClose()
|
||||||
|
}
|
||||||
|
|
||||||
onMount(() => fitPopup())
|
onMount(() => fitPopup())
|
||||||
$: if ($deviceInfo.docWidth <= 900 && !docSize) docSize = true
|
$: if ($deviceInfo.docWidth <= 900 && !docSize) docSize = true
|
||||||
$: if ($deviceInfo.docWidth > 900 && docSize) docSize = false
|
$: if ($deviceInfo.docWidth > 900 && docSize) docSize = false
|
||||||
@ -135,7 +146,7 @@
|
|||||||
class="modal-overlay"
|
class="modal-overlay"
|
||||||
class:antiOverlay={options.showOverlay}
|
class:antiOverlay={options.showOverlay}
|
||||||
style={`z-index: ${zIndex};`}
|
style={`z-index: ${zIndex};`}
|
||||||
on:click={() => escapeClose()}
|
on:click={handleOverlayClick}
|
||||||
on:keydown|stopPropagation|preventDefault={() => {}}
|
on:keydown|stopPropagation|preventDefault={() => {}}
|
||||||
/>
|
/>
|
||||||
{/if}
|
{/if}
|
||||||
|
@ -42,6 +42,7 @@
|
|||||||
"CreateTeam": "Create team",
|
"CreateTeam": "Create team",
|
||||||
"AddIssue": "Add Issue",
|
"AddIssue": "Add Issue",
|
||||||
"NewIssue": "New issue",
|
"NewIssue": "New issue",
|
||||||
|
"ResumeDraft": "Resume draft",
|
||||||
"SaveIssue": "Save issue",
|
"SaveIssue": "Save issue",
|
||||||
"SetPriority": "Set priority\u2026",
|
"SetPriority": "Set priority\u2026",
|
||||||
"SetStatus": "Set status\u2026",
|
"SetStatus": "Set status\u2026",
|
||||||
|
@ -42,6 +42,7 @@
|
|||||||
"CreateTeam": "Создать команду",
|
"CreateTeam": "Создать команду",
|
||||||
"AddIssue": "Добавить задачу",
|
"AddIssue": "Добавить задачу",
|
||||||
"NewIssue": "Новая задача",
|
"NewIssue": "Новая задача",
|
||||||
|
"ResumeDraft": "Восстановить черновик",
|
||||||
"SaveIssue": "Сохранить задачу",
|
"SaveIssue": "Сохранить задачу",
|
||||||
"SetPriority": "Установить приоритет\u2026",
|
"SetPriority": "Установить приоритет\u2026",
|
||||||
"SetStatus": "Установить статус\u2026",
|
"SetStatus": "Установить статус\u2026",
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"svelte": "^3.47",
|
"svelte": "^3.47",
|
||||||
|
"fast-equals": "^2.0.3",
|
||||||
"@hcengineering/platform": "^0.6.7",
|
"@hcengineering/platform": "^0.6.7",
|
||||||
"@hcengineering/core": "^0.6.17",
|
"@hcengineering/core": "^0.6.17",
|
||||||
"@hcengineering/client": "^0.6.3",
|
"@hcengineering/client": "^0.6.3",
|
||||||
|
@ -13,16 +13,27 @@
|
|||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
-->
|
-->
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
import { deepEqual } from 'fast-equals'
|
||||||
import { AttachmentStyledBox } from '@hcengineering/attachment-resources'
|
import { AttachmentStyledBox } from '@hcengineering/attachment-resources'
|
||||||
import chunter from '@hcengineering/chunter'
|
import chunter from '@hcengineering/chunter'
|
||||||
import { Employee } from '@hcengineering/contact'
|
import { Employee } from '@hcengineering/contact'
|
||||||
import core, { Account, AttachedData, Doc, generateId, Ref, SortingOrder, WithLookup } from '@hcengineering/core'
|
import core, {
|
||||||
|
Account,
|
||||||
|
AttachedData,
|
||||||
|
Data,
|
||||||
|
Doc,
|
||||||
|
generateId,
|
||||||
|
Ref,
|
||||||
|
SortingOrder,
|
||||||
|
WithLookup
|
||||||
|
} from '@hcengineering/core'
|
||||||
import { getResource, translate } from '@hcengineering/platform'
|
import { getResource, translate } from '@hcengineering/platform'
|
||||||
import { Card, createQuery, getClient, KeyedAttribute, MessageBox, SpaceSelector } from '@hcengineering/presentation'
|
import { Card, createQuery, getClient, KeyedAttribute, MessageBox, SpaceSelector } from '@hcengineering/presentation'
|
||||||
import tags, { TagElement, TagReference } from '@hcengineering/tags'
|
import tags, { TagElement, TagReference } from '@hcengineering/tags'
|
||||||
import {
|
import {
|
||||||
calcRank,
|
calcRank,
|
||||||
Issue,
|
Issue,
|
||||||
|
IssueDraft,
|
||||||
IssuePriority,
|
IssuePriority,
|
||||||
IssueStatus,
|
IssueStatus,
|
||||||
IssueTemplate,
|
IssueTemplate,
|
||||||
@ -41,6 +52,7 @@
|
|||||||
IconMoreH,
|
IconMoreH,
|
||||||
Label,
|
Label,
|
||||||
Menu,
|
Menu,
|
||||||
|
setMetadataLocalStorage,
|
||||||
showPopup,
|
showPopup,
|
||||||
Spinner,
|
Spinner,
|
||||||
NotificationPosition,
|
NotificationPosition,
|
||||||
@ -63,6 +75,7 @@
|
|||||||
import SetParentIssueActionPopup from './SetParentIssueActionPopup.svelte'
|
import SetParentIssueActionPopup from './SetParentIssueActionPopup.svelte'
|
||||||
import SprintSelector from './sprints/SprintSelector.svelte'
|
import SprintSelector from './sprints/SprintSelector.svelte'
|
||||||
import IssueTemplateChilds from './templates/IssueTemplateChilds.svelte'
|
import IssueTemplateChilds from './templates/IssueTemplateChilds.svelte'
|
||||||
|
import attachment from '@hcengineering/attachment-resources/src/plugin'
|
||||||
import IssueNotification from './issues/IssueNotification.svelte'
|
import IssueNotification from './issues/IssueNotification.svelte'
|
||||||
|
|
||||||
export let space: Ref<Team>
|
export let space: Ref<Team>
|
||||||
@ -72,13 +85,15 @@
|
|||||||
export let project: Ref<Project> | null = $activeProject ?? null
|
export let project: Ref<Project> | null = $activeProject ?? null
|
||||||
export let sprint: Ref<Sprint> | null = $activeSprint ?? null
|
export let sprint: Ref<Sprint> | null = $activeSprint ?? null
|
||||||
export let relatedTo: Doc | undefined
|
export let relatedTo: Doc | undefined
|
||||||
|
export let shouldSaveDraft: boolean = false
|
||||||
let issueStatuses: WithLookup<IssueStatus>[] | undefined
|
export let draft: IssueDraft | null
|
||||||
export let parentIssue: Issue | undefined
|
export let parentIssue: Issue | undefined
|
||||||
export let originalIssue: Issue | undefined
|
export let originalIssue: Issue | undefined
|
||||||
let labels: TagReference[] = []
|
export let onDraftChanged: (draft: Data<IssueDraft>) => void
|
||||||
|
|
||||||
let objectId: Ref<Issue> = generateId()
|
let issueStatuses: WithLookup<IssueStatus>[] | undefined
|
||||||
|
let labels: TagReference[] = draft?.labels || []
|
||||||
|
let objectId: Ref<Issue> = draft?.issueId || generateId()
|
||||||
|
|
||||||
let object: AttachedData<Issue> = originalIssue
|
let object: AttachedData<Issue> = originalIssue
|
||||||
? {
|
? {
|
||||||
@ -107,7 +122,8 @@
|
|||||||
reportedTime: 0,
|
reportedTime: 0,
|
||||||
estimation: 0,
|
estimation: 0,
|
||||||
reports: 0,
|
reports: 0,
|
||||||
childInfo: []
|
childInfo: [],
|
||||||
|
...(draft || {})
|
||||||
}
|
}
|
||||||
|
|
||||||
function resetObject (): void {
|
function resetObject (): void {
|
||||||
@ -135,12 +151,12 @@
|
|||||||
subIssues = []
|
subIssues = []
|
||||||
}
|
}
|
||||||
|
|
||||||
let templateId: Ref<IssueTemplate> | undefined = undefined
|
let templateId: Ref<IssueTemplate> | undefined = draft?.template?.template
|
||||||
|
|
||||||
let template: IssueTemplate | undefined = undefined
|
let template: IssueTemplate | undefined = undefined
|
||||||
const templateQuery = createQuery()
|
const templateQuery = createQuery()
|
||||||
|
|
||||||
let subIssues: IssueTemplateChild[] = []
|
let subIssues: IssueTemplateChild[] = draft?.subIssues || []
|
||||||
|
|
||||||
$: if (templateId !== undefined) {
|
$: if (templateId !== undefined) {
|
||||||
templateQuery.query(tracker.class.IssueTemplate, { _id: templateId }, (res) => {
|
templateQuery.query(tracker.class.IssueTemplate, { _id: templateId }, (res) => {
|
||||||
@ -166,6 +182,7 @@
|
|||||||
color: tag.color
|
color: tag.color
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function updateObject (template: IssueTemplate): Promise<void> {
|
async function updateObject (template: IssueTemplate): Promise<void> {
|
||||||
if (object.template?.template === template._id) {
|
if (object.template?.template === template._id) {
|
||||||
return
|
return
|
||||||
@ -185,11 +202,13 @@
|
|||||||
const tagElements = await client.findAll(tags.class.TagElement, { _id: { $in: labels_ } })
|
const tagElements = await client.findAll(tags.class.TagElement, { _id: { $in: labels_ } })
|
||||||
labels = tagElements.map(tagAsRef)
|
labels = tagElements.map(tagAsRef)
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateTemplate (template?: IssueTemplate): void {
|
function updateTemplate (template?: IssueTemplate): void {
|
||||||
if (template !== undefined) {
|
if (template !== undefined) {
|
||||||
updateObject(template)
|
updateObject(template)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$: updateTemplate(template)
|
$: updateTemplate(template)
|
||||||
|
|
||||||
const dispatch = createEventDispatcher()
|
const dispatch = createEventDispatcher()
|
||||||
@ -203,8 +222,8 @@
|
|||||||
attr: client.getHierarchy().getAttribute(tracker.class.Issue, 'labels')
|
attr: client.getHierarchy().getAttribute(tracker.class.Issue, 'labels')
|
||||||
}
|
}
|
||||||
|
|
||||||
$: _space = space
|
$: _space = draft?.team || space
|
||||||
$: !originalIssue && updateIssueStatusId(_space, status)
|
$: !originalIssue && !draft && updateIssueStatusId(_space, status)
|
||||||
$: canSave = getTitle(object.title ?? '').length > 0
|
$: canSave = getTitle(object.title ?? '').length > 0
|
||||||
|
|
||||||
$: statusesQuery.query(
|
$: statusesQuery.query(
|
||||||
@ -235,7 +254,17 @@
|
|||||||
labels = await client.findAll(tags.class.TagReference, { attachedTo: _id })
|
labels = await client.findAll(tags.class.TagReference, { attachedTo: _id })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function setPropsFromDraft () {
|
||||||
|
if (!draft?.parentIssue) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
parentIssue = await client.findOne(tracker.class.Issue, { _id: draft.parentIssue })
|
||||||
|
}
|
||||||
|
|
||||||
$: originalIssue && setPropsFromOriginalIssue()
|
$: originalIssue && setPropsFromOriginalIssue()
|
||||||
|
$: draft && setPropsFromDraft()
|
||||||
|
|
||||||
async function updateIssueStatusId (teamId: Ref<Team>, issueStatusId?: Ref<IssueStatus>) {
|
async function updateIssueStatusId (teamId: Ref<Team>, issueStatusId?: Ref<IssueStatus>) {
|
||||||
if (issueStatusId !== undefined) {
|
if (issueStatusId !== undefined) {
|
||||||
@ -258,8 +287,84 @@
|
|||||||
return value.trim()
|
return value.trim()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function isDraftEmpty (draft: Data<IssueDraft>): Promise<boolean> {
|
||||||
|
const emptyDraft = {
|
||||||
|
assignee: null,
|
||||||
|
description: '',
|
||||||
|
dueDate: null,
|
||||||
|
estimation: 0,
|
||||||
|
labels: [],
|
||||||
|
parentIssue: undefined,
|
||||||
|
priority: 0,
|
||||||
|
project: null,
|
||||||
|
sprint: null,
|
||||||
|
subIssues: [],
|
||||||
|
template: undefined,
|
||||||
|
team: null,
|
||||||
|
title: ''
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const key of Object.keys(emptyDraft)) {
|
||||||
|
if (!deepEqual(emptyDraft[key], draft[key])) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const attachmentResult = await client.findOne(attachment.class.Attachment, { attachedTo: objectId })
|
||||||
|
|
||||||
|
if (attachmentResult) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
const team = await client.findOne(tracker.class.Team, { _id: _space })
|
||||||
|
|
||||||
|
if (team?.defaultIssueStatus) {
|
||||||
|
return draft.status === team.defaultIssueStatus
|
||||||
|
}
|
||||||
|
|
||||||
|
return status === ''
|
||||||
|
}
|
||||||
|
|
||||||
export function canClose (): boolean {
|
export function canClose (): boolean {
|
||||||
return !canSave
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function onOutsideClick () {
|
||||||
|
if (!shouldSaveDraft) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
await descriptionBox?.createAttachments()
|
||||||
|
|
||||||
|
const newDraft: Data<IssueDraft> = {
|
||||||
|
issueId: objectId,
|
||||||
|
title: getTitle(object.title),
|
||||||
|
description: object.description,
|
||||||
|
assignee: object.assignee,
|
||||||
|
project: object.project,
|
||||||
|
sprint: object.sprint,
|
||||||
|
status: object.status,
|
||||||
|
priority: object.priority,
|
||||||
|
dueDate: object.dueDate,
|
||||||
|
estimation: object.estimation,
|
||||||
|
template: object.template,
|
||||||
|
labels,
|
||||||
|
parentIssue: parentIssue?._id,
|
||||||
|
team: _space,
|
||||||
|
subIssues
|
||||||
|
}
|
||||||
|
|
||||||
|
const isEmpty = await isDraftEmpty(newDraft)
|
||||||
|
|
||||||
|
if (isEmpty) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
setMetadataLocalStorage(tracker.metadata.CreateIssueDraft, newDraft)
|
||||||
|
|
||||||
|
if (onDraftChanged) {
|
||||||
|
return onDraftChanged(newDraft)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function createIssue () {
|
async function createIssue () {
|
||||||
|
@ -1,21 +1,22 @@
|
|||||||
<!--
|
<!--
|
||||||
// Copyright © 2022 Hardcore Engineering Inc.
|
// Copyright © 2022 Hardcore Engineering Inc.
|
||||||
//
|
//
|
||||||
// Licensed under the Eclipse Public License, Version 2.0 (the "License");
|
// 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
|
// 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
|
// 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
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
//
|
//
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
-->
|
-->
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { Ref, Space } from '@hcengineering/core'
|
import { Data, Ref, Space } from '@hcengineering/core'
|
||||||
import { getClient } from '@hcengineering/presentation'
|
import { getClient } from '@hcengineering/presentation'
|
||||||
import { Button, showPopup } from '@hcengineering/ui'
|
import { IssueDraft } from '@hcengineering/tracker'
|
||||||
|
import { Button, fetchMetadataLocalStorage, setMetadataLocalStorage, showPopup } from '@hcengineering/ui'
|
||||||
import tracker from '../plugin'
|
import tracker from '../plugin'
|
||||||
import CreateIssue from './CreateIssue.svelte'
|
import CreateIssue from './CreateIssue.svelte'
|
||||||
|
|
||||||
@ -26,6 +27,12 @@
|
|||||||
let space: Ref<Space> | undefined
|
let space: Ref<Space> | undefined
|
||||||
$: updateSpace(currentSpace)
|
$: updateSpace(currentSpace)
|
||||||
|
|
||||||
|
let issueDraft: Data<IssueDraft> | null = fetchMetadataLocalStorage(tracker.metadata.CreateIssueDraft)
|
||||||
|
|
||||||
|
const handleDraftChanged = (draft: Data<IssueDraft>) => {
|
||||||
|
issueDraft = draft
|
||||||
|
}
|
||||||
|
|
||||||
async function updateSpace (spaceId: Ref<Space> | undefined): Promise<void> {
|
async function updateSpace (spaceId: Ref<Space> | undefined): Promise<void> {
|
||||||
if (spaceId !== undefined) {
|
if (spaceId !== undefined) {
|
||||||
space = spaceId
|
space = spaceId
|
||||||
@ -41,7 +48,15 @@
|
|||||||
const team = await client.findOne(tracker.class.Team, {})
|
const team = await client.findOne(tracker.class.Team, {})
|
||||||
space = team?._id
|
space = team?._id
|
||||||
}
|
}
|
||||||
showPopup(CreateIssue, { space }, 'top')
|
|
||||||
|
showPopup(
|
||||||
|
CreateIssue,
|
||||||
|
{ space, shouldSaveDraft: true, draft: issueDraft, onDraftChanged: handleDraftChanged },
|
||||||
|
'top'
|
||||||
|
)
|
||||||
|
|
||||||
|
setMetadataLocalStorage(tracker.metadata.CreateIssueDraft, null)
|
||||||
|
issueDraft = null
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@ -49,11 +64,30 @@
|
|||||||
<div class="flex-grow text-md">
|
<div class="flex-grow text-md">
|
||||||
<Button
|
<Button
|
||||||
icon={tracker.icon.NewIssue}
|
icon={tracker.icon.NewIssue}
|
||||||
label={tracker.string.NewIssue}
|
label={issueDraft ? tracker.string.ResumeDraft : tracker.string.NewIssue}
|
||||||
justify={'left'}
|
justify={'left'}
|
||||||
width={'100%'}
|
width={'100%'}
|
||||||
on:click={newIssue}
|
on:click={newIssue}
|
||||||
/>
|
>
|
||||||
|
<div slot="content" class="draft-circle-container">
|
||||||
|
{#if issueDraft}
|
||||||
|
<div class="draft-circle" />
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
<Button icon={tracker.icon.Magnifier} on:click={async () => {}} />
|
<Button icon={tracker.icon.Magnifier} on:click={async () => {}} />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.draft-circle-container {
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.draft-circle {
|
||||||
|
height: 6px;
|
||||||
|
width: 6px;
|
||||||
|
background-color: var(--primary-bg-color);
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
@ -13,10 +13,11 @@
|
|||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
//
|
//
|
||||||
import { Client, Doc, Ref } from '@hcengineering/core'
|
import { Client, Doc, Ref } from '@hcengineering/core'
|
||||||
import type { IntlString, Resource } from '@hcengineering/platform'
|
import type { IntlString, Metadata, Resource } from '@hcengineering/platform'
|
||||||
import { mergeIds } from '@hcengineering/platform'
|
import { mergeIds } from '@hcengineering/platform'
|
||||||
import { AnyComponent } from '@hcengineering/ui'
|
import { AnyComponent } from '@hcengineering/ui'
|
||||||
import tracker, { trackerId } from '../../tracker/lib'
|
import tracker, { trackerId } from '../../tracker/lib'
|
||||||
|
import { IssueDraft } from '@hcengineering/tracker'
|
||||||
|
|
||||||
export default mergeIds(trackerId, tracker, {
|
export default mergeIds(trackerId, tracker, {
|
||||||
string: {
|
string: {
|
||||||
@ -61,6 +62,7 @@ export default mergeIds(trackerId, tracker, {
|
|||||||
CreateTeam: '' as IntlString,
|
CreateTeam: '' as IntlString,
|
||||||
AddIssue: '' as IntlString,
|
AddIssue: '' as IntlString,
|
||||||
NewIssue: '' as IntlString,
|
NewIssue: '' as IntlString,
|
||||||
|
ResumeDraft: '' as IntlString,
|
||||||
NewSubIssue: '' as IntlString,
|
NewSubIssue: '' as IntlString,
|
||||||
Team: '' as IntlString,
|
Team: '' as IntlString,
|
||||||
SelectIssue: '' as IntlString,
|
SelectIssue: '' as IntlString,
|
||||||
@ -302,6 +304,9 @@ export default mergeIds(trackerId, tracker, {
|
|||||||
IssueTemplates: '' as AnyComponent,
|
IssueTemplates: '' as AnyComponent,
|
||||||
IssueTemplatePresenter: '' as AnyComponent
|
IssueTemplatePresenter: '' as AnyComponent
|
||||||
},
|
},
|
||||||
|
metadata: {
|
||||||
|
CreateIssueDraft: '' as Metadata<IssueDraft>
|
||||||
|
},
|
||||||
function: {
|
function: {
|
||||||
IssueTitleProvider: '' as Resource<(client: Client, ref: Ref<Doc>) => Promise<string>>,
|
IssueTitleProvider: '' as Resource<(client: Client, ref: Ref<Doc>) => Promise<string>>,
|
||||||
GetIssueId: '' as Resource<(doc: Doc, props: Record<string, any>) => Promise<string>>,
|
GetIssueId: '' as Resource<(doc: Doc, props: Record<string, any>) => Promise<string>>,
|
||||||
|
@ -14,12 +14,24 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
import { Employee } from '@hcengineering/contact'
|
import { Employee } from '@hcengineering/contact'
|
||||||
import type { AttachedDoc, Class, Doc, Markup, Ref, RelatedDocument, Space, Timestamp, Type } from '@hcengineering/core'
|
import type {
|
||||||
|
AttachedDoc,
|
||||||
|
Class,
|
||||||
|
Doc,
|
||||||
|
Markup,
|
||||||
|
Obj,
|
||||||
|
Ref,
|
||||||
|
RelatedDocument,
|
||||||
|
Space,
|
||||||
|
Timestamp,
|
||||||
|
Type
|
||||||
|
} from '@hcengineering/core'
|
||||||
import type { Asset, IntlString, Plugin, Resource } from '@hcengineering/platform'
|
import type { Asset, IntlString, Plugin, Resource } from '@hcengineering/platform'
|
||||||
import { plugin } from '@hcengineering/platform'
|
import { plugin } from '@hcengineering/platform'
|
||||||
import type { TagCategory, TagElement } from '@hcengineering/tags'
|
import type { TagCategory, TagElement } from '@hcengineering/tags'
|
||||||
import { AnyComponent, Location } from '@hcengineering/ui'
|
import { AnyComponent, Location } from '@hcengineering/ui'
|
||||||
import { Action, ActionCategory } from '@hcengineering/view'
|
import { Action, ActionCategory } from '@hcengineering/view'
|
||||||
|
import { TagReference } from '@hcengineering/tags'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @public
|
* @public
|
||||||
@ -181,6 +193,34 @@ export interface Issue extends AttachedDoc {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
export interface IssueDraft extends Obj {
|
||||||
|
issueId: Ref<Issue>
|
||||||
|
title: string
|
||||||
|
description: Markup
|
||||||
|
status: Ref<IssueStatus>
|
||||||
|
priority: IssuePriority
|
||||||
|
assignee: Ref<Employee> | null
|
||||||
|
project: Ref<Project> | null
|
||||||
|
team: Ref<Team> | null
|
||||||
|
dueDate: Timestamp | null
|
||||||
|
sprint?: Ref<Sprint> | null
|
||||||
|
|
||||||
|
// Estimation in man days
|
||||||
|
estimation: number
|
||||||
|
parentIssue?: string
|
||||||
|
labels?: TagReference[]
|
||||||
|
subIssues?: IssueTemplateChild[]
|
||||||
|
template?: {
|
||||||
|
// A template issue is based on
|
||||||
|
template: Ref<IssueTemplate>
|
||||||
|
// Child id in template
|
||||||
|
childId?: string
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @public
|
* @public
|
||||||
*/
|
*/
|
||||||
@ -325,6 +365,7 @@ export default plugin(trackerId, {
|
|||||||
class: {
|
class: {
|
||||||
Team: '' as Ref<Class<Team>>,
|
Team: '' as Ref<Class<Team>>,
|
||||||
Issue: '' as Ref<Class<Issue>>,
|
Issue: '' as Ref<Class<Issue>>,
|
||||||
|
IssueDraft: '' as Ref<Class<IssueDraft>>,
|
||||||
IssueTemplate: '' as Ref<Class<IssueTemplate>>,
|
IssueTemplate: '' as Ref<Class<IssueTemplate>>,
|
||||||
Document: '' as Ref<Class<Document>>,
|
Document: '' as Ref<Class<Document>>,
|
||||||
Project: '' as Ref<Class<Project>>,
|
Project: '' as Ref<Class<Project>>,
|
||||||
|
Loading…
Reference in New Issue
Block a user