diff --git a/src/General/Config.coffee b/src/General/Config.coffee index 67f941ae4..525d65438 100755 --- a/src/General/Config.coffee +++ b/src/General/Config.coffee @@ -935,3 +935,5 @@ Config = 'Increase the intervals between updates on threads without new posts.' ] 'Interval': 30 + + additionalCooldown: 0 diff --git a/src/General/Settings.coffee b/src/General/Settings.coffee index 1518da3df..af928ff94 100755 --- a/src/General/Settings.coffee +++ b/src/General/Settings.coffee @@ -315,7 +315,7 @@ Settings = items = {} inputs = {} - for name in ['boardnav', 'time', 'backlink', 'fileInfo', 'favicon', 'usercss'] + for name in ['boardnav', 'time', 'backlink', 'fileInfo', 'favicon', 'usercss', 'additionalCooldown'] input = $ "[name='#{name}']", section items[name] = Conf[name] inputs[name] = input @@ -339,7 +339,7 @@ Settings = for key, val of items input = inputs[key] input.value = val - continue if key is 'usercss' + continue if key in ['usercss', 'additionalCooldown'] Settings[key].call input return diff --git a/src/General/css/style.css b/src/General/css/style.css index 3fc0a04a6..477947a8b 100755 --- a/src/General/css/style.css +++ b/src/General/css/style.css @@ -1321,6 +1321,12 @@ input#qr-filename:not(.edit) { #file-n-submit { height: 23px; } +#file-n-submit.add-cooldown { + height: 43px; +} +#file-n-submit:not(.add-cooldown) #add-cooldown-label { + display: none; +} #qr input[type="file"] { visibility: hidden; position: absolute; diff --git a/src/General/html/Features/QuickReply.html b/src/General/html/Features/QuickReply.html index c1401fc53..fa1187734 100755 --- a/src/General/html/Features/QuickReply.html +++ b/src/General/html/Features/QuickReply.html @@ -36,6 +36,7 @@ + diff --git a/src/General/html/Settings/Advanced.html b/src/General/html/Settings/Advanced.html index 6a2b6c095..1170a85d0 100755 --- a/src/General/html/Settings/Advanced.html +++ b/src/General/html/Settings/Advanced.html @@ -109,6 +109,13 @@ +
+ Additional Cooldown Time +
+ Seconds: +
+
+
diff --git a/src/Posting/QR.coffee b/src/Posting/QR.coffee index fad4e913c..b2cfeb098 100644 --- a/src/Posting/QR.coffee +++ b/src/Posting/QR.coffee @@ -166,6 +166,12 @@ QR = else QR.unhide() + toggleAddCooldown: -> + if @checked + QR.cooldown.addCooldown = true + else + QR.cooldown.addCooldown = false + error: (err) -> QR.open() if typeof err is 'string' @@ -485,6 +491,7 @@ QR = setNode 'spoilerPar', '#qr-spoiler-label' setNode 'status', '[type=submit]' setNode 'fileInput', '[type=file]' + setNode 'addCooldown', '[data-name=addCooldown]' rules = $('ul.rules').textContent.trim() match_min = rules.match(/.+smaller than (\d+)x(\d+).+/) @@ -522,6 +529,11 @@ QR = else nodes.spoiler.parentElement.hidden = true + if parseInt(Conf['additionalCooldown']) > 0 + $.addClass QR.nodes.fileSubmit, 'add-cooldown' + else + $.rmClass QR.nodes.fileSubmit, 'add-cooldown' + if g.BOARD.ID is 'f' and g.VIEW isnt 'thread' nodes.flashTag = $.el 'select', name: 'filetag' @@ -552,6 +564,8 @@ QR = $.on nodes.fileExtras, 'click', (e) -> e.stopPropagation() $.on nodes.spoiler, 'change', -> QR.selected.nodes.spoiler.click() $.on nodes.fileInput, 'change', QR.handleFiles + if parseInt(Conf['additionalCooldown']) > 0 + $.on nodes.addCooldown,'change', QR.toggleAddCooldown # save selected post's data items = ['thread', 'name', 'email', 'sub', 'com', 'filename'] diff --git a/src/Posting/QR.cooldown.coffee b/src/Posting/QR.cooldown.coffee index ba5e4de65..50bf5aee4 100644 --- a/src/Posting/QR.cooldown.coffee +++ b/src/Posting/QR.cooldown.coffee @@ -110,6 +110,8 @@ QR.cooldown = QR.cooldown.maxDelay else QR.cooldown.delays[if scope is 'global' then 'thread_global' else 'thread'] + if QR.cooldown.addCooldown + maxDelay += parseInt(Conf['additionalCooldown']) if maxDelay <= elapsed delete QR.cooldown[scope][start] save = true @@ -127,6 +129,10 @@ QR.cooldown = '' seconds = Math.max seconds, QR.cooldown.delays[type + suffix] - elapsed + # If additional cooldown is enabled, add the configured seconds to the count. + if QR.cooldown.addCooldown + seconds = Math.max seconds, QR.cooldown.delays[type] + parseInt(Conf['additionalCooldown']) - elapsed + QR.cooldown.save scope if save if Object.keys(QR.cooldown.local).length + Object.keys(QR.cooldown.global).length