Voyage/static/voyage.js

46 lines
1.3 KiB
JavaScript
Raw Normal View History

2019-12-11 19:47:19 -05:00
function add_tag(input) {
post_id = input.closest('.post_container').id;
tag_name = input.children[0].value;
fetch(url_prefix + '/add_tag', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
'post_id': post_id,
'tag_name': tag_name,
})
}).then(function(response) {
if(!response.ok) { throw new Error('Error adding tag!'); }
return response.json();
}).then(function(json) {
if (!json.ok) { throw new Error('Could not add tag.') }
let tag = document.createElement('span');
tag.innerText = tag_name;
tag.className = 'tag';
let anchor = document.createElement('a');
anchor.href = "javascript:void(0)";
anchor.setAttribute('onlick', "remove_tag(this.closest('.tag'))");
anchor.innerText = '-';
tag.appendChild(anchor);
input.closest('.tags').insertBefore(tag, input);
});
}
function remove_tag(tag) {
post_id = tag.closest('.post_container').id;
tag_name = tag.innerText.replace(/ .*/, '');
fetch(url_prefix + '/remove_tag', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
'post_id': post_id,
'tag_name': tag_name,
})
}).then(function(response) {
if(!response.ok) { throw new Error('Error removing tag!'); }
return response.json();
}).then(function(json) {
if (!json.ok) { throw new Error('Could not remove tag.') }
tag.remove();
});
}