Ver Fonte

switch enable/disable plugins by config

Yuki Takei há 9 anos atrás
pai
commit
3d459e8a22
3 ficheiros alterados com 13 adições e 17 exclusões
  1. 6 14
      lib/crowi/index.js
  2. 3 0
      lib/views/layout/layout.html
  3. 4 3
      resource/js/app.js

+ 6 - 14
lib/crowi/index.js

@@ -32,13 +32,9 @@ function Crowi (rootdir, env)
 
   this.assets    = {};
   try {
-    this.assets = require(this.publicDir + '/js/manifest.json') || {};
-    
-    var isEnablePlugin = true;  // TODO configurable
-    if (isEnablePlugin) {
-      var pluginAssets = require(this.publicDir + '/js/manifest-plugin.json') || {};
-      this.assets = Object.assign(this.assets, pluginAssets);
-    }
+    var assets = require(this.publicDir + '/js/manifest.json') || {};
+    var pluginAssets = require(this.publicDir + '/js/manifest-plugin.json') || {};
+    this.assets = Object.assign(assets, pluginAssets);
   } catch (e) {
     // ignore
   }
@@ -120,13 +116,9 @@ Crowi.prototype.getAssetList = function() {
 
   // reload manifest
   try {
-    this.assets = JSON.parse(fs.readFileSync(this.publicDir + '/js/manifest.json'))|| {};
-
-    var isEnablePlugin = true;  // TODO configurable
-    if (isEnablePlugin) {
-      var pluginAssets = require(this.publicDir + '/js/manifest-plugin.json') || {};
-      this.assets = Object.assign(this.assets, pluginAssets);
-    }
+    var assets = require(this.publicDir + '/js/manifest.json') || {};
+    var pluginAssets = require(this.publicDir + '/js/manifest-plugin.json') || {};
+    this.assets = Object.assign(assets, pluginAssets);
   } catch (e) {
     // ignore
     debug('Failed to reload assets on development', e);

+ 3 - 0
lib/views/layout/layout.html

@@ -22,6 +22,7 @@
 <body
   class="crowi main-container {% block html_base_css %}{% endblock %}"
   data-me="{{ user._id.toString() }}"
+  data-plugin-enabled="{{ config.crowi['plugin:isEnabledPlugins'] }}"
  {% block html_base_attr %}{% endblock %}
  >
 
@@ -131,7 +132,9 @@
 </body>
 {% endblock %}
 
+{% if config.crowi['plugin:isEnabledPlugins'] %}
 <script src="{{ assets('/js/plugin.js') }}"></script>
+{% endif %}
 <script src="{{ assets('/js/crowi.js') }}"></script>
 <script src="{{ assets('/js/app.js') }}"></script>
 </html>

+ 4 - 3
resource/js/app.js

@@ -21,9 +21,10 @@ crowi.fetchUsers();
 const crowiRenderer = new CrowiRenderer();
 window.crowiRenderer = crowiRenderer;
 
-var isEnablePlugin = true;  // TODO configurable
-if (isEnablePlugin) {
-  var crowiPlugin = window.crowiPlugin;   // FIXME
+// FIXME
+var isEnabledPlugins = $('body').data('plugin-enabled');
+if (isEnabledPlugins) {
+  var crowiPlugin = window.crowiPlugin;
   crowiPlugin.pluginPreProcessors(crowi, crowiRenderer);
 }