- Implemented asset and resource list query state helpers to manage loading, error, and availability states. - Created EntityListStatus component for displaying status messages and retry options based on entity list state. - Added EntityTableSkeleton component for rendering loading placeholders in tables. - Defined EntityListState type and entityListState function for consistent state management across components. - Developed comprehensive UI tests for list states using Playwright, covering various scenarios including loading, error handling, and responsiveness.
272 lines
14 KiB
JSON
272 lines
14 KiB
JSON
{
|
|
"templateIcon": {
|
|
"label": "Icon",
|
|
"none": "No icon",
|
|
"help": "Shown in the catalog and in resources using this template.",
|
|
"options": {
|
|
"mail": "Mail",
|
|
"key": "Access",
|
|
"folder": "Folder",
|
|
"headphones": "Support",
|
|
"monitor": "Operating system",
|
|
"layers": "Application",
|
|
"shield": "Certificate",
|
|
"file-key": "License",
|
|
"box": "Resource"
|
|
}
|
|
},
|
|
"resourcePanel": "Resource details",
|
|
"closeResourcePanel": "Close resource panel",
|
|
"showResourcePanel": "Show selected details",
|
|
"allResources": "All",
|
|
"filterByTemplate": "Filter by template",
|
|
"inventory": "Resources",
|
|
"mailboxKind": "Mailbox type",
|
|
"corporate": "Corporate",
|
|
"external": "External",
|
|
"relatedAccount": "Related account",
|
|
"resourceTypeId": "Access type",
|
|
"systemId": "System",
|
|
"environmentId": "Environment",
|
|
"newResource": "New resource",
|
|
"editResource": "Edit resource",
|
|
"viewResource": "Details and history",
|
|
"template": "Resource template",
|
|
"status": "Status",
|
|
"active": "Active",
|
|
"inactive": "Inactive",
|
|
"notes": "Notes",
|
|
"characteristics": "Characteristics",
|
|
"chooseValue": "Select a value",
|
|
"noValue": "—",
|
|
"history": "History",
|
|
"recordedBy": "Recorded by {{name}}",
|
|
"snapshotNotice": "Template changes update this record. Removed fields with values are retained, and history keeps its original structure.",
|
|
"resourceDescription": "Register a mailbox, shared folder, application, certificate, software license or assistance tool for this company.",
|
|
"resourceExamples": "Examples: admin@company.com, Administration folder, corporate Zoom, signing certificate or Microsoft 365 subscription.",
|
|
"resourceGuidance": "Characteristics are optional unless the template requires them. Never store passwords or private keys.",
|
|
"resourceScope": "This record identifies the company resource. Availability and device configuration are managed separately.",
|
|
"licenseDescription": "Register a software license or subscription contracted by this company.",
|
|
"licenseExamples": "Examples: Microsoft 365 Business Standard per user, ESET Endpoint per device or a perpetual ERP license.",
|
|
"licenseGuidance": "All fields are optional. Contracted quantity records seats or units covered by the contract. Expiration and renewal dates may differ; perpetual licenses may have no expiration. Do not enter activation keys.",
|
|
"licenseScope": "The application used and its contracted license are separate resources. This record does not allocate seats or calculate remaining capacity.",
|
|
"relatedNotice": "The template remains saved if you later cancel the resource.",
|
|
"inventoryErrors": {
|
|
"INVALID_REQUEST": "Check the form data.",
|
|
"INVALID_EMAIL": "Enter a valid email address.",
|
|
"CONTEXT_FIXED": "The resource type and context cannot change.",
|
|
"REFERENCE_UNAVAILABLE": "Select valid references from this company.",
|
|
"INVALID_CHARACTERISTICS": "A characteristic is not part of the template or has an invalid value.",
|
|
"REQUIRED_CHARACTERISTICS": "Complete the required template characteristics.",
|
|
"TEMPLATE_FIXED": "A resource's template cannot change.",
|
|
"TEMPLATE_UNAVAILABLE": "Select an active resource template from this scope.",
|
|
"NAME_EXISTS": "A resource with this name and template already exists in this company.",
|
|
"RESOURCE_NOT_FOUND": "Resource not found.",
|
|
"COMPANY_NOT_FOUND": "Company not found.",
|
|
"FORBIDDEN": "Your session does not allow this operation. Sign in again.",
|
|
"UNAUTHENTICATED": "Sign in again.",
|
|
"INTERNAL_ERROR": "The operation could not be completed.",
|
|
"RESOURCE_IN_USE": "The resource has current or historical associations. Deactivate it to preserve them or remove its associations before deleting it.",
|
|
"INVALID_DOMAIN_IDENTITY": "Check the domain DNS and NetBIOS names.",
|
|
"DOMAIN_DNS_EXISTS": "A domain with this DNS already exists in this company.",
|
|
"DIRECTORY_CONTEXT_UNAVAILABLE": "The Active Directory context could not be created or validated. Check existing systems and environments.",
|
|
"INVALID_SMB_ADDRESS": "Enter a valid SMB UNC path.",
|
|
"SMB_ADDRESS_EXISTS": "An active SMB resource already uses this address.",
|
|
"ACCESS_PROJECTION_UNAVAILABLE": "The resource access integration could not be prepared.",
|
|
"SMB_ACCESS_INCOMPATIBLE": "The SMB folder requires its automatic integration without a system or environment."
|
|
},
|
|
"yes": "Yes",
|
|
"no": "No",
|
|
"title": "Resource catalog",
|
|
"companyTitle": "Resource catalog",
|
|
"introduction": "Define the characteristics and templates used when registering resources.",
|
|
"companyIntroduction": "Use global definitions and add those needed by this company.",
|
|
"fields": "Fields",
|
|
"templates": "Templates",
|
|
"newField": "New field",
|
|
"editField": "Edit field",
|
|
"newTemplate": "New template",
|
|
"templateUsage": "Template use",
|
|
"templateUsageHelp": "Allows these resources to be used as profile applications, operating systems, certificates, remote support tools or software licenses. Usage is fixed when the template is created.",
|
|
"usage": {
|
|
"general": "General",
|
|
"application": "Application",
|
|
"certificate": "Digital certificate",
|
|
"support": "Remote assistance",
|
|
"os": "Operating system",
|
|
"license": "Software license"
|
|
},
|
|
"editTemplate": "Edit template",
|
|
"name": "Name",
|
|
"description": "Description",
|
|
"type": "Data type",
|
|
"unit": "Unit",
|
|
"choices": "List values",
|
|
"choicesHelp": "Enter one value per line. Existing values are retained; you can add others.",
|
|
"text": "Text",
|
|
"number": "Number",
|
|
"date": "Date",
|
|
"boolean": "Yes / No",
|
|
"choice": "List of values",
|
|
"activate": "Activate",
|
|
"deactivate": "Deactivate",
|
|
"inherited": "Global configuration",
|
|
"overridden": "Customized for this company",
|
|
"reset": "Use global configuration",
|
|
"builtin": "Built in",
|
|
"global": "Global",
|
|
"own": "Company",
|
|
"custom": "Custom",
|
|
"origin": "Origin",
|
|
"actions": "Actions",
|
|
"edit": "Edit",
|
|
"copy": "Create copy",
|
|
"copyName": "{{name}} (copy)",
|
|
"fieldCount": "{{count}} fields",
|
|
"search": "Search",
|
|
"empty": "No results.",
|
|
"loading": "Loading catalog…",
|
|
"retry": "Retry",
|
|
"save": "Save",
|
|
"saving": "Saving…",
|
|
"cancel": "Cancel",
|
|
"selectField": "Add fields to the template",
|
|
"choose": "Select a field",
|
|
"addField": "New field",
|
|
"required": "Required",
|
|
"chooseType": "Select a type",
|
|
"view": "View",
|
|
"close": "Close",
|
|
"viewDefinition": "{{name}}",
|
|
"remove": "Remove field: {{name}}",
|
|
"noFields": "Add at least one field. All fields are initially optional.",
|
|
"fieldHelpText": "Help text",
|
|
"fieldHelpHint": "Shown next to the field when creating or editing a resource.",
|
|
"protected": "Built-in templates and fields can be edited in the global catalog. A field's data type remains fixed. You can change availability or create a template copy for a company.",
|
|
"helpTitle": "What is it for?",
|
|
"examplesLabel": "Show examples and guidance",
|
|
"fieldDescription": "A field describes an resource characteristic. You can reuse it in several templates.",
|
|
"fieldExamples": "Examples: Email address (text), Expiry (date), URL (text) or Provider (text).",
|
|
"fieldGuidance": "Add a unit only when useful. Never store passwords or secrets. The data type is fixed after creation.",
|
|
"templateDescription": "A template groups the fields displayed for an resource type. It is not a specific mailbox, folder, application or certificate.",
|
|
"templateExamples": "Mailbox: address and provider. Shared folder: UNC path. Certificate: holder, issuer and expiry.",
|
|
"templateGuidance": "Characteristics are optional by default. Require only information that is always known. Removing a template field does not delete its catalog definition.",
|
|
"globalHelp": "Global scope: available to all companies.",
|
|
"companyHelp": "Company scope: additions and availability changes affect this company only.",
|
|
"disabledField": "Inactive field: retained in this template.",
|
|
"disabledFieldsNotice": "This template contains inactive fields. You can activate them in the catalog before using it.",
|
|
"quickNotice": "The field remains saved if you later cancel the template.",
|
|
"errors": {
|
|
"INVALID_REQUEST": "Check the form data.",
|
|
"INVALID_CHOICES": "A list needs unique non-empty values. Other data types do not accept list values.",
|
|
"INVALID_FIELDS": "The template needs distinct valid fields.",
|
|
"NAME_EXISTS": "A definition of this type already has this name.",
|
|
"FIELD_UNAVAILABLE": "Only active global or company fields can be added.",
|
|
"FIELD_TYPE_FIXED": "The data type and template use cannot change; existing list values cannot be removed.",
|
|
"BUILTIN_PROTECTED": "Built-in fields cannot be edited.",
|
|
"DEFINITION_NOT_FOUND": "This definition is unavailable in this scope.",
|
|
"COMPANY_NOT_FOUND": "Company not found.",
|
|
"INTERNAL_ERROR": "The operation could not be completed.",
|
|
"FORBIDDEN": "Your session does not allow this operation. Sign in again.",
|
|
"UNAUTHENTICATED": "Sign in again.",
|
|
"INVALID_SECTIONS": "Sections must have unique names and each field must belong to a section of this template.",
|
|
"DOMAIN_FIELDS_REQUIRED": "The domain template must keep its DNS and NetBIOS fields, with DNS required.",
|
|
"SMB_FIELD_REQUIRED": "The template must retain its UNC path field."
|
|
},
|
|
"fieldPicker": {
|
|
"entity_one": "field",
|
|
"entity_other": "fields",
|
|
"helpLabel": "Section and help",
|
|
"destination": "Destination section: {{name}}",
|
|
"limit": "You have reached the template field limit. Deselect fields from this selection or remove fields from the template to add others.",
|
|
"open": "Select fields",
|
|
"title": "Add fields to the template",
|
|
"help": "Select one or more fields and confirm to add them as optional to the destination section. Only active fields that are not already in the template are shown.",
|
|
"select": "Select",
|
|
"selectField": "Select {{name}}",
|
|
"selected": "Selected fields: {{count}}",
|
|
"confirm": "Add fields",
|
|
"empty": "There are no more fields available to add.",
|
|
"invalid": "The selection exceeds the template field limit."
|
|
},
|
|
"sections": {
|
|
"addField": "Add field",
|
|
"expand": "Expand section",
|
|
"collapse": "Collapse section",
|
|
"reorder": "Reorder",
|
|
"reorderHelp": "Drag the handle and drop on the upper or lower half of the target. You can also focus the handle and use the up and down arrow keys. Fields are reordered within their section.",
|
|
"fields": "Fields",
|
|
"title": "Template sections",
|
|
"add": "Add section",
|
|
"name": "Section name",
|
|
"description": "Description",
|
|
"ungrouped": "Unsectioned",
|
|
"moveUp": "Move up",
|
|
"moveDown": "Move down",
|
|
"remove": "Remove section",
|
|
"removeField": "Remove field",
|
|
"required": "Required",
|
|
"assign": "Section",
|
|
"help": "Organize fields without changing their values or requirements. Removing a section moves its fields to Unsectioned.",
|
|
"empty": "This section has no fields yet."
|
|
},
|
|
"formLayout": {
|
|
"identity": "Resource identification",
|
|
"template": "Template details"
|
|
},
|
|
"creationSteps": {
|
|
"label": "New resource steps",
|
|
"progress": "Step {{step}} of {{total}}",
|
|
"template": "Choose template",
|
|
"fields": "Complete fields",
|
|
"name": "Name and notes",
|
|
"next": "Next",
|
|
"previous": "Back",
|
|
"nameHelp": "Name suggested from the resource fields. You can edit it.",
|
|
"completed": " (completed)",
|
|
"templateDescription": "Select the template that defines the resource fields and configuration.",
|
|
"fieldsDescription": "Complete the template details. Fields marked with * are required.",
|
|
"nameDescription": "Review the suggested name and add notes if you need to provide more context."
|
|
},
|
|
"resourceLifecycle": {
|
|
"activate": "Activate resource",
|
|
"deactivate": "Deactivate resource",
|
|
"delete": "Delete permanently",
|
|
"description": "Delete “{{name}}”? The resource and its history will be deleted. This action cannot be undone.",
|
|
"pending": "Deleting…",
|
|
"error": "The resource could not be deleted.",
|
|
"inUse": "The resource has current or historical associations. Deactivate it to preserve them or remove its associations before deleting it."
|
|
},
|
|
"directoryContextTitle": "Active Directory context",
|
|
"directoryContextConfigured": "System: {{system}} · Environment: {{environment}}",
|
|
"directoryContextPending": "The access context will be created automatically when saved. It is not configured yet.",
|
|
"directoryDescription": "Register a logical Windows domain independently of any server.",
|
|
"directoryExamples": "DNS: company.local. Optional NetBIOS: COMPANY.",
|
|
"directoryGuidance": "DNS is unique per company, ignoring case and a trailing dot. Use ASCII punycode for IDN. Editing or deactivating a domain preserves its context.",
|
|
"directoryScope": "This record documents the domain; it does not change Active Directory or create accounts, groups or servers.",
|
|
"smbAccessAutomatic": "Saving makes this folder available in Accounts and access to document needs and grants. No domain or publisher is required.",
|
|
"smbAccessConfigured": "Manage access in Accounts and access. Edit the address and status in this resource.",
|
|
"smbAccessHistorical": "This existing resource retains its access configuration. Saving does not convert it or add an integration.",
|
|
"smb": {
|
|
"copy": "Copy UNC address",
|
|
"copied": "Address copied",
|
|
"error": "Copy failed. Select the address and copy it manually."
|
|
},
|
|
"listState": {
|
|
"forbidden": "You do not have permission to view this company information.",
|
|
"retryCatalog": "Retry catalog",
|
|
"inventory": {
|
|
"loading": "Loading resources…",
|
|
"unavailable": "Resources could not be loaded. You can try again.",
|
|
"refreshing": "Updating resources…",
|
|
"stale": "Resources could not be updated. Showing the last available data."
|
|
},
|
|
"catalog": {
|
|
"loading": "Loading resources templates. Column configuration and creation will be available when loading finishes.",
|
|
"unavailable": "The catalog could not be loaded. Snapshot data is shown; column configuration and creation are unavailable.",
|
|
"refreshing": "Updating catalog…",
|
|
"stale": "The catalog could not be updated. Showing the last available definitions."
|
|
}
|
|
}
|
|
}
|