From ef31cd51e25f0c7544fd9059cbe56625ced6f911 Mon Sep 17 00:00:00 2001
From: Vivek Pabani <vivek.pabani@nexedi.com>
Date: Thu, 5 Nov 2015 14:40:55 +0000
Subject: [PATCH] erp5_gadget_interface_validator: used simpler router logic.

---
 ...adget_interface_validator_page_form_js.xml |  14 +-
 ...get_interface_validator_page_report_js.xml |   7 +-
 .../gadget_interface_validator_router_js.xml  | 518 ++----------------
 3 files changed, 45 insertions(+), 494 deletions(-)

diff --git a/bt5/erp5_gadget_interface_validator/PathTemplateItem/web_page_module/gadget_interface_validator_page_form_js.xml b/bt5/erp5_gadget_interface_validator/PathTemplateItem/web_page_module/gadget_interface_validator_page_form_js.xml
index cd788412c5..a9dd722c3c 100644
--- a/bt5/erp5_gadget_interface_validator/PathTemplateItem/web_page_module/gadget_interface_validator_page_form_js.xml
+++ b/bt5/erp5_gadget_interface_validator/PathTemplateItem/web_page_module/gadget_interface_validator_page_form_js.xml
@@ -205,16 +205,12 @@
             if(gadget_list.length > 0) {\n
               var page_type = fetchPageType(gadget_list[0]);\n
               return gadget.redirect({\n
-                command: \'change\',\n
-                options: {\n
-                  page: page_type,\n
-                  appcache_url: appcache_url\n
-                }\n
+                page: page_type,\n
+                appcache_url: appcache_url\n
               });\n
             } else {\n
               return gadget.redirect({\n
-                command: \'change\',\n
-                options: {found: false}\n
+                found: false\n
               });\n
             }\n
           });\n
@@ -365,7 +361,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>946.46361.42674.38161</string> </value>
+                <value> <string>946.54877.22908.40635</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -383,7 +379,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1446476000.92</float>
+                        <float>1446717901.46</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_gadget_interface_validator/PathTemplateItem/web_page_module/gadget_interface_validator_page_report_js.xml b/bt5/erp5_gadget_interface_validator/PathTemplateItem/web_page_module/gadget_interface_validator_page_report_js.xml
index 8994cd1ea0..185a6ec453 100644
--- a/bt5/erp5_gadget_interface_validator/PathTemplateItem/web_page_module/gadget_interface_validator_page_report_js.xml
+++ b/bt5/erp5_gadget_interface_validator/PathTemplateItem/web_page_module/gadget_interface_validator_page_report_js.xml
@@ -299,8 +299,7 @@
           return validateAppGadgetList(gadget, gadget_list);\n
         }, function(error) {\n
           return gadget.redirect({\n
-            command: \'change\',\n
-            options: {found: false, page: \'form\'}\n
+            found: false\n
           });\n
         });\n
     })\n
@@ -473,7 +472,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>946.49108.59205.8413</string> </value>
+                <value> <string>946.54878.32293.23654</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -491,7 +490,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1446476069.46</float>
+                        <float>1446717974.43</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_gadget_interface_validator/PathTemplateItem/web_page_module/gadget_interface_validator_router_js.xml b/bt5/erp5_gadget_interface_validator/PathTemplateItem/web_page_module/gadget_interface_validator_router_js.xml
index 0091140631..61551a16ab 100644
--- a/bt5/erp5_gadget_interface_validator/PathTemplateItem/web_page_module/gadget_interface_validator_router_js.xml
+++ b/bt5/erp5_gadget_interface_validator/PathTemplateItem/web_page_module/gadget_interface_validator_router_js.xml
@@ -101,437 +101,14 @@
             <key> <string>text_content</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-/*global window, rJS, RSVP, loopEventListener, document, jIO */\n
+/*global window, rJS */\n
 /*jslint nomen: true, indent: 2 */\n
