Fix for going to your account after posting
[blerg.git] / www / jssrc / blerg / Post.js
index 112a497..c1b889c 100644 (file)
@@ -9,15 +9,23 @@ enyo.kind({
     },
     resizePostContentTimeout: null,
     components: [
-        {tag: "h2", content: "What's on your mind?"},
+        {name: "helpContent", allowHtml: true, showing: false},
+        {style: "position: relative;", components: [
+            {tag: "h2", content: "What's on your mind?", style: "width: 75%;",},
+            {name: "showHelpLink", kind: "blerg.Link", onNavigate: "showHelp", content: "Help!", style: "position: absolute; right: 1pt; bottom: 1pt; font-weight: bold; font-size: large;"},
+            {name: "hideHelpLink", kind: "blerg.Link", onNavigate: "hideHelp", content: "Hide Help", style: "position: absolute; right: 1pt; bottom: 1pt; font-weight: bold; font-size: large;", showing: false}
+        ]},
         {kind: "onyx.InputDecorator", components: [
             {name: "postContent", classes: "content", kind: "onyx.TextArea", onkeydown: "resizePostContent", attributes: {tabindex: 4}}
         ]},
         {classes: "buttons", components: [
-            {name: "loginReminder", tag: "span", classes: "blerg-error", style: "margin-right: 8px; vertical-align: 60%", content: "You must log in before posting."},
+            {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 +40,20 @@ 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();
+        if (location.hash != '#' + blerg.API.username) {
+            location.hash = '#' + blerg.API.username
+            this.bubble('onNavigate');
+        } else {
+            this.bubble('onReload');
+        }
+    },
+    postFailed: function() {
+        alert('Could not post!');
     },
     postVisibilityUpdate: function(inSender, inEvent) {
         if (inEvent.showing) {
@@ -73,5 +94,25 @@ enyo.kind({
     loggedOut: function() {
         this.$.postButton.setDisabled(true);
         this.$.loginReminder.show();
+    },
+    showHelp: function() {
+        this.$.helpContent.show();
+        this.$.showHelpLink.hide();
+        this.$.hideHelpLink.show();
+        if (this.$.helpContent.getContent() == '') {
+            var req = new enyo.Ajax({
+                url: baseURL + '/doc/post_help.html',
+                handleAs: 'text'
+            });
+            req.response(function(inSender, inResponse) {
+                this.$.helpContent.setContent(inResponse);
+            }.bind(this));
+            req.go();
+        }
+    },
+    hideHelp: function() {
+        this.$.helpContent.hide();
+        this.$.showHelpLink.show();
+        this.$.hideHelpLink.hide();
     }
 });