Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2017
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.27 KB | None | 0 0
  1. // Denna fil ska innehålla er lösning till projektuppgiften.
  2. "use strict";
  3.  
  4. // VARIABLER
  5. var searchbuttonEl = document.getElementById("searchbutton"); // Sök knapp
  6. var searchEl = document.getElementById("search"); // Sökruta
  7. var selectEl = document.getElementById("searchlan"); // Select dropdown för län
  8.  
  9. var listEl = document.getElementById("mainnavlist"); // UL-lista med län till vä
  10. var checkboxEl = document.getElementById("onlyit"); //Checkbox för Data/IT
  11.  
  12. var numrowsEl = document.getElementById("numrows"); // ruta för hur många annonser som ska synas
  13. var logoEl = document.getElementById("logo"); //Loggan på sidan
  14.  
  15. var infoEl2 = document.getElementById("info"); // info/flöde
  16.  
  17.  
  18.  
  19. // HÄNDELSEHANTERARE
  20.  
  21.  
  22. //När sidan laddas
  23. window.addEventListener("load", windowOnload, false);
  24.  
  25. // klicka på län i vänstermenyn
  26. listEl.addEventListener("click", selectlan, false);
  27.  
  28. // klicka på län i select-listan
  29. selectEl.addEventListener("change", select, false);
  30.  
  31. //Checkbox för Data/IT checkad
  32. checkboxEl.addEventListener("click", checkedBox, false);
  33.  
  34. // Till startsidan vid klick på logo
  35. logoEl.addEventListener('click', loadFront, false);
  36.  
  37. /*Sökknapp ska söka vid klick
  38. searchbuttonEl.addEventListener('click', search , false);
  39.  
  40. // Ändra antal artiklar som ska visas
  41. numrowsEl.addEventListener('change', changeNumrows , false);
  42. */
  43.  
  44.  
  45.  
  46. //FUNKTIONER
  47.  
  48.  
  49.  
  50.  
  51.  
  52. // fuktion när sidan laddas
  53. function windowOnload() {
  54. selectlist();
  55. infoEl2.innerHTML = "<br /><br /><h2>Välkommen!</h2>" +
  56. "<p>Klicka på ett län i listan till vänster eller använd sökfunktionen för att se vilka lediga jobb som finns!</p>";
  57. }
  58.  
  59. // Logo/Huvudrubrik ska leda till startsidan vid klick
  60. function loadFront() {
  61. window.location.href = "../af.htm";
  62.  
  63. }
  64.  
  65.  
  66. // Funktion till att få fram län + jobb till vä
  67. function selectlist() {
  68. //Variabel för att hämta över http
  69. var xhttp = new XMLHttpRequest();
  70.  
  71. //Funktion för att skriva ut till en JSON sträng
  72. xhttp.onload = function () {
  73.  
  74. //Om allt är OK!
  75. if (this.readyState == 4 && this.status == 200) {
  76.  
  77.  
  78. // Konvertera JSON-sträng
  79. var jsonStr = JSON.parse(xhttp.responseText);
  80. var lanLi = jsonStr.soklista.sokdata;
  81.  
  82. // Skriv ut information till dokument
  83. for (var i = 0; i < lanLi.length; i++) {
  84.  
  85. // Variabel för att göra li element
  86. var list = document.createElement("li");
  87.  
  88. // Variabel för att skapa en textnode
  89. var lanLiText = document.createTextNode(lanLi[i].namn + " (" + lanLi[i].antal_ledigajobb + ")");
  90.  
  91. // knyter ihop li-elementet med textnoden
  92. list.appendChild(lanLiText);
  93.  
  94. // knyter ihop ul-elementet i HTML-koden med li och textnoden
  95. listEl.appendChild(list);
  96.  
  97. //Sätter id på alla län
  98. list.setAttribute("id", lanLi[i].id);
  99.  
  100.  
  101.  
  102.  
  103. //SELECTMENYN
  104.  
  105. //Variabel för att göra optionelement
  106. var select = document.createElement("option");
  107.  
  108. //Sätter id på alla option element
  109. select.setAttribute("value", lanLi[i].id);
  110.  
  111. //Variabel för att skapa en textnode av namn på län
  112. var selectNode = document.createTextNode(lanLi[i].namn);
  113.  
  114. //Knyter ihop option med textnoden
  115. select.appendChild(selectNode);
  116.  
  117. //Knyter ihop dropdown med option och textnoden
  118. selectEl.appendChild(select);
  119.  
  120.  
  121. }
  122.  
  123. }
  124. }
  125.  
  126. xhttp.open("GET", "http://api.arbetsformedlingen.se/af/v0/platsannonser/soklista/lan", true);
  127. xhttp.send();
  128.  
  129. };
  130.  
  131.  
  132. // INFO om jobb visas till HÖGER
  133. function selectlan(e) {
  134. // väljer ut value/värdet på det element du klickar på
  135. var lanId = e.target.id;
  136. var max = numrowsEl.value;
  137.  
  138.  
  139. //Variabel för att hämta över http
  140. var xhttp2 = new XMLHttpRequest();
  141.  
  142. //Funktion för att skriva ut till en JSON sträng
  143. xhttp2.onload = function () {
  144.  
  145. //Om allt är OK!
  146. if (this.readyState == 4 && this.status == 200) {
  147.  
  148. //Variabel för att konvertera JSON-sträng
  149. var jsonStr2 = JSON.parse(xhttp2.response);
  150. var articleS = jsonStr2.matchningslista.matchningdata;
  151.  
  152. // tomt info-element
  153. infoEl2.innerHTML = "";
  154.  
  155. //Loopa igenom lista
  156. for (var i = 0; i < articleS.length; i++) {
  157.  
  158. //Skriv ut article-element
  159. infoEl2.innerHTML +=
  160. "<article> <h3>" + articleS[i].annonsrubrik
  161. + "</h3>" + "<br>" + "<h4>" + articleS[i].yrkesbenamning + " i " + articleS[i].kommunnamn
  162. + "</h4> <p> <strong>Anställningstyp: </strong>" + articleS[i].anstallningstyp
  163. + "<br> <strong>Antalplatser: </strong>" + articleS[i].antalplatser
  164. + "<br> <strong>Publiceringsdatum: </strong>" + articleS[i].publiceraddatum
  165. + "<br> <strong>Sista ansökningsdag: </strong>" + articleS[i].sista_ansokningsdag
  166. + "<br> </p> <p>" + "<a href='" + articleS[i].annonsurl
  167. + "' target='_blank'>Läs mer</a>" + "</p> </article>"
  168.  
  169. }
  170.  
  171. }
  172. }
  173.  
  174. xhttp2.open("GET", "http://api.arbetsformedlingen.se/af/v0/platsannonser/matchning?lanid=" + lanId + "&&antalrader=" + max, true);
  175. xhttp2.send();
  176. };
  177.  
  178.  
  179.  
  180.  
  181. // visas vid val av län i selectmeny
  182. function select(e) {
  183. // väljer ut value på det element du klickar
  184. var select = e.target.value;
  185. var max = numrowsEl.value;
  186.  
  187. //Hämta HTTP
  188. var xhttp2 = new XMLHttpRequest();
  189. xhttp2.onreadystatechange = function () {
  190.  
  191. if (this.readyState === 4 && this.status === 200) {
  192. var jsonStr = JSON.parse(xhttp2.response);
  193.  
  194.  
  195. var document = jsonStr.matchningslista;
  196. var info = document.matchningdata;
  197.  
  198. // tomt info-element
  199. infoEl2.innerHTML = "";
  200.  
  201. for (var i = 0; i < info.length; i++) {
  202.  
  203.  
  204. infoEl2.innerHTML += "<article><h3>" + info[i].annonsrubrik + "</h3>" +
  205. "<p><strong>Yrkesbenämning: </strong>" + info[i].yrkesbenamning + "<br />" +
  206. "<strong>Arbetsplats: </strong>" + info[i].arbetsplatsnamn + "<br />" +
  207. "<strong>Kommun: </strong>" + info[i].kommunnamn + "<br /> " +
  208. "<strong>Antal platser: </strong>" + info[i].antalplatser + "<br />" +
  209. "<strong>Anställningstyp: </strong>" + info[i].anstallningstyp + "<br />" +
  210. "<strong>Sista ansökningsdag: </strong>" + info[i].sista_ansokningsdag + "<br />" +
  211. "<a href ='" + info[i].annonsurl + "' target='_blank'>Läs mer</a>" +
  212. "</p></article>";
  213.  
  214. }
  215. }
  216. };
  217.  
  218.  
  219. xhttp2.open('GET', "http://api.arbetsformedlingen.se/af/v0/platsannonser/matchning?lanid=" + select, true);
  220. xhttp2.send();
  221. }
  222.  
  223. function checkedBox() {
  224.  
  225. if (checkboxEl.checked === true){
  226.  
  227. } else if (checkboxEl.checked === false) {
  228. select();
  229. }
  230. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement