gui/html:  Now files/action browsing is complete

File browsing for now lists all files in the folder **without**
directories.  We probably would need to implement normal browsing at
some point, but it requires modification of FileState.

File restoring is coming soon. Stay tuned.

Change-Id: I273366e04164716bfb53e92585cdf02808e4d06a
diff --git a/src/action-log.cc b/src/action-log.cc
index 71ee782..0a05dd2 100644
--- a/src/action-log.cc
+++ b/src/action-log.cc
@@ -701,9 +701,10 @@
       action.set_action      (static_cast<ActionItem_ActionType> (sqlite3_column_int   (stmt, 2)));
       action.set_filename    (reinterpret_cast<const char *> (sqlite3_column_text  (stmt, 3)), sqlite3_column_bytes (stmt, 3));
       std::string directory  (reinterpret_cast<const char *> (sqlite3_column_text  (stmt, 4)), sqlite3_column_bytes (stmt, 4));
+      action.set_version     (sqlite3_column_int64 (stmt, 5));
+
       if (action.action () == 0)
         {
-          action.set_version     (sqlite3_column_int64 (stmt, 5));
           action.set_timestamp   (sqlite3_column_int64 (stmt, 6));
           action.set_file_hash   (sqlite3_column_blob  (stmt, 7), sqlite3_column_bytes (stmt, 7));
           action.set_mtime       (sqlite3_column_int   (stmt, 8));
@@ -772,9 +773,10 @@
       action.set_action      (static_cast<ActionItem_ActionType> (sqlite3_column_int   (stmt, 2)));
       action.set_filename    (reinterpret_cast<const char *> (sqlite3_column_text  (stmt, 3)), sqlite3_column_bytes (stmt, 3));
       std::string directory  (reinterpret_cast<const char *> (sqlite3_column_text  (stmt, 4)), sqlite3_column_bytes (stmt, 4));
+      action.set_version     (sqlite3_column_int64 (stmt, 5));
+
       if (action.action () == 0)
         {
-          action.set_version     (sqlite3_column_int64 (stmt, 5));
           action.set_timestamp   (sqlite3_column_int64 (stmt, 6));
           action.set_file_hash   (sqlite3_column_blob  (stmt, 7), sqlite3_column_bytes (stmt, 7));
           action.set_mtime       (sqlite3_column_int   (stmt, 8));
diff --git a/src/state-server.cc b/src/state-server.cc
index 43f15e3..89b6095 100644
--- a/src/state-server.cc
+++ b/src/state-server.cc
@@ -77,11 +77,11 @@
   // currently supporting limited number of command.
   // will be extended to support all planned commands later
 
-  // <PREFIX_INFO>/"actions"/"all"/<nonce>/<segment>  get list of all actions
+  // <PREFIX_INFO>/"actions"/"all"/<segment>  get list of all actions
   m_ccnx->setInterestFilter (Name (m_PREFIX_INFO)("actions")("folder"), bind(&StateServer::info_actions_folder, this, _1));
   m_ccnx->setInterestFilter (Name (m_PREFIX_INFO)("actions")("file"),   bind(&StateServer::info_actions_file, this, _1));
 
-  // <PREFIX_INFO>/"filestate"/"all"/<nonce>/<segment>
+  // <PREFIX_INFO>/"filestate"/"all"/<segment>
   m_ccnx->setInterestFilter (Name (m_PREFIX_INFO)("files")("folder"), bind(&StateServer::info_files_folder, this, _1));
 
   // <PREFIX_CMD>/"restore"/"file"/<one-component-relative-file-name>/<version>/<file-hash>
@@ -174,8 +174,8 @@
 void
 StateServer::info_actions_folder (const Name &interest)
 {
-  if (interest.size () - m_PREFIX_INFO.size () != 4 &&
-      interest.size () - m_PREFIX_INFO.size () != 5)
+  if (interest.size () - m_PREFIX_INFO.size () != 3 &&
+      interest.size () - m_PREFIX_INFO.size () != 4)
     {
       _LOG_DEBUG ("Invalid interest: " << interest);
       return;
@@ -188,8 +188,8 @@
 void
 StateServer::info_actions_file (const Name &interest)
 {
-  if (interest.size () - m_PREFIX_INFO.size () != 4 &&
-      interest.size () - m_PREFIX_INFO.size () != 5)
+  if (interest.size () - m_PREFIX_INFO.size () != 3 &&
+      interest.size () - m_PREFIX_INFO.size () != 4)
     {
       _LOG_DEBUG ("Invalid interest: " << interest);
       return;
@@ -203,7 +203,7 @@
 void
 StateServer::info_actions_fileOrFolder_Execute (const Ccnx::Name &interest, bool isFolder/* = true*/)
 {
-  // <PREFIX_INFO>/"actions"/"folder|file"/<folder|file>/<nonce>/<offset>  get list of all actions
+  // <PREFIX_INFO>/"actions"/"folder|file"/<folder|file>/<offset>  get list of all actions
 
   try
     {
@@ -212,9 +212,9 @@
       /// @todo !!! add security checking
 
       string fileOrFolderName;
-      if (interest.size () - m_PREFIX_INFO.size () == 5)
-        fileOrFolderName = interest.getCompFromBackAsString (2);
-      else // == 4
+      if (interest.size () - m_PREFIX_INFO.size () == 4)
+        fileOrFolderName = interest.getCompFromBackAsString (1);
+      else // == 3
         fileOrFolderName = "";
 /*
  *   {
@@ -234,13 +234,13 @@
       bool more;
       if (isFolder)
         {
-          m_actionLog->LookupActionsInFolderRecursively
+          more = m_actionLog->LookupActionsInFolderRecursively
             (boost::bind (StateServer::formatActionJson, boost::ref(actions), _1, _2, _3),
              fileOrFolderName, offset*10, 10);
         }
       else
         {
-          m_actionLog->LookupActionsForFile
+          more = m_actionLog->LookupActionsForFile
             (boost::bind (StateServer::formatActionJson, boost::ref(actions), _1, _2, _3),
              fileOrFolderName, offset*10, 10);
         }
@@ -249,8 +249,9 @@
 
       if (more)
         {
-          Ccnx::Name more = Name (interest.getPartialName (0, interest.size () - 1))(offset + 1);
-          json.push_back (Pair ("more", lexical_cast<string> (more)));
+          json.push_back (Pair ("more", lexical_cast<string> (offset + 1)));
+          // Ccnx::Name more = Name (interest.getPartialName (0, interest.size () - 1))(offset + 1);
+          // json.push_back (Pair ("more", lexical_cast<string> (more)));
         }
 
       ostringstream os;
@@ -324,8 +325,8 @@
 void
 StateServer::info_files_folder (const Ccnx::Name &interest)
 {
-  if (interest.size () - m_PREFIX_INFO.size () != 4 &&
-      interest.size () - m_PREFIX_INFO.size () != 5)
+  if (interest.size () - m_PREFIX_INFO.size () != 3 &&
+      interest.size () - m_PREFIX_INFO.size () != 4)
     {
       _LOG_DEBUG ("Invalid interest: " << interest << ", " << interest.size () - m_PREFIX_INFO.size ());
       return;
@@ -339,7 +340,7 @@
 void
 StateServer::info_files_folder_Execute (const Ccnx::Name &interest)
 {
-  // <PREFIX_INFO>/"filestate"/"folder"/<one-component-relative-folder-name>/<nonce>/<offset>
+  // <PREFIX_INFO>/"filestate"/"folder"/<one-component-relative-folder-name>/<offset>
   try
     {
       int offset = interest.getCompFromBackAsInt (0);
@@ -347,9 +348,9 @@
       // /// @todo !!! add security checking
 
       string folder;
-      if (interest.size () - m_PREFIX_INFO.size () == 5)
-        folder = interest.getCompFromBackAsString (2);
-      else // == 4
+      if (interest.size () - m_PREFIX_INFO.size () == 4)
+        folder = interest.getCompFromBackAsString (1);
+      else // == 3
         folder = "";
 
 /*
@@ -377,8 +378,9 @@
 
       if (more)
         {
-          Ccnx::Name more = Name (interest.getPartialName (0, interest.size () - 1))(offset + 1);
-          json.push_back (Pair ("more", lexical_cast<string> (more)));
+          json.push_back (Pair ("more", lexical_cast<string> (offset + 1)));
+          // Ccnx::Name more = Name (interest.getPartialName (0, interest.size () - 1))(offset + 1);
+          // json.push_back (Pair ("more", lexical_cast<string> (more)));
         }
 
       ostringstream os;
diff --git a/src/state-server.h b/src/state-server.h
index 22caf89..8809b7f 100644
--- a/src/state-server.h
+++ b/src/state-server.h
@@ -50,15 +50,15 @@
  *
  * - state: get list of SyncNodes, their sequence numbers, and forwarding hint (almost the same as RECOVERY interest)
  *
- *   <PREFIX_INFO>/"state"   (nonce should probably be the authentification code or authentication code should in addition somewhere)
+ *   <PREFIX_INFO>/"state"   (@todo: authentification code or authentication code should in addition somewhere)
  *
  * - action
  *
  *   Get list of actions for a folder (for all files under this folder)
  *
- *   <PREFIX_INFO>/"actions"/"folder"/<nonce>/<offset>   (all actions)
+ *   <PREFIX_INFO>/"actions"/"folder"/<offset>   (all actions)
  *   or
- *   <PREFIX_INFO>/"actions"/"folder"/<one-component-relative-file-name>/<nonce>/<offset>
+ *   <PREFIX_INFO>/"actions"/"folder"/<one-component-relative-file-name>/<offset>
  *
  *   Actions are ordered in decreasing order (latest will go first).
  *
@@ -98,15 +98,15 @@
  *      },
  *
  *      // only if there are more actions available
- *      "more": "<NDN-NAME-OF-NEXT-SEGMENT-OF-ACTION>"
+ *      "more": "next segment number"
  *   }
  *
  *
  * - file
  *
- *   <PREFIX_INFO>/"files"/"folder"/<nonce>/<offset>   (full filestate)
+ *   <PREFIX_INFO>/"files"/"folder"/<offset>   (full filestate)
  *   or
- *   <PREFIX_INFO>/"files"/"folder"/<one-component-relative-folder-name>/<nonce>/<offset>
+ *   <PREFIX_INFO>/"files"/"folder"/<one-component-relative-folder-name>/<offset>
  *
  *   Each Data packets contains a list of up to 100 files.
  *   If more items are available, application data will specify URL for the next packet
@@ -132,7 +132,7 @@
  *      ]
  *
  *      // only if there are more actions available
- *      "more": "<NDN-NAME-OF-NEXT-SEGMENT-OF-FILESTATE>"
+ *      "more": "next segment number"
  *   }
  *
  * Commands available: