mirror of
https://github.com/codeninjasllc/discourse.git
synced 2024-11-28 18:17:29 -05:00
32 lines
957 B
Text
32 lines
957 B
Text
|
import RestModel from 'discourse/models/rest';
|
||
|
|
||
|
const trackedProperties = [
|
||
|
'enabled', 'name', 'stylesheet', 'header', 'top', 'footer', 'mobile_stylesheet',
|
||
|
'mobile_header', 'mobile_top', 'mobile_footer', 'head_tag', 'body_tag'
|
||
|
];
|
||
|
|
||
|
function changed() {
|
||
|
const originals = this.get('originals');
|
||
|
if (!originals) { return false; }
|
||
|
return _.some(trackedProperties, (p) => originals[p] !== this.get(p));
|
||
|
}
|
||
|
|
||
|
const SiteCustomization = RestModel.extend({
|
||
|
description: function() {
|
||
|
return "" + this.name + (this.enabled ? ' (*)' : '');
|
||
|
}.property('selected', 'name', 'enabled'),
|
||
|
|
||
|
changed: changed.property.apply(changed, trackedProperties.concat('originals')),
|
||
|
|
||
|
startTrackingChanges: function() {
|
||
|
this.set('originals', this.getProperties(trackedProperties));
|
||
|
}.on('init'),
|
||
|
|
||
|
saveChanges() {
|
||
|
return this.save(this.getProperties(trackedProperties)).then(() => this.startTrackingChanges());
|
||
|
},
|
||
|
|
||
|
});
|
||
|
|
||
|
export default SiteCustomization;
|