flattened components and renamed to elements
diff --git a/dashboard/files/test_app/index.html b/dashboard/files/test_app/index.html
index 11122a3..6f93807 100644
--- a/dashboard/files/test_app/index.html
+++ b/dashboard/files/test_app/index.html
@@ -132,10 +132,10 @@
                 <thead>
                     <th width="80px">ACTIVITY</th>
                     <th width="80px">ACTION</th>
-                    <th width="110px">COMPONENT ID</th>
-                    <th width="110px">COMPONENT TYPE</th>
-                    <th width="110px">COMPONENT GROUP</th>
-                    <th width="100px">COMPONENT OBJECT</th>
+                    <th width="110px">ELEMENT ID</th>
+                    <th width="110px">ELEMENT TYPE</th>
+                    <th width="110px">ELEMENT GROUP</th>
+                    <th width="100px">ELEMENT OBJECT</th>
                     <th width="60px">SOURCE</th>
                 </thead>
                 <tbody>
diff --git a/dashboard/files/test_app/js/logging.js b/dashboard/files/test_app/js/logging.js
index c9fb666..35fcc7f 100644
--- a/dashboard/files/test_app/js/logging.js
+++ b/dashboard/files/test_app/js/logging.js
@@ -22,13 +22,11 @@
     var defaultMsg = {
         activity: null,
         action: null,
-        component: {
-            id: null,
-            type: null,
-            group: null
-        },
+        elementId: '',
+        elementType: '',
+        elementGroup: '',
+        elementSub: '',
         source: null,
-        object: null,
         tags: [],
         meta: {}
     };
@@ -38,7 +36,7 @@
         loggingUrl: '',
         toolName: 'dave',
         toolVersion: '2.3',
