etiquette/frontends/etiquette_flask/static/common.js

102 lines
2.6 KiB
JavaScript
Raw Normal View History

function create_message_bubble(message_area, message_positivity, message_text, lifespan)
2016-09-18 08:33:46 +00:00
{
if (lifespan === undefined)
{
lifespan = 8000;
}
var message = document.createElement("div");
message.className = "message_bubble " + message_positivity;
2016-09-18 08:33:46 +00:00
var span = document.createElement("span");
span.innerHTML = message_text;
message.appendChild(span);
message_area.appendChild(message);
setTimeout(function(){message_area.removeChild(message);}, lifespan);
}
2016-10-21 03:15:24 +00:00
function add_album_tag(albumid, tagname, callback)
{
if (tagname === ""){return}
var url = "/album/" + albumid;
data = new FormData();
data.append("add_tag", tagname);
return post(url, data, callback);
}
2016-09-18 08:33:46 +00:00
function post(url, data, callback)
{
var request = new XMLHttpRequest();
request.onreadystatechange = function()
{
if (request.readyState == 4)
{
if (callback != null)
{
var text = request.responseText;
var response = JSON.parse(text);
response["_request_url"] = url;
2017-05-06 04:08:32 +00:00
response["_status"] = request.status;
callback(response);
2016-09-18 08:33:46 +00:00
}
}
};
var asynchronous = true;
request.open("POST", url, asynchronous);
request.send(data);
}
2017-05-13 22:24:41 +00:00
function bind_box_to_button(box, button, ctrl_enter)
2016-09-18 08:33:46 +00:00
{
box.onkeydown=function()
{
2017-05-13 22:24:41 +00:00
// Thanks Yaroslav Yakovlev
// http://stackoverflow.com/a/9343095
if (
(event.keyCode == 13 || event.keyCode == 10) &&
((ctrl_enter && event.ctrlKey) || (!ctrl_enter))
)
2016-09-18 08:33:46 +00:00
{
button.click();
}
};
2017-05-13 22:24:41 +00:00
2016-10-10 03:50:13 +00:00
}
function entry_with_history_hook(box, button)
{
//console.log(event.keyCode);
if (box.entry_history === undefined)
{box.entry_history = [];}
if (box.entry_history_pos === undefined)
{box.entry_history_pos = -1;}
if (event.keyCode == 13)
{
/* Enter */
box.entry_history.push(box.value);
button.click();
box.value = "";
}
else if (event.keyCode == 38)
{
/* Up arrow */
if (box.entry_history.length == 0)
{return}
if (box.entry_history_pos == -1)
{
box.entry_history_pos = box.entry_history.length - 1;
}
else if (box.entry_history_pos > 0)
{
box.entry_history_pos -= 1;
}
box.value = box.entry_history[box.entry_history_pos];
setTimeout(function(){box.selectionStart = box.value.length;}, 0);
2016-10-10 03:50:13 +00:00
}
else if (event.keyCode == 27)
{
box.value = "";
}
else
{
box.entry_history_pos = -1;
}
}