Started smart table component
diff --git a/views/ngXosLib/xosHelpers/spec/ui/smart-table.test.js b/views/ngXosLib/xosHelpers/spec/ui/smart-table.test.js
new file mode 100644
index 0000000..95b7d4b
--- /dev/null
+++ b/views/ngXosLib/xosHelpers/spec/ui/smart-table.test.js
@@ -0,0 +1,55 @@
+/**
+ * © OpenCORD
+ *
+ * Created by teone on 3/24/16.
+ */
+
+(function () {
+  'use strict';
+
+  describe('The xos.helper module', function(){
+    describe('The xos-smart-table component', () => {
+
+      let spy, scope, isolatedScope, element;
+
+      beforeEach(module('xos.helpers'));
+
+      // mock the service
+      beforeEach(function(){
+        module(function($provide){
+          $provide.service('MockResource', function(){
+            this.test = (msg) => console.log(msg);
+            this.query = jasmine.createSpy('add')
+              .and.returnValue({$promise: cb => {
+                console.log('------------------ CB ------------------');
+                return cb([]);
+              }});
+          });
+        });
+      })
+
+      beforeEach(inject(function ($compile, $rootScope, MockResource) {
+        scope = $rootScope.$new();
+
+        scope.config = {
+          resource: 'MockResource'
+        };
+
+        spy = MockResource;
+        // console.log(MockResource.query.toString(), spy.query.toString());
+
+        element = angular.element('<xos-smart-table config="config"></xos-smart-table>');
+        $compile(element)(scope);
+        scope.$digest();
+        isolatedScope = element.isolateScope().vm;
+      }));
+
+      it('should query elements', () => {
+
+        console.log(spy.query.toString());
+        expect(spy.query).toHaveBeenCalled();
+      });
+
+    });
+  });
+})();
\ No newline at end of file
diff --git a/views/ngXosLib/xosHelpers/src/ui_components/smartComponents/smartTable/smartTable.component.js b/views/ngXosLib/xosHelpers/src/ui_components/smartComponents/smartTable/smartTable.component.js
index 3feeb4a..b8b5915 100644
--- a/views/ngXosLib/xosHelpers/src/ui_components/smartComponents/smartTable/smartTable.component.js
+++ b/views/ngXosLib/xosHelpers/src/ui_components/smartComponents/smartTable/smartTable.component.js
@@ -57,9 +57,11 @@
 
         let Resource = $injector.get(this.config.resource);
 
