Add post functionality
authorChip Black <bytex64@bytex64.net>
Fri, 25 May 2012 20:41:37 +0000 (13:41 -0700)
committerChip Black <bytex64@bytex64.net>
Fri, 25 May 2012 20:41:37 +0000 (13:41 -0700)
www/jssrc/blerg/API.js
www/jssrc/blerg/Post.js

index a5aa965..30dc7b5 100644 (file)
@@ -222,4 +222,27 @@ enyo.kind({
             username: blerg.API.username
         });
     },
+    post: function(data) {
+        var req = new enyo.Ajax({
+            url: baseURL + '/put',
+            method: 'POST'
+        });
+        req.response(function(inSender, inResponse) {
+            if (inResponse && inResponse.status == 'success') {
+                this.bubble('onPostSuccessful', {
+                    username: blerg.API.username,
+                    data: data
+                });
+            } else {
+                this.bubble('onPostFailed', {
+                    username: blerg.API.username,
+                    data: data
+                });
+            }
+        }.bind(this));
+        req.go({
+            username: blerg.API.username,
+            data: data
+        });
+    }
 });
index 112a497..ee537f2 100644 (file)
@@ -17,7 +17,10 @@ enyo.kind({
             {name: "loginReminder", tag: "span", classes: "blerg-error", style: "margin-right: 8px; vertical-align: 60%", content: "You must log in before posting."},
             {kind: "onyx.Button", content: "Close", onclick: "closePost", classes: "onyx-negative", attributes: {tabindex: 6}},
             {name: "postButton", kind: "onyx.Button", content: "Post", onclick: "doPost", classes: "onyx-affirmative", disabled: true, attributes: {tabindex: 5}}
-        ]}
+        ]},
+        {name: "api", kind: "blerg.API",
+         onPostSuccessful: "postSuccessful",
+         onPostFailed: "postFailed"}
     ],
     create: function() {
         this.inherited(arguments);
@@ -32,7 +35,15 @@ enyo.kind({
         this.bubble('onPostVisibility', {showing: false});
     },
     doPost: function() {
-        this.bubble('onPost', {data: this.getData()});
+        this.$.api.post(this.getData());
+    },
+    postSuccessful: function() {
+        this.setData('');
+        this.closePost();
+        this.href = '#' + blerg.API.username;
+    },
+    postFailed: function() {
+        alert('Could not post!');
     },
     postVisibilityUpdate: function(inSender, inEvent) {
         if (inEvent.showing) {