Browse Source

Update policies, set status from enum.

pull/92/head
Mahmut Gundogdu 5 years ago
parent
commit
b8d0820a52
  1. 6
      apps/angular/projects/ordering/config/src/enums/policy-names.ts
  2. 33
      apps/angular/projects/ordering/src/lib/components/order-status/order-status.component.ts
  3. 31
      apps/angular/projects/ordering/src/lib/proxy/generate-proxy.json
  4. 1
      apps/angular/projects/ordering/src/lib/proxy/orders/index.ts
  5. 4
      apps/angular/projects/ordering/src/lib/proxy/orders/models.ts
  6. 10
      apps/angular/projects/ordering/src/lib/proxy/orders/order-status.enum.ts
  7. 9
      apps/angular/projects/ordering/src/ordering.module.ts
  8. 16
      apps/angular/projects/ordering/src/pages/orders/orders.component.html
  9. 2
      apps/angular/projects/ordering/src/pages/orders/orders.component.ts
  10. 16
      apps/angular/projects/ordering/src/pages/orders/orders.module.ts

6
apps/angular/projects/ordering/config/src/enums/policy-names.ts

@ -1,6 +1,6 @@
export const enum eOrderingPolicyNames { export const enum eOrderingPolicyNames {
ordering = 'OrderingService.Orders', ordering = 'OrderingService.Orders',
detail = 'OrderingService.Orders.Orders', detail = 'OrderingService.Orders',
setAsShipped = 'OrderingService.Orders.SetAsShipped', setAsShipped = 'OrderingService.SetAsShipped',
setAsCancelled = 'OrderingService.Products.SetAsCancelled', setAsCancelled = 'OrderingService.SetAsCancelled',
} }

33
apps/angular/projects/ordering/src/lib/components/order-status/order-status.component.ts

@ -0,0 +1,33 @@
import {ChangeDetectionStrategy, Component, Input} from '@angular/core';
import {orderStatusOptions} from '../../proxy/orders';
@Component({
selector: 'lib-order-status',
template: `
{{statusText}}
`,
changeDetection: ChangeDetectionStrategy.OnPush
})
export class OrderStatusComponent {
@Input()
set id(v: number) {
this.statusText = this.idToText(v);
}
options = orderStatusOptions;
statusText: string;
private idToText(id: number): string | null {
console.log('hello', new Date().toLocalISOString())
const item = this.options.find(x => x.value === id);
if (!item) {
return null;
}
return item.key;
}
}

31
apps/angular/projects/ordering/src/lib/proxy/generate-proxy.json

