BookDepot/js/books.js

186 lines
6.7 KiB
JavaScript

// Global variables
var kindlemail = "";
var currentpath = "";
var searchTimeout = null;
$(document).ready(function() {
getContents();
$("#bookshome").on("click", function() { setPath("/"); });
$("#curpath").on("click", function() { setPath($("#curpath").data("newpath")); });
$("#amazonlink").on("click", function() {
$("#edit_kindle").val(kindlemail);
$("#setkindle").dialog("open");
});
$("#setkindle").dialog({
autoOpen: false,
height: 225,
width: 450,
closeOnEscape: true,
draggable: false,
modal: true,
close: function() {
$("#edit_kindle").val("");
},
buttons: [
{
text: "Save",
click: function() { setKindleMail($("#edit_kindle").val()); }
},
{
text: "Cancel",
click: function() { $(this).dialog("close"); }
}
]
});
$("#search").on("change keyup", function() {
if ( searchTimeout ) clearTimeout(searchTimeout);
if ( $("#search").val().length > 2 ) searchTimeout = setTimeout(getContents, 500);
});
});
function showKindleMail() {
$("#amazonlink").html("KindleMail: " + ((kindlemail != "") ? kindlemail : "Click to Set"));
}
function redirectToLogin() {
console.log("Redirecting for login...");
window.location.replace("index.php");
}
function getContents() {
if ( searchTimeout ) clearTimeout(searchTimeout);
var data = {};
if ( $("#search").val() != "" ) data.search = $("#search").val();
$.ajax({
url : 'ajax/getcontents.php',
data : data,
dataType : 'json',
success : function(data, stat, jqo) {
if ( data.validated == false ) redirectToLogin();
if ( data.kindlemail != kindlemail ) {
kindlemail = data.kindlemail;
showKindleMail();
}
if ( data.bookdir != currentpath ) {
currentpath = data.bookdir;
if ( data.bookdirname != "" ) {
$("#curpath").text(data.bookdirname);
$("#curpath").data("newpath", data.bookdir);
$("#curpath").removeClass("hide");
} else {
$("#curpath").addClass("hide");
}
}
var contents = "";
data.contents.forEach(function(item) {
if ( item.folder == true ) {
contents += '<div><span class="target folder" data-newpath="' + item.fullpath + '">' + item.displayname + "</span></div>";
} else {
contents += '<div><a href="pushbook.php?id=' + item.id;
if ( item.displayname.substring(item.displayname.length - 4) == "epub" ) {
contents += '&file=' + item.displayname + '" target="_blank"';
} else {
contents += '"';
}
contents += ' class="target file">' + item.displayname + "</a>";
if ( item.cankindle == true ) {
contents += ' (<span class="tokindle" data-fileid="' + item.id + '" data-filename="' + item.displayname + '">Kindle</span>)';
}
contents += "</div>";
}
});
$("#foldercontents").html(contents);
$(".folder").on("click", function(e) { setPath($(e.currentTarget).data("newpath")); });
$(".tokindle").on("click", function(e) {
var target = $(e.currentTarget);
sendToKindle(target.data("fileid"), target.data("filename")); });
}
});
}
function setPath(newpath) {
$.ajax({
url: 'ajax/setpath.php',
data: {newpath: newpath},
dataType: 'json',
success: function(data, stat, jqo) {
if ( data.validated == false ) redirectToLogin();
if ( data.changed == true ) {
$("#search").val("");
getContents();
}
}
});
}
function setKindleMail(email) {
$.ajax({
url: 'ajax/setkindle.php',
data: {kindlemail: email},
dataType: 'json',
success: function(data, stat, jqo) {
if ( data.validated == false ) redirectToLogin();
if ( data.success == false ) {
var myToast = $.toast({
text : "<h3><strong>Error: Invalid Email Address</strong></h3>",
showHideTransition : 'slide',
bgColor : '#cc0000',
textColor : '#eee',
hideAfter : 4000,
textAlign : 'left',
position : 'top-right'
});
} else {
kindlemail = email;
showKindleMail();
$("#setkindle").dialog("close");
$("#edit_kindle").val("");
var myToast = $.toast({
text : "<h3><strong>Kindle Email Address set successfully</strong></h3>",
showHideTransition : 'slide',
bgColor : '#137c1e',
textColor : '#eee',
hideAfter : 4000,
textAlign : 'left',
position : 'top-right'
});
}
}
});
}
function sendToKindle(fileid, filename) {
var myToast = $.toast({
text : "<h3><strong>Sending: " + filename + "</strong></h3>",
showHideTransition : 'slide',
bgColor : '#033e9e',
textColor : '#eee',
hideAfter : false,
textAlign : 'left',
position : 'top-right'
});
$.ajax({
url : 'ajax/sendtokindle.php',
data : {fileid: fileid},
dataType : 'json',
success : function(data, stat, jqo) {
if ( data.validated == false ) redirectToLogin();
myToast.reset();
var message = "";
message = "<h3><strong>Sent File:</strong> " + data.filename + "</h3>";
message += "<h3><strong>To:</strong> " + data.tomail + "</h3><br />";
message += "<h4><strong>Don't forget to add \"books@jaj.com\" ";
message += "to your approved senders.</strong></h4>";
$.toast({
text : message,
showHideTransition : 'slide',
bgColor : '#137c1e',
textColor : '#eee',
hideAfter : 10000,
textAlign : 'left',
position : 'top-right'
});
}
});
}