editLecture.html 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Lee Morgan</title>
  6. <style>
  7. form{
  8. display: flex;
  9. flex-direction: column;
  10. }
  11. </style>
  12. </head>
  13. <body>
  14. <form id="form" method="post" enctype="multipart/form-data">
  15. <label>Uploader
  16. <input name="uploader" type="text" required>
  17. </label>
  18. <label>Password
  19. <input name="password" type="password" required>
  20. </label>
  21. <label>Title
  22. <input id="titleInput" name="title" type="text" required>
  23. </label>
  24. <label>Video
  25. <input id="videoInput" name="video" type="text" required>
  26. </label>
  27. <label>Description
  28. <textarea id="descriptionInput" name="description"></textarea>
  29. </label>
  30. <h2>Further Reading</h2>
  31. <button id="readingButton" type="button">Add Link</button>
  32. <div id="reading">
  33. <template id="readingItem">
  34. <div class="readingItem">
  35. <input type="text">
  36. <input type="text">
  37. <button type="button">remove</button>
  38. </div>
  39. </template>
  40. </div>
  41. <h2>Exercises</h2>
  42. <button id="exercisesButton" type="button">Add Exercise</button>
  43. <div id="exercises">
  44. <template id="exercisesItem">
  45. <div class="exercisesItem">
  46. <textarea></textarea>
  47. <button type="button">remove</button>
  48. </div>
  49. </template>
  50. </div>
  51. <input id="readingHidden" name="furtherReading" type="hidden">
  52. <input id="exerciseHidden" name="exercises" type="hidden">
  53. <input id="dateInput" name="date" type="hidden">
  54. <input type="submit" value="Submit">
  55. </form>
  56. <script>
  57. let id = window.location.href.split("/");
  58. id = id[id.length-1];
  59. fetch(`/learn/lectures/json/one/${id}`)
  60. .then(response => response.json())
  61. .then((response)=>{
  62. document.getElementById("titleInput").value = response.title;
  63. document.getElementById("videoInput").value = response.video;
  64. document.getElementById("descriptionInput").innerText = response.description;
  65. let readingDiv = document.getElementById("reading");
  66. let readingTemplate = document.getElementById("readingItem").content.children[0];
  67. for(let i = 0; i < response.furtherReading.length; i++){
  68. let div = readingTemplate.cloneNode(true);
  69. div.children[0].value = response.furtherReading[i].text;
  70. div.children[1].value = response.furtherReading[i].link;
  71. div.children[2].onclick = ()=>{div.parentElement.removeChild(div)};
  72. readingDiv.appendChild(div);
  73. }
  74. let exerciseDiv = document.getElementById("exercises");
  75. let exerciseTemplate = document.getElementById("exercisesItem").content.children[0];
  76. for(let i = 0; i < response.exercises.length; i++){
  77. let div = exerciseTemplate.cloneNode(true);
  78. div.children[0].innerText = response.exercises[i];
  79. div.children[1].onclick = ()=>{div.parentElement.removeChild(div)};
  80. exerciseDiv.appendChild(div);
  81. }
  82. document.getElementById("readingButton").onclick = ()=>{
  83. let div = readingTemplate.cloneNode(true);
  84. div.children[2].onclick = ()=>{div.parentElement.removeChild(div)};
  85. readingDiv.appendChild(div);
  86. };
  87. document.getElementById("exercisesButton").onclick = ()=>{
  88. let div = exerciseTemplate.cloneNode(true);
  89. div.children[1].onclick = ()=>{div.parentElement.removeChild(div)};
  90. exerciseDiv.appendChild(div);
  91. };
  92. })
  93. .catch((err)=>{});
  94. let form = document.getElementById("form");
  95. form.onsubmit = ()=>{
  96. event.preventDefault();
  97. let readingDiv = document.getElementById("reading").children;
  98. let readingText = "";
  99. for(let i = 1; i < readingDiv.length; i++){
  100. readingText += `${readingDiv[i].children[0].value}\n${readingDiv[i].children[1].value}\n`;
  101. }
  102. document.getElementById("readingHidden").value = readingText;
  103. let exerciseDivs = document.getElementById("exercises").children;
  104. let exerciseText = "";
  105. for(let i = 1; i < exerciseDivs.length; i++){
  106. exerciseText += `${exerciseDivs[i].children[0].value}\n`;
  107. }
  108. document.getElementById("exerciseHidden").value = exerciseText;
  109. document.getElementById("dateInput").value = new Date();
  110. form.submit();
  111. }
  112. </script>
  113. </body>
  114. </html>