Skip to content

Commit f51aa4b

Browse files
authored
[ENG-6312][ENG-6315] Move copy (#2397)
1 parent 3013b64 commit f51aa4b

File tree

5 files changed

+32
-15
lines changed

5 files changed

+32
-15
lines changed

app/models/configured-addon.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ export enum ConnectedCapabilities {
1212
}
1313

1414
export enum ConnectedOperationNames {
15-
DownloadAsZip = 'download_as_zip',
16-
CopyInto = 'copy_into',
1715
HasRevisions = 'has_revisions',
1816
ListRootItems = 'list_root_items',
1917
ListChildItems = 'list_child_items',

app/models/external-service.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ export enum ExternalServiceCapabilities {
2424
REGISTERING = 'REGISTERING',
2525
REGISTERING_PARTIAL = 'REGISTERING_PARTIAL',
2626
FILE_VERSIONS = 'FILE_VERSIONS',
27+
DOWNLOAD_AS_ZIP = 'DOWNLOAD_AS_ZIP',
28+
COPY_INTO = 'COPY_INTO',
2729
}
2830

2931
export default class ExternalServiceModel extends Model {

app/models/external-storage-service.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import ExternalServiceModel from './external-service';
55
export default class ExternalStorageServiceModel extends ExternalServiceModel {
66
@attr('number') maxConcurrentDownloads!: number;
77
@attr('number') maxUploadMb!: number;
8+
@attr('string') wbKey!: string;
89
}
910

1011
declare module 'ember-data/types/registries/model' {

app/packages/files/service-file.ts

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import { Permission } from 'ember-osf-web/models/osf-model';
1313
import CurrentUserService from 'ember-osf-web/services/current-user';
1414
import captureException, { getApiErrorMessage } from 'ember-osf-web/utils/capture-exception';
1515
import humanFileSize from 'ember-osf-web/utils/human-file-size';
16+
import { ExternalServiceCapabilities } from 'ember-osf-web/models/external-service';
1617

1718

1819
export 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() {

app/packages/files/service-provider-file.ts

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,15 @@ import { ErrorDocument } from 'osf-api';
1414
import ConfiguredStorageAddonModel from 'ember-osf-web/models/configured-storage-addon';
1515
import { ConnectedOperationNames, ConnectedCapabilities } from 'ember-osf-web/models/configured-addon';
1616
import ServiceFile from 'ember-osf-web/packages/files/service-file';
17+
import { ExternalServiceCapabilities } from 'ember-osf-web/models/external-service';
1718

1819
export default class ServiceProviderFile {
1920
@tracked fileModel: FileProviderModel;
2021
@tracked configuredStorageAddon: ConfiguredStorageAddonModel;
2122
@tracked totalFileCount = 0;
22-
userCanDownloadAsZip: boolean;
23+
@tracked userCanDownloadAsZip: boolean;
24+
@tracked canMoveToThisProvider: boolean;
2325
providerHandlesVersioning: boolean;
24-
canMoveToThisProvider: boolean;
2526
parallelUploadsLimit = 2;
2627

2728
currentUser: CurrentUserService;
@@ -37,13 +38,20 @@ export default class ServiceProviderFile {
3738
this.currentUser = currentUser;
3839
this.fileModel = fileModel;
3940
this.configuredStorageAddon = configuredStorageAddon;
40-
this.userCanDownloadAsZip = configuredStorageAddon.connectedOperationNames
41-
.includes(ConnectedOperationNames.DownloadAsZip);
41+
this.userCanDownloadAsZip = false;
42+
this.canMoveToThisProvider = false;
43+
this.getSupportedFeatures();
4244
this.providerHandlesVersioning = configuredStorageAddon.connectedOperationNames
4345
.includes(ConnectedOperationNames.HasRevisions);
4446
this.parallelUploadsLimit = configuredStorageAddon.concurrentUploads;
45-
this.canMoveToThisProvider = configuredStorageAddon.connectedOperationNames
46-
.includes(ConnectedOperationNames.CopyInto);
47+
}
48+
49+
async getSupportedFeatures() {
50+
const externalStorageService = await this.configuredStorageAddon.externalStorageService;
51+
this.userCanDownloadAsZip = externalStorageService.get('supportedFeatures')
52+
.includes(ExternalServiceCapabilities.DOWNLOAD_AS_ZIP);
53+
this.canMoveToThisProvider = externalStorageService.get('supportedFeatures')
54+
.includes(ExternalServiceCapabilities.COPY_INTO);
4755
}
4856

4957
get id() {
@@ -92,7 +100,7 @@ export default class ServiceProviderFile {
92100
}
93101

94102
get name() {
95-
return this.configuredStorageAddon.displayName;
103+
return this.configuredStorageAddon.externalStorageService.get('wbKey');
96104
}
97105

98106
get iconLocation() {

0 commit comments

Comments
 (0)