Skip to content

Commit 76b3120

Browse files
committed
Create Role is done
1 parent 9573290 commit 76b3120

File tree

28 files changed

+421
-236
lines changed

28 files changed

+421
-236
lines changed

config/development.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"api": {
3-
"baseUrl": "http://127.0.0.1:8000/api/v1/"
3+
"baseUrl": "http://192.192.7.224:8000/api/v1/"
44
},
55

66
"paths": {

i18n/en.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
"lbl.off": "Off",
2525
"lbl.createdOn": "Created On",
2626
"lbl.updatedOn": "Updated On",
27+
"lbl.selectAll": "Select All",
28+
"lbl.unselectAll": "UnSelect All",
2729

2830
"ErrorNotificationTitle": "Error!",
2931
"SuccessNotificationTitle": "Success!",
@@ -84,7 +86,9 @@
8486
"accessPermission.deleteSingleConfirmText": "This Permission will be deleted permanently and cannot be undone",
8587
"accessPermission.deletedSuccessfully": "Permission deleted successfully",
8688
"accessPermission.createdSuccessfully": "Permission created successfully",
87-
"accessPermission.updatedSuccessfully": "Permission updated successfully"
89+
"accessPermission.updatedSuccessfully": "Permission updated successfully",
90+
"accessPermission.selectPermissions": "Select Permissions",
91+
"accessPermission.searchPermissions": "Search Permissions"
8892
,
8993
"auth.invalidCredentials": "Invalid Email Or Password",
9094
"auth.loginSuccessMessage": "Login Successfully. Redirecting To Admin",

i18n/en/admin/shared.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
"lbl.off": "Off",
2525
"lbl.createdOn": "Created On",
2626
"lbl.updatedOn": "Updated On",
27+
"lbl.selectAll": "Select All",
28+
"lbl.unselectAll": "UnSelect All",
2729

2830
"ErrorNotificationTitle": "Error!",
2931
"SuccessNotificationTitle": "Success!",

i18n/en/admin/users.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,5 +50,7 @@
5050
"accessPermission.deleteSingleConfirmText": "This Permission will be deleted permanently and cannot be undone",
5151
"accessPermission.deletedSuccessfully": "Permission deleted successfully",
5252
"accessPermission.createdSuccessfully": "Permission created successfully",
53-
"accessPermission.updatedSuccessfully": "Permission updated successfully"
53+
"accessPermission.updatedSuccessfully": "Permission updated successfully",
54+
"accessPermission.selectPermissions": "Select Permissions",
55+
"accessPermission.searchPermissions": "Search Permissions"
5456
}

src/app/admin/access/permission/services/permission-api-client.service.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,44 +21,44 @@ export class PermissionApiClient extends HttpService {
2121
/**
2222
* Retrieves all permissions
2323
*/
24-
@GET("permission")
24+
@GET("permissions")
2525
@Adapter(PermissionService.gridAdapter)
2626
public all(): Observable<any> { return null; };
2727

2828
/**
2929
* Get permission by ID
3030
*/
31-
@GET("permission/{id}")
31+
@GET("permissions/{id}")
3232
@Adapter(PermissionService.permissionDetailsAdapter)
3333
public get(@Path("id") id: number): Observable<any> { return null; };
3434

3535
/**
3636
* Create new permission
3737
*/
38-
@POST("permission")
38+
@POST("permissions")
3939
@Adapter(PermissionService.createPermissionAdapter)
4040
@Produces(MediaType.FORM_DATA)
4141
public create(@Body form: PermissionForm): Observable<any> { return null; };
4242

4343
/**
4444
* Update new permission
4545
*/
46-
@PUT("permission/{id}")
46+
@PUT("permissions/{id}")
4747
@Adapter(PermissionService.createPermissionAdapter)
4848
@Produces(MediaType.FORM_DATA)
4949
public update(@Body form: PermissionForm, @Path("id") id: number): Observable<any> { return null; };
5050

5151
/**
5252
* Delete permission by ID
5353
*/
54-
@DELETE("permission/{id}")
54+
@DELETE("permissions/{id}")
5555
@Adapter(PermissionService.permissionDetailsAdapter)
5656
public deleteRecord(@Path("id") id: number): Observable<any> { return null; };
5757

5858
/**
5959
* Delete permission by ID
6060
*/
61-
@POST("permission/delete-all")
61+
@POST("permissions/delete-all")
6262
@Produces(MediaType.FORM_DATA)
6363
@Adapter(PermissionService.permissionDetailsAdapter)
6464
public deleteMultipleRecords(@Body ids: {ids: Array<number>}): Observable<any> { return null; };

src/app/admin/access/permission/store/reducers/index.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
import {
22
ActionReducerMap,
33
createSelector,
4-
createFeatureSelector
5-
} from "@ngrx/store";
4+
createFeatureSelector,
5+
combineReducers
6+
} from "@ngrx/store";
67
import * as fromLoadPermissions from '../reducers/load-permissions.reducer';
78
import * as fromCreatePermission from '../reducers/create-permission.reducer';
89
import * as fromUpdatePermission from '../reducers/update-permission.reducer';
910
import * as fromDeletePermission from '../reducers/delete-permission.reducer';
1011
import * as fromViewPermission from '../reducers/view-permission.reducer';
12+
import { compose } from "@ngrx/core/compose";
1113

