I'm trying to dynamically build a menu based off the status of an item, but my Collect is duplicating items. I've got a collection of menu items, and then I Collect a filtered subset of those items based off the status.
Here's my collection of menu items:
ClearCollect(
AllActionsMenuItems,
{id: 1,order: 3,image: "",action: 1,altText: "Close Denial", actionvar:"actCloseDenial", visibility:"IsSubmitted"},
{id: 2,order: 1,image: "",action: 2,altText: "Save Draft", actionvar:"actSaveDraft", visibility:"IsDraft"},
{id: 3,order: 5,image: "",action: 3,altText: "Delete Denial", actionvar:"actDeleteDenial", visibility:"IsSubmitted IsClosed"},
{id: 4,order: 6,image: "",action: 4,altText: "UnDelete Denial", actionvar:"actUnDeleteDenial", visibility:"IsDeleted"},
{id: 5,order: 4,image: "",action: 5,altText: "UnClose Denial", actionvar:"actUnCloseDenial", visibility:"IsClosed"},
{id: 7,order: 4,image: "",action: 5,altText: "Unlock Denial", actionvar:"actUnlockDenial", visibility:"IsLocked"},
{id: 6,order: 2,image: "",action: 6,altText: "Submit Denial", actionvar:"actSubmitDenial", visibility:"IsDraft"});
Here's where I do a filtered collect based off the status of the item:
If(First(CurrentItemSelected).Status="Deleted", Collect(CurrentItemActionsMenu, Filter(AllActionsMenuItems, "IsDeleted" in visibility)));
If(First(CurrentItemSelected).Status="Closed", Collect(CurrentItemActionsMenu, Filter(AllActionsMenuItems, "IsClosed" in visibility)));
If(First(CurrentItemSelected).Status="Submitted", Collect(CurrentItemActionsMenu, Filter(AllActionsMenuItems, "IsSubmitted" in visibility)));
If(First(CurrentItemSelected).Locked="yes", Collect(CurrentItemActionsMenu, Filter(AllActionsMenuItems, "IsLocked" in visibility)));
If("Draft" in First(CurrentItemSelected).Status, Collect(CurrentItemActionsMenu, Filter(AllActionsMenuItems, "IsDraft" in visibility)));
So you would think when my item only has one status(Submitted in the below case), I would only return options Close, Delete, and Unlock because the item is also Locked(different column, same idea). Except here's what happens:
