diff options
Diffstat (limited to 'src/main.js')
-rw-r--r-- | src/main.js | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..99c9821 --- /dev/null +++ b/src/main.js @@ -0,0 +1,117 @@ +/* + Copyright (C) 2016 Andrew Murrell + + The JavaScript code in this page is free software: you can + redistribute it and/or modify it under the terms of the GNU + General Public License (GNU GPL) as published by the Free Software + Foundation, either version 3 of the License, or (at your option) + any later version. The code is distributed WITHOUT ANY WARRANTY; + without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU GPL for more details. + + As additional permission under GNU GPL version 3 section 7, you + may distribute non-source (e.g., minimized or compacted) forms of + that code without the copy of the GNU GPL normally required by + section 4, provided you include this license notice and a URL + through which recipients can access the Corresponding Source. + +*/ + +function init() { + /* Search Bar Handling */ + var searchbar = document.getElementById("search"); + searchbar.onfocus = function() { this.value = ""; } + searchbar.onblur = function() { + if (this.value == "") { + this.value = "Search"; + } + clear(); initSections(); + } + searchbar.onkeyup = clear;//function() { if (event.keycode == 13) clear }; + + initSections(); + +} + +function initSections() { + addSection("Writing"); + addItem("Writing", + mkItem("http://365tomorrows.com/12/03/a-simple-lament/", + "365 Tomorrows: A Simple Lament", + [["FF", "Flash Fiction"]])); + addItem("Writing", + mkItem("./DND/Tastavi.html", + "Tastavi's Backstory", + [["SS", "Short Story"]])); + addItem("Writing", + mkItem("./DND/SpellGauntlet.txt", + "Spell Gauntlet: Practical Spellcasting", + [["FF", "Flash Fiction"], + ["SS", "Short Story"], + ["WP", "WIP"]])); + addItem("Writing", + mkItem("./DND/SoP.txt", + "Psionic Schools for D&D", + [["ES", "Essay"], + ["HB", "Homebrew"]])); + + /*addItem("Writing", + mkItem("./DND/Psionist.html", + "D&D 5e Psionist Class", + [//["ES", "Essay"], + ["HB", "Homebrew"]]));*/ + + addSection("Programming"); + addItem("Programming", + mkItem("./DND/WaterdeepBazaar/WaterdeepBazaar.html", + "Waterdeep Bazaar: Marketplace Generator", + [["DM", "DMing Resource"], + ["WP", "WIP"]])); + + /*addSection("Music"); + addItem("Music", + mkItem("./Playlists.html", + "Playlists", + [["WP", "WIP"]]));*/ + + //addSection("Art"); + + /*addSection("Misc"); + addItem("Misc", + mkItem("./Reading_List.html", + "Reading List", + [["WP", "WIP"]]));*/ + +} + +function mkItem(href, title, tags) { + return { + href: href, + title: title, + tags: tags + }; +} + +function addSection(name) { + // add h2 with id 'name' there. + var append = "<h2>" + name + "</h2>"; + // add empty table there 'name-tbl' + append += "<table id=\"" + name + "-tbl\"></table>"; + // find 'links' + document.getElementById("links").innerHTML += append; +} + +function addItem(section, item) { + var append = "<tr><td><a href=\"" + item.href + "\">" + item.title + "</a></td><td>"; + for (i = 0; i < item.tags.length; i++) { + append += "<a href=\"?s=" + item.tags[i][0] + "\" class=\"tag " + item.tags[i][0] + "\">" + item.tags[i][1] + "</a>"; + } + append += "</td></tr>"; + document.getElementById(section + "-tbl").innerHTML += append; +} + +function clear() { + document.getElementById("links").innerHTML = ""; +} + +onload = init; |