diff --git a/app/adapters/authorized-link-account.ts b/app/adapters/authorized-link-account.ts new file mode 100644 index 0000000000..b90f11ff32 --- /dev/null +++ b/app/adapters/authorized-link-account.ts @@ -0,0 +1,10 @@ +import AddonServiceAdapter from './addon-service'; + +export default class AuthorizedLinkAccountAdapter extends AddonServiceAdapter { +} + +declare module 'ember-data/types/registries/adapter' { + export default interface AdapterRegistry { + 'authorized-link-account': AuthorizedLinkAccountAdapter; + } // eslint-disable-line semi +} diff --git a/app/adapters/configured-link-addon.ts b/app/adapters/configured-link-addon.ts new file mode 100644 index 0000000000..4518c6d0f5 --- /dev/null +++ b/app/adapters/configured-link-addon.ts @@ -0,0 +1,10 @@ +import AddonServiceAdapter from './addon-service'; + +export default class ConfiguredLinkAddonAdapter extends AddonServiceAdapter { +} + +declare module 'ember-data/types/registries/adapter' { + export default interface AdapterRegistry { + 'configured-link-addon': ConfiguredLinkAddonAdapter; + } // eslint-disable-line semi +} diff --git a/app/adapters/external-link-service.ts b/app/adapters/external-link-service.ts new file mode 100644 index 0000000000..36304069c7 --- /dev/null +++ b/app/adapters/external-link-service.ts @@ -0,0 +1,10 @@ +import AddonServiceAdapter from './addon-service'; + +export default class ExternalLinkServiceAdapter extends AddonServiceAdapter { +} + +declare module 'ember-data/types/registries/adapter' { + export default interface AdapterRegistry { + 'external-link-service': ExternalLinkServiceAdapter; + } // eslint-disable-line semi +} diff --git a/app/guid-node/addons/index/controller.ts b/app/guid-node/addons/index/controller.ts index 5e176c24dc..36d1e19a7b 100644 --- a/app/guid-node/addons/index/controller.ts +++ b/app/guid-node/addons/index/controller.ts @@ -1,9 +1,20 @@ import Controller from '@ember/controller'; import { inject as service } from '@ember/service'; import Media from 'ember-responsive'; +import { tracked } from 'tracked-built-ins'; +enum FilterTypes { + STORAGE = 'additional-storage', + CITATION_MANAGER = 'citation-manager', + VERIFIED_LINK = 'verified-link', + // CLOUD_COMPUTING = 'cloud-computing', // disabled because BOA is down +} export default class GuidNodeAddonsController extends Controller { @service media!: Media; + @tracked tabIndex = 0; + @tracked activeFilterType = FilterTypes.STORAGE; + + queryParams = ['tabIndex', 'activeFilterType']; get isMobile() { return this.media.isMobile; diff --git a/app/guid-node/addons/index/template.hbs b/app/guid-node/addons/index/template.hbs index 005c1543a8..f3e88d7f28 100644 --- a/app/guid-node/addons/index/template.hbs +++ b/app/guid-node/addons/index/template.hbs @@ -3,6 +3,9 @@
{{#if manager.selectedProvider}} @@ -274,6 +277,7 @@ @@ -282,7 +286,8 @@ {{/let}} {{else}} @@ -324,7 +329,7 @@
- {{#if this.requiresRootFolder }} + {{#if this.requiresFilesWidget }}
- {{t 'addons.configure.selected-folder'}} + {{#if this.isLinkAddon}} + {{t 'addons.configure.linked-item'}} + {{else}} + {{t 'addons.configure.selected-folder'}} + {{/if}} {{#if this.selectedFolderDisplayName}} {{this.selectedFolderDisplayName}} + {{else if this.selectedItemDisplayName}} + {{this.selectedItemDisplayName}} {{else}} {{t 'addons.configure.no-folder-selected'}} {{/if}} @@ -81,48 +87,48 @@ {{t 'addons.configure.error-loading-items'}} {{else}} - {{#each fileManager.currentItems as |folder|}} + {{#each fileManager.currentItems as |item|}} - {{#if folder.mayContainRootCandidates}} + {{#if (or item.mayContainRootCandidates fileManager.isLinkAddon)}} {{else}} - {{#if (or (eq folder.itemType 'FOLDER') (eq folder.itemType 'COLLECTION'))}} + {{#if (or (eq item.itemType 'FOLDER') (eq item.itemType 'COLLECTION'))}} {{else}} {{/if}} - {{folder.itemName}} + {{item.itemName}} {{/if}} - {{#if folder.canBeRoot}} + {{#if (or item.canBeRoot fileManager.isLinkAddon)}} {{/if}} @@ -151,6 +157,20 @@ {{/if}} + {{#if this.isLinkAddon}} + + {{/if}}