var Users = { userlist: {}, hovering: true, current: false, allCount: 0, userListIndex: [], currentIdx: -1, all: function () { $('#userViewContainer').hide() $('#userEditContainer').hide() $('#partyEditContainer').hide() $('#userListContainer').fadeOut(200) $.get(URL.user.all,{},Users.allCallback) }, allCallback: function (json) { var partyUserList = []; var guestHosts = []; var editable = []; var firstletter = "A"; Users.allCount = 0; Users.userListIndex = []; json.forEach(function(user){ // 0 id 1 group 2 name 3 email 4 blurb // if (fields[1] !== currentHost) // { // currentHost = fields[1] // partyUserList += "
" + blurb + "
" $('#userViewContainer').html(userRec) $('#userEditContainer').hide() $('#partyEditContainer').hide() $('#userViewContainer').show() Users.currentIdx = $("#"+id).parent().attr("id").substr(2) }, addClick: function () { warn("NEW USER FORM") var id = "NEW" $('#user-id').val(id) $('#user-name').val("") $('#user-email').val("") $('#user-emailhidden').attr('checked', false) $('#user-blurb').val("") $('#userViewContainer').hide() $('#userEditContainer').show() $('#user-name').focus() $('#userEditContainer h2').html("Add a new guest") if (Auth.isHost) { $('#user-password-block').show() $('#user-isstaff-block').show() } Nav.selectClass(Users.userlist, "") Users.hovering = false Main.saveFunction = Users.editSave }, editClick: function () { $(window).unbind("keydown") var id = this.id.split("-")[1] Users.hovering = false $('#userViewContainer').fadeOut(200) $('#userEditContainer').hide() $.post(URL.user.view, {id:id}, Users.editClickCallback) }, editClickCallback: function (raw) { var lines = raw.split("\n") if (lines.shift() !== API_MAGIC) { warn("bad api: user edit") return } var user = lines.shift().split('\t') warn ("editing user "+user[0]) var hidemail = user.emailhidden === '1' ? true : false // 0 id 1 name 2 email 3 access 4 emailhidden 5 hostid 6 blurb var blurb = user.blurb $('#user-id').val(user.id) $('#user-name').val(user.name) $('#user-email').val(user.email) $('#user-emailhidden').attr('checked', hidemail) $('#user-access option').attr("selected", false); $('#user-access option[value="'+parseInt(user.access)+'"]').attr("selected", true); $('#user-host option').attr("selected", false); $('#user-host option[value="'+parseInt(user.host_id)+'"]').attr("selected", true); $('#user-blurb').val(blurb) $('#userViewContainer').hide() if (user.id === Auth.userID) { $('#userEditContainer h2').html("Editing your profile") $('#user-password-block').show() $('#user-isstaff-block').hide() } else { $('#user-password-block').hide() $('#user-isstaff-block').hide() $('#user-invitedby-block').hide() $('#userEditContainer h2').html("Editing "+user.name) } if (Auth.isHost) { $('#user-password-block').show() $('#user-isstaff-block').show() $('#user-invitedby-block').show() $('#user-delete').show() var ishost = user.access === '1' ? true : false $('#user-ishost').attr('checked', ishost) } $('#user-password1').val('') $('#user-password2').val('') $('#userEditContainer').fadeIn(300) Main.saveFunction = Users.editSave }, editSave: function () { if (Main.saving) return Main.saving = true var hidemail = $('#user-emailhidden').attr("checked") === true ? 1 : 0 warn("attempting save") var id = $('#user-id').val() var data = { id: id, partyid: Party.currentID, hostid: $('#user-host').val(), name: $('#user-name').val(), email: $('#user-email').val(), emailhidden: hidemail, blurb: $('#user-blurb').val(), } if (Auth.isHost) { var access = $('#user-access').val() data['access'] = access } if (Auth.isHost || id === Auth.userID) { var pw1 = $('#user-password1').val() var pw2 = $('#user-password2').val() if (pw1 && pw2) { warn("setting password?! "+pw1) if (pw1 === pw2) data['password'] = pw1 else warn("passwords don't match!") } } $.post(URL.user.edit, data, Users.editSaveCallback) }, editSaveCallback: function (raw) { var lines = raw.split("\n") if (lines.shift() !== API_MAGIC) { warn("bad api: user edit") return } var result = lines.shift().split("\t") if (result[0] === "ERROR") { warn("save error: "+result[1]) return } var fields = lines.shift().split("\t") var rowID = "user-"+fields[0] if (result[0] === "OK") { warn("user saved") Users.userlist[rowID] = fields Users.view(rowID) Nav.selectClass(Users.userlist, rowID) } else if (result[0] === "NEW") { warn("user created") // $("#userList").append("