From 0b0554def2c1bd44240e2d664e9d6f3f86cd2241 Mon Sep 17 00:00:00 2001
From: cgeek <cem.moreau@gmail.com>
Date: Thu, 11 May 2017 21:02:06 +0200
Subject: [PATCH] [fix] #976 Bug on Duniter UI button "Reset data"

---
 index.js  | 34 ++++++++++++++++++----------------
 server.js |  6 ++++++
 2 files changed, 24 insertions(+), 16 deletions(-)

diff --git a/index.js b/index.js
index 74263d44a..535748f12 100644
--- a/index.js
+++ b/index.js
@@ -188,24 +188,26 @@ function Stack(dependencies) {
 
     // Initialize server (db connection, ...)
     try {
-      yield server.plugFileSystem();
+      server.onPluggedFSHook = () => co(function*() {
 
-      // Register the configuration hook for loading phase (overrides the loaded data)
-      server.dal.loadConfHook = (conf) => co(function*() {
-        // Loading injection
-        for (const callback of configLoadingCallbacks) {
-          yield callback(conf, program, logger, server.dal.confDAL);
-        }
-      });
+        // Register the configuration hook for loading phase (overrides the loaded data)
+        server.dal.loadConfHook = (conf) => co(function*() {
+          // Loading injection
+          for (const callback of configLoadingCallbacks) {
+            yield callback(conf, program, logger, server.dal.confDAL);
+          }
+        });
 
-      // Register the configuration hook for saving phase (overrides the saved data)
-      server.dal.saveConfHook = (conf) => co(function*() {
-        const clonedConf = _.clone(conf);
-        for (const callback of configBeforeSaveCallbacks) {
-          yield callback(clonedConf, program, logger, server.dal.confDAL);
-        }
-        return clonedConf;
-      });
+        // Register the configuration hook for saving phase (overrides the saved data)
+        server.dal.saveConfHook = (conf) => co(function*() {
+          const clonedConf = _.clone(conf);
+          for (const callback of configBeforeSaveCallbacks) {
+            yield callback(clonedConf, program, logger, server.dal.confDAL);
+          }
+          return clonedConf;
+        });
+      })
+      yield server.plugFileSystem();
 
       const conf = yield server.loadConf();
 
diff --git a/server.js b/server.js
index dd69d2b19..e8cb1a2dc 100644
--- a/server.js
+++ b/server.js
@@ -90,6 +90,7 @@ function Server (home, memoryOnly, overrideConf) {
     logger.debug('Plugging file system...');
     const params = yield paramsP;
     that.dal = fileDAL(params);
+    yield that.onPluggedFSHook()
   });
 
   this.unplugFileSystem = () => co(function *() {
@@ -453,6 +454,11 @@ function Server (home, memoryOnly, overrideConf) {
    * Default WoT transforming method for certs => links. To be overriden by a module.
    */
   this.generatorNewCertsToLinks = () => Promise.resolve({})
+
+  /*
+   * Default hook on file system plugging. To be overriden by module system.
+   */
+  this.onPluggedFSHook = () => Promise.resolve({})
 }
 
 util.inherits(Server, stream.Duplex);
-- 
GitLab