Skip to content

Commit

Permalink
#78 - Releasing members from the dataElementGroup dialog leads to errors
Browse files Browse the repository at this point in the history
- Allow releasing members from the dataElementGroup dialog without errors.
  • Loading branch information
ammarbarakat committed Aug 4, 2022
1 parent a8ab07d commit 5d4e36b
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 55 deletions.
10 changes: 5 additions & 5 deletions components/dialogs/check-unreleased-members.vue
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@
:key="editDialog.show"
:urn="editDialog.urn"
:show="editDialog.show"
@save="$emit('save', $event); removeIfReleased(editDialog.urn)"
@saveSuccess="$emit('saveSuccess', $event); removeIfReleased(editDialog.urn)"
@saveFailure="$emit('saveFailure', $event)"
@dialogClosed="editDialog.show = false"
/>
Expand All @@ -73,7 +73,7 @@
:show="editDialog.show"
:urn="editDialog.urn"
:element-type="dialog.elementType"
@save="$emit('save', $event); removeIfReleased(editDialog.urn)"
@saveSuccess="$emit('saveSuccess', $event); removeIfReleased(editDialog.urn)"
@saveFailure="$emit('saveFailure', $event)"
@dialogClosed="editDialog.show = false"
/>
Expand Down Expand Up @@ -128,9 +128,9 @@ export default {
await this.$axios.$get(this.ajax.dataElementUrl + urn, Ajax.header.ignoreLanguage)
.then(function (res) {
this.$log.debug('Check unreleased members: Fetching DataElement details ...')
if (res.identification.status === 'RELEASED') {
const urn = res.identification.urn
this.items = this.items.filter(elem => !elem.id.toLowerCase().includes(urn))
if (res.identification.status.toUpperCase() === 'RELEASED') {
const urn = res.identification.urn.toUpperCase()
this.items = this.items.filter(elem => !elem.id.toUpperCase().includes(urn))
this.$emit('released', urn)
}
}.bind(this))
Expand Down
6 changes: 4 additions & 2 deletions components/dialogs/group-record-dialog.vue
Original file line number Diff line number Diff line change
Expand Up @@ -299,8 +299,10 @@ export default {
return true
},
markAsReleased (urn) {
this.element.members.find(elem => elem.elementUrn.toLowerCase().includes(urn)).status =
'RELEASED'
this.element.members.find(elem => elem.elementUrn.toUpperCase().includes(urn)).status = 'RELEASED'
if (this.containsNoDraftMembers()) {
this.unreleasedMembersDialog.show = false
}
},
defaultElement () {
return this.elementType === 'RECORD'
Expand Down
94 changes: 46 additions & 48 deletions pages/all-elements.vue
Original file line number Diff line number Diff line change
Expand Up @@ -308,66 +308,64 @@ export default {
}
const currentElement = this.getJsonObjects(this.treeItems, 'urn', element.previousUrn)[0]
const parentElement = this.getJsonObjects(this.treeItems, 'urn', this.dialog.parentUrn)[0]
if (currentElement !== undefined && parentElement !== undefined) {
const item = {
id: this.generateItemId(),
urn: element.identification.urn,
editable: true,
name: element.definitions[0].designation,
elementType: element.identification.elementType,
children: element.identification.elementType === 'DATAELEMENT' ? undefined : [],
isPreferredLanguage: Ajax.preferredLanguage.includes(element.definitions[0].language)
}
switch (element.identification.elementType) {
case 'NAMESPACE': {
if (element.action === 'CREATE') {
item.children = []
this.treeItems.push(item)
} else if (element.action === 'UPDATE') {
const previousItem =
const item = {
id: this.generateItemId(),
urn: element.identification.urn,
editable: true,
name: element.definitions[0].designation,
elementType: element.identification.elementType,
children: element.identification.elementType === 'DATAELEMENT' ? undefined : [],
isPreferredLanguage: Ajax.preferredLanguage.includes(element.definitions[0].language)
}
switch (element.identification.elementType) {
case 'NAMESPACE': {
if (element.action === 'CREATE') {
item.children = []
this.treeItems.push(item)
} else if (element.action === 'UPDATE') {
const previousItem =
this.getJsonObjects(this.treeItems, 'urn', element.previousUrn)[0]
item.children = previousItem.children
item.id = previousItem.id
this.treeItems =
item.children = previousItem.children
item.id = previousItem.id
this.treeItems =
findAnd.replaceObject(this.treeItems, { urn: element.previousUrn }, item)
this.changeActiveElement(item.urn)
} else {
this.treeItems =
this.changeActiveElement(item.urn)
} else {
this.treeItems =
findAnd.removeObject(this.treeItems, { urn: element.identification.urn })
}
break
}
case 'RECORD':
case 'DATAELEMENTGROUP':
case 'DATAELEMENT': {
item.parentUrn = this.dialog.parentUrn
if (element.action === 'UPDATE') {
const parentElement = this.getJsonObjects(this.treeItems, 'urn', currentElement.parentUrn)[0]
item.parentUrn = currentElement.parentUrn
item.id = currentElement.id
parentElement.children =
break
}
case 'RECORD':
case 'DATAELEMENTGROUP':
case 'DATAELEMENT': {
item.parentUrn = this.dialog.parentUrn
if (element.action === 'UPDATE' && currentElement !== undefined) {
const parentElement = this.getJsonObjects(this.treeItems, 'urn', currentElement.parentUrn)[0]
item.parentUrn = currentElement.parentUrn
item.id = currentElement.id
parentElement.children =
findAnd.replaceObject(parentElement.children, { urn: element.previousUrn }, item)
this.treeItems =
this.treeItems =
findAnd.changeProps(this.treeItems, { urn: parentElement.urn }, parentElement.children)
if (element.identification.elementType === 'DATAELEMENTGROUP' ||
if (element.identification.elementType === 'DATAELEMENTGROUP' ||
element.identification.elementType === 'RECORD') {
this.fetchAndReplaceMembers(item)
this.openNodes = findAnd.replaceObject(this.openNodes, { urn: element.previousUrn }, item)
}
this.changeActiveElement(item.urn)
this.fetchAndReplaceMembers(item)
this.openNodes = findAnd.replaceObject(this.openNodes, { urn: element.previousUrn }, item)
}
this.changeActiveElement(item.urn)
}
if (element.action === 'CREATE' && parentElement !== undefined) {
parentElement.children.push(item)
if (parentElement.children.length === 1) {
this.fetchAndReplaceMembers(parentElement)
}
if (element.action === 'CREATE') {
parentElement.children.push(item)
if (parentElement.children.length === 1) {
this.fetchAndReplaceMembers(parentElement)
}
this.treeItems =
this.treeItems =
findAnd.changeProps(this.treeItems,
{ urn: this.dialog.parentUrn },
{ children: parentElement.children })
}
break
}
break
}
}
this.UpdateAllOpenNodes()
Expand Down

0 comments on commit 5d4e36b

Please sign in to comment.