aboutsummaryrefslogtreecommitdiffstats
path: root/src/templates/account/booking_list.html
blob: f9234bc645fe47721b5b65d7bd20fd0b69547fd7 (plain)
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
{% extends "base.html" %}
{% block content %}
<h2>Bookings I Own</h2>
<div class="row">
    {% for booking in bookings %}
        <div class="col-12 col-md-6 col-lg-4 col-xl-3 mb-3">
            <div class="card h-100">
                <div class="card-header">
                    <h3>Booking {{booking.id}}</h3>
                </div>
                <ul class="list-group list-group-flush h-100">
                    <li class="list-group-item">id: {{booking.id}}</li>
                    <li class="list-group-item">lab: {{booking.lab}}</li>
                    <li class="list-group-item">resource: {{booking.resource.template.name}}</li>
                    <li class="list-group-item">start: {{booking.start}}</li>
                    <li class="list-group-item">end: {{booking.end}}</li>
                    <li class="list-group-item">purpose: {{booking.purpose}}</li>
                </ul>
                <div class="card-footer d-flex">
                    <a class="btn btn-primary ml-auto mr-2" href="/booking/detail/{{booking.id}}/">Details</a>
                    <button
                        class="btn btn-danger"
                        onclick='cancel_booking({{booking.id}});'
                        data-toggle="modal"
                        data-target="#resModal"
                    >Cancel</button>
                </div>
            </div>
        </div>
    {% empty %}
        <div class="col">
            <p>You don't have any bookings. You can create a booking by booking a pod.</p>
        </div>
    {% endfor %}
</div>

<h2>Bookings I Collaborate On</h2>
<div class="row">

    {% for booking in collab_bookings %}
        <div class="col-12 col-md-6 col-lg-4 col-xl-3 mb-3">
            <div class="card h-100">
                <div class="card-header">
                    <h3>Booking {{booking.id}}</h3>
                </div>
                <ul class="list-group list-group-flush h-100">
                    <li class="list-group-item">id: {{booking.id}}</li>
                    <li class="list-group-item">lab: {{booking.lab}}</li>
                    <li class="list-group-item">resource: {{booking.resource.template.name}}</li>
                    <li class="list-group-item">start: {{booking.start}}</li>
                    <li class="list-group-item">end: {{booking.end}}</li>
                    <li class="list-group-item">purpose: {{booking.purpose}}</li>
                </ul>
                <div class="card-footer d-flex">
                    <a class="btn btn-primary ml-auto" href="/booking/detail/{{booking.id}}/">Details</a>
                </div>
            </div>
        </div>
    {% empty %}
        <div class="col">
            <p>There are no collaborative bookings.</p>
        </div>
    {% endfor %}
</div>

<a href="#expired_bookings" data-toggle="collapse" class="h2 discrete-a">
    Expired Bookings
    <i class="fas fa-angle-down rotate"></i>
</a>
<div id="expired_bookings" class="row collapse">
    {% for booking in expired_bookings %}
        <div class="col-12 col-md-6 col-lg-4 col-xl-3 mb-3">
            <div class="card h-100">
                <div class="card-header">
                    <h3>Booking {{booking.id}}</h3>
                </div>
                <ul class="list-group list-group-flush h-100">
                    <li class="list-group-item">id: {{booking.id}}</li>
                    <li class="list-group-item">lab: {{booking.lab}}</li>
                    <li class="list-group-item">resource: {{booking.resource.template.name}}</li>
                    <li class="list-group-item">start: {{booking.start}}</li>
                    <li class="list-group-item">end: {{booking.end}}</li>
                    <li class="list-group-item">purpose: {{booking.purpose}}</li>
                    <li class="list-group-item">owner: {{booking.owner.userprofile.email_addr}}</li>
                </ul>
                <div class="card-footer d-flex">
                    <a class="btn btn-primary ml-auto" href="/booking/detail/{{booking.id}}/">Details</a>
                </div>
            </div>
        </div>
    {% empty %}
        <div class="col">
            <p>There are no expired bookings.</p>
        </div>
    {% endfor %}
</div>

<script>
    var current_booking_id = -1;
    function cancel_booking(booking_id) {
        current_booking_id = booking_id;
    }

    function submit_cancel_form() {
        var ajaxForm = $("#booking_cancel_form");
        var formData = ajaxForm.serialize();
        req = new XMLHttpRequest();
        var url = "cancel/" + current_booking_id;
        req.open("POST", url, true);
        req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        req.onerror = function() { alert("problem submitting form"); }
        req.send(formData);
    }
</script>

<div class="modal fade" id="resModal" tabindex="-1" role="dialog" aria-hidden="true">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <h4 class="modal-title d-inline float-left">Cancel Booking?</h4>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <form id="booking_cancel_form">
                {% csrf_token %}
            </form>
            <div class="modal-footer d-flex flex-column">
                <p>Everything on your machine(s) will be lost</p>
                <div class="mb-2">
                    <button type="button" class="btn btn-outline-secondary" data-dismiss="modal">Close</button>
                    <button type="button" class="btn btn-danger" data-toggle="collapse" data-target="#warning">Cancel Booking</button>
                </div>
                <div class="collapse w-100 text-center border-top" id="warning">
                    <div class="p-4">
                        <h3>Are You Sure?</h3>
                        <p>This cannot be undone</p>
                        <button class="btn btn-outline-secondary" data-dismiss="modal">Nevermind</button>
                        <button class="btn btn-danger" id="confirm_cancel_button" data-dismiss="modal" onclick="submit_cancel_form();">I'm Sure</button>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
{% endblock %}