diff --git a/templates/repo.html b/templates/repo.html
index 61ffa90a36..859dc63b95 100644
--- a/templates/repo.html
+++ b/templates/repo.html
@@ -398,16 +398,14 @@ $('#repo-setting-form').submit(function() {
success: function(data) {
if (data['success']) {
location.reload(true);
- } else {
- apply_form_error('repo-setting-form', data['error']);
- enable(submit_btn);
}
},
- error: function(data, textStatus, jqXHR) {
- var errors = $.parseJSON(data.responseText);
- $.each(errors, function(index, value) {
- apply_form_error('repo-setting-form', value[0]);
- });
+ error: function(jqXHR, textStatus, errorThrown) {
+ if (jqXHR.responseText) {
+ apply_form_error('repo-setting-form', $.parseJSON(jqXHR.responseText).error);
+ } else {
+ apply_form_error('repo-setting-form', '{% trans "Failed. Please check the network." %}');
+ }
enable(submit_btn);
}
});
@@ -764,76 +762,63 @@ function trimFilename(name, n) {
return str;
}
-$('#add-new-file-form').submit(function() {
- var new_file = $(this).find('input[name="new_file_name"]').val();
- if (!$.trim(new_file)) {
- apply_form_error('add-new-file-form', "{% trans "File name can't be empty" %}");
- return false;
- }
+$('#add-new-file-form, #add-new-dir-form, #rename-form').submit(function() {
+ var form = $(this);
+ var form_id = form.attr('id');
+ var post_url = '';
+ var post_data = {
+ 'repo_id': form.find('input[name="repo_id"]').val(),
+ 'parent_dir': form.find('input[name="parent_dir"]').val(),
+ };
- var submit_btn = $(this).children('input[type="submit"]');
- disable(submit_btn);
- $.ajax({
- url: '{% url 'views.repo_new_file' %}',
- type: 'POST',
- dataType: 'json',
- beforeSend: prepareCSRFToken,
- data: {
- 'repo_id': $('#add-new-file-form input[name="repo_id"]').val(),
- 'parent_dir': $('#add-new-file-form input[name="parent_dir"]').val(),
- 'new_file_name': new_file
- },
- success: function(data) {
- if (data['success']) {
- location.reload(true);
- } else {
- apply_form_error('add-new-file-form', data['error']);
- enable(submit_btn);
- }
- },
- error: function(data, textStatus, jqXHR) {
- var errors = $.parseJSON(data.responseText);
- $.each(errors, function(index, value) {
- apply_form_error('add-new-file-form', value[0]);
- });
- enable(submit_btn);
+ if (form_id == 'add-new-file-form') {
+ var new_file =$.trim(form.find('input[name="new_file_name"]').val());
+ if (!new_file) {
+ apply_form_error(form_id, "{% trans "It can't be blank." %}");
+ return false;
}
- });
- return false;
-});
-
-$('#add-new-dir-form').submit(function() {
- var new_dir = $(this).find('input[name="new_dir_name"]').val();
- if (!$.trim(new_dir)) {
- apply_form_error('add-new-dir-form', "{% trans "Directory name can not be empty" %}");
- return false;
+ post_url = '{% url 'views.repo_new_file' %}';
+ post_data['new_file_name'] = new_file;
+ } else if (form_id == 'add-new-dir-form') {
+ var new_dir = $.trim(form.find('input[name="new_dir_name"]').val());
+ if (!new_dir) {
+ apply_form_error(form_id, "{% trans "It can't be blank." %}");
+ return false;
+ }
+ post_url = '{% url 'views.repo_new_dir' %}';
+ post_data['new_dir_name'] = new_dir;
+ } else {
+ var new_name = $.trim(form.find('input[name="newname"]').val());
+ if (!new_name) {
+ apply_form_error(form_id, "{% trans "It can't be blank." %}");
+ return false;
+ }
+ post_url = '{% url 'views.repo_rename_file' %}';
+ post_data['oldname'] = form.find('input[name="oldname"]').val();
+ post_data['newname'] = new_name
}
- var submit_btn = $(this).children('input[type="submit"]');
+ var submit_btn = form.children('input[type="submit"]');
disable(submit_btn);
$.ajax({
- url: '{% url 'views.repo_new_dir' %}',
+ url: post_url,
type: 'POST',
dataType: 'json',
beforeSend: prepareCSRFToken,
- data: {
- 'repo_id': $('#add-new-dir-form input[name="repo_id"]').val(),
- 'parent_dir': $('#add-new-dir-form input[name="parent_dir"]').val(),
- 'new_dir_name': new_dir
- },
+ data: post_data,
success: function(data) {
if (data['success']) {
location.reload(true);
- } else {
- apply_form_error('add-new-dir-form', data['error']);
- enable(submit_btn);
}
},
- error: function(data, textStatus, jqXHR) {
- var errors = $.parseJSON(data.responseText);
- $.each(errors, function(index, value) {
- apply_form_error('add-new-dir-form', value[0]);
- });
+ error: function(xhr, textStatus, errorThrown) {
+ var err;
+ if (xhr.responseText) {
+ err = $.parseJSON(xhr.responseText).error;
+ } else {
+ err = '{% trans "Failed. Please check the network." %}';
+ }
+ apply_form_error(form_id, err);
enable(submit_btn);
}
});
@@ -912,47 +897,6 @@ $('#mv-dir-list h5').click(function() {
next.addClass('hide');
}
});
-
-$('#rename-form').submit(function() {
- var new_name = $(this).find('input[name="newname"]').val();
- if (!$.trim(new_name)) {
- apply_form_error('rename-form', "{% trans "File name can't be empty" %}");
- return false;
- }
-
- var submit_btn = $(this).children('input[type="submit"]');
- disable(submit_btn);
-
- $.ajax({
- url: '{% url 'views.repo_rename_file' %}',
- type: 'POST',
- dataType: 'json',
- cache: false,
- beforeSend: prepareCSRFToken,
- data: {
- 'repo_id': $('#rename-form input[name="repo_id"]').val(),
- 'parent_dir': $('#rename-form input[name="parent_dir"]').val(),
- 'oldname': $('#rename-form input[name="oldname"]').val(),
- 'newname': new_name
- },
- success: function(data) {
- if (data['success']) {
- location.reload(true);
- } else {
- apply_form_error('rename-form', data['error']);
- enable(submit_btn);
- }
- },
- error: function(data, textStatus, jqXHR) {
- var errors = $.parseJSON(data.responseText);
- $.each(errors, function(index, value) {
- apply_form_error('rename-form', value[0]);
- });
- enable(submit_btn);
- }
- });
- return false;
-});
{% if path == '/' %}
{% include "snippets/list_commit_detail.html" %}
{% endif %}
diff --git a/views.py b/views.py
index 23d77bf1e9..7e3e42f588 100644
--- a/views.py
+++ b/views.py
@@ -535,7 +535,6 @@ def repo_recycle_view(request, repo_id):
@ctx_switch_required
def repo_save_settings(request):
if request.method == 'POST':
- ret = {}
content_type = 'application/json; charset=utf-8'
form = RepoSettingForm(request.POST)
@@ -545,16 +544,14 @@ def repo_save_settings(request):
res = set_repo_history_limit(repo_id, days)
if res == 0:
- ret['success'] = True
+ messages.success(request, _(u'Settings saved.'))
+ return HttpResponse(json.dumps({'success': True}), content_type=content_type)
else:
- ret['success'] = False
- ret['error'] = _(u'Failed to save settings on server')
+ return HttpResponse(json.dumps({'error': _(u'Failed to save settings on server')}),
+ status=400, content_type=content_type)
else:
- ret['success'] = False
- ret['error'] = str(form.errors.values()[0])
-
- return HttpResponse(json.dumps(ret),
- content_type=content_type)
+ return HttpResponse(json.dumps({'error': str(form.errors.values()[0])}),
+ status=400, content_type=content_type)
def upload_error_msg (code):
err_msg = _(u'Internal Server Error')
@@ -2172,11 +2169,11 @@ def repo_new_dir(request):
user = request.user.username
else:
result['error'] = str(form.errors.values()[0])
- return HttpResponse(json.dumps(result), content_type=content_type)
+ return HttpResponse(json.dumps(result), status=400, content_type=content_type)
if get_user_permission(request, repo_id) != 'rw':
- result['error'] = 'Permission denied'
- return HttpResponse(json.dumps(result), content_type=content_type)
+ result['error'] = _('Permission denied')
+ return HttpResponse(json.dumps(result), status=400, content_type=content_type)
new_dir_name = check_filename_with_rename(repo_id, parent_dir, new_dir_name)
@@ -2184,12 +2181,11 @@ def repo_new_dir(request):
seafserv_threaded_rpc.post_dir(repo_id, parent_dir, new_dir_name, user)
except Exception, e:
result['error'] = str(e)
- return HttpResponse(json.dumps(result), content_type=content_type)
+ return HttpResponse(json.dumps(result), status=400, content_type=content_type)
url = reverse('repo', args=[repo_id]) + \
('?p=%s' % urllib2.quote(parent_dir.encode('utf-8')))
- return HttpResponse(json.dumps({'success': True}),
- content_type=content_type)
+ return HttpResponse(json.dumps({'success': True}), content_type=content_type)
@login_required
def repo_new_file(request):
@@ -2204,11 +2200,11 @@ def repo_new_file(request):
user = request.user.username
else:
result['error'] = str(form.errors.values()[0])
- return HttpResponse(json.dumps(result), content_type=content_type)
+ return HttpResponse(json.dumps(result), status=400, content_type=content_type)
if get_user_permission(request, repo_id) != 'rw':
- result['error'] = 'Permission denied'
- return HttpResponse(json.dumps(result), content_type=content_type)
+ result['error'] = _('Permission denied')
+ return HttpResponse(json.dumps(result), status=400, content_type=content_type)
new_file_name = check_filename_with_rename(repo_id, parent_dir,
new_file_name)
@@ -2218,12 +2214,11 @@ def repo_new_file(request):
new_file_name, user)
except Exception, e:
result['error'] = str(e)
- return HttpResponse(json.dumps(result), content_type=content_type)
+ return HttpResponse(json.dumps(result), status=400, content_type=content_type)
url = reverse('repo', args=[repo_id]) + \
('?p=%s' % urllib2.quote(parent_dir.encode('utf-8')))
- return HttpResponse(json.dumps({'success': True}),
- content_type=content_type)
+ return HttpResponse(json.dumps({'success': True}), content_type=content_type)
@login_required
def repo_rename_file(request):
@@ -2239,11 +2234,11 @@ def repo_rename_file(request):
user = request.user.username
else:
result['error'] = str(form.errors.values()[0])
- return HttpResponse(json.dumps(result), content_type=content_type)
+ return HttpResponse(json.dumps(result), status=400, content_type=content_type)
if get_user_permission(request, repo_id) != 'rw':
- result['error'] = 'Permission denied'
- return HttpResponse(json.dumps(result), content_type=content_type)
+ result['error'] = _('Permission denied')
+ return HttpResponse(json.dumps(result), status=400, content_type=content_type)
if newname == oldname:
return HttpResponse(json.dumps({'success': True}),
@@ -2254,16 +2249,15 @@ def repo_rename_file(request):
try:
seafserv_threaded_rpc.rename_file (repo_id, parent_dir,
oldname, newname, user)
- messages.success(request, _(u'Successfully rename %(old)s to %(new)s') % \
+ messages.success(request, _(u'Successfully renamed %(old)s to %(new)s') % \
{"old":oldname, "new":newname})
except Exception, e:
result['error'] = str(e)
- return HttpResponse(json.dumps(result), content_type=content_type)
+ return HttpResponse(json.dumps(result), status=400, content_type=content_type)
url = reverse('repo', args=[repo_id]) + \
('?p=%s' % urllib2.quote(parent_dir.encode('utf-8')))
- return HttpResponse(json.dumps({'success': True}),
- content_type=content_type)
+ return HttpResponse(json.dumps({'success': True}), content_type=content_type)
@login_required
def validate_filename(request):