locking-list.js
1.91 KB
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
(function (gflocking, $) {
var objectType;
$(document).ready(function () {
objectType = gflockingVars.objectType;
gflocking.init();
});
gflocking.init = function () {
initHeartbeat();
};
function initHeartbeat() {
var checkLocksKey = 'gform-check-locked-objects-' + objectType;
wp.heartbeat.interval( 30 );
$(document).on('heartbeat-tick.' + checkLocksKey,function (e, data) {
var locked = data[checkLocksKey] || {};
$('.gf-locking').each(function (i, el) {
var id , $row = $(el), lock_data, avatar;
id = $row.data("id");
if (locked.hasOwnProperty(id)) {
if (!$row.hasClass('wp-locked')) {
lock_data = locked[id];
$row.find('.locked-text').text(lock_data.text);
$row.find('.check-column input[type=checkbox]').prop('checked', false);
if (lock_data.avatar_src) {
avatar = $('<img class="avatar avatar-18 photo" width="18" height="18" />').attr('src', lock_data.avatar_src.replace(/&/g, '&'));
$row.find('.locked-avatar').empty().append(avatar);
}
$row.addClass('wp-locked');
}
} else if ($row.hasClass('wp-locked')) {
$row.removeClass('wp-locked').delay(1000).find('.locked-info span').empty();
}
});
}).on('heartbeat-send.' + checkLocksKey, function (e, data) {
var check = [];
$('.gf-locking').each(function (i, row) {
check.push($(row).data("id"));
});
if (check.length)
data[checkLocksKey] = check;
});
}
}(window.gflocking = window.gflocking || {}, jQuery));