diff --git a/cms/static/client_templates/metadata_editor.html b/cms/static/client_templates/metadata_editor.html
index bf618bd6f1..6780c4f1da 100644
--- a/cms/static/client_templates/metadata_editor.html
+++ b/cms/static/client_templates/metadata_editor.html
@@ -1,7 +1,6 @@
\ No newline at end of file
diff --git a/cms/static/client_templates/metadata_string_entry.html b/cms/static/client_templates/metadata_string_entry.html
index af49dc0291..647e48400a 100644
--- a/cms/static/client_templates/metadata_string_entry.html
+++ b/cms/static/client_templates/metadata_string_entry.html
@@ -5,4 +5,4 @@
↩
-<%= model.get('help') %>
\ No newline at end of file
+<%= model.get('help') %>
diff --git a/cms/static/js/views/metadata_editor_view.js b/cms/static/js/views/metadata_editor_view.js
index 9665b456dd..4e35deba9f 100644
--- a/cms/static/js/views/metadata_editor_view.js
+++ b/cms/static/js/views/metadata_editor_view.js
@@ -24,6 +24,8 @@ CMS.Views.Metadata.Editor = Backbone.View.extend({
model: new CMS.Models.Metadata(item)
};
if (item.options.length > 0) {
+ // Right now, all our option types only hold strings. Should really support
+ // any type though.
self.views[key] = new CMS.Views.Metadata.Option(data);
}
else {
diff --git a/cms/static/js/views/metadata_number_view.js b/cms/static/js/views/metadata_number_view.js
new file mode 100644
index 0000000000..a1be53eafa
--- /dev/null
+++ b/cms/static/js/views/metadata_number_view.js
@@ -0,0 +1,14 @@
+if (!CMS.Views['Metadata']) CMS.Views.Metadata = {};
+
+CMS.Views.Metadata.Number = CMS.Views.Metadata.String.extend({
+
+ getValue: function() {
+ var stringVal = this.$el.find('#' + this.uniqueId).val();
+ if (this.isInteger) {
+ return parseInt(stringVal)
+ }
+ else {
+ return parseFloat(stringVal)
+ }
+ }
+});
\ No newline at end of file
diff --git a/cms/static/js/views/metadata_option_view.js b/cms/static/js/views/metadata_option_view.js
index b619747282..28c49fb3d4 100644
--- a/cms/static/js/views/metadata_option_view.js
+++ b/cms/static/js/views/metadata_option_view.js
@@ -18,6 +18,11 @@ CMS.Views.Metadata.Option = Backbone.View.extend({
$('#' + self.uniqueId + " option").filter(function() {
return $(this).text() === self.model.get('value');
}).prop('selected', true);
+ if (self.model.get('explicitly_set')) {
+ self.$el.addClass('is-set');
+ self.$el.find('#'+self.uniqueId + " .setting-clear").addClass('active');
+ }
+
}
);
},
diff --git a/cms/static/js/views/metadata_string_view.js b/cms/static/js/views/metadata_string_view.js
index 2cb5c04e1b..465b75ba8b 100644
--- a/cms/static/js/views/metadata_string_view.js
+++ b/cms/static/js/views/metadata_string_view.js
@@ -15,6 +15,10 @@ CMS.Views.Metadata.String = Backbone.View.extend({
function (raw_template) {
self.template = _.template(raw_template);
self.$el.append(self.template({model: self.model, uniqueId: self.uniqueId}));
+ if (self.model.get('explicitly_set')) {
+ self.$el.addClass('is-set');
+ self.$el.find('#'+self.uniqueId + " .setting-clear").addClass('active');
+ }
}
);
},
diff --git a/cms/templates/base.html b/cms/templates/base.html
index 5825cdb1b9..6649affefb 100644
--- a/cms/templates/base.html
+++ b/cms/templates/base.html
@@ -53,6 +53,7 @@
+