383 lines
14 KiB
HTML
383 lines
14 KiB
HTML
{% extends "base.html" %}
|
|
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
|
{% load origin %}
|
|
{% load staticfiles %}
|
|
{% load ietf_filters %}
|
|
{% load humanize %}
|
|
|
|
{% block morecss %}
|
|
{% for area in area_list %}
|
|
.{{ area.upcase_acronym}}-scheme, .meeting_event th.{{ area.upcase_acronym}}-scheme, #{{ area.upcase_acronym }}-groups, #selector-{{ area.upcase_acronym }} { color:{{ area.fg_color }}; background-color: {{ area.bg_color }} }
|
|
.director-mark-{{ area.upcase_acronym}} {
|
|
border: 2px solid {{ area.fg_color}};
|
|
color:{{ area.fg_color }};
|
|
background-color: {{ area.bg_color }}
|
|
}
|
|
{% endfor %}
|
|
{% endblock morecss %}
|
|
|
|
{% block title %}IETF {{ meeting.number }} Meeting Agenda{% 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/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 'js-cookie/src/js.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", Cookies.get('csrftoken'));
|
|
}
|
|
}
|
|
});
|
|
</script>
|
|
<script type='text/javascript' src="{% static 'ietf/js/agenda/jquery-ui-1.9.0.custom/minified/jquery-ui.custom.min.js' %}"></script>
|
|
<script type='text/javascript' src="{% static 'ietf/js/agenda/jquery-ui-1.9.0.custom/minified/jquery.ui.widget.min.js' %}"></script>
|
|
<script type='text/javascript' src="{% static 'ietf/js/agenda/jquery-ui-1.9.0.custom/minified/jquery.ui.droppable.min.js' %}"></script>
|
|
<script type='text/javascript' src="{% static 'ietf/js/agenda/jquery-ui-1.9.0.custom/minified/jquery.ui.sortable.min.js' %}"></script>
|
|
<script type='text/javascript' src="{% static 'ietf/js/agenda/jquery-ui-1.9.0.custom/minified/jquery.ui.accordion.min.js' %}"></script>
|
|
<script type='text/javascript' src="{% static 'ietf/js/agenda/jquery-ui-1.9.0.custom/minified/jquery.ui.draggable.min.js' %}"></script>
|
|
|
|
<script type='text/javascript' src="{% static 'spin.js/spin.min.js' %}"></script>
|
|
<script type='text/javascript' src="{% static 'ietf/js/agenda/agenda_edit.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_objects.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 schedule_id = {{ schedule.id }};
|
|
var schedule_owner_href = "{{ schedule.owner_email }}";
|
|
var schedule_name = "{{ schedule.name }}";
|
|
var meeting_base_url = "{{ meeting_base_url }}";
|
|
var schedule_owner_email = "{{ schedule.owner_email }}";
|
|
var site_base_url = "{{ site_base_url }}";
|
|
var assignments_post_href = "{% url "ietf.meeting.ajax.assignments_json" meeting.number schedule.owner_email schedule.name %}";
|
|
var total_days = {{time_slices|length}};
|
|
var total_rooms = {{rooms|length}};
|
|
|
|
function setup_slots(promiselist){
|
|
{% for day in time_slices %}
|
|
days.push("{{day}}");
|
|
{% endfor %}
|
|
|
|
{% for ad in area_directors %}
|
|
area_directors["{{ad.group.acronym}}"] = [];
|
|
{% endfor %}
|
|
{% for ad in area_directors %}
|
|
area_directors["{{ad.group.acronym}}"].push(find_person_by_href("{{ad.person.defurl}}"));
|
|
{% endfor %}
|
|
|
|
var ts_promise = load_timeslots("{% url "ietf.meeting.ajax.timeslot_slotsurl" meeting.number %}");
|
|
var sess_promise = load_sessions("{% url "ietf.meeting.ajax.sessions_json" meeting.number %}");
|
|
promiselist.push(ts_promise);
|
|
promiselist.push(sess_promise);
|
|
|
|
var ss_promise = load_assignments(ts_promise, sess_promise, assignments_post_href);
|
|
promiselist.push(ss_promise);
|
|
|
|
console.log("setup_slots run");
|
|
|
|
{% for area in area_list %}
|
|
legend_status["{{area.upcase_acronym}}"] = true;
|
|
{% endfor %}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
</script>
|
|
<style type='text/css'>
|
|
|
|
</style>
|
|
{% endblock js %}
|
|
|
|
|
|
{% block content %}
|
|
{% origin %}
|
|
<div id="read_only">
|
|
<p>You do not have write permission to agenda: {{schedule.name}}</p>
|
|
<p>Please save this agenda to your account first.</p>
|
|
</div>
|
|
|
|
<div class="content"> {% comment %} For preserving styling across the facelift {% endcomment %}
|
|
|
|
<div class="wrapper custom_text_stuff">
|
|
|
|
|
|
<div id="unassigned-items">
|
|
<div id="all_agendas" class="events_bar_buttons">
|
|
<a href="{% url "ietf.meeting.views.list_schedules" meeting.number %}">
|
|
<button class="styled_button">all agendas</button>
|
|
</a>
|
|
</div>
|
|
<div id="hidden_room" class="hide_buttons events_bar_buttons">
|
|
<div class="very_small left">hidden rooms:<span id="hidden_rooms" >0/{{rooms|length}}</span></div>
|
|
<div><button class="small_button" id="show_hidden_rooms">Show</button></div>
|
|
</div>
|
|
<div id="hidden_day" class="hide_buttons events_bar_buttons">
|
|
<div class="very_small left">hidden days:<span id="hidden_days" >0/{{time_slices|length}}</span></div>
|
|
<div><button class="small_button" id="show_hidden_days">Show</button></div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div id="unassigned_order" class="events_bar_buttons">
|
|
<select id="unassigned_sort_button" class="dialog">
|
|
<option id="unassigned_alpha" value="alphaname" selected>Alphabetical</option>
|
|
<option id="unassigned_area" value="area">By Area</option>
|
|
<option id="unassigned_duration" value="duration">By Duration</option>
|
|
<option id="unassigned_special" value="special">Special Request</option>
|
|
</select>
|
|
</div>
|
|
<div class="agenda_slot_title" >
|
|
<div style="ui-icon ui-icon-arrow-1-w" id="close_ietf_menubar">
|
|
<
|
|
</div>
|
|
<b>Unassigned Events:</b>
|
|
<span id="schedule_name">name: {{schedule.name}}</span>
|
|
</div>
|
|
<div id="sortable-list" class="ui-droppable bucket-list room_title">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="agenda_div">
|
|
|
|
<div id="dialog-confirm" title="" style="display:none">
|
|
<p>
|
|
<span class="ui-icon ui-icon-alert" style="background: white; float: left; margin: 0 7px 20px 0;"></span>
|
|
Are you sure you want to put two sessions into the same slot?
|
|
</p>
|
|
</div>
|
|
|
|
<div id="can-extend-dialog" title="" class="ui-dialog dialog" style="display:none">
|
|
</div>
|
|
|
|
<div id="can-not-extend-dialog" title="" class="ui-dialog dialog" style="display:none">
|
|
<p>
|
|
<span class="ui-icon ui-icon-alert" style="background: white; float: left; margin: 0 7px 20px 0;"></span>
|
|
You can not extend this session. The slot is not available.
|
|
</p>
|
|
</div>
|
|
|
|
|
|
<div id="dialog-confirm" title="" style="display:none">
|
|
<p>
|
|
<span class="ui-icon ui-icon-alert" style="background: white; float: left; margin: 0 7px 20px 0;"></span>
|
|
Are you sure you want to put two sessions into the same slot?
|
|
</p>
|
|
</div>
|
|
|
|
<!-- some boxes for dialogues -->
|
|
<div id="dialog-confirm-two" title="" style="display:none">
|
|
<p>
|
|
<span class="ui-icon ui-icon-alert" style="background: white; float: left; margin: 0 7px 20px 0;"></span>
|
|
<span class="dialog-confirm-text">Are you sure you want to put two sessions into the same slot?</span>
|
|
</p>
|
|
</div>
|
|
|
|
<div id="dialog-confirm-toosmall" title="" style="display:none">
|
|
<p>
|
|
<span class="ui-icon ui-icon-alert" style="background: white; float: left; margin: 0 7px 20px 0;"></span>
|
|
<span class="dialog-confirm-text">The room you are moving to has a lower
|
|
room capacity then the requested capacity,<br>
|
|
Are you sure you want to continue?
|
|
</span>
|
|
</p>
|
|
</div>
|
|
|
|
<div id="dialog-confirm-twotoosmall" title="" style="display:none">
|
|
<p>
|
|
<span class="ui-icon ui-icon-alert" style="background: white; float: left; margin: 0 7px 20px 0;"></span>
|
|
<span class="dialog-confirm-text">
|
|
The slot you are moving to already has a session in it, <br>
|
|
the room is also smaller than the requested amount.<br>
|
|
Are you sure you want to continue?
|
|
</span>
|
|
</p>
|
|
</div>
|
|
|
|
|
|
{%comment%}<table id="meetings" class="ietf-navbar" style="width:100%">{%endcomment%}
|
|
<table id="meetings" class="ietf-navbar" >
|
|
<tr>
|
|
<th class="schedule_title"><div id="pageloaded" style="display:none">loaded</div><div id="spinner"><!-- spinney goes here --></div></th>
|
|
{% comment %}<th></th>{% endcomment %}
|
|
{% for day in time_slices %}
|
|
<th colspan="{{date_slices|colWidth:day}}" id="{{day|date:'Y-m-d'}}-btn" class=" day_{{day}} agenda_slot_title agenda_slot_unavailable">
|
|
<div id="close_{{day|date:'Y-m-d'}}" class="close top_left very_small close_day">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>
|
|
|
|
<tr>
|
|
<th class="th_column"><button id="show_all_button" class="styled_button">show all</button></th>
|
|
{% comment %}<th><!-- resources --></th>{% endcomment %}
|
|
{% for day in time_slices %}
|
|
{% for slot in date_slices|lookup:day %}
|
|
<th class="day_{{day}}-{{slot.0|date:'Hi'}} day_{{day}} room_title ">{{slot.0|date:'Hi'}}-{{slot.1|date:'Hi'}} </th>
|
|
|
|
{% endfor %}
|
|
<th class="day_{{day}} spacer {{day|date:'Y-m-d'}}-spacer"></th>
|
|
|
|
{% endfor %}
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
{% for r in rooms %}
|
|
<tr id="{{r.name|to_acceptable_id}}" class="{% cycle 'agenda_row_alt' '' %} agenda_slot">
|
|
<th class="vert_time">
|
|
<div class="close very_small close_room top_left small_button" id="close_{{r.name|to_acceptable_id}}">X</div>
|
|
<div class="right room_name">{{r.name}} <span class="capacity">({{r.capacity}})</span></div>
|
|
</th>
|
|
{% comment 'The secretariat is not using these features' %}
|
|
<th class="room_features">
|
|
<div class="resource_list">
|
|
{% for resource in r.resources.all %}
|
|
<span class="resource_image">
|
|
<img src="{% static 'ietf/images/{{ resource.icon }}' %}" height=24 alt="{{resource.desc}}" title="{{resource.desc}}"/>
|
|
</span>
|
|
{% endfor %}
|
|
</div>
|
|
</th>
|
|
{% endcomment %}
|
|
{% for day in time_slices %}
|
|
{% for slot in date_slices|lookup:day %}
|
|
<td id="{{r.dom_id}}_{{day}}_{{slot.0|date:'Hi'}}" class="day_{{day}} agenda-column-{{day}}-{{slot.0|date:'Hi'}} agenda_slot agenda_slot_unavailable" capacity="{{r.capacity}}" ></td>
|
|
{% endfor %}
|
|
<td class="day_{{day}} spacer {{day|date:'Y-m-d'}}-spacer"></td>
|
|
{% endfor %}
|
|
</tr>
|
|
{% endfor %}
|
|
</table>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div id="session-info" class="ui-droppable bucket-list room_title">
|
|
<div class="agenda_slot_title"><b>Session Information:</b></div>
|
|
|
|
<div class="ss_info_box">
|
|
<div class="ss_info ss_info_left">
|
|
<table>
|
|
<tr><td class="ss_info_name_short">Group:</td><td><span id="info_grp"></span>
|
|
<!-- <button id="agenda_sreq_button" class="right">Edit Request</button> --></tr>
|
|
<tr><td class="ss_info_name_short">Name:</td> <td id="info_name"></td></tr>
|
|
<tr><td class="ss_info_name_short">Area:</td> <td><span id="info_area"></span>
|
|
<button id="show_all_area" class="right">Show All</button></td></tr>
|
|
<tr>
|
|
<td colspan=2>
|
|
<div class="agenda_nice_button" id="agenda_find_free">
|
|
<button class="agenda_selected_buttons small_button" id="find_free">Find Free</button>
|
|
</div>
|
|
<div class="agenda_nice_button button_disabled" id="agenda_double_slot">
|
|
<button class="agenda_selected_buttons small_button" disabled id="double_slot">Extend</button>
|
|
</div>
|
|
<div id="agenda_pin_slot" class="agenda_nice_button button_disabled">
|
|
<button class="agenda_selected_buttons small_button" disabled id="pin_slot">Pin</button>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
|
|
</table>
|
|
</div>
|
|
|
|
<div class="ss_info ss_info_right">
|
|
<table>
|
|
<tr><td class="ss_info_name_long">Duration/Capacity:</td>
|
|
<td class="info_split"><span id="info_duration"></span>
|
|
<span style="right" id="grp_type"></span></td>
|
|
<td class="info_split" id="info_capacity"></td></tr>
|
|
<tr><td class="ss_info_name_long">Location:</td><td colspan=2 id="info_location"></td></tr>
|
|
<tr><td class="ss_info_name_long">Responsible AD:</td><td colspan=2 id="info_responsible"></td></tr>
|
|
<tr><td class="ss_info_name_long">Requested By:</td><td colspan=2 id="info_requestedby"></td></tr>
|
|
<tr>
|
|
<td colspan=3>
|
|
<div class="agenda_nice_button button_disabled" id="agenda_prev_session">
|
|
<button class="agenda_selected_buttons small_button" disabled id="prev_session">Prev</button>
|
|
</div>
|
|
<div class="agenda_nice_button button_disabled" id="agenda_show">
|
|
<button class="agenda_selected_buttons small_button" disabled id="show_session">Show</button>
|
|
</div>
|
|
<div class="agenda_nice_button button_disabled" id="agenda_next_session">
|
|
<button class="agenda_selected_buttons small_button" disabled id="next_session">Next</button>
|
|
</div>
|
|
|
|
<div class="request_features" id="agenda_requested_features">
|
|
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<div id="conflict_table">
|
|
<div id="special_requests">Special Requests</div>
|
|
<table>
|
|
<tbody id="conflict_table_body">
|
|
<tr class="conflict_list_row">
|
|
<td class="conflict_list_title">
|
|
Group conflicts
|
|
</td>
|
|
<td id="conflict_group_list">
|
|
<ul>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
<tr class="conflict_list_row">
|
|
<td class="conflict_list_title">
|
|
<b>be present</b>
|
|
</td>
|
|
<td id="conflict_people_list">
|
|
<ul>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="color_legend">
|
|
{% for area in area_list %}
|
|
<span class="{{area.upcase_acronym}}-scheme"><input class='color_checkboxes' type="checkbox" id="{{area.upcase_acronym}}" value="{{area.upcase_acronym}}-value" checked>{{area.upcase_acronym}}</span>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="agenda_save_box">
|
|
|
|
<div id="agenda_title"><b>Agenda name: </b><span>{{schedule.name}}</span></div>
|
|
<div id="agenda_saveas">
|
|
<form action="{{saveasurl}}" method="post">{% csrf_token %}
|
|
{{ saveas.as_p }}
|
|
<input id="saveasbutton" type="submit" name="saveas" value="saveas">
|
|
</form>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div> {% comment %} End of .content div {% endcomment %}
|
|
|
|
{% endblock %}
|