Fix tracking/untracking docs.

- Legacy-Id: 19626
This commit is contained in:
Lars Eggert 2021-11-10 20:02:45 +00:00
parent 70a306ef39
commit fede7c1779
4 changed files with 71 additions and 7 deletions

View file

@ -22,6 +22,22 @@ if (!process.env.BUILD_DEPLOY) {
require("jquery-migrate")
}
import Cookies from "js-cookie";
// setup CSRF protection using jQuery
function csrfSafeMethod(method) {
// these HTTP methods do not require CSRF protection
return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}
jQuery.ajaxSetup({
crossDomain: false, // obviates need for sameOrigin test
beforeSend: function (xhr, settings) {
if (!csrfSafeMethod(settings.type)) {
xhr.setRequestHeader("X-CSRFToken", Cookies.get("csrftoken"));
}
}
});
function dropdown_hover() {
var navbar = $(this)
.closest(".navbar");
@ -155,4 +171,37 @@ $(document)
updateAdvanced();
}
$('.review-wish-add-remove-doc.ajax, .track-untrack-doc')
.on("click", function (e) {
e.preventDefault();
var trigger = $(this);
$.ajax({
url: trigger.attr('href'),
type: 'POST',
cache: false,
dataType: 'json',
success: function (response) {
if (response.success) {
trigger.parent()
.find(".tooltip")
.remove();
trigger.attr("hidden", true);
var target_unhide = null;
if (trigger.hasClass('review-wish-add-remove-doc')) {
target_unhide = '.review-wish-add-remove-doc';
} else if (trigger.hasClass('track-untrack-doc')) {
target_unhide = '.track-untrack-doc';
}
if (target_unhide) {}
trigger.parent()
.find(target_unhide)
.not(trigger)
.removeAttr("hidden");
}
}
});
});
});

View file

@ -14,19 +14,19 @@
<td>
{% if user.is_authenticated %}
<a href="{% url "ietf.community.views.untrack_document" username=request.user.username name=doc.name %}" class="track-untrack-doc {% if not doc.tracked_in_personal_community_list %}hide{% endif %}" title="Remove from your personal ID list">
<a href="{% url "ietf.community.views.untrack_document" username=request.user.username name=doc.name %}" class="track-untrack-doc" {% if not doc.tracked_in_personal_community_list %}hidden{% endif %} title="Remove from your personal ID list">
<span class="bi bi-bookmark-check-fill"></span>
</a>
<a href="{% url "ietf.community.views.track_document" username=request.user.username name=doc.name %}" class="track-untrack-doc {% if doc.tracked_in_personal_community_list %}hide{% endif %}" title="Add to your personal ID list">
<a href="{% url "ietf.community.views.track_document" username=request.user.username name=doc.name %}" class="track-untrack-doc" {% if doc.tracked_in_personal_community_list %}hidden{% endif %} title="Add to your personal ID list">
<span class="bi bi-bookmark"></span>
</a>
<br>
{% endif %}
{% if user.review_teams %}
<a class="review-wish-add-remove-doc ajax {% if not doc.has_review_wish %}hide{% endif %}" href="{% url "ietf.doc.views_review.review_wishes_remove" name=doc.name %}?next={{ request.get_full_path|urlencode }}" title="Remove from your review wishes for all teams">
<a class="review-wish-add-remove-doc ajax" {% if not doc.has_review_wish %}hidden{% endif %} href="{% url "ietf.doc.views_review.review_wishes_remove" name=doc.name %}?next={{ request.get_full_path|urlencode }}" title="Remove from your review wishes for all teams">
<span class="bi bi-chats"></span>
</a>
<a class="review-wish-add-remove-doc {% if user.review_teams|length_is:"1" %}ajax {% endif %}{% if doc.has_review_wish %}hide{% endif %}" href="{% url "ietf.doc.views_review.review_wish_add" name=doc.name %}?next={{ request.get_full_path|urlencode }}" title="Add to your review wishes">
<a class="review-wish-add-remove-doc {% if user.review_teams|length_is:"1" %}ajax {% endif %}" {% if doc.has_review_wish %}hidden{% endif %} href="{% url "ietf.doc.views_review.review_wish_add" name=doc.name %}?next={{ request.get_full_path|urlencode }}" title="Add to your review wishes">
<span class="bi bi-chats-o"></span>
</a>
<br>

16
package-lock.json generated
View file

@ -11,7 +11,8 @@
"d3": "^3.5.17",
"datatables.net": "^1.11.3",
"datatables.net-bs5": "^1.11.3",
"jquery": "^3.6.0"
"jquery": "^3.6.0",
"js-cookie": "^3.0.1"
},
"devDependencies": {
"@parcel/transformer-sass": "^2.0.1",
@ -4895,6 +4896,14 @@
"jquery": ">=3 <4"
}
},
"node_modules/js-cookie": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz",
"integrity": "sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==",
"engines": {
"node": ">=12"
}
},
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@ -11860,6 +11869,11 @@
"dev": true,
"requires": {}
},
"js-cookie": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz",
"integrity": "sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw=="
},
"js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",

View file

@ -6,7 +6,8 @@
"d3": "^3.5.17",
"datatables.net": "^1.11.3",
"datatables.net-bs5": "^1.11.3",
"jquery": "^3.6.0"
"jquery": "^3.6.0",
"js-cookie": "^3.0.1"
},
"devDependencies": {
"@parcel/transformer-sass": "^2.0.1",
@ -30,4 +31,4 @@
"distDir": "ietf/static/dist/ietf"
}
}
}
}