diff --git a/app/assets/javascripts/admin/controllers/admin-site-settings.js.es6 b/app/assets/javascripts/admin/controllers/admin-site-settings.js.es6 index 02a907d7af9..abfd1d29349 100644 --- a/app/assets/javascripts/admin/controllers/admin-site-settings.js.es6 +++ b/app/assets/javascripts/admin/controllers/admin-site-settings.js.es6 @@ -1,4 +1,5 @@ import debounce from 'discourse/lib/debounce'; +import { ajax } from 'discourse/lib/ajax'; export default Ember.Controller.extend({ filter: null, @@ -70,7 +71,36 @@ export default Ember.Controller.extend({ toggleMenu() { $('.admin-detail').toggleClass('mobile-closed mobile-open'); + }, + + toggleReadOnlyMode() { + var self = this; + if (!this.site.get("isReadOnly")) { + bootbox.confirm( + I18n.t("admin.backups.read_only.enable.confirm"), + I18n.t("no_value"), + I18n.t("yes_value"), + function(confirmed) { + if (confirmed) { + Discourse.User.currentProp("hideReadOnlyAlert", true); + self._toggleReadOnlyMode(true); + } + } + ); + } else { + this._toggleReadOnlyMode(false); + } } + }, + + _toggleReadOnlyMode(enable) { + var site = this.site; + ajax("/admin/backups/readonly", { + type: "PUT", + data: { enable: enable } + }).then(() => { + site.set("isReadOnly", enable); + }); } }); diff --git a/app/assets/javascripts/admin/templates/site-settings.hbs b/app/assets/javascripts/admin/templates/site-settings.hbs index 5fd95459324..40d0f324702 100644 --- a/app/assets/javascripts/admin/templates/site-settings.hbs +++ b/app/assets/javascripts/admin/templates/site-settings.hbs @@ -1,5 +1,10 @@