From 402eb8e928c6438e8f755a53c1c690a64c408edd Mon Sep 17 00:00:00 2001 From: NicoleNG18 Date: Fri, 13 Feb 2026 18:47:39 +0200 Subject: [PATCH] regenerate module using Application Full Stack - v2 template --- .../codbex-number-generator.gen | 34 +- .../api/Settings/NumberController.ts | 178 +++++ .../api/Settings/NumberService.ts | 152 ---- .../api/utils/ForbiddenError.ts | 8 - .../api/utils/HttpUtils.ts | 60 -- .../api/utils/ValidationError.ts | 8 - .../codbex-number-generator.openapi | 663 ------------------ .../dao/Settings/NumberRepository.ts | 18 +- .../data/Settings/Number.extensionpoint | 4 + .../data/Settings/NumberEntity.ts | 51 ++ .../data/Settings/NumberRepository.ts | 25 + .../schema/codbex-number-generator.schema | 2 + .../ui/Settings/Number/controller.js | 57 +- .../Number/dialog-filter/controller.js | 44 +- .../Settings/Number/dialog-filter/index.html | 28 +- .../ui/Settings/Number/dialog-filter/view.js | 6 + .../Number/dialog-window/controller.js | 42 +- .../Settings/Number/dialog-window/index.html | 25 +- .../ui/Settings/Number/dialog-window/view.js | 3 + .../ui/Settings/Number/index.html | 31 +- .../ui/Settings/Number/view.js | 3 + .../en-US/codbex-number-generator.model.json | 74 ++ 22 files changed, 507 insertions(+), 1009 deletions(-) create mode 100644 codbex-number-generator/gen/codbex-number-generator/api/Settings/NumberController.ts delete mode 100644 codbex-number-generator/gen/codbex-number-generator/api/Settings/NumberService.ts delete mode 100644 codbex-number-generator/gen/codbex-number-generator/api/utils/ForbiddenError.ts delete mode 100644 codbex-number-generator/gen/codbex-number-generator/api/utils/HttpUtils.ts delete mode 100644 codbex-number-generator/gen/codbex-number-generator/api/utils/ValidationError.ts delete mode 100644 codbex-number-generator/gen/codbex-number-generator/codbex-number-generator.openapi create mode 100644 codbex-number-generator/gen/codbex-number-generator/data/Settings/Number.extensionpoint create mode 100644 codbex-number-generator/gen/codbex-number-generator/data/Settings/NumberEntity.ts create mode 100644 codbex-number-generator/gen/codbex-number-generator/data/Settings/NumberRepository.ts create mode 100644 codbex-number-generator/translations/en-US/codbex-number-generator.model.json diff --git a/codbex-number-generator/codbex-number-generator.gen b/codbex-number-generator/codbex-number-generator.gen index c4da9db..b53e1b8 100644 --- a/codbex-number-generator/codbex-number-generator.gen +++ b/codbex-number-generator/codbex-number-generator.gen @@ -1,23 +1,16 @@ { "tablePrefix": "CODBEX_", "brand": "codbex", - "brandUrl": "https://codbex.com", - "title": "Document Number Generator", - "description": "Generator for Document Numbers", - "fileName": "codbex-number-generator", - "dataSource": "DefaultDB", - "genFolderName": "codbex-number-generator", - "roles": [ - { - "entityName": "Number", - "roleRead": "codbex-number-generator.Numbers.NumberReadOnly", - "roleWrite": "codbex-number-generator.Numbers.NumberFullAccess" - } - ], + "brandUrl": "https://www.codbex.com/", + "title": "Number Generator managing module", + "description": "Managing number generator data", "projectName": "codbex-number-generator", "workspaceName": "workspace", "filePath": "codbex-number-generator.model", - "templateId": "template-application-angular/template/template.js", + "templateId": "template-application-angular-v2/template/template.js", + "fileName": "codbex-number-generator", + "genFolderName": "codbex-number-generator", + "dataSource": "DefaultDB", "perspectives": { "Settings": { "views": [ @@ -32,6 +25,14 @@ "role": "" } }, + "roles": [ + { + "entityName": "Number", + "roleRead": "codbex-number-generator.Numbers.NumberReadOnly", + "roleWrite": "codbex-number-generator.Numbers.NumberFullAccess" + } + ], + "tprefix": "codbex-number-generator-model", "models": [ { "properties": [ @@ -54,6 +55,7 @@ "isCalculatedProperty": false, "widgetLabel": "Id", "widgetDropdownUrl": "", + "widgetDropdownControllerUrl": "", "dataTypeJava": "int", "dataTypeTypescript": "number", "inputRule": "" @@ -78,6 +80,7 @@ "isCalculatedProperty": false, "widgetLabel": "Type", "widgetDropdownUrl": "", + "widgetDropdownControllerUrl": "", "dataTypeJava": "string", "dataTypeTypescript": "string", "minLength": 0, @@ -104,6 +107,7 @@ "isCalculatedProperty": false, "widgetLabel": "Prefix", "widgetDropdownUrl": "", + "widgetDropdownControllerUrl": "", "dataTypeJava": "string", "dataTypeTypescript": "string", "minLength": 0, @@ -129,6 +133,7 @@ "isCalculatedProperty": false, "widgetLabel": "Length", "widgetDropdownUrl": "", + "widgetDropdownControllerUrl": "", "dataTypeJava": "int", "dataTypeTypescript": "number", "inputRule": "" @@ -152,6 +157,7 @@ "isCalculatedProperty": false, "widgetLabel": "Value", "widgetDropdownUrl": "", + "widgetDropdownControllerUrl": "", "dataTypeJava": "int", "dataTypeTypescript": "number", "inputRule": "" 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 new file mode 100644 index 0000000..54f0af6 --- /dev/null +++ b/codbex-number-generator/gen/codbex-number-generator/api/Settings/NumberController.ts @@ -0,0 +1,178 @@ +import { Controller, Get, Post, Put, Delete, Documentation, request, response } from '@aerokit/sdk/http' +import { HttpUtils } from "@aerokit/sdk/http/utils"; +import { ValidationError } from '@aerokit/sdk/http/errors' +import { ForbiddenError } from '@aerokit/sdk/http/errors' +import { user } from '@aerokit/sdk/security' +import { Options } from '@aerokit/sdk/db' +import { Extensions } from "@aerokit/sdk/extensions" +import { Injected, Inject } from '@aerokit/sdk/component' +import { NumberRepository } from '../../data/Settings/NumberRepository' +import { NumberEntity } from '../../data/Settings/NumberEntity' + +const validationModules = await Extensions.loadExtensionModules('codbex-number-generator-Settings-Number', ['validate']); + +@Controller +@Documentation('codbex-number-generator - Number Controller') +@Injected() +class NumberController { + + @Inject('NumberRepository') + private readonly repository!: NumberRepository; + + @Get('/') + @Documentation('Get All Number') + public getAll(_: any, ctx: any): NumberEntity[] { + try { + this.checkPermissions('read'); + 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) + }; + + return this.repository.findAll(options); + } catch (error: any) { + this.handleError(error); + } + return undefined as any; + } + + @Post('/') + @Documentation('Create Number') + public create(entity: NumberEntity): NumberEntity { + try { + this.checkPermissions('write'); + this.validateEntity(entity); + entity.Id = this.repository.create(entity) as any; + response.setHeader('Content-Location', '/services/ts/codbex-number-generator/gen/codbex-number-generator/api/Settings/NumberService.ts/' + entity.Id); + response.setStatus(response.CREATED); + return entity; + } catch (error: any) { + this.handleError(error); + } + return undefined as any; + } + + @Get('/count') + @Documentation('Count Number') + public count(): { count: number } { + try { + this.checkPermissions('read'); + return { count: this.repository.count() }; + } catch (error: any) { + this.handleError(error); + } + return undefined as any; + } + + @Post('/count') + @Documentation('Count Number with filter') + public countWithFilter(filter: any): { count: number } { + try { + this.checkPermissions('read'); + return { count: this.repository.count(filter) }; + } catch (error: any) { + this.handleError(error); + } + return undefined as any; + } + + @Post('/search') + @Documentation('Search Number') + public search(filter: any): NumberEntity[] { + try { + this.checkPermissions('read'); + return this.repository.findAll(filter); + } catch (error: any) { + this.handleError(error); + } + return undefined as any; + } + + @Get('/:id') + @Documentation('Get Number by id') + public getById(_: any, ctx: any): NumberEntity { + try { + this.checkPermissions('read'); + const id = parseInt(ctx.pathParameters.id); + const options: Options = { + language: request.getLocale().slice(0, 2) + }; + const entity = this.repository.findById(id, options); + if (entity) { + return entity; + } else { + HttpUtils.sendResponseNotFound('Number not found'); + } + } catch (error: any) { + this.handleError(error); + } + return undefined as any; + } + + @Put('/:id') + @Documentation('Update Number by id') + public update(entity: NumberEntity, ctx: any): NumberEntity { + try { + this.checkPermissions('write'); + const id = parseInt(ctx.pathParameters.id); + entity.Id = id; + this.validateEntity(entity); + this.repository.update(entity); + return entity; + } catch (error: any) { + this.handleError(error); + } + return undefined as any; + } + + @Delete('/:id') + @Documentation('Delete Number by id') + public deleteById(_: any, ctx: any): void { + try { + this.checkPermissions('write'); + const id = parseInt(ctx.pathParameters.id); + const entity = this.repository.findById(id); + if (entity) { + this.repository.deleteById(id); + HttpUtils.sendResponseNoContent(); + } else { + HttpUtils.sendResponseNotFound('Number not found'); + } + } catch (error: any) { + this.handleError(error); + } + } + + private handleError(error: any) { + if (error.name === 'ForbiddenError') { + HttpUtils.sendForbiddenRequest(error.message); + } else if (error.name === 'ValidationError') { + HttpUtils.sendResponseBadRequest(error.message); + } else { + HttpUtils.sendInternalServerError(error.message); + } + } + + private checkPermissions(operationType: string) { + if (operationType === 'read' && !(user.isInRole('codbex-number-generator.Numbers.NumberReadOnly') || user.isInRole('codbex-number-generator.Numbers.NumberFullAccess'))) { + throw new ForbiddenError(); + } + if (operationType === 'write' && !user.isInRole('codbex-number-generator.Numbers.NumberFullAccess')) { + throw new ForbiddenError(); + } + } + + private validateEntity(entity: any): void { + if (entity.Type?.length > 50) { + throw new ValidationError(`The 'Type' exceeds the maximum length of [50] characters`); + } + if (entity.Prefix?.length > 20) { + throw new ValidationError(`The 'Prefix' exceeds the maximum length of [20] characters`); + } + for (const next of validationModules) { + next.validate(entity); + } + } + +} diff --git a/codbex-number-generator/gen/codbex-number-generator/api/Settings/NumberService.ts b/codbex-number-generator/gen/codbex-number-generator/api/Settings/NumberService.ts deleted file mode 100644 index cfa4189..0000000 --- a/codbex-number-generator/gen/codbex-number-generator/api/Settings/NumberService.ts +++ /dev/null @@ -1,152 +0,0 @@ -import { Controller, Get, Post, Put, Delete, response } from "sdk/http" -import { Extensions } from "sdk/extensions" -import { NumberRepository, NumberEntityOptions } from "../../dao/Settings/NumberRepository"; -import { user } from "sdk/security" -import { ForbiddenError } from "../utils/ForbiddenError"; -import { ValidationError } from "../utils/ValidationError"; -import { HttpUtils } from "../utils/HttpUtils"; - -const validationModules = await Extensions.loadExtensionModules("codbex-number-generator-Settings-Number", ["validate"]); - -@Controller -class NumberService { - - private readonly repository = new NumberRepository(); - - @Get("/") - public getAll(_: any, ctx: any) { - try { - this.checkPermissions("read"); - const options: NumberEntityOptions = { - $limit: ctx.queryParameters["$limit"] ? parseInt(ctx.queryParameters["$limit"]) : undefined, - $offset: ctx.queryParameters["$offset"] ? parseInt(ctx.queryParameters["$offset"]) : undefined - }; - - return this.repository.findAll(options); - } catch (error: any) { - this.handleError(error); - } - } - - @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-number-generator/gen/codbex-number-generator/api/Settings/NumberService.ts/" + entity.Id); - response.setStatus(response.CREATED); - return entity; - } catch (error: any) { - this.handleError(error); - } - } - - @Get("/count") - public count() { - try { - this.checkPermissions("read"); - return { count: this.repository.count() }; - } catch (error: any) { - this.handleError(error); - } - } - - @Post("/count") - public countWithFilter(filter: any) { - try { - this.checkPermissions("read"); - return { count: this.repository.count(filter) }; - } catch (error: any) { - this.handleError(error); - } - } - - @Post("/search") - public search(filter: any) { - try { - this.checkPermissions("read"); - return this.repository.findAll(filter); - } catch (error: any) { - this.handleError(error); - } - } - - @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) { - return entity; - } else { - HttpUtils.sendResponseNotFound("Number not found"); - } - } catch (error: any) { - this.handleError(error); - } - } - - @Put("/:id") - public update(entity: any, ctx: any) { - try { - this.checkPermissions("write"); - entity.Id = ctx.pathParameters.id; - this.validateEntity(entity); - this.repository.update(entity); - return entity; - } catch (error: any) { - this.handleError(error); - } - } - - @Delete("/:id") - public deleteById(_: any, ctx: any) { - try { - this.checkPermissions("write"); - const id = ctx.pathParameters.id; - const entity = this.repository.findById(id); - if (entity) { - this.repository.deleteById(id); - HttpUtils.sendResponseNoContent(); - } else { - HttpUtils.sendResponseNotFound("Number not found"); - } - } catch (error: any) { - this.handleError(error); - } - } - - private handleError(error: any) { - if (error.name === "ForbiddenError") { - HttpUtils.sendForbiddenRequest(error.message); - } else if (error.name === "ValidationError") { - HttpUtils.sendResponseBadRequest(error.message); - } else { - HttpUtils.sendInternalServerError(error.message); - } - } - - private checkPermissions(operationType: string) { - if (operationType === "read" && !(user.isInRole("codbex-number-generator.Numbers.NumberReadOnly") || user.isInRole("codbex-number-generator.Numbers.NumberFullAccess"))) { - throw new ForbiddenError(); - } - if (operationType === "write" && !user.isInRole("codbex-number-generator.Numbers.NumberFullAccess")) { - throw new ForbiddenError(); - } - } - - private validateEntity(entity: any): void { - if (entity.Type?.length > 50) { - throw new ValidationError(`The 'Type' exceeds the maximum length of [50] characters`); - } - if (entity.Prefix?.length > 20) { - throw new ValidationError(`The 'Prefix' exceeds the maximum length of [20] characters`); - } - for (const next of validationModules) { - next.validate(entity); - } - } - -} diff --git a/codbex-number-generator/gen/codbex-number-generator/api/utils/ForbiddenError.ts b/codbex-number-generator/gen/codbex-number-generator/api/utils/ForbiddenError.ts deleted file mode 100644 index 775ae84..0000000 --- a/codbex-number-generator/gen/codbex-number-generator/api/utils/ForbiddenError.ts +++ /dev/null @@ -1,8 +0,0 @@ -export class ForbiddenError extends Error { - readonly name = "ForbiddenError"; - readonly stack = (new Error()).stack; - - constructor(message: string = "You don't have permission to access this resource") { - super(message); - } -} \ No newline at end of file diff --git a/codbex-number-generator/gen/codbex-number-generator/api/utils/HttpUtils.ts b/codbex-number-generator/gen/codbex-number-generator/api/utils/HttpUtils.ts deleted file mode 100644 index 80efced..0000000 --- a/codbex-number-generator/gen/codbex-number-generator/api/utils/HttpUtils.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { response } from "sdk/http"; - -export class HttpUtils { - - // HTTP 200 - public static sendResponseOk(entity: any): void { - HttpUtils.sendResponse(200, entity); - } - - // HTTP 201 - public static sendResponseCreated(entity): void { - HttpUtils.sendResponse(201, entity); - } - - // HTTP 204 - public static sendResponseNoContent(): void { - HttpUtils.sendResponse(204); - } - - // HTTP 400 - public static sendResponseBadRequest(message): void { - HttpUtils.sendResponse(400, { - "code": 400, - "message": message - }); - } - - // HTTP 403 - public static sendForbiddenRequest(message): void { - HttpUtils.sendResponse(403, { - "code": 403, - "message": message - }); - } - - // HTTP 404 - public static sendResponseNotFound(message): void { - HttpUtils.sendResponse(404, { - "code": 404, - "message": message - }); - } - - // HTTP 500 - public static sendInternalServerError(message): void { - HttpUtils.sendResponse(500, { - "code": 500, - "message": message - }); - } - - // Generic - private static sendResponse(status: number, body?: any): void { - response.setContentType("application/json"); - response.setStatus(status); - if (body) { - response.println(JSON.stringify(body)); - } - } -} \ No newline at end of file diff --git a/codbex-number-generator/gen/codbex-number-generator/api/utils/ValidationError.ts b/codbex-number-generator/gen/codbex-number-generator/api/utils/ValidationError.ts deleted file mode 100644 index 9b894fa..0000000 --- a/codbex-number-generator/gen/codbex-number-generator/api/utils/ValidationError.ts +++ /dev/null @@ -1,8 +0,0 @@ -export class ValidationError extends Error { - readonly name = "ValidationError"; - readonly stack = (new Error()).stack; - - constructor(message: string) { - super(message); - } -} \ No newline at end of file diff --git a/codbex-number-generator/gen/codbex-number-generator/codbex-number-generator.openapi b/codbex-number-generator/gen/codbex-number-generator/codbex-number-generator.openapi deleted file mode 100644 index 1c689c4..0000000 --- a/codbex-number-generator/gen/codbex-number-generator/codbex-number-generator.openapi +++ /dev/null @@ -1,663 +0,0 @@ -openapi: 3.0.3 -info: - title: Document Number Generator - OpenAPI 3.0 - version: 1.0.0 - description: Generator for Document Numbers -externalDocs: - description: Find out more about Eclipse Dirigible - url: https://dirigible.io -servers: - - url: /services/ts -tags: - - name: Settings -paths: - /codbex-number-generator/gen/codbex-number-generator/api/Settings/NumberService.ts: - get: - summary: List Number - parameters: - - in: query - name: $limit - description: The number of records to be returned _(both `$limit` and `$offset` should be provided)_. - required: false - allowReserved: true - schema: - type: integer - allowEmptyValue: true - - in: query - name: $offset - description: The number of records to skip _(both `$limit` and `$offset` should be provided)_. - required: false - allowReserved: true - schema: - type: integer - allowEmptyValue: true - tags: - - Settings - responses: - 200: - description: Successful Request - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/Number' - 400: - description: Bad Request Error - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - 403: - description: Forbidden Error - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - 500: - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - post: - summary: Create Number - tags: - - Settings - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Number' - required: true - responses: - 201: - description: Successful Request - content: - application/json: - schema: - $ref: '#/components/schemas/Number' - 400: - description: Bad Request Error - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - 403: - description: Forbidden Error - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - 500: - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - /codbex-number-generator/gen/codbex-number-generator/api/Settings/NumberService.ts/{id}: - get: - summary: Get Number by Id - parameters: - - in: path - name: id - description: The Id of the entity. - required: true - schema: - type: string - tags: - - Settings - responses: - 200: - description: Successful Request - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/Number' - 404: - description: Entity Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - 403: - description: Forbidden Error - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - 500: - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - put: - summary: Update Number by Id - parameters: - - in: path - name: id - description: The Id of the entity. - required: true - schema: - type: string - tags: - - Settings - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Number' - required: true - responses: - 200: - description: Successful Request - content: - application/json: - schema: - $ref: '#/components/schemas/Number' - 400: - description: Bad Request Error - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - 404: - description: Entity Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - 403: - description: Forbidden Error - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - 500: - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - delete: - summary: Delete Number by Id - parameters: - - in: path - name: id - description: The Id of the entity. - required: true - schema: - type: string - tags: - - Settings - responses: - 204: - description: Successful Request - 404: - description: Entity Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - 403: - description: Forbidden Error - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - 500: - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - /codbex-number-generator/gen/codbex-number-generator/api/Settings/NumberService.ts/count: - get: - summary: Count the number of Number - tags: - - Settings - responses: - 200: - description: Successful Request - content: - application/json: - schema: - type: integer - example: 100 - 403: - description: Forbidden Error - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - 500: - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - post: - summary: Count the number of Number by NumberFilterOptions - tags: - - Settings - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/NumberFilterOptions' - examples: - countWithMultipleCriteria: - summary: Count with multiple criteria - value: - $filter: - notEquals: - Id: 33 - contains: - Type: "abcd" - Prefix: "abcd" - greaterThan: - Id: 0 - lessThanOrEqual: - Id: 100 - countWithEquals: - summary: Count with Equals - value: - $filter: - equals: - Id: 0 - countWithNotEquals: - summary: Count with Not Equals - value: - $filter: - notEquals: - Id: 0 - countWithContains: - summary: Count with Contains - value: - $filter: - contains: - Type: "abcd" - Prefix: "abcd" - countWithGreaterThan: - summary: Count with Greater Than - value: - $filter: - greaterThan: - Id: 0 - countWithGreaterThanOrEqual: - summary: Count with Greater Than Or Equal - value: - $filter: - greaterThanOrEqual: - Id: 0 - countWithLessThan: - summary: Count with Less Than - value: - $filter: - lessThan: - Id: 0 - countWithLessThanOrEqual: - summary: Count with Less Than Or Equal - value: - $filter: - lessThanOrEqual: - Id: 0 - required: true - responses: - 200: - description: Successful Request - content: - application/json: - schema: - type: integer - example: 100 - 403: - description: Forbidden Error - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - 500: - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - /codbex-number-generator/gen/codbex-number-generator/api/Settings/NumberService.ts/search: - post: - summary: Search Number by NumberFilterOptions - tags: - - Settings - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/NumberFilterOptions' - examples: - searchWithMultipleCriteria: - summary: Search with multiple criteria - value: - $filter: - notEquals: - Id: 33 - contains: - Type: "abcd" - Prefix: "abcd" - greaterThan: - Id: 0 - lessThanOrEqual: - Id: 100 - searchWithEquals: - summary: Search with Equals - value: - $filter: - equals: - Id: 0 - searchWithNotEquals: - summary: Search with Not Equals - value: - $filter: - notEquals: - Id: 0 - searchWithContains: - summary: Search with Contains - value: - $filter: - contains: - Type: "abcd" - Prefix: "abcd" - searchWithGreaterThan: - summary: Search with Greater Than - value: - $filter: - greaterThan: - Id: 0 - searchWithGreaterThanOrEqual: - summary: Search with Greater Than Or Equal - value: - $filter: - greaterThanOrEqual: - Id: 0 - searchWithLessThan: - summary: Search with Less Than - value: - $filter: - lessThan: - Id: 0 - searchWithLessThanOrEqual: - summary: Search with Less Than Or Equal - value: - $filter: - lessThanOrEqual: - Id: 0 - required: true - responses: - 200: - description: Successful Request - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/Number' - 403: - description: Forbidden Error - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - 500: - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/Error' -components: - schemas: - Number: - type: object - required: - properties: - Id: - type: integer - format: int32 - Type: - type: string - minLength: 0 - maxLength: 50 - Prefix: - type: string - minLength: 0 - maxLength: 20 - Length: - type: integer - format: int32 - Value: - type: integer - format: int32 - NumberFilterOptions: - type: object - properties: - $filter: - type: object - properties: - equals: - type: object - properties: - Id: - oneOf: - - type: integer - format: int32 - - type: array - items: - type: integer - format: int32 - Type: - oneOf: - - type: string - minLength: 0 - maxLength: 50 - - type: array - items: - type: string - format: double - minLength: 0 - maxLength: 50 - Prefix: - oneOf: - - type: string - minLength: 0 - maxLength: 20 - - type: array - items: - type: string - format: double - minLength: 0 - maxLength: 20 - Length: - oneOf: - - type: integer - format: int32 - - type: array - items: - type: integer - format: int32 - Value: - oneOf: - - type: integer - format: int32 - - type: array - items: - type: integer - format: int32 - notEquals: - type: object - properties: - Id: - oneOf: - - type: integer - format: int32 - - type: array - items: - type: integer - format: int32 - Type: - oneOf: - - type: string - minLength: 0 - maxLength: 50 - - type: array - items: - type: string - format: double - minLength: 0 - maxLength: 50 - Prefix: - oneOf: - - type: string - minLength: 0 - maxLength: 20 - - type: array - items: - type: string - format: double - minLength: 0 - maxLength: 20 - Length: - oneOf: - - type: integer - format: int32 - - type: array - items: - type: integer - format: int32 - Value: - oneOf: - - type: integer - format: int32 - - type: array - items: - type: integer - format: int32 - contains: - type: object - properties: - Id: - Type: - type: string - minLength: 0 - maxLength: 50 - Prefix: - type: string - minLength: 0 - maxLength: 20 - Length: - Value: - greaterThan: - type: object - properties: - Id: - type: integer - format: int32 - Type: - type: string - minLength: 0 - maxLength: 50 - Prefix: - type: string - minLength: 0 - maxLength: 20 - Length: - type: integer - format: int32 - Value: - type: integer - format: int32 - greaterThanOrEqual: - type: object - properties: - Id: - type: integer - format: int32 - Type: - type: string - minLength: 0 - maxLength: 50 - Prefix: - type: string - minLength: 0 - maxLength: 20 - Length: - type: integer - format: int32 - Value: - type: integer - format: int32 - lessThan: - type: object - properties: - Id: - type: integer - format: int32 - Type: - type: string - minLength: 0 - maxLength: 50 - Prefix: - type: string - minLength: 0 - maxLength: 20 - Length: - type: integer - format: int32 - Value: - type: integer - format: int32 - lessThanOrEqual: - type: object - properties: - Id: - type: integer - format: int32 - Type: - type: string - minLength: 0 - maxLength: 50 - Prefix: - type: string - minLength: 0 - maxLength: 20 - Length: - type: integer - format: int32 - Value: - type: integer - format: int32 - $select: - type: array - example: ["Id", "Type", "Prefix", "Length", "Value"] - items: - type: string - $sort: - - type: string - example: "Id,Type,Prefix,Length,Value" - $order: - type: string - enum: ["asc", "desc"] - example: "asc" - $offset: - type: integer - example: 0 - $limit: - type: integer - example: 10 - Error: - type: object - properties: - code: - type: integer - message: - type: string \ 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 index 96307d3..aa41f23 100644 --- a/codbex-number-generator/gen/codbex-number-generator/dao/Settings/NumberRepository.ts +++ b/codbex-number-generator/gen/codbex-number-generator/dao/Settings/NumberRepository.ts @@ -1,7 +1,7 @@ -import { query } from "sdk/db"; -import { producer } from "sdk/messaging"; -import { extensions } from "sdk/extensions"; -import { dao as daoApi } from "sdk/db"; +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; @@ -79,9 +79,10 @@ export interface NumberEntityOptions { $order?: 'ASC' | 'DESC', $offset?: number, $limit?: number, + $language?: string } -interface NumberEntityEvent { +export interface NumberEntityEvent { readonly operation: 'create' | 'update' | 'delete'; readonly table: string; readonly entity: Partial; @@ -92,7 +93,7 @@ interface NumberEntityEvent { } } -interface NumberUpdateEntityEvent extends NumberEntityEvent { +export interface NumberUpdateEntityEvent extends NumberEntityEvent { readonly previousEntity: NumberEntity; } @@ -140,10 +141,11 @@ export class NumberRepository { } public findAll(options: NumberEntityOptions = {}): NumberEntity[] { - return this.dao.list(options); + let list = this.dao.list(options); + return list; } - public findById(id: number): NumberEntity | undefined { + public findById(id: number, options: NumberEntityOptions = {}): NumberEntity | undefined { const entity = this.dao.find(id); return entity ?? undefined; } diff --git a/codbex-number-generator/gen/codbex-number-generator/data/Settings/Number.extensionpoint b/codbex-number-generator/gen/codbex-number-generator/data/Settings/Number.extensionpoint new file mode 100644 index 0000000..e26b8da --- /dev/null +++ b/codbex-number-generator/gen/codbex-number-generator/data/Settings/Number.extensionpoint @@ -0,0 +1,4 @@ +{ + "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/data/Settings/NumberEntity.ts b/codbex-number-generator/gen/codbex-number-generator/data/Settings/NumberEntity.ts new file mode 100644 index 0000000..78bffbb --- /dev/null +++ b/codbex-number-generator/gen/codbex-number-generator/data/Settings/NumberEntity.ts @@ -0,0 +1,51 @@ +import { Entity, Table, Id, Generated, Column, Documentation } from '@aerokit/sdk/db' + +@Entity('NumberEntity') +@Table('CODBEX_NUMBER') +@Documentation('Number entity mapping') +export class NumberEntity { + + @Id() + @Generated('sequence') + @Documentation('Id') + @Column({ + name: 'NUMBER_ID', + type: 'integer', + }) + public Id?: number; + + @Documentation('Type') + @Column({ + name: 'NUMBER_TYPE', + type: 'string', + length: 50, + }) + public Type!: string; + + @Documentation('Prefix') + @Column({ + name: 'NUMBER_PREFIX', + type: 'string', + length: 20, + }) + public Prefix!: string; + + @Documentation('Length') + @Column({ + name: 'NUMBER_LENGTH', + type: 'integer', + nullable: true, + }) + public Length?: number; + + @Documentation('Value') + @Column({ + name: 'NUMBER_VALUE', + type: 'integer', + nullable: true, + }) + public Value?: number; + +} + +(new NumberEntity()); 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 new file mode 100644 index 0000000..dc5fb0b --- /dev/null +++ b/codbex-number-generator/gen/codbex-number-generator/data/Settings/NumberRepository.ts @@ -0,0 +1,25 @@ +import { Repository, EntityEvent, EntityConstructor } from '@aerokit/sdk/db' +import { Component } from '@aerokit/sdk/component' +import { Producer } from '@aerokit/sdk/messaging' +import { Extensions } from '@aerokit/sdk/extensions' +import { NumberEntity } from './NumberEntity' + +@Component('NumberRepository') +export class NumberRepository extends Repository { + + constructor() { + super((NumberEntity as EntityConstructor)); + } + + protected override async triggerEvent(data: EntityEvent): Promise { + 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/schema/codbex-number-generator.schema b/codbex-number-generator/gen/codbex-number-generator/schema/codbex-number-generator.schema index ff57e8a..a08659e 100644 --- a/codbex-number-generator/gen/codbex-number-generator/schema/codbex-number-generator.schema +++ b/codbex-number-generator/gen/codbex-number-generator/schema/codbex-number-generator.schema @@ -15,11 +15,13 @@ { "type": "VARCHAR", "length": 50, + "unique": true, "name": "NUMBER_TYPE" }, { "type": "VARCHAR", "length": 20, + "unique": true, "name": "NUMBER_PREFIX" }, { diff --git a/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/controller.js b/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/controller.js index c2ab68c..1145b80 100644 --- a/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/controller.js +++ b/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/controller.js @@ -1,9 +1,23 @@ -angular.module('page', ['blimpKit', 'platformView', 'EntityService']) +angular.module('page', ['blimpKit', 'platformView', 'platformLocale', 'EntityService']) .config(['EntityServiceProvider', (EntityServiceProvider) => { - EntityServiceProvider.baseUrl = '/services/ts/codbex-number-generator/gen/codbex-number-generator/api/Settings/NumberService.ts'; + EntityServiceProvider.baseUrl = '/services/ts/codbex-number-generator/gen/codbex-number-generator/api/Settings/NumberController.ts'; }]) - .controller('PageController', ($scope, EntityService, Extensions, ButtonStates) => { + .controller('PageController', ($scope, EntityService, Extensions, LocaleService, ButtonStates) => { const Dialogs = new DialogHub(); + let translated = { + yes: 'Yes', + no: 'No', + deleteConfirm: 'Are you sure you want to delete Number? This action cannot be undone.', + deleteTitle: 'Delete Number?' + }; + + LocaleService.onInit(() => { + translated.yes = LocaleService.t('codbex-number-generator:codbex-number-generator-model.defaults.yes'); + translated.no = LocaleService.t('codbex-number-generator:codbex-number-generator-model.defaults.no'); + translated.deleteTitle = LocaleService.t('codbex-number-generator:codbex-number-generator-model.defaults.deleteTitle', { name: '$t(codbex-number-generator:codbex-number-generator-model.t.NUMBER)' }); + translated.deleteConfirm = LocaleService.t('codbex-number-generator:codbex-number-generator-model.messages.deleteConfirm', { name: '$t(codbex-number-generator:codbex-number-generator-model.t.NUMBER)' }); + }); + $scope.dataPage = 1; $scope.dataCount = 0; $scope.dataLimit = 20; @@ -17,8 +31,10 @@ angular.module('page', ['blimpKit', 'platformView', 'EntityService']) $scope.triggerPageAction = (action) => { Dialogs.showWindow({ hasHeader: true, - title: action.label, + title: LocaleService.t(action.translation.key, action.translation.options, action.label), path: action.path, + maxWidth: action.maxWidth, + maxHeight: action.maxHeight, closeButton: true }); }; @@ -26,7 +42,7 @@ angular.module('page', ['blimpKit', 'platformView', 'EntityService']) $scope.triggerEntityAction = (action) => { Dialogs.showWindow({ hasHeader: true, - title: action.label, + title: LocaleService.t(action.translation.key, action.translation.options, action.label), path: action.path, params: { id: $scope.entity.Id @@ -71,8 +87,11 @@ angular.module('page', ['blimpKit', 'platformView', 'EntityService']) let limit = $scope.dataLimit; let request; if (filter) { - filter.$offset = offset; - filter.$limit = limit; + if (!filter.$filter) { + filter.$filter = {}; + } + filter.$filter.offset = offset; + filter.$filter.limit = limit; request = EntityService.search(filter); } else { request = EntityService.list(offset, limit); @@ -80,17 +99,19 @@ angular.module('page', ['blimpKit', 'platformView', 'EntityService']) request.then((response) => { $scope.data = response.data; }, (error) => { + const message = error.data ? error.data.message : ''; Dialogs.showAlert({ - title: 'Number', - message: `Unable to list/filter Number: '${error.message}'`, + title: LocaleService.t('codbex-number-generator:codbex-number-generator-model.t.NUMBER'), + message: LocaleService.t('codbex-number-generator:codbex-number-generator-model.messages.error.unableToLF', { name: '$t(codbex-number-generator:codbex-number-generator-model.t.NUMBER)', message: message }), type: AlertTypes.Error }); console.error('EntityService:', error); }); }, (error) => { + const message = error.data ? error.data.message : ''; Dialogs.showAlert({ - title: 'Number', - message: `Unable to count Number: '${error.message}'`, + title: LocaleService.t('codbex-number-generator:codbex-number-generator-model.t.NUMBER'), + message: LocaleService.t('codbex-number-generator:codbex-number-generator-model.messages.error.unableToCount', { name: '$t(codbex-number-generator:codbex-number-generator-model.t.NUMBER)', message: message }), type: AlertTypes.Error }); console.error('EntityService:', error); @@ -149,16 +170,16 @@ angular.module('page', ['blimpKit', 'platformView', 'EntityService']) $scope.deleteEntity = (entity) => { let id = entity.Id; - Dialog.showDialog({ - title: 'Delete Number?', - message: `Are you sure you want to delete Number? This action cannot be undone.`, + Dialogs.showDialog({ + title: translated.deleteTitle, + message: translated.deleteConfirm, buttons: [{ id: 'delete-btn-yes', state: ButtonStates.Emphasized, - label: 'Yes', + label: translated.yes, }, { id: 'delete-btn-no', - label: 'No', + label: translated.no, }] }).then((buttonId) => { if (buttonId === 'delete-btn-yes') { @@ -168,8 +189,8 @@ angular.module('page', ['blimpKit', 'platformView', 'EntityService']) }, (error) => { const message = error.data ? error.data.message : ''; Dialogs.showAlert({ - title: 'Number', - message: `Unable to delete Number: '${message}'`, + title: LocaleService.t('codbex-number-generator:codbex-number-generator-model.t.NUMBER'), + message: LocaleService.t('codbex-number-generator:codbex-number-generator-model.messages.error.unableToDelete', { name: '$t(codbex-number-generator:codbex-number-generator-model.t.NUMBER)', message: message }), type: AlertTypes.Error }); console.error('EntityService:', error); diff --git a/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/dialog-filter/controller.js b/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/dialog-filter/controller.js index 99a20c4..a871d45 100644 --- a/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/dialog-filter/controller.js +++ b/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/dialog-filter/controller.js @@ -1,10 +1,15 @@ -angular.module('page', ['blimpKit', 'platformView']).controller('PageController', ($scope, ViewParameters) => { +angular.module('page', ['blimpKit', 'platformView', 'platformLocale']).controller('PageController', ($scope, ViewParameters, LocaleService) => { const Dialogs = new DialogHub(); + let description = 'Description'; $scope.entity = {}; $scope.forms = { details: {}, }; + LocaleService.onInit(() => { + description = LocaleService.t('codbex-number-generator:codbex-number-generator-model.defaults.description'); + }); + let params = ViewParameters.get(); if (Object.keys(params).length) { $scope.entity = params.entity ?? {}; @@ -16,36 +21,31 @@ angular.module('page', ['blimpKit', 'platformView']).controller('PageController' let entity = $scope.entity; const filter = { $filter: { - equals: { - }, - notEquals: { - }, - contains: { - }, - greaterThan: { - }, - greaterThanOrEqual: { - }, - lessThan: { - }, - lessThanOrEqual: { - } - }, + conditions: [], + sorts: [], + limit: 20, + offset: 0 + } }; if (entity.Id !== undefined) { - filter.$filter.equals.Id = entity.Id; + const condition = { propertyName: 'Id', operator: 'EQ', value: entity.Id }; + filter.$filter.conditions.push(condition); } if (entity.Type) { - filter.$filter.contains.Type = entity.Type; + const condition = { propertyName: 'Type', operator: 'LIKE', value: `%${entity.Type}%` }; + filter.$filter.conditions.push(condition); } if (entity.Prefix) { - filter.$filter.contains.Prefix = entity.Prefix; + const condition = { propertyName: 'Prefix', operator: 'LIKE', value: `%${entity.Prefix}%` }; + filter.$filter.conditions.push(condition); } if (entity.Length !== undefined) { - filter.$filter.equals.Length = entity.Length; + const condition = { propertyName: 'Length', operator: 'EQ', value: entity.Length }; + filter.$filter.conditions.push(condition); } if (entity.Value !== undefined) { - filter.$filter.equals.Value = entity.Value; + const condition = { propertyName: 'Value', operator: 'EQ', value: entity.Value }; + filter.$filter.conditions.push(condition); } Dialogs.postMessage({ topic: 'codbex-number-generator.Settings.Number.entitySearch', data: { entity: entity, @@ -61,7 +61,7 @@ angular.module('page', ['blimpKit', 'platformView']).controller('PageController' $scope.alert = (message) => { if (message) Dialogs.showAlert({ - title: 'Description', + title: description, message: message, type: AlertTypes.Information, preformatted: true, diff --git a/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/dialog-filter/index.html b/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/dialog-filter/index.html index 6fe0fbe..7614b1d 100644 --- a/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/dialog-filter/index.html +++ b/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/dialog-filter/index.html @@ -17,64 +17,64 @@ {{ errorMessage }} - +
- Type + {{ 'codbex-number-generator:codbex-number-generator-model.t.NUMBER_TYPE' | t }}
- + + placeholder="{{ 'codbex-number-generator:codbex-number-generator-model.messages.inputEnter' | t:{'name':'$t(codbex-number-generator:codbex-number-generator-model.t.NUMBER_TYPE)'} }}">
- Prefix + {{ 'codbex-number-generator:codbex-number-generator-model.t.NUMBER_PREFIX' | t }}
- + + placeholder="{{ 'codbex-number-generator:codbex-number-generator-model.messages.inputEnter' | t:{'name':'$t(codbex-number-generator:codbex-number-generator-model.t.NUMBER_PREFIX)'} }}">
- Length + {{ 'codbex-number-generator:codbex-number-generator-model.t.NUMBER_LENGTH' | t }}
+ placeholder="{{ 'codbex-number-generator:codbex-number-generator-model.messages.inputEnter' | t:{'name':'$t(codbex-number-generator:codbex-number-generator-model.t.NUMBER_LENGTH)'} }}">
- Value + {{ 'codbex-number-generator:codbex-number-generator-model.t.NUMBER_VALUE' | t }}
+ placeholder="{{ 'codbex-number-generator:codbex-number-generator-model.messages.inputEnter' | t:{'name':'$t(codbex-number-generator:codbex-number-generator-model.t.NUMBER_VALUE)'} }}">
@@ -85,13 +85,13 @@ - + - + - + diff --git a/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/dialog-filter/view.js b/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/dialog-filter/view.js index f88cd38..2bdccb2 100644 --- a/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/dialog-filter/view.js +++ b/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/dialog-filter/view.js @@ -6,6 +6,12 @@ const viewData = { id: 'Number-filter', label: 'Number Filter', + translation: { + key: 'codbex-number-generator:codbex-number-generator-model.extName', + options: { + content: '$t(codbex-number-generator:codbex-number-generator-model.t.NUMBER) $t(codbex-number-generator:codbex-number-generator-model.defaults.filter)', + } + }, path: '/services/web/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/dialog-filter/index.html', perspectiveName: 'Settings' }; diff --git a/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/dialog-window/controller.js b/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/dialog-window/controller.js index 6376a6a..47ce9b2 100644 --- a/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/dialog-window/controller.js +++ b/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/dialog-window/controller.js @@ -1,9 +1,14 @@ -angular.module('page', ['blimpKit', 'platformView', 'EntityService']) +angular.module('page', ['blimpKit', 'platformView', 'platformLocale', 'EntityService']) .config(['EntityServiceProvider', (EntityServiceProvider) => { - EntityServiceProvider.baseUrl = '/services/ts/codbex-number-generator/gen/codbex-number-generator/api/Settings/NumberService.ts'; + EntityServiceProvider.baseUrl = '/services/ts/codbex-number-generator/gen/codbex-number-generator/api/Settings/NumberController.ts'; }]) - .controller('PageController', ($scope, $http, ViewParameters, EntityService) => { + .controller('PageController', ($scope, $http, ViewParameters, LocaleService, EntityService) => { const Dialogs = new DialogHub(); + const Notifications = new NotificationHub(); + let description = 'Description'; + let propertySuccessfullyCreated = 'Number successfully created'; + let propertySuccessfullyUpdated = 'Number successfully updated'; + $scope.entity = {}; $scope.forms = { details: {}, @@ -15,6 +20,15 @@ angular.module('page', ['blimpKit', 'platformView', 'EntityService']) }; $scope.action = 'select'; + LocaleService.onInit(() => { + description = LocaleService.t('codbex-number-generator:codbex-number-generator-model.defaults.description'); + $scope.formHeaders.select = LocaleService.t('codbex-number-generator:codbex-number-generator-model.defaults.formHeadSelect', { name: '$t(codbex-number-generator:codbex-number-generator-model.t.NUMBER)' }); + $scope.formHeaders.create = LocaleService.t('codbex-number-generator:codbex-number-generator-model.defaults.formHeadCreate', { name: '$t(codbex-number-generator:codbex-number-generator-model.t.NUMBER)' }); + $scope.formHeaders.update = LocaleService.t('codbex-number-generator:codbex-number-generator-model.defaults.formHeadUpdate', { name: '$t(codbex-number-generator:codbex-number-generator-model.t.NUMBER)' }); + propertySuccessfullyCreated = LocaleService.t('codbex-number-generator:codbex-number-generator-model.messages.propertySuccessfullyCreated', { name: '$t(codbex-number-generator:codbex-number-generator-model.t.NUMBER)' }); + propertySuccessfullyUpdated = LocaleService.t('codbex-number-generator:codbex-number-generator-model.messages.propertySuccessfullyUpdated', { name: '$t(codbex-number-generator:codbex-number-generator-model.t.NUMBER)' }); + }); + let params = ViewParameters.get(); if (Object.keys(params).length) { $scope.action = params.action; @@ -28,16 +42,16 @@ angular.module('page', ['blimpKit', 'platformView', 'EntityService']) entity[$scope.selectedMainEntityKey] = $scope.selectedMainEntityId; EntityService.create(entity).then((response) => { Dialogs.postMessage({ topic: 'codbex-number-generator.Settings.Number.entityCreated', data: response.data }); - Dialogs.showAlert({ - title: 'Number', - message: 'Number successfully created', - type: AlertTypes.Success + Notifications.show({ + title: LocaleService.t('codbex-number-generator:codbex-number-generator-model.t.NUMBER'), + description: propertySuccessfullyCreated, + type: 'positive' }); $scope.cancel(); }, (error) => { const message = error.data ? error.data.message : ''; $scope.$evalAsync(() => { - $scope.errorMessage = `Unable to create Number: '${message}'`; + $scope.errorMessage = LocaleService.t('codbex-number-generator:codbex-number-generator-model.messages.error.unableToCreate', { name: '$t(codbex-number-generator:codbex-number-generator-model.t.NUMBER)', message: message }); }); console.error('EntityService:', error); }); @@ -49,16 +63,16 @@ angular.module('page', ['blimpKit', 'platformView', 'EntityService']) entity[$scope.selectedMainEntityKey] = $scope.selectedMainEntityId; EntityService.update(id, entity).then((response) => { Dialogs.postMessage({ topic: 'codbex-number-generator.Settings.Number.entityUpdated', data: response.data }); - Dialogs.showAlert({ - title: 'Number', - message: 'Number successfully updated', - type: AlertTypes.Success + Notifications.show({ + title: LocaleService.t('codbex-number-generator:codbex-number-generator-model.t.NUMBER'), + description: propertySuccessfullyUpdated, + type: 'positive' }); $scope.cancel(); }, (error) => { const message = error.data ? error.data.message : ''; $scope.$evalAsync(() => { - $scope.errorMessage = `Unable to update Number: '${message}'`; + $scope.errorMessage = LocaleService.t('codbex-number-generator:codbex-number-generator-model.messages.error.unableToUpdate', { name: '$t(codbex-number-generator:codbex-number-generator-model.t.NUMBER)', message: message }); }); console.error('EntityService:', error); }); @@ -67,7 +81,7 @@ angular.module('page', ['blimpKit', 'platformView', 'EntityService']) $scope.alert = (message) => { if (message) Dialogs.showAlert({ - title: 'Description', + title: description, message: message, type: AlertTypes.Information, preformatted: true, 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 4431b2c..9993748 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 @@ -21,10 +21,10 @@
- Type + {{ 'codbex-number-generator:codbex-number-generator-model.t.NUMBER_TYPE' | t }}
- + + placeholder="{{ 'codbex-number-generator:codbex-number-generator-model.messages.inputEnter' | t:{'name':'$t(codbex-number-generator:codbex-number-generator-model.t.NUMBER_TYPE)'} }}">
- Prefix + {{ 'codbex-number-generator:codbex-number-generator-model.t.NUMBER_PREFIX' | t }}
- + + placeholder="{{ 'codbex-number-generator:codbex-number-generator-model.messages.inputEnter' | t:{'name':'$t(codbex-number-generator:codbex-number-generator-model.t.NUMBER_PREFIX)'} }}">
- Length + {{ 'codbex-number-generator:codbex-number-generator-model.t.NUMBER_LENGTH' | t }}
+ placeholder="{{ 'codbex-number-generator:codbex-number-generator-model.messages.inputEnter' | t:{'name':'$t(codbex-number-generator:codbex-number-generator-model.t.NUMBER_LENGTH)'} }}">
- Value + {{ 'codbex-number-generator:codbex-number-generator-model.t.NUMBER_VALUE' | t }}
+ placeholder="{{ 'codbex-number-generator:codbex-number-generator-model.messages.inputEnter' | t:{'name':'$t(codbex-number-generator:codbex-number-generator-model.t.NUMBER_VALUE)'} }}">
@@ -96,10 +96,11 @@ - + + - + diff --git a/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/dialog-window/view.js b/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/dialog-window/view.js index ec58bed..7d66d1c 100644 --- a/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/dialog-window/view.js +++ b/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/dialog-window/view.js @@ -6,6 +6,9 @@ const viewData = { id: 'Number-details', label: 'Number', + translation: { + key: 'codbex-number-generator:codbex-number-generator-model.t.NUMBER', + }, path: '/services/web/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/dialog-window/index.html', perspectiveName: 'Settings' }; diff --git a/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/index.html b/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/index.html index 9f58322..2ec4b79 100644 --- a/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/index.html +++ b/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/index.html @@ -15,27 +15,27 @@ - Items - - + {{'codbex-number-generator:codbex-number-generator-model.defaults.items' | t}} + + - + - - - - + + + + - + @@ -46,15 +46,14 @@
TypePrefixLengthValue{{ 'codbex-number-generator:codbex-number-generator-model.t.NUMBER_TYPE' | t:'Type' }}{{ 'codbex-number-generator:codbex-number-generator-model.t.NUMBER_PREFIX' | t:'Prefix' }}{{ 'codbex-number-generator:codbex-number-generator-model.t.NUMBER_LENGTH' | t:'Length' }}{{ 'codbex-number-generator:codbex-number-generator-model.t.NUMBER_VALUE' | t:'Value' }}
No data available.{{'codbex-number-generator:codbex-number-generator-model.messages.noData' | t}}
- - + - - - - - + + + + + diff --git a/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/view.js b/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/view.js index 6093ffb..9009600 100644 --- a/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/view.js +++ b/codbex-number-generator/gen/codbex-number-generator/ui/Settings/Number/view.js @@ -6,6 +6,9 @@ const viewData = { id: 'Number', label: 'Number', + translation: { + key: 'codbex-number-generator:codbex-number-generator-model.t.NUMBER', + }, region: 'center', lazyLoad: true, autoFocusTab: false, 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 new file mode 100644 index 0000000..3e6d2c9 --- /dev/null +++ b/codbex-number-generator/translations/en-US/codbex-number-generator.model.json @@ -0,0 +1,74 @@ +{ + "codbex-number-generator-model": { + "aria": { + "showHide": "show/hide {{name}} options", + "options": "{{name}} options", + "tableRowMenu": "Table Row Menu", + "tableRowMenuBtn": "Table Row Menu Button", + "headerMenu": "Header Menu", + "headerMenuBtn": "Header Menu Button", + "addEntity": "add entity", + "editEntity": "edit entity", + "deleteEntity": "delete entity" + }, + "state": { + "busy": "Loading..." + }, + "messages": { + "error": { + "incorrectInput": "Incorrect Input", + "loading": "Encounterd an error while loading", + "unableToCreate": "Unable to create {{name}}: '{{message}}'", + "unableToUpdate": "Unable to update {{name}}: '{{message}}'", + "unableToDelete": "Unable to delete {{name}}: '{{message}}'", + "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}}" + }, + "propertySuccessfullyCreated": "{{name}} successfully created", + "propertySuccessfullyUpdated": "{{name}} successfully updated", + "inputSearch": "Search {{name}}...", + "inputEnter": "Enter {{name}}...", + "noData": "No data available.", + "deleteConfirm": "Are you sure you want to delete {{name}}? This action cannot be undone.", + "detailSelectRecord": "Select a record to get a list of it's details." + }, + "defaults": { + "yes": "Yes", + "no": "No", + "add": "Add", + "refresh": "Refresh", + "to": "To {{text}}", + "from": "From {{text}}", + "filter": "Filter", + "print": "Print", + "reset": "Reset", + "create": "Create", + "edit": "Edit", + "update": "Update", + "delete": "Delete", + "cancel": "Cancel", + "items": "Items", + "description": "Description", + "formGrpFilter": "{{name}} Filter", + "formHeadSelect": "{{name}} Details", + "formHeadCreate": "Create {{name}}", + "formHeadUpdate": "Update {{name}}", + "reportTitle": "{{name}} Report", + "reportFilter": "Report Filter", + "viewDetails": "View Details", + "deleteTitle": "Delete {{name}}?", + "loadMore": "Load More..." + }, + "extName": "{{content}}", + "t": { + "NUMBER": "Number", + "NUMBER_ID": "Id", + "NUMBER_TYPE": "Type", + "NUMBER_PREFIX": "Prefix", + "NUMBER_LENGTH": "Length", + "NUMBER_VALUE": "Value" + } + } +} \ No newline at end of file