From b7a66b415dee2e3ea86fef629d4d4269326b8fe2 Mon Sep 17 00:00:00 2001 From: NicoleNG18 Date: Fri, 21 Mar 2025 12:21:50 +0200 Subject: [PATCH 1/3] Refactor module: - add roles to navigations - add roles to entities - add roles to event extension --- codbex-contracts/codbex-contracts.edm | 18 +- codbex-contracts/codbex-contracts.gen | 49 +++- codbex-contracts/codbex-contracts.model | 17 +- .../EmployeeContractItemToRecord.extension | 3 +- .../api/Contract/ContractService.ts | 19 ++ .../EmployeeContractItemService.ts | 19 ++ .../EmployeeContractService.ts | 19 ++ .../api/Settings/ContractTypeService.ts | 19 ++ .../dao/Contract/ContractRepository.ts | 2 +- .../gen/codbex-contracts/index.html | 2 +- .../roles/default-roles.roles | 34 +++ .../schema/codbex-contracts.schema | 2 +- .../Contract/dialog-filter/view.extension | 5 +- .../Contract/Contract/dialog-filter/view.js | 2 +- .../Contract/dialog-window/controller.js | 101 ++++++++ .../Contract/dialog-window/index.html | 191 ++++++++++++++ .../Contract/dialog-window/view.extension | 6 + .../Contract/Contract/dialog-window/view.js | 20 ++ .../Contract/main-details/controller.js | 49 +++- .../Contract/Contract/main-details/index.html | 24 +- .../Contract/main-details/view.extension | 7 +- .../ui/Contract/Contract/main-details/view.js | 2 +- .../Contract/Contract/tile-portal.extension | 7 +- .../ui/Contract/Contract/tile.extension | 7 +- .../ui/Contract/Contract/tile.js | 4 +- .../ui/Contract/Contract/view.extension | 7 +- .../ui/Contract/Contract/view.js | 2 +- .../codbex-contracts/ui/Contract/index.html | 2 +- .../ui/Contract/perspective-portal.extension | 6 +- .../ui/Contract/perspective.extension | 6 +- .../ui/Contract/perspective.js | 4 +- .../dialog-filter/view.extension | 5 +- .../dialog-filter/view.js | 2 +- .../dialog-window/view.extension | 5 +- .../dialog-window/view.js | 2 +- .../EmployeeContractItem/view.extension | 3 +- .../EmployeeContractItem/view.js | 2 +- .../dialog-filter/view.extension | 5 +- .../EmployeeContract/dialog-filter/view.js | 2 +- .../dialog-window/controller.js | 127 +++++++++ .../EmployeeContract/dialog-window/index.html | 242 ++++++++++++++++++ .../dialog-window/view.extension | 6 + .../EmployeeContract/dialog-window/view.js | 20 ++ .../main-details/controller.js | 83 +++++- .../EmployeeContract/main-details/index.html | 48 +++- .../main-details/view.extension | 7 +- .../EmployeeContract/main-details/view.js | 2 +- .../EmployeeContract/tile-portal.extension | 7 +- .../EmployeeContract/tile.extension | 7 +- .../EmployeeContract/tile.js | 4 +- .../EmployeeContract/view.extension | 7 +- .../EmployeeContract/view.js | 2 +- .../ui/EmployeeContracts/index.html | 2 +- .../perspective-portal.extension | 6 +- .../EmployeeContracts/perspective.extension | 6 +- .../ui/EmployeeContracts/perspective.js | 4 +- .../ContractType/dialog-filter/view.extension | 5 +- .../ContractType/dialog-filter/view.js | 2 +- .../ContractType/dialog-window/controller.js | 2 +- .../ContractType/dialog-window/view.extension | 7 +- .../ContractType/dialog-window/view.js | 2 +- .../ContractType/tile-portal.extension | 7 +- .../ui/Settings/ContractType/tile.extension | 7 +- .../ui/Settings/ContractType/tile.js | 4 +- .../ui/Settings/ContractType/view.extension | 7 +- .../ui/Settings/ContractType/view.js | 2 +- .../codbex-contracts/ui/Settings/index.html | 2 +- .../ui/Settings/perspective-portal.extension | 6 +- .../ui/Settings/perspective.extension | 6 +- .../ui/Settings/perspective.js | 4 +- .../ui/launchpad/dialog-window.extensionpoint | 2 +- .../contracts/navigation.extension | 3 +- .../employee-contracts/navigation.extension | 3 +- 73 files changed, 1242 insertions(+), 90 deletions(-) create mode 100644 codbex-contracts/gen/codbex-contracts/roles/default-roles.roles create mode 100644 codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/dialog-window/controller.js create mode 100644 codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/dialog-window/index.html create mode 100644 codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/dialog-window/view.extension create mode 100644 codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/dialog-window/view.js create mode 100644 codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/dialog-window/controller.js create mode 100644 codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/dialog-window/index.html create mode 100644 codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/dialog-window/view.extension create mode 100644 codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/dialog-window/view.js diff --git a/codbex-contracts/codbex-contracts.edm b/codbex-contracts/codbex-contracts.edm index 5b4a51d..d0534de 100644 --- a/codbex-contracts/codbex-contracts.edm +++ b/codbex-contracts/codbex-contracts.edm @@ -1,22 +1,22 @@ - + - + - + - + @@ -31,12 +31,12 @@ - + - + @@ -55,7 +55,7 @@ - + @@ -63,7 +63,7 @@ - + @@ -86,5 +86,5 @@ - + \ No newline at end of file diff --git a/codbex-contracts/codbex-contracts.gen b/codbex-contracts/codbex-contracts.gen index a39795e..ee93b67 100644 --- a/codbex-contracts/codbex-contracts.gen +++ b/codbex-contracts/codbex-contracts.gen @@ -7,6 +7,28 @@ "fileName": "codbex-contracts", "genFolderName": "codbex-contracts", "dataSource": "DefaultDB", + "roles": [ + { + "entityName": "Contract", + "roleRead": "codbex-contracts.Contract.ContractReadOnly", + "roleWrite": "codbex-contracts.Contract.ContractFullAccess" + }, + { + "entityName": "ContractType", + "roleRead": "codbex-contracts.Settings.ContractTypeReadOnly", + "roleWrite": "codbex-contracts.Settings.ContractTypeFullAccess" + }, + { + "entityName": "EmployeeContract", + "roleRead": "codbex-contracts.EmployeeContracts.EmployeeContractReadOnly", + "roleWrite": "codbex-contracts.EmployeeContracts.EmployeeContractFullAccess" + }, + { + "entityName": "EmployeeContractItem", + "roleRead": "codbex-contracts.EmployeeContracts.EmployeeContractItemReadOnly", + "roleWrite": "codbex-contracts.EmployeeContracts.EmployeeContractItemFullAccess" + } + ], "projectName": "codbex-contracts", "workspaceName": "workspace", "filePath": "codbex-contracts.model", @@ -33,6 +55,10 @@ "Contract-details", "Contract-details", "Contract-details", + "Contract-details", + "Contract-details", + "Contract-details", + "Contract-details", "Contract-details" ], "name": "Contract", @@ -84,6 +110,10 @@ "EmployeeContract-details", "EmployeeContract-details", "EmployeeContract-details", + "EmployeeContract-details", + "EmployeeContract-details", + "EmployeeContract-details", + "EmployeeContract-details", "EmployeeContract-details" ], "name": "EmployeeContracts", @@ -235,7 +265,7 @@ }, { "dataLength": "500", - "dataName": "CONTRACT_URL", + "dataName": "CONTRACT_DOCUMENT", "dataNullable": true, "dataType": "VARCHAR", "description": "", @@ -322,6 +352,7 @@ "description": "Manage entity Contract", "feedPassword": "YWRtaW4=", "feedUsername": "YWRtaW4=", + "generateDefaultRoles": "true", "generateReport": "false", "icon": "/services/web/resources/unicons/file.svg", "importsCode": "import { NumberGeneratorService } from \"/codbex-number-generator/service/generator\";", @@ -336,6 +367,8 @@ "perspectiveName": "Contract", "perspectiveOrder": "100", "perspectiveRole": "", + "roleRead": "codbex-contracts.Contract.ContractReadOnly", + "roleWrite": "codbex-contracts.Contract.ContractFullAccess", "title": "Contract", "tooltip": "Contract", "type": "PRIMARY", @@ -459,7 +492,7 @@ }, { "dataLength": "500", - "dataName": "CONTRACT_URL", + "dataName": "CONTRACT_DOCUMENT", "dataNullable": true, "dataType": "VARCHAR", "description": "", @@ -602,6 +635,7 @@ "description": "Manage entity ContractType", "feedPassword": "YWRtaW4=", "feedUsername": "YWRtaW4=", + "generateDefaultRoles": "true", "generateReport": "false", "icon": "/services/web/resources/unicons/file.svg", "layoutType": "MANAGE", @@ -615,6 +649,8 @@ "perspectiveName": "Settings", "perspectiveOrder": "999", "perspectiveRole": "", + "roleRead": "codbex-contracts.Settings.ContractTypeReadOnly", + "roleWrite": "codbex-contracts.Settings.ContractTypeFullAccess", "title": "ContractType", "tooltip": "ContractType", "type": "SETTING", @@ -940,6 +976,7 @@ "dataName": "COMPANY", "dataQuery": "", "description": "Manage entity Company", + "generateDefaultRoles": "false", "generateReport": "false", "icon": "/services/web/resources/unicons/file.svg", "layoutType": "MANAGE", @@ -1051,6 +1088,7 @@ "dataName": "JOBROLE", "dataQuery": "", "description": "Manage entity JobRole", + "generateDefaultRoles": "false", "generateReport": "false", "icon": "/services/web/resources/unicons/file.svg", "layoutType": "MANAGE", @@ -1374,6 +1412,7 @@ "dataName": "EMPLOYEECONTRACT", "dataQuery": "", "description": "Manage entity EmployeeContract", + "generateDefaultRoles": "true", "generateReport": "false", "icon": "/services/web/resources/unicons/file.svg", "importsCode": "import { NumberGeneratorService } from \"/codbex-number-generator/service/generator\";", @@ -1388,6 +1427,8 @@ "perspectiveName": "EmployeeContracts", "perspectiveOrder": "103", "perspectiveRole": "", + "roleRead": "codbex-contracts.EmployeeContracts.EmployeeContractReadOnly", + "roleWrite": "codbex-contracts.EmployeeContracts.EmployeeContractFullAccess", "title": "EmployeeContract", "tooltip": "EmployeeContract", "type": "PRIMARY", @@ -1798,6 +1839,7 @@ "dataName": "EMPLOYEECONTRACTITEM", "dataQuery": "", "description": "Manage entity EmployeeContractItem", + "generateDefaultRoles": "true", "generateReport": "false", "icon": "/services/web/resources/unicons/file.svg", "layoutType": "MANAGE_DETAILS", @@ -1811,6 +1853,8 @@ "perspectiveName": "EmployeeContracts", "perspectiveOrder": "103", "perspectiveRole": "", + "roleRead": "codbex-contracts.EmployeeContracts.EmployeeContractItemReadOnly", + "roleWrite": "codbex-contracts.EmployeeContracts.EmployeeContractItemFullAccess", "title": "EmployeeContractItem", "tooltip": "EmployeeContractItem", "type": "DEPENDENT", @@ -2122,6 +2166,7 @@ "dataName": "EMPLOYEE", "dataQuery": "", "description": "Manage entity Employee", + "generateDefaultRoles": "false", "generateReport": "false", "icon": "/services/web/resources/unicons/file.svg", "layoutType": "MANAGE", diff --git a/codbex-contracts/codbex-contracts.model b/codbex-contracts/codbex-contracts.model index 1ca79cd..959835a 100644 --- a/codbex-contracts/codbex-contracts.model +++ b/codbex-contracts/codbex-contracts.model @@ -79,7 +79,7 @@ }, { "dataLength": "500", - "dataName": "CONTRACT_URL", + "dataName": "CONTRACT_DOCUMENT", "dataNullable": "true", "dataType": "VARCHAR", "description": "", @@ -130,6 +130,7 @@ "description": "Manage entity Contract", "feedPassword": "YWRtaW4=", "feedUsername": "YWRtaW4=", + "generateDefaultRoles": "true", "generateReport": "false", "icon": "/services/web/resources/unicons/file.svg", "importsCode": "aW1wb3J0IHsgTnVtYmVyR2VuZXJhdG9yU2VydmljZSB9IGZyb20gIi9jb2RiZXgtbnVtYmVyLWdlbmVyYXRvci9zZXJ2aWNlL2dlbmVyYXRvciI7", @@ -144,6 +145,8 @@ "perspectiveName": "Contract", "perspectiveOrder": "100", "perspectiveRole": "", + "roleRead": "codbex-contracts.Contract.ContractReadOnly", + "roleWrite": "codbex-contracts.Contract.ContractFullAccess", "title": "Contract", "tooltip": "Contract", "type": "PRIMARY" @@ -185,6 +188,7 @@ "description": "Manage entity ContractType", "feedPassword": "YWRtaW4=", "feedUsername": "YWRtaW4=", + "generateDefaultRoles": "true", "generateReport": "false", "icon": "/services/web/resources/unicons/file.svg", "layoutType": "MANAGE", @@ -198,6 +202,8 @@ "perspectiveName": "Settings", "perspectiveOrder": "999", "perspectiveRole": "", + "roleRead": "codbex-contracts.Settings.ContractTypeReadOnly", + "roleWrite": "codbex-contracts.Settings.ContractTypeFullAccess", "title": "ContractType", "tooltip": "ContractType", "type": "SETTING" @@ -388,6 +394,7 @@ "dataName": "COMPANY", "dataQuery": "", "description": "Manage entity Company", + "generateDefaultRoles": "false", "generateReport": "false", "icon": "/services/web/resources/unicons/file.svg", "layoutType": "MANAGE", @@ -459,6 +466,7 @@ "dataName": "JOBROLE", "dataQuery": "", "description": "Manage entity JobRole", + "generateDefaultRoles": "false", "generateReport": "false", "icon": "/services/web/resources/unicons/file.svg", "layoutType": "MANAGE", @@ -657,6 +665,7 @@ "dataName": "EMPLOYEECONTRACT", "dataQuery": "", "description": "Manage entity EmployeeContract", + "generateDefaultRoles": "true", "generateReport": "false", "icon": "/services/web/resources/unicons/file.svg", "importsCode": "aW1wb3J0IHsgTnVtYmVyR2VuZXJhdG9yU2VydmljZSB9IGZyb20gIi9jb2RiZXgtbnVtYmVyLWdlbmVyYXRvci9zZXJ2aWNlL2dlbmVyYXRvciI7", @@ -671,6 +680,8 @@ "perspectiveName": "EmployeeContracts", "perspectiveOrder": "103", "perspectiveRole": "", + "roleRead": "codbex-contracts.EmployeeContracts.EmployeeContractReadOnly", + "roleWrite": "codbex-contracts.EmployeeContracts.EmployeeContractFullAccess", "title": "EmployeeContract", "tooltip": "EmployeeContract", "type": "PRIMARY" @@ -742,6 +753,7 @@ "dataName": "EMPLOYEECONTRACTITEM", "dataQuery": "", "description": "Manage entity EmployeeContractItem", + "generateDefaultRoles": "true", "generateReport": "false", "icon": "/services/web/resources/unicons/file.svg", "layoutType": "MANAGE_DETAILS", @@ -755,6 +767,8 @@ "perspectiveName": "EmployeeContracts", "perspectiveOrder": "103", "perspectiveRole": "", + "roleRead": "codbex-contracts.EmployeeContracts.EmployeeContractItemReadOnly", + "roleWrite": "codbex-contracts.EmployeeContracts.EmployeeContractItemFullAccess", "title": "EmployeeContractItem", "tooltip": "EmployeeContractItem", "type": "DEPENDENT" @@ -938,6 +952,7 @@ "dataName": "EMPLOYEE", "dataQuery": "", "description": "Manage entity Employee", + "generateDefaultRoles": "false", "generateReport": "false", "icon": "/services/web/resources/unicons/file.svg", "layoutType": "MANAGE", diff --git a/codbex-contracts/events/EmployeeContractItem/EmployeeContractItemToRecord.extension b/codbex-contracts/events/EmployeeContractItem/EmployeeContractItemToRecord.extension index e8ddee1..d00ca21 100644 --- a/codbex-contracts/events/EmployeeContractItem/EmployeeContractItemToRecord.extension +++ b/codbex-contracts/events/EmployeeContractItem/EmployeeContractItemToRecord.extension @@ -1,5 +1,6 @@ { "module": "codbex-contracts/events/EmployeeContractItem/EmployeeContractItemToRecordHandler.ts", "extensionPoint": "codbex-contracts-EmployeeContracts-EmployeeContract", - "description": "Employee contract Extension" + "description": "Employee contract Extension", + "role": "codbex-contracts.EmployeeContracts.EmployeeContractReadOnly,codbex-contracts.EmployeeContracts.EmployeeContractFullAccess,codbex-contracts.EmployeeContracts.EmployeeContractItemReadOnly,codbex-contracts.EmployeeContracts.EmployeeContractItemFullAccess" } \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/api/Contract/ContractService.ts b/codbex-contracts/gen/codbex-contracts/api/Contract/ContractService.ts index 4b7b717..59ee6fb 100644 --- a/codbex-contracts/gen/codbex-contracts/api/Contract/ContractService.ts +++ b/codbex-contracts/gen/codbex-contracts/api/Contract/ContractService.ts @@ -1,6 +1,8 @@ import { Controller, Get, Post, Put, Delete, response } from "sdk/http" import { Extensions } from "sdk/extensions" import { ContractRepository, ContractEntityOptions } from "../../dao/Contract/ContractRepository"; +import { user } from "sdk/security" +import { ForbiddenError } from "../utils/ForbiddenError"; import { ValidationError } from "../utils/ValidationError"; import { HttpUtils } from "../utils/HttpUtils"; // custom imports @@ -16,6 +18,7 @@ class ContractService { @Get("/") public getAll(_: any, ctx: any) { try { + this.checkPermissions("read"); const options: ContractEntityOptions = { $limit: ctx.queryParameters["$limit"] ? parseInt(ctx.queryParameters["$limit"]) : undefined, $offset: ctx.queryParameters["$offset"] ? parseInt(ctx.queryParameters["$offset"]) : undefined @@ -30,6 +33,7 @@ class ContractService { @Post("/") public create(entity: any) { try { + this.checkPermissions("write"); this.validateEntity(entity); entity.Id = this.repository.create(entity); response.setHeader("Content-Location", "/services/ts/codbex-contracts/gen/codbex-contracts/api/Contract/ContractService.ts/" + entity.Id); @@ -43,6 +47,7 @@ class ContractService { @Get("/count") public count() { try { + this.checkPermissions("read"); return this.repository.count(); } catch (error: any) { this.handleError(error); @@ -52,6 +57,7 @@ class ContractService { @Post("/count") public countWithFilter(filter: any) { try { + this.checkPermissions("read"); return this.repository.count(filter); } catch (error: any) { this.handleError(error); @@ -61,6 +67,7 @@ class ContractService { @Post("/search") public search(filter: any) { try { + this.checkPermissions("read"); return this.repository.findAll(filter); } catch (error: any) { this.handleError(error); @@ -70,6 +77,7 @@ class ContractService { @Get("/:id") public getById(_: any, ctx: any) { try { + this.checkPermissions("read"); const id = parseInt(ctx.pathParameters.id); const entity = this.repository.findById(id); if (entity) { @@ -85,6 +93,7 @@ class ContractService { @Put("/:id") public update(entity: any, ctx: any) { try { + this.checkPermissions("write"); entity.Id = ctx.pathParameters.id; this.validateEntity(entity); this.repository.update(entity); @@ -97,6 +106,7 @@ class ContractService { @Delete("/:id") public deleteById(_: any, ctx: any) { try { + this.checkPermissions("write"); const id = ctx.pathParameters.id; const entity = this.repository.findById(id); if (entity) { @@ -120,6 +130,15 @@ class ContractService { } } + private checkPermissions(operationType: string) { + if (operationType === "read" && !(user.isInRole("codbex-contracts.Contract.ContractReadOnly") || user.isInRole("codbex-contracts.Contract.ContractFullAccess"))) { + throw new ForbiddenError(); + } + if (operationType === "write" && !user.isInRole("codbex-contracts.Contract.ContractFullAccess")) { + throw new ForbiddenError(); + } + } + private validateEntity(entity: any): void { if (entity.Number?.length > 20) { throw new ValidationError(`The 'Number' exceeds the maximum length of [20] characters`); diff --git a/codbex-contracts/gen/codbex-contracts/api/EmployeeContracts/EmployeeContractItemService.ts b/codbex-contracts/gen/codbex-contracts/api/EmployeeContracts/EmployeeContractItemService.ts index b08ed02..cd8b1b8 100644 --- a/codbex-contracts/gen/codbex-contracts/api/EmployeeContracts/EmployeeContractItemService.ts +++ b/codbex-contracts/gen/codbex-contracts/api/EmployeeContracts/EmployeeContractItemService.ts @@ -1,6 +1,8 @@ import { Controller, Get, Post, Put, Delete, response } from "sdk/http" import { Extensions } from "sdk/extensions" import { EmployeeContractItemRepository, EmployeeContractItemEntityOptions } from "../../dao/EmployeeContracts/EmployeeContractItemRepository"; +import { user } from "sdk/security" +import { ForbiddenError } from "../utils/ForbiddenError"; import { ValidationError } from "../utils/ValidationError"; import { HttpUtils } from "../utils/HttpUtils"; @@ -14,6 +16,7 @@ class EmployeeContractItemService { @Get("/") public getAll(_: any, ctx: any) { try { + this.checkPermissions("read"); const options: EmployeeContractItemEntityOptions = { $limit: ctx.queryParameters["$limit"] ? parseInt(ctx.queryParameters["$limit"]) : undefined, $offset: ctx.queryParameters["$offset"] ? parseInt(ctx.queryParameters["$offset"]) : undefined @@ -39,6 +42,7 @@ class EmployeeContractItemService { @Post("/") public create(entity: any) { try { + this.checkPermissions("write"); this.validateEntity(entity); entity.Id = this.repository.create(entity); response.setHeader("Content-Location", "/services/ts/codbex-contracts/gen/codbex-contracts/api/EmployeeContracts/EmployeeContractItemService.ts/" + entity.Id); @@ -52,6 +56,7 @@ class EmployeeContractItemService { @Get("/count") public count() { try { + this.checkPermissions("read"); return this.repository.count(); } catch (error: any) { this.handleError(error); @@ -61,6 +66,7 @@ class EmployeeContractItemService { @Post("/count") public countWithFilter(filter: any) { try { + this.checkPermissions("read"); return this.repository.count(filter); } catch (error: any) { this.handleError(error); @@ -70,6 +76,7 @@ class EmployeeContractItemService { @Post("/search") public search(filter: any) { try { + this.checkPermissions("read"); return this.repository.findAll(filter); } catch (error: any) { this.handleError(error); @@ -79,6 +86,7 @@ class EmployeeContractItemService { @Get("/:id") public getById(_: any, ctx: any) { try { + this.checkPermissions("read"); const id = parseInt(ctx.pathParameters.id); const entity = this.repository.findById(id); if (entity) { @@ -94,6 +102,7 @@ class EmployeeContractItemService { @Put("/:id") public update(entity: any, ctx: any) { try { + this.checkPermissions("write"); entity.Id = ctx.pathParameters.id; this.validateEntity(entity); this.repository.update(entity); @@ -106,6 +115,7 @@ class EmployeeContractItemService { @Delete("/:id") public deleteById(_: any, ctx: any) { try { + this.checkPermissions("write"); const id = ctx.pathParameters.id; const entity = this.repository.findById(id); if (entity) { @@ -129,6 +139,15 @@ class EmployeeContractItemService { } } + private checkPermissions(operationType: string) { + if (operationType === "read" && !(user.isInRole("codbex-contracts.EmployeeContracts.EmployeeContractItemReadOnly") || user.isInRole("codbex-contracts.EmployeeContracts.EmployeeContractItemFullAccess"))) { + throw new ForbiddenError(); + } + if (operationType === "write" && !user.isInRole("codbex-contracts.EmployeeContracts.EmployeeContractItemFullAccess")) { + throw new ForbiddenError(); + } + } + private validateEntity(entity: any): void { if (entity.Name === null || entity.Name === undefined) { throw new ValidationError(`The 'Name' property is required, provide a valid value`); diff --git a/codbex-contracts/gen/codbex-contracts/api/EmployeeContracts/EmployeeContractService.ts b/codbex-contracts/gen/codbex-contracts/api/EmployeeContracts/EmployeeContractService.ts index 281799c..445b93f 100644 --- a/codbex-contracts/gen/codbex-contracts/api/EmployeeContracts/EmployeeContractService.ts +++ b/codbex-contracts/gen/codbex-contracts/api/EmployeeContracts/EmployeeContractService.ts @@ -1,6 +1,8 @@ import { Controller, Get, Post, Put, Delete, response } from "sdk/http" import { Extensions } from "sdk/extensions" import { EmployeeContractRepository, EmployeeContractEntityOptions } from "../../dao/EmployeeContracts/EmployeeContractRepository"; +import { user } from "sdk/security" +import { ForbiddenError } from "../utils/ForbiddenError"; import { ValidationError } from "../utils/ValidationError"; import { HttpUtils } from "../utils/HttpUtils"; // custom imports @@ -16,6 +18,7 @@ class EmployeeContractService { @Get("/") public getAll(_: any, ctx: any) { try { + this.checkPermissions("read"); const options: EmployeeContractEntityOptions = { $limit: ctx.queryParameters["$limit"] ? parseInt(ctx.queryParameters["$limit"]) : undefined, $offset: ctx.queryParameters["$offset"] ? parseInt(ctx.queryParameters["$offset"]) : undefined @@ -30,6 +33,7 @@ class EmployeeContractService { @Post("/") public create(entity: any) { try { + this.checkPermissions("write"); this.validateEntity(entity); entity.Id = this.repository.create(entity); response.setHeader("Content-Location", "/services/ts/codbex-contracts/gen/codbex-contracts/api/EmployeeContracts/EmployeeContractService.ts/" + entity.Id); @@ -43,6 +47,7 @@ class EmployeeContractService { @Get("/count") public count() { try { + this.checkPermissions("read"); return this.repository.count(); } catch (error: any) { this.handleError(error); @@ -52,6 +57,7 @@ class EmployeeContractService { @Post("/count") public countWithFilter(filter: any) { try { + this.checkPermissions("read"); return this.repository.count(filter); } catch (error: any) { this.handleError(error); @@ -61,6 +67,7 @@ class EmployeeContractService { @Post("/search") public search(filter: any) { try { + this.checkPermissions("read"); return this.repository.findAll(filter); } catch (error: any) { this.handleError(error); @@ -70,6 +77,7 @@ class EmployeeContractService { @Get("/:id") public getById(_: any, ctx: any) { try { + this.checkPermissions("read"); const id = parseInt(ctx.pathParameters.id); const entity = this.repository.findById(id); if (entity) { @@ -85,6 +93,7 @@ class EmployeeContractService { @Put("/:id") public update(entity: any, ctx: any) { try { + this.checkPermissions("write"); entity.Id = ctx.pathParameters.id; this.validateEntity(entity); this.repository.update(entity); @@ -97,6 +106,7 @@ class EmployeeContractService { @Delete("/:id") public deleteById(_: any, ctx: any) { try { + this.checkPermissions("write"); const id = ctx.pathParameters.id; const entity = this.repository.findById(id); if (entity) { @@ -120,6 +130,15 @@ class EmployeeContractService { } } + private checkPermissions(operationType: string) { + if (operationType === "read" && !(user.isInRole("codbex-contracts.EmployeeContracts.EmployeeContractReadOnly") || user.isInRole("codbex-contracts.EmployeeContracts.EmployeeContractFullAccess"))) { + throw new ForbiddenError(); + } + if (operationType === "write" && !user.isInRole("codbex-contracts.EmployeeContracts.EmployeeContractFullAccess")) { + throw new ForbiddenError(); + } + } + private validateEntity(entity: any): void { if (entity.Number?.length > 20) { throw new ValidationError(`The 'Number' exceeds the maximum length of [20] characters`); diff --git a/codbex-contracts/gen/codbex-contracts/api/Settings/ContractTypeService.ts b/codbex-contracts/gen/codbex-contracts/api/Settings/ContractTypeService.ts index 4f90945..985843c 100644 --- a/codbex-contracts/gen/codbex-contracts/api/Settings/ContractTypeService.ts +++ b/codbex-contracts/gen/codbex-contracts/api/Settings/ContractTypeService.ts @@ -1,6 +1,8 @@ import { Controller, Get, Post, Put, Delete, response } from "sdk/http" import { Extensions } from "sdk/extensions" import { ContractTypeRepository, ContractTypeEntityOptions } from "../../dao/Settings/ContractTypeRepository"; +import { user } from "sdk/security" +import { ForbiddenError } from "../utils/ForbiddenError"; import { ValidationError } from "../utils/ValidationError"; import { HttpUtils } from "../utils/HttpUtils"; @@ -14,6 +16,7 @@ class ContractTypeService { @Get("/") public getAll(_: any, ctx: any) { try { + this.checkPermissions("read"); const options: ContractTypeEntityOptions = { $limit: ctx.queryParameters["$limit"] ? parseInt(ctx.queryParameters["$limit"]) : undefined, $offset: ctx.queryParameters["$offset"] ? parseInt(ctx.queryParameters["$offset"]) : undefined @@ -28,6 +31,7 @@ class ContractTypeService { @Post("/") public create(entity: any) { try { + this.checkPermissions("write"); this.validateEntity(entity); entity.Id = this.repository.create(entity); response.setHeader("Content-Location", "/services/ts/codbex-contracts/gen/codbex-contracts/api/Settings/ContractTypeService.ts/" + entity.Id); @@ -41,6 +45,7 @@ class ContractTypeService { @Get("/count") public count() { try { + this.checkPermissions("read"); return this.repository.count(); } catch (error: any) { this.handleError(error); @@ -50,6 +55,7 @@ class ContractTypeService { @Post("/count") public countWithFilter(filter: any) { try { + this.checkPermissions("read"); return this.repository.count(filter); } catch (error: any) { this.handleError(error); @@ -59,6 +65,7 @@ class ContractTypeService { @Post("/search") public search(filter: any) { try { + this.checkPermissions("read"); return this.repository.findAll(filter); } catch (error: any) { this.handleError(error); @@ -68,6 +75,7 @@ class ContractTypeService { @Get("/:id") public getById(_: any, ctx: any) { try { + this.checkPermissions("read"); const id = parseInt(ctx.pathParameters.id); const entity = this.repository.findById(id); if (entity) { @@ -83,6 +91,7 @@ class ContractTypeService { @Put("/:id") public update(entity: any, ctx: any) { try { + this.checkPermissions("write"); entity.Id = ctx.pathParameters.id; this.validateEntity(entity); this.repository.update(entity); @@ -95,6 +104,7 @@ class ContractTypeService { @Delete("/:id") public deleteById(_: any, ctx: any) { try { + this.checkPermissions("write"); const id = ctx.pathParameters.id; const entity = this.repository.findById(id); if (entity) { @@ -118,6 +128,15 @@ class ContractTypeService { } } + private checkPermissions(operationType: string) { + if (operationType === "read" && !(user.isInRole("codbex-contracts.Settings.ContractTypeReadOnly") || user.isInRole("codbex-contracts.Settings.ContractTypeFullAccess"))) { + throw new ForbiddenError(); + } + if (operationType === "write" && !user.isInRole("codbex-contracts.Settings.ContractTypeFullAccess")) { + throw new ForbiddenError(); + } + } + private validateEntity(entity: any): void { if (entity.Name?.length > 100) { throw new ValidationError(`The 'Name' exceeds the maximum length of [100] characters`); diff --git a/codbex-contracts/gen/codbex-contracts/dao/Contract/ContractRepository.ts b/codbex-contracts/gen/codbex-contracts/dao/Contract/ContractRepository.ts index 0b8a8d3..a57fd94 100644 --- a/codbex-contracts/gen/codbex-contracts/dao/Contract/ContractRepository.ts +++ b/codbex-contracts/gen/codbex-contracts/dao/Contract/ContractRepository.ts @@ -159,7 +159,7 @@ export class ContractRepository { }, { name: "Document", - column: "CONTRACT_URL", + column: "CONTRACT_DOCUMENT", type: "VARCHAR", }, { diff --git a/codbex-contracts/gen/codbex-contracts/index.html b/codbex-contracts/gen/codbex-contracts/index.html index ccbab3b..2c7b0c9 100644 --- a/codbex-contracts/gen/codbex-contracts/index.html +++ b/codbex-contracts/gen/codbex-contracts/index.html @@ -49,7 +49,7 @@ .constant('extensionPoint', { perspectives: "codbex-contracts", views: "codbex-contracts-view", - dialogWindows: "codbex-contracts-dialog-window" + dialogWindows: "dialog-window" }) .config(["messageHubProvider", function (messageHubProvider) { messageHubProvider.eventIdPrefix = 'codbex-contracts.launchpad.Home'; diff --git a/codbex-contracts/gen/codbex-contracts/roles/default-roles.roles b/codbex-contracts/gen/codbex-contracts/roles/default-roles.roles new file mode 100644 index 0000000..9036b9d --- /dev/null +++ b/codbex-contracts/gen/codbex-contracts/roles/default-roles.roles @@ -0,0 +1,34 @@ +[ + { + "name": "codbex-contracts.Contract.ContractReadOnly", + "description": "A role that grants read only permission for Contract." + }, + { + "name": "codbex-contracts.Contract.ContractFullAccess", + "description": "A role that grants full access for Contract." + }, + { + "name": "codbex-contracts.Settings.ContractTypeReadOnly", + "description": "A role that grants read only permission for ContractType." + }, + { + "name": "codbex-contracts.Settings.ContractTypeFullAccess", + "description": "A role that grants full access for ContractType." + }, + { + "name": "codbex-contracts.EmployeeContracts.EmployeeContractReadOnly", + "description": "A role that grants read only permission for EmployeeContract." + }, + { + "name": "codbex-contracts.EmployeeContracts.EmployeeContractFullAccess", + "description": "A role that grants full access for EmployeeContract." + }, + { + "name": "codbex-contracts.EmployeeContracts.EmployeeContractItemReadOnly", + "description": "A role that grants read only permission for EmployeeContractItem." + }, + { + "name": "codbex-contracts.EmployeeContracts.EmployeeContractItemFullAccess", + "description": "A role that grants full access for EmployeeContractItem." + } +] \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/schema/codbex-contracts.schema b/codbex-contracts/gen/codbex-contracts/schema/codbex-contracts.schema index 6c1ef06..e286e1b 100644 --- a/codbex-contracts/gen/codbex-contracts/schema/codbex-contracts.schema +++ b/codbex-contracts/gen/codbex-contracts/schema/codbex-contracts.schema @@ -37,7 +37,7 @@ "type": "VARCHAR", "length": 500, "nullable": true, - "name": "CONTRACT_URL" + "name": "CONTRACT_DOCUMENT" }, { "type": "INTEGER", diff --git a/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/dialog-filter/view.extension b/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/dialog-filter/view.extension index 5b56bf0..608e06f 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/dialog-filter/view.extension +++ b/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/dialog-filter/view.extension @@ -1,5 +1,6 @@ { "module": "codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/dialog-filter/view.js", - "extensionPoint": "codbex-contracts-dialog-window", - "description": "codbex-contracts - Application Dialog Window" + "extensionPoint": "dialog-window", + "description": "codbex-contracts - Application Dialog Window", + "role": "codbex-contracts.Contract.ContractReadOnly,codbex-contracts.Contract.ContractFullAccess" } \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/dialog-filter/view.js b/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/dialog-filter/view.js index 3bd357b..253b9bc 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/dialog-filter/view.js +++ b/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/dialog-filter/view.js @@ -7,7 +7,7 @@ const viewData = { id: "Contract-filter", label: "Contract Filter", link: "/services/web/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/dialog-filter/index.html", - perspectiveName: "Contract", + perspectiveName: "Contract" }; if (typeof exports !== 'undefined') { diff --git a/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/dialog-window/controller.js b/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/dialog-window/controller.js new file mode 100644 index 0000000..b45c246 --- /dev/null +++ b/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/dialog-window/controller.js @@ -0,0 +1,101 @@ +angular.module('page', ["ideUI", "ideView", "entityApi"]) + .config(["messageHubProvider", function (messageHubProvider) { + messageHubProvider.eventIdPrefix = 'codbex-contracts.Contract.Contract'; + }]) + .config(["entityApiProvider", function (entityApiProvider) { + entityApiProvider.baseUrl = "/services/ts/codbex-contracts/gen/codbex-contracts/api/Contract/ContractService.ts"; + }]) + .controller('PageController', ['$scope', '$http', 'messageHub', 'ViewParameters', 'entityApi', function ($scope, $http, messageHub, ViewParameters, entityApi) { + + $scope.entity = {}; + $scope.forms = { + details: {}, + }; + $scope.formHeaders = { + select: "Contract Details", + create: "Create Contract", + update: "Update Contract" + }; + $scope.action = 'select'; + + let params = ViewParameters.get(); + if (Object.keys(params).length) { + $scope.action = params.action; + if (params.entity.StartDate) { + params.entity.StartDate = new Date(params.entity.StartDate); + } + if (params.entity.EndDate) { + params.entity.EndDate = new Date(params.entity.EndDate); + } + $scope.entity = params.entity; + $scope.selectedMainEntityKey = params.selectedMainEntityKey; + $scope.selectedMainEntityId = params.selectedMainEntityId; + $scope.optionsCompany = params.optionsCompany; + $scope.optionsType = params.optionsType; + } + + $scope.create = function () { + let entity = $scope.entity; + entity[$scope.selectedMainEntityKey] = $scope.selectedMainEntityId; + entityApi.create(entity).then(function (response) { + if (response.status != 201) { + $scope.errorMessage = `Unable to create Contract: '${response.message}'`; + return; + } + messageHub.postMessage("entityCreated", response.data); + $scope.cancel(); + messageHub.showAlertSuccess("Contract", "Contract successfully created"); + }); + }; + + $scope.update = function () { + let id = $scope.entity.Id; + let entity = $scope.entity; + entity[$scope.selectedMainEntityKey] = $scope.selectedMainEntityId; + entityApi.update(id, entity).then(function (response) { + if (response.status != 200) { + $scope.errorMessage = `Unable to update Contract: '${response.message}'`; + return; + } + messageHub.postMessage("entityUpdated", response.data); + $scope.cancel(); + messageHub.showAlertSuccess("Contract", "Contract successfully updated"); + }); + }; + + $scope.serviceCompany = "/services/ts/codbex-companies/gen/codbex-companies/api/Companies/CompanyService.ts"; + + $scope.optionsCompany = []; + + $http.get("/services/ts/codbex-companies/gen/codbex-companies/api/Companies/CompanyService.ts").then(function (response) { + $scope.optionsCompany = response.data.map(e => { + return { + value: e.Id, + text: e.Name + } + }); + }); + $scope.serviceType = "/services/ts/codbex-contracts/gen/codbex-contracts/api/Settings/ContractTypeService.ts"; + + $scope.optionsType = []; + + $http.get("/services/ts/codbex-contracts/gen/codbex-contracts/api/Settings/ContractTypeService.ts").then(function (response) { + $scope.optionsType = response.data.map(e => { + return { + value: e.Id, + text: e.Name + } + }); + }); + + $scope.cancel = function () { + $scope.entity = {}; + $scope.action = 'select'; + messageHub.closeDialogWindow("Contract-details"); + }; + + $scope.clearErrorMessage = function () { + $scope.errorMessage = null; + }; + + }]); \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/dialog-window/index.html b/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/dialog-window/index.html new file mode 100644 index 0000000..f6a3721 --- /dev/null +++ b/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/dialog-window/index.html @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + + + + + + +
+ Number +
+
+ + + + The value doesn't match the required pattern '' + + +
+
+ +
+ StartDate +
+
+ + + + Incorrect Input + + +
+
+ +
+ EndDate +
+
+ + + + Incorrect Input + + +
+
+ +
+ Company +
+
+ + + +
+
+ +
+ Document +
+ +
+ + + + The value doesn't match the required pattern '' + + +
+
+ +
+ Type +
+
+ + + +
+
+ +
+ Comment +
+
+ + + + The value doesn't match the required pattern '' + + +
+
+
+
+
+ + + + + + + + + + + + + + + diff --git a/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/dialog-window/view.extension b/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/dialog-window/view.extension new file mode 100644 index 0000000..cc961bc --- /dev/null +++ b/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/dialog-window/view.extension @@ -0,0 +1,6 @@ +{ + "module": "{{projectName}}/gen/{{genFolderName}}/ui/{{perspectiveName}}/{{name}}/dialog-window/view.js", + "extensionPoint": "dialog-window", + "description": "{{projectName}} - Application Dialog Window", + "role": "codbex-contracts.Contract.ContractReadOnly,codbex-contracts.Contract.ContractFullAccess" +} \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/dialog-window/view.js b/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/dialog-window/view.js new file mode 100644 index 0000000..7962faf --- /dev/null +++ b/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/dialog-window/view.js @@ -0,0 +1,20 @@ +/* + * Generated by Eclipse Dirigible based on model and template. + * + * Do not modify the content as it may be re-generated again. + */ +const viewData = { + id: "Contract-details", + label: "Contract", + link: "/services/web/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/dialog-window/index.html", + perspectiveName: "Contract", + roles: [ + "codbex-contracts.Contract.ContractReadOnly", + ] +}; + +if (typeof exports !== 'undefined') { + exports.getDialogWindow = function () { + return viewData; + } +} \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/main-details/controller.js b/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/main-details/controller.js index c52fe99..d936c90 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/main-details/controller.js +++ b/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/main-details/controller.js @@ -5,7 +5,7 @@ angular.module('page', ["ideUI", "ideView", "entityApi"]) .config(["entityApiProvider", function (entityApiProvider) { entityApiProvider.baseUrl = "/services/ts/codbex-contracts/gen/codbex-contracts/api/Contract/ContractService.ts"; }]) - .controller('PageController', ['$scope', 'Extensions', 'messageHub', 'entityApi', function ($scope, Extensions, messageHub, entityApi) { + .controller('PageController', ['$scope', '$http', 'Extensions', 'messageHub', 'entityApi', function ($scope, $http, Extensions, messageHub, entityApi) { $scope.entity = {}; $scope.forms = { @@ -117,5 +117,52 @@ angular.module('page', ["ideUI", "ideView", "entityApi"]) $scope.cancel = function () { messageHub.postMessage("clearDetails"); }; + + //-----------------Dialogs-------------------// + + $scope.createCompany = function () { + messageHub.showDialogWindow("Company-details", { + action: "create", + entity: {}, + }, null, false); + }; + $scope.createType = function () { + messageHub.showDialogWindow("ContractType-details", { + action: "create", + entity: {}, + }, null, false); + }; + + //-----------------Dialogs-------------------// + + + + //----------------Dropdowns-----------------// + + $scope.refreshCompany = function () { + $scope.optionsCompany = []; + $http.get("/services/ts/codbex-companies/gen/codbex-companies/api/Companies/CompanyService.ts").then(function (response) { + $scope.optionsCompany = response.data.map(e => { + return { + value: e.Id, + text: e.Name + } + }); + }); + }; + $scope.refreshType = function () { + $scope.optionsType = []; + $http.get("/services/ts/codbex-contracts/gen/codbex-contracts/api/Settings/ContractTypeService.ts").then(function (response) { + $scope.optionsType = response.data.map(e => { + return { + value: e.Id, + text: e.Name + } + }); + }); + }; + + //----------------Dropdowns-----------------// + }]); \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/main-details/index.html b/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/main-details/index.html index 27bea7a..189425c 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/main-details/index.html +++ b/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/main-details/index.html @@ -84,7 +84,7 @@
Company
-
+
-
+
+ + + +
@@ -127,7 +135,7 @@
Type
-
+
-
+
+ + + +
diff --git a/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/main-details/view.extension b/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/main-details/view.extension index 8b4eb5c..0de3b80 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/main-details/view.extension +++ b/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/main-details/view.extension @@ -1 +1,6 @@ -{"module":"codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/main-details/view.js","extensionPoint":"codbex-contracts-view","description":"codbex-contracts - Application View - Main Details"} \ No newline at end of file +{ + "module": "codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/main-details/view.js", + "extensionPoint": "codbex-contracts-view", + "description": "codbex-contracts - Application View - Main Details", + "role": "codbex-contracts.Contract.ContractReadOnly,codbex-contracts.Contract.ContractFullAccess" +} \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/main-details/view.js b/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/main-details/view.js index e24eebb..9a3a6bc 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/main-details/view.js +++ b/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/main-details/view.js @@ -9,7 +9,7 @@ const viewData = { factory: "frame", region: "center", link: "/services/web/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/main-details/index.html", - perspectiveName: "Contract", + perspectiveName: "Contract" }; if (typeof exports !== 'undefined') { diff --git a/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/tile-portal.extension b/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/tile-portal.extension index 3d0629c..b81b995 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/tile-portal.extension +++ b/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/tile-portal.extension @@ -1 +1,6 @@ -{"module":"codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/tile.js","extensionPoint":"portal-tile","description":"codbex-contracts - Application Tile"} \ No newline at end of file +{ + "module": "codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/tile.js", + "extensionPoint": "portal-tile", + "description": "codbex-contracts - Application Tile", + "role": "codbex-contracts.Contract.ContractReadOnly,codbex-contracts.Contract.ContractFullAccess" +} \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/tile.extension b/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/tile.extension index 3ce5e57..6841e40 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/tile.extension +++ b/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/tile.extension @@ -1 +1,6 @@ -{"module":"codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/tile.js","extensionPoint":"codbex-contracts-tile","description":"codbex-contracts - Application Tile"} \ No newline at end of file +{ + "module": "codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/tile.js", + "extensionPoint": "codbex-contracts-tile", + "description": "codbex-contracts - Application Tile", + "role": "codbex-contracts.Contract.ContractReadOnly,codbex-contracts.Contract.ContractFullAccess" +} \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/tile.js b/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/tile.js index e51e4dd..aeb162b 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/tile.js +++ b/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/tile.js @@ -14,6 +14,6 @@ exports.getTile = function () { icon: "/services/web/resources/unicons/file.svg", location: "/services/web/codbex-contracts/gen/codbex-contracts/ui/Contract/index.html", order: "100", - groupOrder: "100", + groupOrder: "100" }; -}; +} diff --git a/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/view.extension b/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/view.extension index dcc2130..310aa42 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/view.extension +++ b/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/view.extension @@ -1 +1,6 @@ -{"module":"codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/view.js","extensionPoint":"codbex-contracts-view","description":"codbex-contracts - Application View"} \ No newline at end of file +{ + "module": "codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/view.js", + "extensionPoint": "codbex-contracts-view", + "description": "codbex-contracts - Application View", + "role": "codbex-contracts.Contract.ContractReadOnly,codbex-contracts.Contract.ContractFullAccess" +} \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/view.js b/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/view.js index 25ae0b1..1481a00 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/view.js +++ b/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/view.js @@ -9,7 +9,7 @@ const viewData = { factory: "frame", region: "left", link: "/services/web/codbex-contracts/gen/codbex-contracts/ui/Contract/Contract/index.html", - perspectiveName: "Contract", + perspectiveName: "Contract" }; if (typeof exports !== 'undefined') { diff --git a/codbex-contracts/gen/codbex-contracts/ui/Contract/index.html b/codbex-contracts/gen/codbex-contracts/ui/Contract/index.html index ee5e8fe..3de1caa 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/Contract/index.html +++ b/codbex-contracts/gen/codbex-contracts/ui/Contract/index.html @@ -52,7 +52,7 @@ .constant('extensionPoint', { perspectives: 'codbex-contracts', views: 'codbex-contracts-view', - dialogWindows: 'codbex-contracts-dialog-window' + dialogWindows: 'dialog-window' }) .controller('ApplicationController', ['$scope', 'messageHub', 'Extensions', function ($scope, messageHub, Extensions) { $scope.state = { diff --git a/codbex-contracts/gen/codbex-contracts/ui/Contract/perspective-portal.extension b/codbex-contracts/gen/codbex-contracts/ui/Contract/perspective-portal.extension index 2fa88fd..209f153 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/Contract/perspective-portal.extension +++ b/codbex-contracts/gen/codbex-contracts/ui/Contract/perspective-portal.extension @@ -1 +1,5 @@ -{"module":"codbex-contracts/gen/codbex-contracts/ui/Contract/perspective.js","extensionPoint":"portal","description":"codbex-contracts - Perspective - Contract"} \ No newline at end of file +{ + "module": "codbex-contracts/gen/codbex-contracts/ui/Contract/perspective.js", + "extensionPoint": "portal", + "description": "codbex-contracts - Perspective - Contract" +} \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/Contract/perspective.extension b/codbex-contracts/gen/codbex-contracts/ui/Contract/perspective.extension index c614a6e..631e524 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/Contract/perspective.extension +++ b/codbex-contracts/gen/codbex-contracts/ui/Contract/perspective.extension @@ -1 +1,5 @@ -{"module":"codbex-contracts/gen/codbex-contracts/ui/Contract/perspective.js","extensionPoint":"codbex-contracts","description":"codbex-contracts - Perspective - Contract"} \ No newline at end of file +{ + "module": "codbex-contracts/gen/codbex-contracts/ui/Contract/perspective.js", + "extensionPoint": "codbex-contracts", + "description": "codbex-contracts - Perspective - Contract" +} \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/Contract/perspective.js b/codbex-contracts/gen/codbex-contracts/ui/Contract/perspective.js index f3a8b25..aaa0c27 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/Contract/perspective.js +++ b/codbex-contracts/gen/codbex-contracts/ui/Contract/perspective.js @@ -7,8 +7,8 @@ const perspectiveData = { id: 'Contract', name: 'Contract', link: '/services/web/codbex-contracts/gen/codbex-contracts/ui/Contract/index.html', - order: 100, - icon: '/services/web/resources/unicons/document-info.svg', + order: '100', + icon: '/services/web/resources/unicons/document-info.svg' }; if (typeof exports !== 'undefined') { diff --git a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/EmployeeContractItem/dialog-filter/view.extension b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/EmployeeContractItem/dialog-filter/view.extension index 8e45eea..9da6106 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/EmployeeContractItem/dialog-filter/view.extension +++ b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/EmployeeContractItem/dialog-filter/view.extension @@ -1,5 +1,6 @@ { "module": "codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/EmployeeContractItem/dialog-filter/view.js", - "extensionPoint": "codbex-contracts-dialog-window", - "description": "codbex-contracts - Application Dialog Window" + "extensionPoint": "dialog-window", + "description": "codbex-contracts - Application Dialog Window", + "role": "codbex-contracts.EmployeeContracts.EmployeeContractItemReadOnly,codbex-contracts.EmployeeContracts.EmployeeContractItemFullAccess" } \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/EmployeeContractItem/dialog-filter/view.js b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/EmployeeContractItem/dialog-filter/view.js index c3be0e4..a09bc20 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/EmployeeContractItem/dialog-filter/view.js +++ b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/EmployeeContractItem/dialog-filter/view.js @@ -7,7 +7,7 @@ const viewData = { id: "EmployeeContractItem-filter", label: "EmployeeContractItem Filter", link: "/services/web/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/EmployeeContractItem/dialog-filter/index.html", - perspectiveName: "EmployeeContracts", + perspectiveName: "EmployeeContracts" }; if (typeof exports !== 'undefined') { diff --git a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/EmployeeContractItem/dialog-window/view.extension b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/EmployeeContractItem/dialog-window/view.extension index f7dd189..a9f6036 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/EmployeeContractItem/dialog-window/view.extension +++ b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/EmployeeContractItem/dialog-window/view.extension @@ -1,5 +1,6 @@ { "module": "codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/EmployeeContractItem/dialog-window/view.js", - "extensionPoint": "codbex-contracts-dialog-window", - "description": "codbex-contracts - Application Dialog Window" + "extensionPoint": "dialog-window", + "description": "codbex-contracts - Application Dialog Window", + "role": "codbex-contracts.EmployeeContracts.EmployeeContractItemReadOnly,codbex-contracts.EmployeeContracts.EmployeeContractItemFullAccess" } \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/EmployeeContractItem/dialog-window/view.js b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/EmployeeContractItem/dialog-window/view.js index e9a13a3..de55c3c 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/EmployeeContractItem/dialog-window/view.js +++ b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/EmployeeContractItem/dialog-window/view.js @@ -7,7 +7,7 @@ const viewData = { id: "EmployeeContractItem-details", label: "EmployeeContractItem", link: "/services/web/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/EmployeeContractItem/dialog-window/index.html", - perspectiveName: "EmployeeContracts", + perspectiveName: "EmployeeContracts" }; if (typeof exports !== 'undefined') { diff --git a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/EmployeeContractItem/view.extension b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/EmployeeContractItem/view.extension index 359d035..e093b5e 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/EmployeeContractItem/view.extension +++ b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/EmployeeContractItem/view.extension @@ -1,5 +1,6 @@ { "module": "codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/EmployeeContractItem/view.js", "extensionPoint": "codbex-contracts-view", - "description": "codbex-contracts - Application View - Details" + "description": "codbex-contracts - Application View - Details", + "role": "codbex-contracts.EmployeeContracts.EmployeeContractItemReadOnly,codbex-contracts.EmployeeContracts.EmployeeContractItemFullAccess" } \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/EmployeeContractItem/view.js b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/EmployeeContractItem/view.js index b8ac21b..99bd37c 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/EmployeeContractItem/view.js +++ b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/EmployeeContractItem/view.js @@ -9,7 +9,7 @@ const viewData = { factory: "frame", region: "bottom", link: "/services/web/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/EmployeeContractItem/index.html", - perspectiveName: "EmployeeContracts", + perspectiveName: "EmployeeContracts" }; if (typeof exports !== 'undefined') { diff --git a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/dialog-filter/view.extension b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/dialog-filter/view.extension index 9b2bed5..e08eb7e 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/dialog-filter/view.extension +++ b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/dialog-filter/view.extension @@ -1,5 +1,6 @@ { "module": "codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/dialog-filter/view.js", - "extensionPoint": "codbex-contracts-dialog-window", - "description": "codbex-contracts - Application Dialog Window" + "extensionPoint": "dialog-window", + "description": "codbex-contracts - Application Dialog Window", + "role": "codbex-contracts.EmployeeContracts.EmployeeContractReadOnly,codbex-contracts.EmployeeContracts.EmployeeContractFullAccess" } \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/dialog-filter/view.js b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/dialog-filter/view.js index 85f963a..60af3ab 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/dialog-filter/view.js +++ b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/dialog-filter/view.js @@ -7,7 +7,7 @@ const viewData = { id: "EmployeeContract-filter", label: "EmployeeContract Filter", link: "/services/web/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/dialog-filter/index.html", - perspectiveName: "EmployeeContracts", + perspectiveName: "EmployeeContracts" }; if (typeof exports !== 'undefined') { diff --git a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/dialog-window/controller.js b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/dialog-window/controller.js new file mode 100644 index 0000000..f812486 --- /dev/null +++ b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/dialog-window/controller.js @@ -0,0 +1,127 @@ +angular.module('page', ["ideUI", "ideView", "entityApi"]) + .config(["messageHubProvider", function (messageHubProvider) { + messageHubProvider.eventIdPrefix = 'codbex-contracts.EmployeeContracts.EmployeeContract'; + }]) + .config(["entityApiProvider", function (entityApiProvider) { + entityApiProvider.baseUrl = "/services/ts/codbex-contracts/gen/codbex-contracts/api/EmployeeContracts/EmployeeContractService.ts"; + }]) + .controller('PageController', ['$scope', '$http', 'messageHub', 'ViewParameters', 'entityApi', function ($scope, $http, messageHub, ViewParameters, entityApi) { + + $scope.entity = {}; + $scope.forms = { + details: {}, + }; + $scope.formHeaders = { + select: "EmployeeContract Details", + create: "Create EmployeeContract", + update: "Update EmployeeContract" + }; + $scope.action = 'select'; + + let params = ViewParameters.get(); + if (Object.keys(params).length) { + $scope.action = params.action; + if (params.entity.StartDate) { + params.entity.StartDate = new Date(params.entity.StartDate); + } + if (params.entity.EndDate) { + params.entity.EndDate = new Date(params.entity.EndDate); + } + $scope.entity = params.entity; + $scope.selectedMainEntityKey = params.selectedMainEntityKey; + $scope.selectedMainEntityId = params.selectedMainEntityId; + $scope.optionsEmployee = params.optionsEmployee; + $scope.optionsCompany = params.optionsCompany; + $scope.optionsJobRole = params.optionsJobRole; + $scope.optionsType = params.optionsType; + } + + $scope.create = function () { + let entity = $scope.entity; + entity[$scope.selectedMainEntityKey] = $scope.selectedMainEntityId; + entityApi.create(entity).then(function (response) { + if (response.status != 201) { + $scope.errorMessage = `Unable to create EmployeeContract: '${response.message}'`; + return; + } + messageHub.postMessage("entityCreated", response.data); + $scope.cancel(); + messageHub.showAlertSuccess("EmployeeContract", "EmployeeContract successfully created"); + }); + }; + + $scope.update = function () { + let id = $scope.entity.Id; + let entity = $scope.entity; + entity[$scope.selectedMainEntityKey] = $scope.selectedMainEntityId; + entityApi.update(id, entity).then(function (response) { + if (response.status != 200) { + $scope.errorMessage = `Unable to update EmployeeContract: '${response.message}'`; + return; + } + messageHub.postMessage("entityUpdated", response.data); + $scope.cancel(); + messageHub.showAlertSuccess("EmployeeContract", "EmployeeContract successfully updated"); + }); + }; + + $scope.serviceEmployee = "/services/ts/codbex-employees/gen/codbex-employees/api/Employees/EmployeeService.ts"; + + $scope.optionsEmployee = []; + + $http.get("/services/ts/codbex-employees/gen/codbex-employees/api/Employees/EmployeeService.ts").then(function (response) { + $scope.optionsEmployee = response.data.map(e => { + return { + value: e.Id, + text: e.Name + } + }); + }); + $scope.serviceCompany = "/services/ts/codbex-companies/gen/codbex-companies/api/Companies/CompanyService.ts"; + + $scope.optionsCompany = []; + + $http.get("/services/ts/codbex-companies/gen/codbex-companies/api/Companies/CompanyService.ts").then(function (response) { + $scope.optionsCompany = response.data.map(e => { + return { + value: e.Id, + text: e.Name + } + }); + }); + $scope.serviceJobRole = "/services/ts/codbex-companies/gen/codbex-companies/api/Companies/JobRoleService.ts"; + + $scope.optionsJobRole = []; + + $http.get("/services/ts/codbex-companies/gen/codbex-companies/api/Companies/JobRoleService.ts").then(function (response) { + $scope.optionsJobRole = response.data.map(e => { + return { + value: e.Id, + text: e.Name + } + }); + }); + $scope.serviceType = "/services/ts/codbex-contracts/gen/codbex-contracts/api/Settings/ContractTypeService.ts"; + + $scope.optionsType = []; + + $http.get("/services/ts/codbex-contracts/gen/codbex-contracts/api/Settings/ContractTypeService.ts").then(function (response) { + $scope.optionsType = response.data.map(e => { + return { + value: e.Id, + text: e.Name + } + }); + }); + + $scope.cancel = function () { + $scope.entity = {}; + $scope.action = 'select'; + messageHub.closeDialogWindow("EmployeeContract-details"); + }; + + $scope.clearErrorMessage = function () { + $scope.errorMessage = null; + }; + + }]); \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/dialog-window/index.html b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/dialog-window/index.html new file mode 100644 index 0000000..c638581 --- /dev/null +++ b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/dialog-window/index.html @@ -0,0 +1,242 @@ + + + + + + + + + + + + + + + + + + + + + + + +
+ Number +
+
+ + + + The value doesn't match the required pattern '' + + +
+
+ +
+ Employee +
+
+ + + +
+
+ +
+ StartDate +
+
+ + + + Incorrect Input + + +
+
+ +
+ EndDate +
+
+ + + + Incorrect Input + + +
+
+ +
+ Company +
+
+ + + +
+
+ +
+ JobRole +
+
+ + + +
+
+ +
+ AnnualPaidLeave +
+
+ + + +
+
+ +
+ Document +
+ +
+ + + + The value doesn't match the required pattern '' + + +
+
+ +
+ Type +
+
+ + + +
+
+ +
+ Comment +
+
+ + + + The value doesn't match the required pattern '' + + +
+
+
+
+
+ + + + + + + + + + + + + + + diff --git a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/dialog-window/view.extension b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/dialog-window/view.extension new file mode 100644 index 0000000..f09e3b4 --- /dev/null +++ b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/dialog-window/view.extension @@ -0,0 +1,6 @@ +{ + "module": "{{projectName}}/gen/{{genFolderName}}/ui/{{perspectiveName}}/{{name}}/dialog-window/view.js", + "extensionPoint": "dialog-window", + "description": "{{projectName}} - Application Dialog Window", + "role": "codbex-contracts.EmployeeContracts.EmployeeContractReadOnly,codbex-contracts.EmployeeContracts.EmployeeContractFullAccess" +} \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/dialog-window/view.js b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/dialog-window/view.js new file mode 100644 index 0000000..714cd57 --- /dev/null +++ b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/dialog-window/view.js @@ -0,0 +1,20 @@ +/* + * Generated by Eclipse Dirigible based on model and template. + * + * Do not modify the content as it may be re-generated again. + */ +const viewData = { + id: "EmployeeContract-details", + label: "EmployeeContract", + link: "/services/web/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/dialog-window/index.html", + perspectiveName: "EmployeeContracts", + roles: [ + "codbex-contracts.EmployeeContracts.EmployeeContractReadOnly", + ] +}; + +if (typeof exports !== 'undefined') { + exports.getDialogWindow = function () { + return viewData; + } +} \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/main-details/controller.js b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/main-details/controller.js index 76e055d..28bf45c 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/main-details/controller.js +++ b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/main-details/controller.js @@ -5,7 +5,7 @@ angular.module('page', ["ideUI", "ideView", "entityApi"]) .config(["entityApiProvider", function (entityApiProvider) { entityApiProvider.baseUrl = "/services/ts/codbex-contracts/gen/codbex-contracts/api/EmployeeContracts/EmployeeContractService.ts"; }]) - .controller('PageController', ['$scope', 'Extensions', 'messageHub', 'entityApi', function ($scope, Extensions, messageHub, entityApi) { + .controller('PageController', ['$scope', '$http', 'Extensions', 'messageHub', 'entityApi', function ($scope, $http, Extensions, messageHub, entityApi) { $scope.entity = {}; $scope.forms = { @@ -127,5 +127,86 @@ angular.module('page', ["ideUI", "ideView", "entityApi"]) $scope.cancel = function () { messageHub.postMessage("clearDetails"); }; + + //-----------------Dialogs-------------------// + + $scope.createEmployee = function () { + messageHub.showDialogWindow("Employee-details", { + action: "create", + entity: {}, + }, null, false); + }; + $scope.createCompany = function () { + messageHub.showDialogWindow("Company-details", { + action: "create", + entity: {}, + }, null, false); + }; + $scope.createJobRole = function () { + messageHub.showDialogWindow("JobRole-details", { + action: "create", + entity: {}, + }, null, false); + }; + $scope.createType = function () { + messageHub.showDialogWindow("ContractType-details", { + action: "create", + entity: {}, + }, null, false); + }; + + //-----------------Dialogs-------------------// + + + + //----------------Dropdowns-----------------// + + $scope.refreshEmployee = function () { + $scope.optionsEmployee = []; + $http.get("/services/ts/codbex-employees/gen/codbex-employees/api/Employees/EmployeeService.ts").then(function (response) { + $scope.optionsEmployee = response.data.map(e => { + return { + value: e.Id, + text: e.Name + } + }); + }); + }; + $scope.refreshCompany = function () { + $scope.optionsCompany = []; + $http.get("/services/ts/codbex-companies/gen/codbex-companies/api/Companies/CompanyService.ts").then(function (response) { + $scope.optionsCompany = response.data.map(e => { + return { + value: e.Id, + text: e.Name + } + }); + }); + }; + $scope.refreshJobRole = function () { + $scope.optionsJobRole = []; + $http.get("/services/ts/codbex-companies/gen/codbex-companies/api/Companies/JobRoleService.ts").then(function (response) { + $scope.optionsJobRole = response.data.map(e => { + return { + value: e.Id, + text: e.Name + } + }); + }); + }; + $scope.refreshType = function () { + $scope.optionsType = []; + $http.get("/services/ts/codbex-contracts/gen/codbex-contracts/api/Settings/ContractTypeService.ts").then(function (response) { + $scope.optionsType = response.data.map(e => { + return { + value: e.Id, + text: e.Name + } + }); + }); + }; + + //----------------Dropdowns-----------------// + }]); \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/main-details/index.html b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/main-details/index.html index c368bec..3d01da8 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/main-details/index.html +++ b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/main-details/index.html @@ -46,7 +46,7 @@
Employee
-
+
-
+
+ + + +
@@ -101,7 +109,7 @@
Company
-
+
-
+
+ + + +
JobRole
-
+
-
+
+ + + +
@@ -178,7 +202,7 @@
Type
-
+
-
+
+ + + +
diff --git a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/main-details/view.extension b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/main-details/view.extension index ef0302c..0f8394e 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/main-details/view.extension +++ b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/main-details/view.extension @@ -1 +1,6 @@ -{"module":"codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/main-details/view.js","extensionPoint":"codbex-contracts-view","description":"codbex-contracts - Application View - Main Details"} \ No newline at end of file +{ + "module": "codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/main-details/view.js", + "extensionPoint": "codbex-contracts-view", + "description": "codbex-contracts - Application View - Main Details", + "role": "codbex-contracts.EmployeeContracts.EmployeeContractReadOnly,codbex-contracts.EmployeeContracts.EmployeeContractFullAccess" +} \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/main-details/view.js b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/main-details/view.js index 3a517d5..f8c4c93 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/main-details/view.js +++ b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/main-details/view.js @@ -9,7 +9,7 @@ const viewData = { factory: "frame", region: "center", link: "/services/web/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/main-details/index.html", - perspectiveName: "EmployeeContracts", + perspectiveName: "EmployeeContracts" }; if (typeof exports !== 'undefined') { diff --git a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/tile-portal.extension b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/tile-portal.extension index 781e36c..c496ac0 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/tile-portal.extension +++ b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/tile-portal.extension @@ -1 +1,6 @@ -{"module":"codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/tile.js","extensionPoint":"portal-tile","description":"codbex-contracts - Application Tile"} \ No newline at end of file +{ + "module": "codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/tile.js", + "extensionPoint": "portal-tile", + "description": "codbex-contracts - Application Tile", + "role": "codbex-contracts.EmployeeContracts.EmployeeContractReadOnly,codbex-contracts.EmployeeContracts.EmployeeContractFullAccess" +} \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/tile.extension b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/tile.extension index 392a116..8c346af 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/tile.extension +++ b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/tile.extension @@ -1 +1,6 @@ -{"module":"codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/tile.js","extensionPoint":"codbex-contracts-tile","description":"codbex-contracts - Application Tile"} \ No newline at end of file +{ + "module": "codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/tile.js", + "extensionPoint": "codbex-contracts-tile", + "description": "codbex-contracts - Application Tile", + "role": "codbex-contracts.EmployeeContracts.EmployeeContractReadOnly,codbex-contracts.EmployeeContracts.EmployeeContractFullAccess" +} \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/tile.js b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/tile.js index 779816a..eb5de4d 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/tile.js +++ b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/tile.js @@ -14,6 +14,6 @@ exports.getTile = function () { icon: "/services/web/resources/unicons/file.svg", location: "/services/web/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/index.html", order: "100", - groupOrder: "103", + groupOrder: "103" }; -}; +} diff --git a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/view.extension b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/view.extension index 4a5b75b..eda40df 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/view.extension +++ b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/view.extension @@ -1 +1,6 @@ -{"module":"codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/view.js","extensionPoint":"codbex-contracts-view","description":"codbex-contracts - Application View"} \ No newline at end of file +{ + "module": "codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/view.js", + "extensionPoint": "codbex-contracts-view", + "description": "codbex-contracts - Application View", + "role": "codbex-contracts.EmployeeContracts.EmployeeContractReadOnly,codbex-contracts.EmployeeContracts.EmployeeContractFullAccess" +} \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/view.js b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/view.js index c83fe28..631307a 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/view.js +++ b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/view.js @@ -9,7 +9,7 @@ const viewData = { factory: "frame", region: "left", link: "/services/web/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/EmployeeContract/index.html", - perspectiveName: "EmployeeContracts", + perspectiveName: "EmployeeContracts" }; if (typeof exports !== 'undefined') { diff --git a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/index.html b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/index.html index 0ad09d3..e82bf78 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/index.html +++ b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/index.html @@ -52,7 +52,7 @@ .constant('extensionPoint', { perspectives: 'codbex-contracts', views: 'codbex-contracts-view', - dialogWindows: 'codbex-contracts-dialog-window' + dialogWindows: 'dialog-window' }) .controller('ApplicationController', ['$scope', 'messageHub', 'Extensions', function ($scope, messageHub, Extensions) { $scope.state = { diff --git a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/perspective-portal.extension b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/perspective-portal.extension index 16548fc..3f4f1f3 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/perspective-portal.extension +++ b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/perspective-portal.extension @@ -1 +1,5 @@ -{"module":"codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/perspective.js","extensionPoint":"portal","description":"codbex-contracts - Perspective - EmployeeContracts"} \ No newline at end of file +{ + "module": "codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/perspective.js", + "extensionPoint": "portal", + "description": "codbex-contracts - Perspective - EmployeeContracts" +} \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/perspective.extension b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/perspective.extension index 59294f4..e93cdbd 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/perspective.extension +++ b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/perspective.extension @@ -1 +1,5 @@ -{"module":"codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/perspective.js","extensionPoint":"codbex-contracts","description":"codbex-contracts - Perspective - EmployeeContracts"} \ No newline at end of file +{ + "module": "codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/perspective.js", + "extensionPoint": "codbex-contracts", + "description": "codbex-contracts - Perspective - EmployeeContracts" +} \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/perspective.js b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/perspective.js index e66d1c5..be0c9ae 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/perspective.js +++ b/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/perspective.js @@ -7,8 +7,8 @@ const perspectiveData = { id: 'EmployeeContracts', name: 'EmployeeContracts', link: '/services/web/codbex-contracts/gen/codbex-contracts/ui/EmployeeContracts/index.html', - order: 103, - icon: '/services/web/resources/unicons/book-open.svg', + order: '103', + icon: '/services/web/resources/unicons/book-open.svg' }; if (typeof exports !== 'undefined') { diff --git a/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/dialog-filter/view.extension b/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/dialog-filter/view.extension index 6ca20d6..20998da 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/dialog-filter/view.extension +++ b/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/dialog-filter/view.extension @@ -1,5 +1,6 @@ { "module": "codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/dialog-filter/view.js", - "extensionPoint": "codbex-contracts-dialog-window", - "description": "codbex-contracts - Application Dialog Window" + "extensionPoint": "dialog-window", + "description": "codbex-contracts - Application Dialog Window", + "role": "codbex-contracts.Settings.ContractTypeReadOnly,codbex-contracts.Settings.ContractTypeFullAccess" } \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/dialog-filter/view.js b/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/dialog-filter/view.js index c8e4f09..8f4a25e 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/dialog-filter/view.js +++ b/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/dialog-filter/view.js @@ -7,7 +7,7 @@ const viewData = { id: "ContractType-filter", label: "ContractType Filter", link: "/services/web/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/dialog-filter/index.html", - perspectiveName: "Settings", + perspectiveName: "Settings" }; if (typeof exports !== 'undefined') { diff --git a/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/dialog-window/controller.js b/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/dialog-window/controller.js index 97f4af2..9458a9c 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/dialog-window/controller.js +++ b/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/dialog-window/controller.js @@ -5,7 +5,7 @@ angular.module('page', ["ideUI", "ideView", "entityApi"]) .config(["entityApiProvider", function (entityApiProvider) { entityApiProvider.baseUrl = "/services/ts/codbex-contracts/gen/codbex-contracts/api/Settings/ContractTypeService.ts"; }]) - .controller('PageController', ['$scope', 'messageHub', 'ViewParameters', 'entityApi', function ($scope, messageHub, ViewParameters, entityApi) { + .controller('PageController', ['$scope', 'messageHub', 'ViewParameters', 'entityApi', function ($scope, messageHub, ViewParameters, entityApi) { $scope.entity = {}; $scope.forms = { diff --git a/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/dialog-window/view.extension b/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/dialog-window/view.extension index 0232e1a..79e46f7 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/dialog-window/view.extension +++ b/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/dialog-window/view.extension @@ -1 +1,6 @@ -{"module":"codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/dialog-window/view.js","extensionPoint":"codbex-contracts-dialog-window","description":"codbex-contracts - Application Dialog Window"} \ No newline at end of file +{ + "module": "codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/dialog-window/view.js", + "extensionPoint": "dialog-window", + "description": "codbex-contracts - Application Dialog Window", + "role": "codbex-contracts.Settings.ContractTypeReadOnly,codbex-contracts.Settings.ContractTypeFullAccess" +} \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/dialog-window/view.js b/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/dialog-window/view.js index 83ceed1..bbf95dc 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/dialog-window/view.js +++ b/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/dialog-window/view.js @@ -7,7 +7,7 @@ const viewData = { id: "ContractType-details", label: "ContractType", link: "/services/web/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/dialog-window/index.html", - perspectiveName: "Settings", + perspectiveName: "Settings" }; if (typeof exports !== 'undefined') { diff --git a/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/tile-portal.extension b/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/tile-portal.extension index f2ff204..8127b8f 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/tile-portal.extension +++ b/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/tile-portal.extension @@ -1 +1,6 @@ -{"module":"codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/tile.js","extensionPoint":"portal-tile","description":"codbex-contracts - Application Tile"} \ No newline at end of file +{ + "module": "codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/tile.js", + "extensionPoint": "portal-tile", + "description": "codbex-contracts - Application Tile", + "role": "codbex-contracts.Settings.ContractTypeReadOnly,codbex-contracts.Settings.ContractTypeFullAccess" +} \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/tile.extension b/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/tile.extension index 9546743..658cf60 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/tile.extension +++ b/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/tile.extension @@ -1 +1,6 @@ -{"module":"codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/tile.js","extensionPoint":"codbex-contracts-tile","description":"codbex-contracts - Application Tile"} \ No newline at end of file +{ + "module": "codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/tile.js", + "extensionPoint": "codbex-contracts-tile", + "description": "codbex-contracts - Application Tile", + "role": "codbex-contracts.Settings.ContractTypeReadOnly,codbex-contracts.Settings.ContractTypeFullAccess" +} \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/tile.js b/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/tile.js index 9daa39c..b11498c 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/tile.js +++ b/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/tile.js @@ -14,6 +14,6 @@ exports.getTile = function () { icon: "/services/web/resources/unicons/file.svg", location: "/services/web/codbex-contracts/gen/codbex-contracts/ui/Settings/index.html", order: "100", - groupOrder: "999", + groupOrder: "999" }; -}; +} diff --git a/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/view.extension b/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/view.extension index e32f57d..3814e1b 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/view.extension +++ b/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/view.extension @@ -1 +1,6 @@ -{"module":"codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/view.js","extensionPoint":"codbex-contracts-view","description":"codbex-contracts - Application View"} \ No newline at end of file +{ + "module": "codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/view.js", + "extensionPoint": "codbex-contracts-view", + "description": "codbex-contracts - Application View", + "role": "codbex-contracts.Settings.ContractTypeReadOnly,codbex-contracts.Settings.ContractTypeFullAccess" +} \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/view.js b/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/view.js index b392bca..2da1a5a 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/view.js +++ b/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/view.js @@ -9,7 +9,7 @@ const viewData = { factory: "frame", region: "center", link: "/services/web/codbex-contracts/gen/codbex-contracts/ui/Settings/ContractType/index.html", - perspectiveName: "Settings", + perspectiveName: "Settings" }; if (typeof exports !== 'undefined') { diff --git a/codbex-contracts/gen/codbex-contracts/ui/Settings/index.html b/codbex-contracts/gen/codbex-contracts/ui/Settings/index.html index e57ae3b..f05295f 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/Settings/index.html +++ b/codbex-contracts/gen/codbex-contracts/ui/Settings/index.html @@ -52,7 +52,7 @@ .constant('extensionPoint', { perspectives: 'codbex-contracts', views: 'codbex-contracts-view', - dialogWindows: 'codbex-contracts-dialog-window' + dialogWindows: 'dialog-window' }) .controller('ApplicationController', ['$scope', 'messageHub', 'Extensions', function ($scope, messageHub, Extensions) { $scope.state = { diff --git a/codbex-contracts/gen/codbex-contracts/ui/Settings/perspective-portal.extension b/codbex-contracts/gen/codbex-contracts/ui/Settings/perspective-portal.extension index 6bc89b3..3de8437 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/Settings/perspective-portal.extension +++ b/codbex-contracts/gen/codbex-contracts/ui/Settings/perspective-portal.extension @@ -1 +1,5 @@ -{"module":"codbex-contracts/gen/codbex-contracts/ui/Settings/perspective.js","extensionPoint":"portal","description":"codbex-contracts - Perspective - Settings"} \ No newline at end of file +{ + "module": "codbex-contracts/gen/codbex-contracts/ui/Settings/perspective.js", + "extensionPoint": "portal", + "description": "codbex-contracts - Perspective - Settings" +} \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/Settings/perspective.extension b/codbex-contracts/gen/codbex-contracts/ui/Settings/perspective.extension index 0df6289..4d2d0c6 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/Settings/perspective.extension +++ b/codbex-contracts/gen/codbex-contracts/ui/Settings/perspective.extension @@ -1 +1,5 @@ -{"module":"codbex-contracts/gen/codbex-contracts/ui/Settings/perspective.js","extensionPoint":"codbex-contracts","description":"codbex-contracts - Perspective - Settings"} \ No newline at end of file +{ + "module": "codbex-contracts/gen/codbex-contracts/ui/Settings/perspective.js", + "extensionPoint": "codbex-contracts", + "description": "codbex-contracts - Perspective - Settings" +} \ No newline at end of file diff --git a/codbex-contracts/gen/codbex-contracts/ui/Settings/perspective.js b/codbex-contracts/gen/codbex-contracts/ui/Settings/perspective.js index e0420f7..eb59bae 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/Settings/perspective.js +++ b/codbex-contracts/gen/codbex-contracts/ui/Settings/perspective.js @@ -7,8 +7,8 @@ const perspectiveData = { id: 'Settings', name: 'Settings', link: '/services/web/codbex-contracts/gen/codbex-contracts/ui/Settings/index.html', - order: 999, - icon: '/services/web/resources/unicons/wrench.svg', + order: '999', + icon: '/services/web/resources/unicons/wrench.svg' }; if (typeof exports !== 'undefined') { diff --git a/codbex-contracts/gen/codbex-contracts/ui/launchpad/dialog-window.extensionpoint b/codbex-contracts/gen/codbex-contracts/ui/launchpad/dialog-window.extensionpoint index 9b5e7af..ebfdc93 100644 --- a/codbex-contracts/gen/codbex-contracts/ui/launchpad/dialog-window.extensionpoint +++ b/codbex-contracts/gen/codbex-contracts/ui/launchpad/dialog-window.extensionpoint @@ -1,4 +1,4 @@ { - "name": "codbex-contracts-dialog-window", + "name": "dialog-window", "description": "codbex-contracts - Extension Point for the Application Dialog Window Providers" } \ No newline at end of file diff --git a/codbex-contracts/navigations/contracts/navigation.extension b/codbex-contracts/navigations/contracts/navigation.extension index 398394c..e4f07c4 100644 --- a/codbex-contracts/navigations/contracts/navigation.extension +++ b/codbex-contracts/navigations/contracts/navigation.extension @@ -1,5 +1,6 @@ { "extensionPoint": "dashboard-navigations", "module": "codbex-contracts/navigations/contracts/service.js", - "description": "Contracts Navigation" + "description": "Contracts Navigation", + "role": "codbex-contracts.Contract.ContractFullAccess,codbex-contracts.Contract.ContractReadOnly" } \ No newline at end of file diff --git a/codbex-contracts/navigations/employee-contracts/navigation.extension b/codbex-contracts/navigations/employee-contracts/navigation.extension index c9dc5ff..91571c3 100644 --- a/codbex-contracts/navigations/employee-contracts/navigation.extension +++ b/codbex-contracts/navigations/employee-contracts/navigation.extension @@ -1,5 +1,6 @@ { "extensionPoint": "dashboard-navigations", "module": "codbex-contracts/navigations/employee-contracts/service.js", - "description": "Contracts Navigation" + "description": "Contracts Navigation", + "role": "codbex-contracts.EmployeeContracts.EmployeeContractReadOnly,codbex-contracts.EmployeeContracts.EmployeeContractFullAccess" } \ No newline at end of file From 30f53f479e79abc446294570610826b14f52afb5 Mon Sep 17 00:00:00 2001 From: Nikol Georgieva Date: Fri, 21 Mar 2025 12:24:35 +0200 Subject: [PATCH 2/3] add new model image --- README.md | 2 +- images/contracts-model.png | Bin 0 -> 229600 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 images/contracts-model.png diff --git a/README.md b/README.md index bd53632..49a5cd2 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # codbex-contracts ### Model -Screenshot 2025-01-03 at 19 58 47 +![model](images/contracts-model.png) diff --git a/images/contracts-model.png b/images/contracts-model.png new file mode 100644 index 0000000000000000000000000000000000000000..bf332f20c41b976a93212217aa0f1bf33f4c19e7 GIT binary patch literal 229600 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

HNt6+*#v9*Y(7lc)*P9ACA(Hu> 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 literal 0 HcmV?d00001 From 5f1c0cf653ed2c02c827c2e060fd15ed0c1d359a Mon Sep 17 00:00:00 2001 From: tivmof Date: Mon, 24 Mar 2025 15:28:12 +0000 Subject: [PATCH 3/3] chore: Removing roles from event extension --- .../EmployeeContractItem/EmployeeContractItemToRecord.extension | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codbex-contracts/events/EmployeeContractItem/EmployeeContractItemToRecord.extension b/codbex-contracts/events/EmployeeContractItem/EmployeeContractItemToRecord.extension index d00ca21..e12c377 100644 --- a/codbex-contracts/events/EmployeeContractItem/EmployeeContractItemToRecord.extension +++ b/codbex-contracts/events/EmployeeContractItem/EmployeeContractItemToRecord.extension @@ -2,5 +2,5 @@ "module": "codbex-contracts/events/EmployeeContractItem/EmployeeContractItemToRecordHandler.ts", "extensionPoint": "codbex-contracts-EmployeeContracts-EmployeeContract", "description": "Employee contract Extension", - "role": "codbex-contracts.EmployeeContracts.EmployeeContractReadOnly,codbex-contracts.EmployeeContracts.EmployeeContractFullAccess,codbex-contracts.EmployeeContracts.EmployeeContractItemReadOnly,codbex-contracts.EmployeeContracts.EmployeeContractItemFullAccess" + "role": "" } \ No newline at end of file