diff -r 26dddb3f5804 -r be4eb4db3418 integration/v2/js/keyword-mosaic.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/integration/v2/js/keyword-mosaic.js Thu Jun 27 17:31:15 2013 +0200 @@ -0,0 +1,184 @@ +$(function() { + + $('.masonry-177').masonry({ + columnWidth: 177, + itemSelector: '.item-masonry' + }); + + function updateMasonry() { + $('.masonry-177').data('masonry').layout(); + } + + var keywordsobj = {}; + + $(".item-masonry").each(function(i, element) { + $(element) + .attr("data-keywords") + .split(",") + .forEach(function(kw) { + var keyword = kw.replace(/(^\s+|\s+$)/g,''), + basekw = keyword.toLowerCase(); + if (!keywordsobj.hasOwnProperty(basekw)) { + keywordsobj[basekw] = { + keyword: keyword, + basekeyword: basekw, + count: 0, + items: $(), + enabled: true + }; + } + kwobj = keywordsobj[basekw]; + kwobj.count++; + kwobj.items.push(element); + }); + }); + + var keywordslist = []; + + for (var k in keywordsobj) { + if (keywordsobj.hasOwnProperty(k)) { + keywordslist.push(keywordsobj[k]); + } + } + + keywordslist.sort(function(a, b) { + return b.count - a.count; + }); + + var filterlist = $(".filters"); + + function updateKeywords() { + var enabledItems = $(); + keywordslist.forEach(function(kw) { + if (kw.enabled) { + enabledItems = enabledItems.add(kw.items); + kw.li.removeClass("disabled"); + } else { + kw.li.addClass("disabled"); + } + }); + $(".item-masonry").addClass("disabled"); + enabledItems.removeClass("disabled"); + } + + keywordslist.slice(0,100).forEach(function(kw) { + var li = $('
  • '), + outera = $(''), + innera = $(''); + outera.text(kw.keyword + ' '); + outera.append(innera); + li.append(outera); + kw.li = li; + li.click(function() { + if (kw.enabled) { + keywordslist.forEach(function(k) { + k.enabled = false; + }); + kw.enabled = true; + } else { + keywordslist.forEach(function(k) { + k.enabled = true; + }); + } + updateKeywords(); + return false; + }); + innera.click(function() { + kw.enabled = !kw.enabled; + updateKeywords(); + return false; + }); + filterlist.append(li); + }) + + $('.toggle-comment').click(function(e){ + e.preventDefault(); + $('.show-comment, .hide-comment').hide(); + if($('.mosaic').length){ + $('.mosaic').removeClass('mosaic').addClass('mosaic-comment'); + $('.hide-comment').show(); + }else{ + $('.mosaic-comment').removeClass('mosaic-comment').addClass('mosaic'); + $('.show-comment').show(); + } + updateMasonry(); + }); + +//################## +/* + $(document).on('click','.display-keyword', function(e){ + e.preventDefault(); + var ul = $(this).parents('ul'), + li = $(this).parents('li'), + iconAction = li.find('.icon-action'), + index = li.index(), + keyword = $(this).attr('data-keyword'); + + if(!li.hasClass('disabled') && ul.find('li.disabled').length){ + ul.find('li').each(function(k, v){ + var displayKeyword = $(v).find('.display-keyword'), + iconAction = $(v).find('.icon-action'), + keyword = $.trim(displayKeyword.attr('data-keyword')); + enabledDisplayKeyword($(v), keyword, iconAction); + }); + }else{ + ul.find('li').each(function(k, v){ + if(index != k){ + var displayKeyword = $(v).find('.display-keyword'), + iconAction = $(v).find('.icon-action'), + keyword = displayKeyword.attr('data-keyword'); + disabledDisplayKeyword($(v), keyword, iconAction); + } + }); + enabledDisplayKeyword(li, keyword, iconAction); + } + }); + $('.icon-action').bind('click', function(e){ + e.preventDefault(); + var li = $(this).parents('li'); + toggleDisplayKeyword(li); + }); + + function toggleDisplayKeyword(li){ + var displayKeyword = li.find('.display-keyword'), + iconAction = li.find('.icon-action'), + keyword = displayKeyword.attr('data-keyword'); + if(li.hasClass('disabled')){ + enabledDisplayKeyword(li, keyword, iconAction); + }else{ + disabledDisplayKeyword(li, keyword, iconAction); + } + } + function enabledDisplayKeyword(li, keyword, iconAction){ + + $('ul.mosaic > li').each(function(k, v){ + + var keywords = $(v).attr('data-keywords'), + item = $(v); + keywords = keywords.split(','); + for(var i=0; i<= keywords.length; i++){ + if($.trim(keywords[i]) == keyword){ + item.find('.curtain').hide(); + } + } + }); + $('li.keyword-'+keyword).find('.curtain').hide(); + iconAction.addClass('cross'); + } + function disabledDisplayKeyword(li, keyword, iconAction){ + + $('ul.mosaic > li').each(function(k, v){ + + var keywords = $(v).attr('data-keywords'), + item = $(v); + keywords = keywords.split(','); + for(var i=0; i<= keywords.length; i++){ + if($.trim(keywords[i]) == keyword){ + item.find('.curtain').show(); + } + } + }); + iconAction.addClass('circle'); + } +*/ +});