diff options
Diffstat (limited to 'data/assets/js/admin/tabs/posts.js')
-rw-r--r-- | data/assets/js/admin/tabs/posts.js | 124 |
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; |