aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-ui/app/scripts/view-models/workspace/tabs/req-and-capabilities
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-ui/app/scripts/view-models/workspace/tabs/req-and-capabilities')
-rw-r--r--catalog-ui/app/scripts/view-models/workspace/tabs/req-and-capabilities/req-and-capabilities-view-model.ts165
-rw-r--r--catalog-ui/app/scripts/view-models/workspace/tabs/req-and-capabilities/req-and-capabilities-view.html144
-rw-r--r--catalog-ui/app/scripts/view-models/workspace/tabs/req-and-capabilities/req-and-capabilities.less196
3 files changed, 0 insertions, 505 deletions
diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/req-and-capabilities/req-and-capabilities-view-model.ts b/catalog-ui/app/scripts/view-models/workspace/tabs/req-and-capabilities/req-and-capabilities-view-model.ts
deleted file mode 100644
index 97a117e8b7..0000000000
--- a/catalog-ui/app/scripts/view-models/workspace/tabs/req-and-capabilities/req-and-capabilities-view-model.ts
+++ /dev/null
@@ -1,165 +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=========================================================
- */
-/**
- * Created by rcohen on 9/22/2016.
- */
-/// <reference path="../../../../references"/>
-module Sdc.ViewModels {
- 'use strict';
- import tree = d3.layout.tree;
-
- export class SortTableDefined {
- reverse:boolean;
- sortByField:string;
- }
-
- interface IReqAndCapabilitiesViewModelScope extends IWorkspaceViewModelScope {
- requirementsTableHeadersList: Array<any>;
- capabilitiesTableHeadersList: Array<any>;
- capabilityPropertiesTableHeadersList: Array<any>;
- requirementsSortTableDefined: SortTableDefined;
- capabilitiesSortTableDefined: SortTableDefined;
- propertiesSortTableDefined: SortTableDefined;
- requirements:Array<Models.Requirement>;
- capabilities:Array<Models.Capability>;
- mode:string;
- filteredProperties:Array<Array<Models.PropertyModel>>;
- searchText:string;
-
- sort(sortBy:string, sortByTableDefined:SortTableDefined):void;
- updateProperty(property:Models.PropertyModel, indexInFilteredProperties:number):void;
- allCapabilitiesSelected(selected:boolean):void;
- }
-
- export class ReqAndCapabilitiesViewModel {
-
- static '$inject' = [
- '$scope',
- '$filter',
- '$modal',
- '$templateCache',
- 'ModalsHandler'
- ];
-
-
- constructor(private $scope:IReqAndCapabilitiesViewModelScope,
- private $filter:ng.IFilterService,
- private $modal:ng.ui.bootstrap.IModalService,
- private $templateCache:ng.ITemplateCacheService) {
- this.initScope();
- this.$scope.updateSelectedMenuItem();
- }
-
-
- private openEditPropertyModal = (property:Models.PropertyModel, indexInFilteredProperties:number):void => {
- let viewModelsHtmlBasePath:string = '/app/scripts/view-models/';
- //...because there is not be api
- _.forEach(this.$scope.filteredProperties[indexInFilteredProperties],(prop:Models.PropertyModel)=>{
- prop.readonly = true;
- });
- let modalOptions:ng.ui.bootstrap.IModalSettings = {
- template: this.$templateCache.get(viewModelsHtmlBasePath + 'forms/property-form/property-form-view.html'),
- controller: 'Sdc.ViewModels.PropertyFormViewModel',
- size: 'sdc-l',
- backdrop: 'static',
- keyboard: false,
- resolve: {
- property: ():Models.PropertyModel => {
- return property;
- },
- component: ():Models.Components.Component => {
- return <Models.Components.Component> this.$scope.component;
- },
- filteredProperties: ():Array<Models.PropertyModel> => {
- return this.$scope.filteredProperties[indexInFilteredProperties];
- }
- }
- };
- this.$modal.open(modalOptions);
- };
-
- private initScope = ():void => {
-
- this.$scope.requirementsSortTableDefined = {
- reverse: false,
- sortByField: 'name'
- };
- this.$scope.capabilitiesSortTableDefined = {
- reverse: false,
- sortByField: 'name'
- };
- this.$scope.propertiesSortTableDefined = {
- reverse: false,
- sortByField: 'name'
- };
-
- this.$scope.setValidState(true);
- this.$scope.requirementsTableHeadersList = [
- {title: 'Name', property: 'name'},
- {title: 'Capability', property: 'capability'},
- {title: 'Node', property: 'node'},
- {title: 'Relationship', property: 'relationship'},
- {title: 'Connected To', property: ''},
- {title: 'Occurrences', property: ''}
- ];
- this.$scope.capabilitiesTableHeadersList = [
- {title: 'Name', property: 'name'},
- {title: 'Type', property: 'type'},
- {title: 'Description', property: ''},
- {title: 'Valid Source', property: ''},
- {title: 'Occurrences', property: ''}
- ];
- this.$scope.capabilityPropertiesTableHeadersList = [
- {title: 'Name', property: 'name'},
- {title: 'Type', property: 'type'},
- {title: 'Schema', property: 'schema.property.type'},
- {title: 'Description', property: 'description'},
- ];
- this.$scope.filteredProperties=[];
-
- this.$scope.mode='requirements';
- this.$scope.requirements=[];
- _.forEach(this.$scope.component.requirements,(req:Array<Models.Requirement>,capName)=>{
- this.$scope.requirements=this.$scope.requirements.concat(req);
- });
-
- this.$scope.capabilities=[];
- _.forEach(this.$scope.component.capabilities,(cap:Array<Models.Capability>,capName)=>{
- this.$scope.capabilities=this.$scope.capabilities.concat(cap);
- });
-
- this.$scope.sort = (sortBy:string, sortByTableDefined:SortTableDefined):void => {
- sortByTableDefined.reverse = (sortByTableDefined.sortByField === sortBy) ? !sortByTableDefined.reverse : false;
- sortByTableDefined.sortByField = sortBy;
- };
-
- this.$scope.updateProperty = (property:Models.PropertyModel, indexInFilteredProperties:number):void => {
- this.openEditPropertyModal(property, indexInFilteredProperties);
- };
-
- this.$scope.allCapabilitiesSelected = (selected:boolean):void => {
- _.forEach(this.$scope.capabilities,(cap:Models.Capability)=>{
- cap.selected = selected;
- });
- };
- }
- }
-}
-
diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/req-and-capabilities/req-and-capabilities-view.html b/catalog-ui/app/scripts/view-models/workspace/tabs/req-and-capabilities/req-and-capabilities-view.html
deleted file mode 100644
index 047768689a..0000000000
--- a/catalog-ui/app/scripts/view-models/workspace/tabs/req-and-capabilities/req-and-capabilities-view.html
+++ /dev/null
@@ -1,144 +0,0 @@
-<div class="workspace-req-and-cap">
- <div class="tabs">
- <button data-tests-id="req-tab" data-ng-click="mode='requirements';filterTerms='';" class="tlv-btn" data-ng-class="{'selected':mode=='requirements'}">Requirements({{requirements.length||'0'}})</button>
- <button data-tests-id="cap-tab" data-ng-click="mode='capabilities';filterTerms='';" class="tlv-btn" data-ng-class="{'selected':mode=='capabilities'}">Capabilities({{capabilities.length||'0'}})</button>
- </div>
- <div class="expand-collapse-buttons" data-ng-if="mode=='capabilities'">
- <span class="sprite-new expand-all" data-ng-click="allCapabilitiesSelected(true)"></span>
- <span class="sprite-new collapse-all" data-ng-click="allCapabilitiesSelected(false)"></span>
- </div>
- <div class="search">
- <input id="search-box" data-tests-id="search-box" type="search" placeholder="Search" data-ng-model-options="{debounce: 200}" data-ng-model="filterTerms"/>
- <div class="search-icon-container">
- <span class="search-icon sprite-new search-white-icon"></span>
- </div>
- </div>
- <div class="table-container-flex requirements-table" data-ng-if="mode=='requirements'">
- <div class="table" data-ng-class="{'view-mode': isViewMode()}">
- <div class="head flex-container">
- <div class="table-header head-row hand flex-item" data-ng-repeat="header in requirementsTableHeadersList track by $index" data-ng-click="sort(header.property, requirementsSortTableDefined)">{{header.title}}
- <span data-ng-if="requirementsSortTableDefined.sortByField === header.property" class="table-header-sort-arrow" data-ng-class="{'down': requirementsSortTableDefined.reverse, 'up':!requirementsSortTableDefined.reverse}"> </span>
- </div>
- </div>
-
- <div class="body">
- <perfect-scrollbar scroll-y-margin-offset="0" include-padding="true" class="scrollbar-container">
- <div data-ng-if="requirements.length === 0" class="no-row-text">
- There are no requirements to display
-
- </div>
- <div data-ng-repeat="req in requirements | orderBy:requirementsSortTableDefined.sortByField:requirementsSortTableDefined.reverse | filter: {filterTerm:filterTerms} track by $index"
- class="flex-container data-row" data-tests-id="reqRow">
-
- <div class="table-col-general flex-item text">
- <span data-tests-id="{{req.name}}" tooltips tooltip-content="{{req.name}}">{{req.name}}</span>
- </div>
- <div class="table-col-general flex-item text">
- <span data-tests-id="{{req.capability}}" tooltips tooltip-content="{{req.capability}}">{{req.capability.substring("tosca.capabilities.".length)}}</span>
- </div>
- <div class="table-col-general flex-item text">
- <span data-tests-id="{{req.node}}" tooltips tooltip-content="{{req.node}}">{{req.node.substring("tosca.nodes.".length)}}</span>
- </div>
- <div class="table-col-general flex-item text">
- <span data-tests-id="{{req.relationship}}" tooltips tooltip-content="{{req.relationship}}">{{req.relationship.substring("tosca.relationships.".length)}}</span>
- </div>
- <div class="table-col-general flex-item text" data-tests-id="{{}}" data-ng-bind=""></div>
- <div class="table-col-general flex-item text">
- <span data-tests-id="{{req.minOccurrences}},{{req.maxOccurrences}}" tooltips tooltip-content="{{req.minOccurrences}},{{req.maxOccurrences}}">{{req.minOccurrences}},{{req.maxOccurrences}}</span>
- </div>
- </div>
- </perfect-scrollbar>
- </div>
-
- </div>
- </div>
- <div class="table-container-flex capabilities-table" data-ng-if="mode=='capabilities'">
- <div class="table" data-ng-class="{'view-mode': isViewMode()}">
- <div class="head flex-container">
- <div class="table-header head-row hand flex-item" data-ng-repeat="header in capabilitiesTableHeadersList track by $index" data-ng-click="sort(header.property, capabilitiesSortTableDefined)">{{header.title}}
- <span data-ng-if="capabilitiesSortTableDefined.sortByField === header.property" class="table-header-sort-arrow" data-ng-class="{'down': capabilitiesSortTableDefined.reverse, 'up':!capabilitiesSortTableDefined.reverse}"> </span>
- </div>
- </div>
-
- <div class="body">
- <perfect-scrollbar scroll-y-margin-offset="0" include-padding="true" class="scrollbar-container">
- <div data-ng-if="capabilities.length === 0" class="no-row-text">
- There are no capabilities to display
-
- </div>
- <div data-ng-repeat-start="capability in capabilities | orderBy:capabilitiesSortTableDefined.sortByField:capabilitiesSortTableDefined.reverse | filter: {filterTerm:filterTerms} track by $index"
- class="flex-container data-row" data-ng-class="{'selected': capability.selected}"
- data-ng-click="capability.selected = !capability.selected" data-tests-id="capabilities-table-row">
-
- <div class="table-col-general flex-item text">
- <span class="sprite-new arrow-up-small" data-ng-class="{'opened': capability.selected}"></span>
- <span data-tests-id="{{capability.name}}" tooltips tooltip-content="{{capability.name}}">{{capability.name}}</span>
- </div>
- <div class="table-col-general flex-item text">
- <span data-tests-id="{{capability.type}}" tooltips tooltip-content="{{capability.type}}">{{capability.type.substring("tosca.capabilities.".length)}}</span>
- </div>
-
- <div class="table-col-general flex-item text">
- <span data-tests-id="{{capability.description}}" tooltips tooltip-content="{{capability.description}}">{{capability.description}}</span>
- </div>
-
- <div class="table-col-general flex-item text">
- <span data-tests-id="{{capability.validSourceTypes.join(',')}}" tooltips tooltip-content="{{capability.validSourceTypes.join(',')}}">{{capability.validSourceTypes.join(',')}}</span>
- </div>
-
- <div class="table-col-general flex-item text">
- <span data-tests-id="{{capability.minOccurrences}},{{capability.maxOccurrences}}" tooltips tooltip-content="{{capability.minOccurrences}},{{capability.maxOccurrences}}">{{capability.minOccurrences}},{{capability.maxOccurrences}}</span>
- </div>
- </div>
- <div data-ng-repeat-end="" data-ng-if="capability.selected" class="item-opened">
- <p class="properties-title">Properties</p>
- <div class="table-container-flex properties-table">
- <div class="table" data-ng-class="{'view-mode': isViewMode()}">
- <div class="head flex-container">
- <div class="table-header head-row hand flex-item" data-ng-repeat="header in capabilityPropertiesTableHeadersList track by $index" data-ng-click="sort(header.property, propertiesSortTableDefined)">{{header.title}}
- <span data-ng-if="propertiesSortTableDefined.sortByField === header.property" class="table-header-sort-arrow" data-ng-class="{'down': propertiesSortTableDefined.reverse, 'up':!propertiesSortTableDefined.reverse}"> </span>
- </div>
- </div>
-
- <div class="body">
- <div data-ng-if="capability.properties.length === 0" class="no-row-text">
- There are no properties to display
- </div>
- <div data-ng-repeat="property in filteredProperties[$parent.$index]=(capability.properties | orderBy:propertiesSortTableDefined.sortByField:propertiesSortTableDefined.reverse) track by $index"
- data-tests-id="propertyRow"
- class="flex-container data-row">
-
- <div class="table-col-general flex-item text">
- <a data-tests-id="{{property.name}}"
- tooltips tooltip-content="{{property.name}}"
- data-ng-click="updateProperty(property, $parent.$index); $event.stopPropagation();"
- data-ng-class="{'disabled': isViewMode()}">{{property.name}}</a>
-
- </div>
-
- <div class="table-col-general flex-item text"
- data-tests-id="{{property.type}}"
- tooltips tooltip-content="{{property.type}}"
- data-ng-bind="property.type">
- </div>
- <div class="table-col-general flex-item text"
- data-tests-id="{{property.schema.property.type}}"
- tooltips tooltip-content="{{property.schema.property.type}}"
- data-ng-bind="property.schema.property.type">
- </div>
- <div class="table-col-general flex-item text">
- <span tooltips tooltip-content="{{property.description}}" data-tests-id="{{property.description}}" data-ng-bind="property.description"></span>
- </div>
- </div>
- </div>
-
- </div>
- </div>
- </div>
- </perfect-scrollbar>
- </div>
-
- </div>
- </div>
-</div>
-
diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/req-and-capabilities/req-and-capabilities.less b/catalog-ui/app/scripts/view-models/workspace/tabs/req-and-capabilities/req-and-capabilities.less
deleted file mode 100644
index 9b52fad411..0000000000
--- a/catalog-ui/app/scripts/view-models/workspace/tabs/req-and-capabilities/req-and-capabilities.less
+++ /dev/null
@@ -1,196 +0,0 @@
-.workspace-req-and-cap {
-
- width: 93%;
- display: inline-block;
-
- .tabs{
- float: left;
- position: relative;
- top: 6px;
- button{
- float: left;
- width: 233px;
- height: 38px;
- background-color: @tlv_color_t;
- border: 1px solid @main_color_o;
- color: black;
- &:nth-child(1){
- border-radius: 10px 0 0 0;
- }
- &:nth-child(2){
- border-radius: 0 10px 0 0;
- }
- &.selected{
- background-color: @main_color_a;
- border: 1px solid @main_color_a;
- color: white;
- }
- }
- }
- .search{
- margin-bottom: 12px;
- float: right;
- ::-webkit-input-placeholder {
- font-style: italic;
- }
- :-moz-placeholder {
- font-style: italic;
- }
- ::-moz-placeholder {
- font-style: italic;
- }
- :-ms-input-placeholder {
- font-style: italic;
- }
- #search-box{
- -webkit-border-radius: 2px 0 0 2px;
- -moz-border-radius: 2px 0 0 2px;
- border-radius: 2px 0 0 2px;
- width: 213px;
- height: 32px;
- line-height: 32px;
- border: 1px solid @main_color_o;
- text-indent: 10px;
- float: left;
- }
- .search-icon-container{
- background-color: @main_color_a;
- height: 32px;
- width: 32px;
- border-radius: 0 2px 2px 0;
- float: left;
- .search-icon{
- position: relative;
- top: 9px;
- }
- }
- }
- .expand-collapse-buttons{
- float: right;
- width: 44px;
- margin-left: 11px;
- margin-top: 10px;
- span{
- vertical-align: bottom;
- .hand;
- }
- }
-
-
-
- .table{
- height:490px;
- margin-bottom: 0;
- }
-
- .arrow-up-small{
- &.opened{
- .arrow-up-small-hover;
- }
- }
-
- .item-opened{
- background-color: @tlv_color_t;
- }
-
- .properties-title{
- margin:0;
- font-weight: bold;
- }
-
- .table-container-flex {
- margin-top: 10px;
-
- .text{
- overflow: hidden;
- text-overflow: ellipsis;
- display: inline-block;
- white-space: nowrap;
- }
-
- &.requirements-table{
- border-top: 4px solid @main_color_a;
- .flex-item:nth-child(1) {
- flex-grow: 20;
- }
-
- .flex-item:nth-child(2) {
- flex-grow: 20;
- }
-
- .flex-item:nth-child(3) {
- flex-grow: 20;
- }
-
- .flex-item:nth-child(4) {
- flex-grow: 20;
- }
-
- .flex-item:nth-child(5) {
- flex-grow: 20;
- }
-
- .flex-item:nth-child(6) {
- flex-grow: 20;
- }
- }
-
- &.capabilities-table{
- border-top: 4px solid @main_color_a;
- .selected{
- .flex-item:nth-child(1) {
- border-left: 4px solid @main_color_a;
- padding-right: 11px;
- }
- }
- .flex-item:nth-child(1) {
- flex-grow: 10;
- }
-
- .flex-item:nth-child(2) {
- flex-grow: 10;
- }
-
- .flex-item:nth-child(3) {
- flex-grow: 10;
- }
-
- .flex-item:nth-child(4) {
- flex-grow: 10;
- }
-
- .flex-item:nth-child(5) {
- flex-grow: 10;
- }
-
- }
-
- &.properties-table{
- .table{
- height: auto;
- }
-
- .flex-item:nth-child(1) {
- flex-grow: 15;
- a{
- .hand
- }
- }
-
- .flex-item:nth-child(2) {
- flex-grow: 6;
- }
-
- .flex-item:nth-child(3) {
- flex-grow: 6;
- }
-
- .flex-item:nth-child(4) {
- flex-grow: 20;
-
- }
- }
-
- }
-
-}