aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Leon Sandøy <[email protected]>2022-01-30 12:34:29 +0100
committerGravatar Leon Sandøy <[email protected]>2022-01-30 12:34:29 +0100
commitd8c5571a266438d5e2e0c9fd4a35adf469688730 (patch)
tree751f00debfc9372f635e04ba9d5be12e08f8b547
parentClean up hover effects. (diff)
Support dashful redirects.
Previously, trying to go to `resources/project%20ideas` would crash the filtering JS. This has now been sorted out, so that these types of redirects have their spaces replaced by dashes, which makes them valid again.
-rw-r--r--pydis_site/apps/resources/views/resources.py7
-rw-r--r--pydis_site/static/js/resources.js11
-rw-r--r--pydis_site/templates/resources/resources.html1
3 files changed, 10 insertions, 9 deletions
diff --git a/pydis_site/apps/resources/views/resources.py b/pydis_site/apps/resources/views/resources.py
index b828d89a..709fad6c 100644
--- a/pydis_site/apps/resources/views/resources.py
+++ b/pydis_site/apps/resources/views/resources.py
@@ -82,9 +82,12 @@ class ResourceView(View):
def get(self, request: WSGIRequest, resource_type: t.Optional[str] = None) -> HttpResponse:
"""List out all the resources, and any filtering options from the URL."""
- # Add type filtering if the request is made to somewhere like /resources/video
- if resource_type and resource_type.title() not in self.filters['Type']['filters']:
+ # Add type filtering if the request is made to somewhere like /resources/video.
+ # We also convert all spaces to dashes, so they'll correspond with the filters.
+ dashless_resource_type = resource_type.replace("-", " ")
+ if resource_type and dashless_resource_type.title() not in self.filters['Type']['filters']:
return HttpResponseNotFound()
+ resource_type = resource_type.replace(" ", "-")
return render(
request,
diff --git a/pydis_site/static/js/resources.js b/pydis_site/static/js/resources.js
index bfcd569d..34587c81 100644
--- a/pydis_site/static/js/resources.js
+++ b/pydis_site/static/js/resources.js
@@ -64,9 +64,9 @@ function deserializeURLParams() {
// Update the corresponding filter UI, so it reflects the internal state.
$(paramFilterArray).each(function(_, filter) {
- let checkbox = $(`.filter-checkbox[data-filter-name=${filterType}][data-filter-item=${filter}]`);
- let filterTag = $(`.filter-box-tag[data-filter-name=${filterType}][data-filter-item=${filter}]`);
- let resourceTags = $(`.resource-tag[data-filter-name=${filterType}][data-filter-item=${filter}]`);
+ let checkbox = $(`.filter-checkbox[data-filter-name='${filterType}'][data-filter-item='${filter}']`);
+ let filterTag = $(`.filter-box-tag[data-filter-name='${filterType}'][data-filter-item='${filter}']`);
+ let resourceTags = $(`.resource-tag[data-filter-name='${filterType}'][data-filter-item='${filter}']`);
checkbox.prop("checked", true);
filterTag.show();
resourceTags.addClass("active");
@@ -149,7 +149,6 @@ function updateUI() {
}).show();
// If there are no matches, show the no matches message
- console.log(hasMatches);
if (!hasMatches) {
$(".no-resources-found").show();
} else {
@@ -196,7 +195,7 @@ document.addEventListener("DOMContentLoaded", function () {
$('.filter-box-tag').click(function() {
let filterItem = this.dataset.filterItem;
let filterName = this.dataset.filterName;
- let checkbox = $(`.filter-checkbox[data-filter-name=${filterName}][data-filter-item=${filterItem}]`);
+ let checkbox = $(`.filter-checkbox[data-filter-name='${filterName}'][data-filter-item='${filterItem}']`);
removeFilter(filterName, filterItem);
checkbox.prop("checked", false);
@@ -206,7 +205,7 @@ document.addEventListener("DOMContentLoaded", function () {
$('.resource-tag').click(function() {
let filterItem = this.dataset.filterItem;
let filterName = this.dataset.filterName;
- let checkbox = $(`.filter-checkbox[data-filter-name=${filterName}][data-filter-item=${filterItem}]`)
+ let checkbox = $(`.filter-checkbox[data-filter-name='${filterName}'][data-filter-item='${filterItem}']`);
if (!$(this).hasClass("active")) {
addFilter(filterName, filterItem);
diff --git a/pydis_site/templates/resources/resources.html b/pydis_site/templates/resources/resources.html
index 7a284fd6..4dd07270 100644
--- a/pydis_site/templates/resources/resources.html
+++ b/pydis_site/templates/resources/resources.html
@@ -7,7 +7,6 @@
{% block title %}Resources{% endblock %}
{% block head %}
<link rel="stylesheet" href="{% static "css/resources/resources.css" %}">
- <link rel="stylesheet" href="{% static "css/resources/resources_list.css" %}">
<link rel="stylesheet" href="{% static "css/content/page.css" %}">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script defer src="{% static "js/resources.js" %}"></script>