File size: 2,838 Bytes
05d7116
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Enroll</title>
    <link rel="icon" type="image/x-icon" href="{{ url_for('static', filename='app.ico') }}">
    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
</head>
<body>
    <div class="container">
        <h1>Enroll</h1>
        <form id="signup-form">
            <div class="input-field">
                <input type="text" id="username" name="username" required>
                <label for="username">Username</label>
            </div>
            <div class="input-field">
                <input type="password" id="password" name="password" required>
                <label for="password">Password</label>
                <i class="material-icons toggle-password" onclick="togglePasswordVisibility()">visibility_off</i>
            </div>
            <button class="btn waves-effect waves-light green darken-1" type="submit" name="action">Enroll
                <i class="material-icons right">send</i>
            </button>
        </form>
        <p>Already have an account? <a href="/">Authenticate</a></p>
    </div>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script>
        function togglePasswordVisibility() {
            var passwordInput = document.getElementById("password");
            var toggleIcon = document.querySelector(".toggle-password");

            if (passwordInput.type === "password") {
                passwordInput.type = "text";
                toggleIcon.textContent = "visibility";
            } else {
                passwordInput.type = "password";
                toggleIcon.textContent = "visibility_off";
            }
        }

        $(document).ready(function(){
            $('#signup-form').submit(function(e){
                e.preventDefault();
                $.ajax({
                    url: '/api/enroll',
                    method: 'POST',
                    contentType: 'application/json',
                    data: JSON.stringify({
                        username: $('#username').val(),
                        password: $('#password').val()
                    }),
                    success: function(response){
                        M.toast({html: response.message});
                    },
                    error: function(xhr, status, error){
                        M.toast({html: xhr.responseJSON.error});
                    }
                });
            });
        });
    </script>
</body>
</html>