Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2019
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.66 KB | None | 0 0
  1. var brojMjeseca = 10;
  2. let mjeseci = ["VA1", "VA2", "MA", "EE1", "EE2", "0-01","0-02","0-03","0-04","0-05","0-06","0-07","0-08","0-09","1-01","1-02","1-03","1-04","1-05","1-06","1-07","1-08","1-09"];
  3.  
  4. let Kalendar = (function(){
  5.  
  6. //interne liste
  7. let redovnaSala;
  8. let vanrednaSala;
  9.  
  10.  
  11. function obojiZauzecaImpl(kalendarRef, mjesec, sala, pocetak, kraj){
  12. let postojiSalaRedovna = 0;
  13. let postojiSalaVanredna = 0;
  14. let semestar = "";
  15. if (kalendarRef != null) {
  16. for (let i = 0; i < redovnaSala.length; i++) {
  17. if (redovnaSala[i].naziv == sala) {
  18. postojiSalaRedovna = 1;
  19. semestar = redovnaSala[i].semestar;
  20. break;
  21. }
  22. }
  23. if (!postojiSalaRedovna) {
  24. for (let i = 0; i < vanrednaSala.length; i++) {
  25. if (vanrednaSala[i].naziv == sala) {
  26. postojiSalaVanredna = 1;
  27. semestar = vanrednaSala[i].semestar;
  28. break;
  29. }
  30. }
  31. }
  32. if (postojiSalaRedovna == 1 || postojiSalaVanredna == 1) {
  33. if (semestar == "zimski") {
  34. if (mjesec >= 9 || mjesec == 0) { //validan zimski mjesec
  35. if (postojiSalaRedovna == 1) {
  36. for (let i = 0; i < redovnaSala.length; i++) {
  37. if (redovnaSala[i].naziv == sala) {
  38. if (redovnaSala[i].pocetak <= pocetak || redovnaSala[i].kraj > pocetak) {
  39. if (mjesec === 11) { //decembar ima 6 sedmica
  40. for(let j = 0; j < 7; j++) //bojenje
  41. kalendarRef.children[j].children[redovnaSala[i].dan].className = "zauzeta";
  42. }
  43. else {
  44. for (let j = 3; j < 8; j++)
  45. kalendarRef.children[0].children[j].children[redovnaSala[i].dan].children[0].style.backgroundColor = "orangered";
  46. }
  47. }
  48. }
  49. }
  50. }
  51. else {
  52. for (let i = 0; i < vanrednaSala.lenght; i++) {
  53. if (redovnaSala[i].naziv == sala) {
  54. if (redovnaSala[i].pocetak > pocetak && redovnaSala[i].pocetak >= kraj || redovnaSala[i].kraj < pocetak && redovnaSala[i].pocetak > kraj) {
  55.  
  56. }
  57. }
  58. }
  59. }
  60. }
  61. }
  62. if (semestar == "ljetni") {
  63. if (mjesec >= 1 && mjesec <= 5) { //validan ljetni mjesec
  64. if (postojiSalaRedovna) {
  65. for (let i = 0; i < redovnaSala.lenght; i++) {
  66. if (redovnaSala[i].naziv == sala) {
  67. if (redovnaSala[i].pocetak > pocetak && redovnaSala[i].pocetak >= kraj || redovnaSala[i].kraj < pocetak && redovnaSala[i].pocetak > kraj) {
  68. for(let j = 4; j < 8; j++) //bojenje
  69. kalendarRef.children[j].children[redovnaSala[i].dan].className = "zauzeta";
  70. }
  71. }
  72. }
  73. }
  74. }
  75. }
  76. }
  77. }
  78. else {
  79. kalendarRef.innerHTML = "";
  80. Kalendar.iscrtajKalendar(kalendarRef,mjesec);
  81. }
  82. };
  83.  
  84.  
  85. function ucitajPodatkeImpl(periodicna, vanredna){
  86. redovnaSala = periodicna;
  87. vanrednaSala = vanredna;
  88. };
  89.  
  90. function iscrtajKalendarImpl(kalendarRef, mjesec){
  91. let tbl = document.createElement("table");
  92. tbl.style.backgroundColor = "rgb(228,228,228)";
  93. tbl.style.border = "3 px solid grey";
  94. let danas = new Date();
  95. let godina = danas.getFullYear();
  96. let prviDan = (new Date(godina, mjesec)).getDay();
  97. let brojDanauMjesecu = 32 - new Date(godina, mjesec,32).getDate();
  98. let mjeseci = ["Januar", "Februar", "Mart", "April", "Maj", "Juni", "Juli", "August", "Septembar", "Oktobar", "Novembar", "Decembar"];
  99. let dani = ["PON", "UTO", "SRI", "ČET", "PET", "SUB", "NED"];
  100. let datum = 1;
  101. for (let i = 0; i < 9; i++) {
  102. let red = document.createElement("tr");
  103. if (i == 0) {
  104. //naziv mjeseca, prvi red
  105. let celija = document.createElement("td");
  106. let tekst = document.createTextNode(mjeseci[mjesec]);
  107. let bold = document.createElement('strong');
  108. bold.appendChild(tekst);
  109. celija.appendChild(bold);
  110. celija.colSpan = "7";
  111. red.appendChild(celija);
  112. } //drugi red
  113. else if (i == 1) {
  114. for (let k = 0; k < 7; k++) {
  115. if (k == 0) {
  116. let celija = document.createElement("td");
  117. let tekst = document.createTextNode("\u00A0");
  118. celija.appendChild(tekst);
  119. red.appendChild(celija);
  120. }
  121. }
  122. }
  123. //naziv dana u mjesecu, treći red
  124. else if (i == 2) {
  125. for (let k = 0; k < 7; k++) {
  126. let celija = document.createElement("td");
  127. let tekst = document.createTextNode(dani[k]);
  128. celija.appendChild(tekst);
  129. celija.style.border = "3px solid steelblue";
  130. celija.style.textAlign = "center";
  131. red.appendChild(celija);
  132. }
  133. }
  134. //dani u mjesecu, četvrti do devetog reda
  135. else {
  136. for (let j = 0; j < 7; j++) {
  137. if (prviDan - 1 < 0)
  138. prviDan += 7;
  139. //za prazne ćelije
  140. if (i == 3 && j < prviDan-1) { // ne radi za decembar i septembar
  141. let celija = document.createElement("td");
  142. let tekst = document.createTextNode("");
  143. celija.appendChild(tekst);
  144. red.appendChild(celija);
  145. }
  146. else if (datum > brojDanauMjesecu) {
  147. break;
  148. }
  149. else {
  150. let celija = document.createElement("td");
  151. let tekst = document.createTextNode(datum);
  152. celija.appendChild(tekst);
  153. celija.style.textAlign = "center";
  154. celija.style.border = "3px solid steelblue";
  155. celija.style.backgroundColor = "white";
  156. for (let k = 0; k < 1; k++) {
  157. let celija2 = document.createElement("td");
  158. let tekst2 = document.createTextNode("");
  159. celija2.appendChild(tekst2);
  160. celija2.style.padding = "13px";
  161. celija2.style.alignSelf = "center";
  162. celija2.style.border = "4px solid steelblue";
  163. celija2.className = "slobodna";
  164. celija.appendChild(celija2);
  165. }
  166. red.appendChild(celija);
  167. datum++;
  168. }
  169. }
  170. }
  171. tbl.appendChild(red); // appending each row into calendar body.
  172. kalendarRef.appendChild(tbl);
  173. }
  174. }
  175.  
  176. return {
  177. obojiZauzeca: obojiZauzecaImpl,
  178. ucitajPodatke: ucitajPodatkeImpl,
  179. iscrtajKalendar: iscrtajKalendarImpl
  180. }
  181. }());
  182.  
  183. let listaR = [{
  184. dan: 0,
  185. semestar: "zimski",
  186. pocetak: "12:00",
  187. kraj: "14:00",
  188. naziv: "VA1",
  189. predavac: "Jurić"
  190. },
  191. {
  192. dan: 6,
  193. semestar: "ljetni",
  194. pocetak: "12:00",
  195. kraj: "14:00",
  196. naziv: "VA2",
  197. predavac: "Jurić"
  198. }];
  199.  
  200. let listaVR = [{
  201. datum: "25.11.2019",
  202. pocetak: "10:00",
  203. kraj: "14:00",
  204. naziv: "MA",
  205. predavac: "Cizi"
  206. }];
  207.  
  208. Kalendar.ucitajPodatke(listaR,listaVR);
  209.  
  210. document.getElementsByClassName("kalendar")[0].innerHTML = "";
  211. Kalendar.iscrtajKalendar(document.getElementsByClassName("kalendar")[0], 0);
  212.  
  213.  
  214. function prethodni() {
  215. let kal = document.getElementById('Kalendar');
  216. kal.innerHTML = "";
  217. if (brojMjeseca - 1 < 0)
  218. Kalendar.iscrtajKalendar(kal, 0);
  219. else {
  220. brojMjeseca -= 1;
  221. Kalendar.iscrtajKalendar(kal, brojMjeseca);
  222. }
  223. };
  224.  
  225. function sljedeci() {
  226. let kal = document.getElementById('Kalendar');
  227. kal.innerHTML = "";
  228. if (brojMjeseca + 1 > 11) {
  229. Kalendar.iscrtajKalendar(kal, 11);
  230. }
  231. else {
  232. brojMjeseca++;
  233. Kalendar.iscrtajKalendar(kal, brojMjeseca);
  234. }
  235. };
  236.  
  237.  
  238.  
  239. Kalendar.obojiZauzeca(document.getElementById('Kalendar'),0,"VA1","12:00","14:00");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement