Advertisement
Guest User

Untitled

a guest
Jul 18th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.27 KB | None | 0 0
  1. <div class="row">
  2. <div class="col-12">
  3. <form [formGroup]="ipRangeForm">
  4. <div formArrayName="ipRanges">
  5. <div *ngFor="let ranges of ipRangeForms.controls; let i=index" [formGroupName]="i">
  6.  
  7. <div class="row mb-lg">
  8. <div class="col-6">
  9. <mat-card>
  10. <div class="row">
  11. <div class="col-5">
  12.  
  13. <mat-form-field style="width: 100%;">
  14. <label>
  15. <input matInput placeholder="{{ getTranslateKey('startRange.label') | translate }}" value="" formControlName="startingRange">
  16. </label>
  17. <mat-error *ngIf="ranges.get('startRange').invalid">
  18. <p>IP address is not valid.</p>
  19. </mat-error>
  20. </mat-form-field>
  21.  
  22. </div>
  23. <div class="col-5">
  24.  
  25. <mat-form-field style="width: 100%;">
  26. <label>
  27. <input matInput placeholder="{{ getTranslateKey('endRange.label') | translate }}" value="" formControlName="endingRange">
  28. </label>
  29. <mat-error *ngIf="ranges.get('endRange').invalid">
  30. <p>IP address is not valid.</p>
  31. </mat-error>
  32. </mat-form-field>
  33.  
  34. </div>
  35. <div class="col-2 remove-column">
  36. <button swui-core-button (click)="deleteRange(i)" class="mr-sm pd-zero"
  37. color="secondary" buttonStyle="link">
  38. {{ getTranslateKey('remove') | translate }}
  39. </button>
  40. </div>
  41. </div>
  42. </mat-card>
  43. </div>
  44. </div>
  45.  
  46.  
  47. </div>
  48. </div>
  49. </form>
  50. </div>
  51. </div>
  52.  
  53. export class SettingsComponent extends AbstractPageComponent implements OnInit {
  54.  
  55. ipRestrictionEnabled: boolean;
  56. ipRangeForm: FormGroup;
  57.  
  58. constructor(
  59. baseService: PageService, private formBuilder: FormBuilder, private settingsService: SettingsService
  60. ) {
  61. super(baseService);
  62. }
  63.  
  64. ngOnInit() {
  65. // this.ipRestrictionEnabled = false;
  66. this.ipRangeForm = this.formBuilder.group(
  67. {
  68. ipRanges: this.formBuilder.array([])
  69. }
  70. );
  71.  
  72. const stream = this.settingsService.getSettings();
  73.  
  74. stream.subscribe(val => {
  75. this.ipRestrictionEnabled = val.ipRestrictionEnabled;
  76. for (const i of val.ipRanges) {
  77. console.log(i.startRange, i.endRange);
  78. this.addSpecifiedRange(i.startRange, i.endRange);
  79. }
  80. });
  81. }
  82.  
  83. toggleIpRestriction(): void {
  84. this.ipRestrictionEnabled = !this.ipRestrictionEnabled;
  85. }
  86.  
  87. get ipRangeForms() {
  88. return this.ipRangeForm.get('ipRanges') as FormArray;
  89. }
  90.  
  91. addRange() {
  92. const ipRange = this.formBuilder.group({
  93. startingRange: ['',
  94. [
  95. Validators.required,
  96. // tslint:disable-next-line:max-line-length
  97. Validators.pattern('^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$')
  98. ]
  99. ],
  100. endingRange: ['',
  101. [
  102. Validators.required,
  103. // tslint:disable-next-line:max-line-length
  104. Validators.pattern('^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$')
  105. ]
  106. ]
  107. });
  108.  
  109. this.ipRangeForms.push(ipRange);
  110. }
  111.  
  112. addSpecifiedRange(startRange: string, endRange: string) {
  113. const ipRange = this.formBuilder.group({
  114. startingRange: [startRange,
  115. [
  116. Validators.required,
  117. // tslint:disable-next-line:max-line-length
  118. Validators.pattern('^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$')
  119. ]
  120. ],
  121. endingRange: [endRange,
  122. [
  123. Validators.required,
  124. // tslint:disable-next-line:max-line-length
  125. Validators.pattern('^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$')
  126. ]
  127. ]
  128. });
  129.  
  130. this.ipRangeForms.push(ipRange);
  131. }
  132.  
  133.  
  134. deleteRange(index) {
  135. this.ipRangeForms.removeAt(index);
  136. }
  137.  
  138. submitIpRanges() {
  139. console.log(this.ipRangeForms.getRawValue());
  140. }
  141.  
  142. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement