$(function() {
// define a container object with various datas
- window.redbackModel = {usersViewModel:null,userOperationNames:null,key:null,userCreate:false};
-
+ window.redbackModel = {usersViewModel:null,userOperationNames:null,key:null,userCreate:false,i18n:$.i18n.map};
+ /**
+ * display redback error from redback json error response
+ * {"redbackRestError":{"errorMessages":{"args":1,"errorKey":"user.password.violation.numeric"}}}
+ * @param obj
+ * @param idToAppend
+ */
displayRedbackError=function(obj,idToAppend) {
- // {"redbackRestError":{"errorMessages":{"args":1,"errorKey":"user.password.violation.numeric"}}}
if ($.isArray(obj.redbackRestError.errorMessages)) {
$.log("displayRedbackError with array");
for(var i=0; i<obj.redbackRestError.errorMessages.length; i++ ) {
//nothing
});
+ /**
+ * return a small spinner html img element
+ */
smallSpinnerImg=function(){
return "<img id=\"login-spinner\" src=\"images/small-spinner.gif\"/>";
};
+ /**
+ * open a confirm dialog
+ * @param okFn callback function to call on ok confirm
+ * @param okMessage
+ * @param cancelMessage
+ * @param title
+ */
openDialogConfirm=function(okFn, okMessage, cancelMessage, title){
$("#dialog-confirm" ).dialog({
resizable: false,
* under the License.
*/
$(function() {
+ /**
+ * object model for user with some function to create/update/delete users
+ * @param username
+ * @param password
+ * @param confirmPassword
+ * @param fullName
+ * @param email
+ * @param permanent
+ * @param validated
+ * @param timestampAccountCreation
+ * @param timestampLastLogin
+ * @param timestampLastPasswordChange
+ * @param locked
+ * @param passwordChangeRequired
+ * @param ownerViewModel
+ */
user=function(username, password, confirmPassword,fullName,email,permanent,validated,timestampAccountCreation,timestampLastLogin,timestampLastPasswordChange,locked,passwordChangeRequired,ownerViewModel) {
// Potentially Editable Field.
this.username = ko.observable(username);
type: "GET",
dataType: 'json',
success: function(data) {
- // FIXME i18n and use a messages div
+ // FIXME i18n
window.redbackModel.usersViewModel.users.remove(currentUser);
displaySuccessMessage("user " + currentUser.username() + " deleted");
},
this.i18n = $.i18n.prop;
}
-
+ /**
+ * view for admin user creation
+ */
adminUserViewModel=function() {
this.user = new user("admin","aze123","aze123", "the admin");
}
+ /**
+ * open a modal box to create admin user
+ */
adminCreateBox=function() {
window.redbackModel.createUser=true;
jQuery("#main-content").attr("data-bind",'template: {name:"redback/user-edit-tmpl",data: user}');
}
+ /**
+ * open a modal box for login
+ */
loginBox=function(){
screenChange();
if (window.modalLoginWindow==null) {
$("#modal-login").focus();
}
+ /**
+ * callback success function on rest login call.
+ * modal close and hide/show some links (login,logout,register...)
+ * @param result
+ */
var successLoginCallbackFn=function(result){
var logged = false;
if (result == null) {
$("#modal-login-err-message").show();
}
+ /**
+ * callback error function on rest login call. display error message
+ * @param result
+ */
var errorLoginCallbackFn= function(result) {
var obj = jQuery.parseJSON(result.responseText);
displayRedbackError(obj,"modal-login-err-message");
$("#modal-login-err-message").show();
}
+ /**
+ * callback complate function on rest login call. remove spinner from modal login box
+ * @param result
+ */
var completeLoginCallbackFn=function(){
$("#modal-login-ok").removeAttr("disabled");
$("#login-spinner").remove();
}
+ /**
+ * validate login box before ajax call
+ */
login=function(){
$("#modal-login-err-message").html("");
screenChange();
loginCall($("#user-login-form-username").val(),$("#user-login-form-password").val()
,successLoginCallbackFn,errorLoginCallbackFn,completeLoginCallbackFn);
-
-
}
+ /**
+ * call REST method for login
+ * @param username
+ * @param password
+ * @param successCallbackFn
+ * @param errorCallbackFn
+ * @param completeCallbackFn
+ */
loginCall=function(username,password,successCallbackFn, errorCallbackFn, completeCallbackFn) {
var url = 'restServices/redbackServices/loginService/logIn?userName='+username;
url += "&password="+password;
$("#modal-password-change").focus();
}
+ /**
+ * display modal box for updating current user details
+ */
editUserDetailsBox=function(){
screenChange();
$("#modal-user-edit-err-message").hide();
$("#modal-user-edit").focus();
}
+ /**
+ * REST call to update current user
+ * @param user
+ */
editUserDetails=function(user){
$("#modal-user-edit-err-message").html("");
$.ajax("restServices/redbackServices/userService/updateMe", {
dataType: 'json',
success: function(result) {
var created = JSON.parse(result);
- // FIXME use a message div and i18n
+ // FIXME i18n
if (created == true) {
displaySuccessMessage("details updated.");
window.modalEditUserBox.modal('hide');
/**
*
* @param previousPassword display and validate previous password text field
- * @param registration are we in registration mode ?
+ * @param registration are we in registration mode ? if yes the user will be logged
*/
changePassword=function(previousPassword,registration,user){
var valid = $("#password-change-form").valid();