Skip to content
Extraits de code Groupes Projets
visitorLog.js 2,6 ko
Newer Older
  • Learn to ignore specific revisions
  • /**
     * Piwik - Web Analytics
     *
     * Visitor profile popup control.
     *
     * @link http://piwik.org
     * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
     */
    
    (function ($, require) {
    
        var exports = require('piwik/UI'),
            DataTable = exports.DataTable,
            dataTablePrototype = DataTable.prototype;
    
        /**
         * DataTable UI class for jqPlot graph datatable visualizations.
         * 
         * @constructor
         */
        exports.VisitorLog = function (element) {
            DataTable.call(this, element);
        };
    
        $.extend(exports.VisitorLog.prototype, dataTablePrototype, {
    
            /**
             * Initializes this class.
             */
            init: function () {
                dataTablePrototype.init.call(this);
    
                // Replace duplicated page views by a NX count instead of using too much vertical space
                $("ol.visitorLog").each(function () {
                    var prevelement;
                    var prevhtml;
                    var counter = 0;
                    $(this).find("li").each(function () {
                        counter++;
                        $(this).val(counter);
                        var current = $(this).html();
                        if (current == prevhtml) {
                            var repeat = prevelement.find(".repeat");
                            if (repeat.length) {
                                repeat.html((parseInt(repeat.html()) + 1) + "x");
                            } else {
                                prevelement.append($("<em>2x</em>").attr({'class': 'repeat', 'title': _pk_translate('Live_PageRefreshed')}));
                            }
                            $(this).hide();
                        } else {
                            prevhtml = current;
                            prevelement = $(this);
                        }
                        
                        $(this).tooltip({
                            track: true,
                            show: false,
                            hide: false,
                            content: function() {
                                var title = $(this).attr('title');
                                return $('<a>').text( title ).html().replace(/\n/g, '<br />');
                            },
                            tooltipClass: 'small'
                        });
                    });
                });
    
                // launch visitor profile on visitor profile link click
                this.$element.on('click', '.visitor-log-visitor-profile-link', function (e) {
                    e.preventDefault();
                    broadcast.propagateNewPopoverParameter('visitorProfile', $(this).attr('data-visitor-id'));
                    return false;
                });