Working on error handling
parent
fa0a6a7b4e
commit
96e333afa6
|
@ -18,6 +18,7 @@ import org.springframework.web.bind.annotation.PathVariable;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
|
|
||||||
|
@ -103,6 +104,23 @@ public class ScopeAPI {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PreAuthorize("hasRole('ROLE_ADMIN')")
|
||||||
|
@RequestMapping(value="/checkScopeValue", method = RequestMethod.GET)
|
||||||
|
public String checkScopeValue(@RequestParam String value, ModelMap m) {
|
||||||
|
|
||||||
|
SystemScope alreadyExists = scopeService.getByValue(value);
|
||||||
|
if (alreadyExists != null) {
|
||||||
|
m.put("code", HttpStatus.CONFLICT);
|
||||||
|
m.put("entity", "A scope with value " + value + " already exists, please choose a different value.");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
m.put("code", HttpStatus.ACCEPTED);
|
||||||
|
m.put("entity", "OK");
|
||||||
|
}
|
||||||
|
|
||||||
|
return "jsonEntityView";
|
||||||
|
}
|
||||||
|
|
||||||
@PreAuthorize("hasRole('ROLE_ADMIN')")
|
@PreAuthorize("hasRole('ROLE_ADMIN')")
|
||||||
@RequestMapping(value = "", method = RequestMethod.POST, produces = "application/json", consumes = "application/json")
|
@RequestMapping(value = "", method = RequestMethod.POST, produces = "application/json", consumes = "application/json")
|
||||||
public String createScope(@RequestBody String json, ModelMap m) {
|
public String createScope(@RequestBody String json, ModelMap m) {
|
||||||
|
@ -113,7 +131,7 @@ public class ScopeAPI {
|
||||||
//Error, cannot save a scope with the same value as an existing one
|
//Error, cannot save a scope with the same value as an existing one
|
||||||
logger.error("Error: attempting to save a scope with a value that already exists: " + scope.getValue());
|
logger.error("Error: attempting to save a scope with a value that already exists: " + scope.getValue());
|
||||||
m.put("code", HttpStatus.CONFLICT);
|
m.put("code", HttpStatus.CONFLICT);
|
||||||
m.put("entity", "A scope with value " + scope.getValue() + "already exists, please choose a different value.");
|
m.put("entity", "A scope with value " + scope.getValue() + " already exists, please choose a different value.");
|
||||||
return "jsonEntityView";
|
return "jsonEntityView";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -207,6 +207,20 @@ var SystemScopeFormView = Backbone.View.extend({
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var valuedata = {};
|
||||||
|
valuedata.value = value;
|
||||||
|
var alreadyExists = false;
|
||||||
|
|
||||||
|
$.get(this.model.urlRoot + "/checkScopeValue", valuedata)
|
||||||
|
.success(function() {
|
||||||
|
console.log("scope value is OK");
|
||||||
|
})
|
||||||
|
.error(function(error, response) {
|
||||||
|
$('#value input').addClass('error');
|
||||||
|
//add hint
|
||||||
|
alreadyExists = true;
|
||||||
|
});
|
||||||
|
|
||||||
var valid = this.model.set({
|
var valid = this.model.set({
|
||||||
value:value,
|
value:value,
|
||||||
description:$('#description textarea').val(),
|
description:$('#description textarea').val(),
|
||||||
|
@ -215,7 +229,8 @@ var SystemScopeFormView = Backbone.View.extend({
|
||||||
allowDynReg:$('#allowDynReg input').is(':checked')
|
allowDynReg:$('#allowDynReg input').is(':checked')
|
||||||
});
|
});
|
||||||
|
|
||||||
if (valid) {
|
if (valid && !alreadyExists) {
|
||||||
|
|
||||||
var _self = this;
|
var _self = this;
|
||||||
this.model.save({}, {
|
this.model.save({}, {
|
||||||
success:function() {
|
success:function() {
|
||||||
|
|
Loading…
Reference in New Issue