@eui/cli 21.0.0-alpha.9 → 21.0.0-next.2
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/README.md +1 -1
- package/bin/eui-cli.js +61 -41
- package/bin/scripts/build-app.js +12 -0
- package/bin/scripts/lint-app.js +22 -0
- package/bin/scripts/new.js +39 -0
- package/bin/scripts/serve-app.js +12 -0
- package/lib/app-utils/build.js +176 -0
- package/lib/app-utils/projects.js +41 -0
- package/lib/app-utils/serve.js +78 -0
- package/lib/build.js +14 -39
- package/lib/cli.js +22 -5
- package/lib/config.js +1 -0
- package/lib/generators.js +5 -8
- package/lib/install.js +7 -7
- package/lib/post-build.js +1 -3
- package/lib/skeletons/_angular/base/angular.json +2 -31
- package/lib/skeletons/_angular/base/package.json +24 -23
- package/lib/skeletons/_angular/base/src/app/app.component.spec.ts +2 -2
- package/lib/skeletons/_angular/base/src/app/app.component.ts +2 -2
- package/lib/skeletons/_angular/base/src/app/features/module2/module2.component.ts +1 -1
- package/lib/skeletons/_angular/base/src/karma.conf.js +42 -2
- package/lib/skeletons/_angular/base/src/tsconfig.spec.json +1 -5
- package/lib/skeletons/_angular/base/tsconfig.json +1 -1
- package/lib/skeletons/_angular/base-mobile/package.json +4 -4
- package/lib/skeletons/_angular/base-mobile/tsconfig.json +27 -0
- package/lib/skeletons/_angular/options/ecl-ec/src/app/app.component.ts +16 -16
- package/lib/skeletons/_angular/options/ecl-ec/src/app/features/home/home.component.ts +4 -4
- package/lib/skeletons/_angular/options/ecl-eu/src/app/app.component.ts +16 -16
- package/lib/skeletons/_angular/options/ecl-eu/src/app/features/home/home.component.ts +4 -4
- package/lib/skeletons/_angular/options/ecl-eu/src/app/shared/shared.module.ts +1 -5
- package/lib/skeletons/_angular/options/pnpm/package.json +72 -0
- package/lib/utils.js +204 -0
- package/package.json +10 -13
- package/.version.properties +0 -1
- package/lib/skeletons/_angular/base/.euirc.json +0 -8
- package/lib/skeletons/web-symfony/myapp-web/angular.json +0 -169
- package/lib/skeletons/web-symfony/myapp-web/package.json +0 -23
- package/lib/skeletons/web-symfony/myapp-web/src/app/app-routing.module.ts +0 -18
- package/lib/skeletons/web-symfony/myapp-web/src/app/app.component.ts +0 -77
- package/lib/skeletons/web-symfony/myapp-web/src/app/features/products/components/products.component.html +0 -160
- 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 +0 -104
- package/lib/skeletons/web-symfony/myapp-web/src/app/features/products/models/product.model.ts +0 -6
- package/lib/skeletons/web-symfony/myapp-web/src/app/features/products/products-routing.module.ts +0 -16
- package/lib/skeletons/web-symfony/myapp-web/src/app/features/products/products.module.ts +0 -16
- package/lib/skeletons/web-symfony/myapp-web/src/app/features/products/services/products.service.ts +0 -29
- package/lib/skeletons/web-symfony/myapp-web/src/environments/environment.ts +0 -17
- package/lib/skeletons/web-symfony/myapp-web-rest/.env +0 -28
- package/lib/skeletons/web-symfony/myapp-web-rest/bin/console +0 -42
- package/lib/skeletons/web-symfony/myapp-web-rest/composer.json +0 -67
- package/lib/skeletons/web-symfony/myapp-web-rest/composer.lock +0 -3572
- package/lib/skeletons/web-symfony/myapp-web-rest/config/bootstrap.php +0 -21
- package/lib/skeletons/web-symfony/myapp-web-rest/config/bundles.php +0 -12
- 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 +0 -19
- package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/dev/routing.yaml +0 -3
- package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/doctrine.yaml +0 -29
- package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/doctrine_migrations.yaml +0 -5
- package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/framework.yaml +0 -17
- package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/prod/doctrine.yaml +0 -32
- package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/routing.yaml +0 -4
- package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/sensio_framework_extra.yaml +0 -3
- package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/test/framework.yaml +0 -4
- package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/test/routing.yaml +0 -3
- package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/twig.yaml +0 -4
- package/lib/skeletons/web-symfony/myapp-web-rest/config/routes/annotations.yaml +0 -3
- package/lib/skeletons/web-symfony/myapp-web-rest/config/routes/dev/twig.yaml +0 -3
- package/lib/skeletons/web-symfony/myapp-web-rest/config/routes.yaml +0 -3
- package/lib/skeletons/web-symfony/myapp-web-rest/config/services.yaml +0 -27
- package/lib/skeletons/web-symfony/myapp-web-rest/public/index.php +0 -27
- package/lib/skeletons/web-symfony/myapp-web-rest/src/Controller/ProductController.php +0 -196
- package/lib/skeletons/web-symfony/myapp-web-rest/src/Entity/Product.php +0 -99
- package/lib/skeletons/web-symfony/myapp-web-rest/src/Kernel.php +0 -53
- package/lib/skeletons/web-symfony/myapp-web-rest/src/Migrations/Version20190604101623.php +0 -31
- package/lib/skeletons/web-symfony/myapp-web-rest/src/Migrations/Version20190604101638.php +0 -35
- package/lib/skeletons/web-symfony/myapp-web-rest/src/Repository/ProductRepository.php +0 -51
- package/lib/skeletons/web-symfony/myapp-web-rest/symfony.lock +0 -274
- package/lib/skeletons/web-symfony/myapp-web-rest/templates/base.html.twig +0 -12
- package/lib/skeletons/web-symfony/myapp-web-rest/templates/lucky/number.html.twig +0 -1
- package/lib/skeletons/web-symfony/myapp-web-rest/templates/product/index.html.twig +0 -20
|
@@ -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
|
-
|
|
File without changes
|
|
@@ -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
|
-
}
|
package/lib/skeletons/web-symfony/myapp-web/src/app/features/products/products-routing.module.ts
DELETED
|
@@ -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
|
-
}
|
package/lib/skeletons/web-symfony/myapp-web/src/app/features/products/services/products.service.ts
DELETED
|
@@ -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.
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
# In all environments, the following files are loaded if they exist,
|
|
2
|
-
# the later taking precedence over the former:
|
|
3
|
-
#
|
|
4
|
-
# * .env contains default values for the environment variables needed by the app
|
|
5
|
-
# * .env.local uncommitted file with local overrides
|
|
6
|
-
# * .env.$APP_ENV committed environment-specific defaults
|
|
7
|
-
# * .env.$APP_ENV.local uncommitted environment-specific overrides
|
|
8
|
-
#
|
|
9
|
-
# Real environment variables win over .env files.
|
|
10
|
-
#
|
|
11
|
-
# DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR IN ANY OTHER COMMITTED FILES.
|
|
12
|
-
#
|
|
13
|
-
# Run "composer dump-env prod" to compile .env files for production use (requires symfony/flex >=1.2).
|
|
14
|
-
# https://symfony.com/doc/current/best_practices/configuration.html#infrastructure-related-configuration
|
|
15
|
-
|
|
16
|
-
###> symfony/framework-bundle ###
|
|
17
|
-
APP_ENV=dev
|
|
18
|
-
APP_SECRET=0a797de827418746fe7e52e9e9f0d4f3
|
|
19
|
-
#TRUSTED_PROXIES=127.0.0.1,127.0.0.2
|
|
20
|
-
#TRUSTED_HOSTS='^localhost|example\.com$'
|
|
21
|
-
###< symfony/framework-bundle ###
|
|
22
|
-
|
|
23
|
-
###> doctrine/doctrine-bundle ###
|
|
24
|
-
# Format described at http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
|
|
25
|
-
# For an SQLite database, use: "sqlite:///%kernel.project_dir%/var/data.db"
|
|
26
|
-
# Configure your db driver and server_version in config/packages/doctrine.yaml
|
|
27
|
-
DATABASE_URL=mysql://root:@127.0.0.1:3306/db_test
|
|
28
|
-
###< doctrine/doctrine-bundle ###
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env php
|
|
2
|
-
<?php
|
|
3
|
-
|
|
4
|
-
use App\Kernel;
|
|
5
|
-
use Symfony\Bundle\FrameworkBundle\Console\Application;
|
|
6
|
-
use Symfony\Component\Console\Input\ArgvInput;
|
|
7
|
-
use Symfony\Component\Debug\Debug;
|
|
8
|
-
|
|
9
|
-
if (false === in_array(\PHP_SAPI, ['cli', 'phpdbg', 'embed'], true)) {
|
|
10
|
-
echo 'Warning: The console should be invoked via the CLI version of PHP, not the '.\PHP_SAPI.' SAPI'.\PHP_EOL;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
set_time_limit(0);
|
|
14
|
-
|
|
15
|
-
require dirname(__DIR__).'/vendor/autoload.php';
|
|
16
|
-
|
|
17
|
-
if (!class_exists(Application::class)) {
|
|
18
|
-
throw new RuntimeException('You need to add "symfony/framework-bundle" as a Composer dependency.');
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
$input = new ArgvInput();
|
|
22
|
-
if (null !== $env = $input->getParameterOption(['--env', '-e'], null, true)) {
|
|
23
|
-
putenv('APP_ENV='.$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = $env);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
if ($input->hasParameterOption('--no-debug', true)) {
|
|
27
|
-
putenv('APP_DEBUG='.$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = '0');
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
require dirname(__DIR__).'/config/bootstrap.php';
|
|
31
|
-
|
|
32
|
-
if ($_SERVER['APP_DEBUG']) {
|
|
33
|
-
umask(0000);
|
|
34
|
-
|
|
35
|
-
if (class_exists(Debug::class)) {
|
|
36
|
-
Debug::enable();
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
|
|
41
|
-
$application = new Application($kernel);
|
|
42
|
-
$application->run($input);
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"type": "project",
|
|
3
|
-
"license": "proprietary",
|
|
4
|
-
"require": {
|
|
5
|
-
"php": "^7.1.3",
|
|
6
|
-
"ext-ctype": "*",
|
|
7
|
-
"ext-iconv": "*",
|
|
8
|
-
"doctrine/annotations": "^1.6",
|
|
9
|
-
"sensio/framework-extra-bundle": "^5.3",
|
|
10
|
-
"symfony/console": "4.2.*",
|
|
11
|
-
"symfony/dotenv": "4.2.*",
|
|
12
|
-
"symfony/flex": "^1.1",
|
|
13
|
-
"symfony/framework-bundle": "4.2.*",
|
|
14
|
-
"symfony/orm-pack": "^1.0",
|
|
15
|
-
"symfony/twig-bundle": "4.2.*",
|
|
16
|
-
"symfony/yaml": "4.2.*"
|
|
17
|
-
},
|
|
18
|
-
"config": {
|
|
19
|
-
"preferred-install": {
|
|
20
|
-
"*": "dist"
|
|
21
|
-
},
|
|
22
|
-
"sort-packages": true
|
|
23
|
-
},
|
|
24
|
-
"autoload": {
|
|
25
|
-
"psr-4": {
|
|
26
|
-
"App\\": "src/"
|
|
27
|
-
}
|
|
28
|
-
},
|
|
29
|
-
"autoload-dev": {
|
|
30
|
-
"psr-4": {
|
|
31
|
-
"App\\Tests\\": "tests/"
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
|
-
"replace": {
|
|
35
|
-
"paragonie/random_compat": "2.*",
|
|
36
|
-
"symfony/polyfill-ctype": "*",
|
|
37
|
-
"symfony/polyfill-iconv": "*",
|
|
38
|
-
"symfony/polyfill-php71": "*",
|
|
39
|
-
"symfony/polyfill-php70": "*",
|
|
40
|
-
"symfony/polyfill-php56": "*"
|
|
41
|
-
},
|
|
42
|
-
"scripts": {
|
|
43
|
-
"auto-scripts": {
|
|
44
|
-
"cache:clear": "symfony-cmd",
|
|
45
|
-
"assets:install %PUBLIC_DIR%": "symfony-cmd"
|
|
46
|
-
},
|
|
47
|
-
"post-install-cmd": [
|
|
48
|
-
"@auto-scripts"
|
|
49
|
-
],
|
|
50
|
-
"post-update-cmd": [
|
|
51
|
-
"@auto-scripts"
|
|
52
|
-
]
|
|
53
|
-
},
|
|
54
|
-
"conflict": {
|
|
55
|
-
"symfony/symfony": "*"
|
|
56
|
-
},
|
|
57
|
-
"extra": {
|
|
58
|
-
"symfony": {
|
|
59
|
-
"allow-contrib": false,
|
|
60
|
-
"require": "4.2.*"
|
|
61
|
-
}
|
|
62
|
-
},
|
|
63
|
-
"require-dev": {
|
|
64
|
-
"symfony/maker-bundle": "^1.11",
|
|
65
|
-
"symfony/web-server-bundle": "4.2.*"
|
|
66
|
-
}
|
|
67
|
-
}
|