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.js124
1 files changed, 16 insertions, 108 deletions
diff --git a/data/assets/js/admin/tabs/posts.js b/data/assets/js/admin/tabs/posts.js
index 00117d6..03f3483 100644
--- a/data/assets/js/admin/tabs/posts.js
+++ b/data/assets/js/admin/tabs/posts.js
@@ -2,122 +2,30 @@ jQuery(function($) {
"use strict";
var TEMPLATES = new LuigiTemplate.Cache({
- user: [
- "<a ",
- "href='#' ",
- "class='list-group-item %{css|h}' ",
- "title='Edit user \"%{user_name|h}\".' ",
- "data-row='%{row|json|h}' ",
- "data-q='%{q|h}' ",
- ">",
- "<i class='fa fa-fw fa-spinner fa-spin hidden loading'></i>",
- "<i class='fa fa-fw fa-user loading'></i>",
- " ",
- "%{user_name|h} (%{email|h})",
-
- "<span class='badge pull-right'>",
- "%{role_name|h}",
- "</span>",
- "</a>",
- ],
-
- loading: [
- "<span class='list-group-item disabled'>",
- "<i class='fa fa-spinner fa-spin'></i>",
- " ",
- "Loading...",
- "</span>",
- ],
-
- error: [
- "<span class='list-group-item list-group-item-danger disabled'>",
- "<i class='fa fa-exclamation-triangle'></i>",
- " ",
- "Error: %{responseText|h}",
- "</span>",
- ],
});
- function update_slug(name, slug) {
- if (slug.prop('disabled')) {
- slug.val(
- name.val().toLowerCase()
- .replace(/[^a-z0-9_\.-]+/g, '-')
- .replace(/^-+|-+$/g, '')
- );
- }
- }
+ $('.add-post').click(function() {
+ var type = $(this).data('type');
- $.each(['blog', 'page', 'project'], function(i, id) {
- var p = '#' + id + '-edit-';
+ // dismiss dropdown
+ $('body').trigger('click');
- $(p + 'dialog').one('shown.bs.modal', function() {
- // lazy-init editor
- CKEDITOR.replace(id + '-edit-body');
- }).on('show.bs.modal', function() {
- // reset close confirmation
- $(this).data('close-dialog-confirmed', false);
-
- // hide all bodies
- $(this).find('.modal-body').addClass('hidden');
- }).on('shown.bs.modal', function() {
- $(p + 'name').focus();
- }).on('hide.bs.modal', function() {
- return (
- $(this).data('close-dialog-confirmed') ||
- confirm('Close without saving changes?')
- );
- }).find('button[data-dismiss="modal"]').click(function() {
- // override close confirmation
- // FIXME: should this only be on save?
- $(p + 'dialog').data('close-dialog-confirmed', true);
- });
+ send(type + '/add').fail(function(r) {
+ var msg = r.responseText;
- $(p + 'confirm').click(function() {
- if ($(this).hasClass('disabled'))
- return false;
+ try {
+ var data = $.parseJSON(r);
+ if (data.error)
+ msg = data.error;
+ } catch (e) {}
- // TODO: see #user-add-confirm
- alert('TODO: create');
+ alert('Error: ' + msg);
+ }).done(function(r) {
+ console.log(r);
- // stop event
- return false;
+ // show edit dialog
+ $('#' + type + '-edit-dialog').data('post_id', r.post_id).modal('show')
});
- });
-
- $('.post-name').keydown(function() {
- var name = $(this),
- slug = $(this).parents('.modal-body').find('.post-slug');
-
- setTimeout(function() {
- update_slug(name, slug);
- }, 10);
- });
-
- $('.post-slug-lock').click(function() {
- var modal_body = $(this).parents('.modal-body');
-
- // toggle locked state
- $(this).toggleClass('btn-default btn-primary')
- .find('.fa').toggleClass('fa-lock fa-unlock');
- var locked = $(this).hasClass('btn-default');
-
- // update slug disabled state
- var slug = modal_body.find('.post-slug');
- slug.prop('disabled', locked ? 'disabled' : null);
-
- if (locked) {
- // auto-generate slug
- update_slug(modal_body.find('.post-name'), slug);
- }
-
- // stop event
- return false;
- });
-
- $('.state-buttons').on('a', 'click', function() {
- $(this).parent().find('.btn-primary').toggleClass('btn-default btn-primary');
- $(this).toggleClass('btn-default btn-primary');
// stop event
return false;