From ec10dfe897f3db47016e9208917795cf4bf66ce0 Mon Sep 17 00:00:00 2001 From: Dan Cunningham Date: Tue, 21 Dec 2021 14:36:22 -0800 Subject: [PATCH] [jsscripting] Update docs and refactor path (#11827) This adds a minor refactoring of loading local resource paths that i didn't have time to get into 3.2 and moves the docs directory to doc. Signed-off-by: Dan Cunningham --- .../org.openhab.automation.jsscripting/README.md | 8 ++++---- .../{docs => doc}/rule-config.png | Bin .../{docs => doc}/rule-engines.png | Bin .../{docs => doc}/rule-script.png | Bin .../{docs => doc}/settings.png | Bin .../internal/OpenhabGraalJSScriptEngine.java | 3 ++- 6 files changed, 6 insertions(+), 5 deletions(-) rename bundles/org.openhab.automation.jsscripting/{docs => doc}/rule-config.png (100%) rename bundles/org.openhab.automation.jsscripting/{docs => doc}/rule-engines.png (100%) rename bundles/org.openhab.automation.jsscripting/{docs => doc}/rule-script.png (100%) rename bundles/org.openhab.automation.jsscripting/{docs => doc}/settings.png (100%) diff --git a/bundles/org.openhab.automation.jsscripting/README.md b/bundles/org.openhab.automation.jsscripting/README.md index 6ce4b4f2f1a..7d1b2fcc8d2 100644 --- a/bundles/org.openhab.automation.jsscripting/README.md +++ b/bundles/org.openhab.automation.jsscripting/README.md @@ -30,7 +30,7 @@ to common openHAB functionality within rules including items, things, actions, l This add-on includes by default the [openhab-js](https://github.com/openhab/openhab-js/) NPM library and exports it's namespaces onto the global namespace. This allows the use of `items`, `actions`, `cache` and other objects without the need to explicitly import using `require()`. This functionality can be disabled for users who prefer to manage their own imports via the add-on configuration options. -![OpenHAB Rule Configuration](./docs/settings.png) +![openHAB Rule Configuration](./doc/settings.png) ## UI Based Rules @@ -42,17 +42,17 @@ Advanced users, or users migrating scripts from existing systems may want to use Using the openHAB UI, first create a new rule and set a trigger condition -![OpenHAB Rule Configuration](./docs/rule-config.png) +![openHAB Rule Configuration](./doc/rule-config.png) ### Adding Actions Select "Add Action" and then select "ECMAScript 262 Edition 11". Its important this is "Edition 11" or higher, earlier versions will not work. This will bring up a empty script editor where you can enter your javascript. -![OpenHAB Rule Engines](./docs/rule-engines.png) +![openHAB Rule Engines](./doc/rule-engines.png) You can now write rules using standard ES6 Javascript along with the included openHAB [standard library](#standard-library). -![OpenHAB Rule Script](./docs/rule-script.png) +![openHAB Rule Script](./doc/rule-script.png) For example, turning a light on: ```javascript diff --git a/bundles/org.openhab.automation.jsscripting/docs/rule-config.png b/bundles/org.openhab.automation.jsscripting/doc/rule-config.png similarity index 100% rename from bundles/org.openhab.automation.jsscripting/docs/rule-config.png rename to bundles/org.openhab.automation.jsscripting/doc/rule-config.png diff --git a/bundles/org.openhab.automation.jsscripting/docs/rule-engines.png b/bundles/org.openhab.automation.jsscripting/doc/rule-engines.png similarity index 100% rename from bundles/org.openhab.automation.jsscripting/docs/rule-engines.png rename to bundles/org.openhab.automation.jsscripting/doc/rule-engines.png diff --git a/bundles/org.openhab.automation.jsscripting/docs/rule-script.png b/bundles/org.openhab.automation.jsscripting/doc/rule-script.png similarity index 100% rename from bundles/org.openhab.automation.jsscripting/docs/rule-script.png rename to bundles/org.openhab.automation.jsscripting/doc/rule-script.png diff --git a/bundles/org.openhab.automation.jsscripting/docs/settings.png b/bundles/org.openhab.automation.jsscripting/doc/settings.png similarity index 100% rename from bundles/org.openhab.automation.jsscripting/docs/settings.png rename to bundles/org.openhab.automation.jsscripting/doc/settings.png diff --git a/bundles/org.openhab.automation.jsscripting/src/main/java/org/openhab/automation/jsscripting/internal/OpenhabGraalJSScriptEngine.java b/bundles/org.openhab.automation.jsscripting/src/main/java/org/openhab/automation/jsscripting/internal/OpenhabGraalJSScriptEngine.java index 7f0d4b15a9f..93a69ab60d2 100644 --- a/bundles/org.openhab.automation.jsscripting/src/main/java/org/openhab/automation/jsscripting/internal/OpenhabGraalJSScriptEngine.java +++ b/bundles/org.openhab.automation.jsscripting/src/main/java/org/openhab/automation/jsscripting/internal/OpenhabGraalJSScriptEngine.java @@ -223,11 +223,12 @@ public class OpenhabGraalJSScriptEngine extends InvocationInterceptingScriptEngi /** * Converts a root node path to a class resource path for loading local modules + * Ex: C:\node_modules\foo.js -> /node_modules/foo.js * * @param path * @return */ private String nodeFileToResource(Path path) { - return "/" + NODE_DIR + "/" + path.getFileName(); + return "/" + path.subpath(0, path.getNameCount()).toString().replace('\\', '/'); } }