@@ -7,6 +7,7 @@ export const systemService = { | |||||
loadSystemConfigs, | loadSystemConfigs, | ||||
loadEntityConfigs, | loadEntityConfigs, | ||||
search, | search, | ||||
createEntity, | |||||
loadMessages, | loadMessages, | ||||
loadTimezones, | loadTimezones, | ||||
detectTimezone, | detectTimezone, | ||||
@@ -47,19 +48,23 @@ function search(type, query) { | |||||
.then(config => { return config; }); | .then(config => { return config; }); | ||||
} | } | ||||
function createEntity(config, json, messages, errors) { | |||||
function createEntity(entityConfig, json, messages, errors) { | |||||
console.log('createEntity: sending json='+json); | |||||
let requestOptions = null; | let requestOptions = null; | ||||
if (config.createMethod) { | |||||
if (config.createMethod === 'PUT') { | |||||
if (entityConfig.createMethod && entityConfig.createUri) { | |||||
if (entityConfig.createMethod === 'PUT') { | |||||
requestOptions = util.putJsonWithAuth(json); | requestOptions = util.putJsonWithAuth(json); | ||||
} else if (config.createMethod === 'POST') { | |||||
} else if (entityConfig.createMethod === 'POST') { | |||||
requestOptions = util.putJsonWithAuth(json); | requestOptions = util.putJsonWithAuth(json); | ||||
} else { | |||||
return Promise.reject("invalid createMethod: " + entityConfig.createMethod); | |||||
} | } | ||||
} else { | |||||
return Promise.reject("no createMethod"); | |||||
} | } | ||||
if (requestOptions === null) requestOptions = util.putJsonWithAuth(json); | |||||
return fetch(`${config.apiUrl}/${config.createUri}`, requestOptions) | |||||
return fetch(`${config.apiUrl}${entityConfig.createUri}`, requestOptions) | |||||
.then(util.handleCrudResponse(messages, errors)) | .then(util.handleCrudResponse(messages, errors)) | ||||
.then(config => { return config; }); | |||||
.then(entity => { return entity; }); | |||||
} | } | ||||
function loadMessages(group, locale) { | function loadMessages(group, locale) { | ||||
@@ -88,9 +88,9 @@ const actions = { | |||||
error => commit('searchFailure', error) | error => commit('searchFailure', error) | ||||
); | ); | ||||
}, | }, | ||||
createEntity({ commit }, type, json, messages, errors) { | |||||
createEntity({ commit }, {entityConfig, json, messages, errors}) { | |||||
commit('createEntityRequest'); | commit('createEntityRequest'); | ||||
systemService.createEntity(state.entityConfigs[type], json, messages, errors) | |||||
systemService.createEntity(entityConfig, json, messages, errors) | |||||
.then( | .then( | ||||
entity => commit('createEntitySuccess', entity), | entity => commit('createEntitySuccess', entity), | ||||
error => commit('createEntityFailure', error) | error => commit('createEntityFailure', error) | ||||
@@ -13,7 +13,7 @@ | |||||
<div v-if="this.ec && this.ec[this.lcType] && this.ec[this.lcType].createMethod !== 'DISABLED'"> | <div v-if="this.ec && this.ec[this.lcType] && this.ec[this.lcType].createMethod !== 'DISABLED'"> | ||||
<button @click="showingAddDialog = true">{{messages.button_label_add_entity}}</button> | <button @click="showingAddDialog = true">{{messages.button_label_add_entity}}</button> | ||||
<div v-if="showingAddDialog"> | <div v-if="showingAddDialog"> | ||||
<textarea v-bind="newEntityJson"></textarea> | |||||
<textarea v-model="newEntityJson"></textarea> | |||||
<button @click="createNewEntity()">{{messages.button_label_save_add_entity}}</button> | <button @click="createNewEntity()">{{messages.button_label_save_add_entity}}</button> | ||||
<button @click="showingAddDialog = false">{{messages.button_label_close_add_entity}}</button> | <button @click="showingAddDialog = false">{{messages.button_label_close_add_entity}}</button> | ||||
</div> | </div> | ||||
@@ -105,7 +105,8 @@ | |||||
this.selectedEntity = null; | this.selectedEntity = null; | ||||
}, | }, | ||||
createNewEntity() { | createNewEntity() { | ||||
this.createEntity(this.type, this.newEntityJson, this.messages, this.errors); | |||||
console.log('this.newEntityJson='+this.newEntityJson); | |||||
this.createEntity({entityConfig: this.ec[this.lcType], json: this.newEntityJson, messages: this.messages, errors: this.errors}); | |||||
} | } | ||||
}, | }, | ||||
watch: { | watch: { | ||||
@@ -113,7 +114,7 @@ | |||||
if (configs) this.ec = configs; | if (configs) this.ec = configs; | ||||
}, | }, | ||||
searchResults (results) { | searchResults (results) { | ||||
console.log('updating this.results='+JSON.stringify(results)); | |||||
// console.log('updating this.results='+JSON.stringify(results)); | |||||
if (results) this.results = results; | if (results) this.results = results; | ||||
} | } | ||||
} | } | ||||