1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-20 10:58:33 +00:00
This commit is contained in:
imwhatiam
2014-04-03 17:31:43 +08:00
parent 02a9b795e0
commit 2307cb865d
4 changed files with 100 additions and 132 deletions

View File

@@ -24,7 +24,7 @@
</div>
</div>
<form id="add-user-form" action="" method="post" class="hide">{% csrf_token %}
<form id="add-user-form" action="" method="post" class="hide">{% csrf_token %}
<h3>{% trans "Add user" %}</h3>
<label for="id_email">{% trans "Email" %}</label><br />
<input type="text" name="email" id="id_email" class="input" /><br />
@@ -34,10 +34,25 @@
<input type="password" name="password2" id="id_password2" class="input" /><br />
<p class="error hide"></p>
<input type="submit" value="{% trans "Submit" %}" class="submit" />
</form>
</form>
<form id="add-admin-form" method="post" name="add-admin-form" class="tab-popup hide">{% csrf_token %}
<h3 class="hd">{% trans "Add admins"%}</h3>
<div id="add-admin-tabs" class="tab-popup-tabs">
<ul class="tab-popup-tabs-nav">
<li class="tab"><a href="#enter" class="a">{% trans 'Enter' %}</a></li>
</ul>
<div id="enter">
<textarea id="added-member-name" name="user_email" placeholder="{% trans "emails, separated by ','" %}"></textarea><br />
<p class="tip">{% trans "Tip: the emails should be the users already added."%}</p>
</div>
</div>
<div class="bot">
<p class="error hide"></p>
<input type="submit" value="{% trans "Submit"%}" />
</div>
</form>
{% include "sysadmin/useradmin_table.html"%}
{% include "sysadmin/useradmin_add_form.html" %}
<div id="activate-msg" class="hide">
<p>{% trans "Activating..., please wait" %}</p>
@@ -45,7 +60,7 @@
</div>
{% endblock %}
{% block extra_script %}{{block.super}}
{% block extra_script %}
<script type="text/javascript">
var cur_tab = $('.ui-tabs-selected .a');
@@ -122,7 +137,63 @@ $('#add-user-form').submit(function() {
return false;
});
var user_list = [], user_email;
{% for user in users %}
{% if not user.is_self %}
{% if not user.is_staff %}
user_email = '{{ user.email }}';
user_list.push({value:user_email, label:user_email});
{% endif %}
{% endif %}
{% endfor %}
$('#add-admin-btn').click(function() {
var form = $("#add-admin-form");
form.modal({appendTo: "#main", focus:false});
$('#simplemodal-container').css({'height':'auto', 'padding':0});
$('#add-admin-tabs').tabs();
addAutocomplete('#added-member-name', '#enter', user_list);
});
$('#add-admin-form').submit(function() {
var form = $(this),
cur_tab_id = $('.ui-tabs-selected a', form).attr('href'),
post_data = '',
input = $('[name="user_email"]', form);
post_data = input.val();
if (!post_data) {
apply_form_error(form.attr('id'), '{% trans "Please enter emails, or select some." %}');
return false;
}
var submit_btn = $('[type="submit"]', form);
disable(submit_btn);
$.ajax({
url: '{% url 'batch_user_make_admin' %}',
type: 'POST',
dataType: 'json',
cache: false,
beforeSend: prepareCSRFToken,
data: {
'set_admin_emails': post_data
},
success: function(data) {
location.reload('true');
},
error: function(data, textStatus, jqXHR) {
var errors = $.parseJSON(data.responseText);
$.each(errors, function(index, value) {
apply_form_error(form.attr('id'), value);
});
enable(submit_btn);
}
});
return false;
});
{% include "sysadmin/useradmin_js.html" %}
{% include "sysadmin/useradmin_add_js.html" %}
</script>
{% endblock %}

View File

