Advertisement
Guest User

Untitled

a guest
Apr 25th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.07 KB | None | 0 0
  1. /*
  2. * Nils Levandovskis nl17015
  3. */
  4. window.onload = function(){
  5. var lookup = {};
  6. var days = [null];
  7.  
  8. for (var i in schedule) {
  9. var day = schedule[i].day;
  10. if (!(day in lookup)) {
  11. lookup[day] = 1;
  12. days.push(day);
  13. }
  14. }
  15. var select = document.getElementById("day-select");
  16. for(var i = 0; i < days.length; i++) {
  17. var opt = days[i];
  18. var el = document.createElement("option");
  19. el.textContent = opt;
  20. el.value = opt;
  21. select.appendChild(el);
  22. }
  23.  
  24. var dropdown = document.createElement('select');
  25. dropdown.setAttribute("id", "lecturerSelect");
  26. document.getElementById('lecturer-search').parentNode.appendChild(dropdown);
  27. dropdown.setAttribute("style","-webkit-appearance: none;");
  28. dropdown.style.position = 'fixed';
  29. dropdown.style.overflow = 'hidden';
  30. dropdown.style.display = "none";
  31.  
  32. document.addEventListener("keyup", lecturerSearch);
  33. for (var i in schedule) {
  34. var lecturer = schedule[i].lecturer;
  35. if(!(lecturer in lecturers)){
  36. lecturers[lecturer] = 1;
  37. lecturers.push(schedule[i].lecturer);
  38. }
  39. }
  40. }
  41. var lecturers = new Array();
  42. var daySelect;
  43. var timeFrom;
  44. var timeUntil;
  45. var room;
  46. var lecturer;
  47. function inputs(){
  48. var ok = true;
  49. var format;
  50. var h;
  51. var m;
  52. daySelect = document.getElementById("day-select").selectedIndex;
  53. daySelect = document.getElementsByTagName("option")[daySelect].value;
  54.  
  55.  
  56.  
  57. timeFrom = document.getElementById("time-from").value;
  58. if(timeFrom){
  59.  
  60. if (timeFrom.length !== 5)ok = false;
  61. else{
  62. var check;
  63. for(var i = 0;i<5;i++){
  64. check = String(timeFrom).charAt(i)
  65. alert(check);
  66. if(i == 2){
  67. if(check!==":") ok = false;
  68. }
  69. else{
  70. if(isNaN(parseInt(check,10))) ok = false
  71. }
  72. }
  73. }
  74. timeFrom = timeFrom.replace(":","");
  75. h = String(timeFrom).charAt(0)+String(timeFrom).charAt(1);
  76. if(h>24 || h<0) ok = false;
  77. m = String(timeFrom).charAt(2)+String(timeFrom).charAt(3);
  78. if(m>59 || m<0) ok = false;
  79. if(!ok)alert('"Laiks no" ir jāpieraksta hh:mm formātā');
  80. timeFrom = parseInt(timeFrom,10)
  81. }
  82.  
  83.  
  84. timeUntil = document.getElementById("time-until").value;
  85. if(timeUntil){
  86.  
  87. if (timeUntil.length !== 5)ok = false;
  88. else{
  89. var check;
  90. for(var i = 0;i<5;i++){
  91. check = String(timeUntil).charAt(i);
  92. if(i == 2){
  93. if(check!==":") ok = false;
  94. }
  95. else{
  96. if(isNaN(parseInt(check,10))) ok = false;
  97. }
  98. }
  99. }
  100.  
  101. var isTimeFromOk = ok;
  102. var isTimeUntilOk = true;
  103. timeUntil = timeUntil.replace(":","");
  104. timeUntil = parseInt(timeUntil,10)
  105. h = String(timeUntil).charAt(0)+String(timeUntil).charAt(1);
  106. if(h>23||h<0){
  107. ok = false;
  108. isTimeUntilOk = false;
  109. }
  110. m = String(timeUntil).charAt(2)+String(timeUntil).charAt(3);
  111. if(m>59||m<0){
  112. ok = false;
  113. isTimeUntilOk = false;
  114. }
  115. if(isTimeFromOk && timeFrom>=timeUntil){
  116. ok = false;
  117. isTimeUntilOk = false;
  118. }
  119. if(!isTimeUntilOk)alert('"Laiks līdz" ir jāpieraksta hh:mm formātā un tam ir jābūt lielākam par "Laiks no"');
  120. }
  121.  
  122. room = document.getElementById("room").value;
  123. if(room){
  124. if(room === parseInt(room,10))room = parseInt(room,10);
  125. else{
  126. ok = false
  127. alert("Telpai ir jābūt veselam skaitlim")
  128. }
  129. }
  130.  
  131. lecturer = document.getElementById("lecturer-search").value;
  132. if(lecturer){
  133. var okLecturer = false;
  134. for(var i = 0;i<lecturers.length;i++){
  135. if(lecturers[i].toUpperCase().includes(lecturer.toUpperCase())) okLecturer = true;
  136. }
  137. if(!okLecturer){
  138. ok = false;
  139. alert("Nepareizs pasniedzēja vārds");
  140. }
  141.  
  142. }
  143.  
  144. alert(daySelect+""+timeFrom+""+timeUntil+""+room);
  145. if(ok)schedSearch();
  146. }
  147. var hidden = false;
  148. function schedSearch(){
  149. x = document.getElementById("resTable");
  150. if (x){
  151. var y = document.getElementById("resTable").rows.length;
  152. for(var i = 0; i<y; i++){
  153. document.getElementById("resTable").deleteRow(0);
  154. }
  155. }
  156. var Table = document.createElement("table");
  157. Table.setAttribute("id", "resTable");
  158. document.body.appendChild(Table);
  159.  
  160. var hRow = document.createElement("tr");
  161. hRow.setAttribute("id", "headRow");
  162. document.getElementById("resTable").appendChild(hRow);
  163.  
  164. for(var x = 0; x<5; x++){
  165. var head = document.createElement("th");
  166. if (x==0)var txt = document.createTextNode("Diena");
  167. if (x==1)var txt = document.createTextNode("Laiks");
  168. if (x==2)var txt = document.createTextNode("Kurss");
  169. if (x==3){
  170. var txt = document.createTextNode("Telpa");
  171. head.setAttribute("class","hide");
  172. }
  173. if (x==4){
  174. var txt = document.createTextNode("Pasniedzējs");
  175. head.setAttribute("class","hide");
  176. }
  177. head.appendChild(txt);
  178. document.getElementById("headRow").appendChild(head);
  179. }
  180.  
  181. var search = {};
  182. var result = true;
  183.  
  184. search.day = daySelect;
  185. search.time_from = timeFrom;
  186. search.time_until = timeUntil;
  187. search.room = room;
  188. search.lecturer = lecturer;
  189.  
  190. for (var i in schedule) {
  191. if (search.day!=="null"){
  192. if (search.day!==schedule[i].day) result = false;
  193. }
  194.  
  195. if (search.time_from){
  196. var schedFrom = schedule[i].time_from.replace(":","");
  197. schedFrom = parseInt(schedFrom,10);
  198. if (search.time_from>schedFrom) result = false;
  199. }
  200.  
  201. if (search.time_until){
  202. var schedUntil = schedule[i].time_until.replace(":","");
  203. schedUntil = parseInt(schedUntil,10);
  204. if (search.time_until<schedUntil) result = false;
  205. }
  206.  
  207. if (search.room){
  208. if (search.room!==schedule[i].room) result = false;
  209. }
  210.  
  211. if(search.lecturer){
  212. if(search.lecturer!=schedule[i].lecturer) result = false;
  213. }
  214.  
  215. if (result==true){
  216. var Row = document.createElement("tr");
  217. Row.setAttribute("id","resRow"+i);
  218. for(var x = 0; x<5; x++){
  219. var res = document.createElement("td");
  220.  
  221. document.getElementById("resTable").appendChild(Row)
  222. res.setAttribute("id","res"+i+x)
  223. if (x==0)var txt = document.createTextNode(schedule[i].day);
  224. if (x==1)var txt = document.createTextNode(schedule[i].time_from+"-"+schedule[i].time_until);
  225. if (x==2)var txt = document.createTextNode(schedule[i].course);
  226. if (x==3){
  227. var txt = document.createTextNode(schedule[i].room);
  228. res.setAttribute("class","hide");
  229. }
  230. if (x==4){
  231. var txt = document.createTextNode(schedule[i].lecturer);
  232. res.setAttribute("class","hide");
  233. }
  234. res.appendChild(txt);
  235. document.getElementById("resRow"+i).appendChild(res);
  236. }
  237. }
  238. result = true;
  239. }
  240. if(hidden)hide();
  241. }
  242. function hide(){
  243. var button = document.getElementById("hide");
  244. button.setAttribute("onclick","reveal()");
  245. button.textContent = "Rādīt telpu un pasniedzēju info";
  246. hidden = true;
  247. var elements = document.getElementsByClassName('hide');
  248. for(var i = 0, length = elements.length; i < length; i++) {
  249. elements[i].style.display = 'none';
  250. }
  251. }
  252. function reveal(){
  253. var button = document.getElementById("hide");
  254. button.setAttribute("onclick","hide()");
  255. button.textContent = "Paslēpt telpu un pasniedzēju info";
  256. hidden = false;
  257. var elements = document.getElementsByClassName('hide');
  258. for(var i = 0, length = elements.length; i < length; i++) {
  259. elements[i].style.display = 'table-cell';
  260. }
  261. }
  262.  
  263. function lecturerSearch(){
  264.  
  265. var x = document.getElementById("lecturerSelect");
  266. for(var i = 0; i < x.size ; i++){
  267. x.remove(0);
  268. }
  269.  
  270.  
  271. var input = document.getElementById("lecturer-search");
  272. var dropdown = document.getElementById("lecturerSelect");
  273. var lecturerList = new Array();
  274.  
  275.  
  276. for (var i = 0; i < schedule.length; i++) {
  277. var lecturer = schedule[i].lecturer;
  278. if (!(lecturer in lecturerList) && lecturer.toUpperCase().includes(input.value.toUpperCase()) == true) {
  279. lecturerList[lecturer] = 1;
  280. lecturerList.push(lecturer);
  281. }
  282. }
  283.  
  284. dropdown.size = lecturerList.length;
  285.  
  286.  
  287. if(lecturerList.length === 1){
  288. dropdown.onclick = (function(j) {return function(){
  289. document.getElementById("lecturer-search").value = dropdown.childNodes[0].value;
  290. dropdown.style.display = "none";
  291. return;
  292. };})(j);
  293. }
  294.  
  295. if(lecturerList.length < 1 || input.value.length < 2 || lecturerList.toString().includes(document.getElementById("lecturer-search").value)){
  296. dropdown.style.display = "none";
  297. return;
  298. }
  299. else
  300. {
  301. dropdown.style.display = "";
  302. }
  303.  
  304. var temp = new Array();
  305.  
  306. for(var j = 0; j < lecturerList.length; j++){
  307. var el = document.createElement("option");
  308. el.textContent = lecturerList[j];
  309. el.value = lecturerList[j];
  310. temp.push(lecturerList[j]);
  311. el.onclick = (function(el) {return function(){
  312. document.getElementById("lecturer-search").value = el.value;
  313. dropdown.style.display = "none";
  314. return;
  315. };})(el);
  316. dropdown.appendChild(el);
  317. }
  318. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement