diff --git a/fedireads/incoming.py b/fedireads/incoming.py
index 9c2866d1..7c2808d7 100644
--- a/fedireads/incoming.py
+++ b/fedireads/incoming.py
@@ -4,14 +4,12 @@ from Crypto.PublicKey import RSA
from Crypto.Signature import pkcs1_15
from Crypto.Hash import SHA256
from django.http import HttpResponse, HttpResponseBadRequest, \
- HttpResponseNotFound, JsonResponse
+ HttpResponseNotFound
from django.views.decorators.csrf import csrf_exempt
import django.db.utils
-from django.db.models import Q
import json
import requests
-from fedireads import activitypub
from fedireads import models
from fedireads import outgoing
from fedireads.status import create_review_from_activity, \
@@ -191,7 +189,10 @@ def handle_incoming_follow_reject(activity):
rejecter = get_or_create_remote_user(activity['actor'])
try:
- request = models.UserFollowRequest.objects.get(user_subject=requester, user_object=rejecter)
+ request = models.UserFollowRequest.objects.get(
+ user_subject=requester,
+ user_object=rejecter
+ )
request.delete()
except models.UserFollowRequest.DoesNotExist:
pass
diff --git a/fedireads/static/format.css b/fedireads/static/format.css
index 562421b1..cd7ebcaf 100644
--- a/fedireads/static/format.css
+++ b/fedireads/static/format.css
@@ -498,6 +498,10 @@ blockquote .icon-quote-open {
height: 4em;
}
+.hidden {
+ display: none;
+}
+
table {
border-collapse: collapse;
margin: 1em;
diff --git a/fedireads/static/js/shared.js b/fedireads/static/js/shared.js
index da4a9c0c..1fad60e5 100644
--- a/fedireads/static/js/shared.js
+++ b/fedireads/static/js/shared.js
@@ -6,10 +6,14 @@ function hide_element(element) {
function interact(e) {
e.preventDefault();
ajaxPost(e.target);
- if (e.target.className.includes('active')) {
- e.target.className = '';
- } else {
- e.target.className += ' active';
+ var identifier = e.target.getAttribute('data-id');
+ var elements = document.getElementsByClassName(identifier);
+ for (var i = 0; i < elements.length; i++) {
+ if (elements[i].className.includes('hidden')) {
+ elements[i].className = elements[i].className.replace('hidden', '');
+ } else {
+ elements[i].className += ' hidden';
+ }
}
return true;
}
@@ -21,26 +25,9 @@ function comment(e) {
return true;
}
-function ajaxPost(form, callback) {
- // jeez. https://stackoverflow.com/questions/33021995
- var url = form.action;
- var xhr = new XMLHttpRequest();
-
- var params = [].filter.call(form.elements, function(el) {
- return typeof(el.checked) === 'undefined' || el.checked;
- })
- .filter(function(el) { return !!el.name; })
- .filter(function(el) { return el.disabled; })
- .map(function(el) {
- return encodeURIComponent(el.name) + '=' + encodeURIComponent(el.value);
- }).join('&');
-
- xhr.open('POST', url);
- xhr.setRequestHeader('Content-type', 'application/x-form-urlencoded');
- xhr.setRequestHeader('X-CSRFToken', csrf_token);
-
- if (callback) {
- xhr.onload = callback.bind(xhr);
- }
- xhr.send(params);
+function ajaxPost(form) {
+ fetch(form.action, {
+ method : "POST",
+ body: new FormData(form)
+ });
}
diff --git a/fedireads/static/js/unfetch.js b/fedireads/static/js/unfetch.js
new file mode 100644
index 00000000..c930d8dc
--- /dev/null
+++ b/fedireads/static/js/unfetch.js
@@ -0,0 +1 @@
+module.exports=function(e,n){return n=n||{},new Promise(function(t,r){var s=new XMLHttpRequest,o=[],u=[],i={},a=function(){return{ok:2==(s.status/100|0),statusText:s.statusText,status:s.status,url:s.responseURL,text:function(){return Promise.resolve(s.responseText)},json:function(){return Promise.resolve(JSON.parse(s.responseText))},blob:function(){return Promise.resolve(new Blob([s.response]))},clone:a,headers:{keys:function(){return o},entries:function(){return u},get:function(e){return i[e.toLowerCase()]},has:function(e){return e.toLowerCase()in i}}}};for(var l in s.open(n.method||"get",e,!0),s.onload=function(){s.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,function(e,n,t){o.push(n=n.toLowerCase()),u.push([n,t]),i[n]=i[n]?i[n]+","+t:t}),t(a())},s.onerror=r,s.withCredentials="include"==n.credentials,n.headers)s.setRequestHeader(l,n.headers[l]);s.send(n.body||null)})};
diff --git a/fedireads/templates/layout.html b/fedireads/templates/layout.html
index e76cc2d4..7ce1578d 100644
--- a/fedireads/templates/layout.html
+++ b/fedireads/templates/layout.html
@@ -72,6 +72,7 @@
+