diff options
author | 2019-04-19 14:12:28 +0100 | |
---|---|---|
committer | 2019-04-19 14:12:28 +0100 | |
commit | e0f837ddd8ff434b1ef3429f6a709263350194ce (patch) | |
tree | 6f752fa2cb602d63dec09bb3f2d22ecce39d3d7c /pydis_site/static | |
parent | Initial template cleanup (diff) |
Move JS into files
Diffstat (limited to 'pydis_site/static')
-rw-r--r-- | pydis_site/static/js/wiki/create.js | 13 | ||||
-rw-r--r-- | pydis_site/static/js/wiki/delete.js | 1 | ||||
-rw-r--r-- | pydis_site/static/js/wiki/edit.js | 62 | ||||
-rw-r--r-- | pydis_site/static/js/wiki/editor_sidebar.js | 1 | ||||
-rw-r--r-- | pydis_site/static/js/wiki/history.js | 12 | ||||
-rw-r--r-- | pydis_site/static/js/wiki/image_sidebar.js | 32 | ||||
-rw-r--r-- | pydis_site/static/js/wiki/links_sidebar.js | 30 | ||||
-rw-r--r-- | pydis_site/static/js/wiki/move.js | 10 |
8 files changed, 161 insertions, 0 deletions
diff --git a/pydis_site/static/js/wiki/create.js b/pydis_site/static/js/wiki/create.js new file mode 100644 index 00000000..e02d75a3 --- /dev/null +++ b/pydis_site/static/js/wiki/create.js @@ -0,0 +1,13 @@ +//<![CDATA[ +(function($) { + $(document).ready(function (){ + $("#id_title").keyup(function () { + var e = $("#id_slug")[0]; + if(!e._changed) { + slug = URLify(this.value, 50); + e.value = slug; + } + }); + }); +})(jQuery); +//]]> diff --git a/pydis_site/static/js/wiki/delete.js b/pydis_site/static/js/wiki/delete.js new file mode 100644 index 00000000..91531137 --- /dev/null +++ b/pydis_site/static/js/wiki/delete.js @@ -0,0 +1 @@ +$('#id_revision').val('{{ article.current_revision.id }}'); diff --git a/pydis_site/static/js/wiki/edit.js b/pydis_site/static/js/wiki/edit.js new file mode 100644 index 00000000..3c9c70a4 --- /dev/null +++ b/pydis_site/static/js/wiki/edit.js @@ -0,0 +1,62 @@ +$(document).ready(function() { + let article_edit_form = $("#article_edit_form"); + let click_time = 0; + + $("#article_edit_form :input").change(function() { + article_edit_form.data("changed",true); + }); + + if (article_edit_form.find(".alert-danger").length > 0 || article_edit_form.find(".has-error").length > 0 ) { + // Set the forms status as "changed" if there was a submission error + article_edit_form.data("changed",true); + } + + window.onbeforeunload = confirmOnPageExit; + + article_edit_form.on("submit", function (ev) { + now = Date.now(); + elapsed = now-click_time; + click_time = now; + if (elapsed < 3000) + ev.preventDefault(); + window.onbeforeunload = null; + return true; + }); + $("#id_preview").click(function () { + open_modal("previewModal"); + return true; + }); + $("#id_preview_save_changes").on("click", function (ev) { + ev.preventDefault(); + $("#id_save").trigger("click"); + }); +}); + +var confirmOnPageExit = function (e) { + if ($("#article_edit_form").data("changed")) { + e = e || window.event; + var message = "You have unsaved changes!"; + // For IE6-8 and Firefox prior to version 4 + if (e) { + e.returnValue = message; + } + // For Chrome, Safari, IE8+ and Opera 12+ + return message; + } else { + // If the form hasn't been changed, don't display the pop-up + return; + } +}; + +$(document).ready( function() { + $('.sidebar-form').each(function () { + $(this).submit( function() { + this.unsaved_article_title.value = $('#id_title').val(); + this.unsaved_article_content.value = $('#id_content').val(); + }); + }); +}); + +$(document).ready(function() { + $("#id_revision").val('{{ article.current_revision.id }}'); +}); diff --git a/pydis_site/static/js/wiki/editor_sidebar.js b/pydis_site/static/js/wiki/editor_sidebar.js new file mode 100644 index 00000000..0f17c109 --- /dev/null +++ b/pydis_site/static/js/wiki/editor_sidebar.js @@ -0,0 +1 @@ +bulmaAccordion.attach(); diff --git a/pydis_site/static/js/wiki/history.js b/pydis_site/static/js/wiki/history.js new file mode 100644 index 00000000..1f71e911 --- /dev/null +++ b/pydis_site/static/js/wiki/history.js @@ -0,0 +1,12 @@ +function showPreviewModal(revision_id, action_url, change_revision_url) { + let iframe = $("#previewWindow"); + + iframe.attr("src", action_url + "?r=" + revision_id); + + console.log(revision_id); + console.log(action_url + "?r=" + revision_id); + console.log(change_revision_url); + + $('#previewModal .switch-to-revision').attr('href', change_revision_url); + open_modal('previewModal'); +} diff --git a/pydis_site/static/js/wiki/image_sidebar.js b/pydis_site/static/js/wiki/image_sidebar.js new file mode 100644 index 00000000..9ac9f79d --- /dev/null +++ b/pydis_site/static/js/wiki/image_sidebar.js @@ -0,0 +1,32 @@ +$("#id_image_insert").click(function(e) { +e.preventDefault(); + +let image_id_element = document.getElementById("img_id"), + align_element = document.getElementById("img_align"), + size_element = document.getElementById("img_size"), + caption_element = document.getElementById("img_caption"), + + editor = window.editors["id_content"]; + +editor.insert_image_wiki( + image_id_element.value, align_element.value, + size_element.value, caption_element.value +); + +$("#imgModal").removeClass("is-active"); // Close modal + +// Reset form +image_id_element.value = 0; +align_element.selectedIndex = 0; +size_element.selectedIndex = 0; +caption_element.value = ""; +}); + +function insert_image(image_id) { +document.getElementById("img_id").value = image_id; +open_modal("imgModal"); +} + +function add_image(form) { + $(form).submit(); +} diff --git a/pydis_site/static/js/wiki/links_sidebar.js b/pydis_site/static/js/wiki/links_sidebar.js new file mode 100644 index 00000000..f50d968d --- /dev/null +++ b/pydis_site/static/js/wiki/links_sidebar.js @@ -0,0 +1,30 @@ +$(document).ready(function() { + function search(query) { + query = encodeURIComponent(query); + return fetch(window.links_fetch_url + `?query=${query}`).then(function(response) { + return response.json(); + }).then(function(data){ + return data.map(function(element) { + return {label: element, value: element}; + }) + }); + } + + function selected(state) { + let value = state.value; + wikiInsertLink(value); + document.getElementById("page_title_input").value = ""; + } + + bulmahead("page_title_input", "page_title_menu", search, selected, 10); +}); + +function wikiInsertLink(value) { + let editor = window.editors["id_content"]; + + editor.insert_text(value); +} + +function setFetchURL(url) { + window.links_fetch_url = url; +} diff --git a/pydis_site/static/js/wiki/move.js b/pydis_site/static/js/wiki/move.js new file mode 100644 index 00000000..948917f6 --- /dev/null +++ b/pydis_site/static/js/wiki/move.js @@ -0,0 +1,10 @@ +$('#id_destination').after($('#dest_selector').remove()); +$('#id_destination').attr('type', 'hidden'); +$('#id_slug').val('{{ urlpath.slug }}'); +select_path('{{urlpath.parent.pk}}', '{{urlpath.parent}}'); + +function select_path(path, title) { + $('#id_destination').val(path); + if (title == "(root)") title = ""; + $('#dest_selector .dest_selector_title').html(title ? title : " / "); +} |