diff options
Diffstat (limited to 'catalog-ui/app/scripts/models/artifacts.ts')
-rw-r--r-- | catalog-ui/app/scripts/models/artifacts.ts | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/catalog-ui/app/scripts/models/artifacts.ts b/catalog-ui/app/scripts/models/artifacts.ts new file mode 100644 index 0000000000..8ee98d90d1 --- /dev/null +++ b/catalog-ui/app/scripts/models/artifacts.ts @@ -0,0 +1,115 @@ +/*- + * ============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.Models { + 'use strict'; + + //this object contains keys, each key contain ArtifactModel + export class ArtifactGroupModel{ + constructor(artifacts?:Models.ArtifactGroupModel) { + _.forEach(artifacts, (artifact:Models.ArtifactModel, key) => { + this[key] = new Models.ArtifactModel(artifact); + }); + } + + public filteredByType (type:string): Models.ArtifactGroupModel { + return JSON.parse(JSON.stringify(_.pick(this, (artifact)=>{ return artifact.artifactType == type}))); + }; + } + + export class ArtifactModel { + + artifactDisplayName:string; + artifactGroupType:string; + uniqueId:string; + artifactName:string; + artifactLabel:string; + artifactType:string; + artifactUUID:string; + artifactVersion:string; + creatorFullName:string; + creationDate:number; + lastUpdateDate:number; + description:string; + mandatory:boolean; + serviceApi:boolean; + payloadData:string; + timeout:number; + esId:string; + "Content-MD5":string; + artifactChecksum:string; + apiUrl:string; + heatParameters:Array<any>; + generatedFromId:string; + + //custom properties + selected:boolean; + originalDescription:string; + + constructor(artifact?:ArtifactModel) { + if(artifact) { + this.artifactDisplayName = artifact.artifactDisplayName; + this.artifactGroupType = artifact.artifactGroupType; + this.uniqueId = artifact.uniqueId; + this.artifactName = artifact.artifactName; + this.artifactLabel = artifact.artifactLabel; + this.artifactType = artifact.artifactType; + this.artifactUUID = artifact.artifactUUID; + this.artifactVersion = artifact.artifactVersion; + this.creatorFullName = artifact.creatorFullName; + this.creationDate = artifact.creationDate; + this.lastUpdateDate = artifact.lastUpdateDate; + this.description = artifact.description; + this.mandatory = artifact.mandatory; + this.serviceApi = artifact.serviceApi; + this.payloadData = artifact.payloadData; + this.timeout = artifact.timeout; + this.esId = artifact.esId; + this["Content-MD5"] = artifact["Content-MD5"]; + this.artifactChecksum = artifact.artifactChecksum; + this.apiUrl = artifact.apiUrl; + this.heatParameters = _.sortBy(artifact.heatParameters, 'name'); + this.generatedFromId = artifact.generatedFromId; + this.selected = artifact.selected ? artifact.selected : false; + this.originalDescription = artifact.description; + } + } + + public isHEAT = ():boolean => { + return Utils.Constants.ArtifactType.HEAT === this.artifactType.substring(0,4); + }; + + // public isEditableInInstanceLevel = ():boolean => { + // return true; + // }; + + public isThirdParty = ():boolean => { + return _.has(Utils.Constants.ArtifactType.THIRD_PARTY_RESERVED_TYPES, this.artifactType); + }; + + public toJSON = ():any => { + this.selected = undefined; + this.originalDescription = undefined; + return this; + }; + } +} + + |