Guest User

Untitled

a guest
Aug 25th, 2024
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.76 KB | None | 0 0
  1. const passwordInput = document.getElementById("password");
  2. const submitPasswordButton = document.getElementById("submit-password");
  3. const date = new Date();
  4. let activities = JSON.parse(localStorage.getItem("activities")) || {};
  5. let isAuthenticated = false;
  6.  
  7. const renderCalendar = () => {
  8. date.setDate(1);
  9.  
  10. const monthDays = document.querySelector(".days");
  11.  
  12. const lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate();
  13. const prevLastDay = new Date(date.getFullYear(), date.getMonth(), 0).getDate();
  14. const firstDayIndex = date.getDay();
  15. const lastDayIndex = new Date(date.getFullYear(), date.getMonth() + 1, 0).getDay();
  16. const nextDays = 7 - lastDayIndex - 1;
  17.  
  18. const months = [
  19. "januar", "februar", "marec", "april", "maj", "junij",
  20. "julij", "avgust", "september", "oktober", "november", "december"
  21. ];
  22.  
  23. // Update this line to include the year next to the month name
  24. document.querySelector(".date h1").innerHTML = `${months[date.getMonth()]} ${date.getFullYear()}`;
  25. document.querySelector(".date p").innerHTML = new Date().toDateString();
  26.  
  27. let days = "";
  28.  
  29. for (let x = firstDayIndex; x > 0; x--) {
  30. days += `<div class="prev-date">${prevLastDay - x + 1}</div>`;
  31. }
  32.  
  33. for (let i = 1; i <= lastDay; i++) {
  34. const fullDate = `${date.getFullYear()}-${date.getMonth() + 1}-${i}`;
  35. const activityExists = activities[fullDate];
  36.  
  37. if (activityExists) {
  38. days += `<div class="selected" ${isAuthenticated ? `data-activity="${activityExists}"` : ""}>${i}</div>`;
  39. } else if (i === new Date().getDate() && date.getMonth() === new Date().getMonth()) {
  40. days += `<div class="today">${i}</div>`;
  41. } else {
  42. days += `<div>${i}</div>`;
  43. }
  44. }
  45.  
  46. for (let j = 1; j <= nextDays; j++) {
  47. days += `<div class="next-date">${j}</div>`;
  48. }
  49.  
  50. monthDays.innerHTML = days;
  51.  
  52. document.querySelectorAll(".days div").forEach(day => {
  53. day.addEventListener("click", function () {
  54. if (isAuthenticated) {
  55. const dayNumber = this.innerText;
  56. const fullDate = `${date.getFullYear()}-${date.getMonth() + 1}-${dayNumber}`;
  57.  
  58. let activity = prompt("Vpiši dejavnost za ta dan:", this.getAttribute('data-activity') || "");
  59.  
  60. if (activity) {
  61. activities[fullDate] = activity;
  62. this.classList.add("selected");
  63. this.setAttribute("data-activity", activity);
  64. } else {
  65. delete activities[fullDate];
  66. this.classList.remove("selected");
  67. this.removeAttribute("data-activity");
  68. }
  69.  
  70. localStorage.setItem("activities", JSON.stringify(activities));
  71. } else {
  72. alert("Potrebuješ geslo, da pogledaš ali dodaš dejavnost.");
  73. }
  74. });
  75.  
  76. day.addEventListener("mouseover", function () {
  77. if (isAuthenticated) {
  78. const activity = this.getAttribute('data-activity');
  79. if (activity) {
  80. this.setAttribute("title", activity);
  81. }
  82. }
  83. });
  84. });
  85. };
  86.  
  87. document.querySelector(".prev").addEventListener("click", () => {
  88. date.setMonth(date.getMonth() - 1);
  89. renderCalendar();
  90. });
  91.  
  92. document.querySelector(".next").addEventListener("click", () => {
  93. date.setMonth(date.getMonth() + 1);
  94. renderCalendar();
  95. });
  96.  
  97. passwordInput.addEventListener("keypress", (event) => {
  98. if (event.key === "Enter") {
  99. submitPasswordButton.click();
  100. }
  101. });
  102.  
  103. submitPasswordButton.addEventListener("click", () => {
  104. const password = document.getElementById("password").value;
  105. if (password === "matematik") {
  106. isAuthenticated = true;
  107. document.querySelector(".password-section").style.display = "none";
  108. renderCalendar();
  109. alert("Uspešno vpisani");
  110. } else {
  111. alert("Napačno geslo. Puskusi znova!");
  112. }
  113. });
  114.  
  115. renderCalendar();
  116.  
Advertisement
Add Comment
Please, Sign In to add comment