Activities of "ash.jackson"

  • ABP Framework version: v7.3.3
  • UI Type: Angular
  • Database System: EF Core (Postgres)
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes
  • Steps to reproduce the issue: Generate any CRUD page/entity with suite.

Hi,

When suite is generating the angular UI, the parameter passed into the form in the case of creating a new entity is a string 'false' when it should be a boolean:

    this.form = this.fb.group({
      alwaysSplitPacks: [alwaysSplitPacks ?? 'true', []],
      serialNumbersAtGoodsIn: [serialNumbersAtGoodsIn ?? 'false', []],
      serialNumbersInStock: [serialNumbersInStock ?? 'false', []],
      scanSerialsAtGoodsOut: [scanSerialsAtGoodsOut ?? 'false', []],
      allowDuplicateExternalOrderId: [allowDuplicateExternalOrderId ?? 'false', []],
      handlingSpecification: [handlingSpecification ?? '100000', []],
      autoAllocationMethod: [autoAllocationMethod ?? '100000', []],
      clientAccountId: [clientAccountId ?? null, []],
    });
  }

This causes check boxes to be ticked, even when the value submitted is false.

When this form is submitted, the values saved are false.

The values supplied in the null coalescing operator need to respect the datatype of the entity field to be correctly reflected in the UI rather than all being cast to strings:

    this.form = this.fb.group({
      alwaysSplitPacks: [alwaysSplitPacks ?? true, []],
      serialNumbersAtGoodsIn: [serialNumbersAtGoodsIn ?? false, []],
      serialNumbersInStock: [serialNumbersInStock ?? false, []],
      scanSerialsAtGoodsOut: [scanSerialsAtGoodsOut ?? false, []],
      allowDuplicateExternalOrderId: [allowDuplicateExternalOrderId ?? false, []],
      handlingSpecification: [handlingSpecification ?? 100000, []],
      autoAllocationMethod: [autoAllocationMethod ?? 100000, []],
      clientAccountId: [clientAccountId ?? null, []],
    });
  }
  1. ABP Framework version: v7.2.2
  2. UI type: Angular
  3. DB provider: EF Core / MySQL
  4. Tiered (MVC) or Identity Server Separated (Angular): yes
  5. Steps to reproduce the issue:"
    1. Create app pro project with Lepton theme.
    2. Add Lepton and Account source to project.
    3. Use suite to add module to app.
    4. Open module in suite.
    5. Create and generate crud page/entity.
    6. Observe that angular ui is not generated.

Hi There,

When I generate a entity in suite, the angular UI is failing to generate. This is in a freshly generated project, the only difference from defaults is that the theme is Lepton, not LeptonX and I have added the theme source code to the project. The entity is being created inside a module. The module was added using the suite UI.

Kind Regards, AJ.

Here is the log file for the generation:

