Change hash tag. Thumbs on albums.
This commit is contained in:
parent
88a790e0a2
commit
039f009a15
@ -14,7 +14,11 @@ def trim_base_custom(path, base):
|
|||||||
def trim_base(path):
|
def trim_base(path):
|
||||||
return trim_base_custom(path, trim_base.base)
|
return trim_base_custom(path, trim_base.base)
|
||||||
def cache_base(path):
|
def cache_base(path):
|
||||||
path = trim_base(path).replace('/', '-').replace(' ', '_')
|
path = trim_base(path).replace('/', '-').replace(' ', '_').replace('(', '').replace(')', '').replace('#', '').replace('[', '').replace(']', '').replace('"', '').replace("'", '').replace('_-_', '-').lower()
|
||||||
|
while path.find("--") != -1:
|
||||||
|
path = path.replace("--", "-")
|
||||||
|
while path.find("__") != -1:
|
||||||
|
path = path.replace("__", "_")
|
||||||
if len(path) == 0:
|
if len(path) == 0:
|
||||||
path = "root"
|
path = "root"
|
||||||
return path
|
return path
|
||||||
|
@ -39,16 +39,19 @@ a:hover {
|
|||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
#subalbums {
|
#subalbums {
|
||||||
|
padding-top: 1.5em;
|
||||||
}
|
}
|
||||||
.album-button {
|
.album-button {
|
||||||
float: left;
|
float: left;
|
||||||
display: block;
|
display: block;
|
||||||
width: 138px;
|
width: 150px;
|
||||||
height: 138px;
|
height: 60px;
|
||||||
margin: 5px;
|
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
border: 1px #86A1B6 dotted;
|
font-size: 12px;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: top;
|
||||||
|
padding-top: 150px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -4,7 +4,23 @@ $(document).ready(function() {
|
|||||||
return "root";
|
return "root";
|
||||||
if (path[0] == '/')
|
if (path[0] == '/')
|
||||||
path = path.substring(1);
|
path = path.substring(1);
|
||||||
return path.replace(/ /g, "_").replace(/\//g, "-");
|
path = path
|
||||||
|
.replace(/ /g, "_")
|
||||||
|
.replace(/\//g, "-")
|
||||||
|
.replace(/\(/g, "")
|
||||||
|
.replace(/\)/g, "")
|
||||||
|
.replace(/#/g, "")
|
||||||
|
.replace(/\[/g, "")
|
||||||
|
.replace(/\]/g, "")
|
||||||
|
.replace(/"/g, "")
|
||||||
|
.replace(/'/g, "")
|
||||||
|
.replace(/_-_/g, "-")
|
||||||
|
.toLowerCase();
|
||||||
|
while (path.indexOf("--") != -1)
|
||||||
|
path = path.replace(/--/g, "-");
|
||||||
|
while (path.indexOf("__") != -1)
|
||||||
|
path = path.replace(/__/g, "_");
|
||||||
|
return path;
|
||||||
}
|
}
|
||||||
function imagePath(image, path, size, square) {
|
function imagePath(image, path, size, square) {
|
||||||
var suffix;
|
var suffix;
|
||||||
@ -14,6 +30,9 @@ $(document).ready(function() {
|
|||||||
suffix = size.toString();
|
suffix = size.toString();
|
||||||
return "cache/" + cachePath(path + "/" + image + "_" + suffix + ".jpg");
|
return "cache/" + cachePath(path + "/" + image + "_" + suffix + ".jpg");
|
||||||
}
|
}
|
||||||
|
function escapeId(id) {
|
||||||
|
return id.replace(/\./g, "\\.").replace(/,/g, "\\,");
|
||||||
|
}
|
||||||
function loadAlbum() {
|
function loadAlbum() {
|
||||||
if (current_album_cache in album_cache) {
|
if (current_album_cache in album_cache) {
|
||||||
albumLoaded(album_cache[current_album_cache]);
|
albumLoaded(album_cache[current_album_cache]);
|
||||||
@ -73,9 +92,20 @@ $(document).ready(function() {
|
|||||||
else
|
else
|
||||||
$("#subalbums-title").hide();
|
$("#subalbums-title").hide();
|
||||||
var subalbums = "";
|
var subalbums = "";
|
||||||
for (var i = current_album.albums.length - 1; i >= 0; --i)
|
var thumbFinderList = new Array();
|
||||||
subalbums += "<a href=\"#" + cachePath(current_album.path + "/" + current_album.albums[i].path) + "\"><div class=\"album-button\">" + current_album.albums[i].path + "</div></a>";
|
for (var i = current_album.albums.length - 1; i >= 0; --i) {
|
||||||
|
var path = cachePath(current_album.path + "/" + current_album.albums[i].path);
|
||||||
|
var id = "album-" + path;
|
||||||
|
subalbums += "<a href=\"#" + path + "\"><div id=\"" + id + "\" class=\"album-button\">" + current_album.albums[i].path + "</div></a>";
|
||||||
|
thumbFinderList.push({ path: path, id: escapeId(id) });
|
||||||
|
}
|
||||||
$("#subalbums").html(subalbums);
|
$("#subalbums").html(subalbums);
|
||||||
|
for (var i = 0; i < thumbFinderList.length; ++i)
|
||||||
|
(function(thumb) {
|
||||||
|
albumThumbFinder(thumb.path, function(photo, album) {
|
||||||
|
$("#" + thumb.id).css("background-image", "url(" + imagePath(photo.name, album.path, 150, true) + ")");
|
||||||
|
});
|
||||||
|
})(thumbFinderList[i]);
|
||||||
|
|
||||||
$("#album-view").removeClass("photo-view-container");
|
$("#album-view").removeClass("photo-view-container");
|
||||||
$("#subalbums").show();
|
$("#subalbums").show();
|
||||||
@ -115,7 +145,7 @@ $(document).ready(function() {
|
|||||||
$("#album-view").addClass("photo-view-container");
|
$("#album-view").addClass("photo-view-container");
|
||||||
$("#subalbums").hide();
|
$("#subalbums").hide();
|
||||||
$("#photo-view").show();
|
$("#photo-view").show();
|
||||||
var thumb = $("#thumb-" + current_photo_cache.replace(/\./g, "\\."));
|
var thumb = $("#thumb-" + escapeId(current_photo_cache));
|
||||||
var scroller = $("#album-view");
|
var scroller = $("#album-view");
|
||||||
scroller.stop();
|
scroller.stop();
|
||||||
scroller.animate({ scrollLeft: thumb.position().left + scroller.scrollLeft() - scroller.width() / 2 + thumb.width() / 2 }, "slow");
|
scroller.animate({ scrollLeft: thumb.position().left + scroller.scrollLeft() - scroller.width() / 2 + thumb.width() / 2 }, "slow");
|
||||||
@ -132,6 +162,34 @@ $(document).ready(function() {
|
|||||||
}
|
}
|
||||||
current_photo = current_album.photos[current_photo_index];
|
current_photo = current_album.photos[current_photo_index];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function albumForThumbIteration(album, callback) {
|
||||||
|
album_cache[cachePath(album.path)] = album;
|
||||||
|
var index = Math.floor(Math.random() * (album.photos.length + album.albums.length));
|
||||||
|
if (index >= album.photos.length) {
|
||||||
|
index -= album.photos.length;
|
||||||
|
fetchAlbumForThumb(cachePath(album.path + "/" + album.albums[index].path), function(fetchedAlbum) {
|
||||||
|
albumForThumbIteration(fetchedAlbum, callback);
|
||||||
|
});
|
||||||
|
} else
|
||||||
|
callback(album.photos[index], album);
|
||||||
|
}
|
||||||
|
function fetchAlbumForThumb(album, callback) {
|
||||||
|
if (album in album_cache) {
|
||||||
|
callback(album_cache[album]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$.ajax({
|
||||||
|
type: "GET",
|
||||||
|
url: "cache/" + album + ".json",
|
||||||
|
error: function() { $(document.body).html("Couldn't fetch it."); },
|
||||||
|
success: callback
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function albumThumbFinder(album, callback) {
|
||||||
|
fetchAlbumForThumb(album, function(fetchedAlbum) { albumForThumbIteration(fetchedAlbum, callback); });
|
||||||
|
}
|
||||||
|
|
||||||
var current_album_cache = null;
|
var current_album_cache = null;
|
||||||
var current_photo_cache = null;
|
var current_photo_cache = null;
|
||||||
var current_album = null;
|
var current_album = null;
|
||||||
@ -173,4 +231,5 @@ $(document).ready(function() {
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
alert("Hello. This is an obnoxious alert message. PhotoFloat is a work in progress. There are many kinks to be worked out.\n\nTODO:\n* display EXIF info in json\n* link to hi-res\n* sizing bugs\n* random thumbnail for album links\n\nSuggestions?");
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user