app/assets/javascripts/admin/blog/posts.js in tb_blog-1.3.3 vs app/assets/javascripts/admin/blog/posts.js in tb_blog-1.3.4

- old
+ new

@@ -4,10 +4,11 @@ edit: function(){ $('body').on('click', '.spud-post-add-category', clickedPostAddCategory); $('body').on('submit', '.spud-post-category-form', submittedPostCategoryForm); $('body').on('blur', '.spud-post-title', blurredPostTitle); $('body').on('click', '.spud-post-url-name-regen', clickedUrlNameRegen); + $(".btn-preview").on('click', clickedPreviewButton); } }; var clickedPostAddCategory = function(e){ e.preventDefault(); @@ -87,8 +88,49 @@ var string; string = title.toLowerCase(); string = string.replace(/\s+/g, '-'); // replace spaces with dashes string = string.replace(/[^a-z0-9\-]+/g, ''); // remove symbols return string; +}; + +var clickedPreviewButton = function(e){ + e.preventDefault(); + var $button = $(this); + var $form = $button.parents('form'); + + // Build a temporary form + $previewForm = $('<form />', { + action: $form.data('previewAction'), + target: '_blank', + method: 'POST', + css: { display: 'none' } + }); + $('body').append($previewForm); + + // Tell tinymce to write out to the textarea + tinyMCE.triggerSave(); + + // Copy fields into our temp form + $form.find('input, select, textarea').each(function(i, el){ + var input = document.createElement('input'); + input.name = el.name; + input.value = el.value; + $previewForm.append(input); + }); + + // Cross site scripting tag + var csrf = document.createElement('input'); + csrf.name = 'authenticity_token'; + csrf.value = tb.util.getCsrfToken(); + $previewForm.append(csrf); + + // Submit it + $button.button('loading'); + $previewForm.submit(); + + setTimeout(function(){ + $previewForm.remove(); + $button.button('reset'); + }, 2000); }; })();