diff options
| -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 | ||||
| -rw-r--r-- | pydis_site/templates/wiki/create.html | 17 | ||||
| -rw-r--r-- | pydis_site/templates/wiki/delete.html | 6 | ||||
| -rw-r--r-- | pydis_site/templates/wiki/edit.html | 72 | ||||
| -rw-r--r-- | pydis_site/templates/wiki/history.html | 15 | ||||
| -rw-r--r-- | pydis_site/templates/wiki/includes/editor_sidebar.html | 6 | ||||
| -rw-r--r-- | pydis_site/templates/wiki/move.html | 15 | ||||
| -rw-r--r-- | pydis_site/templates/wiki/plugins/images/sidebar.html | 37 | ||||
| -rw-r--r-- | pydis_site/templates/wiki/plugins/links/sidebar.html | 41 | 
16 files changed, 186 insertions, 184 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 : "  /  "); +} diff --git a/pydis_site/templates/wiki/create.html b/pydis_site/templates/wiki/create.html index 5cd5e292..5aaa017c 100644 --- a/pydis_site/templates/wiki/create.html +++ b/pydis_site/templates/wiki/create.html @@ -8,23 +8,10 @@    {% addtoblock "js" %}      <script type="text/javascript" src="{% static "admin/js/urlify.js" %}"></script> -    <script type="text/javascript"> +      {% if not create_form.slug.value %} -    //<![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); -    //]]> +      <script type="text/javascript" src="{% static "js/wiki/create.js" %}"></script>      {% endif %} -    </script>    {% endaddtoblock %}    {% include "wiki/includes/editormedia.html" %} diff --git a/pydis_site/templates/wiki/delete.html b/pydis_site/templates/wiki/delete.html index a7f837fe..f4ed9dd7 100644 --- a/pydis_site/templates/wiki/delete.html +++ b/pydis_site/templates/wiki/delete.html @@ -1,5 +1,5 @@  {% extends "wiki/base.html" %} -{% load wiki_tags sekizai_tags %} +{% load wiki_tags sekizai_tags static %}  {% block wiki_pagetitle %}Delete Article{% endblock %} @@ -89,8 +89,6 @@    {% endif %}    {% addtoblock "js" %} -  <script type="text/javascript"> -    $('#id_revision').val('{{ article.current_revision.id }}'); -  </script> +  <script type="text/javascript" src="{% static "js/wiki/delete.js" %}"></script>    {% endaddtoblock %}  {% endblock %} diff --git a/pydis_site/templates/wiki/edit.html b/pydis_site/templates/wiki/edit.html index c0cb8de6..8472d555 100644 --- a/pydis_site/templates/wiki/edit.html +++ b/pydis_site/templates/wiki/edit.html @@ -99,75 +99,5 @@    </div>    <script src="{% static "js/wiki/modal.js" %}" type="text/javascript"></script> - -  <script type="text/javascript"> -    {# I'm sorry this JS sucks, it came with the wiki, just stuck right in here. #} - -    $(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; -      } -    }; -  </script> - -  <script type="text/javascript"> -    $(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(); -        }); -      }); -    }); -  </script> - -  <script language="javascript"> -    $(document).ready(function() { -      $("#id_revision").val('{{ article.current_revision.id }}'); -    }); -  </script> +  <script src="{% static "js/wiki/edit.js" %}" type="text/javascript"></script>  {% endblock %} diff --git a/pydis_site/templates/wiki/history.html b/pydis_site/templates/wiki/history.html index 7946508e..6d609516 100644 --- a/pydis_site/templates/wiki/history.html +++ b/pydis_site/templates/wiki/history.html @@ -148,20 +148,7 @@    </div>  </form>    <script src="{% static "js/wiki/modal.js" %}" type="text/javascript"></script> -  <script type="text/javascript"> -    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'); -    } -  </script> +  <script src="{% static "js/wiki/history.js" %}" type="text/javascript"></script>  {% endblock %} diff --git a/pydis_site/templates/wiki/includes/editor_sidebar.html b/pydis_site/templates/wiki/includes/editor_sidebar.html index 2eebb80f..5c24e74d 100644 --- a/pydis_site/templates/wiki/includes/editor_sidebar.html +++ b/pydis_site/templates/wiki/includes/editor_sidebar.html @@ -1,4 +1,4 @@ -{% load i18n sekizai_tags %} +{% load i18n sekizai_tags static %}  <section class="accordions">  {% for plugin, plugin_form in sidebar %} @@ -35,6 +35,4 @@  {% endfor %}  </section> -<script type="application/javascript"> -  bulmaAccordion.attach(); -</script> +<script type="application/javascript" src="{% static "js/wiki/editor_sidebar.js" %}"></script> diff --git a/pydis_site/templates/wiki/move.html b/pydis_site/templates/wiki/move.html index 0d5cec31..1d797e86 100644 --- a/pydis_site/templates/wiki/move.html +++ b/pydis_site/templates/wiki/move.html @@ -1,5 +1,5 @@  {% extends "wiki/article.html" %} -{% load wiki_tags i18n sekizai_tags %} +{% load wiki_tags i18n sekizai_tags static %}  {% block wiki_pagetitle %}{% trans "Move" %}: {{ article.current_revision.title }}{% endblock %} @@ -60,18 +60,7 @@  {% addtoblock "js" %} -  <script type="text/javascript"> -    $('#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 : "  /  "); -    } -  </script> +  <script type="text/javascript" src="{% static "js/wiki/move.js" %}"></script>  {% endaddtoblock %} diff --git a/pydis_site/templates/wiki/plugins/images/sidebar.html b/pydis_site/templates/wiki/plugins/images/sidebar.html index b4e58e6d..2aa77c9e 100644 --- a/pydis_site/templates/wiki/plugins/images/sidebar.html +++ b/pydis_site/templates/wiki/plugins/images/sidebar.html @@ -1,4 +1,4 @@ -{% load i18n wiki_tags wiki_images_tags humanize wiki_thumbnails sekizai_tags %} +{% load i18n wiki_tags wiki_images_tags humanize wiki_thumbnails sekizai_tags static %}  {% with article|images_for_article as images %}    {% if article|images_can_add:user %} @@ -200,37 +200,4 @@    </div>  </div> -<script type="text/javascript"> -  $("#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(); -  } -</script> +<script type="text/javascript" src="{% static "js/wiki/image_sidebar.js" %}"></script> diff --git a/pydis_site/templates/wiki/plugins/links/sidebar.html b/pydis_site/templates/wiki/plugins/links/sidebar.html index fd948af1..d44e27fb 100644 --- a/pydis_site/templates/wiki/plugins/links/sidebar.html +++ b/pydis_site/templates/wiki/plugins/links/sidebar.html @@ -37,35 +37,20 @@  <pre>[Clickable text](http://example.com)</pre>  {% addtoblock "js" %} -  <script src="https://cdn.rawgit.com/mattmezza/bulmahead/master/dist/bulmahead.bundle.js"></script> - -  <script type="text/javascript"> -    $(document).ready(function() { -      function search(query) { -        query = encodeURIComponent(query); -        return fetch(`{% url 'wiki:links_query_urlpath' path=urlpath.path article_id=article.id %}?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 = ""; -      } +  {% comment %} +    So, for whatever reason, bulmahead doesn't have a LICENSE file. There is one in +    the package.json, but that isn't a standard most projects adhere to - so I've +    declined to include it within the project directly. -      bulmahead("page_title_input", "page_title_menu", search, selected, 10); -    }); +    The package.json states MIT - but there is no prose or license +    text available for the project itself. +  {% endcomment %} -    function wikiInsertLink(value) { -      let editor = window.editors["id_content"]; - -      editor.insert_text(value); -    } +  <script src="https://cdn.rawgit.com/mattmezza/bulmahead/master/dist/bulmahead.bundle.js"></script> +  <script src="{% static "js/wiki/links_sidebar.js" %}"></script> -</script> +  <script type="text/javascript"> +    {# If you figure out a way to do this without putting some JS directly in the page... let me know #} +    setFetchURL("{% url 'wiki:links_query_urlpath' path=urlpath.path article_id=article.id %}"); +  </script>  {% endaddtoblock %} | 
