From f67908b5b43bdce994ace3ae178336f50b26b72b Mon Sep 17 00:00:00 2001 From: Andrey Platov Date: Sat, 7 Aug 2021 19:03:06 +0200 Subject: [PATCH] add `recruit` Signed-off-by: Andrey Platov --- common/config/rush/pnpm-lock.yaml | 97 ++- dev/prod/package.json | 5 +- dev/prod/src/platform.ts | 10 +- dev/storage/src/model.tx.json | 755 ++++++++++++------ models/all/package.json | 4 +- models/all/src/index.ts | 8 +- models/demo/.eslintrc.js | 6 + models/demo/.npmignore | 4 + models/demo/config/rig.json | 18 + models/demo/package.json | 25 + models/demo/src/index.ts | 37 + models/demo/tsconfig.json | 8 + models/recruit/.eslintrc.js | 6 + models/recruit/.npmignore | 4 + models/recruit/config/rig.json | 18 + models/recruit/package.json | 32 + models/recruit/src/index.ts | 112 +++ models/recruit/src/plugin.ts | 40 + models/recruit/tsconfig.json | 8 + plugins/recruit-assets/assets/icons.svg | 27 + plugins/recruit-assets/lang/en.json | 11 + plugins/recruit-assets/package.json | 21 + plugins/recruit-assets/src/index.ts | 25 + plugins/recruit-assets/tsconfig.json | 15 + plugins/recruit-resources/package.json | 32 + plugins/recruit-resources/postcss.config.js | 5 + .../src/components/Card.svelte | 83 ++ .../src/components/CardEmpty.svelte | 74 ++ .../src/components/CardView.svelte | 60 ++ .../src/components/CreateApplication.svelte | 56 ++ .../src/components/CreateCandidate.svelte | 73 ++ .../src/components/CreateCandidates.svelte | 51 ++ .../src/components/CreateVacancy.svelte | 58 ++ .../src/components/EditCandidate.svelte | 97 +++ .../src/components/IconWithLabel.svelte | 51 ++ .../src/components/KanbanCard.svelte | 91 +++ .../src/components/KanbanCardEmpty.svelte | 59 ++ .../src/components/KanbanPanel.svelte | 80 ++ .../src/components/KanbanPanelEmpty.svelte | 76 ++ .../src/components/KanbanView.svelte | 80 ++ .../src/components/LabelStatus.svelte | 47 ++ .../src/components/Tag.svelte | 54 ++ .../src/components/icons/Address.svelte | 27 + .../src/components/icons/Attachment.svelte | 27 + .../src/components/icons/File.svelte | 27 + .../src/components/icons/Mail.svelte | 27 + .../src/components/icons/MoreH.svelte | 13 + .../src/components/icons/Recruiting.svelte | 32 + plugins/recruit-resources/src/index.ts | 30 + plugins/recruit-resources/src/plugin.ts | 43 + plugins/recruit-resources/svelte.config.js | 5 + plugins/recruit-resources/tsconfig.json | 15 + plugins/recruit/.eslintrc.js | 6 + plugins/recruit/.npmignore | 4 + plugins/recruit/config/rig.json | 18 + plugins/recruit/package.json | 25 + plugins/recruit/src/index.ts | 53 ++ plugins/recruit/tsconfig.json | 9 + rush.json | 25 + 59 files changed, 2536 insertions(+), 273 deletions(-) create mode 100644 models/demo/.eslintrc.js create mode 100644 models/demo/.npmignore create mode 100644 models/demo/config/rig.json create mode 100644 models/demo/package.json create mode 100644 models/demo/src/index.ts create mode 100644 models/demo/tsconfig.json create mode 100644 models/recruit/.eslintrc.js create mode 100644 models/recruit/.npmignore create mode 100644 models/recruit/config/rig.json create mode 100644 models/recruit/package.json create mode 100644 models/recruit/src/index.ts create mode 100644 models/recruit/src/plugin.ts create mode 100644 models/recruit/tsconfig.json create mode 100644 plugins/recruit-assets/assets/icons.svg create mode 100644 plugins/recruit-assets/lang/en.json create mode 100644 plugins/recruit-assets/package.json create mode 100644 plugins/recruit-assets/src/index.ts create mode 100644 plugins/recruit-assets/tsconfig.json create mode 100644 plugins/recruit-resources/package.json create mode 100644 plugins/recruit-resources/postcss.config.js create mode 100644 plugins/recruit-resources/src/components/Card.svelte create mode 100644 plugins/recruit-resources/src/components/CardEmpty.svelte create mode 100644 plugins/recruit-resources/src/components/CardView.svelte create mode 100644 plugins/recruit-resources/src/components/CreateApplication.svelte create mode 100644 plugins/recruit-resources/src/components/CreateCandidate.svelte create mode 100644 plugins/recruit-resources/src/components/CreateCandidates.svelte create mode 100644 plugins/recruit-resources/src/components/CreateVacancy.svelte create mode 100644 plugins/recruit-resources/src/components/EditCandidate.svelte create mode 100644 plugins/recruit-resources/src/components/IconWithLabel.svelte create mode 100644 plugins/recruit-resources/src/components/KanbanCard.svelte create mode 100644 plugins/recruit-resources/src/components/KanbanCardEmpty.svelte create mode 100644 plugins/recruit-resources/src/components/KanbanPanel.svelte create mode 100644 plugins/recruit-resources/src/components/KanbanPanelEmpty.svelte create mode 100644 plugins/recruit-resources/src/components/KanbanView.svelte create mode 100644 plugins/recruit-resources/src/components/LabelStatus.svelte create mode 100644 plugins/recruit-resources/src/components/Tag.svelte create mode 100644 plugins/recruit-resources/src/components/icons/Address.svelte create mode 100644 plugins/recruit-resources/src/components/icons/Attachment.svelte create mode 100644 plugins/recruit-resources/src/components/icons/File.svelte create mode 100644 plugins/recruit-resources/src/components/icons/Mail.svelte create mode 100644 plugins/recruit-resources/src/components/icons/MoreH.svelte create mode 100644 plugins/recruit-resources/src/components/icons/Recruiting.svelte create mode 100644 plugins/recruit-resources/src/index.ts create mode 100644 plugins/recruit-resources/src/plugin.ts create mode 100644 plugins/recruit-resources/svelte.config.js create mode 100644 plugins/recruit-resources/tsconfig.json create mode 100644 plugins/recruit/.eslintrc.js create mode 100644 plugins/recruit/.npmignore create mode 100644 plugins/recruit/config/rig.json create mode 100644 plugins/recruit/package.json create mode 100644 plugins/recruit/src/index.ts create mode 100644 plugins/recruit/tsconfig.json diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 0c9832b6f3..6f6c9811f7 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -21,6 +21,8 @@ specifiers: '@rush-temp/model-chunter': file:./projects/model-chunter.tgz '@rush-temp/model-contact': file:./projects/model-contact.tgz '@rush-temp/model-core': file:./projects/model-core.tgz + '@rush-temp/model-demo': file:./projects/model-demo.tgz + '@rush-temp/model-recruit': file:./projects/model-recruit.tgz '@rush-temp/model-rig': file:./projects/model-rig.tgz '@rush-temp/model-task': file:./projects/model-task.tgz '@rush-temp/model-view': file:./projects/model-view.tgz @@ -30,6 +32,9 @@ specifiers: '@rush-temp/presentation': file:./projects/presentation.tgz '@rush-temp/prod': file:./projects/prod.tgz '@rush-temp/query': file:./projects/query.tgz + '@rush-temp/recruit': file:./projects/recruit.tgz + '@rush-temp/recruit-assets': file:./projects/recruit-assets.tgz + '@rush-temp/recruit-resources': file:./projects/recruit-resources.tgz '@rush-temp/server': file:./projects/server.tgz '@rush-temp/server-core': file:./projects/server-core.tgz '@rush-temp/server-ws': file:./projects/server-ws.tgz @@ -110,6 +115,8 @@ dependencies: '@rush-temp/model-chunter': file:projects/model-chunter.tgz_6c259fadfeb3a4b20890aefe87070b8b '@rush-temp/model-contact': file:projects/model-contact.tgz_6c259fadfeb3a4b20890aefe87070b8b '@rush-temp/model-core': file:projects/model-core.tgz_6c259fadfeb3a4b20890aefe87070b8b + '@rush-temp/model-demo': file:projects/model-demo.tgz_6c259fadfeb3a4b20890aefe87070b8b + '@rush-temp/model-recruit': file:projects/model-recruit.tgz_6c259fadfeb3a4b20890aefe87070b8b '@rush-temp/model-rig': file:projects/model-rig.tgz_6ab28797e7a22071465f7d680ae81ae5 '@rush-temp/model-task': file:projects/model-task.tgz_6c259fadfeb3a4b20890aefe87070b8b '@rush-temp/model-view': file:projects/model-view.tgz_6c259fadfeb3a4b20890aefe87070b8b @@ -119,6 +126,9 @@ dependencies: '@rush-temp/presentation': file:projects/presentation.tgz_c38cf1a7a413db8918b0b4754c21e4c5 '@rush-temp/prod': file:projects/prod.tgz_9242e79bee31c899aa4d2de67405a771 '@rush-temp/query': file:projects/query.tgz_6c259fadfeb3a4b20890aefe87070b8b + '@rush-temp/recruit': file:projects/recruit.tgz_6c259fadfeb3a4b20890aefe87070b8b + '@rush-temp/recruit-assets': file:projects/recruit-assets.tgz + '@rush-temp/recruit-resources': file:projects/recruit-resources.tgz_c38cf1a7a413db8918b0b4754c21e4c5 '@rush-temp/server': file:projects/server.tgz_6c259fadfeb3a4b20890aefe87070b8b '@rush-temp/server-core': file:projects/server-core.tgz_6c259fadfeb3a4b20890aefe87070b8b '@rush-temp/server-ws': file:projects/server-ws.tgz_6c259fadfeb3a4b20890aefe87070b8b @@ -8532,7 +8542,7 @@ packages: dev: false file:projects/model-all.tgz_6c259fadfeb3a4b20890aefe87070b8b: - resolution: {integrity: sha512-3Gk3U4Oui5kzxzSFM5dM0KrTi9/lgFGV+lc5FcCbGfliwFUIBOJwxj3+nAu0qCWE/BsTAL/h9Oq3/kEre8j/qg==, tarball: file:projects/model-all.tgz} + resolution: {integrity: sha512-9hTEKuheThP0pu/QIH2Czyg1FIVdSfcNBLQQD5yZPyn+Qw61dpHY68fBv5cKVlcNk/Zwm3e+bbJG3ylF4QvyjA==, tarball: file:projects/model-all.tgz} id: file:projects/model-all.tgz name: '@rush-temp/model-all' version: 0.0.0 @@ -8553,7 +8563,7 @@ packages: dev: false file:projects/model-chunter.tgz_6c259fadfeb3a4b20890aefe87070b8b: - resolution: {integrity: sha512-Fyp9PC9Hir9bpNLM0WzvSRduqiH4I7feu2A4QZzuk+Ezi6ddmHKTAwhjn1K/J9mY3iWyBpJp1FfQN/K2LWuJiw==, tarball: file:projects/model-chunter.tgz} + resolution: {integrity: sha512-z+BvYl8lM7j/95oNcxYkOdOs47V01OyAkrSa7iZZ24+fDpPJvKIJ8Ty3MVITJCadprqD38WGPynWlAbjHvuOUA==, tarball: file:projects/model-chunter.tgz} id: file:projects/model-chunter.tgz name: '@rush-temp/model-chunter' version: 0.0.0 @@ -8604,6 +8614,40 @@ packages: - typescript dev: false + file:projects/model-demo.tgz_6c259fadfeb3a4b20890aefe87070b8b: + resolution: {integrity: sha512-PF4ieOchEaN7Zgzx5N5Xz1VaIZ6HkXj5v80T8wyRV0ClC2u2ViAzUdrg8mCeG9E1ttwoVPhXjNmxeEV+QgLAZQ==, tarball: file:projects/model-demo.tgz} + id: file:projects/model-demo.tgz + name: '@rush-temp/model-demo' + version: 0.0.0 + dependencies: + '@typescript-eslint/eslint-plugin': 4.28.5_a8e83fcad666e1ba86be4b2e27a20aea + eslint: 7.32.0 + eslint-plugin-import: 2.23.4_eslint@7.32.0 + eslint-plugin-node: 11.1.0_eslint@7.32.0 + eslint-plugin-promise: 4.3.1 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - supports-color + - typescript + dev: false + + file:projects/model-recruit.tgz_6c259fadfeb3a4b20890aefe87070b8b: + resolution: {integrity: sha512-ZTZfTwGPFLYQ5+Ev7IN4fZyBtlh8CrWpRoubFvTgo8HKh9aSs/hQ3NclNYf+1iwzoiJiPaXrGgc9AodNMrJhLw==, tarball: file:projects/model-recruit.tgz} + id: file:projects/model-recruit.tgz + name: '@rush-temp/model-recruit' + version: 0.0.0 + dependencies: + '@typescript-eslint/eslint-plugin': 4.28.5_a8e83fcad666e1ba86be4b2e27a20aea + eslint: 7.32.0 + eslint-plugin-import: 2.23.4_eslint@7.32.0 + eslint-plugin-node: 11.1.0_eslint@7.32.0 + eslint-plugin-promise: 4.3.1 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - supports-color + - typescript + dev: false + file:projects/model-rig.tgz_6ab28797e7a22071465f7d680ae81ae5: resolution: {integrity: sha512-dt7CdKGQAqmtNHpwxDSBqYX/VMBMzPwx1q0bw4EEcdg+GMnClODo7CkYL6VEB++jAFt71USv6AJicS6cdnF8Pg==, tarball: file:projects/model-rig.tgz} id: file:projects/model-rig.tgz @@ -8762,7 +8806,7 @@ packages: dev: false file:projects/prod.tgz_9242e79bee31c899aa4d2de67405a771: - resolution: {integrity: sha512-7EQmn4HF+UC7i1Ia43tXlAiswU3iaa2E/OpX7QquArY63qNtKjR44PYrVb2a2q10kzXDHZv2hEhk6TZFsSNUBQ==, tarball: file:projects/prod.tgz} + resolution: {integrity: sha512-KwU2YgWoCY4XohrdVNdX9DrLtDBkUwkU+lZIwzCfFWazzxTFtyUpiDPY9WLNT+7l9yePGsEpcCxbyDLQFppznA==, tarball: file:projects/prod.tgz} id: file:projects/prod.tgz name: '@rush-temp/prod' version: 0.0.0 @@ -8818,6 +8862,53 @@ packages: - typescript dev: false + file:projects/recruit-assets.tgz: + resolution: {integrity: sha512-vMhv0+mg/VEguAQ7zzIHr9ieE2F+3kf+lX+FvCpIN+CyDIluiDVzlxp2e2VQ/1pCA9Wkt+u6bwHklbwyU7WDFg==, tarball: file:projects/recruit-assets.tgz} + name: '@rush-temp/recruit-assets' + version: 0.0.0 + dev: false + + file:projects/recruit-resources.tgz_c38cf1a7a413db8918b0b4754c21e4c5: + resolution: {integrity: sha512-e8G+P/AxPPLmj7mbc0Jzoj9Isc8uZJx0QOhpKXdbVIfpVwBAqIBKLBHaZJW75iSnnXGuD6wZVwrvzCLIHBTPag==, tarball: file:projects/recruit-resources.tgz} + id: file:projects/recruit-resources.tgz + name: '@rush-temp/recruit-resources' + version: 0.0.0 + dependencies: + sass: 1.37.5 + svelte: 3.42.1 + svelte-loader: 3.1.2_svelte@3.42.1 + svelte-preprocess: 4.7.4_c407529626dbb58d14a718f48c7fa84c + transitivePeerDependencies: + - '@babel/core' + - coffeescript + - less + - node-sass + - postcss + - postcss-load-config + - pug + - stylus + - sugarss + - typescript + dev: false + + file:projects/recruit.tgz_6c259fadfeb3a4b20890aefe87070b8b: + resolution: {integrity: sha512-kVE1YZLi0qv2//sqMhM3SSVew4V36r58Tk0xcA4cP91HeGuozqi4h0V9eYLJocVX2vk3555kQPgTVCNDKM2uwg==, tarball: file:projects/recruit.tgz} + id: file:projects/recruit.tgz + name: '@rush-temp/recruit' + version: 0.0.0 + dependencies: + '@types/heft-jest': 1.0.2 + '@typescript-eslint/eslint-plugin': 4.28.5_a8e83fcad666e1ba86be4b2e27a20aea + eslint: 7.32.0 + eslint-plugin-import: 2.23.4_eslint@7.32.0 + eslint-plugin-node: 11.1.0_eslint@7.32.0 + eslint-plugin-promise: 4.3.1 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - supports-color + - typescript + dev: false + file:projects/server-core.tgz_6c259fadfeb3a4b20890aefe87070b8b: resolution: {integrity: sha512-lHE4PAWrX+WKdM9/Yy1rYZW6rCacwLMkSUIJakrXZeyGlNytXXSvH20bgfocVn73grez3Zjy6qlNm7H7EClgDQ==, tarball: file:projects/server-core.tgz} id: file:projects/server-core.tgz diff --git a/dev/prod/package.json b/dev/prod/package.json index 0470ecdc0d..27bc261769 100644 --- a/dev/prod/package.json +++ b/dev/prod/package.json @@ -58,6 +58,9 @@ "@anticrm/task-resources": "~0.6.0", "@anticrm/chunter": "~0.6.0", "@anticrm/chunter-assets": "~0.6.0", - "@anticrm/chunter-resources": "~0.6.0" + "@anticrm/chunter-resources": "~0.6.0", + "@anticrm/recruit": "~0.6.0", + "@anticrm/recruit-assets": "~0.6.0", + "@anticrm/recruit-resources": "~0.6.0" } } diff --git a/dev/prod/src/platform.ts b/dev/prod/src/platform.ts index fd79723290..c53e16b501 100644 --- a/dev/prod/src/platform.ts +++ b/dev/prod/src/platform.ts @@ -22,8 +22,7 @@ import { viewId } from '@anticrm/view' import { taskId } from '@anticrm/task' import { contactId } from '@anticrm/contact' import { chunterId } from '@anticrm/chunter' -// import { recruitId } from '@anticrm/recruit' -// import { tableId } from '@anticrm/table' +import { recruitId } from '@anticrm/recruit' // import { chunterServerId } from '@anticrm/chunter-server' @@ -31,7 +30,7 @@ import '@anticrm/login-assets' import '@anticrm/task-assets' import '@anticrm/view-assets' import '@anticrm/chunter-assets' -// import '@anticrm/recruit-assets' +import '@anticrm/recruit-assets' export function configurePlatform() { @@ -49,9 +48,8 @@ export function configurePlatform() { addLocation(taskId, () => import(/* webpackChunkName: "task" */ '@anticrm/task-resources')) addLocation(contactId, () => import(/* webpackChunkName: "contact" */ '@anticrm/contact-resources')) addLocation(chunterId, () => import(/* webpackChunkName: "chunter" */ '@anticrm/chunter-resources')) - // // addLocation(recruitId, () => import(/* webpackChunkName: "recruit" */ '@anticrm/plugin-recruit')) - // addLocation(tableId, () => import(/* webpackChunkName: "table" */ '@anticrm/table-resources')) - + addLocation(recruitId, () => import(/* webpackChunkName: "recruit" */ '@anticrm/recruit-resources')) + // addLocation(chunterServerId, () => import(/* webpackChunkName: "chunter-server" */ '@anticrm/chunter-server')) } diff --git a/dev/storage/src/model.tx.json b/dev/storage/src/model.tx.json index 480c4bf6a3..f58b231d21 100644 --- a/dev/storage/src/model.tx.json +++ b/dev/storage/src/model.tx.json @@ -1,25 +1,25 @@ [ { - "_id": "610ea19d8112f14a381cf9fb", + "_id": "610eabf66e5de7ec1fc337c9", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "core:class:Obj", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829513, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "kind": 0 } }, { - "_id": "610ea19d8112f14a381cf9fc", + "_id": "610eabf66e5de7ec1fc337ca", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "core:class:Doc", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829513, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -27,13 +27,13 @@ } }, { - "_id": "610ea19d8112f14a381cf9fd", + "_id": "610eabf66e5de7ec1fc337cb", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "core:class:Type", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829513, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -41,13 +41,13 @@ } }, { - "_id": "610ea19d8112f14a381cf9fe", + "_id": "610eabf66e5de7ec1fc337cc", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "core:class:TypeString", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829513, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -55,13 +55,13 @@ } }, { - "_id": "610ea19d8112f14a381cf9ff", + "_id": "610eabf66e5de7ec1fc337cd", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "core:class:Attribute", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829513, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -69,13 +69,13 @@ } }, { - "_id": "610ea19d8112f14a381cfa00", + "_id": "610eabf66e5de7ec1fc337ce", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "core:class:Account", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829513, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "domain": "model", @@ -84,13 +84,13 @@ } }, { - "_id": "610ea19d8112f14a381cfa01", + "_id": "610eabf66e5de7ec1fc337cf", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "core:class:Space", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829513, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "domain": "model", @@ -99,13 +99,13 @@ } }, { - "_id": "610ea19d8112f14a381cfa02", + "_id": "610eabf66e5de7ec1fc337d0", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "core:class:Tx", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829513, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "domain": "tx", @@ -114,13 +114,13 @@ } }, { - "_id": "610ea19d8112f14a381cfa03", + "_id": "610eabf66e5de7ec1fc337d1", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "core:class:TxCUD", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829513, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -128,13 +128,13 @@ } }, { - "_id": "610ea19d8112f14a381cfa04", + "_id": "610eabf66e5de7ec1fc337d2", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "core:class:TxUpdateDoc", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829513, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -142,13 +142,13 @@ } }, { - "_id": "610ea19d8112f14a381cfa05", + "_id": "610eabf66e5de7ec1fc337d3", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "core:class:TxMixin", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829513, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -156,13 +156,13 @@ } }, { - "_id": "610ea19d8112f14a381cfa06", + "_id": "610eabf66e5de7ec1fc337d4", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "core:class:TxCreateDoc", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829513, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -170,13 +170,13 @@ } }, { - "_id": "610ea19d8112f14a381cfa07", + "_id": "610eabf66e5de7ec1fc337d5", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "core:class:Class", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829513, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "domain": "model", @@ -185,13 +185,13 @@ } }, { - "_id": "610ea19d8112f14a381cfa08", + "_id": "610eabf66e5de7ec1fc337d6", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "core:class:Mixin", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829513, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -199,13 +199,13 @@ } }, { - "_id": "610ea19d8112f14a381cfa09", + "_id": "610eabf66e5de7ec1fc337d7", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "view:class:Viewlet", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829513, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "domain": "model", @@ -214,13 +214,13 @@ } }, { - "_id": "610ea19d8112f14a381cfa0a", + "_id": "610eabf66e5de7ec1fc337d8", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "view:class:ViewletDescriptor", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829513, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "domain": "model", @@ -229,13 +229,13 @@ } }, { - "_id": "610ea19d8112f14a381cfa0b", + "_id": "610eabf66e5de7ec1fc337d9", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "view:mixin:AttributePresenter", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829513, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -243,13 +243,13 @@ } }, { - "_id": "610ea19d8112f14a381cfa0c", + "_id": "610eabf66e5de7ec1fc337da", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "view:mixin:AttributeEditor", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829513, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -257,11 +257,11 @@ } }, { - "_id": "610ea19d8112f14a381cfa0d", + "_id": "610eabf66e5de7ec1fc337db", "_class": "core:class:TxMixin", "space": "core:space:Tx", "modifiedBy": "core:account:System", - "modifiedOn": 1628348829513, + "modifiedOn": 1628351478403, "objectId": "core:class:TypeString", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", @@ -271,11 +271,11 @@ } }, { - "_id": "610ea19d8112f14a381cfa0e", + "_id": "610eabf66e5de7ec1fc337dc", "_class": "core:class:TxMixin", "space": "core:space:Tx", "modifiedBy": "core:account:System", - "modifiedOn": 1628348829513, + "modifiedOn": 1628351478403, "objectId": "core:class:TypeString", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", @@ -285,13 +285,13 @@ } }, { - "_id": "610ea19d8112f14a381cfa0f", + "_id": "610eabf66e5de7ec1fc337dd", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "view:viewlet:Table", "objectClass": "view:class:ViewletDescriptor", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829513, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "label": "Table", @@ -300,13 +300,13 @@ } }, { - "_id": "610ea19d8112f14a381cfa10", + "_id": "610eabf66e5de7ec1fc337de", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "workbench:mixin:SpaceView", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829513, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -314,13 +314,13 @@ } }, { - "_id": "610ea19d8112f14a381cfa11", + "_id": "610eabf66e5de7ec1fc337df", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "workbench:class:Application", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829513, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "domain": "model", @@ -329,13 +329,13 @@ } }, { - "_id": "610ea19d8112f14a381cfa12", + "_id": "610eabf66e5de7ec1fc337e0", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "contact:class:Contact", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829513, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -343,13 +343,13 @@ } }, { - "_id": "610ea19d8112f14a381cfa13", + "_id": "610eabf66e5de7ec1fc337e1", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "contact:class:Person", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829513, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -358,12 +358,12 @@ } }, { - "_id": "610ea19d8112f14a381cfa14", - "objectId": "610ea19d8112f14a381cfa15", + "_id": "610eabf66e5de7ec1fc337e2", + "objectId": "610eabf66e5de7ec1fc337e3", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "modifiedBy": "core:account:System", - "modifiedOn": 1628348829403, + "modifiedOn": 1628351478239, "objectSpace": "core:space:Model", "objectClass": "core:class:Attribute", "attributes": { @@ -376,12 +376,12 @@ } }, { - "_id": "610ea19d8112f14a381cfa16", - "objectId": "610ea19d8112f14a381cfa17", + "_id": "610eabf66e5de7ec1fc337e4", + "objectId": "610eabf66e5de7ec1fc337e5", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "modifiedBy": "core:account:System", - "modifiedOn": 1628348829403, + "modifiedOn": 1628351478239, "objectSpace": "core:space:Model", "objectClass": "core:class:Attribute", "attributes": { @@ -394,12 +394,12 @@ } }, { - "_id": "610ea19d8112f14a381cfa18", - "objectId": "610ea19d8112f14a381cfa19", + "_id": "610eabf66e5de7ec1fc337e6", + "objectId": "610eabf66e5de7ec1fc337e7", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "modifiedBy": "core:account:System", - "modifiedOn": 1628348829403, + "modifiedOn": 1628351478239, "objectSpace": "core:space:Model", "objectClass": "core:class:Attribute", "attributes": { @@ -412,12 +412,12 @@ } }, { - "_id": "610ea19d8112f14a381cfa1a", - "objectId": "610ea19d8112f14a381cfa1b", + "_id": "610eabf66e5de7ec1fc337e8", + "objectId": "610eabf66e5de7ec1fc337e9", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "modifiedBy": "core:account:System", - "modifiedOn": 1628348829403, + "modifiedOn": 1628351478239, "objectSpace": "core:space:Model", "objectClass": "core:class:Attribute", "attributes": { @@ -430,12 +430,12 @@ } }, { - "_id": "610ea19d8112f14a381cfa1c", - "objectId": "610ea19d8112f14a381cfa1d", + "_id": "610eabf66e5de7ec1fc337ea", + "objectId": "610eabf66e5de7ec1fc337eb", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "modifiedBy": "core:account:System", - "modifiedOn": 1628348829403, + "modifiedOn": 1628351478239, "objectSpace": "core:space:Model", "objectClass": "core:class:Attribute", "attributes": { @@ -448,13 +448,13 @@ } }, { - "_id": "610ea19d8112f14a381cfa1e", + "_id": "610eabf66e5de7ec1fc337ec", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "contact:class:Employee", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829513, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -462,13 +462,13 @@ } }, { - "_id": "610ea19d8112f14a381cfa1f", + "_id": "610eabf66e5de7ec1fc337ed", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "contact:class:Organization", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829513, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -476,11 +476,11 @@ } }, { - "_id": "610ea19d8112f14a381cfa20", + "_id": "610eabf66e5de7ec1fc337ee", "_class": "core:class:TxMixin", "space": "core:space:Tx", "modifiedBy": "core:account:System", - "modifiedOn": 1628348829513, + "modifiedOn": 1628351478403, "objectId": "contact:class:Person", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", @@ -490,178 +490,13 @@ } }, { - "_id": "610ea19d8112f14a381cfa21", - "_class": "core:class:TxCreateDoc", - "space": "core:space:Tx", - "objectId": "task:class:Task", - "objectClass": "core:class:Class", - "objectSpace": "core:space:Model", - "modifiedOn": 1628348829513, - "modifiedBy": "core:account:System", - "attributes": { - "kind": 0, - "extends": "core:class:Doc" - } - }, - { - "_id": "610ea19d8112f14a381cfa22", - "objectId": "610ea19d8112f14a381cfa23", - "_class": "core:class:TxCreateDoc", - "space": "core:space:Tx", - "modifiedBy": "core:account:System", - "modifiedOn": 1628348829454, - "objectSpace": "core:space:Model", - "objectClass": "core:class:Attribute", - "attributes": { - "type": { - "_class": "core:class:TypeString" - }, - "name": "title", - "label": "Title", - "attributeOf": "task:class:Task" - } - }, - { - "_id": "610ea19d8112f14a381cfa24", - "objectId": "610ea19d8112f14a381cfa25", - "_class": "core:class:TxCreateDoc", - "space": "core:space:Tx", - "modifiedBy": "core:account:System", - "modifiedOn": 1628348829454, - "objectSpace": "core:space:Model", - "objectClass": "core:class:Attribute", - "attributes": { - "type": { - "_class": "core:class:TypeString" - }, - "name": "description", - "label": "Description", - "attributeOf": "task:class:Task" - } - }, - { - "_id": "610ea19d8112f14a381cfa26", - "objectId": "610ea19d8112f14a381cfa27", - "_class": "core:class:TxCreateDoc", - "space": "core:space:Tx", - "modifiedBy": "core:account:System", - "modifiedOn": 1628348829454, - "objectSpace": "core:space:Model", - "objectClass": "core:class:Attribute", - "attributes": { - "type": { - "_class": "core:class:TypeString" - }, - "name": "assignee", - "label": "Assignee", - "attributeOf": "task:class:Task" - } - }, - { - "_id": "610ea19d8112f14a381cfa28", - "_class": "core:class:TxCreateDoc", - "space": "core:space:Tx", - "objectId": "task:class:Project", - "objectClass": "core:class:Class", - "objectSpace": "core:space:Model", - "modifiedOn": 1628348829513, - "modifiedBy": "core:account:System", - "attributes": { - "kind": 0, - "extends": "core:class:Space", - "label": "Project", - "icon": "task:icon:Task" - } - }, - { - "_id": "610ea19d8112f14a381cfa29", - "_class": "core:class:TxMixin", - "space": "core:space:Tx", - "modifiedBy": "core:account:System", - "modifiedOn": 1628348829513, - "objectId": "task:class:Project", - "objectClass": "core:class:Class", - "objectSpace": "core:space:Model", - "mixin": "workbench:mixin:SpaceView", - "attributes": { - "view": { - "class": "task:class:Task", - "createItemDialog": "task:component:CreateTask" - } - } - }, - { - "_id": "610ea19d8112f14a381cfa2a", - "_class": "core:class:TxCreateDoc", - "space": "core:space:Tx", - "objectId": "610ea19d8112f14a381cfa2b", - "objectClass": "view:class:Viewlet", - "objectSpace": "core:space:Model", - "modifiedOn": 1628348829513, - "modifiedBy": "core:account:System", - "attributes": { - "attachTo": "task:class:Task", - "descriptor": "view:viewlet:Table", - "open": "ZX", - "options": { - "lookup": { - "assignee": "contact:class:Employee" - } - }, - "config": [ - "title", - "$lookup.assignee" - ] - } - }, - { - "_id": "610ea19d8112f14a381cfa2c", - "_class": "core:class:TxCreateDoc", - "space": "core:space:Tx", - "objectId": "610ea19d8112f14a381cfa2d", - "objectClass": "workbench:class:Application", - "objectSpace": "core:space:Model", - "modifiedOn": 1628348829513, - "modifiedBy": "core:account:System", - "attributes": { - "label": "task:string:ApplicationLabelTask", - "icon": "task:icon:Task", - "navigatorModel": { - "spaces": [ - { - "label": "task:string:Projects", - "spaceClass": "task:class:Project", - "addSpaceLabel": "task:string:CreateProject", - "createComponent": "task:component:CreateProject" - } - ] - } - } - }, - { - "_id": "610ea19d8112f14a381cfa2e", - "_class": "core:class:TxCreateDoc", - "space": "core:space:Tx", - "objectId": "610ea19d8112f14a381cfa2f", - "objectClass": "task:class:Project", - "objectSpace": "core:space:Model", - "modifiedOn": 1628348829513, - "modifiedBy": "core:account:System", - "attributes": { - "name": "demo", - "description": "Demo Project", - "private": false, - "members": [] - } - }, - { - "_id": "610ea19d8112f14a381cfa30", + "_id": "610eabf66e5de7ec1fc337ef", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "chunter:class:Backlink", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829514, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -669,13 +504,13 @@ } }, { - "_id": "610ea19d8112f14a381cfa31", + "_id": "610eabf66e5de7ec1fc337f0", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "chunter:class:Message", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829514, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -683,13 +518,13 @@ } }, { - "_id": "610ea19d8112f14a381cfa32", + "_id": "610eabf66e5de7ec1fc337f1", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "chunter:class:Channel", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829514, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "kind": 0, @@ -699,11 +534,11 @@ } }, { - "_id": "610ea19d8112f14a381cfa33", + "_id": "610eabf66e5de7ec1fc337f2", "_class": "core:class:TxMixin", "space": "core:space:Tx", "modifiedBy": "core:account:System", - "modifiedOn": 1628348829514, + "modifiedOn": 1628351478403, "objectId": "chunter:class:Channel", "objectClass": "core:class:Class", "objectSpace": "core:space:Model", @@ -715,13 +550,13 @@ } }, { - "_id": "610ea19d8112f14a381cfa34", + "_id": "610eabf66e5de7ec1fc337f3", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", "objectId": "chunter:viewlet:Chat", "objectClass": "view:class:ViewletDescriptor", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829514, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "label": "Chat", @@ -730,13 +565,13 @@ } }, { - "_id": "610ea19d8112f14a381cfa35", + "_id": "610eabf66e5de7ec1fc337f4", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", - "objectId": "610ea19d8112f14a381cfa36", + "objectId": "610eabf66e5de7ec1fc337f5", "objectClass": "view:class:Viewlet", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829514, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "attachTo": "chunter:class:Message", @@ -746,13 +581,13 @@ } }, { - "_id": "610ea19d8112f14a381cfa37", + "_id": "610eabf66e5de7ec1fc337f6", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", - "objectId": "610ea19d8112f14a381cfa38", + "objectId": "610eabf66e5de7ec1fc337f7", "objectClass": "workbench:class:Application", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829514, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "label": "chunter:string:ApplicationLabelChunter", @@ -770,13 +605,13 @@ } }, { - "_id": "610ea19d8112f14a381cfa39", + "_id": "610eabf66e5de7ec1fc337f8", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", - "objectId": "610ea19d8112f14a381cfa3a", + "objectId": "610eabf66e5de7ec1fc337f9", "objectClass": "chunter:class:Channel", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829514, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "name": "general", @@ -786,13 +621,13 @@ } }, { - "_id": "610ea19d8112f14a381cfa3b", + "_id": "610eabf66e5de7ec1fc337fa", "_class": "core:class:TxCreateDoc", "space": "core:space:Tx", - "objectId": "610ea19d8112f14a381cfa3c", + "objectId": "610eabf66e5de7ec1fc337fb", "objectClass": "chunter:class:Channel", "objectSpace": "core:space:Model", - "modifiedOn": 1628348829514, + "modifiedOn": 1628351478403, "modifiedBy": "core:account:System", "attributes": { "name": "random", @@ -800,5 +635,409 @@ "private": false, "members": [] } + }, + { + "_id": "610eabf66e5de7ec1fc337fc", + "_class": "core:class:TxCreateDoc", + "space": "core:space:Tx", + "objectId": "task:class:Task", + "objectClass": "core:class:Class", + "objectSpace": "core:space:Model", + "modifiedOn": 1628351478403, + "modifiedBy": "core:account:System", + "attributes": { + "kind": 0, + "extends": "core:class:Doc" + } + }, + { + "_id": "610eabf66e5de7ec1fc337fd", + "objectId": "610eabf66e5de7ec1fc337fe", + "_class": "core:class:TxCreateDoc", + "space": "core:space:Tx", + "modifiedBy": "core:account:System", + "modifiedOn": 1628351478287, + "objectSpace": "core:space:Model", + "objectClass": "core:class:Attribute", + "attributes": { + "type": { + "_class": "core:class:TypeString" + }, + "name": "title", + "label": "Title", + "attributeOf": "task:class:Task" + } + }, + { + "_id": "610eabf66e5de7ec1fc337ff", + "objectId": "610eabf66e5de7ec1fc33800", + "_class": "core:class:TxCreateDoc", + "space": "core:space:Tx", + "modifiedBy": "core:account:System", + "modifiedOn": 1628351478287, + "objectSpace": "core:space:Model", + "objectClass": "core:class:Attribute", + "attributes": { + "type": { + "_class": "core:class:TypeString" + }, + "name": "description", + "label": "Description", + "attributeOf": "task:class:Task" + } + }, + { + "_id": "610eabf66e5de7ec1fc33801", + "objectId": "610eabf66e5de7ec1fc33802", + "_class": "core:class:TxCreateDoc", + "space": "core:space:Tx", + "modifiedBy": "core:account:System", + "modifiedOn": 1628351478287, + "objectSpace": "core:space:Model", + "objectClass": "core:class:Attribute", + "attributes": { + "type": { + "_class": "core:class:TypeString" + }, + "name": "assignee", + "label": "Assignee", + "attributeOf": "task:class:Task" + } + }, + { + "_id": "610eabf66e5de7ec1fc33803", + "_class": "core:class:TxCreateDoc", + "space": "core:space:Tx", + "objectId": "task:class:Project", + "objectClass": "core:class:Class", + "objectSpace": "core:space:Model", + "modifiedOn": 1628351478404, + "modifiedBy": "core:account:System", + "attributes": { + "kind": 0, + "extends": "core:class:Space", + "label": "Project", + "icon": "task:icon:Task" + } + }, + { + "_id": "610eabf66e5de7ec1fc33804", + "_class": "core:class:TxMixin", + "space": "core:space:Tx", + "modifiedBy": "core:account:System", + "modifiedOn": 1628351478404, + "objectId": "task:class:Project", + "objectClass": "core:class:Class", + "objectSpace": "core:space:Model", + "mixin": "workbench:mixin:SpaceView", + "attributes": { + "view": { + "class": "task:class:Task", + "createItemDialog": "task:component:CreateTask" + } + } + }, + { + "_id": "610eabf66e5de7ec1fc33805", + "_class": "core:class:TxCreateDoc", + "space": "core:space:Tx", + "objectId": "610eabf66e5de7ec1fc33806", + "objectClass": "view:class:Viewlet", + "objectSpace": "core:space:Model", + "modifiedOn": 1628351478404, + "modifiedBy": "core:account:System", + "attributes": { + "attachTo": "task:class:Task", + "descriptor": "view:viewlet:Table", + "open": "ZX", + "options": { + "lookup": { + "assignee": "contact:class:Employee" + } + }, + "config": [ + "title", + "$lookup.assignee" + ] + } + }, + { + "_id": "610eabf66e5de7ec1fc33807", + "_class": "core:class:TxCreateDoc", + "space": "core:space:Tx", + "objectId": "610eabf66e5de7ec1fc33808", + "objectClass": "workbench:class:Application", + "objectSpace": "core:space:Model", + "modifiedOn": 1628351478404, + "modifiedBy": "core:account:System", + "attributes": { + "label": "task:string:ApplicationLabelTask", + "icon": "task:icon:Task", + "navigatorModel": { + "spaces": [ + { + "label": "task:string:Projects", + "spaceClass": "task:class:Project", + "addSpaceLabel": "task:string:CreateProject", + "createComponent": "task:component:CreateProject" + } + ] + } + } + }, + { + "_id": "610eabf66e5de7ec1fc33809", + "_class": "core:class:TxCreateDoc", + "space": "core:space:Tx", + "objectId": "610eabf66e5de7ec1fc3380a", + "objectClass": "task:class:Project", + "objectSpace": "core:space:Model", + "modifiedOn": 1628351478404, + "modifiedBy": "core:account:System", + "attributes": { + "name": "demo", + "description": "Demo Project", + "private": false, + "members": [] + } + }, + { + "_id": "610eabf66e5de7ec1fc3380b", + "_class": "core:class:TxCreateDoc", + "space": "core:space:Tx", + "objectId": "recruit:class:Applicant", + "objectClass": "core:class:Class", + "objectSpace": "core:space:Model", + "modifiedOn": 1628351478404, + "modifiedBy": "core:account:System", + "attributes": { + "kind": 0, + "extends": "core:class:Doc" + } + }, + { + "_id": "610eabf66e5de7ec1fc3380c", + "objectId": "610eabf66e5de7ec1fc3380d", + "_class": "core:class:TxCreateDoc", + "space": "core:space:Tx", + "modifiedBy": "core:account:System", + "modifiedOn": 1628351478402, + "objectSpace": "core:space:Model", + "objectClass": "core:class:Attribute", + "attributes": { + "type": { + "_class": "core:class:TypeString" + }, + "name": "candidate", + "label": "Candidate", + "attributeOf": "recruit:class:Applicant" + } + }, + { + "_id": "610eabf66e5de7ec1fc3380e", + "_class": "core:class:TxCreateDoc", + "space": "core:space:Tx", + "objectId": "recruit:class:Candidate", + "objectClass": "core:class:Class", + "objectSpace": "core:space:Model", + "modifiedOn": 1628351478404, + "modifiedBy": "core:account:System", + "attributes": { + "kind": 0, + "extends": "contact:class:Person", + "label": "Candidate" + } + }, + { + "_id": "610eabf66e5de7ec1fc3380f", + "_class": "core:class:TxCreateDoc", + "space": "core:space:Tx", + "objectId": "recruit:class:Candidates", + "objectClass": "core:class:Class", + "objectSpace": "core:space:Model", + "modifiedOn": 1628351478404, + "modifiedBy": "core:account:System", + "attributes": { + "kind": 0, + "extends": "core:class:Space", + "label": "recruit:string:CandidatePools", + "icon": "recruit:icon:RecruitApplication" + } + }, + { + "_id": "610eabf66e5de7ec1fc33810", + "_class": "core:class:TxCreateDoc", + "space": "core:space:Tx", + "objectId": "recruit:class:Vacancy", + "objectClass": "core:class:Class", + "objectSpace": "core:space:Model", + "modifiedOn": 1628351478404, + "modifiedBy": "core:account:System", + "attributes": { + "kind": 0, + "extends": "core:class:Space", + "label": "recruit:string:Vacancy", + "icon": "recruit:icon:Vacancy" + } + }, + { + "_id": "610eabf66e5de7ec1fc33811", + "_class": "core:class:TxMixin", + "space": "core:space:Tx", + "modifiedBy": "core:account:System", + "modifiedOn": 1628351478404, + "objectId": "recruit:class:Vacancy", + "objectClass": "core:class:Class", + "objectSpace": "core:space:Model", + "mixin": "workbench:mixin:SpaceView", + "attributes": { + "view": { + "class": "recruit:class:Applicant", + "createItemDialog": "recruit:component:CreateApplication" + } + } + }, + { + "_id": "610eabf66e5de7ec1fc33812", + "_class": "core:class:TxMixin", + "space": "core:space:Tx", + "modifiedBy": "core:account:System", + "modifiedOn": 1628351478404, + "objectId": "recruit:class:Candidates", + "objectClass": "core:class:Class", + "objectSpace": "core:space:Model", + "mixin": "workbench:mixin:SpaceView", + "attributes": { + "view": { + "class": "recruit:class:Candidate", + "createItemDialog": "recruit:component:CreateCandidate" + } + } + }, + { + "_id": "610eabf66e5de7ec1fc33813", + "_class": "core:class:TxCreateDoc", + "space": "core:space:Tx", + "objectId": "610eabf66e5de7ec1fc33814", + "objectClass": "workbench:class:Application", + "objectSpace": "core:space:Model", + "modifiedOn": 1628351478404, + "modifiedBy": "core:account:System", + "attributes": { + "label": "recruit:string:RecruitApplication", + "icon": "recruit:icon:RecruitApplication", + "navigatorModel": { + "spaces": [ + { + "label": "recruit:string:Vacancies", + "spaceClass": "recruit:class:Vacancy", + "addSpaceLabel": "recruit:string:CreateVacancy", + "createComponent": "recruit:component:CreateVacancy" + }, + { + "label": "recruit:string:CandidatePools", + "spaceClass": "recruit:class:Candidates", + "addSpaceLabel": "recruit:string:CreateCandidates", + "createComponent": "recruit:component:CreateCandidates" + } + ] + } + } + }, + { + "_id": "610eabf66e5de7ec1fc33815", + "_class": "core:class:TxCreateDoc", + "space": "core:space:Tx", + "objectId": "recruit:space:CandidatesPublic", + "objectClass": "recruit:class:Candidates", + "objectSpace": "core:space:Model", + "modifiedOn": 1628351478404, + "modifiedBy": "core:account:System", + "attributes": { + "name": "public", + "description": "Public Candidates", + "private": false, + "members": [] + } + }, + { + "_id": "610eabf66e5de7ec1fc33816", + "_class": "core:class:TxCreateDoc", + "space": "core:space:Tx", + "objectId": "610eabf66e5de7ec1fc33817", + "objectClass": "view:class:Viewlet", + "objectSpace": "core:space:Model", + "modifiedOn": 1628351478404, + "modifiedBy": "core:account:System", + "attributes": { + "attachTo": "recruit:class:Candidate", + "descriptor": "view:viewlet:Table", + "open": "recruit:component:EditCandidate", + "config": [ + "", + "email", + "phone", + "city" + ] + } + }, + { + "_id": "610eabf66e5de7ec1fc33818", + "_class": "core:class:TxCreateDoc", + "space": "core:space:Tx", + "objectId": "610eabf66e5de7ec1fc33819", + "objectClass": "view:class:Viewlet", + "objectSpace": "core:space:Model", + "modifiedOn": 1628351478404, + "modifiedBy": "core:account:System", + "attributes": { + "attachTo": "recruit:class:Applicant", + "descriptor": "view:viewlet:Table", + "open": "recruit:component:EditCandidate", + "options": { + "lookup": { + "candidate": "recruit:class:Candidate" + } + }, + "config": [ + "$lookup.candidate", + "$lookup.candidate.email", + "$lookup.candidate.city" + ] + } + }, + { + "_id": "610eabf66e5de7ec1fc3381a", + "_class": "core:class:TxCreateDoc", + "space": "core:space:Tx", + "objectId": "610eabf66e5de7ec1fc3381b", + "objectClass": "recruit:class:Candidate", + "objectSpace": "recruit:space:CandidatesPublic", + "modifiedOn": 1628351478404, + "modifiedBy": "core:account:System", + "attributes": { + "firstName": "Andrey", + "lastName": "P.", + "email": "andrey@hc.engineering", + "phone": "+1 646 667 6832", + "city": "Monte Carlo" + } + }, + { + "_id": "610eabf66e5de7ec1fc3381c", + "_class": "core:class:TxCreateDoc", + "space": "core:space:Tx", + "objectId": "610eabf66e5de7ec1fc3381d", + "objectClass": "recruit:class:Candidate", + "objectSpace": "recruit:space:CandidatesPublic", + "modifiedOn": 1628351478404, + "modifiedBy": "core:account:System", + "attributes": { + "firstName": "Marina", + "lastName": "M.", + "email": "marina@hc.engineering", + "phone": "+1 646 777 3333", + "city": "Los Angeles" + } } ] \ No newline at end of file diff --git a/models/all/package.json b/models/all/package.json index fb06da9fa3..73bf927643 100644 --- a/models/all/package.json +++ b/models/all/package.json @@ -26,6 +26,8 @@ "@anticrm/model-workbench": "~0.6.0", "@anticrm/model-contact": "~0.6.0", "@anticrm/model-task": "~0.6.0", - "@anticrm/model-chunter": "~0.6.0" + "@anticrm/model-chunter": "~0.6.0", + "@anticrm/model-recruit": "~0.6.0", + "@anticrm/model-demo": "~0.6.0" } } diff --git a/models/all/src/index.ts b/models/all/src/index.ts index c4092c1572..23d93fbcb2 100644 --- a/models/all/src/index.ts +++ b/models/all/src/index.ts @@ -21,9 +21,9 @@ import { createModel as workbenchModel } from '@anticrm/model-workbench' import { createModel as contactModel } from '@anticrm/model-contact' import { createModel as taskModel } from '@anticrm/model-task' import { createModel as chunterModel } from '@anticrm/model-chunter' -// import { createModel as recruitModel } from '@anticrm/model-recruit' +import { createModel as recruitModel } from '@anticrm/model-recruit' -// import { createDemo } from '@anticrm/model-demo' +import { createDemo } from '@anticrm/model-demo' const builder = new Builder() @@ -33,8 +33,8 @@ workbenchModel(builder) contactModel(builder) chunterModel(builder) taskModel(builder) -// recruitModel(builder) +recruitModel(builder) -// createDemo(builder) +createDemo(builder) export default builder diff --git a/models/demo/.eslintrc.js b/models/demo/.eslintrc.js new file mode 100644 index 0000000000..1375671262 --- /dev/null +++ b/models/demo/.eslintrc.js @@ -0,0 +1,6 @@ +module.exports = { + extends: ['./node_modules/@anticrm/model-rig/profiles/default/config/eslint.config.json'], + parserOptions: { + project: './tsconfig.json' + } +} \ No newline at end of file diff --git a/models/demo/.npmignore b/models/demo/.npmignore new file mode 100644 index 0000000000..e3ec093c38 --- /dev/null +++ b/models/demo/.npmignore @@ -0,0 +1,4 @@ +* +!/lib/** +!CHANGELOG.md +/lib/**/__tests__/ diff --git a/models/demo/config/rig.json b/models/demo/config/rig.json new file mode 100644 index 0000000000..e9a9ee9add --- /dev/null +++ b/models/demo/config/rig.json @@ -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" +} diff --git a/models/demo/package.json b/models/demo/package.json new file mode 100644 index 0000000000..4a7bfa8f33 --- /dev/null +++ b/models/demo/package.json @@ -0,0 +1,25 @@ +{ + "name": "@anticrm/model-demo", + "version": "0.6.0", + "main": "lib/index.js", + "author": "Anticrm Platform Contributors", + "license": "EPL-2.0", + "scripts": { + "build": "heft build", + "lint:fix": "eslint --fix src" + }, + "devDependencies": { + "@anticrm/model-rig":"~0.6.0", + "@typescript-eslint/eslint-plugin":"4", + "eslint-plugin-import":"2", + "eslint-plugin-promise":"4", + "eslint-plugin-node":"11", + "eslint":"^7.32.0" + }, + "dependencies": { + "@anticrm/core": "~0.6.7", + "@anticrm/model": "~0.6.0", + "@anticrm/platform": "~0.6.3", + "@anticrm/model-recruit":"~0.6.0" + } +} diff --git a/models/demo/src/index.ts b/models/demo/src/index.ts new file mode 100644 index 0000000000..2e323322c7 --- /dev/null +++ b/models/demo/src/index.ts @@ -0,0 +1,37 @@ +// +// Copyright © 2020, 2021 Anticrm Platform Contributors. +// Copyright © 2021 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 recruit from '@anticrm/model-recruit' + +export function createDemo (builder: Builder): void { + builder.createDoc(recruit.class.Candidate, recruit.space.CandidatesPublic, { + firstName: 'Andrey', + lastName: 'P.', + email: 'andrey@hc.engineering', + phone: '+1 646 667 6832', + city: 'Monte Carlo' + }) + + builder.createDoc(recruit.class.Candidate, recruit.space.CandidatesPublic, { + firstName: 'Marina', + lastName: 'M.', + email: 'marina@hc.engineering', + phone: '+1 646 777 3333', + city: 'Los Angeles' + }) +} diff --git a/models/demo/tsconfig.json b/models/demo/tsconfig.json new file mode 100644 index 0000000000..1d60db76b4 --- /dev/null +++ b/models/demo/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "./node_modules/@anticrm/model-rig/profiles/default/tsconfig.json", + + "compilerOptions": { + "rootDir": "./src", + "outDir": "./lib", + } +} \ No newline at end of file diff --git a/models/recruit/.eslintrc.js b/models/recruit/.eslintrc.js new file mode 100644 index 0000000000..1375671262 --- /dev/null +++ b/models/recruit/.eslintrc.js @@ -0,0 +1,6 @@ +module.exports = { + extends: ['./node_modules/@anticrm/model-rig/profiles/default/config/eslint.config.json'], + parserOptions: { + project: './tsconfig.json' + } +} \ No newline at end of file diff --git a/models/recruit/.npmignore b/models/recruit/.npmignore new file mode 100644 index 0000000000..e3ec093c38 --- /dev/null +++ b/models/recruit/.npmignore @@ -0,0 +1,4 @@ +* +!/lib/** +!CHANGELOG.md +/lib/**/__tests__/ diff --git a/models/recruit/config/rig.json b/models/recruit/config/rig.json new file mode 100644 index 0000000000..e9a9ee9add --- /dev/null +++ b/models/recruit/config/rig.json @@ -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" +} diff --git a/models/recruit/package.json b/models/recruit/package.json new file mode 100644 index 0000000000..a31338216a --- /dev/null +++ b/models/recruit/package.json @@ -0,0 +1,32 @@ +{ + "name": "@anticrm/model-recruit", + "version": "0.6.0", + "main": "lib/index.js", + "author": "Anticrm Platform Contributors", + "license": "EPL-2.0", + "scripts": { + "build": "heft build", + "lint:fix": "eslint --fix src" + }, + "devDependencies": { + "@anticrm/model-rig":"~0.6.0", + "@typescript-eslint/eslint-plugin":"4", + "eslint-plugin-import":"2", + "eslint-plugin-promise":"4", + "eslint-plugin-node":"11", + "eslint":"^7.32.0" + }, + "dependencies": { + "@anticrm/core": "~0.6.7", + "@anticrm/model": "~0.6.0", + "@anticrm/ui": "~0.6.0", + "@anticrm/contact": "~0.6.0", + "@anticrm/platform": "~0.6.3", + "@anticrm/model-core": "~0.6.0", + "@anticrm/model-view": "~0.6.0", + "@anticrm/model-workbench": "~0.6.0", + "@anticrm/model-contact": "~0.6.0", + "@anticrm/recruit": "~0.6.0", + "@anticrm/recruit-resources": "~0.6.0" + } +} diff --git a/models/recruit/src/index.ts b/models/recruit/src/index.ts new file mode 100644 index 0000000000..047acfad66 --- /dev/null +++ b/models/recruit/src/index.ts @@ -0,0 +1,112 @@ +// +// 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. +// + +import type { IntlString } from '@anticrm/platform' +import { Builder, Model, UX, Prop, TypeString } from '@anticrm/model' +import type { Ref, FindOptions, Doc } from '@anticrm/core' +import core, { TSpace, TDoc } from '@anticrm/model-core' +import type { Vacancy, Candidates, Candidate, Applicant } from '@anticrm/recruit' + +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' + +@Model(recruit.class.Vacancy, core.class.Space) +@UX(recruit.string.Vacancy, recruit.icon.Vacancy) +export class TVacancy extends TSpace implements Vacancy {} + +@Model(recruit.class.Candidates, core.class.Space) +@UX(recruit.string.CandidatePools, recruit.icon.RecruitApplication) +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 {} + +@Model(recruit.class.Applicant, core.class.Doc) +export class TApplicant extends TDoc implements Applicant { + @Prop(TypeString(), 'Candidate' as IntlString) + candidate!: Ref +} + +export function createModel (builder: Builder): void { + builder.createModel(TVacancy, TCandidates, TCandidate, TApplicant) + + builder.mixin(recruit.class.Vacancy, core.class.Class, workbench.mixin.SpaceView, { + view: { + class: recruit.class.Applicant, + createItemDialog: recruit.component.CreateApplication + } + }) + + builder.mixin(recruit.class.Candidates, core.class.Class, workbench.mixin.SpaceView, { + view: { + class: recruit.class.Candidate, + createItemDialog: recruit.component.CreateCandidate + } + }) + + builder.createDoc(workbench.class.Application, core.space.Model, { + label: recruit.string.RecruitApplication, + icon: recruit.icon.RecruitApplication, + navigatorModel: { + spaces: [ + { + label: recruit.string.Vacancies, + spaceClass: recruit.class.Vacancy, + addSpaceLabel: recruit.string.CreateVacancy, + createComponent: recruit.component.CreateVacancy + }, + { + label: recruit.string.CandidatePools, + spaceClass: recruit.class.Candidates, + addSpaceLabel: recruit.string.CreateCandidates, + createComponent: recruit.component.CreateCandidates + } + ] + } + }) + builder.createDoc(recruit.class.Candidates, core.space.Model, { + name: 'public', + description: 'Public Candidates', + private: false, + members: [] + }, recruit.space.CandidatesPublic) + + builder.createDoc(view.class.Viewlet, core.space.Model, { + attachTo: recruit.class.Candidate, + descriptor: view.viewlet.Table, + open: recruit.component.EditCandidate, + config: ['', 'email', 'phone', 'city'] + }) + + builder.createDoc(view.class.Viewlet, core.space.Model, { + attachTo: recruit.class.Applicant, + descriptor: view.viewlet.Table, + open: recruit.component.EditCandidate, + // eslint-disable-next-line @typescript-eslint/consistent-type-assertions + options: { + lookup: { + candidate: recruit.class.Candidate + } + } as FindOptions, + config: ['$lookup.candidate', '$lookup.candidate.email', '$lookup.candidate.city'] + }) +} + +export { default } from './plugin' diff --git a/models/recruit/src/plugin.ts b/models/recruit/src/plugin.ts new file mode 100644 index 0000000000..0f07245e68 --- /dev/null +++ b/models/recruit/src/plugin.ts @@ -0,0 +1,40 @@ +// +// Copyright © 2020 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. +// + +import { mergeIds } from '@anticrm/platform' +import type { IntlString } from '@anticrm/platform' +import type { Ref, Space } from '@anticrm/core' +import type { AnyComponent } from '@anticrm/ui' +import { recruitId } from '@anticrm/recruit' +import recruit from '@anticrm/recruit-resources/src/plugin' + +export default mergeIds(recruitId, recruit, { + string: { + RecruitApplication: '' as IntlString, + Vacancies: '' as IntlString, + CandidatePools: '' as IntlString, + Vacancy: '' as IntlString + }, + component: { + CreateVacancy: '' as AnyComponent, + CreateCandidates: '' as AnyComponent, + CreateCandidate: '' as AnyComponent, + CreateApplication: '' as AnyComponent, + EditCandidate: '' as AnyComponent + }, + space: { + CandidatesPublic: '' as Ref + } +}) diff --git a/models/recruit/tsconfig.json b/models/recruit/tsconfig.json new file mode 100644 index 0000000000..1d60db76b4 --- /dev/null +++ b/models/recruit/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "./node_modules/@anticrm/model-rig/profiles/default/tsconfig.json", + + "compilerOptions": { + "rootDir": "./src", + "outDir": "./lib", + } +} \ No newline at end of file diff --git a/plugins/recruit-assets/assets/icons.svg b/plugins/recruit-assets/assets/icons.svg new file mode 100644 index 0000000000..0aee3466a8 --- /dev/null +++ b/plugins/recruit-assets/assets/icons.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/recruit-assets/lang/en.json b/plugins/recruit-assets/lang/en.json new file mode 100644 index 0000000000..78de6651bd --- /dev/null +++ b/plugins/recruit-assets/lang/en.json @@ -0,0 +1,11 @@ +{ + "string": { + "Vacancies": "Vacancies", + "CandidatePools": "Candidates", + "VacancyName": "Vacancy Title *", + "VacancyDescription": "Vacancy Description", + "CreateVacancy": "Create Vacancy", + "CreateCandidate": "Create Candidate", + "MakePrivate": "Make Private" + } +} \ No newline at end of file diff --git a/plugins/recruit-assets/package.json b/plugins/recruit-assets/package.json new file mode 100644 index 0000000000..316652522b --- /dev/null +++ b/plugins/recruit-assets/package.json @@ -0,0 +1,21 @@ +{ + "name": "@anticrm/recruit-assets", + "version": "0.6.0", + "main": "src/index.ts", + "author": "Anticrm Platform Contributors", + "license": "EPL-2.0", + "scripts": { + "build": "", + "build:docs": "api-extractor run --local", + "test": "echo 'no tests'", + "lint": "ts-standard src", + "lint:fix": "ts-standard --fix src", + "format": "prettier --write 'src/**/*.{ts*,js*,yml}' && ts-standard --fix src" + }, + "devDependencies": { + }, + "dependencies": { + "@anticrm/platform":"~0.6.3", + "@anticrm/recruit":"~0.6.0" + } +} diff --git a/plugins/recruit-assets/src/index.ts b/plugins/recruit-assets/src/index.ts new file mode 100644 index 0000000000..3fa2d58bfb --- /dev/null +++ b/plugins/recruit-assets/src/index.ts @@ -0,0 +1,25 @@ +// +// Copyright © 2020 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. +// + +import { loadMetadata, addStringsLoader } from '@anticrm/platform' +import recruit, { recruitId } from '@anticrm/recruit' + +const icons = require('../assets/icons.svg') +loadMetadata(recruit.icon, { + RecruitApplication: `${icons}#recruitment`, + Vacancy: `${icons}#vacancy` +}) + +addStringsLoader(recruitId, async (lang: string) => await import(`../lang/${lang}.json`)) diff --git a/plugins/recruit-assets/tsconfig.json b/plugins/recruit-assets/tsconfig.json new file mode 100644 index 0000000000..cabe5aefad --- /dev/null +++ b/plugins/recruit-assets/tsconfig.json @@ -0,0 +1,15 @@ +{ + "compilerOptions": { + "moduleResolution": "node", + "target": "esnext", + "module": "esnext", + "declaration": true, + "outDir": "./lib", + "strict": true, + "esModuleInterop": true, + "lib": [ + "esnext", + "dom" + ] + } +} \ No newline at end of file diff --git a/plugins/recruit-resources/package.json b/plugins/recruit-resources/package.json new file mode 100644 index 0000000000..cecdec7172 --- /dev/null +++ b/plugins/recruit-resources/package.json @@ -0,0 +1,32 @@ +{ + "name": "@anticrm/recruit-resources", + "version": "0.6.0", + "main": "src/index.ts", + "author": "Anticrm Platform Contributors", + "license": "EPL-2.0", + "scripts": { + "build": "", + "build:docs": "api-extractor run --local", + "test": "jest", + "lint": "eslint src", + "lint:fix": "eslint --fix src", + "format": "prettier --write 'src/**/*.{ts*,js*,yml}' && eslint --fix src", + "svelte-check": "svelte-check" + }, + "devDependencies": { + "svelte-loader":"^3.1.2", + "sass":"^1.37.5", + "svelte-preprocess":"^4.7.4" + }, + "dependencies": { + "@anticrm/platform": "~0.6.0", + "@anticrm/core": "~0.6.0", + "svelte": "^3.37.0", + "@anticrm/recruit": "~0.6.0", + "@anticrm/ui": "~0.6.0", + "@anticrm/presentation": "~0.6.0", + "@anticrm/text-editor": "~0.6.0", + "@anticrm/chunter": "~0.6.0", + "@anticrm/contact": "~0.6.0" + } +} diff --git a/plugins/recruit-resources/postcss.config.js b/plugins/recruit-resources/postcss.config.js new file mode 100644 index 0000000000..88752c6cb0 --- /dev/null +++ b/plugins/recruit-resources/postcss.config.js @@ -0,0 +1,5 @@ +module.exports = { + plugins: [ + require('autoprefixer') + ] +} diff --git a/plugins/recruit-resources/src/components/Card.svelte b/plugins/recruit-resources/src/components/Card.svelte new file mode 100644 index 0000000000..4f2defe2a1 --- /dev/null +++ b/plugins/recruit-resources/src/components/Card.svelte @@ -0,0 +1,83 @@ + + + + +
+
+
+
{user.lastName} {user.firstName}
+
{user.description}
+
{user.city}
+ +
+ + diff --git a/plugins/recruit-resources/src/components/CardEmpty.svelte b/plugins/recruit-resources/src/components/CardEmpty.svelte new file mode 100644 index 0000000000..1f8fac0218 --- /dev/null +++ b/plugins/recruit-resources/src/components/CardEmpty.svelte @@ -0,0 +1,74 @@ + + + + +
+
+
+ +
+
+
+ + diff --git a/plugins/recruit-resources/src/components/CardView.svelte b/plugins/recruit-resources/src/components/CardView.svelte new file mode 100644 index 0000000000..029296973d --- /dev/null +++ b/plugins/recruit-resources/src/components/CardView.svelte @@ -0,0 +1,60 @@ + + + + + +
+ + {#each cards as card} + + {/each} +
+
+ + diff --git a/plugins/recruit-resources/src/components/CreateApplication.svelte b/plugins/recruit-resources/src/components/CreateApplication.svelte new file mode 100644 index 0000000000..dd8f3b9f09 --- /dev/null +++ b/plugins/recruit-resources/src/components/CreateApplication.svelte @@ -0,0 +1,56 @@ + + + + + { dispatch('close') }}> + +
+ + + + +
+
diff --git a/plugins/recruit-resources/src/components/CreateCandidate.svelte b/plugins/recruit-resources/src/components/CreateCandidate.svelte new file mode 100644 index 0000000000..453b7df2b6 --- /dev/null +++ b/plugins/recruit-resources/src/components/CreateCandidate.svelte @@ -0,0 +1,73 @@ + + + + + { dispatch('close') }}> + + +
+ + + + + + +
+
+ + + + + + +
+
diff --git a/plugins/recruit-resources/src/components/CreateCandidates.svelte b/plugins/recruit-resources/src/components/CreateCandidates.svelte new file mode 100644 index 0000000000..3bcaca2805 --- /dev/null +++ b/plugins/recruit-resources/src/components/CreateCandidates.svelte @@ -0,0 +1,51 @@ + + + + + { dispatch('close') }}> + + +