aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_site/static
diff options
context:
space:
mode:
authorGravatar Gareth Coles <[email protected]>2019-04-19 14:12:28 +0100
committerGravatar Gareth Coles <[email protected]>2019-04-19 14:12:28 +0100
commite0f837ddd8ff434b1ef3429f6a709263350194ce (patch)
tree6f752fa2cb602d63dec09bb3f2d22ecce39d3d7c /pydis_site/static
parentInitial template cleanup (diff)
Move JS into files
Diffstat (limited to 'pydis_site/static')
-rw-r--r--pydis_site/static/js/wiki/create.js13
-rw-r--r--pydis_site/static/js/wiki/delete.js1
-rw-r--r--pydis_site/static/js/wiki/edit.js62
-rw-r--r--pydis_site/static/js/wiki/editor_sidebar.js1
-rw-r--r--pydis_site/static/js/wiki/history.js12
-rw-r--r--pydis_site/static/js/wiki/image_sidebar.js32
-rw-r--r--pydis_site/static/js/wiki/links_sidebar.js30
-rw-r--r--pydis_site/static/js/wiki/move.js10
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 : "&nbsp;&nbsp;/&nbsp;&nbsp;");
+}