Skip to content

Commit b6e7d56

Browse files
authored
[ENG-9043] v2 (#878)
- Ticket: https://openscience.atlassian.net/browse/ENG-9042?focusedCommentId=104663 - Feature flag: n/a ## Purpose set default provider license on project edit in the following tab http://localhost:4200/collections/flubber/add http://localhost:4200/collections/{provider/add
1 parent a13b596 commit b6e7d56

5 files changed

Lines changed: 8 additions & 3 deletions

File tree

src/app/features/collections/components/add-to-collection/project-metadata-step/project-metadata-step.component.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ import { InterpolatePipe } from '@osf/shared/pipes/interpolate.pipe';
4545
import { ToastService } from '@osf/shared/services/toast.service';
4646
import { GetAllContributors } from '@osf/shared/stores/contributors';
4747
import { ClearProjects, ProjectsSelectors, UpdateProjectMetadata } from '@osf/shared/stores/projects';
48+
import { CollectionsSelectors } from '@shared/stores/collections';
4849

4950
@Component({
5051
selector: 'osf-project-metadata-step',
@@ -86,6 +87,7 @@ export class ProjectMetadataStepComponent {
8687
readonly inputLimits = InputLimits;
8788

8889
readonly selectedProject = select(ProjectsSelectors.getSelectedProject);
90+
readonly collectionProvider = select(CollectionsSelectors.getCollectionProvider);
8991
readonly collectionLicenses = select(AddToCollectionSelectors.getCollectionLicenses);
9092
readonly isSelectedProjectUpdateSubmitting = select(ProjectsSelectors.getSelectedProjectUpdateSubmitting);
9193

@@ -113,7 +115,8 @@ export class ProjectMetadataStepComponent {
113115

114116
readonly projectLicense = computed(() => {
115117
const project = this.selectedProject();
116-
return project ? (this.collectionLicenses().find((license) => license.id === project.licenseId) ?? null) : null;
118+
const licenseId = project?.licenseId || this.collectionProvider()?.defaultLicenseId;
119+
return project ? (this.collectionLicenses().find((license) => license.id === licenseId) ?? null) : null;
117120
});
118121

119122
private readonly isFormUnchanged = computed(() => {
@@ -235,7 +238,6 @@ export class ProjectMetadataStepComponent {
235238
this.formService.updateLicenseValidators(this.projectMetadataForm, license);
236239
});
237240
}
238-
239241
this.populateFormFromProject();
240242
});
241243

src/app/shared/components/add-project-form/add-project-form.component.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ import { FormControl, FormGroup, Validators } from '@angular/forms';
99
import { UserSelectors } from '@core/store/user';
1010
import { ProjectFormControls } from '@osf/shared/enums/create-project-form-controls.enum';
1111
import { CustomValidators } from '@osf/shared/helpers/custom-form-validators.helper';
12+
import { ProjectModel } from '@osf/shared/models/projects/projects.model';
1213
import { InstitutionsSelectors } from '@osf/shared/stores/institutions';
1314
import { ProjectsSelectors } from '@osf/shared/stores/projects';
1415
import { RegionsSelectors } from '@osf/shared/stores/regions';
1516
import { ProjectForm } from '@shared/models/projects/create-project-form.model';
16-
import { ProjectModel } from '@shared/models/projects/projects.models';
1717

1818
import { AffiliatedInstitutionSelectComponent } from '../affiliated-institution-select/affiliated-institution-select.component';
1919
import { ProjectSelectorComponent } from '../project-selector/project-selector.component';

src/app/shared/mappers/collections/collections.mapper.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ export class CollectionsMapper {
5858
id: response.relationships.primary_collection.data.id,
5959
type: response.relationships.primary_collection.data.type,
6060
},
61+
defaultLicenseId: response.attributes?.default_license_id,
6162
brand: response.embeds.brand.data
6263
? {
6364
id: response.embeds.brand.data.id,

src/app/shared/models/collections/collections.model.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export interface CollectionProvider extends BaseProviderModel {
1818
type: string;
1919
};
2020
brand: BrandModel | null;
21+
defaultLicenseId?: string | null;
2122
}
2223

2324
export interface CollectionFilters {

src/app/shared/models/provider/base-provider-json-api.model.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,5 @@ export interface BaseProviderAttributesJsonApi {
1616
reviews_workflow: string;
1717
share_publish_type: string;
1818
share_source: string;
19+
default_license_id?: string | null;
1920
}

0 commit comments

Comments
 (0)