@@ -13,6 +13,7 @@ import { Permission } from 'ember-osf-web/models/osf-model';
1313import CurrentUserService from 'ember-osf-web/services/current-user' ;
1414import captureException , { getApiErrorMessage } from 'ember-osf-web/utils/capture-exception' ;
1515import humanFileSize from 'ember-osf-web/utils/human-file-size' ;
16+ import { ExternalServiceCapabilities } from 'ember-osf-web/models/external-service' ;
1617
1718
1819export enum FileSortKey {
@@ -50,11 +51,11 @@ export default class ServiceFile {
5051 @tracked configuredStorageAddon : ConfiguredStorageAddonModel ;
5152 @tracked totalFileCount = 0 ;
5253 @tracked waterButlerRevisions ?: WaterButlerRevision [ ] ;
53- userCanDownloadAsZip : boolean ;
54+ @tracked userCanDownloadAsZip : boolean ;
55+ @tracked canMoveToThisProvider : boolean ;
5456 shouldShowTags = false ;
5557 shouldShowRevisions : boolean ;
5658 providerHandlesVersioning : boolean ;
57- canMoveToThisProvider : boolean ;
5859 parallelUploadsLimit = 2 ;
5960
6061 currentUser : CurrentUserService ;
@@ -71,15 +72,22 @@ export default class ServiceFile {
7172 this . currentUser = currentUser ;
7273 this . fileModel = fileModel ;
7374 this . configuredStorageAddon = configuredStorageAddon ;
74- this . userCanDownloadAsZip = configuredStorageAddon . connectedOperationNames
75- . includes ( ConnectedOperationNames . DownloadAsZip ) ;
75+ this . userCanDownloadAsZip = false ;
76+ this . canMoveToThisProvider = false ;
77+ this . getSupportedFeatures ( ) ;
7678 this . providerHandlesVersioning = configuredStorageAddon . connectedOperationNames
7779 . includes ( ConnectedOperationNames . HasRevisions ) ;
7880 this . shouldShowRevisions = configuredStorageAddon . connectedOperationNames
7981 . includes ( ConnectedOperationNames . HasRevisions ) ;
8082 this . parallelUploadsLimit = configuredStorageAddon . concurrentUploads ;
81- this . canMoveToThisProvider = configuredStorageAddon . connectedOperationNames
82- . includes ( ConnectedOperationNames . CopyInto ) ;
83+ }
84+
85+ async getSupportedFeatures ( ) {
86+ const externalStorageService = await this . configuredStorageAddon . externalStorageService ;
87+ this . userCanDownloadAsZip = externalStorageService . get ( 'supportedFeatures' )
88+ . includes ( ExternalServiceCapabilities . DOWNLOAD_AS_ZIP ) ;
89+ this . canMoveToThisProvider = externalStorageService . get ( 'supportedFeatures' )
90+ . includes ( ExternalServiceCapabilities . COPY_INTO ) ;
8391 }
8492
8593 get isFile ( ) {
0 commit comments