File size: 3,586 Bytes
655f41f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Evidence Form</title>
    <link rel="stylesheet" href="{{ url_for('static', filename='css/styles.css') }}">
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>

    <div class="navbar">
        <a href="/home">Home</a>
        <a href="/dashboard">Dashboard</a>
        <a href="/logout">Logout</a>
    </div>

    <div class="container">
        <h2>Submit Evidence</h2>

        <!-- Form to upload evidence image -->
        <form id="evidence-form" action="/home" method="POST" enctype="multipart/form-data">
            <div>
                <label for="evidence_image">Upload Evidence Image (Required for Prediction)</label>
                <input type="file" name="evidence_image" id="evidence_image" required>
            </div>

            <!-- Show the predicted evidence type -->
            <div id="prediction-result" style="display: none;">
                <p>Predicted Evidence Type: <strong id="predicted_evidence"></strong></p>
            </div>

            <!-- Form fields with values predicted by the CNN -->
            <div>
                <label for="temperature">Temperature (°C):</label>
                <input type="text" name="temperature" id="temperature" required>
            </div>
            <div>
                <label for="humidity">Humidity (%):</label>
                <input type="text" name="humidity" id="humidity" required>
            </div>
            <div>
                <label for="vibration">Vibration (0/1):</label>
                <input type="text" name="vibration" id="vibration" required>
            </div>
            <div>
                <label for="light_intensity">Light Intensity (lx):</label>
                <input type="text" name="light_intensity" id="light_intensity" required>
            </div>
            <div>
                <label for="battery_level">Battery Level (%):</label>
                <input type="text" name="battery_level" id="battery_level" required>
            </div>

            <button type="submit">Submit Evidence</button>
        </form>
    </div>

    <!-- Script to automatically upload the image and fill form fields -->
    <script>

        $('#evidence_image').on('change', function () {

            const formData = new FormData();

            formData.append('evidence_image', this.files[0]);



            $.ajax({

                url: '/predict_evidence',

                type: 'POST',

                data: formData,

                processData: false,

                contentType: false,

                success: function (data) {

                    // Show prediction result and autofill form fields

                    $('#prediction-result').show();

                    $('#predicted_evidence').text(data.predicted_evidence);



                    $('#temperature').val(data.variables.Temperature);

                    $('#humidity').val(data.variables.Humidity);

                    $('#vibration').val(data.variables.Vibration);

                    $('#light_intensity').val(data.variables.Light_Intensity);

                    $('#battery_level').val(data.variables.Battery_Level);

                },

                error: function (xhr, status, error) {

                    alert('Error predicting evidence type');

                }

            });

        });

    </script>
</body>
</html>