jQuery(document).ready(function($) { window.listTable = { init: function() { this.loading = false; $('form').each(function() { this.reset(); }); if ( '' == $.query.GET('paged') ) $.query.SET('paged', 1); this.set_total_pages(); this.$tbody = $('#the-list, #the-comment-list'); this.$overlay = $('

' + listTableL10n.error + '

'); }, show_overlay: function() { this.loading = true; $('.error.ajax').remove(); this.$overlay .css({ width: this.$tbody.width() + 'px', height: this.$tbody.height() - 20 + 'px' }) .css(this.$tbody.offset()) .show(); }, hide_overlay: function() { this.loading = false; this.$overlay.hide(); } } listTable.init(); // Ajaxify various UI elements // pagination $('.tablenav-pages a').click(function() { var paged = $.query.GET('paged'); switch ( $(this).attr('class') ) { case 'first-page': paged = 1; break; case 'prev-page': paged -= 1; break; case 'next-page': paged += 1; break; case 'last-page': paged = listTable.get_total_pages(); break; } listTable.change_page(paged); return false; }); $('.current-page').keypress(function(e) { if ( 13 != e.keyCode ) return; listTable.change_page(parseInt($(this).val())); return false; }); // sortable columns $('th.sortable a, th.sorted a').click(function() { function get_initial_order($el) { return $.query.load( $el.find('a').attr('href') ).get('order'); } var $link = $(this), $th = $link.parent('th'), orderby = $.query.load( $link.attr('href') ).get('orderby'), order; if ( orderby == $.query.get('orderby') ) { // changing the direction order = ( 'asc' == $.query.get('order') ) ? 'desc' : 'asc'; } else { // changing the parameter order = get_initial_order($th); var $old_th = $('th.sorted'); if ( $old_th.length ) { $old_th.removeClass('sorted').addClass('sortable'); $old_th.removeClass('desc').removeClass('asc').addClass( 'asc' == get_initial_order( $old_th ) ? 'desc' : 'asc' ); } $th.removeClass('sortable').addClass('sorted'); } $th.removeClass('desc').removeClass('asc').addClass(order); listTable.update_rows({'orderby': orderby, 'order': order}, true); return false; }); // searchbox function change_search(ev) { if ( 'keypress' == ev.type && 13 != ev.keyCode ) return; ev.preventDefault(); ev.stopImmediatePropagation(); var data = $(this).parent('.search-box').find(':input').serializeObject(); listTable.update_rows(data, true, function() { if ( $('h2.nav-tab-wrapper').length ) return; $('h2 .subtitle').remove(); if ( data.s ) $('h2').append($('').html( listTableL10n.search.replace('%s', this.htmlencode(data.s)) )); }); } $('.search-box :submit').click(change_search); $('.search-box :text').keypress(change_search); // tablenav dropdowns $('#post-query-submit').click(function() { var args = {}; $(this).parents('.actions').find('select[name!="action"]').each(function() { var $el = $(this); args[$el.attr('name')] = $el.val(); }); listTable.update_rows(args, true); return false; }); // view switch $('.view-switch a').click(function() { var $this = $(this); listTable.update_rows({'mode': $.query.load($this.attr('href')).get('mode')}, false, function() { $('.view-switch .current').removeClass('current'); $this.addClass('current'); }); return false; }); });