307 lines
10 KiB
JavaScript
307 lines
10 KiB
JavaScript
var lightboxImages = [];
|
|
var editAlbumID = 0;
|
|
var editImageID = 0;
|
|
var currentAlbum = 0;
|
|
|
|
$(document).ready(function() {
|
|
$("#edit_album").dialog({
|
|
autoOpen: false,
|
|
height: 350,
|
|
width: 400,
|
|
closeOnEscape: true,
|
|
draggable: false,
|
|
close: function() {
|
|
editAlbumID = 0;
|
|
$("#edit_album_title").val("");
|
|
$("#edit_album_manufacturer").val("");
|
|
$("#edit_album_scale").val("");
|
|
$("#edit_album_description").val("");
|
|
},
|
|
buttons: [
|
|
{
|
|
text: "Save",
|
|
click: function() { saveAlbumInfo(); }
|
|
},
|
|
{
|
|
text: "Cancel",
|
|
click: function() { $(this).dialog("close"); }
|
|
}
|
|
]
|
|
});
|
|
$("#edit_image").dialog({
|
|
autoOpen: false,
|
|
height: 250,
|
|
width: 350,
|
|
closeOnEscape: true,
|
|
draggable: false,
|
|
close: function() {
|
|
editImageID = 0;
|
|
$("#edit_image_title").val("");
|
|
$("#edit_image_description").val("");
|
|
},
|
|
buttons: [
|
|
{
|
|
text: "Save",
|
|
click: function() { saveImageInfo(); }
|
|
},
|
|
{
|
|
text: "Cancel",
|
|
click: function() { $(this).dialog("close"); }
|
|
}
|
|
]
|
|
});
|
|
$("#btn_refresh").click(function() { refreshAlbums() });
|
|
$("#btn_album_0").click(function() { showAlbum($(this)) });
|
|
$(".albuminfo_label").click(function() { editAlbum(currentAlbum); });
|
|
$(".btn_setthumbnail").click(function() { setAlbumThumbnail($(this)) });
|
|
getAlbumInfo();
|
|
});
|
|
|
|
function refreshAlbums() {
|
|
toastr.info("Starting refresh of albums.\nThis may take a while if\nthere are many new images.", "Starting Refresh");
|
|
$.ajax({
|
|
type: 'GET',
|
|
url: 'ajax/refreshalbums.php',
|
|
dataType: 'json',
|
|
success: function(data, stat, jqo) {
|
|
toastr.success("Album list refreshed", "Refresh");
|
|
getAlbumInfo();
|
|
},
|
|
error: function(jqp, status, error) {
|
|
toastr.error("Error refreshing album list!\n" + error, "Server Error");
|
|
}
|
|
});
|
|
}
|
|
|
|
function updateLightboxImages() {
|
|
$.ajax({
|
|
type: 'GET',
|
|
url: 'ajax/getalbuminfo.php',
|
|
dataType: 'json',
|
|
success: function(data, stat, jqo) {
|
|
lightboxImages = data.images;
|
|
lightboxImages.forEach(function(image, index) {
|
|
$("#title_"+image.id).text(image.title);
|
|
});
|
|
},
|
|
});
|
|
}
|
|
|
|
function getAlbumInfo() {
|
|
$.ajax({
|
|
type: 'GET',
|
|
url: 'ajax/getalbuminfo.php',
|
|
dataType: 'json',
|
|
success: function(data, stat, jqo) {
|
|
lightboxImages = [];
|
|
if ( data.currentalbum == 0 ) {
|
|
$("#albumdetails").addClass("hidden");
|
|
} else {
|
|
$("#albumdetails").removeClass("hidden");
|
|
lightboxImages = data.images;
|
|
}
|
|
$("#albumtitle").text(data.albumtitle);
|
|
$("#albummanufacturer").text(data.albummanufacturer);
|
|
$("#albumscale").text(data.albumscale);
|
|
$("#albumdescription").text(data.albumdescription);
|
|
$("#albumcontents").html(data.albumcontents);
|
|
if ( data.currentalbum != 0 ) {
|
|
$("#griditem_"+data.thumbnailid).addClass("activethumbnail");
|
|
$(".btn_setthumbnail").click(function() { setAlbumThumbnail($(this)) });
|
|
}
|
|
$(".albumthumbnail").click(function() {
|
|
if ( data.currentalbum == 0 ) {
|
|
showAlbum($(this));
|
|
} else {
|
|
showImage($(this));
|
|
}
|
|
});
|
|
currentAlbum = data.currentalbum;
|
|
$(".griditem_title").click(function() {
|
|
if ( data.currentalbum == 0 ) {
|
|
editAlbum($(this).attr("id").substring($(this).attr("id").lastIndexOf("_") + 1));
|
|
} else {
|
|
editImage($(this).attr("id").substring($(this).attr("id").lastIndexOf("_") + 1));
|
|
}
|
|
});
|
|
},
|
|
error: function(jqp, status, error) {
|
|
toastr.error("Error retrieving album info!\n" + error, "Server Error");
|
|
}
|
|
});
|
|
}
|
|
|
|
function setAlbumThumbnail(clickedElement) {
|
|
var imageid = clickedElement.attr("id").substring(clickedElement.attr("id").lastIndexOf("_") + 1);
|
|
$.ajax({
|
|
type: 'GET',
|
|
url: 'ajax/setthumbnail.php',
|
|
dataType: 'json',
|
|
data: {
|
|
imageid: imageid
|
|
},
|
|
success: function(data, stat, jqo) {
|
|
$(".thumbnail_grid").removeClass("activethumbnail");
|
|
$("#griditem_"+imageid).addClass("activethumbnail");
|
|
},
|
|
error: function(jqp, status, error) {
|
|
toastr.error("Error setting thumbnail!\n" + error, "Server Error");
|
|
}
|
|
});
|
|
}
|
|
|
|
function showImage(clickedElement) {
|
|
var imageid = clickedElement.attr("id").substring(clickedElement.attr("id").lastIndexOf("_") + 1);
|
|
var startIndex = 0;
|
|
var images = [];
|
|
var captions = [];
|
|
lightboxImages.forEach(function(image, index) {
|
|
if ( image.id == imageid ) startIndex = index;
|
|
images.push(image.imageurl);
|
|
captions.push(image.title + ((image.description != "") ? ": " + image.description : ""));
|
|
});
|
|
SimpleLightbox.open({
|
|
items: images,
|
|
captions: captions,
|
|
startAt: startIndex
|
|
});
|
|
}
|
|
|
|
function showAlbum(clickedElement) {
|
|
var albumid = clickedElement.attr("id").substring(clickedElement.attr("id").lastIndexOf("_") + 1);
|
|
$.ajax({
|
|
type: 'GET',
|
|
url: 'ajax/setcurrentalbum.php',
|
|
dataType: 'json',
|
|
data: {
|
|
albumid: albumid
|
|
},
|
|
success: function(data, stat, jqo) {
|
|
$("#albumcontents").html("");
|
|
getAlbumInfo();
|
|
},
|
|
error: function(jqp, status, error) {
|
|
toastr.error("Error setting current album!\n" + error, "Server Error");
|
|
}
|
|
});
|
|
}
|
|
|
|
function saveImageInfo() {
|
|
if ( editImageID == 0 ) return;
|
|
if ( $("#edit_image_title").val() == "" ) {
|
|
toastr.error("Image title cannot be blank!", "Image Title Error");
|
|
return;
|
|
}
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: 'ajax/saveimage.php',
|
|
dataType: 'json',
|
|
data: {
|
|
imageid: editImageID,
|
|
title: $("#edit_image_title").val(),
|
|
description: $("#edit_image_description").val()
|
|
},
|
|
success: function(data, stat, jqo) {
|
|
if ( data.success ) {
|
|
$("#edit_image").dialog("close");
|
|
$("#title_"+data.image.id).text(data.image.title);
|
|
updateLightboxImages();
|
|
} else {
|
|
toastr.error("Could not get image information!", "Image Data Error");
|
|
}
|
|
},
|
|
error: function(jqp, status, error) {
|
|
toastr.error("Error saving image!\n" + error, "Server Error");
|
|
}
|
|
});
|
|
}
|
|
|
|
function saveAlbumInfo() {
|
|
if ( editAlbumID == 0 ) return;
|
|
if ( $("#edit_album_title").val() == "" ) {
|
|
toastr.error("Album title cannot be blank!", "Album Title Error");
|
|
return;
|
|
}
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: 'ajax/savealbum.php',
|
|
dataType: 'json',
|
|
data: {
|
|
albumid: editAlbumID,
|
|
title: $("#edit_album_title").val(),
|
|
manufacturer: $("#edit_album_manufacturer").val(),
|
|
scale: $("#edit_album_scale").val(),
|
|
description: $("#edit_album_description").val()
|
|
},
|
|
success: function(data, stat, jqo) {
|
|
if ( data.success ) {
|
|
$("#edit_album").dialog("close");
|
|
$("#title_"+data.album.id).text(data.album.title);
|
|
if ( currentAlbum != 0 ) {
|
|
$("#albumtitle").text(data.album.title);
|
|
$("#albummanufacturer").text(data.album.manufacturer);
|
|
$("#albumscale").text(data.album.scale);
|
|
$("#albumdescription").text(data.album.description);
|
|
}
|
|
} else {
|
|
toastr.error("Could not get album information!", "Album Data Error");
|
|
}
|
|
},
|
|
error: function(jqp, status, error) {
|
|
toastr.error("Error saving album!\n" + error, "Server Error");
|
|
}
|
|
});
|
|
}
|
|
|
|
function editAlbum(albumid) {
|
|
$.ajax({
|
|
type: 'GET',
|
|
url: 'ajax/getalbum.php',
|
|
dataType: 'json',
|
|
data: {
|
|
albumid: albumid
|
|
},
|
|
success: function(data, stat, jqo) {
|
|
if ( data.success ) {
|
|
editAlbumID = data.album.id;
|
|
$("#edit_album_title").val(data.album.title);
|
|
$("#edit_album_manufacturer").val(data.album.manufacturer);
|
|
$("#edit_album_scale").val(data.album.scale);
|
|
$("#edit_album_description").val(data.album.description);
|
|
$("#edit_album").dialog("open");
|
|
} else {
|
|
toastr.error("Could not get album information!", "Album Data Error");
|
|
}
|
|
},
|
|
error: function(jqp, status, error) {
|
|
toastr.error("Error getting album!\n" + error, "Server Error");
|
|
}
|
|
});
|
|
}
|
|
|
|
function editImage(imageid) {
|
|
$.ajax({
|
|
type: 'GET',
|
|
url: 'ajax/getimage.php',
|
|
dataType: 'json',
|
|
data: {
|
|
imageid: imageid
|
|
},
|
|
success: function(data, stat, jqo) {
|
|
if ( data.success ) {
|
|
editImageID = data.image.id;
|
|
$("#edit_image_title").val(data.image.title);
|
|
$("#edit_image_description").val(data.image.description);
|
|
$("#edit_image").dialog("open");
|
|
} else {
|
|
toastr.error("Could not get image information!", "Image Data Error");
|
|
}
|
|
},
|
|
error: function(jqp, status, error) {
|
|
toastr.error("Error getting image!\n" + error, "Server Error");
|
|
}
|
|
});
|
|
}
|
|
|
|
// vim: ts=4:sw=4
|