diff --git a/refstack-ui/app/components/products/partials/management.html b/refstack-ui/app/components/products/partials/management.html
index ced8e59d..b41cf300 100644
--- a/refstack-ui/app/components/products/partials/management.html
+++ b/refstack-ui/app/components/products/partials/management.html
@@ -1,5 +1,5 @@
-
Edit
diff --git a/refstack-ui/app/components/products/productController.js b/refstack-ui/app/components/products/productController.js
index 5541c6e5..3d7695b5 100644
--- a/refstack-ui/app/components/products/productController.js
+++ b/refstack-ui/app/components/products/productController.js
@@ -336,7 +336,7 @@
var ctrl = this;
- ctrl.version = version;
+ ctrl.version = angular.copy(version);
ctrl.parent = parent;
ctrl.close = close;
@@ -369,6 +369,8 @@
'/versions/', ctrl.version.id ].join('');
var content = {'cpid': ctrl.version.cpid};
$http.put(url, content).success(function() {
+ // Update the original version object.
+ version.cpid = ctrl.version.cpid;
ctrl.showSuccess = true;
}).error(function(error) {
ctrl.showError = true;
@@ -400,7 +402,7 @@
ctrl.saveChanges = saveChanges;
ctrl.removeProperty = removeProperty;
- ctrl.product = product;
+ ctrl.product = angular.copy(product);
ctrl.productName = product.name;
ctrl.productProperties = [];
diff --git a/refstack-ui/app/components/vendors/vendorController.js b/refstack-ui/app/components/vendors/vendorController.js
index 5bc738fc..7035e6d1 100644
--- a/refstack-ui/app/components/vendors/vendorController.js
+++ b/refstack-ui/app/components/vendors/vendorController.js
@@ -267,7 +267,7 @@
ctrl.saveChanges = saveChanges;
ctrl.removeProperty = removeProperty;
- ctrl.vendor = vendor;
+ ctrl.vendor = angular.copy(vendor);
ctrl.vendorName = vendor.name;
ctrl.vendorProperties = [];
ctrl.isAdmin = $rootScope.auth.currentUser.is_admin;
diff --git a/refstack/api/controllers/products.py b/refstack/api/controllers/products.py
index 313c8628..16e756dd 100644
--- a/refstack/api/controllers/products.py
+++ b/refstack/api/controllers/products.py
@@ -79,8 +79,10 @@ class VersionsController(validation.BaseRestControllerWithValidation):
creator = api_utils.get_user_id()
pecan.response.status = 201
+ allowed_keys = ['id', 'product_id', 'version', 'cpid']
return db.add_product_version(self.product_id, version_info['version'],
- creator, version_info.get('cpid'))
+ creator, version_info.get('cpid'),
+ allowed_keys)
@secure(api_utils.is_authenticated)
@pecan.expose('json', method='PUT')