1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-03 16:10:26 +00:00

create repo online

This commit is contained in:
lins05
2012-07-09 20:56:21 +08:00
parent 774b9a3bc6
commit e1471aa472
4 changed files with 103 additions and 1 deletions

View File

@@ -90,6 +90,7 @@
{% endif %}
<h3>我拥有的同步目录</h3>
<a id="create-repo" class="fright" href="{{ SITE_ROOT }}repo/create/">创建同步目录</a>
{% if owned_repos %}
<table>
<tr>

View File

@@ -0,0 +1,50 @@
{% extends "myhome_base.html" %}
{% load seahub_tags %}
{% block info_bar_message %}
{% if request.user.is_authenticated %}
{{ block.super }}
{% else %}
<div id="info-bar">
<span class="info">当前链接会在短期内失效,欢迎您 <a href="http://seafile.com/" target="_blank">加入Seafile </a>体验更多功能。</span>
</div>
{% endif %}
{% endblock %}
{% block main_panel %}
<div>
<div>
<p class="error">{{ error_msg }}</p>
</div>
<form id="create-repo-form" action="{{ SITE_ROOT }}repo/create/" method="post">
<label>新同步目录名称</label><br/>
<input id="repo-name" type="text" name="repo_name" value="{{ repo_name }}" /><br />
<label>简短描述</label><br/>
<textarea id="repo-desc" name="repo_desc">{{ repo_desc }}</textarea>
<div class="repo-create-encryption">
<input type="checkbox" name="encryption" id="encrypt-switch" /><label>加密</label><br />
<label>密码</label><br />
<input type="password" name="passwd" disabled="disabled" id="passwd" class="input-disabled" /><br />
<label>再次输入密码</label><br />
<input type="password" name="passwd_again" disabled="disabled" id="passwd-again" class="input-disabled" />
</div>
<input type="submit" id="repo-create-submit" value="提交" class="submit" />
</form>
</div>
{% endblock %}
{% block extra_script %}
<script type="text/javascript">
$('#encrypt-switch').click(function () {
if ($(this).attr('checked')) {
$('[type="password"]').attr('disabled', false);
$('[type="password"]').removeClass('input-disabled');
} else {
$('[type="password"]').attr('disabled', true);
$('[type="password"]').addClass('input-disabled');
}
});
</script>
{% endblock %}

View File

@@ -11,7 +11,8 @@ from seahub.views import root, peers, myhome, \
repo_remove_share, repo_download, org_info, repo_view_file, \
seafile_access_check, back_local, repo_history_changes, \
repo_upload_file, file_upload_progress, file_upload_progress_page, get_subdir, file_move, \
repo_new_dir, repo_rename_file, validate_filename
repo_new_dir, repo_rename_file, validate_filename, \
repo_create
from seahub.notifications.views import notification_list
from seahub.share.views import share_admin
from seahub.group.views import group_list
@@ -45,6 +46,7 @@ urlpatterns = patterns('',
(r'^file_upload_progress/$', file_upload_progress),
(r'^file_upload_progress_page/$', file_upload_progress_page),
(r'^repo/new_dir/$', repo_new_dir),
(r'^repo/create/$', repo_create),
(r'^repo/upload_check/$', validate_filename),
(r'^repo/file_rename/$', repo_rename_file),
url(r'^repo/upload_file/(?P<repo_id>[^/]+)/$', repo_upload_file, name='repo_upload_file'),

View File

@@ -1514,3 +1514,52 @@ def validate_filename(request):
content_type = 'application/json; charset=utf-8'
return HttpResponse(json.dumps(result), content_type=content_type)
@login_required
def repo_create(request):
############ GET ############
if request.method == 'GET':
return render_to_response('repo_create.html', {
}, context_instance=RequestContext(request))
############ POST ############
repo_name = request.POST.get("repo_name")
repo_desc = request.POST.get("repo_desc")
encrypted = request.POST.get("encryption")
passwd = request.POST.get("passwd")
passwd_again = request.POST.get("passwd_again")
def render_repo_create_error(error_msg):
return render_to_response('repo_create.html', {
'error_msg': error_msg,
'repo_name': repo_name,
'repo_desc': repo_desc,
}, context_instance=RequestContext(request))
error_msg = ""
if not repo_name:
error_msg = u"目录名不能为空"
elif not repo_desc:
error_msg = u"描述不能为空"
elif encrypted == 'on':
if not passwd:
error_msg = u"密码不能为空"
elif not passwd_again:
error_msg = u"确认密码不能为空"
elif len(passwd) > 15:
error_msg = u"密码太长"
elif passwd != passwd_again:
error_msg = u"两次输入的密码不相同"
if error_msg:
return render_repo_create_error(error_msg)
try:
seafserv_threaded_rpc.create_repo(repo_name, repo_desc,
request.user.username, passwd)
except:
error_msg = u"两次输入的密码不相同"
return render_repo_create_error(error_msg)
else:
return HttpResponseRedirect(reverse(myhome))