You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dlab.apache.org by dg...@apache.org on 2020/01/16 16:31:21 UTC

[incubator-dlab] 01/01: Default Changelist

This is an automated email from the ASF dual-hosted git repository.

dgnatyshyn pushed a commit to branch DLAB-1451
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git

commit 1269d9ead836399af02c47b9dc7d4a86b25e8f30
Author: Dmytro Gnatyshyn <di...@ukr.net>
AuthorDate: Thu Jan 16 18:30:43 2020 +0200

    Default Changelist
---
 .../management/endpoints/endpoints.component.html      | 12 +++++++++---
 .../management/endpoints/endpoints.component.ts        | 18 ++++++++++++++++--
 .../resources/webapp/src/app/core/util/patterns.ts     |  5 +++--
 3 files changed, 28 insertions(+), 7 deletions(-)

diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/endpoints/endpoints.component.html b/services/self-service/src/main/resources/webapp/src/app/administration/management/endpoints/endpoints.component.html
index c1171dd..58da8cd 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/endpoints/endpoints.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/endpoints/endpoints.component.html
@@ -34,20 +34,26 @@
                 <div class="control">
                   <input type="text" formControlName="name" placeholder="Enter endpoint name"
                     (blur)="generateEndpointTag($event)">
+                  <!--<span class="error" *ngIf="manageUsersForm?.controls['total'].hasError('overrun')">Total budget cannot be lower than a sum of users quotes</span>-->
                   <span class="error"
-                    *ngIf="!createEndpointForm?.controls.name.valid && createEndpointForm?.controls.name.touched">
+                    *ngIf="!createEndpointForm?.controls.name.valid && createEndpointForm?.controls.name.touched && !createEndpointForm?.controls['name'].hasError('isDuplicate')">
                     Endpoint name can only contain letters, numbers, hyphens and '_' but can not end with special
                     characters
                   </span>
+                  <span class="error"
+                        *ngIf="createEndpointForm?.controls['name'].hasError('isDuplicate')">
+                    This endpoint name already exists.
+                  </span>
                 </div>
               </div>
               <div class="control-group">
                 <label class="label">Endpoint url</label>
                 <div class="control">
                   <input type="text" formControlName="url" placeholder="Enter endpoint url">
+                  <span class="error" *ngIf="createEndpointForm?.controls['url'].hasError('isDuplicate')">This endpoint url already exists.</span>
                   <span class="error"
-                    *ngIf="!createEndpointForm?.controls.url.valid && createEndpointForm.controls.url.touched">
-                    Endpoint url should end with slash
+                        *ngIf="!createEndpointForm?.controls.url.valid && createEndpointForm.controls.url.touched && !createEndpointForm?.controls['url'].hasError('isDuplicate')">
+                    Please provide a valid endpoint url with slash on the end
                   </span>
                 </div>
               </div>
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/endpoints/endpoints.component.ts b/services/self-service/src/main/resources/webapp/src/app/administration/management/endpoints/endpoints.component.ts
index e263edc..d29a5d0 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/endpoints/endpoints.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/endpoints/endpoints.component.ts
@@ -97,8 +97,8 @@ export class EndpointsComponent implements OnInit {
 
   private initFormModel(): void {
     this.createEndpointForm = this._fb.group({
-      name: ['', Validators.compose([Validators.required, Validators.pattern(PATTERNS.namePattern)])],
-      url: ['', Validators.compose([Validators.required, Validators.pattern(PATTERNS.url)])],
+      name: ['', Validators.compose([Validators.required, Validators.pattern(PATTERNS.namePattern), this.validateName.bind(this)])],
+      url: ['', Validators.compose([Validators.required, Validators.pattern(PATTERNS.fullUrl), this.validateUrl.bind(this)])],
       account: ['', Validators.compose([Validators.required, Validators.pattern(PATTERNS.namePattern)])],
       endpoint_tag: ['', Validators.compose([Validators.required, Validators.pattern(PATTERNS.namePattern)])]
     });
@@ -114,6 +114,20 @@ export class EndpointsComponent implements OnInit {
   private getEndpointList() : void{
     this.endpointService.getEndpointsData().subscribe((endpoints: any) => this.endpoints = endpoints);
   }
+
+  private validateUrl(control) {
+    if (control && control.value){
+      const isDublicat = this.endpoints.some(endpoint => endpoint['url'].toLocaleLowerCase() === control.value.toLowerCase());
+      return isDublicat ? { isDuplicate: true } : null;
+    }
+  }
+
+  private validateName(control) {
+    if (control && control.value){
+      const isDublicat = this.endpoints.some(endpoint => endpoint['name'].toLocaleLowerCase() === control.value.toLowerCase());
+      return isDublicat ? { isDuplicate: true } : null;
+    }
+  }
 }
 
 @Component({
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/util/patterns.ts b/services/self-service/src/main/resources/webapp/src/app/core/util/patterns.ts
index 52e2670..be14887 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/util/patterns.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/util/patterns.ts
@@ -23,5 +23,6 @@ export const PATTERNS = {
   delimitersRegex: '[-_]?',
   url: '[a-zA-Z0-9.://%#&\\.@:%-_\+~#=]*\.[^\s]*[a-zA-Z0-9]/+',
   nodeCountPattern: '^[1-9]\\d*$',
-  integerRegex: '^[0-9]*$'
-}
+  integerRegex: '^[0-9]*$',
+  fullUrl: /^(http?|ftp|https):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/,
+};


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org