diff options
Diffstat (limited to '_www/index.js')
| -rw-r--r-- | _www/index.js | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/_www/index.js b/_www/index.js new file mode 100644 index 0000000..0ab0b10 --- /dev/null +++ b/_www/index.js @@ -0,0 +1,126 @@ +/** + * Copyright 2020, Shulhan <ms@kilabit.info>. All rights reserved. + * Use of this source code is governed by a BSD-style + * license that can be found in the LICENSE file. + */ + +let kamusku = new Kamusku("") + +function cariDefinisi() { + let kata = document.getElementById("kata").value + kamusku.getDefinitions(kata, cariDefinisiCallback) +} + +function cariDefinisiCallback(res) { + let out = document.getElementById("definisi-result") + out.innerHTML = "" + + for (let kata in res) { + let root = document.createElement("div") + printResultKata(root, kata, res[kata]) + out.appendChild(root) + } +} + +function printResultKata(out, kata, defKata) { + let el = document.createElement("h3") + el.appendChild(document.createTextNode(kata)) + out.appendChild(el) + + if (typeof defKata.pesan !== "undefined" && defKata.pesan !== "") { + printPesan(out, defKata.pesan) + return + } + + printKataDasar(out, defKata.dasar) + printDefinitions(out, defKata.definisi) +} + +function printPesan(out, pesan) { + let root = document.createElement("div") + root.appendChild(document.createTextNode(pesan)) + out.appendChild(root) +} + +function printKataDasar(out, kataDasar) { + // Seriously, JavaScript? + if ( + typeof kataDasar === "undefined" || + kataDasar === null || + kataDasar === "" + ) { + return + } + + let root = document.createElement("div") + root.appendChild(document.createTextNode("Kata dasar: ")) + + let italic = document.createElement("i") + italic.appendChild(document.createTextNode(kataDasar)) + root.appendChild(italic) + + out.appendChild(root) +} + +function printDefinitions(out, definitions) { + if (typeof definitions === "undefined" || definitions === null) { + return + } + + for (let x = 0; x < definitions.length; x++) { + let def = definitions[x] + + let root = document.createElement("div") + let el = document.createElement("p") + el.classList.add("definisi") + el.appendChild( + document.createTextNode( + "Definisi #" + (x + 1) + ": " + def.isi + ".", + ), + ) + root.appendChild(el) + + printKelasKata(root, def.kelas) + printContoh(root, def.contoh) + out.appendChild(root) + } +} + +function printKelasKata(out, daftarKelas) { + if (typeof daftarKelas === "undefined") { + return + } + + let root = document.createElement("div") + root.classList.add("kelas-kata") + root.appendChild(document.createTextNode("Kelas,")) + + let el = document.createElement("ul") + for (let x = 0; x < daftarKelas.length; x++) { + let li = document.createElement("li") + li.appendChild(document.createTextNode(daftarKelas[x])) + el.appendChild(li) + } + root.appendChild(el) + out.appendChild(root) +} + +function printContoh(out, examples) { + if (typeof examples === "undefined") { + return + } + + let root = document.createElement("div") + root.classList.add("contoh") + root.appendChild(document.createTextNode("Contoh,")) + + let ul = document.createElement("ul") + + for (let x = 0; x < examples.length; x++) { + let li = document.createElement("li") + li.appendChild(document.createTextNode(examples[x])) + ul.appendChild(li) + } + root.appendChild(ul) + out.appendChild(root) +} |
