Hides expired bookings in the "My Bookings" Page
[pharos-tools.git] / dashboard / src / templates / account / booking_list.html
1 {% extends "base.html" %}
2 {% block content %}
3 <h2>Bookings I Own</h2>
4     <div class="card_container">
5     {% for booking in bookings %}
6         <div class="detail_card">
7             <div>
8                 <h3>Booking {{booking.id}}</h3>
9                 <ul class="list-group">
10                     <li class="list-group-item">id: {{booking.id}}</li>
11                     <li class="list-group-item">lab: {{booking.lab}}</li>
12                     <li class="list-group-item">resource: {{booking.resource.template.name}}</li>
13                     <li class="list-group-item">start: {{booking.start}}</li>
14                     <li class="list-group-item">end: {{booking.end}}</li>
15                     <li class="list-group-item">purpose: {{booking.purpose}}</li>
16                 </ul>
17             </div>
18             <div class="detail_button_container">
19                 <a class="btn btn-primary" href="/booking/detail/{{booking.id}}/">Details</a>
20                 <button
21                     class="btn btn-danger"
22                     onclick='cancel_booking({{booking.id}});'
23                     data-toggle="modal"
24                     data-target="#resModal"
25                 >Cancel</button>
26             </div>
27         </div>
28     {% endfor %}
29     </div>
30 <h2>Bookings I Collaborate On</h2>
31     <div class="card_container">
32     {% for booking in collab_bookings %}
33         <div class="detail_card">
34             <div>
35                 <h3>Booking {{booking.id}}</h3>
36                 <ul class="list-group">
37                     <li class="list-group-item">id: {{booking.id}}</li>
38                     <li class="list-group-item">lab: {{booking.lab}}</li>
39                     <li class="list-group-item">resource: {{booking.resource.template.name}}</li>
40                     <li class="list-group-item">start: {{booking.start}}</li>
41                     <li class="list-group-item">end: {{booking.end}}</li>
42                     <li class="list-group-item">purpose: {{booking.purpose}}</li>
43                 </ul>
44             </div>
45             <a class="btn btn-primary" href="/booking/detail/{{booking.id}}/">Details</a>
46         </div>
47     {% endfor %}
48     </div>
49
50     <h2>Expired Bookings
51         <i class="fa fa-fw fa-caret-down" onclick='toggle_display("expired_bookings");'></i>
52     </h2>
53     <div id="expired_bookings" class="card_container" style="display:none;">
54     {% for booking in expired_bookings %}
55         <div class="detail_card">
56             <div>
57                 <h3>Booking {{booking.id}}</h3>
58                 <ul class="list-group">
59                     <li class="list-group-item">id: {{booking.id}}</li>
60                     <li class="list-group-item">lab: {{booking.lab}}</li>
61                     <li class="list-group-item">resource: {{booking.resource.template.name}}</li>
62                     <li class="list-group-item">start: {{booking.start}}</li>
63                     <li class="list-group-item">end: {{booking.end}}</li>
64                     <li class="list-group-item">purpose: {{booking.purpose}}</li>
65                     <li class="list-group-item">owner: {{booking.owner.userprofile.email_addr}}</li>
66                 </ul>
67             </div>
68             <a class="btn btn-primary" href="/booking/detail/{{booking.id}}/">Details</a>
69         </div>
70     {% endfor %}
71     </div>
72 <script>
73     var current_booking_id = -1;
74     function cancel_booking(booking_id) {
75         current_booking_id = booking_id;
76         document.getElementById('modal_warning').style['max-height'] = '0px';
77     }
78
79     function submit_cancel_form() {
80         var ajaxForm = $("#booking_cancel_form");
81         var formData = ajaxForm.serialize();
82         req = new XMLHttpRequest();
83         var url = "cancel/" + current_booking_id;
84         req.open("POST", url, true);
85         req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
86         req.onerror = function() { alert("problem submitting form"); }
87         req.send(formData);
88     }
89
90     function toggle_display(elem_id){
91         var e = document.getElementById(elem_id);
92         if (e.style.display === "none"){
93             e.style.display = "grid";
94         } else {
95             e.style.display = "none";
96         }
97     }
98 </script>
99 <div class="modal fade" id="resModal" tabindex="-1" role="dialog" aria-labelledby="my_modal" aria-hidden="true">
100     <div class="modal-dialog" style="width: 450px;" role="document">
101         <div class="modal-content">
102             <div class="modal-header">
103                 <h4 class="modal-title" id="my_modal" style="display: inline; float: left;">Cancel Booking?</h4>
104                 <p>Everthing on your machine(s) will be lost</p>
105                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
106                     <span aria-hidden="true">&times;</span>
107                 </button>
108             </div>
109             <form id="booking_cancel_form">
110                 {% csrf_token %}
111             </form>
112             <div class="modal-footer">
113                 <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
114                 <button type="button" class="btn btn-primary" onclick="document.getElementById('modal_warning').style['max-height'] = '500px';">Cancel Booking</button>
115             </div>
116             <div id="modal_warning" class="modal-footer" style="max-height:0px;" >
117                 <div style="text-align:center; margin: 5px">
118                     <h3>Are You Sure?</h3>
119                     <p>This cannot be undone</p>
120                     <button class="btn" onclick="document.getElementById('modal_warning').style['max-height'] = '0px';">Nevermind</button>
121                     <button class="btn btn-danger" id="confirm_cancel_button" data-dismiss="modal" onclick="submit_cancel_form();">I'm Sure</button>
122                 </div>
123             </div>
124         </div>
125     </div>
126 </div>
127 {% endblock %}