diff --git a/packages/rocketchat-autolinker/client/client.js b/packages/rocketchat-autolinker/client/client.js index 4c91838d5e00..a4ac42cb937a 100644 --- a/packages/rocketchat-autolinker/client/client.js +++ b/packages/rocketchat-autolinker/client/client.js @@ -6,6 +6,10 @@ import Autolinker from 'autolinker'; function AutoLinker(message) { + if (RocketChat.settings.get('AutoLinker') !== true) { + return message; + } + if (_.trim(message.html)) { const regUrls = new RegExp(RocketChat.settings.get('AutoLinker_UrlsRegExp')); diff --git a/packages/rocketchat-autolinker/server/settings.js b/packages/rocketchat-autolinker/server/settings.js index 72205b5547ab..469ced41f874 100644 --- a/packages/rocketchat-autolinker/server/settings.js +++ b/packages/rocketchat-autolinker/server/settings.js @@ -1,9 +1,16 @@ Meteor.startup(function() { - RocketChat.settings.add('AutoLinker_StripPrefix', false, {type: 'boolean', group: 'Message', section: 'AutoLinker', public: true, i18nDescription: 'AutoLinker_StripPrefix_Description'}); - RocketChat.settings.add('AutoLinker_Urls_Scheme', true, {type: 'boolean', group: 'Message', section: 'AutoLinker', public: true}); - RocketChat.settings.add('AutoLinker_Urls_www', true, {type: 'boolean', group: 'Message', section: 'AutoLinker', public: true}); - RocketChat.settings.add('AutoLinker_Urls_TLD', true, {type: 'boolean', group: 'Message', section: 'AutoLinker', public: true}); - RocketChat.settings.add('AutoLinker_UrlsRegExp', '(://|www\\.).+', {type: 'string', group: 'Message', section: 'AutoLinker', public: true}); - RocketChat.settings.add('AutoLinker_Email', true, {type: 'boolean', group: 'Message', section: 'AutoLinker', public: true}); - RocketChat.settings.add('AutoLinker_Phone', true, {type: 'boolean', group: 'Message', section: 'AutoLinker', public: true, i18nDescription: 'AutoLinker_Phone_Description'}); + const enableQuery = { + _id: 'AutoLinker', + value: true + }; + + RocketChat.settings.add('AutoLinker', false, {type: 'boolean', group: 'Message', section: 'AutoLinker', public: true, i18nLabel: 'Enabled'}); + + RocketChat.settings.add('AutoLinker_StripPrefix', false, {type: 'boolean', group: 'Message', section: 'AutoLinker', public: true, i18nDescription: 'AutoLinker_StripPrefix_Description', enableQuery}); + RocketChat.settings.add('AutoLinker_Urls_Scheme', true, {type: 'boolean', group: 'Message', section: 'AutoLinker', public: true, enableQuery}); + RocketChat.settings.add('AutoLinker_Urls_www', true, {type: 'boolean', group: 'Message', section: 'AutoLinker', public: true, enableQuery}); + RocketChat.settings.add('AutoLinker_Urls_TLD', true, {type: 'boolean', group: 'Message', section: 'AutoLinker', public: true, enableQuery}); + RocketChat.settings.add('AutoLinker_UrlsRegExp', '(://|www\\.).+', {type: 'string', group: 'Message', section: 'AutoLinker', public: true, enableQuery}); + RocketChat.settings.add('AutoLinker_Email', true, {type: 'boolean', group: 'Message', section: 'AutoLinker', public: true, enableQuery}); + RocketChat.settings.add('AutoLinker_Phone', true, {type: 'boolean', group: 'Message', section: 'AutoLinker', public: true, i18nDescription: 'AutoLinker_Phone_Description', enableQuery}); }); diff --git a/packages/rocketchat-markdown/markdown.js b/packages/rocketchat-markdown/markdown.js index 77d690ddf923..629077742899 100644 --- a/packages/rocketchat-markdown/markdown.js +++ b/packages/rocketchat-markdown/markdown.js @@ -31,6 +31,11 @@ class MarkdownClass { parseMessageNotEscaped(message) { const parser = RocketChat.settings.get('Markdown_Parser'); + + if (parser === 'disabled') { + return message; + } + if (typeof parsers[parser] === 'function') { return parsers[parser](message); } diff --git a/packages/rocketchat-markdown/settings.js b/packages/rocketchat-markdown/settings.js index e03cdbe2e311..13f614c52ce6 100644 --- a/packages/rocketchat-markdown/settings.js +++ b/packages/rocketchat-markdown/settings.js @@ -5,6 +5,9 @@ Meteor.startup(() => { RocketChat.settings.add('Markdown_Parser', 'original', { type: 'select', values: [{ + key: 'disabled', + i18nLabel: 'Disabled' + }, { key: 'original', i18nLabel: 'Original' }, { diff --git a/packages/rocketchat-ui-message/client/messageBox.js b/packages/rocketchat-ui-message/client/messageBox.js index cc1d30670951..6028c4d0311a 100644 --- a/packages/rocketchat-ui-message/client/messageBox.js +++ b/packages/rocketchat-ui-message/client/messageBox.js @@ -97,7 +97,7 @@ const markdownButtons = [ icon: 'italic', pattern: '_{{text}}_', command: 'i', - condition: () => RocketChat.Markdown + condition: () => RocketChat.Markdown && RocketChat.settings.get('Markdown_Parser') !== 'disabled' }, { label: 'strike', @@ -115,13 +115,13 @@ const markdownButtons = [ label: 'inline_code', icon: 'code', pattern: '`{{text}}`', - condition: () => RocketChat.Markdown + condition: () => RocketChat.Markdown && RocketChat.settings.get('Markdown_Parser') !== 'disabled' }, { label: 'multi_line', icon: 'multi-line', pattern: '```\n{{text}}\n``` ', - condition: () => RocketChat.Markdown + condition: () => RocketChat.Markdown && RocketChat.settings.get('Markdown_Parser') !== 'disabled' }, { label: katexSyntax,