lecture.html 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Lee Morgan -lecture-</title>
  6. <link rel="stylesheet" href="/learn/style">
  7. </head>
  8. <body id="lectureBody">
  9. <h1 id="title"></h1>
  10. <h3 id="course"></h3>
  11. <h6 id="date"></h6>
  12. <iframe id="video"></iframe>
  13. <div id="lectureData">
  14. <h2 id="exerciseTitle">Exercises</h2>
  15. <ol id="exercises"></ol>
  16. <h2 id="readingTitle">Further Reading</h2>
  17. <ul id="readings"></ul>
  18. <h2 id="resourceTitle">Resources</h2>
  19. <div id="documents"></div>
  20. </div>
  21. <button id="questionButton">Ask a question</button>
  22. <form id="questionForm" style="display:none" method="post">
  23. <h1 id="questionHeader"></h1>
  24. <label>Your name
  25. <input id="questionName" type="text">
  26. </label>
  27. <label>Title
  28. <input id="questionTitle" type="text">
  29. </label>
  30. <label>Question
  31. <textarea id="questionContent" minlength="15" required></textarea>
  32. </label>
  33. <button id="questionAsk" type="button">Ask</button>
  34. <button id="questionCancel" type="button">Cancel</button>
  35. </form>
  36. <script>
  37. let video = document.getElementById("video");
  38. let sizeIframe = ()=>{
  39. let width = window.innerWidth;
  40. let height = window.innerHeight;
  41. video.width = width * 0.75;
  42. video.height = height * 0.75;
  43. }
  44. video.onload = sizeIframe();
  45. let id = window.location.href.split("/");
  46. id = id[id.length-1];
  47. fetch(`/learn/lectures/json/one/${id}`)
  48. .then(response => response.json())
  49. .then((response)=>{
  50. let date = new Date(response.createdDate);
  51. document.getElementById("title").innerText = response.title;
  52. document.getElementById("course").innerText = response.course.title;
  53. document.getElementById("date").innerText = date.toDateString();
  54. video.src = response.video;
  55. let documents = document.getElementById("documents");
  56. if(response.documents.length === 0) document.getElementById("resourceTitle").style.display = "none";
  57. for(let i = 0; i < response.documents.length; i++){
  58. let a = document.createElement("a");
  59. a.classList.add("liPad");
  60. a.href = response.documents[i].link;
  61. a.innerText = response.documents[i].name.replaceAll("_", " ");
  62. documents.appendChild(a);
  63. }
  64. let exercises = document.getElementById("exercises");
  65. if(response.exercises.length === 0) document.getElementById("exerciseTitle").style.display = "none";
  66. for(let i = 0; i < response.exercises.length; i++){
  67. let li = document.createElement("li");
  68. li.classList.add("liPad");
  69. li.innerText = response.exercises[i];
  70. exercises.appendChild(li);
  71. }
  72. let readings = document.getElementById("readings");
  73. if(response.furtherReading.length === 0) document.getElementById("readingtitle").style.display = "none";
  74. for(let i = 0; i < response.furtherReading.length; i++){
  75. let li = document.createElement("li");
  76. li.classList.add("liPad");
  77. readings.appendChild(li);
  78. let a = document.createElement("a");
  79. a.href = response.furtherReading[i].link;
  80. a.innerText = response.furtherReading[i].text;
  81. li.appendChild(a);
  82. }
  83. })
  84. .catch((err)=>{});
  85. //Questions
  86. let form = document.getElementById("questionForm");
  87. let formTitle = document.getElementById("questionHeader");
  88. let lecture = window.location.href.split("/");
  89. lecture = lecture[lecture.length-1];
  90. document.getElementById("questionCancel").onclick = ()=>{form.style.display = "none"};
  91. document.getElementById("questionButton").onclick = ()=>{
  92. form.style.display = "flex";
  93. form.route = "/learn/questions/create";
  94. formTitle.innerText = "Ask a Question";
  95. };
  96. document.getElementById("questionAsk").onclick = ()=>{
  97. event.preventDefault();
  98. form.style.display = "none";
  99. let data = {
  100. lecture: lecture,
  101. name: document.getElementById("questionName").value,
  102. title: document.getElementById("questionTitle").value,
  103. content: document.getElementById("questionContent").value
  104. };
  105. fetch(form.route, {
  106. method: "post",
  107. headers: {
  108. "Content-Type": "application/json"
  109. },
  110. body: JSON.stringify(data)
  111. })
  112. .then(response => response.json())
  113. .then((response)=>{
  114. if(typeof(response) !== "string"){
  115. console.log(response);
  116. }
  117. })
  118. .catch((err)=>{});
  119. }
  120. </script>
  121. </body>
  122. </html>