Add site setting category support

This commit is contained in:
Neil Lalonde
2013-11-13 14:02:47 -05:00
parent 791f5ac94e
commit 1e37abc310
14 changed files with 397 additions and 285 deletions

View File

@ -103,21 +103,25 @@ Discourse.SiteSetting = Discourse.Model.extend({
Discourse.SiteSetting.reopenClass({
/**
Retrieve all settings from the server
@method findAll
**/
findAll: function() {
var result = Em.A();
Discourse.ajax("/admin/site_settings").then(function (settings) {
return Discourse.ajax("/admin/site_settings").then(function (settings) {
// Group the results by category
var categoryNames = [],
categories = {},
result = Em.A();
_.each(settings.site_settings,function(s) {
s.originalValue = s.value;
result.pushObject(Discourse.SiteSetting.create(s));
if (!categoryNames.contains(s.category)) {
categoryNames.pushObject(s.category);
categories[s.category] = Em.A();
}
categories[s.category].pushObject(Discourse.SiteSetting.create(s));
});
result.set('diags', settings.diags);
_.each(categoryNames, function(n) {
result.pushObject({nameKey: n, name: I18n.t('admin.site_settings.categories.' + n),siteSettings: categories[n]});
});
return result;
});
return result;
},
update: function(key, value) {
@ -126,6 +130,7 @@ Discourse.SiteSetting.reopenClass({
data: { value: value }
});
}
});