@ -212,7 +212,7 @@
"type": "System.Collections.Generic.List<EShopOnAbp.OrderingService.Orders.OrderDto>", "type": "System.Collections.Generic.List<EShopOnAbp.OrderingService.Orders.OrderDto>",
"typeSimple": "[EShopOnAbp.OrderingService.Orders.OrderDto]" "typeSimple": "[EShopOnAbp.OrderingService.Orders.OrderDto]"
}, },
"allowAnonymous": null, "allowAnonymous": false,
"implementFrom": "EShopOnAbp.OrderingService.Orders.IOrderAppService" "implementFrom": "EShopOnAbp.OrderingService.Orders.IOrderAppService"
}, },
"GetListPagedAsyncByInput": { "GetListPagedAsyncByInput": {
@ -1976,18 +1976,11 @@
"typeSimple": "number", "typeSimple": "number",
"isRequired": false "isRequired": false
}, },
{
"name": "OrderStatusId",
"jsonName": null,
"type": "System.Int32",
"typeSimple": "number",
"isRequired": false
},
{ {
"name": "OrderStatus", "name": "OrderStatus",
"jsonName": null, "jsonName": null,
"type": "System.String", "type": "EShopOnAbp.OrderingService.Orders.OrderStatus",
"typeSimple": "string", "typeSimple": "EShopOnAbp.OrderingService.Orders.OrderStatus",
"isRequired": false "isRequired": false
}, },
{ {
@ -2046,6 +2039,24 @@
"genericArguments": null, "genericArguments": null,
"properties": [] "properties": []
}, },
"EShopOnAbp.OrderingService.Orders.OrderStatus": {
"baseType": "System.Enum",
"isEnum": true,
"enumNames": [
"Placed",
"Paid",
"Shipped",
"Cancelled"
],
"enumValues": [
0,
1,
2,
3
],
"genericArguments": null,
"properties": null
},
"EShopOnAbp.OrderingService.Orders.BuyerDto": { "EShopOnAbp.OrderingService.Orders.BuyerDto": {
"baseType": "Volo.Abp.Application.Dtos.EntityDto<System.Guid>", "baseType": "Volo.Abp.Application.Dtos.EntityDto<System.Guid>",
"isEnum": false, "isEnum": false,

1
apps/angular/projects/ordering/src/lib/proxy/orders/index.ts

@ -1,2 +1,3 @@
export * from './models'; export * from './models';
export * from './order-status.enum';
export * from './order.service'; export * from './order.service';

4
apps/angular/projects/ordering/src/lib/proxy/orders/models.ts

@ -1,4 +1,5 @@
import type { EntityDto } from '@abp/ng.core'; import type { EntityDto } from '@abp/ng.core';
import type { OrderStatus } from './order-status.enum';
export interface BuyerDto extends EntityDto<string> { export interface BuyerDto extends EntityDto<string> {
name?: string; name?: string;
@ -30,8 +31,7 @@ export interface OrderCreateDto {
export interface OrderDto extends EntityDto<string> { export interface OrderDto extends EntityDto<string> {
orderDate?: string; orderDate?: string;
orderNo: number; orderNo: number;
orderStatusId: number; orderStatus: OrderStatus;
orderStatus?: string;
paymentMethod?: string; paymentMethod?: string;
buyer: BuyerDto; buyer: BuyerDto;
address: OrderAddressDto; address: OrderAddressDto;

10
apps/angular/projects/ordering/src/lib/proxy/orders/order-status.enum.ts

@ -0,0 +1,10 @@
import { mapEnumToOptions } from '@abp/ng.core';
export enum OrderStatus {
Placed = 0,
Paid = 1,
Shipped = 2,
Cancelled = 3,
}
export const orderStatusOptions = mapEnumToOptions(OrderStatus);

9
apps/angular/projects/ordering/src/ordering.module.ts

@ -1,13 +1,18 @@
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { OrderingRoutingModule } from './ordering-routing.module'; import { OrderingRoutingModule } from './ordering-routing.module';
import { OrderStatusComponent } from './lib/components/order-status/order-status.component';
@NgModule({ @NgModule({
declarations: [], declarations: [
OrderStatusComponent
],
imports: [ imports: [
OrderingRoutingModule OrderingRoutingModule
], ],
exports: [] exports: [
OrderStatusComponent
]
}) })
export class OrderingModule { export class OrderingModule {
} }

16
apps/angular/projects/ordering/src/pages/orders/orders.component.html

@ -13,7 +13,7 @@
<ngx-datatable [rows]="items" [count]="count" [list]="list" default> <ngx-datatable [rows]="items" [count]="count" [list]="list" default>
<!-- TODO: localize column headers --> <!-- TODO: localize column headers -->
<ngx-datatable-column name="" [sortable]='false' prop="id" > <ngx-datatable-column name="" [sortable]='false' prop="id" >
<ng-template let-id="value" let-row="row" ngx-datatable-cell-template> <ng-template let-row="row" ngx-datatable-cell-template>
<div ngbDropdown container="body" class="d-inline-block"> <div ngbDropdown container="body" class="d-inline-block">
<button <button
class="btn btn-primary btn-sm dropdown-toggle" class="btn btn-primary btn-sm dropdown-toggle"
@ -34,17 +34,17 @@
<button <button
class="dropdown-item" class="dropdown-item"
(click)='setAsShipped(row)' (click)='setAsShipped(row)'
*abpPermission='permissions.setAsCancelled' *abpPermission='permissions.setAsShipped'
> >
{{ 'OrderingService::Permission:Orders.SetAsCancelled' | abpLocalization }} {{ 'OrderingService::Permission:Orders.SetAsShipped' | abpLocalization }}
</button> </button>
<!-- Todo: Add permissions --> <!-- Todo: Add permissions -->
<button <button
class="dropdown-item" class="dropdown-item"
*abpPermission='permissions.setAsShipped' *abpPermission='permissions.setAsCancelled'
(click)='setAsCancelled(row)' (click)='setAsCancelled(row)'
> >
{{ 'OrderingService::Permission:Orders.SetAsShipped' | abpLocalization }} {{ 'OrderingService::Permission:Orders.SetAsCancelled' | abpLocalization }}
</button> </button>
</div> </div>
</div> </div>
@ -61,7 +61,11 @@
<span>{{ value | currency }}</span > <span>{{ value | currency }}</span >
</ng-template> </ng-template>
</ngx-datatable-column> </ngx-datatable-column>
<ngx-datatable-column [name]="'OrderingService::DisplayName:OrderStatus' | abpLocalization" prop="orderStatus"></ngx-datatable-column> <ngx-datatable-column [name]="'OrderingService::DisplayName:OrderStatus' | abpLocalization" prop="orderStatus">
<ng-template let-value="value" ngx-datatable-cell-template>
<lib-order-status [id]="value"></lib-order-status>
</ng-template>
</ngx-datatable-column>
</ngx-datatable> </ngx-datatable>
</div> </div>
</div> </div>

2
apps/angular/projects/ordering/src/pages/orders/orders.component.ts

@ -25,8 +25,10 @@ export class OrdersComponent implements OnInit {
setAsCancelled: eOrderingPolicyNames.setAsCancelled, setAsCancelled: eOrderingPolicyNames.setAsCancelled,
}; };
ngOnInit(): void { ngOnInit(): void {
console.log(this.permissions)
const ordersStreamCreator = query => this.service.getListPaged(query); const ordersStreamCreator = query => this.service.getListPaged(query);
this.list.hookToQuery(ordersStreamCreator).subscribe(response => { this.list.hookToQuery(ordersStreamCreator).subscribe(response => {

16
apps/angular/projects/ordering/src/pages/orders/orders.module.ts

@ -8,6 +8,7 @@ import { CoreModule } from '@abp/ng.core';
import { OrderDetailComponent } from './order-detail/order-detail.component'; import { OrderDetailComponent } from './order-detail/order-detail.component';
import { OrderDetailItemComponent } from './order-detail/order-detail-item/order-detail-item.component'; import { OrderDetailItemComponent } from './order-detail/order-detail-item/order-detail-item.component';
import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';
import {OrderingModule} from "../../ordering.module";
@NgModule({ @NgModule({
@ -16,12 +17,13 @@ import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';
OrderDetailComponent, OrderDetailComponent,
OrderDetailItemComponent OrderDetailItemComponent
], ],
imports: [ imports: [
CommonModule, CommonModule,
NgbDropdownModule, NgbDropdownModule,
OrdersRoutingModule, OrdersRoutingModule,
ThemeSharedModule, ThemeSharedModule,
CoreModule, CoreModule,
] OrderingModule,
]
}) })
export class OrdersModule { } export class OrdersModule { }

Loading…
Cancel
Save