diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 51cadfd08..a954734fc 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,20 +1,13 @@ import { NgModule } from '@angular/core'; import { NgxsModule } from '@ngxs/store'; import { AuthState } from '@core/store/auth'; -import { HomeState } from 'src/app/features/home/store'; -import { TokensState } from '@core/store/settings'; -import { AddonsState } from '@core/store/settings/addons'; +import { AddonsState } from '@osf/features/settings/addons/store'; import { SearchState } from '@osf/features/search/store'; +import { TokensState } from '@osf/features/settings/tokens/store'; @NgModule({ imports: [ - NgxsModule.forRoot([ - AuthState, - TokensState, - AddonsState, - HomeState, - SearchState, - ]), + NgxsModule.forRoot([AuthState, TokensState, AddonsState, SearchState]), ], }) export class AppModule {} diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index a00ca439c..50b1f7c5e 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -82,7 +82,7 @@ export const routes: Routes = [ { path: 'my-projects/:id', loadComponent: () => - import('./features/my-projects/project/project.component').then( + import('@osf/features/project/project.component').then( (mod) => mod.ProjectComponent, ), children: [ @@ -95,35 +95,35 @@ export const routes: Routes = [ path: 'overview', loadComponent: () => import( - './features/my-projects/project/overview/project-overview.component' + '@osf/features/project/overview/project-overview.component' ).then((mod) => mod.ProjectOverviewComponent), }, { path: 'metadata', loadComponent: () => import( - './features/my-projects/project/metadata/project-metadata.component' + '@osf/features/project/metadata/project-metadata.component' ).then((mod) => mod.ProjectMetadataComponent), }, { path: 'files', loadComponent: () => import( - './features/my-projects/project/files/project-files.component' + '@osf/features/project/files/project-files.component' ).then((mod) => mod.ProjectFilesComponent), }, { path: 'files/:fileId', loadComponent: () => import( - './features/my-projects/project/files/file-detail/file-detail.component' + '@osf/features/project/files/file-detail/file-detail.component' ).then((mod) => mod.FileDetailComponent), }, { path: 'registrations', loadComponent: () => import( - '@osf/features/my-projects/project/registrations/registrations.component' + '@osf/features/project/registrations/registrations.component' ).then((mod) => mod.RegistrationsComponent), }, ], diff --git a/src/app/core/components/nav-menu/nav-menu.component.ts b/src/app/core/components/nav-menu/nav-menu.component.ts index 6474754ba..95dafa14d 100644 --- a/src/app/core/components/nav-menu/nav-menu.component.ts +++ b/src/app/core/components/nav-menu/nav-menu.component.ts @@ -48,7 +48,11 @@ export class NavMenuComponent { #convertToMenuItem(item: NavItem): MenuItem { const currentUrl = this.#router.url; - const isExpanded = item.isCollapsible && currentUrl.startsWith(item.path); + const isExpanded = + item.isCollapsible && + (currentUrl.startsWith(item.path) || + (item.items?.some((subItem) => currentUrl.startsWith(subItem.path)) ?? + false)); return { label: item.label, diff --git a/src/app/core/constants/ngxs-states.constant.ts b/src/app/core/constants/ngxs-states.constant.ts index afb99d181..c3f29dce7 100644 --- a/src/app/core/constants/ngxs-states.constant.ts +++ b/src/app/core/constants/ngxs-states.constant.ts @@ -1,10 +1,10 @@ import { AuthState } from '@core/store/auth'; -import { TokensState } from '@core/store/settings'; -import { AddonsState } from '@core/store/settings/addons'; +import { TokensState } from '@osf/features/settings/tokens/store'; +import { AddonsState } from '@osf/features/settings/addons/store'; import { UserState } from '@core/store/user'; -import { MyProjectsState } from '@core/store/my-projects'; +import { MyProjectsState } from '@osf/features/my-projects/store'; import { SearchState } from '@osf/features/search/store'; -import { InstitutionsState } from '@core/store/institutions'; +import { InstitutionsState } from '@osf/features/institutions/store'; export const STATES = [ AuthState, diff --git a/src/app/core/services/json-api/json-api.service.ts b/src/app/core/services/json-api/json-api.service.ts index 522c03304..7ca568658 100644 --- a/src/app/core/services/json-api/json-api.service.ts +++ b/src/app/core/services/json-api/json-api.service.ts @@ -9,7 +9,7 @@ import { JsonApiResponse } from '@core/services/json-api/json-api.entity'; export class JsonApiService { http: HttpClient = inject(HttpClient); readonly #token = - 'Bearer UlO9O9GNKgVzJD7pUeY53jiQTKJ4U2znXVWNvh0KZQruoENuILx0IIYf9LoDz7Duq72EIm'; + 'Bearer 2rjFZwmdDG4rtKj7hGkEMO6XyHBM2lN7XBbsA1e8OqcFhOWu6Z7fQZiheu9RXtzSeVrgOt'; readonly #headers = new HttpHeaders({ Authorization: this.#token, Accept: 'application/vnd.api+json', diff --git a/src/app/core/store/settings/index.ts b/src/app/core/store/settings/index.ts deleted file mode 100644 index e56053c16..000000000 --- a/src/app/core/store/settings/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './tokens'; diff --git a/src/app/features/home/home.component.ts b/src/app/features/home/home.component.ts index fd210e573..f3f8e517b 100644 --- a/src/app/features/home/home.component.ts +++ b/src/app/features/home/home.component.ts @@ -23,11 +23,11 @@ import { MyProjectsSelectors, GetMyProjects, ClearMyProjects, -} from '@core/store/my-projects'; +} from '@osf/features/my-projects/store'; import { debounceTime, distinctUntilChanged, Subject } from 'rxjs'; import { MyProjectsSearchFilters } from '@osf/features/my-projects/entities/my-projects-search-filters.models'; import { MyProjectsItem } from '@osf/features/my-projects/entities/my-projects.entities'; -import { GetUserInstitutions } from '@osf/core/store/institutions'; +import { GetUserInstitutions } from '@osf/features/institutions/store'; import { DialogService } from 'primeng/dynamicdialog'; import { AddProjectFormComponent } from '@shared/components/add-project-form/add-project-form.component'; diff --git a/src/app/features/institutions/institutions.service.ts b/src/app/features/institutions/institutions.service.ts index 21d453ddd..634612290 100644 --- a/src/app/features/institutions/institutions.service.ts +++ b/src/app/features/institutions/institutions.service.ts @@ -18,6 +18,7 @@ export class InstitutionsService { getUserInstitutions(): Observable { const url = this.#baseUrl + 'users/me/institutions/'; + // const url = this.#baseUrl + 'users/26c59/institutions/'; return this.#jsonApiService .get>(url) .pipe( diff --git a/src/app/core/store/institutions/index.ts b/src/app/features/institutions/store/index.ts similarity index 100% rename from src/app/core/store/institutions/index.ts rename to src/app/features/institutions/store/index.ts diff --git a/src/app/core/store/institutions/institutions.actions.ts b/src/app/features/institutions/store/institutions.actions.ts similarity index 100% rename from src/app/core/store/institutions/institutions.actions.ts rename to src/app/features/institutions/store/institutions.actions.ts diff --git a/src/app/core/store/institutions/institutions.model.ts b/src/app/features/institutions/store/institutions.model.ts similarity index 100% rename from src/app/core/store/institutions/institutions.model.ts rename to src/app/features/institutions/store/institutions.model.ts diff --git a/src/app/core/store/institutions/institutions.selectors.ts b/src/app/features/institutions/store/institutions.selectors.ts similarity index 100% rename from src/app/core/store/institutions/institutions.selectors.ts rename to src/app/features/institutions/store/institutions.selectors.ts diff --git a/src/app/core/store/institutions/institutions.state.ts b/src/app/features/institutions/store/institutions.state.ts similarity index 100% rename from src/app/core/store/institutions/institutions.state.ts rename to src/app/features/institutions/store/institutions.state.ts diff --git a/src/app/features/my-projects/my-projects.component.ts b/src/app/features/my-projects/my-projects.component.ts index 83f194776..9ad42a89d 100644 --- a/src/app/features/my-projects/my-projects.component.ts +++ b/src/app/features/my-projects/my-projects.component.ts @@ -30,7 +30,7 @@ import { GetMyPreprints, GetBookmarksCollectionId, GetMyBookmarks, -} from '@core/store/my-projects'; +} from '@osf/features/my-projects/store'; import { debounceTime, distinctUntilChanged, Subject } from 'rxjs'; import { MyProjectsSearchFilters } from '@osf/features/my-projects/entities/my-projects-search-filters.models'; import { TableParameters } from '@shared/entities/table-parameters.interface'; @@ -40,7 +40,7 @@ import { SortOrder } from '@shared/utils/sort-order.enum'; import { MyProjectsItem } from '@osf/features/my-projects/entities/my-projects.entities'; import { QueryParams } from '@osf/shared/entities/query-params.interface'; import { MyProjectsTableComponent } from '@shared/components/my-projects-table/my-projects-table.component'; -import { GetUserInstitutions } from '@core/store/institutions'; +import { GetUserInstitutions } from '@osf/features/institutions/store'; @Component({ selector: 'osf-my-projects', diff --git a/src/app/features/my-projects/my-projects.service.ts b/src/app/features/my-projects/my-projects.service.ts index 2d8e7be38..04844b8c5 100644 --- a/src/app/features/my-projects/my-projects.service.ts +++ b/src/app/features/my-projects/my-projects.service.ts @@ -14,12 +14,12 @@ import { map } from 'rxjs/operators'; import { SortOrder } from '@shared/utils/sort-order.enum'; import { EndpointType } from '@osf/features/my-projects/entities/my-projects.types'; import { CreateProjectPayload } from './entities/create-project.entities'; +import { environment } from '../../../environments/environment'; @Injectable({ providedIn: 'root', }) export class MyProjectsService { - #baseUrl = 'https://api.staging4.osf.io/v2/'; #jsonApiService = inject(JsonApiService); #sortFieldMap: Record = { title: 'title', @@ -58,10 +58,10 @@ export class MyProjectsService { } else { params['sort'] = '-date_modified'; } - // const url = this.#baseUrl + endpoint + '/'; - const url = endpoint.startsWith('collections/') - ? this.#baseUrl + endpoint - : this.#baseUrl + 'users/me/' + endpoint; + const url = environment.apiUrl + '/' + endpoint + '/'; + // const url = endpoint.startsWith('collections/') + // ? environment.apiUrl + '/' + endpoint + // : environment.apiUrl + '/users/me/' + endpoint; return this.#jsonApiService .get(url, params) @@ -89,7 +89,10 @@ export class MyProjectsService { }; return this.#jsonApiService - .get(this.#baseUrl + 'collections/', params) + .get( + environment.apiUrl + '/collections/', + params, + ) .pipe( map((response) => { const bookmarksCollection = response.data.find( @@ -175,7 +178,7 @@ export class MyProjectsService { return this.#jsonApiService .post( - `${this.#baseUrl}nodes/`, + `${environment.apiUrl}/nodes/`, payload, params, ) diff --git a/src/app/features/my-projects/project/registrations/registrations.component.scss b/src/app/features/my-projects/project/registrations/registrations.component.scss deleted file mode 100644 index 890820bfb..000000000 --- a/src/app/features/my-projects/project/registrations/registrations.component.scss +++ /dev/null @@ -1,7 +0,0 @@ -@use "../../../../../assets/styles/variables" as var; -@use "../../../../../assets/styles/mixins" as mix; - -:host { - @include mix.flex-column; - flex: 1; -} diff --git a/src/app/core/store/my-projects/index.ts b/src/app/features/my-projects/store/index.ts similarity index 100% rename from src/app/core/store/my-projects/index.ts rename to src/app/features/my-projects/store/index.ts diff --git a/src/app/core/store/my-projects/my-projects.actions.ts b/src/app/features/my-projects/store/my-projects.actions.ts similarity index 100% rename from src/app/core/store/my-projects/my-projects.actions.ts rename to src/app/features/my-projects/store/my-projects.actions.ts diff --git a/src/app/core/store/my-projects/my-projects.model.ts b/src/app/features/my-projects/store/my-projects.model.ts similarity index 100% rename from src/app/core/store/my-projects/my-projects.model.ts rename to src/app/features/my-projects/store/my-projects.model.ts diff --git a/src/app/core/store/my-projects/my-projects.selectors.ts b/src/app/features/my-projects/store/my-projects.selectors.ts similarity index 93% rename from src/app/core/store/my-projects/my-projects.selectors.ts rename to src/app/features/my-projects/store/my-projects.selectors.ts index 2f35d549f..97100f182 100644 --- a/src/app/core/store/my-projects/my-projects.selectors.ts +++ b/src/app/features/my-projects/store/my-projects.selectors.ts @@ -1,6 +1,6 @@ import { Selector } from '@ngxs/store'; import { MyProjectsStateModel } from './my-projects.model'; -import { MyProjectsState } from '@core/store/my-projects/my-projects.state'; +import { MyProjectsState } from '@osf/features/my-projects/store/my-projects.state'; export class MyProjectsSelectors { @Selector([MyProjectsState]) diff --git a/src/app/core/store/my-projects/my-projects.state.ts b/src/app/features/my-projects/store/my-projects.state.ts similarity index 100% rename from src/app/core/store/my-projects/my-projects.state.ts rename to src/app/features/my-projects/store/my-projects.state.ts diff --git a/src/app/features/my-projects/project/files/file-detail/file-detail.component.html b/src/app/features/project/files/file-detail/file-detail.component.html similarity index 100% rename from src/app/features/my-projects/project/files/file-detail/file-detail.component.html rename to src/app/features/project/files/file-detail/file-detail.component.html diff --git a/src/app/features/my-projects/project/files/file-detail/file-detail.component.scss b/src/app/features/project/files/file-detail/file-detail.component.scss similarity index 100% rename from src/app/features/my-projects/project/files/file-detail/file-detail.component.scss rename to src/app/features/project/files/file-detail/file-detail.component.scss diff --git a/src/app/features/my-projects/project/files/file-detail/file-detail.component.ts b/src/app/features/project/files/file-detail/file-detail.component.ts similarity index 100% rename from src/app/features/my-projects/project/files/file-detail/file-detail.component.ts rename to src/app/features/project/files/file-detail/file-detail.component.ts diff --git a/src/app/features/my-projects/project/files/project-files.component.scss b/src/app/features/project/files/project-files.component.scss similarity index 89% rename from src/app/features/my-projects/project/files/project-files.component.scss rename to src/app/features/project/files/project-files.component.scss index cfc68520a..05651653a 100644 --- a/src/app/features/my-projects/project/files/project-files.component.scss +++ b/src/app/features/project/files/project-files.component.scss @@ -1,5 +1,5 @@ -@use "assets/styles/variables" as var; -@use "assets/styles/mixins" as mix; +@use "../../../../assets/styles/variables" as var; +@use "../../../../assets/styles/mixins" as mix; :host { @include mix.flex-column; diff --git a/src/app/features/my-projects/project/files/project-files.component.ts b/src/app/features/project/files/project-files.component.ts similarity index 96% rename from src/app/features/my-projects/project/files/project-files.component.ts rename to src/app/features/project/files/project-files.component.ts index 8a97ceb4d..947dd6897 100644 --- a/src/app/features/my-projects/project/files/project-files.component.ts +++ b/src/app/features/project/files/project-files.component.ts @@ -10,7 +10,7 @@ import { TableModule } from 'primeng/table'; import { FileItem, FILES, -} from '@osf/features/my-projects/project/files/project-files.entities'; +} from '@osf/features/project/files/project-files.entities'; import { Router } from '@angular/router'; import { Select } from 'primeng/select'; import { FloatLabel } from 'primeng/floatlabel'; diff --git a/src/app/features/my-projects/project/files/project-files.entities.ts b/src/app/features/project/files/project-files.entities.ts similarity index 100% rename from src/app/features/my-projects/project/files/project-files.entities.ts rename to src/app/features/project/files/project-files.entities.ts diff --git a/src/app/features/my-projects/project/metadata/metadata.ts b/src/app/features/project/metadata/metadata.ts similarity index 100% rename from src/app/features/my-projects/project/metadata/metadata.ts rename to src/app/features/project/metadata/metadata.ts diff --git a/src/app/features/my-projects/project/metadata/project-metadata.component.html b/src/app/features/project/metadata/project-metadata.component.html similarity index 100% rename from src/app/features/my-projects/project/metadata/project-metadata.component.html rename to src/app/features/project/metadata/project-metadata.component.html diff --git a/src/app/features/my-projects/project/metadata/project-metadata.component.scss b/src/app/features/project/metadata/project-metadata.component.scss similarity index 68% rename from src/app/features/my-projects/project/metadata/project-metadata.component.scss rename to src/app/features/project/metadata/project-metadata.component.scss index cad8088a3..bf63c821d 100644 --- a/src/app/features/my-projects/project/metadata/project-metadata.component.scss +++ b/src/app/features/project/metadata/project-metadata.component.scss @@ -1,4 +1,4 @@ -@use "assets/styles/variables" as var; +@use "../../../../assets/styles/variables" as var; .metadata { border: 1px solid var(--grey-2); diff --git a/src/app/features/my-projects/project/metadata/project-metadata.component.ts b/src/app/features/project/metadata/project-metadata.component.ts similarity index 87% rename from src/app/features/my-projects/project/metadata/project-metadata.component.ts rename to src/app/features/project/metadata/project-metadata.component.ts index 38f6e7c59..2ef219f59 100644 --- a/src/app/features/my-projects/project/metadata/project-metadata.component.ts +++ b/src/app/features/project/metadata/project-metadata.component.ts @@ -1,6 +1,6 @@ import { ChangeDetectionStrategy, Component, HostBinding } from '@angular/core'; import { SubHeaderComponent } from '@shared/components/sub-header/sub-header.component'; -import { metadataTemplates } from '@osf/features/my-projects/project/metadata/metadata'; +import { metadataTemplates } from '@osf/features/project/metadata/metadata'; import { Button } from 'primeng/button'; @Component({ diff --git a/src/app/features/my-projects/project/overview/project-overview.component.html b/src/app/features/project/overview/project-overview.component.html similarity index 98% rename from src/app/features/my-projects/project/overview/project-overview.component.html rename to src/app/features/project/overview/project-overview.component.html index 02a720b53..9d198dc7c 100644 --- a/src/app/features/my-projects/project/overview/project-overview.component.html +++ b/src/app/features/project/overview/project-overview.component.html @@ -203,14 +203,14 @@

Affiliated Institutions

Center of Open Science Center of Open Science diff --git a/src/app/features/my-projects/project/overview/project-overview.component.scss b/src/app/features/project/overview/project-overview.component.scss similarity index 93% rename from src/app/features/my-projects/project/overview/project-overview.component.scss rename to src/app/features/project/overview/project-overview.component.scss index d4fea5fa5..94523ecd3 100644 --- a/src/app/features/my-projects/project/overview/project-overview.component.scss +++ b/src/app/features/project/overview/project-overview.component.scss @@ -1,4 +1,4 @@ -@use "assets/styles/variables" as var; +@use "../../../../assets/styles/variables" as var; .desktop { margin-top: 4.5rem; diff --git a/src/app/features/my-projects/project/overview/project-overview.component.ts b/src/app/features/project/overview/project-overview.component.ts similarity index 100% rename from src/app/features/my-projects/project/overview/project-overview.component.ts rename to src/app/features/project/overview/project-overview.component.ts diff --git a/src/app/features/my-projects/project/project.component.html b/src/app/features/project/project.component.html similarity index 100% rename from src/app/features/my-projects/project/project.component.html rename to src/app/features/project/project.component.html diff --git a/src/app/features/my-projects/project/project.component.scss b/src/app/features/project/project.component.scss similarity index 100% rename from src/app/features/my-projects/project/project.component.scss rename to src/app/features/project/project.component.scss diff --git a/src/app/features/my-projects/project/project.component.ts b/src/app/features/project/project.component.ts similarity index 100% rename from src/app/features/my-projects/project/project.component.ts rename to src/app/features/project/project.component.ts diff --git a/src/app/features/my-projects/project/registrations/registration-card/registration-card.component.html b/src/app/features/project/registrations/registration-card/registration-card.component.html similarity index 100% rename from src/app/features/my-projects/project/registrations/registration-card/registration-card.component.html rename to src/app/features/project/registrations/registration-card/registration-card.component.html diff --git a/src/app/features/my-projects/project/registrations/registration-card/registration-card.component.scss b/src/app/features/project/registrations/registration-card/registration-card.component.scss similarity index 85% rename from src/app/features/my-projects/project/registrations/registration-card/registration-card.component.scss rename to src/app/features/project/registrations/registration-card/registration-card.component.scss index 3435d3e61..7edd33d42 100644 --- a/src/app/features/my-projects/project/registrations/registration-card/registration-card.component.scss +++ b/src/app/features/project/registrations/registration-card/registration-card.component.scss @@ -1,4 +1,4 @@ -@use "../../../../../../assets/styles/mixins" as mix; +@use "../../../../../assets/styles/mixins" as mix; :host { .icon-container { diff --git a/src/app/features/my-projects/project/registrations/registration-card/registration-card.component.spec.ts b/src/app/features/project/registrations/registration-card/registration-card.component.spec.ts similarity index 100% rename from src/app/features/my-projects/project/registrations/registration-card/registration-card.component.spec.ts rename to src/app/features/project/registrations/registration-card/registration-card.component.spec.ts diff --git a/src/app/features/my-projects/project/registrations/registration-card/registration-card.component.ts b/src/app/features/project/registrations/registration-card/registration-card.component.ts similarity index 100% rename from src/app/features/my-projects/project/registrations/registration-card/registration-card.component.ts rename to src/app/features/project/registrations/registration-card/registration-card.component.ts diff --git a/src/app/features/my-projects/project/registrations/registration-card/registration-card.interface.ts b/src/app/features/project/registrations/registration-card/registration-card.interface.ts similarity index 100% rename from src/app/features/my-projects/project/registrations/registration-card/registration-card.interface.ts rename to src/app/features/project/registrations/registration-card/registration-card.interface.ts diff --git a/src/app/features/my-projects/project/registrations/registrations.component.html b/src/app/features/project/registrations/registrations.component.html similarity index 100% rename from src/app/features/my-projects/project/registrations/registrations.component.html rename to src/app/features/project/registrations/registrations.component.html diff --git a/src/app/features/project/registrations/registrations.component.scss b/src/app/features/project/registrations/registrations.component.scss new file mode 100644 index 000000000..66adb61f2 --- /dev/null +++ b/src/app/features/project/registrations/registrations.component.scss @@ -0,0 +1,7 @@ +@use "../../../../assets/styles/variables" as var; +@use "../../../../assets/styles/mixins" as mix; + +:host { + @include mix.flex-column; + flex: 1; +} diff --git a/src/app/features/my-projects/project/registrations/registrations.component.spec.ts b/src/app/features/project/registrations/registrations.component.spec.ts similarity index 100% rename from src/app/features/my-projects/project/registrations/registrations.component.spec.ts rename to src/app/features/project/registrations/registrations.component.spec.ts diff --git a/src/app/features/my-projects/project/registrations/registrations.component.ts b/src/app/features/project/registrations/registrations.component.ts similarity index 93% rename from src/app/features/my-projects/project/registrations/registrations.component.ts rename to src/app/features/project/registrations/registrations.component.ts index dd239b72e..3b93be9a4 100644 --- a/src/app/features/my-projects/project/registrations/registrations.component.ts +++ b/src/app/features/project/registrations/registrations.component.ts @@ -8,12 +8,12 @@ import { DialogService } from 'primeng/dynamicdialog'; import { toSignal } from '@angular/core/rxjs-interop'; import { IS_MEDIUM, IS_WEB, IS_XSMALL } from '@shared/utils/breakpoints.tokens'; import { TabOption } from '@shared/entities/tab-option.interface'; -import { RegistrationCardComponent } from '@osf/features/my-projects/project/registrations/registration-card/registration-card.component'; +import { RegistrationCardComponent } from '@osf/features/project/registrations/registration-card/registration-card.component'; import { Select } from 'primeng/select'; import { SubHeaderComponent } from '@shared/components/sub-header/sub-header.component'; import { Tab, TabList, TabPanel, TabPanels, Tabs } from 'primeng/tabs'; import { FormsModule } from '@angular/forms'; -import { RegistrationCard } from '@osf/features/my-projects/project/registrations/registration-card/registration-card.interface'; +import { RegistrationCard } from '@osf/features/project/registrations/registration-card/registration-card.interface'; @Component({ selector: 'osf-registrations', diff --git a/src/app/features/settings/addons/addon-card/addon-card.component.ts b/src/app/features/settings/addons/addon-card/addon-card.component.ts index da3d868cb..70c721575 100644 --- a/src/app/features/settings/addons/addon-card/addon-card.component.ts +++ b/src/app/features/settings/addons/addon-card/addon-card.component.ts @@ -9,7 +9,7 @@ import { } from '@osf/features/settings/addons/entities/addons.entities'; import { NgClass } from '@angular/common'; import { Store } from '@ngxs/store'; -import { DeleteAuthorizedAddon } from '@core/store/settings/addons'; +import { DeleteAuthorizedAddon } from '@osf/features/settings/addons/store'; import { DialogModule } from 'primeng/dialog'; @Component({ diff --git a/src/app/features/settings/addons/addons.component.ts b/src/app/features/settings/addons/addons.component.ts index 8168a83aa..e830e9d45 100644 --- a/src/app/features/settings/addons/addons.component.ts +++ b/src/app/features/settings/addons/addons.component.ts @@ -23,7 +23,7 @@ import { GetAuthorizedStorageAddons, GetAuthorizedCitationAddons, GetAddonsUserReference, -} from '@core/store/settings/addons'; +} from '@osf/features/settings/addons/store'; import { SelectOption } from '@shared/entities/select-option.interface'; import { UserSelectors } from '@core/store/user/user.selectors'; diff --git a/src/app/features/settings/addons/addons.service.ts b/src/app/features/settings/addons/addons.service.ts index f4abc3843..fd27a95de 100644 --- a/src/app/features/settings/addons/addons.service.ts +++ b/src/app/features/settings/addons/addons.service.ts @@ -15,13 +15,13 @@ import { AddonMapper } from '@osf/features/settings/addons/addon.mapper'; import { Store } from '@ngxs/store'; import { JsonApiResponse } from '@core/services/json-api/json-api.entity'; import { UserSelectors } from '@core/store/user/user.selectors'; +import { environment } from '../../../../environments/environment'; @Injectable({ providedIn: 'root', }) export class AddonsService { #store = inject(Store); - #baseUrl = 'https://addons.staging4.osf.io/v1/'; #jsonApiService = inject(JsonApiService); #currentUser = this.#store.selectSignal(UserSelectors.getCurrentUser); @@ -29,7 +29,7 @@ export class AddonsService { return this.#jsonApiService .get< JsonApiResponse - >(this.#baseUrl + `external-${addonType}-services`) + >(`${environment.addonsApiUrl}/external-${addonType}-services`) .pipe( map((response) => { return response.data.map((item) => AddonMapper.fromResponse(item)); @@ -49,7 +49,7 @@ export class AddonsService { return this.#jsonApiService .get< JsonApiResponse - >(this.#baseUrl + 'user-references/', params) + >(environment.addonsApiUrl + '/user-references/', params) .pipe(map((response) => response.data)); } @@ -63,7 +63,7 @@ export class AddonsService { return this.#jsonApiService .get< JsonApiResponse - >(this.#baseUrl + `user-references/${referenceId}/authorized_${addonType}_accounts/?include=external-${addonType}-service`, params) + >(`${environment.addonsApiUrl}/user-references/${referenceId}/authorized_${addonType}_accounts/?include=external-${addonType}-service`, params) .pipe( map((response) => { return response.data.map((item) => @@ -78,7 +78,7 @@ export class AddonsService { addonType: string, ): Observable { return this.#jsonApiService.post( - this.#baseUrl + `authorized-${addonType}-accounts/`, + `${environment.addonsApiUrl}/authorized-${addonType}-accounts/`, addonRequestPayload, ); } @@ -89,14 +89,14 @@ export class AddonsService { addonId: string, ): Observable { return this.#jsonApiService.patch( - this.#baseUrl + `authorized-${addonType}-accounts/${addonId}/`, + `${environment.addonsApiUrl}/authorized-${addonType}-accounts/${addonId}/`, addonRequestPayload, ); } deleteAuthorizedAddon(id: string, addonType: string): Observable { return this.#jsonApiService.delete( - this.#baseUrl + `authorized-${addonType}-accounts/${id}/`, + `${environment.addonsApiUrl}/authorized-${addonType}-accounts/${id}/`, ); } } diff --git a/src/app/features/settings/addons/connect-addon/connect-addon.component.ts b/src/app/features/settings/addons/connect-addon/connect-addon.component.ts index eb8c19461..993b1370c 100644 --- a/src/app/features/settings/addons/connect-addon/connect-addon.component.ts +++ b/src/app/features/settings/addons/connect-addon/connect-addon.component.ts @@ -34,7 +34,7 @@ import { AddonsSelectors, CreateAuthorizedAddon, UpdateAuthorizedAddon, -} from '@core/store/settings/addons'; +} from '@osf/features/settings/addons/store'; import { AddonForm, AddonFormControls, diff --git a/src/app/core/store/settings/addons/addons.actions.ts b/src/app/features/settings/addons/store/addons.actions.ts similarity index 100% rename from src/app/core/store/settings/addons/addons.actions.ts rename to src/app/features/settings/addons/store/addons.actions.ts diff --git a/src/app/core/store/settings/addons/addons.models.ts b/src/app/features/settings/addons/store/addons.models.ts similarity index 100% rename from src/app/core/store/settings/addons/addons.models.ts rename to src/app/features/settings/addons/store/addons.models.ts diff --git a/src/app/core/store/settings/addons/addons.selectors.ts b/src/app/features/settings/addons/store/addons.selectors.ts similarity index 92% rename from src/app/core/store/settings/addons/addons.selectors.ts rename to src/app/features/settings/addons/store/addons.selectors.ts index d3cac15df..644832588 100644 --- a/src/app/core/store/settings/addons/addons.selectors.ts +++ b/src/app/features/settings/addons/store/addons.selectors.ts @@ -1,7 +1,7 @@ import { Selector } from '@ngxs/store'; import { AddonsStateModel } from './addons.models'; import { Addon } from '@osf/features/settings/addons/entities/addons.entities'; -import { AddonsState } from '@core/store/settings/addons/addons.state'; +import { AddonsState } from '@osf/features/settings/addons/store/addons.state'; export class AddonsSelectors { @Selector([AddonsState]) diff --git a/src/app/core/store/settings/addons/addons.state.ts b/src/app/features/settings/addons/store/addons.state.ts similarity index 100% rename from src/app/core/store/settings/addons/addons.state.ts rename to src/app/features/settings/addons/store/addons.state.ts diff --git a/src/app/core/store/settings/addons/index.ts b/src/app/features/settings/addons/store/index.ts similarity index 100% rename from src/app/core/store/settings/addons/index.ts rename to src/app/features/settings/addons/store/index.ts diff --git a/src/app/core/store/settings/tokens/index.ts b/src/app/features/settings/tokens/store/index.ts similarity index 100% rename from src/app/core/store/settings/tokens/index.ts rename to src/app/features/settings/tokens/store/index.ts diff --git a/src/app/core/store/settings/tokens/tokens.actions.ts b/src/app/features/settings/tokens/store/tokens.actions.ts similarity index 100% rename from src/app/core/store/settings/tokens/tokens.actions.ts rename to src/app/features/settings/tokens/store/tokens.actions.ts diff --git a/src/app/core/store/settings/tokens/tokens.models.ts b/src/app/features/settings/tokens/store/tokens.models.ts similarity index 100% rename from src/app/core/store/settings/tokens/tokens.models.ts rename to src/app/features/settings/tokens/store/tokens.models.ts diff --git a/src/app/core/store/settings/tokens/tokens.selectors.ts b/src/app/features/settings/tokens/store/tokens.selectors.ts similarity index 89% rename from src/app/core/store/settings/tokens/tokens.selectors.ts rename to src/app/features/settings/tokens/store/tokens.selectors.ts index d0cac0eb4..d7e490e1e 100644 --- a/src/app/core/store/settings/tokens/tokens.selectors.ts +++ b/src/app/features/settings/tokens/store/tokens.selectors.ts @@ -2,7 +2,7 @@ import { Selector } from '@ngxs/store'; import { TokensStateModel } from './tokens.models'; import { Scope } from '@osf/features/settings/tokens/entities/scope.interface'; import { Token } from '@osf/features/settings/tokens/entities/tokens.models'; -import { TokensState } from '@core/store/settings'; +import { TokensState } from '@osf/features/settings/tokens/store/tokens.state'; export class TokensSelectors { @Selector([TokensState]) diff --git a/src/app/core/store/settings/tokens/tokens.state.ts b/src/app/features/settings/tokens/store/tokens.state.ts similarity index 100% rename from src/app/core/store/settings/tokens/tokens.state.ts rename to src/app/features/settings/tokens/store/tokens.state.ts diff --git a/src/app/features/settings/tokens/token-add-edit-form/token-add-edit-form.component.ts b/src/app/features/settings/tokens/token-add-edit-form/token-add-edit-form.component.ts index 208bad697..ce72b235d 100644 --- a/src/app/features/settings/tokens/token-add-edit-form/token-add-edit-form.component.ts +++ b/src/app/features/settings/tokens/token-add-edit-form/token-add-edit-form.component.ts @@ -23,16 +23,16 @@ import { CommonModule } from '@angular/common'; import { IS_XSMALL } from '@shared/utils/breakpoints.tokens'; import { toSignal } from '@angular/core/rxjs-interop'; import { Store } from '@ngxs/store'; -import { - TokensSelectors, - CreateToken, - UpdateToken, - GetTokens, -} from '@core/store/settings'; import { Token } from '@osf/features/settings/tokens/entities/tokens.models'; import { map } from 'rxjs'; import { ActivatedRoute, Router } from '@angular/router'; import { TokenCreatedDialogComponent } from '@osf/features/settings/tokens/token-created-dialog/token-created-dialog.component'; +import { + CreateToken, + GetTokens, + TokensSelectors, + UpdateToken, +} from '@osf/features/settings/tokens/store'; @Component({ selector: 'osf-token-add-edit-form', diff --git a/src/app/features/settings/tokens/token-details/token-details.component.ts b/src/app/features/settings/tokens/token-details/token-details.component.ts index db2fb9234..9da905733 100644 --- a/src/app/features/settings/tokens/token-details/token-details.component.ts +++ b/src/app/features/settings/tokens/token-details/token-details.component.ts @@ -16,11 +16,11 @@ import { TokenAddEditFormComponent } from '@osf/features/settings/tokens/token-a import { DialogService, DynamicDialogRef } from 'primeng/dynamicdialog'; import { map, switchMap, of } from 'rxjs'; import { Store } from '@ngxs/store'; -import { TokensSelectors } from '@core/store/settings/tokens/tokens.selectors'; +import { TokensSelectors } from '@osf/features/settings/tokens/store/tokens.selectors'; import { DeleteToken, GetTokenById, -} from '@core/store/settings/tokens/tokens.actions'; +} from '@osf/features/settings/tokens/store/tokens.actions'; @Component({ selector: 'osf-token-details', diff --git a/src/app/features/settings/tokens/tokens-list/tokens-list.component.ts b/src/app/features/settings/tokens/tokens-list/tokens-list.component.ts index e3402bf18..edcf6acfc 100644 --- a/src/app/features/settings/tokens/tokens-list/tokens-list.component.ts +++ b/src/app/features/settings/tokens/tokens-list/tokens-list.component.ts @@ -13,7 +13,11 @@ import { RouterLink } from '@angular/router'; import { Token } from '@osf/features/settings/tokens/entities/tokens.models'; import { defaultConfirmationConfig } from '@shared/helpers/default-confirmation-config.helper'; import { Store } from '@ngxs/store'; -import { DeleteToken, GetTokens, TokensSelectors } from '@core/store/settings'; +import { + DeleteToken, + GetTokens, + TokensSelectors, +} from '@osf/features/settings/tokens/store'; @Component({ selector: 'osf-tokens-list', diff --git a/src/app/features/settings/tokens/tokens.component.ts b/src/app/features/settings/tokens/tokens.component.ts index a82df56ed..ea3117cb0 100644 --- a/src/app/features/settings/tokens/tokens.component.ts +++ b/src/app/features/settings/tokens/tokens.component.ts @@ -11,7 +11,7 @@ import { toSignal } from '@angular/core/rxjs-interop'; import { TokenAddEditFormComponent } from '@osf/features/settings/tokens/token-add-edit-form/token-add-edit-form.component'; import { RouterOutlet, Router } from '@angular/router'; import { Store } from '@ngxs/store'; -import { GetScopes } from '@core/store/settings'; +import { GetScopes } from '@osf/features/settings/tokens/store'; import { map } from 'rxjs'; @Component({ diff --git a/src/app/features/settings/tokens/tokens.service.ts b/src/app/features/settings/tokens/tokens.service.ts index b6f6c4034..9f659a74b 100644 --- a/src/app/features/settings/tokens/tokens.service.ts +++ b/src/app/features/settings/tokens/tokens.service.ts @@ -10,23 +10,25 @@ import { map } from 'rxjs/operators'; import { TokenMapper } from '@osf/features/settings/tokens/token.mapper'; import { Scope } from '@osf/features/settings/tokens/entities/scope.interface'; import { JsonApiResponse } from '@core/services/json-api/json-api.entity'; +import { environment } from '../../../../environments/environment'; @Injectable({ providedIn: 'root', }) export class TokensService { - jsonApiService = inject(JsonApiService); - baseUrl = 'https://api.staging4.osf.io/v2/'; + #jsonApiService = inject(JsonApiService); getScopes(): Observable { - return this.jsonApiService - .get>(this.baseUrl + 'scopes/') + return this.#jsonApiService + .get>(environment.apiUrl + '/scopes/') .pipe(map((responses) => responses.data)); } getTokens(): Observable { - return this.jsonApiService - .get>(this.baseUrl + 'tokens/') + return this.#jsonApiService + .get< + JsonApiResponse + >(environment.apiUrl + '/tokens/') .pipe( map((responses) => { return responses.data.map((response) => @@ -37,18 +39,18 @@ export class TokensService { } getTokenById(tokenId: string): Observable { - return this.jsonApiService + return this.#jsonApiService .get< JsonApiResponse - >(this.baseUrl + `tokens/${tokenId}/`) + >(`${environment.apiUrl}/tokens/${tokenId}/`) .pipe(map((response) => TokenMapper.fromGetResponse(response.data))); } createToken(name: string, scopes: string[]): Observable { const request = TokenMapper.toRequest(name, scopes); - return this.jsonApiService - .post(this.baseUrl + 'tokens/', request) + return this.#jsonApiService + .post(environment.apiUrl + '/tokens/', request) .pipe(map((response) => TokenMapper.fromCreateResponse(response))); } @@ -59,12 +61,17 @@ export class TokensService { ): Observable { const request = TokenMapper.toRequest(name, scopes); - return this.jsonApiService - .patch(this.baseUrl + `tokens/${tokenId}/`, request) + return this.#jsonApiService + .patch( + `${environment.apiUrl}/tokens/${tokenId}/`, + request, + ) .pipe(map((response) => TokenMapper.fromCreateResponse(response))); } deleteToken(tokenId: string): Observable { - return this.jsonApiService.delete(this.baseUrl + `tokens/${tokenId}/`); + return this.#jsonApiService.delete( + `${environment.apiUrl}/tokens/${tokenId}/`, + ); } } diff --git a/src/app/shared/components/add-project-form/add-project-form.component.ts b/src/app/shared/components/add-project-form/add-project-form.component.ts index ebe52382f..1a5759256 100644 --- a/src/app/shared/components/add-project-form/add-project-form.component.ts +++ b/src/app/shared/components/add-project-form/add-project-form.component.ts @@ -28,8 +28,8 @@ import { CreateProject, GetMyProjects, MyProjectsSelectors, -} from '@core/store/my-projects'; -import { InstitutionsSelectors } from '@core/store/institutions'; +} from '@osf/features/my-projects/store'; +import { InstitutionsSelectors } from '@osf/features/institutions/store'; import { MY_PROJECTS_TABLE_PARAMS } from '@core/constants/my-projects-table.constants'; import { ProjectForm } from '@shared/entities/create-project-form.interface'; import { ProjectFormControls } from '@osf/shared/entities/create-project-form-controls.enum'; diff --git a/src/environments/environment.development.ts b/src/environments/environment.development.ts index 4fbee9975..e3b3e9699 100644 --- a/src/environments/environment.development.ts +++ b/src/environments/environment.development.ts @@ -2,4 +2,5 @@ export const environment = { production: false, apiUrl: 'https://api.staging4.osf.io/v2', shareDomainUrl: 'https://staging-share.osf.io/trove', + addonsApiUrl: 'https://addons.staging4.osf.io/v1', }; diff --git a/src/environments/environment.ts b/src/environments/environment.ts index 4fbee9975..e3b3e9699 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -2,4 +2,5 @@ export const environment = { production: false, apiUrl: 'https://api.staging4.osf.io/v2', shareDomainUrl: 'https://staging-share.osf.io/trove', + addonsApiUrl: 'https://addons.staging4.osf.io/v1', };