Only quickTasks/ and scheduledTasks/ subdirectories remain tracked since those are actively used by the portal. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
64 lines
1.6 KiB
Text
64 lines
1.6 KiB
Text
<cfsetting showdebugoutput="false">
|
|
<cfsetting enablecfoutputonly="true">
|
|
<cfcontent type="application/json; charset=utf-8" reset="true">
|
|
|
|
<cfscript>
|
|
bizId = 27;
|
|
|
|
// Get all template links for Big Dean's
|
|
qLinks = queryExecute("
|
|
SELECT
|
|
tl.ItemID as MenuItemID,
|
|
mi.Name as MenuName,
|
|
mi.ParentItemID as MenuItemParentID,
|
|
tl.TemplateItemID,
|
|
t.Name as TemplateName,
|
|
t.IsActive as TemplateActive,
|
|
tl.SortOrder
|
|
FROM lt_ItemID_TemplateItemID tl
|
|
JOIN Items mi ON mi.ID = tl.ItemID
|
|
JOIN Items t ON t.ItemID = tl.TemplateItemID
|
|
WHERE mi.BusinessID = :bizId
|
|
ORDER BY mi.Name, tl.SortOrder
|
|
", { bizId: bizId }, { datasource: "payfrit" });
|
|
|
|
links = [];
|
|
for (row in qLinks) {
|
|
arrayAppend(links, {
|
|
"MenuItemID": row.MenuItemID,
|
|
"MenuName": row.MenuName,
|
|
"MenuItemParentID": row.MenuItemParentID,
|
|
"TemplateItemID": row.TemplateItemID,
|
|
"TemplateName": row.TemplateName,
|
|
"TemplateActive": row.TemplateActive,
|
|
"SortOrder": row.SortOrder
|
|
});
|
|
}
|
|
|
|
// Get all templates that exist for this business
|
|
qTemplates = queryExecute("
|
|
SELECT ID, Name, IsActive, ParentItemID
|
|
FROM Items
|
|
WHERE BusinessID = :bizId
|
|
AND IsCollapsible = 1
|
|
ORDER BY Name
|
|
", { bizId: bizId }, { datasource: "payfrit" });
|
|
|
|
templates = [];
|
|
for (row in qTemplates) {
|
|
arrayAppend(templates, {
|
|
"ItemID": row.ID,
|
|
"Name": row.Name,
|
|
"IsActive": row.IsActive,
|
|
"ParentID": row.ParentItemID
|
|
});
|
|
}
|
|
|
|
writeOutput(serializeJSON({
|
|
"OK": true,
|
|
"TemplateLinksCount": arrayLen(links),
|
|
"TemplateLinks": links,
|
|
"TemplatesCount": arrayLen(templates),
|
|
"Templates": templates
|
|
}));
|
|
</cfscript>
|