From d5ab75fd9e776ad7ffd87f0a1499026137b259d0 Mon Sep 17 00:00:00 2001 From: William DURAND Date: Thu, 28 Jun 2012 10:37:35 +0200 Subject: [PATCH] Added button to get raw response in the sandbox --- Resources/views/layout.html.twig | 67 +++++++++++++++++++++++++++++--- Resources/views/method.html.twig | 4 +- 2 files changed, 64 insertions(+), 7 deletions(-) diff --git a/Resources/views/layout.html.twig b/Resources/views/layout.html.twig index ff715e3..a1a3949 100644 --- a/Resources/views/layout.html.twig +++ b/Resources/views/layout.html.twig @@ -30,6 +30,45 @@ $(this).next().slideToggle('slow'); }); + var toggleButtonText = function ($btn) { + if ($btn.text() === 'Default') { + $btn.text('Raw'); + } else { + $btn.text('Default'); + } + }; + + var renderRawBody = function ($container) { + var rawData, $btn; + + rawData = $container.data('raw-response'); + $btn = $container.parents('.pane').find('.to-raw'); + + $container.addClass('prettyprinted'); + $container.html(rawData); + + $btn.removeClass('to-raw'); + $btn.addClass('to-prettify'); + + toggleButtonText($btn); + }; + + var renderPrettifiedBody = function ($container) { + var rawData, $btn; + + rawData = $container.data('raw-response'); + $btn = $container.parents('.pane').find('.to-prettify'); + + $container.removeClass('prettyprinted'); + $container.html(prettifyResponse(rawData)); + prettyPrint && prettyPrint(); + + $btn.removeClass('to-prettify'); + $btn.addClass('to-raw'); + + toggleButtonText($btn); + }; + $('.tabs li').click(function() { var contentGroup = $(this).parents('.content'); @@ -40,8 +79,6 @@ $(this).addClass('selected'); }); - - var prettifyResponse = function(text) { try { var data = typeof text === 'string' ? JSON.parse(text) : text; @@ -58,10 +95,18 @@ }; var displayResponseData = function(xhr, container) { - container.removeClass('prettyprinted'); + var data = xhr.responseText; - container.html(prettifyResponse(xhr.responseText)); - prettyPrint && prettyPrint(); + container.data('raw-response', data); + + if ('<' === data[0]) { + renderRawBody(container); + } else { + renderPrettifiedBody(container); + } + + container.parents('.pane').find('.to-prettify').text('Raw'); + container.parents('.pane').find('.to-raw').text('Raw'); }; var displayResponseHeaders = function(xhr, container) { @@ -141,6 +186,18 @@ return false; }); + $('.pane.sandbox').delegate('.to-raw', 'click', function(e) { + renderRawBody($(this).parents('.pane').find('.response')); + + e.preventDefault(); + }); + + $('.pane.sandbox').delegate('.to-prettify', 'click', function(e) { + renderPrettifiedBody($(this).parents('.pane').find('.response')); + + e.preventDefault(); + }); + $('.pane.sandbox').on('click', '.add', function() { var html = $(this).parents('.pane').find('.tuple_template').html(); diff --git a/Resources/views/method.html.twig b/Resources/views/method.html.twig index 88f2384..a59857c 100644 --- a/Resources/views/method.html.twig +++ b/Resources/views/method.html.twig @@ -145,10 +145,10 @@

Request URL


 
-                

Response Body

+

Response Body [Raw]


 
-                

Response headers

+

Response Headers