summaryrefslogtreecommitdiff
path: root/public/js/party.js
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-07-09 20:26:04 -0400
committerJules Laplace <jules@okfoc.us>2014-07-09 20:26:04 -0400
commit4bd53b79465d6bdc653d7857752732cc93b4ad27 (patch)
tree9550dfc0068f71047fb1fe1a510352706a459dc5 /public/js/party.js
parente687ae58246b67cc909d8f7b695f30c069f51ede (diff)
loading users; login; logout
Diffstat (limited to 'public/js/party.js')
-rw-r--r--public/js/party.js182
1 files changed, 182 insertions, 0 deletions
diff --git a/public/js/party.js b/public/js/party.js
new file mode 100644
index 0000000..b4984f9
--- /dev/null
+++ b/public/js/party.js
@@ -0,0 +1,182 @@
+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 += "<li id='party-"+party.id+"'>"+party.date+"</li>"
+ 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 += "<li><span class='view' id='user-"+ user.id +"'>"+ user.name +"</span>"
+ if (Auth.isHost || user.id === Auth.userID) {
+ partyUserList += "<span class='edit' id='edit-"+user.id+"'>edit</span>"
+ editable.push(user.id)
+ }
+ partyUserList += "</li>"
+ 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("<li id='"+rowID+"'>"+fields[1]+"</li>")
+ }
+ // Party.parties[rowID] = fields
+ // Party.view(fields[0])
+ // Nav.selectClass(Party.parties, rowID)
+ Main.saving = false
+ Party.currentID = fields[0]
+ Party.list()
+ },
+ };