-        componentGroups: [
+        elementGroups: [
             'map_group',
             'input_group',
             'top',
@@ -58,10 +56,10 @@
         "<tr>" +
             "<td class='a'><%- activity %></td>" +
             "<td class='b'><%- action %></td>" +
-            "<td class='c'><%- component.id %></td>" +
-            "<td class='d'><%- component.type %></td>" +
-            "<td class='e'><%- component.group %></td>" +
-            "<td class='e'><%- object %></td>" +
+            "<td class='c'><%- elementId %></td>" +
+            "<td class='d'><%- elementType %></td>" +
+            "<td class='e'><%- elementGroup %></td>" +
+            "<td class='e'><%- elementSub %></td>" +
             "<td class='f'><%- source %></td>" +
         "</tr>"
     );
@@ -90,13 +88,10 @@
             var msg = {
                 activity: 'inspect',
                 action: 'MOUSEOVER',
-                component: {
-                    id: this.getAttribute('id') || 'UNK',
-                    type: 'button',
-                    group: 'button_group'
-                },
+                elementId: this.getAttribute('id') || 'UNK',
+                elementType: 'button',
+                elementGroup: 'button_group',
                 source: 'user',
-                object: null,
                 tags: ['submit']
             };
             log(msg);
@@ -105,13 +100,10 @@
             var msg = {
                 activity: 'inspect',
                 action: 'MOUSEOUT',
-                component: {
-                    id: this.getAttribute('id') || 'UNK',
-                    type: 'button',
-                    group: 'button_group'
-                },
+                elementId: this.getAttribute('id') || 'UNK',
+                elementType: 'button',
+                elementGroup: 'button_group',
                 source: 'user',
-                object: null,
                 tags: ['submit']
             };
             log(msg);
@@ -120,13 +112,10 @@
             var msg = {
                 activity: 'perform',
                 action: 'CLICK',
-                component: {
-                    id: this.getAttribute('id') || 'UNK',
-                    type: 'button',
-                    group: 'button_group'
-                },
+                elementId: this.getAttribute('id') || 'UNK',
+                elementType: 'button',
+                elementGroup: 'button_group',
                 source: 'user',
-                object: null,
                 tags: ['submit']
             };
             log(msg);
@@ -137,13 +126,10 @@
             var msg = {
                 activity: 'inspect',
                 action: 'MOUSEOVER',
-                component: {
-                    id: this.getAttribute('id') || 'UNK',
-                    type: 'radiobutton',
-                    group: 'button_group'
-                },
+                elementId: this.getAttribute('id') || 'UNK',
+                elementType: 'radiobutton',
+                elementGroup: 'button_group',
                 source: 'user',
-                object: null,
                 tags: ['a', 'b']
             };
             log(msg);
@@ -152,13 +138,10 @@
             var msg = {
                 activity: 'inspect',
                 action: 'MOUSEOUT',
-                component: {
-                    id: this.getAttribute('id') || 'UNK',
-                    type: 'radiobutton',
-                    group: 'button_group'
-                },
+                elementId: this.getAttribute('id') || 'UNK',
+                elementType: 'radiobutton',
+                elementGroup: 'button_group',
                 source: 'user',
-                object: null,
                 tags: ['a', 'b']
             };
             log(msg);
@@ -167,13 +150,10 @@
             var msg = {
                 activity: 'SELECT_DESELECT',
                 action: 'CLICK',
-                component: {
-                    id: this.getAttribute('id') || 'UNK',
-                    type: 'radiobutton',
-                    group: 'button_group'
-                },
+                elementId: this.getAttribute('id') || 'UNK',
+                elementType: 'radiobutton',
+                elementGroup: 'button_group',
                 source: 'user',
-                object: null,
                 tags: ['a', 'b']
             };
             log(msg);
@@ -184,13 +164,10 @@
             var msg = {
                 activity: 'inspect',
                 action: 'MOUSEOVER',
-                component: {
-                    id: this.getAttribute('id') || 'UNK',
-                    type: 'dropdownlist',
-                    group: 'dropdown_group'
-                },
+                elementId: this.getAttribute('id') || 'UNK',
+                elementType: 'dropdownlist',
+                elementGroup: 'dropdown_group',
                 source: 'user',
-                object: null,
                 tags: ['a', 'b']
             };
             log(msg);
@@ -199,13 +176,11 @@
             var msg = {
                 activity: 'inspect',
                 action: 'MOUSEOUT',
-                component: {
-                    id: this.getAttribute('id'),
-                    type: 'dropdownlist',
-                    group: 'dropdown_group'
-                },
+                elementId: this.getAttribute('id') || 'UNK',
+                elementType: 'dropdownlist',
+                elementGroup: 'dropdown_group',
+
                 source: 'user',
-                object: null,
                 tags: ['a', 'b']
             };
             log(msg);
@@ -215,13 +190,10 @@
             var msg = {
                 activity: 'OPEN_CLOSE',
                 action: 'CLICK',
-                component: {
-                    id: this.getAttribute('id'),
-                    type: 'dropdownlist',
-                    group: 'dropdown_group'
-                },
+                elementId: this.getAttribute('id') || 'UNK',
+                elementType: 'dropdownlist',
+                elementGroup: 'dropdown_group',
                 source: 'user',
-                object: null,
                 tags: ['a', 'b']
             };
             log(msg);
@@ -232,13 +204,11 @@
             var msg = {
                 activity: 'inspect',
                 action: 'MOUSEOVER',
-                component: {
-                    id: this.getAttribute('id'),
-                    type: 'listitem',
-                    group: 'dropdown_group'
-                },
+                elementId: this.getAttribute('id') || 'UNK',
+                elementType: 'dropdownlist',
+                elementGroup: 'dropdown_group',
+                elementSub: 'listitem',
                 source: 'user',
-                object: null,
                 tags: ['a', 'b']
             };
             log(msg);
@@ -247,13 +217,11 @@
             var msg = {
                 activity: 'inspect',
                 action: 'MOUSEOUT',
-                component: {
-                    id: this.getAttribute('id'),
-                    type: 'listitem',
-                    group: 'dropdown_group'
-                },
+                elementId: this.getAttribute('id') || 'UNK',
+                elementType: 'dropdownlist',
+                elementGroup: 'dropdown_group',
+                elementSub: 'listitem',
                 source: 'user',
-                object: null,
                 tags: ['a', 'b']
             };
             log(msg);
@@ -262,13 +230,11 @@
             var msg = {
                 activity: 'perform',
                 action: 'CLICK',
-                component: {
-                    id: this.getAttribute('id'),
-                    type: 'listitem',
-                    group: 'dropdown_group'
-                },
+                elementId: this.getAttribute('id') || 'UNK',
+                elementType: 'dropdownlist',
+                elementGroup: 'dropdown_group',
+                elementSub: 'listitem',
                 source: 'user',
-                object: null,
                 tags: ['a', 'b']
             };
             log(msg);
@@ -279,13 +245,10 @@
             var msg = {
                 activity: 'inspect',
                 action: 'MOUSEOVER',
-                component: {
-                    id: this.getAttribute('id'),
-                    type: 'textbox',
-                    group: 'query_group'
-                },
+                elementId: this.getAttribute('id') || 'UNK',
+                elementType: 'textbox',
+                elementGroup: 'query_group',
                 source: 'user',
-                object: null,
                 tags: ['a', 'b']
             };
             log(msg);
@@ -294,13 +257,10 @@
             var msg = {
                 activity: 'inspect',
                 action: 'MOUSEOVER',
-                component: {
-                    id: this.getAttribute('id'),
-                    type: 'textbox',
-                    group: 'query_group'
-                },
+                elementId: this.getAttribute('id') || 'UNK',
+                elementType: 'textbox',
+                elementGroup: 'query_group',
                 source: 'user',
-                object: null,
                 tags: ['a', 'b']
             };
             log(msg);
@@ -309,28 +269,22 @@
             var msg = {
                 activity: 'inspect',
                 action: 'FOCUS',
-                component: {
-                    id: this.getAttribute('id'),
-                    type: 'textbox',
-                    group: 'query_group'
-                },
+                elementId: this.getAttribute('id') || 'UNK',
+                elementType: 'textbox',
+                elementGroup: 'query_group',
                 source: 'user',
-                object: null,
                 tags: ['a', 'b']
             };
             log(msg);
         })
         .keypress(function () {
             var msg = {
-                activity: ale.activities.ALTER,
+                activity: 'alter',
                 action: 'ENTERTEXT',
-                component: {
-                    id: this.getAttribute('id'),
-                    type: 'textbox',
-                    group: 'query_group'
-                },
+                elementId: this.getAttribute('id') || 'UNK',
+                elementType: 'textbox',
+                elementGroup: 'query_group',
                 source: 'user',
-                object: null,
                 tags: ['a', 'b']
             };
             log(msg);
@@ -341,13 +295,10 @@
             var msg = {
                 activity: 'inspect',
                 action: 'MOUSEOVER',
-                component: {
-                    id: this.getAttribute('id') || 'UNK',
-                    type: 'button',
-                    group: 'map_group'
-                },
+                elementId: this.getAttribute('id') || 'UNK',
+                elementType: 'button',
+                elementGroup: 'map_group',
                 source: 'user',
-                object: null,
                 tags: ['a', 'b']
             };
             log(msg);
@@ -356,13 +307,10 @@
             var msg = {
                 activity: 'inspect',
                 action: 'MOUSEOUT',
-                component: {
-                    id: this.getAttribute('id') || 'UNK',
-                    type: 'button',
-                    group: 'map_group'
-                },
+                elementId: this.getAttribute('id') || 'UNK',
+                elementType: 'button',
+                elementGroup: 'map_group',
                 source: 'user',
-                object: null,
                 tags: ['a', 'b']
             };
             log(msg);
@@ -371,13 +319,10 @@
             var msg = {
                 activity: 'perform',
                 action: 'CLICK',
-                component: {
-                    id: this.getAttribute('id') || 'UNK',
-                    type: 'button',
-                    group: 'map_group'
-                },
+                elementId: this.getAttribute('id') || 'UNK',
+                elementType: 'button',
+                elementGroup: 'map_group',
                 source: 'user',
-                object: null,
                 tags: ['a', 'b']
             };
             log(msg);
@@ -388,13 +333,10 @@
             var msg = {
                 activity: 'inspect',
                 action: 'MOUSEOVER',
-                component: {
-                    id: this.getAttribute('id') || 'UNK',
-                    type: 'button',
-                    group: 'query_group'
-                },
+                elementId: this.getAttribute('id') || 'UNK',
+                elementType: 'button',
+                elementGroup: 'query_group',
                 source: 'user',
-                object: null,
                 tags: ['a', 'b']
             };
             log(msg);
@@ -403,13 +345,10 @@
             var msg = {
                 activity: 'inspect',
                 action: 'MOUSEOUT',
-                component: {
-                    id: this.getAttribute('id') || 'UNK',
-                    type: 'button',
-                    group: 'query_group'
-                },
+                elementId: this.getAttribute('id') || 'UNK',
+                elementType: 'button',
+                elementGroup: 'query_group',
                 source: 'user',
-                object: null,
                 tags: ['a', 'b']
             };
             log(msg);
@@ -418,13 +357,10 @@
             var msg = {
                 activity: 'perform',
                 action: 'CLICK',
-                component: {
-                    id: this.getAttribute('id') || 'UNK',
-                    type: 'button',
-                    group: 'query_group'
-                },
+                elementId: this.getAttribute('id') || 'UNK',
+                elementType: 'button',
+                elementGroup: 'query_group',
                 source: 'user',
-                object: null,
                 tags: ['query']
             };
             log(msg);
@@ -436,13 +372,10 @@
             var msg = {
                 activity: 'inspect',
                 action: 'MOUSEOVER',
-                component: {
-                    id: 'UNK',
-                    type: 'map',
-                    group: 'map_group'
-                },
+                elementId: 'UNK',
+                elementType: 'map',
+                elementGroup: 'map_group',
                 source: 'user',
-                object: null,
                 tags: ['a', 'b']
             };
             log(msg);
@@ -451,13 +384,10 @@
             var msg = {
                 activity: 'inspect',
                 action: 'MOUSEOUT',
-                component: {
-                    id: 'UNK',
-                    type: 'map',
-                    group: 'map_group'
-                },
+                elementId: 'UNK',
+                elementType: 'map',
+                elementGroup: 'map_group',
                 source: 'user',
-                object: null,
                 tags: ['a', 'b']
             };
             log(msg);
@@ -466,13 +396,10 @@
             var msg = {
                 activity: 'alter',
                 action: 'ZOOM',
-                component: {
-                    id: 'UNK',
-                    type: 'map',
-                    group: 'map_group'
-                },
+                elementId: 'UNK',
+                elementType: 'map',
+                elementGroup: 'map_group',
                 source: 'unk',
-                object: null,
                 tags: ['a', 'b']
             };
             log(msg);
@@ -481,13 +408,10 @@
             var msg = {
                 activity: 'alter',
                 action: 'DRAG',
-                component: {
-                    id: 'UNK',
-                    type: 'map',
-                    group: 'map_group'
-                },
+                elementId: 'UNK',
+                elementType: 'map',
+                elementGroup: 'map_group',
                 source: 'user',
-                object: null,
                 tags: ['a', 'b']
             };
             log(msg);
@@ -496,13 +420,10 @@
             var msg = {
                 activity: 'alter',
                 action: 'DRAG',
-                component: {
-                    id: 'UNK',
-                    type: 'map',
-                    group: 'map_group'
-                },
+                elementId: 'UNK',
+                elementType: 'map',
+                elementGroup: 'map_group',
                 source: 'user',
-                object: null,
                 tags: ['a', 'b']
             };
             log(msg);
@@ -511,13 +432,10 @@
             var msg = {
                 activity: 'alter',
                 action: 'MOVE',
-                component: {
-                    id: 'UNK',
-                    type: 'map',
-                    group: 'map_group'
-                },
+                elementId: 'UNK',
+                elementType: 'map',
+                elementGroup: 'map_group',
                 source: 'system',
-                object: null,
                 tags: ['a', 'b']
             };
             log(msg);
@@ -529,13 +447,11 @@
             var msg = {
                 activity: 'alter',
                 action: 'SLIDE',
-                component: {
-                    id: this.getAttribute('id') || 'UNK',
-                    type: 'slider',
-                    group: 'query_group'
-                },
+                elementId: this.getAttribute('id') || 'UNK',
+                elementType: 'slider',
+                elementGroup: 'query_group',
+                elementSub: 'label',
                 source: 'user',
-                object: 'HANDLE',
                 tags: ['a', 'b']
             };
             log(msg);
@@ -543,12 +459,10 @@
 
             var msg = {
                 activity: 'alter',
-                component: {
-                    type: 'slider',
-                    group: 'query_group'
-                },
+                elementType: 'slider',
+                elementGroup: 'query_group',
+                elementSub: 'label',
                 source: 'system',
-                object: 'LABEL',
                 tags: []
             };
             log(msg);
@@ -557,25 +471,22 @@
             var msg = {
                 activity: 'alter',
                 action: 'SLIDE',
-                component: {
-                    id: this.getAttribute('id') || 'UNK',
-                    type: 'slider',
-                    group: 'query_group'
-                },
+                elementId: this.getAttribute('id') || 'UNK',
+                elementType: 'slider',
+                elementGroup: 'query_group',
+                elementSub: 'handle',
                 source: 'user',
-                object: 'HANDLE',
                 tags: ['a', 'b']
             };
             log(msg);
 
             var msg = {
                 activity: 'alter',
-                component: {
-                    type: 'slider',
-                    group: 'query_group'
-                },
+                elementId: this.getAttribute('id') || 'UNK',
+                elementType: 'slider',
+                elementGroup: 'query_group',
+                elementSub: 'label',
                 source: 'system',
-                object: 'LABEL',
                 tags: []
             };
             log(msg);
@@ -586,104 +497,12 @@
             var msg = {
                 activity: 'alter',
                 action: 'SCROLL',
-                component: {
-                    id: 'UNK',
-                    type: 'window',
-                    group: 'top'
-                },
+                elementId: 'UNK',
+                elementType: 'window',
+                elementGroup: 'top',
                 source: 'unk',
-                object: null,
                 tags: ['a', 'b']
             };
             log(msg);
         });
