188 lines
8.2 KiB
HTML
188 lines
8.2 KiB
HTML
{% extends "base.html" %}
|
|
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
|
{% load origin %}
|
|
{% load staticfiles %}
|
|
{% load ietf_filters %}
|
|
{% load humanize %}
|
|
|
|
{% block title %}IETF {{ meeting.number }} Meeting Agenda: Timeslot/Room Availability{% endblock %}
|
|
{% load agenda_custom_tags %}
|
|
{% block pagehead %}
|
|
<link rel='stylesheet' type='text/css' href="{% static 'ietf/css/agenda/jquery-ui-themes/jquery-ui-1.8.11.custom.css' %}" />
|
|
<link rel='stylesheet' type='text/css' href="{% static 'ietf/css/agenda/base2.css' %}" />
|
|
<link rel='stylesheet' type='text/css' href="{% static 'ietf/css/agenda/agenda.css' %}" />
|
|
{% endblock pagehead %}
|
|
|
|
{% block js %}
|
|
<script type="text/javascript" src="{% static 'ietf/js/agenda/jquery-1.8.2.min.js' %}"></script>
|
|
<script src="{% static 'jquery.cookie/jquery.cookie.js' %}"></script>
|
|
<script>
|
|
jQuery.ajaxSetup({
|
|
crossDomain: false, // obviates need for sameOrigin test
|
|
beforeSend: function(xhr, settings) {
|
|
if (!csrfSafeMethod(settings.type)) {
|
|
xhr.setRequestHeader("X-CSRFToken", $.cookie('csrftoken'));
|
|
}
|
|
}
|
|
});
|
|
</script>
|
|
<script type='text/javascript' src="{% static 'ietf/js/agenda/jquery-ui-1.9.0.custom/jquery-ui.custom.js' %}"></script>
|
|
<script type='text/javascript' src="{% static 'ietf/js/agenda/jquery-ui-1.9.0.custom/jquery.ui.widget.js' %}"></script>
|
|
<script type='text/javascript' src="{% static 'ietf/js/agenda/jquery-ui-1.9.0.custom/jquery.ui.droppable.js' %}"></script>
|
|
<script type='text/javascript' src="{% static 'ietf/js/agenda/jquery-ui-1.9.0.custom/jquery.ui.sortable.js' %}"></script>
|
|
<script type='text/javascript' src="{% static 'ietf/js/agenda/jquery-ui-1.9.0.custom/jquery.ui.accordion.js' %}"></script>
|
|
<script type='text/javascript' src="{% static 'ietf/js/agenda/jquery-ui-1.9.0.custom/jquery.ui.draggable.js' %}"></script>
|
|
<script type='text/javascript' src="{% static 'ietf/js/agenda/jquery-ui-1.9.0.custom/jquery.ui.datepicker.js' %}"></script>
|
|
|
|
<!-- source (MIT License) http://momentjs.com/ https://github.com/moment/moment/ -->
|
|
<script type='text/javascript' src="{% static 'ietf/js/agenda/moment.min.js' %}"></script>
|
|
|
|
<!-- source (MIT License) : https://github.com/trentrichardson/jQuery-Timepicker-Addon -->
|
|
<script type='text/javascript' src="{% static 'ietf/js/agenda/jquery-ui-timepicker/jquery-ui-timepicker-addon.js' %}"></script>
|
|
<script type='text/javascript' src="{% static 'ietf/js/agenda/jquery-ui-timepicker/jquery-ui-sliderAccess.js' %}"></script>
|
|
<link rel='stylesheet' type='text/css' href="{% static 'ietf/css/agenda/jquery-ui-timepicker-addon.css' %}" />
|
|
|
|
<script type='text/javascript' src="{% static 'ietf/js/agenda/spin/dist/spin.min.js' %}"></script>
|
|
<script type='text/javascript' src="{% static 'ietf/js/agenda/timeslot_edit.js' %}"></script>
|
|
<script type='text/javascript' src="{% static 'ietf/js/agenda/agenda_objects.js' %}"></script>
|
|
<script type='text/javascript' src="{% static 'ietf/js/agenda/agenda_helpers.js' %}"></script>
|
|
<script type='text/javascript' src="{% static 'ietf/js/agenda/agenda_listeners.js' %}"></script>
|
|
|
|
|
|
<script type='text/javascript'>
|
|
|
|
var meeting_number = "{{ meeting.number }}";
|
|
var meeting_base_url = "{{ meeting_base_url }}";
|
|
var site_base_url = "{{ site_base_url }}";
|
|
var meeting_slots_href = "{% url "ietf.meeting.ajax.timeslot_slotsurl" meeting.number %}";
|
|
total_days = {{time_slices|length}};
|
|
total_rooms = {{rooms|length}};
|
|
|
|
first_day = new Date("{% with timeslots|first as day %} {{ day.time }} {% endwith %}"); /* needed for the datepicker */
|
|
|
|
function setup_slots(promiselist){
|
|
var ts_promise = load_timeslots(meeting_slots_href);
|
|
promiselist.push(ts_promise);
|
|
|
|
{% for day in time_slices %}
|
|
days.push("{{day}}");
|
|
{% endfor %}
|
|
console.log("setup_slots run");
|
|
}
|
|
|
|
</script>
|
|
{% endblock js %}
|
|
|
|
|
|
{% block content %}
|
|
{% origin %}
|
|
<div class="wrapper custom_text_stuff">
|
|
<div style="ui-icon ui-icon-arrow-1-w" id="close_ietf_menubar">
|
|
<
|
|
</div>
|
|
|
|
<div class="agenda_div">
|
|
|
|
<table id="meetings" class="ietf-navbar" style="width:100%">
|
|
<th class="schedule_title"><div id="pageloaded" style="display:none"><span id="schedule_name">name: {{meeting.number}}</span></div>
|
|
<div id="spinner"><!-- spinney goes here --></div>
|
|
</th>
|
|
<th><!-- resources --></th>
|
|
{% for day in time_slices %}
|
|
<th colspan="{{date_slices|colWidth:day}}" id="{{day|date:'Y-m-d'}}-btn" class=" day_{{day}} agenda_slot_title">
|
|
<div style="display: none;" class="delete delete_day bottom_left" id="delete_{{day|date:'Y-m-d'}}">X</div>
|
|
{{day|date:'D'}} ({{day}})
|
|
|
|
</th>
|
|
<th class="day_{{day}} spacer {{day|date:'Y-m-d'}}-spacer" id="">
|
|
<div class="ui-widget-content ui-resizable" id="resize-{{day|date:'Y-m-d'}}-spacer">
|
|
<div class="spacer_grip ui-resizable-handle ui-resizable-e"></div>
|
|
</div>
|
|
</th>
|
|
{% endfor %}
|
|
<tr>
|
|
<th>
|
|
<div class="addbutton" id="add_room">+ROOM</div>
|
|
<div class="addbutton" id="add_day">+DAY</div>
|
|
</th>
|
|
<th><!-- resources --></th>
|
|
{% for day in time_slices %}
|
|
{% for slot in slot_slices|lookup:day %}
|
|
<th class="day_{{day}} room_title">
|
|
<div
|
|
href="{{slot.json_url}}"
|
|
timeslot_id="{{slot.pk}}"
|
|
class="delete delete_slot bottom_left"
|
|
id="delete_{{day|date:'Y-m-d'}}_{{slot.time|date:'Hi'}}">X</div>
|
|
{{slot.time|date:'Hi'}}-{{slot.end_time|date:'Hi'}}
|
|
</th>
|
|
|
|
{% endfor %}
|
|
<th class="day_{{day}} spacer {{day|date:'Y-m-d'}}-spacer">
|
|
</div></th>
|
|
|
|
{% endfor %}
|
|
|
|
{% for r in rooms %}
|
|
<tr id="{{r.name|to_acceptable_id}}" class="agenda_slot_row">
|
|
<th class="vert_time">
|
|
<div class="delete delete_room bottom_left"
|
|
id="delete_{{r.name|to_acceptable_id}}"
|
|
href="{{r.json_url}}"
|
|
roomid="{{r.pk}}">X</div>
|
|
<div class="right room_name"><a class="edit_room editlink"
|
|
href="/meeting/{{ meeting.number }}/room/{{r.pk}}.html" >{{r.name}} <span class="capacity">({{r.capacity}})</span></a></div>
|
|
|
|
<!-- <span class="hide_room light_blue_border">X</span><span class="left">{{r.name}}</span></th> -->
|
|
<th class="room_features">
|
|
<div class="resource_list">
|
|
{% for resource in r.resources.all %}
|
|
<span class="resource_image">
|
|
{% if resource.id == "project" %} <img src="{% static 'ietf/images/projector.png' %}" height=24 alt="{{resource.desc}}" title="{{resource.desc}}"/>{% endif %}
|
|
{% if resource.id == "proj2" %} <img src="{% static 'ietf/images/projector2.png' %}" height=24 alt="{{resource.desc}}" title="{{resource.desc}}"/>{% endif %}
|
|
{% if resource.id == "meetecho" %} <img src="{% static 'ietf/images/meetecho-mini.png' %}" height=24 alt="{{resource.desc}}" title="{{resource.desc}}"/>{% endif %}
|
|
{% if resource.id == "boardroom" %} <img src="{% static 'ietf/images/projector.png' %}" height=24 alt="{{resource.desc}}" title="{{resource.desc}}"/>{% endif %}
|
|
</span>
|
|
{% endfor %}
|
|
</div>
|
|
</th>
|
|
{% for day in time_slices %}
|
|
{% for slot in date_slices|lookup:day %}
|
|
<td slot_time="{{day}} {{slot.0|date:'H:i:s'}}" slot_duration="{{slot.2}}" slot_room="{{r.pk}}" id="{{r.dom_id}}_{{day}}_{{slot.0|date:'Hi'}}" class="day_{{day}} agenda-column-{{day}}-{{slot.0|date:'Hi'}} agenda_slot {% cycle 'agenda_slot_alt' '' %} agenda_slot_unavailable" ></td>
|
|
{% endfor %}
|
|
<td class="day_{{day}} spacer {{day|date:'Y-m-d'}}-spacer"></td>
|
|
{% endfor %}
|
|
</tr>
|
|
{% endfor %}
|
|
</table>
|
|
|
|
</div>
|
|
<div class="dialog" id="add_room_dialog">
|
|
<form action="{{roomsurl}}" method="post">{% csrf_token %}
|
|
<table>
|
|
{{ addroom.as_table }}
|
|
<tr><td><input type="submit" name="addroom" value="addroom"></td></tr>
|
|
</table>
|
|
</form>
|
|
</div>
|
|
<div class="dialog" id="add_day_dialog">
|
|
<table>
|
|
<form action="{{adddayurl}}" method="post">{% csrf_token %}
|
|
{{ addday }}
|
|
<tr><th><label>Duration</label></th><td><input type="text" id="duration_time"></td></tr>
|
|
<tr><th></th><td><div id="timespan"></div></td></tr>
|
|
<tr><td><input type="submit" name="addday" value="addday"></td></tr>
|
|
</form>
|
|
</table>
|
|
</div>
|
|
|
|
<div class="dialog" id="room_delete_dialog">
|
|
Are you sure you want to delete this room?
|
|
</div>
|
|
|
|
<div class="dialog" id="slot_delete_dialog">
|
|
Are you sure you want to delete this entire timeslot?
|
|
</div>
|
|
|
|
{% endblock %}
|