mirror of
https://github.com/iv-org/invidious.git
synced 2025-06-28 01:28:30 +00:00
84 lines
1.9 KiB
JavaScript
84 lines
1.9 KiB
JavaScript
"use strict";
|
|
var playlist_data = JSON.parse(
|
|
document.getElementById("playlist_data").textContent,
|
|
);
|
|
var payload = "csrf_token=" + playlist_data.csrf_token;
|
|
|
|
function add_playlist_video(event) {
|
|
const target = event.target;
|
|
var select = document.querySelector("#playlists");
|
|
var option = select.children[select.selectedIndex];
|
|
|
|
var url =
|
|
"/playlist_ajax?action=add_video&redirect=false" +
|
|
"&video_id=" +
|
|
target.getAttribute("data-id") +
|
|
"&playlist_id=" +
|
|
option.getAttribute("data-plid");
|
|
|
|
helpers.xhr(
|
|
"POST",
|
|
url,
|
|
{ payload: payload },
|
|
{
|
|
on200: function (response) {
|
|
option.textContent = "✓ " + option.textContent;
|
|
},
|
|
},
|
|
);
|
|
}
|
|
|
|
function add_playlist_item(event) {
|
|
event.preventDefault();
|
|
const target = event.target;
|
|
const video_id = target.getAttribute("data-id");
|
|
var card = document.querySelector(`#video-card-${video_id}`);
|
|
card.classList.add("hide");
|
|
|
|
var url =
|
|
"/playlist_ajax?action=add_video&redirect=false" +
|
|
"&video_id=" +
|
|
target.getAttribute("data-id") +
|
|
"&playlist_id=" +
|
|
target.getAttribute("data-plid");
|
|
|
|
helpers.xhr(
|
|
"POST",
|
|
url,
|
|
{ payload: payload },
|
|
{
|
|
onNon200: function (xhr) {
|
|
card.classList.remove("hide");
|
|
},
|
|
},
|
|
);
|
|
}
|
|
|
|
function remove_playlist_item(event) {
|
|
event.preventDefault();
|
|
const target = event.target;
|
|
const video_index = target.getAttribute("data-index");
|
|
const card = document.querySelector(
|
|
`.video-card [data-index="${video_index}"]`,
|
|
);
|
|
card.classList.add("hide");
|
|
|
|
var url =
|
|
"/playlist_ajax?action=remove_video&redirect=false" +
|
|
"&set_video_id=" +
|
|
target.getAttribute("data-index") +
|
|
"&playlist_id=" +
|
|
target.getAttribute("data-plid");
|
|
|
|
helpers.xhr(
|
|
"POST",
|
|
url,
|
|
{ payload: payload },
|
|
{
|
|
onNon200: function (xhr) {
|
|
card.classList.remove("hide");
|
|
},
|
|
},
|
|
);
|
|
}
|