Skip to content
Snippets Groups Projects
Commit 4eb4d4b6 authored by Tom Käsler's avatar Tom Käsler
Browse files

Merge branch '197-session-id-input-field-enhancement' into 'master'

Resolve "Session ID input field enhancement"

Closes #197

See merge request arsnova/arsnova-lite!141
parents bd38bb0d 2b32f08f
No related merge requests found
<div fxLayout="column" fxLayoutAlign="center center" fxlayoutgap="50px" fxFill> <div fxLayout="column" fxLayoutAlign="center center" fxlayoutgap="50px" fxFill>
<form (ngSubmit)="joinRoom(roomId.value)"> <form (ngSubmit)="joinRoom(roomId.value)">
<div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="10px"> <div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="10px">
<mat-form-field class="number"> <mat-form-field>
<input matInput inputmode="numeric" type="number" pattern="[0-9]*" #roomId placeholder="Session-Id" [formControl]="roomFormControl" <input matInput #roomId type="text" inputmode="numeric" min="00000000" max="99999999"
[errorStateMatcher]="matcher" max="8"/> onkeydown="if(this.value.length - (this.value.split(' ').length -1) === 8 && event.keyCode != 8) return false;
<mat-hint align="end">{{roomId.value.length}} / 8</mat-hint> if(this.value.length === 4 && event.keyCode != 8) this.value = this.value + ' ';"
placeholder="Session-Id" [formControl]="roomFormControl" [errorStateMatcher]="matcher"/>
<mat-hint align="end">{{ roomId.value.length - (roomId.value.split(' ').length -1) }} / 8</mat-hint>
<mat-error *ngIf="roomFormControl.hasError('required')">{{ 'home-page.please-enter' | translate}}</mat-error> <mat-error *ngIf="roomFormControl.hasError('required')">{{ 'home-page.please-enter' | translate}}</mat-error>
<mat-error *ngIf="roomFormControl.hasError('minlength')">{{ 'home-page.exactly-8' | translate}}</mat-error> <mat-error *ngIf="roomFormControl.hasError('pattern')">{{ 'home-page.only-numbers' | translate}}</mat-error>
</mat-form-field> </mat-form-field>
<button mat-fab color="accent" type="submit"> <button mat-fab color="accent" type="submit">
<mat-icon>input</mat-icon> <mat-icon>input</mat-icon>
......
...@@ -18,3 +18,7 @@ mat-error { ...@@ -18,3 +18,7 @@ mat-error {
width: 65px; width: 65px;
height: 65px; height: 65px;
} }
input[type="number"]::-webkit-outer-spin-button, input[type="number"]::-webkit-inner-spin-button {
-webkit-appearance: none;
}
...@@ -30,7 +30,7 @@ export class RoomJoinComponent implements OnInit { ...@@ -30,7 +30,7 @@ export class RoomJoinComponent implements OnInit {
demoId = '95680586'; demoId = '95680586';
user: User; user: User;
roomFormControl = new FormControl('', [Validators.required, Validators.minLength(8), Validators.maxLength(8)]); roomFormControl = new FormControl('', [Validators.required, Validators.pattern('[0-9 ]*')]);
matcher = new RegisterErrorStateMatcher(); matcher = new RegisterErrorStateMatcher();
...@@ -46,7 +46,16 @@ export class RoomJoinComponent implements OnInit { ...@@ -46,7 +46,16 @@ export class RoomJoinComponent implements OnInit {
} }
getRoom(id: string): void { getRoom(id: string): void {
this.roomService.getRoomByShortId(id) if (id.length - (id.split(' ').length -1) < 8) {
this.translateService.get('home-page.exactly-8').subscribe(message => {
this.notificationService.show(message);
});
} else if (this.roomFormControl.hasError('pattern')) {
this.translateService.get('home-page.only-numbers').subscribe(message => {
this.notificationService.show(message);
});
} else {
this.roomService.getRoomByShortId(id.replace(/\s/g, ""))
.subscribe(room => { .subscribe(room => {
this.room = room; this.room = room;
if (!room) { if (!room) {
...@@ -65,6 +74,8 @@ export class RoomJoinComponent implements OnInit { ...@@ -65,6 +74,8 @@ export class RoomJoinComponent implements OnInit {
} }
} }
}); });
}
} }
joinRoom(id: string): void { joinRoom(id: string): void {
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
"german": "Deutsch", "german": "Deutsch",
"logout": "Abmelden", "logout": "Abmelden",
"guest": "Gast", "guest": "Gast",
"logged-out": "Ausloggen erfolgreich.", "logged-out": "Ausloggen erfolgreich.",
"back": "Zurück", "back": "Zurück",
"my-sessions": "Meine Sessions", "my-sessions": "Meine Sessions",
"visited-sessions": "Besuchte Sessions" "visited-sessions": "Besuchte Sessions"
...@@ -14,34 +14,35 @@ ...@@ -14,34 +14,35 @@
"participant": "Student/in", "participant": "Student/in",
"password-reset": "Passwort vergessen?", "password-reset": "Passwort vergessen?",
"register": "Registrieren", "register": "Registrieren",
"welcome": "Willkommen bei" "welcome": "Willkommen bei"
}, },
"home-page": { "home-page": {
"join-demo-session": "Demo-Session betreten", "join-demo-session": "Demo-Session betreten",
"session-id": "Session-Id", "session-id": "Session-Id",
"no-room-found": "Es wurde keine Session mit dieser ID gefunden.", "no-room-found": "Es wurde keine Session mit dieser ID gefunden.",
"please-enter": "Bitte geben Sie eine Session-ID ein.", "please-enter": "Bitte geben Sie eine Session-ID ein.",
"exactly-8": "Eine Session-ID hat genau 8 Ziffern.", "exactly-8": "Eine Session-ID hat genau 8 Ziffern.",
"create-session": "Session erstellen", "create-session": "Session erstellen",
"no-empty-name": "Bitte geben Sie einen Namen ein.", "no-empty-name": "Bitte geben Sie einen Namen ein.",
"created-1": "Session '", "created-1": "Session '",
"created-2": "' erfolgreich erstellt." "created-2": "' erfolgreich erstellt.",
}, "only-numbers": "Eine Session-Id besteht aus Nummern."
},
"login": { "login": {
"email": "E-Mail", "email": "E-Mail",
"email-invalid": "E-Mail Adresse ist ungültig", "email-invalid": "E-Mail Adresse ist ungültig",
"email-required": "E-Mail Adresse ist erforderlich", "email-required": "E-Mail Adresse ist erforderlich",
"guest-login": "Anmelden als Gast", "guest-login": "Anmelden als Gast",
"input-incorrect": "Bitte prüfen Sie Ihre Eingaben.", "input-incorrect": "Bitte prüfen Sie Ihre Eingaben.",
"login-successful": "Login erfolgreich.", "login-successful": "Login erfolgreich.",
"login": "Anmelden", "login": "Anmelden",
"login-data-incorrect": "Benutzername oder Passwort nicht korrekt.", "login-data-incorrect": "Benutzername oder Passwort nicht korrekt.",
"password": "Passwort", "password": "Passwort",
"password-required": "Passwort ist erforderlich", "password-required": "Passwort ist erforderlich",
"activate": "Aktivieren", "activate": "Aktivieren",
"activation-key": "Aktivierungsschlüssel", "activation-key": "Aktivierungsschlüssel",
"activation-key-required": "Aktivierungsschlüssel erforderlich", "activation-key-required": "Aktivierungsschlüssel erforderlich",
"activation-key-incorrect": "Aktivierungsschlüssel falsch" "activation-key-incorrect": "Aktivierungsschlüssel falsch"
}, },
"password-reset": { "password-reset": {
"email": "E-Mail", "email": "E-Mail",
...@@ -53,10 +54,10 @@ ...@@ -53,10 +54,10 @@
}, },
"register": { "register": {
"email": "E-Mail", "email": "E-Mail",
"email-verify": "E-Mail bestätigen", "email-verify": "E-Mail bestätigen",
"email-invalid": "E-Mail Adresse ist nicht gültig", "email-invalid": "E-Mail Adresse ist nicht gültig",
"email-required": "E-Mail Adresse ist erforderlich", "email-required": "E-Mail Adresse ist erforderlich",
"email-unmatch": "E-Mail Adressen stimmen nicht überein", "email-unmatch": "E-Mail Adressen stimmen nicht überein",
"password": "Passwort", "password": "Passwort",
"password-required": "Passwort ist erforderlich", "password-required": "Passwort ist erforderlich",
"password-unmatch": "Passwörter stimmen nicht überein", "password-unmatch": "Passwörter stimmen nicht überein",
...@@ -65,10 +66,10 @@ ...@@ -65,10 +66,10 @@
"register-successful": "Erfolgreich registriert. Bitte prüfen Sie Ihre E-Mails", "register-successful": "Erfolgreich registriert. Bitte prüfen Sie Ihre E-Mails",
"register-unsuccessful": "Bitte prüfen Sie Ihre Eingaben." "register-unsuccessful": "Bitte prüfen Sie Ihre Eingaben."
}, },
"session": { "session": {
"session-name": "Name der Session", "session-name": "Name der Session",
"description": "Beschreibung", "description": "Beschreibung",
"max-ls": "Max. Zeichen:", "max-ls": "Max. Zeichen:",
"create-session": "Session erstellen" "create-session": "Session erstellen"
} }
} }
...@@ -25,7 +25,8 @@ ...@@ -25,7 +25,8 @@
"create-session": "Create session", "create-session": "Create session",
"no-empty-name": "Please enter a name.", "no-empty-name": "Please enter a name.",
"created-1": "Session '", "created-1": "Session '",
"created-2": "' successfully created." "created-2": "' successfully created.",
"only-numbers": "A session-id only contains numbers."
}, },
"login": { "login": {
"email": "E-Mail", "email": "E-Mail",
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment