Skip to content

Commit

Permalink
support deleting versions via frontend
Browse files Browse the repository at this point in the history
  • Loading branch information
ghackenberg committed Jul 11, 2024
1 parent 8c44bac commit b5c1132
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -95,12 +95,20 @@ export class VersionService implements VersionREST<VersionCreate, VersionUpdate,
version.deleted = Date.now()
version.updated = version.deleted
await Database.get().versionRepository.save(version)
// Update other versions
const versions = await Database.get().versionRepository.findBy({ productId, deleted: IsNull() })
for (const version of versions) {
if (version.baseVersionIds.includes(versionId)) {
version.baseVersionIds = version.baseVersionIds.filter(baseVersionId => baseVersionId != versionId)
await Database.get().versionRepository.save(version)
}
}
// Update product
const product = await Database.get().productRepository.findOneBy({ productId })
product.updated = version.updated
await Database.get().productRepository.save(product)
// Emit changes
emitProductMessage(productId, { type: 'patch', products: [product], versions: [version] })
emitProductMessage(productId, { type: 'patch', products: [product], versions: [version, ...versions] })
// Return version
return convertVersion(version)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,20 @@ export const ProductVersionSettingView = () => {
await goBack()
}

async function onClick(event: React.MouseEvent<HTMLButtonElement>) {
event.preventDefault()
if (confirm('Are you sure?')) {
await VersionClient.deleteVersion(productId, versionId)
const filtered = versions && versions.filter(version => version.versionId != versionId)
if (filtered && filtered.length > 0) {
setContextVersion(filtered[filtered.length - 1])
} else {
setContextVersion(undefined)
}
await goBack()
}
}

// CONSTANTS

const columns: Column<VersionRead>[] = [
Expand Down Expand Up @@ -242,11 +256,14 @@ export const ProductVersionSettingView = () => {
</GenericInput>
{contextUser ? (
contextUser.admin || members.filter(member => member.userId == contextUser.userId && member.role != 'customer').length == 1 ? (
version || blob ? (
<ButtonInput value='Save'/>
) : (
<ButtonInput value='Save' badge='requires file' disabled={true}/>
)
<>
{version || blob ? (
<ButtonInput value='Save'/>
) : (
<ButtonInput value='Save' badge='requires file' disabled={true}/>
)}
<ButtonInput value='Delete' class='red' click={onClick}/>
</>
) : (
<ButtonInput value='Save' badge='requires role' disabled={true}/>
)
Expand Down

0 comments on commit b5c1132

Please sign in to comment.