invidious/assets/js/playlist_widget.js

75 lines
2.4 KiB
JavaScript
Raw Normal View History

2022-04-20 10:38:24 +02:00
'use strict';
var playlist_data = JSON.parse(document.getElementById('playlist_data').textContent);
function add_playlist_video(target) {
var select = target.parentNode.children[0].children[1];
var option = select.children[select.selectedIndex];
var url = '/playlist_ajax?action_add_video=1&redirect=false' +
'&video_id=' + target.getAttribute('data-id') +
'&playlist_id=' + option.getAttribute('data-plid');
var xhr = new XMLHttpRequest();
xhr.responseType = 'json';
xhr.timeout = 10000;
xhr.open('POST', url, true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.onreadystatechange = function () {
2022-04-20 11:13:16 +02:00
if (xhr.readyState === 4) {
if (xhr.status === 200) {
option.innerText = '✓' + option.innerText;
}
}
2022-04-20 11:05:19 +02:00
};
xhr.send('csrf_token=' + playlist_data.csrf_token);
}
2019-08-06 01:49:13 +02:00
function add_playlist_item(target) {
var tile = target.parentNode.parentNode.parentNode.parentNode.parentNode;
tile.style.display = 'none';
var url = '/playlist_ajax?action_add_video=1&redirect=false' +
'&video_id=' + target.getAttribute('data-id') +
'&playlist_id=' + target.getAttribute('data-plid');
var xhr = new XMLHttpRequest();
xhr.responseType = 'json';
xhr.timeout = 10000;
xhr.open('POST', url, true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.onreadystatechange = function () {
2022-04-20 11:13:16 +02:00
if (xhr.readyState === 4) {
if (xhr.status !== 200) {
2019-08-06 01:49:13 +02:00
tile.style.display = '';
}
}
2022-04-20 11:05:19 +02:00
};
2019-08-06 01:49:13 +02:00
xhr.send('csrf_token=' + playlist_data.csrf_token);
}
function remove_playlist_item(target) {
var tile = target.parentNode.parentNode.parentNode.parentNode.parentNode;
tile.style.display = 'none';
var url = '/playlist_ajax?action_remove_video=1&redirect=false' +
'&set_video_id=' + target.getAttribute('data-index') +
'&playlist_id=' + target.getAttribute('data-plid');
var xhr = new XMLHttpRequest();
xhr.responseType = 'json';
xhr.timeout = 10000;
xhr.open('POST', url, true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.onreadystatechange = function () {
2022-04-20 11:13:16 +02:00
if (xhr.readyState === 4) {
if (xhr.status !== 200) {
2019-08-06 01:49:13 +02:00
tile.style.display = '';
}
}
2022-04-20 11:05:19 +02:00
};
2019-08-06 01:49:13 +02:00
xhr.send('csrf_token=' + playlist_data.csrf_token);
2022-04-25 12:14:08 +02:00
}