%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /data/old/home/stash/atlassian/stash/3.7.1/atlassian-stash/static/util/
Upload File :
Create Path :
Current File : //data/old/home/stash/atlassian/stash/3.7.1/atlassian-stash/static/util/analytics.js

define('util/analytics', [
    'aui',
    'jquery',
    'util/navigator',
    'exports'
], function(
    AJS,
    $,
    navigatorUtil,
    exports
) {

    'use strict';

    var EVENT_PREFIX = 'stash.client.';

    /**
     * Add browser/platform/resolution demographic info to the analytics data
     * @param {object} data
     * @returns {object}
     */
    function _mixinDemographics(data) {
        var demographics = {
            d_platform: navigatorUtil.shortPlatform(),
            d_browser: navigatorUtil.shortBrowser(),
            d_version: navigatorUtil.majorVersion(),
            d_windowHeight: window.innerHeight,
            d_windowWidth: window.innerWidth,
            d_screenHeight: screen.height,
            d_screenWidth: screen.width
        };

        return $.extend({}, data, demographics);
    }

    /**
     * Record an analytics event
     * @param {string} eventName
     * @param {object} data - A simple, unnested object with the event attributes
     * @param {boolean?} trackDemographics
     */
    function add(eventName, data, trackDemographics){
        if (eventName) {
            if (data != null && !$.isPlainObject(data)) {
                throw new Error("Analytics only supports plain objects");
            }

            if (eventName.indexOf(EVENT_PREFIX) !== 0) {
                eventName = EVENT_PREFIX + eventName;
            }

            if (trackDemographics) {
                data = _mixinDemographics(data);
            }

            var payload = $.extend({
                name: eventName
            }, {
                data: data
            });


            AJS.trigger('analytics', payload);
        }
    }

    exports.add = add;

    exports._mixinDemographics = _mixinDemographics;
});

Zerion Mini Shell 1.0