var Party = { parties: {}, currentID: -1, partyData: '', liclick: function () { Nav.selectClass(Party.parties, this.id) var id = this.id.split("-")[1] warn("viewing party "+id) Party.view(id) }, list: function() { $('#partyListContainer').fadeOut(200) $('#partyEditContainer').hide() $('#userListContainer').hide() $('#userEditContainer').hide() $('#userViewContainer').hide() $.get(URL.party.list,{},Party.listCallback) }, listCallback: function (parties) { warn("got party list") var partyList = "" if (Party.currentID != -1) { var firstPartyID = Party.currentID } parties.forEach(function(party){ if (! firstPartyID) { firstPartyID = party.id } partyList += "
  • "+party.date+"
  • " Party.parties["party-"+party.id] = party }) $('#partyList').html(partyList) $('#partyListContainer').fadeIn(200) for (id in Party.parties) { $('#'+id).click(Party.liclick).data('party', Party.parties[id]) } Nav.selectClass(Party.parties, "party-"+firstPartyID) if (firstPartyID) Party.view(firstPartyID) }, view: function(id) { $('#userViewContainer').hide() $('#userEditContainer').hide() $('#partyEditContainer').hide() $('#userListContainer').fadeOut(200) Party.partyData = $(this).data('party') $.get(URL.party.view, {'id':id}, Party.viewCallback) }, viewCallback: function (users) { var partyUserList = "" var partyLocationTag = "" var editable = [] var currentHost = -1 users.forEach(function(user){ var fields = lines[i].split('\t') // 0 id 1 group 2 name 3 email 4 blurb partyUserList += "
  • "+ user.name +"" if (Auth.isHost || user.id === Auth.userID) { partyUserList += "edit" editable.push(user.id) } partyUserList += "
  • " Users.userlist['user-'+user.id] = user }) partyLocationTag = Party.partyData.location Party.currentID = Party.partyData.id Party.partyData = partyData $('#partyLocation').html(partyLocationTag) $('#userList').html(partyUserList) if (Auth.isHost) { $('#user-add').show() $('#party-edit').show() } $('#userListContainer').fadeIn(200) $('#userViewContainer').show() for (id in Users.userlist) { $('#'+id).hover(Users.limousein, Users.limouseout).click(Users.liclick).data('user', Users.userlist[id]) } for (i in editable) { $('#edit-'+editable[i]).bind("click",Users.editClick).data('user', Users.userlist[editable[i]]) } Users.hovering = true }, addClick: function () { warn("NEW PARTY FORM") var id = "NEW" var today = new Date() $('#party-id').val(id) $('#party-day').val(today.getDate()) $('#party-year').val(today.getFullYear()) $('#party-month option').attr("selected", false); $('#party-month option[value="'+today.getMonth()+'"]').attr("selected", true); $('#party-location').val("") $('#partyEditContainer h2').html("New party") $('#userListContainer').hide() $('#userViewContainer').hide() $('#userEditContainer').hide() $('#partyEditContainer').show() $('#party-location').focus() Main.saveFunction = Party.editSave Nav.selectClass(Party.parties, "") }, editClick: function () { var id = Party.currentID // 0 id 1 date 2 location var party = Party.partyData var date = party[1].split("-") $('#party-id').val(id) $('#party-day').val(date[0]) $('#party-year').val(date[2]) $('#party-month option').attr("selected", false); $('#party-month option[value="'+months[date[1]]+'"]').attr("selected", true); $('#party-location').val(party[2]) $('#partyEditContainer h2').html("Edit party") $('#userListContainer').hide() $('#userViewContainer').hide() $('#userEditContainer').hide() $('#partyEditContainer').show() Main.saveFunction = Party.editSave }, editSave: function () { if (Main.saving) return Main.saving = true warn("attempting save") var data = { id: $('#party-id').val(), userid: Auth.userID, hostid: Auth.userID, location: $('#party-location').val(), month: $('#party-month').val(), day: $('#party-day').val(), year: $('#party-year').val(), } $('#partyEditContainer').fadeOut(200) $.post(URL.party.edit, data, Party.editSaveCallback) }, editSaveCallback: function (raw) { var lines = raw.split("\n") if (lines.shift() !== API_MAGIC) { warn("bad api: party save") 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 = "party-"+fields[0] if (result[0] === "OK") { warn("party saved") } else if (result[0] === "NEW") { warn("party created") $("#partyList").append("
  • "+fields[1]+"
  • ") } // Party.parties[rowID] = fields // Party.view(fields[0]) // Nav.selectClass(Party.parties, rowID) Main.saving = false Party.currentID = fields[0] Party.list() }, };