You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

90 lines
3.0 KiB
JavaScript

/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
// Update note content dynamically
setInterval(function () {
$.getJSON("action.php", {
action: "getnotes"
}, function (notes) {
if ($(".notecard").length != notes.length) {
window.location.reload(true);
}
for (var i = 0; i < notes.length; i++) {
n = notes[i];
var notecard = $("#notecard_" + n['noteid']);
if (notecard.data("color") != n['color']) {
window.location.reload(true);
}
var favbtn = notecard.find(".favorite-btn");
notecard.find(".note-text").html(n['html']);
$(".parsedown-task-list input[type=checkbox]").removeAttr("disabled");
if (n.favorite) {
favbtn.addClass("text-warning");
favbtn.html('<i class="fas fa-star"></i>');
} else {
favbtn.removeClass("text-warning");
favbtn.html('<i class="far fa-star"></i>');
}
}
});
}, 15 * 1000);
$(".color-btn").click(function () {
$("#colormodal input[name=noteid]").val($(this).data("noteid"));
$("#colormodal input[name=color]").val($(this).data("color"));
$("#colormodal").modal();
});
$(".notecard").on("click", ".notecard-click2open", function () {
document.location.href = "./app.php?page=editnote&note=" + $(this).parent().data("note");
});
var tooltipoptions = {
placement: 'bottom'
};
$('[data-toggle="tooltip"]').tooltip(tooltipoptions);
$('[data-tooltip="tooltip"]').tooltip(tooltipoptions);
window.shuffleInstance = new window.Shuffle(document.getElementById('grid'), {
itemSelector: '.grid__brick',
sizer: '.sizer-element',
});
// Do the opposite of <noscript>
$(".yesscript").removeClass("d-none");
$(".parsedown-task-list input[type=checkbox]").removeAttr("disabled");
$(".note-text").on("click", ".parsedown-task-list", function (e) {
var checkbox = $(this).find("input[type=checkbox]");
var line = $(this);
// The checkbox has already changed by itself if it was clicked directly
var checked = checkbox.prop("checked");
if (e.target.nodeName != "INPUT") {
checked = !checked;
}
console.log(checkbox);
console.log(line);
console.log(checked);
$.post("action.php", {
action: "togglecheckitem",
noteid: $(this).closest(".notecard").data("note"),
text: line.text()
}, function () {
if (checked) {
line.addClass("parsedown-task-list-close");
line.removeClass("parsedown-task-list-open");
checkbox.prop("checked", true);
} else {
line.addClass("parsedown-task-list-open");
line.removeClass("parsedown-task-list-close");
checkbox.prop("checked", false);
}
});
return false;
});