-
-    ale = {};
-    ale.components =
-    {
-        BUTTON : "button",
-        CANVAS : "canvas",
-        CHECKBOX : "checkbox",
-        COMBOBOX : "combobox",
-        DATAGRID : "datagrid",
-        DIALOGBOX : "dialog_box",
-        DROPDOWNLIST : "dropdownlist",
-        FRAME : "frame",
-        ICON : "icon",
-        INFOBAR : "infobar",
-        LABEL : "label",
-        LINK : "link",
-        LISTBOX : "listbox",
-        LISTITEM: "listitem",
-        MAP : "map",
-        MENU : "menu",
-        MODALWINDOW : "modalwindow",
-        PALETTEWINDOW : "palettewindow",
-        PANEL : "panel",
-        PROGRESSBAR : "progressbar",
-        RADIOBUTTON : "radiobutton",
-        SLIDER : "slider",
-        SPINNER : "spinner",
-        STATUSBAR : "statusbar",
-        TAB : "tab",
-        TABLE : "table",
-        TAG : "tag",
-        TEXTBOX : "textbox",
-        THROBBER : "throbber",
-        TOAST : "toast",
-        TOOLBAR : "toolbar",
-        TOOLTIP : "tooltip",
-        TREEVIEW : "treeview",
-        WINDOW : "window",
-        WORKSPACE : "workspace",
-        // Other is used in conjunction with softwareMetadata in order
-        // to provide a component in which is not currently listed within
-        // the COMPONENT list.
-        OTHER : "other"
-    };
-
-    ale.activities =
-    {
-        ADD : "add",
-        REMOVE : "remove",
-        CREATE : "create",
-        DELETE : "delete",
-        SELECT : "select",
-        DESELECT : "deselect",
-        ENTER : "enter",
-        LEAVE : "leave",
-        INSPECT : "inspect",
-        ALTER : "alter",
-        HIDE : "hide",
-        SHOW : "show",
-        PERFORM: "perform"
-    };
-    //$('#slider1')
-    //    .on("slidestart", function (event, ui) {
-    //        log(this.getAttribute('id') + ' slider start')
-    //    })
-    //    .on("slidestop", function (event, ui) {
-    //        log(this.getAttribute('id') + ' slider stop')
-    //    });
-
-    //document.querySelector('body').addEventListener('click', function(event) {
-    //    //if (event.target.tagName.toLowerCase() === 'li') {
-    //    //    // do your action on your 'li' or whatever it is you're listening for
-    //    //}
-    //
-    //    window.A = event.target;
-    //
-    //    console.log('click', event.target.tagName, event.target)
-    //});
-
-    //$(document).ready(function(){
-    //    $(document).bind('mousewheel', function(e){
-    //        if(e.originalEvent.wheelDelta /120 > 0) {
-    //            log('scrolling up !');
-    //        }
-    //        else{
-    //            log('scrolling down !');
-    //        }
-    //    });
-    //});
 });
