var stStartPoint = ''; var stResults = ''; var arParents = ''; var stCurrentParent = ''; var lstNewchildStartPoints = ''; var stParentsParents = ''; var i = ''; var navElementAry = application.ohsuNav.navElementDAO.getByUniqueID(arguments.uniqueID); var navElement = structNew(); var deleted = false; var results = structNew(); var childList = ""; if( arrayLen(navElementAry) gt 0 ) { childList = navElementAry[1].values.childList; if( listFind(childList, arguments.pageID) ) { navElement = navElementAry[1].values; // add in the dataPageID navElement.dataPageID = navElementAry[1].pageID; navElement.childList = application.ohsuNav.data.deleteFromList(navElement.childList, arguments.pageID); // update the record results = application.ohsuNav.navElementDAO.update(navElement); if( results.contentUpdated ) deleted = true; } } var thisParent = StructNew(); var itm = 1; var itr = 1; var results = false; var startPointRemoved = false; // retrieve this record var navElement = application.ohsuNav.navElementDAO.getByStartPoint(arguments.startPointPageID); // retrieve parent elements that have this startPoint as a child var parents = application.ohsuNav.navElementDAO.getParentsByStartPoint(arguments.startPointPageID); // delete the start point var delStartPoint = application.ohsuNav.navElementDAO.delete(navElement[1].values.uniqueID); // update the parents of this start point so it no longer has this as a start point for( itm=1; itm lte arrayLen(parents); itm=itm+1 ) { thisParent = parents[itm].values; thisParent.dataPageID = parents[itm].pageID; thisParent.childStartPoints = application.ohsuNav.data.deleteFromList(thisParent.childStartPoints, arguments.startPointPageID); thisParent.childList = application.ohsuNav.data.deleteFromList(thisParent.childList, arguments.startPointPageID); // update the parent results = application.ohsuNav.navElementDAO.update(thisParent); } // delete any children startPoints for( itr; itr lte listLen(navElement[1].values.childStartPoints); itr=itr+1 ) { application.ohsuNav.navElementController.removeStartPoint(listGetAt(navElement[1].values.childStartPoints, itr) ); } // retrieve the current nav element var navElement = application.ohsuNav.navElementDAO.getByUniqueID(arguments.uniqueID); var tmp = structNew(); var results = structNew(); var success = false; var changeList = ""; var itm = 1; if( arrayLen(navElement) gt 0 ) { // get the items that were deleted changeList = arrayToList(application.ohsuNav.data.arrayDeleteArray(listToArray(navElement[1].values.childList), listToArray(arguments.childList))); // loop through deleted list items and check if they are startPoints and/or parents for( itm; itm lte listLen(changeList); itm = itm + 1 ) { if( application.ohsuNav.navElementService.isStartPoint(listGetAt(changeList, itm)) ) removeStartPoint(listGetAt(changeList, itm)); else if( application.ohsuNav.navElementService.isPromotedToParent(listGetAt(changeList, itm)) ) removePromotedParent(listGetAt(changeList, itm)); } // retrieve the nav element again, now that startpoints have been removed navElement = application.ohsuNav.navElementDAO.getByUniqueID(arguments.uniqueID); // do the actual updating of this item tmp = navElement[1].values; tmp.dataPageID = navElement[1].pageID; tmp.childList = arguments.childList; // update results = application.ohsuNav.navElementDAO.update(tmp); // TODO: Error handling on the update // SEE the addStartPoint if( results.contentUpdated ) success = true; } // essentially this is a startpoint - so remove it like a start point removeStartPoint(arguments.pageID); /* TODO: Review - is a parent really any different than a standard start point //var navElement = application.ohsuNav.navElementDAO.getPromotedParent(arguments.pageID); //var itm = 1; //var childElement = arrayNew(1); // now handle special case for promoted parents if( arrayLen(navElement) ) { // remove the parent record application.ohsuNav.navElementDAO.delete(arguments.uniqueID); // loop through children elements and delete for( itm; itm lte listLen(navElement[1].values.childStartPoints); itm=itm+1 ) { childElement = application.ohsuNav.navElementDAO.getByStartPointID(listGetAt(navElement[1].values.childStartPoints, itm)); if( arrayLen(childElement) ) application.ohsuNav.navElementDAO.delete(childElement[1].values.uniqueID); } } */