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 %}
|
{% endif %}
|
||||||
|
|
||||||
<h3>我拥有的同步目录</h3>
|
<h3>我拥有的同步目录</h3>
|
||||||
|
<a id="create-repo" class="fright" href="{{ SITE_ROOT }}repo/create/">创建同步目录</a>
|
||||||
{% if owned_repos %}
|
{% if owned_repos %}
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<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, \
|
repo_remove_share, repo_download, org_info, repo_view_file, \
|
||||||
seafile_access_check, back_local, repo_history_changes, \
|
seafile_access_check, back_local, repo_history_changes, \
|
||||||
repo_upload_file, file_upload_progress, file_upload_progress_page, get_subdir, file_move, \
|
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.notifications.views import notification_list
|
||||||
from seahub.share.views import share_admin
|
from seahub.share.views import share_admin
|
||||||
from seahub.group.views import group_list
|
from seahub.group.views import group_list
|
||||||
@@ -45,6 +46,7 @@ urlpatterns = patterns('',
|
|||||||
(r'^file_upload_progress/$', file_upload_progress),
|
(r'^file_upload_progress/$', file_upload_progress),
|
||||||
(r'^file_upload_progress_page/$', file_upload_progress_page),
|
(r'^file_upload_progress_page/$', file_upload_progress_page),
|
||||||
(r'^repo/new_dir/$', repo_new_dir),
|
(r'^repo/new_dir/$', repo_new_dir),
|
||||||
|
(r'^repo/create/$', repo_create),
|
||||||
(r'^repo/upload_check/$', validate_filename),
|
(r'^repo/upload_check/$', validate_filename),
|
||||||
(r'^repo/file_rename/$', repo_rename_file),
|
(r'^repo/file_rename/$', repo_rename_file),
|
||||||
url(r'^repo/upload_file/(?P<repo_id>[^/]+)/$', repo_upload_file, name='repo_upload_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'
|
content_type = 'application/json; charset=utf-8'
|
||||||
return HttpResponse(json.dumps(result), content_type=content_type)
|
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