diff --git a/codbex-number-generator/codbex-number-generator.gen b/codbex-number-generator/codbex-number-generator.gen index f0a185a..1c791a6 100644 --- a/codbex-number-generator/codbex-number-generator.gen +++ b/codbex-number-generator/codbex-number-generator.gen @@ -2,8 +2,8 @@ "tablePrefix": "CODBEX_", "brand": "codbex", "brandUrl": "https://www.codbex.com/", - "title": "Number generator Management Module", - "description": "Managing Number generator Data", + "title": "Number Generator Management Module", + "description": "Managing Number Generator Data", "projectName": "codbex-number-generator", "workspaceName": "workspace", "filePath": "codbex-number-generator.model", @@ -53,6 +53,7 @@ "dataUnique": false, "isRequiredProperty": false, "isCalculatedProperty": false, + "isReadOnlyProperty": false, "widgetLabel": "Id", "widgetDropdownUrl": "", "widgetDropdownControllerUrl": "", @@ -78,6 +79,7 @@ "dataPrimaryKey": false, "isRequiredProperty": false, "isCalculatedProperty": false, + "isReadOnlyProperty": false, "widgetLabel": "Type", "widgetDropdownUrl": "", "widgetDropdownControllerUrl": "", @@ -105,6 +107,7 @@ "dataPrimaryKey": false, "isRequiredProperty": false, "isCalculatedProperty": false, + "isReadOnlyProperty": false, "widgetLabel": "Prefix", "widgetDropdownUrl": "", "widgetDropdownControllerUrl": "", @@ -131,6 +134,7 @@ "dataUnique": false, "isRequiredProperty": false, "isCalculatedProperty": false, + "isReadOnlyProperty": false, "widgetLabel": "Length", "widgetDropdownUrl": "", "widgetDropdownControllerUrl": "", @@ -155,6 +159,7 @@ "dataUnique": false, "isRequiredProperty": false, "isCalculatedProperty": false, + "isReadOnlyProperty": false, "widgetLabel": "Value", "widgetDropdownUrl": "", "widgetDropdownControllerUrl": "", diff --git a/codbex-number-generator/gen/codbex-number-generator/api/Settings/NumberController.ts b/codbex-number-generator/gen/codbex-number-generator/api/Settings/NumberController.ts index 54f0af6..1ec3230 100644 --- a/codbex-number-generator/gen/codbex-number-generator/api/Settings/NumberController.ts +++ b/codbex-number-generator/gen/codbex-number-generator/api/Settings/NumberController.ts @@ -27,7 +27,7 @@ class NumberController { const options: Options = { limit: ctx.queryParameters["$limit"] ? parseInt(ctx.queryParameters["$limit"]) : 20, offset: ctx.queryParameters["$offset"] ? parseInt(ctx.queryParameters["$offset"]) : 0, - language: request.getLocale().slice(0, 2) + language: request.getLocale().split("_")[0] }; return this.repository.findAll(options); @@ -96,7 +96,7 @@ class NumberController { this.checkPermissions('read'); const id = parseInt(ctx.pathParameters.id); const options: Options = { - language: request.getLocale().slice(0, 2) + language: request.getLocale().split("_")[0] }; const entity = this.repository.findById(id, options); if (entity) { diff --git a/codbex-number-generator/gen/codbex-number-generator/dao/Settings/Number.extensionpoint b/codbex-number-generator/gen/codbex-number-generator/dao/Settings/Number.extensionpoint deleted file mode 100644 index e26b8da..0000000 --- a/codbex-number-generator/gen/codbex-number-generator/dao/Settings/Number.extensionpoint +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "codbex-number-generator-Settings-Number", - "description": "Extension Point for the codbex-number-generator-Settings-Number entity" -} \ No newline at end of file diff --git a/codbex-number-generator/gen/codbex-number-generator/dao/Settings/NumberRepository.ts b/codbex-number-generator/gen/codbex-number-generator/dao/Settings/NumberRepository.ts deleted file mode 100644 index aa41f23..0000000 --- a/codbex-number-generator/gen/codbex-number-generator/dao/Settings/NumberRepository.ts +++ /dev/null @@ -1,241 +0,0 @@ -import { sql, query } from "@aerokit/sdk/db"; -import { producer } from "@aerokit/sdk/messaging"; -import { extensions } from "@aerokit/sdk/extensions"; -import { dao as daoApi } from "@aerokit/sdk/db"; - -export interface NumberEntity { - readonly Id: number; - Type: string; - Prefix: string; - Length?: number; - Value?: number; -} - -export interface NumberCreateEntity { - readonly Type: string; - readonly Prefix: string; - readonly Length?: number; - readonly Value?: number; -} - -export interface NumberUpdateEntity extends NumberCreateEntity { - readonly Id: number; -} - -export interface NumberEntityOptions { - $filter?: { - equals?: { - Id?: number | number[]; - Type?: string | string[]; - Prefix?: string | string[]; - Length?: number | number[]; - Value?: number | number[]; - }; - notEquals?: { - Id?: number | number[]; - Type?: string | string[]; - Prefix?: string | string[]; - Length?: number | number[]; - Value?: number | number[]; - }; - contains?: { - Id?: number; - Type?: string; - Prefix?: string; - Length?: number; - Value?: number; - }; - greaterThan?: { - Id?: number; - Type?: string; - Prefix?: string; - Length?: number; - Value?: number; - }; - greaterThanOrEqual?: { - Id?: number; - Type?: string; - Prefix?: string; - Length?: number; - Value?: number; - }; - lessThan?: { - Id?: number; - Type?: string; - Prefix?: string; - Length?: number; - Value?: number; - }; - lessThanOrEqual?: { - Id?: number; - Type?: string; - Prefix?: string; - Length?: number; - Value?: number; - }; - }, - $select?: (keyof NumberEntity)[], - $sort?: string | (keyof NumberEntity)[], - $order?: 'ASC' | 'DESC', - $offset?: number, - $limit?: number, - $language?: string -} - -export interface NumberEntityEvent { - readonly operation: 'create' | 'update' | 'delete'; - readonly table: string; - readonly entity: Partial; - readonly key: { - name: string; - column: string; - value: number; - } -} - -export interface NumberUpdateEntityEvent extends NumberEntityEvent { - readonly previousEntity: NumberEntity; -} - -export class NumberRepository { - - private static readonly DEFINITION = { - table: "CODBEX_NUMBER", - properties: [ - { - name: "Id", - column: "NUMBER_ID", - type: "INTEGER", - id: true, - autoIncrement: true, - }, - { - name: "Type", - column: "NUMBER_TYPE", - type: "VARCHAR", - required: true - }, - { - name: "Prefix", - column: "NUMBER_PREFIX", - type: "VARCHAR", - required: true - }, - { - name: "Length", - column: "NUMBER_LENGTH", - type: "INTEGER", - }, - { - name: "Value", - column: "NUMBER_VALUE", - type: "INTEGER", - } - ] - }; - - private readonly dao; - - constructor(dataSource = "DefaultDB") { - this.dao = daoApi.create(NumberRepository.DEFINITION, undefined, dataSource); - } - - public findAll(options: NumberEntityOptions = {}): NumberEntity[] { - let list = this.dao.list(options); - return list; - } - - public findById(id: number, options: NumberEntityOptions = {}): NumberEntity | undefined { - const entity = this.dao.find(id); - return entity ?? undefined; - } - - public create(entity: NumberCreateEntity): number { - const id = this.dao.insert(entity); - this.triggerEvent({ - operation: "create", - table: "CODBEX_NUMBER", - entity: entity, - key: { - name: "Id", - column: "NUMBER_ID", - value: id - } - }); - return id; - } - - public update(entity: NumberUpdateEntity): void { - const previousEntity = this.findById(entity.Id); - this.dao.update(entity); - this.triggerEvent({ - operation: "update", - table: "CODBEX_NUMBER", - entity: entity, - previousEntity: previousEntity, - key: { - name: "Id", - column: "NUMBER_ID", - value: entity.Id - } - }); - } - - public upsert(entity: NumberCreateEntity | NumberUpdateEntity): number { - const id = (entity as NumberUpdateEntity).Id; - if (!id) { - return this.create(entity); - } - - const existingEntity = this.findById(id); - if (existingEntity) { - this.update(entity as NumberUpdateEntity); - return id; - } else { - return this.create(entity); - } - } - - public deleteById(id: number): void { - const entity = this.dao.find(id); - this.dao.remove(id); - this.triggerEvent({ - operation: "delete", - table: "CODBEX_NUMBER", - entity: entity, - key: { - name: "Id", - column: "NUMBER_ID", - value: id - } - }); - } - - public count(options?: NumberEntityOptions): number { - return this.dao.count(options); - } - - public customDataCount(): number { - const resultSet = query.execute('SELECT COUNT(*) AS COUNT FROM "CODBEX_NUMBER"'); - if (resultSet !== null && resultSet[0] !== null) { - if (resultSet[0].COUNT !== undefined && resultSet[0].COUNT !== null) { - return resultSet[0].COUNT; - } else if (resultSet[0].count !== undefined && resultSet[0].count !== null) { - return resultSet[0].count; - } - } - return 0; - } - - private async triggerEvent(data: NumberEntityEvent | NumberUpdateEntityEvent) { - const triggerExtensions = await extensions.loadExtensionModules("codbex-number-generator-Settings-Number", ["trigger"]); - triggerExtensions.forEach(triggerExtension => { - try { - triggerExtension.trigger(data); - } catch (error) { - console.error(error); - } - }); - producer.topic("codbex-number-generator-Settings-Number").send(JSON.stringify(data)); - } -} diff --git a/codbex-number-generator/gen/codbex-number-generator/dao/utils/EntityUtils.ts b/codbex-number-generator/gen/codbex-number-generator/dao/utils/EntityUtils.ts deleted file mode 100644 index 0f8815d..0000000 --- a/codbex-number-generator/gen/codbex-number-generator/dao/utils/EntityUtils.ts +++ /dev/null @@ -1,20 +0,0 @@ -export class EntityUtils { - - public static setDate(obj: any, property: string): void { - if (obj && obj[property]) { - obj[property] = new Date(obj[property]).getTime(); - } - } - - public static setLocalDate(obj: any, property: string): void { - if (obj && obj[property]) { - obj[property] = new Date(new Date(obj[property]).setHours(-(new Date().getTimezoneOffset() / 60), 0, 0, 0)).toISOString(); - } - } - - public static setBoolean(obj: any, property: string): void { - if (obj && obj[property] !== undefined) { - obj[property] = obj[property] ? true : false; - } - } -} \ No newline at end of file diff --git a/codbex-number-generator/gen/codbex-number-generator/data/Settings/NumberEntity.ts b/codbex-number-generator/gen/codbex-number-generator/data/Settings/NumberEntity.ts index 78bffbb..37e4af2 100644 --- a/codbex-number-generator/gen/codbex-number-generator/data/Settings/NumberEntity.ts +++ b/codbex-number-generator/gen/codbex-number-generator/data/Settings/NumberEntity.ts @@ -1,4 +1,4 @@ -import { Entity, Table, Id, Generated, Column, Documentation } from '@aerokit/sdk/db' +import { Entity, Table, Id, Generated, Column, Documentation, CreatedAt, CreatedBy, UpdatedAt, UpdatedBy} from '@aerokit/sdk/db' @Entity('NumberEntity') @Table('CODBEX_NUMBER') diff --git a/codbex-number-generator/gen/codbex-number-generator/data/Settings/NumberRepository.ts b/codbex-number-generator/gen/codbex-number-generator/data/Settings/NumberRepository.ts index dc5fb0b..023f06e 100644 --- a/codbex-number-generator/gen/codbex-number-generator/data/Settings/NumberRepository.ts +++ b/codbex-number-generator/gen/codbex-number-generator/data/Settings/NumberRepository.ts @@ -1,4 +1,4 @@ -import { Repository, EntityEvent, EntityConstructor } from '@aerokit/sdk/db' +import { Repository, EntityEvent, EntityConstructor, Options } from '@aerokit/sdk/db' import { Component } from '@aerokit/sdk/component' import { Producer } from '@aerokit/sdk/messaging' import { Extensions } from '@aerokit/sdk/extensions' diff --git a/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/dialog-window/index.html b/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/dialog-window/index.html index d98aa1b..fc1c345 100644 --- a/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/dialog-window/index.html +++ b/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/dialog-window/index.html @@ -23,15 +23,16 @@ {{ 'codbex-number-generator:codbex-number-generator-model.t.NUMBER_TYPE' | t }}
- + @@ -43,15 +44,16 @@ {{ 'codbex-number-generator:codbex-number-generator-model.t.NUMBER_PREFIX' | t }}
- + @@ -68,7 +70,7 @@ state="{{ forms.details['Length'].$valid ? '' : 'error' }}" ng-required="false" ng-model="entity.Length" - is-readonly="action === 'select'" + is-readonly="true" placeholder="{{ 'codbex-number-generator:codbex-number-generator-model.messages.inputEnter' | t:{'name':'$t(codbex-number-generator:codbex-number-generator-model.t.NUMBER_LENGTH)'} }}">
@@ -83,7 +85,7 @@ state="{{ forms.details['Value'].$valid ? '' : 'error' }}" ng-required="false" ng-model="entity.Value" - is-readonly="action === 'select'" + is-readonly="true" placeholder="{{ 'codbex-number-generator:codbex-number-generator-model.messages.inputEnter' | t:{'name':'$t(codbex-number-generator:codbex-number-generator-model.t.NUMBER_VALUE)'} }}"> diff --git a/codbex-number-generator/service/generator.ts b/codbex-number-generator/service/generator.ts index 4faaec3..d44c085 100644 --- a/codbex-number-generator/service/generator.ts +++ b/codbex-number-generator/service/generator.ts @@ -1,4 +1,5 @@ import { NumberRepository } from "../gen/codbex-number-generator/data/Settings/NumberRepository"; +import { Operator } from '@aerokit/sdk/db' export class NumberGeneratorService { @@ -30,8 +31,16 @@ export class NumberGeneratorService { public generateByType(genType: string): string | undefined { try { - const entity = this.numberRepository.findAll() - .filter(item => item.Type === genType).at(0); + const entity = this.numberRepository.findAll({ + conditions: [ + { + propertyName: "Type", + operator: Operator.EQ, + value: genType + } + ], + limit: 1 + })[0]; if (!entity) { throw new Error(`Entity with type ${genType} not found`); diff --git a/codbex-number-generator/translations/en-US/codbex-number-generator.model.json b/codbex-number-generator/translations/en-US/codbex-number-generator.model.json index 3e6d2c9..afaac86 100644 --- a/codbex-number-generator/translations/en-US/codbex-number-generator.model.json +++ b/codbex-number-generator/translations/en-US/codbex-number-generator.model.json @@ -24,7 +24,10 @@ "unableToLoad": "Unable to load data: '{{message}}'", "unableToLF": "Unable to list/filter {{name}}: '{{message}}'", "unableToCount": "Unable to count {{name}}: '{{message}}'", - "pattern": "The value doesn't match the required pattern: {{rule}}" + "pattern": "The value doesn't match the required pattern: {{rule}}", + "lengthMinMax": "Value must be between {{min}} and {{max}} characters long", + "lengthMin": "Value must not be less than {{min}} characters", + "lengthMax": "Value must not be more than {{max}} characters" }, "propertySuccessfullyCreated": "{{name}} successfully created", "propertySuccessfullyUpdated": "{{name}} successfully updated",