danielebarchiesi@0: danielebarchiesi@0: (function ($) { danielebarchiesi@0: danielebarchiesi@0: Drupal.behaviors.tokenTree = { danielebarchiesi@0: attach: function (context, settings) { danielebarchiesi@0: $('table.token-tree', context).once('token-tree', function () { danielebarchiesi@0: $(this).treeTable(); danielebarchiesi@0: }); danielebarchiesi@0: } danielebarchiesi@0: }; danielebarchiesi@0: danielebarchiesi@0: Drupal.behaviors.tokenDialog = { danielebarchiesi@0: attach: function (context, settings) { danielebarchiesi@0: $('a.token-dialog', context).once('token-dialog').click(function() { danielebarchiesi@0: var url = $(this).attr('href'); danielebarchiesi@0: var dialog = $('
').appendTo('body'); danielebarchiesi@0: danielebarchiesi@0: // Emulate the AJAX data sent normally so that we get the same theme. danielebarchiesi@0: var data = {}; danielebarchiesi@0: data['ajax_page_state[theme]'] = Drupal.settings.ajaxPageState.theme; danielebarchiesi@0: data['ajax_page_state[theme_token]'] = Drupal.settings.ajaxPageState.theme_token; danielebarchiesi@0: danielebarchiesi@0: dialog.dialog({ danielebarchiesi@0: title: $(this).attr('title') || Drupal.t('Available tokens'), danielebarchiesi@0: width: 700, danielebarchiesi@0: close: function(event, ui) { danielebarchiesi@0: dialog.remove(); danielebarchiesi@0: } danielebarchiesi@0: }); danielebarchiesi@0: // Load the token tree using AJAX. danielebarchiesi@0: dialog.load( danielebarchiesi@0: url, danielebarchiesi@0: data, danielebarchiesi@0: function (responseText, textStatus, XMLHttpRequest) { danielebarchiesi@0: dialog.removeClass('loading'); danielebarchiesi@0: } danielebarchiesi@0: ); danielebarchiesi@0: // Prevent browser from following the link. danielebarchiesi@0: return false; danielebarchiesi@0: }); danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: Drupal.behaviors.tokenInsert = { danielebarchiesi@0: attach: function (context, settings) { danielebarchiesi@0: // Keep track of which textfield was last selected/focused. danielebarchiesi@0: $('textarea, input[type="text"]', context).focus(function() { danielebarchiesi@0: Drupal.settings.tokenFocusedField = this; danielebarchiesi@0: }); danielebarchiesi@0: danielebarchiesi@0: $('.token-click-insert .token-key', context).once('token-click-insert', function() { danielebarchiesi@0: var newThis = $('' + $(this).html() + '').click(function(){ danielebarchiesi@0: if (typeof Drupal.settings.tokenFocusedField == 'undefined') { danielebarchiesi@0: alert(Drupal.t('First click a text field to insert your tokens into.')); danielebarchiesi@0: } danielebarchiesi@0: else { danielebarchiesi@0: var myField = Drupal.settings.tokenFocusedField; danielebarchiesi@0: var myValue = $(this).text(); danielebarchiesi@0: danielebarchiesi@0: //IE support danielebarchiesi@0: if (document.selection) { danielebarchiesi@0: myField.focus(); danielebarchiesi@0: sel = document.selection.createRange(); danielebarchiesi@0: sel.text = myValue; danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: //MOZILLA/NETSCAPE support danielebarchiesi@0: else if (myField.selectionStart || myField.selectionStart == '0') { danielebarchiesi@0: var startPos = myField.selectionStart; danielebarchiesi@0: var endPos = myField.selectionEnd; danielebarchiesi@0: myField.value = myField.value.substring(0, startPos) danielebarchiesi@0: + myValue danielebarchiesi@0: + myField.value.substring(endPos, myField.value.length); danielebarchiesi@0: } else { danielebarchiesi@0: myField.value += myValue; danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: $('html,body').animate({scrollTop: $(myField).offset().top}, 500); danielebarchiesi@0: } danielebarchiesi@0: return false; danielebarchiesi@0: }); danielebarchiesi@0: $(this).html(newThis); danielebarchiesi@0: }); danielebarchiesi@0: } danielebarchiesi@0: }; danielebarchiesi@0: danielebarchiesi@0: })(jQuery);