@node-red/editor-client 4.0.3 → 4.0.4

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.
@@ -27,7 +27,8 @@
27
27
  "lock": "Bloquear",
28
28
  "unlock": "Desbloquear",
29
29
  "locked": "Bloqueado",
30
- "unlocked": "Desbloqueado"
30
+ "unlocked": "Desbloqueado",
31
+ "format": "Formato"
31
32
  },
32
33
  "type": {
33
34
  "string": "texto",
@@ -303,7 +304,8 @@
303
304
  "missingType": "La entrada no es un flujo válido - elemento __index__ falta la propiedad 'type'"
304
305
  },
305
306
  "conflictNotification1": "Algunos de los nodos que estás importando ya existen en tu espacio de trabajo.",
306
- "conflictNotification2": "Selecciona qué nodos importar y si reemplazar los nodos existentes o importar una copia de los mismos."
307
+ "conflictNotification2": "Selecciona qué nodos importar y si reemplazar los nodos existentes o importar una copia de los mismos.",
308
+ "alreadyExists": "Este nodo ya existe"
307
309
  },
308
310
  "copyMessagePath": "Ruta copiada",
309
311
  "copyMessageValue": "Valor copiado",
@@ -371,8 +373,12 @@
371
373
  "deleted": "eliminado",
372
374
  "flowDeleted": "flujo eliminado",
373
375
  "flowAdded": "flujo añadido",
376
+ "moved": "movido",
374
377
  "movedTo": "movido a __id__",
375
- "movedFrom": "movido desde __id__"
378
+ "movedFrom": "movido desde __id__",
379
+ "none": "ninguno",
380
+ "position": "posición",
381
+ "wires": "conectores"
376
382
  },
377
383
  "nodeCount": "__count__ nodo",
378
384
  "nodeCount_plural": "__count__ nodos",
@@ -381,9 +387,14 @@
381
387
  "reviewChanges": "Revisar Cambios",
382
388
  "noBinaryFileShowed": "No se puede mostrar el contenido del archivo binario",
383
389
  "viewCommitDiff": "Ver cambios de commit",
390
+ "commit": "Commit",
384
391
  "compareChanges": "Comparar Cambios",
385
392
  "saveConflict": "Guardar resolución de conflictos",
386
393
  "conflictHeader": "<span>__resolved__</span> de <span>__unresolved__</span> conflictos resueltos",
394
+ "localChanges": "Cambios Locales",
395
+ "remoteChanges": "Cambios Remotos",
396
+ "useLocalChanges": "utilizar cambios locales",
397
+ "useRemoteChanges": "utilizar cambios remotos",
387
398
  "commonVersionError": "La versión común no contiene JSON válido:",
388
399
  "oldVersionError": "La versión anterior no contiene JSON válido:",
389
400
  "newVersionError": "La versión nueva no contiene JSON válido:"
@@ -551,7 +562,9 @@
551
562
  "types": {
552
563
  "local": "Local",
553
564
  "examples": "Ejemplos"
554
- }
565
+ },
566
+ "type": "Tipo",
567
+ "name": "Nombre"
555
568
  },
556
569
  "palette": {
557
570
  "noInfo": "no hay información disponible",
@@ -613,6 +626,8 @@
613
626
  },
614
627
  "nodeCount": "__label__ nodo",
615
628
  "nodeCount_plural": "__label__ nodos",
629
+ "pluginCount": "__count__ extensión",
630
+ "pluginCount_plural": "__count__ extensiones",
616
631
  "moduleCount": "__count__ módulo disponible",
617
632
  "moduleCount_plural": "__count__ módulos disponibles",
618
633
  "inuse": "en uso",
