146 lines
4.3 KiB
JavaScript
Executable File
146 lines
4.3 KiB
JavaScript
Executable File
$(document).ready(function() {
|
|
$(".dropdown-trigger").dropdown({hover: true, coverTrigger: false});
|
|
$(".sidenav").sidenav();
|
|
$(".tooltipped").tooltip();
|
|
$('.modal').modal({dismissible: false});
|
|
$('#editlink_modal_delete').click(function() { deleteLink(); });
|
|
$('#editlink_modal_save').click(function() { saveEditLink(); });
|
|
$('#editlink_modal_cancel').click(function() { cancelEditLink(); });
|
|
updateLinkList();
|
|
});
|
|
|
|
function goHome() {
|
|
$.ajax({
|
|
url: 'ajax/setlocation.php',
|
|
dataType: 'json',
|
|
data: {gohome: 1},
|
|
success: function(data, stat, jqo) {
|
|
if ( data.success ) window.location.href = "index.php";
|
|
}
|
|
});
|
|
}
|
|
|
|
function escapeHTML(text) {
|
|
var map = {
|
|
'&': '&',
|
|
'<': '<',
|
|
'>': '>',
|
|
'"': '"',
|
|
"'": '''
|
|
};
|
|
|
|
return text.relink(/[&<>"']/g, function(m) { return map[m]; });
|
|
}
|
|
|
|
function encodeHTML(text) {
|
|
return jQuery('<div />').text(text).html();
|
|
}
|
|
|
|
function decodeHTML(text) {
|
|
return jQuery('<div />').html(text).text();
|
|
}
|
|
|
|
function toast(message, delay, classname) {
|
|
if ( delay === undefined ) delay = 4000;
|
|
if ( classname === undefined ) classname = "";
|
|
M.toast({html: message, displayLength: delay, classes: classname});
|
|
}
|
|
|
|
function openEditLinkModal(id = 0) {
|
|
var instance = M.Modal.getInstance($('#editlink_modal'));
|
|
$.ajax({
|
|
url: 'ajax/getlinkdata.php',
|
|
dataType: 'json',
|
|
data: {id: id},
|
|
success: function(data, stat, jqo) {
|
|
if (data.id !== null) {
|
|
$("#editlink_id").val(data.id);
|
|
$("#editlink_url").val(data.url);
|
|
$("#editlink_title").val(data.title);
|
|
$("#editlink_description").val(data.description);
|
|
$("#editlink_modal_delete").show();
|
|
} else {
|
|
$("#editlink_id").val("0");
|
|
$("#editlink_url").val("");
|
|
$("#editlink_title").val("");
|
|
$("#editlink_description").val("");
|
|
$("#editlink_modal_delete").hide();
|
|
}
|
|
M.updateTextFields();
|
|
instance.open();
|
|
}
|
|
});
|
|
}
|
|
|
|
function updateLinkList() {
|
|
$.ajax({
|
|
type: 'GET',
|
|
url: 'getlinks/index.php',
|
|
dateType: 'json',
|
|
success: function(data, stat, jqo) {
|
|
var tabledata = "";
|
|
for (var i=0; i<data.links.length; i++) {
|
|
var link = data.links[i];
|
|
tabledata += "<tr";
|
|
if ( data.canedit ) tabledata += " class='clickable' onClick='openEditLinkModal(" + link.id + ")'";
|
|
tabledata += ">";
|
|
tabledata += "<td>" + link.url_safe + "</td>";
|
|
tabledata += "<td>" + link.title_safe + "</td>";
|
|
tabledata += "<td>" + link.description_safe + "</td>";
|
|
tabledata += "</td>";
|
|
tabledata += "</tr>";
|
|
}
|
|
$("#linklist").html(tabledata);
|
|
$('.tooltipped').tooltip();
|
|
}
|
|
});
|
|
}
|
|
|
|
function deleteLink() {
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: 'ajax/deletelink.php',
|
|
dataType: 'json',
|
|
data: {id: $("#editlink_id").val()},
|
|
success: function(data, stat, jqo) {
|
|
if ( data.success ) {
|
|
cancelEditLink();
|
|
toast(data.message, 4000);
|
|
updateLinkList();
|
|
} else {
|
|
toast(data.message, 4000, "failtoast");
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
function saveEditLink() {
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: 'ajax/savelink.php',
|
|
dataType: 'json',
|
|
data: {id: $("#editlink_id").val(),
|
|
url: $("#editlink_url").val(),
|
|
title: $("#editlink_title").val(),
|
|
description: $("#editlink_description").val()},
|
|
success: function(data, stat, jqo) {
|
|
if ( data.success ) {
|
|
cancelEditLink();
|
|
toast(data.message, 4000);
|
|
updateLinkList();
|
|
} else {
|
|
toast(data.message, 4000, "failtoast");
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
function cancelEditLink() {
|
|
var instance = M.Modal.getInstance($('#editlink_modal'));
|
|
instance.close();
|
|
$("#editlink_url").val("");
|
|
$("#editlink_title").val("");
|
|
$("#editlink_description").val("");
|
|
M.updateTextFields();
|
|
}
|