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.
Diffstat (limited to '')
-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>