summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2022-12-01 22:55:30 +0000
committerGerrit Code Review <review@openstack.org>2022-12-01 22:55:30 +0000
commit419ed2cc72cb839052dfadb72898250e863ff105 (patch)
tree689c1c1ef6b4eac6c4c1e289bb0ae930ab808633
parentaad971e54c54f9255ebb0a9ab3d0dd097ec2a192 (diff)
parent9105d00ec4170562d972971f0db281fc13b8467d (diff)
downloadhorizon-419ed2cc72cb839052dfadb72898250e863ff105.tar.gz
Merge "Make readonly metadata properties unable to edit" into stable/ussuri
-rw-r--r--horizon/static/framework/widgets/metadata/tree/metadata-tree-item.controller.js8
-rw-r--r--horizon/static/framework/widgets/metadata/tree/tree.service.js2
2 files changed, 10 insertions, 0 deletions
diff --git a/horizon/static/framework/widgets/metadata/tree/metadata-tree-item.controller.js b/horizon/static/framework/widgets/metadata/tree/metadata-tree-item.controller.js
index 1d0720f12..6234699db 100644
--- a/horizon/static/framework/widgets/metadata/tree/metadata-tree-item.controller.js
+++ b/horizon/static/framework/widgets/metadata/tree/metadata-tree-item.controller.js
@@ -16,6 +16,8 @@
(function () {
'use strict';
+ var READONLY_PROPERTIES = ['os_hash_algo', 'os_hash_value'];
+
angular
.module('horizon.framework.widgets.metadata.tree')
.controller('MetadataTreeItemController', MetadataTreeItemController);
@@ -32,6 +34,12 @@
ctrl.formatErrorMessage = formatErrorMessage;
ctrl.opened = false;
+ if ('item' in ctrl && 'leaf' in ctrl.item &&
+ READONLY_PROPERTIES.includes(ctrl.item.leaf.name)) {
+ ctrl.item.leaf.readonly = true;
+ ctrl.item.leaf.required = false;
+ }
+
if ('item' in ctrl && 'leaf' in ctrl.item && ctrl.item.leaf.type === 'array') {
ctrl.values = ctrl.item.leaf.items.enum.filter(filter).sort();
diff --git a/horizon/static/framework/widgets/metadata/tree/tree.service.js b/horizon/static/framework/widgets/metadata/tree/tree.service.js
index c4d86d87e..57b2ecb24 100644
--- a/horizon/static/framework/widgets/metadata/tree/tree.service.js
+++ b/horizon/static/framework/widgets/metadata/tree/tree.service.js
@@ -70,6 +70,8 @@
Property.prototype.setValue = function (value) {
if (value === null) {
this.value = this.type !== 'array' ? null : [];
+ // if the existing property is null, make the field not required
+ this.required = false;
return;
}