diff -r f11b234497f7 -r 61c384dda19e test/emission_fichiers/ajax-responder.js --- a/test/emission_fichiers/ajax-responder.js Fri Apr 27 19:18:21 2012 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,347 +0,0 @@ -// $Id: ajax-responder.js,v 1.18.2.6 2010/01/22 06:48:08 merlinofchaos Exp $ -/** - * @file - * - * CTools flexible AJAX responder object. - */ - -(function ($) { - Drupal.CTools = Drupal.CTools || {}; - Drupal.CTools.AJAX = Drupal.CTools.AJAX || {}; - Drupal.CTools.AJAX.commands = Drupal.CTools.AJAX.commands || {}; - - /** - * Success callback for an ajax request. - * - * This function expects to receive a packet of data from a JSON object - * which is essentially a list of commands. Each commands must have a - * 'command' setting and this setting must resolve to a function in the - * Drupal.CTools.AJAX.commands space. - */ - Drupal.CTools.AJAX.respond = function(data) { - for (i in data) { - if (data[i]['command'] && Drupal.CTools.AJAX.commands[data[i]['command']]) { - Drupal.CTools.AJAX.commands[data[i]['command']](data[i]); - } - } - }; - - /** - * Generic replacement click handler to open the modal with the destination - * specified by the href of the link. - */ - Drupal.CTools.AJAX.clickAJAXLink = function() { - if ($(this).hasClass('ctools-ajaxing')) { - return false; - } - - var url = $(this).attr('href'); - var object = $(this); - $(this).addClass('ctools-ajaxing'); - try { - url = url.replace(/nojs/g, 'ajax'); - $.ajax({ - type: "POST", - url: url, - data: { 'js': 1, 'ctools_ajax': 1 }, - global: true, - success: Drupal.CTools.AJAX.respond, - error: function(xhr) { - Drupal.CTools.AJAX.handleErrors(xhr, url); - }, - complete: function() { - object.removeClass('ctools-ajaxing'); - }, - dataType: 'json' - }); - } - catch (err) { - alert("An error occurred while attempting to process " + url); - $(this).removeClass('ctools-ajaxing'); - return false; - } - - return false; - }; - - /** - * Generic replacement click handler to open the modal with the destination - * specified by the href of the link. - */ - Drupal.CTools.AJAX.clickAJAXButton = function() { - if ($(this).hasClass('ctools-ajaxing')) { - return false; - } - - // Put our button in. - this.form.clk = this; - - var url = Drupal.CTools.AJAX.findURL(this); - $(this).addClass('ctools-ajaxing'); - var object = $(this); - try { - if (url) { - url = url.replace('/nojs/', '/ajax/'); - $.ajax({ - type: "POST", - url: url, - data: { 'js': 1, 'ctools_ajax': 1 }, - global: true, - success: Drupal.CTools.AJAX.respond, - error: function(xhr) { - Drupal.CTools.AJAX.handleErrors(xhr, url); - }, - complete: function() { - object.removeClass('ctools-ajaxing'); - }, - dataType: 'json' - }); - } - else { - var form = this.form; - url = $(form).attr('action'); - url = url.replace('/nojs/', '/ajax/'); - $(form).ajaxSubmit({ - type: "POST", - url: url, - data: { 'js': 1, 'ctools_ajax': 1 }, - global: true, - success: Drupal.CTools.AJAX.respond, - error: function(xhr) { - Drupal.CTools.AJAX.handleErrors(xhr, url); - }, - complete: function() { - object.removeClass('ctools-ajaxing'); - }, - dataType: 'json' - }); - } - } - catch (err) { - alert("An error occurred while attempting to process " + url); - $(this).removeClass('ctools-ajaxing'); - return false; - } - return false; - }; - - /** - * Display error in a more fashion way - */ - Drupal.CTools.AJAX.handleErrors = function(xhr, path) { - var error_text = ''; - - if ((xhr.status == 500 && xhr.responseText) || xhr.status == 200) { - error_text = xhr.responseText; - - // Replace all < and > by < and > - error_text = error_text.replace("/&(lt|gt);/g", function (m, p) { - return (p == "lt")? "<" : ">"; - }); - - // Now, replace all html tags by empty spaces - error_text = error_text.replace(/<("[^"]*"|'[^']*'|[^'">])*>/gi,""); - - // Fix end lines - error_text = error_text.replace(/[\n]+\s+/g,"\n"); - } - else if (xhr.status == 500) { - error_text = xhr.status + ': ' + Drupal.t("Internal server error. Please see server or PHP logs for error information."); - } - else { - error_text = xhr.status + ': ' + xhr.statusText; - } - - alert(Drupal.t("An error occurred at @path.\n\nError Description: @error", {'@path': path, '@error': error_text})); - } - - /** - * Generic replacement for change handler to execute ajax method. - */ - Drupal.CTools.AJAX.changeAJAX = function () { - if ($(this).hasClass('ctools-ajaxing')) { - return false; - } - - var url = Drupal.CTools.AJAX.findURL(this); - $(this).addClass('ctools-ajaxing'); - var object = $(this); - var form_id = $(object).parents('form').get(0).id; - try { - if (url) { - url = url.replace('/nojs/', '/ajax/'); - $.ajax({ - type: "POST", - url: url, - data: {'ctools_changed': $(this).val(), 'js': 1, 'ctools_ajax': 1 }, - global: true, - success: Drupal.CTools.AJAX.respond, - error: function(xhr) { - Drupal.CTools.AJAX.handleErrors(xhr, url); - }, - complete: function() { - object.removeClass('ctools-ajaxing'); - if ($(object).hasClass('ctools-ajax-submit-onchange')) { - $('form#' + form_id).submit(); - } - }, - dataType: 'json' - }); - } - else { - if ($(object).hasClass('ctools-ajax-submit-onchange')) { - $('form#' + form_id).submit(); - } - return false; - } - } - catch (err) { - alert("An error occurred while attempting to process " + url); - $(this).removeClass('ctools-ajaxing'); - return false; - } - return false; - }; - - /** - * Find a URL for an AJAX button. - * - * The URL for this gadget will be composed of the values of items by - * taking the ID of this item and adding -url and looking for that - * class. They need to be in the form in order since we will - * concat them all together using '/'. - */ - Drupal.CTools.AJAX.findURL = function(item) { - var url = ''; - var url_class = '.' + $(item).attr('id') + '-url'; - $(url_class).each( - function() { - if (url && $(this).val()) { - url += '/'; - } - url += $(this).val(); - }); - return url; - }; - - Drupal.CTools.AJAX.commands.prepend = function(data) { - $(data.selector).prepend(data.data); - Drupal.attachBehaviors($(data.selector)); - }; - - Drupal.CTools.AJAX.commands.append = function(data) { - $(data.selector).append(data.data); - Drupal.attachBehaviors($(data.selector)); - }; - - Drupal.CTools.AJAX.commands.replace = function(data) { - $(data.selector).replaceWith(data.data); - Drupal.attachBehaviors($(data.selector)); - }; - - Drupal.CTools.AJAX.commands.after = function(data) { - var object = $(data.data); - $(data.selector).after(object); - Drupal.attachBehaviors(object); - }; - - Drupal.CTools.AJAX.commands.before = function(data) { - var object = $(data.data); - $(data.selector).before(object); - Drupal.attachBehaviors(object); - }; - - Drupal.CTools.AJAX.commands.html = function(data) { - $(data.selector).html(data.data); - Drupal.attachBehaviors($(data.selector)); - }; - - Drupal.CTools.AJAX.commands.remove = function(data) { - $(data.selector).remove(); - }; - - Drupal.CTools.AJAX.commands.changed = function(data) { - if (!$(data.selector).hasClass('changed')) { - $(data.selector).addClass('changed'); - if (data.star) { - $(data.selector).find(data.star).append(' * '); - } - } - }; - - Drupal.CTools.AJAX.commands.alert = function(data) { - alert(data.text, data.title); - }; - - Drupal.CTools.AJAX.commands.css = function(data) { - /* - if (data.selector && data.selector.contains('* html ')) { - // This indicates an IE hack and we should only do it if we are IE. - if (!jQuery.browser.msie) { - return; - } - data.selector = data.selector.replace('* html ', ''); - } - */ - $(data.selector).css(data.argument); - }; - - Drupal.CTools.AJAX.commands.settings = function(data) { - $.extend(Drupal.settings, data.argument); - }; - - Drupal.CTools.AJAX.commands.data = function(data) { - $(data.selector).data(data.name, data.value); - }; - - Drupal.CTools.AJAX.commands.attr = function(data) { - $(data.selector).attr(data.name, data.value); - }; - - Drupal.CTools.AJAX.commands.restripe = function(data) { - // :even and :odd are reversed because jquery counts from 0 and - // we count from 1, so we're out of sync. - $('tbody tr:not(:hidden)', $(data.selector)) - .removeClass('even') - .removeClass('odd') - .filter(':even') - .addClass('odd') - .end() - .filter(':odd') - .addClass('even'); - }; - - Drupal.CTools.AJAX.commands.redirect = function(data) { - location.href = data.url; - }; - - Drupal.CTools.AJAX.commands.reload = function(data) { - location.reload(); - }; - - Drupal.CTools.AJAX.commands.submit = function(data) { - $(data.selector).submit(); - } - - - /** - * Bind links that will open modals to the appropriate function. - */ - Drupal.behaviors.CToolsAJAX = function(context) { - // Bind links - $('a.ctools-use-ajax:not(.ctools-use-ajax-processed)', context) - .addClass('ctools-use-ajax-processed') - .click(Drupal.CTools.AJAX.clickAJAXLink); - - // Bind buttons - $('input.ctools-use-ajax:not(.ctools-use-ajax-processed), button.ctools-use-ajax:not(.ctools-use-ajax-processed)', context) - .addClass('ctools-use-ajax-processed') - .click(Drupal.CTools.AJAX.clickAJAXButton); - - // Bind select - $('select, input:text, input:radio, input:checkbox', context) - .filter('.ctools-use-ajax-onchange:not(.ctools-use-ajax-processed)') - .addClass('ctools-use-ajax-processed') - .change(Drupal.CTools.AJAX.changeAJAX); - }; -})(jQuery);