From ac87b6c82a8b1c665acb42f2e4fd5b1a8e08af2d Mon Sep 17 00:00:00 2001 From: Andrey Platov Date: Tue, 31 Aug 2021 16:54:47 +0200 Subject: [PATCH] initial AttachmentPresenter Signed-off-by: Andrey Platov --- dev/storage/src/model.tx.json | 398 ++++++++++-------- models/chunter/src/index.ts | 4 + models/chunter/src/plugin.ts | 4 + models/recruit/package.json | 3 +- models/recruit/src/index.ts | 19 +- packages/core/src/memdb.ts | 4 +- .../src/components/AttachmentPresenter.svelte | 27 ++ plugins/chunter-resources/src/index.ts | 4 +- .../src/components/CreateCandidate.svelte | 16 +- plugins/recruit/package.json | 3 +- plugins/recruit/src/index.ts | 5 +- server/workspace/src/model.tx.json | 398 ++++++++++-------- 12 files changed, 508 insertions(+), 377 deletions(-) create mode 100644 plugins/chunter-resources/src/components/AttachmentPresenter.svelte diff --git a/dev/storage/src/model.tx.json b/dev/storage/src/model.tx.json index a2246b55bb..de88aa1b91 100644 --- a/dev/storage/src/model.tx.json +++ b/dev/storage/src/model.tx.json @@ -1,25 +1,25 @@ [ { - "_id": "612e073bb4f74f92cc7b2d8c", + "_id": "612e3e8efa5cf969d8d835bb", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "core:class:Obj", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459454, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "kind": 0 } }, { - "_id": "612e073bb4f74f92cc7b2d8d", + "_id": "612e3e8efa5cf969d8d835bc", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "core:class:Doc", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459454, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -27,13 +27,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2d8e", + "_id": "612e3e8efa5cf969d8d835bd", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "core:class:Type", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459454, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -41,13 +41,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2d8f", + "_id": "612e3e8efa5cf969d8d835be", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "core:class:TypeString", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459454, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -55,13 +55,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2d90", + "_id": "612e3e8efa5cf969d8d835bf", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "core:class:Attribute", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459454, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -69,13 +69,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2d91", + "_id": "612e3e8efa5cf969d8d835c0", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "core:class:Account", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459454, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "domain": "model", @@ -84,13 +84,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2d92", + "_id": "612e3e8efa5cf969d8d835c1", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "core:class:Space", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459454, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "domain": "model", @@ -99,13 +99,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2d93", + "_id": "612e3e8efa5cf969d8d835c2", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "core:class:Tx", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459454, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "domain": "tx", @@ -114,13 +114,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2d94", + "_id": "612e3e8efa5cf969d8d835c3", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "core:class:TxCUD", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459454, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -128,13 +128,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2d95", + "_id": "612e3e8efa5cf969d8d835c4", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "core:class:TxUpdateDoc", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459454, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -142,13 +142,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2d96", + "_id": "612e3e8efa5cf969d8d835c5", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "core:class:TxMixin", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459454, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -156,13 +156,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2d97", + "_id": "612e3e8efa5cf969d8d835c6", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "core:class:TxCreateDoc", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459454, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -170,13 +170,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2d98", + "_id": "612e3e8efa5cf969d8d835c7", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "core:class:Class", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459454, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "domain": "model", @@ -185,13 +185,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2d99", + "_id": "612e3e8efa5cf969d8d835c8", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "core:class:Mixin", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459454, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -199,13 +199,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2d9a", + "_id": "612e3e8efa5cf969d8d835c9", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "view:class:Viewlet", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "domain": "model", @@ -214,13 +214,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2d9b", + "_id": "612e3e8efa5cf969d8d835ca", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "view:class:ViewletDescriptor", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "domain": "model", @@ -229,13 +229,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2d9c", + "_id": "612e3e8efa5cf969d8d835cb", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "view:mixin:AttributePresenter", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -243,13 +243,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2d9d", + "_id": "612e3e8efa5cf969d8d835cc", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "view:mixin:AttributeEditor", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -257,11 +257,11 @@ } }, { - "_id": "612e073bb4f74f92cc7b2d9e", + "_id": "612e3e8efa5cf969d8d835cd", "_class": "core:class:TxMixin", "space": "core:space:Tx", "modifiedBy": "core:account:System", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622163, "objectId": "core:class:TypeString", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", @@ -271,11 +271,11 @@ } }, { - "_id": "612e073bb4f74f92cc7b2d9f", + "_id": "612e3e8efa5cf969d8d835ce", "_class": "core:class:TxMixin", "space": "core:space:Tx", "modifiedBy": "core:account:System", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622163, "objectId": "core:class:TypeString", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", @@ -285,13 +285,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2da0", + "_id": "612e3e8efa5cf969d8d835cf", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "view:viewlet:Table", "objectClass": "view:class:ViewletDescriptor", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "label": "Table", @@ -300,13 +300,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2da1", + "_id": "612e3e8efa5cf969d8d835d0", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "workbench:mixin:SpaceView", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -314,13 +314,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2da2", + "_id": "612e3e8efa5cf969d8d835d1", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "workbench:class:Application", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "domain": "model", @@ -329,13 +329,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2da3", + "_id": "612e3e8efa5cf969d8d835d2", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "contact:class:Contact", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "domain": "contact", @@ -344,12 +344,12 @@ } }, { - "_id": "612e073bb4f74f92cc7b2da4", - "objectId": "612e073bb4f74f92cc7b2da5", + "_id": "612e3e8efa5cf969d8d835d3", + "objectId": "612e3e8efa5cf969d8d835d4", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "modifiedBy": "core:account:System", - "modifiedOn": 1630406459279, + "modifiedOn": 1630420621936, "objectSpace": "core:space:Model", "objectClass": "core:class:Attribute", "attributes": { @@ -362,13 +362,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2da6", + "_id": "612e3e8efa5cf969d8d835d5", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "contact:class:Person", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -377,12 +377,12 @@ } }, { - "_id": "612e073bb4f74f92cc7b2da7", - "objectId": "612e073bb4f74f92cc7b2da8", + "_id": "612e3e8efa5cf969d8d835d6", + "objectId": "612e3e8efa5cf969d8d835d7", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "modifiedBy": "core:account:System", - "modifiedOn": 1630406459279, + "modifiedOn": 1630420621937, "objectSpace": "core:space:Model", "objectClass": "core:class:Attribute", "attributes": { @@ -395,12 +395,12 @@ } }, { - "_id": "612e073bb4f74f92cc7b2da9", - "objectId": "612e073bb4f74f92cc7b2daa", + "_id": "612e3e8efa5cf969d8d835d8", + "objectId": "612e3e8efa5cf969d8d835d9", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "modifiedBy": "core:account:System", - "modifiedOn": 1630406459279, + "modifiedOn": 1630420621937, "objectSpace": "core:space:Model", "objectClass": "core:class:Attribute", "attributes": { @@ -413,12 +413,12 @@ } }, { - "_id": "612e073bb4f74f92cc7b2dab", - "objectId": "612e073bb4f74f92cc7b2dac", + "_id": "612e3e8efa5cf969d8d835da", + "objectId": "612e3e8efa5cf969d8d835db", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "modifiedBy": "core:account:System", - "modifiedOn": 1630406459279, + "modifiedOn": 1630420621937, "objectSpace": "core:space:Model", "objectClass": "core:class:Attribute", "attributes": { @@ -431,13 +431,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2dad", + "_id": "612e3e8efa5cf969d8d835dc", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "contact:class:Employee", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -445,13 +445,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2dae", + "_id": "612e3e8efa5cf969d8d835dd", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "contact:class:Organization", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -459,13 +459,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2daf", + "_id": "612e3e8efa5cf969d8d835de", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "contact:class:TypeChannels", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -473,13 +473,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2db0", + "_id": "612e3e8efa5cf969d8d835df", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "contact:class:ChannelProvider", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "domain": "model", @@ -488,11 +488,11 @@ } }, { - "_id": "612e073bb4f74f92cc7b2db1", + "_id": "612e3e8efa5cf969d8d835e0", "_class": "core:class:TxMixin", "space": "core:space:Tx", "modifiedBy": "core:account:System", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622163, "objectId": "contact:class:TypeChannels", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", @@ -502,26 +502,26 @@ } }, { - "_id": "612e073bb4f74f92cc7b2db2", + "_id": "612e3e8efa5cf969d8d835e1", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "contact:channelProvider:Email", "objectClass": "contact:class:ChannelProvider", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "label": "Email" } }, { - "_id": "612e073bb4f74f92cc7b2db3", + "_id": "612e3e8efa5cf969d8d835e2", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "contact:space:Employee", "objectClass": "core:class:Space", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "name": "Employees", @@ -531,11 +531,11 @@ } }, { - "_id": "612e073bb4f74f92cc7b2db4", + "_id": "612e3e8efa5cf969d8d835e3", "_class": "core:class:TxMixin", "space": "core:space:Tx", "modifiedBy": "core:account:System", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622163, "objectId": "contact:class:Person", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", @@ -545,13 +545,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2db5", + "_id": "612e3e8efa5cf969d8d835e4", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "chunter:class:Attachment", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "domain": "attachment", @@ -560,13 +560,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2db6", + "_id": "612e3e8efa5cf969d8d835e5", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "chunter:class:Comment", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "domain": "comment", @@ -575,13 +575,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2db7", + "_id": "612e3e8efa5cf969d8d835e6", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "chunter:class:Backlink", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -589,13 +589,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2db8", + "_id": "612e3e8efa5cf969d8d835e7", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "chunter:class:Message", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "domain": "chunter", @@ -604,12 +604,12 @@ } }, { - "_id": "612e073bb4f74f92cc7b2db9", - "objectId": "612e073bb4f74f92cc7b2dba", + "_id": "612e3e8efa5cf969d8d835e8", + "objectId": "612e3e8efa5cf969d8d835e9", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "modifiedBy": "core:account:System", - "modifiedOn": 1630406459390, + "modifiedOn": 1630420622050, "objectSpace": "core:space:Model", "objectClass": "core:class:Attribute", "attributes": { @@ -623,13 +623,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2dbb", + "_id": "612e3e8efa5cf969d8d835ea", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "chunter:class:Channel", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -639,11 +639,11 @@ } }, { - "_id": "612e073bb4f74f92cc7b2dbc", + "_id": "612e3e8efa5cf969d8d835eb", "_class": "core:class:TxMixin", "space": "core:space:Tx", "modifiedBy": "core:account:System", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622163, "objectId": "chunter:class:Channel", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", @@ -655,13 +655,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2dbd", + "_id": "612e3e8efa5cf969d8d835ec", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "chunter:viewlet:Chat", "objectClass": "view:class:ViewletDescriptor", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622163, "modifiedBy": "core:account:System", "attributes": { "label": "Chat", @@ -670,13 +670,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2dbe", + "_id": "612e3e8efa5cf969d8d835ed", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", - "objectId": "612e073bb4f74f92cc7b2dbf", + "objectId": "612e3e8efa5cf969d8d835ee", "objectClass": "view:class:Viewlet", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622164, "modifiedBy": "core:account:System", "attributes": { "attachTo": "chunter:class:Message", @@ -686,13 +686,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2dc0", + "_id": "612e3e8efa5cf969d8d835ef", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", - "objectId": "612e073bb4f74f92cc7b2dc1", + "objectId": "612e3e8efa5cf969d8d835f0", "objectClass": "workbench:class:Application", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622164, "modifiedBy": "core:account:System", "attributes": { "label": "chunter:string:ApplicationLabelChunter", @@ -710,13 +710,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2dc2", + "_id": "612e3e8efa5cf969d8d835f1", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", - "objectId": "612e073bb4f74f92cc7b2dc3", + "objectId": "612e3e8efa5cf969d8d835f2", "objectClass": "chunter:class:Channel", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622164, "modifiedBy": "core:account:System", "attributes": { "name": "general", @@ -726,13 +726,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2dc4", + "_id": "612e3e8efa5cf969d8d835f3", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", - "objectId": "612e073bb4f74f92cc7b2dc5", + "objectId": "612e3e8efa5cf969d8d835f4", "objectClass": "chunter:class:Channel", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622164, "modifiedBy": "core:account:System", "attributes": { "name": "random", @@ -742,13 +742,27 @@ } }, { - "_id": "612e073bb4f74f92cc7b2dc6", + "_id": "612e3e8efa5cf969d8d835f5", + "_class": "core:class:TxMixin", + "space": "core:space:Tx", + "modifiedBy": "core:account:System", + "modifiedOn": 1630420622164, + "objectId": "chunter:class:Attachment", + "objectClass": "core:class:Class", + "objectSpace": "core:space:Model", + "mixin": "view:mixin:AttributePresenter", + "attributes": { + "presenter": "chunter:component:AttachmentPresenter" + } + }, + { + "_id": "612e3e8efa5cf969d8d835f6", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "task:class:Task", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622164, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -756,12 +770,12 @@ } }, { - "_id": "612e073bb4f74f92cc7b2dc7", - "objectId": "612e073bb4f74f92cc7b2dc8", + "_id": "612e3e8efa5cf969d8d835f7", + "objectId": "612e3e8efa5cf969d8d835f8", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "modifiedBy": "core:account:System", - "modifiedOn": 1630406459326, + "modifiedOn": 1630420621991, "objectSpace": "core:space:Model", "objectClass": "core:class:Attribute", "attributes": { @@ -774,12 +788,12 @@ } }, { - "_id": "612e073bb4f74f92cc7b2dc9", - "objectId": "612e073bb4f74f92cc7b2dca", + "_id": "612e3e8efa5cf969d8d835f9", + "objectId": "612e3e8efa5cf969d8d835fa", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "modifiedBy": "core:account:System", - "modifiedOn": 1630406459326, + "modifiedOn": 1630420621991, "objectSpace": "core:space:Model", "objectClass": "core:class:Attribute", "attributes": { @@ -792,12 +806,12 @@ } }, { - "_id": "612e073bb4f74f92cc7b2dcb", - "objectId": "612e073bb4f74f92cc7b2dcc", + "_id": "612e3e8efa5cf969d8d835fb", + "objectId": "612e3e8efa5cf969d8d835fc", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "modifiedBy": "core:account:System", - "modifiedOn": 1630406459326, + "modifiedOn": 1630420621991, "objectSpace": "core:space:Model", "objectClass": "core:class:Attribute", "attributes": { @@ -810,13 +824,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2dcd", + "_id": "612e3e8efa5cf969d8d835fd", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "task:class:Project", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622164, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -826,11 +840,11 @@ } }, { - "_id": "612e073bb4f74f92cc7b2dce", + "_id": "612e3e8efa5cf969d8d835fe", "_class": "core:class:TxMixin", "space": "core:space:Tx", "modifiedBy": "core:account:System", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622164, "objectId": "task:class:Project", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", @@ -843,13 +857,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2dcf", + "_id": "612e3e8efa5cf969d8d835ff", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", - "objectId": "612e073bb4f74f92cc7b2dd0", + "objectId": "612e3e8efa5cf969d8d83600", "objectClass": "view:class:Viewlet", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622164, "modifiedBy": "core:account:System", "attributes": { "attachTo": "task:class:Task", @@ -867,13 +881,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2dd1", + "_id": "612e3e8efa5cf969d8d83601", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", - "objectId": "612e073bb4f74f92cc7b2dd2", + "objectId": "612e3e8efa5cf969d8d83602", "objectClass": "workbench:class:Application", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622164, "modifiedBy": "core:account:System", "attributes": { "label": "task:string:ApplicationLabelTask", @@ -891,13 +905,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2dd3", + "_id": "612e3e8efa5cf969d8d83603", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", - "objectId": "612e073bb4f74f92cc7b2dd4", + "objectId": "612e3e8efa5cf969d8d83604", "objectClass": "task:class:Project", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459455, + "modifiedOn": 1630420622164, "modifiedBy": "core:account:System", "attributes": { "name": "demo", @@ -907,13 +921,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2dd5", + "_id": "612e3e8efa5cf969d8d83605", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "recruit:class:Applicant", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459456, + "modifiedOn": 1630420622164, "modifiedBy": "core:account:System", "attributes": { "domain": "recruit", @@ -922,12 +936,12 @@ } }, { - "_id": "612e073bb4f74f92cc7b2dd6", - "objectId": "612e073bb4f74f92cc7b2dd7", + "_id": "612e3e8efa5cf969d8d83606", + "objectId": "612e3e8efa5cf969d8d83607", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "modifiedBy": "core:account:System", - "modifiedOn": 1630406459445, + "modifiedOn": 1630420622130, "objectSpace": "core:space:Model", "objectClass": "core:class:Attribute", "attributes": { @@ -940,13 +954,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2dd8", + "_id": "612e3e8efa5cf969d8d83608", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "recruit:class:Candidate", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459456, + "modifiedOn": 1630420622164, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -955,13 +969,31 @@ } }, { - "_id": "612e073bb4f74f92cc7b2dd9", + "_id": "612e3e8efa5cf969d8d83609", + "objectId": "612e3e8efa5cf969d8d8360a", + "_class": "core:class:TxCreateDoc", + "space": "core:space:Tx", + "modifiedBy": "core:account:System", + "modifiedOn": 1630420622130, + "objectSpace": "core:space:Model", + "objectClass": "core:class:Attribute", + "attributes": { + "name": "resume", + "type": { + "_class": "core:class:TypeString" + }, + "label": "Resume", + "attributeOf": "recruit:class:Candidate" + } + }, + { + "_id": "612e3e8efa5cf969d8d8360b", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "recruit:class:Candidates", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459456, + "modifiedOn": 1630420622164, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -971,13 +1003,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2dda", + "_id": "612e3e8efa5cf969d8d8360c", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "recruit:class:Vacancy", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459456, + "modifiedOn": 1630420622164, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -987,11 +1019,11 @@ } }, { - "_id": "612e073bb4f74f92cc7b2ddb", + "_id": "612e3e8efa5cf969d8d8360d", "_class": "core:class:TxMixin", "space": "core:space:Tx", "modifiedBy": "core:account:System", - "modifiedOn": 1630406459456, + "modifiedOn": 1630420622164, "objectId": "recruit:class:Vacancy", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", @@ -1004,11 +1036,11 @@ } }, { - "_id": "612e073bb4f74f92cc7b2ddc", + "_id": "612e3e8efa5cf969d8d8360e", "_class": "core:class:TxMixin", "space": "core:space:Tx", "modifiedBy": "core:account:System", - "modifiedOn": 1630406459456, + "modifiedOn": 1630420622164, "objectId": "recruit:class:Candidates", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", @@ -1021,13 +1053,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2ddd", + "_id": "612e3e8efa5cf969d8d8360f", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", - "objectId": "612e073bb4f74f92cc7b2dde", + "objectId": "612e3e8efa5cf969d8d83610", "objectClass": "workbench:class:Application", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459456, + "modifiedOn": 1630420622164, "modifiedBy": "core:account:System", "attributes": { "label": "recruit:string:RecruitApplication", @@ -1051,13 +1083,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2ddf", + "_id": "612e3e8efa5cf969d8d83611", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "recruit:space:CandidatesPublic", "objectClass": "recruit:class:Candidates", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459456, + "modifiedOn": 1630420622164, "modifiedBy": "core:account:System", "attributes": { "name": "public", @@ -1067,33 +1099,39 @@ } }, { - "_id": "612e073bb4f74f92cc7b2de0", + "_id": "612e3e8efa5cf969d8d83612", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", - "objectId": "612e073bb4f74f92cc7b2de1", + "objectId": "612e3e8efa5cf969d8d83613", "objectClass": "view:class:Viewlet", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459456, + "modifiedOn": 1630420622164, "modifiedBy": "core:account:System", "attributes": { "attachTo": "recruit:class:Candidate", "descriptor": "view:viewlet:Table", "open": "recruit:component:EditCandidate", + "options": { + "lookup": { + "resume": "chunter:class:Attachment" + } + }, "config": [ "", + "$lookup.resume", "channels", "city" ] } }, { - "_id": "612e073bb4f74f92cc7b2de2", + "_id": "612e3e8efa5cf969d8d83614", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", - "objectId": "612e073bb4f74f92cc7b2de3", + "objectId": "612e3e8efa5cf969d8d83615", "objectClass": "view:class:Viewlet", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459456, + "modifiedOn": 1630420622164, "modifiedBy": "core:account:System", "attributes": { "attachTo": "recruit:class:Applicant", @@ -1112,13 +1150,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2de4", + "_id": "612e3e8efa5cf969d8d83616", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "server-core:class:Trigger", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459456, + "modifiedOn": 1630420622164, "modifiedBy": "core:account:System", "attributes": { "domain": "model", @@ -1127,26 +1165,26 @@ } }, { - "_id": "612e073bb4f74f92cc7b2de5", + "_id": "612e3e8efa5cf969d8d83617", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", - "objectId": "612e073bb4f74f92cc7b2de6", + "objectId": "612e3e8efa5cf969d8d83618", "objectClass": "server-core:class:Trigger", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459456, + "modifiedOn": 1630420622164, "modifiedBy": "core:account:System", "attributes": { "trigger": "server-chunter:trigger:OnMessage" } }, { - "_id": "612e073bb4f74f92cc7b2de7", + "_id": "612e3e8efa5cf969d8d83619", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", - "objectId": "612e073bb4f74f92cc7b2de8", + "objectId": "612e3e8efa5cf969d8d8361a", "objectClass": "contact:class:Employee", "objectSpace": "contact:space:Employee", - "modifiedOn": 1630406459456, + "modifiedOn": 1630420622164, "modifiedBy": "core:account:System", "attributes": { "firstName": "Rosamund", @@ -1156,26 +1194,26 @@ } }, { - "_id": "612e073bb4f74f92cc7b2de9", + "_id": "612e3e8efa5cf969d8d8361b", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", - "objectId": "612e073bb4f74f92cc7b2dea", + "objectId": "612e3e8efa5cf969d8d8361c", "objectClass": "core:class:Account", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459456, + "modifiedOn": 1630420622164, "modifiedBy": "core:account:System", "attributes": { "email": "rosamund@hc.engineering" } }, { - "_id": "612e073bb4f74f92cc7b2deb", + "_id": "612e3e8efa5cf969d8d8361d", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", - "objectId": "612e073bb4f74f92cc7b2dec", + "objectId": "612e3e8efa5cf969d8d8361e", "objectClass": "contact:class:Employee", "objectSpace": "contact:space:Employee", - "modifiedOn": 1630406459456, + "modifiedOn": 1630420622164, "modifiedBy": "core:account:System", "attributes": { "firstName": "Elon", @@ -1185,26 +1223,26 @@ } }, { - "_id": "612e073bb4f74f92cc7b2ded", + "_id": "612e3e8efa5cf969d8d8361f", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", - "objectId": "612e073bb4f74f92cc7b2dee", + "objectId": "612e3e8efa5cf969d8d83620", "objectClass": "core:class:Account", "objectSpace": "core:space:Model", - "modifiedOn": 1630406459456, + "modifiedOn": 1630420622164, "modifiedBy": "core:account:System", "attributes": { "email": "elon@hc.engineering" } }, { - "_id": "612e073bb4f74f92cc7b2def", + "_id": "612e3e8efa5cf969d8d83621", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", - "objectId": "612e073bb4f74f92cc7b2df0", + "objectId": "612e3e8efa5cf969d8d83622", "objectClass": "recruit:class:Candidate", "objectSpace": "recruit:space:CandidatesPublic", - "modifiedOn": 1630406459456, + "modifiedOn": 1630420622164, "modifiedBy": "core:account:System", "attributes": { "firstName": "Andrey", @@ -1219,13 +1257,13 @@ } }, { - "_id": "612e073bb4f74f92cc7b2df1", + "_id": "612e3e8efa5cf969d8d83623", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", - "objectId": "612e073bb4f74f92cc7b2df2", + "objectId": "612e3e8efa5cf969d8d83624", "objectClass": "recruit:class:Candidate", "objectSpace": "recruit:space:CandidatesPublic", - "modifiedOn": 1630406459456, + "modifiedOn": 1630420622164, "modifiedBy": "core:account:System", "attributes": { "firstName": "Marina", diff --git a/models/chunter/src/index.ts b/models/chunter/src/index.ts index d877d4d954..c0d76914d5 100644 --- a/models/chunter/src/index.ts +++ b/models/chunter/src/index.ts @@ -110,4 +110,8 @@ export function createModel (builder: Builder): void { private: false, members: [] }) + + builder.mixin(chunter.class.Attachment, core.class.Class, view.mixin.AttributePresenter, { + presenter: chunter.component.AttachmentPresenter + }) } diff --git a/models/chunter/src/plugin.ts b/models/chunter/src/plugin.ts index e025218344..3a3f368fb2 100644 --- a/models/chunter/src/plugin.ts +++ b/models/chunter/src/plugin.ts @@ -19,8 +19,12 @@ import type { IntlString } from '@anticrm/platform' import { mergeIds } from '@anticrm/platform' import type { Ref } from '@anticrm/core' import { ViewletDescriptor } from '@anticrm/view' +import type { AnyComponent } from '@anticrm/ui' export default mergeIds(chunterId, chunter, { + component: { + AttachmentPresenter: '' as AnyComponent + }, string: { ApplicationLabelChunter: '' as IntlString }, diff --git a/models/recruit/package.json b/models/recruit/package.json index 3e4d86d364..557fed86bd 100644 --- a/models/recruit/package.json +++ b/models/recruit/package.json @@ -27,6 +27,7 @@ "@anticrm/model-workbench": "~0.6.1", "@anticrm/model-contact": "~0.6.0", "@anticrm/recruit": "~0.6.0", - "@anticrm/recruit-resources": "~0.6.0" + "@anticrm/recruit-resources": "~0.6.0", + "@anticrm/chunter": "~0.6.0" } } diff --git a/models/recruit/src/index.ts b/models/recruit/src/index.ts index 57c707698e..cb783f7fcb 100644 --- a/models/recruit/src/index.ts +++ b/models/recruit/src/index.ts @@ -18,13 +18,15 @@ import { Builder, Model, UX, Prop, TypeString } from '@anticrm/model' import type { Ref, FindOptions, Doc, Domain } from '@anticrm/core' import core, { TSpace, TDoc } from '@anticrm/model-core' import type { Vacancy, Candidates, Candidate, Applicant } from '@anticrm/recruit' +import type { Attachment } from '@anticrm/chunter' import workbench from '@anticrm/model-workbench' import view from '@anticrm/model-view' import contact, { TPerson } from '@anticrm/model-contact' import recruit from './plugin' -import { Person } from '@anticrm/contact' +import chunter from '@anticrm/chunter' +import type { Person } from '@anticrm/contact' export const DOMAIN_RECRUIT = 'recruit' as Domain @@ -38,7 +40,10 @@ export class TCandidates extends TSpace implements Candidates {} @Model(recruit.class.Candidate, contact.class.Person) @UX('Candidate' as IntlString) -export class TCandidate extends TPerson implements Candidate {} +export class TCandidate extends TPerson implements Candidate { + @Prop(TypeString(), 'Resume' as IntlString) + resume?: Ref +} @Model(recruit.class.Applicant, core.class.Doc, DOMAIN_RECRUIT) export class TApplicant extends TDoc implements Applicant { @@ -94,7 +99,13 @@ export function createModel (builder: Builder): void { attachTo: recruit.class.Candidate, descriptor: view.viewlet.Table, open: recruit.component.EditCandidate, - config: ['', 'channels', 'city'] + // eslint-disable-next-line @typescript-eslint/consistent-type-assertions + options: { + lookup: { + resume: chunter.class.Attachment + } + } as FindOptions, // TODO: fix + config: ['', '$lookup.resume', 'channels', 'city'] }) builder.createDoc(view.class.Viewlet, core.space.Model, { @@ -106,7 +117,7 @@ export function createModel (builder: Builder): void { lookup: { candidate: recruit.class.Candidate } - } as FindOptions, + } as FindOptions, // TODO: fix config: ['$lookup.candidate', '$lookup.candidate.email', '$lookup.candidate.city'] }) } diff --git a/packages/core/src/memdb.ts b/packages/core/src/memdb.ts index 57ac578810..0d1f50bf5e 100644 --- a/packages/core/src/memdb.ts +++ b/packages/core/src/memdb.ts @@ -84,7 +84,9 @@ export class MemDb extends TxProcessor { const result: LookupData = {} for (const key in lookup) { const id = (doc as any)[key] as Ref - (result as any)[key] = this.getObject(id) + if (id !== undefined) { + (result as any)[key] = this.getObject(id) + } } withLookup.push(Object.assign({}, doc, { $lookup: result })) } diff --git a/plugins/chunter-resources/src/components/AttachmentPresenter.svelte b/plugins/chunter-resources/src/components/AttachmentPresenter.svelte new file mode 100644 index 0000000000..6d60a49779 --- /dev/null +++ b/plugins/chunter-resources/src/components/AttachmentPresenter.svelte @@ -0,0 +1,27 @@ + + + + +attachment: {#if value}{value.name}{:else}nothing{/if} + + \ No newline at end of file diff --git a/plugins/chunter-resources/src/index.ts b/plugins/chunter-resources/src/index.ts index d3f67efcbc..a31bc3355c 100644 --- a/plugins/chunter-resources/src/index.ts +++ b/plugins/chunter-resources/src/index.ts @@ -16,11 +16,13 @@ import CreateChannel from './components/CreateChannel.svelte' import ChannelView from './components/ChannelView.svelte' import Activity from './components/Activity.svelte' +import AttachmentPresenter from './components/AttachmentPresenter.svelte' export default async () => ({ component: { CreateChannel, ChannelView, - Activity + Activity, + AttachmentPresenter } }) diff --git a/plugins/recruit-resources/src/components/CreateCandidate.svelte b/plugins/recruit-resources/src/components/CreateCandidate.svelte index beec3bc399..8c2310ba45 100644 --- a/plugins/recruit-resources/src/components/CreateCandidate.svelte +++ b/plugins/recruit-resources/src/components/CreateCandidate.svelte @@ -16,17 +16,14 @@