Skip to content

Commit

Permalink
fix(Project):added counter or uuid when shortname is already taken an… (
Browse files Browse the repository at this point in the history
#6289)

* fix(Project):added counter or uuid when shortname is already taken and is longer than 18 chars

* updated shortname check
  • Loading branch information
dweinholz authored Dec 18, 2024
1 parent 2ff97d8 commit 5f95ccb
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 14 deletions.
9 changes: 7 additions & 2 deletions src/app/api-connector/applications.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -337,9 +337,14 @@ export class ApplicationsService {
})
}

checkForTakenShortname(shortname: string): Observable<any> {
checkForTakenShortname(shortname: string,exclude_project_id?:string|number): Observable<any> {

let params:any={ shortname: shortname }
if (exclude_project_id){
params={ shortname: shortname ,exclude_project_id:exclude_project_id}
}
return this.http.get(`${ApiSettings.getApiBaseURL()}project_applications/shortname/`, {
params: { shortname: shortname },
params: params,
withCredentials: true
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,10 @@ <h5 class="col-md-6 form-control-label">General Information</h5>
</div>
<div *ngIf="shortNameTaken">
<strong>
<font color="red">Please choose another shortname</font>
<font color="red"
>Warning: This shortname is already in use. A unique suffix will be automatically appended upon
submission.</font
>
</strong>
</div>
<input
Expand All @@ -158,26 +161,26 @@ <h5 class="col-md-6 form-control-label">General Information</h5>
#shortname
(keyup)="checkShortname(shortname.value)"
class="form-control"
maxlength="15"
min="5"
[maxlength]="shortNameMaxLength"
(ngModelChange)="setDefaulShortnameLength()"
[(ngModel)]="application.project_application_shortname"
minlength="5"
placeholder="e.g. ThalianaBench"
pattern="[a-zA-Z0-9]+"
[ngClass]="{
'is-invalid':
(form.controls.project_application_shortname?.invalid || shortNameTaken) &&
form.controls.project_application_shortname?.invalid &&
(form.controls.project_application_shortname?.dirty ||
form.controls.project_application_shortname?.touched)
,
form.controls.project_application_shortname?.touched),
'is-valid':
form.controls.project_application_shortname?.valid && !shortNameTaken &&
form.controls.project_application_shortname?.valid &&
(form.controls.project_application_shortname?.dirty ||
form.controls.project_application_shortname?.touched),
}"
/>

<span class="help-block">Enter a short name (between 5 and 15 characters).</span>

</div>
</div>

Expand Down Expand Up @@ -1799,7 +1802,6 @@ <h6><strong>Platforms</strong></h6>
data-test-id="submit_application_btn"
[disabled]="
submitting ||
shortNameTaken ||
form.invalid ||
(!unknownPiAffiliationsConfirmation &&
!valid_pi_affiliations &&
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ export class ApplicationFormularComponent extends ApplicationBaseClassComponent
@Input() application: Application
@Input() is_validation: boolean = false
@Input() hash: string
DEFAULT_SHORTNAME_MAX_LENGTH:number=15
shortNameMaxLength:number=15

userinfo: Userinfo
valid_pi_affiliations
Expand Down Expand Up @@ -145,14 +147,19 @@ export class ApplicationFormularComponent extends ApplicationBaseClassComponent
}
}

setDefaulShortnameLength():void{
this.shortNameMaxLength=this.DEFAULT_SHORTNAME_MAX_LENGTH
}

checkIfNameIsTaken(shortname: string): void {
this.shortnameChecking = true;
this.applicationsService.checkForTakenShortname(shortname).subscribe((result: boolean): void => {

this.applicationsService.checkForTakenShortname(shortname,this.application?.project_application_id).subscribe((result: boolean): void => {
let nameExists: boolean = result['exists'];
this.shortnameChecking = false;
this.shortNameTaken = nameExists;
});

}

checkValidityComment(): boolean {
Expand Down Expand Up @@ -190,6 +197,10 @@ export class ApplicationFormularComponent extends ApplicationBaseClassComponent
if (this.application && !this.initiated_validation && this.is_validation) {
this.openstack_project = this.application.project_application_openstack_project

if(this.application.project_application_shortname.length > 15){
this.shortNameMaxLength=this.application.project_application_shortname.length
}

this.simple_vm_project = !this.openstack_project
this.application.project_application_pi = new User()

Expand Down Expand Up @@ -259,7 +270,7 @@ export class ApplicationFormularComponent extends ApplicationBaseClassComponent
this.shortnameChecking = true;
this.nameCheckPipe.next(shortname);
}

}

public checkLongname(longname: string): void {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,7 @@ <h4 class="modal-title">Setting of public key of public key</h4>
<button class="btn btn-primary col-md-4" type="reset" (click)="pubKeyResponseModal.hide()">Cancel</button>
</div>
</div>
<!-- /.modal-content -->L
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

0 comments on commit 5f95ccb

Please sign in to comment.