diff --git a/app/assets/javascripts/discourse/app/components/future-date-input.js b/app/assets/javascripts/discourse/app/components/future-date-input.js index ab0f447601c..f1d7752fb1b 100644 --- a/app/assets/javascripts/discourse/app/components/future-date-input.js +++ b/app/assets/javascripts/discourse/app/components/future-date-input.js @@ -17,6 +17,7 @@ export default Component.extend({ isBasedOnLastPost: equal("selection", "set_based_on_last_post"), displayDateAndTimePicker: and("includeDateTime", "isCustom"), displayLabel: null, + labelClasses: null, displayNumberInput: or("isBasedOnLastPost", "isBasedOnDuration"), init() { diff --git a/app/assets/javascripts/discourse/app/controllers/edit-slow-mode.js b/app/assets/javascripts/discourse/app/controllers/edit-slow-mode.js index e76573617f9..84f990eeb48 100644 --- a/app/assets/javascripts/discourse/app/controllers/edit-slow-mode.js +++ b/app/assets/javascripts/discourse/app/controllers/edit-slow-mode.js @@ -14,6 +14,7 @@ export default Controller.extend(ModalFunctionality, { minutes: null, seconds: null, saveDisabled: false, + enabledUntil: null, showCustomSelect: equal("selectedSlowMode", "custom"), init() { @@ -99,7 +100,7 @@ export default Controller.extend(ModalFunctionality, { this._parseValue(this.seconds) ); - Topic.setSlowMode(this.model.id, seconds) + Topic.setSlowMode(this.model.id, seconds, this.enabledUntil) .catch(popupAjaxError) .then(() => { this.set("model.slow_mode_seconds", seconds); diff --git a/app/assets/javascripts/discourse/app/models/topic.js b/app/assets/javascripts/discourse/app/models/topic.js index 819f8c8ff04..c350c5e7470 100644 --- a/app/assets/javascripts/discourse/app/models/topic.js +++ b/app/assets/javascripts/discourse/app/models/topic.js @@ -837,8 +837,10 @@ Topic.reopenClass({ return ajax(`/t/id_for/${slug}`); }, - setSlowMode(topicId, seconds) { + setSlowMode(topicId, seconds, enabledUntil) { const data = { seconds }; + data.enabled_until = enabledUntil; + return ajax(`/t/${topicId}/slow_mode`, { type: "PUT", data }); }, }); diff --git a/app/assets/javascripts/discourse/app/templates/components/future-date-input.hbs b/app/assets/javascripts/discourse/app/templates/components/future-date-input.hbs index 43c7e421e00..aa92210bc75 100644 --- a/app/assets/javascripts/discourse/app/templates/components/future-date-input.hbs +++ b/app/assets/javascripts/discourse/app/templates/components/future-date-input.hbs @@ -1,7 +1,7 @@
{{#unless isBasedOnDuration}}
- + {{future-date-input-selector minimumResultsForSearch=-1 statusType=statusType diff --git a/app/assets/javascripts/discourse/app/templates/modal/edit-slow-mode.hbs b/app/assets/javascripts/discourse/app/templates/modal/edit-slow-mode.hbs index 956db77d769..fdf231d1308 100644 --- a/app/assets/javascripts/discourse/app/templates/modal/edit-slow-mode.hbs +++ b/app/assets/javascripts/discourse/app/templates/modal/edit-slow-mode.hbs @@ -25,6 +25,18 @@ {{input value=seconds type="number" class="input-small"}}
{{/if}} + +
+ {{future-date-input + class="enabled-until" + label="topic.slow_mode_update.enabled_until" + labelClasses="slow-mode-label" + includeFarFuture=false + clearable=true + input=enabledUntil + onChangeInput=(action (mut enabledUntil)) + }} +
{{/d-modal-body}}