fix error propagation in userhandler
Change-Id: I39d846373f0068b548a6721a9e277efcf258c6a9
Signed-off-by: lombardofr <lombardo@everyup.it>
diff --git a/static/src/userhandler/user_list.js b/static/src/userhandler/user_list.js
index 615f118..9a52249 100644
--- a/static/src/userhandler/user_list.js
+++ b/static/src/userhandler/user_list.js
@@ -84,7 +84,7 @@
success: function (result) {
//$('#modal_show_vim_body').empty();
dialog.modal('hide');
- location.reload();
+ table.ajax.reload();
},
error: function (result) {
dialog.modal('hide');
diff --git a/userhandler/templates/user_list.html b/userhandler/templates/user_list.html
index 87753c6..99393b5 100644
--- a/userhandler/templates/user_list.html
+++ b/userhandler/templates/user_list.html
@@ -74,8 +74,9 @@
<script src="/static/bower_components/select2/dist/js/select2.js"></script>
<script src="/static/src/userhandler/user_list.js"></script>
<script>
+ var table;
$(document).ready(function () {
- var table = $('#users_table').DataTable({
+ table = $('#users_table').DataTable({
responsive: true,
"ajax": {
"url": "/admin/users/list",
@@ -199,6 +200,40 @@
table.ajax.reload();
}, 10000);
+ $("#formCreateUser").submit(function (event) {
+ event.preventDefault(); //prevent default action
+ var post_url = $(this).attr("action"); //get form action url
+ var request_method = $(this).attr("method");
+ var form_data = new FormData(this); //Encode form elements for submission
+
+ $.ajax({
+ url: post_url,
+ type: request_method,
+ data: form_data,
+ headers: {
+ "Accept": 'application/json'
+ },
+ contentType: false,
+ processData: false
+ }).done(function (response, textStatus, jqXHR) {
+ $('#modal_new_user').modal('hide');
+ table.ajax.reload();
+ bootbox.alert({
+ title: "Result",
+ message: "User successfully created."
+ });
+
+ }).fail(function (result) {
+ var data = result.responseJSON;
+ var title = "Error " + (data.code ? data.code : 'unknown');
+ var message = data.detail ? data.detail : 'No detail available.';
+ bootbox.alert({
+ title: title,
+ message: message
+ });
+ });
+ });
+
$("#formEditUser").submit(function (event) {
event.preventDefault(); //prevent default action
var post_url = $(this).attr("action"); //get form action url
@@ -219,7 +254,7 @@
table.ajax.reload();
bootbox.alert({
title: "Result",
- message: "User modified successfully."
+ message: "User successfully modified."
});
}).fail(function (result) {
@@ -232,6 +267,7 @@
});
});
});
+
});
</script>
diff --git a/userhandler/views.py b/userhandler/views.py
index 47e4302..0c12a84 100644
--- a/userhandler/views.py
+++ b/userhandler/views.py
@@ -46,10 +46,12 @@
"password": request.POST['password'],
"projects": request.POST.getlist('projects')
}
-
result = client.user_create(user.get_token(), user_data)
-
- return __response_handler(request, result, 'users:list', to_redirect=True)
+ if result['error']:
+ return __response_handler(request, result['data'], url=None,
+ status=result['data']['status'] if 'status' in result['data'] else 500)
+ else:
+ return __response_handler(request, {}, url=None, status=200)
@login_required
@@ -57,10 +59,15 @@
user = osmutils.get_user(request)
try:
client = Client()
- del_res = client.user_delete(user.get_token(), user_id)
+ result = client.user_delete(user.get_token(), user_id)
except Exception as e:
log.exception(e)
- return __response_handler(request, {}, 'users:list', to_redirect=True, )
+ result = {'error': True, 'data': str(e)}
+ if result['error']:
+ return __response_handler(request, result['data'], url=None,
+ status=result['data']['status'] if 'status' in result['data'] else 500)
+ else:
+ return __response_handler(request, {}, url=None, status=200)
@login_required
def update(request, user_id=None):