import { RouterModule, Routes } from '@angular/router';
import { NgBootstrapFormValidationModule } from 'ng-bootstrap-form-validation';
+import { ButtonsModule } from 'ngx-bootstrap/buttons';
import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
import { PopoverModule } from 'ngx-bootstrap/popover';
import { TabsModule } from 'ngx-bootstrap/tabs';
@NgModule({
imports: [
BsDropdownModule.forRoot(),
+ ButtonsModule.forRoot(),
CommonModule,
FormsModule,
PopoverModule.forRoot(),
[messages]="messages"></cd-select-badges>
</span>
</div>
+ </div>
+ <!-- Enabled -->
+ <div class="form-group row" *ngIf="!isCurrentUser()">
+ <label class="col-sm-3 col-form-label"
+ i18n>Enabled</label>
+ <div class="col-sm-9">
+ <div class="btn-group"
+ btnRadioGroup
+ formControlName="enabled">
+ <label [btnRadio]="true"
+ class="btn btn-primary"
+ tabindex="0"
+ role="button">Enabled</label>
+ <label [btnRadio]="false"
+ class="btn btn-primary"
+ tabindex="0"
+ role="button">Disabled</label>
+ </div>
+ </div>
</div>
</div>
import { Router, Routes } from '@angular/router';
import { RouterTestingModule } from '@angular/router/testing';
+import { ButtonsModule } from 'ngx-bootstrap/buttons';
import { BsModalService } from 'ngx-bootstrap/modal';
import { ToastrModule } from 'ngx-toastr';
import { of } from 'rxjs';
ReactiveFormsModule,
ComponentsModule,
ToastrModule.forRoot(),
- SharedModule
+ SharedModule,
+ ButtonsModule.forRoot()
],
declarations: [UserFormComponent, FakeComponent],
providers: i18nProviders
password: 'pass0',
name: 'User 0',
email: 'user0@email.com',
- roles: ['administrator']
+ roles: ['administrator'],
+ enabled: true
};
formHelper.setMultipleValues(user);
formHelper.setValue('confirmpassword', user.password);
password: undefined,
name: 'User 1',
email: 'user1@email.com',
- roles: ['administrator']
+ roles: ['administrator'],
+ enabled: true
};
const roles = [
{
password: '',
name: 'User 1',
email: 'user1@email.com',
- roles: ['administrator']
+ roles: ['administrator'],
+ enabled: true
});
userReq.flush({});
expect(router.navigate).toHaveBeenCalledWith(['/user-management/users']);
email: new FormControl('', {
validators: [Validators.email]
}),
- roles: new FormControl([])
+ roles: new FormControl([]),
+ enabled: new FormControl(true, {
+ validators: [Validators.required]
+ })
},
{
validators: [CdValidators.match('password', 'confirmpassword')]
}
setResponse(response: UserFormModel) {
- ['username', 'name', 'email', 'roles'].forEach((key) =>
+ ['username', 'name', 'email', 'roles', 'enabled'].forEach((key) =>
this.userForm.get(key).setValue(response[key])
);
}
getRequest(): UserFormModel {
const userFormModel = new UserFormModel();
- ['username', 'password', 'name', 'email', 'roles'].forEach(
+ ['username', 'password', 'name', 'email', 'roles', 'enabled'].forEach(
(key) => (userFormModel[key] = this.userForm.get(key).value)
);
return userFormModel;
}
}
- private isCurrentUser(): boolean {
+ public isCurrentUser(): boolean {
return this.authStorageService.getUsername() === this.userForm.getValue('username');
}
name: string;
email: string;
roles: Array<string>;
+ enabled: boolean;
}
{{ role }}{{ !isLast ? ", " : "" }}
</span>
</ng-template>
+
+<ng-template #userEnabledTpl
+ let-value="value">
+ <span>{{ value | booleanText }}</span>
+</ng-template>
export class UserListComponent implements OnInit {
@ViewChild('userRolesTpl')
userRolesTpl: TemplateRef<any>;
+ @ViewChild('userEnabledTpl')
+ userEnabledTpl: TemplateRef<any>;
permission: Permission;
tableActions: CdTableAction[];
prop: 'roles',
flexGrow: 1,
cellTemplate: this.userRolesTpl
+ },
+ {
+ name: this.i18n('Enabled'),
+ prop: 'enabled',
+ flexGrow: 1,
+ cellTemplate: this.userEnabledTpl
}
];
}