aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-ui/app/scripts/view-models/forms/artifact-form/artifact-form-view-model.ts
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-ui/app/scripts/view-models/forms/artifact-form/artifact-form-view-model.ts')
-rw-r--r--catalog-ui/app/scripts/view-models/forms/artifact-form/artifact-form-view-model.ts354
1 files changed, 0 insertions, 354 deletions
diff --git a/catalog-ui/app/scripts/view-models/forms/artifact-form/artifact-form-view-model.ts b/catalog-ui/app/scripts/view-models/forms/artifact-form/artifact-form-view-model.ts
deleted file mode 100644
index 092594b0d5..0000000000
--- a/catalog-ui/app/scripts/view-models/forms/artifact-form/artifact-form-view-model.ts
+++ /dev/null
@@ -1,354 +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 Resource = Sdc.Models.Components.Resource;
-
- export interface IEditArtifactModel {
- artifactResource: Models.ArtifactModel;
- artifactTypes: Array<string>;
- artifactFile: any;
- }
-
- export interface IArtifactResourceFormViewModelScope extends ng.IScope {
- forms:any;
- $$childTail: any;
- isNew: boolean;
- isLoading: boolean;
- validationPattern: RegExp;
- urlValidationPattern: RegExp;
- labelValidationPattern: RegExp;
- integerValidationPattern: RegExp;
- commentValidationPattern: RegExp;
- artifactType: string;
- editArtifactResourceModel: IEditArtifactModel;
- defaultHeatTimeout: number;
- validExtensions: any;
- originalArtifactName: string;
- editForm: ng.IFormController;
- footerButtons: Array<any>;
- modalInstanceArtifact:ng.ui.bootstrap.IModalServiceInstance;
-
- fileExtensions():string;
- save(doNotCloseModal?:boolean): void;
- saveAndAnother(): void;
- close(): void;
- getOptions(): Array<string>;
- isDeploymentHeat(): boolean;
- onFileChange(): void;
- setDefaultTimeout(): void;
- openEditEnvParametersModal(artifact:Models.ArtifactModel):void;
- getFormTitle():string;
- fileUploadRequired():string;
- isArtifactOwner():boolean;
- }
-
- export class ArtifactResourceFormViewModel {
-
- private artifactArr:Array<Models.ArtifactModel>;
-
- static '$inject' = [
- '$scope',
- '$modalInstance',
- 'artifact',
- 'Sdc.Services.CacheService',
- 'ValidationPattern',
- 'UrlValidationPattern',
- 'LabelValidationPattern',
- 'IntegerValidationPattern',
- 'CommentValidationPattern',
- 'ValidationUtils',
- '$base64',
- '$state',
- 'ArtifactsUtils',
- '$modal',
- '$templateCache',
- 'component'
- ];
-
- private formState:Utils.Constants.FormState;
- private entityId:string;
-
- constructor(private $scope:IArtifactResourceFormViewModelScope,
- private $modalInstance:ng.ui.bootstrap.IModalServiceInstance,
- private artifact:Models.ArtifactModel,
- private cacheService:Services.CacheService,
- private ValidationPattern:RegExp,
- private UrlValidationPattern:RegExp,
- private LabelValidationPattern:RegExp,
- private IntegerValidationPattern : RegExp,
- private CommentValidationPattern: RegExp,
- private ValidationUtils: Sdc.Utils.ValidationUtils,
- private $base64:any,
- private $state:any,
- private artifactsUtils:Sdc.Utils.ArtifactsUtils,
- private $modal:ng.ui.bootstrap.IModalService,
- private $templateCache:ng.ITemplateCacheService,
- private component:Models.Components.Component) {
-
-
- this.entityId = this.component.uniqueId;
- this.artifactArr = [];
- this.formState = angular.isDefined(artifact.artifactLabel) ? Utils.Constants.FormState.UPDATE : Utils.Constants.FormState.CREATE;
- this.initScope();
- }
-
- private initEntity = ():void => {
- this.$scope.editArtifactResourceModel.artifactResource = this.artifact;
- this.$scope.originalArtifactName = this.artifact.artifactName;
- };
-
-
- private initFooterButtons = ():void =>{
-
- this.$scope.footerButtons = [
- {'name': 'Done', 'css': 'blue', 'callback': this.$scope.save}
- ];
- if (this.$scope.isNew){
- this.$scope.footerButtons.push( {'name': 'Add Another', 'css': 'grey', 'disabled': !this.$scope.isNew && 'deployment' === this.$scope.artifactType, 'callback': this.$scope.saveAndAnother});
- }
-
- };
-
-
- private initArtifactTypes = ():void => {
-
- let artifactTypes:any = this.cacheService.get('UIConfiguration');
-
- if('deployment' === this.$scope.artifactType) {
-
- this.$scope.validExtensions = ('HEAT_ENV' == this.artifact.artifactType||this.component.selectedInstance)?//to remove the first condition?
- artifactTypes.artifacts.deployment.resourceInstanceDeploymentArtifacts
- : this.component.isResource() ? artifactTypes.artifacts.deployment.resourceDeploymentArtifacts
- : artifactTypes.artifacts.deployment.serviceDeploymentArtifacts;
-
- if(this.$scope.validExtensions) {
- this.$scope.editArtifactResourceModel.artifactTypes = Object.keys(this.$scope.validExtensions);
- }
- this.$scope.defaultHeatTimeout = artifactTypes.defaultHeatTimeout;
- if(this.$scope.isNew) {
- let isHeat='HEAT_ENV' == this.artifact.artifactType;
- _.remove(this.$scope.editArtifactResourceModel.artifactTypes, (item:string)=> {
- return 'HEAT' == item.substring(0,4)||(!isHeat && item == "VF_MODULES_METADATA") ||
- _.has(Utils.Constants.ArtifactType.THIRD_PARTY_RESERVED_TYPES, item);
- });
- }
-
- }if (this.$scope.artifactType === 'normal') {
- this.$scope.editArtifactResourceModel.artifactTypes = artifactTypes.artifacts.other.map((element:any)=> {
- return element.name;
- });
- _.remove(this.$scope.editArtifactResourceModel.artifactTypes, (item:string)=> {
- return _.has(Utils.Constants.ArtifactType.THIRD_PARTY_RESERVED_TYPES, item) ||
- _.has(Utils.Constants.ArtifactType.TOSCA, item);
- })
- }
-
- if(this.component.isResource() && (<Resource>this.component).isCsarComponent()) {
- _.remove(this.$scope.editArtifactResourceModel.artifactTypes, (item:string) => {
- return this.artifactsUtils.isLicenseType(item);
- })
- }
-
- };
-
- private initEditArtifactResourceModel = ():void => {
- this.$scope.editArtifactResourceModel = {
- artifactResource: null,
- artifactTypes: null,
- artifactFile:{}
- };
-
- this.initEntity();
- };
-
- private initScope = ():void => {
-
- this.$scope.validationPattern = this.ValidationPattern;
- this.$scope.urlValidationPattern = this.UrlValidationPattern;
- this.$scope.labelValidationPattern = this.LabelValidationPattern;
- this.$scope.integerValidationPattern = this.IntegerValidationPattern;
- this.$scope.commentValidationPattern = this.CommentValidationPattern;
- this.$scope.isLoading = false;
- this.$scope.isNew = (this.formState === Utils.Constants.FormState.CREATE);
- this.$scope.artifactType = this.artifactsUtils.getArtifactTypeByState(this.$state.current.name);
- this.$scope.modalInstanceArtifact = this.$modalInstance;
-
- this.initEditArtifactResourceModel();
- this.initArtifactTypes();
-
- // In case of edit, show the file name in browse.
- if (this.artifact.artifactName!=="" && 'HEAT_ENV'!==this.artifact.artifactType){
- this.$scope.editArtifactResourceModel.artifactFile = {};
- this.$scope.editArtifactResourceModel.artifactFile.filename = this.artifact.artifactName;
- }
-
- //scope methods
- this.$scope.isDeploymentHeat = ():boolean => {
- return !this.$scope.isNew && this.$scope.artifactType === 'deployment' &&
- 'HEAT' === this.$scope.editArtifactResourceModel.artifactResource.artifactType.substring(0,4);
- };
- this.$scope.onFileChange = ():void => {
- if(this.$scope.editArtifactResourceModel.artifactFile && this.$scope.editArtifactResourceModel.artifactFile.filename) {
- this.$scope.editArtifactResourceModel.artifactResource.artifactName = this.$scope.editArtifactResourceModel.artifactFile.filename;
- } else {
- this.$scope.editArtifactResourceModel.artifactResource.artifactName = this.$scope.originalArtifactName;
- }
- };
- this.$scope.setDefaultTimeout = ():void => {
- if(this.$scope.isDeploymentHeat() && !this.$scope.editArtifactResourceModel.artifactResource.timeout) {
- this.$scope.editArtifactResourceModel.artifactResource.timeout = this.$scope.defaultHeatTimeout;
- }
- };
-
- this.$scope.fileExtensions = ():string => {
- let type:string = this.$scope.editArtifactResourceModel.artifactResource.artifactType;
- return type && this.$scope.validExtensions && this.$scope.validExtensions[type].acceptedTypes ?
- this.$scope.validExtensions[type].acceptedTypes.join(',') : "";
- };
-
- this.$scope.save = (doNotCloseModal?:boolean):void => {
- this.$scope.isLoading = true;
- this.$scope.editArtifactResourceModel.artifactResource.description = this.ValidationUtils.stripAndSanitize(this.$scope.editArtifactResourceModel.artifactResource.description);
-
- if (!this.$scope.isDeploymentHeat()) {
- this.$scope.editArtifactResourceModel.artifactResource.timeout = null;
- }
-
- if (this.$scope.editArtifactResourceModel.artifactFile) {
- this.$scope.editArtifactResourceModel.artifactResource.payloadData = this.$scope.editArtifactResourceModel.artifactFile.base64;
- this.$scope.editArtifactResourceModel.artifactResource.artifactName = this.$scope.editArtifactResourceModel.artifactFile.filename;
- }
-
- let onFaild = (response):void => {
- this.$scope.isLoading = false;
- console.info('onFaild', response);
- };
-
- let onSuccess = (artifactResource:Models.ArtifactModel):void => {
- this.$scope.isLoading = false;
- this.$scope.originalArtifactName = "";
-
- if(this.$scope.isDeploymentHeat()){
- if(artifactResource.heatParameters) {
- this.$scope.openEditEnvParametersModal(artifactResource);
- }
- }
-
- if (!doNotCloseModal) {
- this.$modalInstance.close();
- //this.artifactArr = [];
- } else {
- this.$scope.editArtifactResourceModel.artifactFile = null;
- angular.element("input[type='file']").val(null); // for support chrome when upload the same file
- this.artifactsUtils.addAnotherAfterSave(this.$scope);
- }
-
- };
-
- if('HEAT_ENV' == this.artifact.artifactType){
- this.component.uploadInstanceEnvFile(this.$scope.editArtifactResourceModel.artifactResource).then(onSuccess, onFaild);
- }else if(this.$scope.isArtifactOwner()){
- this.component.addOrUpdateInstanceArtifact(this.$scope.editArtifactResourceModel.artifactResource).then(onSuccess, onFaild);
- }else {
- this.component.addOrUpdateArtifact(this.$scope.editArtifactResourceModel.artifactResource).then(onSuccess, onFaild);
- }
- };
-
- this.$scope.isArtifactOwner = ():boolean=> {
- return this.component.isService() && !!this.component.selectedInstance;
- };
-
- this.$scope.saveAndAnother = ():void => {
- this.$scope.save(true);
- };
-
- this.$scope.close = ():void => {
- this.$modalInstance.close();
- this.artifactArr = [];
- };
-
- this.$scope.fileUploadRequired = ():string => {
- if (this.$scope.editArtifactResourceModel.artifactFile.filename){
- // This is edit mode
- return 'false';
- } else {
- return 'true';
- }
- };
-
- this.$scope.getFormTitle =(): string =>{
- if('HEAT_ENV' == this.artifact.artifactType){
- return 'Update HEAT ENV';
- }
- if(this.$scope.isDeploymentHeat()){
- if(!this.$scope.editArtifactResourceModel.artifactResource.artifactChecksum){
- return 'Add HEAT Template';
- }
- return 'Update HEAT Template';
- }
- if(this.$scope.isNew){
- return 'Add Artifact';
- }
- return 'Update Artifact';
- };
-
- this.$scope.openEditEnvParametersModal = (artifactResource:Models.ArtifactModel):void => {
-
- let modalOptions:ng.ui.bootstrap.IModalSettings = {
- template: this.$templateCache.get('/app/scripts/view-models/forms/env-parameters-form/env-parameters-form.html'),
- controller: 'Sdc.ViewModels.EnvParametersFormViewModel',
- size: 'sdc-md',
- backdrop: 'static',
- resolve: {
- artifact: ():Models.ArtifactModel => {
- return artifactResource;
- },
- component: ():Models.Components.Component => {
- return this.component;
- }
- }
- };
-
- let modalInstance:ng.ui.bootstrap.IModalServiceInstance = this.$modal.open(modalOptions);
- modalInstance
- .result
- .then(():void => {
- });
- };
-
- this.$scope.forms = {};
-
- this.initFooterButtons();
-
-
- this.$scope.$watch("forms.editForm.$invalid", (newVal, oldVal) => {
- this.$scope.footerButtons[0].disabled = this.$scope.forms.editForm.$invalid;
- if(this.$scope.isNew){
- this.$scope.footerButtons[1].disabled = this.$scope.forms.editForm.$invalid;
- }
- });
-
- }
-
- }
-}