bugfix/fix_web_ui_values: save and delete message.

This commit is contained in:
shuang 2019-10-31 22:51:57 +08:00
parent 7afe047700
commit c155dca141
3 changed files with 91 additions and 29 deletions

View File

@ -1,35 +1,88 @@
$(document).ready(function($) {
$('.runner button.forSave').click(function() {
$('.runner button.forSave').click(function(e) {
e.preventDefault();
var t = $(this);
var runner = $(this).parent().parent().parent();
webui_props_name = $(runner).find('.webui_props_name').text();
webui_props_value = $(runner).find('.webui_props_value').val();
var webui_props_name = $(runner).find('.webui_props_name').text();
var webui_props_value = $(runner).find('.webui_props_value').val();
$('.dynamic-message').each(function(i, d_msg){
$(d_msg).remove();
});
var webui = $('#webui');
if(webui_props_value.trim() === '') {
$('<div class="alert alert-dismissible alert-danger dynamic-message" role="alert">\n' +
'<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>\n' +
'Web UI Props Value should not be empty!' +
'</div>'
).insertBefore(webui);
return;
}
t.attr("disabled","disabled").toggleClass("disabled");
t.next().attr("disabled","disabled").toggleClass("disabled");
$.ajax({
type: 'POST',
url: '/webui/save/method',
data: {
'webui_props_name': webui_props_name,
'webui_props_value': webui_props_value,
'csrfmiddlewaretoken': window.CSRF
},
success: function (response) {
alert('Saved');
t.next().show().fadeOut(1000);
},
async:false
type: 'POST',
url: '/webui/save/method',
data: {
'webui_props_name': webui_props_name,
'webui_props_value': webui_props_value,
'csrfmiddlewaretoken': window.CSRF
},
success: function () {
t.removeAttr("disabled").toggleClass("disabled");
t.next().removeAttr("disabled").toggleClass("disabled");
$('<div class="alert alert-dismissible alert-success dynamic-message" role="alert">\n' +
'<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>Success!</div>'
).insertBefore(webui);
},
error: function (response) {
var errors = response.responseJSON ? response.responseJSON['errors'] : [response.responseText];
errors.forEach(function(e){
$('<div class="alert alert-dismissible alert-danger dynamic-message" role="alert">\n' +
'<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>\n' +
e +
'</div>'
).insertBefore(webui);
});
t.removeAttr("disabled").toggleClass("disabled");
t.next().removeAttr("disabled").toggleClass("disabled")
}
});
});
$('.runner button.forDelete').click(function() {
var t = $(this);
var runner = $(this).parent().parent().parent();
web_ui_props_id = $(runner).find('.web_ui_props_id').val();
var web_ui_props_id = $(runner).find('.web_ui_props_id').val();
$('.dynamic-message').each(function(i, d_msg){
$(d_msg).remove();
});
var webui = $('#webui');
t.attr("disabled","disabled").toggleClass("disabled");
t.next().attr("disabled","disabled").toggleClass("disabled");
$.post('/webui/delete/method', {
'web_ui_props_id': web_ui_props_id
}, function (response) {
t.next().show().fadeOut(1000);
$.ajax({
type: 'POST',
url: '/webui/delete/method',
data: {'web_ui_props_id': web_ui_props_id },
success: function () {
t.removeAttr("disabled").toggleClass("disabled");
t.next().removeAttr("disabled").toggleClass("disabled");
$('<div class="alert alert-dismissible alert-success dynamic-message" role="alert">\n' +
'<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>Success!</div>'
).insertBefore(webui);
},
error: function (response) {
var errors = response.responseJSON ? response.responseJSON['errors'] : [response.responseText];
errors.forEach(function(e){
$('<div class="alert alert-dismissible alert-danger dynamic-message" role="alert">\n' +
'<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>\n' +
e +
'</div>'
).insertBefore(webui);
});
t.removeAttr("disabled").toggleClass("disabled");
t.next().removeAttr("disabled").toggleClass("disabled")
}
});
});
});

View File

@ -30,14 +30,13 @@
</div>
<div class="col-xs-12 col-sm-4">
<div class="form-group">
<textarea class="form-control webui_props_value" cols="40"
<textarea class="form-control required webui_props_value" cols="40"
rows="1">{{ webui_prop.value }}</textarea>
</div>
</div>
<div class="col-sm-12 col-sm-4">
<div class="form-group">
<button class="btn btn-primary btn-green forSave">Save</button>
<span style="display: none;margin-left: 5px;background-color:#0dcc22">Saved.</span>
<button class="btn btn-primary btn-red forDelete">Delete</button>
</div>
</div>

View File

@ -80,25 +80,32 @@ def webui_save(request):
}
api = API(request.session.get('obp'))
status_code = 200
try:
urlpath = '/management/webui_props'
result = api.post(urlpath, payload=payload)
except APIError as err:
status_code = 500
error_once_only(request, APIError(Exception("The OBP-API server is not running or does not respond properly."
"Please check OBP-API server. Details: " + str(err))))
except Exception as err:
status_code = 500
error_once_only(request, "Unknown Error. Details: " + str(err))
if 'code' in result and result['code'] >= 400:
status_code = result['code']
error_once_only(request, result['message'])
msg = 'Submit successfully!'
messages.success(request, msg)
return JsonResponse({'state': True})
errors = [str(m.message) for m in messages.get_messages(request)]
response = JsonResponse({'state': len(errors) == 0, 'errors': errors})
response.status_code = status_code
return response
@csrf_exempt
def webui_delete(request):
web_ui_props_id = request.POST.get('web_ui_props_id')
api = API(request.session.get('obp'))
status_code = 200
try:
urlpath = '/management/webui_props/{}'.format(web_ui_props_id)
result = api.delete(urlpath)
@ -108,7 +115,10 @@ def webui_delete(request):
except Exception as err:
error_once_only(request, "Unknown Error. Details: " + str(err))
if 'code' in result and result['code'] >= 400:
status_code = result['code']
error_once_only(request, result['message'])
msg = 'Submit successfully!'
messages.success(request, msg)
return JsonResponse({'state': True})
errors = [str(m.message) for m in messages.get_messages(request)]
response = JsonResponse({'state': len(errors) == 0, 'errors': errors})
response.status_code = status_code
return response