2012-11-15 08:18:37 +00:00
|
|
|
{% load i18n %}
|
2012-08-18 09:25:08 +00:00
|
|
|
//repo-create-form
|
|
|
|
$('#repo-create')
|
|
|
|
.click(function() {
|
|
|
|
$('#repo-create-form').modal({appendTo: '#main', autoResize: true});
|
|
|
|
})
|
|
|
|
.hover(
|
|
|
|
function() {
|
|
|
|
$(this).css({'background-color': '#fff', 'cursor': 'pointer'});
|
|
|
|
},
|
|
|
|
function() {
|
|
|
|
$(this).css('background-color', '#f5f5f5');
|
|
|
|
}
|
|
|
|
);
|
|
|
|
$('#encrypt-switch').click(function () {
|
|
|
|
if ($(this).attr('checked')) {
|
|
|
|
$('#repo-create-form input[type="password"]').attr('disabled', false).removeClass('input-disabled');
|
|
|
|
} else {
|
|
|
|
$('#repo-create-form input[type="password"]').attr('disabled', true).addClass('input-disabled');
|
|
|
|
}
|
|
|
|
});
|
2012-11-15 08:18:37 +00:00
|
|
|
$('#repo-create-form').submit(function() {
|
|
|
|
var passwd = $(this).find('input[name="passwd"]'),
|
|
|
|
passwd_again = $(this).find('input[name="passwd_again"]');
|
2012-08-18 09:25:08 +00:00
|
|
|
|
2012-11-15 08:18:37 +00:00
|
|
|
var form = 'repo-create-form';
|
|
|
|
if (!$.trim($('#repo-name').val())) {
|
|
|
|
apply_form_error(form, "{% trans "Name can't be empty" %}");
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
if (!$.trim($('#repo-desc').val())) {
|
|
|
|
apply_form_error(form, "{% trans "Description can't be empty" %}");
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
if ($('#encrypt-switch').attr('checked')) {
|
|
|
|
if (!$.trim(passwd.val())) {
|
|
|
|
apply_form_error(form, "{% trans "Please enter password" %}");
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
if ($.trim(passwd.val()).length < 3) {
|
|
|
|
apply_form_error(form, "{% trans "Password is too short (minimum is 3 characters)" %}");
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
if ($.trim(passwd.val()).length > 15) {
|
|
|
|
apply_form_error(form, "{% trans "Password is too long (maximum is 15 characters)" %}");
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
if (!$.trim(passwd_again.val())) {
|
|
|
|
apply_form_error(form, "{% trans "Please enter the password again" %}");
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
if ($.trim(passwd.val()) != $.trim(passwd_again.val())) {
|
|
|
|
apply_form_error(form, "{% trans "Passwords don't match" %}");
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
var submit_btn = $(this).find('input[type="submit"]');
|
|
|
|
disable(submit_btn);
|
2012-08-18 09:25:08 +00:00
|
|
|
$.ajax({
|
2012-09-01 09:46:46 +00:00
|
|
|
url: '{{ post_url }}',
|
2012-08-18 09:25:08 +00:00
|
|
|
type: 'POST',
|
|
|
|
dataType: 'json',
|
|
|
|
beforeSend: prepareCSRFToken,
|
|
|
|
data: {
|
|
|
|
'repo_name': $('#repo-name').val(),
|
|
|
|
'repo_desc': $('#repo-desc').val(),
|
2012-09-26 02:49:00 +00:00
|
|
|
{% if create_shared_repo %}
|
|
|
|
'permission': $('#repo-create-form select[name="permission"]').val(),
|
|
|
|
{% endif %}
|
2012-08-18 09:25:08 +00:00
|
|
|
'encryption': $('#encrypt-switch').attr('checked') ? 1 : 0,
|
|
|
|
'passwd': passwd.val(),
|
2012-08-25 07:51:45 +00:00
|
|
|
'passwd_again': passwd_again.val()
|
2012-08-18 09:25:08 +00:00
|
|
|
},
|
|
|
|
success: function(data) {
|
|
|
|
if (data['success']) {
|
|
|
|
location.reload(true);
|
|
|
|
} else {
|
|
|
|
apply_form_error('repo-create-form', data['error']);
|
2012-11-15 08:18:37 +00:00
|
|
|
enable(submit_btn);
|
2012-08-18 09:25:08 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
error: function(data, textStatus, jqXHR) {
|
|
|
|
var errors = $.parseJSON(data.responseText);
|
|
|
|
$.each(errors, function(index, value) {
|
|
|
|
apply_form_error('repo-create-form', value[0]);
|
|
|
|
});
|
2012-11-15 08:18:37 +00:00
|
|
|
enable(submit_btn);
|
2012-08-18 09:25:08 +00:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
return false;
|
|
|
|
});
|