123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- /**
- * @description Searches through your photos and albums.
- * @copyright 2014 by Tobias Reich
- */
- search = {
- code: null
- }
- search.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) {
- // Build albums
- if (data&&data.albums) {
- albums.json = { content: data.albums };
- $.each(albums.json.content, function() {
- albums.parse(this);
- albumsData += build.album(this);
- });
- }
- // Build photos
- if (data&&data.photos) {
- album.json = { content: data.photos };
- $.each(album.json.content, function() {
- photosData += build.photo(this);
- });
- }
- // 1. No albums and photos found
- // 2. Only photos found
- // 3. Only albums found
- // 4. Albums and photos found
- 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;
- // Only refresh view when search results are different
- if (search.code!==md5(code)) {
- $('.no_content').remove();
- lychee.animate('.album, .photo', 'contentZoomOut');
- lychee.animate('.divider', 'fadeOut');
- search.code = md5(code);
- setTimeout(function() {
- if (code==='error') {
- lychee.content.html('');
- $('body').append(build.no_content('search'));
- } else {
- lychee.content.html(code);
- lychee.animate('.album, .photo', 'contentZoomIn');
- $('img[data-type!="svg"]').retina();
- }
- }, 300);
- }
- });
- } else search.reset();
- }, 250));
- }
- search.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();
- }
- }
|