generator-jhipster 7.9.2 → 7.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli/environment-builder.js +15 -1
- package/generators/app/index.js +12 -1
- package/generators/bootstrap/index.js +33 -1
- package/generators/ci-cd/templates/circle.yml.ejs +3 -13
- package/generators/client/files-angular.js +1 -1
- package/generators/client/files-react.js +5 -2
- package/generators/client/files-vue.js +3 -2
- package/generators/client/templates/angular/jest.conf.js.ejs +6 -3
- package/generators/client/templates/angular/package.json +18 -18
- package/generators/client/templates/angular/package.json.ejs +3 -7
- package/generators/client/templates/angular/src/main/webapp/app/admin/admin-routing.module.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.model.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.ts.ejs +17 -15
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/user-management.model.ts.ejs +2 -2
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/user-management.route.ts.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/core/request/request-util.ts.ejs +4 -2
- package/generators/client/templates/angular/src/main/webapp/app/core/util/data-util.service.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/core/util/parse-links.service.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.html.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/shared/filter/filter.component.html.ejs +8 -6
- package/generators/client/templates/angular/src/main/webapp/app/shared/filter/filter.component.ts.ejs +6 -11
- package/generators/client/templates/angular/src/main/webapp/app/shared/filter/filter.model.spec.ts.ejs +227 -25
- package/generators/client/templates/angular/src/main/webapp/app/shared/filter/filter.model.ts.ejs +104 -43
- package/generators/client/templates/angular/src/main/webapp/content/scss/global.scss.ejs +8 -0
- package/generators/client/templates/angular/tsconfig.json.ejs +0 -1
- package/generators/client/templates/angular/tsconfig.spec.json.ejs +2 -3
- package/generators/client/templates/angular/webpack/webpack.microfrontend.js.ejs +0 -3
- package/generators/client/templates/common/package.json +4 -4
- package/generators/client/templates/common/src/main/webapp/swagger-ui/index.html.ejs +1 -1
- package/generators/client/templates/react/jest.conf.js.ejs +2 -2
- package/generators/client/templates/react/package.json +23 -23
- package/generators/client/templates/react/package.json.ejs +3 -7
- package/generators/client/templates/react/src/main/webapp/app/config/store.ts.ejs +0 -6
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/administration.reducer.spec.ts.ejs +7 -7
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/administration.reducer.ts.ejs +6 -6
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/index.tsx.ejs +2 -2
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/admin.tsx.ejs +1 -1
- package/generators/client/templates/react/src/main/webapp/app/shared/reducers/authentication.spec.ts.ejs +17 -8
- package/generators/client/templates/react/src/main/webapp/app/shared/reducers/authentication.ts.ejs +1 -1
- package/generators/client/templates/react/src/main/webapp/app/shared/reducers/locale.spec.ts.ejs +176 -19
- package/generators/client/templates/react/src/main/webapp/app/shared/reducers/locale.ts.ejs +46 -13
- package/generators/client/templates/react/webpack/webpack.microfrontend.js.jhi.react.ejs +1 -1
- package/generators/client/templates/vue/package.json +17 -17
- package/generators/client/templates/vue/package.json.ejs +3 -7
- package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +2 -1
- package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.vue.ejs +1 -1
- package/generators/client/templates/vue/src/main/webapp/app/main.ts.ejs +2 -2
- package/generators/client/templates/vue/src/main/webapp/app/router/admin.ts.ejs +2 -2
- package/generators/client/templates/vue/src/test/javascript/e2e/modules/administration/administration.spec.ts.ejs +1 -1
- package/generators/client/templates/vue/src/test/javascript/e2e/page-objects/administration-page.ts.ejs +1 -1
- package/generators/client/templates/vue/src/test/javascript/e2e/page-objects/navbar-page.ts.ejs +2 -2
- package/generators/client/templates/vue/src/test/javascript/jest.conf.js.ejs +5 -6
- package/generators/client/templates/vue/src/test/javascript/spec/app/account/account.service.spec.ts.ejs +4 -0
- package/generators/client/templates/vue/src/test/javascript/spec/app/shared/alert/alert.service.spec.ts.ejs +106 -3
- package/generators/client/templates/vue/src/test/javascript/spec/app/shared/config/axios-interceptor.spec.ts.ejs +12 -0
- package/generators/client/templates/vue/src/test/javascript/spec/app/shared/config/formatter.spec.ts.ejs +6 -0
- package/generators/client/templates/vue/src/test/javascript/spec/app/shared/sort/sorts.spec.ts.ejs +10 -0
- package/generators/client/templates/vue/webpack/webpack.common.js.ejs +1 -1
- package/generators/client/templates/vue/webpack/webpack.dev.js.ejs +2 -2
- package/generators/common/files.js +5 -4
- package/generators/common/templates/package.json +1 -1
- package/generators/common/templates/sonar-project.properties.ejs +19 -11
- package/generators/cypress/index.js +1 -1
- package/generators/docker-compose/templates/README-DOCKER-COMPOSE.md.ejs +3 -3
- package/generators/docker-compose/templates/docker-compose.yml.ejs +1 -1
- package/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +32 -14
- package/generators/entity/index.js +4 -3
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/detail/entity-management-detail.component.html.ejs +1 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.html.ejs +18 -6
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.spec.ts.ejs +1 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.ts.ejs +23 -19
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.spec.ts.ejs +3 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.ts.ejs +1 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-form.service.ts.ejs +1 -1
- package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.component.ts.ejs +2 -2
- package/generators/entity-server/templates/src/main/java/package/common/delete_template.ejs +7 -3
- package/generators/entity-server/templates/src/main/java/package/common/get_all_template.ejs +2 -2
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.ejs +15 -5
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_persistable.ejs +8 -1
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryInternalImpl_reactive.java.ejs +5 -0
- package/generators/entity-server/templates/src/main/java/package/service/EntityQueryService.java.ejs +4 -4
- package/generators/entity-server/templates/src/main/java/package/service/EntityService.java.ejs +6 -4
- package/generators/entity-server/templates/src/main/java/package/service/criteria/EntityCriteria.java.ejs +3 -26
- package/generators/entity-server/templates/src/main/java/package/service/dto/EntityDTO.java.ejs +1 -0
- package/generators/entity-server/templates/src/main/java/package/service/impl/EntityServiceImpl.java.ejs +1 -1
- package/generators/entity-server/templates/src/test/java/package/web/rest/EntityResourceIT.java.ejs +33 -28
- package/generators/generate-blueprint/constants.mjs +46 -6
- package/generators/generate-blueprint/files.mjs +7 -5
- package/generators/generate-blueprint/generator.mjs +73 -19
- package/generators/generate-blueprint/templates/generators/generator/generator.spec.mjs.ejs +1 -1
- package/generators/generator-base-blueprint.js +23 -1
- package/generators/generator-base-entities.cjs +5 -1
- package/generators/generator-base.js +82 -15
- package/generators/generator-constants.js +17 -23
- package/generators/kubernetes/templates/deployment.yml.ejs +1 -1
- package/generators/kubernetes/templates/ingress.yml.ejs +1 -1
- package/generators/kubernetes/templates/istio/gateway.yml.ejs +1 -1
- package/generators/kubernetes/templates/kustomize/kustomization.yml.ejs +1 -1
- package/generators/kubernetes/templates/service.yml.ejs +1 -1
- package/generators/kubernetes-knative/templates/istio/gateway.yml.ejs +1 -1
- package/generators/kubernetes-knative/templates/service.yml.ejs +3 -3
- package/generators/languages/templates/src/main/webapp/i18n/al/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/ar-ly/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/bg/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/bn/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/by/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/ca/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/cs/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/da/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/de/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/el/activate.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/el/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/el/password.json +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/el/register.json +3 -3
- package/generators/languages/templates/src/main/webapp/i18n/el/tracker.json +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/el/user-management.json +9 -9
- package/generators/languages/templates/src/main/webapp/i18n/en/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/es/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/et/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/fa/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/fi/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/fr/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/gl/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/hi/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/hr/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/hu/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/hy/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/in/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/it/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/ja/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/ko/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/mr/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/my/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/nl/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/pa/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/pl/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/pt-br/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/pt-pt/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/ro/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/ru/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/si/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/sk/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/sr/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/sv/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/ta/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/te/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/th/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/tr/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/ua/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/uz-Latn-uz/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/vi/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/zh-cn/health.json.ejs +1 -1
- package/generators/languages/templates/src/main/webapp/i18n/zh-tw/health.json.ejs +1 -1
- package/generators/openshift/templates/deployment.yml.ejs +2 -2
- package/generators/server/cleanup-elasticsearch.js +5 -0
- package/generators/server/files.js +17 -8
- package/generators/server/index.js +0 -2
- package/generators/server/templates/build.gradle.ejs +6 -14
- package/generators/server/templates/gradle/profile_dev.gradle.ejs +1 -1
- package/generators/server/templates/gradle/profile_prod.gradle.ejs +1 -1
- package/generators/server/templates/gradle.properties.ejs +6 -4
- package/generators/server/templates/npmw.cmd +31 -29
- package/generators/server/templates/package.json.ejs +2 -2
- package/generators/server/templates/pom.xml.ejs +12 -23
- package/generators/server/templates/sql/common/src/test/java/package/config/MsSqlTestContainer.java.ejs +2 -3
- package/generators/server/templates/src/main/docker/app.yml.ejs +7 -1
- package/generators/server/templates/src/main/docker/config/realm-config/jhipster-realm.json.ejs +32 -14
- package/generators/server/templates/src/main/docker/jhipster-control-center.yml.ejs +1 -1
- package/generators/server/templates/src/main/docker/prometheus/prometheus.yml.ejs +1 -1
- package/generators/server/templates/src/main/java/package/Application.java.ejs +11 -4
- package/generators/server/templates/src/main/java/package/config/CRLFLogConverter.java.ejs +57 -0
- package/generators/server/templates/src/main/java/package/config/EurekaWorkaroundConfiguration.java.ejs +49 -0
- package/generators/server/templates/src/main/java/package/config/LoggingConfiguration.java.ejs +4 -4
- package/generators/server/templates/src/main/java/package/config/SecurityConfiguration.java.ejs +17 -18
- package/generators/server/templates/src/main/java/package/config/SecurityConfiguration_reactive.java.ejs +13 -5
- package/generators/server/templates/src/main/java/package/domain/AbstractAuditingEntity.java.ejs +5 -6
- package/generators/server/templates/src/main/java/package/domain/User.java.ejs +1 -1
- package/generators/server/templates/src/main/java/package/repository/UserRepository.java.ejs +1 -1
- package/generators/server/templates/src/main/java/package/security/oauth2/CustomClaimConverter.java.ejs +13 -6
- package/generators/server/templates/src/main/java/package/service/dto/AdminUserDTO.java.ejs +3 -1
- package/generators/server/templates/src/main/java/package/service/dto/PasswordChangeDTO.java.ejs +5 -1
- package/generators/server/templates/src/main/java/package/service/dto/UserDTO.java.ejs +3 -1
- package/generators/server/templates/src/main/java/package/web/rest/UserResource.java.ejs +15 -42
- package/generators/server/templates/src/main/java/package/web/rest/errors/BadRequestAlertException.java.ejs +1 -0
- package/generators/server/templates/src/main/java/package/web/rest/errors/EmailAlreadyUsedException.java.ejs +1 -0
- package/generators/server/templates/src/main/java/package/web/rest/errors/InvalidPasswordException.java.ejs +1 -0
- package/generators/server/templates/src/main/java/package/web/rest/errors/LoginAlreadyUsedException.java.ejs +1 -0
- package/generators/server/templates/src/main/resources/config/application-dev.yml.ejs +1 -1
- package/generators/server/templates/src/main/resources/config/application-prod.yml.ejs +2 -2
- package/generators/server/templates/src/main/resources/config/application.yml.ejs +4 -2
- package/generators/server/templates/src/main/resources/config/liquibase/master.xml.ejs +3 -8
- package/generators/server/templates/src/main/resources/logback-spring.xml.ejs +5 -0
- package/generators/server/templates/src/test/java/package/config/{ElasticsearchReactiveTestConfiguration.java.ejs → ElasticsearchTestConfiguration.java.ejs} +3 -3
- package/generators/server/templates/src/test/java/package/config/ElasticsearchTestContainer.java.ejs +1 -0
- package/generators/server/templates/src/test/java/package/config/JHipsterBlockHoundIntegration.java.ejs +3 -0
- package/generators/server/templates/src/test/java/package/config/TestContainersSpringContextCustomizerFactory.java.ejs +2 -2
- package/generators/sql-constants.js +5 -2
- package/generators/utils.js +43 -3
- package/generators/workspaces/index.js +2 -1
- package/jdl/exporters/jdl-exporter.js +6 -1
- package/jdl/jhipster/application-options.js +2 -1
- package/jdl/jhipster/binary-options.js +2 -2
- package/jdl/jhipster/default-application-options.js +11 -8
- package/jdl/jhipster/entity-options.js +1 -0
- package/jdl/jhipster/search-engine-types.js +1 -0
- package/lib/constants/priorities.cjs +16 -0
- package/lib/constants/priorities.mjs +1 -0
- package/lib/index.js +2 -0
- package/lib/support/base.cjs +2 -1
- package/package.json +7 -6
- package/utils/blueprint.js +10 -0
- package/utils/field.js +3 -1
- package/generators/client/templates/react/src/main/webapp/app/config/translation-middleware.ts.ejs +0 -58
- package/generators/server/templates/.npmrc.ejs +0 -1
|
@@ -20,6 +20,7 @@ const assert = require('assert');
|
|
|
20
20
|
const chalk = require('chalk');
|
|
21
21
|
const _ = require('lodash');
|
|
22
22
|
const path = require('path');
|
|
23
|
+
const { existsSync } = require('fs');
|
|
23
24
|
const Environment = require('yeoman-environment');
|
|
24
25
|
const { CLI_NAME, logger } = require('./utils');
|
|
25
26
|
const { loadYoRc, packageNameToNamespace } = require('../generators/utils');
|
|
@@ -88,7 +89,7 @@ module.exports = class EnvironmentBuilder {
|
|
|
88
89
|
}
|
|
89
90
|
|
|
90
91
|
prepare({ blueprints, lookups } = {}) {
|
|
91
|
-
this._lookupJHipster()._loadBlueprints(blueprints)._lookups(lookups)._lookupBlueprints()._loadSharedOptions();
|
|
92
|
+
this._lookupJHipster()._lookupLocalBlueprint()._loadBlueprints(blueprints)._lookups(lookups)._lookupBlueprints()._loadSharedOptions();
|
|
92
93
|
return this;
|
|
93
94
|
}
|
|
94
95
|
|
|
@@ -125,6 +126,19 @@ module.exports = class EnvironmentBuilder {
|
|
|
125
126
|
return this;
|
|
126
127
|
}
|
|
127
128
|
|
|
129
|
+
_lookupLocalBlueprint() {
|
|
130
|
+
const localBlueprintPath = path.join(process.cwd(), '.blueprint');
|
|
131
|
+
if (existsSync(localBlueprintPath)) {
|
|
132
|
+
// Register jhipster generators.
|
|
133
|
+
const generators = this.env.lookup({ packagePaths: [localBlueprintPath], lookups: ['.'] });
|
|
134
|
+
if (generators.length > 0) {
|
|
135
|
+
this.env.alias(/^@jhipster\/jhipster-local(:(.*))?$/, '.blueprint$1');
|
|
136
|
+
this.env.sharedOptions.localBlueprint = true;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return this;
|
|
140
|
+
}
|
|
141
|
+
|
|
128
142
|
_lookups(lookups = []) {
|
|
129
143
|
lookups = [].concat(lookups);
|
|
130
144
|
lookups.forEach(lookup => {
|
package/generators/app/index.js
CHANGED
|
@@ -301,6 +301,11 @@ module.exports = class JHipsterAppGenerator extends BaseBlueprintGenerator {
|
|
|
301
301
|
type: Boolean,
|
|
302
302
|
});
|
|
303
303
|
|
|
304
|
+
this.option('auto-crlf', {
|
|
305
|
+
desc: 'Detect line endings',
|
|
306
|
+
type: Boolean,
|
|
307
|
+
});
|
|
308
|
+
|
|
304
309
|
// Just constructing help, stop here
|
|
305
310
|
if (this.options.help) {
|
|
306
311
|
return;
|
|
@@ -407,6 +412,12 @@ module.exports = class JHipsterAppGenerator extends BaseBlueprintGenerator {
|
|
|
407
412
|
this.jhipsterConfig.clientFramework === CLIENT_FRAMEWORK_NO;
|
|
408
413
|
this.jhipsterConfig.withAdminUi = false;
|
|
409
414
|
this.jhipsterConfig.skipUserManagement = true;
|
|
415
|
+
} else {
|
|
416
|
+
this.jhipsterConfig.skipClient = this.jhipsterConfig.skipClient || this.jhipsterConfig.clientFramework === CLIENT_FRAMEWORK_NO;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
if (this.jhipsterConfig.skipClient) {
|
|
420
|
+
this.jhipsterConfig.clientFramework = CLIENT_FRAMEWORK_NO;
|
|
410
421
|
}
|
|
411
422
|
|
|
412
423
|
// Set app defaults
|
|
@@ -441,7 +452,7 @@ module.exports = class JHipsterAppGenerator extends BaseBlueprintGenerator {
|
|
|
441
452
|
if (!this.jhipsterConfig.skipServer) {
|
|
442
453
|
await this.composeWithJHipster(GENERATOR_SERVER, true);
|
|
443
454
|
}
|
|
444
|
-
if (
|
|
455
|
+
if (this.jhipsterConfig.clientFramework !== CLIENT_FRAMEWORK_NO) {
|
|
445
456
|
await this.composeWithJHipster(GENERATOR_CLIENT, true);
|
|
446
457
|
}
|
|
447
458
|
if (!this.configOptions.skipI18n) {
|
|
@@ -25,6 +25,9 @@ const {
|
|
|
25
25
|
patternFilter,
|
|
26
26
|
patternSpy,
|
|
27
27
|
} = require('yeoman-environment/transform');
|
|
28
|
+
const { transform } = require('p-transform');
|
|
29
|
+
const { stat } = require('fs/promises');
|
|
30
|
+
const { isBinaryFile } = require('isbinaryfile');
|
|
28
31
|
|
|
29
32
|
const { hasState, setModifiedFileState } = State;
|
|
30
33
|
|
|
@@ -44,6 +47,7 @@ const { prepareFieldForTemplates } = require('../../utils/field');
|
|
|
44
47
|
const { createUserEntity } = require('../../utils/user');
|
|
45
48
|
const { OAUTH2 } = require('../../jdl/jhipster/authentication-types');
|
|
46
49
|
const { CommonDBTypes } = require('../../jdl/jhipster/field-types');
|
|
50
|
+
const { detectCrLf, normalizeLineEndings } = require('../utils');
|
|
47
51
|
|
|
48
52
|
const { LONG: TYPE_LONG } = CommonDBTypes;
|
|
49
53
|
|
|
@@ -161,7 +165,7 @@ module.exports = class extends BaseGenerator {
|
|
|
161
165
|
*/
|
|
162
166
|
async _commitSharedFs(stream = this.env.sharedFs.stream(), skipPrettier = this.options.skipPrettier) {
|
|
163
167
|
const { skipYoResolve } = this.options;
|
|
164
|
-
const { withGeneratedFlag } = this.jhipsterConfig;
|
|
168
|
+
const { withGeneratedFlag, autoCrlf } = this.jhipsterConfig;
|
|
165
169
|
|
|
166
170
|
// JDL writes directly to disk, set the file as modified so prettier will be applied
|
|
167
171
|
const { upgradeCommand, ignoreErrors } = this.options;
|
|
@@ -199,6 +203,33 @@ module.exports = class extends BaseGenerator {
|
|
|
199
203
|
file.conflicter = 'force';
|
|
200
204
|
}, '**/.jhipster/*.json').name('jhipster:config-files:force');
|
|
201
205
|
|
|
206
|
+
const convertToCRLF = () =>
|
|
207
|
+
transform(async file => {
|
|
208
|
+
if (!file.contents) {
|
|
209
|
+
return file;
|
|
210
|
+
}
|
|
211
|
+
if (await isBinaryFile(file.contents)) {
|
|
212
|
+
return file;
|
|
213
|
+
}
|
|
214
|
+
const fstat = await stat(file.path);
|
|
215
|
+
if (!fstat.isFile()) {
|
|
216
|
+
return file;
|
|
217
|
+
}
|
|
218
|
+
const attributes = Object.fromEntries(
|
|
219
|
+
(await this.createGit().raw('check-attr', 'binary', 'eol', '--', file.path))
|
|
220
|
+
.split(/\r\n|\r|\n/)
|
|
221
|
+
.map(attr => attr.split(':'))
|
|
222
|
+
.map(([_file, attr, value]) => [attr, value])
|
|
223
|
+
);
|
|
224
|
+
if (attributes.binary === 'set' || attributes.eol === 'lf') {
|
|
225
|
+
return file;
|
|
226
|
+
}
|
|
227
|
+
if (attributes.eol === 'crlf' || (await detectCrLf(file.path))) {
|
|
228
|
+
file.contents = Buffer.from(normalizeLineEndings(file.contents.toString(), '\r\n'));
|
|
229
|
+
}
|
|
230
|
+
return file;
|
|
231
|
+
}, 'jhipster:crlf');
|
|
232
|
+
|
|
202
233
|
const transformStreams = [
|
|
203
234
|
// multi-step changes the file path, should be executed earlier in the pipeline
|
|
204
235
|
new MultiStepTransform(),
|
|
@@ -207,6 +238,7 @@ module.exports = class extends BaseGenerator {
|
|
|
207
238
|
createForceWriteConfigFiles(),
|
|
208
239
|
...(withGeneratedFlag ? [generatedAnnotationTransform(this)] : []),
|
|
209
240
|
...(skipPrettier ? [] : [createApplyPrettierTransform()]),
|
|
241
|
+
...(autoCrlf ? [convertToCRLF()] : []),
|
|
210
242
|
createConflicterCheckTransform(this.env.conflicter, conflicterStatus),
|
|
211
243
|
createConflicterStatusTransform(),
|
|
212
244
|
];
|
|
@@ -19,21 +19,11 @@
|
|
|
19
19
|
version: 2.1
|
|
20
20
|
jobs:
|
|
21
21
|
build:
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
machine:
|
|
23
|
+
image: ubuntu-2004:current
|
|
24
|
+
resource_class: large
|
|
24
25
|
steps:
|
|
25
26
|
- checkout
|
|
26
|
-
- setup_remote_docker:
|
|
27
|
-
version: 19.03.13
|
|
28
|
-
- run:
|
|
29
|
-
name: Install docker and docker-compose
|
|
30
|
-
command: |
|
|
31
|
-
echo jhipster | sudo -S apt update
|
|
32
|
-
echo jhipster | sudo -S apt install -y docker.io
|
|
33
|
-
echo jhipster | sudo -S curl -Lo /usr/local/bin/docker-compose $(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep "browser_download_url.*docker-compose-Linux" | cut -d ':' -f 2,3 | tr -d \" | tr -d ' ')
|
|
34
|
-
echo jhipster | sudo -S chmod +x /usr/local/bin/docker-compose
|
|
35
|
-
docker version
|
|
36
|
-
docker-compose version
|
|
37
27
|
# Download and cache dependencies
|
|
38
28
|
- restore_cache:
|
|
39
29
|
keys:
|
|
@@ -270,7 +270,7 @@ const files = {
|
|
|
270
270
|
],
|
|
271
271
|
},
|
|
272
272
|
{
|
|
273
|
-
condition: generator => generator.applicationType === GATEWAY && generator.
|
|
273
|
+
condition: generator => generator.applicationType === GATEWAY && generator.serviceDiscoveryAny,
|
|
274
274
|
path: ANGULAR_DIR,
|
|
275
275
|
templates: [
|
|
276
276
|
'admin/gateway/gateway.route.ts',
|
|
@@ -76,7 +76,7 @@ const files = {
|
|
|
76
76
|
{
|
|
77
77
|
condition: generator => generator.enableTranslation,
|
|
78
78
|
path: REACT_DIR,
|
|
79
|
-
templates: ['config/translation.ts'
|
|
79
|
+
templates: ['config/translation.ts'],
|
|
80
80
|
},
|
|
81
81
|
{
|
|
82
82
|
condition: generator => generator.websocket === SPRING_WEBSOCKET,
|
|
@@ -199,7 +199,7 @@ const files = {
|
|
|
199
199
|
],
|
|
200
200
|
},
|
|
201
201
|
{
|
|
202
|
-
condition: generator => generator.applicationType === GATEWAY && generator.
|
|
202
|
+
condition: generator => generator.applicationType === GATEWAY && generator.serviceDiscoveryAny,
|
|
203
203
|
path: REACT_DIR,
|
|
204
204
|
templates: ['modules/administration/gateway/gateway.tsx'],
|
|
205
205
|
},
|
|
@@ -359,6 +359,9 @@ function cleanup() {
|
|
|
359
359
|
this.removeFile(`${CLIENT_MAIN_SRC_DIR}app/shared/error/error-boundary-route.tsx`);
|
|
360
360
|
this.removeFile(`${CLIENT_MAIN_SRC_DIR}app/shared/error/error-boundary-route.spec.tsx`);
|
|
361
361
|
}
|
|
362
|
+
if (this.isJhipsterVersionLessThan('7.9.3')) {
|
|
363
|
+
this.removeFile(`${CLIENT_MAIN_SRC_DIR}app/config/translation-middleware.ts`);
|
|
364
|
+
}
|
|
362
365
|
}
|
|
363
366
|
|
|
364
367
|
function writeFiles() {
|
|
@@ -238,7 +238,7 @@ const vueFiles = {
|
|
|
238
238
|
],
|
|
239
239
|
},
|
|
240
240
|
{
|
|
241
|
-
condition: generator => generator.applicationType === GATEWAY && generator.
|
|
241
|
+
condition: generator => generator.applicationType === GATEWAY && generator.serviceDiscoveryAny,
|
|
242
242
|
path: VUE_DIR,
|
|
243
243
|
templates: ['admin/gateway/gateway.vue', 'admin/gateway/gateway.component.ts', 'admin/gateway/gateway.service.ts'],
|
|
244
244
|
},
|
|
@@ -267,6 +267,7 @@ const vueFiles = {
|
|
|
267
267
|
'spec/app/shared/alert/alert.service.spec.ts',
|
|
268
268
|
'spec/app/shared/config/axios-interceptor.spec.ts',
|
|
269
269
|
'spec/app/shared/data/data-utils.service.spec.ts',
|
|
270
|
+
'spec/app/shared/sort/sorts.spec.ts',
|
|
270
271
|
],
|
|
271
272
|
},
|
|
272
273
|
{
|
|
@@ -329,7 +330,7 @@ const vueFiles = {
|
|
|
329
330
|
],
|
|
330
331
|
},
|
|
331
332
|
{
|
|
332
|
-
condition: generator => generator.applicationType === GATEWAY && generator.
|
|
333
|
+
condition: generator => generator.applicationType === GATEWAY && generator.serviceDiscoveryAny,
|
|
333
334
|
path: CLIENT_TEST_SRC_DIR,
|
|
334
335
|
templates: ['spec/app/admin/gateway/gateway.component.spec.ts'],
|
|
335
336
|
},
|
|
@@ -33,10 +33,13 @@ module.exports = {
|
|
|
33
33
|
cacheDirectory: '<rootDir>/<%= BUILD_DIR %>jest-cache',
|
|
34
34
|
coverageDirectory: '<rootDir>/<%= BUILD_DIR %>test-results/',
|
|
35
35
|
moduleNameMapper: pathsToModuleNameMapper(paths, { prefix: `<rootDir>/${baseUrl}/` }),
|
|
36
|
-
reporters: [
|
|
37
|
-
|
|
36
|
+
reporters: [
|
|
37
|
+
'default',
|
|
38
|
+
['jest-junit', { outputDirectory: '<rootDir>/<%= BUILD_DIR %>test-results/', outputName: 'TESTS-results-jest.xml' }],
|
|
39
|
+
['jest-sonar', { outputDirectory: './<%= BUILD_DIR %>test-results/jest', outputName: 'TESTS-results-sonar.xml' }],
|
|
40
|
+
],
|
|
38
41
|
testMatch: ['<rootDir>/<%= CLIENT_MAIN_SRC_DIR %>app/**/@(*.)@(spec.ts)'],
|
|
39
42
|
testEnvironmentOptions: {
|
|
40
|
-
url: '
|
|
43
|
+
url: 'https://jhipster.tech',
|
|
41
44
|
},
|
|
42
45
|
};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"dependencies": {
|
|
3
|
-
"@angular/common": "14.
|
|
3
|
+
"@angular/common": "14.2.0",
|
|
4
4
|
"@fortawesome/angular-fontawesome": "0.11.1",
|
|
5
|
-
"@fortawesome/fontawesome-svg-core": "6.
|
|
6
|
-
"@fortawesome/free-solid-svg-icons": "6.
|
|
5
|
+
"@fortawesome/fontawesome-svg-core": "6.2.0",
|
|
6
|
+
"@fortawesome/free-solid-svg-icons": "6.2.0",
|
|
7
7
|
"@ng-bootstrap/ng-bootstrap": "13.0.0",
|
|
8
8
|
"@ngx-translate/core": "14.0.0",
|
|
9
9
|
"@ngx-translate/http-loader": "7.0.0",
|
|
10
|
-
"@popperjs/core": "2.11.
|
|
10
|
+
"@popperjs/core": "2.11.6",
|
|
11
11
|
"bootstrap": "5.2.0",
|
|
12
12
|
"bootswatch": "5.2.0",
|
|
13
13
|
"ngx-cookie-service": "14.0.1",
|
|
@@ -18,32 +18,32 @@
|
|
|
18
18
|
"zone.js": "0.11.6"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
|
-
"@angular/cli": "14.1
|
|
22
|
-
"@angular-builders/custom-webpack": "14.0.
|
|
23
|
-
"@angular-builders/jest": "14.0.
|
|
24
|
-
"@angular-eslint/eslint-plugin": "14.0.
|
|
25
|
-
"@types/node": "16.11.
|
|
26
|
-
"@types/jest": "28.1.
|
|
27
|
-
"@typescript-eslint/eslint-plugin": "5.
|
|
21
|
+
"@angular/cli": "14.2.1",
|
|
22
|
+
"@angular-builders/custom-webpack": "14.0.1",
|
|
23
|
+
"@angular-builders/jest": "14.0.1",
|
|
24
|
+
"@angular-eslint/eslint-plugin": "14.0.3",
|
|
25
|
+
"@types/node": "16.11.56",
|
|
26
|
+
"@types/jest": "28.1.8",
|
|
27
|
+
"@typescript-eslint/eslint-plugin": "5.36.1",
|
|
28
28
|
"browser-sync": "2.27.10",
|
|
29
29
|
"browser-sync-webpack-plugin": "2.3.0",
|
|
30
30
|
"copy-webpack-plugin": "11.0.0",
|
|
31
|
-
"eslint": "8.
|
|
31
|
+
"eslint": "8.23.0",
|
|
32
32
|
"eslint-config-prettier": "8.5.0",
|
|
33
33
|
"eslint-webpack-plugin": "3.2.0",
|
|
34
34
|
"folder-hash": "4.0.2",
|
|
35
35
|
"jest": "28.1.3",
|
|
36
|
-
"jest-preset-angular": "12.2.
|
|
36
|
+
"jest-preset-angular": "12.2.2",
|
|
37
37
|
"jest-date-mock": "1.0.8",
|
|
38
|
-
"jest-junit": "14.0.
|
|
39
|
-
"jest-sonar
|
|
38
|
+
"jest-junit": "14.0.1",
|
|
39
|
+
"jest-sonar": "0.2.12",
|
|
40
40
|
"merge-jsons-webpack-plugin": "2.0.1",
|
|
41
41
|
"postcss-rtlcss": "3.7.2",
|
|
42
42
|
"rimraf": "3.0.2",
|
|
43
|
-
"ts-jest": "28.0.
|
|
44
|
-
"typescript": "4.
|
|
43
|
+
"ts-jest": "28.0.8",
|
|
44
|
+
"typescript": "4.8.2",
|
|
45
45
|
"webpack": "5.74.0",
|
|
46
|
-
"webpack-bundle-analyzer": "4.
|
|
46
|
+
"webpack-bundle-analyzer": "4.6.1",
|
|
47
47
|
"webpack-merge": "5.8.0",
|
|
48
48
|
"webpack-notifier": "1.15.0"
|
|
49
49
|
}
|
|
@@ -120,7 +120,7 @@
|
|
|
120
120
|
"jest-preset-angular": "<%= dependabotPackageJson.devDependencies['jest-preset-angular'] %>",
|
|
121
121
|
"jest-date-mock": "<%= dependabotPackageJson.devDependencies['jest-date-mock'] %>",
|
|
122
122
|
"jest-junit": "<%= dependabotPackageJson.devDependencies['jest-junit'] %>",
|
|
123
|
-
"jest-sonar
|
|
123
|
+
"jest-sonar": "<%= dependabotPackageJson.devDependencies['jest-sonar'] %>",
|
|
124
124
|
"prettier": "<%= dependabotPackageJson.devDependencies['prettier'] %>",
|
|
125
125
|
"prettier-plugin-packagejson": "<%= dependabotPackageJson.devDependencies['prettier-plugin-packagejson'] %>",
|
|
126
126
|
<%_ if (enableI18nRTL) { _%>
|
|
@@ -144,8 +144,8 @@
|
|
|
144
144
|
"default_environment": "prod"
|
|
145
145
|
},
|
|
146
146
|
"scripts": {
|
|
147
|
-
"prettier:check": "prettier --check \"{,src/**/,webpack
|
|
148
|
-
"prettier:format": "prettier --write \"{,src/**/,webpack
|
|
147
|
+
"prettier:check": "prettier --check \"{,src/**/,webpack/,.blueprint/**/}*.{<%= getPrettierExtensions() %>}\"",
|
|
148
|
+
"prettier:format": "prettier --write \"{,src/**/,webpack/,.blueprint/**/}*.{<%= getPrettierExtensions() %>}\"",
|
|
149
149
|
"lint": "eslint . --ext .js,.ts",
|
|
150
150
|
"lint:fix": "<%= clientPackageManager %> run lint -- --fix",
|
|
151
151
|
"cleanup": "rimraf <%= DIST_DIR %>",
|
|
@@ -191,9 +191,5 @@
|
|
|
191
191
|
"webapp:dev-ssl": "ng serve --ssl",
|
|
192
192
|
"webapp:prod": "<%= clientPackageManager %> run clean-www && <%= clientPackageManager %> run webapp:build:prod",
|
|
193
193
|
"webapp:test": "<%= clientPackageManager %> run test --"
|
|
194
|
-
},
|
|
195
|
-
"jestSonar": {
|
|
196
|
-
"reportPath": "<%= BUILD_DIR %>test-results/jest",
|
|
197
|
-
"reportFile": "TESTS-results-sonar.xml"
|
|
198
194
|
}
|
|
199
195
|
}
|
package/generators/client/templates/angular/src/main/webapp/app/admin/admin-routing.module.ts.ejs
CHANGED
|
@@ -55,7 +55,7 @@ import { RouterModule } from '@angular/router';
|
|
|
55
55
|
loadChildren: () => import('./metrics/metrics.module').then(m => m.MetricsModule),
|
|
56
56
|
},
|
|
57
57
|
<%_ } _%>
|
|
58
|
-
<%_ if (applicationTypeGateway &&
|
|
58
|
+
<%_ if (applicationTypeGateway && serviceDiscoveryAny) { _%>
|
|
59
59
|
{
|
|
60
60
|
path: 'gateway',
|
|
61
61
|
loadChildren: () => import('./gateway/gateway.module').then(m => m.GatewayModule),
|
package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.model.ts.ejs
CHANGED
|
@@ -22,7 +22,7 @@ export type HealthKey =
|
|
|
22
22
|
<%_ if (messageBrokerKafka) { _%>
|
|
23
23
|
| 'binders'
|
|
24
24
|
<%_ } _%>
|
|
25
|
-
<%_ if (applicationTypeGateway ||
|
|
25
|
+
<%_ if (applicationTypeGateway || serviceDiscoveryAny) { _%>
|
|
26
26
|
| 'discoveryComposite'
|
|
27
27
|
| 'refreshScope'
|
|
28
28
|
| 'clientConfigServer'
|
|
@@ -23,14 +23,17 @@ import { ActivatedRoute } from '@angular/router';
|
|
|
23
23
|
<%_ if (enableTranslation) { _%>
|
|
24
24
|
import { LANGUAGES } from 'app/config/language.constants';
|
|
25
25
|
<%_ } _%>
|
|
26
|
-
import {
|
|
26
|
+
import { IUser } from '../user-management.model';
|
|
27
27
|
import { UserManagementService } from '../service/user-management.service';
|
|
28
28
|
|
|
29
|
-
const
|
|
29
|
+
const userTemplate = {} as IUser;
|
|
30
|
+
|
|
31
|
+
const newUser: IUser = {
|
|
30
32
|
<%_ if (enableTranslation) { _%>
|
|
31
33
|
langKey: '<%= nativeLanguage %>',
|
|
32
34
|
<%_ } _%>
|
|
33
|
-
|
|
35
|
+
activated: true,
|
|
36
|
+
} as IUser;
|
|
34
37
|
|
|
35
38
|
@Component({
|
|
36
39
|
selector: '<%= jhiPrefixDashed %>-user-mgmt-update',
|
|
@@ -44,8 +47,8 @@ export class UserManagementUpdateComponent implements OnInit {
|
|
|
44
47
|
isSaving = false;
|
|
45
48
|
|
|
46
49
|
editForm = new FormGroup({
|
|
47
|
-
id: new FormControl(
|
|
48
|
-
login: new FormControl(
|
|
50
|
+
id: new FormControl(userTemplate.id),
|
|
51
|
+
login: new FormControl(userTemplate.login, {
|
|
49
52
|
nonNullable: true,
|
|
50
53
|
validators: [
|
|
51
54
|
Validators.required,
|
|
@@ -54,17 +57,17 @@ export class UserManagementUpdateComponent implements OnInit {
|
|
|
54
57
|
Validators.pattern('^[a-zA-Z0-9!$&*+=?^_`{|}~.-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$|^[_.@A-Za-z0-9-]+$'),
|
|
55
58
|
],
|
|
56
59
|
}),
|
|
57
|
-
firstName: new FormControl(
|
|
58
|
-
lastName: new FormControl(
|
|
59
|
-
email: new FormControl(
|
|
60
|
+
firstName: new FormControl(userTemplate.firstName, { validators: [Validators.maxLength(50)] }),
|
|
61
|
+
lastName: new FormControl(userTemplate.lastName, { validators: [Validators.maxLength(50)] }),
|
|
62
|
+
email: new FormControl(userTemplate.email, {
|
|
60
63
|
nonNullable: true,
|
|
61
64
|
validators: [Validators.minLength(5), Validators.maxLength(254), Validators.email],
|
|
62
65
|
}),
|
|
63
|
-
activated: new FormControl(
|
|
66
|
+
activated: new FormControl(userTemplate.activated, { nonNullable: true }),
|
|
64
67
|
<%_ if (enableTranslation) { _%>
|
|
65
|
-
langKey: new FormControl(
|
|
68
|
+
langKey: new FormControl(userTemplate.langKey, { nonNullable: true }),
|
|
66
69
|
<%_ } _%>
|
|
67
|
-
authorities: new FormControl(
|
|
70
|
+
authorities: new FormControl(userTemplate.authorities, { nonNullable: true }),
|
|
68
71
|
});
|
|
69
72
|
|
|
70
73
|
constructor(private userService: UserManagementService, private route: ActivatedRoute) {}
|
|
@@ -72,10 +75,9 @@ export class UserManagementUpdateComponent implements OnInit {
|
|
|
72
75
|
ngOnInit(): void {
|
|
73
76
|
this.route.data.subscribe(({ user }) => {
|
|
74
77
|
if (user) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
this.editForm.patchValue(user);
|
|
78
|
+
this.editForm.reset(user);
|
|
79
|
+
} else {
|
|
80
|
+
this.editForm.reset(newUser);
|
|
79
81
|
}
|
|
80
82
|
});
|
|
81
83
|
this.userService.authorities().subscribe(authorities => (this.authorities = authorities));
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
const idType = getTypescriptKeyType(user.primaryKey.type);
|
|
21
21
|
_%>
|
|
22
22
|
export interface IUser {
|
|
23
|
-
id
|
|
23
|
+
id: <%= idType %> | null;
|
|
24
24
|
login?: string;
|
|
25
25
|
firstName?: string | null;
|
|
26
26
|
lastName?: string | null;
|
|
@@ -36,7 +36,7 @@ export interface IUser {
|
|
|
36
36
|
|
|
37
37
|
export class User implements IUser {
|
|
38
38
|
constructor(
|
|
39
|
-
public id
|
|
39
|
+
public id: <%= idType %> | null,
|
|
40
40
|
public login?: string,
|
|
41
41
|
public firstName?: string | null,
|
|
42
42
|
public lastName?: string | null,
|
|
@@ -20,22 +20,22 @@ import { Injectable } from '@angular/core';
|
|
|
20
20
|
import { Resolve, ActivatedRouteSnapshot, Routes } from '@angular/router';
|
|
21
21
|
import { Observable, of } from 'rxjs';
|
|
22
22
|
|
|
23
|
-
import {
|
|
23
|
+
import { IUser } from './user-management.model';
|
|
24
24
|
import { UserManagementService } from './service/user-management.service';
|
|
25
25
|
import { UserManagementComponent } from './list/user-management.component';
|
|
26
26
|
import { UserManagementDetailComponent } from './detail/user-management-detail.component';
|
|
27
27
|
import { UserManagementUpdateComponent } from './update/user-management-update.component';
|
|
28
28
|
|
|
29
29
|
@Injectable({ providedIn: 'root' })
|
|
30
|
-
export class UserManagementResolve implements Resolve<IUser> {
|
|
30
|
+
export class UserManagementResolve implements Resolve<IUser | null> {
|
|
31
31
|
constructor(private service: UserManagementService) {}
|
|
32
32
|
|
|
33
|
-
resolve(route: ActivatedRouteSnapshot): Observable<IUser> {
|
|
33
|
+
resolve(route: ActivatedRouteSnapshot): Observable<IUser | null> {
|
|
34
34
|
const id = route.params['login'];
|
|
35
35
|
if (id) {
|
|
36
36
|
return this.service.find(id);
|
|
37
37
|
}
|
|
38
|
-
return of(
|
|
38
|
+
return of(null);
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
|
package/generators/client/templates/angular/src/main/webapp/app/core/request/request-util.ts.ejs
CHANGED
|
@@ -23,8 +23,10 @@ export const createRequestOption = (req?: any): HttpParams => {
|
|
|
23
23
|
|
|
24
24
|
if (req) {
|
|
25
25
|
Object.keys(req).forEach(key => {
|
|
26
|
-
if (key !== 'sort' && req[key]
|
|
27
|
-
|
|
26
|
+
if (key !== 'sort' && req[key]) {
|
|
27
|
+
for (const value of [].concat(req[key]).filter(v => v !== '')) {
|
|
28
|
+
options = options.append(key, value);
|
|
29
|
+
}
|
|
28
30
|
}
|
|
29
31
|
});
|
|
30
32
|
|
package/generators/client/templates/angular/src/main/webapp/app/core/util/data-util.service.ts.ejs
CHANGED
|
@@ -142,6 +142,6 @@ export class DataUtils {
|
|
|
142
142
|
}
|
|
143
143
|
|
|
144
144
|
private formatAsBytes(size: number): string {
|
|
145
|
-
return size.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ' ') + ' bytes';
|
|
145
|
+
return size.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ' ') + ' bytes'; // NOSONAR
|
|
146
146
|
}
|
|
147
147
|
}
|
package/generators/client/templates/angular/src/main/webapp/app/core/util/parse-links.service.ts.ejs
CHANGED
|
@@ -45,7 +45,7 @@ export class ParseLinks {
|
|
|
45
45
|
throw new Error('section could not be split on ";"');
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
const url: string = section[0].replace(/<(.*)>/, '$1').trim();
|
|
48
|
+
const url: string = section[0].replace(/<(.*)>/, '$1').trim(); // NOSONAR
|
|
49
49
|
const queryString: { [key: string]: string | undefined } = {};
|
|
50
50
|
|
|
51
51
|
url.replace(
|
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
</span>
|
|
100
100
|
</a>
|
|
101
101
|
<ul class="dropdown-menu" ngbDropdownMenu aria-labelledby="admin-menu">
|
|
102
|
-
<%_ if (applicationTypeGateway &&
|
|
102
|
+
<%_ if (applicationTypeGateway && serviceDiscoveryAny) { _%>
|
|
103
103
|
<li>
|
|
104
104
|
<a class="dropdown-item" routerLink="admin/gateway" routerLinkActive="active" (click)="collapseNavbar()">
|
|
105
105
|
<fa-icon icon="road" [fixedWidth]="true"></fa-icon>
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
<div class="filter-display" *ngIf="filters.hasAnyFilterSet()">
|
|
2
2
|
<span <%= jhiPrefix %>Translate="entity.filters.set"><%- this._getClientTranslation('entity.filters.set') %></span>
|
|
3
|
-
<fa-icon icon="times" (click)="clearAllFilters()"
|
|
3
|
+
<fa-icon icon="times" (click)="clearAllFilters()" title="<% if (enableTranslation) { %>{{ 'entity.filters.clearAll' | translate }}<% } else { %><%- this._getClientTranslation('entity.filters.clearAll') %><% } %>"></fa-icon>
|
|
4
4
|
<ul>
|
|
5
|
-
<
|
|
6
|
-
<
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
<ng-container *ngFor="let filterOption of filters.filterOptions">
|
|
6
|
+
<li *ngFor="let value of filterOption.values">
|
|
7
|
+
<span>{{ filterOption.name }}:</span> {{ value }}
|
|
8
|
+
<fa-icon icon="times" (click)="clearFilter(filterOption.name, value)" title="<% if (enableTranslation) { %>{{ 'entity.filters.clear' | translate }}<% } else { %><%- this._getClientTranslation('entity.filters.clear') %><% } %>"></fa-icon>
|
|
9
|
+
</li>
|
|
10
|
+
</ng-container>
|
|
9
11
|
</ul>
|
|
10
|
-
</div>
|
|
12
|
+
</div>
|
|
@@ -1,23 +1,18 @@
|
|
|
1
|
-
import { Component, Input
|
|
2
|
-
import {
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { IFilterOptions } from './filter.model';
|
|
3
3
|
|
|
4
4
|
@Component({
|
|
5
5
|
selector: '<%= jhiPrefixDashed %>-filter',
|
|
6
6
|
templateUrl: './filter.component.html',
|
|
7
7
|
})
|
|
8
|
-
export class FilterComponent
|
|
9
|
-
@Input()
|
|
10
|
-
filters!: IFilterOptions;
|
|
11
|
-
|
|
12
|
-
@Output() filterChange = new EventEmitter<IFilterOptions>();
|
|
8
|
+
export class FilterComponent {
|
|
9
|
+
@Input() filters!: IFilterOptions;
|
|
13
10
|
|
|
14
11
|
clearAllFilters(): void {
|
|
15
12
|
this.filters.clear();
|
|
16
|
-
this.filterChange.emit();
|
|
17
13
|
}
|
|
18
14
|
|
|
19
|
-
clearFilter(filterName: string): void {
|
|
20
|
-
this.filters.
|
|
21
|
-
this.filterChange.emit();
|
|
15
|
+
clearFilter(filterName: string, value: string): void {
|
|
16
|
+
this.filters.removeFilter(filterName, value);
|
|
22
17
|
}
|
|
23
18
|
}
|