PageSourceSearch

https://www.trbo.com/wp-content/plugins/ninja-forms-user-analytics…/user-analytics.js?ver=3.0.420260928083321

js trbo.com collected 2026-09-28 23:52:57 UTC 5,022 bytes, 139 lines download raw bytes

1/*
2 * Initialize JavaScript for the NF User Analytics plugin.
3 */
4jQuery( document ).ready( function ( $ ) {
5    
6    /**
7     * Controller for the plugin.
8     */
9    var NFUserAnalyticsController = Marionette.Object.extend( {
10        
11        /**
12         * Functionality to detect which browser and browser version is used.
13         */
14        DetectBrowser: {
15            init: function () {
16                this.browser = this.searchString( this.dataBrowser ) || "Unknown browser";
17                this.version = this.searchVersion( navigator.userAgent ) || this.searchVersion( navigator.appVersion ) || "Unknown version";
18            },
19            searchString: function ( data ) {
20                for ( var i = 0; i < data.length; i++ ) {
21                    var dataString = data[ i ].string;
22                    var dataProp = data[ i ].prop;
23                    this.versionSearchString = data[ i ].versionSearch || data[ i ].identity;
24                    if ( dataString ) {
25                        if ( dataString.indexOf( data[ i ].subString ) != -1 ) {
26                            return data[ i ].identity;
27                        }
28                    }
29                    else if ( dataProp ) {
30                        return data[ i ].identity;
31                    }
32                }
33            },
34            searchVersion: function ( dataString ) {
35                var index = dataString.indexOf( this.versionSearchString );
36                if ( index == -1 ) return;
37                return parseFloat( dataString.substring( index + this.versionSearchString.length + 1 ) );
38            },
39            dataBrowser: [
40                {
41                    string: navigator.userAgent,
42                    subString: "Chrome",
43                    identity: "Chrome"
44                }, {
45                    string: navigator.userAgent,
46                    subString: "OmniWeb",
47                    versionSearch: "OmniWeb/",
48                    identity: "OmniWeb"
49                }, {
50                    string: navigator.vendor,
51                    subString: "Apple",
52                    identity: "Safari",
53                    versionSearch: "Version"
54                }, {
55                    prop: window.opera,
56                    identity: "Opera"
57                }, {
58                    string: navigator.vendor,
59                    subString: "iCab",
60                    identity: "iCab"
61                }, {
62                    string: navigator.vendor,
63                    subString: "KDE",
64                    identity: "Konqueror"
65                }, {
66                    string: navigator.userAgent,
67                    subString: "Firefox",
68                    identity: "Firefox"
69                }, {
70                    string: navigator.vendor,
71                    subString: "Camino",
72                    identity: "Camino"
73                }, { // for newer Netscapes (6+)
74                    string: navigator.userAgent,
75                    subString: "Netscape",
76                    identity: "Netscape"
77                }, {
78                    string: navigator.userAgent,
79                    subString: "MSIE",
80                    identity: "Internet Explorer",
81                    versionSearch: "MSIE"
82                }, {
83                    string: navigator.userAgent,
84                    subString: "Gecko",
85                    identity: "Mozilla",
86                    versionSearch: "rv"
87                }, { // for older Netscapes (4-)
88                    string: navigator.userAgent,
89                    subString: "Mozilla",
90                    identity: "Netscape",
91                    versionSearch: "Mozilla"
92                } ]
93        },
94        
95        hostInfoData: [],
96
97        /**
98         * Initialize the plugin.
99         */
100        initialize: function() {
101            this.DetectBrowser.init();
102            this.listenTo( nfRadio.channel( 'form' ), 'render:view', this.updateFormByView );
103        },
104        
105        /**
106         * Update the form when the view is rendered
107         * 
108         * @param object view Rendered view
109         */
110        updateFormByView: function( view ) {            
111            this.updateForm( $( view.el ) );
112        },
113        
114        /**
115         * Update the form by filling in the User Analytics fields.
116         * 
117         * @param object $form Form element on the page
118         */
119        updateForm: function( $form ) {
120            var data = {
121                'browser': this.DetectBrowser.browser,
122                'browser-version': this.DetectBrowser.version,
123                'os': window.navigator.platform
124            };
125            
126            for ( var key in data ) {
127                var value = data[key];
128                var $el = $form.find( '.user-analytics-' + key + '-container' + ' .
128nf-element' );
129                if ( $el.length ) {
130                    $el.val( value ).trigger( 'change' );
131                }
132            }
133        },
134
135    } );
136    
137    new NFUserAnalyticsController();
138
139} );

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.