@@ -1,43 +0,0 @@
{% load i18n avatar_tags %}
<form id="add-admin-form" method="post" name="add-admin-form" class="tab-popup hide">{% csrf_token %}
<h3 class="hd">{% trans "Add admins"%}</h3>
<div id="add-admin-tabs" class="tab-popup-tabs">
<ul class="tab-popup-tabs-nav">
<li class="tab"><a href="#enter" class="a">{% trans 'Enter' %}</a></li>
{%comment%}
<li class="tab"><a href="#user-options" class="a">{% trans 'Users' %}</a></li>
{%endcomment%}
</ul>
<div id="enter">
<textarea id="added-member-name" name="user_email" placeholder="{% trans "emails, separated by ','" %}"></textarea><br />
{% if cloud_mode and not org %}
<p class="tip">{% trans "Tip: an invitation will be sent if the email is not registered."%}</p>
{% else %}
<p class="tip">{% trans "Tip: the emails should be the users already added."%}</p>
{% endif %}
</div>
{%comment%}
<div id="user-options" class="hide">
<ul class="option-list">
{% for user in users %}
{% if not user.is_self %}
{% if not user.is_staff %}
<li>
<label class="checkbox-label">
<span class="checkbox"><input type="checkbox" name="user" value="{{ user.email }}" class="checkbox-orig" /></span>
{% avatar user.email 20 %} <span class="checkbox-option">{{ user.email }}</span>
</label>
</li>
{% endif %}
{% endif %}
{% endfor %}
</ul>
</div>
{%endcomment%}
</div>
<div class="bot">
<p class="error hide"></p>
<input type="submit" value="{% trans "Submit"%}" />
</div>
</form>

View File

@@ -1,66 +0,0 @@
{% load i18n %}
var user_list = [], user_email;
{% for user in users %}
{% if not user.is_self %}
{% if not user.is_staff %}
user_email = '{{ user.email }}';
user_list.push({value:user_email, label:user_email});
{% endif %}
{% endif %}
{% endfor %}
$('#add-admin-btn').click(function() {
var form = $("#add-admin-form");
form.modal({appendTo: "#main", focus:false});
$('#simplemodal-container').css({'height':'auto', 'padding':0});
$('#add-admin-tabs').tabs();
addAutocomplete('#added-member-name', '#enter', user_list);
});
$('#add-admin-form').submit(function() {
var form = $(this),
cur_tab_id = $('.ui-tabs-selected a', form).attr('href'),
post_data = '',
input = $('[name="user_email"]', form);
switch(cur_tab_id) {
case '#enter':
post_data = input.val();
break;
case '#user-options':
$(cur_tab_id + ' .checkbox-checked .checkbox-orig').each(function() {
post_data += $(this).val() + ',';
});
input.val(post_data);
}
if (!post_data) {
apply_form_error(form.attr('id'), '{% trans "Please enter emails, or select some." %}');
return false;
}
var submit_btn = $('[type="submit"]', form);
disable(submit_btn);
$.ajax({
url: '{% url 'batch_user_make_admin' %}',
type: 'POST',
dataType: 'json',
cache: false,
beforeSend: prepareCSRFToken,
data: {
'set_admin_emails': post_data
},
success: function(data) {
location.reload('true');
},
error: function(data, textStatus, jqXHR) {
var errors = $.parseJSON(data.responseText);
$.each(errors, function(index, value) {
apply_form_error(form.attr('id'), value);
});
enable(submit_btn);
}
});
return false;
});

View File

@@ -718,17 +718,23 @@ def batch_user_make_admin(request):
set_admin_emails = request.POST.get('set_admin_emails')
set_admin_emails = string2list(set_admin_emails)
try:
success = []
failed = []
for email in set_admin_emails:
print email
try:
user = User.objects.get(email=email)
user.is_staff = True
user.save()
result['success'] = True
messages.success(request, _(u'Successfully patch set admin'))
return HttpResponse(json.dumps(result), content_type=content_type)
except Exception, e:
result['success'] = False
messages.error(request, _(e))
return HttpResponse(json.dumps(result), status=500, content_type=content_type)
success.append(email)
except User.DoesNotExist:
failed.append(email)
for item in success:
messages.success(request, _(u'Successfully set %s as admin') % item)
for item in failed:
messages.error(request, _(u'Failed set %s as admin') % item)
result['success'] = True
return HttpResponse(json.dumps(result), content_type=content_type)