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;
});
});