Adds success notification for comments
diff --git a/asterix-examples/src/main/resources/black-cherry/static/js/asterix-sdk-stable.js b/asterix-examples/src/main/resources/black-cherry/static/js/asterix-sdk-stable.js
index 72aafd4..a6b3978 100755
--- a/asterix-examples/src/main/resources/black-cherry/static/js/asterix-sdk-stable.js
+++ b/asterix-examples/src/main/resources/black-cherry/static/js/asterix-sdk-stable.js
@@ -112,7 +112,6 @@
             success_fn(data);
         },
         error: function(xhr, status, error) {
-
         }
     });
     
diff --git a/asterix-examples/src/main/resources/black-cherry/static/js/cherry.js b/asterix-examples/src/main/resources/black-cherry/static/js/cherry.js
index eb3aba5..70f2c4e 100755
--- a/asterix-examples/src/main/resources/black-cherry/static/js/cherry.js
+++ b/asterix-examples/src/main/resources/black-cherry/static/js/cherry.js
@@ -648,7 +648,9 @@
                     APIqueryTracker["active_tweetbook"],
                     new AExpression("$mt.tweetid = " + deleteTweetCommentOnId.toString())
                 );
-                A.update(toDelete.val());
+                A.update(
+                    toDelete.val()
+                );
                 
                 // Hide comment from map
                 $('#drilldown_modal').modal('hide');
@@ -694,9 +696,13 @@
             );
             
             // Insert query to add metacomment to said tweetbook dataset
-            A.update(toInsert.val());
+            A.update(toInsert.val(), function () { alert("Test"); });
             
-            // TODO Some acknowledgement would be good here. 
+            // TODO Some stress testing of error conditions might be good here...
+            onPlotTweetbook(APIqueryTracker["active_tweetbook"]);
+            var successMessage = "Saved comment on <b>Tweet #" + tweetId + 
+                "</b> in dataset <b>" + save_metacomment_target_tweetbook + "</b>.";
+            addSuccessBlock(successMessage, 'drilltweetobj' + tweetId);
         }
     });
     
@@ -888,6 +894,7 @@
     return toPlot;
 }
 
+
 function onCleanTweetbookDrilldown (rec) {
 
     var drilldown_cleaned = [];
@@ -909,6 +916,7 @@
     return drilldown_cleaned;
 }
 
+
 function onClickTweetbookMapMarker(tweet_arr) {
     $('#drilldown_modal_body').html('');
 
@@ -923,6 +931,7 @@
 
 /** Toggling Review and Explore Modes **/
 
+
 /**
 * Explore mode: Initial map creation and screen alignment
 */
@@ -936,6 +945,7 @@
     $('#query-preview-window').height(prev_window_target +'px');
 }
 
+
 /**
 * Launching explore mode: clear windows/variables, show correct sidebar
 */
@@ -949,6 +959,7 @@
     $("#clear-button").trigger("click");
 }
 
+
 /**
 * Launching review mode: clear windows/variables, show correct sidebar
 */
@@ -964,7 +975,8 @@
 
 /** Icon / Interface Utility Methods **/
 
-/** Creates a delete icon button using default trash icon
+/** 
+* Creates a delete icon button using default trash icon
 * @param    {String}    id, id for this element
 * @param    {String}    attachTo, id string of an element to which I can attach this button.
 * @param    {Function}  onClick, a function to fire when this icon is clicked
@@ -980,6 +992,19 @@
 }
 
 
+/**
+* Creates a success message and attaches it to a div with provided ID.
+* @param    {String}    message, a message to post
+* @param    {String}    appendTarget, a target div to which to append the alert
+*/
+function addSuccessBlock(message, appendTarget) {
+
+    $('<div/>')
+        .attr("class", "alert alert-success")
+        .html('<button type="button" class="close" data-dismiss="alert">&times;</button>' + message)
+        .appendTo('#' + appendTarget);
+}
+
 /** Map Widget Utility Methods **/
 
 /**