cosmetic
[unfold.git] / manifold / js / manifold.js
index 4eb58fa..81c61ce 100644 (file)
@@ -29,11 +29,6 @@ var manifold = {
     find_query : function (query_uuid) { 
        return manifold.all_queries[query_uuid];
     },
-    debug_all_queries : function (msg) {
-       for (var query_uuid in manifold.all_queries) {
-           messages.debug("manifold.debug " + msg + " " + query_uuid + " -> " + manifold.all_queries[query_uuid]);
-       }
-    },
 
     // trigger a query asynchroneously
     proxy_url : '/manifold/proxy/json/',
@@ -79,28 +74,29 @@ var manifold = {
     // however in some cases we wish to publish the results under a different uuid
     // e.g. an updater wants to publish its results as if from the original (get) query
     asynchroneous_success : function (data, query, publish_uuid, domid) {
-       if (manifold.asynchroneous_debug) 
-           messages.debug("received manifold result with code " + data.code);
        // xxx should have a nicer declaration of that enum in sync with the python code somehow
        if (data.code == 1) {
            alert("Your session has expired, please log in again");
            window.location="/logout/";
            return;
        } else if (data.code != 0) {
-           alert("Error received from manifold backend at " + MANIFOLD_URL + " [" + data.output + "]");
+           messages.error("Error received from manifold backend at " + MANIFOLD_URL + " [" + data.output + "]");
+           // publish error code and text message on a separate channel for whoever is interested
+           jQuery.publish("/results/" + publish_uuid + "/failed", [data.code, data.output] );
            return;
        }
        // once everything is checked we can use the 'value' part of the manifoldresult
-       data=data.value;
-       if (data) {
+       var value=data.value;
+       if (value) {
             if (!!domid) {
                /* Directly inform the requestor */
                if (manifold.asynchroneous_debug) messages.debug("directing results to " + domid);
-               jQuery('#' + domid).trigger('results', [data]);
+               jQuery('#' + domid).trigger('results', [value]);
             } else {
                /* Publish an update announce */
-               if (manifold.asynchroneous_debug) messages.debug("publishing results on " + publish_uuid);
-               jQuery.publish("/results/" + publish_uuid + "/changed", [data, query]);
+               var channel="/results/" + publish_uuid + "/changed";
+               if (manifold.asynchroneous_debug) messages.debug("publishing results on " + channel);
+               jQuery.publish(channel, [value, query]);
             }
 
        }
@@ -115,19 +111,19 @@ var manifold = {
 
   var o = $({});
 
-  $.subscribe = function( types, selector, data, fn) {
+  $.subscribe = function( channel, selector, data, fn) {
     /* borrowed from jQuery */
     if ( data == null && fn == null ) {
-        // ( types, fn )
+        // ( channel, fn )
         fn = selector;
         data = selector = undefined;
     } else if ( fn == null ) {
         if ( typeof selector === "string" ) {
-            // ( types, selector, fn )
+            // ( channel, selector, fn )
             fn = data;
             data = undefined;
         } else {
-            // ( types, data, fn )
+            // ( channel, data, fn )
             fn = data;
             data = selector;
             selector = undefined;
@@ -142,9 +138,9 @@ var manifold = {
      * supported and editable, we might have the same issue with results but
      * the page load time will be severely affected...
      */
-    o.on.apply(o, [types, selector, data, function() { 
+    o.on.apply(o, [channel, selector, data, function() { 
         for(i = 1; i < arguments.length; i++) {
-            if ( arguments[i].constructor.name == 'Query' )
+            if ( arguments[i].constructor.name == 'ManifoldQuery' )
                 arguments[i] = arguments[i].clone();
         }
         fn.apply(o, arguments);