|
7 | 7 | var items = new Array(); |
8 | 8 | {% autoescape off %} |
9 | 9 | {% for slot in timeslots %}{% for session in slot.sessions %} |
10 | | -items.push({day:{{slot.day_id}}, time:"{{slot.time_desc}}", time_id:{{slot.time_id}}, name:"{{session.acronym_name}}", wg:"{{session.acronym}}", area:"{{session.area}}", room:"{{session.room_id.room_name}}"});{% endfor %}{% endfor %} |
| 10 | +items.push({day:{{slot.day_id}}, time:"{{slot.time_desc}}", time_id:{{slot.time_id}}, name:"{{session.acronym_name}}", wg:"{{session.acronym}}", area:"{{session.area}}", room:"{{session.room_id.room_name}}", dayname:"{{ slot.meeting_date|date:"l"|upper }}, {{ slot.meeting_date|date:"F j, Y" }}"{% if session.agenda_file %}, agenda:"/meeting/{{session.agenda_file}}"{% endif %}});{% endfor %}{% endfor %} |
11 | 11 | {% endautoescape %} |
12 | 12 |
|
13 | 13 | var fg = { |
|
50 | 50 | var lastheight; |
51 | 51 | var lastwidth; |
52 | 52 |
|
| 53 | +var padding = 2; |
| 54 | +var border = 1; |
| 55 | + |
53 | 56 | setInterval("animate()",50); |
54 | 57 |
|
55 | 58 | function draw_calendar() |
|
122 | 125 | var minute_height = (height - header_height)/num_minutes; |
123 | 126 | var body = document.body; |
124 | 127 | while (body.childNodes.length) { body.removeChild(body.childNodes[0]); } |
125 | | - var padding = 2; |
126 | | - var border = 1; |
127 | 128 |
|
128 | 129 | for (i = 0; i < num_days; i++) |
129 | 130 | { |
|
194 | 195 | //----------------------------------------------------------------- |
195 | 196 | var resize_func = function(div,t,l,w,h,to_fit) |
196 | 197 | { return function(){resize(div,t,l,w,h,to_fit);} } |
| 198 | + var click_func = function (e) { return function(){handle_click(e);}} |
197 | 199 |
|
198 | 200 | for (i = 0; i < items.length; i++) |
199 | 201 | { |
|
252 | 254 |
|
253 | 255 | e.onmouseout=resize_func(e,sess_top,sess_left,sess_width,sess_height,false); |
254 | 256 |
|
| 257 | + if (items[i].agenda) |
| 258 | + { |
| 259 | + e.onclick=click_func(e); |
| 260 | + e.style.cursor="pointer"; |
| 261 | + } |
| 262 | + |
255 | 263 | var div = document.createElement("div"); |
256 | 264 | div.appendChild(document.createTextNode(items[i].time)); |
257 | 265 | div.appendChild(document.createElement("br")); |
|
275 | 283 | e.appendChild(div); |
276 | 284 |
|
277 | 285 | body.appendChild(e); |
278 | | - |
279 | | - e=undefined; |
280 | | - |
281 | 286 | } |
282 | 287 | } |
283 | 288 |
|
|
338 | 343 | else |
339 | 344 | { |
340 | 345 | divlist.remove(i); |
| 346 | + if (div.callback) |
| 347 | + { |
| 348 | + var tmp = div.callback; |
| 349 | + div.callback = undefined; |
| 350 | + tmp(); |
| 351 | + } |
341 | 352 | } |
342 | 353 | div.style.height = tmp; |
343 | 354 | } |
344 | 355 | else |
345 | 356 | { |
346 | 357 | divlist.remove(i); |
| 358 | + if (div.callback) |
| 359 | + { |
| 360 | + var tmp = div.callback; |
| 361 | + div.callback = undefined; |
| 362 | + tmp(); |
| 363 | + } |
347 | 364 | } |
348 | 365 | } |
349 | 366 | } |
350 | 367 |
|
351 | 368 | } |
352 | 369 |
|
| 370 | +function finish_maximize(e) |
| 371 | +{ |
| 372 | + if (!items[e.id].agenda) |
| 373 | + { |
| 374 | + return; |
| 375 | + } |
| 376 | + |
| 377 | + var child = e.firstChild; |
| 378 | + |
| 379 | + var tmp = e.style.height; |
| 380 | + e.style.removeProperty("height"); |
| 381 | + var used_height = e.clientHeight; |
| 382 | + e.style.height = tmp; |
| 383 | + |
| 384 | + var frame = document.createElement("iframe"); |
| 385 | + frame.setAttribute("src",items[e.id].agenda); |
| 386 | + |
| 387 | + frame.style.position = "absolute"; |
| 388 | + frame.style.left = 8; |
| 389 | + frame.style.width = e.clientWidth - 16 - 2 * (padding + border); |
| 390 | + frame.style.top = used_height + 8; |
| 391 | + frame.style.height = e.clientHeight - used_height - 16 - 2*(padding+border); |
| 392 | + |
| 393 | + frame.style.background = "#fff"; |
| 394 | + frame.style.overflow="auto"; |
| 395 | + frame.id="agenda"; |
| 396 | + |
| 397 | + frame.style.border = e.style.border; |
| 398 | + frame.style.borderWidth = border; |
| 399 | + frame.style.padding = padding; |
| 400 | + frame.style.borderColor = e.style.borderColor; |
| 401 | + e.appendChild(frame); |
| 402 | +} |
| 403 | + |
| 404 | +function handle_click(e) |
| 405 | +{ |
| 406 | + if (e.onmouseover) |
| 407 | + { |
| 408 | + e.oldmouseover = e.onmouseover; |
| 409 | + e.oldmouseout = e.onmouseout; |
| 410 | + e.onmouseover = undefined; |
| 411 | + e.onmouseout = undefined; |
| 412 | + |
| 413 | + var callback_func = function (e) { return function(){finish_maximize(e);}} |
| 414 | + e.callback = callback_func(e); |
| 415 | + |
| 416 | + resize(e,0,0, |
| 417 | + document.body.clientWidth-2*(padding + border), |
| 418 | + document.body.clientHeight-2*(padding + border)); |
| 419 | + |
| 420 | + |
| 421 | + e.insertBefore(document.createElement("br"),e.firstChild); |
| 422 | + |
| 423 | + var h = document.createElement("span"); |
| 424 | + h.appendChild(document.createTextNode(items[e.id].dayname)); |
| 425 | + h.style.fontWeight="bold"; |
| 426 | + e.insertBefore(h,e.firstChild); |
| 427 | + e.style.fontSize="10pt"; |
| 428 | + } |
| 429 | + else |
| 430 | + { |
| 431 | + var agenda = document.getElementById("agenda"); |
| 432 | + if (agenda) |
| 433 | + { |
| 434 | + e.removeChild(agenda); |
| 435 | + } |
| 436 | + e.onmouseover = e.oldmouseover; |
| 437 | + e.onmouseout = e.oldmouseout; |
| 438 | + e.oldmouseover = undefined; |
| 439 | + e.oldmouseout = undefined; |
| 440 | + e.onmouseout(); |
| 441 | + |
| 442 | + e.removeChild(e.firstChild); |
| 443 | + e.removeChild(e.firstChild); |
| 444 | + e.style.fontSize="8pt"; |
| 445 | + } |
| 446 | +} |
| 447 | + |
353 | 448 | function wavg(x1,x2,percent) |
354 | 449 | { |
355 | 450 | var res = x2 * (percent / 100) + x1 * ((100 - percent) / 100); |
|
0 commit comments