-(function (window, rJS, RSVP, loopEventListener, document, jIO) {\n
+(function (window, rJS) {\n
   "use strict";\n
-\n
-  // Keep reference of the latest allDocs params which reach to this view\n
-  // var SELECTION_KEY = "s",\n
-  // Keep reference in the global navigation pattern\n
-  // HISTORY KEY = "h"\n
-  // Current display parameter\n
-  // DISPLAY KEY = "d"\n
-  var PREVIOUS_KEY = "p",\n
-    NEXT_KEY = "n",\n
-    PREFIX_DISPLAY = "/",\n
-    PREFIX_COMMAND = "!",\n
-    // PREFIX_ERROR = "?",\n
-    COMMAND_DISPLAY_STATE = "display",\n
-    COMMAND_CHANGE_STATE = "change",\n
-    COMMAND_INDEX_STATE = "index",\n
-    COMMAND_SELECTION_PREVIOUS = "selection_previous",\n
-    COMMAND_SELECTION_NEXT = "selection_next",\n
-    COMMAND_HISTORY_PREVIOUS = "history_previous",\n
-    COMMAND_PUSH_HISTORY = "push_history",\n
-    VALID_URL_COMMAND_DICT = {},\n
-    DEFAULT_PAGE = \'form\';\n
-  VALID_URL_COMMAND_DICT[COMMAND_DISPLAY_STATE] = null;\n
-  VALID_URL_COMMAND_DICT[COMMAND_CHANGE_STATE] = null;\n
-  VALID_URL_COMMAND_DICT[COMMAND_INDEX_STATE] = null;\n
-  VALID_URL_COMMAND_DICT[COMMAND_SELECTION_PREVIOUS] = null;\n
-  VALID_URL_COMMAND_DICT[COMMAND_SELECTION_NEXT] = null;\n
-  VALID_URL_COMMAND_DICT[COMMAND_HISTORY_PREVIOUS] = null;\n
-  VALID_URL_COMMAND_DICT[COMMAND_PUSH_HISTORY] = null;\n
-\n
-  //////////////////////////////////////////////////////////////////\n
-  // Change URL functions\n
-  //////////////////////////////////////////////////////////////////\n
-  function changeState(hash) {\n
-    // window.location = hash;\n
-    return window.location.replace(hash);\n
-  }\n
-\n
-  function synchronousChangeState(hash) {\n
-    changeState(hash);\n
-    // prevent returning unexpected response\n
-    // wait for the hash change to occur\n
-    // fail if nothing happens\n
-    return RSVP.timeout(\'5000\');\n
-  }\n
-\n
-  //////////////////////////////////////////////////////////////////\n
-  // Selection functions\n
-  //////////////////////////////////////////////////////////////////\n
-  function getSelection(gadget, selection_id) {\n
-    return gadget.props.jio_gadget.get(selection_id)\n
-      .push(function (result) {\n
-        return result.data;\n
-      });\n
-  }\n
-\n
-  function getHistory(gadget, history_id) {\n
-    var previous_id;\n
-    return gadget.props.jio_gadget.get(history_id)\n
-      .push(function (history) {\n
-        previous_id = history.previous_history_id;\n
-        return gadget.props.jio_gadget.get(history.options_id);\n
-      })\n
-      .push(function (result) {\n
-        return [result, previous_id];\n
-      }, function (error) {\n
-        // XXX Check if 404\n
-        if ((error instanceof jIO.util.jIOError) &&\n
-            (error.status_code === 404)) {\n
-          return [{data: {}}, undefined];\n
-        }\n
-        throw error;\n
-      });\n
-  }\n
-\n
-  function addHistory(gadget, options, previous_selection_id) {\n
-    var options_blob = {\n
-      type: "options",\n
-      data: options\n
-    },\n
-      blob_id;\n
-\n
-    return gadget.props.jio_gadget.post(options_blob)\n
-      .push(function (result) {\n
-        blob_id = result;\n
-        return gadget.props.jio_gadget.get(previous_selection_id)\n
-          .push(undefined, function () {\n
-            previous_selection_id = undefined;\n
-          });\n
-      })\n
-      .push(function () {\n
-        var data_history = {\n
-          type: "history",\n
-          options_id: blob_id,\n
-          previous_history_id: previous_selection_id\n
-        };\n
-        return gadget.props.jio_gadget.post(data_history);\n
-      })\n
-      .push(function (id) {\n
-        return id;\n
-      });\n
-  }\n
-\n
-  function addSelection(gadget, options) {\n
-    var data_blob = {\n
-      type: "selection",\n
-      data: options\n
-    };\n
-    return gadget.props.jio_gadget.post(data_blob);\n
-  }\n
-\n
-  //////////////////////////////////////////////////////////////////\n
-  // Build URL functions\n
-  //////////////////////////////////////////////////////////////////\n
-  function getCommandUrlFor(gadget, command, options) {\n
-    var result = "#" + PREFIX_COMMAND + (command || ""),\n
-      prefix = "?",\n
-      key,\n
-      tmp_dict;\n
-    tmp_dict = gadget.props.options;\n
-    for (key in tmp_dict) {\n
-      if (tmp_dict.hasOwnProperty(key)) {\n
-        if (tmp_dict[key] === undefined) {\n
-          tmp_dict[key] = \'\';\n
-        }\n
-        result += prefix + PREVIOUS_KEY + "." + encodeURIComponent(key) + "=" + encodeURIComponent(tmp_dict[key]);\n
-        prefix = "&";\n
-      }\n
-    }\n
-    for (key in options) {\n
-      if (options.hasOwnProperty(key)) {\n
-        if (options[key] === undefined) {\n
-          options[key] = \'\';\n
-        }\n
-        result += prefix + NEXT_KEY + "." + encodeURIComponent(key) + "=" + encodeURIComponent(options[key]);\n
-        prefix = "&";\n
-      }\n
-    }\n
-    return result;\n
-  }\n
-\n
-  function getDisplayUrlFor(jio_key, options) {\n
-    var prefix = \'?\',\n
-      result,\n
-      key;\n
-    result = "#" + PREFIX_DISPLAY + (jio_key || "");\n
-    for (key in options) {\n
-      if (options.hasOwnProperty(key) && options[key] !== undefined) {\n
-        // Don\'t keep empty values\n
-        result += prefix + encodeURIComponent(key) + "=" + encodeURIComponent(options[key]);\n
-        prefix = \'&\';\n
-      }\n
-    }\n
-    return result;\n
-  }\n
-\n
-  //////////////////////////////////////////////////////////////////\n
-  // exec command functions\n
-  //////////////////////////////////////////////////////////////////\n
-  function execDisplayCommand(next_options) {\n
-    // console.warn(command_options);\n
-    var jio_key = next_options.jio_key;\n
-    delete next_options.jio_key;\n
-    // XXX Implement history management\n
-    return synchronousChangeState(\n
-      getDisplayUrlFor(jio_key, next_options)\n
-    );\n
-  }\n
-\n
-  function execChangeCommand(previous_options, next_options) {\n
-    var key,\n
-      jio_key;\n
-    for (key in previous_options) {\n
-      if (previous_options.hasOwnProperty(key)) {\n
-        if (!next_options.hasOwnProperty(key)) {\n
-          next_options[key] = previous_options[key];\n
-        }\n
-      }\n
-    }\n
-    for (key in next_options) {\n
-      if (next_options.hasOwnProperty(key)) {\n
-        if (!next_options[key]) {\n
-          delete next_options[key];\n
-        }\n
-      }\n
-    }\n
-    jio_key = next_options.jio_key;\n
-    delete next_options.jio_key;\n
-    return synchronousChangeState(\n
-      getDisplayUrlFor(jio_key, next_options)\n
-    );\n
-  }\n
-\n
-  function execIndexCommand(gadget, previous_options, next_options) {\n
-    var jio_key = next_options.jio_key,\n
-      selection_options = {};\n
-    delete next_options.jio_key;\n
-    // selection_options.index = next_options.index;\n
-    selection_options.query = next_options.query;\n
-    selection_options.list_method_template = next_options.list_method_template;\n
-    // Store selection in local DB\n
-    return addSelection(gadget, selection_options)\n
-      .push(function (id) {\n
-        next_options.selection = id;\n
-        // XXX Implement history management\n
-        return addHistory(gadget, previous_options);\n
-      })\n
-      .push(function (id) {\n
-        next_options.history = id;\n
-        return synchronousChangeState(\n
-          getDisplayUrlFor(jio_key, next_options)\n
-        );\n
-      });\n
-  }\n
-\n
-  function execPushHistoryCommand(gadget, previous_options, next_options) {\n
-    var jio_key = next_options.jio_key;\n
-    delete next_options.jio_key;\n
-    // XXX Hack to support create dialog\n
-    delete previous_options.view;\n
-    delete previous_options.page;\n
-    return addHistory(gadget, previous_options)\n
-      .push(function (id) {\n
-        next_options.history = id;\n
-        return synchronousChangeState(\n
-          getDisplayUrlFor(jio_key, next_options)\n
-        );\n
-      });\n
-  }\n
-\n
-  function execSelectionNextCommand(gadget, previous_options) {\n
-    // Get the selection parameters\n
-    // Query all docs with those parameters + expected index\n
-    // Redirect to the result document\n
-    return getSelection(gadget, previous_options.selection)\n
-      .push(function (selection) {\n
-        return gadget.jio_allDocs({\n
-          "query": selection.query,\n
-          "list_method_template": selection.list_method_template,\n
-          "limit": [parseInt(previous_options.selection_index, 10) + 1, 1]\n
-        })\n
-          .push(function (result) {\n
-            if (result.data.rows.length === 0) {\n
-              return synchronousChangeState(\n
-                getCommandUrlFor(gadget, COMMAND_HISTORY_PREVIOUS, previous_options)\n
-              );\n
-            }\n
-            return synchronousChangeState(\n
-              getDisplayUrlFor(result.data.rows[0].id, {\n
-                selection: previous_options.selection,\n
-                selection_index: parseInt(previous_options.selection_index, 10) + 1,\n
-                history: previous_options.history\n
-              })\n
-            );\n
-          });\n
-      }, function (error) {\n
-        if ((error instanceof jIO.util.jIOError) &&\n
-            (error.status_code === 404)) {\n
-          return synchronousChangeState(\n
-            getCommandUrlFor(gadget, COMMAND_HISTORY_PREVIOUS, previous_options)\n
-          );        \n
-        }\n
-        throw error;\n
-      });\n
-  }\n
-\n
-  function execSelectionPreviousCommand(gadget, previous_options) {\n
-    // Get the selection parameters\n
-    // Query all docs with those parameters + expected index\n
-    // Redirect to the result document\n
-    return getSelection(gadget, previous_options.selection)\n
-      .push(function (selection) {\n
-        if (parseInt(previous_options.selection_index, 10) < 1) {\n
-          return synchronousChangeState(\n
-            getCommandUrlFor(gadget, COMMAND_HISTORY_PREVIOUS, previous_options)\n
-          );\n
-        }\n
-        return gadget.jio_allDocs({\n
-          "query": selection.query,\n
-          "list_method_template": selection.list_method_template,\n
-          "limit": [parseInt(previous_options.selection_index, 10) - 1, 1]\n
-        })\n
-          .push(function (result) {\n
-            if (result.data.rows.length === 0) {\n
-              return synchronousChangeState(\n
-                getCommandUrlFor(gadget, COMMAND_HISTORY_PREVIOUS, previous_options)\n
-              );\n
-            }\n
-            return synchronousChangeState(\n
-              getDisplayUrlFor(result.data.rows[0].id, {\n
-                selection: previous_options.selection,\n
-                selection_index: parseInt(previous_options.selection_index, 10) - 1,\n
-                history: previous_options.history\n
-              })\n
-            );\n
-          });\n
-      }, function (error) {\n
-        if ((error instanceof jIO.util.jIOError) &&\n
-            (error.status_code === 404)) {\n
-          return synchronousChangeState(\n
-            getCommandUrlFor(gadget, COMMAND_HISTORY_PREVIOUS, previous_options)\n
-          );        \n
-        }\n
-        throw error;\n
-      });\n
-  }\n
-\n
-\n
-  function execHistoryPreviousCommand(gadget, previous_options) {\n
-    var history = previous_options.history;\n
-    if (history === undefined) {\n
-      return synchronousChangeState(\n
-        getDisplayUrlFor(undefined, {page: DEFAULT_PAGE})\n
-      );\n
-    }\n
-    return getHistory(gadget, previous_options.history)\n
-      .push(function (result_list) {\n
-        var options = result_list[0].data,\n
-          jio_key = options.jio_key;\n
-        delete options.jio_key;\n
-        return synchronousChangeState(\n
-          getDisplayUrlFor(jio_key, options)\n
-        );\n
-      });\n
-  }\n
-\n
-  //////////////////////////////////////////////////////////////////\n
-  // Command URL functions\n
-  //////////////////////////////////////////////////////////////////\n
-  function routeMethodLess() {\n
-    // Nothing. Go to front page\n
-    return synchronousChangeState(\n
-      getDisplayUrlFor(undefined, {page: DEFAULT_PAGE})\n
-    );\n
-  }\n
-\n
-  function routeDisplay(gadget, command_options) {\n
-    if (command_options.path) {\n
-      if (command_options.args.page === undefined) {\n
-        return synchronousChangeState(\n
-          getDisplayUrlFor(command_options.path, {\n
-            page: \'form\',\n
-            editable: command_options.args.editable,\n
-            view: command_options.args.view || \'view\',\n
-            selection: command_options.args.selection,\n
-            selection_index: command_options.args.selection_index,\n
-            history: command_options.args.history\n
-          })\n
-        );\n
-      }\n
-    }\n
-\n
-    if (command_options.args.page === undefined) {\n
-      return synchronousChangeState(\n
-        getDisplayUrlFor(undefined, {\n
-          page: DEFAULT_PAGE\n
-        })\n
-      );\n
-    }\n
-\n
-    command_options.args.jio_key = command_options.path;\n
-\n
-    // Store current options to handle navigation\n
-    gadget.props.options = JSON.parse(JSON.stringify(command_options.args));\n
-\n
-    return {\n
-      url: "gadget_interface_validator_page_" + command_options.args.page + ".html",\n
-      // XXX Drop this options thing.\n
-      // Implement a "getSelection" method \n
-      options: command_options.args\n
-      // options: {}\n
-    };\n
-\n
-  }\n
-\n
-  function routeCommand(gadget, command_options) {\n
-    var args = command_options.args,\n
-      key,\n
-      split_list,\n
-      previous_options = {},\n
-      next_options = {},\n
-      valid = true;\n
-    // Rebuild the previous and next parameter dict\n
-    for (key in args) {\n
-      if (args.hasOwnProperty(key)) {\n
-        split_list = key.split(\'.\', 2);\n
-        if (split_list.length !== 2) {\n
-          valid = false;\n
-          break;\n
-        }\n
-        if (split_list[0] === PREVIOUS_KEY) {\n
-          previous_options[split_list[1]] = args[key];\n
-        } else if (split_list[0] === NEXT_KEY) {\n
-          next_options[split_list[1]] = args[key];\n
-        } else {\n
-          valid = false;\n
-          break;\n
-        }\n
-      }\n
-    }\n
-    if (!valid) {\n
-      throw new Error(\'Unsupported parameters: \' + key);\n
-    }\n
-\n
-    if (command_options.path === COMMAND_DISPLAY_STATE) {\n
-      return execDisplayCommand(next_options);\n
-    }\n
-    if (command_options.path === COMMAND_INDEX_STATE) {\n
-      return execIndexCommand(gadget, previous_options, next_options);\n
-    }\n
-    if (command_options.path === COMMAND_CHANGE_STATE) {\n
-      return execChangeCommand(previous_options, next_options);\n
-    }\n
-    if (command_options.path === COMMAND_SELECTION_NEXT) {\n
-      return execSelectionNextCommand(gadget, previous_options, next_options);\n
-    }\n
-    if (command_options.path === COMMAND_SELECTION_PREVIOUS) {\n
-      return execSelectionPreviousCommand(gadget, previous_options, next_options);\n
-    }\n
-    if (command_options.path === COMMAND_HISTORY_PREVIOUS) {\n
-      return execHistoryPreviousCommand(gadget, previous_options);\n
-    }\n
-    if (command_options.path === COMMAND_PUSH_HISTORY) {\n
-      return execPushHistoryCommand(gadget, previous_options, next_options);\n
-    }\n
-    throw new Error(\'Unsupported command \' + command_options.path);\n
-\n
-  }\n
+  \n
+   var MAIN_PAGE_PREFIX = "gadget_interface_validator_",\n
+    DEFAULT_PAGE = "form",\n
+    REDIRECT_TIMEOUT = 5000;\n
 \n
   function listenHashChange(gadget) {\n
     // Handle hash in this format: #$path1/path2?a=b&c=d\n
@@ -579,76 +156,56 @@
     window.dispatchEvent(event);\n
     return result;\n
   }\n
-\n
 \n
   rJS(window)\n
     .ready(function (gadget) {\n
       gadget.props = {\n
-        options: {},\n
         start_deferred: RSVP.defer()\n
       };\n
     })\n
 \n
-    .ready(function (gadget) {\n
-      return gadget.getDeclaredGadget("jio_selection")\n
-        .push(function (jio_gadget) {\n
-          gadget.props.jio_gadget = jio_gadget;\n
-          return jio_gadget.createJio({\n
-            type: "sha",\n
-            sub_storage: {\n
-              type: "indexeddb",\n
-              database: "selection"\n
-            }\n
-          });\n
-        });\n
-    })\n
-\n
-    .declareMethod(\'getCommandUrlFor\', function (options) {\n
-      var command = options.command,\n
-        args = options.options,\n
-        valid = true,\n
+    .declareMethod("getCommandUrlFor", function(options) {\n
+      var prefix = \'?\',\n
+        result,\n
         key;\n
-      // Only authorize \'command\' and \'options\' keys\n
-      // Drop all other kind of parameters, to detect issue more easily\n
+      result = "#";\n
       for (key in options) {\n
-        if (options.hasOwnProperty(key)) {\n
-          if ((key !== \'command\') && (key !== \'options\')) {\n
-            valid = false;\n
-          }\n
+        if (options.hasOwnProperty(key) && options[key] !== undefined) {\n
+          // Don\'t keep empty values\n
+          result += prefix + encodeURIComponent(key) + "=" + encodeURIComponent(options[key]);\n
+          prefix = \'&\';\n
         }\n
       }\n
-      if (valid && (options.command) && (VALID_URL_COMMAND_DICT.hasOwnProperty(options.command))) {\n
-        return getCommandUrlFor(this, command, args);\n
-      }\n
-      return getCommandUrlFor(this, \'error\', options);\n
+      return result;\n
     })\n
 \n
-    .declareMethod(\'getUrlParameter\', function (key) {\n
-      return this.props.options[key];\n
+    .declareMethod(\'redirect\', function (options) {\n
+      return this.getCommandUrlFor(options)\n
+        .push(function (hash) {\n
+          window.location.replace(hash);\n
+          // prevent returning unexpected response\n
+          // wait for the hash change to occur\n
+          // fail if nothing happens\n
+          return RSVP.timeout(REDIRECT_TIMEOUT);\n
+        });\n
     })\n
 \n
-    .declareMethod(\'route\', function (command_options) {\n
-      var gadget = this;\n
+    .declareMethod(\'route\', function (options) {\n
+      var gadget = this,\n
+        args = options.args,\n
+        page;\n
 \n
-      if (command_options.method === PREFIX_DISPLAY) {\n
-        return routeDisplay(gadget, command_options);\n
-      }\n
-      if (command_options.method === PREFIX_COMMAND) {\n
-        return routeCommand(gadget, command_options);\n
-      }\n
-      if (command_options.method) {\n
-        throw new Error(\'Unsupported hash method: \' + command_options.method);\n
-      }\n
-      return routeMethodLess();\n
+      page = args.page || DEFAULT_PAGE;\n
+      return {\n
+        url: MAIN_PAGE_PREFIX + "page_" + page + ".html",\n
+        options: args\n
+      };\n
     })\n
 \n
+    .declareAcquiredMethod(\'renderApplication\', \'renderApplication\')\n
     .declareMethod(\'start\', function () {\n
       this.props.start_deferred.resolve();\n
     })\n
-\n
-    .declareAcquiredMethod(\'renderApplication\', \'renderApplication\')\n
-    .declareAcquiredMethod(\'jio_allDocs\', \'jio_allDocs\')\n
-\n
     .declareService(function () {\n
       var gadget = this;\n
       return new RSVP.Queue()\n
@@ -656,12 +213,11 @@
           return gadget.props.start_deferred.promise;\n
         })\n
         .push(function () {\n
-          // console.info(\'router service: listen to hash change\');\n
           return listenHashChange(gadget);\n
         });\n
     });\n
 \n
-}(window, rJS, RSVP, loopEventListener, document, jIO));
+}(window, rJS));
 
 ]]></string> </value>
         </item>
@@ -798,7 +354,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>946.44747.61190.22391</string> </value>
+                <value> <string>946.54883.25521.16366</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -816,7 +372,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1446476363.31</float>
+                        <float>1446718128.25</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
-- 
2.30.9