etiquette/frontends/etiquette_flask/static/js/api.js
Ethan Dalool 9ac91d3850 Add tag delete button to specific tag page.
On the main tag listing, for child tags, you only get an unlink
button on hover. So if you want to delete a child tag you'd have to
unlink, then refresh, then delete. Now you can just go to its page
and delete it there.
2020-02-27 14:57:27 -08:00

327 lines
7.8 KiB
JavaScript

var api = {};
/**************************************************************************************************/
api.albums = {};
api.albums._add_remove_photos =
function _add_remove_photos(album_id, photo_ids, add_or_remove, callback)
{
var url;
if (add_or_remove === "add")
{ url = `/album/${album_id}/add_photo`; }
else if (add_or_remove === "remove")
{ url = `/album/${album_id}/remove_photo`; }
else
{ throw `should be 'add' or 'remove', not ${add_or_remove}.`; }
var data = new FormData();
if (Array.isArray(photo_ids))
{ photo_ids = photo_ids.join(","); }
data.append("photo_id", photo_ids);
common.post(url, data, callback);
}
api.albums.add_child =
function add_child(album_id, child_id, callback)
{
var url = `/album/${album_id}/add_child`;
var data = new FormData();
data.append("child_id", child_id);
common.post(url, data, callback);
}
api.albums.add_photos =
function add_photos(album_id, photo_ids, callback)
{
api.albums._add_remove_photos(album_id, photo_ids, "add", callback);
}
api.albums.create =
function create(title, parent_id, callback)
{
var url = "/albums/create_album";
var data = new FormData();
if (title !== undefined)
{
data.append("title", title);
}
if (parent_id !== undefined)
{
data.append("parent_id", parent_id);
}
common.post(url, data, callback);
}
api.albums.delete =
function _delete(album_id, callback)
{
var url = `/album/${album_id}/delete`;
common.post(url, null, callback);
}
api.albums.edit =
function edit(album_id, title, description, callback)
{
var url = `/album/${album_id}/edit`;
var data = new FormData();
data.append("title", title);
data.append("description", description);
common.post(url, data, callback);
}
api.albums.refresh_directories =
function refresh_directories(album_id, callback)
{
var url = `/album/${album_id}/refresh_directories`;
common.post(url, null, callback);
}
api.albums.remove_child =
function remove_child(album_id, child_id, callback)
{
var url = `/album/${album_id}/remove_child`;
var data = new FormData();
data.append("child_id", child_id);
common.post(url, data, callback);
}
api.albums.remove_photos =
function remove_photos(album_id, photo_ids, callback)
{
api.albums._add_remove_photos(album_id, photo_ids, "remove", callback);
}
api.albums.callback_follow =
function callback_follow(response)
{
if (response["meta"]["status"] == 200 && response["data"]["id"])
{
window.location.href = "/album/" + response["data"]["id"];
}
else
{
console.log(response);
}
}
api.albums.callback_go_to_albums =
function callback_go_to_albums(response)
{
if (response["meta"]["status"] == 200)
{
window.location.href = "/albums";
}
else
{
console.log(response);
}
}
/**************************************************************************************************/
api.bookmarks = {};
api.bookmarks.create =
function create(b_url, title, callback)
{
var url = "/bookmarks/create_bookmark";
var data = new FormData();
data.append("url", b_url.trim());
title = title.trim();
if (title)
{
data.append("title", title);
}
common.post(url, data, callback);
}
api.bookmarks.delete =
function _delete(bookmark_id, callback)
{
var url = `/bookmark/${bookmark_id}/delete`;
common.post(url, null, callback);
}
api.bookmarks.edit =
function edit(bookmark_id, title, b_url, callback)
{
var url = `/bookmark/${bookmark_id}/edit`;
var data = new FormData();
data.append("title", title.trim());
data.append("url", b_url.trim());
common.post(url, data, callback);
}
/**************************************************************************************************/
api.photos = {};
api.photos.add_tag =
function add_tag(photo_id, tagname, callback)
{
var url = `/photo/${photo_id}/add_tag`;
var data = new FormData();
data.append("tagname", tagname);
common.post(url, data, callback);
}
api.photos.delete =
function _delete(photo_id, delete_file, callback)
{
var url = `/photo/${photo_id}/delete`;
var data = new FormData();
data.append("delete_file", delete_file);
common.post(url, data, callback);
}
api.photos.generate_thumbnail =
function generate_thumbnail(photo_id, special, callback)
{
var url = `/photo/${photo_id}/generate_thumbnail`
var data = new FormData();
for (x in special)
{
data.append(x, special[x]);
}
common.post(url, data, callback);
}
api.photos.refresh_metadata =
function refresh_metadata(photo_id, callback)
{
var url = `/photo/${photo_id}/refresh_metadata`;
common.post(url, null, callback);
}
api.photos.remove_tag =
function remove_tag(photo_id, tagname, callback)
{
var url = `/photo/${photo_id}/remove_tag`;
var data = new FormData();
data.append("tagname", tagname);
common.post(url, data, callback);
}
api.photos.callback_go_to_search =
function callback_go_to_albums(response)
{
if (response["meta"]["status"] == 200)
{
window.location.href = "/search";
}
else
{
console.log(response);
}
}
/**************************************************************************************************/
api.tags = {};
api.tags.add_child =
function add_child(tag_name, child_name, callback)
{
var url = `/tag/${tag_name}/add_child`;
var data = new FormData();
data.append("child_name", child_name);
common.post(url, data, callback);
}
api.tags.create =
function create(name, description, callback)
{
var url = `/tags/create_tag`;
var data = new FormData();
data.append("name", name);
data.append("description", description);
common.post(url, data, callback);
}
api.tags.delete =
function _delete(tag_name, callback)
{
var url = `/tag/${tag_name}/delete`;
common.post(url, null, callback);
}
api.tags.easybake =
function easybake(easybake_string, callback)
{
var url = "/tags/easybake";
var data = new FormData();
data.append("easybake_string", easybake_string);
common.post(url, data, callback);
}
api.tags.edit =
function edit(tag_name, name, description, callback)
{
var url = `/tag/${tag_name}/edit`;
var data = new FormData();
data.append("name", name);
data.append("description", description);
common.post(url, data, callback);
}
api.tags.remove_child =
function remove_child(tag_name, child_name, callback)
{
var url = `/tag/${tag_name}/remove_child`;
var data = new FormData();
data.append("child_name", child_name);
common.post(url, data, callback);
}
api.tags.remove_synonym =
function remove_synonym(tag_name, syn_name, callback)
{
var url = `/tag/${tag_name}/remove_synonym`;
var data = new FormData();
data.append("syn_name", syn_name);
common.post(url, data, callback);
}
api.tags.callback_go_to_tags =
function callback_go_to_tags(response)
{
if (response["meta"]["status"] == 200)
{
window.location.href = "/tags";
}
else
{
console.log(response);
}
}
/**************************************************************************************************/
api.users = {};
api.users.login =
function login(username, password, callback)
{
var url = "/login";
data = new FormData();
data.append("username", username);
data.append("password", password);
common.post(url, data, callback);
}
api.users.logout =
function logout(callback)
{
var url = "/logout";
common.post(url, null, callback);
}
api.users.register =
function register(username, display_name, password_1, password_2, callback)
{
var url = "/register";
data = new FormData();
data.append("username", username);
data.append("display_name", display_name);
data.append("password_1", password_1);
data.append("password_2", password_2);
common.post(url, data, callback);
}