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) { function AddCredentialsController (models, $state) {
let vm = this || {}; let vm = this || {};
console.log($state.get());
let me = models.me;
let credential = models.credential; let credential = models.credential;
let credentialType = models.credentialType; let credentialType = models.credentialType;
@@ -9,7 +11,7 @@ function AddCredentialsController (models, $state) {
}); });
vm.form.credential_type._data = credentialType.getResults(); 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._display = 'name';
vm.form.credential_type._key = 'id'; vm.form.credential_type._key = 'id';
vm.form.credential_type._exp = 'type as type.name group by type.kind for type in state._data'; 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' _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 = [ 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 = [ let promises = [
meModel.get(),
credentialModel.options(), credentialModel.options(),
credentialTypeModel.get() credentialTypeModel.get()
]; ];
return $q.all(promises) return $q.all(promises)
.then(() => ({ .then(() => ({
me: meModel,
credential: credentialModel, credential: credentialModel,
credentialType: credentialTypeModel credentialType: credentialTypeModel
})); }));
} }
CredentialsAddResolve.$inject = ['$q', 'CredentialModel', 'CredentialTypeModel']; CredentialsAddResolve.$inject = [
'$q',
'MeModel',
'CredentialModel',
'CredentialTypeModel'
];
stateExtender.addState({ stateExtender.addState({
name: 'credentials.add', name: 'credentials.add',
@@ -73,20 +80,25 @@ function config ($stateExtenderProvider, pathServiceProvider) {
} }
}); });
stateExtender.addState({ /*
name: 'credentials.edit', *stateExtender.addState({
route: '/edit', * name: 'credentials.edit',
ncyBreadcrumb: { * route: '/edit/:id',
label: N_('EDIT') * ncyBreadcrumb: {
}, * label: N_('EDIT')
views: { * },
'edit@credentials': { * views: {
templateProvider: function() { * 'edit@credentials': {
return '<span>test-edit</span>'; * templateUrl: pathService.getViewPath('credentials/add-credentials'),
} * controller: AddController,
} * controllerAs: 'vm'
} * },
}); * resolve: {
* resolvedModels: CredentialsAddResolve
* }
* }
*});
*/
} }
config.$inject = [ config.$inject = [

View File

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

View File

@@ -9,6 +9,8 @@ function BaseModel ($http) {
return $http(request) return $http(request)
.then(response => { .then(response => {
this.model.get = response; this.model.get = response;
return response;
}); });
}; };
@@ -22,6 +24,8 @@ function BaseModel ($http) {
return $http(request) return $http(request)
.then(response => { .then(response => {
this.model.post = response; this.model.post = response;
return response;
}); });
}; };
@@ -34,6 +38,8 @@ function BaseModel ($http) {
return $http(request) return $http(request)
.then(response => { .then(response => {
this.model.options = 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 Base from './Base';
import Credential from './Credential'; import Credential from './Credential';
import CredentialType from './CredentialType'; import CredentialType from './CredentialType';
import Me from './Me';
angular angular
.module('at.lib.models', []) .module('at.lib.models', [])
.service('BaseModel', Base) .service('BaseModel', Base)
.service('CredentialModel', Credential) .service('CredentialModel', Credential)
.service('CredentialTypeModel', CredentialType); .service('CredentialTypeModel', CredentialType)
.service('MeModel', Me);

View File

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