Skip to content

Commit

Permalink
finished metadata properties being null
Browse files Browse the repository at this point in the history
Dit was veel stoeien met Typescript
  • Loading branch information
SudoThijn committed Aug 12, 2024
1 parent b70a363 commit e21d681
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 10 deletions.
19 changes: 19 additions & 0 deletions src/entities/metadata/metadata.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,25 @@ export class Metadata implements TMetadata {
valuation: 'n',
class: 1,
}

// convert null's to the respective default value from predefined list of props
Object.keys(this.properties).forEach(obj => {
const defaultPropertiesProps = {
minimum: 0,
maximum: 0,
multipleOf: 0,
minItems: 0,
maxItems: 0,
minLength: 0,
maxLength: 0,
} as Pick<TMetadata['properties'][0], 'minimum' | 'maximum' | 'multipleOf' | 'minItems' | 'maxItems' | 'minLength' | 'maxLength'>

Object.keys(defaultPropertiesProps).forEach((key: keyof typeof defaultPropertiesProps) => {
if (this.properties[obj][key] === null) {
this.properties[obj][key] = defaultPropertiesProps[key]
}
})
})
}

/* istanbul ignore next */
Expand Down
20 changes: 17 additions & 3 deletions src/modals/metaData/AddMetaDataPropertyModal.vue
Original file line number Diff line number Diff line change
Expand Up @@ -213,8 +213,6 @@ export default {
},
methods: {
AddMetadata() {
metadataStore.metaDataItem.properties[this.properties.title] = this.properties
this.loading = true
fetch(
`/index.php/apps/opencatalogi/api/metadata/${metadataStore.metaDataItem.id}`,
Expand All @@ -223,7 +221,23 @@ export default {
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(metadataStore.metaDataItem),
body: JSON.stringify({
...metadataStore.metaDataItem,
properties: { // due to bad (no) support for number fields inside nextcloud/vue, parse the text to a number
...metadataStore.metaDataItem.properties,
[this.properties.title]: {
...this.properties,
pattern: parseFloat(this.properties.pattern) || 0,
minLength: parseFloat(this.properties.minLength) || null,
maxLength: parseFloat(this.properties.maxLength) || null,
minimum: parseFloat(this.properties.minimum) || null,
maximum: parseFloat(this.properties.maximum) || null,
multipleOf: parseFloat(this.properties.multipleOf) || null,
minItems: parseFloat(this.properties.minItems) || null,
maxItems: parseFloat(this.properties.maxItems) || null,
},
},
}),
},
)
.then((response) => {
Expand Down
14 changes: 7 additions & 7 deletions src/modals/metaData/EditMetaDataPropertyModal.vue
Original file line number Diff line number Diff line change
Expand Up @@ -252,13 +252,13 @@ export default {
[metadataStore.metadataDataKey]: {
...this.metadata.properties[metadataStore.metadataDataKey],
pattern: parseFloat(this.metadata.properties[metadataStore.metadataDataKey].pattern) || 0,
minLength: parseFloat(this.metadata.properties[metadataStore.metadataDataKey].minLength) || 0,
maxLength: parseFloat(this.metadata.properties[metadataStore.metadataDataKey].maxLength) || 0,
minimum: parseFloat(this.metadata.properties[metadataStore.metadataDataKey].minimum) || 0,
maximum: parseFloat(this.metadata.properties[metadataStore.metadataDataKey].maximum) || 0,
multipleOf: parseFloat(this.metadata.properties[metadataStore.metadataDataKey].multipleOf) || 0,
minItems: parseFloat(this.metadata.properties[metadataStore.metadataDataKey].minItems) || 0,
maxItems: parseFloat(this.metadata.properties[metadataStore.metadataDataKey].maxItems) || 0,
minLength: parseFloat(this.metadata.properties[metadataStore.metadataDataKey].minLength) || null,
maxLength: parseFloat(this.metadata.properties[metadataStore.metadataDataKey].maxLength) || null,
minimum: parseFloat(this.metadata.properties[metadataStore.metadataDataKey].minimum) || null,
maximum: parseFloat(this.metadata.properties[metadataStore.metadataDataKey].maximum) || null,
multipleOf: parseFloat(this.metadata.properties[metadataStore.metadataDataKey].multipleOf) || null,
minItems: parseFloat(this.metadata.properties[metadataStore.metadataDataKey].minItems) || null,
maxItems: parseFloat(this.metadata.properties[metadataStore.metadataDataKey].maxItems) || null,
},
},
}),
Expand Down

0 comments on commit e21d681

Please sign in to comment.