blob: 5f7be4d8889f61c443a6a88a64bdd889071c10cc [file] [log] [blame]
'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.smartTableConfig = {
resource: 'Users'
}
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'
}
]
};
this.errors = {
email: false
}
// retrieving user list
Users.query().$promise
.then((users) => {
this.users = users.concat(users).concat(users).concat(users);
})
.catch((e) => {
throw new Error(e);
});
}
};
});