@eui/cli 21.0.0-alpha.4 → 21.0.0-alpha.5
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/.version.properties +1 -0
- package/bin/eui-cli.js +47 -0
- package/lib/build.js +155 -0
- package/lib/cli.js +123 -0
- package/lib/config.js +58 -0
- package/lib/generators.js +75 -0
- package/lib/install.js +45 -0
- package/lib/maven-build/build.xml +115 -0
- package/lib/maven-build/lib/ant-contrib-20061014.jar +0 -0
- package/lib/maven-build/pom.xml +64 -0
- package/lib/post-build.js +33 -0
- package/lib/skeletons/_angular/base/.browserslistrc +16 -0
- package/lib/skeletons/_angular/base/.editorconfig +16 -0
- package/lib/skeletons/_angular/base/.euirc.json +8 -0
- package/lib/skeletons/_angular/base/README.md +26 -0
- package/lib/skeletons/_angular/base/angular.json +158 -0
- package/lib/skeletons/_angular/base/gitignore_TO_REPLACE +51 -0
- package/lib/skeletons/_angular/base/mock/app/models/user.js +6 -0
- package/lib/skeletons/_angular/base/mock/app/routes/index.js +5 -0
- package/lib/skeletons/_angular/base/mock/app/routes/user_routes.js +44 -0
- package/lib/skeletons/_angular/base/mock/db/db.json +10 -0
- package/lib/skeletons/_angular/base/mock/server.js +23 -0
- package/lib/skeletons/_angular/base/package.json +38 -0
- package/lib/skeletons/_angular/base/proxy-mock.conf.json +6 -0
- package/lib/skeletons/_angular/base/proxy.conf.json +6 -0
- package/lib/skeletons/_angular/base/src/.eslintrc.json +121 -0
- package/lib/skeletons/_angular/base/src/app/app-starter.service.spec.ts +68 -0
- package/lib/skeletons/_angular/base/src/app/app-starter.service.ts +68 -0
- package/lib/skeletons/_angular/base/src/app/app.component.html +35 -0
- package/lib/skeletons/_angular/base/src/app/app.component.spec.ts +60 -0
- package/lib/skeletons/_angular/base/src/app/app.component.ts +35 -0
- package/lib/skeletons/_angular/base/src/app/app.config.ts +84 -0
- package/lib/skeletons/_angular/base/src/app/app.routes.ts +9 -0
- package/lib/skeletons/_angular/base/src/app/features/home/home.component.html +41 -0
- package/lib/skeletons/_angular/base/src/app/features/home/home.component.ts +17 -0
- package/lib/skeletons/_angular/base/src/app/features/home/home.routes.ts +6 -0
- package/lib/skeletons/_angular/base/src/app/features/module1/components/page1/page1.component.html +7 -0
- package/lib/skeletons/_angular/base/src/app/features/module1/components/page1/page1.component.ts +10 -0
- package/lib/skeletons/_angular/base/src/app/features/module1/components/page2/page2.component.html +7 -0
- package/lib/skeletons/_angular/base/src/app/features/module1/components/page2/page2.component.ts +10 -0
- package/lib/skeletons/_angular/base/src/app/features/module1/module1.component.html +7 -0
- package/lib/skeletons/_angular/base/src/app/features/module1/module1.component.ts +10 -0
- package/lib/skeletons/_angular/base/src/app/features/module1/module1.routes.ts +10 -0
- package/lib/skeletons/_angular/base/src/app/features/module2/module2.component.html +7 -0
- package/lib/skeletons/_angular/base/src/app/features/module2/module2.component.ts +10 -0
- package/lib/skeletons/_angular/base/src/app/features/module2/module2.routes.ts +6 -0
- package/lib/skeletons/_angular/base/src/app/shared/testing/router.mock.ts +18 -0
- package/lib/skeletons/_angular/base/src/assets/config/env-json-config-dev.json +8 -0
- package/lib/skeletons/_angular/base/src/assets/config/env-json-config-prod.json +8 -0
- package/lib/skeletons/_angular/base/src/assets/config/env-json-config.json +7 -0
- package/lib/skeletons/_angular/base/src/assets/i18n/en.json +7 -0
- package/lib/skeletons/_angular/base/src/assets/i18n/fr.json +7 -0
- package/lib/skeletons/_angular/base/src/config/global.ts +33 -0
- package/lib/skeletons/_angular/base/src/config/index.ts +8 -0
- package/lib/skeletons/_angular/base/src/config/modules.ts +7 -0
- package/lib/skeletons/_angular/base/src/dummy.spec.ts +6 -0
- package/lib/skeletons/_angular/base/src/environments/environment.prod.ts +11 -0
- package/lib/skeletons/_angular/base/src/environments/environment.ts +15 -0
- package/lib/skeletons/_angular/base/src/favicon.ico +0 -0
- package/lib/skeletons/_angular/base/src/index.html +20 -0
- package/lib/skeletons/_angular/base/src/karma.conf.js +7 -0
- package/lib/skeletons/_angular/base/src/main.ts +20 -0
- package/lib/skeletons/_angular/base/src/styles.scss +1 -0
- package/lib/skeletons/_angular/base/src/tsconfig.app.json +18 -0
- package/lib/skeletons/_angular/base/src/tsconfig.spec.json +14 -0
- package/lib/skeletons/_angular/base/tsconfig.json +27 -0
- package/lib/skeletons/_angular/base-mobile/angular.json +156 -0
- package/lib/skeletons/_angular/base-mobile/ionic.config.json +5 -0
- package/lib/skeletons/_angular/base-mobile/ngsw-config.json +33 -0
- package/lib/skeletons/_angular/base-mobile/package.json +27 -0
- package/lib/skeletons/_angular/base-mobile/src/app/app-routing.module.ts +18 -0
- package/lib/skeletons/_angular/base-mobile/src/app/app-starter.service.ts +73 -0
- package/lib/skeletons/_angular/base-mobile/src/app/app.component.html +47 -0
- package/lib/skeletons/_angular/base-mobile/src/app/app.component.ts +81 -0
- package/lib/skeletons/_angular/base-mobile/src/app/app.config.ts +81 -0
- package/lib/skeletons/_angular/base-mobile/src/app/app.module.ts +44 -0
- package/lib/skeletons/_angular/base-mobile/src/app/core/components/.gitkeep +0 -0
- package/lib/skeletons/_angular/base-mobile/src/app/core/core.module.ts +89 -0
- package/lib/skeletons/_angular/base-mobile/src/app/core/reducers/index.ts +32 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/about/about-routing.module.ts +45 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/about/about.component.html +70 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/about/about.component.ts +19 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/about/about.module.ts +30 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/about/change-log/changelog.component.html +11 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/about/change-log/changelog.component.ts +102 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/about/help-support/help-support.component.html +20 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/about/help-support/help-support.component.ts +75 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/about/legal-notice/legal-notice.component.html +12 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/about/legal-notice/legal-notice.component.ts +8 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/about/licence-details/licence-details.component.html +48 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/about/licence-details/licence-details.component.ts +7 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/about/opensource-licences/opensource-licences.component.html +11 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/about/opensource-licences/opensource-licences.component.ts +31 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/about/privacy-statement/privacy-statement.component.html +11 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/about/privacy-statement/privacy-statement.component.ts +103 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/home/home-routing.module.ts +15 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/home/home.component.html +11 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/home/home.component.ts +9 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/home/home.module.ts +18 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/module1/components/page1/page1.component.html +11 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/module1/components/page1/page1.component.ts +8 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/module1/components/page2/page2.component.html +11 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/module1/components/page2/page2.component.ts +8 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/module1/module1-routing.module.ts +18 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/module1/module1.component.html +15 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/module1/module1.component.ts +17 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/module1/module1.module.ts +21 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/module2/module2-routing.module.ts +16 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/module2/module2.component.html +11 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/module2/module2.component.ts +7 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/module2/module2.module.ts +17 -0
- package/lib/skeletons/_angular/base-mobile/src/app/shared/shared.module.ts +16 -0
- package/lib/skeletons/_angular/base-mobile/src/app/shared/testing/router.mock.ts +18 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/docs/pdf-test.pdf +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/i18n/en.json +25 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/i18n/es.json +24 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/i18n/fr.json +25 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/i18n/tr.json +25 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-1024.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-114.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-120.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-128.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-144.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-152.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-16.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-180.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-192.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-32.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-36.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-384.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-48.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-512.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-57.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-60.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-72.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-76.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-96.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1125-2436.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1170-2532.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1179-2556.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1242-2208.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1242-2688.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1284-2778.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1290-2796.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1488-2266.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1536-2048.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1620-2160.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1640-2360.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1668-2224.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1668-2388.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-2048-2732.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-640-1136.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-750-1334.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-828-1792.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1125-2436.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1170-2532.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1179-2556.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1242-2208.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1242-2688.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1284-2778.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1290-2796.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1488-2266.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1536-2048.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1620-2160.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1640-2360.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1668-2224.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1668-2388.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-2048-2732.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-640-1136.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-750-1334.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-828-1792.png +0 -0
- package/lib/skeletons/_angular/base-mobile/src/assets/images/app-icon.svg +10 -0
- package/lib/skeletons/_angular/base-mobile/src/config/global.ts +39 -0
- package/lib/skeletons/_angular/base-mobile/src/config/index.ts +8 -0
- package/lib/skeletons/_angular/base-mobile/src/config/modules.ts +7 -0
- package/lib/skeletons/_angular/base-mobile/src/index.html +76 -0
- package/lib/skeletons/_angular/base-mobile/src/main.ts +23 -0
- package/lib/skeletons/_angular/base-mobile/src/manifest.webmanifest +66 -0
- package/lib/skeletons/_angular/base-mobile/src/tsconfig.app.json +20 -0
- package/lib/skeletons/_angular/options/ecl-ec/angular.json +181 -0
- package/lib/skeletons/_angular/options/ecl-ec/src/app/app.component.html +237 -0
- package/lib/skeletons/_angular/options/ecl-ec/src/app/app.component.ts +65 -0
- package/lib/skeletons/_angular/options/ecl-ec/src/app/app.config.ts +84 -0
- package/lib/skeletons/_angular/options/ecl-ec/src/app/features/home/home.component.html +71 -0
- package/lib/skeletons/_angular/options/ecl-ec/src/app/features/home/home.component.ts +20 -0
- package/lib/skeletons/_angular/options/ecl-ec/src/app/features/module1/components/page1/page1.component.html +1 -0
- package/lib/skeletons/_angular/options/ecl-ec/src/app/features/module1/components/page1/page1.component.ts +7 -0
- package/lib/skeletons/_angular/options/ecl-ec/src/app/features/module1/components/page2/page2.component.html +1 -0
- package/lib/skeletons/_angular/options/ecl-ec/src/app/features/module1/components/page2/page2.component.ts +7 -0
- package/lib/skeletons/_angular/options/ecl-ec/src/app/features/module1/module1.component.html +1 -0
- package/lib/skeletons/_angular/options/ecl-ec/src/app/features/module1/module1.component.ts +7 -0
- package/lib/skeletons/_angular/options/ecl-ec/src/app/features/module2/module2.component.html +1 -0
- package/lib/skeletons/_angular/options/ecl-ec/src/app/features/module2/module2.component.ts +7 -0
- package/lib/skeletons/_angular/options/ecl-ec/src/config/global.ts +23 -0
- package/lib/skeletons/_angular/options/ecl-eu/angular.json +181 -0
- package/lib/skeletons/_angular/options/ecl-eu/src/app/app.component.html +203 -0
- package/lib/skeletons/_angular/options/ecl-eu/src/app/app.component.ts +65 -0
- package/lib/skeletons/_angular/options/ecl-eu/src/app/app.config.ts +84 -0
- package/lib/skeletons/_angular/options/ecl-eu/src/app/features/home/home.component.html +71 -0
- package/lib/skeletons/_angular/options/ecl-eu/src/app/features/home/home.component.ts +20 -0
- package/lib/skeletons/_angular/options/ecl-eu/src/app/features/module1/components/page1/page1.component.html +1 -0
- package/lib/skeletons/_angular/options/ecl-eu/src/app/features/module1/components/page1/page1.component.ts +7 -0
- package/lib/skeletons/_angular/options/ecl-eu/src/app/features/module1/components/page2/page2.component.html +1 -0
- package/lib/skeletons/_angular/options/ecl-eu/src/app/features/module1/components/page2/page2.component.ts +7 -0
- package/lib/skeletons/_angular/options/ecl-eu/src/app/features/module1/module1.component.html +1 -0
- package/lib/skeletons/_angular/options/ecl-eu/src/app/features/module1/module1.component.ts +7 -0
- package/lib/skeletons/_angular/options/ecl-eu/src/app/features/module2/module2.component.html +1 -0
- package/lib/skeletons/_angular/options/ecl-eu/src/app/features/module2/module2.component.ts +7 -0
- package/lib/skeletons/_angular/options/ecl-eu/src/app/shared/shared.module.ts +19 -0
- package/lib/skeletons/_angular/options/ecl-eu/src/config/global.ts +23 -0
- package/lib/skeletons/web-maven/package.json +17 -0
- package/lib/skeletons/web-maven/pom.xml +55 -0
- package/lib/skeletons/web-maven/src/main/java/eu/europa/ec/digit/eui/angular2clistarter/servlet/SpringWebApplicationInitializer.java +22 -0
- package/lib/skeletons/web-maven/src/main/java/eu/europa/ec/digit/eui/angular2clistarter/spring/SpringRestConfiguration.java +24 -0
- package/lib/skeletons/web-maven/src/main/java/eu/europa/ec/digit/eui/angular2clistarter/spring/rest/UserDetailsResource.java +23 -0
- package/lib/skeletons/web-maven/src/main/resources/ecas-config-application-name.xml +7 -0
- package/lib/skeletons/web-maven/src/main/webapp/WEB-INF/dispatcher-servlet.xml +11 -0
- package/lib/skeletons/web-maven/src/main/webapp/WEB-INF/web.xml +38 -0
- package/lib/skeletons/web-maven/src/main/webapp/WEB-INF/weblogic.xml +16 -0
- package/lib/skeletons/web-maven/src/main/webapp/index.jsp +30 -0
- package/lib/skeletons/web-spring-boot/myapp-web/pom.xml +83 -0
- package/lib/skeletons/web-spring-boot/myapp-web-rest/pom.xml +83 -0
- package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/MyappApplication.java +46 -0
- package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/domain/Address.java +65 -0
- package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/domain/Building.java +44 -0
- package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/repositories/BuildingRepository.java +11 -0
- package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/resources/BuildingResource.java +26 -0
- package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/resources/SwaggerConfig.java +16 -0
- package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/resources/support/HateoasPageableHandlerMethodArgumentResolver.java +45 -0
- package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/resources/support/HypermediaSupport.java +25 -0
- package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/resources/support/PageJsonSerializer.java +17 -0
- package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/security/CachingPreventionFilter.java +29 -0
- package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/security/CsrfPreventionFilter.java +35 -0
- package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/security/FakeAuthenticationFilter.java +372 -0
- package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/security/SecurityConfig.java +47 -0
- package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/services/BuildingSearchCriteria.java +26 -0
- package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/services/BuildingService.java +10 -0
- package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/services/BuildingServiceImpl.java +26 -0
- package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/resources/application.properties +0 -0
- package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/resources/data.sql +11 -0
- package/lib/skeletons/web-spring-boot/pom.xml +30 -0
- package/lib/skeletons/web-symfony/myapp-web/angular.json +169 -0
- package/lib/skeletons/web-symfony/myapp-web/package.json +23 -0
- package/lib/skeletons/web-symfony/myapp-web/src/app/app-routing.module.ts +18 -0
- package/lib/skeletons/web-symfony/myapp-web/src/app/app.component.ts +77 -0
- package/lib/skeletons/web-symfony/myapp-web/src/app/features/products/components/products.component.html +160 -0
- package/lib/skeletons/web-symfony/myapp-web/src/app/features/products/components/products.component.scss +0 -0
- package/lib/skeletons/web-symfony/myapp-web/src/app/features/products/components/products.component.ts +104 -0
- package/lib/skeletons/web-symfony/myapp-web/src/app/features/products/models/product.model.ts +6 -0
- package/lib/skeletons/web-symfony/myapp-web/src/app/features/products/products-routing.module.ts +16 -0
- package/lib/skeletons/web-symfony/myapp-web/src/app/features/products/products.module.ts +16 -0
- package/lib/skeletons/web-symfony/myapp-web/src/app/features/products/services/products.service.ts +29 -0
- package/lib/skeletons/web-symfony/myapp-web/src/environments/environment.ts +17 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/.env +28 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/bin/console +42 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/composer.json +67 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/composer.lock +3572 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/config/bootstrap.php +21 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/config/bundles.php +12 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/config/config.yml +0 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/cache.yaml +19 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/dev/routing.yaml +3 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/doctrine.yaml +29 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/doctrine_migrations.yaml +5 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/framework.yaml +17 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/prod/doctrine.yaml +32 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/routing.yaml +4 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/sensio_framework_extra.yaml +3 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/test/framework.yaml +4 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/test/routing.yaml +3 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/twig.yaml +4 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/config/routes/annotations.yaml +3 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/config/routes/dev/twig.yaml +3 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/config/routes.yaml +3 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/config/services.yaml +27 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/public/index.php +27 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/src/Controller/ProductController.php +196 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/src/Entity/Product.php +99 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/src/Kernel.php +53 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/src/Migrations/Version20190604101623.php +31 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/src/Migrations/Version20190604101638.php +35 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/src/Repository/ProductRepository.php +51 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/symfony.lock +274 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/templates/base.html.twig +12 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/templates/lucky/number.html.twig +1 -0
- package/lib/skeletons/web-symfony/myapp-web-rest/templates/product/index.html.twig +20 -0
- package/lib/utils.js +13 -0
- package/package.json +1 -1
- package/sonar-project.properties +14 -0
package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/resources/application.properties
ADDED
|
File without changes
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
insert into t_address (address_id, street, postal_code, city, country) values (-4, 'rue Montoyer, 15', '1000', 'Bruxelles', 'Belgium');
|
|
2
|
+
insert into t_building (building_id, name, address_id) values ((select seq_building.nextval from dual), 'Montoyer 15 "Black Pearl"', -4);
|
|
3
|
+
|
|
4
|
+
insert into t_address (address_id, street, postal_code, city, country) values (-3, 'rue de la Loi, 200', '1040', 'Bruxelles', 'Belgium');
|
|
5
|
+
insert into t_building (building_id, name, address_id) values ((select seq_building.nextval from dual), 'Berlaymont', -3);
|
|
6
|
+
|
|
7
|
+
insert into t_address (address_id, street, postal_code, city, country) values (-2, 'rue Breydel, 4', '1040', 'Bruxelles', 'Belgium');
|
|
8
|
+
insert into t_building (building_id, name, address_id) values ((select seq_building.nextval from dual), 'Belliard 232', -2);
|
|
9
|
+
|
|
10
|
+
insert into t_address (address_id, street, postal_code, city, country) values (-1, 'Place Rogier, 16', '1210', 'Saint-Josse', 'Belgium');
|
|
11
|
+
insert into t_building (building_id, name, address_id) values ((select seq_building.nextval from dual), 'Covent Garden 2', -1);
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
3
|
+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
4
|
+
<modelVersion>4.0.0</modelVersion>
|
|
5
|
+
|
|
6
|
+
<groupId>@app.group.id@.@app.name@</groupId>
|
|
7
|
+
<artifactId>@app.name@</artifactId>
|
|
8
|
+
<version>0.1.0-SNAPSHOT</version>
|
|
9
|
+
<packaging>pom</packaging>
|
|
10
|
+
<name>@app.name@</name>
|
|
11
|
+
<description>Demo project for Spring Boot</description>
|
|
12
|
+
|
|
13
|
+
<parent>
|
|
14
|
+
<groupId>org.springframework.boot</groupId>
|
|
15
|
+
<artifactId>spring-boot-starter-parent</artifactId>
|
|
16
|
+
<version>3.4.4</version>
|
|
17
|
+
</parent>
|
|
18
|
+
|
|
19
|
+
<properties>
|
|
20
|
+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
21
|
+
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
|
22
|
+
<java.version>21</java.version>
|
|
23
|
+
</properties>
|
|
24
|
+
|
|
25
|
+
<modules>
|
|
26
|
+
<module>@app.name@-web-rest</module>
|
|
27
|
+
<module>@app.name@-web</module>
|
|
28
|
+
</modules>
|
|
29
|
+
|
|
30
|
+
</project>
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"newProjectRoot": "projects",
|
|
5
|
+
"defaultProject": "app",
|
|
6
|
+
"cli": {
|
|
7
|
+
"analytics": false
|
|
8
|
+
},
|
|
9
|
+
"projects": {
|
|
10
|
+
"app": {
|
|
11
|
+
"root": "",
|
|
12
|
+
"sourceRoot": "src",
|
|
13
|
+
"projectType": "application",
|
|
14
|
+
"prefix": "app",
|
|
15
|
+
"schematics": {
|
|
16
|
+
"@schematics/angular:component": {
|
|
17
|
+
"styleext": "scss"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"architect": {
|
|
21
|
+
"build": {
|
|
22
|
+
"builder": "ngx-build-plus:build",
|
|
23
|
+
"options": {
|
|
24
|
+
"outputPath": "dist",
|
|
25
|
+
"index": "src/index.html",
|
|
26
|
+
"main": "src/main.ts",
|
|
27
|
+
"polyfills": "src/polyfills.ts",
|
|
28
|
+
"tsConfig": "src/tsconfig.app.json",
|
|
29
|
+
"assets": [
|
|
30
|
+
"src/favicon.ico",
|
|
31
|
+
"src/assets",
|
|
32
|
+
{
|
|
33
|
+
"glob": "**/*",
|
|
34
|
+
"input": "node_modules/@eui/core/assets/",
|
|
35
|
+
"output": "./assets"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"glob": "**/*",
|
|
39
|
+
"input": "node_modules/@eui/styles/dist/assets/images",
|
|
40
|
+
"output": "./assets/images"
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"styles": [
|
|
44
|
+
"node_modules/@eui/styles/dist/styles/eui.css",
|
|
45
|
+
"node_modules/@eui/styles/dist/styles/eui-utilities.css",
|
|
46
|
+
"node_modules/@eui/styles/dist/styles/eui-legacy-bootstrap-utilities.css",
|
|
47
|
+
"src/styles.scss"
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
"configurations": {
|
|
51
|
+
"production": {
|
|
52
|
+
"fileReplacements": [
|
|
53
|
+
{
|
|
54
|
+
"replace": "src/environments/environment.ts",
|
|
55
|
+
"with": "src/environments/environment.prod.ts"
|
|
56
|
+
}
|
|
57
|
+
],
|
|
58
|
+
"optimization": true,
|
|
59
|
+
"outputHashing": "all",
|
|
60
|
+
"sourceMap": false,
|
|
61
|
+
"extractCss": true,
|
|
62
|
+
"namedChunks": true,
|
|
63
|
+
"aot": true,
|
|
64
|
+
"extractLicenses": true,
|
|
65
|
+
"vendorChunk": false,
|
|
66
|
+
"buildOptimizer": true,
|
|
67
|
+
"budgets": [
|
|
68
|
+
{
|
|
69
|
+
"type": "initial",
|
|
70
|
+
"maximumWarning": "3mb",
|
|
71
|
+
"maximumError": "5mb"
|
|
72
|
+
}
|
|
73
|
+
]
|
|
74
|
+
},
|
|
75
|
+
"dev": {
|
|
76
|
+
"fileReplacements": [
|
|
77
|
+
{
|
|
78
|
+
"replace": "src/environments/environment.ts",
|
|
79
|
+
"with": "src/environments/environment.dev.ts"
|
|
80
|
+
}
|
|
81
|
+
]
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"serve": {
|
|
86
|
+
"builder": "@angular-devkit/build-angular:dev-server",
|
|
87
|
+
"options": {
|
|
88
|
+
"browserTarget": "app:build"
|
|
89
|
+
},
|
|
90
|
+
"configurations": {
|
|
91
|
+
"proxy-mock": {
|
|
92
|
+
"browserTarget": "app:build",
|
|
93
|
+
"proxyConfig": "proxy-mock.conf.json"
|
|
94
|
+
},
|
|
95
|
+
"proxy": {
|
|
96
|
+
"browserTarget": "app:build",
|
|
97
|
+
"proxyConfig": "proxy.conf.json"
|
|
98
|
+
},
|
|
99
|
+
"production": {
|
|
100
|
+
"browserTarget": "app:build:production"
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
"test": {
|
|
105
|
+
"builder": "@angular-devkit/build-angular:karma",
|
|
106
|
+
"options": {
|
|
107
|
+
"main": "src/test.ts",
|
|
108
|
+
"polyfills": "src/polyfills.ts",
|
|
109
|
+
"tsConfig": "src/tsconfig.spec.json",
|
|
110
|
+
"karmaConfig": "src/karma.conf.js",
|
|
111
|
+
"styles": [
|
|
112
|
+
"src/styles.scss"
|
|
113
|
+
],
|
|
114
|
+
"scripts": [],
|
|
115
|
+
"assets": [
|
|
116
|
+
"src/favicon.ico",
|
|
117
|
+
"src/assets",
|
|
118
|
+
{
|
|
119
|
+
"glob": "**/*",
|
|
120
|
+
"input": "node_modules/@eui/core/assets/",
|
|
121
|
+
"output": "./assets"
|
|
122
|
+
}
|
|
123
|
+
]
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
"lint": {
|
|
127
|
+
"builder": "@angular-devkit/build-angular:tslint",
|
|
128
|
+
"options": {
|
|
129
|
+
"tsConfig": [
|
|
130
|
+
"src/tsconfig.app.json",
|
|
131
|
+
"src/tsconfig.spec.json"
|
|
132
|
+
],
|
|
133
|
+
"exclude": [
|
|
134
|
+
"**/node_modules/**"
|
|
135
|
+
]
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
"app-e2e": {
|
|
141
|
+
"root": "e2e/",
|
|
142
|
+
"projectType": "application",
|
|
143
|
+
"prefix": "",
|
|
144
|
+
"architect": {
|
|
145
|
+
"e2e": {
|
|
146
|
+
"builder": "@angular-devkit/build-angular:protractor",
|
|
147
|
+
"options": {
|
|
148
|
+
"protractorConfig": "e2e/protractor.conf.js",
|
|
149
|
+
"devServerTarget": "app:serve"
|
|
150
|
+
},
|
|
151
|
+
"configurations": {
|
|
152
|
+
"production": {
|
|
153
|
+
"devServerTarget": "app:serve:production"
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
"lint": {
|
|
158
|
+
"builder": "@angular-devkit/build-angular:tslint",
|
|
159
|
+
"options": {
|
|
160
|
+
"tsConfig": "e2e/tsconfig.e2e.json",
|
|
161
|
+
"exclude": [
|
|
162
|
+
"**/node_modules/**"
|
|
163
|
+
]
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "eui-angular-app",
|
|
3
|
+
"version": "21.0.0-alpha.4",
|
|
4
|
+
"license": "EUPL-1.1",
|
|
5
|
+
"description": "eUI JEE Symfony app scripts",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"ng": "ng",
|
|
8
|
+
"e2e": "ng e2e",
|
|
9
|
+
"stylelint": "stylelint \"src/**/*.scss\"",
|
|
10
|
+
"tslint": "tslint \"src/**/*.ts\"",
|
|
11
|
+
"clean": "rimraf out-tsc dist packages/**/dist/** packages/**/out-tsc/** packages/**/src/lib/**/*.js packages/**/src/lib/**/*.js.map",
|
|
12
|
+
"start-symfony": "eui-scripts start-symfony --configuration=dev",
|
|
13
|
+
"start-serve": "eui-scripts serve-app --configuration=proxy-mock",
|
|
14
|
+
"start": "npm run clean && npm-run-all --parallel start-symfony start-serve",
|
|
15
|
+
"start-mean": "npm run clean && npm-run-all --parallel start-mock-server-mean start-serve",
|
|
16
|
+
"start-proxy": "npm run clean && eui-scripts serve-app --configuration=proxy",
|
|
17
|
+
"generate-changelog": "eui-scripts generate-changelog"
|
|
18
|
+
},
|
|
19
|
+
"private": true,
|
|
20
|
+
"dependencies": {
|
|
21
|
+
"@eui/deps-base": "21.0.0-alpha.4"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { RouterModule, Routes } from '@angular/router';
|
|
3
|
+
|
|
4
|
+
const routes: Routes = [
|
|
5
|
+
{ path: '', redirectTo: 'screen/home', pathMatch: 'full' },
|
|
6
|
+
{ path: 'index.jsp', redirectTo: 'screen/home' },
|
|
7
|
+
{ path: 'screen/home', loadChildren: './features/home/home.module#Module' },
|
|
8
|
+
{ path: 'screen/products', loadChildren: './features/products/products.module#ProductsModule' },
|
|
9
|
+
{ path: 'screen/module1', loadChildren: './features/module1/module1.module#Module' },
|
|
10
|
+
{ path: 'screen/module2', loadChildren: './features/module2/module2.module#Module' }
|
|
11
|
+
];
|
|
12
|
+
|
|
13
|
+
@NgModule({
|
|
14
|
+
imports: [
|
|
15
|
+
RouterModule.forRoot(routes),
|
|
16
|
+
],
|
|
17
|
+
})
|
|
18
|
+
export class AppRoutingModule {}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Component, OnInit } from '@angular/core';
|
|
2
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
3
|
+
import { Observable } from 'rxjs/Observable';
|
|
4
|
+
import { Store } from '@ngrx/store';
|
|
5
|
+
|
|
6
|
+
import { UserState, getUserState, UxLink, UxLanguage } from '@eui/core';
|
|
7
|
+
|
|
8
|
+
@Component({
|
|
9
|
+
selector: 'app-root',
|
|
10
|
+
templateUrl: './app.component.html'
|
|
11
|
+
})
|
|
12
|
+
export class AppComponent implements OnInit {
|
|
13
|
+
userState: Observable<UserState>;
|
|
14
|
+
|
|
15
|
+
menuLinks: UxLink[] = [];
|
|
16
|
+
notificationLinks: UxLink[] = [];
|
|
17
|
+
|
|
18
|
+
constructor(
|
|
19
|
+
private translateService: TranslateService,
|
|
20
|
+
private store: Store<any>,
|
|
21
|
+
) {
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
ngOnInit() {
|
|
25
|
+
this.userState = <any>this.store.select(getUserState);
|
|
26
|
+
|
|
27
|
+
this._createMenuLinks();
|
|
28
|
+
this._createNotifications();
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
onLanguageChanged(language: UxLanguage) {
|
|
32
|
+
this.translateService.use(language.code);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
private _createMenuLinks() {
|
|
36
|
+
this.menuLinks = [
|
|
37
|
+
new UxLink(
|
|
38
|
+
{
|
|
39
|
+
label: 'HOME', url: '/screen/home', isHome: true
|
|
40
|
+
}
|
|
41
|
+
),
|
|
42
|
+
new UxLink(
|
|
43
|
+
{
|
|
44
|
+
label: 'Module1', url: '/screen/module1', children: [
|
|
45
|
+
new UxLink({ label: 'disabled item', disabled: true }),
|
|
46
|
+
new UxLink({ label: 'Page 1', url: '/screen/module1/page1' }),
|
|
47
|
+
new UxLink({ label: 'Page 2', url: '/screen/module1/page2' })
|
|
48
|
+
]
|
|
49
|
+
}
|
|
50
|
+
),
|
|
51
|
+
new UxLink(
|
|
52
|
+
{
|
|
53
|
+
label: 'Module2', url: '/screen/module2'
|
|
54
|
+
}
|
|
55
|
+
),
|
|
56
|
+
new UxLink(
|
|
57
|
+
{
|
|
58
|
+
label: 'Products', url: '/screen/products'
|
|
59
|
+
}
|
|
60
|
+
)
|
|
61
|
+
];
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
private _createNotifications() {
|
|
65
|
+
this.notificationLinks = [
|
|
66
|
+
new UxLink(
|
|
67
|
+
{ label: 'Notification title', subLabel: 'This is the description of the noficiation' }
|
|
68
|
+
),
|
|
69
|
+
new UxLink(
|
|
70
|
+
{ label: 'Notification title', subLabel: 'This is the description of the noficiation' }
|
|
71
|
+
),
|
|
72
|
+
new UxLink(
|
|
73
|
+
{ label: 'Notification title', subLabel: 'This is the description of the noficiation' }
|
|
74
|
+
),
|
|
75
|
+
];
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
<div class="page-title">
|
|
2
|
+
List of products
|
|
3
|
+
</div>
|
|
4
|
+
|
|
5
|
+
<div class="row">
|
|
6
|
+
<div class="col-sm-8">
|
|
7
|
+
<ux-panel label="List of Products" [isBlocked]="mode === 'load'" contentHeight="60vh">
|
|
8
|
+
|
|
9
|
+
<uxPanelHeaderRightContent>
|
|
10
|
+
<div class="flex-container">
|
|
11
|
+
<ux-button-group [hasPairedIcon]="true" styleClass="ml-3" (clicked)="addItem()">
|
|
12
|
+
<ux-button-group-item label="Create new product"></ux-button-group-item>
|
|
13
|
+
<ux-button-group-item iconClass="fa fa-plus"></ux-button-group-item>
|
|
14
|
+
</ux-button-group>
|
|
15
|
+
</div>
|
|
16
|
+
</uxPanelHeaderRightContent>
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
<ng-container *ngIf="products && mode !== 'load'; else loading">
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
<p-table [value]="products" [paginator]="true" [rows]="10" [pageLinks]="3" [rowsPerPageOptions]="[5,10,20]" >
|
|
23
|
+
<ng-template pTemplate="header" let-columns>
|
|
24
|
+
<tr>
|
|
25
|
+
<th [pSortableColumn]="'productId'">ID <p-sortIcon [field]="'productId'"></p-sortIcon></th>
|
|
26
|
+
<th [pSortableColumn]="'name'">Name <p-sortIcon [field]="'name'"></p-sortIcon></th>
|
|
27
|
+
<th [pSortableColumn]="'price'">Price <p-sortIcon [field]="'price'"></p-sortIcon></th>
|
|
28
|
+
<th [pSortableColumn]="'description'">Description <p-sortIcon [field]="'description'"></p-sortIcon></th>
|
|
29
|
+
<th class="actionsColumn">ACTIONS</th>
|
|
30
|
+
</tr>
|
|
31
|
+
</ng-template>
|
|
32
|
+
|
|
33
|
+
<ng-template pTemplate="body" let-rowData let-columns="columns" let-rowIndex="rowIndex" >
|
|
34
|
+
<tr [pSelectableRow]="rowData" [pSelectableRowIndex]="rowIndex">
|
|
35
|
+
<td>{{rowData.productId}}</td>
|
|
36
|
+
<td>
|
|
37
|
+
<ux-badge typeClass="default">
|
|
38
|
+
{{ rowData.name }}
|
|
39
|
+
</ux-badge>
|
|
40
|
+
</td>
|
|
41
|
+
<td>{{rowData.price}}</td>
|
|
42
|
+
<td>{{rowData.description}}</td>
|
|
43
|
+
|
|
44
|
+
<td class="actionsColumn">
|
|
45
|
+
<div class="flex-container justify-content-center">
|
|
46
|
+
<ux-button [isFlat]="true" iconClass="fa fa-pencil" typeClass="info" (click)="editProduct(rowData)"></ux-button>
|
|
47
|
+
<ux-button [isFlat]="true" iconClass="fa fa-trash-o" typeClass="danger" (click)="deleteProduct(rowData.productId)"></ux-button>
|
|
48
|
+
</div>
|
|
49
|
+
</td>
|
|
50
|
+
</tr>
|
|
51
|
+
</ng-template>
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
</p-table>
|
|
55
|
+
</ng-container>
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
<ng-template #loading>
|
|
60
|
+
<ng-container *ngIf="! serviceError; else error">
|
|
61
|
+
Loading...
|
|
62
|
+
</ng-container>
|
|
63
|
+
</ng-template>
|
|
64
|
+
|
|
65
|
+
<ng-template #error>
|
|
66
|
+
<ux-alert typeClass="warning">
|
|
67
|
+
Unable to retrieve the list of products; please <a (click)="loadProducts()">try again</a> later.<br/>
|
|
68
|
+
If the problem persists, please contact the administrator.<br/>
|
|
69
|
+
<br/>
|
|
70
|
+
<a (click)="serviceErrorVisible = !serviceErrorVisible">
|
|
71
|
+
<span *ngIf="!serviceErrorVisible">Show technical reason</span>
|
|
72
|
+
<span *ngIf="serviceErrorVisible">Hide technical reason</span>
|
|
73
|
+
</a>
|
|
74
|
+
<pre *ngIf="serviceErrorVisible">{{serviceError.message}}</pre>
|
|
75
|
+
</ux-alert>
|
|
76
|
+
</ng-template>
|
|
77
|
+
</ux-panel>
|
|
78
|
+
</div>
|
|
79
|
+
|
|
80
|
+
<div class="col-sm-4">
|
|
81
|
+
<ux-panel label="Products" [isBlocked]="mode === 'load'" contentHeight="60vh">
|
|
82
|
+
<pre>{{products | json}}</pre>
|
|
83
|
+
</ux-panel>
|
|
84
|
+
</div>
|
|
85
|
+
</div>
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
<!-- MODAL EDIT / NEW-->
|
|
90
|
+
<ux-modal id="modal1b" titleLabel="{{actionLabel}}" [isFooterVisible]="false" [isSizeSmall]="true" (onDismiss)="onModalDismiss($event)" (onAccept)="onModalAccept($event)">
|
|
91
|
+
<uxModalBody>
|
|
92
|
+
<form [formGroup]="formInput" *ngIf="ItemSelected">
|
|
93
|
+
<div class="row">
|
|
94
|
+
<div class="col-10">
|
|
95
|
+
<ux-form-group label="Name:" isRequired="true">
|
|
96
|
+
<ux-form-control [(ngModel)]="ItemSelected.name" formControlName="name" placeholderLabel="es: iPad Pro 512GB" ></ux-form-control>
|
|
97
|
+
</ux-form-group>
|
|
98
|
+
|
|
99
|
+
<ux-form-group label="Price:" isRequired="true">
|
|
100
|
+
<ux-form-control [(ngModel)]="ItemSelected.price" [isNumber]="true" formControlName="price" placeholderLabel="price"></ux-form-control>
|
|
101
|
+
</ux-form-group>
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
<ux-form-group label="Description:" isRequired=true>
|
|
105
|
+
<ux-form-control [(ngModel)]="ItemSelected.description" [isTextarea]="true" formControlName="description" placeholderLabel="description"></ux-form-control>
|
|
106
|
+
</ux-form-group>
|
|
107
|
+
|
|
108
|
+
<div class="text-right mt-3">
|
|
109
|
+
<ux-button (click)="onUpdateSubmit(ItemSelected)" class='ml-3' [isDisabled]="!formInput.valid">
|
|
110
|
+
Update Product
|
|
111
|
+
</ux-button>
|
|
112
|
+
</div>
|
|
113
|
+
|
|
114
|
+
</div>
|
|
115
|
+
</div>
|
|
116
|
+
</form>
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
<form [formGroup]="formInput" *ngIf="!ItemSelected">
|
|
120
|
+
<div class="row">
|
|
121
|
+
<div class="col-10">
|
|
122
|
+
<ux-form-group label="Name:" isRequired="true">
|
|
123
|
+
<ux-form-control formControlName="name" placeholderLabel="es: iPad Pro 512GB" ></ux-form-control>
|
|
124
|
+
</ux-form-group>
|
|
125
|
+
|
|
126
|
+
<ux-form-group label="Price:" isRequired="true">
|
|
127
|
+
<ux-form-control [isNumber]="true" formControlName="price" placeholderLabel="price"></ux-form-control>
|
|
128
|
+
</ux-form-group>
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
<ux-form-group label="Description:" isRequired=true>
|
|
132
|
+
<ux-form-control [isTextarea]="true" formControlName="description" placeholderLabel="description"></ux-form-control>
|
|
133
|
+
</ux-form-group>
|
|
134
|
+
|
|
135
|
+
<div class="text-right mt-3">
|
|
136
|
+
<ux-button (click)="onSubmit()" class='ml-3' [isDisabled]="!formInput.valid">
|
|
137
|
+
Save Product
|
|
138
|
+
</ux-button>
|
|
139
|
+
</div>
|
|
140
|
+
|
|
141
|
+
</div>
|
|
142
|
+
</div>
|
|
143
|
+
</form>
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
</uxModalBody>
|
|
149
|
+
</ux-modal>
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
<!-- MODAL DELETE -->
|
|
153
|
+
<ux-modal id="modaldelete" titleLabel="Modal title" [isSizeSmall]="true"
|
|
154
|
+
[isHandleCloseOnDismiss]="false" [isHandleCloseOnAccept]="false" [isHandleCloseOnClose]="false"
|
|
155
|
+
(onDismiss)="onModalDismiss($event)" (onAccept)="onModalAccept($event)" (onClose)="onModalClose($event)">
|
|
156
|
+
<uxModalBody>
|
|
157
|
+
<p>Are you sure to delete it?</p>
|
|
158
|
+
</uxModalBody>
|
|
159
|
+
</ux-modal>
|
|
160
|
+
|
|
File without changes
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { Component, OnInit } from '@angular/core';
|
|
2
|
+
import { ProductsService } from '../services/products.service';
|
|
3
|
+
import { Product } from '../models/product.model';
|
|
4
|
+
import { UxService } from '@eui/core';
|
|
5
|
+
import { FormGroup, FormBuilder, Validators } from '@angular/forms';
|
|
6
|
+
|
|
7
|
+
@Component({
|
|
8
|
+
templateUrl: './products.component.html',
|
|
9
|
+
styleUrls: ['./products.component.scss'],
|
|
10
|
+
})
|
|
11
|
+
export class ProductsComponent implements OnInit {
|
|
12
|
+
formInput: FormGroup;
|
|
13
|
+
product: Product;
|
|
14
|
+
products: Array<Product>;
|
|
15
|
+
actionLabel: string;
|
|
16
|
+
serviceError: null;
|
|
17
|
+
IdSelected: number;
|
|
18
|
+
ItemSelected: Product;
|
|
19
|
+
mode = null;
|
|
20
|
+
modes: string [] = [];
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
constructor(protected productsService: ProductsService, public uxService: UxService, private fb: FormBuilder) {
|
|
24
|
+
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
ngOnInit() {
|
|
28
|
+
this.loadProducts();
|
|
29
|
+
this.buildForm();
|
|
30
|
+
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
loadProducts() {
|
|
34
|
+
this.serviceError = null;
|
|
35
|
+
this.productsService.loadProducts().subscribe(products => {
|
|
36
|
+
this.products = products.items;
|
|
37
|
+
}, error => {
|
|
38
|
+
this.serviceError = error;
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
buildForm(): void {
|
|
43
|
+
|
|
44
|
+
this.formInput = this.fb.group({
|
|
45
|
+
'name': [null , [Validators.required]],
|
|
46
|
+
'price': [null , [Validators.required]],
|
|
47
|
+
'description': [null , [Validators.required]]
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
editProduct(item: Product) {
|
|
52
|
+
this.ItemSelected = item;
|
|
53
|
+
this.actionLabel = 'Edit product';
|
|
54
|
+
this.uxService.openModal('modal1b');
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
deleteProduct(id: number) {
|
|
58
|
+
this.IdSelected = id;
|
|
59
|
+
this.uxService.openModal('modaldelete');
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
onModalAccept(event) {
|
|
63
|
+
this.productsService.deleteProduct(this.IdSelected).subscribe(product => {
|
|
64
|
+
let index = this.products.findIndex(item => item['productId'] === product['productId']);
|
|
65
|
+
this.products.splice(index, 1);
|
|
66
|
+
});
|
|
67
|
+
this.uxService.closeModal('modaldelete');
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
onModalDismiss(event) {
|
|
71
|
+
this.uxService.closeModal('modaldelete');
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
onModalClose(event) {
|
|
75
|
+
this.uxService.closeModal('modaldelete');
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
addItem() {
|
|
79
|
+
this.ItemSelected = null;
|
|
80
|
+
this.actionLabel = 'New product';
|
|
81
|
+
this.formInput.reset();
|
|
82
|
+
this.uxService.openModal('modal1b');
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
onSubmit() {
|
|
86
|
+
this.product = new Product(this.formInput.value);
|
|
87
|
+
this.productsService.addProduct(this.product).subscribe(product => {
|
|
88
|
+
this.products.push(product);
|
|
89
|
+
this.uxService.closeModal('modal1b');
|
|
90
|
+
}, error => {
|
|
91
|
+
this.serviceError = error;
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
onUpdateSubmit(ItemSelected: Product) {
|
|
96
|
+
this.product = new Product(this.formInput.value);
|
|
97
|
+
this.productsService.updateProduct(ItemSelected).subscribe(product => {
|
|
98
|
+
this.uxService.closeModal('modal1b');
|
|
99
|
+
}, error => {
|
|
100
|
+
this.serviceError = error;
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
}
|
package/lib/skeletons/web-symfony/myapp-web/src/app/features/products/products-routing.module.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { RouterModule } from '@angular/router';
|
|
3
|
+
import { ProductsComponent } from './components/products.component';
|
|
4
|
+
|
|
5
|
+
@NgModule({
|
|
6
|
+
imports: [
|
|
7
|
+
RouterModule.forChild([
|
|
8
|
+
{ path: '', component: ProductsComponent },
|
|
9
|
+
])
|
|
10
|
+
],
|
|
11
|
+
exports: [
|
|
12
|
+
RouterModule
|
|
13
|
+
]
|
|
14
|
+
})
|
|
15
|
+
export class ProductsRoutingModule {
|
|
16
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { PaginatorModule } from 'primeng/paginator';
|
|
4
|
+
import { UxAllModule } from '@eui/core';
|
|
5
|
+
import { ProductsComponent } from './components/products.component';
|
|
6
|
+
import { ProductsService } from './services/products.service';
|
|
7
|
+
import { ProductsRoutingModule } from './products-routing.module';
|
|
8
|
+
import { TableModule } from 'primeng/table';
|
|
9
|
+
|
|
10
|
+
@NgModule({
|
|
11
|
+
imports: [CommonModule, UxAllModule, ProductsRoutingModule, PaginatorModule, TableModule],
|
|
12
|
+
declarations: [ProductsComponent],
|
|
13
|
+
providers: [ProductsService]
|
|
14
|
+
})
|
|
15
|
+
export class ProductsModule {
|
|
16
|
+
}
|