jQuery(function($) { "use strict"; var TEMPLATES = new LuigiTemplate.Cache({ post: [ "", "%{name|h}", " ", "(slug = %{slug|h}, state = %{state|h}, type = %{post_type|h})", "", ], error: [ "", "", " ", "Error: %{error|h}", "", ], }); function reload() { $('#posts-reload').addClass('disabled') .find('.loading').toggleClass('hidden'); send('post/get_posts', { post_type: $('#posts-filter-type li.active a').data('id'), q: $('#posts-q').data('q'), page: 1, }).always(function() { $('#posts-reload').removeClass('disabled') .find('.loading').toggleClass('hidden'); }).fail(function(r) { var error = r.responseText; try { var data = $.parseJSON(r.responseText); if (data.error) error = data.error; } catch (e) {} $('#posts').html(TEMPLATES.run('error', { error: error, })); }).done(function(r) { console.log(r); $('#posts').html($.map(r.rows, function(row) { return TEMPLATES.run('post', row); }).join('')); }); } $('#admin-tab-posts').on('show.bs.tab', function() { $('#posts-reload').click(); }); $('.add-post').click(function() { var type = $(this).data('type'); // dismiss dropdown $('body').trigger('click'); send(type + '/add').fail(function(r) { var msg = r.responseText; try { var data = $.parseJSON(r); if (data.error) msg = data.error; } catch (e) {} alert('Error: ' + msg); }).done(function(r) { console.log(r); // show edit dialog $('#' + type + '-edit-dialog').data('post_id', r.post_id).modal('show') }); // stop event return false; }); $('#posts-reload').click(function() { reload(); // stop event return false; }); $('#posts-q').on('search-update', function() { reload(); }); $('.posts-filter-menu').on('click', 'a', function() { var data = $(this).data(), ul = $(this).parents('ul'), is_default = (data.id == ul.data('default')); ul.find('li').removeClass('active'); $(this).parents('li').addClass('active'); ul.prev('a') .toggleClass('btn-default', is_default) .toggleClass('btn-primary', !is_default) .find('span').text(data.text); // hide dropdown $('body').trigger('click'); // reload posts reload(); // stop event return false; }); $('#posts').on('click', 'a', function() { var data = $(this).data(); $('#' + data.post_type + '-edit-dialog') .data('post_id', data.post_id) .modal('show'); // stop event return false; }); });