diff --git a/ghost/admin/models/settings.js b/ghost/admin/models/settings.js
index dc1ea5ef84..31f1c7000a 100644
--- a/ghost/admin/models/settings.js
+++ b/ghost/admin/models/settings.js
@@ -4,7 +4,7 @@
// Set the url manually and id to '0' to force PUT requests
Ghost.Models.Settings = Backbone.Model.extend({
- url: '/api/v0.1/settings/',
+ url: Ghost.settings.apiRoot + '/settings',
id: "0",
defaults: {
title: 'My Blog',
diff --git a/ghost/admin/models/themes.js b/ghost/admin/models/themes.js
new file mode 100644
index 0000000000..47549b758d
--- /dev/null
+++ b/ghost/admin/models/themes.js
@@ -0,0 +1,9 @@
+/*global window, document, Ghost, $, _, Backbone */
+(function () {
+ "use strict";
+
+ Ghost.Models.Themes = Backbone.Model.extend({
+ url: Ghost.settings.apiRoot + '/themes'
+ });
+
+}());
\ No newline at end of file
diff --git a/ghost/admin/tpl/settings/general.hbs b/ghost/admin/tpl/settings/general.hbs
index 7846eb09c9..ffbb06709a 100644
--- a/ghost/admin/tpl/settings/general.hbs
+++ b/ghost/admin/tpl/settings/general.hbs
@@ -50,6 +50,15 @@
+
+
+
+
+
diff --git a/ghost/admin/views/settings.js b/ghost/admin/views/settings.js
index 92c4886727..640c93a6f2 100644
--- a/ghost/admin/views/settings.js
+++ b/ghost/admin/views/settings.js
@@ -41,7 +41,8 @@
showContent: function (id) {
var self = this,
- model;
+ model,
+ themes;
Ghost.router.navigate('/settings/' + id);
Ghost.trigger('urlchange');
@@ -53,9 +54,13 @@
this.pane = new Settings[id]({ el: '.settings-content'});
if (!this.models.hasOwnProperty(this.pane.options.modelType)) {
+ themes = this.models.Themes = new Ghost.Models.Themes();
model = this.models[this.pane.options.modelType] = new Ghost.Models[this.pane.options.modelType]();
- model.fetch().then(function () {
- self.renderPane(model);
+ themes.fetch().then(function () {
+ model.fetch().then(function () {
+ model.set({availableThemes: themes.toJSON()});
+ self.renderPane(model);
+ });
});
} else {
model = this.models[this.pane.options.modelType];
@@ -134,12 +139,13 @@
},
saveSettings: function () {
+ this.model.unset('availableThemes');
this.model.save({
title: this.$('#blog-title').val(),
email: this.$('#email-address').val(),
logo: this.$('#logo').attr("src"),
- icon: this.$('#icon').attr("src")
-
+ icon: this.$('#icon').attr("src"),
+ activeTheme: this.$('#activeTheme').val()
}, {
success: this.saveSuccess,
error: this.saveError