/*
* ============LICENSE_START=======================================================
* Copyright (C) 2023 Nordix Foundation
* ================================================================================
* 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.
*
* SPDX-License-Identifier: Apache-2.0
* ============LICENSE_END=========================================================
*/
import { Component, EventEmitter, Input, Output } from "@angular/core";
import { ArtifactModel } from "app/models";
import { TranslateService } from '../../../shared/translator/translate.service';
import { SdcUiServices } from 'onap-ui-angular';
@Component({
selector: 'upload-artifact',
template: `
`
})
export class UploadArtifactComponent {
@Input() extensions: string;
@Input() artifact: ArtifactModel;
@Input() isInstance: boolean;
@Input() uploadIconClass: string;
@Input() componentType: string;
@Input() componentId: string;
@Input() testId: string;
@Input() disabled: boolean;
@Output("onFileUpload") onFileUpload: EventEmitter = new EventEmitter();
public extensionsWithDot: string;
public iconType:string = "upload-o";
constructor(
private modalService: SdcUiServices.ModalService,
private translateService: TranslateService) {
}
ngOnInit () {
this.extensionsWithDot = this.getExtensionsWithDot(this.extensions);
}
public getExtensionsWithDot(extensions:string):string {
extensions = extensions || '';
return extensions.split(',')
.map(ext => '.' + ext.toString())
.join(',');
}
public onFileSelect(event) {
const file = event.target.files[0];
if (file && file.name) {
const fileExtension: string = file.name.split('.').pop();
if (this.extensionsWithDot.includes(fileExtension.toLowerCase())) {
this.onFileUpload.emit(file);
} else {
const title: string = this.translateService.translate('NEW_SERVICE_RESOURCE_ERROR_VALID_TOSCA_EXTENSIONS_TITLE');
const message: string = this.translateService.translate('NEW_SERVICE_RESOURCE_ERROR_VALID_TOSCA_EXTENSIONS', {extensions: this.extensionsWithDot});
this.modalService.openWarningModal(title, message, 'error-invalid-tosca-ext');
}
}
}
}