trilium/public/javascripts/utils.js

112 lines
2.2 KiB
JavaScript
Raw Normal View History

"use strict";
function reloadApp() {
window.location.reload(true);
}
function showMessage(message) {
console.log(now(), "message: ", message);
$.notify({
// options
message: message
},{
// settings
type: 'success',
2017-11-27 06:04:18 +08:00
delay: 3000
});
2017-08-14 09:42:10 +08:00
}
function showError(message, delay = 10000) {
console.log(now(), "error: ", message);
$.notify({
// options
message: message
},{
// settings
type: 'danger',
delay: delay
});
}
function throwError(message) {
messaging.logError(message);
throw new Error(message);
}
2017-12-11 04:31:43 +08:00
function parseDate(str) {
try {
return new Date(Date.parse(str));
}
catch (e) {
throw new Error("Can't parse date from " + str + ": " + e.stack);
}
2017-10-01 10:36:14 +08:00
}
2017-12-15 11:38:38 +08:00
function padNum(num) {
return (num <= 9 ? "0" : "") + num;
}
2017-10-01 10:36:14 +08:00
function formatTime(date) {
2017-12-15 11:38:38 +08:00
return padNum(date.getHours()) + ":" + padNum(date.getMinutes());
2017-10-01 10:36:14 +08:00
}
function formatTimeWithSeconds(date) {
return padNum(date.getHours()) + ":" + padNum(date.getMinutes()) + ":" + padNum(date.getSeconds());
}
2017-10-01 10:36:14 +08:00
function formatDate(date) {
2017-12-15 11:38:38 +08:00
return padNum(date.getDate()) + ". " + padNum(date.getMonth() + 1) + ". " + date.getFullYear();
2017-10-01 10:36:14 +08:00
}
function formatDateTime(date) {
return formatDate(date) + " " + formatTime(date);
2017-12-01 08:58:00 +08:00
}
function now() {
return formatTimeWithSeconds(new Date());
}
2017-12-01 08:58:00 +08:00
function isElectron() {
return window && window.process && window.process.type;
}
function assertArguments() {
for (const i in arguments) {
if (!arguments[i]) {
throwError(`Argument idx#${i} should not be falsy: ${arguments[i]}`);
}
}
}
function assert(expr, message) {
if (!expr) {
throwError(message);
}
}
function isTopLevelNode(node) {
return isRootNode(node.getParent());
}
function isRootNode(node) {
return node.key === "root_1";
}
function escapeHtml(str) {
return $('<div/>').text(str).html();
}
async function stopWatch(what, func) {
const start = new Date();
const ret = await func();
const tookMs = new Date().getTime() - start.getTime();
console.log(`${what} took ${tookMs}ms`);
return ret;
2017-06-12 04:04:07 +08:00
}