\ No newline at end of file
diff --git a/dashboard/files/test_app/js/map.js b/dashboard/files/test_app/js/map.js
index d3ac9ac..11f760b 100644
--- a/dashboard/files/test_app/js/map.js
+++ b/dashboard/files/test_app/js/map.js
@@ -38,12 +38,10 @@
         markers.push(marker);
         myLog({
             activity: 'add',
-            component: {
-                type: 'map',
-                group: 'map_group'
-            },
+            elementType: 'map',
+            elementGroup: 'map_group',
+            elementSub: 'marker',
             source: 'system',
-            object: 'marker',
             tags: []
         })
     });
@@ -55,12 +53,10 @@
 
         myLog({
             activity: 'remove',
-            component: {
-                type: 'map',
-                group: 'map_group'
-            },
+            elementType: 'map',
+            elementGroup: 'map_group',
+            elementSub: 'marker',
             source: 'system',
-            object: 'marker',
             tags: []
         })
     });
diff --git a/dashboard/files/test_app/js/userale.js b/dashboard/files/test_app/js/userale.js
index a42c066..464fcc5 100644
--- a/dashboard/files/test_app/js/userale.js
+++ b/dashboard/files/test_app/js/userale.js
@@ -39,19 +39,17 @@
     workerUrl: 'userale-worker.js',
     debug: true,
     sendLogs: true,
