@saltcorn/server 0.7.4 → 0.8.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app.js +18 -11
- package/auth/admin.js +173 -74
- package/auth/routes.js +40 -15
- package/locales/en.json +46 -3
- package/locales/es.json +134 -134
- package/locales/ru.json +32 -5
- package/markup/admin.js +40 -38
- package/markup/forms.js +4 -3
- package/package.json +8 -7
- package/public/diagram_utils.js +530 -0
- package/public/gridedit.js +4 -1
- package/public/jquery-menu-editor.min.js +112 -112
- package/public/saltcorn-common.js +31 -8
- package/public/saltcorn.css +11 -0
- package/public/saltcorn.js +211 -70
- package/restart_watcher.js +1 -0
- package/routes/actions.js +5 -1
- package/routes/admin.js +229 -79
- package/routes/api.js +19 -2
- package/routes/common_lists.js +137 -134
- package/routes/diagram.js +43 -117
- package/routes/fields.js +4 -1
- package/routes/files.js +137 -101
- package/routes/homepage.js +2 -2
- package/routes/infoarch.js +2 -2
- package/routes/list.js +4 -4
- package/routes/page.js +16 -3
- package/routes/pageedit.js +13 -8
- package/routes/scapi.js +1 -1
- package/routes/search.js +1 -1
- package/routes/tables.js +4 -5
- package/routes/tag_entries.js +31 -10
- package/routes/tags.js +10 -10
- package/routes/tenant.js +98 -36
- package/routes/utils.js +12 -0
- package/routes/view.js +0 -1
- package/routes/viewedit.js +45 -32
- package/serve.js +5 -0
- package/tests/admin.test.js +2 -0
- package/tests/auth.test.js +20 -0
- package/tests/files.test.js +11 -20
- package/tests/tenant.test.js +4 -2
package/locales/es.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
|
-
"Not found": "
|
|
3
|
-
"Page not found": "
|
|
4
|
-
"Incorrect user or password": "
|
|
5
|
-
"Internal Error": "
|
|
2
|
+
"Not found": "No encontrado",
|
|
3
|
+
"Page not found": "Página no encontrada",
|
|
4
|
+
"Incorrect user or password": "Usuario o contraseña incorrectos",
|
|
5
|
+
"Internal Error": "Error Interno",
|
|
6
6
|
"A report has been logged and a team of bug-squashing squirrels has been dispatched to deal with the situation.": "Se ha registrado un informe y se ha enviado un equipo de ardillas que eliminan errores para que se ocupen de la situación.",
|
|
7
|
-
"User": "
|
|
7
|
+
"User": "Usuario",
|
|
8
8
|
"User Settings": "Ajustes de usuario",
|
|
9
9
|
"Logout": "Cerrar sesión",
|
|
10
|
-
"Tables": "
|
|
11
|
-
"Views": "
|
|
10
|
+
"Tables": "Tablas",
|
|
11
|
+
"Views": "Vistas",
|
|
12
12
|
"Pages": "Páginas",
|
|
13
13
|
"Files": "Archivos",
|
|
14
14
|
"Settings": "Configuraciones",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"An error occurred": "Ocurrió un error",
|
|
26
26
|
"ID": "ID",
|
|
27
27
|
"Email": "Email",
|
|
28
|
-
"Role": "
|
|
28
|
+
"Role": "Rol",
|
|
29
29
|
"View": "Ver",
|
|
30
30
|
"Delete": "Eliminar",
|
|
31
31
|
"Add user": "Agregar usuario",
|
|
@@ -42,111 +42,111 @@
|
|
|
42
42
|
"Password reset not enabled. Contact your administrator.": "El restablecimiento de contraseña no está habilitado. Póngase en contacto con su administrador.",
|
|
43
43
|
"Reset password": "Restablecer la contraseña",
|
|
44
44
|
"Enter your email address below and we'll send you a link to reset your password.": "Ingrese su dirección de correo electrónico a continuación y le enviaremos un enlace para restablecer su contraseña.",
|
|
45
|
-
"Enter your new password below": "
|
|
46
|
-
"Set password": "
|
|
45
|
+
"Enter your new password below": "Ingrese su contraseña abajo",
|
|
46
|
+
"Set password": "Introduzca contraseña",
|
|
47
47
|
"Password reset. Log in with your new password": "Restablecimiento de contraseña. Inicie sesión con su nueva contraseña",
|
|
48
48
|
"Change": "Cambio",
|
|
49
|
-
"Old password": "
|
|
49
|
+
"Old password": "Antigua contraseña",
|
|
50
50
|
"New password": "Nueva contraseña",
|
|
51
51
|
"Email: ": "Email: ",
|
|
52
|
-
"Change password": "
|
|
53
|
-
"Password changed": "
|
|
52
|
+
"Change password": "Cambiar contraseña",
|
|
53
|
+
"Password changed": "Contraseña cambiada",
|
|
54
54
|
"Reset password instructions": "Restablecer las instrucciones de contraseña",
|
|
55
55
|
"Hi %s": "Hi %s",
|
|
56
|
-
"You have requested a link to change your password. You can do this through this link:": "
|
|
57
|
-
"If you did not request this, please ignore this email.": "
|
|
56
|
+
"You have requested a link to change your password. You can do this through this link:": "Ha solicitado un enlace para cambiar su contraseña. Puedes hacerlo a través de este enlace:",
|
|
57
|
+
"If you did not request this, please ignore this email.": "Si usted no ha solicitado esto, por favor ignore este email",
|
|
58
58
|
"Your password will not change until you access the link above and set a new one.": "Su contraseña no cambiará hasta que acceda al enlace anterior y establezca una nueva.",
|
|
59
59
|
"Change my password": "Cambiar mi contraseña",
|
|
60
60
|
"Must be admin": "Debe ser administrador",
|
|
61
|
-
"Site identity": "
|
|
61
|
+
"Site identity": "Identidad de sitio",
|
|
62
62
|
"Authentication": "Autenticación",
|
|
63
63
|
"Development": "Desarrollo",
|
|
64
|
-
"Edit": "
|
|
64
|
+
"Edit": "Editar",
|
|
65
65
|
"Unknown file": "Archivo desconocido",
|
|
66
|
-
"Other": "
|
|
67
|
-
"Edit configuration key %s": "
|
|
66
|
+
"Other": "Otro",
|
|
67
|
+
"Edit configuration key %s": "Editar clave de configuración %s",
|
|
68
68
|
"Configuration key %s saved": "Se guardó la clave de configuración %s",
|
|
69
69
|
"Configuration key %s deleted": "Clave de configuración %s eliminada",
|
|
70
70
|
"Must be logged in first": "Debe iniciar sesión primero",
|
|
71
71
|
"Hello": "Hola",
|
|
72
72
|
"Restart server. Try reloading the page after a few seconds after pressing this button.": "Reinicie el servidor. Intente volver a cargar la página después de unos segundos después de presionar este botón.",
|
|
73
73
|
"Restart": "Reiniciar",
|
|
74
|
-
"Backup": "
|
|
74
|
+
"Backup": "Respaldo",
|
|
75
75
|
"Restore": "Restaurar",
|
|
76
76
|
"Not authorized": "No autorizado",
|
|
77
77
|
"Page %s not found": "Página %s no encontrada",
|
|
78
78
|
"Warning": "Advertencia",
|
|
79
|
-
"Hosting on this site is provided for free and with no guarantee of availability or security of your application. ": "
|
|
80
|
-
"This facility is intended solely for you to evaluate the suitability of Saltcorn. ": "
|
|
79
|
+
"Hosting on this site is provided for free and with no guarantee of availability or security of your application. ": "El alojamiento en este sitio se proporciona de forma gratuita y sin garantía de disponibilidad o seguridad de su aplicación. ",
|
|
80
|
+
"This facility is intended solely for you to evaluate the suitability of Saltcorn. ": "Esta instalación está destinada únicamente para que usted evalúe Saltcorn.",
|
|
81
81
|
"If you would like to store private information that needs to be secure, please use self-hosted Saltcorn. ": "Si desea almacenar información privada que debe estar segura, utilice Saltcorn autohospedado.",
|
|
82
82
|
"Create application": "Crear aplicación",
|
|
83
83
|
"Create": "Crear",
|
|
84
|
-
"Please select a name for your application. The name will determine the address at which it will be available. ": "
|
|
84
|
+
"Please select a name for your application. The name will determine the address at which it will be available. ": "Por favor introduzca el nombre de su aplicación. El nombre determinará la dirección en la que estará disponible. ",
|
|
85
85
|
"Application name": "Nombre de la aplicación",
|
|
86
86
|
"Success! Your new application is available at:": "¡Éxito! Su nueva aplicación está disponible en:",
|
|
87
|
-
"Please click the above link now to create the first user.": "
|
|
88
|
-
"A site with this subdomain already exists": "
|
|
89
|
-
"No such view: %s": "No
|
|
90
|
-
"Search all tables": "
|
|
91
|
-
"Show": "
|
|
92
|
-
"When": "
|
|
87
|
+
"Please click the above link now to create the first user.": "Por favor cliquee en este link ahora para crear el primer usuario.",
|
|
88
|
+
"A site with this subdomain already exists": "Ya existe un sitio con el mismo subdominio",
|
|
89
|
+
"No such view: %s": "No existe tal vista: %s",
|
|
90
|
+
"Search all tables": "Buscar en todas las tablas",
|
|
91
|
+
"Show": "Ver",
|
|
92
|
+
"When": "Cuando",
|
|
93
93
|
"Tenant": "Tenant",
|
|
94
|
-
"Crash log entry %s": "
|
|
95
|
-
"New %s": "
|
|
96
|
-
"Data": "
|
|
97
|
-
"Add row": "
|
|
98
|
-
"Add %s": "
|
|
99
|
-
"Edit row": "
|
|
100
|
-
"Edit %s": "
|
|
101
|
-
"No errors reported": "
|
|
102
|
-
"Everything is going extremely well.": "
|
|
103
|
-
"Filename": "
|
|
104
|
-
"Size (KiB)": "
|
|
105
|
-
"Media type": "
|
|
106
|
-
"Role to access": "
|
|
94
|
+
"Crash log entry %s": "Entrada de registro de fallas %s",
|
|
95
|
+
"New %s": "Nuevo %s",
|
|
96
|
+
"Data": "Datos",
|
|
97
|
+
"Add row": "Agregar fila",
|
|
98
|
+
"Add %s": "Agregar %s",
|
|
99
|
+
"Edit row": "Editar fila",
|
|
100
|
+
"Edit %s": "Editar %s",
|
|
101
|
+
"No errors reported": "Sin errores reportados",
|
|
102
|
+
"Everything is going extremely well.": "Todo está yendo extremadamente bien.",
|
|
103
|
+
"Filename": "Nombre de archivo",
|
|
104
|
+
"Size (KiB)": "Tamaño (KiB)",
|
|
105
|
+
"Media type": "Tipo",
|
|
106
|
+
"Role to access": "Rol para acceder",
|
|
107
107
|
"Link": "Link",
|
|
108
108
|
"Download": "Descargar",
|
|
109
109
|
"Upload file ": "Subir archivo",
|
|
110
|
-
"Minimum role for %s updated to %s": "
|
|
111
|
-
"File %s deleted": "
|
|
112
|
-
"More...": "
|
|
113
|
-
"Quick Start": "
|
|
114
|
-
"Four different ways to get started using Saltcorn": "
|
|
110
|
+
"Minimum role for %s updated to %s": "Minimo rol para %s actualizado a %s",
|
|
111
|
+
"File %s deleted": "Archivo %s eliminado",
|
|
112
|
+
"More...": "Mas...",
|
|
113
|
+
"Quick Start": "Comenzar",
|
|
114
|
+
"Four different ways to get started using Saltcorn": "Cuatro maneras diferentes de comenzar a usar Saltcorn",
|
|
115
115
|
"Build": "Construir",
|
|
116
|
-
"Start by creating the tables to hold your data": "
|
|
116
|
+
"Start by creating the tables to hold your data": "Comience por crear las tablas para almacenar sus datos",
|
|
117
117
|
"Create a table »": "Crea una tabla »",
|
|
118
118
|
"When you have created the tables, you can create views so users can interact with the data.": "Cuando haya creado las tablas, puede crear vistas para que los usuarios puedan interactuar con los datos.",
|
|
119
|
-
"You can also start by creating a page.": "
|
|
120
|
-
"Create a page »": "
|
|
121
|
-
"Upload": "
|
|
122
|
-
"You can skip creating a table by hand by uploading a CSV file from a spreadsheet.": "
|
|
123
|
-
"Create table with CSV upload": "
|
|
124
|
-
"If you have a backup from a previous Saltcorn instance, you can also restore it.": "
|
|
125
|
-
"Install pack": "
|
|
126
|
-
"Instead of building, get up and running in no time with packs": "
|
|
127
|
-
"Packs are collections of tables, views and plugins that give you a full application which you can then edit to suit your needs.": "
|
|
119
|
+
"You can also start by creating a page.": "También puedes empezar creando una página.",
|
|
120
|
+
"Create a page »": "Crear página »",
|
|
121
|
+
"Upload": "Subir",
|
|
122
|
+
"You can skip creating a table by hand by uploading a CSV file from a spreadsheet.": "Puede omitir la creación de una tabla a mano cargando un archivo CSV desde una hoja de cálculo.",
|
|
123
|
+
"Create table with CSV upload": "Crear tabla con carga de archivo CSV",
|
|
124
|
+
"If you have a backup from a previous Saltcorn instance, you can also restore it.": "Si tiene una copia de seguridad de una instancia anterior de Saltcorn, también puede restaurarla.",
|
|
125
|
+
"Install pack": "Instalar paquete",
|
|
126
|
+
"Instead of building, get up and running in no time with packs": "En lugar de construir, inicie en poco tiempo con paquetes",
|
|
127
|
+
"Packs are collections of tables, views and plugins that give you a full application which you can then edit to suit your needs.": "Los paquetes son colecciones de tablas, vistas y complementos que le brindan una aplicación completa que luego puede editar para satisfacer sus necesidades.",
|
|
128
128
|
"Name": "Nombre",
|
|
129
|
-
"Description": "
|
|
130
|
-
"Go to pack store »": "
|
|
131
|
-
"Learn": "
|
|
132
|
-
"Confused?": "
|
|
129
|
+
"Description": "Descripción",
|
|
130
|
+
"Go to pack store »": "Ir a la tienda »",
|
|
131
|
+
"Learn": "Aprenda",
|
|
132
|
+
"Confused?": "Confundido?",
|
|
133
133
|
"The Wiki contains the documentation and tutorials on installing and using Saltcorn": "El Wiki contiene la documentación y los tutoriales sobre la instalación y el uso de Saltcorn.",
|
|
134
|
-
"Go to Wiki »": "
|
|
135
|
-
"The YouTube channel has some video tutorials": "
|
|
136
|
-
"Go to YouTube »": "
|
|
137
|
-
"What's new? Read the blog »": "
|
|
138
|
-
"Create a table": "
|
|
139
|
-
"Create table from CSV upload": "
|
|
140
|
-
"You have no views!": "
|
|
141
|
-
"Create a view »": "
|
|
142
|
-
"Create a view": "
|
|
143
|
-
"%s data table": "%s
|
|
144
|
-
"Versions": "
|
|
134
|
+
"Go to Wiki »": "Ir al Wiki »",
|
|
135
|
+
"The YouTube channel has some video tutorials": "El canal de YouTube tiene algunos videos tutoriales.",
|
|
136
|
+
"Go to YouTube »": "Ir a YouTube »",
|
|
137
|
+
"What's new? Read the blog »": "¿Qué hay de nuevo? leer el blog »",
|
|
138
|
+
"Create a table": "Crear una tabla",
|
|
139
|
+
"Create table from CSV upload": "Crear tabla con carga de arhcivo CSV",
|
|
140
|
+
"You have no views!": "No tienes vistas!",
|
|
141
|
+
"Create a view »": "Crear vista »",
|
|
142
|
+
"Create a view": "Crear vista",
|
|
143
|
+
"%s data table": "%s tabla de datos",
|
|
144
|
+
"Versions": "Versiones",
|
|
145
145
|
"Version": "Versión",
|
|
146
|
-
"Saved": "
|
|
146
|
+
"Saved": "Guardado",
|
|
147
147
|
"By user ID": "Por ID de usuario",
|
|
148
|
-
"%s History": "%s
|
|
149
|
-
"back to table list": "
|
|
148
|
+
"%s History": "%s Historial",
|
|
149
|
+
"back to table list": "Volver a la lista de tablas",
|
|
150
150
|
"Version %s restored": "Versión %s restaurada",
|
|
151
151
|
"Site name": "Nombre del sitio",
|
|
152
152
|
"Site logo": "Logotipo del sitio",
|
|
@@ -154,68 +154,68 @@
|
|
|
154
154
|
"Text label": "Etiqueta de texto",
|
|
155
155
|
"Minimum role": "Rol mínimo",
|
|
156
156
|
"URL": "URL",
|
|
157
|
-
"Page": "
|
|
158
|
-
"Menu editor": "
|
|
157
|
+
"Page": "Página",
|
|
158
|
+
"Menu editor": "Editor de menú",
|
|
159
159
|
"Menu updated": "Menú actualizado",
|
|
160
160
|
"Plugin and pack store": "Tienda de complementos y paquetes",
|
|
161
161
|
"All": "Todas",
|
|
162
|
-
"Packs": "
|
|
162
|
+
"Packs": "Paquetes",
|
|
163
163
|
"Themes": "Temas",
|
|
164
164
|
"Installed": "Instalado",
|
|
165
165
|
"Refresh": "Actualizar",
|
|
166
|
-
"Upgrade installed plugins": "
|
|
167
|
-
"Add another plugin": "
|
|
166
|
+
"Upgrade installed plugins": "Actualizar plugins instalados",
|
|
167
|
+
"Add another plugin": "Agregar otro plugin",
|
|
168
168
|
"Add another pack": "Agregar otro paquete",
|
|
169
169
|
"Create pack": "Crear paquete",
|
|
170
170
|
"Pack": "Paquete",
|
|
171
171
|
"Install": "Instalar en pc",
|
|
172
|
-
"Plugin": "
|
|
172
|
+
"Plugin": "Plugin",
|
|
173
173
|
"Theme": "Tema",
|
|
174
174
|
"Remove": "Eliminar",
|
|
175
|
-
"Configure plugin": "
|
|
176
|
-
"Create Pack": "
|
|
175
|
+
"Configure plugin": "Configurar plugin",
|
|
176
|
+
"Create Pack": "Crear Paquete",
|
|
177
177
|
"You can copy the pack contents below to another Saltcorn installation.": "You can copy the pack contents below to another Saltcorn installation.",
|
|
178
|
-
"Install Pack": "
|
|
179
|
-
"Pack %s installed": "
|
|
180
|
-
"Pack %s uninstalled": "
|
|
181
|
-
"Uninstall": "
|
|
178
|
+
"Install Pack": "Instalar paquete",
|
|
179
|
+
"Pack %s installed": "Paquete %s instalado",
|
|
180
|
+
"Pack %s uninstalled": "Paquete %s desisntalado",
|
|
181
|
+
"Uninstall": "Desinstalar",
|
|
182
182
|
"Result preview for ": "Vista previa de resultados para",
|
|
183
|
-
"Choose views for <a href=\"/search\">search results</a> for each table.<br/>Set to blank to omit table from global search.": "
|
|
183
|
+
"Choose views for <a href=\"/search\">search results</a> for each table.<br/>Set to blank to omit table from global search.": "Elija vistas para <a href=\"/search\">resultados de búsqueda</a> para cada tabla.<br/>Establézcalo en blanco para omitir la tabla de la búsqueda global.",
|
|
184
184
|
"These tables lack suitable views: ": "Estas tablas carecen de vistas adecuadas:",
|
|
185
185
|
"Search configuration": "Configuración de búsqueda",
|
|
186
|
-
"Table saved with version history enabled": "
|
|
187
|
-
"Label": "
|
|
186
|
+
"Table saved with version history enabled": "Tabla guardada con el historial de versiones habilitado",
|
|
187
|
+
"Label": "Etiqueta",
|
|
188
188
|
"Required": "Necesario",
|
|
189
|
-
"Add field": "
|
|
189
|
+
"Add field": "Agregue campo",
|
|
190
190
|
"Template": "Modelo",
|
|
191
|
-
"Run": "
|
|
191
|
+
"Run": "Ejecutar",
|
|
192
192
|
"Views of this table": "Vistas de esta tabla",
|
|
193
193
|
"Add view": "Agregar vista",
|
|
194
|
-
"Rows": "
|
|
195
|
-
"Download CSV": "
|
|
196
|
-
"Upload CSV": "
|
|
194
|
+
"Rows": "Filas",
|
|
195
|
+
"Download CSV": "Descargar CSV",
|
|
196
|
+
"Upload CSV": "Cargar CSV",
|
|
197
197
|
"%s table": "tabla %s",
|
|
198
198
|
"Fields": "Campos",
|
|
199
|
-
"Table data": "
|
|
200
|
-
"Edit table properties": "
|
|
201
|
-
"API access": "API
|
|
199
|
+
"Table data": "Datos de la tabla",
|
|
200
|
+
"Edit table properties": "Editar propiedades de tabla",
|
|
201
|
+
"API access": "Acceso a API",
|
|
202
202
|
"APIs allow developers access to your data without using a user interface": "Las API permiten a los desarrolladores acceder a sus datos sin utilizar una interfaz de usuario.",
|
|
203
203
|
"Minimum role for read": "Rol mínimo para leer",
|
|
204
204
|
"Minimum role for writing": "Papel mínimo para escribir",
|
|
205
205
|
"Version history": "Historial de versiones",
|
|
206
206
|
"New table": "Nueva mesa",
|
|
207
|
-
"Table name": "
|
|
207
|
+
"Table name": "Nombre de tabla",
|
|
208
208
|
"Table %s created": "Tabla %s creada",
|
|
209
209
|
"No fields defined in %s table": "No hay campos definidos en la tabla %s",
|
|
210
|
-
"Fields define the columns in your table.": "
|
|
211
|
-
"Add field to table": "
|
|
212
|
-
"Table %s already exists": "
|
|
213
|
-
"Invalid table name %s": "
|
|
214
|
-
"Create from CSV upload": "
|
|
215
|
-
"Your tables": "
|
|
216
|
-
"Create table": "
|
|
210
|
+
"Fields define the columns in your table.": "Los campos definen las columnas de su tabla.",
|
|
211
|
+
"Add field to table": "Agregar campo a la tabla",
|
|
212
|
+
"Table %s already exists": "Tabla %s ya existe",
|
|
213
|
+
"Invalid table name %s": "El nombre de la tabla no es válido %s",
|
|
214
|
+
"Create from CSV upload": "Crear desde CSV cargado",
|
|
215
|
+
"Your tables": "Tus tablas",
|
|
216
|
+
"Create table": "Crear tabla",
|
|
217
217
|
"Table saved": "Tabla guardada",
|
|
218
|
-
"Create table from CSV file": "
|
|
218
|
+
"Create table from CSV file": "Crear tabla desde archivo CSV",
|
|
219
219
|
"Create from CSV": "Crear desde CSV",
|
|
220
220
|
"File": "Expediente",
|
|
221
221
|
"Created table %s.": "Tabla creada %s.",
|
|
@@ -224,36 +224,36 @@
|
|
|
224
224
|
"Your views": "Tus vistas",
|
|
225
225
|
"Configure": "Configurar",
|
|
226
226
|
"First, please give some basic information about the view.": "Primero, proporcione información básica sobre la vista.",
|
|
227
|
-
"View name": "
|
|
228
|
-
"Views are based on a view template": "
|
|
229
|
-
"Edit view": "
|
|
227
|
+
"View name": "Nombre de Vista",
|
|
228
|
+
"Views are based on a view template": "Las vistas se basan en una plantilla de vista",
|
|
229
|
+
"Edit view": "Editar vista",
|
|
230
230
|
"Edit %s view": "Editar vista %s",
|
|
231
231
|
"Create view": "Crear vista",
|
|
232
|
-
"View deleted": "
|
|
232
|
+
"View deleted": "Vista eliminada",
|
|
233
233
|
"Display data from this table": "Mostrar datos de esta tabla",
|
|
234
|
-
"Role required to run view": "
|
|
234
|
+
"Role required to run view": "Rol requerido para ejecutar la vista",
|
|
235
235
|
"On root page": "En la página raíz",
|
|
236
|
-
"Layout": "
|
|
237
|
-
"Fixed states": "
|
|
238
|
-
"A short name that will be in your URL": "
|
|
236
|
+
"Layout": "Modelo",
|
|
237
|
+
"Fixed states": "Estados fijos",
|
|
238
|
+
"A short name that will be in your URL": "Un nombre corto que estará en tu URL",
|
|
239
239
|
"Title": "Título",
|
|
240
240
|
"Page title": "Título de la página",
|
|
241
|
-
"A longer description": "
|
|
242
|
-
"Role required to access page": "
|
|
243
|
-
"Page attributes": "
|
|
244
|
-
"Page configuration": "
|
|
245
|
-
"Fixed state for %s view": "
|
|
241
|
+
"A longer description": "Una descripción más larga",
|
|
242
|
+
"Role required to access page": "Rol requerido para acceder a la página",
|
|
243
|
+
"Page attributes": "Atributos de página",
|
|
244
|
+
"Page configuration": "Configuración de página",
|
|
245
|
+
"Fixed state for %s view": "Estado fijo para la vista %s",
|
|
246
246
|
"Set fixed states for views": "Establecer estados fijos para las vistas",
|
|
247
247
|
"Page %s saved": "Página %s guardada",
|
|
248
|
-
"Your pages": "
|
|
248
|
+
"Your pages": "Tus páginas",
|
|
249
249
|
"Add page": "Añadir página",
|
|
250
250
|
"Root pages": "Root pages",
|
|
251
251
|
"The root page is the page that is served when the user visits the home location (/). This can be set for each user role.": "La página raíz es la página que se sirve cuando el usuario visita la ubicación de inicio (/). Esto se puede configurar para cada rol de usuario.",
|
|
252
|
-
"Root pages updated": "
|
|
253
|
-
"Page deleted": "
|
|
254
|
-
"Basic properties": "
|
|
255
|
-
"Attributes": "
|
|
256
|
-
"Summary": "
|
|
252
|
+
"Root pages updated": "Páginas raíz actualizadas",
|
|
253
|
+
"Page deleted": "Página eliminada",
|
|
254
|
+
"Basic properties": "Propiedades básicas",
|
|
255
|
+
"Attributes": "Atributos",
|
|
256
|
+
"Summary": "Resumen",
|
|
257
257
|
"Default": "Defecto",
|
|
258
258
|
"Edit field": "Editar campo",
|
|
259
259
|
"Edit %s field": "Editar el campo %s",
|
|
@@ -261,15 +261,15 @@
|
|
|
261
261
|
"New field:": "Nuevo campo:",
|
|
262
262
|
"Field attributes": "Atributos de campo",
|
|
263
263
|
"Field %s created": "Se creó el campo %s",
|
|
264
|
-
"Summary field": "
|
|
265
|
-
"A default value is required when adding required fields to nonempty tables": "
|
|
266
|
-
"Create user": "
|
|
267
|
-
"Please create your first user account, which will have administrative privileges. You can add other users and give them administrative privileges later.": "
|
|
268
|
-
"Create first user": "
|
|
269
|
-
"Create an account": "
|
|
270
|
-
"No views defined": "No
|
|
264
|
+
"Summary field": "Campo de resumen",
|
|
265
|
+
"A default value is required when adding required fields to nonempty tables": "Se requiere un valor predeterminado al agregar campos obligatorios a tablas no vacías",
|
|
266
|
+
"Create user": "Crear usuario",
|
|
267
|
+
"Please create your first user account, which will have administrative privileges. You can add other users and give them administrative privileges later.": "Cree su primera cuenta de usuario, que tendrá privilegios de administrador. Puede agregar otros usuarios y otorgarles privilegios de administrador más adelante.",
|
|
268
|
+
"Create first user": "Crear primer usuario",
|
|
269
|
+
"Create an account": "Crear una cuenta",
|
|
270
|
+
"No views defined": "No hay vistas definidas",
|
|
271
271
|
"Views define how table rows are displayed to the user": "Las vistas definen cómo se muestran las filas de la tabla al usuario",
|
|
272
272
|
"Field %s saved": "Campo %s guardado",
|
|
273
273
|
"View configuration": "Ver configuración",
|
|
274
|
-
"Field %s deleted": "
|
|
274
|
+
"Field %s deleted": "Campo %s eliminado"
|
|
275
275
|
}
|
package/locales/ru.json
CHANGED
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"Must be admin": "Должен быть администратором",
|
|
61
61
|
"Site identity": "Идентичность сайта",
|
|
62
62
|
"Authentication": "Аутентификация",
|
|
63
|
-
"Development": "
|
|
63
|
+
"Development": "Разработка",
|
|
64
64
|
"Edit": "Редактировать",
|
|
65
65
|
"Unknown file": "Неизвестный файл",
|
|
66
66
|
"Other": "Другое(ие)",
|
|
@@ -862,15 +862,15 @@
|
|
|
862
862
|
"Auto save": "Автосохранение",
|
|
863
863
|
"Save any changes immediately": "Сохранять все изменения данных в форме немедленно",
|
|
864
864
|
"This is the view to which the user will be sent when the form is submitted. The view you specify here can be ignored depending on the context of the form, for instance if it appears in a pop-up the redirect will not take place.": "Указывается представление, куда будет перенаправлен пользователь после отправки формы. В некоторых случаях перенаправление не будет выполнено, например, если форма использована в режиме всплывающего окна.",
|
|
865
|
-
"Destination view": "
|
|
866
|
-
"Destination URL Formula": "
|
|
865
|
+
"Destination view": "Целевое представление",
|
|
866
|
+
"Destination URL Formula": "Целевая формулоа URL",
|
|
867
867
|
"Back": "Назад",
|
|
868
868
|
"Backup successful": "Резервная копия успешно создана",
|
|
869
869
|
"Save before going back": "Save before going back",
|
|
870
870
|
"Reload after going back": "Reload after going back",
|
|
871
871
|
"Steps to go back": "Steps to go back",
|
|
872
872
|
"View pattern": "Паттерн представления",
|
|
873
|
-
"The view pattern sets the foundation of how the view relates to the table and the behaviour of the view": "
|
|
873
|
+
"The view pattern sets the foundation of how the view relates to the table and the behaviour of the view": "Шаблон представления устанавливает основу того, как представление связано с таблицей и поведением представления",
|
|
874
874
|
"This will delete <strong>EVERYTHING</strong> in the selected categories": "Внимание! Будут удалены <strong>ВСЕ</strong> данные в выбранных категориях",
|
|
875
875
|
"Tag not found": "Тэг не найден",
|
|
876
876
|
"Build Result": "Результат сборки",
|
|
@@ -882,5 +882,32 @@
|
|
|
882
882
|
"When prompted to create the first user, click the link to restore a backup": "Вместо создания первого пользователя, выберите Восстановление из резервной копии (restore a backup)",
|
|
883
883
|
"Select the downloaded backup file": "Выбрать скаченный бекап (файл с резервной копией)",
|
|
884
884
|
"Snapshot successful": "Снимок (Снепшот) выполнен успешно",
|
|
885
|
-
"Unable to build the app
|
|
885
|
+
"Unable to build the app": "Ошибка создания приложения",
|
|
886
|
+
"Diagram": "Диаграмма",
|
|
887
|
+
"Upgrading modules...": "Обновление модулей...",
|
|
888
|
+
"Table access": "Доступы к таблицам",
|
|
889
|
+
"Application diagram": "Диаграмма приложения",
|
|
890
|
+
"Add tag": "Добавить тег",
|
|
891
|
+
"Not a valid e-mail address": "Некорректный адресс электронной почты (e-mail address)",
|
|
892
|
+
"User must have this role or higher to read rows from the table, unless they are the owner": "Для просмотра данных в таблице уровень роли должен быть соответствовать указанному или быть выше, если только пользователь не является владельцем",
|
|
893
|
+
"User must have this role or higher to edit or create new rows in the table, unless they are the owner": "Для редактирования к таблице уровень роли должен быть соответствовать указанному или быть выше, если только пользователь не является владельцем",
|
|
894
|
+
"All entities": "Все сущности",
|
|
895
|
+
"no tags": "теги не указаны",
|
|
896
|
+
"Tag entry": "Тег",
|
|
897
|
+
"Tag: %s": "Тег: %s",
|
|
898
|
+
"Discover tables that are already in the Database, but not known to Saltcorn": "Обнаружить таблицы, уже созданные в Базе Данных, но пока не подключенные к Saltcorn",
|
|
899
|
+
"Users already present": "Пользователи уже созданы",
|
|
900
|
+
"Database type": "Тип БД",
|
|
901
|
+
"Database name": "Database name",
|
|
902
|
+
"Database host": "Хост БД",
|
|
903
|
+
"Database port": "Порт БД",
|
|
904
|
+
"Database schema": "Схема БД",
|
|
905
|
+
"Database user": "Пользователь БД",
|
|
906
|
+
"Create tenant warning text": "Текст предупреждения при создании тенанта",
|
|
907
|
+
"Provide your own create warning text if need": "Предоставьте свой текст предупреждения, который будет отображаться при создании тенанта, если это необходимо",
|
|
908
|
+
"Page %s added to menu. Adjust access permissions in Settings » Menu": "Страница %s добавлена в меню. При необходимости настройте права доступа в Настройки » Меню",
|
|
909
|
+
"Development settings": "Настройки для разработчиков",
|
|
910
|
+
"Creator email": "Email создателя",
|
|
911
|
+
"Created": "Создано",
|
|
912
|
+
"Views display data from tables. A view is a view pattern applied to a table, with configuration.": "Представления отображают данные из таблиц. Представление - это конфигурируемый визуальный паттерн, применяемый к таблице."
|
|
886
913
|
}
|
package/markup/admin.js
CHANGED
|
@@ -122,35 +122,35 @@ const send_settings_page = ({
|
|
|
122
122
|
const pillCard = no_nav_pills
|
|
123
123
|
? []
|
|
124
124
|
: [
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
)
|
|
125
|
+
{
|
|
126
|
+
type: "card",
|
|
127
|
+
class: "mt-0",
|
|
128
|
+
contents: div(
|
|
129
|
+
{ class: "d-flex" },
|
|
130
|
+
ul(
|
|
131
|
+
{ class: "nav nav-pills plugin-section" },
|
|
132
|
+
sub_sections.map(({ text, href }) =>
|
|
133
|
+
li(
|
|
134
|
+
{ class: "nav-item" },
|
|
135
|
+
a(
|
|
136
|
+
{
|
|
137
|
+
href,
|
|
138
|
+
class: ["nav-link", active_sub === text && "active"],
|
|
139
|
+
},
|
|
140
|
+
req.__(text)
|
|
142
141
|
)
|
|
143
142
|
)
|
|
144
143
|
)
|
|
145
|
-
)
|
|
146
|
-
|
|
147
|
-
|
|
144
|
+
)
|
|
145
|
+
),
|
|
146
|
+
},
|
|
147
|
+
];
|
|
148
148
|
// headers
|
|
149
149
|
const title = headers
|
|
150
150
|
? {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
151
|
+
title: req.__(active_sub),
|
|
152
|
+
headers,
|
|
153
|
+
}
|
|
154
154
|
: req.__(active_sub);
|
|
155
155
|
res.sendWrap(title, {
|
|
156
156
|
above: [
|
|
@@ -167,10 +167,10 @@ const send_settings_page = ({
|
|
|
167
167
|
},
|
|
168
168
|
...(sub2_page
|
|
169
169
|
? [
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
170
|
+
{
|
|
171
|
+
text: sub2_page,
|
|
172
|
+
},
|
|
173
|
+
]
|
|
174
174
|
: []),
|
|
175
175
|
],
|
|
176
176
|
},
|
|
@@ -199,9 +199,9 @@ const send_infoarch_page = (args) => {
|
|
|
199
199
|
{ text: "Languages", href: "/site-structure/localizer" },
|
|
200
200
|
...(tenant_list
|
|
201
201
|
? [
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
202
|
+
{ text: "Tenants", href: "/tenant/list" },
|
|
203
|
+
{ text: "Multitenancy", href: "/tenant/settings" },
|
|
204
|
+
]
|
|
205
205
|
: []),
|
|
206
206
|
{ text: "Tags", href: "/tag" },
|
|
207
207
|
{ text: "Diagram", href: "/diagram" },
|
|
@@ -224,6 +224,7 @@ const send_users_page = (args) => {
|
|
|
224
224
|
{ text: "Users", href: "/useradmin" },
|
|
225
225
|
{ text: "Roles", href: "/roleadmin" },
|
|
226
226
|
{ text: "Settings", href: "/useradmin/settings" },
|
|
227
|
+
{ text: "Table access", href: "/useradmin/table-access" },
|
|
227
228
|
...(isRoot ? [{ text: "SSL", href: "/useradmin/ssl" }] : []),
|
|
228
229
|
],
|
|
229
230
|
...args,
|
|
@@ -291,6 +292,7 @@ const send_admin_page = (args) => {
|
|
|
291
292
|
{ text: "Email", href: "/admin/email" },
|
|
292
293
|
{ text: "System", href: "/admin/system" },
|
|
293
294
|
{ text: "Mobile app", href: "/admin/build-mobile-app" },
|
|
295
|
+
{ text: "Development", href: "/admin/dev" },
|
|
294
296
|
],
|
|
295
297
|
...args,
|
|
296
298
|
});
|
|
@@ -339,8 +341,8 @@ const flash_restart = (req) => {
|
|
|
339
341
|
req.flash(
|
|
340
342
|
"warning",
|
|
341
343
|
req.__(`Restart required for changes to take effect.`) +
|
|
342
|
-
|
|
343
|
-
|
|
344
|
+
" " +
|
|
345
|
+
a({ href: "/admin/system" }, req.__("Restart here"))
|
|
344
346
|
);
|
|
345
347
|
};
|
|
346
348
|
|
|
@@ -393,16 +395,16 @@ const config_fields_form = async ({
|
|
|
393
395
|
isView || isRole || isTenant
|
|
394
396
|
? "String"
|
|
395
397
|
: configTypes[name].input_type
|
|
396
|
-
|
|
397
|
-
|
|
398
|
+
? undefined
|
|
399
|
+
: configTypes[name].type,
|
|
398
400
|
input_type: configTypes[name].input_type,
|
|
399
401
|
attributes: isView
|
|
400
402
|
? await viewAttributes(name)
|
|
401
403
|
: isRole
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
404
|
+
? roleAttribs
|
|
405
|
+
: isTenant
|
|
406
|
+
? await getTenants()
|
|
407
|
+
: configTypes[name].attributes,
|
|
406
408
|
});
|
|
407
409
|
}
|
|
408
410
|
const form = new Form({
|