Add Me model for credential submission

This commit is contained in:
gconsidine 2017-05-26 17:14:26 -04:00
parent 15759b65aa
commit a3099ac285
7 changed files with 63 additions and 32 deletions

View File

@ -1,6 +1,8 @@
function AddCredentialsController (models, $state) {
let vm = this || {};
console.log($state.get());
let me = models.me;
let credential = models.credential;
let credentialType = models.credentialType;
@ -9,7 +11,7 @@ function AddCredentialsController (models, $state) {
});
vm.form.credential_type._data = credentialType.getResults();
vm.form.credential_type._placeholder = 'Select A Type';
vm.form.credential_type._placeholder = 'SELECT A TYPE';
vm.form.credential_type._display = 'name';
vm.form.credential_type._key = 'id';
vm.form.credential_type._exp = 'type as type.name group by type.kind for type in state._data';
@ -21,7 +23,15 @@ function AddCredentialsController (models, $state) {
_key: 'inputs'
};
vm.form.save = credential.post;
vm.form.save = data => {
data.user = me.getId();
return credential.post(data);
};
vm.form.saveSuccess = res => {
$state.go('credentials.edit', { id: res.data.id });
};
}
AddCredentialsController.$inject = [

View File

@ -40,20 +40,27 @@ function config ($stateExtenderProvider, pathServiceProvider) {
}
});
function CredentialsAddResolve ($q, credentialModel, credentialTypeModel) {
function CredentialsAddResolve ($q, meModel, credentialModel, credentialTypeModel) {
let promises = [
meModel.get(),
credentialModel.options(),
credentialTypeModel.get()
];
return $q.all(promises)
.then(() => ({
me: meModel,
credential: credentialModel,
credentialType: credentialTypeModel
}));
}
CredentialsAddResolve.$inject = ['$q', 'CredentialModel', 'CredentialTypeModel'];
CredentialsAddResolve.$inject = [
'$q',
'MeModel',
'CredentialModel',
'CredentialTypeModel'
];
stateExtender.addState({
name: 'credentials.add',
@ -73,20 +80,25 @@ function config ($stateExtenderProvider, pathServiceProvider) {
}
});
stateExtender.addState({
name: 'credentials.edit',
route: '/edit',
ncyBreadcrumb: {
label: N_('EDIT')
},
views: {
'edit@credentials': {
templateProvider: function() {
return '<span>test-edit</span>';
}
}
}
});
/*
*stateExtender.addState({
* name: 'credentials.edit',
* route: '/edit/:id',
* ncyBreadcrumb: {
* label: N_('EDIT')
* },
* views: {
* 'edit@credentials': {
* templateUrl: pathService.getViewPath('credentials/add-credentials'),
* controller: AddController,
* controllerAs: 'vm'
* },
* resolve: {
* resolvedModels: CredentialsAddResolve
* }
* }
*});
*/
}
config.$inject = [

View File

@ -66,10 +66,8 @@ function AtFormController (eventService) {
if (component.state._key && typeof component.state._value === 'object') {
values[component.state.id] = component.state._value[component.state._key];
} else if (component.state._group) {
values[component.state._key] = values[component.state._key] || [];
values[component.state._key].push({
[component.state.id]: component.state._value
});
values[component.state._key] = values[component.state._key] || {};
values[component.state._key][component.state.id] = component.state._value;
} else {
values[component.state.id] = component.state._value;
}
@ -77,17 +75,12 @@ function AtFormController (eventService) {
return values;
}, {});
scope.state.save(data)
.then(res => vm.onSaveSuccess(res))
.then(scope.state.created)
.catch(err => vm.onSaveError(err))
.finally(() => vm.state.disabled = false);
};
vm.onSaveSuccess = res => {
console.info(res);
};
vm.onSaveError = err => {
let handled;

View File

@ -9,6 +9,8 @@ function BaseModel ($http) {
return $http(request)
.then(response => {
this.model.get = response;
return response;
});
};
@ -22,6 +24,8 @@ function BaseModel ($http) {
return $http(request)
.then(response => {
this.model.post = response;
return response;
});
};
@ -34,6 +38,8 @@ function BaseModel ($http) {
return $http(request)
.then(response => {
this.model.options = response;
return response;
});
};

View File

@ -0,0 +1,11 @@
function MeModel (BaseModel) {
BaseModel.call(this, 'me');
this.getId = () => {
return this.model.get.data.results[0].id;
};
}
MeModel.$inject = ['BaseModel'];
export default MeModel;

View File

@ -1,10 +1,12 @@
import Base from './Base';
import Credential from './Credential';
import CredentialType from './CredentialType';
import Me from './Me';
angular
.module('at.lib.models', [])
.service('BaseModel', Base)
.service('CredentialModel', Credential)
.service('CredentialTypeModel', CredentialType);
.service('CredentialTypeModel', CredentialType)
.service('MeModel', Me);

View File

@ -7,7 +7,6 @@
// Vendor dependencies
import 'jquery';
import 'angular';
import 'angular-resource';
import 'angular-gettext';
import 'bootstrap';
import 'jquery-ui';
@ -72,7 +71,6 @@ import footer from './footer/main';
import scheduler from './scheduler/main';
import instanceGroups from './instance-groups/main';
import 'angular-animate';
import '../lib/components';
import '../lib/models';
import '../lib/services';
@ -137,7 +135,6 @@ var tower = angular.module('Tower', [
'AWDirectives',
'features',
'ngAnimate',
'at.lib.components',
'at.lib.models',
'at.lib.services',