X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/0c3e8f92c425a22c1b9da737db89977d31312353..a1edf3f1a7cff6e6f4d85a4288ca9b1d5cd3b254:/apps/wolnelektury_core/static/js/base.js diff --git a/apps/wolnelektury_core/static/js/base.js b/apps/wolnelektury_core/static/js/base.js index d43f1f23e..4b6c5d34e 100755 --- a/apps/wolnelektury_core/static/js/base.js +++ b/apps/wolnelektury_core/static/js/base.js @@ -59,6 +59,7 @@ (function() { var $current = null; + var menu_loaded = false; $('.hidden-box-wrapper').each(function() { var $hidden = $('.hidden-box', this); $('.hidden-box-trigger', this).click(function(event) { @@ -70,16 +71,46 @@ $current && $current.hide('fast'); $hidden.show('fast'); $current = $hidden; + if ($(this).hasClass('load-menu') && !menu_loaded) { + $.ajax({ + url: '/katalog/', + dataType: "json", + }).done(function(data) { + $.each(data, function(index, value) { + var $menuitem = $('#menu-' + index); + $menuitem.html(value); + var $minisearch = $(""); + $minisearch.keyup(function() { + var s = $(this).val().toLowerCase(); + if (s) { + $("li", $menuitem).each(function() { + if ($("a", this).text().toLowerCase().indexOf(s) != -1) + $(this).show(); + else $(this).hide(); + }); + } + else { + $("li", $menuitem).css("display", ""); + } + }); + $menuitem.prepend($minisearch); + }); + menu_loaded = true; + }); + } } }); }); + /* this kinda breaks the whole page. */ $('body').click(function(e) { if ($current == null) return; var p = $(e.target); while (p.length) { if (p == $current) return; - if (p.hasClass('hidden-box-trigger')) + if (p.hasClass('hidden-box-trigger') + || p.hasClass('simple-toggler') + || p.hasClass('mini-search')) return; p = p.parent(); } @@ -89,6 +120,14 @@ })(); +$('#show-menu').click(function(event) { + event.preventDefault(); + $('#menu').toggle('slow'); +}); +$('#book-list-nav h2').click(function(event) { + event.preventDefault(); + $('#book-list-nav-index').toggle(); +}); $('#themes-list-toggle').click(function(event) { @@ -110,6 +149,19 @@ $('#themes-list-toggle').click(function(event) { $(function(){ $("#search").search();}); + $('body').on('click', '.simple-toggler' , function(ev) { + ev.preventDefault(); + var scope = $(this).closest('.simple-toggler-scope'); + scope.find('.simple-hidden-box').each(function(){ + var $this = $(this); + if ($this.is(':hidden')) { + $this.show(); + } else { + $this.hide(); + } + }); + }); + }); })(jQuery);