From d94059e7d8bc6589cf5549b833566db5c377d0a8 Mon Sep 17 00:00:00 2001 From: Afuna Date: Tue, 7 Oct 2014 18:57:26 +0800 Subject: [PATCH] [#665] JS for the buttons --- htdocs/js/pages/entry/new.js | 46 ++++++++++++++++++++++++++++++++++++ views/entry/form.tt | 7 +++--- 2 files changed, 49 insertions(+), 4 deletions(-) diff --git a/htdocs/js/pages/entry/new.js b/htdocs/js/pages/entry/new.js index 9ec0ccbf24..f5b7a54786 100644 --- a/htdocs/js/pages/entry/new.js +++ b/htdocs/js/pages/entry/new.js @@ -4,6 +4,51 @@ var postForm = (function($) { $form.fancySelect(); }; + var initButtons = function($form, $crosspost, strings) { + function openPreview(e) { + var form = e.target.form; + var action = form.action; + var target = form.target; + + var $password = $(form).find( "input[type='password']:enabled" ); + $password.prop( "disabled", true ); + + form.action = "/entry/preview"; + form.target = 'preview'; + window.open( '', + 'preview', + 'width=760,height=600,resizable=yes,status=yes,toolbar=no,location=no,menubar=no,scrollbars=yes' + ); + form.submit(); + + form.action = action; + form.target = target; + $password.prop( "disabled", false ); + e.preventDefault(); + } + + function handleSpellcheck(e) { + $(this.form).data( "skipchecks", "spellcheck" ); + } + + function handleDelete(e) { + $(this.form).data( "skipchecks", "delete" ); + + var do_delete = confirm( strings.delete_confirm ); + if ( do_delete ) { + do_delete = $crosspost.crosspost( "confirmDelete", strings.delete_xposts_confirm ); + } + + if ( ! do_delete ) { + e.preventDefault(); + } + } + + $("#js-preview-button").click(openPreview); + $("#js-spellcheck-button").click(handleSpellcheck); + $("#js-delete-button").click(handleDelete); + }; + var initCommunitySection = function($form) { $form.bind("journalselect-full", function(e, journal) { if ( journal.name && journal.isremote ) { @@ -499,6 +544,7 @@ var postForm = (function($) { var entryForm = $("#js-post-entry"); initMainForm(entryForm); + initButtons(entryForm, $( ".crosspost-component" ), formData.strings); initCommunitySection(entryForm); initCurrents(entryForm, formData.moodpics); diff --git a/views/entry/form.tt b/views/entry/form.tt index 559488d0fb..491bbae559 100644 --- a/views/entry/form.tt +++ b/views/entry/form.tt @@ -261,7 +261,7 @@ postFormInitData.did_spellcheck = [% spellcheck.did_spellcheck ? "true" : "false