-
Notifications
You must be signed in to change notification settings - Fork 0
/
ajax_comments.js
94 lines (85 loc) · 3.12 KB
/
ajax_comments.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
(function ($) {
// Scroll to given element
Drupal.ajax.prototype.commands.ajaxCommentsScrollToElement = function(ajax, response, status) {
try {
pos = $(response.selector).offset();
$('html, body').animate({ scrollTop: pos.top}, 'slow');
} catch (e) {
console.log('ajaxComments-ScrollToElementError: ' + e.name);
}
};
/**
* Add the dummy div if they are not exist.
* On the server side we have a current state of node and comments, but on client side we may have a outdated state
* and some div's may be not present
*/
Drupal.ajax.prototype.commands.ajaxCommentsAddDummyDivAfter = function(ajax, response, status) {
try {
if (!$(response.selector).next().hasClass(response.class)) {
$('<div class="' + response.class + '"></div>').insertAfter(response.selector);
}
} catch (e) {
console.log('ajaxComments-AddDummyDivAfter: ' + e.name);
}
};
/*
* These function may be removed when bug #736066 is fixed
* At this time, ajax.js automatically wrap comment content into div when we use ajax_command_NAME functions,
* and this is not good for us because this broke div layout
*/
/**
* Own implementation of ajax_command_replace()
* see bug: https://www.drupal.org/node/736066
*/
Drupal.ajax.prototype.commands.ajaxCommentsReplace = function(ajax, response, status) {
try {
$(response.selector).replaceWith(response.html);
} catch (e) {
console.log('ajaxComments-Replace: ' + e.name)
}
};
/**
* Own implementation of ajax_command_before()
* see bug: https://www.drupal.org/node/736066
*/
Drupal.ajax.prototype.commands.ajaxCommentsBefore = function(ajax, response, status) {
try {
$(response.html).insertBefore(response.selector);
} catch (e) {
console.log('ajaxComments-Before: ' + e.name)
}
};
/**
* Own implementation of ajax_command_after()
* see bug: https://www.drupal.org/node/736066
*/
Drupal.ajax.prototype.commands.ajaxCommentsAfter = function(ajax, response, status) {
try {
$(response.html).insertAfter(response.selector);
} catch (e) {
console.log('ajaxComments-After: ' + e.name)
}
};
/**
* Own implementation of ajax_command_insert()
* see bug: https://www.drupal.org/node/736066
*/
Drupal.ajax.prototype.commands.ajaxCommentsPrepend = function(ajax, response, status) {
try {
$(response.selector).prepend(response.html);
} catch (e) {
console.log('ajaxComments-Prepend: ' + e.name)
}
};
/**
* Own implementation of ajax_command_append()
* see bug: https://www.drupal.org/node/736066
*/
Drupal.ajax.prototype.commands.ajaxCommentsAppend = function(ajax, response, status) {
try {
$(response.selector).append(response.html);
} catch (e) {
console.log('ajaxComments-Append: ' + e.name)
}
};
}(jQuery));