|
|
@@ -1 +1,75 @@
|
|
|
-<p>register works!</p>
|
|
|
+<div>
|
|
|
+ <div>
|
|
|
+ <form name="form" (ngSubmit)="f.form.valid && onSubmit()" #f="ngForm" novalidate>
|
|
|
+ <div>
|
|
|
+ <label for="firstname" id="firstname">Firstname</label>
|
|
|
+ <input type="text" name="firstname" [(ngModel)]="form.firstname" #firstname="ngModel" required />
|
|
|
+ @if (f.submitted && firstname.invalid) {
|
|
|
+ <div>
|
|
|
+ @if (firstname.errors?.['required']) {
|
|
|
+ <div>Firstname is required</div>
|
|
|
+ }
|
|
|
+ </div>
|
|
|
+ }
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <label for="lastname" id="lastname">Lastname</label>
|
|
|
+ <input type="text" name="lastname" [(ngModel)]="form.lastname" #lastname="ngModel" required />
|
|
|
+ @if (f.submitted && lastname.invalid) {
|
|
|
+ <div>
|
|
|
+ @if (lastname.errors?.['required']) {
|
|
|
+ <div>Lastname is required</div>
|
|
|
+ }
|
|
|
+ </div>
|
|
|
+ }
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <label for="username" id="username">Username</label>
|
|
|
+ <input type="text" name="username" [(ngModel)]="form.username" #username="ngModel" required />
|
|
|
+ @if (f.submitted && username.invalid) {
|
|
|
+ <div>
|
|
|
+ @if (username.errors?.['required']) {
|
|
|
+ <div>Username is required</div>
|
|
|
+ }
|
|
|
+ </div>
|
|
|
+ }
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <label for="password" id="password">Password</label>
|
|
|
+ <input type="password" name="password" [(ngModel)]="form.password" #password="ngModel" required minlength="6" />
|
|
|
+ @if (f.submitted && password.invalid) {
|
|
|
+ <div>
|
|
|
+ @if (password.errors?.['required']) {
|
|
|
+ <div>Password is required</div>
|
|
|
+ }
|
|
|
+ @if (password.errors?.['minlength']) {
|
|
|
+ <div>Password must be at least 8 characters</div>
|
|
|
+ }
|
|
|
+ </div>
|
|
|
+ }
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <label for="role" id="role">Role</label>
|
|
|
+ <select name="role" [(ngModel)]="form.role" #role="ngModel" required>
|
|
|
+ <option value="teacher">Teacher</option>
|
|
|
+ <option value="student">Student</option>
|
|
|
+ </select>
|
|
|
+ @if (f.submitted && role.invalid) {
|
|
|
+ <div>
|
|
|
+ @if (role.errors?.['required']) {
|
|
|
+ <div>Role is required</div>
|
|
|
+ }
|
|
|
+ </div>
|
|
|
+ }
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <button>Register</button>
|
|
|
+ @if (f.submitted && isSignUpFailed) {
|
|
|
+ <div>
|
|
|
+ Registration failed: {{ errorMessage }}
|
|
|
+ </div>
|
|
|
+ }
|
|
|
+ </div>
|
|
|
+ </form>
|
|
|
+ </div>
|
|
|
+</div>
|