1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-20 19:08:21 +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,20 +24,35 @@
</div> </div>
</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> <h3>{% trans "Add user" %}</h3>
<label for="id_email">{% trans "Email" %}</label><br /> <label for="id_email">{% trans "Email" %}</label><br />
<input type="text" name="email" id="id_email" class="input" /><br /> <input type="text" name="email" id="id_email" class="input" /><br />
<label for="id_password1">{% trans "Password" %}</label><br /> <label for="id_password1">{% trans "Password" %}</label><br />
<input type="password" name="password1" id="id_password1" class="input" /><br /> <input type="password" name="password1" id="id_password1" class="input" /><br />
<label for="id_password2">{% trans "Confirm Password" %}</label><br /> <label for="id_password2">{% trans "Confirm Password" %}</label><br />
<input type="password" name="password2" id="id_password2" class="input" /><br /> <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 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> <p class="error hide"></p>
<input type="submit" value="{% trans "Submit" %}" class="submit" /> <input type="submit" value="{% trans "Submit"%}" />
</form> </div>
</form>
{% include "sysadmin/useradmin_table.html"%} {% include "sysadmin/useradmin_table.html"%}
{% include "sysadmin/useradmin_add_form.html" %}
<div id="activate-msg" class="hide"> <div id="activate-msg" class="hide">
<p>{% trans "Activating..., please wait" %}</p> <p>{% trans "Activating..., please wait" %}</p>
@@ -45,7 +60,7 @@
</div> </div>
{% endblock %} {% endblock %}
{% block extra_script %}{{block.super}} {% block extra_script %}
<script type="text/javascript"> <script type="text/javascript">
var cur_tab = $('.ui-tabs-selected .a'); var cur_tab = $('.ui-tabs-selected .a');
@@ -122,7 +137,63 @@ $('#add-user-form').submit(function() {
return false; 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_js.html" %}
{% include "sysadmin/useradmin_add_js.html" %}
</script> </script>
{% endblock %} {% 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 = request.POST.get('set_admin_emails')
set_admin_emails = string2list(set_admin_emails) set_admin_emails = string2list(set_admin_emails)
try: success = []
for email in set_admin_emails: failed = []
print email
for email in set_admin_emails:
try:
user = User.objects.get(email=email) user = User.objects.get(email=email)
user.is_staff = True user.is_staff = True
user.save() user.save()
result['success'] = True success.append(email)
messages.success(request, _(u'Successfully patch set admin')) except User.DoesNotExist:
return HttpResponse(json.dumps(result), content_type=content_type) failed.append(email)
except Exception, e:
result['success'] = False for item in success:
messages.error(request, _(e)) messages.success(request, _(u'Successfully set %s as admin') % item)
return HttpResponse(json.dumps(result), status=500, content_type=content_type) 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)