@@ -640,6 +655,7 @@
640
655
  "errors": {
641
656
  "catalogLoadFailed": "<p>La carga del catálogo de nodos ha fallado</p><p>Revise la consola del navegador para mas información</p>",
642
657
  "installFailed": "<p>Fallo al instalar: __module__</p><p>__message__</p><p>Revise el log para mas información</p>",
658
+ "installTimeout": "<p>La instalación continúa en segundo plano.</p><p>Los nodos aparecerán en la paleta cuando finalice. Consulta el registro para obtener más información.</p>",
643
659
  "removeFailed": "<p>Fallo al eliminar: __module__</p><p>__message__</p><p>Revise el log para mas información</p>",
644
660
  "updateFailed": "<p>Fallo al actualizar: __module__</p><p>__message__</p><p>Revise el log para mas información</p>",
645
661
  "enableFailed": "<p>Fallo al activar: __module__</p><p>__message__</p><p>Revise el log para mas información</p>",
@@ -654,6 +670,9 @@
654
670
  "body":"<p>Eliminando '__module__'</p><p>La eliminación del nodo lo desinstalará de Node-RED. Es posible que el nodo siga utilizando recursos hasta que Node-RED sea reiniciado.</p>",
655
671
  "title": "Eliminar nodos"
656
672
  },
673
+ "removePlugin": {
674
+ "body": "<p>Extensión __module__ eliminada. Vuelve a cargar el editor para borrar los elementos sobrantes.</p>"
675
+ },
657
676
  "update": {
658
677
  "body":"<p>Actualizando '__module__'</p><p>La actualización del nodo requerirá un reinicio manual de Node-RED para completarse. Debe ser reiniciado manualmente.</p>",
659
678
  "title": "Actualizar nodos"
@@ -665,7 +684,8 @@
665
684
  "review": "Abrir información del nodo",
666
685
  "install": "Instalar",
667
686
  "remove": "Eliminar",
668
- "update": "Actualizar"
687
+ "update": "Actualizar",
688
+ "understood": "Entendido"
669
689
  }
670
690
  }
671
691
  }
@@ -718,6 +738,7 @@
718
738
  "nodeHelp": "Ayuda de nodo",
719
739
  "showHelp": "Mostrar ayuda",
720
740
  "showInOutline": "Mostrar en controno",
741
+ "hideTopics": "Esconder temas",
721
742
  "showTopics": "Mostrar temas",
722
743
  "noHelp": "No hay ningun tema de ayuda seleccionado",
723
744
  "changeLog": "Registro de Cambios"
@@ -792,6 +813,7 @@
792
813
  "branches": "Ramas",
793
814
  "noBranches": "Sin ramas",
794
815
  "deleteConfirm": "¿Estás seguro de que quieres eliminar la rama local '__name__'? Esta acción no puede deshacerse.",
816
+ "deleteBranch": "Eliminar rama",
795
817
  "unmergedConfirm": "La rama local '__name__' tiene cambios no fusionados que se perderán. ¿Estás seguro de que quieres eliminarla?",
796
818
  "deleteUnmergedBranch": "Eliminar rama no fusionada",
797
819
  "gitRemotes": "Git remotes",
@@ -913,6 +935,8 @@
913
935
  }
914
936
  },
915
937
  "typedInput": {
938
+ "selected": "__count__ seleccionado",
939
+ "selected_plural": "__count__ seleccionados",
916
940
  "type": {
917
941
  "str": "texto",
918
942
  "num": "número",
@@ -923,7 +947,14 @@
923
947
  "date": "marca tiempo",
924
948
  "jsonata": "expresión",
925
949
  "env": "variable de entorno",
926
- "cred": "credencial"
950
+ "cred": "credencial",
951
+ "conf-types": "nodo configuración"
952
+ },
953
+ "date": {
954
+ "format": {
955
+ "timestamp": "milisegundos desde epoch",
956
+ "object": "Objeto de fecha de JavaScript"
957
+ }
927
958
  }
928
959
  },
