Skip to content
Snippets Groups Projects

Issue #3258021: Add views field plugin to count events by entity

Files
13
+ 43
21
@@ -3,7 +3,7 @@
* Usage Data functionality.
*/
(function ($, Drupal, drupalSettings) {
(function ($, Drupal, drupalSettings, once) {
'use strict';
@@ -17,28 +17,50 @@
data: drupalSettings.usage_data.data
});
}
});
// Track click event.
$('[data-usage]').on('click', function (e, options) {
var data = JSON.parse($(this).attr('data-usage'));
if (!data) {
return;
}
// Add path info if not set.
if (!data['path']) {
var href = $(this).attr('href') ? $(this).attr('href') : location.href;
data['path'] = href.replace(location.origin, '');
}
$.ajax({
type: 'POST',
cache: false,
url: drupalSettings.usage_data.url,
data: {
'type': 'click',
'info': data
Drupal.behaviors.usageData = {
attach: function (context, settings) {
// Track click event.
once('usageData', '[data-usage]', context).forEach(function (el) {
el.addEventListener('click', function () {
var data = JSON.parse($(this).attr('data-usage'));
if (!data) {
return;
}
// Add path info if not set.
if (!data['path']) {
var href = $(this).attr('href') ? $(this).attr('href') : location.href;
data['path'] = href.replace(location.origin, '');
}
$.ajax({
type: 'POST',
cache: false,
url: drupalSettings.usage_data.url,
data: {
'type': 'click',
'info': data
}
});
});
});
},
};
// Track reload for Ajax enabled views.
$(document).ajaxComplete(function (event, xhr, settings) {
if (xhr.responseJSON && xhr.responseJSON.length > 1) {
xhr.responseJSON.forEach(function (v) {
if (v.settings && v.settings.usage_data.data) {
$.ajax({
type: 'POST',
cache: false,
url: v.settings.usage_data.url,
data: v.settings.usage_data.data
});
}
});
});
}
});
})(jQuery, Drupal, drupalSettings);
})(jQuery, Drupal, drupalSettings, once);
Loading