12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- /**
- * @name Search Module
- * @description Searches through your photos and albums.
- * @author Tobias Reich
- * @copyright 2014 by Tobias Reich
- */
- search = {
- code: null,
- find: function(term) {
- var params,
- albumsData = "",
- photosData = "",
- code;
- clearTimeout($(window).data("timeout"));
- $(window).data("timeout", setTimeout(function() {
- if ($("#search").val().length!==0) {
- params = "search&term=" + term;
- lychee.api(params, function(data) {
- if (data&&data.albums) {
- albums.json = { content: data.albums };
- $.each(albums.json.content, function() {
- albums.parse(this);
- albumsData += build.album(this);
- });
- }
- if (data&&data.photos) {
- album.json = { content: data.photos };
- $.each(album.json.content, function() {
- photosData += build.photo(this);
- });
- }
- if (albumsData===""&&photosData==="") code = "error";
- else if (albumsData==="") code = build.divider("Photos")+photosData;
- else if (photosData==="") code = build.divider("Albums")+albumsData;
- else code = build.divider("Photos")+photosData+build.divider("Albums")+albumsData;
- if (search.code!==md5(code)) {
- $(".no_content").remove();
- lychee.animate(".album:nth-child(-n+50), .photo:nth-child(-n+50)", "contentZoomOut");
- lychee.animate(".divider", "fadeOut");
- search.code = md5(code);
- setTimeout(function() {
- if (code==="error") $("body").append(build.no_content("search"));
- else {
- lychee.content.html(code);
- lychee.animate(".album:nth-child(-n+50), .photo:nth-child(-n+50)", "contentZoomIn");
- $("img[data-type!='svg']").retina();
- }
- }, 300);
- }
- });
- } else search.reset();
- }, 250));
- },
- reset: function() {
- $("#search").val("");
- $(".no_content").remove();
- if (search.code!=="") {
- // Trash data
- albums.json = null;
- album.json = null;
- photo.json = null;
- search.code = "";
- lychee.animate(".divider", "fadeOut");
- albums.load();
- }
- }
- };
|