Cleanup
[wolnelektury.git] / src / catalogue / static / 2022 / book / filter.js
diff --git a/src/catalogue/static/2022/book/filter.js b/src/catalogue/static/2022/book/filter.js
deleted file mode 100644 (file)
index 2ff4262..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-(function($) {
-
-    let unpagedSearch = null;
-    if (!$(".quick-filter").val() && !$('.l-pagination li').length) {
-        unpagedSearch = '';
-    }
-    
-    function get_page(page, search, ordering, callback) {
-        get_page_by_url('.?page=' + page + '&order=' + ordering + '&search=' + search, callback);
-    }
-
-    let lastFulfilledPage = 0;
-
-    function get_page_by_url(url, callback) {
-        let requestTime = + new Date();
-        $.get(
-            url,
-            function(data) {
-                if (lastFulfilledPage > requestTime) return;
-                lastFulfilledPage = requestTime;
-
-                html = $(data);
-                objectList = $('#object-list', html);
-                paginate = $('#paginate', html);
-
-                ids = new Set(); 
-                $(".icon-like", objectList).each(
-                    (i, e)=>{
-                        ids.add($(e).attr('data-book'));
-                    }
-                );
-                ids = [...ids].join(',');
-                $.refreshLikes(ids);
-
-                $('#book-list').html(objectList.children());
-                $('#paginator').html(paginate.children());
-                history.replaceState({}, '', url);
-                callback && callback();
-            }
-        )
-    }
-
-    $("#paginator").on('click', 'a', function() {
-        get_page_by_url(url=$(this).attr('href'));
-        return false;
-    });
-
-    $(".quick-filter").each(function() {
-        let bookList = $('#' + $(this).data('for'));
-        let filterList = $('.' + $(this).data('filters'));
-
-        $(this).on('focus', function() {
-            filterList.addClass('filters-enabled');
-        });
-        $(this).on('blur', function() {
-            filterList.removeClass('filters-enabled');
-        });
-
-        $(this).on('input propertychange', function() {
-            let search = $(this).val().toLowerCase();
-
-            if (!search.startsWith(unpagedSearch)) {
-                get_page(1, search, 'title', function() {
-                    if ($('.l-pagination li').length) {
-                        unpagedSearch = null;
-                    }
-                })
-            } else {
-                bookList.children().each(function() {
-                    found = !search ||
-                        $(".s", this).text().toLowerCase().search(search) != -1
-                    ;
-                    if (found) 
-                        $(this).fadeIn();
-                    else
-                        $(this).fadeOut();
-                });
-            }
-
-            $('.filter-container', filterList).children().each(function() {
-                found = !search ||
-                    $(this).text().toLowerCase().search(search) != -1
-                    ;
-                if (found) 
-                    $(this).fadeIn();
-                else
-                    $(this).fadeOut();
-            });
-        });
-
-    });
-
-    $(".l-books__sorting button").on('click', function() {
-        if ($(this).hasClass('is-active')) return;
-        $(".is-active", $(this).parent()).removeClass("is-active");
-        $(this).addClass("is-active");
-        let prop = $(this).attr('data-order');
-        $(".l-books__sorting select").val(prop);
-        if (prop == '-') prop = '';
-        resort(prop);
-    });
-    $(".l-books__sorting select").on('change', function() {
-        let prop = $(this).val();
-        $(".is-active", $(this).parent()).removeClass("is-active");
-        $("[data-order='" + prop +"']", $(this).parent()).addClass("is-active");
-        if (prop == '-') prop = '';
-        resort(prop);
-    });
-
-    function resort(prop) {
-        // do we NOW have pages (possibly after filtering)?
-        // if we don't have pages, we can just sort here.
-        let havePages = $('.l-pagination li').length > 0;
-
-        $(".l-books__item").css('opacity', '0');
-        setTimeout(function() {
-            if (havePages) {
-                get_page(1, '', prop);
-            } else {
-                if (prop) {
-                    $(".l-books__item").each(function() {
-                        $(this).css('order', $(this).attr('data-' + prop));
-                    });
-                } else {
-                    $(".l-books__item").css('order', '');
-                }
-                setTimeout(function() {
-                    $(".l-books__item").css('opacity', '100%');
-                }, 200);
-            }
-        }, 200);
-    }
-    
-})(jQuery);