Files
ThreadCount 0910bc32c1 ThreadCount Community edition
Uniform stock management for healthcare linen rooms: the coordinator app, the phone counter and the staff app, for your own server. Built from 38e16eb on 2026-09-15. Licensed under the Functional Source License (FSL-1.1-ALv2).
2026-09-16 07:57:54 +10:00

136 lines
6.6 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* Plain-English names for audit ops, and the ops worth a mark in a list of hundreds. Moved here from
* the old /app/activity page. */
export const LABELS: Record<string, string> = {
"issue.create": "Issued garments",
"issue.return": "Recorded a return",
"issue.exchange": "Exchanged a size",
"handback.commit": "Recorded a hand back",
"issue.delete": "Deleted an issue",
"issue.receipt": "Attached a signed receipt",
"stocktake.apply": "Committed a stocktake",
"stock.reorder": "Changed a par level",
"stock.moves": "Adjusted stock",
"stock.orderFlagged": "Raised an order from low stock",
"stock.orderLine": "Added a line to the draft order",
"catalog.add": "Added a garment",
"catalog.update": "Edited a garment",
"catalog.delete": "Deleted a garment",
"catalog.duplicate": "Duplicated a garment",
"catalog.bulk": "Bulk-changed the catalogue",
"catalog.variantAdd": "Added a size",
"catalog.removeSize": "Removed a size",
"barcode.bind": "Bound a barcode",
"barcode.unbind": "Unbound a barcode",
"order.create": "Created an order",
"order.receive": "Received an order",
"order.status": "Changed an orders status",
"order.update": "Edited an order",
"order.duplicate": "Duplicated an order",
"order.lineAdd": "Added an order line",
"order.lineQty": "Changed an order quantity",
"order.lineRemove": "Removed an order line",
"staff.save": "Added or edited a staff record",
"staff.patch": "Edited a staff record",
"staff.delete": "Deleted a staff record",
"dept.save": "Edited a department",
"dept.delete": "Deleted a department",
"supplier.add": "Added a supplier",
"supplier.update": "Edited a supplier",
"supplier.remove": "Removed a supplier",
"location.save": "Added or edited a location",
"location.delete": "Deleted a location",
"location.place": "Placed stock on a shelf",
"approval.add": "Recorded a manager's approval",
"approval.remove": "Removed a manager's approval",
"alteration.add": "Logged an alteration",
"alteration.advance": "Advanced an alteration",
"alteration.remove": "Removed an alteration",
"handin.add": "Recorded a hand-in",
"pickup.contacted": "Marked a pickup contacted",
"pickup.pickedUp": "Marked a pickup collected",
"pickup.deliver": "Delivered to a ward",
"pickup.deliverWard": "Delivered a ward round",
"request.raise": "Raised a request for somebody",
"request.pick": "Started picking a request",
"request.hold": "Held a request at the counter",
"request.round": "Put a request on the ward round",
"request.collected": "Handed a request over",
"request.reply": "Wrote back about a request",
"request.reassign": "Sent a request to a different approver",
"request.withdraw": "Withdrew a request",
"damage.handedIn": "Took a damaged garment back",
"dispute.resolve": "Closed a record query",
"notice.set": "Changed the ward notice",
"kitcheck.open": "Started a kit check",
"kitcheck.close": "Closed a kit check",
"waitlist.offer": "Offered a waiting size",
"staff.selfCode": "Made a staff-app activation code",
"staff.selfClear": "Cancelled an activation code",
"staff.selfUnlink": "Removed somebodys staff-app access",
"users.add": "Invited a user",
"users.update": "Changed a user",
"users.remove": "Removed a user",
"settings.update": "Changed settings",
"import.rows": "Imported data",
"backup.restore": "Restored a backup",
"data.reset": "Reset facility data",
"data.wipeActivity": "Wiped activity history",
"me.password": "Changed their own password",
"me.profile": "Edited their own profile",
"me.deleteAccount": "Deleted their own account",
/* Signing in and out, and the second factor.
*
* The page promises "every change made in this facility", and who reached the account is part of
* that — a stock adjustment nobody disputes reads differently next to a run of failed sign-ins
* from an address nobody recognises. Without these lines the trail rendered the raw op names. */
"auth:signin": "Signed in",
"auth:signin.failed": "A failed sign-in",
"auth:signin.refused": "Sign-in refused (deactivated)",
"auth:signout": "Signed out",
"auth:signup": "Created the facility",
"auth:password.reset": "Set a new password from a reset link",
"2fa:setup": "Started two-factor setup",
"2fa:enable": "Turned two-factor on",
"2fa:disable": "Turned two-factor OFF",
"2fa:regenerate": "Made new recovery codes",
/* The staff app. Every one of these is somebody on a ward changing something the linen room has
* to live with, so they belong in the same trail rather than a second one nobody opens. */
"staff:signin": "Signed in to the staff app",
"staff:signin.failed": "A failed staff-app sign-in",
"staff:signin.refused": "Staff-app sign-in refused (deactivated)",
"staff:signout": "Signed out of the staff app",
"staff:activate": "Claimed their own record",
"staff:request.create": "Raised a uniform request",
"staff:request.approve": "Approved a request (in the app)",
"staff:request.decline": "Declined a request (in the app)",
"staff:request.approve.email": "Approved a request (email link)",
"staff:request.decline.email": "Declined a request (email link)",
"staff:request.message": "Wrote about a request",
"staff:round.sign": "Signed for a ward delivery",
"staff:round.claim": "Confirmed a ward bag was collected",
"staff:damage.report": "Reported damage",
"staff:dispute.raise": "Said their record is wrong",
"staff:waitlist.join": "Joined a waiting list",
"staff:waitlist.leave": "Left a waiting list",
"staff:waitlist.accept": "Took up a waitlist offer",
"staff:kit.answer": "Answered a kit check",
"staff:account.password": "Changed their own staff-app password",
};
/** Operations worth noticing in a list of hundreds. */
export const NOTABLE = new Set([
"catalog.delete", "catalog.removeSize", "staff.delete", "dept.delete", "location.delete", "supplier.remove",
"users.add", "users.remove", "users.update", "settings.update", "backup.restore",
"data.reset", "data.wipeActivity", "me.deleteAccount", "catalog.bulk",
// Turning the second factor off weakens every account in the facility, and a refused sign-in is
// somebody with a password trying to get in after their access was taken away. Both are worth
// catching an eye in a list of hundreds.
"2fa:disable", "auth:signin.refused", "staff:signin.refused",
// The two ends of staff-app access: selfCode mints a credential that opens somebody's record,
// selfUnlink takes their account away. Both are the linen room reaching into a person's access
// rather than into stock, which is exactly what an admin is looking for when they open this.
"staff.selfCode", "staff.selfUnlink",
]);