Support viewing of VFC property details when checked in 09/131409/2
authorJvD_Ericsson <jeff.van.dam@est.tech>
Wed, 5 Oct 2022 13:54:09 +0000 (14:54 +0100)
committerMichael Morris <michael.morris@est.tech>
Fri, 14 Oct 2022 05:53:38 +0000 (05:53 +0000)
Issue-ID: SDC-4208
Signed-off-by: JvD_Ericsson <jeff.van.dam@est.tech>
Change-Id: I4c16ca4058716bfee6a52b37604a045ecabc975c

catalog-ui/src/app/utils/modals-handler.ts
catalog-ui/src/app/view-models/forms/property-forms/component-property-form/property-form-view-model.ts
catalog-ui/src/app/view-models/forms/property-forms/component-property-form/property-form-view.html
catalog-ui/src/app/view-models/workspace/tabs/properties/properties-view-model.ts
catalog-ui/src/app/view-models/workspace/tabs/properties/properties-view.html

index 342f03f..6813d53 100644 (file)
@@ -24,7 +24,7 @@ import { ComponentMetadata } from '../models/component-metadata';
 export interface IModalsHandler {
 
     openEditPropertyModal(property: PropertyModel, component: Component, filteredProperties: PropertyModel[], isPropertyOwnValue: boolean,
-                          propertyOwnerType: string, propertyOwnerId: string): ng.IPromise<any>;
+                          propertyOwnerType: string, propertyOwnerId: string, isViewOnly: boolean): ng.IPromise<any>;
 }
 
 export class ModalsHandler implements IModalsHandler {
@@ -67,7 +67,7 @@ export class ModalsHandler implements IModalsHandler {
      * @returns {IPromise<T>} - Promise telling if the modal has opened or not
      */
     openEditPropertyModal = (property: PropertyModel, component: Component | ComponentMetadata, filteredProperties: PropertyModel[],
-                             isPropertyValueOwner: boolean, propertyOwnerType: string, propertyOwnerId: string): ng.IPromise<any> => {
+                             isPropertyValueOwner: boolean, propertyOwnerType: string, propertyOwnerId: string, isViewOnly: boolean = false): ng.IPromise<any> => {
         const deferred = this.$q.defer();
 
         const modalOptions: ng.ui.bootstrap.IModalSettings = {
@@ -94,6 +94,9 @@ export class ModalsHandler implements IModalsHandler {
                 },
                 propertyOwnerId: (): string => {
                     return propertyOwnerId;
+                },
+                isViewOnly: (): boolean => {
+                    return isViewOnly;
                 }
             }
         };
index 17e8209..103b134 100644 (file)
@@ -62,6 +62,7 @@ interface IPropertyFormViewModelScope extends ng.IScope {
     dataTypes:DataTypesMap;
     isTypeDataType:boolean;
     maxLength:number;
+    isViewOnly:boolean;
     isPropertyValueOwner:boolean;
     isVnfConfiguration:boolean;
     constraints:string[];
@@ -101,6 +102,7 @@ export class PropertyFormViewModel {
         'ModalServiceSdcUI',
         'filteredProperties',
         '$timeout',
+        'isViewOnly',
         'isPropertyValueOwner',
         'propertyOwnerType',
         'propertyOwnerId',
@@ -125,6 +127,7 @@ export class PropertyFormViewModel {
                 private modalService:SdcUiServices.ModalService,
                 private filteredProperties:Array<PropertyModel>,
                 private $timeout:ng.ITimeoutService,
+                private isViewOnly:boolean,
                 private isPropertyValueOwner:boolean,
                 private propertyOwnerType:string,
                 private propertyOwnerId:string,
@@ -232,6 +235,7 @@ export class PropertyFormViewModel {
     private initScope = ():void => {
 
         //scope properties
+        this.$scope.isViewOnly = this.isViewOnly;
         this.$scope.isLoading = true;
         this.$scope.forms = {};
         this.$scope.validationPattern = this.ValidationPattern;
@@ -398,17 +402,17 @@ export class PropertyFormViewModel {
 
         this.$scope.$watch("forms.editForm.$invalid", (newVal) => {
             if (this.$scope.editPropertyModel.hasGetFunctionValue) {
-                this.$scope.footerButtons[0].disabled = newVal || !this.$scope.editPropertyModel.property.toscaFunction;
+                this.$scope.footerButtons[0].disabled = newVal || !this.$scope.editPropertyModel.property.toscaFunction || this.isViewOnly;
             } else {
-                this.$scope.footerButtons[0].disabled = newVal;
+                this.$scope.footerButtons[0].disabled = newVal || this.isViewOnly;
             }
         });
 
         this.$scope.$watch("forms.editForm.$valid", (newVal) => {
             if (this.$scope.editPropertyModel.hasGetFunctionValue) {
-                this.$scope.footerButtons[0].disabled = !newVal || !this.$scope.editPropertyModel.property.toscaFunction;
+                this.$scope.footerButtons[0].disabled = !newVal || !this.$scope.editPropertyModel.property.toscaFunction || this.isViewOnly;
             } else {
-                this.$scope.footerButtons[0].disabled = !newVal;
+                this.$scope.footerButtons[0].disabled = !newVal || this.isViewOnly;
             }
         });
 
index 67fce08..a6fd697 100644 (file)
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License.
 -->
-<ng1-modal modal="modalInstanceProperty" type="classic" class="sdc-edit-property-container" buttons="footerButtons" header="{{isNew ? 'Add' : 'Update' }} Property" show-close-button="true" data-tests-id="sdc-edit-property-container">
+<ng1-modal modal="modalInstanceProperty" type="classic" class="sdc-edit-property-container" buttons="footerButtons" header="{{isNew ? 'Add' : isViewOnly ? '' : 'Update'}} Property {{isViewOnly ? 'Definition' : ''}}" show-close-button="true" data-tests-id="sdc-edit-property-container">
     <loader data-display="isLoading" relative="false" size="medium"></loader>
     <div class="sdc-modal-top-bar" data-ng-if="!isNew">
         <div class="sdc-modal-top-bar-buttons">
-            <span ng-click="delete(editPropertyModel.property)" data-ng-class="{'disabled' : isPropertyValueOwner || editPropertyModel.property.readonly || propertyOwnerType == 'group' || propertyOwnerType == 'policy'}" class="sprite-new delete-btn" data-tests-id="delete_property"  sdc-smart-tooltip="">Delete</span>
+            <span ng-click="delete(editPropertyModel.property)" data-ng-class="{'disabled' : isPropertyValueOwner || editPropertyModel.property.readonly || propertyOwnerType == 'group' || propertyOwnerType == 'policy' || isViewOnly}" class="sprite-new delete-btn" data-tests-id="delete_property"  sdc-smart-tooltip="">Delete</span>
             <span class="delimiter"></span>
             <span data-ng-click="getPrev()" data-ng-class="{'disabled' : !currentPropertyIndex }" class="sprite-new left-arrow" data-tests-id="get-prev" sdc-smart-tooltip="">Previous</span>
             <span data-ng-click="getNext()" data-ng-class="{'disabled' : isLastProperty }" class="sprite-new right-arrow" data-tests-id="get-next" sdc-smart-tooltip="">Next</span>
@@ -38,7 +38,7 @@
                             <input class="i-sdc-form-input"
                                    data-tests-id="propertyName"
                                    data-ng-maxlength="50"
-                                   data-ng-disabled="!isNew || editPropertyModel.property.readonly"
+                                   data-ng-disabled="!isNew || editPropertyModel.property.readonly || isViewOnly"
                                    maxlength="50"
                                    data-ng-model="editPropertyModel.property.name"
                                    type="text"
@@ -65,7 +65,7 @@
                                     <select class="i-sdc-form-select"
                                             data-tests-id="propertyType"
                                             data-required
-                                            data-ng-disabled="isPropertyValueOwner || editPropertyModel.property.readonly"
+                                            data-ng-disabled="isPropertyValueOwner || editPropertyModel.property.readonly || isViewOnly"
                                             name="type"
                                             data-ng-change="onTypeChange()"
                                             data-ng-model="editPropertyModel.property.type">
@@ -88,7 +88,7 @@
                                     <select class="i-sdc-form-select"
                                             data-required
                                             data-tests-id="schema-type"
-                                            data-ng-disabled="isPropertyValueOwner || editPropertyModel.property.readonly"
+                                            data-ng-disabled="isPropertyValueOwner || editPropertyModel.property.readonly || isViewOnly"
                                             name="schemaType"
                                             data-ng-change="onSchemaTypeChange()"
                                             data-ng-model="editPropertyModel.property.schema.property.type">
                     <label class="i-sdc-form-label">Description</label>
                             <textarea  class="i-sdc-form-textarea"
                                        data-ng-maxlength="400"
-                                       data-ng-disabled="isPropertyValueOwner || editPropertyModel.property.readonly"
+                                       data-ng-disabled="isPropertyValueOwner || editPropertyModel.property.readonly || isViewOnly"
                                        maxlength="400"
                                        data-ng-pattern="commentValidationPattern"
                                        name="description"
                                               type-name="editPropertyModel.property.type"
                                               parent-form-obj="forms.editForm"
                                               fields-prefix-name="currentPropertyIndex"
-                                              read-only="editPropertyModel.property.readonly && !isPropertyValueOwner"
+                                              read-only="(editPropertyModel.property.readonly && !isPropertyValueOwner) || isViewOnly"
                                               default-value="{{getDefaultValue()}}"
                                               expand-by-default="true"></fields-structure>
 
                                           schema-property="editPropertyModel.property.schema.property"
                                           parent-form-obj="forms.editForm"
                                           fields-prefix-name="currentPropertyIndex"
-                                          read-only="(editPropertyModel.property.readonly && !isPropertyValueOwner) || isVnfConfiguration"
+                                          read-only="(editPropertyModel.property.readonly && !isPropertyValueOwner) || isVnfConfiguration || isViewOnly"
                                           default-value="{{getDefaultValue()}}"
                                           max-length="maxLength"
                                           constraints="editPropertyModel.property.constraints && editPropertyModel.property.constraints[0].validValues">
                                            schema-property="editPropertyModel.property.schema.property"
                                            parent-form-obj="forms.editForm"
                                            fields-prefix-name="currentPropertyIndex"
-                                           read-only="editPropertyModel.property.readonly && !isPropertyValueOwner"
+                                           read-only="(editPropertyModel.property.readonly && !isPropertyValueOwner) || isViewOnly"
                                            default-value="{{getDefaultValue()}}"
                                            max-length="maxLength"
                                            constraints="editPropertyModel.property.constraints && editPropertyModel.property.constraints[0].validValues"></type-list>
                                     <select class="i-sdc-form-select"
                                             data-tests-id="constraints"
                                             ng-if="(editPropertyModel.property.constraints)"
-                                            data-ng-disabled="editPropertyModel.property.readonly && !isPropertyValueOwner"
+                                            data-ng-disabled="(editPropertyModel.property.readonly && !isPropertyValueOwner) || isViewOnly"
 
                                             data-ng-change="onValueChange()"
                                             data-ng-model="editPropertyModel.property.value">
                                            data-tests-id="defaultvalue"
                                            ng-if="!(editPropertyModel.property.constraints) && !((editPropertyModel.property.simpleType||editPropertyModel.property.type) == 'boolean')"
                                            data-ng-maxlength="maxLength"
-                                           data-ng-disabled="editPropertyModel.property.readonly && !isPropertyValueOwner"
+                                           data-ng-disabled="(editPropertyModel.property.readonly && !isPropertyValueOwner) || isViewOnly"
                                            maxlength="{{maxLength}}"
                                            data-ng-model="editPropertyModel.property.value"
                                            type="text"
                                     <select class="i-sdc-form-select"
                                             data-tests-id="booleantype"
                                             ng-if="(editPropertyModel.property.simpleType||editPropertyModel.property.type) == 'boolean'"
-                                            data-ng-disabled="editPropertyModel.property.readonly && !isPropertyValueOwner"
+                                            data-ng-disabled="(editPropertyModel.property.readonly && !isPropertyValueOwner) || isViewOnly"
                                             name="value"
                                             data-ng-change="onValueChange()"
                                             data-ng-model="editPropertyModel.property.value">
index b159014..656c52f 100644 (file)
@@ -73,7 +73,7 @@ export class PropertiesViewModel {
     }
 
     private openEditPropertyModal = (property:PropertyModel):void => {
-        this.ModalsHandler.openEditPropertyModal(property, this.$scope.component, this.$scope.filteredProperties, false, 'component', this.$scope.component.uniqueId);
+        this.ModalsHandler.openEditPropertyModal(property, this.$scope.component, this.$scope.filteredProperties, false, 'component', this.$scope.component.uniqueId, this.$scope.isViewMode());
     };
 
     private initScope = ():void => {
index 1d8a2ff..38a8405 100644 (file)
@@ -44,8 +44,7 @@
 
                         <div class="table-col-general flex-item text" tooltips tooltip-content="{{property.name}}">
                             <a data-tests-id="propertyName_{{property.name}}"
-                                   data-ng-click="addOrUpdateProperty(property); $event.stopPropagation();"
-                                   data-ng-class="{'disabled': isViewMode()}">{{property.name}}</a>
+                                   data-ng-click="addOrUpdateProperty(property); $event.stopPropagation();">{{property.name}}</a>
 
                         </div>