=== ENTITY GENERATION STARTED === 
* SOLUTION: EwsApi
* ENTITY:{
  "Id": "89bcf579-2a93-4b51-9db8-85ab5ee850fd",
  "Name": "Connection",
  "OriginalName": "Connection",
  "NamePlural": "Connections",
  "DatabaseTableName": "Connections",
  "Namespace": "Connections",
  "BaseClass": "FullAuditedAggregateRoot",
  "MenuIcon": "server",
  "PrimaryKeyType": "Guid",
  "IsMultiTenant": true,
  "CheckConcurrency": true,
  "ShouldCreateUserInterface": true,
  "ShouldCreateBackend": true,
  "ShouldExportExcel": true,
  "ShouldAddMigration": true,
  "ShouldUpdateDatabase": true,
  "CreateTests": true,
  "Properties": [
    {
      "Id": "c3d53e16-0872-40ae-9b0b-e55880927263",
      "Name": "Name",
      "Type": "string",
      "EnumType": "",
      "EnumNamespace": "",
      "EnumAngularImport": "shared/enums",
      "EnumFilePath": null,
      "DefaultValue": null,
      "IsNullable": false,
      "IsRequired": true,
      "IsTextArea": false,
      "MinLength": null,
      "MaxLength": 250,
      "SortOrder": 0,
      "SortType": 0,
      "Regex": "",
      "EmailValidation": false,
      "ShowOnList": true,
      "ShowOnCreateModal": true,
      "ShowOnEditModal": true,
      "ReadonlyOnEditModal": false,
      "EnumValues": null,
      "IsSelected": true,
      "OrdinalIndex": 0
    },
    {
      "Id": "8645b3e6-5ac8-45e8-968b-79ed5032ee12",
      "Name": "Url",
      "Type": "string",
      "EnumType": "",
      "EnumNamespace": "",
      "EnumAngularImport": "shared/enums",
      "EnumFilePath": null,
      "DefaultValue": null,
      "IsNullable": false,
      "IsRequired": true,
      "IsTextArea": false,
      "MinLength": null,
      "MaxLength": 1000,
      "SortOrder": 0,
      "SortType": 0,
      "Regex": "",
      "EmailValidation": false,
      "ShowOnList": true,
      "ShowOnCreateModal": true,
      "ShowOnEditModal": true,
      "ReadonlyOnEditModal": false,
      "EnumValues": null,
      "IsSelected": true,
      "OrdinalIndex": 0
    },
    {
      "Id": "c45ff12e-c5bb-4f00-9d59-97ddb2c14337",
      "Name": "UserName",
      "Type": "string",
      "EnumType": "",
      "EnumNamespace": "",
      "EnumAngularImport": "shared/enums",
      "EnumFilePath": null,
      "DefaultValue": null,
      "IsNullable": false,
      "IsRequired": true,
      "IsTextArea": false,
      "MinLength": null,
      "MaxLength": 250,
      "SortOrder": 0,
      "SortType": 0,
      "Regex": "",
      "EmailValidation": false,
      "ShowOnList": true,
      "ShowOnCreateModal": true,
      "ShowOnEditModal": true,
      "ReadonlyOnEditModal": false,
      "EnumValues": null,
      "IsSelected": true,
      "OrdinalIndex": 0
    },
    {
      "Id": "cc5ba564-475e-4be4-9715-fb24ac843343",
      "Name": "Password",
      "Type": "string",
      "EnumType": "",
      "EnumNamespace": "",
      "EnumAngularImport": "shared/enums",
      "EnumFilePath": null,
      "DefaultValue": null,
      "IsNullable": false,
      "IsRequired": true,
      "IsTextArea": false,
      "MinLength": null,
      "MaxLength": 250,
      "SortOrder": 0,
      "SortType": 0,
      "Regex": "",
      "EmailValidation": false,
      "ShowOnList": true,
      "ShowOnCreateModal": true,
      "ShowOnEditModal": true,
      "ReadonlyOnEditModal": false,
      "EnumValues": null,
      "IsSelected": true,
      "OrdinalIndex": 0
    },
    {
      "Id": "414929e5-0ad0-404d-b674-26da85d5575d",
      "Name": "WmsId",
      "Type": "string",
      "EnumType": "",
      "EnumNamespace": "",
      "EnumAngularImport": "shared/enums",
      "EnumFilePath": null,
      "DefaultValue": null,
      "IsNullable": false,
      "IsRequired": true,
      "IsTextArea": false,
      "MinLength": null,
      "MaxLength": 250,
      "SortOrder": 0,
      "SortType": 0,
      "Regex": "",
      "EmailValidation": false,
      "ShowOnList": true,
      "ShowOnCreateModal": true,
      "ShowOnEditModal": true,
      "ReadonlyOnEditModal": false,
      "EnumValues": null,
      "IsSelected": true,
      "OrdinalIndex": 0
    },
    {
      "Id": "8a83fc5f-c84a-4da5-a3fc-670c38886044",
      "Name": "Enabled",
      "Type": "bool",
      "EnumType": "",
      "EnumNamespace": "",
      "EnumAngularImport": "shared/enums",
      "EnumFilePath": null,
      "DefaultValue": "true",
      "IsNullable": false,
      "IsRequired": false,
      "IsTextArea": false,
      "MinLength": null,
      "MaxLength": null,
      "SortOrder": 0,
      "SortType": 0,
      "Regex": "",
      "EmailValidation": false,
      "ShowOnList": true,
      "ShowOnCreateModal": true,
      "ShowOnEditModal": true,
      "ReadonlyOnEditModal": false,
      "EnumValues": null,
      "IsSelected": true,
      "OrdinalIndex": 0
    }
  ],
  "NavigationProperties": [],
  "NavigationConnections": [],
  "PhysicalFileName": "Connection.json"
}