+        console.log('query', Resource.query.toString(), Resource.test(`I'm Alive!`));
+
         Resource.query().$promise
         .then((res) => {
-
+          console.log('Data!!');
           let props = Object.keys(res[0]);
 
           _.remove(props, p => {
diff --git a/views/ngXosViews/sampleView/env/default.js b/views/ngXosViews/sampleView/env/default.js
index dacf8e8..053be99 100644
--- a/views/ngXosViews/sampleView/env/default.js
+++ b/views/ngXosViews/sampleView/env/default.js
@@ -8,6 +8,6 @@
 
 module.exports = {
   host: 'http://xos.dev:9999/',
-  xoscsrftoken: 'q7gXR35WCSa2R9njrZJiubGCUxGR40tX',
-  xossessionid: 'ghzz0lxwt8f7z5io9gj8ni9yrrrkgz17'
+  xoscsrftoken: 'OwZOjlUUKSXGNbGkJsBPT9sPyEABXl8G',
+  xossessionid: 'uk0a1z9gbm5leb1tgrdyfsb48uc9sakv'
 };
diff --git a/views/ngXosViews/sampleView/src/index.html b/views/ngXosViews/sampleView/src/index.html
index 2693838..593e982 100644
--- a/views/ngXosViews/sampleView/src/index.html
+++ b/views/ngXosViews/sampleView/src/index.html
@@ -3,8 +3,8 @@
 <link rel="stylesheet" href="vendor/bootstrap-css/css/bootstrap.min.css" />
 <!-- endbower --><!-- endcss -->
 <!-- inject:css -->
-<link rel="stylesheet" href="/../../../xos/core/static/xosNgLib.css">
 <link rel="stylesheet" href="/css/main.css">
+<link rel="stylesheet" href="/../../../xos/core/static/xosNgLib.css">
 <!-- endinject -->
 
 <div ng-cloak ng-app="xos.sampleView" id="xosSampleView" class="container-fluid">
diff --git a/views/ngXosViews/sampleView/src/js/main.js b/views/ngXosViews/sampleView/src/js/main.js
index d3aa494..5f7be4d 100644
--- a/views/ngXosViews/sampleView/src/js/main.js
+++ b/views/ngXosViews/sampleView/src/js/main.js
@@ -59,6 +59,10 @@
         }
       };
 
+      this.smartTableConfig = {
+        resource: 'Users'
+      }
+
       this.alertConfig = {
         type: 'danger',
         closeBtn: true
diff --git a/views/ngXosViews/sampleView/src/templates/users-list.tpl.html b/views/ngXosViews/sampleView/src/templates/users-list.tpl.html
index c1f7b20..a0902cd 100644
--- a/views/ngXosViews/sampleView/src/templates/users-list.tpl.html
+++ b/views/ngXosViews/sampleView/src/templates/users-list.tpl.html
@@ -7,17 +7,18 @@
 
 <div class="row">
   <div class="col-xs-12">
-  <xos-form ng-model="vm.users[0]" config="vm.formConfig"></xos-form>
+  <!-- <xos-form ng-model="vm.users[0]" config="vm.formConfig"></xos-form>
   <xos-alert config="vm.alertConfig">Random alert</xos-alert>
   <a class="btn" ng-click="vm.errors.email = !vm.errors.email" ng-class="{'btn-default': !vm.errors.email, 'btn-success': vm.errors.email}">
     Email
-  </a>
-  <xos-validation errors="vm.errors"></xos-validation>
+  </a> -->
+  <!-- <xos-validation errors="vm.errors"></xos-validation> -->
   </div>
 </div>
 
 <div class="row">
   <div class="col-xs-12">
-    <xos-table data="vm.users" config="vm.tableConfig"></xos-table>
+    <!-- <xos-table config="vm.tableConfig"></xos-table> -->
+    <xos-smart-table config="vm.smartTableConfig"></xos-smart-table>
   </div>
 </div>
\ No newline at end of file
diff --git a/xos/core/xoslib/static/js/vendor/ngXosHelpers.js b/xos/core/xoslib/static/js/vendor/ngXosHelpers.js
index c56b8dd..f957a2f 100644
--- a/xos/core/xoslib/static/js/vendor/ngXosHelpers.js
+++ b/xos/core/xoslib/static/js/vendor/ngXosHelpers.js
@@ -28,6 +28,98 @@
  *
  * Visit http://guide.xosproject.org/devguide/addview/ for more information
  *
+ * Created by teone on 3/24/16.
+ */
+
+(function () {
+  'use strict';
+
+  angular.module('xos.uiComponents')
+
+  /**
+  * @ngdoc directive
+  * @name xos.uiComponents.directive:xosSmartTable
+  * @restrict E
+  * @description The xos-table directive
+  * @param {Object} config The configuration for the component.
+  * @scope
+  * @example
+  */
+
+  .directive('xosSmartTable', function () {
+    return {
+      restrict: 'E',
+      scope: {
+        config: '='
+      },
+      template: '\n        <xos-table config="vm.tableConfig" data="vm.data"></xos-table>\n      ',
+      bindToController: true,
+      controllerAs: 'vm',
+      controller: ["$injector", "LabelFormatter", "_", function controller($injector, LabelFormatter, _) {
+        var _this = this;
+
+        this.tableConfig = {
+          columns: [],
+          // actions: [
+          //   {
+          //     label: 'delete',
+          //     icon: 'remove',
+          //     cb: (user) => {
+          //       console.log(user);
+          //       // _.remove(this.users, {id: user.id});
+          //     },
+          //     color: 'red'
+          //   }
+          // ],
+          filter: 'field',
+          order: true,
+          pagination: {
+            pageSize: 10
+          }
+        };
+
+        var Resource = $injector.get(this.config.resource);
+
+        console.log('query', Resource.query.toString(), Resource.test('I\'m Alive!'));
+
+        Resource.query().$promise.then(function (res) {
+          console.log('Data!!');
+          var props = Object.keys(res[0]);
+
+          _.remove(props, function (p) {
+            return p == 'id' || p == 'password' || p == 'validators';
+          });
+
+          var labels = props.map(function (p) {
+            return LabelFormatter.format(p);
+          });
+
+          console.log(props, labels);
+
+          props.forEach(function (p, i) {
+            _this.tableConfig.columns.push({
+              label: labels[i],
+              prop: p
+            });
+          });
+
+          console.log(_this.tableConfig.columns);
+
+          _this.data = res;
+        });
+      }]
+    };
+  });
+})();
+//# sourceMappingURL=../../../maps/ui_components/smartComponents/smartTable/smartTable.component.js.map
+
+'use strict';
+
+/**
+ * © OpenCORD
+ *
+ * Visit http://guide.xosproject.org/devguide/addview/ for more information
+ *
  * Created by teone on 4/15/16.
  */