80 lines
2.3 KiB
JavaScript
80 lines
2.3 KiB
JavaScript
import { url } from 'discourse/lib/computed';
|
|
|
|
const sections = ['css', 'header', 'top', 'footer', 'head-tag', 'body-tag',
|
|
'mobile-css', 'mobile-header', 'mobile-top', 'mobile-footer',
|
|
'embedded-css'];
|
|
|
|
const activeSections = {};
|
|
sections.forEach(function(s) {
|
|
activeSections[Ember.String.camelize(s) + "Active"] = Ember.computed.equal('section', s);
|
|
});
|
|
|
|
|
|
export default Ember.Controller.extend(activeSections, {
|
|
maximized: false,
|
|
section: null,
|
|
|
|
previewUrl: url("model.key", "/?preview-style=%@"),
|
|
downloadUrl: url('model.id', '/admin/site_customizations/%@'),
|
|
|
|
mobile: function() {
|
|
return this.get('section').indexOf('mobile-') === 0;
|
|
}.property('section'),
|
|
|
|
maximizeIcon: function() {
|
|
return this.get('maximized') ? 'compress' : 'expand';
|
|
}.property('maximized'),
|
|
|
|
saveButtonText: function() {
|
|
return this.get('model.isSaving') ? I18n.t('saving') : I18n.t('admin.customize.save');
|
|
}.property('model.isSaving'),
|
|
|
|
saveDisabled: function() {
|
|
return !this.get('model.changed') || this.get('model.isSaving');
|
|
}.property('model.changed', 'model.isSaving'),
|
|
|
|
needs: ['adminCustomizeCssHtml'],
|
|
|
|
undoPreviewUrl: url('/?preview-style='),
|
|
defaultStyleUrl: url('/?preview-style=default'),
|
|
|
|
actions: {
|
|
save() {
|
|
this.get('model').saveChanges();
|
|
},
|
|
|
|
destroy() {
|
|
const self = this;
|
|
return bootbox.confirm(I18n.t("admin.customize.delete_confirm"), I18n.t("no_value"), I18n.t("yes_value"), function(result) {
|
|
if (result) {
|
|
const model = self.get('model');
|
|
model.destroyRecord().then(function() {
|
|
self.get('controllers.adminCustomizeCssHtml').get('model').removeObject(model);
|
|
self.transitionToRoute('adminCustomizeCssHtml');
|
|
});
|
|
}
|
|
});
|
|
},
|
|
|
|
toggleMaximize: function() {
|
|
this.toggleProperty('maximized');
|
|
},
|
|
|
|
toggleMobile: function() {
|
|
const section = this.get('section');
|
|
|
|
// Try to send to the same tab as before
|
|
let dest;
|
|
if (this.get('mobile')) {
|
|
dest = section.replace('mobile-', '');
|
|
if (sections.indexOf(dest) === -1) { dest = 'css'; }
|
|
} else {
|
|
dest = 'mobile-' + section;
|
|
if (sections.indexOf(dest) === -1) { dest = 'mobile-css'; }
|
|
}
|
|
this.replaceRoute('adminCustomizeCssHtml.show', this.get('model.id'), dest);
|
|
}
|
|
}
|
|
|
|
});
|