summaryrefslogtreecommitdiff
path: root/src/main.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.js')
-rw-r--r--src/main.js117
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;