Skip to content

Commit b46c79c

Browse files
committed
Add redirect support to user addons page
1 parent 6bdf0db commit b46c79c

File tree

1 file changed

+36
-0
lines changed
  • lib/osf-components/addon/components/addons-service/user-addons-manager

1 file changed

+36
-0
lines changed

lib/osf-components/addon/components/addons-service/user-addons-manager/component.ts

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import ExternalStorageServiceModel from 'ember-osf-web/models/external-storage-s
2020
import ExternalComputingServiceModel from 'ember-osf-web/models/external-computing-service';
2121
import ExternalCitationServiceModel from 'ember-osf-web/models/external-citation-service';
2222
import ExternalLinkServiceModel from 'ember-osf-web/models/external-link-service';
23+
import ExternalRedirectServiceModel from 'ember-osf-web/models/external-redirect-service';
2324

2425
import UserModel from 'ember-osf-web/models/user';
2526
import UserReferenceModel from 'ember-osf-web/models/user-reference';
@@ -87,6 +88,14 @@ export default class UserAddonManagerComponent extends Component<Args> {
8788
// authorizedAccounts: [] as AuthorizedComputingAccountModel[],
8889
// authorizedServiceIds: [] as string[],
8990
// },
91+
[FilterTypes.REDIRECT_SERVICE]: {
92+
modelName: 'external-redirect-service',
93+
fetchProvidersTask: taskFor(this.getRedirectAddonProviders),
94+
list: A([]) as EmberArray<Provider>,
95+
getAuthorizedAccountsTask: taskFor(this.getAuthorizedRedirectAccounts),
96+
authorizedAccounts: [] as AllAuthorizedAccountTypes[],
97+
authorizedServiceIds: [] as string[],
98+
},
9099
};
91100
@tracked filterText = '';
92101
@tracked activeFilterType = FilterTypes.STORAGE;
@@ -258,6 +267,16 @@ export default class UserAddonManagerComponent extends Component<Args> {
258267
notifyPropertyChange(this, 'filterTypeMapper');
259268
}
260269

270+
@task
271+
@waitFor
272+
async getAuthorizedRedirectAccounts() {
273+
// Redirect services do not have authorized accounts
274+
const mappedObject = this.filterTypeMapper[FilterTypes.REDIRECT_SERVICE];
275+
mappedObject.authorizedAccounts = [] as AllAuthorizedAccountTypes[];
276+
mappedObject.authorizedServiceIds = [];
277+
notifyPropertyChange(this, 'filterTypeMapper');
278+
}
279+
261280
@task
262281
@waitFor
263282
async getAuthorizedAccounts() {
@@ -334,6 +353,23 @@ export default class UserAddonManagerComponent extends Component<Args> {
334353
));
335354
}
336355

356+
@task
357+
@waitFor
358+
async getRedirectAddonProviders() {
359+
const activeFilterObject = this.filterTypeMapper[FilterTypes.REDIRECT_SERVICE];
360+
const serviceRedirectProviders = await taskFor(this.getExternalProviders)
361+
.perform(activeFilterObject.modelName) as ExternalRedirectServiceModel[];
362+
activeFilterObject.list = serviceRedirectProviders.sort(this.providerSorter)
363+
.map(provider => new Provider(
364+
provider,
365+
this.currentUser,
366+
undefined,
367+
undefined,
368+
undefined,
369+
this.userReference,
370+
));
371+
}
372+
337373
@task
338374
@waitFor
339375
async getAddonProviders() {

0 commit comments

Comments
 (0)