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:
@@ -90,6 +90,7 @@
|
||||
{% endif %}
|
||||
|
||||
<h3>我拥有的同步目录</h3>
|
||||
<a id="create-repo" class="fright" href="{{ SITE_ROOT }}repo/create/">创建同步目录</a>
|
||||
{% if owned_repos %}
|
||||
<table>
|
||||
<tr>
|
||||
|
50
templates/repo_create.html
Normal file
50
templates/repo_create.html
Normal 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 %}
|
4
urls.py
4
urls.py
@@ -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'),
|
||||
|
49
views.py
49
views.py
@@ -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))
|
||||
|
Reference in New Issue
Block a user