diff options
| author | 2019-04-18 16:24:15 +0100 | |
|---|---|---|
| committer | 2019-04-18 16:24:15 +0100 | |
| commit | 4167374b71ef00da4203151f380eb561ac340d59 (patch) | |
| tree | 71ed7907563eda7b5a1e84e670ea4cd32b8a5b6b /pydis_site | |
| parent | Images plugin is complete. (diff) | |
Links plugin is.. functional..
Diffstat (limited to 'pydis_site')
| -rw-r--r-- | pydis_site/static/js/wiki/load_editor.js | 11 | ||||
| -rw-r--r-- | pydis_site/templates/wiki/plugins/links/sidebar.html | 74 | 
2 files changed, 60 insertions, 25 deletions
diff --git a/pydis_site/static/js/wiki/load_editor.js b/pydis_site/static/js/wiki/load_editor.js index 0671daed..589d8a75 100644 --- a/pydis_site/static/js/wiki/load_editor.js +++ b/pydis_site/static/js/wiki/load_editor.js @@ -43,6 +43,15 @@          }      } +    function add_insert_text(editor) { +        editor.insert_text = function(text) { +            let doc = editor.codemirror.getDoc(), +                cursor = doc.getCursor(); + +            doc.replaceRange(text, cursor); +        } +    } +      for (let element of elements) {          let editor = new SimpleMDE({              "element": element, @@ -80,6 +89,8 @@          });          add_insert_image_wiki(editor); +        add_insert_text(editor); +          window.editors[element.id] = editor;      }  })(); diff --git a/pydis_site/templates/wiki/plugins/links/sidebar.html b/pydis_site/templates/wiki/plugins/links/sidebar.html index 45096edd..80c390dc 100644 --- a/pydis_site/templates/wiki/plugins/links/sidebar.html +++ b/pydis_site/templates/wiki/plugins/links/sidebar.html @@ -1,44 +1,68 @@ -{% load i18n sekizai_tags static %} +{% load sekizai_tags static %} -<h4>{% trans "Link to another wiki page" %}</h4> +<h4 class="title is-4">Link to another wiki page</h4>  <p> -  {% trans "Type in something from another wiki page's title and auto-complete will help you create a tag for your wiki link. Tags for links look like this:" %}<br /> +  Type in something from another wiki page's title and auto-complete will help you create a tag for your wiki link. Tags for links look like this:<br />  </p>  <pre>[Title of link](wiki:ArticleSlug)</pre> -<div class="input-group"> -  <input type="text" class="page_title_query form-control" id="links_page_title_query" value="" placeholder="Type to search..." /> -  <span class="input-group-btn"> -    <button type="button" class="btn btn-default" onclick="wikiInsertLink()"> -      {% trans "Insert" %} -    </button> -  </span> +<div class="field"> +  <div class="control has-icons-left"> +    <div class="dropdown"> +      <div class="dropdown-trigger"> +        <input class="input" type="text" id="page_title_input" value="" placeholder="Search: 3+ chars" aria-haspopup="true" aria-controls="page_title_menu"> +      </div> +      <div class="dropdown-menu" id="page_title_menu" role="menu"></div> +    </div> + +    <span class="icon is-small is-left"> +      <i class="fas fa-search"></i> +    </span> +  </div>  </div> -<hr /> +<div class="is-divider"></div> -<h4>{% trans "An external link" %}</h4> +<h4 class="title is-4">An external link</h4>  <p> -  {% trans "You can link to another website simply by inserting an address example.com or http://example.com or by using the markdown syntax:" %}<br /> +  You can link to another website simply by inserting an address example.com or http://example.com or by using the markdown syntax:<br />  </p> +  <pre>[Clickable text](http://example.com)</pre> -{% addtoblock "js" %}<script type="text/javascript" src="{% static "wiki/js/typeahead.min.js" %}"></script>{% endaddtoblock %}  {% addtoblock "js" %} -<script type="text/javascript"> -  $(document).ready(function() { -      $('.page_title_query').typeahead({ -        remote: "{% url 'wiki:links_query_urlpath' path=urlpath.path article_id=article.id %}?query=%QUERY", -        dataType: String -      }); -  }); - -function wikiInsertLink() { -  $('#id_content').insertAtCaret($('#links_page_title_query').val()); -} +  <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 = ""; +      } + +      bulmahead("page_title_input", "page_title_menu", search, selected, 10); +    }); + +    function wikiInsertLink(value) { +      let editor = window.editors["id_content"]; + +      editor.insert_text(value); +    }  </script>  {% endaddtoblock %}  |