1214
/**
1315
* Access permission state
@@ -31,6 +33,8 @@ export const reducers: ActionReducerMap<AccessPermissionState> = {
3133
delete: fromDeletePermission.reducer
3234
}
3335

36+
export const combinedReducers = compose(combineReducers)(reducers);
37+
3438
// Main Access Permission State
3539
export const getAccessPermissionState = createFeatureSelector<AccessPermissionState>('accessPermission');
3640

src/app/admin/access/role/containers/create-role/create-role.container.html

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<div class="card">
2-
<form [formGroup]="form" novalidate (ngSubmit)="onSubmit($event, form.value)">
2+
<form [formGroup]="roleForm" novalidate (ngSubmit)="onSubmit($event, roleForm.value)">
33
<div class="card-header">
44
<i class="fa fa-tag"></i> {{'accessRole.heading.create' | translate}}
55
</div>
@@ -29,7 +29,7 @@
2929
<div class="col-md-9">
3030
<div class="input-group">
3131
<input
32-
type="text"
32+
type="number"
3333
id="sort"
3434
name="sort"
3535
class="form-control"
@@ -53,22 +53,19 @@
5353
</div>
5454
</div>
5555
<div class="form-group row">
56-
<label class="col-md-3 col-form-label" for="text-input">{{'accessRole.lbl.associatedPermissions' | translate}}</label>
57-
<div class="col-md-9 centered-checkbox">
58-
<angular2-multiselect [data]="itemList" [(ngModel)]="selectedItems"
59-
[settings]="settings"
60-
(onSelect)="onItemSelect($event)"
61-
(onDeSelect)="OnItemDeSelect($event)"
62-
(onSelectAll)="onSelectAll($event)"
63-
(onDeSelectAll)="onDeSelectAll($event)" formControlName="permissions">
64-
</angular2-multiselect>
65-
</div>
56+
<label class="col-md-3 col-form-label" for="text-input">{{'accessRole.lbl.associatedPermissions' | translate}}</label>
57+
<div class="col-md-9 centered-checkbox">
58+
<angular2-multiselect [data]="allPermissions" [(ngModel)]="selectedPermissions"
59+
[settings]="multiselectSettings"
60+
formControlName="permissions">
61+
</angular2-multiselect>
6662
</div>
63+
</div>
6764
</div>
6865
</div>
6966
</div>
7067
<div class="card-footer">
71-
<button class="btn btn-outline-primary px-3" [disabled]="form.invalid" type="submit">
68+
<button class="btn btn-outline-primary px-3" [disabled]="roleForm.invalid" type="submit">
7269
<i [hidden]="accessRoleSandbox.createRoleLoading$ | async" class='fa fa-save'></i>
7370
<i [hidden]="!(accessRoleSandbox.createRoleLoading$ | async)" class='fa fa-circle-o-notch fa-spin'></i>
7471
{{'btn.lbl.submit' | translate}}

src/app/admin/access/role/containers/create-role/create-role.container.ts

Lines changed: 24 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,10 @@ import {
22
Component,
33
OnDestroy,
44
OnInit,
5+
Injector,
56
ChangeDetectionStrategy
67
} from '@angular/core';
7-
import {
8-
FormBuilder,
9-
FormGroup,
10-
Validators
11-
} from "@angular/forms";
12-
import { AccessRoleSandbox } from '../../role.sandbox';
8+
import { RoleFormContainer } from '../form/role.form';
139
import RoleForm from '../../models/role-form.model';
1410

1511
@Component({
@@ -18,69 +14,28 @@ import RoleForm from '../../models/role-form.model';
1814
styleUrls: ['./create-role.container.scss'],
1915
changeDetection: ChangeDetectionStrategy.OnPush
2016
})
21-
export class CreateRoleContainer implements OnInit {
22-
23-
/**
24-
* Form Group
25-
*
26-
* @type {FormGroup}
27-
* @memberof CreateRoleContainer
28-
*/
29-
public form: FormGroup;
30-
31-
itemList = [];
32-
selectedItems = [];
33-
settings = {};
34-
17+
export class CreateRoleContainer extends RoleFormContainer implements OnInit {
18+
3519
/**
36-
* Creates an instance of CreateRoleContainer.
20+
* Creates an instance of UpdateRoleContainer.
3721
*
38-
* @param {AccessRoleSandbox} accessRoleSandbox
39-
* @param {FormBuilder} formBuilder
40-
* @memberof CreateRoleContainer
22+
* @param {Injector} injector
23+
* @memberof UpdateRoleContainer
4124
*/
4225
constructor(
43-
public accessRoleSandbox: AccessRoleSandbox,
44-
private formBuilder: FormBuilder
45-
) { }
26+
injector: Injector
27+
) {
28+
super(injector);
29+
}
4630