929
960
  "editableList": {
@@ -1205,6 +1236,18 @@
1205
1236
  "diagnostics": {
1206
1237
  "title": "Información Sistema"
1207
1238
  },
1239
+ "languages": {
1240
+ "de": "Deutsch",
1241
+ "en-US": "English",
1242
+ "es-ES": "Español (España)",
1243
+ "fr": "Français",
1244
+ "ja": "日本語",
1245
+ "ko": "Korean",
1246
+ "pt-BR": "Português (Brasil)",
1247
+ "ru": "Русский",
1248
+ "zh-CN": "简体中文",
1249
+ "zh-TW": "繁體中文"
1250
+ },
1208
1251
  "validator": {
1209
1252
  "errors": {
1210
1253
  "invalid-json": "Datos JSON inválidos: __error__",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@node-red/editor-client",
3
- "version": "4.0.3",
3
+ "version": "4.0.4",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
package/public/red/about CHANGED
@@ -1,3 +1,20 @@
1
+ #### 4.0.4: Maintenance Release
2
+
3
+ Editor
4
+
5
+ - Fix `link call` node can call out of a subflow (#4892) @GogoVega
6
+ - Fix wrong unlock state when event is triggered after deployment (#4889) @GogoVega
7
+ - i18n(App) update with latest language file changes (#4903) @joebordes
8
+ - fix typo: depreciated (#4895) @dxdc
9
+
10
+ Runtime
11
+
12
+ - Update dev dependencies (#4893) @knolleary
13
+
14
+ Nodes
15
+
16
+ - MQTT: Allow msg.userProperties to have number values (#4900) @hardillb
17
+
1
18
  #### 4.0.3: Maintenance Release
2
19
 
3
20
  Editor
package/public/red/red.js CHANGED
@@ -6830,7 +6830,7 @@ RED.nodes = (function() {
6830
6830
  }
6831
6831
  // If importing a link node, ensure both ends of each link are either:
6832
6832
  // - not in a subflow
6833
- // - both in the same subflow
6833
+ // - both in the same subflow (not for link call node)
6834
6834
  if (/^link /.test(n.type) && n.links) {
6835
6835
  n.links = n.links.filter(function(id) {
6836
6836
  const otherNode = node_map[id] || RED.nodes.node(id);
@@ -6841,9 +6841,13 @@ RED.nodes = (function() {
6841
6841
  if (otherNode.z === n.z) {
6842
6842
  // Both ends in the same flow/subflow
6843
6843
  return true
6844
+ } else if (n.type === "link call" && !!getSubflow(otherNode.z)) {
6845
+ // Link call node can call out of a subflow as long as otherNode is
6846
+ // not in a subflow
6847
+ return false
6844
6848
  } else if (!!getSubflow(n.z) || !!getSubflow(otherNode.z)) {
6845
6849
  // One end is in a subflow - remove the link
6846
- return false
6850
+ return false
6847
6851
  }
6848
6852
  return true
6849
6853
  });
@@ -17519,7 +17523,9 @@ RED.deploy = (function() {
17519
17523
  RED.notify('<p>' + RED._("deploy.successfulDeploy") + '</p>', "success");
17520
17524
  }
17521
17525
  const flowsToLock = new Set()
17526
+ // Node's properties cannot be modified if its workspace is locked.
17522
17527
  function ensureUnlocked(id) {
17528
+ // TODO: `RED.nodes.subflow` is useless
17523
17529
  const flow = id && (RED.nodes.workspace(id) || RED.nodes.subflow(id) || null);
17524
17530
  const isLocked = flow ? flow.locked : false;
17525
17531
  if (flow && isLocked) {
@@ -17572,6 +17578,7 @@ RED.deploy = (function() {
17572
17578
  delete confNode.credentials;
17573
17579
  }
17574
17580
  });
17581
+ // Subflow cannot be locked
17575
17582
  RED.nodes.eachSubflow(function (subflow) {
17576
17583
  if (subflow.changed) {
17577
17584
  subflow.changed = false;
@@ -17580,12 +17587,18 @@ RED.deploy = (function() {
17580
17587
  });
17581
17588
  RED.nodes.eachWorkspace(function (ws) {
17582
17589
  if (ws.changed || ws.added) {
17583
- ensureUnlocked(ws.z)
17590
+ // Ensure the Workspace is unlocked to modify its properties.
17591
+ ensureUnlocked(ws.id);
17584
17592
  ws.changed = false;
17585
17593
  delete ws.added
17594
+ if (flowsToLock.has(ws)) {
17595
+ ws.locked = true;
17596
+ flowsToLock.delete(ws);
17597
+ }
17586
17598
  RED.events.emit("flows:change", ws)
17587
17599
  }
17588
17600
  });
17601
+ // Ensures all workspaces to be locked have been locked.
17589
17602
  flowsToLock.forEach(flow => {
17590
17603
  flow.locked = true
17591
17604
  })