aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/service-input
diff options
context:
space:
mode:
authorMichael Lando <ml636r@att.com>2017-06-09 03:19:04 +0300
committerMichael Lando <ml636r@att.com>2017-06-09 03:19:04 +0300
commited64b5edff15e702493df21aa3230b81593e6133 (patch)
treea4cb01fdaccc34930a8db403a3097c0d1e40914b /catalog-ui/app/scripts/view-models/workspace/tabs/inputs/service-input
parent280f8015d06af1f41a3ef12e8300801c7a5e0d54 (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')
-rw-r--r--catalog-ui/app/scripts/view-models/workspace/tabs/inputs/service-input/service-inputs-view-model.ts246
-rw-r--r--catalog-ui/app/scripts/view-models/workspace/tabs/inputs/service-input/service-inputs-view.html205
-rw-r--r--catalog-ui/app/scripts/view-models/workspace/tabs/inputs/service-input/service-inputs.less54
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;
- }
- }
- }
- }
-
-}