diff --git a/packages/core/client/src/locale/it-IT.json b/packages/core/client/src/locale/it-IT.json index e2c2e47e53..4f5249f667 100644 --- a/packages/core/client/src/locale/it-IT.json +++ b/packages/core/client/src/locale/it-IT.json @@ -54,7 +54,7 @@ "Insert inner": "Inserire dentro", "Delete": "Eliminare", "Disassociate": "Dissociare", - "Disassociate record": "Dissociare il record", + "Disassociate record": "Dissociare record", "Are you sure you want to disassociate it?": "Sei sicuro di voler dissociare?", "UI editor": "Editor UI", "Collection": "Raccolta", @@ -80,7 +80,7 @@ "Value": "Valore", "Disabled": "Disabilitato", "Enabled": "Abilitato", - "Problematic": "Problematico", + "Problematic": "Con problemi", "Setting": "Impostazioni", "On": "Acceso", "Off": "Spento", @@ -121,7 +121,7 @@ "pixels": "pixel", "Screen size": "Dimensione dello schermo", "Display title": "Visualizza titolo", - "Set the count of columns displayed in a row": "Imposta il conteggio delle colonne visualizzate in una riga", + "Set the count of columns displayed in a row": "Imposta conteggio delle colonne visualizzate in una riga", "Column": "Colonna", "Phone device": "Telefono", "Tablet device": "Tablet", @@ -146,7 +146,7 @@ "Half of day": "Metà del giorno", "Year": "Anno", "QuarterYear": "Quarto dell' anno", - "Select grouping field": "Seleziona il campo di raggruppamento", + "Select grouping field": "Seleziona campo di raggruppamento", "Media": "Media", "Markdown": "Markdown", "Wysiwyg": "Wysiwyg", @@ -175,7 +175,7 @@ "Expand all": "Espandi tutto", "Expand/Collapse": "Espandi/Comprimi", "Default collapse": "Comprimi di default", - "Tree table": "Tabella ad albero", + "Tree table": "Tabella struttura ad albero", "Custom field display name": "Nome visualizzato campo personalizzato ", "Display fields": "Visualizza campi", "Edit record": "Modifica record", @@ -191,8 +191,8 @@ "This is a demo text, **supports Markdown syntax**.": "Questo è un testo demo, ** supporta la sintassi di Markdown **.", "Filter": "Filtro", "Connect data blocks": "Collega blocchi di dati", - "Action type": "Tipo di operazione", - "Actions": "Operazioni", + "Action type": "Tipo di azione", + "Actions": "Azioni", "Insert": "Inserisci", "Insert if not exists": "Inserisci se non esiste", "Insert if not exists, or update": "Inserisci se non esiste o aggiorna", @@ -252,9 +252,7 @@ "Integer": "Intero", "Percent": "Percentuale", "Password": "Password", - "Advanced type": "Avanzato", - "Formula": "Formula", - "Formula description": "Calcola un valore in ciascun record in base ad altri campi nello stesso record.", + "Advanced type": "Avanzato", "Choices": "Scelte", "Checkbox": "Casella di controllo", "Single select": "Selezione singola", @@ -320,8 +318,7 @@ "Toggles the subfield mode": "Attiva la modalità Subfield", "Selector mode": "Modalità selettore", "Subtable mode": "Modalità sotto-tabella", - "Subform mode": "Modalità sotto-modulo", - "Edit block title": "Modifica titolo blocco", + "Subform mode": "Modalità sotto-modulo", "Block title": "Titolo blocco", "Pattern": "Modello", "Operator": "Operatore", @@ -341,12 +338,11 @@ "not ends with": "non termina con", "is empty": "è vuoto", "is not empty": "non è vuoto", - "Edit chart": "Modifica grafico", - "Add text": "Aggiungi testo", + "Edit chart": "Modifica grafico", "Filterable fields": "Campi filtrabili", "Edit button": "Modifica pulsante", "Hide": "Nascondi", - "Enable actions": "Abilita operazioni", + "Enable actions": "Abilita azioni", "Import": "Importa", "Export": "Esporta", "Customize": "Personalizza", @@ -354,12 +350,12 @@ "Function": "Funzione", "Popup form": "Modulo Popup", "Flexible popup": "Popup flessibile", - "Configure actions": "Configura operazioni", + "Configure actions": "Configura azioni", "Display order number": "Visualizza numero ordinamento", "Enable drag and drop sorting": "Abilita l'ordinamento con drag and drop", "Triggered when the row is clicked": "Attivato quando si fa clic sulla riga", "Add tab": "Aggiungi scheda", - "Disable tabs": "Disabilita le schede", + "Disable tabs": "Disabilita schede", "Details": "Dettagli", "Edit form": "Modifica modulo", "Create form": "Crea modulo", @@ -373,13 +369,13 @@ "Custom column name": "Nome colonna personalizzato", "Edit description": "Modifica descrizione", "Required": "Richiesto", - "Unique": "Unico", + "Unique": "Univoco", "Primary": "Primario", "Auto increment": "Incremento automatico", "Label field": "Campo etichetta", "Default is the ID field": "L'impostazione predefinita è il campo ID", - "Set default sorting rules": "Imposta le regole di ordinamento predefinite", - "Set validation rules": "Imposta le regole di convalida", + "Set default sorting rules": "Imposta regole di ordinamento predefinite", + "Set validation rules": "Imposta regole di convalida", "Max length": "Lunghezza massima", "Min length": "Lunghezza minima", "Maximum": "Massimo", @@ -430,8 +426,7 @@ "Text Align": "Allineamento testo", "Add option": "Aggiungi opzione", "Related collection": "Raccolta correlata", - "Allow linking to multiple records": "Consenti il collegamento a più record", - "Allow uploading multiple files": "Consenti il caricamento di più file", + "Allow linking to multiple records": "Consenti collegamento a più record", "Configure calendar": "Configura calendario", "Title field": "Campo titolo", "Custom title": "Titolo personalizzato", @@ -471,13 +466,13 @@ "Configure": "Configura", "Configure permissions": "Configura permessi", "Edit role": "Modifica ruolo", - "Action permissions": "Permessi su operazioni", + "Action permissions": "Permessi su azioni", "Menu permissions": "Permessi su menu", "Menu item name": "Nome voce di menu", "Allow access": "Consenti accesso", - "Action name": "Nome operazione", - "Allow action": "Consenti operazione", - "Action scope": "Ambito operazione", + "Action name": "Nome azione", + "Allow action": "Consenti azione", + "Action scope": "Ambito azione", "Operate on new data": "Operare su nuovi dati", "Operate on existing data": "Operare su dati esistenti", "Yes": "Si", @@ -503,11 +498,11 @@ "Save as block template": "Salva come modello blocco", "Block templates": "Modelli blocco", "Block template": "Modello blocco", - "Convert reference to duplicate": "Converti il riferimento a duplicato", + "Convert reference to duplicate": "Converti riferimento a duplicato", "Template name": "Nome modello", "Block type": "Tipo blocco", "No blocks to connect": "Nessun blocco per connettersi", - "Action column": "Colonna operazioni", + "Action column": "Colonna azioni", "Records per page": "Record per pagina", "(Fields only)": "(Solo campi)", "Button title": "Titolo pulsante", @@ -542,7 +537,7 @@ "Identifier for program usage. Support letters, numbers and underscores, must start with an letter.": "Identificatore per l'utilizzo del programma. Supporta lettere, numeri e underscore, deve iniziare con una lettera.", "Drawer": "Cassetto", "Dialog": "Dialogo", - "Delete action": "Elimina operazione", + "Delete action": "Elimina azione", "Custom column title": "Titolo colonna personalizzata", "Column title": "Titolo colonna", "Original title: ": "Titolo originale: ", @@ -556,7 +551,7 @@ "Then": "Poi", "Stay on current page": "Resta sulla pagina corrente", "Redirect to": "Reindirizza a", - "Save action": "Salva operazione", + "Save action": "Salva azione", "Exists": "Esiste", "Add condition": "Aggiungi condizione", "Add condition group": "Aggiungi gruppo di condizioni", @@ -570,11 +565,8 @@ "<": "<", "≤": "≤", "Role UID": "Ruolo UID", - "Precision": "Precisione", - "Formula mode": "Modalità formula", - "Expression": "Espressione", - "Input +, -, *, /, ( ) to calculate, input @ to open field variables.": "Input +, -, *, /, () per calcolare, input @ per aprire le variabili campo.", - "Formula error.": "Errore formula.", + "Precision": "Precisione", + "Expression": "Espressione", "Rich Text": "Testo ricco", "Junction collection": "Raccolta giunzione", "Leave it blank, unless you need a custom intermediate table": "Lascialo vuoto, a meno che tu non abbia bisogno di una tabella intermedia personalizzata", @@ -595,7 +587,7 @@ "Tab name": "Nome della scheda", "Current record blocks": "Blocchi record attuale", "Popup message": "Messaggio popup", - "Delete role": "Elimina il ruolo", + "Delete role": "Elimina ruolo", "Role display name": "Nome visualizzato ruolo", "Default role": "Ruolo predefinito", "All collections use general action permissions by default; permission configured individually will override the default one.": "Tutte le raccolte utilizzano i permessi di operazioni generali per impostazione predefinita; I permessi configurati individualmente sovrascriveranno quelli predefiniti.", @@ -612,11 +604,11 @@ "Allows to configure interface": "Consente di configurare l'interfaccia", "Allows to install, activate, disable plugins": "Consente di installare, attivare, disabilitare i plugin", "Allows to configure plugins": "Consente di configurare i plugin", - "Action display name": "Nome visualizzato operazione", + "Action display name": "Nome visualizzato azione", "Allow": "Permetti", "Data scope": "Ambito dei dati", - "Action on new records": "Operazione su nuovi record", - "Action on existing records": "Operazione su record esistenti", + "Action on new records": "Azione su nuovi record", + "Action on existing records": "Azione su record esistenti", "All records": "Tutti i record", "Own records": "Record propri", "Permission policy": "Policy di autorizzazione", @@ -624,14 +616,14 @@ "General": "Generale", "Accessible": "Accessibile", "Configure permission": "Configura permesso", - "Action permission": "Permesso operazione", + "Action permission": "Permesso azione", "Field permission": "Permesso campo", "Scope name": "Nome ambito", "Unsaved changes": "Modifiche non salvate", "Are you sure you don't want to save?": "Sei sicuro di non voler salvare?", "Dragging": "Trascina", "Popup": "Popup", - "Trigger workflow": "Trigger flusso di lavoro", + "Trigger workflow": "Trigger workflow", "Request API": "Richiesta API", "Assign field values": "Assegna valori del campo", "Constant value": "Valore costante", @@ -762,12 +754,7 @@ "Please fill in the iframe URL": "Si prega di compilare l'URL iFrame", "Fix block": "Fissa blocco", "Plugin name": "Nome plugin", - "Plugin tab name": "Nome scheda plugin", - "AutoGenId": "Campo ID generato automaticamente", - "CreatedBy": "Creato da", - "UpdatedBy": "Aggiornato da", - "CreatedAt": "Creato il", - "UpdatedAt": "Aggiornato il", + "Plugin tab name": "Nome scheda plugin", "Column width": "Larghezza colonna", "Sortable": "Ordinabile", "Enable link": "Abilita link", @@ -796,9 +783,8 @@ "Current form": "Modulo corrente", "Current object": "Oggetto corrente", "Linkage with form fields": "Collegamento con i campi del modulo", - "Allow add new, update and delete actions": "Consenti operazioni aggiungi nuovo, aggiorna ed elimina", - "Date display format": "Formato di visualizzazione della data", - "Assign data scope for the template": "Assegna l'ambito dei dati per il modello", + "Allow add new, update and delete actions": "Consenti azioni aggiungi nuovo, aggiorna ed elimina", + "Date display format": "Formato di visualizzazione della data", "Table selected records": "Tabella record selezionati", "Tag": "Etichetta", "Tag color field": "Campo colore etichetta", @@ -813,8 +799,7 @@ "Please confirm the SQL statement first": "Si prega di confermare prima l'istruzione SQL", "Automatically drop objects that depend on the collection (such as views), and in turn all objects that depend on those objects": "Elimina automaticamente gli oggetti che dipendono dalla raccolta (come le viste) e, a loro volta, tutti gli oggetti che dipendono da tali oggetti", "Sign in with another account": "Accedi con un altro account", - "Return to the main application": "Torna alla applicazione principale", - "Permission deined": "Permesso negato", + "Return to the main application": "Torna alla applicazione principale", "loading": "caricamento", "name is required": "nome richiesto", "data source": "sorgente dati", @@ -843,7 +828,7 @@ "URL search params": "Parametri di ricerca URL", "Expand All": "Espandi tutto", "Search": "Ricerca", - "Clear default value": "Cancella il valore predefinito", + "Clear default value": "Cancella valore predefinito", "Open in new window": "Apri in una nuova finestra", "Sorry, the page you visited does not exist.": "Spiacente, la pagina che hai visitato non esiste.", "is none of": "non è nessuno di", diff --git a/packages/core/client/src/locale/zh-CN.json b/packages/core/client/src/locale/zh-CN.json index 4385002bd0..c563280d52 100644 --- a/packages/core/client/src/locale/zh-CN.json +++ b/packages/core/client/src/locale/zh-CN.json @@ -1088,5 +1088,11 @@ "Full permissions": "全部权限", "Enable index column": "启用序号列", "Date scope": "日期范围", - "Icon only": "仅显示图标" + "Icon only": "仅显示图标", + "Valid range: 100-900": "有效范围:100-900", + "Valid range: 10-40": "有效范围:10-40", + "Font Size(px)": "字体大小(像素)", + "Font Weight": "字体粗细", + "Font Style": "字体样式", + "Italic": "斜体" } diff --git a/packages/core/client/src/modules/fields/__e2e__/styleLinkageRule.test.ts b/packages/core/client/src/modules/fields/__e2e__/styleLinkageRule.test.ts new file mode 100644 index 0000000000..5912e3b9d0 --- /dev/null +++ b/packages/core/client/src/modules/fields/__e2e__/styleLinkageRule.test.ts @@ -0,0 +1,54 @@ +/** + * This file is part of the NocoBase (R) project. + * Copyright (c) 2020-2024 NocoBase Co., Ltd. + * Authors: NocoBase Team. + * + * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. + * For more information, please refer to: https://www.nocobase.com/agreement. + */ + +import { expect, test } from '@nocobase/test/e2e'; +import { oneDetailBlockFieldWidthFieldStyle } from './templates'; + +test.describe('field style linkage rule', () => { + test('field style support Color、Background Color、Text Align、Font Size、Font Weight、Font Style', async ({ + page, + mockPage, + }) => { + await mockPage(oneDetailBlockFieldWidthFieldStyle).goto(); + await page.getByLabel('block-item-CardItem-users-').hover(); + await page.getByLabel('block-item-CollectionField-users-details-users.nickname-Nickname').hover(); + await page + .getByLabel('designer-schema-settings-CollectionField-fieldSettings:FormItem-users-users.nickname', { + exact: true, + }) + .hover(); + await page.getByText('Style').click(); + await page.getByRole('button', { name: 'plus Add linkage rule' }).click(); + await page.getByText('Add property').click(); + await page.locator('div').filter({ hasText: 'Style Linkage' }).nth(2).click(); + await page.getByTestId('select-linkage-properties').click(); + await expect(page.getByText('Color', { exact: true })).toBeVisible(); + await expect(page.getByText('Background Color')).toBeVisible(); + await expect(page.getByText('Text Align')).toBeVisible(); + await expect(page.getByText('Font Size(px)')).toBeVisible(); + await expect(page.getByText('Font Weight')).toBeVisible(); + await expect(page.getByText('Font Style')).toBeVisible(); + // 配置字段样式 + await page.getByText('Font Size(px)').click(); + + await page.getByPlaceholder('Valid range: 10-').click(); + await page.getByPlaceholder('Valid range: 10-').fill('40'); + await page.getByRole('button', { name: 'OK' }).click(); + // 获取元素并断言其 font-size 为 40px + const fontSize = await page + .locator('.ant-formily-item-control-content-component') + .first() + .evaluate((element) => { + return window.getComputedStyle(element).fontSize; + }); + + // 断言 font-size 是 40px + expect(fontSize).toBe('40px'); + }); +}); diff --git a/packages/core/client/src/modules/fields/__e2e__/templates.ts b/packages/core/client/src/modules/fields/__e2e__/templates.ts index ce2b24d33b..a0fbd9545d 100644 --- a/packages/core/client/src/modules/fields/__e2e__/templates.ts +++ b/packages/core/client/src/modules/fields/__e2e__/templates.ts @@ -2476,3 +2476,227 @@ export const shouldImmediatelyShowDrawerWhenClickingEnableLinkForTheFirstTime = 'x-index': 1, }, }; + +export const oneDetailBlockFieldWidthFieldStyle = { + pageSchema: { + _isJSONSchemaObject: true, + version: '2.0', + type: 'void', + 'x-component': 'Page', + 'x-app-version': 'v1.7.0-beta.5', + properties: { + j5rf9qdpszc: { + type: 'void', + 'x-component': 'Grid', + 'x-initializer': 'page:addBlock', + properties: { + x72noji3ol7: { + _isJSONSchemaObject: true, + version: '2.0', + type: 'void', + 'x-component': 'Grid.Row', + 'x-app-version': '1.7.0-beta.5', + properties: { + '6klgaiwxs8q': { + _isJSONSchemaObject: true, + version: '2.0', + type: 'void', + 'x-component': 'Grid.Col', + 'x-app-version': '1.7.0-beta.5', + properties: { + dpj7gevoiqw: { + _isJSONSchemaObject: true, + version: '2.0', + type: 'void', + 'x-acl-action': 'users:view', + 'x-decorator': 'DetailsBlockProvider', + 'x-use-decorator-props': 'useDetailsWithPaginationDecoratorProps', + 'x-decorator-props': { + dataSource: 'main', + collection: 'users', + readPretty: true, + action: 'list', + params: { + pageSize: 1, + }, + }, + 'x-toolbar': 'BlockSchemaToolbar', + 'x-settings': 'blockSettings:detailsWithPagination', + 'x-component': 'CardItem', + 'x-app-version': '1.7.0-beta.5', + properties: { + '5zo8ay6xu74': { + _isJSONSchemaObject: true, + version: '2.0', + type: 'void', + 'x-component': 'Details', + 'x-read-pretty': true, + 'x-use-component-props': 'useDetailsWithPaginationProps', + 'x-app-version': '1.7.0-beta.5', + properties: { + '2u7t8s8zffc': { + _isJSONSchemaObject: true, + version: '2.0', + type: 'void', + 'x-initializer': 'details:configureActions', + 'x-component': 'ActionBar', + 'x-component-props': { + style: { + marginBottom: 24, + }, + }, + 'x-app-version': '1.7.0-beta.5', + 'x-uid': 'ajfbilj1eas', + 'x-async': false, + 'x-index': 1, + }, + grid: { + _isJSONSchemaObject: true, + version: '2.0', + type: 'void', + 'x-component': 'Grid', + 'x-initializer': 'details:configureFields', + 'x-app-version': '1.7.0-beta.5', + properties: { + g1jwsjkiks0: { + _isJSONSchemaObject: true, + version: '2.0', + type: 'void', + 'x-component': 'Grid.Row', + 'x-app-version': '1.7.0-beta.5', + properties: { + gi5z3ss61t2: { + _isJSONSchemaObject: true, + version: '2.0', + type: 'void', + 'x-component': 'Grid.Col', + 'x-app-version': '1.7.0-beta.5', + properties: { + nickname: { + 'x-uid': '2a4om1os4i8', + _isJSONSchemaObject: true, + version: '2.0', + type: 'string', + 'x-toolbar': 'FormItemSchemaToolbar', + 'x-settings': 'fieldSettings:FormItem', + 'x-component': 'CollectionField', + 'x-decorator': 'FormItem', + 'x-collection-field': 'users.nickname', + 'x-component-props': {}, + 'x-app-version': '1.7.0-beta.5', + // 'x-linkage-style-rules': [ + // { + // condition: { + // $and: [], + // }, + // actions: [ + // { + // operator: 'fontSize', + // value: { + // mode: 'constant', + // value: 40, + // }, + // }, + // ], + // }, + // ], + 'x-async': false, + 'x-index': 1, + }, + }, + 'x-uid': 'ki6424bbnoa', + 'x-async': false, + 'x-index': 1, + }, + }, + 'x-uid': '387m3183ea3', + 'x-async': false, + 'x-index': 1, + }, + '1rhnbs2gcca': { + _isJSONSchemaObject: true, + version: '2.0', + type: 'void', + 'x-component': 'Grid.Row', + 'x-app-version': '1.7.0-beta.5', + properties: { + d5ma1xl6j2i: { + _isJSONSchemaObject: true, + version: '2.0', + type: 'void', + 'x-component': 'Grid.Col', + 'x-app-version': '1.7.0-beta.5', + properties: { + username: { + _isJSONSchemaObject: true, + version: '2.0', + type: 'string', + 'x-toolbar': 'FormItemSchemaToolbar', + 'x-settings': 'fieldSettings:FormItem', + 'x-component': 'CollectionField', + 'x-decorator': 'FormItem', + 'x-collection-field': 'users.username', + 'x-component-props': {}, + 'x-app-version': '1.7.0-beta.5', + 'x-uid': '1ayny4b2ylm', + 'x-async': false, + 'x-index': 1, + }, + }, + 'x-uid': 'cdkqplw5ec7', + 'x-async': false, + 'x-index': 1, + }, + }, + 'x-uid': 'k35rh0ef681', + 'x-async': false, + 'x-index': 2, + }, + }, + 'x-uid': 'erulf9efwvv', + 'x-async': false, + 'x-index': 2, + }, + pagination: { + _isJSONSchemaObject: true, + version: '2.0', + type: 'void', + 'x-component': 'Pagination', + 'x-use-component-props': 'useDetailsPaginationProps', + 'x-app-version': '1.7.0-beta.5', + 'x-uid': 'rcmvkgxvob9', + 'x-async': false, + 'x-index': 3, + }, + }, + 'x-uid': 'jra1fx1jp0k', + 'x-async': false, + 'x-index': 1, + }, + }, + 'x-uid': '3u4qbg33yhg', + 'x-async': false, + 'x-index': 1, + }, + }, + 'x-uid': 'g126n7qmm1k', + 'x-async': false, + 'x-index': 1, + }, + }, + 'x-uid': 'ftxf3gxjwxs', + 'x-async': false, + 'x-index': 1, + }, + }, + name: 'j8dv3zpp2l7', + 'x-uid': 'n9tpyozmuz9', + 'x-async': true, + 'x-index': 1, + }, + }, + 'x-uid': 'u3njequ14zz', + 'x-async': true, + 'x-index': 1, + }, +}; diff --git a/packages/core/client/src/schema-component/antd/collection-select/__tests__/collection-select.test.tsx b/packages/core/client/src/schema-component/antd/collection-select/__tests__/collection-select.test.tsx index ae9914dd58..7d4645a2f4 100644 --- a/packages/core/client/src/schema-component/antd/collection-select/__tests__/collection-select.test.tsx +++ b/packages/core/client/src/schema-component/antd/collection-select/__tests__/collection-select.test.tsx @@ -50,7 +50,7 @@ describe('CollectionSelect', () => { >