trilium/public/javascripts/utils.js
2017-10-15 19:47:05 -04:00

72 lines
No EOL
2 KiB
JavaScript

function message(str) {
const top = $("#top-message");
top.fadeIn(1500).css("display","inline-block");
top.html(str);
top.fadeOut(1500);
}
function error(str) {
const error = $("#error-message");
error.show().css("display","inline-block");
error.html(str);
error.fadeOut(10000);
}
function getAutocompleteItems(noteIds) {
const autocompleteItems = [];
for (const noteId of noteIds) {
const fullName = getFullName(noteId);
if (fullName !== null) {
autocompleteItems.push({
value: fullName + " (" + noteId + ")",
label: fullName
});
}
}
return autocompleteItems;
}
function uint8ToBase64(u8Arr) {
const CHUNK_SIZE = 0x8000; //arbitrary number
const length = u8Arr.length;
let index = 0;
let result = '';
let slice;
while (index < length) {
slice = u8Arr.subarray(index, Math.min(index + CHUNK_SIZE, length));
result += String.fromCharCode.apply(null, slice);
index += CHUNK_SIZE;
}
return btoa(result);
}
function base64ToUint8Array(base64encoded) {
return new Uint8Array(atob(base64encoded).split("").map(c => c.charCodeAt(0)));
}
function getDateFromTS(timestamp) {
// Date accepts number of milliseconds since epoch so UTC timestamp works without any extra handling
// see https://stackoverflow.com/questions/4631928/convert-utc-epoch-to-local-date-with-javascript
const utcDate = new Date(timestamp * 1000);
const localDate = new Date(utcDate.getTime() - utcDate.getTimezoneOffset() * 60 * 1000);
return localDate;
}
function formatTime(date) {
return (date.getHours() <= 9 ? "0" : "") + date.getHours() + ":" + (date.getMinutes() <= 9 ? "0" : "") + date.getMinutes();
}
function formatDate(date) {
return date.getDate() + ". " + (date.getMonth() + 1) + ". " + date.getFullYear();
}
function formatDateTime(date) {
return formatDate(date) + " " + formatTime(date);
}