canvas-lms/public/javascripts/account_add_user.js

87 lines
2.9 KiB
JavaScript

require([
'i18n!accounts' /* I18n.t */,
'jquery' /* $ */,
'compiled/util/addPrivacyLinkToDialog',
'underscore',
'user_sortable_name',
'jquery.instructure_forms' /* formSubmit */,
'jqueryui/dialog',
'compiled/jquery/fixDialogButtons' /* fix dialog formatting */,
'compiled/jquery.rails_flash_notifications'
], function(I18n, $, addPrivacyLinkToDialog, _) {
$(".add_user_link").click(function(event) {
event.preventDefault();
$("#add_user_form :text").val("");
var $dialog = $("#add_user_dialog");
$dialog.dialog({
title: I18n.t('add_user_dialog_title', "Add a New User"),
width: 500
}).fixDialogButtons();
addPrivacyLinkToDialog($dialog);
$("#add_user_form :text:visible:first").focus().select();
});
$("#add_user_form").formSubmit({
formErrors: false,
required: ['user[name]', 'pseudonym[unique_id]'],
beforeSubmit: function(data) {
$(this).find("button").attr('disabled', true)
.filter(".submit_button").text(I18n.t('adding_user_message', "Adding User..."));
},
success: function(data) {
$(this).find("button").attr('disabled', false)
.filter(".submit_button").text(I18n.t('add_user_button', "Add User"));
var user = data.user.user || data.user;
var link = "<a href='/users/" + user.id + "'>$1</a>"
var message = '';
if(data.message_sent) {
message = I18n.t('user_added_message_sent_message', '*%{user}* successfully added! They should receive an email confirmation shortly.', {user: user.name, wrapper: link});
} else {
message = I18n.t('user_added_message', '*%{user}* successfully added!', {user: user.name, wrapper: link});
}
$.flashMessage(message);
$("#add_user_dialog").dialog('close');
},
error: function(data) {
errorData = {};
// Email errors
if(data.pseudonym.unique_id){
errorList = [];
var messages = {
too_long: I18n.t("Login is too long"),
invalid: I18n.t("Login is invalid: must be alphanumeric or an email address")
};
var errors = _.uniq(_.map(data.pseudonym.unique_id, function(i){ return i.message; }));
_.each(errors, function(i){
errorList.push(messages[i] ? messages[i] : i);
});
errorData['unique_id'] = errorList.join(', ');
}
// SIS ID taken error
if (data.pseudonym.sis_user_id) {
errorList = [];
var errors = _.uniq(_.map(data.pseudonym.sis_user_id, function(i){ return i.message; }));
_.each(errors, function(i){
errorList.push(i);
});
errorData['sis_user_id'] = errorList.join(', ');
}
$(this).formErrors(errorData);
$(this).find("button").attr('disabled', false)
.filter(".submit_button").text(I18n.t('user_add_failed_message', "Adding User Failed, please try again"));
}
});
$("#add_user_dialog .cancel_button").click(function() {
$("#add_user_dialog").dialog('close');
});
});