From 7667db3fece795a14615ceb0911971b853711e16 Mon Sep 17 00:00:00 2001 From: Josh Sherman Date: Fri, 29 Aug 2008 02:34:28 +0000 Subject: [PATCH] Updated the AJAX library to handle custom JSON handlers (functions to parse the JSON data and format it as needed) git-svn-id: http://svn.cleancode.org/svn/pickles@39 4d10bc64-7434-11dc-a737-d2d0f8310089 --- static/js/ajax.js | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/static/js/ajax.js b/static/js/ajax.js index 7c08182..6d2ea4a 100644 --- a/static/js/ajax.js +++ b/static/js/ajax.js @@ -58,8 +58,10 @@ function createRequest() { } } -function ajaxSubmit(form) { +function ajaxSubmit(form, customHandler, beforeOrAfter) { var params = ''; + var customHandler = (customHandler == null) ? null : customHandler; + var beforeOrAfter = (beforeOrAfter == null) ? 'before' : beforeOrAfter; if (params = getForm(form)) { createRequest(); @@ -71,16 +73,21 @@ function ajaxSubmit(form) { request.onreadystatechange = function() { if (request.readyState == 4 && request.status == 200) { - var responseObject = eval( "(" + request.responseText + ")" ); - + var responseObject = eval( "(" + request.responseText + ")" ); var responseElement = document.createElement('div'); - responseElement.className = responseObject.type; - var responseMessage = document.createTextNode(responseObject.message); + if (customHandler) { + responseElement = window[customHandler](responseObject, responseElement); + } + else { + var responseMessage = document.createTextNode(responseObject.message); + + responseElement.className = responseObject.type; - responseElement.appendChild(responseMessage); + responseElement.appendChild(responseMessage); + } - form.insertBefore(responseElement, form.firstChild); + form.insertBefore(responseElement, (beforeOrAfter == 'before') ? form.firstChild : form.lastChild); } }