diff options
Diffstat (limited to 'catalog-ui/app/scripts/directives/download-artifact/download-artifact.ts')
-rw-r--r-- | catalog-ui/app/scripts/directives/download-artifact/download-artifact.ts | 141 |
1 files changed, 0 insertions, 141 deletions
diff --git a/catalog-ui/app/scripts/directives/download-artifact/download-artifact.ts b/catalog-ui/app/scripts/directives/download-artifact/download-artifact.ts deleted file mode 100644 index 49bf14618c..0000000000 --- a/catalog-ui/app/scripts/directives/download-artifact/download-artifact.ts +++ /dev/null @@ -1,141 +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.Directives { - 'use strict'; - - export class DOWNLOAD_CSS_CLASSES { - static DOWNLOAD_ICON = "table-download-btn tosca"; - static LOADER_ICON = "tlv-loader small loader"; - } - - export interface IDownloadArtifactScope extends ng.IScope { - $window:any; - artifact: Models.ArtifactModel; - component: Models.Components.Component; - instance:boolean; - download: Function; - showLoader:boolean; - updateDownloadIcon:Function; - } - - export class DownloadArtifactDirective implements ng.IDirective { - - constructor(private $window:any,private cacheService:Services.CacheService, private EventListenerService:Services.EventListenerService, private fileUtils:Sdc.Utils.FileUtils) {} - - scope = { - artifact: '=', - component: '=', - instance:'=', - showLoader:'=' - }; - restrict = 'EA'; - - link = (scope:IDownloadArtifactScope, element:any) => { - scope.$window = this.$window; - - element.on("click", function() { - scope.download(scope.artifact); - }); - - - let initDownloadLoader = ()=>{ - //if the artifact is in a middle of download progress register form callBack & change icon from download to loader - if(scope.showLoader && this.cacheService.get(scope.artifact.uniqueId)){ - this.EventListenerService.registerObserverCallback(Utils.Constants.EVENTS.DOWNLOAD_ARTIFACT_FINISH_EVENT + scope.artifact.uniqueId, scope.updateDownloadIcon); - window.setTimeout(():void => { - if(this.cacheService.get(scope.artifact.uniqueId)){ - element[0].className = DOWNLOAD_CSS_CLASSES.LOADER_ICON; - } - },1000); - - } - }; - - let setDownloadedFileLoader = ()=> { - if(scope.showLoader){ - //set in cache service thet the artifact is in download progress - this.cacheService.set(scope.artifact.uniqueId,true); - initDownloadLoader(); - } - }; - - let removeDownloadedFileLoader = ()=> { - if (scope.showLoader) { - this.cacheService.set(scope.artifact.uniqueId, false); - this.EventListenerService.notifyObservers(Utils.Constants.EVENTS.DOWNLOAD_ARTIFACT_FINISH_EVENT + scope.artifact.uniqueId); - } - }; - - - //replace the loader to download icon - scope.updateDownloadIcon = () =>{ - element[0].className = DOWNLOAD_CSS_CLASSES.DOWNLOAD_ICON; - }; - - - initDownloadLoader(); - - scope.download = (artifact:Models.ArtifactModel):void => { - - let onFaild = (response):void => { - console.info('onFaild', response); - removeDownloadedFileLoader(); - }; - - let onSuccess = (data:Models.IFileDownload):void => { - downloadFile(data); - removeDownloadedFileLoader(); - }; - - setDownloadedFileLoader(); - - if(scope.instance){ - scope.component.downloadInstanceArtifact(artifact.uniqueId).then(onSuccess, onFaild); - }else { - scope.component.downloadArtifact(artifact.uniqueId).then(onSuccess, onFaild); - } - }; - - let downloadFile = (file:Models.IFileDownload):void => { - if (file){ - let blob = this.fileUtils.base64toBlob(file.base64Contents,''); - let fileName = file.artifactName; - this.fileUtils.downloadFile(blob, fileName); - } - }; - - element.on('$destroy', ()=>{ - //remove listener of download event - if(scope.artifact && scope.artifact.uniqueId){ - this.EventListenerService.unRegisterObserver(Utils.Constants.EVENTS.DOWNLOAD_ARTIFACT_FINISH_EVENT + scope.artifact.uniqueId); - } - }); - - }; - - public static factory = ($window:any,cacheService:Sdc.Services.CacheService,EventListenerService:Services.EventListenerService, fileUtils:Sdc.Utils.FileUtils)=> { - return new DownloadArtifactDirective($window,cacheService,EventListenerService, fileUtils); - }; - - } - - DownloadArtifactDirective.factory.$inject = ['$window', 'Sdc.Services.CacheService', 'EventListenerService', 'FileUtils']; -} |