diff --git a/.github/ISSUE_TEMPLATE/-anything-else.md b/.github/ISSUE_TEMPLATE/-anything-else.md index dbf28e501..836c78967 100644 --- a/.github/ISSUE_TEMPLATE/-anything-else.md +++ b/.github/ISSUE_TEMPLATE/-anything-else.md @@ -7,8 +7,11 @@ assignees: '' --- -Please use the [Node-RED Forum](https://discourse.nodered.org) or [slack team](https://nodered.org/slack). +Please DO NOT raise an issue. -You could also consider asking a question on [Stack Overflow](https://stackoverflow.com/questions/tagged/node-red) and tag it `node-red`. +We DO NOT use the issue tracker for general support or feature requests. Only bug reports should be raised here using the 'Bug report' template. +For general support, please use the [Node-RED Forum](https://discourse.nodered.org) or [slack team](https://nodered.org/slack). You could also consider asking a question on [Stack Overflow](https://stackoverflow.com/questions/tagged/node-red) and tag it `node-red`. That way the whole Node-RED user community can help, rather than rely on the core development team. + +For feature requests, please use the Node-RED Forum](https://discourse.nodered.org). Many ideas have already been discussed there and you should search that for your request before starting a new discussion. diff --git a/CHANGELOG.md b/CHANGELOG.md index a99600a05..9bb84978a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,70 @@ +#### 1.0.0-beta.2: Beta Release + +Runtime + - Fix length calculation when loading library file + +#### 1.0.0-beta.1: Beta Release + +Runtime + - Update runtime apis to support multiple libraries + - Add Node 12 to travis (allow_failures) + - Bump all dependencies Fixes #2152 + +Editor + - [BREAKING] complete overhaul of editor DOM/CSS structure + - [BREAKING] Get rid of Bootstrap + - Simplify index.mst to a single div to insert the editor + - Append node configs to div rather than body + - Only redraw node status when it has changed + - Minimise work done to calculate node label widths + - Allow script tags with src to reference esm modules + - Upgrade to jq 3.4.1 / jq-ui 1.12.1 + - Allow editor language to be chosen in editor settings + - Only NLS status text that starts with a letter Fixes #2128 + - Fix display of link node list within subflow Fixes #2140 + - Blur the active element when closing edit dialog via action Fixes #2097 + - Trigger change evnt on typedInput when type changes and options present Fixes #2160 + - Move library import/export to single dialog + - Move type-library dialogs to new style dialog + - Fix node drag and drop animation + - let status be simple text if wanted + - Add workspace statusBar + - Complete refresh of German translations + - Fix memory leak in Debug sidebar #2163 + - Introduce toggleButton and move flow-disabled to use it + - Allow RED.settings.get/set to use full property desc + - Add auto-refresh toggle to context sidebar + - Add build-custom-theme script + - Add RED.view.selectNodes api for node selection whilst editing + - Add node-select to typedInput + +Nodes + - http request node: warn user if msg.requestTimeout == 0 + - hide delay node reset label on deploy + - Fix CSV regex to treat strings starting e as text + - Add "don't parse numbers" option to csv node + - Add expand editor button to Template node + - Update catch/status nodes to use selectNodes api and treeList + +#### 0.20.7: Maintenance Release + + - Update jsonata to 1.6.5 which should fix #2183 + - Ensure the subflow stop promise is waiting for before restarting + - Properly escape node types in palette + +#### 0.20.6: Maintenance Release + + - Revealing node position needs to account for zoom level Fixes #2172 + - stop join tripping up if last message of buffer is blank. + - Improve handling of file upload in request node + - Handle subflow internal node wired to a non-existant node Fixes #2202 + - Do not save subflow env vars with blank names + - Don't allow a link node virtual wire to connect to normal port + - Clear HTTP Request node authType when auth disabled Fixes #2215 + - Fix parsing of content-type header Fixes #2216 + - Fix join node reset issue with merging objects + - Copy data-i18n attribute on TypedInput Fixes #2211 + #### 0.20.5: Maintenance Release - Revert error handling in palette manager diff --git a/Gruntfile.js b/Gruntfile.js index 4d289a828..8b7b85a25 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -145,6 +145,7 @@ module.exports = function(grunt) { "packages/node_modules/@node-red/editor-client/src/js/ui/common/tabs.js", "packages/node_modules/@node-red/editor-client/src/js/ui/common/stack.js", "packages/node_modules/@node-red/editor-client/src/js/ui/common/typedInput.js", + "packages/node_modules/@node-red/editor-client/src/js/ui/common/toggleButton.js", "packages/node_modules/@node-red/editor-client/src/js/ui/actions.js", "packages/node_modules/@node-red/editor-client/src/js/ui/deploy.js", "packages/node_modules/@node-red/editor-client/src/js/ui/diff.js", @@ -168,6 +169,7 @@ module.exports = function(grunt) { "packages/node_modules/@node-red/editor-client/src/js/ui/library.js", "packages/node_modules/@node-red/editor-client/src/js/ui/notifications.js", "packages/node_modules/@node-red/editor-client/src/js/ui/search.js", + "packages/node_modules/@node-red/editor-client/src/js/ui/actionList.js", "packages/node_modules/@node-red/editor-client/src/js/ui/typeSearch.js", "packages/node_modules/@node-red/editor-client/src/js/ui/subflow.js", "packages/node_modules/@node-red/editor-client/src/js/ui/userSettings.js", @@ -182,7 +184,7 @@ module.exports = function(grunt) { vendor: { files: { "packages/node_modules/@node-red/editor-client/public/vendor/vendor.js": [ - "packages/node_modules/@node-red/editor-client/src/vendor/jquery/js/jquery-3.3.1.min.js", + "packages/node_modules/@node-red/editor-client/src/vendor/jquery/js/jquery-3.4.1.min.js", "packages/node_modules/@node-red/editor-client/src/vendor/jquery/js/jquery-migrate-3.0.1.min.js", "packages/node_modules/@node-red/editor-client/src/vendor/jquery/js/jquery-ui.min.js", "packages/node_modules/@node-red/editor-client/src/vendor/jquery/js/jquery.ui.touch-punch.min.js", diff --git a/package.json b/package.json index cfc2d75bb..92bc8020d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "node-red", - "version": "0.21.0-alpha.0", + "version": "1.0.0-beta.2", "description": "A visual tool for wiring the Internet of Things", "homepage": "http://nodered.org", "license": "Apache-2.0", @@ -31,25 +31,26 @@ "cheerio": "0.22.0", "clone": "2.1.2", "content-type": "1.0.4", - "cookie": "0.3.1", + "cookie": "0.4.0", "cookie-parser": "1.4.4", "cors": "2.8.5", "cron": "1.7.1", "denque": "1.4.1", - "express": "4.16.4", - "express-session": "1.16.1", - "fs-extra": "7.0.1", + "express": "4.17.1", + "express-session": "1.16.2", + "fs-extra": "8.1.0", "fs.notify": "0.0.4", - "hash-sum": "1.0.2", + "hash-sum": "2.0.0", "https-proxy-agent": "2.2.1", - "i18next": "15.1.0", - "iconv-lite": "0.4.24", + "i18next": "15.1.2", + "iconv-lite": "0.5.0", "is-utf8": "0.2.1", "js-yaml": "3.13.1", "json-stringify-safe": "5.0.1", - "jsonata": "1.6.4", + "jsonata": "1.6.5", + "media-typer": "1.1.0", "memorystore": "1.6.1", - "mime": "2.4.2", + "mime": "2.4.4", "mqtt": "2.18.8", "multer": "1.4.1", "mustache": "3.0.1", @@ -62,19 +63,19 @@ "passport": "0.4.0", "passport-http-bearer": "1.0.1", "passport-oauth2-client-password": "0.1.2", - "raw-body": "2.4.0", + "raw-body": "2.4.1", "request": "2.88.0", - "semver": "6.0.0", - "uglify-js": "3.5.9", + "semver": "6.2.0", + "uglify-js": "3.6.0", "when": "3.7.8", "ws": "6.2.1", "xml2js": "0.4.19" }, "optionalDependencies": { - "bcrypt": "3.0.5" + "bcrypt": "3.0.6" }, "devDependencies": { - "grunt": "~1.0.3", + "grunt": "~1.0.4", "grunt-chmod": "~1.1.1", "grunt-cli": "~1.3.2", "grunt-concurrent": "~2.3.1", @@ -108,7 +109,7 @@ "wdio-mocha-framework": "^0.6.4", "wdio-spec-reporter": "^0.1.5", "webdriverio": "^4.14.1", - "node-red-node-test-helper": "^0.2.2", + "node-red-node-test-helper": "^0.2.3", "jsdoc-nr-template": "node-red/jsdoc-nr-template" }, "engines": { diff --git a/packages/node_modules/@node-red/editor-api/lib/auth/tokens.js b/packages/node_modules/@node-red/editor-api/lib/auth/tokens.js index 31c12d228..6e867d7df 100644 --- a/packages/node_modules/@node-red/editor-api/lib/auth/tokens.js +++ b/packages/node_modules/@node-red/editor-api/lib/auth/tokens.js @@ -56,7 +56,7 @@ function expireSessions() { } if (nextExpiry < Number.MAX_SAFE_INTEGER) { // Allow 5 seconds grace - expiryTimeout = setTimeout(expireSessions,(nextExpiry - Date.now()) + 5000) + expiryTimeout = setTimeout(expireSessions,Math.min(2147483647,(nextExpiry - Date.now()) + 5000)) } if (modified) { return storage.saveSessions(sessions); @@ -129,7 +129,7 @@ module.exports = { sessions[accessToken] = session; if (!expiryTimeout) { - expiryTimeout = setTimeout(expireSessions,(accessTokenExpiresAt - Date.now()) + 5000) + expiryTimeout = setTimeout(expireSessions,Math.min(2147483647,(accessTokenExpiresAt - Date.now()) + 5000)) } return storage.saveSessions(sessions).then(function() { diff --git a/packages/node_modules/@node-red/editor-api/lib/editor/theme.js b/packages/node_modules/@node-red/editor-api/lib/editor/theme.js index 234671f2e..17dbbafea 100644 --- a/packages/node_modules/@node-red/editor-api/lib/editor/theme.js +++ b/packages/node_modules/@node-red/editor-api/lib/editor/theme.js @@ -28,7 +28,7 @@ var defaultContext = { }, header: { title: "Node-RED", - image: "red/images/node-red.png" + image: "red/images/node-red.svg" }, asset: { red: (process.env.NODE_ENV == "development")? "red/red.js":"red/red.min.js", diff --git a/packages/node_modules/@node-red/editor-api/lib/editor/ui.js b/packages/node_modules/@node-red/editor-api/lib/editor/ui.js index ce3ec862c..24b819fec 100644 --- a/packages/node_modules/@node-red/editor-api/lib/editor/ui.js +++ b/packages/node_modules/@node-red/editor-api/lib/editor/ui.js @@ -25,7 +25,7 @@ var theme = require("./theme"); var runtimeAPI; var editorClientDir = path.dirname(require.resolve("@node-red/editor-client")); -var defaultNodeIcon = path.join(editorClientDir,"public","red","images","icons","arrow-in.png"); +var defaultNodeIcon = path.join(editorClientDir,"public","red","images","icons","arrow-in.svg"); var editorTemplatePath = path.join(editorClientDir,"templates","index.mst"); var editorTemplate; diff --git a/packages/node_modules/@node-red/editor-api/package.json b/packages/node_modules/@node-red/editor-api/package.json index 9a80f824a..e4b3b1f69 100644 --- a/packages/node_modules/@node-red/editor-api/package.json +++ b/packages/node_modules/@node-red/editor-api/package.json @@ -1,6 +1,6 @@ { "name": "@node-red/editor-api", - "version": "0.21.0-alpha.0", + "version": "1.0.0-beta.2", "license": "Apache-2.0", "main": "./lib/index.js", "repository": { @@ -16,16 +16,16 @@ } ], "dependencies": { - "@node-red/util": "0.21.0-alpha.0", - "@node-red/editor-client": "0.21.0-alpha.0", + "@node-red/util": "1.0.0-beta.2", + "@node-red/editor-client": "1.0.0-beta.2", "bcryptjs": "2.4.3", "body-parser": "1.19.0", "clone": "2.1.2", "cors": "2.8.5", - "express-session": "1.16.1", - "express": "4.16.4", + "express-session": "1.16.2", + "express": "4.17.1", "memorystore": "1.6.1", - "mime": "2.4.2", + "mime": "2.4.4", "mustache": "3.0.1", "oauth2orize": "1.11.0", "passport-http-bearer": "1.0.1", @@ -35,6 +35,6 @@ "ws": "6.2.1" }, "optionalDependencies": { - "bcrypt": "3.0.5" + "bcrypt": "3.0.6" } } diff --git a/packages/node_modules/@node-red/editor-client/locales/de/editor.json b/packages/node_modules/@node-red/editor-client/locales/de/editor.json index d052b5ef8..05ccfbed2 100755 --- a/packages/node_modules/@node-red/editor-client/locales/de/editor.json +++ b/packages/node_modules/@node-red/editor-client/locales/de/editor.json @@ -48,9 +48,9 @@ }, "settings" : "Einstellungen", "userSettings" : "Benutzereinstellungen", - "nodes" : "Knoten", - "displayStatus" : "Knotenstatus anzeigen", - "displayConfig" : "Konfigurationsknoten", + "nodes" : "Nodes", + "displayStatus" : "Nodestatus anzeigen", + "displayConfig" : "Konfigurations-Node", "import" : "Import", "export" : "Exportieren", "search" : "Flows durchsuchen", @@ -84,17 +84,17 @@ "notAuthorized" : "Keine Berechtigung", "errors" : { "settings" : "Sie müssen angemeldet sein, um auf die Einstellungen zuzugreifen.", - "deploy" : "Sie müssen angemeldet sein, um Änderungen implementieren zu können.", + "deploy" : "Sie müssen angemeldet sein, um Änderungen anwenden zu können.", "notAuthorized" : "Sie müssen angemeldet sein, um diese Aktion ausführen zu können." } }, "notification" : { "warning" : " Warnung : __message__", "warnings" : { - "undeployedChanges" : "Knoten hat nicht implementierte Änderungen", - "nodeActionDisabled" : "In Subflow inaktivierte Knotenaktionen", - "missing-types" : "
Die Flows wurden aufgrund fehlender Knotentypen gestoppt.
", - "restartRequired" : "Knoten-RED muss erneut gestartet werden, damit aufgerüstete Module aktiviert werden können", + "undeployedChanges" : "Node hat nicht implementierte Änderungen", + "nodeActionDisabled" : "In Subflow inaktivierte Nodeaktionen", + "missing-types" : "Die Flows wurden aufgrund fehlender Nodetypen gestoppt.
", + "restartRequired" : "Node-RED muss erneut gestartet werden, damit aufgerüstete Module aktiviert werden können", "credentials_load_failed" : "Die Flows wurden gestoppt, da die Berechtigungsnachweise nicht entschlüsselt werden konnten.
Die Datei mit dem Datenflowberechtigungsnachweis ist verschlüsselt, aber der Verschlüsselungsschlüssel des Projekts fehlt oder ist ungültig.
", "credentials_load_failed_reset" : "Die Berechtigungsnachweise konnten nicht entschlüsselt werden
Die Datei mit dem Flow-Berechtigungsnachweis ist verschlüsselt, aber der Chiffrierschlüssel des Projekts fehlt oder ist ungültig.
Die Datei des Flow-Berechtigungsnachweises wird bei der nächsten Implementierung zurückgesetzt. Alle vorhandenen Datenflowberechtigungsnachweise werden gelöscht.
", "missing_flow_file" : "Die Projektflowdatei wurde nicht gefunden.
Das Projekt ist nicht mit einer Flow-Datei konfiguriert.
", @@ -134,18 +134,18 @@ }, "clipboard" : { "clipboard" : "Zwischenablage", - "nodes" : "Knoten", - "pasteNodes" : "Knoten hier einfügen", - "importNodes" : "Knoten importieren", - "exportNodes" : "Knoten in Zwischenablage exportieren", + "nodes" : "Nodes", + "pasteNodes" : "Nodes hier einfügen", + "importNodes" : "Nodes importieren", + "exportNodes" : "Nodes in Zwischenablage exportieren", "importUnrecognised" : "Importierter Typ nicht erkannt:", "importUnrecognised_plural" : "Importierte Typen nicht erkannt:", - "nodesExported" : "Knoten, die in die Zwischenablage exportiert wurden", - "nodeCopied" : "__count__ Knoten kopiert", - "nodeCopied_plural" : "__count__ Knoten kopiert", + "nodesExported" : "Nodes, die in die Zwischenablage exportiert wurden", + "nodeCopied" : "__count__ Node kopiert", + "nodeCopied_plural" : "__count__ Nodes kopiert", "invalidFlow" : "Ungültiger Nachrichtenflow: __message__", "export" : { - "selected" : "Ausgewählte Knoten", + "selected" : "Ausgewählte Nodes", "current" : "Aktueller Flow", "all" : "alle Flows", "compact" : "kompakt", @@ -161,16 +161,16 @@ "copyMessageValue_truncated" : "Abgeschnittene Wert kopiert" }, "deploy" : { - "deploy" : "Implementieren", + "deploy" : "deploy", "full" : "Voll", "fullDesc" : "Implementiert alles im Arbeitsbereich", "modifiedFlows" : "Geänderte Flows", - "modifiedFlowsDesc" : "Implementiert nur Flows, die geänderte Knoten enthalten.", - "modifiedNodes" : "Geänderte Knoten", - "modifiedNodesDesc" : "Implementiert nur Knoten, die sich geändert haben.", + "modifiedFlowsDesc" : "Implementiert nur Flows, die geänderte Nodes enthalten.", + "modifiedNodes" : "Geänderte Nodes", + "modifiedNodesDesc" : "Implementiert nur Nodes, die sich geändert haben.", "successfulDeploy" : "Erfolgreich implementiert", - "deployFailed" : "Implementieren fehlgeschlagen: __message__", - "unusedConfigNodes" : "Sie haben einige nicht verwendete Konfigurationsknoten.", + "deployFailed" : "Deploy fehlgeschlagen: __message__", + "unusedConfigNodes" : "Sie haben einige nicht verwendete Konfigurations-Nodes.", "unusedConfigNodesLink" : "Klicken Sie hier, um sie zu sehen", "errors" : { "noResponse" : "Keine Antwort vom Server" @@ -178,16 +178,16 @@ "confirm" : { "button" : { "ignore" : "Ignorieren", - "confirm" : "Implementieren bestätigen", + "confirm" : "Deploy bestätigen", "review" : "Änderungen prüfen", "cancel" : "Abbrechen", "merge" : "Zusammenführen", - "overwrite" : "Ignorieren & implementieren" + "overwrite" : "Ignorieren & deployen" }, "undeployedChanges" : "Sie haben nicht implementierte Änderungen.\n\nWenn Sie diese Seite verlassen, gehen diese Änderungen verloren.", - "improperlyConfigured" : "Der Arbeitsbereich enthält einige Knoten, die nicht ordnungsgemäß konfiguriert sind:", - "unknown" : "Der Arbeitsbereich enthält einige unbekannte Knotentypen:", - "confirm" : "Sind Sie sicher, dass Sie implementieren möchten?", + "improperlyConfigured" : "Der Arbeitsbereich enthält einige Nodes, die nicht ordnungsgemäß konfiguriert sind:", + "unknown" : "Der Arbeitsbereich enthält einige unbekannte Node-Typen:", + "confirm" : "Sind Sie sicher, dass Sie deployen möchten?", "doNotWarn" : "warnen Sie nicht noch einmal.", "conflict" : "Auf dem Server wird eine aktuellere Gruppe von Datenflüssen ausgeführt.", "backgroundUpdate" : "Die Datenflüsse auf dem Server wurden aktualisiert.", @@ -200,7 +200,7 @@ "diff" : { "unresolvedCount" : "__count__ unaufgelöster Konflikt", "unresolvedCount_plural" : "__count__ unaufgelöste Konflikte", - "globalNodes" : "Globale Knoten", + "globalNodes" : "Globale Nodes", "flowProperties" : "Flow-Eigenschaften", "type" : { "added" : "hinzugefügt", @@ -212,8 +212,8 @@ "movedTo" : "verschoben zu __id__", "movedFrom" : "verschoben von __id__" }, - "nodeCount" : "__count__, Knoten", - "nodeCount_plural" : "__count__-Knoten", + "nodeCount" : "__count__, Node", + "nodeCount_plural" : "__count__-Nodes", "local" : "Lokale Änderungen", "remote" : "Ferne Änderungen", "reviewChanges" : "Änderungen prüfen", @@ -239,7 +239,7 @@ "category" : "Kategorie", "format" : "Markdown-Format", "errors" : { - "noNodesSelected" : " Subflow kann nicht erstellt werden : Es wurden keine Knoten ausgewählt.", + "noNodesSelected" : " Subflow kann nicht erstellt werden : Es wurden keine Nodes ausgewählt.", "multipleInputsToSelection" : " Subflow kann nicht erstellt werden : Mehrere Eingaben zur Auswahl" } }, @@ -249,13 +249,13 @@ "configUpdate" : "Aktualisieren", "configDelete" : "Löschen", "nodesUse" : "__count__node verwendet diese Konfiguration", - "nodesUse_plural" : "__count__ -Knoten verwenden diese Konfiguration", - "addNewConfig" : "Neuen __type__config-Knoten hinzufügen", - "editNode" : "__type__ Knoten bearbeiten", - "editConfig" : "__type__config-Knoten bearbeiten", + "nodesUse_plural" : "__count__ -Nodes verwenden diese Konfiguration", + "addNewConfig" : "Neuen __type__config-Node hinzufügen", + "editNode" : "__type__ Node bearbeiten", + "editConfig" : "__type__config-Node bearbeiten", "addNewType" : "Neuen __type__ hinzufügen ...", - "nodeProperties" : "Knoteneigenschaften", - "portLabels" : "Knoteneinstellungen", + "nodeProperties" : "Node-Eigenschaften", + "portLabels" : "Node-Einstellungen", "labelInputs" : "Eingänge", "labelOutputs" : "Ausgänge", "settingIcon" : "Symbol", @@ -264,7 +264,7 @@ "searchIcons" : "Suchsymbole", "useDefault" : "Standardwert verwenden", "errors" : { - "scopeChange" : "Wenn Sie den Geltungsbereich ändern, wird er für Knoten in anderen Nachrichtenflüssen, die ihn verwenden, nicht verfügbar sein." + "scopeChange" : "Wenn Sie den Geltungsbereich ändern, wird er für Nodes in anderen Nachrichtenflüssen, die ihn verwenden, nicht verfügbar sein." } }, "keyboard" : { @@ -276,19 +276,19 @@ "unassigned" : "Nicht zugeordnet", "global" : "global", "workspace" : "Arbeitsbereich", - "selectAll" : "Alle Knoten auswählen", - "selectAllConnected" : "Alle verbundenen Knoten auswählen", - "addRemoveNode" : "Knoten aus Auswahl hinzufügen/entfernen", - "editSelected" : "Ausgewählten Knoten bearbeiten", - "deleteSelected" : "Ausgewählte Knoten oder ausgewählten Link löschen", - "importNode" : "Knoten importieren", - "exportNode" : "Knoten exportieren", - "nudgeNode" : "Ausgewählte Knoten verschieben (1px)", - "moveNode" : "Ausgewählte Knoten verschieben (20px)", + "selectAll" : "Alle Nodes auswählen", + "selectAllConnected" : "Alle verbundenen Nodes auswählen", + "addRemoveNode" : "Node aus Auswahl hinzufügen/entfernen", + "editSelected" : "Ausgewählten Node bearbeiten", + "deleteSelected" : "Ausgewählte Node oder ausgewählten Link löschen", + "importNode" : "Node importieren", + "exportNode" : "Node exportieren", + "nudgeNode" : "Ausgewählte Nodes verschieben (1px)", + "moveNode" : "Ausgewählte Nodes verschieben (20px)", "toggleSidebar" : "Seitenleiste ein-/ausschalten", - "copyNode" : "Ausgewählte Knoten kopieren", - "cutNode" : "Ausgewählte Knoten ausschneiden", - "pasteNode" : "Knoten einfügen", + "copyNode" : "Ausgewählte Nodes kopieren", + "cutNode" : "Ausgewählte Nodes ausschneiden", + "pasteNode" : "Node einfügen", "undoChange" : "Letzte Änderung rückgängig machen", "searchBox" : "Suchfeld öffnen", "managePalette" : "Palette verwalten" @@ -301,7 +301,7 @@ "unnamedType" : "Unbenannt __type__", "dialogSaveOverwrite" : "Ein __libraryType__ mit dem Namen __libraryName__ ist bereits vorhanden. Überschreiben?", "invalidFilename" : "Ungültiger Dateiname", - "savedNodes" : "Gespeicherte Knoten", + "savedNodes" : "Gespeicherte Nodes", "savedType" : "Gespeichert __type__", "saveFailed" : "Speichern fehlgeschlagen: __message__", "types": { @@ -310,11 +310,11 @@ }, "palette" : { "noInfo" : "Keine Informationen verfügbar", - "filter" : "Filterknoten", + "filter" : "Filter Nodes", "search" : "Suchmodule", "addCategory" : "Neu hinzufügen ...", "label" : { - "subflows" : "untergeordnete Nachrichtenflüsse", + "subflows" : "Subflows", "input" : "Eingabe", "output" : "Ausgabe", "function" : "Funktion", @@ -324,15 +324,15 @@ "advanced" : "fortgeschritten" }, "event" : { - "nodeAdded" : "Knoten zur Palette hinzugefügt:", - "nodeAdded_plural" : "Die Palette wurde der Palette hinzugefügt.", - "nodeRemoved" : "Knoten aus Palette entfernt:", - "nodeRemoved_plural" : "Knoten aus Palette entfernt:", - "nodeEnabled" : "Knoten aktiviert:", - "nodeEnabled_plural" : "Knoten aktiviert:", - "nodeDisabled" : "Knoten inaktiviert:", - "nodeDisabled_plural" : "Knoten inaktiviert:", - "nodeUpgraded" : "Knotenmodul __module__ aktualisiert auf Version __version__" + "nodeAdded" : "Node zur Palette hinzugefügt:", + "nodeAdded_plural" : "Die Nodes wurde der Palette hinzugefügt.", + "nodeRemoved" : "Node aus Palette entfernt:", + "nodeRemoved_plural" : "Nodes aus Palette entfernt:", + "nodeEnabled" : "Node aktiviert:", + "nodeEnabled_plural" : "Nodes aktiviert:", + "nodeDisabled" : "Node inaktiviert:", + "nodeDisabled_plural" : "Nodes inaktiviert:", + "nodeUpgraded" : "Node-Modul __module__ aktualisiert auf Version __version__" }, "editor" : { "title" : "Palette verwalten", @@ -356,8 +356,8 @@ "yearsMonthsV" : "____ Jahre, __count__ Monat vor", "yearsMonthsV_plural" : "____ Jahre, __count__ Monaten" }, - "nodeCount" : "__label__, Knoten", - "nodeCount_plural" : "__label__ Knoten", + "nodeCount" : "__label__, Node", + "nodeCount_plural" : "__label__ Nodes", "moduleCount" : "__count__ Modul verfügbar", "moduleCount_plural" : "__count__-Module verfügbar", "inuse" : "im Gebrauch", @@ -371,14 +371,14 @@ "install" : "installieren", "installed" : "installiert", "loading" : "Kataloge werden geladen ...", - "tab-nodes" : "Knoten", + "tab-nodes" : "Nodes", "tab-install" : "installieren", "sort" : "Sortierung:", "sortAZ" : "a-z", "sortRecent" : "kürzlich", "more" : "+ __count__ mehr", "errors" : { - "catalogLoadFailed" : "Fehler beim Laden des Knotenkatalogs.
Weitere Informationen finden Sie in der Browserkonsole.
", + "catalogLoadFailed" : "Fehler beim Laden des Node-Katalogs.
Weitere Informationen finden Sie in der Browserkonsole.
", "installFailed" : "Installation fehlgeschlagen: __module__
__message__
Überprüfen Sie das Protokoll auf weitere Informationen.
", "removeFailed" : "Entfernen fehlgeschlagen: __module__
__message__
Überprüfen Sie das Protokoll auf weitere Informationen.
", "updateFailed" : "Aktualisierung fehlgeschlagen: __module__
__message__
Überprüfen Sie das Protokoll auf weitere Informationen.
", @@ -387,22 +387,22 @@ }, "confirm" : { "install" : { - "body" : "Installieren von '__module__'
Vor der Installation von lesen Sie bitte die Dokumentation des Knotens. Einige Knoten haben Abhängigkeiten, die nicht automatisch aufgelöst werden können und einen Neustart von 'Node-RED' erfordern.
", - "title" : "Knoten installieren" + "body" : "Installieren von '__module__'
Vor der Installation von lesen Sie bitte die Dokumentation des Nodes. Einige Nodes haben Abhängigkeiten, die nicht automatisch aufgelöst werden können und einen Neustart von 'Node-RED' erfordern.
", + "title" : "Nodes installieren" }, "remove" : { - "body" : "Entfernen von '__module__'
-Der Knoten deinstalliert ihn aus Node-RED. Der Knoten kann weiterhin Ressourcen verwenden, bis Node-RED erneut gestartet wird.
", - "title" : "Knoten entfernen" + "body" : "Entfernen von '__module__'
-Der Node deinstalliert ihn aus Node-RED. Der Node kann weiterhin Ressourcen verwenden, bis Node-RED erneut gestartet wird.
", + "title" : "Nodes entfernen" }, "update" : { - "body" : "Aktualisieren von '__module__'
Für die Aktualisierung des Knotens ist ein Neustart von 'Node-RED' erforderlich, damit die Aktualisierung abgeschlossen werden kann. Dies muss manuell geschehen.
", - "title" : "Knoten aktualisieren" + "body" : "Aktualisieren von '__module__'
Für die Aktualisierung des Nodes ist ein Neustart von 'Node-RED' erforderlich, damit die Aktualisierung abgeschlossen werden kann. Dies muss manuell geschehen.
", + "title" : "Nodes aktualisieren" }, "cannotUpdate" : { - "body" : "Es ist eine Aktualisierung für diesen Knoten verfügbar, aber sie ist nicht an einer Position installiert, die vom Palettenmanager aktualisiert werden kann.Der Puffertyp wird als JSON-Array mit Bytewerten gespeichert. Der Editor versucht, den eingegebenen Wert als JSON-Array zu parsen. Wenn es sich nicht um ein gültiges JSON handelt, wird es als UTF-8-Zeichenfolge behandelt und in ein Array der einzelnen Zeichencodepunkte konvertiert.
Beispiel: Der Wert Hello World
wird in das JSON-Array konvertiert:
[ 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]" + "modeDesc" : "
Der Buffertyp wird als JSON-Array mit Bytewerten gespeichert. Der Editor versucht, den eingegebenen Wert als JSON-Array zu parsen. Wenn es sich nicht um ein gültiges JSON handelt, wird es als UTF-8-Zeichenfolge behandelt und in ein Array der einzelnen Zeichencodepunkte konvertiert.
Beispiel: Der Wert Hello World
wird in das JSON-Array konvertiert:
[ 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]" }, "projects" : { "config-git" : "Git-Client konfigurieren", diff --git a/packages/node_modules/@node-red/editor-client/locales/de/infotips.json b/packages/node_modules/@node-red/editor-client/locales/de/infotips.json index 59f796055..4cec02f31 100755 --- a/packages/node_modules/@node-red/editor-client/locales/de/infotips.json +++ b/packages/node_modules/@node-red/editor-client/locales/de/infotips.json @@ -1,23 +1,23 @@ { "info" : { - "tip0" : "Sie können die ausgewählten Knoten oder Verbindungen mit {{ core:delete-selection }} entfernen.", - "tip1" : "Suche nach Knoten mit {{ core:search }}", + "tip0" : "Sie können die ausgewählten Nodes oder Verbindungen mit {{ core:delete-selection }} entfernen.", + "tip1" : "Suche nach Nodes mit {{ core:search }}", "tip2" : "{{ core:toggle-sidebar }} schaltet die Ansicht dieser Seitenleiste ein.", - "tip3" : "Sie können Ihre Palette von Knoten mit {{ core:manage-palette }} verwalten.", - "tip4" : "Ihre Flow-Konfigurationsknoten werden in der Seitenleiste angezeigt. Es kann über das Menü oder mit {{ core:show-config-tab }} aufgerufen werden.", + "tip3" : "Sie können Ihre Palette von Nodes mit {{ core:manage-palette }} verwalten.", + "tip4" : "Ihre Flow-Konfigurations-Nodes werden in der Seitenleiste angezeigt. Es kann über das Menü oder mit {{ core:show-config-tab }} aufgerufen werden.", "tip5" : "Aktiviert oder inaktiviert diese Tipps von der Option in den Einstellungen", - "tip6" : "Verschieben Sie die ausgewählten Knoten mit Hilfe der [left] [up] [down] und [right] Tasten. Halten Sie [Shift] gedrückt, um das Fenster weiter zu schieben", - "tip7" : "Wenn Sie einen Knoten auf eine Verbindung ziehen, wird er in die Verbindung eingefügt.", - "tip8" : "Die ausgewählten Knoten exportieren oder die aktuelle Registerkarte mit {{ core:show-export-dialog }}", + "tip6" : "Verschieben Sie die ausgewählten Nodes mit Hilfe der [left] [up] [down] und [right] Tasten. Halten Sie [Shift] gedrückt, um das Fenster weiter zu schieben", + "tip7" : "Wenn Sie einen Node auf eine Verbindung ziehen, wird er in die Verbindung eingefügt.", + "tip8" : "Die ausgewählten Nodes exportieren oder die aktuelle Registerkarte mit {{ core:show-export-dialog }}", "tip9" : "Importieren Sie einen Flow, indem Sie sein JSON in den Editor ziehen oder mit {{ core:show-import-dialog }}.", - "tip10" : "[Umschalt] [Klicken] und ziehen Sie auf einen Knotenanschluss, um alle angeschlossenen Verbindungen oder nur die ausgewählte zu verschieben.", + "tip10" : "[Umschalt] [Klicken] und ziehen Sie auf einen Node-Anschluss, um alle angeschlossenen Verbindungen oder nur die ausgewählte zu verschieben.", "tip11" : "Die Registerkarte \"Info\" mit {{ core:show-info-tab }} oder der Registerkarte \"Debug\" mit {{ core:show-debug-tab }} anzeigen", "tip12" : "[ctrl] [Klicken] in den Arbeitsbereich, um den Schnellhinzufügedialog zu öffnen.", - "tip13" : "Halten Sie [ctrl] gedrückt, wenn Sie auf einem Knotenanschluss klicken, um eine Schnellverbindung zu aktivieren.", - "tip14" : "Halten Sie [Umschalt] gedrückt, wenn Sie auf einen Knoten klicken, um auch alle verbundenen Knoten auszuwählen.", - "tip15" : "Halten Sie [ctrl] gedrückt, wenn Sie auf einen Knoten klicken, um ihn aus der aktuellen Auswahl hinzuzufügen oder zu entfernen.", + "tip13" : "Halten Sie [ctrl] gedrückt, wenn Sie auf einem Node-Anschluss klicken, um eine Schnellverbindung zu aktivieren.", + "tip14" : "Halten Sie [Umschalt] gedrückt, wenn Sie auf einen Node klicken, um auch alle verbundenen Nodes auszuwählen.", + "tip15" : "Halten Sie [ctrl] gedrückt, wenn Sie auf einen Node klicken, um ihn aus der aktuellen Auswahl hinzuzufügen oder zu entfernen.", "tip16" : "Indexzungen wechseln mit {{ core:show-previous-tab }} und {{ core:show-next-tab }}", - "tip17" : "Sie können die Änderungen im Editierrahmen des Knotens mit {{ core:confirm-edit-tray }} bestätigen oder sie mit {{ core:cancel-edit-tray }} abbrechen.", - "tip18" : "Durch Drücken von {{ core:edit-selected-node }} wird der erste Knoten in der aktuellen Auswahl bearbeitet." + "tip17" : "Sie können die Änderungen im Editierrahmen des Nodes mit {{ core:confirm-edit-tray }} bestätigen oder sie mit {{ core:cancel-edit-tray }} abbrechen.", + "tip18" : "Durch Drücken von {{ core:edit-selected-node }} wird der erste Node in der aktuellen Auswahl bearbeitet." } } \ No newline at end of file diff --git a/packages/node_modules/@node-red/editor-client/locales/de/jsonata.json b/packages/node_modules/@node-red/editor-client/locales/de/jsonata.json index a7cf12715..7859ca844 100755 --- a/packages/node_modules/@node-red/editor-client/locales/de/jsonata.json +++ b/packages/node_modules/@node-red/editor-client/locales/de/jsonata.json @@ -53,7 +53,7 @@ }, "$now" : { "args" : "", - "desc" : "Generiert eine Zeitmarke im ISO-8601-kompatiblen Format und gibt sie als Zeichenfolge zurück." + "desc" : "Generiert einen Zeitstempel im ISO-8601-kompatiblen Format und gibt sie als Zeichenfolge zurück." }, "$base64encode" : { "args" : "Zeichenfolge", @@ -201,7 +201,7 @@ }, "$fromMillis" : { "args" : "Anzahl", - "desc" : "Konvertieren Sie eine Zahl, die Millisekunden seit der Unix-Epoche (1. Januar 1970 (UTC)) in eine Zeitmarkenzeichenfolge im ISO 8601-Format darstellt." + "desc" : "Konvertieren Sie eine Zahl, die Millisekunden seit der Unix-Epoche (1. Januar 1970 (UTC)) enthält in eine Zeitangabe im ISO 8601-Format." }, "$formatNumber" : { "args" : "Zahl, Bild [, Optionen]", @@ -212,8 +212,8 @@ "desc" : "Transformiere die `Zahl` in eine Zeichenfolge und formatiert sie in eine ganze Zahl, die in der durch das `radix` -Argument angegebenen Zahlenbasis dargestellt wird. Wenn 'radix' nicht angegeben wird, wird standardmäßig die Basis 10 verwendet. 'radix` kann zwischen 2 und 36 liegen, andernfalls wird ein Fehler ausgelöst." }, "$toMillis" : { - "args" : "Zeitmarke", - "desc" : "Konvertieren Sie eine Zeichenfolge `Zeitmarke' im ISO 8601-Format in die Anzahl der Millisekunden seit der Unix-Epoche (1. Januar 1970 (UTC)) als Zahl. Es wird ein Fehler ausgelöst, wenn die Zeichenfolge nicht das richtige Format hat." + "args" : "timestamp", + "desc" : "Konvertieren Sie eine Zeitangabe im ISO 8601-Format in die Anzahl der Millisekunden seit der Unix-Epoche (1. Januar 1970 (UTC)) als Zahl. Es wird ein Fehler ausgelöst, wenn die Zeichenfolge nicht das richtige Format hat." }, "$env" : { "args" : "arg", diff --git a/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json b/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json index 0b979f5d5..9a53a870c 100755 --- a/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json +++ b/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json @@ -28,7 +28,8 @@ "status": "Status", "enabled": "Enabled", "disabled":"Disabled", - "info": "Description" + "info": "Description", + "selectNodes": "Click nodes to select" }, "menu": { "label": { @@ -350,7 +351,8 @@ "pasteNode": "Paste nodes", "undoChange": "Undo the last change performed", "searchBox": "Open search box", - "managePalette": "Manage palette" + "managePalette": "Manage palette", + "actionList":"Action list" }, "library": { "library": "Library", @@ -364,6 +366,7 @@ "savedNodes": "Saved nodes", "savedType": "Saved __type__", "saveFailed": "Save failed: __message__", + "newFolder": "New folder", "types": { "local": "Local", "examples": "Examples" @@ -528,7 +531,10 @@ "node": "Node", "flow": "Flow", "global": "Global", - "deleteConfirm": "Are you sure you want to delete this item?" + "deleteConfirm": "Are you sure you want to delete this item?", + "autoRefresh": "Auto-refresh", + "refrsh": "Refresh", + "delete": "Delete" }, "palette": { "name": "Palette management", @@ -729,9 +735,21 @@ "jsEditor": { "title": "JavaScript editor" }, + "textEditor": { + "title": "Text editor" + }, "jsonEditor": { "title": "JSON editor", - "format": "format JSON" + "format": "format JSON", + "rawMode": "Edit JSON", + "uiMode": "Visual editor", + "insertAbove": "Insert above", + "insertBelow": "Insert below", + "addItem": "Add item", + "copyPath": "Copy path to item", + "expandItems": "Expand items", + "collapseItems": "Collapse items", + "duplicate": "Duplicate" }, "markdownEditor": { "title": "Markdown editor", @@ -924,5 +942,12 @@ "description": "Description", "appearance": "Appearance", "env": "Environment Variables" + }, + "languages" : { + "de": "German", + "en-US": "English", + "ja": "Japanese", + "ko": "Korean", + "zh-CN": "Chinese(Simplified)" } } diff --git a/packages/node_modules/@node-red/editor-client/locales/ja/editor.json b/packages/node_modules/@node-red/editor-client/locales/ja/editor.json index 83a00a06e..770c75589 100755 --- a/packages/node_modules/@node-red/editor-client/locales/ja/editor.json +++ b/packages/node_modules/@node-red/editor-client/locales/ja/editor.json @@ -28,7 +28,8 @@ "status": "状態", "enabled": "有効", "disabled": "無効", - "info": "詳細" + "info": "詳細", + "selectNodes": "ノードをクリックして選択" }, "menu": { "label": { @@ -42,7 +43,9 @@ "defaultDir": "標準", "ltr": "左から右", "rtl": "右から左", - "auto": "文脈" + "auto": "文脈", + "language": "表示言語", + "browserDefault": "ブラウザのデフォルト" }, "sidebar": { "show": "サイドバーを表示" @@ -179,7 +182,11 @@ "all": "全てのタブ", "compact": "インデントのないJSONフォーマット", "formatted": "インデント付きのJSONフォーマット", - "copy": "書き出し" + "copy": "書き出し", + "export": "ライブラリに書き出し", + "exportAs": "書き出し先", + "overwrite": "更新", + "exists": "
\"__file__\"は既に存在します。
更新しますか?
" }, "import": { "import": "読み込み先", @@ -315,7 +322,8 @@ "show": "表示", "hide": "非表示", "errors": { - "scopeChange": "スコープの変更は、他のフローで使われているノードを無効にします" + "scopeChange": "スコープの変更は、他のフローで使われているノードを無効にします", + "invalidProperties": "プロパティが不正です:" } }, "keyboard": { @@ -351,12 +359,15 @@ "saveToLibrary": "ライブラリへ保存", "typeLibrary": "__type__ ライブラリ", "unnamedType": "名前なし __type__", + "exportedToLibrary": "ライブラリにノードを書き出しました", "dialogSaveOverwrite": "__libraryName__ という __libraryType__ は既に存在しています 上書きしますか?", "invalidFilename": "不正なファイル名", "savedNodes": "フローを保存しました", "savedType": "__type__ を保存しました", "saveFailed": "保存に失敗しました: __message__", + "newFolder": "新規フォルダ", "types": { + "local": "ローカル", "examples": "サンプル" } }, @@ -519,7 +530,8 @@ "node": "Node", "flow": "Flow", "global": "Global", - "deleteConfirm": "データを削除しても良いですか?" + "deleteConfirm": "データを削除しても良いですか?", + "autoRefresh": "自動更新" }, "palette": { "name": "パレットの管理", @@ -719,6 +731,9 @@ "jsEditor": { "title": "JavaScriptエディタ" }, + "textEditor": { + "title": "テキストエディタ" + }, "jsonEditor": { "title": "JSONエディタ", "format": "JSONフォーマット" @@ -914,5 +929,12 @@ "description": "説明", "appearance": "外観", "env": "環境変数" + }, + "languages" : { + "de": "ドイツ語", + "en-US": "英語", + "ja": "日本語", + "ko": "韓国語", + "zh-CN": "中国語(簡体)" } } diff --git a/packages/node_modules/@node-red/editor-client/package.json b/packages/node_modules/@node-red/editor-client/package.json index 86c05ea6e..162b73c75 100644 --- a/packages/node_modules/@node-red/editor-client/package.json +++ b/packages/node_modules/@node-red/editor-client/package.json @@ -1,6 +1,6 @@ { "name": "@node-red/editor-client", - "version": "0.21.0-alpha.0", + "version": "1.0.0-beta.2", "license": "Apache-2.0", "repository": { "type": "git", diff --git a/packages/node_modules/@node-red/editor-client/src/images/deploy-flows-o.png b/packages/node_modules/@node-red/editor-client/src/images/deploy-flows-o.png deleted file mode 100644 index a2f5373e2..000000000 Binary files a/packages/node_modules/@node-red/editor-client/src/images/deploy-flows-o.png and /dev/null differ diff --git a/packages/node_modules/@node-red/editor-client/src/images/deploy-flows-o.svg b/packages/node_modules/@node-red/editor-client/src/images/deploy-flows-o.svg new file mode 100644 index 000000000..c4511ba87 --- /dev/null +++ b/packages/node_modules/@node-red/editor-client/src/images/deploy-flows-o.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/node_modules/@node-red/editor-client/src/images/deploy-flows.png b/packages/node_modules/@node-red/editor-client/src/images/deploy-flows.png deleted file mode 100644 index e83638234..000000000 Binary files a/packages/node_modules/@node-red/editor-client/src/images/deploy-flows.png and /dev/null differ diff --git a/packages/node_modules/@node-red/editor-client/src/images/deploy-flows.svg b/packages/node_modules/@node-red/editor-client/src/images/deploy-flows.svg new file mode 100644 index 000000000..0b0069272 --- /dev/null +++ b/packages/node_modules/@node-red/editor-client/src/images/deploy-flows.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/node_modules/@node-red/editor-client/src/images/deploy-full-o.png b/packages/node_modules/@node-red/editor-client/src/images/deploy-full-o.png deleted file mode 100644 index b5f3a9870..000000000 Binary files a/packages/node_modules/@node-red/editor-client/src/images/deploy-full-o.png and /dev/null differ diff --git a/packages/node_modules/@node-red/editor-client/src/images/deploy-full-o.svg b/packages/node_modules/@node-red/editor-client/src/images/deploy-full-o.svg new file mode 100644 index 000000000..fc3221f1c --- /dev/null +++ b/packages/node_modules/@node-red/editor-client/src/images/deploy-full-o.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/node_modules/@node-red/editor-client/src/images/deploy-full.png b/packages/node_modules/@node-red/editor-client/src/images/deploy-full.png deleted file mode 100644 index 775374d17..000000000 Binary files a/packages/node_modules/@node-red/editor-client/src/images/deploy-full.png and /dev/null differ diff --git a/packages/node_modules/@node-red/editor-client/src/images/deploy-full.svg b/packages/node_modules/@node-red/editor-client/src/images/deploy-full.svg new file mode 100644 index 000000000..e4448e10f --- /dev/null +++ b/packages/node_modules/@node-red/editor-client/src/images/deploy-full.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/node_modules/@node-red/editor-client/src/images/deploy-nodes-o.png b/packages/node_modules/@node-red/editor-client/src/images/deploy-nodes-o.png deleted file mode 100644 index 3174716cc..000000000 Binary files a/packages/node_modules/@node-red/editor-client/src/images/deploy-nodes-o.png and /dev/null differ diff --git a/packages/node_modules/@node-red/editor-client/src/images/deploy-nodes-o.svg b/packages/node_modules/@node-red/editor-client/src/images/deploy-nodes-o.svg new file mode 100644 index 000000000..af540dd3d --- /dev/null +++ b/packages/node_modules/@node-red/editor-client/src/images/deploy-nodes-o.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/node_modules/@node-red/editor-client/src/images/deploy-nodes.png b/packages/node_modules/@node-red/editor-client/src/images/deploy-nodes.png deleted file mode 100644 index 4d982a9c8..000000000 Binary files a/packages/node_modules/@node-red/editor-client/src/images/deploy-nodes.png and /dev/null differ diff --git a/packages/node_modules/@node-red/editor-client/src/images/deploy-nodes.svg b/packages/node_modules/@node-red/editor-client/src/images/deploy-nodes.svg new file mode 100644 index 000000000..12d4c8972 --- /dev/null +++ b/packages/node_modules/@node-red/editor-client/src/images/deploy-nodes.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/node_modules/@node-red/editor-client/src/images/deploy-reload.png b/packages/node_modules/@node-red/editor-client/src/images/deploy-reload.png deleted file mode 100644 index 197fc610d..000000000 Binary files a/packages/node_modules/@node-red/editor-client/src/images/deploy-reload.png and /dev/null differ diff --git a/packages/node_modules/@node-red/editor-client/src/images/deploy-reload.svg b/packages/node_modules/@node-red/editor-client/src/images/deploy-reload.svg new file mode 100644 index 000000000..00f319014 --- /dev/null +++ b/packages/node_modules/@node-red/editor-client/src/images/deploy-reload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/node_modules/@node-red/editor-client/src/images/icons/arrow-in.png b/packages/node_modules/@node-red/editor-client/src/images/icons/arrow-in.png deleted file mode 100644 index e38f39146..000000000 Binary files a/packages/node_modules/@node-red/editor-client/src/images/icons/arrow-in.png and /dev/null differ diff --git a/packages/node_modules/@node-red/editor-client/src/images/icons/arrow-in.svg b/packages/node_modules/@node-red/editor-client/src/images/icons/arrow-in.svg new file mode 100644 index 000000000..a5fcb49af --- /dev/null +++ b/packages/node_modules/@node-red/editor-client/src/images/icons/arrow-in.svg @@ -0,0 +1 @@ + diff --git a/packages/node_modules/@node-red/editor-client/src/images/icons/node-changed.png b/packages/node_modules/@node-red/editor-client/src/images/icons/node-changed.png deleted file mode 100644 index 38a179444..000000000 Binary files a/packages/node_modules/@node-red/editor-client/src/images/icons/node-changed.png and /dev/null differ diff --git a/packages/node_modules/@node-red/editor-client/src/images/icons/node-error.png b/packages/node_modules/@node-red/editor-client/src/images/icons/node-error.png deleted file mode 100644 index c20c8e85a..000000000 Binary files a/packages/node_modules/@node-red/editor-client/src/images/icons/node-error.png and /dev/null differ diff --git a/packages/node_modules/@node-red/editor-client/src/images/node-red.png b/packages/node_modules/@node-red/editor-client/src/images/node-red.png deleted file mode 100644 index a60c26729..000000000 Binary files a/packages/node_modules/@node-red/editor-client/src/images/node-red.png and /dev/null differ diff --git a/packages/node_modules/@node-red/editor-client/src/images/node-red.svg b/packages/node_modules/@node-red/editor-client/src/images/node-red.svg new file mode 100644 index 000000000..c62b35866 --- /dev/null +++ b/packages/node_modules/@node-red/editor-client/src/images/node-red.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/node_modules/@node-red/editor-client/src/images/pw_maze_white.png b/packages/node_modules/@node-red/editor-client/src/images/pw_maze_white.png deleted file mode 100644 index 66464831c..000000000 Binary files a/packages/node_modules/@node-red/editor-client/src/images/pw_maze_white.png and /dev/null differ diff --git a/packages/node_modules/@node-red/editor-client/src/images/subflow_tab.png b/packages/node_modules/@node-red/editor-client/src/images/subflow_tab.png deleted file mode 100644 index 022777c4d..000000000 Binary files a/packages/node_modules/@node-red/editor-client/src/images/subflow_tab.png and /dev/null differ diff --git a/packages/node_modules/@node-red/editor-client/src/images/subflow_tab.svg b/packages/node_modules/@node-red/editor-client/src/images/subflow_tab.svg new file mode 100644 index 000000000..4acb241e4 --- /dev/null +++ b/packages/node_modules/@node-red/editor-client/src/images/subflow_tab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/node_modules/@node-red/editor-client/src/images/typedInput/09.png b/packages/node_modules/@node-red/editor-client/src/images/typedInput/09.png deleted file mode 100644 index 247371fe5..000000000 Binary files a/packages/node_modules/@node-red/editor-client/src/images/typedInput/09.png and /dev/null differ diff --git a/packages/node_modules/@node-red/editor-client/src/images/typedInput/09.svg b/packages/node_modules/@node-red/editor-client/src/images/typedInput/09.svg new file mode 100644 index 000000000..29c54b860 --- /dev/null +++ b/packages/node_modules/@node-red/editor-client/src/images/typedInput/09.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/node_modules/@node-red/editor-client/src/images/typedInput/az.png b/packages/node_modules/@node-red/editor-client/src/images/typedInput/az.png deleted file mode 100644 index 5f5d2404e..000000000 Binary files a/packages/node_modules/@node-red/editor-client/src/images/typedInput/az.png and /dev/null differ diff --git a/packages/node_modules/@node-red/editor-client/src/images/typedInput/az.svg b/packages/node_modules/@node-red/editor-client/src/images/typedInput/az.svg new file mode 100644 index 000000000..e0abbdc4a --- /dev/null +++ b/packages/node_modules/@node-red/editor-client/src/images/typedInput/az.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/node_modules/@node-red/editor-client/src/images/typedInput/bin.png b/packages/node_modules/@node-red/editor-client/src/images/typedInput/bin.png deleted file mode 100644 index 615c8dd4f..000000000 Binary files a/packages/node_modules/@node-red/editor-client/src/images/typedInput/bin.png and /dev/null differ diff --git a/packages/node_modules/@node-red/editor-client/src/images/typedInput/bin.svg b/packages/node_modules/@node-red/editor-client/src/images/typedInput/bin.svg new file mode 100644 index 000000000..0ef91aed8 --- /dev/null +++ b/packages/node_modules/@node-red/editor-client/src/images/typedInput/bin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/node_modules/@node-red/editor-client/src/images/typedInput/bool.png b/packages/node_modules/@node-red/editor-client/src/images/typedInput/bool.png deleted file mode 100644 index 9530983de..000000000 Binary files a/packages/node_modules/@node-red/editor-client/src/images/typedInput/bool.png and /dev/null differ diff --git a/packages/node_modules/@node-red/editor-client/src/images/typedInput/bool.svg b/packages/node_modules/@node-red/editor-client/src/images/typedInput/bool.svg new file mode 100644 index 000000000..e2e4297c7 --- /dev/null +++ b/packages/node_modules/@node-red/editor-client/src/images/typedInput/bool.svg @@ -0,0 +1 @@ + diff --git a/packages/node_modules/@node-red/editor-client/src/images/typedInput/env.png b/packages/node_modules/@node-red/editor-client/src/images/typedInput/env.png deleted file mode 100644 index 0ea51da00..000000000 Binary files a/packages/node_modules/@node-red/editor-client/src/images/typedInput/env.png and /dev/null differ diff --git a/packages/node_modules/@node-red/editor-client/src/images/typedInput/env.svg b/packages/node_modules/@node-red/editor-client/src/images/typedInput/env.svg new file mode 100644 index 000000000..bddd1c082 --- /dev/null +++ b/packages/node_modules/@node-red/editor-client/src/images/typedInput/env.svg @@ -0,0 +1 @@ + diff --git a/packages/node_modules/@node-red/editor-client/src/images/typedInput/expr.png b/packages/node_modules/@node-red/editor-client/src/images/typedInput/expr.png deleted file mode 100644 index 704105ce5..000000000 Binary files a/packages/node_modules/@node-red/editor-client/src/images/typedInput/expr.png and /dev/null differ diff --git a/packages/node_modules/@node-red/editor-client/src/images/typedInput/expr.svg b/packages/node_modules/@node-red/editor-client/src/images/typedInput/expr.svg new file mode 100644 index 000000000..c6357af50 --- /dev/null +++ b/packages/node_modules/@node-red/editor-client/src/images/typedInput/expr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/node_modules/@node-red/editor-client/src/images/typedInput/json.png b/packages/node_modules/@node-red/editor-client/src/images/typedInput/json.png deleted file mode 100644 index 57ac8761f..000000000 Binary files a/packages/node_modules/@node-red/editor-client/src/images/typedInput/json.png and /dev/null differ diff --git a/packages/node_modules/@node-red/editor-client/src/images/typedInput/json.svg b/packages/node_modules/@node-red/editor-client/src/images/typedInput/json.svg new file mode 100644 index 000000000..713fe7944 --- /dev/null +++ b/packages/node_modules/@node-red/editor-client/src/images/typedInput/json.svg @@ -0,0 +1 @@ + diff --git a/packages/node_modules/@node-red/editor-client/src/images/typedInput/re.png b/packages/node_modules/@node-red/editor-client/src/images/typedInput/re.png deleted file mode 100644 index 87deb02ae..000000000 Binary files a/packages/node_modules/@node-red/editor-client/src/images/typedInput/re.png and /dev/null differ diff --git a/packages/node_modules/@node-red/editor-client/src/images/typedInput/re.svg b/packages/node_modules/@node-red/editor-client/src/images/typedInput/re.svg new file mode 100644 index 000000000..c30cbff55 --- /dev/null +++ b/packages/node_modules/@node-red/editor-client/src/images/typedInput/re.svg @@ -0,0 +1 @@ + diff --git a/packages/node_modules/@node-red/editor-client/src/images/typedInput/target.svg b/packages/node_modules/@node-red/editor-client/src/images/typedInput/target.svg new file mode 100644 index 000000000..b98996701 --- /dev/null +++ b/packages/node_modules/@node-red/editor-client/src/images/typedInput/target.svg @@ -0,0 +1 @@ + diff --git a/packages/node_modules/@node-red/editor-client/src/js/history.js b/packages/node_modules/@node-red/editor-client/src/js/history.js index 2e256564c..930598dd5 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/history.js +++ b/packages/node_modules/@node-red/editor-client/src/js/history.js @@ -214,6 +214,10 @@ RED.history = (function() { ev.node[i] = ev.changes[i]; } } + if (ev.node.type === 'tab' && ev.changes.hasOwnProperty('disabled')) { + $("#red-ui-tab-"+(ev.node.id.replace(".","-"))).toggleClass('red-ui-workspace-disabled',!!ev.node.disabled); + $("#red-ui-workspace").toggleClass("red-ui-workspace-disabled",!!ev.node.disabled); + } if (ev.subflow) { if (ev.subflow.hasOwnProperty('inputCount')) { if (ev.node.in.length > ev.subflow.inputCount) { diff --git a/packages/node_modules/@node-red/editor-client/src/js/i18n.js b/packages/node_modules/@node-red/editor-client/src/js/i18n.js index 6efa12644..87afc3ebc 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/i18n.js +++ b/packages/node_modules/@node-red/editor-client/src/js/i18n.js @@ -51,7 +51,7 @@ RED.i18n = (function() { }, loadNodeCatalog: function(namespace,done) { - var languageList = i18n.functions.toLanguages(i18n.detectLanguage()); + var languageList = i18n.functions.toLanguages(localStorage.getItem("editor-language")||i18n.detectLanguage()); var toLoad = languageList.length; languageList.forEach(function(lang) { $.ajax({ @@ -73,7 +73,7 @@ RED.i18n = (function() { }, loadNodeCatalogs: function(done) { - var languageList = i18n.functions.toLanguages(i18n.detectLanguage()); + var languageList = i18n.functions.toLanguages(localStorage.getItem("editor-language")||i18n.detectLanguage()); var toLoad = languageList.length; languageList.forEach(function(lang) { diff --git a/packages/node_modules/@node-red/editor-client/src/js/keymap.json b/packages/node_modules/@node-red/editor-client/src/js/keymap.json index 3f232647d..ad3307ac7 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/keymap.json +++ b/packages/node_modules/@node-red/editor-client/src/js/keymap.json @@ -1,6 +1,6 @@ { "*": { - "ctrl-shift-p":"core:manage-palette", + "alt-shift-p":"core:manage-palette", "ctrl-f": "core:search", "ctrl-shift-f": "core:list-flows", "ctrl-=": "core:zoom-in", @@ -8,6 +8,7 @@ "ctrl-0": "core:zoom-reset", "ctrl-enter": "core:confirm-edit-tray", "ctrl-escape": "core:cancel-edit-tray", + "ctrl-d": "core:deploy-flows", "ctrl-g i": "core:show-info-tab", "ctrl-g d": "core:show-debug-tab", "ctrl-g c": "core:show-config-tab", @@ -17,11 +18,13 @@ "ctrl-space": "core:toggle-sidebar", "ctrl-p": "core:toggle-palette", "ctrl-,": "core:show-user-settings", + "ctrl-alt-l": "core:clear-debug-messages", "ctrl-alt-r": "core:show-remote-diff", "ctrl-alt-n": "core:new-project", "ctrl-alt-o": "core:open-project", "ctrl-g v": "core:show-version-control-tab", - "ctrl-shift-l": "core:show-event-log" + "ctrl-shift-l": "core:show-event-log", + "ctrl-shift-p":"core:show-action-list" }, "red-ui-sidebar-node-config": { "backspace": "core:delete-config-selection", diff --git a/packages/node_modules/@node-red/editor-client/src/js/nodes.js b/packages/node_modules/@node-red/editor-client/src/js/nodes.js index 4a1c6e9a0..63027aed1 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/nodes.js +++ b/packages/node_modules/@node-red/editor-client/src/js/nodes.js @@ -17,6 +17,8 @@ RED.nodes = (function() { var node_defs = {}; var nodes = []; + var nodeTabMap = {}; + var configNodes = {}; var links = []; var defaultWorkspace; @@ -213,6 +215,11 @@ RED.nodes = (function() { n.i = nextId+1; } nodes.push(n); + if (nodeTabMap[n.z]) { + nodeTabMap[n.z][n.id] = n; + } else { + console.warn("Node added to unknown tab/subflow:",n); + } } RED.events.emit('nodes:add',n); } @@ -246,6 +253,9 @@ RED.nodes = (function() { node = getNode(id); if (node) { nodes.splice(nodes.indexOf(node),1); + if (nodeTabMap[node.z]) { + delete nodeTabMap[node.z][node.id]; + } removedLinks = links.filter(function(l) { return (l.source === node) || (l.target === node); }); removedLinks.forEach(function(l) {links.splice(links.indexOf(l), 1); }); var updatedConfigNode = false; @@ -300,6 +310,8 @@ RED.nodes = (function() { function addWorkspace(ws,targetIndex) { workspaces[ws.id] = ws; + nodeTabMap[ws.id] = {}; + ws._def = RED.nodes.getType('tab'); if (targetIndex === undefined) { workspacesOrder.push(ws.id); @@ -312,6 +324,7 @@ RED.nodes = (function() { } function removeWorkspace(id) { delete workspaces[id]; + delete nodeTabMap[ws.id]; workspacesOrder.splice(workspacesOrder.indexOf(id),1); var removedNodes = []; @@ -357,12 +370,14 @@ RED.nodes = (function() { sf.name = subflowName; } subflows[sf.id] = sf; + nodeTabMap[sf.id] = {}; + RED.nodes.registerType("subflow:"+sf.id, { defaults:{ name:{value:""}, env:{value:[]} }, - icon: function() { return sf.icon||"subflow.png" }, + icon: function() { return sf.icon||"subflow.svg" }, category: sf.category || "subflows", inputs: sf.in.length, outputs: sf.out.length, @@ -393,6 +408,7 @@ RED.nodes = (function() { } function removeSubflow(sf) { delete subflows[sf.id]; + delete nodeTabMap[sf.id]; registry.removeNodeType("subflow:"+sf.id); } @@ -463,7 +479,9 @@ RED.nodes = (function() { node.id = n.id; node.type = n.type; node.z = n.z; - + if (n.d === true) { + node.d = true; + } if (node.type == "unknown") { for (var p in n._orig) { if (n._orig.hasOwnProperty(p)) { @@ -581,7 +599,7 @@ RED.nodes = (function() { node.outputLabels = n.outputLabels.slice(); } if (n.icon) { - if (n.icon !== "node-red/subflow.png") { + if (n.icon !== "node-red/subflow.svg") { node.icon = n.icon; } } @@ -967,6 +985,9 @@ RED.nodes = (function() { users:[], _config:{} }; + if (n.hasOwnProperty('d')) { + configNode.d = n.d; + } for (d in def.defaults) { if (def.defaults.hasOwnProperty(d)) { configNode[d] = n[d]; @@ -1016,6 +1037,9 @@ RED.nodes = (function() { if (n.hasOwnProperty('l')) { node.l = n.l; } + if (n.hasOwnProperty('d')) { + node.d = n.d; + } if (createNewIds) { if (subflow_blacklist[n.z]) { continue; @@ -1258,12 +1282,13 @@ RED.nodes = (function() { // TODO: supports filter.z|type function filterNodes(filter) { var result = []; + var searchSet = nodes; + if (filter.hasOwnProperty("z") && Object.hasOwnProperty("values") && nodeTabMap.hasOwnProperty(filter.z) ) { + searchSet = Object.values(nodeTabMap[filter.z]); + } - for (var n=0;n