| 'use strict'; |
| |
| angular.module('xos.sampleView', [ |
| 'ngResource', |
| 'ngCookies', |
| 'ui.router', |
| 'xos.helpers' |
| ]) |
| .config(($stateProvider) => { |
| $stateProvider |
| .state('user-list', { |
| url: '/', |
| template: '<users-list></users-list>' |
| }); |
| }) |
| .config(function($httpProvider){ |
| $httpProvider.interceptors.push('NoHyperlinks'); |
| }) |
| .directive('usersList', function(){ |
| return { |
| restrict: 'E', |
| scope: {}, |
| bindToController: true, |
| controllerAs: 'vm', |
| templateUrl: 'templates/users-list.tpl.html', |
| controller: function(Users, _){ |
| |
| this.tableConfig = { |
| columns: [ |
| { |
| label: 'E-Mail', |
| prop: 'email' |
| }, |
| { |
| label: 'First Name', |
| prop: 'firstname' |
| }, |
| { |
| label: 'Last Name', |
| prop: 'lastname' |
| } |
| ], |
| classes: 'table table-striped table-condensed', |
| 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 |
| } |
| }; |
| |
| this.alertConfig = { |
| type: 'danger', |
| closeBtn: true |
| } |
| |
| this.formConfig = { |
| exclude: ['password'], |
| formName: 'myForm', |
| fields: { |
| firstname: { |
| validators: { |
| minlength: 10 |
| } |
| }, |
| lastname: { |
| validators: { |
| maxlength: 3 |
| } |
| }, |
| user_url: { |
| validators: { |
| required: true |
| } |
| } |
| }, |
| actions: [ |
| { |
| label: 'Save', |
| icon: 'ok', // refers to bootstraps glyphicon |
| cb: (user) => { // receive the model |
| console.log(user); |
| }, |
| class: 'success' |
| } |
| ] |
| } |
| |
| // retrieving user list |
| Users.query().$promise |
| .then((users) => { |
| this.users = users.concat(users).concat(users).concat(users); |
| }) |
| .catch((e) => { |
| throw new Error(e); |
| }); |
| } |
| }; |
| }); |