From c1aa46c663ea7ed92c371d0ea95cbbc6f9da6ad3 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Wed, 14 Mar 2018 15:23:08 -0400 Subject: [PATCH] added new option to disable post diffs /cc @BenLubar --- public/language/en-GB/admin/settings/post.json | 3 ++- src/controllers/api.js | 1 + src/posts/diffs.js | 5 +++++ src/posts/edit.js | 5 +++++ src/views/admin/settings/post.tpl | 6 ++++++ 5 files changed, 19 insertions(+), 1 deletion(-) diff --git a/public/language/en-GB/admin/settings/post.json b/public/language/en-GB/admin/settings/post.json index 6a1ab9a2a5..6594fe384b 100644 --- a/public/language/en-GB/admin/settings/post.json +++ b/public/language/en-GB/admin/settings/post.json @@ -49,5 +49,6 @@ "composer.enable-plugin-help": "Allow plugins to add content to the help tab", "composer.custom-help": "Custom Help Text", "ip-tracking": "IP Tracking", - "ip-tracking.each-post": "Track IP Address for each post" + "ip-tracking.each-post": "Track IP Address for each post", + "enable-post-history": "Enable Post History" } \ No newline at end of file diff --git a/src/controllers/api.js b/src/controllers/api.js index c64d054595..ed8ad64700 100644 --- a/src/controllers/api.js +++ b/src/controllers/api.js @@ -61,6 +61,7 @@ apiController.loadConfig = function (req, callback) { config.searchEnabled = plugins.hasListeners('filter:search.query'); config.bootswatchSkin = meta.config.bootswatchSkin || 'noskin'; config.defaultBootswatchSkin = meta.config.bootswatchSkin || 'noskin'; + config.enablePostHistory = parseInt(meta.config.enablePostHistory || 1, 10) === 1; if (config.useOutgoingLinksPage) { config.outgoingLinksWhitelist = meta.config['outgoingLinks:whitelist']; diff --git a/src/posts/diffs.js b/src/posts/diffs.js index 2ff5296f0c..782115b74b 100644 --- a/src/posts/diffs.js +++ b/src/posts/diffs.js @@ -5,12 +5,17 @@ var validator = require('validator'); var diff = require('diff'); var db = require('../database'); +var meta = require('../meta'); var plugins = require('../plugins'); var translator = require('../translator'); var Diffs = {}; Diffs.exists = function (pid, callback) { + if (parseInt(meta.config.enablePostHistory || 1, 10) !== 1) { + return callback(null, 0); + } + db.listLength('post:' + pid + ':diffs', function (err, numDiffs) { return callback(err, !!numDiffs); }); diff --git a/src/posts/edit.js b/src/posts/edit.js index 2ca8e3b534..1f9ffcf5ad 100644 --- a/src/posts/edit.js +++ b/src/posts/edit.js @@ -5,6 +5,7 @@ var validator = require('validator'); var _ = require('lodash'); var db = require('../database'); +var meta = require('../meta'); var topics = require('../topics'); var user = require('../user'); var privileges = require('../privileges'); @@ -66,6 +67,10 @@ module.exports = function (Posts) { Posts.setPostFields(data.pid, postData, next); }, function (next) { + if (parseInt(meta.config.enablePostHistory || 1, 10) !== 1) { + return setImmediate(next); + } + Posts.diffs.save(data.pid, oldContent, data.content, next); }, function (next) { diff --git a/src/views/admin/settings/post.tpl b/src/views/admin/settings/post.tpl index 3eb7be42b8..c1bf5a780d 100644 --- a/src/views/admin/settings/post.tpl +++ b/src/views/admin/settings/post.tpl @@ -236,6 +236,12 @@ +
+ +