• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

CenterForOpenScience / ember-osf-web / 15307261425

28 May 2025 06:01PM UTC coverage: 67.28%. First build
15307261425

Pull #2556

github

web-flow
Merge 75f992886 into d3b604413
Pull Request #2556: Feature/file picker select root

3245 of 5305 branches covered (61.17%)

Branch coverage included in aggregate %.

21 of 98 new or added lines in 4 files covered. (21.43%)

8500 of 12152 relevant lines covered (69.95%)

185.46 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

55.56
/lib/osf-components/addon/components/file-browser/add-new/component.ts
1
// import { inject as service } from '@ember/service';
2
import { action } from '@ember/object';
3
import { waitFor } from '@ember/test-waiters';
4
import Component from '@glimmer/component';
5
import { tracked } from '@glimmer/tracking';
6
import { task } from 'ember-concurrency';
7
import { taskFor } from 'ember-concurrency-ts';
8
import ConfiguredStorageAddonModel from 'ember-osf-web/models/configured-storage-addon';
9
import GoogleFilePickerWidget from 'osf-components/components/google-file-picker-widget/component';
10
import StorageManager from 'osf-components/components/storage-provider-manager/storage-manager/component';
11

12
interface Args {
13
    manager: StorageManager;
14
    configuredStorageAddon: ConfiguredStorageAddonModel;
15
}
16

17
export default class FileBrowser extends Component<Args> {
18
    @tracked createFolderModalOpen = false;
5✔
NEW
19
    @tracked googlePickerComponent: GoogleFilePickerWidget | null = null;
×
20
    @tracked dropzoneClickableElementId = '';
×
21
    @tracked isWBGoogleDrive = false;
5✔
22
    @tracked googleFilePickerRootFolder!: string;
23
    @tracked accountId!: string;
24

25
    constructor(owner: unknown, args: Args) {
26
        super(owner, args);
5✔
27

28
        taskFor(this.loadExternalStorageService).perform();
5✔
29
    }
30

31
    /**
32
     * This is called only to authorize because the current implementation will throw an
33
     * error because the "root folder" is not yet set.
34
     */
35
    @task
36
    @waitFor
37
    async loadExternalStorageService() {
38
        this.googleFilePickerRootFolder = this.args.configuredStorageAddon?.rootFolder;
5✔
39
        const baseAccount = await this.args.configuredStorageAddon?.baseAccount;
5✔
40
        this.accountId = baseAccount?.id;
5✔
41
        const external = await this.args.configuredStorageAddon?.externalStorageService;
5✔
42
        this.isWBGoogleDrive = external?.wbKey === 'googledrive';
5✔
43
    }
44

45
    get isGoogleDrive(): boolean {
46
        return this.isWBGoogleDrive;
10✔
47
    }
48

49
    @action
50
    registerChild(child: GoogleFilePickerWidget) {
NEW
51
        this.googlePickerComponent = child; // Store the child's instance
×
52
    }
53

54
    @action
55
    openGoogleFilePicker(dropdown: any) {
NEW
56
        dropdown.close();
×
NEW
57
        if (this.googlePickerComponent) {
×
NEW
58
            this.googlePickerComponent.openPicker();
×
59
        }
60
    }
61
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc