Added: Add Release Status to Metadata Profile, Default to Official Only (#250)

* Added: Add Release Status to Metadata Profile, Default to Official Only

* Fixed: Unit Test and Comparison
This commit is contained in:
Qstick 2018-03-21 20:43:10 -04:00 committed by GitHub
commit df4e1e9b26
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 632 additions and 19 deletions

View file

@ -54,16 +54,41 @@ function createSecondaryAlbumTypesSelector() {
);
}
function createReleaseStatusesSelector() {
return createSelector(
createProviderSettingsSelector(),
(metadataProfile) => {
const releaseStatuses = metadataProfile.item.releaseStatuses;
if (!releaseStatuses || !releaseStatuses.value) {
return [];
}
return _.reduceRight(releaseStatuses.value, (result, { allowed, releaseStatus }) => {
if (allowed) {
result.push({
key: releaseStatus.id,
value: releaseStatus.name
});
}
return result;
}, []);
}
);
}
function createMapStateToProps() {
return createSelector(
createProviderSettingsSelector(),
createPrimaryAlbumTypesSelector(),
createSecondaryAlbumTypesSelector(),
createReleaseStatusesSelector(),
createProfileInUseSelector('metadataProfileId'),
(metadataProfile, primaryAlbumTypes, secondaryAlbumTypes, isInUse) => {
(metadataProfile, primaryAlbumTypes, secondaryAlbumTypes, releaseStatuses, isInUse) => {
return {
primaryAlbumTypes,
secondaryAlbumTypes,
releaseStatuses,
...metadataProfile,
isInUse
};
@ -138,6 +163,18 @@ class EditMetadataProfileModalContentConnector extends Component {
});
}
onMetadataReleaseStatusItemAllowedChange = (id, allowed) => {
const metadataProfile = _.cloneDeep(this.props.item);
const item = _.find(metadataProfile.releaseStatuses.value, (i) => i.releaseStatus.id === id);
item.allowed = allowed;
this.props.setMetadataProfileValue({
name: 'releaseStatuses',
value: metadataProfile.releaseStatuses.value
});
}
//
// Render
@ -154,6 +191,7 @@ class EditMetadataProfileModalContentConnector extends Component {
onInputChange={this.onInputChange}
onMetadataPrimaryTypeItemAllowedChange={this.onMetadataPrimaryTypeItemAllowedChange}
onMetadataSecondaryTypeItemAllowedChange={this.onMetadataSecondaryTypeItemAllowedChange}
onMetadataReleaseStatusItemAllowedChange={this.onMetadataReleaseStatusItemAllowedChange}
/>
);
}