123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- function displayContents(rawMarkdown, section) {
- var pageContents = marked(rawMarkdown);
- document.getElementById(section).innerHTML = pageContents;
- }
- function attachEditor(markdownFile) {
- document.getElementById("midaswiki-editor").style.display = "none";
- document.getElementById("content").style.display = "block";
- //determine if history page or talk page
- var location = window.location.hash;
- var pageType = "";
- if(location != "" && typeof location != typeof undefined) {
- pageType = location.split('#')[1].split("-")[0];
- location = location.split("#")[1].split("-")[1];
- }
- var header = document.getElementById("controls");
- header.innerHTML = "";
- var controlContainer = document.createElement('ul');
- controlContainer.className += "tabs"; /* causes a jQuery error, need to investigate */
- if(pageType != "history" && pageType != "edit") {
- var historyTab = document.createElement("li");
- historyTab.className += "tab";
- var historyLink = document.createElement("a");
- historyLink.innerHTML = "History";
- historyLink.href = "#history-"+markdownFile;
- historyTab.appendChild(historyLink);
- //controlContainer.appendChild(historyTab);
- }
- if(pageType != "history" && pageType != "talk" && pageType != "edit") {
- var talkTab = document.createElement("li");
- talkTab.className += "tab";
- var talkLink = document.createElement("a");
- talkLink.innerHTML = "Talk";
- talkLink.href = "#talk-"+markdownFile;
- talkTab.appendChild(talkLink);
- controlContainer.appendChild(talkTab);
- }
- if(pageType != "edit" && pageType != "history") {
- var editTab = document.createElement("li");
- editTab.className += "tab";
- var editLink = document.createElement("a");
- editLink.innerHTML = "Edit";
- editLink.href = "#edit-"+markdownFile;
- editTab.appendChild(editLink);
- controlContainer.appendChild(editTab);
- }
- header.appendChild(controlContainer);
- }
- function displayEditor(raw, markdownFile) {
- document.getElementById("midaswiki-editor").style.display = "block";
- document.getElementById("content").style.display = "none";
- var editfield = document.getElementById("midaswiki-edit");
- editfield.value = raw;
- }
- function pageReload() {
- var location = window.location.hash.toLowerCase().replace("../", "");
- if(location == "" || typeof location == typeof undefined) {
- location = "#/index.md";
- }
- location = location.split('#')[1];
- var pageType = location.split("-")[0];
- var markdownFile = location.split("-")[1];
- document.getElementById("midaswiki-file").value = markdownFile;
- var noCacheHeaders = {
- "Pragma": "no-cache",
- "Cache-Control": "no-store, no-cache, must-revalidate, post-check=0, pre-check=0",
- "Expires": 0,
- "Last-Modified": new Date(0)//, // January 1, 1970
- //"If-Modified-Since": new Date(0)
- };
- var promise = ajaxGetRaw("/markdown/header.md", noCacheHeaders);
- promise.success = function(response) {
- displayContents(response.trim(), "header");
- };
- promise.failure = function(response) {
- console.error("Error retrieving header");
- };
- console.log(pageType);
- if(pageType == "edit") {
-
- var promise = ajaxGetRaw("/markdown"+ markdownFile, noCacheHeaders);
- promise.success = function(response) {
- displayEditor(response.trim(), markdownFile);
- };
- promise.failure = function(response) {
- console.error("Error building editor for " + markdownFile);
- displayEditor(markdownFile, markdownFile);
- };
- } else {
- attachEditor(location);
- var promise = ajaxGetRaw("/markdown"+ location, noCacheHeaders);
- promise.success = function(response) {
- displayContents(response.trim(), "content");
- };
- promise.failure = function(response) {
- console.error("Error retrieving " + location);
- displayContents("Page not found: " + location, "content");
- };
- }
- var promise = ajaxGetRaw("/markdown/footer.md", noCacheHeaders);
- promise.success = function(response) {
- displayContents(response.trim(), "footer");
- };
- promise.failure = function(response) {
- console.error("Error retrieving footer");
- };
- }
- document.addEventListener("DOMContentLoaded", function(event) {
- pageReload();
- });
- window.addEventListener("hashchange", function(event) {
- pageReload();
- });
- document.getElementById("midaswiki-save").addEventListener("click", function(event) {
- var editfield = document.getElementById("midaswiki-edit");
- var markdownFile = document.getElementById("midaswiki-file").value;
- var data = {"markdown": editfield.value, "filename": markdownFile};
- var savePromise = ajaxPost("/api/", data);
- savePromise.success = function(response) {
- window.location.hash = "#" + markdownFile;
- };
- });
- document.getElementById("midaswiki-cancel").addEventListener("click", function(event) {
- var markdownFile = document.getElementById("midaswiki-file").value;
- window.location.hash = "#" + markdownFile;
- });
|