Просмотр исходного кода

disable codes according to the config value

Yuki Takei 8 лет назад
Родитель
Сommit
eeb83f9e0f
2 измененных файлов с 27 добавлено и 9 удалено
  1. 13 0
      lib/models/config.js
  2. 14 9
      resource/js/legacy/crowi.js

+ 13 - 0
lib/models/config.js

@@ -320,6 +320,18 @@ module.exports = function(crowi) {
     return config.crowi['customize:isEnabledTimeline'];
   };
 
+  configSchema.statics.isSavedStatesOfTabChanges = function(config)
+  {
+    const key = 'customize:isSavedStatesOfTabChanges';
+
+    // return the default value if undefined
+    if (undefined === config.crowi || undefined === config.crowi[key]) {
+      return getDefaultCrowiConfigs()[key];
+    }
+
+    return config.crowi[key];
+  };
+
   configSchema.statics.fileUploadEnabled = function(config)
   {
     const Config = this;
@@ -373,6 +385,7 @@ module.exports = function(crowi) {
       },
       behaviorType: Config.behaviorType(config),
       layoutType: Config.layoutType(config),
+      isSavedStatesOfTabChanges: Config.isSavedStatesOfTabChanges(config),
       env: {
         PLANTUML_URI: env.PLANTUML_URI || null,
         MATHJAX: env.MATHJAX || null,

+ 14 - 9
resource/js/legacy/crowi.js

@@ -180,6 +180,8 @@ Crowi.modifyScrollTop = function() {
 
 
 $(function() {
+  var config = JSON.parse(document.getElementById('crowi-context-hydrate').textContent || '{}');
+
   var pageId = $('#content-main').data('page-id');
   var revisionId = $('#content-main').data('page-revision-id');
   var revisionCreatedAt = $('#content-main').data('page-revision-created');
@@ -187,6 +189,7 @@ $(function() {
   var isSeen = $('#content-main').data('page-is-seen');
   var pagePath= $('#content-main').data('path');
   var isEnabledLineBreaks = $('#content-main').data('linebreaks-enabled');
+  var isSavedStatesOfTabChanges = config['isSavedStatesOfTabChanges'];
 
   // generate options obj
   var rendererOptions = {
@@ -752,15 +755,17 @@ $(function() {
   } // end if pageId
 
   // hash handling
-  $('a[data-toggle="tab"][href="#revision-history"]').on('show.bs.tab', function() {
-    window.history.pushState('', 'History', '#revision-history');
-  });
-  $('a[data-toggle="tab"][href="#edit-form"]').on('show.bs.tab', function() {
-    window.history.pushState('', 'Edit', '#edit-form');
-  });
-  $('a[data-toggle="tab"][href="#revision-body"]').on('show.bs.tab', function() {
-    window.history.pushState('', '',  location.href.replace(location.hash, ''));
-  });
+  if (isSavedStatesOfTabChanges) {
+    $('a[data-toggle="tab"][href="#revision-history"]').on('show.bs.tab', function() {
+      window.history.pushState('', 'History', '#revision-history');
+    });
+    $('a[data-toggle="tab"][href="#edit-form"]').on('show.bs.tab', function() {
+      window.history.pushState('', 'Edit', '#edit-form');
+    });
+    $('a[data-toggle="tab"][href="#revision-body"]').on('show.bs.tab', function() {
+      window.history.pushState('', '',  location.href.replace(location.hash, ''));
+    });
+  }
 });
 
 Crowi.getRevisionBodyContent = function() {