256 lines
		
	
	
		
			8.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			256 lines
		
	
	
		
			8.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// Global variables
 | 
						|
var kindlemail = "";
 | 
						|
var currentpath = "";
 | 
						|
var searchTimeout = null;
 | 
						|
var lastSearch = "";
 | 
						|
var admin = false;
 | 
						|
 | 
						|
$(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);
 | 
						|
      if ( ($("#search").val() == "") && (lastSearch != "") ) {
 | 
						|
         lastSearch = "";
 | 
						|
         getContents();
 | 
						|
      }
 | 
						|
   });
 | 
						|
   $("#parsebooks").on("click", parseBooks);
 | 
						|
});
 | 
						|
 | 
						|
function showKindleMail() {
 | 
						|
   $("#amazonlink").html("KindleMail: " + ((kindlemail != "") ? kindlemail : "Click to Set"));
 | 
						|
}
 | 
						|
 | 
						|
function redirectToLogin() {
 | 
						|
   console.log("Redirecting for login...");
 | 
						|
   window.location.replace("index.php");
 | 
						|
}
 | 
						|
 | 
						|
function basename(str) {
 | 
						|
   return str.substr(str.lastIndexOf("/") + 1);
 | 
						|
}
 | 
						|
 | 
						|
function getContents() {
 | 
						|
   if ( searchTimeout ) clearTimeout(searchTimeout);
 | 
						|
   var data = {};
 | 
						|
   if ( $("#search").val() != "" ) {
 | 
						|
      data.search = $("#search").val();
 | 
						|
      lastSearch = data.search;
 | 
						|
   }
 | 
						|
   $.ajax({
 | 
						|
      url      : 'ajax/getcontents.php',
 | 
						|
      data     : data,
 | 
						|
      dataType : 'json',
 | 
						|
      success  : function(data, stat, jqo) {
 | 
						|
                    if ( data.validated == false ) {
 | 
						|
                       redirectToLogin();
 | 
						|
                       return;
 | 
						|
                    }
 | 
						|
                    admin = data.admin;
 | 
						|
                    if ( admin ) $("#parsebooks").removeClass("hide");
 | 
						|
                    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="book/' + item.id + '/' + basename(item.displayname) + '"';
 | 
						|
                          if ( item.displayname.substring(item.displayname.length - 4) == "epub" ) {
 | 
						|
                             contents += '" 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();
 | 
						|
            return;
 | 
						|
         }
 | 
						|
         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();
 | 
						|
            return;
 | 
						|
         }
 | 
						|
         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 parseBooks() {
 | 
						|
   if ( !admin ) return;
 | 
						|
   var myToast = $.toast({
 | 
						|
      text : "<h2><strong>Parsing Books</strong></h2>",
 | 
						|
      showHideTransition : 'slide',
 | 
						|
      bgColor : '#033e9e',
 | 
						|
      textColor : '#eee',
 | 
						|
      hideAfter : false,
 | 
						|
      textAlign : 'left',
 | 
						|
      position : 'top-right'
 | 
						|
   });
 | 
						|
   $.ajax({
 | 
						|
      url      : 'scripts/parsebooks.php',
 | 
						|
      dataType : 'json',
 | 
						|
      success  : function(data, stat, jqo) {
 | 
						|
                    if ( data.validated == false ) {
 | 
						|
						     redirectToLogin();
 | 
						|
                       return;
 | 
						|
                    }
 | 
						|
                    if ( (data.new != 0) || (data.purged != 0) ) getContents();
 | 
						|
                    myToast.reset();
 | 
						|
                    var message = "";
 | 
						|
                    message += "<h2><strong>Books Parsed:</strong></h2>";
 | 
						|
                    message += "<hr>";
 | 
						|
                    message += "<h3><strong>New:</strong> " + data.new + "</h3><br />";
 | 
						|
                    message += "<h3><strong>Purged:</strong> " + data.purged + "</h3><br />";
 | 
						|
                    message += "<h3><strong>Total:</strong> " + data.total + "</h3><br />";
 | 
						|
                    $.toast({
 | 
						|
                       text : message,
 | 
						|
                       showHideTransition : 'slide',
 | 
						|
                       bgColor : '#137c1e',
 | 
						|
                       textColor : '#eee',
 | 
						|
                       hideAfter : 10000,
 | 
						|
                       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();
 | 
						|
                       return;
 | 
						|
                    }
 | 
						|
                    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'
 | 
						|
                    });
 | 
						|
                 }
 | 
						|
   });
 | 
						|
}
 | 
						|
 | 
						|
// vim: ts=3 sw=3 ai:
 |