Le repo des sources pour le site web des JM2L
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 
 
 
 

112 Zeilen
3.4 KiB

  1. var scheds = {};
  2. function example() {
  3. var taskStatus = {'Stand':'Stand',
  4. 'Table ronde':'Table-ronde',
  5. 'Atelier':'Atelier',
  6. 'Concert':'Concert',
  7. 'Conference':'Conference',
  8. 'Repas':'Repas'}
  9. d3.json("le-prog-json", function(error, JsonContent) {
  10. if (error)
  11. return console.warn(error);
  12. $.each( JsonContent,
  13. function( EventType, ListEvType ) {
  14. $.each( ListEvType,
  15. function( Day, ListEvent ) {
  16. var placeNames = [];
  17. for ( var i = 0; i < ListEvent.length; i++) {
  18. placeNames.push(ListEvent[i]["placeName"]);
  19. // convert json text to js Date
  20. ListEvent[i]["startDate"] = new Date(ListEvent[i]["startDate"]);
  21. ListEvent[i]["endDate"] = new Date(ListEvent[i]["endDate"]);
  22. }
  23. //placeNames.push("unk")
  24. scheds[EventType+"_"+Day] = new d3.sched("SVG_"+Day)
  25. .taskTypes(placeNames)
  26. .taskStatus(taskStatus)
  27. .tickFormat("%H:%M");
  28. //scheds[EventType+"_"+Day].timeDomainMode("fit");
  29. //scheds[EventType+"_"+Day].margin(margin);
  30. scheds[EventType+"_"+Day](ListEvent);
  31. //scheds[EventType+"_"+Day].zoomed();
  32. scheds[EventType+"_"+Day].redraw("SVG_"+Day, ListEvent)
  33. });
  34. });
  35. });
  36. };
  37. // Query Programme
  38. example();
  39. function changeTimeDomain(timeDomainString) {
  40. this.timeDomainString = timeDomainString;
  41. switch (timeDomainString) {
  42. case "1hr":
  43. format = "%H:%M:%S";
  44. sched.timeDomain([ d3.time.hour.offset(getEndDate(), -1), getEndDate() ]);
  45. break;
  46. case "3hr":
  47. format = "%H:%M";
  48. sched.timeDomain([ d3.time.hour.offset(getEndDate(), -3), getEndDate() ]);
  49. break;
  50. case "6hr":
  51. format = "%H:%M";
  52. sched.timeDomain([ d3.time.hour.offset(getEndDate(), -6), getEndDate() ]);
  53. break;
  54. case "1day":
  55. format = "%H:%M";
  56. sched.timeDomain([ d3.time.day.offset(getEndDate(), -1), getEndDate() ]);
  57. break;
  58. case "1week":
  59. format = "%a %H:%M";
  60. sched.timeDomain([ d3.time.day.offset(getEndDate(), -7), getEndDate() ]);
  61. break;
  62. default:
  63. format = "%H:%M"
  64. }
  65. sched.tickFormat(format);
  66. sched.redraw(tasks);
  67. }
  68. function getEndDate() {
  69. var lastEndDate = Date.now();
  70. if (tasks.length > 0) {
  71. lastEndDate = tasks[tasks.length - 1].endDate;
  72. }
  73. return lastEndDate;
  74. }
  75. function addTask() {
  76. var lastEndDate = getEndDate();
  77. var taskStatusKeys = Object.keys(taskStatus);
  78. var taskStatusName = taskStatusKeys[Math.floor(Math.random() * taskStatusKeys.length)];
  79. var taskName = taskNames[Math.floor(Math.random() * taskNames.length)];
  80. tasks.push({
  81. "startDate" : d3.time.hour.offset(lastEndDate, Math.ceil(1 * Math.random())),
  82. "endDate" : d3.time.hour.offset(lastEndDate, (Math.ceil(Math.random() * 3)) + 1),
  83. "taskName" : taskName,
  84. "status" : taskStatusName
  85. });
  86. changeTimeDomain(timeDomainString);
  87. sched.redraw(tasks);
  88. };
  89. function removeTask() {
  90. tasks.pop();
  91. changeTimeDomain(timeDomainString);
  92. sched.redraw(tasks);
  93. };