@eui/cli 21.0.0-alpha.24 → 21.0.0-alpha.26

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.
Files changed (60) hide show
  1. package/bin/eui-cli.js +9 -5
  2. package/bin/scripts/build-app.js +12 -0
  3. package/bin/scripts/lint-app.js +22 -0
  4. package/bin/scripts/serve-app.js +2 -2
  5. package/lib/app-utils/build.js +176 -0
  6. package/lib/app-utils/projects.js +41 -0
  7. package/lib/app-utils/serve.js +78 -0
  8. package/lib/build.js +0 -28
  9. package/lib/cli.js +0 -1
  10. package/lib/skeletons/_angular/base/angular.json +0 -6
  11. package/lib/skeletons/_angular/base/package.json +2 -2
  12. package/lib/skeletons/_angular/base-mobile/package.json +1 -1
  13. package/lib/utils.js +0 -14
  14. package/package.json +1 -2
  15. package/lib/skeletons/_angular/base/.euirc.json +0 -8
  16. package/lib/skeletons/web-symfony/myapp-web/angular.json +0 -169
  17. package/lib/skeletons/web-symfony/myapp-web/package.json +0 -23
  18. package/lib/skeletons/web-symfony/myapp-web/src/app/app-routing.module.ts +0 -18
  19. package/lib/skeletons/web-symfony/myapp-web/src/app/app.component.ts +0 -77
  20. package/lib/skeletons/web-symfony/myapp-web/src/app/features/products/components/products.component.html +0 -160
  21. package/lib/skeletons/web-symfony/myapp-web/src/app/features/products/components/products.component.scss +0 -0
  22. package/lib/skeletons/web-symfony/myapp-web/src/app/features/products/components/products.component.ts +0 -104
  23. package/lib/skeletons/web-symfony/myapp-web/src/app/features/products/models/product.model.ts +0 -6
  24. package/lib/skeletons/web-symfony/myapp-web/src/app/features/products/products-routing.module.ts +0 -16
  25. package/lib/skeletons/web-symfony/myapp-web/src/app/features/products/products.module.ts +0 -16
  26. package/lib/skeletons/web-symfony/myapp-web/src/app/features/products/services/products.service.ts +0 -29
  27. package/lib/skeletons/web-symfony/myapp-web/src/environments/environment.ts +0 -17
  28. package/lib/skeletons/web-symfony/myapp-web-rest/.env +0 -28
  29. package/lib/skeletons/web-symfony/myapp-web-rest/bin/console +0 -42
  30. package/lib/skeletons/web-symfony/myapp-web-rest/composer.json +0 -67
  31. package/lib/skeletons/web-symfony/myapp-web-rest/composer.lock +0 -3572
  32. package/lib/skeletons/web-symfony/myapp-web-rest/config/bootstrap.php +0 -21
  33. package/lib/skeletons/web-symfony/myapp-web-rest/config/bundles.php +0 -12
  34. package/lib/skeletons/web-symfony/myapp-web-rest/config/config.yml +0 -0
  35. package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/cache.yaml +0 -19
  36. package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/dev/routing.yaml +0 -3
  37. package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/doctrine.yaml +0 -29
  38. package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/doctrine_migrations.yaml +0 -5
  39. package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/framework.yaml +0 -17
  40. package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/prod/doctrine.yaml +0 -32
  41. package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/routing.yaml +0 -4
  42. package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/sensio_framework_extra.yaml +0 -3
  43. package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/test/framework.yaml +0 -4
  44. package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/test/routing.yaml +0 -3
  45. package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/twig.yaml +0 -4
  46. package/lib/skeletons/web-symfony/myapp-web-rest/config/routes/annotations.yaml +0 -3
  47. package/lib/skeletons/web-symfony/myapp-web-rest/config/routes/dev/twig.yaml +0 -3
  48. package/lib/skeletons/web-symfony/myapp-web-rest/config/routes.yaml +0 -3
  49. package/lib/skeletons/web-symfony/myapp-web-rest/config/services.yaml +0 -27
  50. package/lib/skeletons/web-symfony/myapp-web-rest/public/index.php +0 -27
  51. package/lib/skeletons/web-symfony/myapp-web-rest/src/Controller/ProductController.php +0 -196
  52. package/lib/skeletons/web-symfony/myapp-web-rest/src/Entity/Product.php +0 -99
  53. package/lib/skeletons/web-symfony/myapp-web-rest/src/Kernel.php +0 -53
  54. package/lib/skeletons/web-symfony/myapp-web-rest/src/Migrations/Version20190604101623.php +0 -31
  55. package/lib/skeletons/web-symfony/myapp-web-rest/src/Migrations/Version20190604101638.php +0 -35
  56. package/lib/skeletons/web-symfony/myapp-web-rest/src/Repository/ProductRepository.php +0 -51
  57. package/lib/skeletons/web-symfony/myapp-web-rest/symfony.lock +0 -274
  58. package/lib/skeletons/web-symfony/myapp-web-rest/templates/base.html.twig +0 -12
  59. package/lib/skeletons/web-symfony/myapp-web-rest/templates/lucky/number.html.twig +0 -1
  60. package/lib/skeletons/web-symfony/myapp-web-rest/templates/product/index.html.twig +0 -20
@@ -1,169 +0,0 @@
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
- }
@@ -1,23 +0,0 @@
1
- {
2
- "name": "eui-angular-app",
3
- "version": "21.0.0-alpha.24",
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.24"
22
- }
23
- }
@@ -1,18 +0,0 @@
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 {}
@@ -1,77 +0,0 @@
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
- }
@@ -1,160 +0,0 @@
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
-
@@ -1,104 +0,0 @@
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
- }
@@ -1,6 +0,0 @@
1
- export class Product {
2
-
3
- public constructor(init?: Partial<Product >) {
4
- Object.assign(this, init);
5
- }
6
- }
@@ -1,16 +0,0 @@
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
- }
@@ -1,16 +0,0 @@
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
- }
@@ -1,29 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { HttpClient, HttpHeaders } from '@angular/common/http';
3
- import { Observable } from 'rxjs/Observable';
4
- import { Product } from '../models/product.model';
5
- import { environment } from '../../../../environments/environment';
6
- import { delay } from 'rxjs/operators';
7
-
8
- @Injectable()
9
- export class ProductsService {
10
- constructor(protected http: HttpClient) {
11
- }
12
-
13
- loadProducts(): Observable<any> {
14
- return this.http.get(environment.apiBaseUrl + '/products').pipe(delay(100));
15
- }
16
-
17
- deleteProduct(id: number) {
18
- return this.http.delete(environment.apiBaseUrl + '/product/delete/' + id );
19
- }
20
-
21
- addProduct(item: Product): Observable<Product> {
22
- return this.http.post(environment.apiBaseUrl + '/product', item);
23
- }
24
-
25
- updateProduct(item: Product): Observable<Product> {
26
- return this.http.post(environment.apiBaseUrl + '/product', item);
27
- }
28
-
29
- }
@@ -1,17 +0,0 @@
1
- // used by serve / when no configuration is provided on the build script
2
- // run npm run build
3
-
4
- export const environment = {
5
- production: false,
6
- enableDevToolRedux: true,
7
- apiBaseUrl: 'http://localhost:8000/api',
8
- };
9
-
10
- /*
11
- * For easier debugging in development mode, you can import the following file
12
- * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.
13
- *
14
- * This import should be commented out in production mode because it will have a negative impact
15
- * on performance if an error is thrown.
16
- */
17
- // import 'zone.js/dist/zone-error'; // Included with Angular CLI.