danielebarchiesi@0
|
1
|
danielebarchiesi@0
|
2 (function ($) {
|
danielebarchiesi@0
|
3
|
danielebarchiesi@0
|
4 Drupal.behaviors.tokenTree = {
|
danielebarchiesi@0
|
5 attach: function (context, settings) {
|
danielebarchiesi@0
|
6 $('table.token-tree', context).once('token-tree', function () {
|
danielebarchiesi@0
|
7 $(this).treeTable();
|
danielebarchiesi@0
|
8 });
|
danielebarchiesi@0
|
9 }
|
danielebarchiesi@0
|
10 };
|
danielebarchiesi@0
|
11
|
danielebarchiesi@0
|
12 Drupal.behaviors.tokenDialog = {
|
danielebarchiesi@0
|
13 attach: function (context, settings) {
|
danielebarchiesi@0
|
14 $('a.token-dialog', context).once('token-dialog').click(function() {
|
danielebarchiesi@0
|
15 var url = $(this).attr('href');
|
danielebarchiesi@0
|
16 var dialog = $('<div style="display: none" class="loading">' + Drupal.t('Loading token browser...') + '</div>').appendTo('body');
|
danielebarchiesi@0
|
17
|
danielebarchiesi@0
|
18 // Emulate the AJAX data sent normally so that we get the same theme.
|
danielebarchiesi@0
|
19 var data = {};
|
danielebarchiesi@0
|
20 data['ajax_page_state[theme]'] = Drupal.settings.ajaxPageState.theme;
|
danielebarchiesi@0
|
21 data['ajax_page_state[theme_token]'] = Drupal.settings.ajaxPageState.theme_token;
|
danielebarchiesi@0
|
22
|
danielebarchiesi@0
|
23 dialog.dialog({
|
danielebarchiesi@0
|
24 title: $(this).attr('title') || Drupal.t('Available tokens'),
|
danielebarchiesi@0
|
25 width: 700,
|
danielebarchiesi@0
|
26 close: function(event, ui) {
|
danielebarchiesi@0
|
27 dialog.remove();
|
danielebarchiesi@0
|
28 }
|
danielebarchiesi@0
|
29 });
|
danielebarchiesi@0
|
30 // Load the token tree using AJAX.
|
danielebarchiesi@0
|
31 dialog.load(
|
danielebarchiesi@0
|
32 url,
|
danielebarchiesi@0
|
33 data,
|
danielebarchiesi@0
|
34 function (responseText, textStatus, XMLHttpRequest) {
|
danielebarchiesi@0
|
35 dialog.removeClass('loading');
|
danielebarchiesi@0
|
36 }
|
danielebarchiesi@0
|
37 );
|
danielebarchiesi@0
|
38 // Prevent browser from following the link.
|
danielebarchiesi@0
|
39 return false;
|
danielebarchiesi@0
|
40 });
|
danielebarchiesi@0
|
41 }
|
danielebarchiesi@0
|
42 }
|
danielebarchiesi@0
|
43
|
danielebarchiesi@0
|
44 Drupal.behaviors.tokenInsert = {
|
danielebarchiesi@0
|
45 attach: function (context, settings) {
|
danielebarchiesi@0
|
46 // Keep track of which textfield was last selected/focused.
|
danielebarchiesi@0
|
47 $('textarea, input[type="text"]', context).focus(function() {
|
danielebarchiesi@0
|
48 Drupal.settings.tokenFocusedField = this;
|
danielebarchiesi@0
|
49 });
|
danielebarchiesi@0
|
50
|
danielebarchiesi@0
|
51 $('.token-click-insert .token-key', context).once('token-click-insert', function() {
|
danielebarchiesi@0
|
52 var newThis = $('<a href="javascript:void(0);" title="' + Drupal.t('Insert this token into your form') + '">' + $(this).html() + '</a>').click(function(){
|
danielebarchiesi@0
|
53 if (typeof Drupal.settings.tokenFocusedField == 'undefined') {
|
danielebarchiesi@0
|
54 alert(Drupal.t('First click a text field to insert your tokens into.'));
|
danielebarchiesi@0
|
55 }
|
danielebarchiesi@0
|
56 else {
|
danielebarchiesi@0
|
57 var myField = Drupal.settings.tokenFocusedField;
|
danielebarchiesi@0
|
58 var myValue = $(this).text();
|
danielebarchiesi@0
|
59
|
danielebarchiesi@0
|
60 //IE support
|
danielebarchiesi@0
|
61 if (document.selection) {
|
danielebarchiesi@0
|
62 myField.focus();
|
danielebarchiesi@0
|
63 sel = document.selection.createRange();
|
danielebarchiesi@0
|
64 sel.text = myValue;
|
danielebarchiesi@0
|
65 }
|
danielebarchiesi@0
|
66
|
danielebarchiesi@0
|
67 //MOZILLA/NETSCAPE support
|
danielebarchiesi@0
|
68 else if (myField.selectionStart || myField.selectionStart == '0') {
|
danielebarchiesi@0
|
69 var startPos = myField.selectionStart;
|
danielebarchiesi@0
|
70 var endPos = myField.selectionEnd;
|
danielebarchiesi@0
|
71 myField.value = myField.value.substring(0, startPos)
|
danielebarchiesi@0
|
72 + myValue
|
danielebarchiesi@0
|
73 + myField.value.substring(endPos, myField.value.length);
|
danielebarchiesi@0
|
74 } else {
|
danielebarchiesi@0
|
75 myField.value += myValue;
|
danielebarchiesi@0
|
76 }
|
danielebarchiesi@0
|
77
|
danielebarchiesi@0
|
78 $('html,body').animate({scrollTop: $(myField).offset().top}, 500);
|
danielebarchiesi@0
|
79 }
|
danielebarchiesi@0
|
80 return false;
|
danielebarchiesi@0
|
81 });
|
danielebarchiesi@0
|
82 $(this).html(newThis);
|
danielebarchiesi@0
|
83 });
|
danielebarchiesi@0
|
84 }
|
danielebarchiesi@0
|
85 };
|
danielebarchiesi@0
|
86
|
danielebarchiesi@0
|
87 })(jQuery);
|