2023-06-19 11:41:59.780 +01:00 [INF] 1/10 - EntityGenerateCommand started...
2023-06-19 11:42:01.520 +01:00 [INF] 1/10 - EntityGenerateCommand completed.                           | Duration: 1738 ms.
2023-06-19 11:42:01.520 +01:00 [INF] 2/10 - RepositoryCommand started...
2023-06-19 11:42:01.625 +01:00 [INF] 2/10 - RepositoryCommand completed.                               | Duration: 104 ms.
2023-06-19 11:42:01.625 +01:00 [INF] 3/10 - ManagerCommand started...
2023-06-19 11:42:01.656 +01:00 [INF] 3/10 - ManagerCommand completed.                                  | Duration: 31 ms.
2023-06-19 11:42:01.656 +01:00 [INF] 4/10 - AppServiceCommand started...
2023-06-19 11:42:06.211 +01:00 [INF] 4/10 - AppServiceCommand completed.                               | Duration: 4554 ms.
2023-06-19 11:42:06.211 +01:00 [INF] 5/10 - ProxyControllerCommand started...
2023-06-19 11:42:06.289 +01:00 [INF] 5/10 - ProxyControllerCommand completed.                          | Duration: 78 ms.
2023-06-19 11:42:06.290 +01:00 [INF] 6/10 - PermissionCommand started...
2023-06-19 11:42:06.385 +01:00 [INF] 6/10 - PermissionCommand completed.                               | Duration: 95 ms.
2023-06-19 11:42:06.385 +01:00 [INF] 7/10 - ApplicationObjectMappingCommand started...
2023-06-19 11:42:06.400 +01:00 [INF] 7/10 - ApplicationObjectMappingCommand completed.                 | Duration: 15 ms.
2023-06-19 11:42:06.400 +01:00 [INF] 8/10 - UnitTestCommandCommand started...
2023-06-19 11:42:06.513 +01:00 [INF] 8/10 - UnitTestCommandCommand completed.                          | Duration: 112 ms.
2023-06-19 11:42:06.513 +01:00 [INF] 9/10 - GenerateProxyCommand started...
2023-06-19 11:42:06.516 +01:00 [INF] 9/10 - GenerateProxyCommand completed.                            | Duration: 2 ms.
2023-06-19 11:42:06.516 +01:00 [INF] 10/10 - AngularUiGenerateWithSchematicsCommand started...
2023-06-19 11:42:06.525 +01:00 [INF] Running the Angular Schematics command:
node run-schematics.mjs '/Users/ashjackson/Git/EWSUKOps/EWUKOperations/angular/.suite/schematics/node_modules/.bin/ng' g '.suite/schematics/collection.json:entity' module-pro EwsApi '/Users/ashjackson/Git/EWSUKOps/EWUKOperations/aspnet-core/modules/EwsApi/.suite/entities/Connection.json' '/Users/ashjackson/Git/EWSUKOps/EWUKOperations/angular' 
2023-06-19 11:42:06.662 +01:00 [INF] Angular Schematics command failed.
file:///Users/ashjackson/Git/EWSUKOps/EWUKOperations/angular/.suite/schematics/run-schematics.mjs:1
import { execa } from "execa";
         ^^^^^
SyntaxError: Named export 'execa' not found. The requested module 'execa' is a CommonJS module, which may not support all module.exports as named exports.
CommonJS modules can always be imported via the default export, for example using:

import pkg from 'execa';
const { execa } = pkg;

    at ModuleJob._instantiate (node:internal/modules/esm/module_job:128:21)
    at async ModuleJob.run (node:internal/modules/esm/module_job:194:5)
    at async Promise.all (index 0)
    at async ESMLoader.import (node:internal/modules/esm/loader:385:24)
    at async loadESM (node:internal/process/esm_loader:88:5)
    at async handleMainPromise (node:internal/modules/run_main:61:12)

2023-06-19 11:42:06.671 +01:00 [INF] 10/10 - AngularUiGenerateWithSchematicsCommand completed.          | Duration: 154 ms.
2023-06-19 11:42:06.671 +01:00 [INF] Entity generation completed in 7 sec.

Question
  • ABP Framework version: v7.2.2
  • UI type: Angular
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes

When LeptonX enters the mobile view it renders icons for the first and last 2 menu items with the remainder in the hamburger menu. However if the 2nd menu item contains sub-menus they do not open. The settings menu does open correctly.

This problem can be seen on the LeptonX demo site: https://x.leptontheme.com/side-menu/# when viewed on mobile the 'Components' menu does not open when clicked/touched. The expected behavior is that the menu opens in the same way as the settings menu.

My project is build on microservice template, the 2nd menu is generated by ABP Suite from one of my services and shows the same issue.

  • ABP Framework version: v7.0.1
  • UI type: Angular
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes

Hi There, Due to some restrictions within client networks where the application must operate without internet access, and in light of recent GDPR rulings in relation to use of Google Fonts can you please advise how to replace the remote CSS reference to the google fonts used by LeptonX in the commercial template with locally downloaded copies?

Kind Regards, AJ.

  • ABP Framework version: v7.0.0
  • UI type: Angular
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): no
  • Steps to reproduce the issue:
  1. Create new micro service pro service template
  2. Open with suite
  3. Define & Generate an entity
  4. Observe Angular compilation error Error: projects/my-service/src/lib/examples/example/components/example.component.ts:8:47 - error TS2307: Cannot find module '../../../proxy/example/models' or its corresponding type declarations.

The two reference paths added to the ExampleComponent are in error:

import type { GetExamplesInput, ExampleDto } from '../../../proxy/example/models';
import { ExampleService } from '../../../proxy/examples/example.service';

If I ask Rider to resolve the references they are replaced with the following:

import { ExampleDto, GetExamplesInput } from '../../../proxy/example-service/examples';
import { ExampleService } from '../../../proxy/example-service/controllers/examples';

The Angular app now compiles and runs.

  • ABP Framework version: v6.0.1
  • UI type: Angular
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes
  • Steps to reproduce the issue:"
    1. Create new project with application pro template.
    2. Add new module to solution with command abp add-module MyNewModule --new --add-to-solution-file -t module-pro or with Suite UI.
    3. Create a new entity.
    4. Observe that no angular UI is created.

Ref: https://support.abp.io/QA/Questions/3958/ABP-Suite-600--601

I am getting this same issue, that no Angular UI is created or detected in the newly created module:

CLI command output: [15:14:44 INF] ABP CLI (https://abp.io) [15:14:44 INF] Installing module 'CloudBiz.DepotModule' to the solution 'CloudBiz' [15:14:44 INF] Installing 'CloudBiz.DepotModule.Application' package to the project 'CloudBiz.Application'... [15:14:45 INF] Successfully installed. [15:14:45 INF] Installing 'CloudBiz.DepotModule.Application.Contracts' package to the project 'CloudBiz.Application.Contracts'... [15:14:45 INF] Successfully installed. [15:14:45 INF] Installing 'CloudBiz.DepotModule.Domain' package to the project 'CloudBiz.Domain'... [15:14:45 INF] Successfully installed. [15:14:45 INF] Installing 'CloudBiz.DepotModule.Domain.Shared' package to the project 'CloudBiz.Domain.Shared'... [15:14:45 INF] Successfully installed. [15:14:45 INF] Installing 'CloudBiz.DepotModule.EntityFrameworkCore' package to the project 'CloudBiz.EntityFrameworkCore'... [15:14:45 INF] Successfully installed. [15:14:45 INF] Installing 'CloudBiz.DepotModule.HttpApi' package to the project 'CloudBiz.HttpApi'... [15:14:45 INF] Successfully installed. [15:14:45 INF] Installing 'CloudBiz.DepotModule.HttpApi.Client' package to the project 'CloudBiz.HttpApi.Client'... [15:14:45 INF] Successfully installed. [15:14:45 INF] Creating your project... [15:14:45 INF] Project name: CloudBiz.DepotModule [15:14:45 INF] Template: module-pro [15:14:45 INF] Version: 6.0.1 [15:14:45 INF] Output folder: /Users/ashjackson/Git/CloudBiz_Dev/CloudBiz/aspnet-core/modules/CloudBiz.DepotModule [15:14:46 INF] Using cached template: module-pro, version: 6.0.1 [15:14:47 INF] 'CloudBiz.DepotModule' has been successfully created to '/Users/ashjackson/Git/CloudBiz_Dev/CloudBiz/aspnet-core/modules/CloudBiz.DepotModule'

Suite log when created entity: 2022-11-26 15:17:43.652 +00:00 [INF] 1/8 - EntityGenerateCommand started... 2022-11-26 15:17:43.868 +00:00 [INF] 1/8 - EntityGenerateCommand completed. | Duration: 215 ms. 2022-11-26 15:17:43.868 +00:00 [INF] 2/8 - RepositoryCommand started... 2022-11-26 15:17:43.954 +00:00 [INF] 2/8 - RepositoryCommand completed. | Duration: 85 ms. 2022-11-26 15:17:43.954 +00:00 [INF] 3/8 - ManagerCommand started... 2022-11-26 15:17:43.962 +00:00 [INF] 3/8 - ManagerCommand completed. | Duration: 7 ms. 2022-11-26 15:17:43.962 +00:00 [INF] 4/8 - AppServiceCommand started... 2022-11-26 15:17:48.183 +00:00 [INF] 4/8 - AppServiceCommand completed. | Duration: 4220 ms. 2022-11-26 15:17:48.183 +00:00 [INF] 5/8 - ProxyControllerCommand started... 2022-11-26 15:17:48.198 +00:00 [INF] 5/8 - ProxyControllerCommand completed. | Duration: 15 ms. 2022-11-26 15:17:48.198 +00:00 [INF] 6/8 - PermissionCommand started... 2022-11-26 15:17:48.237 +00:00 [INF] 6/8 - PermissionCommand completed. | Duration: 38 ms. 2022-11-26 15:17:48.237 +00:00 [INF] 7/8 - ApplicationObjectMappingCommand started... 2022-11-26 15:17:48.247 +00:00 [INF] 7/8 - ApplicationObjectMappingCommand completed. | Duration: 9 ms. 2022-11-26 15:17:48.247 +00:00 [INF] 8/8 - UnitTestCommandCommand started... 2022-11-26 15:17:48.272 +00:00 [INF] 8/8 - UnitTestCommandCommand completed. | Duration: 24 ms. 2022-11-26 15:17:48.272 +00:00 [INF] Entity generation completed in 5 sec. 2022-11-26 15:17:48.273 +00:00 [INF] Executing StatusCodeResult, setting HTTP status code 204 2022-11-26 15:17:48.273 +00:00 [INF] Executed action Volo.Abp.Suite.Controllers.CrudPageGeneratorController.SaveAndGenerateEntityAsync (Volo.Abp.Suite) in 5698.1333ms 2022-11-26 15:17:48.273 +00:00 [INF] Executed endpoint 'Volo.Abp.Suite.Controllers.CrudPageGeneratorController.SaveAndGenerateEntityAsync (Volo.Abp.Suite)' 2022-11-26 15:17:48.273 +00:00 [INF] Request finished HTTP/1.1 POST http://localhost:3000/api/abpSuite/crudPageGenerator/0db2e355-beae-4b20-a912-2e67289caded/save-and-generate-entity application/json 872 - 204 - - 5701.9508ms 2022-11-26 15:17:48.305 +00:00 [INF] Request starting HTTP/1.1 GET http://localhost:3000/api/abpSuite/crudPageGenerator/0db2e355-beae-4b20-a912-2e67289caded/entities application/json - 2022-11-26 15:17:48.306 +00:00 [INF] Executing endpoint 'Volo.Abp.Suite.Controllers.CrudPageGeneratorController.GetEntitiesAsync (Volo.Abp.Suite)' 2022-11-26 15:17:48.306 +00:00 [INF] Route matched with {controller = "crudPageGenerator", action = "GetEntities", area = "", page = ""}. Executing controller action with signature System.Threading.Tasks.Task1[System.Collections.Generic.List1[Volo.Abp.Suite.Models.EntityModel]] GetEntitiesAsync(System.Guid) on controller Volo.Abp.Suite.Controllers.CrudPageGeneratorController (Volo.Abp.Suite). 2022-11-26 15:17:48.310 +00:00 [INF] Executing ObjectResult, writing value of type 'System.Collections.Generic.List1[[Volo.Abp.Suite.Models.EntityModel, Volo.Abp.Suite, Version=6.0.1.0, Culture=neutral, PublicKeyToken=null]]'. 2022-11-26 15:17:48.311 +00:00 [INF] Executed action Volo.Abp.Suite.Controllers.CrudPageGeneratorController.GetEntitiesAsync (Volo.Abp.Suite) in 5.4384ms 2022-11-26 15:17:48.311 +00:00 [INF] Executed endpoint 'Volo.Abp.Suite.Controllers.CrudPageGeneratorController.GetEntitiesAsync (Volo.Abp.Suite)' 2022-11-26 15:17:48.311 +00:00 [INF] Request finished HTTP/1.1 GET http://localhost:3000/api/abpSuite/crudPageGenerator/0db2e355-beae-4b20-a912-2e67289caded/entities application/json - - 200 - application/json;+charset=utf-8 6.1146ms 2022-11-26 15:17:48.347 +00:00 [INF] Request starting HTTP/1.1 GET http://localhost:3000/api/abpSuite/crudPageGenerator/0db2e355-beae-4b20-a912-2e67289caded/Depot application/json - 2022-11-26 15:17:48.349 +00:00 [INF] Executing endpoint 'Volo.Abp.Suite.Controllers.CrudPageGeneratorController.GetEntityAsync (Volo.Abp.Suite)' 2022-11-26 15:17:48.349 +00:00 [INF] Route matched with {controller = "crudPageGenerator", action = "GetEntity", area = "", page = ""}. Executing controller action with signature System.Threading.Tasks.Task1[Volo.Abp.Suite.Models.EntityModel] GetEntityAsync(System.Guid, System.String) on controller Volo.Abp.Suite.Controllers.CrudPageGeneratorController (Volo.Abp.Suite). 2022-11-26 15:17:48.362 +00:00 [INF] Executing ObjectResult, writing value of type 'Volo.Abp.Suite.Models.EntityModel'. 2022-11-26 15:17:48.362 +00:00 [INF] Executed action Volo.Abp.Suite.Controllers.CrudPageGeneratorController.GetEntityAsync (Volo.Abp.Suite) in 12.7092ms 2022-11-26 15:17:48.362 +00:00 [INF] Executed endpoint 'Volo.Abp.Suite.Controllers.CrudPageGeneratorController.GetEntityAsync (Volo.Abp.Suite)' 2022-11-26 15:17:48.362 +00:00 [INF] Request finished HTTP/1.1 GET http://localhost:3000/api/abpSuite/crudPageGenerator/0db2e355-beae-4b20-a912-2e67289caded/Depot application/json - - 200 - application/json;+charset=utf-8 15.4825ms

Showing 1 to 6 of 6 entries
Made with ❤️ on ABP v8.2.0-preview Updated on March 25, 2024, 15:11