diff options
author | Michael Lando <ml636r@att.com> | 2017-06-09 03:19:04 +0300 |
---|---|---|
committer | Michael Lando <ml636r@att.com> | 2017-06-09 03:19:04 +0300 |
commit | ed64b5edff15e702493df21aa3230b81593e6133 (patch) | |
tree | a4cb01fdaccc34930a8db403a3097c0d1e40914b /catalog-ui/app/scripts/view-models/workspace/tabs/inputs/service-input | |
parent | 280f8015d06af1f41a3ef12e8300801c7a5e0d54 (diff) |
[SDC-29] catalog 1707 rebase commit.
Change-Id: I43c3dc5cf44abf5da817649bc738938a3e8388c1
Signed-off-by: Michael Lando <ml636r@att.com>
Diffstat (limited to 'catalog-ui/app/scripts/view-models/workspace/tabs/inputs/service-input')
3 files changed, 0 insertions, 505 deletions
diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/service-input/service-inputs-view-model.ts b/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/service-input/service-inputs-view-model.ts deleted file mode 100644 index 6c8391720a..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/service-input/service-inputs-view-model.ts +++ /dev/null @@ -1,246 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ -/// <reference path="../../../../../references"/> -module Sdc.ViewModels { - 'use strict'; - import IAngularEvent = angular.IAngularEvent; - import ComponentInstance = Sdc.Models.ComponentsInstances.ComponentInstance; - - - interface IServiceInputsViewModelScope extends IWorkspaceViewModelScope { - - vfInstancesList: Array<ComponentInstance>; - selectedInputs:Array<Models.InputModel>; - instanceInputsMap:Models.InstancesInputsMapData; //this is tha map object that hold the selected inputs and the inputs we already used - component:Models.Components.Service; - sdcMenu:Models.IAppMenu; - - onArrowPressed():void; - loadComponentInputs(): void; - loadInstanceInputs(instance:ComponentInstance): ng.IPromise<boolean> ; - loadInputPropertiesForInstance(instanceId:string, input:Models.InputModel): ng.IPromise<boolean> ; - loadInputInputs(input:Models.InputModel): ng.IPromise<boolean>; - deleteInput(input:Models.InputModel):void - } - - export class ServiceInputsViewModel { - - static '$inject' = [ - '$scope', - '$q', - 'ModalsHandler' - ]; - - constructor(private $scope:IServiceInputsViewModelScope, - private $q: ng.IQService, - private ModalsHandler: Sdc.Utils.ModalsHandler) { - this.initScope(); - } - - /* - * When loading the screen again, we need to disabled the inputs that already created on the service, - * we do that by comparing the service input name, to the instance name + '_' + the resource instance input name. - */ - private disableEnableSelectedInputs = (instance: ComponentInstance): void => { - - let alreadySelectedInput = new Array<Models.InputModel>(); - _.forEach(instance.inputs, (input:Models.InputModel) => { - let expectedServiceInputName = instance.normalizedName + '_' + input.name; - let inputAlreadyInService: Models.InputModel = _.find(this.$scope.component.inputs, (serviceInput: Models.InputModel) => { - return serviceInput.name === expectedServiceInputName; - }); - if(inputAlreadyInService) { - input.isAlreadySelected = true; - alreadySelectedInput.push(input); - } else { - input.isAlreadySelected = false; - } - }); - this.$scope.instanceInputsMap[instance.uniqueId] = alreadySelectedInput; - }; - - private initScope = (): void => { - - this.$scope.instanceInputsMap = new Models.InstancesInputsMapData(); - this.$scope.isLoading = true; - this.$scope.selectedInputs = new Array<Models.InputModel>(); - - // Why do we need this? we call this later. - //this.$scope.component.getComponentInputs(); - - let onSuccess = (componentInstances:Array<ComponentInstance>) => { - console.log("component instances loaded: ", componentInstances); - this.$scope.vfInstancesList = componentInstances; - this.$scope.isLoading = false; - }; - - //This function will get al component instance for the left table - in future the instances will be filter according to search text - this.$scope.component.getComponentInstancesFilteredByInputsAndProperties().then(onSuccess); - - // This function will get the service inputs for the right table - this.$scope.component.getComponentInputs(); - - - /* - * When clicking on instance in the left table, this function will load all instance inputs - */ - this.$scope.loadInstanceInputs = (instance:ComponentInstance): ng.IPromise<boolean> => { - let deferred = this.$q.defer(); - - let onSuccess = (inputs:Array<Models.InputModel>) => { - instance.inputs = inputs; - this.disableEnableSelectedInputs(instance); - deferred.resolve(true); - }; - - let onError = () => { - deferred.resolve(false); - }; - - if(!instance.inputs) { - this.$scope.component.getComponentInstanceInputs(instance.uniqueId, instance.componentUid).then(onSuccess, onError); - this.disableEnableSelectedInputs(instance); - } else { - deferred.resolve(true); - } - return deferred.promise; - }; - - /* - * When clicking on instance input in the left or right table, this function will load all properties of the selected input - */ - this.$scope.loadInputPropertiesForInstance = (instanceId:string, input:Models.InputModel): ng.IPromise<boolean> => { - let deferred = this.$q.defer(); - - let onSuccess = (properties:Array<Models.PropertyModel>) => { - input.properties = properties; - deferred.resolve(true); - }; - - let onError = () => { - deferred.resolve(false) - }; - - if(!input.properties) { - this.$scope.component.getComponentInstanceInputProperties(instanceId, input.uniqueId).then(onSuccess, onError); - } else { - deferred.resolve(true); - } - return deferred.promise; - }; - - /* - * When clicking on input in the right table, this function will load all inputs of the selected input - */ - this.$scope.loadInputInputs = (input:Models.InputModel): ng.IPromise<boolean> => { - let deferred = this.$q.defer(); - - let onSuccess = () => { deferred.resolve(true); }; - let onError = () => { deferred.resolve(false); }; - - if(!input.inputs) { // Caching, if exists do not get it. - this.$scope.component.getServiceInputInputs(input.uniqueId).then(onSuccess, onError); - } else { - deferred.resolve(true); - } - return deferred.promise; - }; - - /* - * When pressing the arrow, we create service inputs from the inputs selected - */ - this.$scope.onArrowPressed = ():void => { - let onSuccess = (inputsCreated: Array<Models.InputModel>) => { - - //disabled all the inputs in the left table - _.forEach(this.$scope.instanceInputsMap, (inputs:Array<Models.InputModel>, instanceId:string) => { - _.forEach(inputs, (input:Models.InputModel) => { - input.isAlreadySelected = true; - }); - }); - - this.addColorToItems(inputsCreated); - }; - - this.$scope.component.createInputsFormInstances(this.$scope.instanceInputsMap).then(onSuccess); - }; - - this.$scope.deleteInput = (input: Models.InputModel):void => { - - var onDelete = ():void => { - var onSuccess = (deletedInput: Models.InputModel, componentInstanceId:string):void => { - // Remove from component.inputs the deleted input (service inputs) - var remainingServiceInputs:Array<Models.InputModel> = _.filter(this.$scope.component.inputs, (input:Models.InputModel):boolean => { - return input.uniqueId !== deletedInput.uniqueId; - }); - this.$scope.component.inputs = remainingServiceInputs; - - // Find the instance that contains the deleted input, and set disable|enable the deleted input - var deletedInputComponentInstance:ComponentInstance = _.find(this.$scope.vfInstancesList, (instanceWithChildToDelete:ComponentInstance):boolean => { - return instanceWithChildToDelete.uniqueId === componentInstanceId; - }); - this.disableEnableSelectedInputs(deletedInputComponentInstance); - }; - - var onFailed = (error:any) : void => { - console.log("Error deleting input"); - }; - - this.addColorToItems([input]); - - // Get service inputs of input (so after delete we will know the component instance) - this.$scope.loadInputInputs(input).then((result:boolean):void=>{ - if (result && input.inputs.length>0) { - var componentInstanceId:string = input.inputs[0].componentInstanceId; - this.$scope.component.deleteServiceInput(input.uniqueId).then((deletedInput: Models.InputModel):void => { - onSuccess(deletedInput, componentInstanceId); - }, onFailed); - } - }); - }; - - // Get confirmation modal text from menu.json - var state = "deleteInput"; - var title:string = this.$scope.sdcMenu.alertMessages[state].title; - var message:string = this.$scope.sdcMenu.alertMessages[state].message.format([input.name]); - - // Open confirmation modal - this.ModalsHandler.openAlertModal(title, message).then(onDelete); - } - }; - - private addColorToItems = (inputsCreated:Array<Models.InputModel>):void => { - - // Adding color to the new inputs (right table) - _.forEach(inputsCreated, (input) => { - input.isNew = true; - }); - - // Removing color to the new inputs (right table) - setTimeout(() => { - _.forEach(inputsCreated, (input) => { - input.isNew = false; - }); - this.$scope.$apply(); - }, 3000); - }; - - } -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/service-input/service-inputs-view.html b/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/service-input/service-inputs-view.html deleted file mode 100644 index bf15a70322..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/service-input/service-inputs-view.html +++ /dev/null @@ -1,205 +0,0 @@ -<div class="workspace-inputs"> - <div class="table-container-flex"> - <div class="w-sdc-inputs-search pull-left hideme"> - <input type="text" class="w-sdc-inputs-search-input" placeholder="Search"/> - <div class="search-icon-container"> - <span class="w-sdc-search-icon inputs-search-icon magnification-white"></span> - </div> - </div> - <div class="table"> - <div class="table-header">Resource instance inputs</div> - <div class="body"> - <div class="table-loader" ng-class="{'tlv-loader large loader': isLoading}"></div> - <perfect-scrollbar scroll-y-margin-offset="0" class="scrollbar-container"> - - <expand-collapse expanded-selector=".vf-instance-list.{{$index}}" - class="expand-collapse-table-row" - load-data-function="loadInstanceInputs(instance)" - is-close-on-init="true" - data-ng-repeat-start="instance in vfInstancesList track by $index"> - <div class="flex-container data-row"> - <div class="expand-collapse-inputs-table-icon"></div> - <div class="table-col-general flex-item text" data-tests-id="inputs-vf-instance-{{$index}}"> - <span class="title-text">{{instance.name}}</span> - </div> - </div> - - </expand-collapse> - - <div data-ng-repeat-end="" class="vf-instance-list {{$index}}"> - - <expand-collapse expanded-selector=".input-list.{{$parent.$index}}-{{$index}}" - class="expand-collapse-table-row" - load-data-function="loadInputPropertiesForInstance(instance.uniqueId, input)" - is-close-on-init="true" - data-ng-repeat-start="input in instance.inputs track by $index"> - <div class="input-row" ng-class="{'selected': selectedInput.uniqueId === input.uniqueId}"> - <div class="title-text">{{input.name}}</div> - <div class="flex-container"> - <div class="expand-collapse-inputs-table-icon"></div> - <div class="flex-item"> - - <div> - <span class="title-text">Description:</span> - <span tooltips tooltip-content="{{input.description}}">{{input.description}}</span> - </div> - </div> - <div class="flex-item "> - <div class="text"> - <span class="title-text">VF Instance:</span> - <span tooltips tooltip-content="{{instance.name}}">{{instance.name}}</span> - </div> - <div class="text"> - <span class="title-text">Type:</span> - <span tooltips tooltip-content="{{input.type}}">{{input.type}} </span> - </div> - </div> - <sdc-checkbox - class="input-check-box" - disabled ="input.isAlreadySelected || isViewMode()" - sdc-checklist-model="instanceInputsMap[instance.uniqueId]" - sdc-checklist-value="input" - data-tests-id="inputs-checkbox-{{$index}}" - data-ng-click=" $event.stopPropagation()"></sdc-checkbox> - </div> - </div> - - - </expand-collapse> - - <div data-ng-repeat-end="" class="input-list {{$parent.$index}}-{{$index}}"> - <div class="empty-row" ng-if="input.properties.length===0">No properties to display</div> - - <div ng-repeat="property in input.properties track by $index"> - <div class="property-row flex-container"> - <div class="flex-item text property-name-container"> - <span class="title-blue-text property-name-text" tooltips tooltip-content="{{property.name}}">{{property.name}}</span> - <span class="text instance-name-text" tooltips tooltip-content="{{property.name}}">{{property.name}}</span> - </div> - <div class="type-schema-container"> - <div class="text"> - <span tooltips tooltip-content="{{property.type}}">{{property.type}}</span> - </div> - </div> - <div class="type-schema-container"> - <div class="text"> - <span tooltips tooltip-content="{{property.schema.property.type}}">{{property.schema.property.type}} </span> - </div> - </div> - </div> - </div> - </div> - </div> - </perfect-scrollbar> - </div> - </div> - </div> - - <div class="inputs-button-container pull-left"> - <div ng-click="onArrowPressed()" class="right-arrow-btn" data-tests-id="add-inputs-to-service-button"></div> - </div> - - <div class="table-container-flex"> - <div class="w-sdc-inputs-search pull-left"> - <input type="text" class="w-sdc-inputs-search-input" data-ng-model="search.filterTerm" placeholder="Search" data-ng-model-options="{debounce: 200}"/> - <div class="search-icon-container"> - <span class="w-sdc-search-icon inputs-search-icon magnification-white"></span> - </div> - </div> - <div class="table"> - <div class="body"> - <div class="table-header">Service Inputs</div> - <perfect-scrollbar scroll-y-margin-offset="0" include-padding="true" class="scrollbar-container"> - <expand-collapse expanded-selector=".service-inputs.{{$index}}" - class="expand-collapse-table-row" - load-data-function="loadInputInputs(serviceInput)" - is-close-on-init="true" - data-ng-repeat-start="serviceInput in component.inputs | filter:search track by $index "> - <div class="input-row service-input-row " data-tests-id="service-input-{{$index}}" ng-class="serviceInput.isNew ? 'new-input': ''"> - <div class="title-text">{{serviceInput.name}}</div> - <div class="flex-container"> - <div class="expand-collapse-inputs-table-icon"></div> - <div class="flex-item"> - <div> - <span class="title-text">Description:</span> - <span tooltips tooltip-content="{{serviceInput.description}}">{{serviceInput.description}}</span> - </div> - </div> - <div class="flex-item "> - <div class="text"> - <span class="title-text">VF Instance:</span> - <span tooltips tooltip-content="{{serviceInput.name}}">{{serviceInput.name}}</span> - </div> - <div class="text"> - <span class="title-text">Type:</span> - <span tooltips tooltip-content="{{serviceInput.type}}">{{serviceInput.type}} </span> - </div> - </div> - <div class="delete"> - <span class="sprite-new delete-icon remove-input-icon" - data-ng-class="{'disabled': isViewMode()}" - data-ng-click="deleteInput(serviceInput); $event.stopPropagation();" - data-tests-id="delete-input-{{$index}}"></span> - </div> - </div> - </div> - </expand-collapse> - - <div data-ng-repeat-end="" class="service-inputs {{$index}}"> - <expand-collapse expanded-selector=".input-inputs-list.{{$parent.$index}}-{{$index}}" - class="expand-collapse-table-row" - load-data-function="loadInputPropertiesForInstance(input.componentInstanceId, input)" - is-close-on-init="true" - data-ng-repeat-start="input in serviceInput.inputs track by $index"> - <div class="input-row"> - <div class="title-text">{{input.name}}</div> - <div class="flex-container"> - <div class="expand-collapse-inputs-table-icon"></div> - <div class="flex-item"> - <div> - <span class="title-text">Description:</span> - <span tooltips tooltip-content="{{input.description}}">{{input.description}}</span> - </div> - </div> - <div class="flex-item "> - <div class="text"> - <span class="title-text">VF Instance:</span> - <span tooltips tooltip-content="{{instance.componentInstanceName}}">{{instance.componentInstanceName}}</span> - </div> - <div class="text"> - <span class="title-text">Type:</span> - <span tooltips tooltip-content="{{input.type}}">{{input.type}} </span> - </div> - </div> - </div> - </div> - </expand-collapse> - - <div data-ng-repeat-end="" class="input-inputs-list {{$parent.$index}}-{{$index}}"> - <div class="empty-row" ng-if="input.properties.length===0">No properties to display</div> - <div ng-repeat="property in input.properties track by $index"> - <div class="property-row flex-container"> - <div class="flex-item text property-name-container"> - <span - class="title-blue-text property-name-text" tooltips tooltips-content="{{property.name}}">{{property.name}}</span> - <span class="text instance-name-text" tooltips tooltips-content="{{property.name}}">{{property.name}}</span> - </div> - <div class="type-schema-container"> - <div class="text"> - <span tooltips tooltips-content="{{property.type}}">{{property.type}}</span> - </div> - </div> - <div class="type-schema-container"> - <div class="text"> - <span tooltips tooltips-content="{{property.schema.property.type}}">{{property.schema.property.type}} </span> - </div> - </div> - </div> - </div> - </div> - </div> - </perfect-scrollbar> - </div> - </div> - </div> -</div> diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/service-input/service-inputs.less b/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/service-input/service-inputs.less deleted file mode 100644 index 11e613b56e..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/service-input/service-inputs.less +++ /dev/null @@ -1,54 +0,0 @@ -.workspace-inputs { - - .service-inputs-view { - - .table-container-flex { - width:100% !important; - } - - .table-loader { - position: relative; - top:215px; - } - - } - - .infinite-scroll { - - overflow-y: scroll; - overflow-x: hidden; - max-height: 400px; - } - - .class_with_css_props_leading_to_a_scroll { - height: 100%; - overflow-y: auto; - } - - .table-container-flex { - .expand-collapse-table-row { - .service-input-row { - padding-left: 15px; - border: none; - border-bottom: rgba(120, 136, 148, 0.26) solid 1px; - - .delete { - width: 50px; - padding: 0; - position: relative; - } - - .remove-input-icon { - position: absolute; - top: 12px; - right: 18px; - } - - .remove-input-icon:hover { - .delete-icon-hover; - } - } - } - } - -} |