4731
/**
4832
* On Init container
4933
*
5034
* @memberof CreateRoleContainer
5135
*/
5236
ngOnInit() {
53-
this.form = this.formBuilder.group({
54-
name: ["", Validators.required],
55-
sort: ["", Validators.required],
56-
status: ["", Validators.required],
57-
permissions: [[], Validators.required]
58-
});
59-
60-
this.itemList = [
61-
{ "id": 1, "itemName": "Angular" },
62-
{ "id": 2, "itemName": "JavaScript" },
63-
{ "id": 3, "itemName": "HTML" },
64-
{ "id": 4, "itemName": "CSS" },
65-
{ "id": 5, "itemName": "ReactJS" },
66-
{ "id": 6, "itemName": "HTML5" },
67-
{ "id": 1, "itemName": "Angular" },
68-
{ "id": 2, "itemName": "JavaScript" },
69-
{ "id": 3, "itemName": "HTML" },
70-
{ "id": 4, "itemName": "CSS" },
71-
{ "id": 5, "itemName": "ReactJS" },
72-
{ "id": 6, "itemName": "HTML5" }
73-
];
74-
this.selectedItems = [{ "id": 2, "itemName": "JavaScript" }];
75-
this.settings = {
76-
text: "Select Permissions",
77-
selectAllText: 'Select All',
78-
unSelectAllText: 'UnSelect All',
79-
classes: "custom-multiselect-checkbox-dp",
80-
enableSearchFilter: true,
81-
searchPlaceholderText: 'Search Permissions...',
82-
badgeShowLimit: 5
83-
};
37+
this.registerSubscriptions();
38+
this.accessPermissionSandbox.getPermissions();
8439
}
8540

8641
/**
@@ -91,9 +46,15 @@ export class CreateRoleContainer implements OnInit {
9146
* @memberof CreateRoleContainer
9247
*/
9348
public onSubmit(event: Event, form: any) {
94-
const roleForm = new RoleForm(form);
95-
96-
this.accessRoleSandbox.createRole(roleForm);
49+
const formData = {
50+
name: form.name,
51+
sort: form.sort,
52+
status: form.status,
53+
permissions: this.getFormPermissions(),
54+
associated_permissions: this.getFormPermissions()
55+
}
56+
57+
this.accessRoleSandbox.createRole(new RoleForm(formData));
9758
}
9859

9960
/**
@@ -102,24 +63,8 @@ export class CreateRoleContainer implements OnInit {
10263
* @memberof CreateRoleContainer
10364
*/
10465
public onNgDestroy() {
66+
this.routerSubscription.unsubscribe();
10567
this.accessRoleSandbox.unregisterEvents();
106-
}
107-
108-
public onItemSelect(item: any) {
109-
console.log(item);
110-
console.log(this.selectedItems);
111-
}
112-
113-
public OnItemDeSelect(item: any) {
114-
console.log(item);
115-
console.log(this.selectedItems);
116-
}
117-
118-
public onSelectAll(items: any) {
119-
console.log(items);
120-
}
121-
122-
public onDeSelectAll(items: any) {
123-
console.log(items);
68+
this.accessPermissionSandbox.unregisterEvents();
12469
}
12570
}

0 commit comments

Comments
 (0)