mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-25 14:50:29 +00:00
Enable user to choose default library
This commit is contained in:
@@ -57,11 +57,33 @@
|
|||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="setting-item">
|
||||||
|
<h3>{% trans "Default Library Setting" %}</h3>
|
||||||
|
{% if default_repo %}
|
||||||
|
<p>Your default library is <a href="{% url 'repo' default_repo.id %}">{{default_repo.name}}</a>.</p>
|
||||||
|
{% else %}
|
||||||
|
<p>You do not have a default library.</p>
|
||||||
|
{% endif %}
|
||||||
|
<button id="default-lib">{% trans "Choose Default Library" %}</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="setting-item">
|
<div class="setting-item">
|
||||||
<h3>{% trans "Delete Account" %}</h3>
|
<h3>{% trans "Delete Account" %}</h3>
|
||||||
<p>{% trans "This operation will not be reverted. Please think twice!" %}</p>
|
<p>{% trans "This operation will not be reverted. Please think twice!" %}</p>
|
||||||
<button id="account-delete-btn" data-url="{% url 'delete_user_account' request.user.username %}">{% trans "Delete" %}</button>
|
<button id="account-delete-btn" data-url="{% url 'delete_user_account' request.user.username %}">{% trans "Delete" %}</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<form id="default-lib-form" action="{% url 'default_repo' %}" method="post" class="file-choose-form hide">{% csrf_token %}
|
||||||
|
<h3>{% trans "Choose default library:" %}</h3>
|
||||||
|
<div class="dir-tree-cont">
|
||||||
|
<div id="repos-dirs"></div>
|
||||||
|
</div>
|
||||||
|
<input type="hidden" name="dst_repo" value="" />
|
||||||
|
<p class="error hide">{% trans "Please click and choose a library."%}</p>
|
||||||
|
<input type="submit" value="{% trans "Submit"%}" class="submit" />
|
||||||
|
<button class="simplemodal-close">{% trans "Cancel"%}</button>
|
||||||
|
</form>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block extra_script %}
|
{% block extra_script %}
|
||||||
@@ -72,5 +94,26 @@ addConfirmTo($('#account-delete-btn'), {
|
|||||||
'title' : '{% trans "Delete Account" %}',
|
'title' : '{% trans "Delete Account" %}',
|
||||||
'con' : '{% trans "Really want to delete your account?" %}'
|
'con' : '{% trans "Really want to delete your account?" %}'
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var all_repos = [];
|
||||||
|
{% for a_repo in owned_repos %}
|
||||||
|
all_repos.push({
|
||||||
|
'data': '{{ a_repo.props.name }}',
|
||||||
|
'attr': {'repo_id': '{{ a_repo.props.id }}', 'root_node': true},
|
||||||
|
});
|
||||||
|
{% endfor %}
|
||||||
|
$('#default-lib').click(function() {
|
||||||
|
var form = $('#default-lib-form'),
|
||||||
|
file_tree = new FileTree();
|
||||||
|
form.modal({appendTo:'#main', autoResize:true, focus:false});
|
||||||
|
file_tree.renderDirTree($('#repos-dirs').data('site_root', '{{SITE_ROOT}}'), form, all_repos);
|
||||||
|
});
|
||||||
|
$('#default-lib-form').submit(function() {
|
||||||
|
var dst_repo = $('[name="dst_repo"]', $(this)).val();
|
||||||
|
if (!$.trim(dst_repo)) {
|
||||||
|
$('.error', form).removeClass('hide');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@@ -3,8 +3,10 @@ from django.conf.urls.defaults import *
|
|||||||
urlpatterns = patterns('seahub.profile.views',
|
urlpatterns = patterns('seahub.profile.views',
|
||||||
# url(r'^list_user/$', 'list_userids', name="list_userids"),
|
# url(r'^list_user/$', 'list_userids', name="list_userids"),
|
||||||
url(r'^$', 'edit_profile', name="edit_profile"),
|
url(r'^$', 'edit_profile', name="edit_profile"),
|
||||||
url(r'^(?P<username_or_id>[^/]+)/$', 'user_profile', name="user_profile"),
|
|
||||||
url(r'^(?P<user>[^/]+)/get/$', 'get_user_profile', name="get_user_profile"),
|
url(r'^(?P<user>[^/]+)/get/$', 'get_user_profile', name="get_user_profile"),
|
||||||
url(r'^(?P<user>[^/]+)/delete/$', 'delete_user_account', name="delete_user_account"),
|
url(r'^(?P<user>[^/]+)/delete/$', 'delete_user_account', name="delete_user_account"),
|
||||||
|
url(r'^default-repo/$', 'default_repo', name="default_repo"),
|
||||||
|
|
||||||
|
url(r'^(?P<username_or_id>[^/]+)/$', 'user_profile', name="user_profile"),
|
||||||
# url(r'^logout/$', 'logout_relay', name="logout_relay"),
|
# url(r'^logout/$', 'logout_relay', name="logout_relay"),
|
||||||
)
|
)
|
||||||
|
@@ -8,7 +8,8 @@ from django.template import Context, RequestContext
|
|||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
|
|
||||||
from seaserv import ccnet_rpc, ccnet_threaded_rpc, get_binding_peerids
|
from seaserv import ccnet_rpc, ccnet_threaded_rpc, get_binding_peerids, \
|
||||||
|
seafile_api
|
||||||
from pysearpc import SearpcError
|
from pysearpc import SearpcError
|
||||||
|
|
||||||
from forms import ProfileForm
|
from forms import ProfileForm
|
||||||
@@ -67,10 +68,19 @@ def edit_profile(request):
|
|||||||
|
|
||||||
sub_lib_enabled = UserOptions.objects.is_sub_lib_enabled(username)
|
sub_lib_enabled = UserOptions.objects.is_sub_lib_enabled(username)
|
||||||
|
|
||||||
|
default_repo_id = UserOptions.objects.get_default_repo(username)
|
||||||
|
if default_repo_id:
|
||||||
|
default_repo = seafile_api.get_repo(default_repo_id)
|
||||||
|
else:
|
||||||
|
default_repo = None
|
||||||
|
owned_repos = seafile_api.get_owned_repo_list(username)
|
||||||
|
|
||||||
return render_to_response('profile/set_profile.html', {
|
return render_to_response('profile/set_profile.html', {
|
||||||
'form': form,
|
'form': form,
|
||||||
'server_crypto': server_crypto,
|
'server_crypto': server_crypto,
|
||||||
"sub_lib_enabled": sub_lib_enabled,
|
"sub_lib_enabled": sub_lib_enabled,
|
||||||
|
'default_repo': default_repo,
|
||||||
|
'owned_repos': owned_repos,
|
||||||
}, context_instance=RequestContext(request))
|
}, context_instance=RequestContext(request))
|
||||||
|
|
||||||
def user_profile(request, username_or_id):
|
def user_profile(request, username_or_id):
|
||||||
@@ -164,3 +174,24 @@ def delete_user_account(request, user):
|
|||||||
user = User.objects.get(email=user)
|
user = User.objects.get(email=user)
|
||||||
user.delete()
|
user.delete()
|
||||||
return HttpResponseRedirect(settings.LOGIN_URL)
|
return HttpResponseRedirect(settings.LOGIN_URL)
|
||||||
|
|
||||||
|
@login_required
|
||||||
|
def default_repo(request):
|
||||||
|
"""Handle post request to create default repo for user.
|
||||||
|
"""
|
||||||
|
if request.method != 'POST':
|
||||||
|
raise Http404
|
||||||
|
|
||||||
|
repo_id = request.POST.get('dst_repo', '')
|
||||||
|
referer = request.META.get('HTTP_REFERER', None)
|
||||||
|
next = settings.SITE_ROOT if referer is None else referer
|
||||||
|
|
||||||
|
repo = seafile_api.get_repo(repo_id)
|
||||||
|
if repo is None:
|
||||||
|
messages.error(request, _('Failed to set default library.'))
|
||||||
|
return HttpResponseRedirect(next)
|
||||||
|
|
||||||
|
username = request.user.username
|
||||||
|
UserOptions.objects.set_default_repo(username, repo.id)
|
||||||
|
messages.success(request, _('Successfully set "%s" as your default library.') % repo.name)
|
||||||
|
return HttpResponseRedirect(next)
|
||||||
|
Reference in New Issue
Block a user