{"id":58,"date":"2026-02-21T10:56:07","date_gmt":"2026-02-21T10:56:07","guid":{"rendered":"https:\/\/server-wechsel.de\/events-list-style\/"},"modified":"2026-02-21T10:56:07","modified_gmt":"2026-02-21T10:56:07","slug":"events-list-style","status":"publish","type":"page","link":"https:\/\/staging.portosofie.ch\/en\/events-list-style\/","title":{"rendered":"Events \u2013 List Style"},"content":{"rendered":"                <div class='mage list_with_filter_section mep_event_list' id='mage-container'>\n\t\t\t\t\tThere are currently no events scheduled.                <\/div>\n                <script>\n                    jQuery(document).ready(function () {\n                        var containerEl = document.querySelector('#mep_event_list_abr69d0390c1ccde');\n                        var mixer = mixitup(containerEl, {\n                            selectors: {\n                                target: '.mep-event-list-loop',\n                                control: '[data-mixitup-control]'\n                            }\n                        });\n                        \/\/ Handle title filter input\n                        jQuery('input[name=\"filter_with_title\"]').on('keyup', function () {\n                            var searchText = jQuery(this).val().toLowerCase();\n                            var items = jQuery('.mep-event-list-loop');\n                            items.each(function () {\n                                var itemTitle = jQuery(this).data('title').toLowerCase();\n                                if (itemTitle.indexOf(searchText) > -1) {\n                                    jQuery(this).show();\n                                } else {\n                                    jQuery(this).hide();\n                                }\n                            });\n                        });\n                        \/\/ Handle date filter change\n                        jQuery('input[name=\"filter_with_date\"]').on('change', function () {\n                            var selectedDate = jQuery(this).val();\n                            var items = jQuery('.mep-event-list-loop');\n                            if (!selectedDate) {\n                                items.show();\n                            } else {\n                                var filterDate = new Date(selectedDate);\n                                filterDate.setHours(0, 0, 0, 0); \/\/ Reset time part for date comparison\n                                items.each(function () {\n                                    var itemDate = new Date(jQuery(this).data('date'));\n                                    itemDate.setHours(0, 0, 0, 0); \/\/ Reset time part for date comparison\n                                    if (itemDate.getTime() === filterDate.getTime()) {\n                                        jQuery(this).show();\n                                    } else {\n                                        jQuery(this).hide();\n                                    }\n                                });\n                            }\n                        });\n                        \/\/ Handle state filter change\n                        jQuery('select[name=\"filter_with_state\"]').on('change', function () {\n                            var state = jQuery(this).val();\n                            var items = jQuery('.mep-event-list-loop');\n                            if (state === '') {\n                                items.show();\n                            } else {\n                                items.each(function () {\n                                    var itemState = jQuery(this).data('state');\n                                    if (itemState === state) {\n                                        jQuery(this).show();\n                                    } else {\n                                        jQuery(this).hide();\n                                    }\n                                });\n                            }\n                        });\n                        \/\/ Handle city filter change\n                        jQuery('select[name=\"filter_with_city\"]').on('change', function () {\n                            applyAllFilters();\n                        });\n                        \/\/ Handle category filter change\n                        jQuery('select[name=\"filter_with_category\"]').on('change', function () {\n                            applyAllFilters();\n                        });\n                        \/\/ Handle organizer filter change\n                        jQuery('select[name=\"filter_with_organizer\"]').on('change', function () {\n                            applyAllFilters();\n                        });\n                        \/\/ Combined filter function that applies all filters\n                        function applyAllFilters() {\n                            var titleFilter = jQuery('input[name=\"filter_with_title\"]').val().toLowerCase();\n                            var dateFilter = jQuery('input[name=\"filter_with_date\"]').val();\n                            var stateFilter = jQuery('select[name=\"filter_with_state\"]').val();\n                            var cityFilter = jQuery('select[name=\"filter_with_city\"]').val();\n                            var categoryFilter = jQuery('select[name=\"filter_with_category\"]').val();\n                            var organizerFilter = jQuery('select[name=\"filter_with_organizer\"]').val();\n                            var visibleCount = 0;\n                            jQuery('.mep-event-list-loop').each(function () {\n                                var $item = jQuery(this);\n                                var show = true;\n                                \/\/ Title filter\n                                if (titleFilter) {\n                                    var itemTitle = ($item.data('title') || '').toLowerCase();\n                                    if (itemTitle.indexOf(titleFilter) === -1) {\n                                        show = false;\n                                    }\n                                }\n                                \/\/ Date filter\n                                if (show && dateFilter) {\n                                    var itemDate = $item.data('date');\n                                    if (itemDate) {\n                                        var filterDate = new Date(dateFilter);\n                                        filterDate.setHours(0, 0, 0, 0);\n                                        var itemDateObj = new Date(itemDate);\n                                        itemDateObj.setHours(0, 0, 0, 0);\n                                        if (itemDateObj.getTime() !== filterDate.getTime()) {\n                                            show = false;\n                                        }\n                                    } else {\n                                        show = false;\n                                    }\n                                }\n                                \/\/ State filter\n                                if (show && stateFilter) {\n                                    var itemState = $item.data('state') || '';\n                                    if (itemState !== stateFilter) {\n                                        show = false;\n                                    }\n                                }\n                                \/\/ City filter\n                                if (show && cityFilter) {\n                                    var itemCity = $item.data('city-name') || '';\n                                    if (itemCity !== cityFilter) {\n                                        show = false;\n                                    }\n                                }\n                                \/\/ Category filter\n                                if (show && categoryFilter) {\n                                    var itemCategory = $item.data('category') || '';\n                                    \/\/ Check if category matches (can be comma-separated)\n                                    var itemCategories = itemCategory.split(',').map(function (c) {\n                                        return c.trim();\n                                    });\n                                    if (itemCategories.indexOf(categoryFilter) === -1) {\n                                        show = false;\n                                    }\n                                }\n                                \/\/ Organizer filter\n                                if (show && organizerFilter) {\n                                    var itemOrganizer = $item.data('organizer') || '';\n                                    \/\/ Check if organizer matches (can be comma-separated)\n                                    var itemOrganizers = itemOrganizer.split(',').map(function (o) {\n                                        return o.trim();\n                                    });\n                                    if (itemOrganizers.indexOf(organizerFilter) === -1) {\n                                        show = false;\n                                    }\n                                }\n                                if (show) {\n                                    $item.show();\n                                    visibleCount++;\n                                } else {\n                                    $item.hide();\n                                }\n                            });\n                            \/\/ Update count display\n                            jQuery('.qty_count').text(visibleCount);\n                        }\n                        \/\/ Update title filter to use combined function\n                        jQuery('input[name=\"filter_with_title\"]').off('keyup').on('keyup', function () {\n                            applyAllFilters();\n                        });\n                        \/\/ Update date filter to use combined function\n                        jQuery('input[name=\"filter_with_date\"]').off('change').on('change', function () {\n                            applyAllFilters();\n                        });\n                        \/\/ Update state filter to use combined function\n                        jQuery('select[name=\"filter_with_state\"]').off('change').on('change', function () {\n                            applyAllFilters();\n                        });\n\t\t\t\t\t\t                    });\n                <\/script>\n                \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","iawp_total_views":0,"footnotes":""},"dipi_cpt_category":[],"class_list":["post-58","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/staging.portosofie.ch\/en\/wp-json\/wp\/v2\/pages\/58","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/staging.portosofie.ch\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/staging.portosofie.ch\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/staging.portosofie.ch\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/staging.portosofie.ch\/en\/wp-json\/wp\/v2\/comments?post=58"}],"version-history":[{"count":0,"href":"https:\/\/staging.portosofie.ch\/en\/wp-json\/wp\/v2\/pages\/58\/revisions"}],"wp:attachment":[{"href":"https:\/\/staging.portosofie.ch\/en\/wp-json\/wp\/v2\/media?parent=58"}],"wp:term":[{"taxonomy":"dipi_cpt_category","embeddable":true,"href":"https:\/\/staging.portosofie.ch\/en\/wp-json\/wp\/v2\/dipi_cpt_category?post=58"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}