diff options
Diffstat (limited to 'catalog-ui/app/scripts/view-models/wizard/general-step')
3 files changed, 0 insertions, 685 deletions
diff --git a/catalog-ui/app/scripts/view-models/wizard/general-step/general-step.html b/catalog-ui/app/scripts/view-models/wizard/general-step/general-step.html deleted file mode 100644 index db975caf47..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/general-step/general-step.html +++ /dev/null @@ -1,270 +0,0 @@ -<div include-padding="true" class="sdc-wizard-general-step"> - <div ng-controller="Sdc.ViewModels.Wizard.GeneralStepViewModel"> - <form novalidate class="w-sdc-form" name="editForm"> - <div class="w-sdc-form-section-container"> - - <!--------------------- IMPORT TOSCA FILE --------------------> - <file-upload id="fileUploadElement" - ng-if="!isCreate" - element-name="fileElement" - element-disabled="{{!isNew}}" - form-element="editForm" - file-model="model.tosca" - extensions="{{toscaFileExtensions}}" - data-ng-class="{'error': !editForm.fileElement.$valid || !model.tosca.filename}"></file-upload> - - <div class="input-error-file-upload" data-ng-show="!isCreate && (!editForm.fileElement.$valid || !model.tosca.filename)"> - <!-- editForm.fileElement.$error.required <== Can not use this, because the browse is done from outside for the first time --> - <span ng-show="!model.tosca.filename && !editForm.fileElement.$error.emptyFile" translate="NEW_SERVICE_RESOURCE_ERROR_TOSCA_FILE_REQUIRED"></span><!-- Required --> - <span ng-show="editForm.fileElement.$error.emptyFile" translate="VALIDATION_ERROR_EMPTY_FILE"></span> - <span ng-show="editForm.fileElement.$error.filetype" translate="NEW_SERVICE_RESOURCE_ERROR_VALID_TOSCA_EXTENSIONS" translate-values="{'extensions': '{{toscaFileExtensions}}' }"></span> - </div> - <!--------------------- IMPORT TOSCA FILE --------------------> - - <div class="w-sdc-form-columns-wrapper"> - - <div class="w-sdc-form-column"> - - <!--------------------- NAME --------------------> - <div class="i-sdc-form-item" data-ng-class="{'error': validateField(editForm.componentName)}"> - <label class="i-sdc-form-label required">Name</label> - <input class="i-sdc-form-input" - name="componentName" - data-ng-init="isNew && validateName(true)" - data-ng-change="validateName()" - data-ng-maxlength="{{component.isProduct()?'25':'50'}}" - maxlength="{{component.isProduct()?'25':'50'}}" - data-ng-minlength="{{component.isProduct()?'4':'0'}}" - minlength="{{component.isProduct()?'4':'0'}}" - data-ng-model="model.name" - type="text" - data-required - data-ng-model-options="{ debounce: 500 }" - data-ng-pattern="validation.validationPattern" - data-ng-disabled="model.isAlreadyCertified" - data-tests-id="name" - autofocus - /> - - <div class="input-error" data-ng-show="validateField(editForm.componentName)"> - <span ng-show="editForm.componentName.$error.required" translate="NEW_SERVICE_RESOURCE_ERROR_RESOURCE_NAME_REQUIRED"></span> - <span ng-show="editForm.componentName.$error.maxlength" translate="VALIDATION_ERROR_MAX_LENGTH" translate-values="{'max': '50' }"></span> - <span ng-show="editForm.componentName.$error.minlength" translate="VALIDATION_ERROR_MIN_LENGTH" translate-values="{'min': '4' }"></span> - <span ng-show="editForm.componentName.$error.nameExist" translate="NEW_SERVICE_RESOURCE_ERROR_NAME_EXISTS"></span> - <span ng-show="editForm.componentName.$error.pattern" translate="VALIDATION_ERROR_SPECIAL_CHARS_NOT_ALLOWED"></span> - </div> - </div> - <!--------------------- NAME --------------------> - - <!--------------------- FULL NAME --------------------> - <div ng-if="component.isProduct()" class="i-sdc-form-item" data-ng-class="{'error': validateField(editForm.fullName)}"> - <label class="i-sdc-form-label required">Full Name</label> - <input class="i-sdc-form-input" - name="fullName" - data-ng-change="validateName()" - data-ng-maxlength="100" - maxlength="100" - data-ng-minlength="4" - minlength="4" - data-ng-model="model.fullName" - type="text" - data-required - data-ng-model-options="{ debounce: 500 }" - data-ng-pattern="validation.validationPattern" - data-tests-id="fullName" - autofocus - /> - - <div class="input-error" data-ng-show="validateField(editForm.fullName)"> - <span ng-show="editForm.fullName.$error.required" translate="NEW_SERVICE_RESOURCE_ERROR_RESOURCE_NAME_REQUIRED"></span> - <span ng-show="editForm.fullName.$error.maxlength" translate="VALIDATION_ERROR_MAX_LENGTH" translate-values="{'max': '50' }"></span> - <span ng-show="editForm.fullName.$error.minlength" translate="VALIDATION_ERROR_MIN_LENGTH" translate-values="{'min': '4' }"></span> - <span ng-show="editForm.fullName.$error.nameExist" translate="NEW_SERVICE_RESOURCE_ERROR_NAME_EXISTS"></span> - <span ng-show="editForm.fullName.$error.pattern" translate="VALIDATION_ERROR_SPECIAL_CHARS_NOT_ALLOWED"></span> - </div> - </div> - <!--------------------- NAME --------------------> - - <!--------------------- DESCRIPTION --------------------> - <div class="i-sdc-form-item" - data-ng-class="{'error': validateField(editForm.description)}"> - <label class="i-sdc-form-label required">Description</label> - <textarea class="i-sdc-form-textarea description" - name="description" - data-ng-maxlength="1024" - data-required - data-ng-model="model.description" - data-ng-model-options="{ debounce: 500 }" - data-ng-pattern="validation.commentValidationPattern" - maxlength="1024" - data-tests-id="description"></textarea> - <!-- placeholder="Description here..." --> - - <div class="input-error" data-ng-show="validateField(editForm.description)"> - <span ng-show="editForm.description.$error.required" translate="NEW_SERVICE_RESOURCE_ERROR_RESOURCE_DESCRIPTION_REQUIRED"></span> - <span ng-show="editForm.description.$error.maxlength" translate="VALIDATION_ERROR_MAX_LENGTH" translate-values="{'max': '1024' }"></span> - <span ng-show="editForm.description.$error.pattern" translate="VALIDATION_ERROR_SPECIAL_CHARS_NOT_ALLOWED"></span> - </div> - </div> - <!--------------------- DESCRIPTION --------------------> - - <!--------------------- CATEGORIES --------------------> - <div class="i-sdc-form-item" - data-ng-class="{'error': validateField(editForm.category)}" - data-ng-if="categories && categories.length && !component.isProduct()"> - <label class="i-sdc-form-label required">Category</label> - <select class="i-sdc-form-select" - data-required - name="category" - data-ng-change="setIconToDefault()" - data-ng-disabled="model.isAlreadyCertified" - data-ng-model="model.category" - data-tests-id="selectGeneralCategory" - > - <option value="">Select category</option> - <optgroup ng-if="component.isResource()" data-ng-repeat="mainCategory in categories | orderBy:['name']" label="{{mainCategory.name}}" data-tests-id="{{mainCategory.name}}"> - <option data-ng-repeat="subCategory in mainCategory.subcategories track by $index" - data-ng-selected="model.category===calculateUnique(mainCategory.name,subCategory.name)" - data-tests-id="{{subCategory.name}}" - value="{{calculateUnique(mainCategory.name,subCategory.name)}}">{{subCategory.name}} - - </option> - </optgroup> - <option ng-if="component.isService()" data-ng-repeat="mainCategory in categories | orderBy:['name']" - data-ng-selected="model.category===mainCategory.name" - value="{{mainCategory.name}}" - data-tests-id="{{mainCategory.name}}">{{mainCategory.name}}</option> - </select> - - <div class="input-error" data-ng-show="validateField(editForm.category)"> - <span ng-show="editForm.category.$error.required" translate="NEW_SERVICE_RESOURCE_ERROR_CATEGORY_REQUIRED"></span> - </div> - </div> - <!--------------------- CATEGORIES --------------------> - - <!--------------------- VENDOR NAME --------------------> - <div ng-if="component.isResource()" class="i-sdc-form-item" data-ng-class="{'error': validateField(editForm.vendorName)}"> - <label class="i-sdc-form-label required">Vendor</label> - <input class="i-sdc-form-input" type="text" - data-ng-model="model.vendorName" - data-ng-model-options="{ debounce: 500 }" - data-ng-maxlength="25" - data-required - ng-click="oldValue = model.vendorName" - name="vendorName" - data-ng-change="onVendorNameChange(oldValue)" - data-ng-pattern="validation.vendorValidationPattern" - maxlength="25" - data-ng-disabled="model.isAlreadyCertified" - data-tests-id="vendorName" - /> - - <div class="input-error" data-ng-show="validateField(editForm.vendorName)"> - <span ng-show="editForm.vendorName.$error.required" translate="NEW_SERVICE_RESOURCE_ERROR_VENDOR_NAME_REQUIRED"></span> - <span ng-show="editForm.vendorName.$error.maxlength" translate="VALIDATION_ERROR_MAX_LENGTH" translate-values="{'max': '25' }"></span> - <span ng-show="editForm.vendorName.$error.pattern" translate="VALIDATION_ERROR_SPECIAL_CHARS_NOT_ALLOWED"></span> - </div> - - </div> - - <!--------------------- VENDOR NAME --------------------> - - <!--------------------- VENDOR RELEASE --------------------> - <div ng-if="component.isResource()" - class="i-sdc-form-item" - data-ng-class="{'error': validateField(editForm.vendorRelease)}"> - <label class="i-sdc-form-label required">Vendor Release</label> - <input class="i-sdc-form-input" type="text" - data-ng-model="model.vendorRelease" - data-ng-model-options="{ debounce: 500 }" - data-ng-maxlength="25" - data-required - name="vendorRelease" - data-ng-pattern="validation.vendorValidationPattern" - maxlength="25" - data-tests-id="vendorRelease" - /> - - <div class="input-error" data-ng-show="validateField(editForm.vendorRelease)"> - <span ng-show="editForm.vendorRelease.$error.required" translate="NEW_SERVICE_RESOURCE_ERROR_VENDOR_RELEASE_REQUIRED"></span> - <span ng-show="editForm.vendorRelease.$error.maxlength" translate="VALIDATION_ERROR_MAX_LENGTH" translate-values="{'max': '128' }"></span> - <span ng-show="editForm.vendorRelease.$error.pattern" translate="VALIDATION_ERROR_SPECIAL_CHARS_NOT_ALLOWED"></span> - </div> - </div> - <!--------------------- VENDOR RELEASE --------------------> - - - - </div><!-- Close w-sdc-form-column --> - - <div class="w-sdc-form-column"> - - <!--------------------- RESOURCE TAGS --------------------> - <div class="i-sdc-form-item" data-ng-class="{'error': validateField(editForm.tags)}"> - <label class="i-sdc-form-label">Tags</label> - - <sdc-tags form-element="editForm" element-name="tags" max-tags="20" class="i-sdc-form-item-tags" tags="model.tags" pattern="validation.tagValidationPattern" special-tag="model.name"></sdc-tags> - - <div class="input-error" data-ng-show="validateField(editForm.tags)"> - <span ng-show="editForm.tags.$error.pattern" translate="VALIDATION_ERROR_SPECIAL_CHARS_NOT_ALLOWED"></span> - </div> - </div> - <!--------------------- RESOURCE TAGS --------------------> - - <!--------------------- CONTACT ID --------------------> - <div class="i-sdc-form-item" data-ng-class="{'error': validateField(editForm.contactId)}"> - <label class="i-sdc-form-label required" translate="GENERAL_LABEL_CONTACT_ID"></label> - <input class="i-sdc-form-input disabled" type="text" - data-ng-model="model.userId" - data-required - name="contactId" - data-ng-pattern="validation.contactIdValidationPattern" - data-ng-model-options="{ debounce: 500 }" - data-tests-id="userId" - maxlength="50" - /> - - <div class="input-error" data-ng-show="validateField(editForm.contactId)"> - <span ng-show="editForm.contactId.$error.required" translate="NEW_SERVICE_RESOURCE_ERROR_CONTACT_REQUIRED"></span> - <span ng-show="editForm.contactId.$error.pattern" translate="NEW_SERVICE_RESOURCE_ERROR_CONTACT_NOT_VALID"></span> - </div> - </div> - <!--------------------- CONTACT ID --------------------> - - <!--------------------- PROJECT CODE --------------------> - <div class="i-sdc-form-item" data-ng-if="!component.isResource()" - data-ng-class="{'error': validateField(editForm.projectCode)}"> - <label class="i-sdc-form-label required" translate="GENERAL_LABEL_PROJECT_CODE"></label> - <input class="i-sdc-form-input" type="text" - data-ng-model="model.projectCode" - data-ng-model-options="{ debounce: 500 }" - data-ng-maxlength="128" - data-required - name="projectCode" - data-ng-pattern="validation.projectCodeValidationPattern" - maxlength="50" - data-tests-id="projectCode" - /> - - <div class="input-error" data-ng-show="validateField(editForm.projectCode)"> - <span ng-show="editForm.projectCode.$error.required" translate="NEW_SERVICE_RESOURCE_ERROR_PROJECT_CODE_REQUIRED"></span> - <span ng-show="editForm.projectCode.$error.pattern" translate="NEW_SERVICE_RESOURCE_ERROR_PROJECT_CODE_NOT_VALID"></span> - </div> - </div> - <!--------------------- VENDOR RELEASE --------------------> - - - </div><!-- Close w-sdc-form-column --> - - </div><!-- Close w-sdc-form-column --> - - <div class="w-sdc-form-messages-wrapper"> - <span class="w-sdc-form-messages-msg" data-ng-show="isSaved"><span class="w-sdc-form-messages-msg-v"></span>Your resource has been saved</span> - </div> - - </div><!-- Close w-sdc-form-section-container --> - - </form> - - </div> -</div> diff --git a/catalog-ui/app/scripts/view-models/wizard/general-step/general-step.less b/catalog-ui/app/scripts/view-models/wizard/general-step/general-step.less deleted file mode 100644 index 700997a423..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/general-step/general-step.less +++ /dev/null @@ -1,34 +0,0 @@ -.sdc-wizard-general-step { - - .w-sdc-form { - padding: 0; - - .w-sdc-form-section-container { - text-align: center; - } - - .i-sdc-form-item { - &.upload { - margin-top: 0; - width: auto; - padding: 10px; - } - } - - .template-desc { - border: 1px dashed @border_color_f; - height: 130px; - overflow: hidden; - padding: 10px 6px 6px 6px; - margin-top: 10px; - } - - .sdc-tag .tag { - max-width: 225px; - } - - } - -} - - diff --git a/catalog-ui/app/scripts/view-models/wizard/general-step/general-step.ts b/catalog-ui/app/scripts/view-models/wizard/general-step/general-step.ts deleted file mode 100644 index 74c681e433..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/general-step/general-step.ts +++ /dev/null @@ -1,381 +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.Wizard { - import ISubCategory = Sdc.Models.ISubCategory; - import IMainCategory = Sdc.Models.IMainCategory; - 'use strict'; - - /* - * TODO: The template (derived from is not necessary here). - * Need to delete it from all remarks. - * */ - - export class UIModel { - tosca:Sdc.Directives.FileUploadModel; - name:string; - description:string; - vendorName:string; - vendorRelease:string; - category:string; - tags:Array<string>; - userId:string; - icon:string; - projectCode:string; - fullName:string; - isAlreadyCertified:boolean; - } - - export class Validation { - validationPattern: RegExp; - contactIdValidationPattern: RegExp; - tagValidationPattern: RegExp; - vendorValidationPattern: RegExp; - commentValidationPattern: RegExp; - projectCodeValidationPattern: RegExp; - } - - export interface IGeneralStepScope extends IWizardCreationStepScope { - model:UIModel; - validation:Validation; - editForm:ng.IFormController; - component: Models.Components.Component; - categories: Array<IMainCategory>; - latestComponentName:string; - latestCategoryId: string; - latestVendorName: string; - isNew:boolean; - toscaFileExtensions:any; - isCreate:boolean; - - onToscaFileChange():void - validateField(field:any):boolean; - validateName(isInit:boolean): void; - calculateUnique(mainCategory:string, subCategory:string):string; // Build unique string from main and sub category - calculatedTagsMaxLength():number; - setIconToDefault():void; - onVendorNameChange(oldVendorName: string): void; - } - - export class GeneralStepViewModel implements IWizardCreationStep { - - static '$inject' = [ - '$scope', - 'Sdc.Services.CacheService', - 'ValidationPattern', - 'ContactIdValidationPattern', - 'TagValidationPattern', - 'VendorValidationPattern', - 'CommentValidationPattern', - 'ValidationUtils', - 'sdcConfig', - 'ComponentFactory', - 'ProjectCodeValidationPattern' - ]; - - constructor(private $scope:IGeneralStepScope, - private cacheService:Services.CacheService, - private ValidationPattern:RegExp, - private ContactIdValidationPattern:RegExp, - private TagValidationPattern:RegExp, - private VendorValidationPattern:RegExp, - private CommentValidationPattern: RegExp, - private ValidationUtils: Sdc.Utils.ValidationUtils, - private sdcConfig:Models.IAppConfigurtaion, - private ComponentFactory: Sdc.Utils.ComponentFactory, - private ProjectCodeValidationPattern:RegExp - ) { - - this.$scope.registerChild(this); - this.initScopeValidation(); - this.initScopeMethods(); - this.initScope(); - this.$scope.isCreate = this.$scope.data.importFile === undefined; - } - - private initScopeValidation = (): void => { - this.$scope.validation = new Validation(); - this.$scope.validation.validationPattern = this.ValidationPattern; - this.$scope.validation.contactIdValidationPattern = this.ContactIdValidationPattern; - this.$scope.validation.tagValidationPattern = this.TagValidationPattern; - this.$scope.validation.vendorValidationPattern = this.VendorValidationPattern; - this.$scope.validation.commentValidationPattern = this.CommentValidationPattern; - this.$scope.validation.projectCodeValidationPattern = this.ProjectCodeValidationPattern; - }; - - private initScope = ():void => { - - // Init UIModel - this.$scope.model = new UIModel(); - - // Init categories - if(this.$scope.data.componentType === Utils.Constants.ComponentType.RESOURCE){ - this.$scope.categories = this.cacheService.get('resourceCategories'); - } - if (this.$scope.data.componentType === Utils.Constants.ComponentType.SERVICE) { - this.$scope.categories = this.cacheService.get('serviceCategories'); - } - - this.$scope.model.category=''; - - //init file extenstions - this.$scope.toscaFileExtensions = this.sdcConfig.toscaFileExtension; - - // Init Tosca import file - if (this.$scope.data.importFile) { - this.$scope.model.tosca = this.$scope.data.importFile; - } - - // Case insert or update - this.$scope.component = this.$scope.getComponent(); - if ( this.$scope.component!==undefined){ - // Update mode - - //this.$scope.latestCategoryId = this.$scope.component[0].uniqueId; - //this.$scope.latestVendorName = this.$scope.component.vendorName; - this.$scope.latestComponentName = this.$scope.component.name; - this.$scope.isNew=false; - this.resource2ModelUi(this.$scope.component); - } else { - // Create mode - this.$scope.isNew=true; - this.$scope.model.tags=[]; // Init tags - this.$scope.model.userId = this.cacheService.get("user").userId; // Fill user ID from logged in user - this.$scope.model.icon = Utils.Constants.DEFAULT_ICON; // Set the default icon - this.$scope.component = this.ComponentFactory.createEmptyComponent(this.$scope.data.componentType); - } - }; - - private initScopeMethods = ():void => { - - this.$scope.validateField = (field:any):boolean => { - if (field && field.$dirty && field.$invalid){ - return true; - } - return false; - }; - - this.$scope.validateName = (isInit:boolean):void => { - if (isInit===undefined){isInit=false;} - - let name = this.$scope.model.name; - if (!name || name===""){ - if (this.$scope.editForm - && this.$scope.editForm["componentName"] - && this.$scope.editForm["componentName"].$error){ - - // Clear the error name already exists - this.$scope.editForm["componentName"].$setValidity('nameExist', true); - } - - return; - } - let subtype:string = Utils.Constants.ComponentType.RESOURCE == this.$scope.data.componentType? - this.$scope.data.importFile? 'VFC':'VF' : undefined; - - let onFailed = (response) => { - //console.info('onFaild', response); - //this.$scope.isLoading = false; - }; - - let onSuccess = (validation:Models.IValidate) => { - this.$scope.editForm["componentName"].$setValidity('nameExist', validation.isValid); - }; - - if (isInit){ - // When page is init after update - if (this.$scope.model.name !== this.$scope.latestComponentName){ - if(!this.$scope.component.isProduct()) {//TODO remove when backend is ready - this.$scope.component.validateName(name, subtype).then(onSuccess, onFailed); - } - } - } else { - // Validating on change (has debounce) - if (this.$scope.editForm - && this.$scope.editForm["componentName"] - && this.$scope.editForm["componentName"].$error - && !this.$scope.editForm["componentName"].$error.pattern - && this.$scope.model.name !== this.$scope.latestComponentName - ) { - if(!this.$scope.component.isProduct()) { //TODO remove when backend is ready - this.$scope.component.validateName(name, subtype).then(onSuccess, onFailed); - } - } else if (this.$scope.model.name === this.$scope.latestComponentName) { - // Clear the error - this.$scope.editForm["componentName"].$setValidity('nameExist', true); - } - } - }; - - this.$scope.calculateUnique = (mainCategory:string, subCategory:string):string => { - let uniqueId: string = mainCategory; - if(subCategory) { - uniqueId += "_#_" + subCategory; // Set the select category combobox to show the selected category. - } - return uniqueId; - }; - - // Notify the parent if this step valid or not. - this.$scope.$watch("editForm.$valid", (newVal, oldVal) => { - //console.log("editForm validation: " + newVal); - this.$scope.setValidState(newVal); - }); - - this.$scope.setIconToDefault = ():void => { - this.$scope.model.icon = Utils.Constants.DEFAULT_ICON; - }; - - this.$scope.onVendorNameChange = (oldVendorName: string):void => { - if(this.$scope.component.icon === oldVendorName) { - this.$scope.setIconToDefault(); - } - }; - }; - - public save = (callback:Function):void => { - this.modelUi2Resource(); - - let onFailed = (response) => { - callback(false); - }; - - let onSuccess = (component:Models.Components.Component) => { - this.$scope.component = component; - this.$scope.setComponent(this.$scope.component); - this.$scope.latestComponentName = (component.name); - callback(true); - }; - - try { - //Send the form with attached tosca file. - if (this.$scope.isNew===true) { - this.ComponentFactory.createComponentOnServer(this.$scope.component).then(onSuccess, onFailed); - } else { - this.$scope.component.updateComponent().then(onSuccess, onFailed); - } - }catch(e){ - //console.log("ERROR: Error in updating/creating component: " + e); - callback(false); - } - - }; - - public back = (callback:Function):void => { - callback(true); - } - - // Fill the resource properties object with data from UIModel - private modelUi2Resource = ():void => { - - this.$scope.component.name = this.$scope.model.name; - this.$scope.component.description = this.ValidationUtils.stripAndSanitize(this.$scope.model.description); - this.$scope.component.vendorName = this.$scope.model.vendorName; - this.$scope.component.vendorRelease = this.$scope.model.vendorRelease; - this.$scope.component.tags = angular.copy(this.$scope.model.tags); - this.$scope.component.tags.push(this.$scope.model.name); - this.$scope.component.contactId = this.$scope.model.userId; - this.$scope.component.icon = this.$scope.model.icon; - - if(this.$scope.component.isResource()) { - (<Models.Components.Resource>this.$scope.component).resourceType = "VF"; - - // Handle the tosca file - if (this.$scope.model.tosca && this.$scope.isNew) { - (<Models.Components.Resource>this.$scope.component).payloadData = this.$scope.model.tosca.base64; - (<Models.Components.Resource>this.$scope.component).payloadName = this.$scope.model.tosca.filename; - } - - this.$scope.component.categories = this.convertCategoryStringToOneArray(); - } - - if(this.$scope.component.isProduct()) { - this.$scope.component.projectCode = this.$scope.model.projectCode; - // Handle the tosca file - this.$scope.component.categories = undefined; - (<Models.Components.Product>this.$scope.component).contacts = new Array<string>(); - (<Models.Components.Product>this.$scope.component).contacts.push(this.$scope.component.contactId); - (<Models.Components.Product>this.$scope.component).fullName = this.$scope.model.fullName; - } - - if(this.$scope.component.isService()) { - this.$scope.component.projectCode = this.$scope.model.projectCode; - this.$scope.component.categories = this.convertCategoryStringToOneArray(); - } - }; - - // Fill the UIModel from data from resource properties - private resource2ModelUi = (component: Models.Components.Component):void => { - this.$scope.model.name = component.name; - this.$scope.model.description = component.description; - this.$scope.model.vendorName = component.vendorName; - this.$scope.model.vendorRelease = component.vendorRelease; - this.$scope.model.tags = _.reject(component.tags, (item)=>{return item===component.name}); - this.$scope.model.userId = component.contactId; - this.$scope.model.icon = component.icon; - this.$scope.model.projectCode = component.projectCode; - this.$scope.model.isAlreadyCertified = component.isAlreadyCertified(); - - if(!this.$scope.component.isProduct()) { - this.$scope.model.category = this.convertCategoryOneArrayToString(component.categories); - } - - if(component.isProduct()) { - this.$scope.model.fullName = (<Models.Components.Product>component).fullName; - - } - - }; - - // Convert category string MainCategory_#_SubCategory to Array with one item (like the server except) - private convertCategoryStringToOneArray = ():Array<Models.IMainCategory> => { - let tmp = this.$scope.model.category.split("_#_"); - let mainCategory = tmp[0]; - let subCategory = tmp[1]; - - // Find the selected category and add the relevant sub category. - let selectedMainCategory:IMainCategory = <Models.IMainCategory>_.find(this.$scope.categories, function (item) { - return item["name"] === mainCategory - }); - let mainCategoryClone = jQuery.extend(true, {}, selectedMainCategory); - if(subCategory) { - mainCategoryClone['subcategories'] = [{ - "name": subCategory - }]; - } - let tmpSelected = <Models.IMainCategory> mainCategoryClone; - - let result:Array<Models.IMainCategory> = []; - result.push(tmpSelected); - - return result; - }; - - private convertCategoryOneArrayToString = (categories:Array<Models.IMainCategory>):string => { - let mainCategory:string = categories[0].name; - let subCategory:string = ''; - if(categories[0].subcategories) { - subCategory = categories[0].subcategories[0].name; - } - return this.$scope.calculateUnique(mainCategory, subCategory); - }; - - } - -} |