1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-01 07:01:12 +00:00

[group settings] complete 'import members'

This commit is contained in:
llj
2016-01-09 16:50:46 +08:00
parent ec6679e448
commit 0c86fb539c
3 changed files with 24 additions and 4 deletions

View File

@@ -960,8 +960,8 @@
<h3>{% trans "Import group members from a CSV file" %}</h3> <h3>{% trans "Import group members from a CSV file" %}</h3>
<input type="file" name="file" /> <input type="file" name="file" />
<p class="tip">{% trans "File format: user@mail.com" %}</p> <p class="tip">{% trans "File format: user@mail.com" %}</p>
<p class="error hide">{% trans "Please choose a CSV file" %}</p>
<button type="submit" class="submit">{% trans "Submit" %}</button> <button type="submit" class="submit">{% trans "Submit" %}</button>
<p class="error hide"></p>
</form> </form>
</script> </script>
<script type="text/template" id="group-manage-members-tmpl"> <script type="text/template" id="group-manage-members-tmpl">

View File

@@ -246,7 +246,6 @@ define([
}); });
}, },
// TODO: finish it after the backend py is done.
importMembers: function() { importMembers: function() {
var _this = this; var _this = this;
var $form = $(this.importMembersTemplate()); var $form = $(this.importMembersTemplate());
@@ -255,8 +254,9 @@ define([
$form.submit(function() { $form.submit(function() {
var $fileInput = $('[name=file]', $form)[0]; var $fileInput = $('[name=file]', $form)[0];
var $error = $('.error', $form);
if (!$fileInput.files.length) { if (!$fileInput.files.length) {
$('.error', $form).removeClass('hide'); $error.html(gettext("Please choose a CSV file")).removeClass('hide');
return false; return false;
} }
@@ -278,8 +278,27 @@ define([
contentType: false, // tell jQuery not to set contentType contentType: false, // tell jQuery not to set contentType
beforeSend: Common.prepareCSRFToken, beforeSend: Common.prepareCSRFToken,
success: function(data) { success: function(data) {
if (data.failed.length > 0) {
var err_msg = '';
$(data.failed).each(function(index, item) {
err_msg += item.email + ': ' + item.error_msg + '<br />';
});
$error.html(err_msg).removeClass('hide');
Common.enableButton($submitBtn);
} else {
$.modal.close();
Common.feedback(gettext("Successfully imported."), 'success');
}
}, },
error: function () { error: function(xhr) {
var error_msg;
if (xhr.responseText) {
error_msg = $.parseJSON(xhr.responseText).error;
} else {
error_msg = gettext("Failed. Please check the network.");
}
$error.html(error_msg).removeClass('hide');
Common.enableButton($submitBtn);
} }
}); });
return false; return false;

View File

@@ -107,6 +107,7 @@ define([
case 'group_members': return siteRoot + 'api/v2.1/groups/' + options.group_id + '/members/'; case 'group_members': return siteRoot + 'api/v2.1/groups/' + options.group_id + '/members/';
case 'group_member': return siteRoot + 'api/v2.1/groups/' + options.group_id + '/members/' + options.email + '/'; case 'group_member': return siteRoot + 'api/v2.1/groups/' + options.group_id + '/members/' + options.email + '/';
case 'group_member_bulk': return siteRoot + 'api/v2.1/groups/' + options.group_id + '/members/bulk/'; case 'group_member_bulk': return siteRoot + 'api/v2.1/groups/' + options.group_id + '/members/bulk/';
case 'group_import_members': return siteRoot + 'ajax/group/' + options.group_id + '/members/import/';
case 'group_repos': return siteRoot + 'api2/groups/' + options.group_id + '/repos/'; case 'group_repos': return siteRoot + 'api2/groups/' + options.group_id + '/repos/';
case 'toggle_group_modules': return siteRoot + 'ajax/group/' + options.group_id + '/toggle-modules/'; case 'toggle_group_modules': return siteRoot + 'ajax/group/' + options.group_id + '/toggle-modules/';
case 'toggle_personal_modules': return siteRoot + 'ajax/toggle-personal-modules/'; case 'toggle_personal_modules': return siteRoot + 'ajax/toggle-personal-modules/';