diff --git a/app/assets/javascripts/admin/controllers/admin-site-text-index.js.es6 b/app/assets/javascripts/admin/controllers/admin-site-text-index.js.es6 index 0c770bd06bd..bc2147e9232 100644 --- a/app/assets/javascripts/admin/controllers/admin-site-text-index.js.es6 +++ b/app/assets/javascripts/admin/controllers/admin-site-text-index.js.es6 @@ -1,38 +1,14 @@ -import { default as computed } from 'ember-addons/ember-computed-decorators'; - let lastSearch; +let lastOverridden; export default Ember.Controller.extend({ - _q: null, searching: false, siteTexts: null, preferred: false, - _overridden: null, queryParams: ['q', 'overridden'], - @computed - overridden: { - set(value) { - if (!value || value === "false") { value = false; } - this._overridden = value; - return value; - }, - get() { - return this._overridden; - } - }, - - @computed - q: { - set(value) { - if (Ember.isEmpty(value)) { value = null; } - this._q = value; - return value; - }, - get() { - return this._q; - } - }, + q: null, + overridden: null, _performSearch() { this.store.find('site-text', this.getProperties('q', 'overridden')).then(results => { @@ -46,11 +22,14 @@ export default Ember.Controller.extend({ }, search(overridden) { + this.set('overridden', overridden); + const q = this.get('q'); - if (q !== lastSearch || overridden) { + if (q !== lastSearch || overridden !== lastOverridden) { this.set('searching', true); Ember.run.debounce(this, this._performSearch, 400); lastSearch = q; + lastOverridden = overridden; } } } diff --git a/app/assets/javascripts/discourse/components/d-checkbox.js.es6 b/app/assets/javascripts/discourse/components/d-checkbox.js.es6 index bb15966c4d3..5e50bf98eda 100644 --- a/app/assets/javascripts/discourse/components/d-checkbox.js.es6 +++ b/app/assets/javascripts/discourse/components/d-checkbox.js.es6 @@ -3,16 +3,23 @@ import { on } from "ember-addons/ember-computed-decorators"; export default Ember.Component.extend({ tagName: 'label', - @on('didInsertElement') - _watchChanges() { + didInsertElement() { + this._super(); + + const checked = this.get('checked'); + if (checked && checked !== "false") { + this.$('input').prop('checked', true); + } + // In Ember 13.3 we can use action on the checkbox `{{input}}` but not in 1.11 this.$('input').on('click.d-checkbox', () => { - Ember.run.scheduleOnce('afterRender', () => this.sendAction('change', true)); + Ember.run.scheduleOnce('afterRender', () => this.sendAction('change', this.$('input').prop('checked'))); }); }, @on('willDestroyElement') - _stopWatching() { + willDestroyElement() { + this._super(); this.$('input').off('click.d-checkbox'); } }); diff --git a/app/assets/javascripts/discourse/templates/components/d-checkbox.hbs b/app/assets/javascripts/discourse/templates/components/d-checkbox.hbs index b4bbae64a24..f39a68e79c9 100644 --- a/app/assets/javascripts/discourse/templates/components/d-checkbox.hbs +++ b/app/assets/javascripts/discourse/templates/components/d-checkbox.hbs @@ -1,2 +1,2 @@ -{{input type="checkbox" checked=checked}} + {{i18n label}}