Started xosSmartTable component
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
new file mode 100644
index 0000000..3feeb4a
--- /dev/null
+++ b/views/ngXosLib/xosHelpers/src/ui_components/smartComponents/smartTable/smartTable.component.js
@@ -0,0 +1,88 @@
+/**
+ * © OpenCORD
+ *
+ * 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: `
+ <xos-table config="vm.tableConfig" data="vm.data"></xos-table>
+ `,
+ bindToController: true,
+ controllerAs: 'vm',
+ controller: function($injector, LabelFormatter, _){
+
+ 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
+ }
+ };
+
+ let Resource = $injector.get(this.config.resource);
+
+ Resource.query().$promise
+ .then((res) => {
+
+ let props = Object.keys(res[0]);
+
+ _.remove(props, p => {
+ return p == 'id' || p == 'password' || p == 'validators'
+ });
+
+ let labels = props.map(p => LabelFormatter.format(p));
+
+ console.log(props, labels);
+
+ props.forEach((p, i) => {
+ this.tableConfig.columns.push({
+ label: labels[i],
+ prop: p
+ });
+ });
+
+
+ console.log(this.tableConfig.columns);
+
+ this.data = res;
+ })
+ }
+ };
+ });
+})();
\ No newline at end of file