aboutsummaryrefslogtreecommitdiff
path: root/data/assets/js/admin/tabs/posts.js
diff options
context:
space:
mode:
Diffstat (limited to 'data/assets/js/admin/tabs/posts.js')
-rw-r--r--data/assets/js/admin/tabs/posts.js78
1 files changed, 78 insertions, 0 deletions
diff --git a/data/assets/js/admin/tabs/posts.js b/data/assets/js/admin/tabs/posts.js
index 03f3483..83db403 100644
--- a/data/assets/js/admin/tabs/posts.js
+++ b/data/assets/js/admin/tabs/posts.js
@@ -2,6 +2,62 @@ jQuery(function($) {
"use strict";
var TEMPLATES = new LuigiTemplate.Cache({
+ post: [
+ "<a ",
+ "href='#' ",
+ "class='list-group-item' ",
+ "data-post_id='%{post_id|h}' ",
+ "data-post_type='%{post_type|h}' ",
+ "title='Edit %{post_type} %{post_id|h}.' ",
+ ">",
+ "%{name|h}",
+ " ",
+ "(slug = %{slug|h}, state = %{state|h}, type = %{post_type|h})",
+ "</a>",
+ ],
+
+ error: [
+ "<span class='list-group-item list-group-item-danger disabled'>",
+ "<i class='fa fa-exclamation-triangle'></i>",
+ " ",
+ "Error: %{error|h}",
+ "</span>",
+ ],
+ });
+
+ function reload() {
+ $('#posts-reload').addClass('disabled')
+ .find('.loading').toggleClass('hidden');
+
+ send('post/get_posts', {
+ 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() {
@@ -30,4 +86,26 @@ jQuery(function($) {
// stop event
return false;
});
+
+ $('#posts-reload').click(function() {
+ reload();
+
+ // stop event
+ return false;
+ });
+
+ $('#posts-q').on('search-update', function() {
+ reload();
+ });
+
+ $('#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;
+ });
});