1(function ($) { 2 3/** 4 * Retrieves the summary for the first element. 5 */ 6$.fn.drupalGetSummary = function () { 7 var callback = this.data('summaryCallback'); 8 return (this[0] && callback) ? $.trim(callback(this[0])) : ''; 9}; 10 11/** 12 * Sets the summary for all matched elements. 13 * 14 * @param callback 15 * Either a function that will be called each time the summary is 16 * retrieved or a string (which is returned each time). 17 */ 18$.fn.drupalSetSummary = function (callback) { 19 var self = this; 20 21 // To facilitate things, the callback should always be a function. If it's 22 // not, we wrap it into an anonymous function which just returns the value. 23 if (typeof callback != 'function') { 24 var val = callback; 25 callback = function () { return val; }; 26 } 27 28 return this 29 .data('summaryCallback', callback) 30 // To prevent duplicate events, the handlers are first removed and then 31 // (re-)added. 32 .unbind('formUpdated.summary') 33 .bind('formUpdated.summary', function () { 34 self.trigger('summaryUpdated'); 35 }) 36 // The actual summaryUpdated handler doesn't fire when the callback is 37 // changed, so we have to do this manually. 38 .trigger('summaryUpdated'); 39}; 40 41/** 42 * Sends a 'formUpdated' event each time a form element is modified. 43 */ 44Drupal.behaviors.formUpdated = { 45 attach: function (context) { 46 // These events are namespaced so that we can remove them later. 47 var events = 'change.formUpdated click.formUpdated blur.formUpdated keyup.formUpdated'; 48 $(context) 49 // Since context could be an input element itself, it's added back to 50 // the jQuery object and filtered again. 51 .find(':input').andSelf().filter(':input') 52 // To prevent duplicate events, the handlers are first removed and then 53 // (re-)added. 54 .unbind(events).bind(events, function () { 55 $(this).trigger('formUpdated'); 56 }); 57 } 58}; 59 60/** 61 * Prepopulate form fields with information from the visitor cookie. 62 */ 63Drupal.behaviors.fillUserInfoFromCookie = { 64 attach: function (context, settings) { 65 $('form.user-info-from-cookie').once('user-info-from-cookie', function () { 66 var formContext = this; 67 $.each(['name', 'mail', 'homepage'], function () { 68 var $element = $('[name=' + this + ']', formContext); 69 var cookie = $.cookie('Drupal.visitor.' + this); 70 if ($element.length && cookie) { 71 $element.val(cookie); 72 } 73 }); 74 }); 75 } 76}; 77 78})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.