Some checks are pending
Bidi Control Character Guard / bidi-control-guard (push) Waiting to run
Circular Dependency Check / Check for new circular dependencies (push) Waiting to run
Citus Migration Smoke / Combined migrations on single-node Citus (push) Waiting to run
E2E Fresh Install Tests / fresh-install-e2e (push) Waiting to run
ext-v2 guardrails / Run ext-v2 guard and ESLint (push) Waiting to run
Integration Tests / Check for relevant changes (push) Waiting to run
Integration Tests / ${{ (github.event_name == 'schedule' || github.event.inputs.suite == 'full') && 'Full integration suite' || 'Tier-1 integration subset' }} (push) Blocked by required conditions
Mobile checks / Mobile lint + typecheck (push) Waiting to run
Mobile checks / Mobile unit tests (push) Waiting to run
Mobile checks / Mobile dependency audit (report) (push) Waiting to run
Mobile checks / Mobile reproducibility checks (push) Waiting to run
Secrets guard (env backups) / Ensure no tracked env backup files (push) Waiting to run
Temporal Readiness / fast-readiness (push) Waiting to run
Temporal Readiness / docker-parity (push) Waiting to run
TypeScript Type Check / Nx affected typecheck (push) Waiting to run
Unit Tests / Skipped-test budget (push) Waiting to run
Unit Tests / Nx affected unit tests (push) Waiting to run
Unit Tests / Server unit coverage (informational) (push) Waiting to run
Validate Tenant Management Schema / Check for relevant changes (push) Waiting to run
Validate Tenant Management Schema / Validate Tenant Management Schema (push) Blocked by required conditions
EE Workflows Build Guard / ee-workflows-build-guard (push) Waiting to run
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz Source: /opt/alga-psa on psa.joliet.tech
661 lines
22 KiB
JSON
661 lines
22 KiB
JSON
{
|
|
"page": {
|
|
"title": "Schedule",
|
|
"actions": {
|
|
"configureAvailability": "Configure Availability",
|
|
"appointmentRequests": "Appointment Requests"
|
|
}
|
|
},
|
|
"sidebar": {
|
|
"actions": {
|
|
"compareAll": "Compare All",
|
|
"clearAll": "Clear All",
|
|
"viewWeek": "View Week",
|
|
"compare": "Compare",
|
|
"stopComparing": "Stop Comparing"
|
|
},
|
|
"labels": {
|
|
"inactive": "(Inactive)"
|
|
},
|
|
"aria": {
|
|
"viewWeek": "View week for {{name}}",
|
|
"compare": "Compare {{name}}"
|
|
}
|
|
},
|
|
"agentView": {
|
|
"loading": "Loading...",
|
|
"errors": {
|
|
"loadPermissions": "Failed to load user permissions",
|
|
"forbidden": "You do not have permission to view this schedule."
|
|
}
|
|
},
|
|
"calendar": {
|
|
"legend": {
|
|
"types": {
|
|
"ticket": "Ticket",
|
|
"projectTask": "Project task",
|
|
"nonBillableCategory": "Non-billable category",
|
|
"adHoc": "Ad-Hoc Entry",
|
|
"interaction": "Interaction",
|
|
"appointmentRequest": "Appointment Request"
|
|
},
|
|
"showInactiveUsers": "Show Inactive Users"
|
|
},
|
|
"loading": {
|
|
"initial": "Loading schedule...",
|
|
"overlay": "Loading..."
|
|
},
|
|
"errors": {
|
|
"validateDeletion": "Failed to validate deletion. Please try again.",
|
|
"loadPermissions": "Failed to load permissions.",
|
|
"loadCurrentUser": "Failed to load current user.",
|
|
"unknown": "An unknown error occurred",
|
|
"deleteFailed": "Failed to delete schedule entry",
|
|
"deleteUnexpected": "An error occurred while deleting the schedule entry",
|
|
"updateFailed": "Failed to update schedule entry: {{error}}",
|
|
"createFailed": "Failed to add schedule entry: {{error}}",
|
|
"saveUnexpected": "An error occurred while saving the schedule entry"
|
|
},
|
|
"toolbar": {
|
|
"previousAria": "Previous {{view}}",
|
|
"previous": "< Prev",
|
|
"today": "Today",
|
|
"nextAria": "Next {{view}}",
|
|
"next": "Next >",
|
|
"views": {
|
|
"month": "Month",
|
|
"week": "Week",
|
|
"day": "Day"
|
|
}
|
|
},
|
|
"event": {
|
|
"fallbacks": {
|
|
"unknownTechnician": "Unknown",
|
|
"unassigned": "Unassigned",
|
|
"untitled": "Untitled"
|
|
},
|
|
"tooltip": {
|
|
"scheduledFor": "Scheduled for: {{technicians}}",
|
|
"start": "Start: {{dateTime}}",
|
|
"end": "End: {{dateTime}}",
|
|
"multiDay": "(Multi-day)"
|
|
}
|
|
},
|
|
"deleteDialog": {
|
|
"title": "Delete Schedule Entry",
|
|
"messageRecurring": "Select which events to delete:",
|
|
"messageSingle": "Are you sure you want to delete this schedule entry? This action cannot be undone.",
|
|
"confirm": "Delete",
|
|
"entityFallback": "this schedule entry",
|
|
"options": {
|
|
"single": "Only this event",
|
|
"future": "This and future events",
|
|
"all": "All events"
|
|
},
|
|
"messageWithTeamsWarning": "Are you sure you want to delete this schedule entry? This action cannot be undone. This will also delete the Microsoft Teams meeting."
|
|
},
|
|
"print": {
|
|
"title": "Schedule Agenda",
|
|
"subtitle": "{{count}} scheduled entries",
|
|
"noEntries": "No scheduled entries to print",
|
|
"emptyValue": "-",
|
|
"columns": {
|
|
"title": "Title",
|
|
"type": "Type",
|
|
"start": "Start",
|
|
"end": "End",
|
|
"assigned": "Assigned",
|
|
"status": "Status"
|
|
},
|
|
"optionsDialog": {
|
|
"title": "Print options",
|
|
"description": "Choose which columns to include when printing the schedule."
|
|
}
|
|
}
|
|
},
|
|
"weeklyEvent": {
|
|
"actions": {
|
|
"delete": "Delete Entry"
|
|
},
|
|
"continuation": {
|
|
"previousWeek": "Continues from previous week"
|
|
}
|
|
},
|
|
"requests": {
|
|
"errors": {
|
|
"load": "Failed to load appointment requests",
|
|
"ticketNotFound": "Ticket not found",
|
|
"loadTicket": "Failed to load ticket",
|
|
"assignTechnicianRequired": "Please assign a technician",
|
|
"approve": "Failed to approve request",
|
|
"declineReasonRequired": "Please provide a reason for declining",
|
|
"decline": "Failed to decline request"
|
|
},
|
|
"feedback": {
|
|
"approved": "Appointment request approved",
|
|
"declined": "Appointment request declined"
|
|
},
|
|
"filters": {
|
|
"statusLabel": "Filter by Status",
|
|
"statusOptions": {
|
|
"all": "All",
|
|
"pending": "Pending",
|
|
"approved": "Approved",
|
|
"declined": "Declined",
|
|
"cancelled": "Cancelled"
|
|
}
|
|
},
|
|
"fallbacks": {
|
|
"invalidDateTime": "Invalid date/time"
|
|
},
|
|
"list": {
|
|
"title": "Appointment Requests",
|
|
"badgeTotal": "Total",
|
|
"loading": "Loading requests...",
|
|
"empty": "No {{status}} requests found",
|
|
"duration": "{{count}} minutes",
|
|
"ticketFallback": "Ticket #{{ticket}}",
|
|
"fallbacks": {
|
|
"publicRequest": "Public Request"
|
|
}
|
|
},
|
|
"detail": {
|
|
"back": "← Back to List",
|
|
"title": "Request Details",
|
|
"section": {
|
|
"requestInformation": "Request Information"
|
|
},
|
|
"labels": {
|
|
"reference": "Reference",
|
|
"client": "Client",
|
|
"requester": "Requester",
|
|
"contact": "Contact",
|
|
"email": "Email",
|
|
"phone": "Phone",
|
|
"service": "Service",
|
|
"requestedTime": "Requested Time",
|
|
"duration": "Duration",
|
|
"teamsMeeting": "Teams Meeting",
|
|
"status": "Status",
|
|
"linkedTicket": "Linked Ticket",
|
|
"description": "Description"
|
|
},
|
|
"actions": {
|
|
"joinTeamsMeeting": "Join Teams Meeting"
|
|
}
|
|
},
|
|
"approval": {
|
|
"title": "Approval Details",
|
|
"fields": {
|
|
"assignedTechnician": "Assign Technician *",
|
|
"finalDateTime": "Final Date & Time",
|
|
"generateTeamsMeeting": "Generate Microsoft Teams meeting link",
|
|
"internalNotes": "Internal Notes (Optional)",
|
|
"linkedTicket": "Link to Ticket (Optional)"
|
|
},
|
|
"placeholders": {
|
|
"assignedTechnician": "Select technician",
|
|
"internalNotes": "Add any internal notes...",
|
|
"linkedTicket": "Enter ticket ID to link..."
|
|
},
|
|
"actions": {
|
|
"approve": "Approve",
|
|
"decline": "Decline"
|
|
}
|
|
},
|
|
"decline": {
|
|
"title": "Decline Request",
|
|
"fields": {
|
|
"reason": "Reason for Declining *"
|
|
},
|
|
"placeholders": {
|
|
"reason": "Please provide a reason for declining this request..."
|
|
},
|
|
"actions": {
|
|
"confirm": "Confirm Decline",
|
|
"cancel": "Cancel"
|
|
}
|
|
}
|
|
},
|
|
"availabilitySettings": {
|
|
"dialog": {
|
|
"title": "Availability Settings"
|
|
},
|
|
"loading": "Loading settings...",
|
|
"tabs": {
|
|
"general": "General Settings",
|
|
"userHours": "User Hours",
|
|
"serviceRules": "Service Rules",
|
|
"exceptions": "Exceptions",
|
|
"teamsMeetings": "Teams Meetings"
|
|
},
|
|
"days": {
|
|
"sunday": "Sunday",
|
|
"monday": "Monday",
|
|
"tuesday": "Tuesday",
|
|
"wednesday": "Wednesday",
|
|
"thursday": "Thursday",
|
|
"friday": "Friday",
|
|
"saturday": "Saturday"
|
|
},
|
|
"common": {
|
|
"yes": "Yes",
|
|
"no": "No",
|
|
"columns": {
|
|
"action": "Action"
|
|
},
|
|
"actions": {
|
|
"edit": "Edit",
|
|
"delete": "Delete",
|
|
"deleting": "Deleting..."
|
|
},
|
|
"defaultApprover": {
|
|
"placeholder": "Select approvers"
|
|
},
|
|
"teamSelect": {
|
|
"label": "Select Team",
|
|
"placeholder": "Select a team"
|
|
}
|
|
},
|
|
"feedback": {
|
|
"loadError": "Failed to load settings"
|
|
},
|
|
"general": {
|
|
"autoApproval": {
|
|
"title": "Enable Auto-Approval",
|
|
"description": "Automatically approve appointments that meet the criteria configured below",
|
|
"criteriaTitle": "Auto-Approval Criteria:",
|
|
"criteria": {
|
|
"requireAvailability": "Technician must have availability configured for requested time",
|
|
"requireContract": "Client must have active contract (if service requires it)",
|
|
"checkConflicts": "No scheduling conflicts with existing appointments",
|
|
"respectBuffers": "Respect buffer times before/after appointments"
|
|
}
|
|
},
|
|
"defaultApprover": {
|
|
"label": "Approvers",
|
|
"help": "Company-wide approvers for appointment requests that require manual approval. Add multiple users and/or teams — everyone selected is notified and can approve. This can be overridden per technician in User Hours settings."
|
|
},
|
|
"advanceBookingDays": {
|
|
"label": "Default Advance Booking (Days)"
|
|
},
|
|
"minimumNoticeHours": {
|
|
"label": "Minimum Notice (Hours)"
|
|
},
|
|
"actions": {
|
|
"save": "Save General Settings"
|
|
},
|
|
"feedback": {
|
|
"saveSuccess": "General settings saved",
|
|
"saveError": "Failed to save settings"
|
|
}
|
|
},
|
|
"userHours": {
|
|
"roleManager": {
|
|
"label": "Team Manager:",
|
|
"description": "You can configure availability settings for members of your team(s). The \"Configured Users\" table below shows all users with availability settings across the system."
|
|
},
|
|
"roleAdmin": {
|
|
"label": "Administrator:",
|
|
"description": "You can configure availability settings for any user in the system. The \"Configured Users\" table below shows all users with availability settings."
|
|
},
|
|
"userSelect": {
|
|
"label": "Select User to Configure",
|
|
"placeholderSelectTeamFirst": "Select a team first",
|
|
"placeholder": "Select a user to configure"
|
|
},
|
|
"appointmentSettings": {
|
|
"title": "Appointment Settings",
|
|
"defaultDuration": {
|
|
"label": "Default Appointment Duration (Minutes)",
|
|
"help": "Technician-specific duration override. Leave empty to use the service-specific duration from Service Rules.",
|
|
"placeholder": "Leave empty to use service default"
|
|
},
|
|
"bufferAfter": {
|
|
"label": "Buffer Time Between Appointments (Minutes)",
|
|
"placeholder": "15"
|
|
},
|
|
"defaultApprover": {
|
|
"label": "Approvers",
|
|
"help": "Who should review and approve appointment requests for this technician that require manual approval. Add multiple users and/or teams. Leave empty to use the company-wide approvers."
|
|
},
|
|
"allowClientPreference": {
|
|
"label": "Allow Client Preference",
|
|
"help": "Let clients request this technician specifically"
|
|
}
|
|
},
|
|
"schedule": {
|
|
"timezoneNotice": "Times are in your local timezone ({{timeZone}})",
|
|
"columns": {
|
|
"day": "Day",
|
|
"available": "Available",
|
|
"startTime": "Start Time",
|
|
"endTime": "End Time"
|
|
}
|
|
},
|
|
"configuredUsers": {
|
|
"title": "Configured Users",
|
|
"description": "Users with availability settings configured",
|
|
"empty": "No users configured yet",
|
|
"columns": {
|
|
"userName": "User Name",
|
|
"status": "Status"
|
|
},
|
|
"status": {
|
|
"configured": "Configured"
|
|
}
|
|
},
|
|
"actions": {
|
|
"save": "Save User Hours"
|
|
},
|
|
"feedback": {
|
|
"selectUserError": "Please select a user",
|
|
"saveSuccess": "User hours saved",
|
|
"saveError": "Failed to save user hours",
|
|
"deleteSuccess": "User availability deleted",
|
|
"deleteError": "Failed to delete user availability"
|
|
},
|
|
"deleteDialog": {
|
|
"title": "Delete User Availability",
|
|
"message": "Are you sure you want to delete availability settings for {{userName}}? This will remove all their configured working hours. This action cannot be undone."
|
|
}
|
|
},
|
|
"serviceRules": {
|
|
"serviceSelect": {
|
|
"label": "Select Service to Configure",
|
|
"placeholder": "Select a service to configure"
|
|
},
|
|
"editor": {
|
|
"title": "Edit Rules: {{serviceName}}",
|
|
"allowWithoutContract": {
|
|
"label": "Allow Booking Without Contract"
|
|
},
|
|
"maxAppointmentsPerDay": {
|
|
"label": "Max Appointments Per Day"
|
|
},
|
|
"defaultDuration": {
|
|
"label": "Default Appointment Duration (Minutes)",
|
|
"help": "Default duration for appointments of this service type. Can be overridden by technician-specific settings in User Hours.",
|
|
"placeholder": "e.g., 60 (minutes)"
|
|
}
|
|
},
|
|
"configuredServices": {
|
|
"title": "Configured Services",
|
|
"description": "Services with appointment rules configured",
|
|
"empty": "No services configured yet",
|
|
"columns": {
|
|
"serviceName": "Service Name",
|
|
"duration": "Duration (min)",
|
|
"withoutContract": "Without Contract",
|
|
"maxPerDay": "Max Per Day"
|
|
}
|
|
},
|
|
"common": {
|
|
"noLimit": "No limit"
|
|
},
|
|
"actions": {
|
|
"save": "Save Service Rules"
|
|
},
|
|
"feedback": {
|
|
"selectServiceError": "Please select a service",
|
|
"saveSuccess": "Service rules saved",
|
|
"saveError": "Failed to save service rules",
|
|
"deleteSuccess": "Service rules deleted",
|
|
"deleteError": "Failed to delete service rules"
|
|
},
|
|
"deleteDialog": {
|
|
"title": "Delete Service Rules",
|
|
"message": "Are you sure you want to delete the rules for {{serviceName}}? This action cannot be undone."
|
|
}
|
|
},
|
|
"exceptions": {
|
|
"form": {
|
|
"title": "Add Exception",
|
|
"date": {
|
|
"label": "Select Date"
|
|
},
|
|
"user": {
|
|
"label": "User (Optional - leave empty for company-wide)",
|
|
"placeholder": "Select user"
|
|
},
|
|
"isAvailable": {
|
|
"label": "Available on this day"
|
|
},
|
|
"reason": {
|
|
"label": "Reason",
|
|
"placeholder": "Holiday, Time off, etc."
|
|
}
|
|
},
|
|
"common": {
|
|
"companyWide": "Company-wide"
|
|
},
|
|
"actions": {
|
|
"add": "Add Exception"
|
|
},
|
|
"list": {
|
|
"title": "Existing Exceptions",
|
|
"empty": "No exceptions configured",
|
|
"status": {
|
|
"available": "Available",
|
|
"unavailable": "Unavailable"
|
|
}
|
|
},
|
|
"feedback": {
|
|
"selectDateError": "Please select a date",
|
|
"addSuccess": "Exception added",
|
|
"addError": "Failed to add exception",
|
|
"deleteSuccess": "Exception deleted",
|
|
"deleteError": "Failed to delete exception"
|
|
}
|
|
},
|
|
"teamsMeetings": {
|
|
"prerequisites": {
|
|
"title": "Azure prerequisites",
|
|
"description": "Before you turn this on, grant the app the OnlineMeetings.ReadWrite.All application permission and create an Application Access Policy for the organizer account.",
|
|
"steps": {
|
|
"toggle": "Show Azure setup steps",
|
|
"step1": {
|
|
"title": "1. Grant Graph application permission",
|
|
"item1": "Open Entra admin center → App registrations.",
|
|
"item2": "Select the app used by this tenant's Teams integration.",
|
|
"item3": "API permissions → Add → Microsoft Graph → Application permissions.",
|
|
"item4": "Add OnlineMeetings.ReadWrite.All and grant admin consent."
|
|
},
|
|
"step2": {
|
|
"title": "2. Create an Application Access Policy",
|
|
"intro": "App-only meeting creation must be explicitly allowed for the organizer account.",
|
|
"note": "Allow up to 30 minutes for policy propagation before clicking Verify."
|
|
}
|
|
}
|
|
},
|
|
"organizer": {
|
|
"title": "Meeting organizer",
|
|
"label": "Default meeting organizer Microsoft user object ID",
|
|
"help": "Approved appointments create Teams meetings as this Microsoft user. Use the Entra object ID; UPNs can return 404 from Microsoft Graph onlineMeetings.",
|
|
"placeholder": "00000000-0000-0000-0000-000000000000"
|
|
},
|
|
"actions": {
|
|
"save": "Save",
|
|
"saving": "Saving...",
|
|
"verify": "Verify",
|
|
"verifying": "Verifying...",
|
|
"openRunbook": "Open setup runbook"
|
|
},
|
|
"feedback": {
|
|
"saveSuccess": "Teams meeting organizer saved",
|
|
"saveError": "Failed to save Teams meeting organizer",
|
|
"verifySuccess": "Teams meeting organizer verified",
|
|
"verifyError": "Failed to verify Teams meeting organizer"
|
|
},
|
|
"verify": {
|
|
"valid": "Microsoft organizer verified successfully.",
|
|
"validWithName": "Verified Microsoft user: {{displayName}}.",
|
|
"reasons": {
|
|
"eeDisabled": "Teams meeting verification is only available in Enterprise Edition.",
|
|
"notConfigured": "Teams integration must be active before an organizer can be verified.",
|
|
"userNotFound": "Microsoft could not find a user for that organizer value.",
|
|
"policyMissing": "The Microsoft user exists, but the application access policy is not allowing meeting creation yet.",
|
|
"graphError": "Microsoft Graph could not verify this organizer right now."
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"entryPopup": {
|
|
"title": {
|
|
"appointmentRequest": "Appointment Request",
|
|
"view": "View Entry",
|
|
"edit": "Edit Entry",
|
|
"new": "New Entry"
|
|
},
|
|
"alerts": {
|
|
"privateEntryOnlyCreator": "This is a private entry. Only the creator can view or edit details."
|
|
},
|
|
"validation": {
|
|
"summaryTitle": "Please fill in the required fields:",
|
|
"titleRequiredForAdHoc": "Title is required for ad-hoc entries",
|
|
"startRequired": "Start date/time",
|
|
"endRequired": "End date/time",
|
|
"assigneeRequired": "At least one assigned user",
|
|
"startInvalid": "Start date is invalid",
|
|
"endInvalid": "End date is invalid",
|
|
"endAfterStart": "End date must be after start date",
|
|
"recurrenceIntervalPositive": "Recurrence interval must be a positive whole number",
|
|
"recurrenceCountPositive": "Number of occurrences must be a positive whole number",
|
|
"recurrenceEndInvalid": "Recurrence end date is invalid",
|
|
"recurrenceEndAfterStart": "Recurrence end date must be after start date"
|
|
},
|
|
"fields": {
|
|
"title": "Title",
|
|
"assignedUsers": "Assigned Users *",
|
|
"privateEntry": "Private entry (not visible to other users)",
|
|
"start": "Start *",
|
|
"end": "End *",
|
|
"notes": "Notes"
|
|
},
|
|
"actions": {
|
|
"cancel": "Cancel",
|
|
"close": "Close",
|
|
"save": "Save",
|
|
"delete": "Delete Entry"
|
|
},
|
|
"workItem": {
|
|
"adHocFallback": "Ad-hoc entry (no work item)",
|
|
"openDetails": "Details"
|
|
},
|
|
"appointmentRequest": {
|
|
"approved": {
|
|
"title": "Approved Appointment",
|
|
"descriptionWithDate": "This appointment originated from a client request and was approved on {{date}}.",
|
|
"description": "This appointment originated from a client request.",
|
|
"joinTeamsMeeting": "Join Teams Meeting",
|
|
"downloadRecording": "Download recording",
|
|
"viewTranscript": "View transcript"
|
|
},
|
|
"pending": {
|
|
"title": "Pending Appointment Request",
|
|
"description": "This is an appointment request from a client. You can approve or decline it below."
|
|
},
|
|
"declined": {
|
|
"title": "Declined Appointment Request",
|
|
"descriptionWithReason": "This appointment request was declined: {{reason}}",
|
|
"description": "This appointment request was declined."
|
|
},
|
|
"cancelled": {
|
|
"title": "Cancelled Appointment Request",
|
|
"description": "This appointment request was cancelled by the client."
|
|
},
|
|
"requesterInfo": {
|
|
"title": "Requester Info",
|
|
"company": "Company",
|
|
"name": "Name",
|
|
"email": "Email",
|
|
"phone": "Phone"
|
|
},
|
|
"requestedDateTimeLabel": "Requested Date & Time",
|
|
"assignTechnicianLabel": "Assign Technician *",
|
|
"assignTechnicianPlaceholder": "Select technician",
|
|
"scheduledDateTimeLabel": "Scheduled Date & Time",
|
|
"generateTeamsMeeting": "Generate Microsoft Teams meeting link",
|
|
"noNotes": "No notes provided",
|
|
"declineReasonLabel": "Reason for Declining *",
|
|
"declineReasonPlaceholder": "Please provide a reason for declining this request...",
|
|
"actions": {
|
|
"approve": "Approve",
|
|
"decline": "Decline",
|
|
"confirmDecline": "Confirm Decline"
|
|
},
|
|
"toasts": {
|
|
"assignTechnicianRequired": "Please assign a technician",
|
|
"approved": "Appointment request approved",
|
|
"approveFailed": "Failed to approve request",
|
|
"declineReasonRequired": "Please provide a reason for declining",
|
|
"declined": "Appointment request declined",
|
|
"declineFailed": "Failed to decline request"
|
|
}
|
|
},
|
|
"recurrence": {
|
|
"label": "Recurrence",
|
|
"intervalLabel": "Interval",
|
|
"endLabel": "End",
|
|
"endDateLabel": "End Date",
|
|
"occurrencesLabel": "Occurrences",
|
|
"workdaysOnly": "Workdays only (Mon-Fri, excluding holidays)",
|
|
"options": {
|
|
"none": "None",
|
|
"daily": "Daily",
|
|
"weekly": "Weekly",
|
|
"monthly": "Monthly",
|
|
"yearly": "Yearly"
|
|
},
|
|
"endOptions": {
|
|
"never": "Never",
|
|
"date": "On Date",
|
|
"count": "After"
|
|
},
|
|
"applyDialog": {
|
|
"title": "Apply Changes To",
|
|
"message": "Select which events to update:"
|
|
}
|
|
},
|
|
"delete": {
|
|
"validationFailed": "Failed to validate deletion. Please try again.",
|
|
"entityFallback": "this schedule entry",
|
|
"confirm": "Are you sure you want to delete this schedule entry? This action cannot be undone.",
|
|
"confirmWithTeamsWarning": "Are you sure you want to delete this schedule entry? This action cannot be undone. This will also delete the Microsoft Teams meeting.",
|
|
"scopeDialog": {
|
|
"title": "Delete Schedule Entry",
|
|
"message": "Select which events to delete:",
|
|
"confirm": "Continue"
|
|
}
|
|
},
|
|
"scopeOptions": {
|
|
"single": "Only this event",
|
|
"future": "This and future events",
|
|
"all": "All events"
|
|
}
|
|
},
|
|
"actions": {
|
|
"print": "Print",
|
|
"printOptions": "Print options"
|
|
},
|
|
"interactionDetails": {
|
|
"fields": {
|
|
"client": "Client",
|
|
"contact": "Contact",
|
|
"duration": "Duration",
|
|
"endTime": "End Time",
|
|
"notes": "Notes",
|
|
"startTime": "Start Time",
|
|
"status": "Status",
|
|
"title": "Title",
|
|
"user": "User"
|
|
},
|
|
"noClient": "No client associated",
|
|
"noContact": "No contact associated",
|
|
"noTitle": "No title",
|
|
"notAvailable": "N/A",
|
|
"title": "Interaction Details",
|
|
"unknownUser": "Unknown"
|
|
}
|
|
}
|