-    componentGroups: []
+    elementGroups: []
   };
 
   default_msg = {
-    activity: null,
-    action: null,
-    component: {
-      id: null,
-      type: null,
-      group: null
-    },
-    source: null,
-    object: null,
+    activity: '',
+    action: '',
+    elementId: '',
+    elementType: '',
+    elementGroup: '',
+    elementSub: '',
+    source: '',
     tags: [],
     meta: {}
   };
@@ -59,8 +57,8 @@
   userale = (function() {
     function userale(options) {
       this.options = extend(defaults, options);
-      if (this.options.componentGroups.constructor === !Array) {
-        this.options.componentGroups = [this.options.componentGroups];
+      if (this.options.elementGroups.constructor === !Array) {
+        this.options.elementGroups = [this.options.elementGroups];
       }
       this.options.version = '3.0.0';
       this.worker = new Worker(this.options.workerUrl);
@@ -91,29 +89,31 @@
     };
 
     userale.prototype.log = function(msg) {
-      var activities, activity, elementType, i, key, len, ref, value, x;
+      var activities, activity, i, key, len, value, x;
+      msg = extend(default_msg, msg);
       for (key in msg) {
         value = msg[key];
-        msg = extend(default_msg, msg);
-        if (key === 'component') {
-          if (ref = value.group, indexOf.call(this.options.componentGroups, ref) < 0) {
-            console.warn(value.group + " is NOT in component groups");
-          }
-          elementType = value.type.toUpperCase();
-          if (indexOf.call(ELEMENTS, elementType) < 0) {
-            console.warn("USERALE: Unrecognized element - " + elementType);
-          } else if ((elementType === 'OTHER') && (msg.meta.element == null)) {
+        if (key === 'elementType') {
+          value = value.toUpperCase();
+          if (indexOf.call(ELEMENTS, value) < 0) {
+            console.warn("USERALE: Unrecognized element - " + value);
+          } else if ((value === 'OTHER') && (msg.meta.element == null)) {
             console.warn("USERALE: Element type set to 'other', but 'element' not set in meta object ");
           }
-          msg.component.type = elementType;
+          msg.elementType = msg.elementType.toUpperCase();
+        }
+        if (key === 'elementGroup') {
+          if (indexOf.call(this.options.elementGroups, value) < 0) {
+            console.warn(value + " is NOT in element groups");
+          }
         }
         if (key === 'activity') {
           activities = (function() {
-            var i, len, ref1, results1;
-            ref1 = value.split('_');
+            var i, len, ref, results1;
+            ref = value.split('_');
             results1 = [];
-            for (i = 0, len = ref1.length; i < len; i++) {
-              x = ref1[i];
+            for (i = 0, len = ref.length; i < len; i++) {
+              x = ref[i];
               results1.push(x.toUpperCase());
             }
             return results1;
diff --git a/dashboard/files/test_app/js/userale.js.map b/dashboard/files/test_app/js/userale.js.map
index 0c6ff65..9bf8193 100644
--- a/dashboard/files/test_app/js/userale.js.map
+++ b/dashboard/files/test_app/js/userale.js.map
@@ -6,5 +6,5 @@
     "userale.coffee"
   ],
   "names": [],
-  "mappings": "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"
+  "mappings": "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"
 }
\ No newline at end of file
diff --git a/helper-libs/javascript/userale.coffee b/helper-libs/javascript/userale.coffee
index 9abac6b..aa756a5 100644
--- a/helper-libs/javascript/userale.coffee
+++ b/helper-libs/javascript/userale.coffee
@@ -53,8 +53,8 @@
   'WINDOW'
   'WORKSPACE'
 # Other is used in conjunction with softwareMetadata in order
-# to provide a component in which is not currently listed within
-# the COMPONENT list.
+# to provide a element in which is not currently listed within
+# the element list.
   'OTHER'
 ]
 
@@ -82,19 +82,17 @@
   workerUrl: 'userale-worker.js'
   debug: true
   sendLogs: true
-  componentGroups: []
+  elementGroups: []
 }
 
 default_msg = {
-  activity: null,
-  action: null,
-  component: {
-    id: null,
-    type: null,
-    group: null
-  },
-  source: null,
-  object: null,
+  activity: '',
+  action: '',
+  elementId: '',
+  elementType: '',
+  elementGroup: '',
+  elementSub: '',
+  source: '',
   tags: []
   meta: {}
 }
@@ -103,8 +101,8 @@
   constructor: (options)->
     @options = extend(defaults, options)
 
-    if @options.componentGroups.constructor is not Array
-      @options.componentGroups = [@options.componentGroups]
+    if @options.elementGroups.constructor is not Array
+      @options.elementGroups = [@options.elementGroups]
 
     @options.version = '3.0.0'
 
@@ -135,19 +133,19 @@
     @worker.postMessage({cmd: 'sendBuffer', msg: ''})
 
   log: (msg) ->
+    msg = extend(default_msg, msg)
     for key, value of msg
-      msg = extend(default_msg, msg)
-      if key is 'component'
-        if value.group not in @options.componentGroups
-          console.warn("#{ value.group } is NOT in component groups")
-
-        elementType = value.type.toUpperCase()
-        if elementType not in ELEMENTS
-          console.warn("USERALE: Unrecognized element - #{ elementType }")
-        else if (elementType is 'OTHER') and !msg.meta.element?
+      if key is 'elementType'
+        value = value.toUpperCase()
+        if value not in ELEMENTS
+          console.warn("USERALE: Unrecognized element - #{ value }")
+        else if (value is 'OTHER') and !msg.meta.element?
           console.warn("USERALE: Element type set to 'other', but 'element' not set in meta object ")
+        msg.elementType = msg.elementType.toUpperCase()
 
-        msg.component.type = elementType
+      if key is 'elementGroup'
+        if value not in @options.elementGroups
+          console.warn("#{ value } is NOT in element groups")
 
       if key is 'activity'
         activities = (x.toUpperCase() for x in value.split('_'))
diff --git a/helper-libs/javascript/userale.js b/helper-libs/javascript/userale.js
index a42c066..464fcc5 100644
--- a/helper-libs/javascript/userale.js
+++ b/helper-libs/javascript/userale.js
@@ -39,19 +39,17 @@
     workerUrl: 'userale-worker.js',
     debug: true,
     sendLogs: true,
-    componentGroups: []
+    elementGroups: []
   };
 
   default_msg = {
-    activity: null,
-    action: null,
-    component: {
-      id: null,
-      type: null,
-      group: null
-    },
-    source: null,
-    object: null,
+    activity: '',
+    action: '',
+    elementId: '',
+    elementType: '',
+    elementGroup: '',
+    elementSub: '',
+    source: '',
     tags: [],
     meta: {}
   };
@@ -59,8 +57,8 @@
   userale = (function() {
     function userale(options) {
       this.options = extend(defaults, options);
-      if (this.options.componentGroups.constructor === !Array) {
-        this.options.componentGroups = [this.options.componentGroups];
+      if (this.options.elementGroups.constructor === !Array) {
+        this.options.elementGroups = [this.options.elementGroups];
       }
       this.options.version = '3.0.0';
       this.worker = new Worker(this.options.workerUrl);
@@ -91,29 +89,31 @@
     };
 
     userale.prototype.log = function(msg) {
-      var activities, activity, elementType, i, key, len, ref, value, x;
+      var activities, activity, i, key, len, value, x;
+      msg = extend(default_msg, msg);
       for (key in msg) {
         value = msg[key];
-        msg = extend(default_msg, msg);
-        if (key === 'component') {
-          if (ref = value.group, indexOf.call(this.options.componentGroups, ref) < 0) {
-            console.warn(value.group + " is NOT in component groups");
-          }
-          elementType = value.type.toUpperCase();
-          if (indexOf.call(ELEMENTS, elementType) < 0) {
-            console.warn("USERALE: Unrecognized element - " + elementType);
-          } else if ((elementType === 'OTHER') && (msg.meta.element == null)) {
+        if (key === 'elementType') {
+          value = value.toUpperCase();
+          if (indexOf.call(ELEMENTS, value) < 0) {
+            console.warn("USERALE: Unrecognized element - " + value);
+          } else if ((value === 'OTHER') && (msg.meta.element == null)) {
             console.warn("USERALE: Element type set to 'other', but 'element' not set in meta object ");
           }
-          msg.component.type = elementType;
+          msg.elementType = msg.elementType.toUpperCase();
+        }
+        if (key === 'elementGroup') {
+          if (indexOf.call(this.options.elementGroups, value) < 0) {
+            console.warn(value + " is NOT in element groups");
+          }
         }
         if (key === 'activity') {
           activities = (function() {
-            var i, len, ref1, results1;
-            ref1 = value.split('_');
+            var i, len, ref, results1;
+            ref = value.split('_');
             results1 = [];
-            for (i = 0, len = ref1.length; i < len; i++) {
-              x = ref1[i];
+            for (i = 0, len = ref.length; i < len; i++) {
+              x = ref[i];
               results1.push(x.toUpperCase());
             }
             return results1;
diff --git a/helper-libs/javascript/userale.js.map b/helper-libs/javascript/userale.js.map
index 0c6ff65..9bf8193 100644
--- a/helper-libs/javascript/userale.js.map
+++ b/helper-libs/javascript/userale.js.map
@@ -6,5 +6,5 @@
     "userale.coffee"
   ],
   "names": [],
-  "mappings": "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"
+  "mappings": "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"
 }
\ No newline at end of file