Add admin script to cleanup orphan items

This commit is contained in:
John Mizerek 2026-01-14 13:31:18 -08:00
parent f40d5c1f93
commit e628443c02

View file

@ -0,0 +1,55 @@
<cfscript>
// Quick admin script to deactivate orphan item 11543 (stale "Extras" on Cheeseburger)
// This item has no children and no template link - it's leftover from before the template system
param name="url.itemId" default="11543";
param name="url.action" default="check"; // "check" or "deactivate"
// Check the item first
qItem = queryExecute("
SELECT ItemID, ItemName, ItemParentItemID, ItemIsActive, ItemIsCollapsible
FROM Items
WHERE ItemID = :itemId
", { itemId: url.itemId });
if (qItem.recordCount == 0) {
writeOutput(serializeJSON({ OK: false, ERROR: "Item not found" }));
abort;
}
// Check if item has children
qChildren = queryExecute("
SELECT COUNT(*) as cnt
FROM Items
WHERE ItemParentItemID = :itemId
", { itemId: url.itemId });
result = {
"OK": true,
"ACTION": url.action,
"ITEM": {
"ItemID": qItem.ItemID,
"ItemName": qItem.ItemName,
"ItemParentItemID": qItem.ItemParentItemID,
"ItemIsActive": qItem.ItemIsActive,
"ItemIsCollapsible": qItem.ItemIsCollapsible
},
"HAS_CHILDREN": qChildren.cnt > 0,
"CHILD_COUNT": qChildren.cnt
};
if (url.action == "deactivate" && qChildren.cnt == 0) {
queryExecute("
UPDATE Items
SET ItemIsActive = 0
WHERE ItemID = :itemId
", { itemId: url.itemId });
result["DEACTIVATED"] = true;
result["MESSAGE"] = "Item deactivated successfully";
} else if (url.action == "deactivate" && qChildren.cnt > 0) {
result["DEACTIVATED"] = false;
result["MESSAGE"] = "Cannot deactivate - item has children";
}
writeOutput(serializeJSON(result));
</cfscript>