- Add SoftwareInstallationValues value object for encapsulating software installation data. - Create HTTP routes for managing software installations, including GET, POST, and DELETE operations. - Implement Sequelize repository for software installations, handling database interactions. - Add migration script for creating necessary database tables for software installations. - Create persistence mapper for transforming between domain models and database rows. - Define snapshot schema for software installations to ensure data consistency. - Introduce common schemas for software installations to validate API requests and responses. - Develop UI components for displaying and managing software installations, including history dialogs and forms. - Implement API client for interacting with software installation endpoints. - Write tests for software installations panel and form components to ensure functionality.
165 lines
8.2 KiB
JSON
165 lines
8.2 KiB
JSON
{
|
|
"inventory": "Resources",
|
|
"mailboxKind": "Mailbox type",
|
|
"corporate": "Corporate",
|
|
"external": "External",
|
|
"relatedAccount": "Related account (optional)",
|
|
"resourceTypeId": "Access type",
|
|
"systemId": "System (optional)",
|
|
"environmentId": "Environment (optional)",
|
|
"newResource": "New resource",
|
|
"editResource": "Edit resource",
|
|
"viewResource": "Details and history",
|
|
"template": "Resource template",
|
|
"status": "Status",
|
|
"active": "Active",
|
|
"inactive": "Inactive",
|
|
"notes": "Notes (optional)",
|
|
"characteristics": "Characteristics",
|
|
"chooseValue": "Select a value",
|
|
"noValue": "No data",
|
|
"history": "History",
|
|
"recordedBy": "Recorded by {{name}}",
|
|
"snapshotNotice": "This record retains the template fields captured when the resource was created.",
|
|
"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."
|
|
},
|
|
"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 resources to be used as profile applications, operating systems, certificates or remote assistance tools. Usage is fixed after template creation.",
|
|
"usage": {
|
|
"general": "General",
|
|
"application": "Application",
|
|
"certificate": "Digital certificate",
|
|
"support": "Remote assistance",
|
|
"os": "Operating system"
|
|
},
|
|
"editTemplate": "Edit template",
|
|
"name": "Name",
|
|
"description": "Description (optional)",
|
|
"type": "Data type",
|
|
"unit": "Unit (optional)",
|
|
"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 a field to the template",
|
|
"choose": "Select a field",
|
|
"addField": "New field",
|
|
"required": "Required",
|
|
"chooseType": "Select a type",
|
|
"view": "View",
|
|
"close": "Close",
|
|
"viewDefinition": "{{name}}",
|
|
"optional": "Optional",
|
|
"remove": "Remove field: {{name}}",
|
|
"noFields": "Add at least one field. All fields are initially optional.",
|
|
"fieldHelpText": "Help text (optional)",
|
|
"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."
|
|
},
|
|
"sections": {
|
|
"title": "Template sections",
|
|
"add": "Add section",
|
|
"name": "Section name",
|
|
"description": "Description (optional)",
|
|
"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"
|
|
}
|
|
}
|